You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bloodhound.apache.org by da...@apache.org on 2016/10/02 17:51:01 UTC

svn commit: r1763089 [2/3] - in /bloodhound/branches/bep_0011_batch_create_tickets: ./ bloodhound_dashboard/ bloodhound_dashboard/bhdashboard/widgets/templates/ bloodhound_multiproduct/ bloodhound_multiproduct/multiproduct/ bloodhound_multiproduct/test...

Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/locale/messages.pot
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/locale/messages.pot?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/locale/messages.pot (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/locale/messages.pot Sun Oct  2 17:51:00 2016
@@ -16,15 +16,15 @@
 #  under the License.
 
 # Translations template for BloodhoundTheme.
-# Copyright (C) 2014 ORGANIZATION
+# Copyright (C) 2014 Apache Software Foundation
 # This file is distributed under the same license as the BloodhoundTheme project.
 # FIRST AUTHOR <EM...@ADDRESS>, 2014.
 ##, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: BloodhoundTheme 0.8.0\n"
-"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2014-02-14 19:28+0100\n"
+"Report-Msgid-Bugs-To: dev@bloodhound.apache.org\n"
+"POT-Creation-Date: 2014-07-06 22:10+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EM...@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL...@li.org>\n"
@@ -33,48 +33,48 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Babel 0.9.6\n"
 
-#: bhtheme/theme.py:158
+#: bhtheme/theme.py:161
 msgid ""
 "A short version of application name most commonly\n"
 "displayed in text, titles and labels"
 msgstr ""
 
-#: bhtheme/theme.py:162
+#: bhtheme/theme.py:165
 msgid ""
 "This is full name with trade mark and\n"
 "everything, it is currently used in footers and about page only"
 msgstr ""
 
-#: bhtheme/theme.py:167
+#: bhtheme/theme.py:170
 msgid "Text to display before full application name in footers"
 msgstr ""
 
-#: bhtheme/theme.py:171
+#: bhtheme/theme.py:174
 msgid "Text to display after full application name in footers"
 msgstr ""
 
-#: bhtheme/theme.py:175
+#: bhtheme/theme.py:178
 msgid "Text to use as the right aligned footer"
 msgstr ""
 
-#: bhtheme/theme.py:353
+#: bhtheme/theme.py:356
 msgid "Previous"
 msgstr ""
 
-#: bhtheme/theme.py:353
+#: bhtheme/theme.py:356
 msgid "Next"
 msgstr ""
 
-#: bhtheme/theme.py:423
+#: bhtheme/theme.py:426
 msgid "(Global settings)"
 msgstr ""
 
-#: bhtheme/theme.py:480
+#: bhtheme/theme.py:483
 #, python-format
 msgid "Edit product %(prefix)s"
 msgstr ""
 
-#: bhtheme/theme.py:483 bhtheme/templates/bh_milestone_view.html:71
+#: bhtheme/theme.py:486 bhtheme/templates/bh_milestone_view.html:71
 #: bhtheme/templates/bh_product_view.html:60
 #: bhtheme/templates/bh_report_list.html:121
 #: bhtheme/templates/bh_ticket_change.html:71
@@ -82,39 +82,39 @@ msgstr ""
 msgid "Edit"
 msgstr ""
 
-#: bhtheme/theme.py:487
+#: bhtheme/theme.py:490
 msgid "Home page"
 msgstr ""
 
-#: bhtheme/theme.py:489
+#: bhtheme/theme.py:492
 msgid "Home"
 msgstr ""
 
-#: bhtheme/theme.py:491
+#: bhtheme/theme.py:494
 msgid "Tickets dashboard"
 msgstr ""
 
-#: bhtheme/theme.py:493 bhtheme/templates/bh_admin_milestones.html:149
+#: bhtheme/theme.py:496 bhtheme/templates/bh_admin_milestones.html:149
 msgid "Tickets"
 msgstr ""
 
-#: bhtheme/theme.py:495 bhtheme/theme.py:497
+#: bhtheme/theme.py:498 bhtheme/theme.py:500
 msgid "Wiki"
 msgstr ""
 
-#: bhtheme/theme.py:501
+#: bhtheme/theme.py:504
 msgid "Browse"
 msgstr ""
 
-#: bhtheme/theme.py:516
+#: bhtheme/theme.py:519
 msgid "Source"
 msgstr ""
 
-#: bhtheme/theme.py:523
+#: bhtheme/theme.py:541
 msgid "Multiple selection fields displayed in create ticket menu"
 msgstr ""
 
-#: bhtheme/theme.py:577
+#: bhtheme/theme.py:601
 #, python-format
 msgid "Missing ticket field '%(field)s'."
 msgstr ""
@@ -210,7 +210,7 @@ msgstr ""
 #: bhtheme/templates/bh_admin_components.html:120
 #: bhtheme/templates/bh_admin_enums.html:76
 #: bhtheme/templates/bh_admin_milestones.html:148
-#: bhtheme/templates/bh_admin_products.html:132
+#: bhtheme/templates/bh_admin_products.html:133
 #: bhtheme/templates/bh_admin_repositories.html:181
 #: bhtheme/templates/bh_admin_versions.html:119
 #: bhtheme/templates/bh_user_table.html:40
@@ -405,9 +405,9 @@ msgstr ""
 
 #: bhtheme/templates/bh_account_details.html:212
 #: bhtheme/templates/bh_diff_options.html:71
-#: bhtheme/templates/bh_query.html:255 bhtheme/templates/bh_report_view.html:99
+#: bhtheme/templates/bh_query.html:254 bhtheme/templates/bh_report_view.html:99
 #: bhtheme/templates/bh_revisionlog.html:121
-#: bhtheme/templates/bh_roadmap.html:47 bhtheme/templates/bh_timeline.html:58
+#: bhtheme/templates/bh_roadmap.html:52 bhtheme/templates/bh_timeline.html:58
 msgid "Update"
 msgstr ""
 
@@ -558,6 +558,7 @@ msgstr ""
 #: bhtheme/templates/bh_admin_repositories.html:165
 #: bhtheme/templates/bh_admin_versions.html:47
 #: bhtheme/templates/bh_admin_versions.html:93
+#: bhtheme/templates/bh_product_edit.html:56
 #: bhtheme/templates/bh_register.html:135
 msgid "Name:"
 msgstr ""
@@ -573,8 +574,9 @@ msgstr ""
 #: bhtheme/templates/bh_admin_products.html:73
 #: bhtheme/templates/bh_admin_repositories.html:116
 #: bhtheme/templates/bh_admin_versions.html:62
+#: bhtheme/templates/bh_product_edit.html:63
 #: bhtheme/templates/bh_report_edit.html:51
-#: bhtheme/templates/bh_ticket.html:579
+#: bhtheme/templates/bh_ticket.html:557
 msgid "Description:"
 msgstr ""
 
@@ -616,7 +618,7 @@ msgstr ""
 #: bhtheme/templates/bh_admin_logging.html:80
 #: bhtheme/templates/bh_admin_milestones.html:175
 #: bhtheme/templates/bh_admin_plugins.html:170
-#: bhtheme/templates/bh_admin_products.html:155
+#: bhtheme/templates/bh_admin_products.html:156
 #: bhtheme/templates/bh_admin_versions.html:138
 msgid "Apply changes"
 msgstr ""
@@ -639,6 +641,10 @@ msgstr ""
 msgid "Modify Component:"
 msgstr ""
 
+#: bhtheme/templates/bh_admin_components.html:71
+msgid "Describe this component using WikiFormatting"
+msgstr ""
+
 #: bhtheme/templates/bh_admin_components.html:75
 #: bhtheme/templates/bh_admin_products.html:81
 msgid ""
@@ -657,17 +663,18 @@ msgstr ""
 #: bhtheme/templates/bh_attachment.html:108
 #: bhtheme/templates/bh_milestone_delete.html:66
 #: bhtheme/templates/bh_milestone_edit.html:151
+#: bhtheme/templates/bh_product_edit.html:79
 #: bhtheme/templates/bh_report_delete.html:44
 #: bhtheme/templates/bh_report_edit.html:82
-#: bhtheme/templates/bh_ticket.html:388 bhtheme/templates/bh_ticket.html:444
+#: bhtheme/templates/bh_ticket.html:366 bhtheme/templates/bh_ticket.html:422
 #: bhtheme/templates/bh_ticket_change.html:98
 #: bhtheme/templates/bh_ticket_delete.html:61
 #: bhtheme/templates/bh_ticket_delete.html:86
 #: bhtheme/templates/bh_wiki_delete.html:124
 #: bhtheme/templates/bh_wiki_edit_form.html:102
 #: bhtheme/templates/bh_wiki_rename.html:55
-#: bhtheme/templates/bloodhound_theme.html:186
-#: bhtheme/templates/bloodhound_theme.html:339
+#: bhtheme/templates/bloodhound_theme.html:189
+#: bhtheme/templates/bloodhound_theme.html:342
 msgid "Cancel"
 msgstr ""
 
@@ -680,7 +687,7 @@ msgstr ""
 #: bhtheme/templates/bh_admin_milestones.html:133
 #: bhtheme/templates/bh_admin_perms.html:58
 #: bhtheme/templates/bh_admin_perms.html:87
-#: bhtheme/templates/bh_admin_products.html:119
+#: bhtheme/templates/bh_admin_products.html:120
 #: bhtheme/templates/bh_admin_repositories.html:155
 #: bhtheme/templates/bh_admin_repositories.html:171
 #: bhtheme/templates/bh_admin_versions.html:107
@@ -688,14 +695,14 @@ msgid "Add"
 msgstr ""
 
 #: bhtheme/templates/bh_admin_components.html:120
-#: bhtheme/templates/bh_admin_products.html:132
+#: bhtheme/templates/bh_admin_products.html:133
 msgid "Owner"
 msgstr ""
 
 #: bhtheme/templates/bh_admin_components.html:120
 #: bhtheme/templates/bh_admin_enums.html:76
 #: bhtheme/templates/bh_admin_milestones.html:149
-#: bhtheme/templates/bh_admin_products.html:132
+#: bhtheme/templates/bh_admin_products.html:133
 #: bhtheme/templates/bh_admin_repositories.html:46
 #: bhtheme/templates/bh_admin_versions.html:120
 msgid "Default"
@@ -705,7 +712,7 @@ msgstr ""
 #: bhtheme/templates/bh_admin_enums.html:99
 #: bhtheme/templates/bh_admin_milestones.html:173
 #: bhtheme/templates/bh_admin_perms.html:160
-#: bhtheme/templates/bh_admin_products.html:153
+#: bhtheme/templates/bh_admin_products.html:154
 #: bhtheme/templates/bh_admin_repositories.html:203
 #: bhtheme/templates/bh_admin_versions.html:136
 msgid "Remove selected items"
@@ -719,8 +726,8 @@ msgstr ""
 #: bhtheme/templates/bh_admin_milestones.html:185
 #: bhtheme/templates/bh_admin_perms.html:62
 #: bhtheme/templates/bh_admin_perms.html:91
-#: bhtheme/templates/bh_admin_products.html:161
-#: bhtheme/templates/bh_admin_products.html:168
+#: bhtheme/templates/bh_admin_products.html:162
+#: bhtheme/templates/bh_admin_products.html:169
 #: bhtheme/templates/bh_admin_versions.html:142
 #: bhtheme/templates/bh_admin_versions.html:149
 #: bhtheme/templates/bh_diff_form.html:80
@@ -733,7 +740,7 @@ msgstr ""
 #: bhtheme/templates/bh_admin_components.html:144
 #: bhtheme/templates/bh_admin_enums.html:111
 #: bhtheme/templates/bh_admin_milestones.html:179
-#: bhtheme/templates/bh_admin_products.html:161
+#: bhtheme/templates/bh_admin_products.html:162
 #: bhtheme/templates/bh_admin_versions.html:142
 msgid ""
 "You can remove all items from this list to completely hide this\n"
@@ -743,7 +750,7 @@ msgstr ""
 #: bhtheme/templates/bh_admin_components.html:150
 #: bhtheme/templates/bh_admin_enums.html:118
 #: bhtheme/templates/bh_admin_milestones.html:185
-#: bhtheme/templates/bh_admin_products.html:168
+#: bhtheme/templates/bh_admin_products.html:169
 #: bhtheme/templates/bh_admin_versions.html:149
 msgid ""
 "As long as you don't add any items to the list, this field\n"
@@ -837,6 +844,11 @@ msgstr ""
 msgid "Completed:"
 msgstr ""
 
+#: bhtheme/templates/bh_admin_milestones.html:90
+#: bhtheme/templates/bh_milestone_edit.html:84
+msgid "Describe this milestone using WikiFormatting"
+msgstr ""
+
 #: bhtheme/templates/bh_admin_milestones.html:93
 msgid ""
 "[1:Tip]\n"
@@ -907,7 +919,7 @@ msgstr ""
 #: bhtheme/templates/bh_admin_perms.html:104
 #: bhtheme/templates/bh_admin_perms.html:133
 #: bhtheme/templates/bh_batch_modify.html:61
-#: bhtheme/templates/bh_ticket.html:657
+#: bhtheme/templates/bh_ticket.html:635
 msgid "Action"
 msgstr ""
 
@@ -995,18 +1007,23 @@ msgstr ""
 
 #: bhtheme/templates/bh_admin_products.html:59
 #: bhtheme/templates/bh_admin_products.html:105
+#: bhtheme/templates/bh_product_edit.html:50
 msgid "Prefix:"
 msgstr ""
 
+#: bhtheme/templates/bh_admin_products.html:77
+msgid "Describe this product using WikiFormatting"
+msgstr ""
+
 #: bhtheme/templates/bh_admin_products.html:103
 msgid "Add Product:"
 msgstr ""
 
-#: bhtheme/templates/bh_admin_products.html:132
+#: bhtheme/templates/bh_admin_products.html:133
 msgid "Prefix"
 msgstr ""
 
-#: bhtheme/templates/bh_admin_products.html:157
+#: bhtheme/templates/bh_admin_products.html:158
 msgid "Clear default"
 msgstr ""
 
@@ -1053,6 +1070,10 @@ msgstr ""
 msgid "Hide from repository index"
 msgstr ""
 
+#: bhtheme/templates/bh_admin_repositories.html:120
+msgid "Describe this repository using WikiFormatting"
+msgstr ""
+
 #: bhtheme/templates/bh_admin_repositories.html:123
 #: bhtheme/templates/bh_admin_versions.html:70
 msgid ""
@@ -1108,27 +1129,56 @@ msgstr ""
 msgid "Username:"
 msgstr ""
 
+#: bhtheme/templates/bh_admin_users.html:68
+#: bhtheme/templates/bh_reset_password.html:76
+msgid "e.g. myuser"
+msgstr ""
+
 #: bhtheme/templates/bh_admin_users.html:75 bhtheme/templates/bh_login.html:65
 #: bhtheme/templates/bh_prefs_account.html:52
 #: bhtheme/templates/bh_register.html:69
 msgid "Password:"
 msgstr ""
 
+#: bhtheme/templates/bh_admin_users.html:80
+#: bhtheme/templates/bh_admin_users.html:83
+#: bhtheme/templates/bh_prefs_account.html:56
+msgid "Type your password"
+msgstr ""
+
 #: bhtheme/templates/bh_admin_users.html:91
 #: bhtheme/templates/bh_prefs_account.html:125
 #: bhtheme/templates/bh_register.html:82
 msgid "Confirm Password:"
 msgstr ""
 
+#: bhtheme/templates/bh_admin_users.html:96
+#: bhtheme/templates/bh_admin_users.html:99
+#: bhtheme/templates/bh_register.html:88
+msgid "Must match password"
+msgstr ""
+
 #: bhtheme/templates/bh_admin_users.html:107
 msgid "Pre-/Surname (Nickname):"
 msgstr ""
 
+#: bhtheme/templates/bh_admin_users.html:108
+#: bhtheme/templates/bh_register.html:137
+msgid "e.g. John Smith"
+msgstr ""
+
 #: bhtheme/templates/bh_admin_users.html:114
 #: bhtheme/templates/bh_reset_password.html:81
 msgid "Email Address:"
 msgstr ""
 
+#: bhtheme/templates/bh_admin_users.html:119
+#: bhtheme/templates/bh_register.html:101
+#: bhtheme/templates/bh_register.html:150
+#: bhtheme/templates/bh_reset_password.html:87
+msgid "user@domain.com"
+msgstr ""
+
 #: bhtheme/templates/bh_admin_users.html:125
 msgid "Add a new user account or edit an existing one."
 msgstr ""
@@ -1175,6 +1225,10 @@ msgstr ""
 msgid "Released:"
 msgstr ""
 
+#: bhtheme/templates/bh_admin_versions.html:66
+msgid "Describe this version using WikiFormatting"
+msgstr ""
+
 #: bhtheme/templates/bh_admin_versions.html:91
 msgid "Add Version:"
 msgstr ""
@@ -1214,7 +1268,7 @@ msgstr ""
 msgid "Attachment Info"
 msgstr ""
 
-#: bhtheme/templates/bh_attachment.html:64 bhtheme/templates/bh_ticket.html:686
+#: bhtheme/templates/bh_attachment.html:64 bhtheme/templates/bh_ticket.html:664
 #: bhtheme/templates/bh_wiki_edit_form.html:67
 msgid "Your email or username:"
 msgstr ""
@@ -1223,6 +1277,10 @@ msgstr ""
 msgid "Description of the file:"
 msgstr ""
 
+#: bhtheme/templates/bh_attachment.html:70
+msgid "optional"
+msgstr ""
+
 #: bhtheme/templates/bh_attachment.html:76
 msgid "Replace existing attachment of the same name"
 msgstr ""
@@ -1261,8 +1319,8 @@ msgstr ""
 #: bhtheme/templates/bh_attachment.html:131
 #: bhtheme/templates/bh_milestone_edit.html:83
 #: bhtheme/templates/bh_ticket_box.html:123
-#: bhtheme/templates/bloodhound_theme.html:165
-#: bhtheme/templates/bloodhound_theme.html:318
+#: bhtheme/templates/bloodhound_theme.html:168
+#: bhtheme/templates/bloodhound_theme.html:321
 msgid "Description"
 msgstr ""
 
@@ -1298,6 +1356,10 @@ msgstr ""
 msgid "Comment:"
 msgstr ""
 
+#: bhtheme/templates/bh_batch_modify.html:35
+msgid "Describe changes using WikiFormatting"
+msgstr ""
+
 #: bhtheme/templates/bh_batch_modify.html:44
 msgid "Add Field:"
 msgstr ""
@@ -1879,7 +1941,7 @@ msgstr ""
 
 #: bhtheme/templates/bh_history_view.html:54
 #: bhtheme/templates/bh_revisionlog.html:143
-#: bhtheme/templates/bh_ticket.html:681
+#: bhtheme/templates/bh_ticket.html:659
 msgid "Author"
 msgstr ""
 
@@ -1929,11 +1991,19 @@ msgstr ""
 #: bhtheme/templates/bh_login.html:33 bhtheme/templates/bh_login.html:51
 #: bhtheme/templates/bh_login.html:86
 #: bhtheme/templates/bloodhound_theme.html:73
-#: bhtheme/templates/bloodhound_theme.html:202
-#: bhtheme/templates/bloodhound_theme.html:353
+#: bhtheme/templates/bloodhound_theme.html:205
+#: bhtheme/templates/bloodhound_theme.html:356
 msgid "Login"
 msgstr ""
 
+#: bhtheme/templates/bh_login.html:60
+msgid "User name"
+msgstr ""
+
+#: bhtheme/templates/bh_login.html:67
+msgid "Password"
+msgstr ""
+
 #: bhtheme/templates/bh_login.html:73 bhtheme/templates/bh_login.html:99
 #: bhtheme/templates/bh_login.html:102
 msgid "Forgot your password?"
@@ -2014,7 +2084,8 @@ msgid "Retarget associated open tickets
 msgstr ""
 
 #: bhtheme/templates/bh_milestone_edit.html:147
-#: bhtheme/templates/bh_ticket.html:385 bhtheme/templates/bh_ticket.html:441
+#: bhtheme/templates/bh_product_edit.html:77
+#: bhtheme/templates/bh_ticket.html:363 bhtheme/templates/bh_ticket.html:419
 #: bhtheme/templates/bh_ticket_change.html:95
 #: bhtheme/templates/bh_wiki_edit_form.html:93
 #: bhtheme/templates/bh_wiki_edit_form.html:98
@@ -2035,7 +2106,6 @@ msgid ""
 msgstr ""
 
 #: bhtheme/templates/bh_milestone_view.html:35
-#: bhtheme/templates/bh_roadmap.html:62
 #, python-format
 msgid "Completed %(duration)s ago (%(date)s)"
 msgstr ""
@@ -2132,7 +2202,7 @@ msgid "Back to roadmap"
 msgstr ""
 
 #: bhtheme/templates/bh_path_general.html:89
-#: bhtheme/templates/bh_roadmap.html:29 bhtheme/templates/bh_roadmap.html:51
+#: bhtheme/templates/bh_roadmap.html:31 bhtheme/templates/bh_roadmap.html:37
 msgid "Roadmap"
 msgstr ""
 
@@ -2207,10 +2277,22 @@ msgstr ""
 msgid "Old Password:"
 msgstr ""
 
+#: bhtheme/templates/bh_prefs_account.html:103
+msgid "Type current password"
+msgstr ""
+
 #: bhtheme/templates/bh_prefs_account.html:110
 msgid "New Password:"
 msgstr ""
 
+#: bhtheme/templates/bh_prefs_account.html:118
+msgid "Type new password"
+msgstr ""
+
+#: bhtheme/templates/bh_prefs_account.html:133
+msgid "Must match new password"
+msgstr ""
+
 #: bhtheme/templates/bh_prefs_advanced.html:30
 msgid "Advanced"
 msgstr ""
@@ -2348,10 +2430,18 @@ msgstr ""
 msgid "Full name:"
 msgstr ""
 
+#: bhtheme/templates/bh_prefs_general.html:37
+msgid "Jack Pumpkinhead"
+msgstr ""
+
 #: bhtheme/templates/bh_prefs_general.html:43
 msgid "Email address:"
 msgstr ""
 
+#: bhtheme/templates/bh_prefs_general.html:45
+msgid "jack@marvelous.land-of.oz"
+msgstr ""
+
 #: bhtheme/templates/bh_prefs_general.html:52
 msgid ""
 "This information is used to automatically populate some forms\n"
@@ -2472,6 +2562,26 @@ msgstr ""
 msgid "Try [1:downloading] the file instead."
 msgstr ""
 
+#: bhtheme/templates/bh_product_edit.html:32
+#: bhtheme/templates/bh_product_edit.html:40
+msgid "Edit Product"
+msgstr ""
+
+#: bhtheme/templates/bh_product_edit.html:33
+#: bhtheme/templates/bh_product_edit.html:41
+msgid "New Product"
+msgstr ""
+
+#: bhtheme/templates/bh_product_edit.html:69
+msgid ""
+"[1:Tip]\n"
+"                    You may use [2:WikiFormatting] here."
+msgstr ""
+
+#: bhtheme/templates/bh_product_edit.html:78
+msgid "Add Product"
+msgstr ""
+
 #: bhtheme/templates/bh_product_list.html:43
 msgid "Add new product"
 msgstr ""
@@ -2532,32 +2642,32 @@ msgid_plural "%(num)s matches"
 msgstr[0] ""
 msgstr[1] ""
 
-#: bhtheme/templates/bh_query.html:67
+#: bhtheme/templates/bh_query.html:66
 msgid "Filters"
 msgstr ""
 
-#: bhtheme/templates/bh_query.html:68
+#: bhtheme/templates/bh_query.html:67
 msgid "Query filters"
 msgstr ""
 
-#: bhtheme/templates/bh_query.html:74 bhtheme/templates/bh_query.html:178
+#: bhtheme/templates/bh_query.html:73 bhtheme/templates/bh_query.html:177
 msgid "Or"
 msgstr ""
 
-#: bhtheme/templates/bh_query.html:102
+#: bhtheme/templates/bh_query.html:101
 #: bhtheme/templates/bloodhound_theme.html:74
 msgid "or"
 msgstr ""
 
-#: bhtheme/templates/bh_query.html:137
+#: bhtheme/templates/bh_query.html:136
 msgid "yes"
 msgstr ""
 
-#: bhtheme/templates/bh_query.html:140
+#: bhtheme/templates/bh_query.html:139
 msgid "no"
 msgstr ""
 
-#: bhtheme/templates/bh_query.html:150
+#: bhtheme/templates/bh_query.html:149
 msgid ""
 "[1:between]\n"
 "                                [2:]\n"
@@ -2565,65 +2675,67 @@ msgid ""
 "                                [4:]"
 msgstr ""
 
-#: bhtheme/templates/bh_query.html:164
+#: bhtheme/templates/bh_query.html:163
 msgid "And"
 msgstr ""
 
-#: bhtheme/templates/bh_query.html:201
+#: bhtheme/templates/bh_query.html:200
 msgid "Columns"
 msgstr ""
 
-#: bhtheme/templates/bh_query.html:219
+#: bhtheme/templates/bh_query.html:218
 msgid "Group results by"
 msgstr ""
 
-#: bhtheme/templates/bh_query.html:231
+#: bhtheme/templates/bh_query.html:230
 msgid "descending"
 msgstr ""
 
-#: bhtheme/templates/bh_query.html:234 bhtheme/templates/bh_report_view.html:76
+#: bhtheme/templates/bh_query.html:233 bhtheme/templates/bh_report_view.html:76
 msgid "Max items per page"
 msgstr ""
 
-#: bhtheme/templates/bh_query.html:240
+#: bhtheme/templates/bh_query.html:239
 msgid "Show under each result:"
 msgstr ""
 
-#: bhtheme/templates/bh_query.html:276
+#: bhtheme/templates/bh_query.html:275
 #, python-format
 msgid "Edit report {%(id)s} corresponding to this query"
 msgstr ""
 
-#: bhtheme/templates/bh_query.html:276
+#: bhtheme/templates/bh_query.html:275
 msgid "Edit query"
 msgstr ""
 
-#: bhtheme/templates/bh_query.html:285
+#: bhtheme/templates/bh_query.html:284
 msgid "Save query"
 msgstr ""
 
-#: bhtheme/templates/bh_query.html:285
+#: bhtheme/templates/bh_query.html:284
 #, python-format
 msgid "Save updated query in report {%(id)s}"
 msgstr ""
 
-#: bhtheme/templates/bh_query.html:285
+#: bhtheme/templates/bh_query.html:284
 msgid "Create new report from current query"
 msgstr ""
 
-#: bhtheme/templates/bh_query.html:294
+#: bhtheme/templates/bh_query.html:293
 #, python-format
 msgid "Delete report {%(id)s} corresponding to this query"
 msgstr ""
 
-#: bhtheme/templates/bh_query.html:294
+#: bhtheme/templates/bh_query.html:293
 msgid "Delete query"
 msgstr ""
 
-#: bhtheme/templates/bh_query.html:302
+#: bhtheme/templates/bh_query.html:300
 msgid ""
-"[1:Note] See [2:TracQuery]\n"
-"          for help on using queries."
+"[1:\n"
+"          [2:Note]\n"
+"          See [3:TracQuery] for help on using queries.\n"
+"        ]"
 msgstr ""
 
 #: bhtheme/templates/bh_register.html:39
@@ -2638,6 +2750,14 @@ msgstr ""
 msgid "Required"
 msgstr ""
 
+#: bhtheme/templates/bh_register.html:63
+msgid "e.g. newuser"
+msgstr ""
+
+#: bhtheme/templates/bh_register.html:75
+msgid "Better use letters and numbers"
+msgstr ""
+
 #: bhtheme/templates/bh_register.html:95 bhtheme/templates/bh_register.html:144
 msgid "Email:"
 msgstr ""
@@ -2740,7 +2860,6 @@ msgstr ""
 
 #: bhtheme/templates/bh_report_list.html:62
 #: bhtheme/templates/bh_report_list.html:72
-#: bhtheme/templates/bh_ticket_actions.html:35
 msgid "Tip"
 msgstr ""
 
@@ -2788,7 +2907,7 @@ msgid "View report"
 msgstr ""
 
 #: bhtheme/templates/bh_report_list.html:132
-#: bhtheme/templates/bloodhound_theme.html:284
+#: bhtheme/templates/bloodhound_theme.html:287
 msgid "Warning"
 msgstr ""
 
@@ -2984,41 +3103,55 @@ msgid ""
 "          for help on using the revision log."
 msgstr ""
 
-#: bhtheme/templates/bh_roadmap.html:39
-msgid "Show completed milestones"
+#: bhtheme/templates/bh_roadmap.html:45
+msgid ""
+"Show completed\n"
+"                milestones"
 msgstr ""
 
-#: bhtheme/templates/bh_roadmap.html:44
+#: bhtheme/templates/bh_roadmap.html:50
 msgid "Hide milestones with no due date"
 msgstr ""
 
-#: bhtheme/templates/bh_roadmap.html:57
+#: bhtheme/templates/bh_roadmap.html:63
 msgid "Milestone:"
 msgstr ""
 
 #: bhtheme/templates/bh_roadmap.html:67
 #, python-format
-msgid "[1:%(duration)s late] (%(date)s)"
+msgid ""
+"Completed %(duration)s ago\n"
+"                  (%(date)s)"
 msgstr ""
 
-#: bhtheme/templates/bh_roadmap.html:72
+#: bhtheme/templates/bh_roadmap.html:73
 #, python-format
-msgid "Due in %(duration)s (%(date)s)"
+msgid ""
+"[1:%(duration)s late]\n"
+"                  (%(date)s)"
+msgstr ""
+
+#: bhtheme/templates/bh_roadmap.html:79
+#, python-format
+msgid ""
+"Due in %(duration)s\n"
+"                  (%(date)s)"
 msgstr ""
 
-#: bhtheme/templates/bh_roadmap.html:76
+#: bhtheme/templates/bh_roadmap.html:85
 msgid "No date set"
 msgstr ""
 
-#: bhtheme/templates/bh_roadmap.html:95
+#: bhtheme/templates/bh_roadmap.html:104
 msgid "Add new milestone"
 msgstr ""
 
-#: bhtheme/templates/bh_roadmap.html:99
+#: bhtheme/templates/bh_roadmap.html:108
 msgid ""
-"[1:Note:] See\n"
-"        [2:TracRoadmap] for help on using\n"
-"        the roadmap."
+"[1:\n"
+"          [2:Note]\n"
+"          See [3:TracRoadmap] for help on using the roadmap.\n"
+"        ]"
 msgstr ""
 
 #: bhtheme/templates/bh_search.html:31
@@ -3059,86 +3192,90 @@ msgstr ""
 msgid "Sort by %(col)s %(direction)s"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:55 bhtheme/templates/bh_ticket.html:363
-#: bhtheme/templates/bloodhound_theme.html:153
-#: bhtheme/templates/bloodhound_theme.html:305
+#: bhtheme/templates/bh_ticket.html:55 bhtheme/templates/bh_ticket.html:341
+#: bhtheme/templates/bloodhound_theme.html:156
+#: bhtheme/templates/bloodhound_theme.html:308
 msgid "New Ticket"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:350
+#: bhtheme/templates/bh_ticket.html:328
 #, python-format
 msgid "Ticket #%(id)s"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:355
+#: bhtheme/templates/bh_ticket.html:333
 msgid "at [1:Initial Version]"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:358
+#: bhtheme/templates/bh_ticket.html:336
 #, python-format
 msgid "at [1:Version %(version)s]"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:368
+#: bhtheme/templates/bh_ticket.html:346
 msgid "Assigned to"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:372
+#: bhtheme/templates/bh_ticket.html:350
 #, python-format
 msgid "last modified %(modified)s"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:374
+#: bhtheme/templates/bh_ticket.html:352
 msgid "(ticket not yet created)"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:381 bhtheme/templates/bh_ticket.html:542
+#: bhtheme/templates/bh_ticket.html:359 bhtheme/templates/bh_ticket.html:520
 msgid "Modify Ticket"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:388 bhtheme/templates/bh_ticket.html:444
+#: bhtheme/templates/bh_ticket.html:366 bhtheme/templates/bh_ticket.html:422
 msgid "Discard changes"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:397
+#: bhtheme/templates/bh_ticket.html:375
 msgid "Go to the ticket editor"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:397
+#: bhtheme/templates/bh_ticket.html:375
 msgid "Modify"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:454
+#: bhtheme/templates/bh_ticket.html:413 bhtheme/templates/bh_ticket.html:506
+msgid "Enter new comment"
+msgstr ""
+
+#: bhtheme/templates/bh_ticket.html:432
 msgid "I have files to attach to this ticket"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:463
+#: bhtheme/templates/bh_ticket.html:441
 msgid "Create ticket"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:485
+#: bhtheme/templates/bh_ticket.html:463
 msgid ""
 "[1:Note:] See\n"
 "            [2:TracTickets] for help on using tickets."
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:496
+#: bhtheme/templates/bh_ticket.html:474
 msgid "Newest first"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:500
+#: bhtheme/templates/bh_ticket.html:478
 msgid "Oldest first"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:514
+#: bhtheme/templates/bh_ticket.html:492
 msgid "View ticket fields and description"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:514
+#: bhtheme/templates/bh_ticket.html:492
 msgid "View"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:516
+#: bhtheme/templates/bh_ticket.html:494
 msgid ""
 "[1:Warning]\n"
 "                  This ticket has been modified since you started editing. You should review the\n"
@@ -3147,11 +3284,11 @@ msgid ""
 "                  You can nevertheless proceed and submit your changes if you wish so."
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:530
+#: bhtheme/templates/bh_ticket.html:508
 msgid "Submit"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:531
+#: bhtheme/templates/bh_ticket.html:509
 msgid ""
 "[1:Tip]\n"
 "                    You may use\n"
@@ -3159,60 +3296,60 @@ msgid ""
 "                    here."
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:548
+#: bhtheme/templates/bh_ticket.html:526
 msgid "Change Properties"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:549
+#: bhtheme/templates/bh_ticket.html:527
 msgid "Properties"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:555
+#: bhtheme/templates/bh_ticket.html:533
 msgid "Product:"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:565
+#: bhtheme/templates/bh_ticket.html:543
 msgid "Summary:"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:572
+#: bhtheme/templates/bh_ticket.html:550
 msgid "Reporter:"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:583
+#: bhtheme/templates/bh_ticket.html:561
 msgid ""
 "[1:Tip]\n"
 "                            You may use\n"
 "                            [2:WikiFormatting] here."
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:597
+#: bhtheme/templates/bh_ticket.html:575
 #, python-format
 msgid "%(field)s:"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:631
+#: bhtheme/templates/bh_ticket.html:609
 msgid "This checkbox allows you to add or remove yourself from the CC list."
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:637
+#: bhtheme/templates/bh_ticket.html:615
 msgid "Space or comma delimited email addresses and usernames are accepted."
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:682 bhtheme/templates/bh_ticket_box.html:76
+#: bhtheme/templates/bh_ticket.html:660 bhtheme/templates/bh_ticket_box.html:76
 msgid "Reporter"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:695
+#: bhtheme/templates/bh_ticket.html:673
 #: bhtheme/templates/bh_wiki_edit_form.html:71
 msgid "E-mail address and user name can be saved in the [1:Preferences]."
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:702
+#: bhtheme/templates/bh_ticket.html:680
 msgid "Go to the list of attachments"
 msgstr ""
 
-#: bhtheme/templates/bh_ticket.html:702
+#: bhtheme/templates/bh_ticket.html:680
 msgid "Attachments"
 msgstr ""
 
@@ -3730,67 +3867,77 @@ msgstr ""
 msgid "Search all products. Try TracLinks."
 msgstr ""
 
-#: bhtheme/templates/bloodhound_theme.html:144
+#: bhtheme/templates/bloodhound_theme.html:147
 msgid "Create Ticket"
 msgstr ""
 
-#: bhtheme/templates/bloodhound_theme.html:159
-#: bhtheme/templates/bloodhound_theme.html:312
+#: bhtheme/templates/bloodhound_theme.html:162
+#: bhtheme/templates/bloodhound_theme.html:315
 msgid "Summary"
 msgstr ""
 
-#: bhtheme/templates/bloodhound_theme.html:184
-#: bhtheme/templates/bloodhound_theme.html:337
+#: bhtheme/templates/bloodhound_theme.html:163
+#: bhtheme/templates/bloodhound_theme.html:316
+msgid "Ticket summary"
+msgstr ""
+
+#: bhtheme/templates/bloodhound_theme.html:169
+#: bhtheme/templates/bloodhound_theme.html:322
+msgid "Ticket description"
+msgstr ""
+
+#: bhtheme/templates/bloodhound_theme.html:187
+#: bhtheme/templates/bloodhound_theme.html:340
 msgid "Create"
 msgstr ""
 
-#: bhtheme/templates/bloodhound_theme.html:185
-#: bhtheme/templates/bloodhound_theme.html:338
+#: bhtheme/templates/bloodhound_theme.html:188
+#: bhtheme/templates/bloodhound_theme.html:341
 msgid "More fields"
 msgstr ""
 
-#: bhtheme/templates/bloodhound_theme.html:194
-#: bhtheme/templates/bloodhound_theme.html:345
+#: bhtheme/templates/bloodhound_theme.html:197
+#: bhtheme/templates/bloodhound_theme.html:348
 msgid "TICKET_CREATE"
 msgstr ""
 
-#: bhtheme/templates/bloodhound_theme.html:194
+#: bhtheme/templates/bloodhound_theme.html:197
 msgid ""
 "privileges are required to perform this operation.\n"
 "                            You don't have the required permissions"
 msgstr ""
 
-#: bhtheme/templates/bloodhound_theme.html:204
+#: bhtheme/templates/bloodhound_theme.html:207
 msgid ""
 "Please contact your administrator or team leader to \n"
 "                                request these."
 msgstr ""
 
-#: bhtheme/templates/bloodhound_theme.html:235
+#: bhtheme/templates/bloodhound_theme.html:238
 msgid "More"
 msgstr ""
 
-#: bhtheme/templates/bloodhound_theme.html:292
+#: bhtheme/templates/bloodhound_theme.html:295
 msgid "Success"
 msgstr ""
 
-#: bhtheme/templates/bloodhound_theme.html:345
+#: bhtheme/templates/bloodhound_theme.html:348
 msgid ""
 "privileges are required to perform this operation.\n"
 "                    You don't have the required permissions"
 msgstr ""
 
-#: bhtheme/templates/bloodhound_theme.html:355
+#: bhtheme/templates/bloodhound_theme.html:358
 msgid ""
 "Please contact your administrator or team leader to \n"
 "                        request these."
 msgstr ""
 
-#: bhtheme/templates/bloodhound_theme.html:360
+#: bhtheme/templates/bloodhound_theme.html:363
 msgid "Close"
 msgstr ""
 
-#: bhtheme/templates/bloodhound_theme.html:391
+#: bhtheme/templates/bloodhound_theme.html:394
 msgid "Powered by"
 msgstr ""
 

Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_components.html
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_components.html?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_components.html (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_components.html Sun Oct  2 17:51:00 2016
@@ -70,7 +70,7 @@
               <div class="controls">
                 <textarea id="description" name="description" 
                     class="wikitext trac-resizable"
-                    placeholder="Describe this component using WikiFormatting"
+                    placeholder="${_('Describe this component using WikiFormatting')}"
                     rows="6" cols="60">$component.description</textarea>
                 <p class="help-block" i18n:msg="">
                   <span class="label label-info">Tip</span> you may use

Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_milestones.html
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_milestones.html?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_milestones.html (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_milestones.html Sun Oct  2 17:51:00 2016
@@ -89,7 +89,7 @@
               <div class="controls">
                 <textarea id="description" name="description" class="wikitext trac-resizable"
                         rows="6" cols="60" readonly="${readonly}"
-                        placeholder="Describe this milestone using WikiFormatting">${milestone.description}</textarea>
+                        placeholder="${_('Describe this milestone using WikiFormatting')}">${milestone.description}</textarea>
                 <p class="help-block" i18n:msg="">
                   <span class="label label-info">Tip</span>
                   you may use

Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_products.html
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_products.html?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_products.html (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_products.html Sun Oct  2 17:51:00 2016
@@ -76,7 +76,7 @@
               <div class="controls">
                 <textarea id="description" name="description" 
                     class="wikitext trac-resizable"
-                    placeholder="Describe this product using WikiFormatting"
+                    placeholder="${_('Describe this product using WikiFormatting')}"
                     rows="6" cols="60">$product.description</textarea>
                 <p class="help-block" i18n:msg="">
                   <span class="label label-info">Tip</span> you may use

Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_repositories.html
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_repositories.html?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_repositories.html (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_repositories.html Sun Oct  2 17:51:00 2016
@@ -118,7 +118,7 @@
               </label>
              <div class="controls">
                 <textarea id="description" name="description" class="wikitext trac-resizable"
-                          placeholder="Describe this repository using WikiFormatting"
+                          placeholder="${_('Describe this repository using WikiFormatting')}"
                           rows="6" cols="60" readonly="$readonly">$info.description</textarea>
                 <p class="help-block" i18n:msg="">
                   <span class="label label-info">Tip</span>

Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_users.html
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_users.html?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_users.html (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_users.html Sun Oct  2 17:51:00 2016
@@ -68,7 +68,7 @@
                   <input id="username" type="text"
                          class="textwidget input-medium no-add-on"
                          name="username"
-                         value="${acctmgr.username}" placeholder="e.g. myuser" />
+                         value="${acctmgr.username}" placeholder="${dgettext('bhtheme', 'e.g. myuser')}" />
                 </label>
               </div>
               <div class="field">
@@ -79,10 +79,10 @@
                     </span>
                     <input py:when="create_enabled or password_change_enabled"
                            type="password" class="textwidget input-medium"
-                           name="password" placeholder="Type your password" />
+                           name="password" placeholder="${dgettext('bhtheme', 'Type your password')}" />
                     <input py:otherwise=""
                            type="password" class="textwidget input-medium"
-                           name="password" placeholder="Type your password"
+                           name="password" placeholder="${dgettext('bhtheme', 'Type your password')}"
                            disabled="disabled" />
                   </div>
                 </label>
@@ -95,10 +95,10 @@
                     </span>
                     <input py:when="create_enabled or password_change_enabled"
                            type="password" class="textwidget input-medium"
-                           name="password_confirm" placeholder="Must match password" />
+                           name="password_confirm" placeholder="${dgettext('bhtheme', 'Must match password')}" />
                     <input py:otherwise=""
                            type="password" class="textwidget input-medium"
-                           name="password_confirm" placeholder="Must match password"
+                           name="password_confirm" placeholder="${dgettext('bhtheme', 'Must match password')}"
                            disabled="disabled" />
                   </div>
                 </label>
@@ -107,7 +107,7 @@
                 <label>Pre-/Surname (Nickname):<br />
                   <input type="text" class="textwidget input-medium no-add-on"
                          name="name" value="${acctmgr.name}"
-                         placeholder="e.g. John Smith" />
+                         placeholder="${dgettext('bhtheme', 'e.g. John Smith')}" />
                 </label>
               </div>
               <div class="field">
@@ -118,7 +118,7 @@
                     </span>
                     <input type="text" class="textwidget input-medium"
                            name="email" value="${acctmgr.email}"
-                           placeholder="user@domain.com" />
+                           placeholder="${dgettext('bhtheme', 'user@domain.com')}" />
                   </div>
                 </label>
               </div>

Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_versions.html
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_versions.html?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_versions.html (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_admin_versions.html Sun Oct  2 17:51:00 2016
@@ -65,7 +65,7 @@
               <div class="controls">
                 <textarea id="description" name="description" 
                     class="wikitext trac-resizable" rows="6"
-                    placeholder="Describe this version using WikiFormatting"
+                    placeholder="${_('Describe this version using WikiFormatting')}"
                     cols="60">$version.description</textarea>
                 <p class="help-block" i18n:msg="">
                   <span class="label label-info">Tip</span>

Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_attachment.html
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_attachment.html?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_attachment.html (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_attachment.html Sun Oct  2 17:51:00 2016
@@ -68,7 +68,7 @@
                 </py:if>
                 <label>Description of the file:</label>
                 <input type="text" name="description" class="input-xlarge"
-                       placeholder="optional" value="$attachment.description" />
+                       placeholder="${_('optional')}" value="$attachment.description" />
                 <br />
                 <label py:if="authname and authname != 'anonymous'"
                        class="checkbox">

Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_batch_modify.html
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_batch_modify.html?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_batch_modify.html (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_batch_modify.html Sun Oct  2 17:51:00 2016
@@ -18,12 +18,12 @@
 -->
 
 <form xmlns="http://www.w3.org/1999/xhtml"
-     xmlns:py="http://genshi.edgewall.org/"
-     xmlns:i18n="http://genshi.edgewall.org/i18n"
+      xmlns:py="http://genshi.edgewall.org/"
+      xmlns:i18n="http://genshi.edgewall.org/i18n"
       i18n:domain="bhtheme"
-     xmlns:xi="http://www.w3.org/2001/XInclude"
-     id="batchmod_form" method="post" action="${req.href + '/batchmodify'}"
-     class="form-horizontal" >
+      xmlns:xi="http://www.w3.org/2001/XInclude"
+      id="batchmod_form" method="post" action="${req.href + '/batchmodify'}"
+      class="form-horizontal">
 
 <fieldset id="batchmod_fieldset">
   <legend class="foldable">Batch Modify</legend>
@@ -34,10 +34,10 @@
       </th>
       <td class="fullrow"><textarea
           id="batchmod_value_comment" name="batchmod_value_comment" cols="70" rows="5"
-          placeholder="Describe changes using WikiFormatting" />
+          placeholder="${_('Describe changes using WikiFormatting')}" />
       </td>
     </tr>
-    
+
     <tr id="add_batchmod_field_row">
       <td colspan="3">
         <div class="control-group">
@@ -54,24 +54,23 @@
         </div>
       </td>
     </tr>
-    
+
     <tr>
       <td colspan="3">
-        <fieldset id="batchmod_action"> 
+        <fieldset id="batchmod_action">
           <legend>Action</legend>
           <xi:include href="bh_ticket_actions.html" />
         </fieldset>
       </td>
     </tr>
   </table>
-  
+
   <div>
     <input type="hidden" name="selected_tickets" value=""/>
     <input type="hidden" name="query_href" value="${query_href}"/>
-    <input type="submit" id="batchmod_submit" name="batchmod_submit" 
-        class="btn" value="${_('Change tickets')}" />
+    <input type="submit" id="batchmod_submit" name="batchmod_submit" class="btn" value="${_('Change tickets')}" />
   </div>
-  
+
   <div id="batchmod_help" i18n:msg="">
     <p class="help-block pull-right">
       <span class="label label-info">Note</span> See <a href="${href.wiki('TracBatchModify')}">TracBatchModify</a> for help on using batch modify.
@@ -81,4 +80,3 @@
 </fieldset>
 
 </form>
-

Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_login.html
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_login.html?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_login.html (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_login.html Sun Oct  2 17:51:00 2016
@@ -58,14 +58,14 @@
           <label for="user" class="control-label">Username:</label>
           <div class="controls">
             <input type="text" id="user" name="user" class="textwidget"
-                size="20" placeholder="User name" />
+                size="20" placeholder="${_('User name')}" />
           </div>
         </div>
         <div class="textbox control-group">
           <label for="password" class="control-label">Password:</label>
           <div class="controls">
             <input type="password" id="password" name="password"
-                class="textwidget" size="20" placeholder="Password"/>
+                class="textwidget" size="20" placeholder="${_('Password')}"/>
             <div id="login_options" class="central"
                  py:if="reset_password_enabled and login_opt_list != True">
               

Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_milestone_edit.html
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_milestone_edit.html?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_milestone_edit.html (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_milestone_edit.html Sun Oct  2 17:51:00 2016
@@ -81,7 +81,7 @@
           <div class="field">
             <fieldset class="iefix">
               <label for="description" i18n:msg="">Description</label>
-              <p><textarea id="description" name="description" class="wikitext trac-resizable" rows="10" cols="78" placeholder="Describe this milestone using WikiFormatting">
+              <p><textarea id="description" name="description" class="wikitext trac-resizable" rows="10" cols="78" placeholder="${_('Describe this milestone using WikiFormatting')}">
 ${milestone.description}</textarea></p>
               <p class="help-block pull-right" i18n:msg="">
                 <span class="label label-info">Tip</span>

Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_prefs_account.html
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_prefs_account.html?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_prefs_account.html (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_prefs_account.html Sun Oct  2 17:51:00 2016
@@ -55,7 +55,7 @@
                 <span class="add-on"><i class="icon-lock"></i></span>
                 <input type="password" id="password_rm"
                        class="textwidget input-large" name="password"
-                       placeholder="Type your password" />
+                       placeholder="${dgettext('bhtheme', 'Type your password')}" />
               </div>
             </div>
           </div>
@@ -102,7 +102,7 @@
           </span>
           <input type="password" id="old_password_chg"
                  class="textwidget input-large" name="old_password"
-                 placeholder="Type current password" />
+                 placeholder="${dgettext('bhtheme', 'Type current password')}" />
         </div>
       </div>
     </div>
@@ -117,7 +117,7 @@
           </span>
           <input type="password"  id="password_chg"
                  class="textwidget input-large"
-                 name="password" placeholder="Type new password" />
+                 name="password" placeholder="${dgettext('bhtheme', 'Type new password')}" />
         </div>
       </div>
     </div>
@@ -132,7 +132,7 @@
           </span>
           <input type="password" id="password_confirm_chg"
                  class="textwidget input-large" name="password_confirm"
-                 placeholder="Must match new password" />
+                 placeholder="${dgettext('bhtheme', 'Must match new password')}" />
         </div>
       </div>
     </div>

Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_prefs_general.html
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_prefs_general.html?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_prefs_general.html (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_prefs_general.html Sun Oct  2 17:51:00 2016
@@ -35,7 +35,7 @@
       <label class="control-label" for="name">Full name:</label>
       <div class="controls">
         <input type="text" id="name" name="name" size="30"
-            placeholder="Jack Pumpkinhead"
+            placeholder="${_('Jack Pumpkinhead')}"
             value="${settings.session.get('name')}" />
       </div>
     </div>
@@ -43,7 +43,7 @@
       <label class="control-label" for="email">Email address:</label>
       <div class="controls">
         <input type="text" id="email" name="email" size="30"
-            placeholder="jack@marvelous.land-of.oz"
+            placeholder="${_('jack@marvelous.land-of.oz')}"
             value="${settings.session.get('email')}" />
       </div>
     </div>

Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_product_edit.html
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_product_edit.html?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_product_edit.html (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_product_edit.html Sun Oct  2 17:51:00 2016
@@ -66,7 +66,7 @@
                 <div class="controls">
                   <p><textarea id="description" name="description" class="wikitext trac-resizable input-xxlarge" rows="10" cols="78">
 $product.description</textarea></p>
-                  <p class="help-block">
+                  <p class="help-block" i18n:msg="">
                     <span class="label label-info">Tip</span>
                     You may use <a tabindex="42" href="${href.wiki('WikiFormatting')}">WikiFormatting</a> here.
                   </p>

Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_register.html
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_register.html?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_register.html (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_register.html Sun Oct  2 17:51:00 2016
@@ -62,7 +62,7 @@
                   <div class="controls">
                     <input type="text" id="username" name="username"
                           class="textwidget input-large no-add-on"
-                          value="${acctmgr.username}" placeholder="e.g. newuser"/>
+                          value="${acctmgr.username}" placeholder="${_('e.g. newuser')}"/>
                   </div>
               </div>
               <div class="control-group">
@@ -74,7 +74,7 @@
                     </span>
                     <input type="password" name="password" id="password"
                            class="textwidget input-large"
-                           placeholder="Better use letters and numbers" />
+                           placeholder="${_('Better use letters and numbers')}" />
                     </div>
                 </div>
               </div>
@@ -87,7 +87,7 @@
                     </span>
                     <input type="password" name="password_confirm"
                            id="pasword_confirm" class="textwidget input-large"
-                           placeholder="Must match password" />
+                           placeholder="${_('Must match password')}" />
                   </div>
                 </div>
               </div>
@@ -100,7 +100,7 @@
                     </span>
                     <input type="text" name="email" value="${acctmgr.email}"
                            class="textwidget input-large" id="email"
-                           placeholder="user@domain.com" />
+                           placeholder="${_('user@domain.com')}" />
                   </div>
                   <p class="help-block">
                     <span class="label label-info">Notice</span>
@@ -137,7 +137,7 @@
                   <input type="text" name="name" id="name"
                          class="textwidget input-large"
                          value="${acctmgr.name}"
-                         placeholder="e.g. John Smith" />
+                         placeholder="${_('e.g. John Smith')}" />
                 </div>
               </div>
               <div py:if="not verify_account_enabled" class="control-group">
@@ -149,7 +149,7 @@
                     </span>
                     <input type="text" name="email" value="${acctmgr.email}"
                            class="textwidget input-large"
-                           placeholder="user@domain.com" />
+                           placeholder="${_('user@domain.com')}" />
                     <p py:if="reset_password_enabled" class="help-block">
                       <span class="label label-info">Notice</span>
                       Entering your email address

Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_reset_password.html
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_reset_password.html?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_reset_password.html (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_reset_password.html Sun Oct  2 17:51:00 2016
@@ -74,7 +74,7 @@
           <label for="username" class="control-label">Username:</label>
           <div class="controls">
             <input type="text" class="textwidget input-large no-add-on"
-                   id="username" placeholder="e.g. myuser" name="username" />
+                   id="username" placeholder="${_('e.g. myuser')}" name="username" />
           </div>
         </div>
         <div class="control-group">
@@ -86,7 +86,7 @@
               </span>
               <input type="text" name="email" id="email" 
                      class="textwidget input-large"
-                     placeholder="user@domain.com"/>
+                     placeholder="${_('user@domain.com')}"/>
             </div>
           </div>
         </div>

Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_ticket.html
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_ticket.html?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_ticket.html (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bh_ticket.html Sun Oct  2 17:51:00 2016
@@ -411,7 +411,7 @@
 
                 <py:if test="ticket.exists">
                   <textarea id="edit-comment" class="trac-resizable span7 hide" name="edit-comment"
-                      rows="4" placeholder="Enter new comment" onfocus="this.placeholder = ''"
+                      rows="4" placeholder="${_('Enter new comment')}" onfocus="this.placeholder = ''"
                       onblur="this.placeholder = 'Enter new comment'"></textarea>
 
                   <div id="edit-state-buttons-below" class="btn-toolbar hide">
@@ -445,7 +445,7 @@
             </div>
           </form>
 
-          <div py:if="bhrelations and ticket.exists and has_property_editor" class="relations">
+          <div py:if="bhrelations and ticket.exists" class="relations">
             <bh:widget urn="TicketRelations">
               <bh:args>
                 <bh:arg name="tid">$ticket.id</bh:arg>
@@ -504,7 +504,7 @@
                 <!--! Comment field -->
                 <fieldset class="iefix">
                   <textarea id="comment" name="comment" class="trac-resizable" rows="2"
-                      placeholder="Enter new comment" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Enter new comment'">${comment}</textarea>
+                      placeholder="${_('Enter new comment')}" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Enter new comment'">${comment}</textarea>
                   <input type="submit" id="comment-submit" class="btn pull-right" name="submit" value="${_('Submit')}" />
                   <label for="comment" class="help-block" i18n:msg="">
                     <span class="label label-info">Tip</span>

Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bloodhound_theme.html
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bloodhound_theme.html?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bloodhound_theme.html (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/templates/bloodhound_theme.html Sun Oct  2 17:51:00 2016
@@ -161,14 +161,14 @@
                             <div class="control-group">
                               <label for="field-summary">Summary</label>
                               <input type="text" id="field-summary" class="input-block-level"
-                                  name="field_summary" placeholder="Ticket summary" />
+                                  name="field_summary" placeholder="${dgettext('bhtheme', 'Ticket summary')}" />
                             </div>
 
                             <div class="control-group">
                               <label for="field-description">Description</label>
                               <textarea id="field-description" class="input-block-level"
                                   name="field_description" rows="3" cols="28"
-                                  placeholder="Ticket description"></textarea>
+                                  placeholder="${dgettext('bhtheme', 'Ticket description')}"></textarea>
                             </div>
 
                             <div class="control-group">
@@ -314,14 +314,14 @@
                     <div class="control-group">
                       <label for="inline-field-summary">Summary</label>
                       <input type="text" id="inline-field-summary" class="input-block-level"
-                          name="field_summary" placeholder="Ticket summary" />
+                          name="field_summary" placeholder="${dgettext('bhtheme', 'Ticket summary')}" />
                     </div>
 
                     <div class="control-group">
                       <label for="inline-field-description">Description</label>
                       <textarea id="inline-field-description" class="input-block-level"
                           name="field_description" rows="3" cols="28"
-                          placeholder="Ticket description"></textarea>
+                          placeholder="${dgettext('bhtheme', 'Ticket description')}"></textarea>
                     </div>
 
                     <div class="control-group">

Propchange: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/tests/__init__.py
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Sun Oct  2 17:51:00 2016
@@ -0,0 +1,3 @@
+/bloodhound/branches/bep_0003_multiproduct/bloodhound_theme/bhtheme/tests/__init__.py:1461360-1463488
+/bloodhound/branches/bep_0010_ticket_numbering/bloodhound_theme/bhtheme/tests/__init__.py:1506462-1517786
+/incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_theme/bhtheme/tests/__init__.py:1420073-1461359

Propchange: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/tests/theme.py
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Sun Oct  2 17:51:00 2016
@@ -0,0 +1,3 @@
+/bloodhound/branches/bep_0003_multiproduct/bloodhound_theme/bhtheme/tests/theme.py:1461360-1463488
+/bloodhound/branches/bep_0010_ticket_numbering/bloodhound_theme/bhtheme/tests/theme.py:1506462-1517786
+/incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_theme/bhtheme/tests/theme.py:1420073-1461359

Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/theme.py
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/theme.py?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/theme.py (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/bhtheme/theme.py Sun Oct  2 17:51:00 2016
@@ -36,6 +36,7 @@ from trac.core import Component, TracErr
 from trac.mimeview.api import get_mimetype
 from trac.perm import IPermissionRequestor
 from trac.resource import get_resource_url, Neighborhood, Resource
+from trac.ticket.api import TicketSystem
 from trac.ticket.model import Ticket, Milestone
 from trac.ticket.notification import TicketNotifyEmail
 from trac.ticket.web_ui import TicketModule

Modified: bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/setup.py
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/setup.py?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/setup.py (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/bloodhound_theme/setup.py Sun Oct  2 17:51:00 2016
@@ -42,7 +42,7 @@ except ImportError:
 
 setup(
   name = 'BloodhoundTheme',
-  version = '0.8.0',
+  version = '0.9.0',
   description = "Theme for Apache(TM) Bloodhound.",
   author = "Apache Bloodhound",
   license = "Apache License v2",
@@ -56,6 +56,7 @@ setup(
       'Framework :: Trac',
     ],
   install_requires = ['BloodhoundDashboardPlugin', 'TracThemeEngine'],
+  test_suite = 'bhtheme.tests.suite',
   tests_require = ['unittest2'] if sys.version_info < (2, 7) else [],
   entry_points = {
       'trac.plugins': [

Modified: bloodhound/branches/bep_0011_batch_create_tickets/installer/README.rst
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/installer/README.rst?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/installer/README.rst (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/installer/README.rst Sun Oct  2 17:51:00 2016
@@ -108,7 +108,7 @@ or on windows::
 
   $ cd bloodhound\installer
   $ virtualenv --system-site-packages bloodhound
-  $ bloodhound\bin\activate.bat
+  $ bloodhound\Scripts\activate.bat
 
 From now on, all shell commands should be run within the activated virtualenv
 so run::
@@ -117,7 +117,7 @@ so run::
 
 or::
 
-  $ bloodhound\bin\activate.bat
+  $ bloodhound\Scripts\activate.bat
 
 as appropriate if you need to continue running these instructions in a fresh 
 shell.

Modified: bloodhound/branches/bep_0011_batch_create_tickets/installer/bloodhound_setup.py
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/installer/bloodhound_setup.py?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/installer/bloodhound_setup.py (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/installer/bloodhound_setup.py Sun Oct  2 17:51:00 2016
@@ -18,464 +18,7 @@
 #  under the License.
 """Initial configuration for Bloodhound"""
 
-import os
-import pkg_resources
-import shutil
-import sys
-from createdigest import htdigest_create
-from getpass import getpass
-from optparse import OptionParser
-
-try:
-    from trac.admin.console import TracAdmin
-    from trac.config import Configuration
-    from trac.util import translation
-    from trac.util.translation import _, get_negotiated_locale, has_babel
-except ImportError, e:
-    print("Requirements must be installed before running "
-          "bloodhound_setup.py.\n"
-          "You can install them with the following command:\n"
-          "   pip install -r requirements.txt\n")
-    sys.exit(1)
-
-try:
-    import psycopg2
-except ImportError:
-    psycopg2 = None
-
-try:
-    import MySQLdb as mysqldb
-except ImportError:
-    mysqldb = None
-
-LANG = os.environ.get('LANG')
-
-MAXBACKUPNUMBER = 64  # Max attempts to create backup file
-
-SUPPORTED_DBTYPES = ('sqlite', 'postgres', 'mysql')
-DEFAULT_DB_USER = 'bloodhound'
-DEFAULT_DB_NAME = 'bloodhound'
-DEFAULT_ADMIN_USER = 'admin'
-
-BH_PROJECT_SITE = 'https://issues.apache.org/bloodhound/'
-BASE_CONFIG = {'components': {'bhtheme.*': 'enabled',
-                              'bhdashboard.*': 'enabled',
-                              'multiproduct.*': 'enabled',
-                              'permredirect.*': 'enabled',
-                              'themeengine.api.*': 'enabled',
-                              'themeengine.web_ui.*': 'enabled',
-                              'bhsearch.*': 'enabled',
-                              'bhrelations.*': 'enabled',
-                              'trac.ticket.web_ui.ticketmodule': 'disabled',
-                              'trac.ticket.report.reportmodule': 'disabled',
-                              },
-               'header_logo': {'src': '',},
-               'mainnav': {'roadmap': 'disabled',
-                           'search': 'disabled',
-                           'timeline': 'disabled',},
-               'metanav': {'about': 'disabled',},
-               'theme': {'theme': 'bloodhound',},
-               'trac': {'mainnav': ','.join(['dashboard', 'wiki', 'browser',
-                                             'tickets', 'newticket', 'timeline',
-                                             'roadmap', 'search']),
-                        'environment_factory': '',
-                        'request_factory': '',},
-               'project': {'footer': ('Get involved with '
-                                      '<a href="%(site)s">Apache Bloodhound</a>'
-                                      % {'site': BH_PROJECT_SITE,}),},
-               'labels': {'application_short': 'Bloodhound',
-                          'application_full': 'Apache Bloodhound',
-                          'footer_left_prefix': '',
-                          'footer_left_postfix': '',
-                          'footer_right': ''},
-               'bhsearch': {'is_default': 'true', 'enable_redirect': 'true'},
-}
-
-ACCOUNTS_CONFIG = {'account-manager': {'account_changes_notify_addresses' : '',
-                                       'authentication_url' : '',
-                                       'db_htdigest_realm' : '',
-                                       'force_passwd_change' :'true',
-                                       'hash_method' : 'HtDigestHashMethod',
-                                       'htdigest_file' : '',
-                                       'htdigest_realm' : '',
-                                       'htpasswd_file' : '',
-                                       'htpasswd_hash_type' : 'crypt',
-                                       'password_store' : 'HtDigestStore',
-                                       'persistent_sessions' : 'False',
-                                       'refresh_passwd' : 'False',
-                                       'user_lock_max_time' : '0',
-                                       'verify_email' : 'True',
-                                       },
-                   'components': {'acct_mgr.admin.*' : 'enabled',
-                                  'acct_mgr.api.accountmanager' : 'enabled',
-                                  'acct_mgr.guard.accountguard' : 'enabled',
-                                  'acct_mgr.htfile.htdigeststore' : 'enabled',
-                                  'acct_mgr.macros.*': 'enabled',
-                                  'acct_mgr.web_ui.accountmodule' : 'enabled',
-                                  'acct_mgr.web_ui.loginmodule' : 'enabled',
-                                  'trac.web.auth.loginmodule' : 'disabled',
-                                  },
-                   }
-
-class BloodhoundSetup(object):
-    """Creates a Bloodhound environment"""
-
-    def __init__(self, opts):
-        if isinstance(opts, dict):
-            options = dict(opts)
-        else:
-            options = vars(opts)
-        self.options = options
-
-        if 'project' not in options:
-            options['project'] = 'main'
-        if 'envsdir' not in options:
-            options['envsdir'] = os.path.join('bloodhound',
-                                              'environments')
-
-        # Flags used when running the functional test suite
-        self.apply_bhwiki_upgrades = True
-
-    def _generate_db_str(self, options):
-        """Builds an appropriate db string for trac-admin for sqlite and
-        postgres options. Also allows for a user to provide their own db
-        string to allow database initialisation beyond these."""
-        dbdata = {'type': options.get('dbtype', 'sqlite'),
-                  'user': options.get('dbuser'),
-                  'pass': options.get('dbpass'),
-                  'host': options.get('dbhost', 'localhost'),
-                  'port': options.get('dbport'),
-                  'name': options.get('dbname', 'bloodhound'),
-                  }
-
-        db = options.get('dbstring')
-        if db is None:
-            if dbdata['type'] in ('postgres', 'mysql') \
-                    and dbdata['user'] is not None \
-                    and dbdata['pass'] is not None:
-                if dbdata['port'] is not None:
-                    db = '%(type)s://%(user)s:%(pass)s@%(host)s:%(port)s/%(name)s'
-                else:  # no port specified = default port
-                    db = '%(type)s://%(user)s:%(pass)s@%(host)s/%(name)s'
-            else:
-                db = '%%(type)s:%s' % os.path.join('db', '%(name)s.db')
-        return db % dbdata
-
-    def setup(self, **kwargs):
-        """Do the setup. A kwargs dictionary may be passed to override base
-        options, potentially allowing for multiple environment creation."""
-
-        if has_babel:
-            import babel
-            try:
-                locale = get_negotiated_locale([LANG])
-                locale = locale or babel.Locale.default()
-            except babel.UnknownLocaleError:
-                pass
-            translation.activate(locale)
-
-        options = dict(self.options)
-        options.update(kwargs)
-        if psycopg2 is None and options.get('dbtype') == 'postgres':
-            print "psycopg2 needs to be installed to initialise a postgresql db"
-            return False
-        elif mysqldb is None and options.get('dbtype') == 'mysql':
-            print "MySQLdb needs to be installed to initialise a mysql db"
-            return False
-
-        environments_path = options['envsdir']
-        if not os.path.exists(environments_path):
-            os.makedirs(environments_path)
-
-        new_env =  os.path.join(environments_path, options['project'])
-        tracini = os.path.abspath(os.path.join(new_env, 'conf', 'trac.ini'))
-        baseini = os.path.abspath(os.path.join(new_env, 'conf', 'base.ini'))
-        options['inherit'] = '"' + baseini + '"'
-
-        options['db'] = self._generate_db_str(options)
-        if 'repo_type' not in options or options['repo_type'] is None:
-            options['repo_type'] = ''
-        if 'repo_path' not in options or options['repo_path'] is None:
-            options['repo_path'] = ''
-        if (len(options['repo_type']) > 0) ^ (len(options['repo_path']) > 0):
-            print "Error: Specifying a repository requires both the "\
-                  "repository-type and the repository-path options."
-            return False
-
-        custom_prefix = 'default_product_prefix'
-        if custom_prefix in options and options[custom_prefix]:
-            default_product_prefix = options[custom_prefix]
-        else:
-            default_product_prefix = '@'
-
-        digestfile = os.path.abspath(os.path.join(new_env,
-                                                  options['digestfile']))
-        realm =  options['realm']
-        adminuser = options['adminuser']
-        adminpass = options['adminpass']
-
-        # create base options:
-        accounts_config = dict(ACCOUNTS_CONFIG)
-        accounts_config['account-manager']['htdigest_file'] = digestfile
-        accounts_config['account-manager']['htdigest_realm'] = realm
-
-        trac = TracAdmin(os.path.abspath(new_env))
-        if not trac.env_check():
-            try:
-                rv = trac.do_initenv('%(project)s %(db)s '
-                                     '%(repo_type)s %(repo_path)s '
-                                     '--inherit=%(inherit)s '
-                                     '--nowiki'
-                                     % options)
-                if rv == 2:
-                    raise SystemExit
-            except SystemExit:
-                print ("Error: Unable to initialise the environment.")
-                return False
-        else:
-            print ("Warning: Environment already exists at %s." % new_env)
-            self.writeconfig(tracini, [{'inherit': {'file': baseini},},])
-
-        base_config = dict(BASE_CONFIG)
-        environment_factory_path = os.path.abspath(
-                                      os.path.normpath(
-                                          os.path.join(options['sourcedir'],
-                                                               'bloodhound_multiproduct/multiproduct/hooks.py')))
-        request_factory_path = os.path.abspath(
-                                   os.path.normpath(
-                                       os.path.join(options['sourcedir'],
-                                                            'bloodhound_multiproduct/multiproduct/hooks.py')))
-        base_config['trac']['environment_factory'] = environment_factory_path
-        base_config['trac']['request_factory'] = request_factory_path
-        if default_product_prefix != '@':
-            base_config['multiproduct'] = dict(
-                default_product_prefix=default_product_prefix
-            )
-
-        self.writeconfig(baseini, [base_config, accounts_config])
-
-        if os.path.exists(digestfile):
-            backupfile(digestfile)
-        htdigest_create(digestfile, adminuser, realm, adminpass)
-
-        print "Adding TRAC_ADMIN permissions to the admin user %s" % adminuser
-        trac.onecmd('permission add %s TRAC_ADMIN' % adminuser)
-
-        # get fresh TracAdmin instance (original does not know about base.ini)
-        bloodhound = TracAdmin(os.path.abspath(new_env))
-
-        # final upgrade
-        print "Running upgrades"
-        bloodhound.onecmd('upgrade')
-        pages = []
-        pages.append(pkg_resources.resource_filename('bhdashboard',
-                                                 'default-pages'))
-        pages.append(pkg_resources.resource_filename('bhsearch',
-                                                 'default-pages'))
-        bloodhound.onecmd('wiki load %s' % " ".join(pages))
-
-        print "Running wiki upgrades"
-        bloodhound.onecmd('wiki upgrade')
-
-        if self.apply_bhwiki_upgrades:
-            print "Running wiki Bloodhound upgrades"
-            bloodhound.onecmd('wiki bh-upgrade')
-        else:
-            print "Skipping Bloodhound wiki upgrades"
-
-        print "Loading default product wiki"
-        bloodhound.onecmd('product admin %s wiki load %s' %
-                          (default_product_prefix,
-                           " ".join(pages)))
-
-        print "Running default product wiki upgrades"
-        bloodhound.onecmd('product admin %s wiki upgrade' %
-                          default_product_prefix)
-
-        if self.apply_bhwiki_upgrades:
-            print "Running default product Bloodhound wiki upgrades"
-            bloodhound.onecmd('product admin %s wiki bh-upgrade' %
-                              default_product_prefix)
-        else:
-            print "Skipping default product Bloodhound wiki upgrades"
-
-        print """
-You can now start Bloodhound by running:
-
-  tracd --port=8000 %s
-
-And point your browser at http://localhost:8000/%s
-""" % (os.path.abspath(new_env), options['project'])
-        return True
-
-    def writeconfig(self, filepath, dicts=[]):
-        """Writes or updates a config file. A list of dictionaries is used so
-        that options for different aspects of the configuration can be kept
-        separate while being able to update the same sections. Note that the
-        result is order dependent where two dictionaries update the same
-        option.
-        """
-        config = Configuration(filepath)
-        file_changed = False
-        for data in dicts:
-            for section, options in data.iteritems():
-                for key, value in options.iteritems():
-                    if config.get(section, key, None) != value:
-                        # This should be expected to generate a false positive
-                        # when two dictionaries update the same option
-                        file_changed = True
-                    config.set(section, key, value)
-        if file_changed:
-            if os.path.exists(filepath):
-                backupfile(filepath)
-            config.save()
-
-def backupfile(filepath):
-    """Very basic backup routine"""
-    print "Warning: Updating %s." % filepath
-    backuppath = None
-    if not os.path.exists(filepath + '_bak'):
-        backuppath = filepath + '_bak'
-    else:
-        backuptemplate = filepath + '_bak_%d'
-        for i in xrange(MAXBACKUPNUMBER):
-            if not os.path.exists(backuptemplate % i):
-                backuppath = backuptemplate % i
-                break
-    if backuppath is not None:
-        shutil.copyfile(filepath, backuppath)
-        print "Backup created at %s." % backuppath
-    else:
-        print "No backup created (too many other backups found)"
-    return backuppath
-
-def handle_options():
-    """Parses the command line, with basic prompting for choices where options
-    are not specified."""
-    parser = OptionParser()
-
-    # Base Trac Options
-    parser.add_option('--project', dest='project',
-                      help='Set the top project name', default='main')
-    parser.add_option('--source_directory', dest='sourcedir',
-                      help='Specify root source code directory',
-                      default=os.path.normpath(os.path.join(os.getcwd(), '../'))),
-    parser.add_option('--environments_directory', dest='envsdir',
-                      help='Set the directory to contain environments',
-                      default=os.path.join('bloodhound', 'environments'))
-    parser.add_option('-d', '--database-type', dest='dbtype',
-                      help="Specify as either 'sqlite', 'postgres' or 'mysql'",
-                      default='')
-    parser.add_option('--database-string', dest='dbstring',
-                      help=('Advanced: provide a custom database string, '
-                            'overriding other database options'),
-                      default=None)
-    parser.add_option('--database-name', dest='dbname',
-                      help='Specify the database name',
-                      default='bloodhound')
-    parser.add_option('-u', '--user', dest='dbuser',
-                      help='Specify the db user (required for postgres and mysql)',
-                      default='')
-    parser.add_option('-p', '--password', dest='dbpass',
-                      help='Specify the db password (required for postgres and mysql)')
-    parser.add_option('--database-host', dest='dbhost',
-                      help='Specify the database host (optional for postgres and mysql)',
-                      default='localhost')
-    parser.add_option('--database-port', dest='dbport',
-                      help='Specify the database port (optional for postgres and mysql)',
-                      default='5432')
-
-    # Account Manager Options
-    parser.add_option('--admin-password', dest='adminpass',
-                      help='create an admin user in an htdigest file')
-    parser.add_option('--digest-realm', dest='realm', default='bloodhound',
-                      help='authentication realm for htdigest file')
-    parser.add_option('--admin-user', dest='adminuser', default='',
-                      help='admin user name for htdigest file')
-    parser.add_option('--digest-file', dest='digestfile',
-                      default='bloodhound.htdigest',
-                      help='filename for the htdigest file')
-
-    # Repository Options
-    parser.add_option('--repository-type', dest='repo_type',
-                      help='specify the repository type - ')
-    parser.add_option('--repository-path', dest='repo_path',
-                      help='specify the repository type')
-
-    # Multiproduct options
-    parser.add_option('--default-product-prefix', dest='default_product_prefix',
-                      help='Specify prefix for default product (defaults to @')
-
-    (options, args) = parser.parse_args()
-    if args:
-        print "Unprocessed options/arguments: ", args
-
-    def ask_question(question, default=None):
-        """Basic question asking functionality"""
-        if default:
-            answer = raw_input(question % default)
-        else:
-            answer = raw_input(question)
-        return answer if answer else default
-
-    def ask_password(user):
-        """Asks for a password to be provided for setting purposes"""
-        attempts = 3
-        for attempt in range(attempts):
-            if attempt > 0:
-                print "Passwords empty or did not match. Please try again",
-                print "(attempt %d/%d)""" % (attempt+1, attempts)
-            password1 = getpass('Enter a new password for "%s": ' % user)
-            password2 = getpass('Please reenter the password: ')
-            if password1 and password1 == password2:
-                return password1
-        print "Passwords did not match. Quiting."
-        sys.exit(1)
-
-    if options.dbtype.lower() not in SUPPORTED_DBTYPES:
-        answer = ask_question("""
-This installer is able to install Apache Bloodhound with either SQLite,
-PostgreSQL or MySQL databases. SQLite is an easier option for installing
-Bloodhound as SQLite support is built into Python and requires no special
-permissions to run. However, PostgreSQL and MySQL are generally expected to
-be more robust for production use.
-What type of database do you want to instant to (%s)?
-[%%s]: """ % '/'.join(SUPPORTED_DBTYPES), default='sqlite')
-        answer = answer.lower()
-        if answer in SUPPORTED_DBTYPES:
-            options.dbtype = answer
-        else:
-            print "Unrecognized dbtype \"%s\". Quiting." % answer
-            sys.exit(1)
-    else:
-        options.dbtype = options.dbtype.lower()
-
-    if options.dbtype in ('postgres','mysql'):
-        if not options.dbuser:
-            options.dbuser = ask_question("""
-For PostgreSQL/MySQL you need to have PostgreSQL/MySQL installed and you need
-to have created a database user to connect to the database with. Setting this 
-up may require admin access rights to the server.
-DB user name [%s]: """, DEFAULT_DB_USER)
-
-        if not options.dbpass:
-            options.dbpass = ask_password(options.dbuser)
-
-        if not options.dbname:
-            options.dbname = ask_question("""
-For PostgreSQL/MySQL setup, you need to specify a database that you have
-created for Bloodhound to use. This installer currently assumes that this
-database will be empty. DB name [%s]: """, DEFAULT_DB_NAME)
-    if not options.adminuser:
-        options.adminuser = ask_question("""
-Please supply a username for the admin user [%s]: """, DEFAULT_ADMIN_USER)
-    if not options.adminpass:
-        options.adminpass = ask_password(options.adminuser)
-
-    return options
-
+from bhsetup import bloodhound_setup
 
 if __name__ == '__main__':
-    options = handle_options()
-    bsetup = BloodhoundSetup(options)
-    bsetup.setup()
+    bloodhound_setup.run()

Modified: bloodhound/branches/bep_0011_batch_create_tickets/installer/requirements-dev.txt
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/installer/requirements-dev.txt?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/installer/requirements-dev.txt (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/installer/requirements-dev.txt Sun Oct  2 17:51:00 2016
@@ -15,7 +15,7 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
-Pygments
+Pygments==1.6
 pytz==2013b
 sqlparse==0.1.7
 Babel==0.9.6

Modified: bloodhound/branches/bep_0011_batch_create_tickets/installer/requirements.txt
URL: http://svn.apache.org/viewvc/bloodhound/branches/bep_0011_batch_create_tickets/installer/requirements.txt?rev=1763089&r1=1763088&r2=1763089&view=diff
==============================================================================
--- bloodhound/branches/bep_0011_batch_create_tickets/installer/requirements.txt (original)
+++ bloodhound/branches/bep_0011_batch_create_tickets/installer/requirements.txt Sun Oct  2 17:51:00 2016
@@ -15,7 +15,7 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
-Pygments
+Pygments==1.6
 pytz==2013b
 sqlparse==0.1.7
 Babel==0.9.6