You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bloodhound.apache.org by rj...@apache.org on 2014/11/15 02:14:53 UTC

svn commit: r1639823 [10/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/ sample-plugins/workflow/ trac/ trac/admin/ trac/admi...

Modified: bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/messages.pot
URL: http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/messages.pot?rev=1639823&r1=1639822&r2=1639823&view=diff
==============================================================================
--- bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/messages.pot (original)
+++ bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/messages.pot Sat Nov 15 01:14:46 2014
@@ -1,14 +1,14 @@
 # Translations template for Trac.
-# Copyright (C) 2013 Edgewall Software
+# Copyright (C) 2014 Edgewall Software
 # This file is distributed under the same license as the Trac project.
-# FIRST AUTHOR <EM...@ADDRESS>, 2013.
+# FIRST AUTHOR <EM...@ADDRESS>, 2014.
 #
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: Trac 1.0.1\n"
+"Project-Id-Version: Trac 1.0.2\n"
 "Report-Msgid-Bugs-To: trac-dev@googlegroups.com\n"
-"POT-Creation-Date: 2013-01-27 11:21+0900\n"
+"POT-Creation-Date: 2014-09-01 12:43+0000\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"
@@ -44,7 +44,7 @@ msgstr ""
 msgid "Create a copy of this ticket"
 msgstr ""
 
-#: tracopt/ticket/commit_updater.py:275
+#: tracopt/ticket/commit_updater.py:283
 msgid ""
 "Insert a changeset message into the output.\n"
 "\n"
@@ -59,12 +59,16 @@ msgid ""
 " - `revision`: the revision of the desired changeset"
 msgstr ""
 
+#: tracopt/ticket/commit_updater.py:313
+msgid "(The changeset message doesn't reference this ticket)"
+msgstr ""
+
 #: tracopt/ticket/deleter.py:73 tracopt/ticket/deleter.py:90
-#: trac/ticket/templates/report_list.html:82
+#: trac/ticket/templates/report_list.html:92
 msgid "Delete"
 msgstr ""
 
-#: tracopt/ticket/deleter.py:74 tracopt/ticket/templates/ticket_delete.html:42
+#: tracopt/ticket/deleter.py:74 tracopt/ticket/templates/ticket_delete.html:51
 msgid "Delete ticket"
 msgstr ""
 
@@ -88,89 +92,112 @@ msgstr ""
 msgid "Comment %(num)s not found"
 msgstr ""
 
-#: tracopt/ticket/templates/ticket_delete.html:11
+#: tracopt/ticket/templates/ticket_delete.html:21
 #, python-format
 msgid "Delete Ticket #%(id)s"
 msgstr ""
 
-#: tracopt/ticket/templates/ticket_delete.html:12
-#: tracopt/ticket/templates/ticket_delete.html:48
+#: tracopt/ticket/templates/ticket_delete.html:22
+#: tracopt/ticket/templates/ticket_delete.html:58
 #, python-format
 msgid "Delete comment %(num)s on Ticket #%(id)s"
 msgstr ""
 
-#: tracopt/ticket/templates/ticket_delete.html:20
+#: tracopt/ticket/templates/ticket_delete.html:30
 #, python-format
 msgid "Delete [1:Ticket #%(id)s]"
 msgstr ""
 
-#: tracopt/ticket/templates/ticket_delete.html:32
+#: tracopt/ticket/templates/ticket_delete.html:42
 msgid "Are you sure you want to delete this ticket?"
 msgstr ""
 
-#: tracopt/ticket/templates/ticket_delete.html:33
+#: tracopt/ticket/templates/ticket_delete.html:43
 #, python-format
 msgid ""
 "(comments: %(comments)s,\n"
 "                 attachments: %(attachments)s)"
 msgstr ""
 
-#: tracopt/ticket/templates/ticket_delete.html:36
-#: tracopt/ticket/templates/ticket_delete.html:61
-#: trac/templates/attachment.html:70 trac/wiki/templates/wiki_delete.html:95
+#: tracopt/ticket/templates/ticket_delete.html:46
+#: tracopt/ticket/templates/ticket_delete.html:71
+#: trac/templates/attachment.html:80 trac/wiki/templates/wiki_delete.html:105
 msgid "This is an irreversible operation."
 msgstr ""
 
-#: tracopt/ticket/templates/ticket_delete.html:41
-#: tracopt/ticket/templates/ticket_delete.html:65
-#: trac/admin/templates/admin_components.html:55
-#: trac/admin/templates/admin_enums.html:24
-#: trac/admin/templates/admin_milestones.html:74
-#: trac/admin/templates/admin_versions.html:50
-#: trac/templates/attachment.html:63 trac/templates/attachment.html:76
-#: trac/ticket/templates/milestone_delete.html:40
-#: trac/ticket/templates/milestone_edit.html:108
-#: trac/ticket/templates/report_delete.html:21
-#: trac/ticket/templates/report_edit.html:44
-#: trac/ticket/templates/ticket_change.html:118
-#: trac/versioncontrol/templates/admin_repositories.html:84
-#: trac/wiki/templates/wiki_delete.html:98
-#: trac/wiki/templates/wiki_edit_form.html:73
-#: trac/wiki/templates/wiki_rename.html:32
+#: tracopt/ticket/templates/ticket_delete.html:52
+#: tracopt/ticket/templates/ticket_delete.html:76
+#: trac/templates/attachment.html:73 trac/templates/attachment.html:87
+#: trac/ticket/templates/admin_components.html:64
+#: trac/ticket/templates/admin_enums.html:38
+#: trac/ticket/templates/admin_milestones.html:93
+#: trac/ticket/templates/admin_versions.html:61
+#: trac/ticket/templates/milestone_delete.html:45
+#: trac/ticket/templates/milestone_edit.html:128
+#: trac/ticket/templates/report_delete.html:32
+#: trac/ticket/templates/report_edit.html:62
+#: trac/ticket/templates/ticket_change.html:127
+#: trac/versioncontrol/templates/admin_repositories.html:98
+#: trac/wiki/templates/wiki_delete.html:112
+#: trac/wiki/templates/wiki_edit_form.html:84
+#: trac/wiki/templates/wiki_rename.html:43
 msgid "Cancel"
 msgstr ""
 
-#: tracopt/ticket/templates/ticket_delete.html:61
+#: tracopt/ticket/templates/ticket_delete.html:71
 msgid "Are you sure you want to delete this ticket comment?"
 msgstr ""
 
-#: tracopt/ticket/templates/ticket_delete.html:66
+#: tracopt/ticket/templates/ticket_delete.html:75
 msgid "Delete comment"
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_fs.py:283
+#. TRANSLATOR: modified ('diff') (link)
+#: tracopt/versioncontrol/git/git_fs.py:423 trac/ticket/web_ui.py:1745
+#: trac/ticket/templates/ticket_change.html:164 trac/wiki/macros.py:361
+#: trac/wiki/web_ui.py:765
+msgid "diff"
+msgstr ""
+
+#: tracopt/versioncontrol/git/git_fs.py:424
+msgid "Diff against this parent (show the changes merged from the other parents)"
+msgstr ""
+
+#: tracopt/versioncontrol/git/git_fs.py:433
+msgid ""
+"Note: this is a <strong>merge</strong> changeset, the changes displayed "
+"below correspond to the merge itself."
+msgstr ""
+
+#: tracopt/versioncontrol/git/git_fs.py:440
+msgid ""
+"Use the <tt>(diff)</tt> links above to see all the changes relative to "
+"each parent."
+msgstr ""
+
+#: tracopt/versioncontrol/svn/svn_fs.py:306
 #, python-format
 msgid "Subversion >= 1.0 required, found %(version)s"
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_fs.py:337
+#: tracopt/versioncontrol/svn/svn_fs.py:362
 #, python-format
 msgid "%(path)s does not appear to be a Subversion repository."
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_fs.py:344
+#: tracopt/versioncontrol/svn/svn_fs.py:369
 #, python-format
 msgid "Couldn't open Subversion repository %(path)s: %(svn_error)s"
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_fs.py:664
+#: tracopt/versioncontrol/svn/svn_fs.py:694
 #, python-format
 msgid ""
 "Diff mismatch: Base is a %(oldnode)s (%(oldpath)s in revision %(oldrev)s)"
 " and Target is a %(newnode)s (%(newpath)s in revision %(newrev)s)."
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_fs.py:823
+#: tracopt/versioncontrol/svn/svn_fs.py:862
 #, python-format
 msgid "svn blame failed on %(path)s: %(error)s"
 msgstr ""
@@ -179,6 +206,10 @@ msgstr ""
 msgid "No svn:externals configured in trac.ini"
 msgstr ""
 
+#: tracopt/versioncontrol/svn/svn_prop.py:157
+msgid "needs lock"
+msgstr ""
+
 #: tracopt/versioncontrol/svn/svn_prop.py:187
 msgid "blocked"
 msgstr ""
@@ -187,187 +218,193 @@ msgstr ""
 msgid "merged"
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_prop.py:221
+#: tracopt/versioncontrol/svn/svn_prop.py:222
 msgid "non-inheritable"
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_prop.py:223
+#: tracopt/versioncontrol/svn/svn_prop.py:224
 msgid "merged on the directory itself but not below"
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_prop.py:239
+#: tracopt/versioncontrol/svn/svn_prop.py:240
+#: tracopt/versioncontrol/svn/svn_prop.py:262
 msgid "eligible"
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_prop.py:253
+#: tracopt/versioncontrol/svn/svn_prop.py:270
 msgid "(toggle deleted branches)"
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_prop.py:291
+#: tracopt/versioncontrol/svn/svn_prop.py:308
 msgid "View merge source"
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_prop.py:302
+#: tracopt/versioncontrol/svn/svn_prop.py:319
 msgid "No revisions"
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_prop.py:309
+#: tracopt/versioncontrol/svn/svn_prop.py:326
 #, python-format
 msgid "%(title)s: %(revs)s"
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_prop.py:345
+#: tracopt/versioncontrol/svn/svn_prop.py:362
 msgid "merged: "
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_prop.py:345
+#: tracopt/versioncontrol/svn/svn_prop.py:362
 msgid "blocked: "
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_prop.py:346
+#: tracopt/versioncontrol/svn/svn_prop.py:363
 msgid "reverse-merged: "
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_prop.py:346
+#: tracopt/versioncontrol/svn/svn_prop.py:363
 msgid "un-blocked: "
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_prop.py:347
+#: tracopt/versioncontrol/svn/svn_prop.py:364
 msgid "marked as non-inheritable: "
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_prop.py:348
+#: tracopt/versioncontrol/svn/svn_prop.py:365
 msgid "unmarked as non-inheritable: "
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_prop.py:360
+#: tracopt/versioncontrol/svn/svn_prop.py:409
 msgid " (added)"
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_prop.py:397
+#: tracopt/versioncontrol/svn/svn_prop.py:433
 msgid "removed"
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_prop.py:400
+#: tracopt/versioncontrol/svn/svn_prop.py:436
 msgid " (with no actual effect on merging)"
 msgstr ""
 
-#: tracopt/versioncontrol/svn/svn_prop.py:401
+#: tracopt/versioncontrol/svn/svn_prop.py:437
 #, python-format
 msgid "Property %(prop)s changed"
 msgstr ""
 
-#: trac/about.py:47 trac/templates/about.html:10 trac/templates/about.html:29
+#: trac/about.py:47 trac/templates/about.html:20 trac/templates/about.html:41
 msgid "About Trac"
 msgstr ""
 
-#: trac/attachment.py:165
+#: trac/attachment.py:166
 #, python-format
 msgid "Attachment '%(title)s' does not exist."
 msgstr ""
 
-#: trac/attachment.py:167
+#: trac/attachment.py:168
 msgid "Invalid Attachment"
 msgstr ""
 
-#: trac/attachment.py:234
+#: trac/attachment.py:235
 msgid "Could not delete attachment"
 msgstr ""
 
-#: trac/attachment.py:253
+#: trac/attachment.py:254
 #, python-format
 msgid "Cannot reparent attachment \"%(att)s\" as %(realm)s:%(id)s is invalid"
 msgstr ""
 
-#: trac/attachment.py:258
+#: trac/attachment.py:259
 #, python-format
 msgid ""
 "Cannot reparent attachment \"%(att)s\" as it already exists in "
 "%(realm)s:%(id)s"
 msgstr ""
 
-#: trac/attachment.py:277
+#: trac/attachment.py:278
 #, python-format
 msgid "Could not reparent attachment %(name)s"
 msgstr ""
 
-#: trac/attachment.py:313
+#: trac/attachment.py:311
+#, python-format
+msgid "%(parent)s doesn't exist, can't create attachment"
+msgstr ""
+
+#: trac/attachment.py:320
 #, python-format
 msgid "Cannot create attachment \"%(att)s\" as %(realm)s:%(id)s is invalid"
 msgstr ""
 
-#: trac/attachment.py:396
+#: trac/attachment.py:404
 #, python-format
 msgid "Attachment '%(filename)s' not found"
 msgstr ""
 
-#: trac/attachment.py:480
+#: trac/attachment.py:487
 msgid "Bad request"
 msgstr ""
 
-#: trac/attachment.py:499
+#: trac/attachment.py:504
+#, python-format
+msgid "Parent resource %(parent)s doesn't exist"
+msgstr ""
+
+#: trac/attachment.py:510
 #, python-format
 msgid "Back to %(parent)s"
 msgstr ""
 
-#: trac/attachment.py:605
+#: trac/attachment.py:616
 #, python-format
 msgid "%(attachment)s attached to %(resource)s"
 msgstr ""
 
-#: trac/attachment.py:660
+#: trac/attachment.py:671
 #, python-format
 msgid "Unparented attachment %(id)s"
 msgstr ""
 
-#: trac/attachment.py:668
+#: trac/attachment.py:679
 #, python-format
 msgid "Attachment '%(id)s' in %(parent)s"
 msgstr ""
 
-#: trac/attachment.py:671
+#: trac/attachment.py:682
 #, python-format
 msgid "Attachments of %(parent)s"
 msgstr ""
 
-#: trac/attachment.py:688
-#, python-format
-msgid "%(parent)s doesn't exist, can't create attachment"
-msgstr ""
-
-#: trac/attachment.py:695 trac/attachment.py:722 trac/admin/web_ui.py:467
-#: trac/admin/web_ui.py:470 trac/admin/web_ui.py:474
+#: trac/attachment.py:702 trac/attachment.py:729 trac/admin/web_ui.py:471
+#: trac/admin/web_ui.py:474 trac/admin/web_ui.py:478
 msgid "No file uploaded"
 msgstr ""
 
-#: trac/attachment.py:703
+#: trac/attachment.py:710
 msgid "Can't upload empty file"
 msgstr ""
 
-#: trac/attachment.py:708
+#: trac/attachment.py:715
 #, python-format
 msgid "Maximum attachment size: %(num)s bytes"
 msgstr ""
 
-#: trac/attachment.py:709
+#: trac/attachment.py:716
 msgid "Upload failed"
 msgstr ""
 
-#: trac/attachment.py:737
+#: trac/attachment.py:744
 #, python-format
 msgid "Attachment field %(field)s is invalid: %(message)s"
 msgstr ""
 
-#: trac/attachment.py:741
+#: trac/attachment.py:748
 #, python-format
 msgid "Invalid attachment: %(message)s"
 msgstr ""
 
-#: trac/attachment.py:745
+#: trac/attachment.py:752
 msgid "Note: File must be selected again."
 msgstr ""
 
-#: trac/attachment.py:758
+#: trac/attachment.py:765
 #, python-format
 msgid ""
 "You don't have permission to replace the attachment %(name)s. You can "
@@ -375,103 +412,129 @@ msgid ""
 " ATTACHMENT_DELETE permission."
 msgstr ""
 
-#: trac/attachment.py:789
+#: trac/attachment.py:796
 #, python-format
 msgid "%(attachment)s (delete)"
 msgstr ""
 
-#: trac/attachment.py:803
+#: trac/attachment.py:810
 #, python-format
 msgid "Maximum total attachment size: %(num)s bytes"
 msgstr ""
 
-#: trac/attachment.py:804
+#: trac/attachment.py:811
 msgid "Download failed"
 msgstr ""
 
-#: trac/attachment.py:892 trac/versioncontrol/web_ui/browser.py:669
+#: trac/attachment.py:894 trac/versioncontrol/web_ui/browser.py:710
 #: trac/wiki/web_ui.py:73
 msgid "Plain Text"
 msgstr ""
 
-#: trac/attachment.py:898 trac/versioncontrol/web_ui/browser.py:675
+#: trac/attachment.py:900 trac/versioncontrol/web_ui/browser.py:716
 msgid "Original Format"
 msgstr ""
 
-#: trac/attachment.py:940 trac/templates/list_of_attachments.html:20
-#: trac/ticket/templates/ticket_change.html:83
-#: trac/versioncontrol/templates/dir_entries.html:18
-#: trac/versioncontrol/web_ui/browser.py:822
+#: trac/attachment.py:942 trac/templates/list_of_attachments.html:29
+#: trac/ticket/templates/ticket_change.html:92
+#: trac/versioncontrol/templates/dir_entries.html:29
+#: trac/versioncontrol/web_ui/browser.py:865
 msgid "Download"
 msgstr ""
 
-#: trac/attachment.py:1034
+#: trac/attachment.py:1036
 #, python-format
 msgid "Invalid resource identifier '%(id)s'"
 msgstr ""
 
-#: trac/attachment.py:1070 trac/admin/templates/admin_components.html:80
-#: trac/admin/templates/admin_enums.html:48
-#: trac/admin/templates/admin_milestones.html:107
-#: trac/admin/templates/admin_versions.html:83 trac/templates/about.html:69
-#: trac/templates/about.html:90 trac/templates/error.html:160
-#: trac/ticket/admin.py:210 trac/ticket/admin.py:399 trac/ticket/admin.py:559
+#: trac/attachment.py:1072 trac/templates/about.html:81
+#: trac/templates/about.html:102 trac/templates/error.html:179
+#: trac/ticket/admin.py:210 trac/ticket/admin.py:404 trac/ticket/admin.py:574
+#: trac/ticket/templates/admin_components.html:88
+#: trac/ticket/templates/admin_enums.html:61
+#: trac/ticket/templates/admin_milestones.html:124
+#: trac/ticket/templates/admin_versions.html:93
 #: trac/versioncontrol/admin.py:113
-#: trac/versioncontrol/templates/admin_repositories.html:125
-#: trac/web/session.py:417
+#: trac/versioncontrol/templates/admin_repositories.html:138
+#: trac/web/session.py:423
 msgid "Name"
 msgstr ""
 
-#: trac/attachment.py:1070
+#: trac/attachment.py:1072
 msgid "Size"
 msgstr ""
 
-#: trac/attachment.py:1070 trac/templates/history_view.html:30
-#: trac/ticket/templates/ticket.html:350
-#: trac/versioncontrol/templates/revisionlog.html:112
+#: trac/attachment.py:1072 trac/templates/history_view.html:40
+#: trac/ticket/templates/ticket.html:353
+#: trac/versioncontrol/templates/revisionlog.html:122
 msgid "Author"
 msgstr ""
 
-#: trac/attachment.py:1070 trac/templates/history_view.html:29
+#: trac/attachment.py:1072 trac/templates/history_view.html:39
 msgid "Date"
 msgstr ""
 
-#: trac/attachment.py:1071 trac/templates/attachment.html:93
-#: trac/ticket/api.py:299 trac/ticket/templates/ticket.html:379
-#: trac/ticket/templates/ticket_box.html:92
+#: trac/attachment.py:1073 trac/templates/attachment.html:102
+#: trac/ticket/api.py:308 trac/ticket/api.py:530
+#: trac/ticket/templates/ticket.html:382
+#: trac/ticket/templates/ticket_box.html:101
 msgid "Description"
 msgstr ""
 
-#: trac/attachment.py:1094 trac/wiki/admin.py:108
+#: trac/attachment.py:1096 trac/wiki/admin.py:108
 #, python-format
 msgid "File '%(name)s' exists"
 msgstr ""
 
-#: trac/config.py:44
+#: trac/config.py:45
 msgid "Configuration Error"
 msgstr ""
 
-#: trac/config.py:265
+#: trac/config.py:49
+msgid "Look in the Trac log for more information."
+msgstr ""
+
+#: trac/config.py:274
 #, python-format
 msgid "Error reading '%(file)s', make sure it is readable."
 msgstr ""
 
-#: trac/config.py:420
+#: trac/config.py:431
 #, python-format
 msgid "[%(section)s] %(entry)s: expected integer, got %(value)s"
 msgstr ""
 
-#: trac/config.py:438
+#: trac/config.py:449
 #, python-format
 msgid "[%(section)s] %(entry)s: expected float, got %(value)s"
 msgstr ""
 
-#: trac/config.py:666
+#: trac/config.py:622
+msgid "Setting attribute is not allowed."
+msgstr ""
+
+#: trac/config.py:702
 #, python-format
 msgid "[%(section)s] %(entry)s: expected one of (%(choices)s), got %(value)s"
 msgstr ""
 
-#: trac/config.py:761 trac/config.py:774
+#: trac/config.py:741
+#, python-format
+msgid ""
+"Cannot find an implementation of the %(interface)s interface named "
+"%(implementation)s. Please check that the Component is enabled or update "
+"the option %(option)s in trac.ini."
+msgstr ""
+
+#: trac/config.py:779
+#, python-format
+msgid ""
+"Cannot find implementation(s) of the %(interface)s interface named "
+"%(implementation)s. Please check that the Component is enabled or update "
+"the option %(option)s in trac.ini."
+msgstr ""
+
+#: trac/config.py:819 trac/config.py:832
 #, python-format
 msgid "Option '%(option)s' doesn't exist in section '%(section)s'"
 msgstr ""
@@ -480,28 +543,28 @@ msgstr ""
 msgid "Trac Error"
 msgstr ""
 
-#: trac/env.py:218
+#: trac/env.py:219
 msgid ""
 "Visit the Trac open source project at<br /><a "
 "href=\"http://trac.edgewall.org/\">http://trac.edgewall.org/</a>"
 msgstr ""
 
-#: trac/env.py:761
+#: trac/env.py:791
 msgid "Database newer than Trac version"
 msgstr ""
 
-#: trac/env.py:778
+#: trac/env.py:808
 #, python-format
 msgid "No upgrade module for version %(num)i (%(version)s.py)"
 msgstr ""
 
-#: trac/env.py:825
+#: trac/env.py:854
 msgid ""
 "Missing environment variable \"TRAC_ENV\". Trac requires this variable to"
 " point to a valid Trac environment."
 msgstr ""
 
-#: trac/env.py:854 trac/admin/console.py:281
+#: trac/env.py:883 trac/admin/console.py:283
 #, python-format
 msgid ""
 "The Trac Environment needs to be upgraded.\n"
@@ -509,67 +572,67 @@ msgid ""
 "Run \"trac-admin %(path)s upgrade\""
 msgstr ""
 
-#: trac/env.py:893
+#: trac/env.py:922
 msgid "Copying resources from:"
 msgstr ""
 
-#: trac/env.py:911
+#: trac/env.py:940
 msgid "Creating scripts."
 msgstr ""
 
-#: trac/env.py:923
+#: trac/env.py:952
 #, python-format
 msgid "Invalid argument '%(arg)s'"
 msgstr ""
 
-#: trac/env.py:928
+#: trac/env.py:957
 #, python-format
 msgid "hotcopy can't overwrite existing '%(dest)s'"
 msgstr ""
 
-#: trac/env.py:937
+#: trac/env.py:966
 #, python-format
 msgid "Hotcopying %(src)s to %(dst)s ..."
 msgstr ""
 
-#: trac/env.py:954
+#: trac/env.py:983
 msgid "The following errors happened while copying the environment:"
 msgstr ""
 
-#: trac/env.py:965
+#: trac/env.py:994
 msgid "Backing up database ..."
 msgstr ""
 
-#: trac/env.py:970
+#: trac/env.py:999
 msgid "Hotcopy done."
 msgstr ""
 
-#: trac/env.py:975 trac/admin/api.py:131
+#: trac/env.py:1004 trac/admin/api.py:134
 msgid "Invalid arguments"
 msgstr ""
 
-#: trac/env.py:978
+#: trac/env.py:1007
 msgid "Database is up to date, no upgrade necessary."
 msgstr ""
 
-#: trac/env.py:984
+#: trac/env.py:1013
 msgid ""
 "The pre-upgrade backup failed.\n"
 "Use '--no-backup' to upgrade without doing a backup.\n"
 msgstr ""
 
-#: trac/env.py:988
+#: trac/env.py:1017
 msgid "The upgrade failed. Please fix the issue and try again.\n"
 msgstr ""
 
-#: trac/env.py:1000
+#: trac/env.py:1029
 msgid ""
 "Warning: the wiki-macros directory in the environment is non-empty, but "
 "Trac\n"
 "doesn't load plugins from there anymore. Please remove it by hand."
 msgstr ""
 
-#: trac/env.py:1011
+#: trac/env.py:1040
 #, python-format
 msgid ""
 "Error while removing wiki-macros: %(err)s\n"
@@ -577,7 +640,7 @@ msgid ""
 "hand."
 msgstr ""
 
-#: trac/env.py:1016
+#: trac/env.py:1045
 #, python-format
 msgid ""
 "Upgrade done.\n"
@@ -587,106 +650,133 @@ msgid ""
 "  trac-admin %(path)s wiki upgrade"
 msgstr ""
 
-#: trac/notification.py:159
+#: trac/notification.py:165
+#, python-format
+msgid ""
+"SMTP server connection error (%(error)s). Please modify %(option1)s or "
+"%(option2)s in your configuration."
+msgstr ""
+
+#: trac/notification.py:170
 msgid "TLS enabled but server does not support TLS"
 msgstr ""
 
-#: trac/notification.py:312
+#: trac/notification.py:223
+#, python-format
+msgid ""
+"Sendmail error (%(error)s). Please modify %(option)s in your "
+"configuration."
+msgstr ""
+
+#: trac/notification.py:330
 #, python-format
 msgid "Invalid email encoding setting: %(pref)s"
 msgstr ""
 
-#: trac/notification.py:337
+#: trac/notification.py:355
 msgid "Unable to send email due to identity crisis."
 msgstr ""
 
-#: trac/notification.py:341
+#: trac/notification.py:362
 #, python-format
 msgid "Neither %(from_)s nor %(reply_to)s are specified in the configuration."
 msgstr ""
 
-#: trac/notification.py:342
+#: trac/notification.py:363
 msgid "SMTP Notification Error"
 msgstr ""
 
-#: trac/notification.py:351
+#: trac/notification.py:374
 msgid "Header length is too short"
 msgstr ""
 
-#: trac/perm.py:56
+#: trac/perm.py:42
+msgid "Forbidden"
+msgstr ""
+
+#: trac/perm.py:54
 #, python-format
 msgid ""
 "%(perm)s privileges are required to perform this operation on "
 "%(resource)s. You don't have the required permissions."
 msgstr ""
 
-#: trac/perm.py:58
+#: trac/perm.py:56
 #, python-format
 msgid ""
 "%(perm)s privileges are required to perform this operation. You don't "
 "have the required permissions."
 msgstr ""
 
-#: trac/perm.py:64
+#: trac/perm.py:60
 msgid "Insufficient privileges to perform this operation."
 msgstr ""
 
-#: trac/perm.py:343
+#: trac/perm.py:341
 #, python-format
 msgid "%(name)s is not a valid action."
 msgstr ""
 
-#: trac/perm.py:656
+#: trac/perm.py:658
 msgid "User"
 msgstr ""
 
-#: trac/perm.py:656 trac/admin/templates/admin_perms.html:63
-#: trac/ticket/templates/batch_modify.html:37
-#: trac/ticket/templates/ticket.html:321
+#: trac/perm.py:658 trac/admin/templates/admin_perms.html:74
+#: trac/ticket/templates/batch_modify.html:47
+#: trac/ticket/templates/ticket.html:324
 msgid "Action"
 msgstr ""
 
-#: trac/perm.py:658
+#: trac/perm.py:660
 msgid "Available actions:"
 msgstr ""
 
-#: trac/perm.py:669 trac/admin/web_ui.py:370
+#: trac/perm.py:671 trac/admin/web_ui.py:370
 msgid "All upper-cased tokens are reserved for permission names"
 msgstr ""
 
-#: trac/perm.py:675
+#: trac/perm.py:677
 #, python-format
 msgid "The user %(user)s already has permission %(action)s."
 msgstr ""
 
-#: trac/perm.py:689
+#: trac/perm.py:692
 #, python-format
-msgid "Cannot remove permission %(action)s for user %(user)s."
+msgid ""
+"Cannot remove permission %(action)s for user %(user)s. The permission is "
+"granted through a meta-permission or group."
+msgstr ""
+
+#: trac/perm.py:697
+#, python-format
+msgid ""
+"Cannot remove permission %(action)s for user %(user)s. The user has not "
+"been granted the permission."
 msgstr ""
 
-#: trac/perm.py:706
+#: trac/perm.py:716
 #, python-format
 msgid "Cannot export to %(filename)s: %(error)s"
 msgstr ""
 
-#: trac/perm.py:719
+#: trac/perm.py:729
 #, python-format
 msgid "Invalid row %(line)d. Expected <user>, <action>, [action], [...]"
 msgstr ""
 
-#: trac/perm.py:727
+#: trac/perm.py:737
 #, python-format
 msgid ""
 "Invalid user %(user)s on line %(line)d: All upper-cased tokens are "
 "reserved for permission names."
 msgstr ""
 
-#: trac/perm.py:736
+#: trac/perm.py:746
 #, python-format
 msgid "Cannot import from %(filename)s line %(line)d: %(error)s "
 msgstr ""
 
-#: trac/perm.py:741
+#: trac/perm.py:751
 #, python-format
 msgid "Cannot import from %(filename)s: %(error)s"
 msgstr ""
@@ -696,16 +786,16 @@ msgstr ""
 msgid "%(name)s at version %(version)s"
 msgstr ""
 
-#: trac/admin/api.py:135
+#: trac/admin/api.py:138
 msgid "Command not found"
 msgstr ""
 
-#: trac/admin/console.py:113
+#: trac/admin/console.py:114
 #, python-format
 msgid "Error: %(msg)s"
 msgstr ""
 
-#: trac/admin/console.py:132
+#: trac/admin/console.py:133
 #, python-format
 msgid ""
 "Welcome to trac-admin %(version)s\n"
@@ -716,48 +806,48 @@ msgid ""
 "        "
 msgstr ""
 
-#: trac/admin/console.py:166
+#: trac/admin/console.py:168
 #, python-format
 msgid "Failed to open environment: %(err)s"
 msgstr ""
 
-#: trac/admin/console.py:249
+#: trac/admin/console.py:251
 #, python-format
 msgid "Completion error: %(err)s"
 msgstr ""
 
-#: trac/admin/console.py:316
+#: trac/admin/console.py:318
 #, python-format
 msgid ""
 "No documentation found for '%(cmd)s'. Use 'help' to see the list of "
 "commands."
 msgstr ""
 
-#: trac/admin/console.py:322
+#: trac/admin/console.py:326
 msgid "Did you mean this?"
 msgid_plural "Did you mean one of these?"
 msgstr[0] ""
 msgstr[1] ""
 
-#: trac/admin/console.py:326
+#: trac/admin/console.py:330
 #, python-format
 msgid "trac-admin - The Trac Administration Console %(version)s"
 msgstr ""
 
-#: trac/admin/console.py:330
+#: trac/admin/console.py:334
 msgid "Usage: trac-admin </path/to/projenv> [command [subcommand] [option ...]]\n"
 msgstr ""
 
-#: trac/admin/console.py:333
+#: trac/admin/console.py:337
 msgid "Invoking trac-admin without command starts interactive mode.\n"
 msgstr ""
 
-#: trac/admin/console.py:373
+#: trac/admin/console.py:377
 #, python-format
 msgid "Creating a new Trac environment at %(envname)s"
 msgstr ""
 
-#: trac/admin/console.py:375
+#: trac/admin/console.py:379
 msgid ""
 "\n"
 "Trac will first ask a few questions about your environment\n"
@@ -767,12 +857,12 @@ msgid ""
 " This name will be used in page titles and descriptions.\n"
 msgstr ""
 
-#: trac/admin/console.py:383
+#: trac/admin/console.py:387
 #, python-format
 msgid "Project Name [%(default)s]> "
 msgstr ""
 
-#: trac/admin/console.py:385
+#: trac/admin/console.py:389
 msgid ""
 "\n"
 " Please specify the connection string for the database to use.\n"
@@ -782,48 +872,48 @@ msgid ""
 " connection string syntax).\n"
 msgstr ""
 
-#: trac/admin/console.py:393
+#: trac/admin/console.py:397
 #, python-format
 msgid "Database connection string [%(default)s]> "
 msgstr ""
 
-#: trac/admin/console.py:400
+#: trac/admin/console.py:404
 #, python-format
 msgid "Initenv for '%(env)s' failed."
 msgstr ""
 
-#: trac/admin/console.py:403
+#: trac/admin/console.py:407
 msgid "Does an environment already exist?"
 msgstr ""
 
-#: trac/admin/console.py:407
+#: trac/admin/console.py:411
 msgid "Directory exists and is not empty."
 msgstr ""
 
-#: trac/admin/console.py:413
+#: trac/admin/console.py:417
 #, python-format
 msgid ""
 "Base directory '%(env)s' does not exist. Please create it manually and "
 "retry."
 msgstr ""
 
-#: trac/admin/console.py:441
+#: trac/admin/console.py:445
 msgid "Creating and Initializing Project"
 msgstr ""
 
-#: trac/admin/console.py:458
+#: trac/admin/console.py:462
 msgid "Failed to create environment."
 msgstr ""
 
-#: trac/admin/console.py:464
+#: trac/admin/console.py:468
 msgid " Installing default wiki pages"
 msgstr ""
 
-#: trac/admin/console.py:473
+#: trac/admin/console.py:477
 msgid " Indexing default repository"
 msgstr ""
 
-#: trac/admin/console.py:476
+#: trac/admin/console.py:480
 msgid ""
 "\n"
 "---------------------------------------------------------------------\n"
@@ -838,7 +928,7 @@ msgid ""
 "repository_type and repository_path settings.\n"
 msgstr ""
 
-#: trac/admin/console.py:519
+#: trac/admin/console.py:523
 #, python-format
 msgid ""
 "\n"
@@ -867,7 +957,7 @@ msgid ""
 "Congratulations!\n"
 msgstr ""
 
-#: trac/admin/console.py:528
+#: trac/admin/console.py:532
 msgid ""
 "Display help for trac-admin commands.\n"
 "\n"
@@ -880,108 +970,108 @@ msgid ""
 "}}}"
 msgstr ""
 
-#: trac/admin/console.py:580
+#: trac/admin/console.py:578
 #, python-format
 msgid "Non-ascii environment path '%(path)s' not supported."
 msgstr ""
 
-#: trac/admin/web_ui.py:74
+#: trac/admin/web_ui.py:69
 msgid "Admin"
 msgstr ""
 
-#: trac/admin/web_ui.py:75 trac/admin/templates/admin.html:16
+#: trac/admin/web_ui.py:70 trac/admin/templates/admin.html:26
 msgid "Administration"
 msgstr ""
 
-#: trac/admin/web_ui.py:91
+#: trac/admin/web_ui.py:86
 msgid "No administration panels available"
 msgstr ""
 
-#: trac/admin/web_ui.py:117 trac/admin/web_ui.py:121
+#: trac/admin/web_ui.py:112 trac/admin/web_ui.py:116
 msgid "Unknown administration panel"
 msgstr ""
 
-#: trac/admin/web_ui.py:133
+#: trac/admin/web_ui.py:128
 msgid "Untitled"
 msgstr ""
 
-#: trac/admin/web_ui.py:192 trac/ticket/admin.py:66 trac/ticket/admin.py:95
-#: trac/ticket/admin.py:275 trac/ticket/admin.py:455 trac/ticket/admin.py:607
-#: trac/ticket/admin.py:690 trac/ticket/report.py:248
-#: trac/ticket/roadmap.py:779 trac/versioncontrol/admin.py:215
+#: trac/admin/web_ui.py:187 trac/ticket/admin.py:66 trac/ticket/admin.py:95
+#: trac/ticket/admin.py:273 trac/ticket/admin.py:464 trac/ticket/admin.py:626
+#: trac/ticket/admin.py:709 trac/ticket/report.py:253
+#: trac/ticket/roadmap.py:824 trac/versioncontrol/admin.py:214
 msgid "Your changes have been saved."
 msgstr ""
 
-#: trac/admin/web_ui.py:197 trac/ticket/admin.py:69
+#: trac/admin/web_ui.py:192 trac/ticket/admin.py:69
 msgid ""
 "Error writing to trac.ini, make sure it is writable by the web server. "
 "Your changes have not been saved."
 msgstr ""
 
-#: trac/admin/web_ui.py:210 trac/admin/web_ui.py:268 trac/admin/web_ui.py:356
-#: trac/admin/web_ui.py:443 trac/prefs/web_ui.py:94
-#: trac/prefs/templates/prefs_general.html:9
+#: trac/admin/web_ui.py:205 trac/admin/web_ui.py:265 trac/admin/web_ui.py:356
+#: trac/admin/web_ui.py:449 trac/prefs/web_ui.py:90
+#: trac/prefs/templates/prefs_general.html:19
 msgid "General"
 msgstr ""
 
-#: trac/admin/web_ui.py:210 trac/admin/templates/admin_basics.html:13
+#: trac/admin/web_ui.py:205 trac/admin/templates/admin_basics.html:23
 msgid "Basic Settings"
 msgstr ""
 
-#: trac/admin/web_ui.py:268 trac/admin/templates/admin_logging.html:10
-#: trac/admin/templates/admin_logging.html:22
+#: trac/admin/web_ui.py:265 trac/admin/templates/admin_logging.html:20
+#: trac/admin/templates/admin_logging.html:32
 msgid "Logging"
 msgstr ""
 
-#: trac/admin/web_ui.py:277 trac/ticket/templates/milestone_delete.html:31
-#: trac/ticket/templates/milestone_edit.html:87
+#: trac/admin/web_ui.py:274 trac/ticket/templates/milestone_delete.html:35
+#: trac/ticket/templates/milestone_edit.html:99
 msgid "None"
 msgstr ""
 
-#: trac/admin/web_ui.py:278
+#: trac/admin/web_ui.py:276
 msgid "Console"
 msgstr ""
 
-#: trac/admin/web_ui.py:280 trac/templates/attachment.html:32
+#: trac/admin/web_ui.py:278 trac/templates/attachment.html:42
 msgid "File"
 msgstr ""
 
-#: trac/admin/web_ui.py:282
+#: trac/admin/web_ui.py:280
 msgid "Syslog"
 msgstr ""
 
-#: trac/admin/web_ui.py:284
+#: trac/admin/web_ui.py:283
 msgid "Windows event log"
 msgstr ""
 
-#: trac/admin/web_ui.py:297
+#: trac/admin/web_ui.py:296
 #, python-format
 msgid "Unknown log type %(type)s"
 msgstr ""
 
-#: trac/admin/web_ui.py:298
+#: trac/admin/web_ui.py:297
 msgid "Invalid log type"
 msgstr ""
 
-#: trac/admin/web_ui.py:312
+#: trac/admin/web_ui.py:311
 #, python-format
 msgid "Unknown log level %(level)s"
 msgstr ""
 
-#: trac/admin/web_ui.py:313
+#: trac/admin/web_ui.py:312
 msgid "Invalid log level"
 msgstr ""
 
-#: trac/admin/web_ui.py:326
+#: trac/admin/web_ui.py:325
 msgid "You must specify a log file"
 msgstr ""
 
-#: trac/admin/web_ui.py:327
+#: trac/admin/web_ui.py:326
 msgid "Missing field"
 msgstr ""
 
-#: trac/admin/web_ui.py:356 trac/admin/templates/admin_perms.html:10
-#: trac/admin/templates/admin_perms.html:60
+#: trac/admin/web_ui.py:356 trac/admin/templates/admin_perms.html:20
+#: trac/admin/templates/admin_perms.html:71
 msgid "Permissions"
 msgstr ""
 
@@ -999,501 +1089,386 @@ msgstr ""
 msgid "The permission %(action)s was already granted to %(subject)s."
 msgstr ""
 
-#: trac/admin/web_ui.py:402
+#: trac/admin/web_ui.py:400
+#, python-format
+msgid ""
+"The subject %(subject)s was not added to the group %(group)s because the "
+"group has %(perm)s permission and users cannot grant permissions they "
+"don't possess."
+msgstr ""
+
+#: trac/admin/web_ui.py:408
 #, python-format
 msgid "The subject %(subject)s has been added to the group %(group)s."
 msgstr ""
 
-#: trac/admin/web_ui.py:407
+#: trac/admin/web_ui.py:413
 #, python-format
 msgid "The subject %(subject)s was already added to the group %(group)s."
 msgstr ""
 
-#: trac/admin/web_ui.py:422
+#: trac/admin/web_ui.py:428
 msgid "The selected permissions have been revoked."
 msgstr ""
 
-#: trac/admin/web_ui.py:443 trac/admin/templates/admin_plugins.html:10
+#: trac/admin/web_ui.py:449 trac/admin/templates/admin_plugins.html:20
 msgid "Plugins"
 msgstr ""
 
-#: trac/admin/web_ui.py:477
+#: trac/admin/web_ui.py:481
 msgid "Uploaded file is not a Python source file or egg"
 msgstr ""
 
-#: trac/admin/web_ui.py:482
+#: trac/admin/web_ui.py:486
 #, python-format
 msgid "Plugin %(name)s already installed"
 msgstr ""
 
-#: trac/admin/web_ui.py:551
+#: trac/admin/web_ui.py:555
 msgid "The following component has been disabled:"
 msgid_plural "The following components have been disabled:"
 msgstr[0] ""
 msgstr[1] ""
 
-#: trac/admin/web_ui.py:556
+#: trac/admin/web_ui.py:560
 msgid "The following component has been enabled:"
 msgid_plural "The following components have been enabled:"
 msgstr[0] ""
 msgstr[1] ""
 
-#: trac/admin/templates/admin.html:10
+#: trac/admin/templates/admin.html:20
 msgid "Administration:"
 msgstr ""
 
-#: trac/admin/templates/admin_basics.html:9
+#: trac/admin/templates/admin_basics.html:19
 msgid "Basics"
 msgstr ""
 
-#: trac/admin/templates/admin_basics.html:17
+#: trac/admin/templates/admin_basics.html:27
 msgid "Project"
 msgstr ""
 
-#: trac/admin/templates/admin_basics.html:19
-#: trac/admin/templates/admin_components.html:37
-#: trac/admin/templates/admin_components.html:66
-#: trac/admin/templates/admin_enums.html:21
-#: trac/admin/templates/admin_enums.html:35
-#: trac/admin/templates/admin_milestones.html:28
-#: trac/admin/templates/admin_milestones.html:85
-#: trac/admin/templates/admin_versions.html:26
-#: trac/admin/templates/admin_versions.html:61
-#: trac/versioncontrol/templates/admin_repositories.html:50
-#: trac/versioncontrol/templates/admin_repositories.html:95
-#: trac/versioncontrol/templates/admin_repositories.html:112
+#: trac/admin/templates/admin_basics.html:29
+#: trac/ticket/templates/admin_components.html:47
+#: trac/ticket/templates/admin_components.html:74
+#: trac/ticket/templates/admin_enums.html:34
+#: trac/ticket/templates/admin_enums.html:48
+#: trac/ticket/templates/admin_milestones.html:45
+#: trac/ticket/templates/admin_milestones.html:103
+#: trac/ticket/templates/admin_versions.html:36
+#: trac/ticket/templates/admin_versions.html:71
+#: trac/versioncontrol/templates/admin_repositories.html:61
+#: trac/versioncontrol/templates/admin_repositories.html:108
+#: trac/versioncontrol/templates/admin_repositories.html:125
 msgid "Name:"
 msgstr ""
 
-#: trac/admin/templates/admin_basics.html:24
-#: trac/versioncontrol/templates/admin_repositories.html:62
+#: trac/admin/templates/admin_basics.html:34
+#: trac/versioncontrol/templates/admin_repositories.html:74
 msgid "URL:"
 msgstr ""
 
-#: trac/admin/templates/admin_basics.html:29
-#: trac/ticket/templates/ticket.html:237
+#: trac/admin/templates/admin_basics.html:39
+#: trac/ticket/templates/ticket.html:241
 msgid "Description:"
 msgstr ""
 
-#: trac/admin/templates/admin_basics.html:35
+#: trac/admin/templates/admin_basics.html:45
 msgid "Default timezone:"
 msgstr ""
 
-#: trac/admin/templates/admin_basics.html:37
+#: trac/admin/templates/admin_basics.html:47
 msgid "Server's local time zone"
 msgstr ""
 
-#: trac/admin/templates/admin_basics.html:44
-msgid "Default language:"
-msgstr ""
-
-#: trac/admin/templates/admin_basics.html:46
-#: trac/admin/templates/admin_basics.html:55
-msgid "Browser's language"
-msgstr ""
-
-#: trac/admin/templates/admin_basics.html:53
-msgid "Default date format:"
+#: trac/admin/templates/admin_basics.html:52
+msgid "Install pytz for a complete list of timezones."
 msgstr ""
 
 #: trac/admin/templates/admin_basics.html:57
-#: trac/prefs/templates/prefs_datetime.html:65
-msgid "ISO 8601 format"
-msgstr ""
-
-#: trac/admin/templates/admin_basics.html:63
-#: trac/admin/templates/admin_components.html:99
-#: trac/admin/templates/admin_enums.html:70
-#: trac/admin/templates/admin_logging.html:55
-#: trac/admin/templates/admin_milestones.html:132
-#: trac/admin/templates/admin_plugins.html:180
-#: trac/admin/templates/admin_versions.html:100
-msgid "Apply changes"
-msgstr ""
-
-#: trac/admin/templates/admin_components.html:10 trac/ticket/admin.py:77
-msgid "Components"
-msgstr ""
-
-#: trac/admin/templates/admin_components.html:14
-msgid "Manage Components"
-msgstr ""
-
-#: trac/admin/templates/admin_components.html:18
-msgid "Owner:"
-msgstr ""
-
-#: trac/admin/templates/admin_components.html:35
-msgid "Modify Component:"
-msgstr ""
-
-#: trac/admin/templates/admin_components.html:42
-msgid ""
-"Description (you may use\n"
-"                [1:WikiFormatting]\n"
-"                here):"
-msgstr ""
-
-#: trac/admin/templates/admin_components.html:56
-#: trac/admin/templates/admin_enums.html:25
-#: trac/admin/templates/admin_milestones.html:75
-#: trac/admin/templates/admin_versions.html:51
-#: trac/versioncontrol/templates/admin_repositories.html:85
-msgid "Save"
-msgstr ""
-
-#: trac/admin/templates/admin_components.html:64
-msgid "Add Component:"
-msgstr ""
-
-#: trac/admin/templates/admin_components.html:70
-#: trac/admin/templates/admin_enums.html:38
-#: trac/admin/templates/admin_milestones.html:96
-#: trac/admin/templates/admin_perms.html:31
-#: trac/admin/templates/admin_perms.html:50
-#: trac/admin/templates/admin_versions.html:73
-#: trac/versioncontrol/templates/admin_repositories.html:102
-#: trac/versioncontrol/templates/admin_repositories.html:116
-msgid "Add"
-msgstr ""
-
-#: trac/admin/templates/admin_components.html:80 trac/ticket/admin.py:210
-#: trac/ticket/api.py:293 trac/ticket/web_ui.py:1455
-msgid "Owner"
-msgstr ""
-
-#: trac/admin/templates/admin_components.html:80
-#: trac/admin/templates/admin_enums.html:48
-#: trac/admin/templates/admin_milestones.html:107
-#: trac/admin/templates/admin_versions.html:83
-msgid "Default"
+msgid "Default language:"
 msgstr ""
 
-#: trac/admin/templates/admin_components.html:98
-#: trac/admin/templates/admin_enums.html:69
-#: trac/admin/templates/admin_milestones.html:131
-#: trac/admin/templates/admin_perms.html:109
-#: trac/admin/templates/admin_versions.html:99
-#: trac/versioncontrol/templates/admin_repositories.html:145
-msgid "Remove selected items"
+#: trac/admin/templates/admin_basics.html:58
+#: trac/prefs/templates/prefs_language.html:26
+msgid "Translations are currently unavailable"
 msgstr ""
 
-#: trac/admin/templates/admin_components.html:101
-#: trac/admin/templates/admin_enums.html:72
-#: trac/admin/templates/admin_milestones.html:134
-#: trac/admin/templates/admin_versions.html:102
-msgid ""
-"You can remove all items from this list to completely hide this\n"
-"              field from the user interface."
+#: trac/admin/templates/admin_basics.html:60
+#: trac/admin/templates/admin_basics.html:75
+msgid "Browser's language"
 msgstr ""
 
-#: trac/admin/templates/admin_components.html:107
-#: trac/admin/templates/admin_enums.html:82
-#: trac/admin/templates/admin_milestones.html:140
-#: trac/admin/templates/admin_versions.html:108
-msgid ""
-"As long as you don't add any items to the list, this field\n"
-"            will remain completely hidden from the user interface."
+#: trac/admin/templates/admin_basics.html:65
+#: trac/prefs/templates/prefs_language.html:34
+msgid "Install Babel for extended language support."
 msgstr ""
 
-#: trac/admin/templates/admin_enums.html:14
-#, python-format
-msgid "Manage %(label_plural)s"
+#: trac/admin/templates/admin_basics.html:68
+#: trac/prefs/templates/prefs_language.html:37
+msgid "Message catalogs have not been compiled."
 msgstr ""
 
-#: trac/admin/templates/admin_enums.html:19
-#, python-format
-msgid "Modify %(label_singular)s"
+#: trac/admin/templates/admin_basics.html:73
+msgid "Default date format:"
 msgstr ""
 
-#: trac/admin/templates/admin_enums.html:33
-#, python-format
-msgid "Add %(label_singular)s"
+#: trac/admin/templates/admin_basics.html:77
+#: trac/prefs/templates/prefs_datetime.html:75
+msgid "ISO 8601 format"
 msgstr ""
 
-#: trac/admin/templates/admin_enums.html:48
-msgid "Order"
+#: trac/admin/templates/admin_basics.html:80
+msgid "Install Babel for localized date formats."
 msgstr ""
 
-#: trac/admin/templates/admin_enums.html:76
-msgid ""
-"[1:Note:] The order of priorities determines the\n"
-"              coloring of entries in the ticket queries and reports."
+#: trac/admin/templates/admin_basics.html:86
+#: trac/admin/templates/admin_logging.html:65
+#: trac/admin/templates/admin_plugins.html:190
+#: trac/ticket/templates/admin_components.html:106
+#: trac/ticket/templates/admin_enums.html:82
+#: trac/ticket/templates/admin_milestones.html:148
+#: trac/ticket/templates/admin_versions.html:109
+msgid "Apply changes"
 msgstr ""
 
-#: trac/admin/templates/admin_logging.html:26 trac/templates/about.html:85
+#: trac/admin/templates/admin_logging.html:36 trac/templates/about.html:97
 msgid "Configuration"
 msgstr ""
 
-#: trac/admin/templates/admin_logging.html:28
-#: trac/versioncontrol/templates/admin_repositories.html:18
+#: trac/admin/templates/admin_logging.html:38
+#: trac/versioncontrol/templates/admin_repositories.html:28
 msgid "Type:"
 msgstr ""
 
-#: trac/admin/templates/admin_logging.html:37
+#: trac/admin/templates/admin_logging.html:47
 msgid "Log level:"
 msgstr ""
 
-#: trac/admin/templates/admin_logging.html:45
+#: trac/admin/templates/admin_logging.html:55
 msgid "Log file:"
 msgstr ""
 
-#: trac/admin/templates/admin_logging.html:48
+#: trac/admin/templates/admin_logging.html:58
 #, python-format
 msgid ""
 "If you specify a relative path, the log file will be stored inside the\n"
 "            [1:log] directory of the project environment ([2:%(dir)s])."
 msgstr ""
 
-#: trac/admin/templates/admin_milestones.html:10 trac/ticket/admin.py:235
-#: trac/ticket/roadmap.py:963
-msgid "Milestones"
-msgstr ""
-
-#: trac/admin/templates/admin_milestones.html:20
-msgid "Manage Milestones"
-msgstr ""
-
-#: trac/admin/templates/admin_milestones.html:26
-msgid "Modify Milestone:"
-msgstr ""
-
-#: trac/admin/templates/admin_milestones.html:31
-#: trac/admin/templates/admin_milestones.html:88
-#: trac/ticket/templates/milestone_edit.html:61
-msgid "Due:"
-msgstr ""
-
-#: trac/admin/templates/admin_milestones.html:32
-#: trac/admin/templates/admin_milestones.html:35
-#: trac/admin/templates/admin_milestones.html:45
-#: trac/admin/templates/admin_milestones.html:49
-#: trac/admin/templates/admin_milestones.html:90
-#: trac/admin/templates/admin_versions.html:32
-#: trac/admin/templates/admin_versions.html:35
-#: trac/admin/templates/admin_versions.html:66
-#: trac/admin/templates/admin_versions.html:69
-#: trac/ticket/templates/milestone_edit.html:65
-#: trac/ticket/templates/milestone_edit.html:68
-#: trac/ticket/templates/milestone_edit.html:77
-#: trac/ticket/templates/milestone_edit.html:80
-#, python-format
-msgid "Format: %(datehint)s"
-msgstr ""
-
-#: trac/admin/templates/admin_milestones.html:41
-#: trac/ticket/templates/milestone_edit.html:73
-msgid "Completed:"
-msgstr ""
-
-#: trac/admin/templates/admin_milestones.html:63
-#: trac/admin/templates/admin_versions.html:40
-#: trac/ticket/templates/milestone_edit.html:99
-#: trac/versioncontrol/templates/admin_repositories.html:73
-msgid "Description (you may use [1:WikiFormatting] here):"
-msgstr ""
-
-#: trac/admin/templates/admin_milestones.html:83
-msgid "Add Milestone:"
-msgstr ""
-
-#: trac/admin/templates/admin_milestones.html:92
-#, python-format
-msgid "Format: %(datetimehint)s"
-msgstr ""
-
-#: trac/admin/templates/admin_milestones.html:107 trac/ticket/admin.py:399
-msgid "Due"
-msgstr ""
-
-#: trac/admin/templates/admin_milestones.html:107 trac/ticket/admin.py:399
-msgid "Completed"
-msgstr ""
-
-#: trac/admin/templates/admin_milestones.html:107 trac/ticket/web_ui.py:194
-msgid "Tickets"
-msgstr ""
-
-#: trac/admin/templates/admin_perms.html:14
+#: trac/admin/templates/admin_perms.html:24
 msgid "Manage Permissions and Groups"
 msgstr ""
 
-#: trac/admin/templates/admin_perms.html:19
+#: trac/admin/templates/admin_perms.html:29
 msgid "Grant Permission:"
 msgstr ""
 
-#: trac/admin/templates/admin_perms.html:21
-#: trac/admin/templates/admin_perms.html:44
+#: trac/admin/templates/admin_perms.html:31
+#: trac/admin/templates/admin_perms.html:55
 msgid "Subject:"
 msgstr ""
 
-#: trac/admin/templates/admin_perms.html:24
+#: trac/admin/templates/admin_perms.html:34
 msgid "Action:"
 msgstr ""
 
-#: trac/admin/templates/admin_perms.html:33
+#: trac/admin/templates/admin_perms.html:42
+#: trac/admin/templates/admin_perms.html:61
+#: trac/ticket/templates/admin_components.html:78
+#: trac/ticket/templates/admin_enums.html:51
+#: trac/ticket/templates/admin_milestones.html:114
+#: trac/ticket/templates/admin_versions.html:83
+#: trac/versioncontrol/templates/admin_repositories.html:115
+#: trac/versioncontrol/templates/admin_repositories.html:129
+msgid "Add"
+msgstr ""
+
+#: trac/admin/templates/admin_perms.html:44
 msgid ""
 "Grant permission for an action to a subject, which can be either a user\n"
 "            or a group."
 msgstr ""
 
-#: trac/admin/templates/admin_perms.html:42
+#: trac/admin/templates/admin_perms.html:53
 msgid "Add Subject to Group:"
 msgstr ""
 
-#: trac/admin/templates/admin_perms.html:47
+#: trac/admin/templates/admin_perms.html:58
 msgid "Group:"
 msgstr ""
 
-#: trac/admin/templates/admin_perms.html:52
+#: trac/admin/templates/admin_perms.html:63
 msgid "Add a user or group to an existing permission group."
 msgstr ""
 
-#: trac/admin/templates/admin_perms.html:63
-#: trac/admin/templates/admin_perms.html:88
+#: trac/admin/templates/admin_perms.html:74
+#: trac/admin/templates/admin_perms.html:103
 msgid "Subject"
 msgstr ""
 
-#: trac/admin/templates/admin_perms.html:76
-msgid "Action is no longer defined"
+#: trac/admin/templates/admin_perms.html:85
+msgid "You don't have permission to revoke this action"
+msgstr ""
+
+#: trac/admin/templates/admin_perms.html:91
+#, python-format
+msgid "%(action)s is no longer defined"
 msgstr ""
 
-#: trac/admin/templates/admin_perms.html:81
+#: trac/admin/templates/admin_perms.html:96
 msgid "No permissions"
 msgstr ""
 
-#: trac/admin/templates/admin_perms.html:85
+#: trac/admin/templates/admin_perms.html:100
 msgid "Group Membership"
 msgstr ""
 
-#: trac/admin/templates/admin_perms.html:88
+#: trac/admin/templates/admin_perms.html:103
 msgid "Group"
 msgstr ""
 
-#: trac/admin/templates/admin_perms.html:105
+#: trac/admin/templates/admin_perms.html:120
 msgid "No group memberships"
 msgstr ""
 
-#: trac/admin/templates/admin_perms.html:113
+#: trac/admin/templates/admin_perms.html:124
+#: trac/ticket/templates/admin_components.html:107
+#: trac/ticket/templates/admin_enums.html:83
+#: trac/ticket/templates/admin_milestones.html:149
+#: trac/ticket/templates/admin_versions.html:110
+#: trac/versioncontrol/templates/admin_repositories.html:158
+msgid "Remove selected items"
+msgstr ""
+
+#: trac/admin/templates/admin_perms.html:128
 msgid ""
 "Note that [1:Subject] or [2:Group] names can't be all upper-case,\n"
 "      as that is reserved for permission names."
 msgstr ""
 
-#: trac/admin/templates/admin_plugins.html:57
+#: trac/admin/templates/admin_plugins.html:67
 msgid "Manage Plugins"
 msgstr ""
 
-#: trac/admin/templates/admin_plugins.html:61
+#: trac/admin/templates/admin_plugins.html:71
 msgid "Install Plugin:"
 msgstr ""
 
-#: trac/admin/templates/admin_plugins.html:63
+#: trac/admin/templates/admin_plugins.html:73
 msgid "File: [1:]"
 msgstr ""
 
-#: trac/admin/templates/admin_plugins.html:68
+#: trac/admin/templates/admin_plugins.html:78
 msgid "Install"
 msgstr ""
 
-#: trac/admin/templates/admin_plugins.html:72
+#: trac/admin/templates/admin_plugins.html:82
 msgid ""
 "The web server does not have sufficient permissions to store files in\n"
 "            the environment plugins directory."
 msgstr ""
 
-#: trac/admin/templates/admin_plugins.html:76
+#: trac/admin/templates/admin_plugins.html:86
 msgid "Upload a plugin packaged as Python egg."
 msgstr ""
 
-#: trac/admin/templates/admin_plugins.html:100 trac/templates/diff_view.html:51
-#: trac/versioncontrol/templates/changeset.html:142
+#: trac/admin/templates/admin_plugins.html:110 trac/templates/diff_view.html:61
+#: trac/versioncontrol/templates/changeset.html:152
 msgid "Author:"
 msgstr ""
 
-#: trac/admin/templates/admin_plugins.html:109
+#: trac/admin/templates/admin_plugins.html:119
 msgid "Home page:"
 msgstr ""
 
-#: trac/admin/templates/admin_plugins.html:116
+#: trac/admin/templates/admin_plugins.html:126
 msgid "License:"
 msgstr ""
 
-#: trac/admin/templates/admin_plugins.html:124 trac/ticket/admin.py:77
-#: trac/ticket/api.py:306
+#: trac/admin/templates/admin_plugins.html:134 trac/ticket/admin.py:77
+#: trac/ticket/api.py:315
 msgid "Component"
 msgstr ""
 
-#: trac/admin/templates/admin_plugins.html:127
+#: trac/admin/templates/admin_plugins.html:137
 msgid "Show all descriptions"
 msgstr ""
 
-#: trac/admin/templates/admin_plugins.html:129
+#: trac/admin/templates/admin_plugins.html:139
 msgid "Hide all descriptions"
 msgstr ""
 
-#: trac/admin/templates/admin_plugins.html:133
+#: trac/admin/templates/admin_plugins.html:143
 msgid "Enabled"
 msgstr ""
 
-#: trac/admin/templates/admin_versions.html:10 trac/ticket/admin.py:431
-msgid "Versions"
-msgstr ""
-
-#: trac/admin/templates/admin_versions.html:19
-msgid "Manage Versions"
+#: trac/db/api.py:334
+#, python-format
+msgid "Unsupported database type \"%(scheme)s\""
 msgstr ""
 
-#: trac/admin/templates/admin_versions.html:24
-msgid "Modify Version:"
+#: trac/db/api.py:373
+#, python-format
+msgid ""
+"Unknown scheme \"%(scheme)s\"; database connection string must start with"
+" {scheme}:/"
 msgstr ""
 
-#: trac/admin/templates/admin_versions.html:31
-msgid "Date:"
+#: trac/db/mysql_backend.py:92
+msgid "Cannot load Python bindings for MySQL"
 msgstr ""
 
-#: trac/admin/templates/admin_versions.html:59
-msgid "Add Version:"
+#: trac/db/mysql_backend.py:248 trac/db/postgres_backend.py:179
+#: trac/db/postgres_backend.py:198
+#, python-format
+msgid "Unable to run %(path)s: %(msg)s"
 msgstr ""
 
-#: trac/admin/templates/admin_versions.html:64
-msgid "Released:"
+#: trac/db/mysql_backend.py:252
+#, python-format
+msgid "mysqldump failed: %(msg)s"
 msgstr ""
 
-#: trac/admin/templates/admin_versions.html:83
-msgid "Released"
+#: trac/db/mysql_backend.py:254 trac/db/postgres_backend.py:204
+#: trac/db/sqlite_backend.py:247
+msgid "No destination file created"
 msgstr ""
 
-#: trac/db/api.py:308
+#: trac/db/mysql_backend.py:290
 #, python-format
-msgid "Unsupported database type \"%(scheme)s\""
+msgid ""
+"All tables must be created as InnoDB or NDB storage engine to support "
+"transactions. The following tables have been created as storage engine "
+"which doesn't support transactions: %(tables)s"
 msgstr ""
 
-#: trac/db/api.py:347
+#: trac/db/mysql_backend.py:299
 #, python-format
 msgid ""
-"Unknown scheme \"%(scheme)s\"; database connection string must start with"
-" {scheme}:/"
+"All tables must be created with utf8_bin or utf8mb4_bin as collation. The"
+" following tables don't have the collations: %(tables)s"
 msgstr ""
 
-#: trac/db/mysql_backend.py:87
-msgid "Cannot load Python bindings for MySQL"
-msgstr ""
-
-#: trac/db/mysql_backend.py:229 trac/db/postgres_backend.py:179
-#: trac/db/postgres_backend.py:198
+#: trac/db/mysql_backend.py:314
 #, python-format
-msgid "Unable to run %(path)s: %(msg)s"
+msgid ""
+"The current storage engine is %(engine)s. It must be InnoDB or NDB "
+"storage engine to support transactions."
 msgstr ""
 
-#: trac/db/mysql_backend.py:233
+#: trac/db/mysql_backend.py:320
 #, python-format
-msgid "mysqldump failed: %(msg)s"
+msgid ""
+"The current storage engine for TEMPORARY tables is %(engine)s. It must be"
+" InnoDB or NDB storage engine to support transactions."
 msgstr ""
 
-#: trac/db/mysql_backend.py:235 trac/db/postgres_backend.py:204
-#: trac/db/sqlite_backend.py:245
-msgid "No destination file created"
+#: trac/db/mysql_backend.py:332
+#, python-format
+msgid ""
+"The charset and collation of database are '%(charset)s' and "
+"'%(collation)s'. The database must be created with one of %(supported)s."
 msgstr ""
 
 #: trac/db/pool.py:130
@@ -1510,56 +1485,56 @@ msgstr ""
 msgid "pg_dump failed: %(msg)s"
 msgstr ""
 
-#: trac/db/sqlite_backend.py:156
+#: trac/db/sqlite_backend.py:158 trac/db/sqlite_backend.py:261
 msgid "Cannot load Python bindings for SQLite"
 msgstr ""
 
-#: trac/db/sqlite_backend.py:159
+#: trac/db/sqlite_backend.py:161
 #, python-format
 msgid "Need at least PySqlite %(version)s or higher"
 msgstr ""
 
-#: trac/db/sqlite_backend.py:162
+#: trac/db/sqlite_backend.py:164
 msgid "PySqlite 2.5.2 - 2.5.4 break Trac, please use 2.5.5 or higher"
 msgstr ""
 
-#: trac/db/sqlite_backend.py:195
+#: trac/db/sqlite_backend.py:197
 #, python-format
 msgid "Database already exists at %(path)s"
 msgstr ""
 
-#: trac/db/sqlite_backend.py:262
+#: trac/db/sqlite_backend.py:265
 #, python-format
 msgid "Database \"%(path)s\" not found."
 msgstr ""
 
-#: trac/db/sqlite_backend.py:271
+#: trac/db/sqlite_backend.py:274
 #, python-format
 msgid ""
 "The user %(user)s requires read _and_ write permissions to the database "
 "file %(path)s and the directory it is located in."
 msgstr ""
 
-#: trac/mimeview/api.py:685 trac/mimeview/api.py:695
+#: trac/mimeview/api.py:691 trac/mimeview/api.py:701
 #, python-format
 msgid "No available MIME conversions from %(old)s to %(new)s"
 msgstr ""
 
-#: trac/mimeview/api.py:808
+#: trac/mimeview/api.py:814
 #, python-format
 msgid "HTML preview using %(renderer)s failed (%(err)s)"
 msgstr ""
 
-#: trac/mimeview/api.py:839
+#: trac/mimeview/api.py:845
 #, python-format
 msgid "Can't use %(annotator)s annotator: %(error)s"
 msgstr ""
 
-#: trac/mimeview/api.py:1114 trac/templates/error.html:148
+#: trac/mimeview/api.py:1121 trac/templates/error.html:167
 msgid "Line"
 msgstr ""
 
-#: trac/mimeview/api.py:1114
+#: trac/mimeview/api.py:1121
 msgid "Line numbers"
 msgstr ""
 
@@ -1577,56 +1552,56 @@ msgstr ""
 msgid "this hunk was shorter than expected"
 msgstr ""
 
-#: trac/mimeview/pygments.py:132 trac/prefs/templates/prefs_pygments.html:9
+#: trac/mimeview/pygments.py:132 trac/prefs/templates/prefs_pygments.html:19
 msgid "Syntax Highlighting"
 msgstr ""
 
-#: trac/mimeview/pygments.py:141 trac/prefs/web_ui.py:160
+#: trac/mimeview/pygments.py:141 trac/prefs/web_ui.py:170
 msgid "Your preferences have been saved."
 msgstr ""
 
-#: trac/mimeview/rst.py:125 trac/mimeview/rst.py:148
+#: trac/mimeview/rst.py:126 trac/mimeview/rst.py:149
 #, python-format
 msgid "%(link)s is not a valid TracLink"
 msgstr ""
 
-#: trac/prefs/web_ui.py:56 trac/prefs/templates/prefs.html:16
+#: trac/prefs/web_ui.py:51 trac/prefs/templates/prefs.html:26
 msgid "Preferences"
 msgstr ""
 
-#: trac/prefs/web_ui.py:83
+#: trac/prefs/web_ui.py:79
 msgid "Unknown preference panel"
 msgstr ""
 
-#: trac/prefs/web_ui.py:95 trac/prefs/templates/prefs_datetime.html:10
+#: trac/prefs/web_ui.py:91 trac/prefs/templates/prefs_datetime.html:20
 msgid "Date & Time"
 msgstr ""
 
-#: trac/prefs/web_ui.py:96 trac/prefs/templates/prefs_keybindings.html:10
+#: trac/prefs/web_ui.py:92 trac/prefs/templates/prefs_keybindings.html:20
 msgid "Keyboard Shortcuts"
 msgstr ""
 
-#: trac/prefs/web_ui.py:97 trac/prefs/templates/prefs_userinterface.html:10
+#: trac/prefs/web_ui.py:93 trac/prefs/templates/prefs_userinterface.html:20
 msgid "User Interface"
 msgstr ""
 
-#: trac/prefs/web_ui.py:99 trac/prefs/templates/prefs_language.html:10
+#: trac/prefs/web_ui.py:95 trac/prefs/templates/prefs_language.html:20
 msgid "Language"
 msgstr ""
 
-#: trac/prefs/web_ui.py:101 trac/prefs/templates/prefs_advanced.html:9
+#: trac/prefs/web_ui.py:97 trac/prefs/templates/prefs_advanced.html:19
 msgid "Advanced"
 msgstr ""
 
-#: trac/prefs/web_ui.py:167
+#: trac/prefs/web_ui.py:177
 msgid "The session has been loaded."
 msgstr ""
 
-#: trac/prefs/templates/prefs.html:10
+#: trac/prefs/templates/prefs.html:20
 msgid "Preferences:"
 msgstr ""
 
-#: trac/prefs/templates/prefs.html:17
+#: trac/prefs/templates/prefs.html:27
 msgid ""
 "This page lets you customize your personal settings for this site.\n"
 "      These settings are stored on the server and are identified by a "
@@ -1636,19 +1611,19 @@ msgid ""
 "      restored on subsequent visits."
 msgstr ""
 
-#: trac/prefs/templates/prefs.html:33
+#: trac/prefs/templates/prefs.html:43
 msgid "Save changes"
 msgstr ""
 
-#: trac/prefs/templates/prefs_advanced.html:14
+#: trac/prefs/templates/prefs_advanced.html:24
 msgid "Session key:"
 msgstr ""
 
-#: trac/prefs/templates/prefs_advanced.html:17
+#: trac/prefs/templates/prefs_advanced.html:27
 msgid "Change"
 msgstr ""
 
-#: trac/prefs/templates/prefs_advanced.html:18
+#: trac/prefs/templates/prefs_advanced.html:28
 msgid ""
 "The session key is used to identify stored custom\n"
 "      settings and session data on the server. Although it is\n"
@@ -1657,15 +1632,15 @@ msgid ""
 "      in a different web browser."
 msgstr ""
 
-#: trac/prefs/templates/prefs_advanced.html:26
+#: trac/prefs/templates/prefs_advanced.html:36
 msgid "Restore session:"
 msgstr ""
 
-#: trac/prefs/templates/prefs_advanced.html:29
+#: trac/prefs/templates/prefs_advanced.html:39
 msgid "Load"
 msgstr ""
 
-#: trac/prefs/templates/prefs_advanced.html:30
+#: trac/prefs/templates/prefs_advanced.html:40
 msgid ""
 "You may load a previously created session by entering the\n"
 "      corresponding session key below. This lets you share settings "
@@ -1673,39 +1648,39 @@ msgid ""
 "      multiple computers and web browsers."
 msgstr ""
 
-#: trac/prefs/templates/prefs_datetime.html:16
+#: trac/prefs/templates/prefs_datetime.html:26
 msgid "Time zone:"
 msgstr ""
 
-#: trac/prefs/templates/prefs_datetime.html:18
+#: trac/prefs/templates/prefs_datetime.html:28
 msgid "Default time zone"
 msgstr ""
 
-#: trac/prefs/templates/prefs_datetime.html:25
+#: trac/prefs/templates/prefs_datetime.html:35
 msgid ""
 "Configuring your time zone will result in all\n"
 "      dates and times displayed on this site to use your time zone\n"
 "      instead of that of the server."
 msgstr ""
 
-#: trac/prefs/templates/prefs_datetime.html:34
+#: trac/prefs/templates/prefs_datetime.html:44
 #, python-format
 msgid "Example: The current time is [1:%(time)s] (UTC)."
 msgstr ""
 
-#: trac/prefs/templates/prefs_datetime.html:39
+#: trac/prefs/templates/prefs_datetime.html:49
 #, python-format
 msgid ""
 "In your time zone %(tz)s, this would be displayed as\n"
 "            [1:%(formatted)s]."
 msgstr ""
 
-#: trac/prefs/templates/prefs_datetime.html:45
+#: trac/prefs/templates/prefs_datetime.html:55
 #, python-format
 msgid "In the default time zone, this would be displayed as [1:%(formatted)s]."
 msgstr ""
 
-#: trac/prefs/templates/prefs_datetime.html:51
+#: trac/prefs/templates/prefs_datetime.html:61
 msgid ""
 "Note: Universal Co-ordinated Time (UTC) is also known as Greenwich Mean "
 "Time (GMT).[1:]\n"
@@ -1713,19 +1688,19 @@ msgid ""
 "Greenwich, i.e. ahead of Universal Time."
 msgstr ""
 
-#: trac/prefs/templates/prefs_datetime.html:59
+#: trac/prefs/templates/prefs_datetime.html:69
 msgid "Date format:"
 msgstr ""
 
-#: trac/prefs/templates/prefs_datetime.html:61
+#: trac/prefs/templates/prefs_datetime.html:71
 msgid "Default date format"
 msgstr ""
 
-#: trac/prefs/templates/prefs_datetime.html:63
+#: trac/prefs/templates/prefs_datetime.html:73
 msgid "Your language setting"
 msgstr ""
 
-#: trac/prefs/templates/prefs_datetime.html:69
+#: trac/prefs/templates/prefs_datetime.html:79
 msgid ""
 "Configuring your date format will result in formatting\n"
 "      and parsing datetime displayed on this site to use your date format"
@@ -1733,23 +1708,23 @@ msgid ""
 "      instead of that of the server."
 msgstr ""
 
-#: trac/prefs/templates/prefs_datetime.html:75
+#: trac/prefs/templates/prefs_datetime.html:85
 msgid "Date relative/absolute format:"
 msgstr ""
 
-#: trac/prefs/templates/prefs_datetime.html:77
+#: trac/prefs/templates/prefs_datetime.html:87
 msgid "Default format"
 msgstr ""
 
-#: trac/prefs/templates/prefs_datetime.html:79
+#: trac/prefs/templates/prefs_datetime.html:89
 msgid "Relative format"
 msgstr ""
 
-#: trac/prefs/templates/prefs_datetime.html:81
+#: trac/prefs/templates/prefs_datetime.html:91
 msgid "Absolute format"
 msgstr ""
 
-#: trac/prefs/templates/prefs_datetime.html:85
+#: trac/prefs/templates/prefs_datetime.html:95
 msgid ""
 "Configuring your relative/absolute format will result in\n"
 "      formatting datetime displayed on this site to use your format "
@@ -1757,32 +1732,32 @@ msgid ""
 "      that of the server."
 msgstr ""
 
-#: trac/prefs/templates/prefs_general.html:15
+#: trac/prefs/templates/prefs_general.html:25
 msgid "Full name:"
 msgstr ""
 
-#: trac/prefs/templates/prefs_general.html:20
+#: trac/prefs/templates/prefs_general.html:30
 msgid "Email address:"
 msgstr ""
 
-#: trac/prefs/templates/prefs_general.html:26
+#: trac/prefs/templates/prefs_general.html:36
 msgid ""
 "This information is used to automatically populate some forms\n"
 "        on this site with your contact details."
 msgstr ""
 
-#: trac/prefs/templates/prefs_general.html:30
+#: trac/prefs/templates/prefs_general.html:40
 msgid ""
 "This information is used to associate your login name with your\n"
 "        email address and full name, which is used for email\n"
 "        notification and RSS feeds, for example."
 msgstr ""
 
-#: trac/prefs/templates/prefs_keybindings.html:18
+#: trac/prefs/templates/prefs_keybindings.html:28
 msgid "Enable access keys"
 msgstr ""
 
-#: trac/prefs/templates/prefs_keybindings.html:21
+#: trac/prefs/templates/prefs_keybindings.html:31
 msgid ""
 "This site provides keyboard shortcuts for\n"
 "      faster access to certain functions of this site. As these shortcuts"
@@ -1793,122 +1768,128 @@ msgid ""
 "      for more information on access keys."
 msgstr ""
 
-#: trac/prefs/templates/prefs_language.html:15
+#: trac/prefs/templates/prefs_language.html:25
 msgid "Language:"
 msgstr ""
 
-#: trac/prefs/templates/prefs_language.html:17
+#: trac/prefs/templates/prefs_language.html:28
 msgid "Default language"
 msgstr ""
 
-#: trac/prefs/templates/prefs_language.html:23
+#: trac/prefs/templates/prefs_language.html:42
 msgid ""
 "Configuring your language will result in all text\n"
-"      displayed on this site to use your language instead of that of the\n"
-"      server."
+"        displayed on this site to use your language instead of that of "
+"the\n"
+"        server."
 msgstr ""
 
-#: trac/prefs/templates/prefs_language.html:27
+#: trac/prefs/templates/prefs_language.html:46
 msgid ""
 "The [1:Default language] option uses the browser's\n"
 "        language negotiation feature to select the appropriate language."
 msgstr ""
 
-#: trac/prefs/templates/prefs_pygments.html:37
+#: trac/prefs/templates/prefs_pygments.html:47
 msgid ""
 "The Pygments syntax highlighter can be used with\n"
 "      different coloring styles."
 msgstr ""
 
-#: trac/prefs/templates/prefs_pygments.html:39
+#: trac/prefs/templates/prefs_pygments.html:49
 msgid "Style:"
 msgstr ""
 
-#: trac/prefs/templates/prefs_pygments.html:44
+#: trac/prefs/templates/prefs_pygments.html:54
 msgid "Preview:"
 msgstr ""
 
-#: trac/prefs/templates/prefs_userinterface.html:18
+#: trac/prefs/templates/prefs_userinterface.html:28
 msgid "Use only symbols for buttons."
 msgstr ""
 
-#: trac/prefs/templates/prefs_userinterface.html:21
+#: trac/prefs/templates/prefs_userinterface.html:31
 msgid ""
 "Display only the icon or symbol for\n"
 "      short inline buttons, and hide the text caption."
 msgstr ""
 
-#: trac/prefs/templates/prefs_userinterface.html:29
+#: trac/prefs/templates/prefs_userinterface.html:39
 msgid "Hide help links."
 msgstr ""
 
-#: trac/prefs/templates/prefs_userinterface.html:32
+#: trac/prefs/templates/prefs_userinterface.html:42
 msgid ""
 "Don't show the various help links.\n"
 "      This reduces the verbosity of the pages."
 msgstr ""
 
-#: trac/search/web_ui.py:72 trac/search/templates/search.html:12
-#: trac/search/templates/search.html:26 trac/search/templates/search.html:31
-#: trac/templates/theme.html:29
+#: trac/search/web_ui.py:71 trac/search/templates/search.html:22
+#: trac/search/templates/search.html:33 trac/search/templates/search.html:38
+#: trac/templates/theme.html:39
 msgid "Search"
 msgstr ""
 
-#: trac/search/web_ui.py:166
+#: trac/search/web_ui.py:165
 #, python-format
 msgid "Browse repository path %(path)s"
 msgstr ""
 
-#: trac/search/web_ui.py:206
+#: trac/search/web_ui.py:205
 #, python-format
 msgid "Search query too short. Query must be at least %(num)s characters long."
 msgstr ""
 
-#: trac/search/web_ui.py:245 trac/ticket/query.py:785 trac/ticket/report.py:459
+#: trac/search/web_ui.py:231 trac/ticket/query.py:812 trac/ticket/report.py:458
+#, python-format
+msgid "Page %(num)d"
+msgstr ""
+
+#: trac/search/web_ui.py:244 trac/ticket/query.py:799 trac/ticket/report.py:449
 msgid "Next Page"
 msgstr ""
 
-#: trac/search/web_ui.py:251 trac/ticket/query.py:790 trac/ticket/report.py:462
+#: trac/search/web_ui.py:250 trac/ticket/query.py:804 trac/ticket/report.py:452
 msgid "Previous Page"
 msgstr ""
 
-#: trac/search/templates/search.html:11
+#: trac/search/templates/search.html:21
 msgid "Search Results"
 msgstr ""
 
-#: trac/search/templates/search.html:43
-#: trac/ticket/templates/query_results.html:20
-#: trac/ticket/templates/report_view.html:78
+#: trac/search/templates/search.html:50
+#: trac/ticket/templates/query_results.html:29
+#: trac/ticket/templates/report_view.html:88
 msgid "Results"
 msgstr ""
 
-#: trac/search/templates/search.html:51
+#: trac/search/templates/search.html:58
 #, python-format
 msgid "Quickjump to %(name)s"
 msgstr ""
 
-#: trac/search/templates/search.html:59
+#: trac/search/templates/search.html:66
 #, python-format
 msgid "By %(author)s"
 msgstr ""
 
-#: trac/search/templates/search.html:68
-#: trac/ticket/templates/report_view.html:97
-#: trac/ticket/templates/report_view.html:208
+#: trac/search/templates/search.html:75
+#: trac/ticket/templates/report_view.html:107
+#: trac/ticket/templates/report_view.html:218
 msgid "No matches found."
 msgstr ""
 
-#: trac/search/templates/search.html:72
+#: trac/search/templates/search.html:79
 msgid ""
 "[1:Note:] See [2:TracSearch]\n"
 "        for help on searching."
 msgstr ""
 
-#: trac/templates/about.html:26
+#: trac/templates/about.html:38
 msgid "Trac: Integrated SCM & Project Management"
 msgstr ""
 
-#: trac/templates/about.html:30
+#: trac/templates/about.html:42
 msgid ""
 "Trac is a web-based software project management and bug/issue\n"
 "        tracking system emphasizing ease of use and low ceremony.\n"
@@ -1918,7 +1899,7 @@ msgid ""
 "        and changes within a project."
 msgstr ""
 
-#: trac/templates/about.html:36
+#: trac/templates/about.html:48
 msgid ""
 "Trac is distributed under the modified BSD License.[1:]\n"
 "        The complete text of the license can be found\n"
@@ -1926,126 +1907,127 @@ msgid ""
 "        as well as in the [3:COPYING] file included in the distribution."
 msgstr ""
 
-#: trac/templates/about.html:41
+#: trac/templates/about.html:53
 msgid "python powered"
 msgstr ""
 
-#: trac/templates/about.html:44
+#: trac/templates/about.html:56
 msgid ""
 "Please visit the Trac open source project:\n"
 "        [1:http://trac.edgewall.org/]"
 msgstr ""
 
-#: trac/templates/about.html:46
+#: trac/templates/about.html:58
 msgid ""
 "Copyright © 2003-2013\n"
 "        [1:Edgewall Software]"
 msgstr ""
 
-#: trac/templates/about.html:54
+#: trac/templates/about.html:66
 msgid "System Information"
 msgstr ""
 
-#: trac/templates/about.html:56
+#: trac/templates/about.html:68
 msgid "Package"
 msgstr ""
 
-#: trac/templates/about.html:56 trac/templates/about.html:69
-#: trac/templates/history_view.html:28 trac/ticket/admin.py:431
-#: trac/ticket/api.py:307
+#: trac/templates/about.html:68 trac/templates/about.html:81
+#: trac/templates/history_view.html:38 trac/ticket/admin.py:440
+#: trac/ticket/api.py:316
 msgid "Version"
 msgstr ""
 
-#: trac/templates/about.html:67
+#: trac/templates/about.html:79
 msgid "Installed Plugins"
 msgstr ""
 
-#: trac/templates/about.html:69
+#: trac/templates/about.html:81
 msgid "Location"
 msgstr ""
 
-#: trac/templates/about.html:77 trac/templates/error.html:192
-#: trac/web/main.py:589
+#: trac/templates/about.html:89 trac/templates/error.html:211
+#: trac/web/main.py:583
 msgid "N/A"
 msgstr ""
 
-#: trac/templates/about.html:89
+#: trac/templates/about.html:101
 msgid "Section"
 msgstr ""
 
-#: trac/templates/about.html:91 trac/templates/error.html:160
+#: trac/templates/about.html:103 trac/templates/error.html:179
 msgid "Value"
 msgstr ""
 
-#: trac/templates/attach_file_form.html:15
+#: trac/templates/attach_file_form.html:24
+msgid "Attach another file"
+msgstr ""
+
+#: trac/templates/attach_file_form.html:24
 msgid "Attach file"
 msgstr ""
 
-#: trac/templates/attachment.html:12
+#: trac/templates/attachment.html:22
 msgid "– Attachment"
 msgstr ""
 
-#: trac/templates/attachment.html:13
+#: trac/templates/attachment.html:23
 msgid "– Attachments"
 msgstr ""
 
-#: trac/templates/attachment.html:14
+#: trac/templates/attachment.html:24
 #, python-format
 msgid "%(filename)s on %(parent)s – Attachment"
 msgstr ""
 
-#: trac/templates/attachment.html:29
+#: trac/templates/attachment.html:39
 #, python-format
 msgid "Add Attachment to [1:%(parent)s]"
 msgstr ""
 
-#: trac/templates/attachment.html:33
+#: trac/templates/attachment.html:43
 #, python-format
 msgid "(size limit %(value)s)"
 msgstr ""
 
-#: trac/templates/attachment.html:37
+#: trac/templates/attachment.html:47
 msgid "Attachment Info"
 msgstr ""
 
-#: trac/templates/attachment.html:40 trac/ticket/templates/ticket.html:355
-#: trac/wiki/templates/wiki_edit_form.html:42
+#: trac/templates/attachment.html:50 trac/ticket/templates/ticket.html:358
+#: trac/wiki/templates/wiki_edit_form.html:53
 msgid "Your email or username:"
 msgstr ""
 
-#: trac/templates/attachment.html:46
+#: trac/templates/attachment.html:56
 msgid "Description of the file (optional):"
 msgstr ""
 
-#: trac/templates/attachment.html:52
+#: trac/templates/attachment.html:62
 msgid "Replace existing attachment of the same name"
 msgstr ""
 
-#: trac/templates/attachment.html:62
+#: trac/templates/attachment.html:72
 msgid "Add attachment"
 msgstr ""
 
-#: trac/templates/attachment.html:70
+#: trac/templates/attachment.html:80
 msgid "Are you sure you want to delete this attachment?"
 msgstr ""
 
-#: trac/templates/attachment.html:77 trac/templates/attachment.html:119
+#: trac/templates/attachment.html:86 trac/templates/attachment.html:128
 msgid "Delete attachment"
 msgstr ""
 
-#: trac/templates/attachment.html:86
-msgid "Attach another file"
-msgstr ""
-
-#: trac/templates/attachment.html:98 trac/templates/list_of_attachments.html:21
-#: trac/templates/macros.html:19 trac/util/text.py:621
-#: trac/versioncontrol/templates/browser.html:189
-#: trac/versioncontrol/templates/dir_entries.html:17
+#: trac/templates/attachment.html:107
+#: trac/templates/list_of_attachments.html:30 trac/templates/macros.html:29
+#: trac/util/text.py:633 trac/util/tests/html.py:215
+#: trac/util/tests/html.py:228 trac/versioncontrol/templates/browser.html:199
+#: trac/versioncontrol/templates/dir_entries.html:28
 #, python-format
 msgid "%(size)s bytes"
 msgstr ""
 
-#: trac/templates/attachment.html:96
+#: trac/templates/attachment.html:105
 #, python-format
 msgid ""
 "File %(file)s,\n"
@@ -2053,42 +2035,42 @@ msgid ""
 "                (added by %(author)s, %(date)s)"
 msgstr ""
 
-#: trac/templates/diff_div.html:72
+#: trac/templates/diff_div.html:81
 #, python-format
 msgid ""
 "Property %(name)s\n"
 "                  changed from %(old)s to %(new)s"
 msgstr ""
 
-#: trac/templates/diff_div.html:76
+#: trac/templates/diff_div.html:85
 #, python-format
 msgid "Property %(name)s set to %(value)s"
 msgstr ""
 
-#: trac/templates/diff_div.html:79
+#: trac/templates/diff_div.html:88
 #, python-format
 msgid "Property %(name)s deleted"
 msgstr ""
 
-#: trac/templates/diff_div.html:86
+#: trac/templates/diff_div.html:95
 msgid "Differences"
 msgstr ""
 
-#: trac/templates/diff_options.html:10
-#: trac/versioncontrol/templates/browser.html:138
-#: trac/versioncontrol/templates/browser.html:146
+#: trac/templates/diff_options.html:21
+#: trac/versioncontrol/templates/browser.html:148
+#: trac/versioncontrol/templates/browser.html:156
 msgid "View differences"
 msgstr ""
 
-#: trac/templates/diff_options.html:13
+#: trac/templates/diff_options.html:24
 msgid "inline"
 msgstr ""
 
-#: trac/templates/diff_options.html:15
+#: trac/templates/diff_options.html:26
 msgid "side by side"
 msgstr ""
 
-#: trac/templates/diff_options.html:18
+#: trac/templates/diff_options.html:29
 msgid ""
 "[1:[2:]\n"
 "             Show]\n"
@@ -2096,37 +2078,37 @@ msgid ""
 "             lines around each change]"
 msgstr ""
 
-#: trac/templates/diff_options.html:28
+#: trac/templates/diff_options.html:39
 msgid "Show the changes in full context"
 msgstr ""
 
-#: trac/templates/diff_options.html:32
+#: trac/templates/diff_options.html:43
 msgid "Ignore:"
 msgstr ""
 
-#: trac/templates/diff_options.html:36
+#: trac/templates/diff_options.html:47
 msgid "Blank lines"
 msgstr ""
 
-#: trac/templates/diff_options.html:41
+#: trac/templates/diff_options.html:52
 msgid "Case changes"
 msgstr ""
 
-#: trac/templates/diff_options.html:46
+#: trac/templates/diff_options.html:57
 msgid "White space changes"
 msgstr ""
 
-#: trac/templates/diff_options.html:50
-#: trac/ticket/templates/milestone_view.html:57
-#: trac/ticket/templates/query.html:220
-#: trac/ticket/templates/report_view.html:49
-#: trac/ticket/templates/roadmap.html:28
-#: trac/timeline/templates/timeline.html:36
-#: trac/versioncontrol/templates/revisionlog.html:80
+#: trac/templates/diff_options.html:61
+#: trac/ticket/templates/milestone_view.html:67
+#: trac/ticket/templates/query.html:230
+#: trac/ticket/templates/report_view.html:59
+#: trac/ticket/templates/roadmap.html:38
+#: trac/timeline/templates/timeline.html:46
+#: trac/versioncontrol/templates/revisionlog.html:90
 msgid "Update"
 msgstr ""
 
-#: trac/templates/diff_view.html:18
+#: trac/templates/diff_view.html:28
 #, python-format
 msgid ""
 "Changes between\n"
@@ -2135,7 +2117,7 @@ msgid ""
 "          [3:%(name)s]"
 msgstr ""
 
-#: trac/templates/diff_view.html:23
+#: trac/templates/diff_view.html:33
 #, python-format
 msgid ""
 "Changes between\n"
@@ -2144,7 +2126,7 @@ msgid ""
 "          [3:%(name)s]"
 msgstr ""
 
-#: trac/templates/diff_view.html:28
+#: trac/templates/diff_view.html:38
 #, python-format
 msgid ""
 "Changes from\n"
@@ -2152,79 +2134,80 @@ msgid ""
 "          [2:%(name)s]"
 msgstr ""
 
-#: trac/templates/diff_view.html:43
-#: trac/versioncontrol/templates/changeset.html:136
+#: trac/templates/diff_view.html:53
+#: trac/versioncontrol/templates/changeset.html:146
 msgid "Timestamp:"
 msgstr ""
 
-#: trac/templates/diff_view.html:45 trac/templates/diff_view.html:53
-#: trac/templates/diff_view.html:59
+#: trac/templates/diff_view.html:55 trac/templates/diff_view.html:63
+#: trac/templates/diff_view.html:69
 msgid "(multiple changes)"
 msgstr ""
 
-#: trac/templates/diff_view.html:47
+#: trac/templates/diff_view.html:57
 #, python-format
 msgid "%(date)s (%(duration)s ago)"
 msgstr ""
 
-#: trac/templates/diff_view.html:55
+#: trac/templates/diff_view.html:65
 #, python-format
 msgid "(IP: %(ipnr)s)"
 msgstr ""
 
-#: trac/templates/diff_view.html:57 trac/ticket/templates/batch_modify.html:12
+#: trac/templates/diff_view.html:67 trac/ticket/templates/batch_modify.html:22
 #: trac/ticket/templates/batch_ticket_notify_email.txt:9
+#: trac/ticket/templates/milestone_edit.html:107
 #: trac/ticket/templates/ticket_notify_email.txt:21
 msgid "Comment:"
 msgstr ""
 
-#: trac/templates/diff_view.html:65
-#: trac/versioncontrol/templates/changeset.html:198
-#: trac/versioncontrol/templates/revisionlog.html:86
+#: trac/templates/diff_view.html:75
+#: trac/versioncontrol/templates/changeset.html:208
+#: trac/versioncontrol/templates/revisionlog.html:96
 msgid "Legend:"
 msgstr ""
 
-#: trac/templates/diff_view.html:67
-#: trac/versioncontrol/templates/changeset.html:200
+#: trac/templates/diff_view.html:77
+#: trac/versioncontrol/templates/changeset.html:210
 msgid "Unmodified"
 msgstr ""
 
-#: trac/templates/diff_view.html:68
-#: trac/versioncontrol/templates/changeset.html:201
-#: trac/versioncontrol/templates/revisionlog.html:88
+#: trac/templates/diff_view.html:78
+#: trac/versioncontrol/templates/changeset.html:211
+#: trac/versioncontrol/templates/revisionlog.html:98
 msgid "Added"
 msgstr ""
 
-#: trac/templates/diff_view.html:69
-#: trac/versioncontrol/templates/changeset.html:202
-#: trac/versioncontrol/templates/revisionlog.html:90
+#: trac/templates/diff_view.html:79
+#: trac/versioncontrol/templates/changeset.html:212
+#: trac/versioncontrol/templates/revisionlog.html:100
 msgid "Removed"
 msgstr ""
 
-#: trac/templates/diff_view.html:70 trac/ticket/api.py:336
-#: trac/versioncontrol/templates/changeset.html:204
-#: trac/versioncontrol/templates/revisionlog.html:92 trac/wiki/admin.py:197
+#: trac/templates/diff_view.html:80 trac/ticket/api.py:345
+#: trac/versioncontrol/templates/changeset.html:214
+#: trac/versioncontrol/templates/revisionlog.html:102 trac/wiki/admin.py:197
 msgid "Modified"
 msgstr ""
 
-#: trac/templates/error.html:10 trac/templates/index.html:18
-#: trac/web/main.py:516
+#: trac/templates/error.html:20 trac/templates/index.html:28
+#: trac/web/api.py:165
 msgid "Error"
 msgstr ""
 
-#: trac/templates/error.html:65
+#: trac/templates/error.html:80
 msgid "Create"
 msgstr ""
 
-#: trac/templates/error.html:80
+#: trac/templates/error.html:95
 msgid "Oops…"
 msgstr ""
 
-#: trac/templates/error.html:82
+#: trac/templates/error.html:97
 msgid "Trac detected an internal error:"
 msgstr ""
 
-#: trac/templates/error.html:87
+#: trac/templates/error.html:102
 msgid ""
 "There was an internal error in Trac.\n"
 "                It is recommended that you notify your local\n"
@@ -2233,50 +2216,50 @@ msgid ""
 "                reproduce the issue."
 msgstr ""
 
-#: trac/templates/error.html:95
+#: trac/templates/error.html:110
 #, python-format
 msgid "To that end, you could %(create)s a ticket."
 msgstr ""
 
-#: trac/templates/error.html:97
+#: trac/templates/error.html:112
 msgid "The action that triggered the error was:"
 msgstr ""
 
-#: trac/templates/error.html:102
+#: trac/templates/error.html:116 trac/templates/error.html:121
 msgid "This is probably a local installation issue."
 msgstr ""
 
-#: trac/templates/error.html:103
+#: trac/templates/error.html:122
 #, python-format
 msgid ""
 "You should %(create)s a ticket at the admin Trac to report\n"
 "                    the issue."
 msgstr ""
 
-#: trac/templates/error.html:109
+#: trac/templates/error.html:128
 msgid "Found a bug in Trac?"
 msgstr ""
 
-#: trac/templates/error.html:110
+#: trac/templates/error.html:129
 msgid ""
 "If you think this should work and you can reproduce the problem,\n"
 "              you should consider creating a bug report."
 msgstr ""
 
-#: trac/templates/error.html:113
+#: trac/templates/error.html:132
 #, python-format
 msgid "Note that the %(name)s plugin seems to be involved."
 msgstr ""
 
-#: trac/templates/error.html:116
+#: trac/templates/error.html:135
 msgid "Note that the following plugins seem to be involved:"
 msgstr ""
 
-#: trac/templates/error.html:120
+#: trac/templates/error.html:139
 msgid "Please report this issue to the plugin maintainer."
 msgstr ""
 
-#: trac/templates/error.html:122
+#: trac/templates/error.html:141
 msgid ""
 "Before you do that, though, please first try\n"
 "                [1:[2:searching]\n"
@@ -2289,22 +2272,22 @@ msgid ""
 "                instead of creating a ticket."
 msgstr ""
 
-#: trac/templates/error.html:131
+#: trac/templates/error.html:150
 #, python-format
 msgid ""
 "Otherwise, please %(create)s a new bug report\n"
 "                describing the problem and explain how to reproduce it."
 msgstr ""
 
-#: trac/templates/error.html:135
+#: trac/templates/error.html:154
 msgid "Python Traceback"
 msgstr ""
 
-#: trac/templates/error.html:136
+#: trac/templates/error.html:155
 msgid "Most recent call last:"
 msgstr ""
 
-#: trac/templates/error.html:140
+#: trac/templates/error.html:159
 #, python-format
 msgid ""
 "[1:File \"%(file)s\",\n"
@@ -2312,86 +2295,86 @@ msgid ""
 "                        [3:%(function)s]"
 msgstr ""
 
-#: trac/templates/error.html:146
+#: trac/templates/error.html:165
 msgid "Code fragment:"
 msgstr ""
 
-#: trac/templates/error.html:158
+#: trac/templates/error.html:177
 msgid "Local variables:"
 msgstr ""
 
-#: trac/templates/error.html:172
+#: trac/templates/error.html:191
 #, python-format
 msgid "File \"%(file)s\", line %(line)s, in %(function)s"
 msgstr ""
 
-#: trac/templates/error.html:175
+#: trac/templates/error.html:194
 msgid "Switch to plain text view"
 msgstr ""
 
-#: trac/templates/error.html:178
+#: trac/templates/error.html:197
 msgid "System Information:"
 msgstr ""
 
-#: trac/templates/error.html:186
+#: trac/templates/error.html:205
 msgid "Enabled Plugins:"
 msgstr ""
 
-#: trac/templates/error.html:202
+#: trac/templates/error.html:221
 msgid "TracGuide"
 msgstr ""
 
-#: trac/templates/error.html:202
+#: trac/templates/error.html:221
 msgid "— The Trac User and Administration Guide"
 msgstr ""
 
-#: trac/templates/history_view.html:16
+#: trac/templates/history_view.html:26
 #, python-format
 msgid "Change History for [1:%(name)s]"
 msgstr ""
 
-#: trac/templates/history_view.html:22 trac/templates/history_view.html:55
-#: trac/versioncontrol/templates/diff_form.html:58
-#: trac/versioncontrol/templates/revisionlog.html:101
-#: trac/versioncontrol/templates/revisionlog.html:204
+#: trac/templates/history_view.html:32 trac/templates/history_view.html:65
+#: trac/versioncontrol/templates/diff_form.html:68
+#: trac/versioncontrol/templates/revisionlog.html:111
+#: trac/versioncontrol/templates/revisionlog.html:214
 msgid "View changes"
 msgstr ""
 
-#: trac/templates/history_view.html:24
+#: trac/templates/history_view.html:34
 msgid "Change history"
 msgstr ""
 
-#: trac/templates/history_view.html:31
+#: trac/templates/history_view.html:41
 msgid "Comment"
 msgstr ""
 
-#: trac/templates/history_view.html:43
+#: trac/templates/history_view.html:53
 msgid "View this version"
 msgstr ""
 
-#: trac/templates/history_view.html:46
+#: trac/templates/history_view.html:56
 #, python-format
 msgid "IP-Address: %(ipnr)s"
 msgstr ""
 
-#: trac/templates/index.html:8 trac/templates/index.html:12
+#: trac/templates/index.html:18 trac/templates/index.html:22
 msgid "Available Projects"
 msgstr ""
 
-#: trac/templates/layout.html:28
+#: trac/templates/layout.html:38
 #, python-format
 msgid "Search %(project)s"
 msgstr ""
 
-#: trac/templates/layout.html:69
+#: trac/templates/layout.html:85
 msgid "Download in other formats:"
 msgstr ""
 
-#: trac/templates/list_of_attachments.html:19
+#: trac/templates/list_of_attachments.html:28
 msgid "View attachment"
 msgstr ""
 
-#: trac/templates/list_of_attachments.html:18
+#: trac/templates/list_of_attachments.html:27
 #, python-format
 msgid ""
 "[1:%(file)s][2:​]\n"
@@ -2399,107 +2382,112 @@ msgid ""
 "      added by [4:%(author)s] %(date)s."
 msgstr ""
 
-#: trac/templates/list_of_attachments.html:28
-#: trac/templates/list_of_attachments.html:44
-#: trac/ticket/templates/ticket.html:378
+#: trac/templates/list_of_attachments.html:37
+#: trac/templates/list_of_attachments.html:53
+#: trac/ticket/templates/ticket.html:381
 msgid "Attachments"
 msgstr ""
 
-#: trac/templates/list_of_attachments.html:38
-#: trac/templates/list_of_attachments.html:54
+#: trac/templates/list_of_attachments.html:47
+#: trac/templates/list_of_attachments.html:63
 msgid "Download all attachments as:"
 msgstr ""
 
-#: trac/templates/list_of_attachments.html:39
-#: trac/templates/list_of_attachments.html:55
+#: trac/templates/list_of_attachments.html:48
+#: trac/templates/list_of_attachments.html:64
 msgid ".zip"
 msgstr ""
 
-#: trac/templates/macros.html:37 trac/templates/macros.html:38
+#: trac/templates/macros.html:47 trac/templates/macros.html:48
 msgid "Previous"
 msgstr ""
 
-#: trac/templates/macros.html:47 trac/templates/macros.html:48
+#: trac/templates/macros.html:57 trac/templates/macros.html:58
 msgid "Next"
 msgstr ""
 
-#: trac/templates/preview_file.html:15
+#: trac/templates/preview_file.html:24
 msgid "(The file is empty)"
 msgstr ""
 
-#: trac/templates/preview_file.html:19
+#: trac/templates/preview_file.html:28
 #, python-format
 msgid ""
 "[1:HTML preview not available], since the file size exceeds %(size)s "
 "bytes."
 msgstr ""
 
-#: trac/templates/preview_file.html:22
+#: trac/templates/preview_file.html:31
 msgid "[1:HTML preview not available], since no preview renderer could handle it."
 msgstr ""
 
-#: trac/templates/preview_file.html:26
+#: trac/templates/preview_file.html:35
 msgid "Try [1:downloading] the file instead."
 msgstr ""
 
-#: trac/templates/progress_bar.html:26
+#: trac/templates/progress_bar.html:35
 #, python-format
 msgid "%(count)s/%(total)s %(title)s"
 msgstr ""
 
-#: trac/templates/progress_bar.html:37
+#: trac/templates/progress_bar.html:46
 #, python-format
 msgid "Total number of %(unit)s: %(count)s"
 msgstr ""
 
-#: trac/templates/progress_bar.html:41
+#: trac/templates/progress_bar.html:50
 #, python-format
 msgid "%(title)s: %(count)s"
 msgstr ""
 
-#: trac/templates/progress_bar_grouped.html:17
+#: trac/templates/progress_bar_grouped.html:26
+#: trac/ticket/default_workflow.py:233
 msgid "(none)"
 msgstr ""
 
-#: trac/templates/theme.html:27
+#: trac/templates/theme.html:37
 msgid "Search:"
 msgstr ""
 
-#: trac/templates/theme.html:41
+#: trac/templates/theme.html:51
 msgid "Context Navigation"
 msgstr ""
 
-#: trac/templates/theme.html:50
+#: trac/templates/theme.html:60
 msgid "Hide this warning"
 msgstr ""
 
-#: trac/templates/theme.html:50 trac/templates/theme.html:58
+#: trac/templates/theme.html:60 trac/templates/theme.html:68
 msgid "close"
 msgstr ""
 
-#: trac/templates/theme.html:52
+#: trac/templates/theme.html:62
 msgid "Warning:"
 msgstr ""
 
-#: trac/templates/theme.html:58
+#: trac/templates/theme.html:68
 msgid "Hide this notice"
 msgstr ""
 
-#: trac/templates/theme.html:72
+#: trac/templates/theme.html:82
 #, python-format
 msgid ""
 "Powered by [1:[2:Trac %(version)s]][3:]\n"
 "        By [4:Edgewall Software]."
 msgstr ""
 
-#: trac/ticket/admin.py:37
+#: trac/ticket/admin.py:39
 msgid "(Undefined)"
 msgstr ""
 
-#: trac/ticket/admin.py:48
+#: trac/ticket/admin.py:49
 msgid "Ticket System"
 msgstr ""
 
+#: trac/ticket/admin.py:77 trac/ticket/templates/admin_components.html:20
+msgid "Components"
+msgstr ""
+
 #: trac/ticket/admin.py:93
 #, python-format
 msgid "The component \"%(name)s\" already exists."
@@ -2510,7 +2498,7 @@ msgstr ""
 msgid "The component \"%(name)s\" has been added."
 msgstr ""
 
-#: trac/ticket/admin.py:122 trac/ticket/model.py:859 trac/ticket/model.py:878
+#: trac/ticket/admin.py:122 trac/ticket/model.py:871 trac/ticket/model.py:890
 msgid "Invalid component name."
 msgstr ""
 
@@ -2527,305 +2515,359 @@ msgstr ""
 msgid "The selected components have been removed."
 msgstr ""
 
-#: trac/ticket/admin.py:235 trac/ticket/api.py:305
+#: trac/ticket/admin.py:210 trac/ticket/api.py:302 trac/ticket/web_ui.py:1468
+#: trac/ticket/templates/admin_components.html:88
+msgid "Owner"
+msgstr ""
+
+#: trac/ticket/admin.py:235 trac/ticket/api.py:314
 msgid "Milestone"
 msgstr ""
 
-#: trac/ticket/admin.py:266 trac/ticket/roadmap.py:757
+#: trac/ticket/admin.py:235 trac/ticket/roadmap.py:1031
+#: trac/ticket/templates/admin_milestones.html:24
+msgid "Milestones"
+msgstr ""
+

[... 4685 lines stripped ...]