Index: messages.po
===================================================================
--- messages.po	(版本 9640)
+++ messages.po	(工作副本)
@@ -10,7 +10,7 @@
 "Project-Id-Version: Trac 0.12\n"
 "Report-Msgid-Bugs-To: trac-dev@googlegroups.com\n"
 "POT-Creation-Date: 2010-03-17 08:34+0100\n"
-"PO-Revision-Date: 2010-04-01 15:26+0800\n"
+"PO-Revision-Date: 2010-05-08 01:16+0800\n"
 "Last-Translator: Zeng Jie <zengjie@gmail.com>\n"
 "Language-Team: Chinese Simplified <zh_CN>\n"
 "Plural-Forms: nplurals=2; plural=0\n"
@@ -26,13 +26,11 @@
 msgstr "浣犱娇鐢ㄧ殑鏄疨HP CGI鐨勪簩杩涘埗鐗堟湰锛孴rac闇瑕佷娇鐢–LI鐗堟湰浠ユ彁渚涜娉曢珮浜"
 
 #: tracopt/ticket/deleter.py:69 tracopt/ticket/deleter.py:82
-#: tracopt/ticket/templates/ticket_delete.html:19
-#: trac/ticket/templates/report_list.html:37
-#: trac/wiki/templates/wiki_delete.html:22
+#: trac/ticket/templates/report_list.html:35
 msgid "Delete"
 msgstr "鍒犻櫎"
 
-#: tracopt/ticket/deleter.py:70 tracopt/ticket/templates/ticket_delete.html:39
+#: tracopt/ticket/deleter.py:70 tracopt/ticket/templates/ticket_delete.html:43
 msgid "Delete ticket"
 msgstr "鍒犻櫎浠诲姟鍗"
 
@@ -57,49 +55,42 @@
 msgstr "娌℃湁鎵惧埌璇勮 %(num)s"
 
 #: tracopt/ticket/templates/ticket_delete.html:11
-msgid "Delete Ticket #"
-msgstr "鍒犻櫎浠诲姟鍗 #"
+#, python-format
+msgid "Delete Ticket #%(id)s"
+msgstr "鍒犻櫎浠诲姟鍗 #%(id)s"
 
 #: tracopt/ticket/templates/ticket_delete.html:12
-#: tracopt/ticket/templates/ticket_delete.html:45
-#: tracopt/ticket/templates/ticket_delete.html:69
-msgid "Delete comment"
-msgstr "鍒犻櫎璇勮"
+#: tracopt/ticket/templates/ticket_delete.html:49
+#, python-format
+msgid "Delete comment %(num)s on Ticket #%(id)s"
+msgstr "鍒犻櫎浠诲姟鍗 #%(id)s 鐨勮瘎璁 %(num)s"
 
-#: tracopt/ticket/templates/ticket_delete.html:12
-#: tracopt/ticket/templates/ticket_delete.html:45
-msgid "on Ticket #"
-msgstr "浠诲姟鍗#"
-
 #: tracopt/ticket/templates/ticket_delete.html:20
-#: trac/ticket/templates/ticket.html:84
-msgid "Ticket #"
-msgstr "浠诲姟鍗 #"
+#, python-format
+msgid "Delete [1:Ticket #%(id)s]"
+msgstr "鍒犻櫎 [1:浠诲姟鍗 #%(id)s]"
 
-#: tracopt/ticket/templates/ticket_delete.html:32
+#: tracopt/ticket/templates/ticket_delete.html:33
 msgid "Are you sure you want to delete this ticket?"
 msgstr "纭畾鍒犻櫎璇ュ伐浣滃崟?"
 
-#: tracopt/ticket/templates/ticket_delete.html:32
-msgid "(comments:"
-msgstr "(璇勮:"
-
-#: tracopt/ticket/templates/ticket_delete.html:33
+#: tracopt/ticket/templates/ticket_delete.html:34
+#, python-format
 msgid ""
-",\n"
-"                attachments:"
+"(comments: %(comments)s,\n"
+"                 attachments: %(attachments)s)"
 msgstr ""
-"\",\n"
-"                        闄勪欢锛"
+"(璇勮: %(comments)s,\n"
+"                 闄勪欢: %(attachments)s)"
 
-#: tracopt/ticket/templates/ticket_delete.html:34
-#: tracopt/ticket/templates/ticket_delete.html:64
-#: trac/templates/attachment.html:70 trac/wiki/templates/wiki_delete.html:32
+#: tracopt/ticket/templates/ticket_delete.html:37
+#: tracopt/ticket/templates/ticket_delete.html:68
+#: trac/templates/attachment.html:70 trac/wiki/templates/wiki_delete.html:46
 msgid "This is an irreversible operation."
 msgstr "璇ユ搷浣滄槸涓嶅彲閫嗙殑."
 
-#: tracopt/ticket/templates/ticket_delete.html:38
-#: tracopt/ticket/templates/ticket_delete.html:68
+#: tracopt/ticket/templates/ticket_delete.html:42
+#: tracopt/ticket/templates/ticket_delete.html:72
 #: trac/admin/templates/admin_components.html:55
 #: trac/admin/templates/admin_enums.html:24
 #: trac/admin/templates/admin_milestones.html:68
@@ -108,117 +99,125 @@
 #: trac/ticket/templates/milestone_delete.html:40
 #: trac/ticket/templates/milestone_edit.html:94
 #: trac/ticket/templates/report_delete.html:21
-#: trac/ticket/templates/report_edit.html:42
+#: trac/ticket/templates/report_edit.html:44
 #: trac/ticket/templates/ticket_change.html:49
-#: trac/versioncontrol/templates/admin_repositories.html:83
-#: trac/wiki/templates/wiki_delete.html:36
-#: trac/wiki/templates/wiki_edit.html:80
+#: trac/versioncontrol/templates/admin_repositories.html:84
+#: trac/wiki/templates/wiki_delete.html:50
 #: trac/wiki/templates/wiki_edit_form.html:77
-#: trac/wiki/templates/wiki_rename.html:31
+#: trac/wiki/templates/wiki_rename.html:32
 msgid "Cancel"
 msgstr "鍙栨秷"
 
-#: tracopt/ticket/templates/ticket_delete.html:52
+#: tracopt/ticket/templates/ticket_delete.html:56
 msgid "comment:"
 msgstr "璇勮:"
 
-#: tracopt/ticket/templates/ticket_delete.html:54
+#: tracopt/ticket/templates/ticket_delete.html:58
 #: trac/ticket/templates/ticket.html:142
 #, python-format
 msgid "Changed %(date)s ago by %(author)s"
 msgstr "鐢 %(author)s 鍦 %(date)s 鍓嶅彉鏇"
 
-#: tracopt/ticket/templates/ticket_delete.html:64
+#: tracopt/ticket/templates/ticket_delete.html:68
 msgid "Are you sure you want to delete this ticket comment?"
 msgstr "纭畾鍒犻櫎璇ュ伐浣滃崟鐨勮瘎璁?"
 
-#: trac/about.py:45 trac/templates/about.html:10 trac/templates/about.html:29
+#: tracopt/ticket/templates/ticket_delete.html:73
+msgid "Delete comment"
+msgstr "鍒犻櫎璇勮"
+
+#: trac/about.py:47 trac/templates/about.html:10 trac/templates/about.html:29
 msgid "About Trac"
 msgstr "鍏充簬Trac"
 
-#: trac/attachment.py:152
+#: trac/attachment.py:151
 #, python-format
 msgid "Attachment '%(title)s' does not exist."
 msgstr "闄勪欢 '%(title)s' 涓嶅瓨鍦ㄣ"
 
-#: trac/attachment.py:153
+#: trac/attachment.py:152
 msgid "Invalid Attachment"
 msgstr "鏃犳晥闄勪欢"
 
-#: trac/attachment.py:193
+#: trac/attachment.py:192
 msgid "Could not delete attachment"
 msgstr "涓嶈兘鍒犻櫎闄勪欢"
 
-#: trac/attachment.py:209
+#: trac/attachment.py:208
 #, python-format
 msgid ""
 "Cannot reparent attachment \"%(att)s\" as it already exists in "
 "%(realm)s:%(id)s"
 msgstr "涓嶈兘涓洪檮浠 \"%(att)s\" 閲嶅畾鐖堕〉闈紝鍥犱负瀹冨凡鍦 %(realm)s:%(id)s 涓瓨鍦"
 
-#: trac/attachment.py:228
+#: trac/attachment.py:227
 #, python-format
 msgid "Could not reparent attachment %(name)s"
 msgstr "涓嶈兘涓洪檮浠 %(name)s 閲嶅畾鐖堕〉闈"
 
-#: trac/attachment.py:345
+#: trac/attachment.py:344
 #, python-format
 msgid "Attachment '%(filename)s' not found"
 msgstr "娌℃湁鎵惧埌闄勪欢'%(filename)s'"
 
-#: trac/attachment.py:419
+#: trac/attachment.py:418
 msgid "Bad request"
 msgstr "閿欒璇锋眰"
 
-#: trac/attachment.py:436
+#: trac/attachment.py:435
 #, python-format
 msgid "Back to %(parent)s"
 msgstr "杩斿洖 %(parent)s"
 
-#: trac/attachment.py:529
+#: trac/attachment.py:528
 #, python-format
 msgid "%(attachment)s attached to %(resource)s"
 msgstr "%(attachment)s 闄勫姞鍒 %(resource)s"
 
-#: trac/attachment.py:590
+#: trac/attachment.py:585
 #, python-format
+msgid "Unparented attachment %(id)s"
+msgstr "鏃犵埗椤甸潰鐨勯檮浠 %(id)s"
+
+#: trac/attachment.py:593
+#, python-format
 msgid "Attachment '%(id)s' in %(parent)s"
 msgstr "鍦 %(parent)s 涓殑闄勪欢 '%(id)s'"
 
-#: trac/attachment.py:593
+#: trac/attachment.py:596
 #, python-format
 msgid "Attachments of %(parent)s"
 msgstr "%(parent)s鐨勯檮浠"
 
-#: trac/attachment.py:606 trac/attachment.py:629 trac/admin/web_ui.py:425
+#: trac/attachment.py:609 trac/attachment.py:632 trac/admin/web_ui.py:425
 #: trac/admin/web_ui.py:428 trac/admin/web_ui.py:432
 msgid "No file uploaded"
 msgstr "娌℃湁鏂囦欢琚笂浼"
 
-#: trac/attachment.py:614
+#: trac/attachment.py:617
 msgid "Can't upload empty file"
 msgstr "涓嶈兘涓婁紶绌烘枃浠"
 
-#: trac/attachment.py:619
+#: trac/attachment.py:622
 #, python-format
 msgid "Maximum attachment size: %(num)s bytes"
 msgstr "闄勪欢鐨勬渶澶у昂瀵镐负: %(num)s 瀛楄妭"
 
-#: trac/attachment.py:620
+#: trac/attachment.py:623
 msgid "Upload failed"
 msgstr "涓婁紶澶辫触"
 
-#: trac/attachment.py:641
+#: trac/attachment.py:644
 #, python-format
 msgid "Attachment field %(field)s is invalid: %(message)s"
 msgstr "闄勪欢瀛楁 %(field)s 鏃犳晥: %(message)s"
 
-#: trac/attachment.py:645
+#: trac/attachment.py:648
 #, python-format
 msgid "Invalid attachment: %(message)s"
 msgstr "鏃犳晥闄勪欢: %(message)s"
 
-#: trac/attachment.py:656
+#: trac/attachment.py:659
 #, python-format
 msgid ""
 "You don't have permission to replace the attachment %(name)s. You can "
@@ -228,63 +227,65 @@
 "浣犳病鏈夋浛鎹㈤檮浠 %(name)s 鐨勬潈闄愩備綘鍙兘鏇挎崲浣犺嚜宸辩殑闄勪欢锛孿n"
 "鏇挎崲鍒汉鐨勯檮浠堕渶瑕 ATTACHMENT_DELETE鏉冮檺"
 
-#: trac/attachment.py:688
+#: trac/attachment.py:691
 #, python-format
 msgid "%(attachment)s (delete)"
 msgstr "%(attachment)s (鍒犻櫎)"
 
-#: trac/attachment.py:749 trac/versioncontrol/web_ui/browser.py:633
-#: trac/wiki/web_ui.py:69
+#: trac/attachment.py:752 trac/versioncontrol/web_ui/browser.py:643
+#: trac/wiki/web_ui.py:68
 msgid "Plain Text"
 msgstr "绾枃鏈"
 
-#: trac/attachment.py:755 trac/versioncontrol/web_ui/browser.py:639
+#: trac/attachment.py:758 trac/versioncontrol/web_ui/browser.py:649
 msgid "Original Format"
 msgstr "鍘熷鏍煎紡"
 
-#: trac/attachment.py:797 trac/attachment.py:803
+#: trac/attachment.py:800 trac/attachment.py:806
+#: trac/templates/list_of_attachments.html:20
+#: trac/templates/list_of_attachments.html:21
 #: trac/ticket/templates/ticket_change.html:21
 #: trac/ticket/templates/ticket_change.html:22
 msgid "Download"
 msgstr "涓嬭浇"
 
-#: trac/attachment.py:897
+#: trac/attachment.py:900
 #, python-format
 msgid "Invalid resource identifier '%(id)s'"
 msgstr "璧勬簮鏍囩ず绗'%(id)s'鏃犳晥"
 
-#: trac/attachment.py:933 trac/admin/templates/admin_components.html:80
+#: trac/attachment.py:936 trac/admin/templates/admin_components.html:80
 #: trac/admin/templates/admin_enums.html:48
 #: trac/admin/templates/admin_milestones.html:104
 #: trac/admin/templates/admin_versions.html:77 trac/templates/about.html:84
-#: trac/templates/error.html:185 trac/ticket/admin.py:210
-#: trac/ticket/admin.py:401 trac/ticket/admin.py:560
-#: trac/versioncontrol/admin.py:108
-#: trac/versioncontrol/templates/admin_repositories.html:124
-#: trac/web/session.py:315
+#: trac/templates/error.html:186 trac/ticket/admin.py:209
+#: trac/ticket/admin.py:400 trac/ticket/admin.py:559
+#: trac/versioncontrol/admin.py:110
+#: trac/versioncontrol/templates/admin_repositories.html:125
+#: trac/web/session.py:314
 msgid "Name"
 msgstr "鍚嶇О"
 
-#: trac/attachment.py:933
+#: trac/attachment.py:936
 msgid "Size"
 msgstr "澶у皬"
 
-#: trac/attachment.py:933 trac/templates/history_view.html:29
+#: trac/attachment.py:936 trac/templates/history_view.html:30
 #: trac/ticket/templates/ticket.html:360
-#: trac/versioncontrol/templates/revisionlog.html:96
+#: trac/versioncontrol/templates/revisionlog.html:98
 msgid "Author"
 msgstr "浣滆"
 
-#: trac/attachment.py:933 trac/templates/history_view.html:28
+#: trac/attachment.py:936 trac/templates/history_view.html:29
 msgid "Date"
 msgstr "鏃ユ湡"
 
-#: trac/attachment.py:934 trac/templates/attachment.html:93
+#: trac/attachment.py:937 trac/templates/attachment.html:93
 #: trac/ticket/api.py:289 trac/ticket/templates/ticket_box.html:60
 msgid "Description"
 msgstr "鎻忚堪"
 
-#: trac/attachment.py:959 trac/wiki/admin.py:105
+#: trac/attachment.py:962 trac/wiki/admin.py:104
 #, python-format
 msgid "File '%(name)s' exists"
 msgstr "鏂囦欢 '%(name)s' 宸茬粡瀛樺湪."
@@ -304,22 +305,22 @@
 msgid "[%(section)s] %(entry)s: expected one of (%(choices)s), got %(value)s"
 msgstr "[%(section)s] %(entry)s: 鏈熸湜鏄 (%(choices)s)涔嬩竴, 寰楀埌 %(value)s"
 
-#: trac/env.py:569
+#: trac/env.py:583
 msgid "Database newer than Trac version"
 msgstr "鏁版嵁搴撶殑鐗堟湰姣擳rac浣跨敤鐨勭増鏈柊"
 
-#: trac/env.py:583
+#: trac/env.py:600
 #, python-format
 msgid "No upgrade module for version %(num)i (%(version)s.py)"
 msgstr "鐗堟湰%(num)i 娌℃湁鍗囩骇妯″潡 (%(version)s.py)"
 
-#: trac/env.py:628
+#: trac/env.py:646
 msgid ""
 "Missing environment variable \"TRAC_ENV\". Trac requires this variable to"
 " point to a valid Trac environment."
 msgstr "娌℃湁鐜鍙橀噺\"TRAC_ENV\". Trac瑕佹眰浣跨敤璇ュ彉閲忎互鎸囧悜涓涓湁鏁堢殑Trac鐜."
 
-#: trac/env.py:660
+#: trac/env.py:678
 #, python-format
 msgid ""
 "The Trac Environment needs to be upgraded.\n"
@@ -330,41 +331,41 @@
 "\n"
 "璇锋墽琛孿"trac-admin %(path)s upgrade\""
 
-#: trac/env.py:694
+#: trac/env.py:712
 msgid "Copying resources from:"
 msgstr "姝ｅ湪澶嶅埗璧勬簮鑷細"
 
-#: trac/env.py:710
+#: trac/env.py:728
 msgid "Creating scripts."
 msgstr "姝ｅ湪鍒涘缓鑴氭湰銆"
 
-#: trac/env.py:725
+#: trac/env.py:743
 #, python-format
 msgid "hotcopy can't overwrite existing '%(dest)s'"
 msgstr "鐑鏃犳硶瑕嗙洊宸插瓨鍦ㄧ殑 '%(dest)s'"
 
-#: trac/env.py:735
+#: trac/env.py:753
 #, python-format
 msgid "Hotcopying %(src)s to %(dst)s ..."
 msgstr "姝ｅ湪灏 %(src)s 鐑鑷 %(dst)s ..."
 
-#: trac/env.py:750
+#: trac/env.py:768
 msgid "The following errors happened while copying the environment:"
 msgstr "褰撳鍒剁幆澧冩椂鍙戠敓浠ヤ笅閿欒锛"
 
-#: trac/env.py:761
+#: trac/env.py:779
 msgid "Hotcopy done."
 msgstr "鐑缁撴潫銆"
 
-#: trac/env.py:766 trac/admin/api.py:125
+#: trac/env.py:784 trac/admin/api.py:125
 msgid "Invalid arguments"
 msgstr "鏃犳晥鍙傛暟"
 
-#: trac/env.py:769
+#: trac/env.py:787
 msgid "Database is up to date, no upgrade necessary."
 msgstr "鏁版嵁搴撴槸鏈鏂扮殑锛屾棤闇鍗囩骇銆"
 
-#: trac/env.py:777
+#: trac/env.py:795
 #, python-format
 msgid ""
 "Backup failed with '%(msg)s'.\n"
@@ -373,7 +374,7 @@
 "澶囦唤澶辫触锛'%(msg)s'.\n"
 "浣跨敤 '--no-backup' 鎵ц涓嶅仛澶囦唤鐨勫崌绾с"
 
-#: trac/env.py:791
+#: trac/env.py:809
 msgid ""
 "Warning: the wiki-macros directory in the environment is non-empty, but "
 "Trac\n"
@@ -382,7 +383,7 @@
 "璀﹀憡锛歍rac鐜涓殑wiki-macro鐩綍闈炵┖锛屼絾鏄疶rac\n"
 "鏃犳硶浠庤鐩綍鍔犺浇鎻掍欢銆傝鎵嬪姩鍒犻櫎瀹冦"
 
-#: trac/env.py:802
+#: trac/env.py:820
 #, python-format
 msgid ""
 "Error while removing wiki-macros: %(err)s\n"
@@ -392,7 +393,7 @@
 "鍒犻櫎wiki-macros鏃跺嚭閿: %(err)s\n"
 "Trac涓嶈兘浠巜iki-macros鍔犺浇鎻掍欢锛岃鎵嬪伐鍒犻櫎銆"
 
-#: trac/env.py:804
+#: trac/env.py:822
 msgid "Upgrade done."
 msgstr "鍗囩骇瀹屾垚銆"
 
@@ -402,55 +403,68 @@
 
 #: trac/notification.py:303
 #, python-format
-msgid "Invalid email encoding setting: %s"
-msgstr "鏃犳晥鐨別mail缂栫爜璁剧疆: %s"
+msgid "Invalid email encoding setting: %(pref)s"
+msgstr "鏃犳晥鐨別mail缂栫爜璁剧疆: %(pref)s"
 
-#: trac/notification.py:329
+#: trac/notification.py:317
+msgid "Unable to send email due to identity crisis."
+msgstr "鐢变簬璁よ瘉闂锛屾棤娉曞彂閫丒mail銆"
+
+#: trac/notification.py:321
+#, python-format
+msgid "Neither %(from_)s nor %(reply_to)s are specified in the configuration."
+msgstr "閰嶇疆涓嵆娌℃寚瀹 %(from_)s 涔熸病鎸囧畾 %(reply_to)s銆"
+
+#: trac/notification.py:322
+msgid "SMTP Notification Error"
+msgstr "SMTP 閫氱煡閿欒"
+
+#: trac/notification.py:331
 msgid "Header length is too short"
-msgstr "Header闀垮害杩囩煭"
+msgstr "閭欢澶撮暱搴﹁繃鐭"
 
-#: trac/perm.py:49
+#: trac/perm.py:48
 #, python-format
 msgid "%(perm)s privileges are required to perform this operation on %(resource)s"
 msgstr "瀵 %(resource)s 鎵ц鐨勬搷浣滈渶瑕 %(perm)s 鏉冮檺"
 
-#: trac/perm.py:51
+#: trac/perm.py:50
 #, python-format
 msgid "%(perm)s privileges are required to perform this operation"
 msgstr "鎵ц璇ユ搷浣滈渶瑕 %(perm)s 鏉冮檺"
 
-#: trac/perm.py:56
+#: trac/perm.py:55
 msgid "Insufficient privileges to perform this operation."
 msgstr "娌℃湁瓒冲鐨勬潈闄愭墽琛岃鎿嶄綔銆"
 
-#: trac/perm.py:331
+#: trac/perm.py:333
 #, python-format
 msgid "%(name)s is not a valid action."
 msgstr "%(name)s 鏄棤鏁堝姩浣."
 
-#: trac/perm.py:640
+#: trac/perm.py:642
 msgid "User"
 msgstr "鐢ㄦ埛"
 
-#: trac/perm.py:640 trac/admin/templates/admin_perms.html:69
+#: trac/perm.py:642 trac/admin/templates/admin_perms.html:70
 #: trac/ticket/templates/ticket.html:338
 msgid "Action"
 msgstr "鍔ㄤ綔"
 
-#: trac/perm.py:642
+#: trac/perm.py:644
 msgid "Available actions:"
 msgstr "鍙夊姩浣: "
 
-#: trac/perm.py:655
-msgid "Group names must be in lower case and actions in upper case"
-msgstr "缁勫悕蹇呴』灏忓啓锛岃屽姩浣滃悕蹇呴』澶у啓"
+#: trac/perm.py:655 trac/admin/web_ui.py:333
+msgid "All upper-cased tokens are reserved for permission names"
+msgstr "鍏ㄩ儴澶у啓鐨勬爣璁板凡淇濈暀涓烘潈闄愬悕绉"
 
 #: trac/resource.py:326
 #, python-format
 msgid "%(name)s at version %(version)s"
 msgstr "%(name)s 鐨勭増鏈 %(version)s"
 
-#: trac/admin/api.py:129
+#: trac/admin/api.py:129 trac/admin/console.py:254
 msgid "Command not found"
 msgstr "鍛戒护鏃犳硶鎵惧埌"
 
@@ -458,7 +472,7 @@
 msgid "Error:"
 msgstr "閿欒:"
 
-#: trac/admin/console.py:129
+#: trac/admin/console.py:130
 #, python-format
 msgid ""
 "Welcome to trac-admin %(version)s\n"
@@ -474,38 +488,40 @@
 "\n"
 "杈撳叆 '?' 鎴 'help' 鑾峰彇鍛戒护甯姪"
 
-#: trac/admin/console.py:161
-msgid "Failed to open environment."
-msgstr "鎵撳紑鐜澶辫触銆"
+#: trac/admin/console.py:164
+#, python-format
+msgid "Failed to open environment: %(err)s"
+msgstr "鎵撳紑鐜澶辫触锛$(err)s"
 
-#: trac/admin/console.py:230
-msgid "Completion error:"
-msgstr "鑷姩瀹屾垚閿欒:"
+#: trac/admin/console.py:234
+#, python-format
+msgid "Completion error: %(err)s"
+msgstr "鑷姩瀹屾垚閿欒: $(err)s"
 
-#: trac/admin/console.py:281
+#: trac/admin/console.py:287
 #, python-format
 msgid "No documentation found for '%(cmd)s'"
 msgstr "娌℃湁鎵惧埌 '%(cmd)s' 鐨勬枃妗"
 
-#: trac/admin/console.py:283
+#: trac/admin/console.py:289
 #, python-format
 msgid "trac-admin - The Trac Administration Console %(version)s"
 msgstr "trac-admin - Trac绠＄悊鎺у埗鍙 %(version)s"
 
-#: trac/admin/console.py:287
+#: trac/admin/console.py:293
 msgid "Usage: trac-admin </path/to/projenv> [command [subcommand] [option ...]]\n"
 msgstr "鐢ㄦ硶: trac-admin </path/to/projenv> [command [subcommand] [option ...]]\n"
 
-#: trac/admin/console.py:290
+#: trac/admin/console.py:296
 msgid "Invoking trac-admin without command starts interactive mode.\n"
 msgstr "涓嶅甫鍛戒护璋冪敤trac-admin灏嗗惎鍔ㄤ氦浜掓ā寮忋俓n"
 
-#: trac/admin/console.py:330
+#: trac/admin/console.py:336
 #, python-format
 msgid "Creating a new Trac environment at %(envname)s"
 msgstr "鍦%(envname)s澶勫垱寤轰竴涓柊鐨凾rac鐜"
 
-#: trac/admin/console.py:332
+#: trac/admin/console.py:338
 msgid ""
 "\n"
 "Trac will first ask a few questions about your environment \n"
@@ -520,12 +536,12 @@
 "璇疯緭鍏ユ偍椤圭洰鐨勫悕绉般俓n"
 "姝ゅ悕绉板皢鍦ㄩ〉闈㈡爣棰樺拰鎻忚堪涓娇鐢ㄣ俓n"
 
-#: trac/admin/console.py:340
+#: trac/admin/console.py:346
 #, python-format
 msgid "Project Name [%(default)s]> "
 msgstr "椤圭洰鍚嶇О [%(default)s]> "
 
-#: trac/admin/console.py:342
+#: trac/admin/console.py:348
 msgid ""
 " \n"
 " Please specify the connection string for the database to use.\n"
@@ -537,32 +553,44 @@
 " \n"
 "璇锋寚瀹氭墍鐢ㄦ暟鎹簱鐨勮繛鎺ュ瓧绗︿覆銆傜己鐪佹儏鍐典笅锛孿n"
 "灏嗗湪鐜鐩綍涓垱寤轰竴涓湰鍦癝QLite鏁版嵁搴撱俓n"
-"浣跨敤涓涓凡瀛樺湪鐨凱ostgreSQL鏁版嵁搴撲篃鏄彲琛岀殑\n"
+"涔熷彲浠ヤ娇鐢ㄤ竴涓凡瀛樺湪鐨凱ostgreSQL鏁版嵁搴揬n"
 "(鍏蜂綋鐨勮繛鎺ュ瓧绗︿覆璇硶璇锋煡鐪婽rac鏂囨。)銆俓n"
 
-#: trac/admin/console.py:350
+#: trac/admin/console.py:356
 #, python-format
 msgid "Database connection string [%(default)s]> "
 msgstr "鏁版嵁搴撹繛鎺ュ瓧绗︿覆 [%(default)s]> "
 
-#: trac/admin/console.py:357
+#: trac/admin/console.py:363
 #, python-format
 msgid "Initenv for '%(env)s' failed."
 msgstr "瀵'%(env)s' 鎵ц initenv 澶辫触銆"
 
-#: trac/admin/console.py:392
+#: trac/admin/console.py:366
+msgid "Does an environment already exist?"
+msgstr "鐜鏄惁宸茬粡瀛樺湪锛"
+
+#: trac/admin/console.py:370
+msgid "Directory exists and is not empty."
+msgstr "鐩綍宸插瓨鍦ㄥ苟涓旈潪绌恒"
+
+#: trac/admin/console.py:398
 msgid "Creating and Initializing Project"
 msgstr "鍒涘缓鍜屽垵濮嬪寲椤圭洰"
 
 #: trac/admin/console.py:415
+msgid "Failed to create environment."
+msgstr "鍒涘缓鐜澶辫触銆"
+
+#: trac/admin/console.py:421
 msgid " Installing default wiki pages"
 msgstr " 瀹夎缂虹渷Wiki椤"
 
-#: trac/admin/console.py:424
+#: trac/admin/console.py:430
 msgid " Indexing default repository"
 msgstr " 寤虹珛缂虹渷鐗堟湰搴撶储寮"
 
-#: trac/admin/console.py:427
+#: trac/admin/console.py:433
 msgid ""
 "\n"
 "---------------------------------------------------------------------\n"
@@ -587,7 +615,7 @@
 "鎮ㄧ殑trac.ini鏂囦欢浠ュ強[trac] repository_type\n"
 "鍜宺epository_path 璁剧疆銆俓n"
 
-#: trac/admin/console.py:470
+#: trac/admin/console.py:476
 #, python-format
 msgid ""
 "\n"
@@ -628,18 +656,18 @@
 "  tracd --port 8000 %(project_path)s\n"
 "\n"
 "鐒跺悗浣跨敤鎮ㄧ殑娴忚鍣ㄨ闂甴ttp://localhost:8000/%(project_dir)s銆俓n"
-"鍦ㄩ偅閲岋紝鎮ㄥ彲浠ュ彲浠ユ祻瑙堝凡瀹夎Trac鐨勬枃妗ｏ紝鍖呮嫭杩涜杩涗竴姝ラ厤缃殑淇℃伅\n"
+"鍦ㄩ偅閲岋紝鎮ㄥ彲浠ユ祻瑙堝凡瀹夎Trac鐗堟湰鐨勬枃妗ｏ紝鍖呮嫭杩涜杩涗竴姝ラ厤缃殑淇℃伅\n"
 "锛堟瘮濡傚皢Trac閮ㄧ讲鍒扮湡姝ｇ殑Web鏈嶅姟鍣ㄤ笂锛夈俓n"
 "\n"
-"鏈鏂扮殑鏂囨。涔熷彲浠ュ啀椤圭洰缃戠珯涓婃壘鍒帮細\n"
+"鏈鏂扮殑鏂囨。涔熷彲浠ュ湪椤圭洰缃戠珯涓婃壘鍒帮細\n"
 "\n"
 "  http://trac.edgewall.org/\n"
 "\n"
 "鎭枩鎮紒\n"
 
-#: trac/admin/console.py:530
+#: trac/admin/console.py:536
 #, python-format
-msgid "non-ascii environment path '%(path)s' not supported."
+msgid "Non-ascii environment path '%(path)s' not supported."
 msgstr "涓嶆敮鎸侀潪ASCII鐜璺緞 '%(path)s'銆"
 
 #: trac/admin/web_ui.py:64
@@ -658,15 +686,14 @@
 msgid "Unknown administration panel"
 msgstr "鏈煡绠＄悊闈㈡澘"
 
-#: trac/admin/web_ui.py:185 trac/ticket/admin.py:66 trac/ticket/admin.py:91
-#: trac/ticket/admin.py:276 trac/ticket/admin.py:458 trac/ticket/admin.py:610
-#: trac/ticket/admin.py:698 trac/ticket/report.py:189
-#: trac/ticket/roadmap.py:689 trac/versioncontrol/admin.py:196
-#: trac/wiki/web_ui.py:334
+#: trac/admin/web_ui.py:185 trac/ticket/admin.py:65 trac/ticket/admin.py:90
+#: trac/ticket/admin.py:275 trac/ticket/admin.py:457 trac/ticket/admin.py:609
+#: trac/ticket/admin.py:695 trac/ticket/report.py:189
+#: trac/ticket/roadmap.py:687 trac/versioncontrol/admin.py:198
 msgid "Your changes have been saved."
 msgstr "鎮ㄧ殑淇敼宸蹭繚瀛"
 
-#: trac/admin/web_ui.py:190 trac/ticket/admin.py:69
+#: trac/admin/web_ui.py:190 trac/ticket/admin.py:68
 msgid ""
 "Error writing to trac.ini, make sure it is writable by the web server. "
 "Your changes have not been saved."
@@ -736,14 +763,10 @@
 msgid "Missing field"
 msgstr "缂哄皯瀛楁"
 
-#: trac/admin/web_ui.py:319 trac/admin/templates/admin_perms.html:9
+#: trac/admin/web_ui.py:319 trac/admin/templates/admin_perms.html:10
 msgid "Permissions"
 msgstr "鏉冮檺"
 
-#: trac/admin/web_ui.py:333
-msgid "All upper-cased tokens are reserved for permission names"
-msgstr "鍏ㄩ儴澶у啓鐨勬爣璁板凡淇濈暀涓烘潈闄愬悕绉"
-
 #: trac/admin/web_ui.py:340
 msgid "Unknown action"
 msgstr "鏈煡鍔ㄤ綔"
@@ -774,7 +797,7 @@
 
 #: trac/admin/web_ui.py:401 trac/admin/templates/admin_plugins.html:9
 msgid "Plugins"
-msgstr "鎻掍欢s"
+msgstr "鎻掍欢"
 
 #: trac/admin/web_ui.py:435
 msgid "Uploaded file is not a Python source file or egg"
@@ -818,14 +841,14 @@
 #: trac/admin/templates/admin_milestones.html:80
 #: trac/admin/templates/admin_versions.html:21
 #: trac/admin/templates/admin_versions.html:56
-#: trac/versioncontrol/templates/admin_repositories.html:49
-#: trac/versioncontrol/templates/admin_repositories.html:94
-#: trac/versioncontrol/templates/admin_repositories.html:111
+#: trac/versioncontrol/templates/admin_repositories.html:50
+#: trac/versioncontrol/templates/admin_repositories.html:95
+#: trac/versioncontrol/templates/admin_repositories.html:112
 msgid "Name:"
 msgstr "鍚嶇О:"
 
 #: trac/admin/templates/admin_basics.html:24
-#: trac/versioncontrol/templates/admin_repositories.html:61
+#: trac/versioncontrol/templates/admin_repositories.html:62
 msgid "URL:"
 msgstr "URL:"
 
@@ -844,7 +867,7 @@
 msgid "Apply changes"
 msgstr "搴旂敤淇敼"
 
-#: trac/admin/templates/admin_components.html:10 trac/ticket/admin.py:77
+#: trac/admin/templates/admin_components.html:10 trac/ticket/admin.py:76
 msgid "Components"
 msgstr "缁勪欢"
 
@@ -874,7 +897,7 @@
 #: trac/admin/templates/admin_enums.html:25
 #: trac/admin/templates/admin_milestones.html:69
 #: trac/admin/templates/admin_versions.html:46
-#: trac/versioncontrol/templates/admin_repositories.html:84
+#: trac/versioncontrol/templates/admin_repositories.html:85
 msgid "Save"
 msgstr "淇濆瓨"
 
@@ -886,16 +909,16 @@
 #: trac/admin/templates/admin_enums.html:33
 #: trac/admin/templates/admin_enums.html:38
 #: trac/admin/templates/admin_milestones.html:93
-#: trac/admin/templates/admin_perms.html:38
-#: trac/admin/templates/admin_perms.html:60
+#: trac/admin/templates/admin_perms.html:39
+#: trac/admin/templates/admin_perms.html:61
 #: trac/admin/templates/admin_versions.html:67
-#: trac/versioncontrol/templates/admin_repositories.html:101
-#: trac/versioncontrol/templates/admin_repositories.html:115
+#: 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:283 trac/ticket/web_ui.py:1324
+#: trac/admin/templates/admin_components.html:80 trac/ticket/admin.py:209
+#: trac/ticket/api.py:283 trac/ticket/web_ui.py:1337
 msgid "Owner"
 msgstr "灞炰富"
 
@@ -909,9 +932,9 @@
 #: trac/admin/templates/admin_components.html:98
 #: trac/admin/templates/admin_enums.html:69
 #: trac/admin/templates/admin_milestones.html:128
-#: trac/admin/templates/admin_perms.html:87
+#: trac/admin/templates/admin_perms.html:88
 #: trac/admin/templates/admin_versions.html:93
-#: trac/versioncontrol/templates/admin_repositories.html:144
+#: trac/versioncontrol/templates/admin_repositories.html:145
 msgid "Remove selected items"
 msgstr "鍒犻夋嫨椤"
 
@@ -975,8 +998,8 @@
 "            [1:log] directory of the project environment ([2:%(dir)s])."
 msgstr "濡傛灉鎸囧畾浜嗙浉瀵硅矾寰勶紝鏃ュ織鏂囦欢灏嗚瀛樺偍鍦ㄩ」鐩幆澧([2:%(dir)s])鐨 [1:log]鐩綍銆"
 
-#: trac/admin/templates/admin_milestones.html:10 trac/ticket/admin.py:242
-#: trac/ticket/roadmap.py:857
+#: trac/admin/templates/admin_milestones.html:10 trac/ticket/admin.py:241
+#: trac/ticket/roadmap.py:855
 msgid "Milestones"
 msgstr "閲岀▼纰"
 
@@ -1020,7 +1043,7 @@
 #: trac/admin/templates/admin_milestones.html:57
 #: trac/admin/templates/admin_versions.html:35
 #: trac/ticket/templates/milestone_edit.html:85
-#: trac/versioncontrol/templates/admin_repositories.html:72
+#: trac/versioncontrol/templates/admin_repositories.html:73
 msgid "Description (you may use [1:WikiFormatting] here):"
 msgstr "鎻忚堪 (姝ゅ鍙敤 [1:WikiFormatting] 鏍煎紡):"
 
@@ -1028,11 +1051,11 @@
 msgid "Add Milestone:"
 msgstr "澧炲姞閲岀▼纰:"
 
-#: trac/admin/templates/admin_milestones.html:104 trac/ticket/admin.py:401
+#: trac/admin/templates/admin_milestones.html:104 trac/ticket/admin.py:400
 msgid "Due"
 msgstr "閫炬湡"
 
-#: trac/admin/templates/admin_milestones.html:104 trac/ticket/admin.py:401
+#: trac/admin/templates/admin_milestones.html:104 trac/ticket/admin.py:400
 msgid "Completed"
 msgstr "瀹屾垚"
 
@@ -1040,65 +1063,50 @@
 msgid "Tickets"
 msgstr "浠诲姟鍗"
 
-#: trac/admin/templates/admin_perms.html:13
+#: trac/admin/templates/admin_perms.html:14
 msgid "Manage Permissions"
 msgstr "绠＄悊鏉冮檺"
 
-#: trac/admin/templates/admin_perms.html:18
+#: trac/admin/templates/admin_perms.html:19
 msgid "Grant Permission:"
 msgstr "鎺堜簣鏉冮檺:"
 
-#: trac/admin/templates/admin_perms.html:21
-#: trac/admin/templates/admin_perms.html:48
+#: trac/admin/templates/admin_perms.html:22
+#: trac/admin/templates/admin_perms.html:49
 msgid "Subject:"
-msgstr "瀵硅薄:"
+msgstr "涓讳綋:"
 
-#: trac/admin/templates/admin_perms.html:25
+#: trac/admin/templates/admin_perms.html:26
 msgid "Action:"
 msgstr "鍔ㄤ綔:"
 
-#: trac/admin/templates/admin_perms.html:33
+#: trac/admin/templates/admin_perms.html:34
 msgid ""
 "Grant permission for an action to a subject, which can be either a user\n"
 "          or a group."
-msgstr ""
-"涓哄璞¤缃姩浣滄潈闄愶紝鍙互鎺堜簣缁欑敤鎴穃n"
-"          鎴栫粍銆"
+msgstr "涓轰富浣撹缃姩浣滄潈闄愶紝涓讳綋鍙互鏄竴涓敤鎴蜂篃鍙互鏄竴涓粍銆"
 
-#: trac/admin/templates/admin_perms.html:45
+#: trac/admin/templates/admin_perms.html:46
 msgid "Add Subject to Group:"
-msgstr "澧炲姞涓涓璞″埌缁勪腑:"
+msgstr "澧炲姞涓涓富浣撳埌缁勪腑:"
 
-#: trac/admin/templates/admin_perms.html:52
+#: trac/admin/templates/admin_perms.html:53
 msgid "Group:"
 msgstr "缁:"
 
-#: trac/admin/templates/admin_perms.html:56
+#: trac/admin/templates/admin_perms.html:57
 msgid "Add a user or group to an existing permission group."
 msgstr "鍦ㄥ綋鍓嶇殑鏉冮檺缁勪腑澧炲姞涓涓敤鎴锋垨缁."
 
-#: trac/admin/templates/admin_perms.html:69
-#: trac/admin/templates/admin_perms.html:92
+#: trac/admin/templates/admin_perms.html:70
 msgid "Subject"
-msgstr "瀵硅薄"
+msgstr "涓讳綋"
 
-#: trac/admin/templates/admin_perms.html:91
-msgid "Note that"
-msgstr "娉ㄦ剰"
-
-#: trac/admin/templates/admin_perms.html:92 trac/ticket/templates/query.html:73
-msgid "or"
-msgstr "鎴"
-
 #: trac/admin/templates/admin_perms.html:92
-msgid "Group"
-msgstr "缁"
-
-#: trac/admin/templates/admin_perms.html:92
 msgid ""
-"names can't be all upper-case,\n"
+"Note that [1:Subject] or [2:Group] names can't be all upper-case,\n"
 "      as that is reserved for permission names."
-msgstr "鍚嶄笉鑳藉叏閮ㄥぇ鍐欙紝鍥犱负杩欐槸鏉冮檺鍚嶇О鐨勪繚鐣欐牸寮忋"
+msgstr "娉ㄦ剰[1:涓讳綋]鎴栬匸2:缁刔鐨勫悕绉颁笉鑳藉叏閮ㄥぇ鍐欙紝鍥犱负杩欐槸鏉冮檺鍚嶇О鐨勪繚鐣欐牸寮忋"
 
 #: trac/admin/templates/admin_plugins.html:41
 msgid "Manage Plugins"
@@ -1109,7 +1117,7 @@
 msgstr "瀹夎鎻掍欢:"
 
 #: trac/admin/templates/admin_plugins.html:47
-#: trac/versioncontrol/templates/changeset.html:142
+#: trac/versioncontrol/templates/changeset.html:170
 msgid "File:"
 msgid_plural "Files:"
 msgstr[0] "鏂囦欢:"
@@ -1131,8 +1139,8 @@
 msgid "Install"
 msgstr "瀹夎"
 
-#: trac/admin/templates/admin_plugins.html:84 trac/templates/diff_view.html:45
-#: trac/versioncontrol/templates/changeset.html:114
+#: trac/admin/templates/admin_plugins.html:84 trac/templates/diff_view.html:51
+#: trac/versioncontrol/templates/changeset.html:142
 msgid "Author:"
 msgstr "浣滆:"
 
@@ -1152,7 +1160,7 @@
 msgid "Hide all descriptions"
 msgstr "闅愯棌鎵鏈夋弿杩"
 
-#: trac/admin/templates/admin_plugins.html:114 trac/ticket/admin.py:77
+#: trac/admin/templates/admin_plugins.html:114 trac/ticket/admin.py:76
 #: trac/ticket/api.py:296
 msgid "Component"
 msgstr "缁勪欢"
@@ -1169,7 +1177,7 @@
 msgid "Toggle the component description"
 msgstr "鍒囨崲缁勫缓鎻忚堪"
 
-#: trac/admin/templates/admin_versions.html:10 trac/ticket/admin.py:441
+#: trac/admin/templates/admin_versions.html:10 trac/ticket/admin.py:440
 msgid "Versions"
 msgstr "鐗堟湰"
 
@@ -1213,7 +1221,7 @@
 msgid "Cannot load Python bindings for MySQL"
 msgstr "鏃犳硶鍔犺浇 Python 鐨 MySQL 璁块棶妯″潡"
 
-#: trac/db/pool.py:122
+#: trac/db/pool.py:118
 #, python-format
 msgid "Unable to get database connection within %(time)d seconds"
 msgstr "鏃犳硶鍦 %(time)d 绉掑唴鑾峰緱鏁版嵁搴撹繛鎺"
@@ -1222,61 +1230,61 @@
 msgid "Cannot load Python bindings for PostgreSQL"
 msgstr "鏃犳硶鍔犺浇 Python 鐨 PostgreSQL 璁块棶妯″潡"
 
-#: trac/db/sqlite_backend.py:153
+#: trac/db/sqlite_backend.py:154
 msgid "Cannot load Python bindings for SQLite"
 msgstr "鏃犳硶鍔犺浇 Python 鐨 SQLite 璁块棶妯″潡"
 
-#: trac/db/sqlite_backend.py:157
+#: trac/db/sqlite_backend.py:158
 msgid "Need at least PySqlite 2.0.7 or higher"
 msgstr "鑷冲皯闇瑕 PySqlite 2.0.7 鎴栦互涓婄増鏈"
 
-#: trac/db/sqlite_backend.py:180
+#: trac/db/sqlite_backend.py:182
 #, python-format
 msgid "Database already exists at %(path)s"
 msgstr "鏁版嵁搴撳凡缁忓瓨鍦ㄤ簬 %(path)s"
 
-#: trac/db/sqlite_backend.py:240
+#: trac/db/sqlite_backend.py:242
 #, python-format
 msgid "Database \"%(path)s\" not found."
 msgstr "鏁版嵁搴 \"%(path)s\" 鏈壘鍒般"
 
-#: trac/db/sqlite_backend.py:249
+#: trac/db/sqlite_backend.py:251
 #, 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 "鐢ㄦ埛 %(user)s 闇瑕佹暟鎹簱鏂囦欢 %(path)s 鍙婂叾鎵鍦ㄧ洰褰曠殑璇/鍐欐潈闄愩"
 
-#: trac/mimeview/api.py:672 trac/mimeview/api.py:683
+#: trac/mimeview/api.py:674 trac/mimeview/api.py:685
 #, python-format
 msgid "No available MIME conversions from %(old)s to %(new)s"
 msgstr "娌℃湁鏈夋晥鐨凪IME灏 %(old)s 杞崲涓 %(new)s"
 
-#: trac/mimeview/api.py:791
+#: trac/mimeview/api.py:793
 #, python-format
 msgid "HTML preview using %(renderer)s failed (%(err)s)"
 msgstr "浣跨敤%(renderer)s杩涜HTML棰勮澶辫触 (%(err)s)"
 
-#: trac/mimeview/api.py:823
+#: trac/mimeview/api.py:825
 #, python-format
 msgid "Can't use %(annotator)s annotator: %(error)s"
 msgstr "涓嶈兘浣跨敤%(annotator)s娉ㄩ噴: %(error)s"
 
-#: trac/mimeview/patch.py:53
+#: trac/mimeview/patch.py:54
 msgid "Invalid unified diff content"
 msgstr "鏃犳晥鐨剈nified diff鍐呭"
 
-#: trac/mimeview/patch.py:163
+#: trac/mimeview/patch.py:171
 #, python-format
 msgid "new file %(new)s"
 msgstr "鏂版枃浠 %(new)s"
 
-#: trac/mimeview/patch.py:167
+#: trac/mimeview/patch.py:175
 #, python-format
 msgid "deleted file %(deleted)s"
 msgstr "宸插垹闄ゆ枃浠%(deleted)s"
 
-#: trac/mimeview/patch.py:239
+#: trac/mimeview/patch.py:247
 msgid "this hunk was shorter than expected"
 msgstr "姝ゅ潡姣旈鏈熺殑鐭"
 
@@ -1289,8 +1297,6 @@
 msgstr "鎮ㄧ殑涓汉璁剧疆宸蹭繚瀛樸"
 
 #: trac/prefs/web_ui.py:52 trac/prefs/templates/prefs.html:16
-#: trac/ticket/templates/ticket.html:374
-#: trac/wiki/templates/wiki_edit_form.html:50
 msgid "Preferences"
 msgstr "涓汉璁剧疆"
 
@@ -1386,13 +1392,10 @@
 "閰嶇疆鎮ㄧ殑鏃跺尯灏嗕細浣胯繖涓珯鐐逛娇鐢ㄦ偍鐨勬椂鍖鸿缃潵鏄剧ず鏃舵湡鍜屾椂闂碶n"
 "      鑰屼笉鏄娇鐢ㄦ湇鍔″櫒涓婄殑璁剧疆銆"
 
-#: trac/prefs/templates/prefs_datetime.html:30
-msgid "Example: The current time is"
-msgstr "渚嬪: 褰撳墠鏃堕棿鏄"
-
 #: trac/prefs/templates/prefs_datetime.html:31
-msgid "(UTC)."
-msgstr "(UTC)銆"
+#, python-format
+msgid "Example: The current time is [1:%(time)s] (UTC)."
+msgstr "渚嬪: 褰撳墠鏃堕棿鏄 [1:%(time)s] (UTC)銆"
 
 #: trac/prefs/templates/prefs_datetime.html:34
 #, python-format
@@ -1415,14 +1418,12 @@
 #: trac/prefs/templates/prefs_datetime.html:47
 msgid ""
 "Note: Universal Co-ordinated Time (UTC) is also known as Greenwich Mean "
-"Time (GMT)."
-msgstr "娉: 鍏ㄧ悆缁熶竴鏃堕棿 (UTC) 涔熻绉颁负鏍兼灄濞佹不鏍囧噯鏃堕棿 (GMT)銆"
-
-#: trac/prefs/templates/prefs_datetime.html:48
-msgid ""
-"A positive offset is used to indicate a timezone at the east of "
+"Time (GMT).[1:]\n"
+"        A positive offset is used to indicate a timezone at the east of "
 "Greenwich, i.e. ahead of Universal Time."
-msgstr "姝ｅ艰〃绀哄湪鏍兼灄濞佹不浠ヤ笢鐨勬椂鍖猴紝鍗虫瘮鏍囧噯鏃堕棿鏃┿"
+msgstr ""
+"娉ㄦ剰锛氬崗璋冧笘鐣屾椂锛圲TC锛変篃绉颁负鏍兼灄灏兼不鏃堕棿锛圙MT锛夈俒1:]\n"
+"姝ｅ艰〃绀哄湪鏍兼灄濞佹不浠ヤ笢鐨勬椂鍖猴紝鍗虫瘮鏍囧噯鏃堕棿鏃┿"
 
 #: trac/prefs/templates/prefs_general.html:15
 msgid "Full name:"
@@ -1519,11 +1520,11 @@
 msgid "Search query too short. Query must be at least %(num)s characters long."
 msgstr "鎼滅储鏌ヨ澶煭銆傛煡璇㈠繀椤昏嚦灏戝寘鍚 %(num)s 瀛楃銆"
 
-#: trac/search/web_ui.py:231 trac/ticket/query.py:763 trac/ticket/report.py:370
+#: trac/search/web_ui.py:231 trac/ticket/query.py:763 trac/ticket/report.py:397
 msgid "Next Page"
 msgstr "涓嬩竴椤"
 
-#: trac/search/web_ui.py:237 trac/ticket/query.py:768 trac/ticket/report.py:373
+#: trac/search/web_ui.py:237 trac/ticket/query.py:768 trac/ticket/report.py:400
 msgid "Previous Page"
 msgstr "涓婁竴椤"
 
@@ -1534,8 +1535,9 @@
 msgstr "缁撴灉"
 
 #: trac/search/templates/search.html:48
-msgid "Quickjump to"
-msgstr "蹇熻烦杞埌"
+#, python-format
+msgid "Quickjump to %(name)s"
+msgstr "蹇熻烦杞埌 %(name)s"
 
 #: trac/search/templates/search.html:56
 #, python-format
@@ -1543,6 +1545,7 @@
 msgstr ": %(author)s"
 
 #: trac/search/templates/search.html:65
+#: trac/ticket/templates/report_view.html:87
 #: trac/ticket/templates/report_view.html:193
 msgid "No matches found."
 msgstr "娌℃湁鍖归厤鐨勭粨鏋."
@@ -1588,12 +1591,20 @@
 msgstr "鍔ㄥ姏婧愯嚜python"
 
 #: trac/templates/about.html:44
-msgid "Please visit the Trac open source project:"
-msgstr "璁块棶Trac寮婧愰」鐩:"
+msgid ""
+"Please visit the Trac open source project:\n"
+"        [1:http://trac.edgewall.org/]"
+msgstr ""
+"璇疯闂 Trac 寮婧愰」鐩:\n"
+"        [1:http://trac.edgewall.org/]"
 
-#: trac/templates/about.html:45
-msgid "http://trac.edgewall.org/"
-msgstr "http://trac.edgewall.org/"
+#: trac/templates/about.html:46
+msgid ""
+"Copyright 漏 2003-2010\n"
+"        [1:Edgewall Software]"
+msgstr ""
+"Copyright 漏 2003-2010\n"
+"        [1:Edgewall Software]"
 
 #: trac/templates/about.html:54
 msgid "System Information"
@@ -1603,8 +1614,8 @@
 msgid "Installed Plugins"
 msgstr "宸插畨瑁呮彃浠"
 
-#: trac/templates/about.html:72 trac/templates/error.html:83
-#: trac/templates/error.html:217
+#: trac/templates/about.html:72 trac/templates/error.html:84
+#: trac/templates/error.html:218
 msgid "N/A"
 msgstr "涓嶉傜敤"
 
@@ -1612,7 +1623,7 @@
 msgid "Section"
 msgstr "閮ㄥ垎"
 
-#: trac/templates/about.html:85 trac/templates/error.html:185
+#: trac/templates/about.html:85 trac/templates/error.html:186
 msgid "Value"
 msgstr "鍊"
 
@@ -1634,12 +1645,14 @@
 msgstr "%(filename)s 鍦 %(parent)s 鈥 闄勪欢"
 
 #: trac/templates/attachment.html:29
-msgid "Add Attachment to"
-msgstr "澧炲姞闄勪欢鍒"
+#, python-format
+msgid "Add Attachment to [1:%(parent)s]"
+msgstr "娣诲姞闄勪欢鍒 [1:%(parent)s]"
 
-#: trac/templates/attachment.html:32
-msgid "(size limit"
-msgstr "(澶у皬闄愬埗"
+#: trac/templates/attachment.html:33
+#, python-format
+msgid "(size limit %(value)s)"
+msgstr "(澶у皬闄愬埗 %(value)s)"
 
 #: trac/templates/attachment.html:37
 msgid "Attachment Info"
@@ -1670,190 +1683,213 @@
 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:22
+#: trac/templates/macros.html:19 trac/versioncontrol/templates/browser.html:110
+#: trac/versioncontrol/templates/dir_entries.html:16
+#, python-format
+msgid "%(size)s bytes"
+msgstr "%(size)s 瀛楄妭"
+
 #: trac/templates/attachment.html:96
 #, python-format
 msgid ""
 "File %(file)s,\n"
 "                [1:%(size)s]\n"
-"                (added by %(author)s,  %(date)s ago)"
+"                (added by %(author)s, %(date)s ago)"
 msgstr ""
 "鏂囦欢 %(file)s,\n"
 "                        [1: %(size)s]\n"
-"            (鐢%(author)s鍦%(date)s鍓嶆坊鍔)"
+"            (鐢 %(author)s 鍦 %(date)s 鍓嶆坊鍔)"
 
-#: trac/templates/diff_div.html:59
-#: trac/versioncontrol/templates/browser.html:133
-msgid "Property"
-msgstr "灞炴"
+#: trac/templates/diff_div.html:72
+#, python-format
+msgid ""
+"Property %(name)s\n"
+"                  changed from %(old)s to %(new)s"
+msgstr ""
+"灞炴 %(name)s\n"
+"                  宸茬敱 %(old)s 鍙樻洿涓 %(new)s"
 
-#: trac/templates/diff_div.html:70 trac/ticket/templates/ticket_change.html:27
-msgid "to"
-msgstr "鑷"
+#: trac/templates/diff_div.html:76
+#, python-format
+msgid "Property %(name)s set to %(value)s"
+msgstr "灞炴 %(name)s 宸茶缃负 %(value)s"
 
-#: trac/templates/diff_div.html:75
+#: trac/templates/diff_div.html:79
+#, python-format
+msgid "Property %(name)s deleted"
+msgstr "灞炴 %(name)s 宸插垹闄"
+
+#: trac/templates/diff_div.html:86
 msgid "Differences"
 msgstr "宸紓"
 
-#: trac/templates/diff_options.html:9
+#: trac/templates/diff_options.html:10
 msgid "View differences"
 msgstr "鏌ョ湅宸紓"
 
-#: trac/templates/diff_options.html:12
+#: trac/templates/diff_options.html:13
 msgid "inline"
 msgstr "鍐呭祵"
 
-#: trac/templates/diff_options.html:14
+#: trac/templates/diff_options.html:15
 msgid "side by side"
 msgstr "骞舵帓"
 
 #: trac/templates/diff_options.html:18
-msgid "Show"
-msgstr "鏄剧ず"
+msgid ""
+"[1:[2:]\n"
+"             Show]\n"
+"      [3:[4:]\n"
+"             lines around each change]"
+msgstr ""
+"[1:[2:]\n"
+"             鍦ㄦ瘡涓鍙樻洿闄勮繎鏄剧ず]\n"
+"      [3:[4:]\n"
+"             琛宂"
 
-#: trac/templates/diff_options.html:22
-msgid "lines around each change"
-msgstr "闄勫姞鏄剧ず琛屾暟"
-
-#: trac/templates/diff_options.html:25
+#: trac/templates/diff_options.html:28
 msgid "Show the changes in full context"
 msgstr "鍦ㄥ畬鏁翠笂涓嬫枃涓樉绀轰慨鏀"
 
-#: trac/templates/diff_options.html:29
+#: trac/templates/diff_options.html:32
 msgid "Ignore:"
 msgstr "蹇界暐:"
 
-#: trac/templates/diff_options.html:33
+#: trac/templates/diff_options.html:36
 msgid "Blank lines"
 msgstr "绌鸿"
 
-#: trac/templates/diff_options.html:38
+#: trac/templates/diff_options.html:41
 msgid "Case changes"
 msgstr "澶у皬鍐欏彉鍖"
 
-#: trac/templates/diff_options.html:43
+#: trac/templates/diff_options.html:46
 msgid "White space changes"
 msgstr "绌虹櫧瀛楃鍙樺寲"
 
-#: trac/templates/diff_options.html:47
-#: trac/ticket/templates/milestone_view.html:58
-#: trac/ticket/templates/query.html:207
+#: trac/templates/diff_options.html:50
+#: trac/ticket/templates/milestone_view.html:57
+#: trac/ticket/templates/query.html:209
 #: trac/ticket/templates/report_view.html:49
 #: trac/ticket/templates/roadmap.html:29
 #: trac/timeline/templates/timeline.html:31
-#: trac/versioncontrol/templates/revisionlog.html:65
+#: trac/versioncontrol/templates/revisionlog.html:67
 msgid "Update"
 msgstr "鏇存柊缁撴灉"
 
-#: trac/templates/diff_view.html:17
-msgid "Changes"
-msgstr "鍙樻洿"
+#: trac/templates/diff_view.html:18
+#, python-format
+msgid ""
+"Changes between\n"
+"          [1:Version %(old)s] and\n"
+"          [2:Version %(new)s] of\n"
+"          [3:%(name)s]"
+msgstr ""
+"[3:%(name)s] 鐨刓n"
+"          [1:鐗堟湰 %(old)s] 涓嶾n"
+"          [2:鐗堟湰 %(new)s] \n"
+"          闂寸殑宸紓"
 
-#: trac/templates/diff_view.html:18 trac/templates/diff_view.html:21
-#: trac/ticket/templates/query.html:115
-msgid "between"
-msgstr "涔嬮棿"
+#: trac/templates/diff_view.html:23
+#, python-format
+msgid ""
+"Changes between\n"
+"          [1:Initial Version] and\n"
+"          [2:Version %(new)s] of\n"
+"          [3:%(name)s]"
+msgstr ""
+"[3:%(name)s] 鐨刓n"
+"          [1:鍒濆鐗堟湰] 涓嶾n"
+"          [2:鐗堟湰 %(new)s]\n"
+"          闂寸殑宸紓"
 
-#: trac/templates/diff_view.html:19 trac/templates/diff_view.html:25
-#: trac/templates/history_view.html:27 trac/ticket/admin.py:441
-#: trac/ticket/api.py:297 trac/ticket/templates/ticket.html:94
-msgid "Version"
-msgstr "鐗堟湰"
+#: trac/templates/diff_view.html:28
+#, python-format
+msgid ""
+"Changes from\n"
+"          [1:Version %(new)s] of\n"
+"          [2:%(name)s]"
+msgstr ""
+"[2:%(name)s] 浠嶾n"
+"          [1:鐗堟湰 %(new)s]\n"
+"          璧风殑鍙樻洿"
 
-#: trac/templates/diff_view.html:19 trac/templates/diff_view.html:22
-#: trac/ticket/templates/query.html:117
-msgid "and"
-msgstr "鍜"
-
-#: trac/templates/diff_view.html:22 trac/ticket/web_ui.py:799
-#: trac/ticket/web_ui.py:934 trac/ticket/templates/ticket.html:91
-msgid "Initial Version"
-msgstr "鍒濆鐗堟湰"
-
-#: trac/templates/diff_view.html:24
-msgid "from"
-msgstr "浠"
-
-#: trac/templates/diff_view.html:25
-msgid "of"
-msgstr "鐨"
-
-#: trac/templates/diff_view.html:38
-#: trac/versioncontrol/templates/changeset.html:108
+#: trac/templates/diff_view.html:43
+#: trac/versioncontrol/templates/changeset.html:136
 msgid "Timestamp:"
 msgstr "鏃堕棿鎴:"
 
-#: trac/templates/diff_view.html:40 trac/templates/diff_view.html:47
-#: trac/templates/diff_view.html:53
+#: trac/templates/diff_view.html:45 trac/templates/diff_view.html:53
+#: trac/templates/diff_view.html:59
 msgid "(multiple changes)"
 msgstr "(澶氭鍙樻洿)"
 
-#: trac/templates/diff_view.html:42
+#: trac/templates/diff_view.html:47
 #, python-format
 msgid "%(date)s (%(duration)s ago)"
 msgstr "%(date)s 锛%(duration)s 鍓嶏級"
 
-#: trac/templates/diff_view.html:49
-msgid "(IP:"
-msgstr "(IP:"
+#: trac/templates/diff_view.html:55
+#, python-format
+msgid "(IP: %(ipnr)s)"
+msgstr "(IP: %(ipnr)s)"
 
-#: trac/templates/diff_view.html:51
+#: trac/templates/diff_view.html:57
+#: trac/ticket/templates/ticket_notify_email.txt:21
 msgid "Comment:"
 msgstr "璇勮:"
 
-#: trac/templates/diff_view.html:59
-#: trac/versioncontrol/templates/changeset.html:170
-#: trac/versioncontrol/templates/revisionlog.html:71
+#: trac/templates/diff_view.html:65
+#: trac/versioncontrol/templates/changeset.html:198
+#: trac/versioncontrol/templates/revisionlog.html:73
 msgid "Legend:"
 msgstr "鍥句緥:"
 
-#: trac/templates/diff_view.html:61
-#: trac/versioncontrol/templates/changeset.html:172
+#: trac/templates/diff_view.html:67
+#: trac/versioncontrol/templates/changeset.html:200
 msgid "Unmodified"
 msgstr "鏈慨鏀"
 
-#: trac/templates/diff_view.html:62
-#: trac/versioncontrol/templates/changeset.html:173
-#: trac/versioncontrol/templates/revisionlog.html:73
+#: trac/templates/diff_view.html:68
+#: trac/versioncontrol/templates/changeset.html:201
+#: trac/versioncontrol/templates/revisionlog.html:75
 msgid "Added"
-msgstr "宸插鍔"
+msgstr "澧炲姞"
 
-#: trac/templates/diff_view.html:63
-#: trac/versioncontrol/templates/changeset.html:174
-#: trac/versioncontrol/templates/revisionlog.html:75
+#: trac/templates/diff_view.html:69
+#: trac/versioncontrol/templates/changeset.html:202
+#: trac/versioncontrol/templates/revisionlog.html:77
 msgid "Removed"
 msgstr "鍒犻櫎"
 
-#: trac/templates/diff_view.html:64 trac/ticket/api.py:325
-#: trac/versioncontrol/templates/changeset.html:176
-#: trac/versioncontrol/templates/revisionlog.html:77 trac/wiki/admin.py:202
+#: trac/templates/diff_view.html:70 trac/ticket/api.py:325
+#: trac/versioncontrol/templates/changeset.html:204
+#: trac/versioncontrol/templates/revisionlog.html:79 trac/wiki/admin.py:200
 msgid "Modified"
 msgstr "淇敼"
 
 #: trac/templates/error.html:64
-msgid ""
-"==== How to Reproduce ====\n"
-"\n"
-"While doing a"
-msgstr ""
-"==== 濡備綍閲嶇幇 ====\n"
-"\n"
-"褰撹繘琛"
+msgid "==== How to Reproduce ===="
+msgstr "==== 濡備綍閲嶇幇 ===="
 
-#: trac/templates/error.html:67
-msgid "operation on `"
-msgstr "鎿嶄綔浜 `"
-
-#: trac/templates/error.html:67
+#: trac/templates/error.html:66
+#, python-format
 msgid ""
-"`, Trac issued an internal error.\n"
+"While doing a %(request)s operation on `%(path)s`, Trac issued an "
+"internal error.\n"
 "\n"
 "''(please provide additional details here)''"
 msgstr ""
-"`, Trac浜х敓鍐呴儴閿欒.\n"
+"褰撳湪 `%(path)s` 涓婃墽琛  %(request)s 鎿嶄綔鏃讹紝Trac鍙戠敓浜嗗唴閮ㄩ敊璇俓n"
 "\n"
-"''(璇峰湪姝ら檮鍔犺缁嗘儏鍐)''"
+"''(璇峰湪姝ゆ彁渚涘叾瀹冭缁嗘儏鍐)''"
 
-#: trac/templates/error.html:71
+#: trac/templates/error.html:72
 msgid ""
 "Request parameters:\n"
 "{{{"
@@ -1861,15 +1897,15 @@
 "璇锋眰鍙傛暟:\n"
 "{{{"
 
-#: trac/templates/error.html:76
+#: trac/templates/error.html:77
 msgid "==== System Information ===="
 msgstr "==== 绯荤粺淇℃伅 ===="
 
-#: trac/templates/error.html:80
+#: trac/templates/error.html:81
 msgid "==== Enabled Plugins ===="
 msgstr "==== 宸插惎鐢ㄦ彃浠 ===="
 
-#: trac/templates/error.html:83
+#: trac/templates/error.html:84
 msgid ""
 "==== Python Traceback ====\n"
 "{{{"
@@ -1877,19 +1913,19 @@
 "==== Python Traceback ====\n"
 "{{{"
 
-#: trac/templates/error.html:90
+#: trac/templates/error.html:91
 msgid "Create"
 msgstr "鍒涘缓"
 
-#: trac/templates/error.html:105
+#: trac/templates/error.html:106
 msgid "Oops鈥"
 msgstr "绯熶簡鈥"
 
-#: trac/templates/error.html:107
+#: trac/templates/error.html:108
 msgid "Trac detected an internal error:"
 msgstr "Trac妫娴嬪埌涓涓唴閮ㄩ敊璇:"
 
-#: trac/templates/error.html:112
+#: trac/templates/error.html:113
 msgid ""
 "There was an internal error in Trac.\n"
 "                It is recommended that you notify your local\n"
@@ -1898,37 +1934,31 @@
 "                reproduce the issue."
 msgstr "Trac鍙戠敓浜嗗唴閮ㄩ敊璇傚缓璁偍鍚戞湰鍦癧1:Trac 绠＄悊鍛榏鎻愪緵閲嶇幇闂鎵闇瑕佺殑淇℃伅銆"
 
-#: trac/templates/error.html:120
-msgid "To that end, you could"
-msgstr "涓烘鐩殑, 鎮ㄥ彲浠"
+#: trac/templates/error.html:121
+#, python-format
+msgid "To that end, you could %(create)s a ticket."
+msgstr "涓烘鐩殑, 鎮ㄥ彲浠%(create)s涓涓换鍔″崟銆"
 
-#: trac/templates/error.html:120
-msgid "a ticket."
-msgstr "涓涓换鍔″崟銆"
-
-#: trac/templates/error.html:122
+#: trac/templates/error.html:123
 msgid "The action that triggered the error was:"
 msgstr "瑙﹀彂姝ら敊璇殑鍔ㄤ綔鏄:"
 
-#: trac/templates/error.html:127
+#: trac/templates/error.html:128
 msgid "This is probably a local installation issue."
 msgstr "杩欏彲鑳芥槸涓涓湰鍦板畨瑁呴棶棰樸"
 
-#: trac/templates/error.html:128
-msgid "You should"
-msgstr "鎮ㄥ簲璇ュ湪绠＄悊鐢═rac涓"
-
 #: trac/templates/error.html:129
+#, python-format
 msgid ""
-"a ticket at the admin Trac to report\n"
+"You should %(create)s a ticket at the admin Trac to report\n"
 "                    the issue."
-msgstr "涓涓换鍔″崟鎶ュ憡闂銆"
+msgstr "浣犲簲璇ュ湪绠＄悊鐢═rac涓%(create)s涓涓换鍔″崟鏉ユ姤鍛婅繖涓闂銆"
 
-#: trac/templates/error.html:134
+#: trac/templates/error.html:135
 msgid "Found a bug in Trac?"
 msgstr "鍙戠幇浜嗕竴涓猅rac鐨凚ug锛"
 
-#: trac/templates/error.html:135
+#: trac/templates/error.html:136
 msgid ""
 "If you think this should work and you can reproduce the problem,\n"
 "              you should consider creating a bug report."
@@ -1936,23 +1966,20 @@
 "濡傛灉璁や负姝ら」鍔熻兘鏈簲鍙敤锛屽苟鑳介噸鐜拌闂锛孿n"
 "              浣犲簲鑰冭檻鎻愪氦涓涓狟ug鎶ュ憡銆"
 
-#: trac/templates/error.html:138
-msgid "Note that the"
-msgstr "娉ㄦ剰锛"
-
 #: trac/templates/error.html:139
-msgid "plugin seems to be involved."
-msgstr "鎻掍欢鍙兘琚秹鍙娿"
+#, python-format
+msgid "Note that the %(name)s plugin seems to be involved."
+msgstr "娉ㄦ剰锛屽彲鑳芥秹鍙婂埌 %(name)s 鎻掍欢銆"
 
-#: trac/templates/error.html:141
+#: trac/templates/error.html:142
 msgid "Note that the following plugins seem to be involved:"
-msgstr "娉ㄦ剰锛氫笅鍒楁彃浠跺彲鑳借娑夊強锛"
+msgstr "娉ㄦ剰锛屽彲鑳芥秹鍙婂埌涓嬪垪鎻掍欢锛"
 
-#: trac/templates/error.html:145
+#: trac/templates/error.html:146
 msgid "Please report this issue to the plugin maintainer."
 msgstr "璇峰皢璇ユ儏鍐垫姤鍛婄粰鎻掍欢缁存姢鑰呫"
 
-#: trac/templates/error.html:147
+#: trac/templates/error.html:148
 msgid ""
 "Before you do that, though, please first try\n"
 "                [1:[2:searching]\n"
@@ -1971,7 +1998,7 @@
 "                [3:閭欢鍒楄〃]\n"
 "                鑰屼笉鏄垱寤轰换鍔″崟銆"
 
-#: trac/templates/error.html:156
+#: trac/templates/error.html:157
 #, python-format
 msgid ""
 "Otherwise, please %(create)s a new bug report\n"
@@ -1981,90 +2008,92 @@
 "\"\n"
 "\"                鎻忚堪闂骞惰鏄庡浣曢噸鐜般"
 
-#: trac/templates/error.html:160
+#: trac/templates/error.html:161
 msgid "Python Traceback"
 msgstr "Python Traceback"
 
-#: trac/templates/error.html:161
+#: trac/templates/error.html:162
 msgid "Most recent call last:"
 msgstr "鏈澶氭渶杩戣皟鐢ㄧ殑:"
 
-#: trac/templates/error.html:166 trac/templates/error.html:197
-msgid "File \""
-msgstr "鏂囦欢 \""
-
 #: trac/templates/error.html:166
+#, python-format
 msgid ""
-"\",\n"
-"                        line"
+"[1:File \"%(file)s\",\n"
+"                        line [2:%(line)s], in]\n"
+"                        [3:%(function)s]"
 msgstr ""
-"\",\n"
-"                        琛"
+"[1:File \"%(file)s\",\n"
+"                        line [2:%(line)s], in]\n"
+"                        [3:%(function)s]"
 
-#: trac/templates/error.html:167 trac/templates/error.html:197
-msgid ", in"
-msgstr ", 浜"
-
-#: trac/templates/error.html:171
+#: trac/templates/error.html:172
 msgid "Code fragment:"
 msgstr "閮ㄥ垎浠ｇ爜:"
 
-#: trac/templates/error.html:173
+#: trac/templates/error.html:174
 msgid "Line"
 msgstr "琛"
 
-#: trac/templates/error.html:183
+#: trac/templates/error.html:184
 msgid "Local variables:"
 msgstr "灞閮ㄥ彉閲:"
 
-#: trac/templates/error.html:197
-msgid "\", line"
-msgstr "\", 琛"
+#: trac/templates/error.html:198
+#, python-format
+msgid "File \"%(file)s\", line %(line)s, in %(function)s"
+msgstr "File \"%(file)s\", line %(line)s, in %(function)s"
 
-#: trac/templates/error.html:200
+#: trac/templates/error.html:201
 msgid "Switch to plain text view"
 msgstr "鍒囨崲鍒扮函鏂囨湰瑙嗗浘"
 
-#: trac/templates/error.html:203
+#: trac/templates/error.html:204
 msgid "System Information:"
 msgstr "绯荤粺淇℃伅:"
 
-#: trac/templates/error.html:211
+#: trac/templates/error.html:212
 msgid "Enabled Plugins:"
 msgstr "宸插惎鐢ㄦ彃浠"
 
-#: trac/templates/error.html:227
+#: trac/templates/error.html:228
 msgid "TracGuide"
 msgstr "TracGuide"
 
-#: trac/templates/error.html:227
+#: trac/templates/error.html:228
 msgid "鈥 The Trac User and Administration Guide"
 msgstr "鈥 Trac鐢ㄦ埛鍙婄鐞嗗憳鎸囧崡"
 
-#: trac/templates/history_view.html:15
-msgid "Change History for"
-msgstr "鍙樻洿鍘嗗彶"
+#: trac/templates/history_view.html:16
+#, python-format
+msgid "Change History for [1:%(name)s]"
+msgstr "[1:%(name)s] 鐨勫彉鏇村巻鍙"
 
-#: trac/templates/history_view.html:21 trac/templates/history_view.html:54
+#: trac/templates/history_view.html:22 trac/templates/history_view.html:55
 #: trac/versioncontrol/templates/diff_form.html:58
-#: trac/versioncontrol/templates/revisionlog.html:180
+#: trac/versioncontrol/templates/revisionlog.html:88
+#: trac/versioncontrol/templates/revisionlog.html:182
 msgid "View changes"
 msgstr "鏌ラ槄鍙樻洿"
 
-#: trac/templates/history_view.html:23
+#: trac/templates/history_view.html:24
 msgid "Change history"
 msgstr "鍙樻洿鍘嗗彶"
 
-#: trac/templates/history_view.html:30
-#: trac/ticket/templates/ticket_notify_email.txt:21
+#: trac/templates/history_view.html:28 trac/ticket/admin.py:440
+#: trac/ticket/api.py:297
+msgid "Version"
+msgstr "鐗堟湰"
+
+#: trac/templates/history_view.html:31
 msgid "Comment"
 msgstr "璇勮"
 
-#: trac/templates/history_view.html:42
+#: trac/templates/history_view.html:43
 msgid "View this version"
 msgstr "鏌ョ湅璇ョ増鏈"
 
-#: trac/templates/history_view.html:45
+#: trac/templates/history_view.html:46
 #, python-format
 msgid "IP-Address: %(ipnr)s"
 msgstr "IP鍦板潃锛 %(ipnr)s"
@@ -2086,6 +2115,10 @@
 msgid "Download in other formats:"
 msgstr "鐢ㄥ叾浠栨牸寮忎笅杞:"
 
+#: trac/templates/list_of_attachments.html:19
+msgid "View attachment"
+msgstr "鏌ョ湅闄勪欢"
+
 #: trac/templates/list_of_attachments.html:18
 #, python-format
 msgid ""
@@ -2105,12 +2138,6 @@
 msgid "Attachments"
 msgstr "闄勪欢"
 
-#: trac/templates/macros.html:19
-#: trac/versioncontrol/templates/dir_entries.html:16
-#, python-format
-msgid "%(size)s bytes"
-msgstr "%(size)s 瀛楄妭"
-
 #: trac/templates/macros.html:37 trac/templates/macros.html:38
 msgid "Previous"
 msgstr "涓婁竴涓"
@@ -2123,182 +2150,179 @@
 msgid "(The file is empty)"
 msgstr "(鏂囦欢涓虹┖)"
 
-#: trac/templates/preview_file.html:18
-msgid "HTML preview not available"
-msgstr "HTML棰勮鍔熻兘涓嶅彲鐢"
-
-#: trac/templates/preview_file.html:21
+#: trac/templates/preview_file.html:19
 #, python-format
-msgid "since the file size exceeds %(size)s bytes."
-msgstr "鐢变簬鏂囦欢澶у皬瓒呰繃 %(size)s 瀛楄妭銆"
+msgid ""
+"[1:HTML preview not available], since the file size exceeds %(size)s "
+"bytes."
+msgstr "[1:鏃犳硶杩涜HTML棰勮]锛屽洜涓烘枃浠跺ぇ灏忚秴杩 %(size)s 瀛楄妭銆"
 
-#: trac/templates/preview_file.html:25
-msgid "since no preview renderer could handle it."
-msgstr "鐢变簬娌℃湁鍚堥傜殑娓叉煋鍣ㄦ潵澶勭悊銆"
+#: trac/templates/preview_file.html:22
+msgid "[1:HTML preview not available], since no preview renderer could handle it."
+msgstr "[1:鏃犳硶杩涜HTML棰勮]锛屽洜涓烘病鏈夐瑙堟覆鏌撳櫒鑳藉澶勭悊瀹冦"
 
-#: trac/templates/preview_file.html:28
-msgid "Try"
-msgstr "灏濊瘯"
+#: trac/templates/preview_file.html:26
+msgid "Try [1:downloading] the file instead."
+msgstr "璇穂1:涓嬭浇]鏂囦欢銆"
 
-#: trac/templates/preview_file.html:29
-msgid "downloading"
-msgstr "涓嬭浇"
+#: trac/templates/progress_bar.html:26
+#, python-format
+msgid "%(count)s/%(total)s %(title)s"
+msgstr "%(count)s/%(total)s %(title)s"
 
-#: trac/templates/preview_file.html:29
-msgid "the file instead."
-msgstr "鏂囦欢浠ｆ浛銆"
-
-#: trac/templates/progress_bar.html:24
+#: trac/templates/progress_bar.html:36
 #, python-format
-msgid "%(num)s of %(total)s %(unit)s %(title)s"
-msgid_plural "%(num)s of %(total)s %(units)s %(title)s"
-msgstr[0] "%(num)s / %(total)s %(unit)s %(title)s"
-msgstr[1] "%(num)s / %(total)s %(units)s %(title)s"
+msgid "Number of %(unit)s:"
+msgstr "%(unit)s鏁:"
 
-#: trac/templates/progress_bar.html:37
+#: trac/templates/progress_bar.html:40
 #, python-format
-msgid "%(title)s %(unit)s:"
-msgid_plural "%(title)s %(units)s:"
-msgstr[0] "%(title)s %(unit)s:"
-msgstr[1] "%(title)s %(units)s:"
+msgid ""
+"[1:[2:%(title)s:]]\n"
+"          [3:[4:%(count)s]]"
+msgstr ""
+"[1:[2:%(title)s:]]\n"
+"          [3:[4:%(count)s]]"
 
 #: trac/templates/progress_bar.html:47
 #, python-format
-msgid "Total %(unit)s:"
-msgid_plural "Total %(units)s:"
-msgstr[0] "鎬昏 %(unit)s:"
-msgstr[1] "鎬昏 %(units)s:"
+msgid ""
+"[1:[2:Total:]]\n"
+"      [3:[4:%(count)s]]"
+msgstr ""
+"[1:[2:鍏:]]\n"
+"      [3:[4:%(count)s]]"
 
 #: trac/templates/theme.html:26
 msgid "Search:"
 msgstr "鎼滅储:"
 
-#: trac/templates/theme.html:37
+#: trac/templates/theme.html:39
 msgid "Context Navigation"
 msgstr "涓婁笅鏂囧鑸"
 
-#: trac/templates/theme.html:46
+#: trac/templates/theme.html:49
 msgid "Warning:"
 msgstr "璀﹀憡:"
 
-#: trac/ticket/admin.py:37
+#: trac/ticket/admin.py:36
 msgid "(Undefined)"
 msgstr "锛堟湭瀹氫箟鐨勶級"
 
-#: trac/ticket/admin.py:48
+#: trac/ticket/admin.py:47
 msgid "Ticket System"
 msgstr "浠诲姟鍗曠郴缁"
 
-#: trac/ticket/admin.py:113
+#: trac/ticket/admin.py:112
 #, python-format
 msgid "The component \"%(name)s\" has been added."
 msgstr "缁勪欢 '%(name)s' 宸叉坊鍔犮"
 
-#: trac/ticket/admin.py:118 trac/ticket/model.py:816 trac/ticket/model.py:833
+#: trac/ticket/admin.py:117 trac/ticket/model.py:841 trac/ticket/model.py:862
 msgid "Invalid component name."
 msgstr "鏃犳晥鐨勭粍浠跺悕绉般"
 
-#: trac/ticket/admin.py:119
+#: trac/ticket/admin.py:118
 #, python-format
 msgid "Component %(name)s already exists."
 msgstr "缁勪欢 %(name)s 宸茬粡瀛樺湪."
 
-#: trac/ticket/admin.py:126
+#: trac/ticket/admin.py:125
 msgid "No component selected"
 msgstr "娌℃湁閫夋嫨缁勪欢"
 
-#: trac/ticket/admin.py:134
+#: trac/ticket/admin.py:133
 msgid "The selected components have been removed."
 msgstr "閫夊畾缁勪欢宸插垹闄ゃ"
 
-#: trac/ticket/admin.py:242 trac/ticket/api.py:295
+#: trac/ticket/admin.py:241 trac/ticket/api.py:295
 #: trac/ticket/templates/milestone_view.html:10
-#: trac/ticket/templates/milestone_view.html:21
+#: trac/ticket/templates/milestone_view.html:23
 msgid "Milestone"
 msgstr "閲岀▼纰"
 
-#: trac/ticket/admin.py:271 trac/ticket/roadmap.py:665
+#: trac/ticket/admin.py:270 trac/ticket/roadmap.py:663
 msgid "Completion date may not be in the future"
 msgstr "瀹屾垚鏃ユ湡涓嶈兘鏄湭鏉ョ殑鏃ユ湡"
 
-#: trac/ticket/admin.py:273
+#: trac/ticket/admin.py:272
 msgid "Invalid Completion Date"
 msgstr "鏃犳晥瀹屾垚鏃ユ湡"
 
-#: trac/ticket/admin.py:300
+#: trac/ticket/admin.py:299
 #, python-format
 msgid "The milestone \"%(name)s\" has been added."
 msgstr "閲岀▼纰 \"%(name)s\" 宸叉坊鍔犮"
 
-#: trac/ticket/admin.py:305 trac/ticket/model.py:942 trac/ticket/model.py:962
+#: trac/ticket/admin.py:304 trac/ticket/model.py:978 trac/ticket/model.py:1002
 msgid "Invalid milestone name."
 msgstr "鏃犳晥鐨勯噷绋嬬鍚嶇О銆"
 
-#: trac/ticket/admin.py:306
+#: trac/ticket/admin.py:305
 #, python-format
 msgid "Milestone %(name)s already exists."
 msgstr "閲岀▼纰 %(name)s 宸茬粡瀛樺湪."
 
-#: trac/ticket/admin.py:314
+#: trac/ticket/admin.py:313
 msgid "No milestone selected"
 msgstr "娌℃湁閫夋嫨閲岀▼纰"
 
-#: trac/ticket/admin.py:322
+#: trac/ticket/admin.py:321
 msgid "The selected milestones have been removed."
 msgstr "閫夊畾閲岀▼纰戝凡鍒犻櫎銆"
 
-#: trac/ticket/admin.py:481
+#: trac/ticket/admin.py:480
 #, python-format
 msgid "The version \"%(name)s\" has been added."
 msgstr "鐗堟湰 '%(name)s' 宸叉坊鍔犮"
 
-#: trac/ticket/admin.py:486 trac/ticket/model.py:1065 trac/ticket/model.py:1081
+#: trac/ticket/admin.py:485 trac/ticket/model.py:1112 trac/ticket/model.py:1132
 msgid "Invalid version name."
 msgstr "鏃犳晥鐨勭増鏈悕绉般"
 
-#: trac/ticket/admin.py:487
+#: trac/ticket/admin.py:486
 #, python-format
 msgid "Version %(name)s already exists."
 msgstr "鐗堟湰 %(name)s 宸茬粡瀛樺湪."
 
-#: trac/ticket/admin.py:494
+#: trac/ticket/admin.py:493
 msgid "No version selected"
 msgstr "娌℃湁閫夋嫨鐗堟湰"
 
-#: trac/ticket/admin.py:502
+#: trac/ticket/admin.py:501
 msgid "The selected versions have been removed."
 msgstr "閫夊畾鐗堟湰宸插垹闄ゃ"
 
-#: trac/ticket/admin.py:560
+#: trac/ticket/admin.py:559
 msgid "Time"
 msgstr "鏃堕棿"
 
-#: trac/ticket/admin.py:630
+#: trac/ticket/admin.py:627
 #, python-format
-msgid "The %(field)s \"%(name)s\" has been added."
-msgstr "%(field)s \"%(name)s\" 宸叉坊鍔犮"
+msgid "The %(field)s value \"%(name)s\" has been added."
+msgstr "%(field)s 鍊 \"%(name)s\" 宸叉坊鍔犮"
 
-#: trac/ticket/admin.py:636 trac/ticket/model.py:687 trac/ticket/model.py:710
+#: trac/ticket/admin.py:633
 #, python-format
-msgid "Invalid %(type)s name."
+msgid "Invalid %(type)s value."
 msgstr "鏃犳晥鐨%(type)s鍚嶇О銆"
 
-#: trac/ticket/admin.py:638
+#: trac/ticket/admin.py:635
 #, python-format
-msgid "%(type)s %(name)s already exists"
-msgstr "%(type)s %(name)s 宸茬粡瀛樺湪"
+msgid "%(type)s value \"%(name)s\" already exists"
+msgstr "%(type)s 鍊 %(name)s 宸茬粡瀛樺湪"
 
-#: trac/ticket/admin.py:644
+#: trac/ticket/admin.py:642
 #, python-format
 msgid "No %s selected"
 msgstr "娌℃湁 %s 琚夋嫨"
 
-#: trac/ticket/admin.py:654
+#: trac/ticket/admin.py:650
 #, python-format
-msgid "The selected %(fields)s have been removed."
-msgstr "閫夊畾%(fields)s宸插垹闄ゃ"
+msgid "The selected %(field)s values have been removed."
+msgstr "閫夊畾%(field)s鍊煎凡鍒犻櫎銆"
 
-#: trac/ticket/admin.py:675
+#: trac/ticket/admin.py:672
 msgid ""
 "Error writing to trac.ini, make sure it is writable by the web server. "
 "The default value has not been saved."
@@ -2306,72 +2330,72 @@
 "鍐欏叆trac.ini閿欒锛岃纭繚瀹冨彲琚玏eb鏈嶅姟鍣ㄥ啓鍏ャ俓n"
 "缂虹渷鍊兼病鏈夎淇濆瓨銆"
 
-#: trac/ticket/admin.py:687
+#: trac/ticket/admin.py:684
 msgid "Order numbers must be unique"
 msgstr "搴忓彿蹇呴』鍞竴"
 
-#: trac/ticket/admin.py:749
+#: trac/ticket/admin.py:746
 msgid "Possible Values"
 msgstr "鍙彇鍊"
 
-#: trac/ticket/admin.py:771
+#: trac/ticket/admin.py:768
 #, python-format
 msgid "Invalid up/down value: %(value)s"
 msgstr "鏃犳晥鐨 up/down 鍊: %(value)s"
 
-#: trac/ticket/admin.py:793 trac/ticket/api.py:294
+#: trac/ticket/admin.py:789 trac/ticket/api.py:294
 msgid "Priority"
 msgstr "浼樺厛绾"
 
-#: trac/ticket/admin.py:793
+#: trac/ticket/admin.py:789
 msgid "Priorities"
 msgstr "浼樺厛绾"
 
-#: trac/ticket/admin.py:799 trac/ticket/api.py:299
+#: trac/ticket/admin.py:795 trac/ticket/api.py:299
 msgid "Resolution"
 msgstr "澶勭悊缁撴灉"
 
-#: trac/ticket/admin.py:799
+#: trac/ticket/admin.py:795
 msgid "Resolutions"
 msgstr "澶勭悊缁撴灉"
 
-#: trac/ticket/admin.py:805 trac/ticket/api.py:298
+#: trac/ticket/admin.py:801 trac/ticket/api.py:298
 msgid "Severity"
 msgstr "涓ラ噸鎬"
 
-#: trac/ticket/admin.py:805
+#: trac/ticket/admin.py:801
 msgid "Severities"
 msgstr "涓ラ噸鎬"
 
-#: trac/ticket/admin.py:811
+#: trac/ticket/admin.py:807
 msgid "Ticket Type"
 msgstr "浠诲姟鍗曠被鍨"
 
-#: trac/ticket/admin.py:811
+#: trac/ticket/admin.py:807
 msgid "Ticket Types"
 msgstr "浠诲姟鍗曠被鍨"
 
-#: trac/ticket/admin.py:839
+#: trac/ticket/admin.py:835
 msgid "<number> must be a number"
 msgstr "<number> 蹇呴』鏄竴涓暟"
 
-#: trac/ticket/admin.py:844
+#: trac/ticket/admin.py:840
 #, python-format
-msgid "Ticket %(num)s and all associated data removed."
-msgstr "浠诲姟鍗 %(num)s 鍜屾墍鏈夌浉鍏虫暟鎹潎宸茶鍒犻櫎銆"
+msgid "Ticket #%(num)s and all associated data removed."
+msgstr "浠诲姟鍗 #%(num)s 鍜屾墍鏈夌浉鍏虫暟鎹潎宸插垹闄ゃ"
 
 #: trac/ticket/api.py:277
 msgid "Summary"
-msgstr "姒傝堪:"
+msgstr "姒傝堪"
 
 #: trac/ticket/api.py:279 trac/ticket/templates/ticket.html:361
 msgid "Reporter"
-msgstr "鎶ュ憡浜:"
+msgstr "鎶ュ憡浜"
 
-#: trac/ticket/api.py:292 trac/versioncontrol/admin.py:108
-#: trac/versioncontrol/templates/admin_repositories.html:124
+#: trac/ticket/api.py:292 trac/versioncontrol/admin.py:110
+#: trac/versioncontrol/templates/admin_repositories.html:125
 msgid "Type"
-msgstr "绫诲瀷:"
+msgstr "绫诲瀷"
 
 #: trac/ticket/api.py:293
 msgid "Status"
@@ -2407,26 +2431,32 @@
 msgid "The ticket will be disowned"
 msgstr "浠诲姟鍗曞皢灏嗚劚绂诲睘涓"
 
-#: trac/ticket/default_workflow.py:246 trac/ticket/default_workflow.py:262
+#: trac/ticket/default_workflow.py:245 trac/ticket/default_workflow.py:263
 #, python-format
+msgid "to %(owner)s"
+msgstr "鍒 %(owner)s"
+
+#: trac/ticket/default_workflow.py:247 trac/ticket/default_workflow.py:266
+#, python-format
 msgid "The owner will be changed from %(current_owner)s"
 msgstr "灞炰富灏嗙敱%(current_owner)s鍙樻洿"
 
-#: trac/ticket/default_workflow.py:252
+#: trac/ticket/default_workflow.py:254
 #, python-format
+msgid "to %(owner)s "
+msgstr "鍒 %(owner)s"
+
+#: trac/ticket/default_workflow.py:256
+#, python-format
 msgid "The owner will be changed from %(current_owner)s to %(selected_owner)s"
 msgstr "灞炰富灏嗙敱%(current_owner)s鍙樻洿涓%(selected_owner)s"
 
-#: trac/ticket/default_workflow.py:257
-msgid "to "
-msgstr "鍒"
-
-#: trac/ticket/default_workflow.py:267
+#: trac/ticket/default_workflow.py:271
 #, python-format
 msgid "The owner will be changed from %(current_owner)s to %(authname)s"
 msgstr "灞炰富灏嗙敱%(current_owner)s鍙樻洿涓%(authname)s"
 
-#: trac/ticket/default_workflow.py:277
+#: trac/ticket/default_workflow.py:281
 msgid ""
 "Your workflow attempts to set a resolution but none is defined "
 "(configuration issue, please contact your Trac admin)."
@@ -2434,69 +2464,84 @@
 "鎮ㄧ殑宸ヤ綔娴佽瘯鍥捐缃鐞嗙粨鏋滐紝浣嗕竴涓篃娌℃湁瀹氫箟\n"
 "(閰嶇疆闂锛岃鑱旂郴鎮ㄧ殑Trac绠＄悊鍛)銆"
 
-#: trac/ticket/default_workflow.py:282
+#: trac/ticket/default_workflow.py:289 trac/ticket/default_workflow.py:299
 #, python-format
+msgid "as %(resolution)s"
+msgstr "涓 %(resolution)s"
+
+#: trac/ticket/default_workflow.py:291
+#, python-format
 msgid "The resolution will be set to %(name)s"
 msgstr "澶勭悊缁撴灉灏嗚缃负 %(name)s"
 
-#: trac/ticket/default_workflow.py:293
+#: trac/ticket/default_workflow.py:302
 msgid "The resolution will be set"
 msgstr "澶勭悊缁撴灉灏嗚缃负"
 
-#: trac/ticket/default_workflow.py:295
+#: trac/ticket/default_workflow.py:304
 msgid "The resolution will be deleted"
 msgstr "澶勭悊缁撴灉灏嗚鍒犻櫎"
 
-#: trac/ticket/default_workflow.py:301
+#: trac/ticket/default_workflow.py:307
 #, python-format
+msgid "as %(status)s "
+msgstr "涓 %(status)s "
+
+#: trac/ticket/default_workflow.py:311
+#, python-format
 msgid "Next status will be '%(name)s'"
 msgstr "涓嬩竴涓姸鎬佸皢鏄 '%(name)s'"
 
-#: trac/ticket/model.py:106
+#: trac/ticket/model.py:105
 #, python-format
 msgid "Ticket %(id)s does not exist."
 msgstr "浠诲姟鍗 %(id)s 涓嶅瓨鍦."
 
-#: trac/ticket/model.py:107
+#: trac/ticket/model.py:106
 msgid "Invalid ticket number"
 msgstr "鏃犳晥鐨勪换鍔″崟缂栧彿"
 
-#: trac/ticket/model.py:144
+#: trac/ticket/model.py:143
 msgid "Multi-values fields not supported yet"
 msgstr "灏氫笉鏀寔澶氬煎瓧娈"
 
-#: trac/ticket/model.py:651
+#: trac/ticket/model.py:657
 #, python-format
 msgid "%(type)s %(name)s does not exist."
 msgstr "%(type)s %(name)s 涓嶅瓨鍦."
 
-#: trac/ticket/model.py:789
+#: trac/ticket/model.py:701 trac/ticket/model.py:728
 #, python-format
+msgid "Invalid %(type)s name."
+msgstr "鏃犳晥鐨%(type)s鍚嶇О銆"
+
+#: trac/ticket/model.py:806
+#, python-format
 msgid "Component %(name)s does not exist."
 msgstr "缁勪欢 '%(name)s' 涓嶅瓨鍦."
 
-#: trac/ticket/model.py:894
+#: trac/ticket/model.py:922
 #, python-format
 msgid "Milestone %(name)s does not exist."
 msgstr "閲岀▼纰 '%(name)s' 涓嶅瓨鍦."
 
-#: trac/ticket/model.py:895
+#: trac/ticket/model.py:923
 msgid "Invalid milestone name"
 msgstr "鏃犳晥鐨勯噷绋嬬鍚嶇О"
 
-#: trac/ticket/model.py:1016
+#: trac/ticket/model.py:1056
 msgid "Open (by due date)"
 msgstr "寮鍚(鏈夋湡闄)"
 
-#: trac/ticket/model.py:1017
+#: trac/ticket/model.py:1057
 msgid "Open (no due date)"
 msgstr "寮鍚(鏃犳湡闄)"
 
-#: trac/ticket/model.py:1020
+#: trac/ticket/model.py:1060
 msgid "Closed"
 msgstr "鍏抽棴"
 
-#: trac/ticket/model.py:1038
+#: trac/ticket/model.py:1077
 #, python-format
 msgid "Version %(name)s does not exist."
 msgstr "鐗堟湰 '%(name)s' 涓嶅瓨鍦."
@@ -2561,25 +2606,28 @@
 msgid "Ticket"
 msgstr "浠诲姟鍗"
 
-#: trac/ticket/query.py:776 trac/ticket/report.py:379
+#: trac/ticket/query.py:776 trac/ticket/report.py:406
 #, python-format
 msgid "Page %(num)d"
 msgstr "绗 %(num)d 椤"
 
-#: trac/ticket/query.py:825 trac/ticket/report.py:539 trac/ticket/web_ui.py:130
-#: trac/timeline/web_ui.py:215 trac/versioncontrol/web_ui/log.py:303
+#: trac/ticket/query.py:825 trac/ticket/report.py:273 trac/ticket/report.py:566
+#: trac/ticket/web_ui.py:130 trac/timeline/web_ui.py:216
+#: trac/versioncontrol/web_ui/log.py:304
 msgid "RSS Feed"
 msgstr "RSS Feed"
 
-#: trac/ticket/query.py:827 trac/ticket/report.py:541 trac/ticket/web_ui.py:126
+#: trac/ticket/query.py:827 trac/ticket/report.py:275 trac/ticket/report.py:568
+#: trac/ticket/web_ui.py:126
 msgid "Comma-delimited Text"
 msgstr "閫楀彿鍒嗗壊鏂囨湰"
 
-#: trac/ticket/query.py:829 trac/ticket/report.py:543 trac/ticket/web_ui.py:128
+#: trac/ticket/query.py:829 trac/ticket/report.py:277 trac/ticket/report.py:570
+#: trac/ticket/web_ui.py:128
 msgid "Tab-delimited Text"
 msgstr "Tab鍒嗗壊鏂囨湰"
 
-#: trac/ticket/query.py:851 trac/ticket/report.py:73
+#: trac/ticket/query.py:851 trac/ticket/report.py:72
 msgid "View Tickets"
 msgstr "鏌ョ湅浠诲姟鍗"
 
@@ -2629,13 +2677,13 @@
 msgstr "鍒犻櫎鎶ヨ〃 {%(num)s} %(title)s"
 
 #: trac/ticket/report.py:204 trac/ticket/report.py:217
-#: trac/ticket/report.py:269
+#: trac/ticket/report.py:296
 #, python-format
 msgid "Report {%(num)s} does not exist."
 msgstr "鎶ヨ〃 {%(num)s} 涓嶅瓨鍦."
 
 #: trac/ticket/report.py:205 trac/ticket/report.py:218
-#: trac/ticket/report.py:270
+#: trac/ticket/report.py:297
 msgid "Invalid Report Number"
 msgstr "鏃犳晥鎶ヨ〃鍙"
 
@@ -2648,101 +2696,102 @@
 msgid "Edit Report {%(num)d} %(title)s"
 msgstr "缂栬緫鎶ヨ〃 {%(num)d} %(title)s"
 
-#: trac/ticket/report.py:275
+#: trac/ticket/report.py:302
 #, python-format
 msgid "Report failed: %(error)s"
 msgstr "鎶ヨ〃澶辫触: %(error)s"
 
-#: trac/ticket/report.py:290
+#: trac/ticket/report.py:317
 #, python-format
 msgid "When specified, the report number should be \"%(num)s\"."
 msgstr "褰撴寚瀹氬悗, 鎶ヨ〃鍙峰簲鏄 \"%(num)s\"."
 
-#: trac/ticket/report.py:361
+#: trac/ticket/report.py:388
 #, python-format
 msgid "Report execution failed: %(error)s"
 msgstr "鎶ヨ〃鎵ц澶辫触: %(error)s"
 
-#: trac/ticket/report.py:547
+#: trac/ticket/report.py:574
 msgid "SQL Query"
 msgstr "SQL鏌ヨ"
 
-#: trac/ticket/report.py:571
+#: trac/ticket/report.py:598
 #, python-format
 msgid "The following arguments are missing: %(args)s"
 msgstr "缂哄皯濡備笅鍙傛暟锛%(args)s"
 
-#: trac/ticket/report.py:585
+#: trac/ticket/report.py:612
 #, python-format
 msgid "Report {%(num)s} has no SQL query."
 msgstr "鎶ヨ〃 {%(num)s} 娌℃湁SQL鏌ヨ."
 
-#: trac/ticket/report.py:615
+#: trac/ticket/report.py:642
 #, python-format
 msgid "Query parameter \"sort=%(sort_col)s\"  is invalid"
 msgstr "鏌ヨ鍙傛暟 \"sort=%(sort_col)s\"  鏃犳晥"
 
-#: trac/ticket/roadmap.py:208
+#: trac/ticket/roadmap.py:205
 msgid "ticket status"
 msgstr "浠诲姟鍗曠姸鎬"
 
-#: trac/ticket/roadmap.py:208
-msgid "ticket"
-msgstr "浠诲姟鍗"
-
-#: trac/ticket/roadmap.py:208
+#: trac/ticket/roadmap.py:205
 msgid "tickets"
 msgstr "浠诲姟鍗"
 
-#: trac/ticket/roadmap.py:218
+#: trac/ticket/roadmap.py:215
 #, python-format
 msgid ""
 "'%(group1)s' and '%(group2)s' milestone groups both are declared to be "
 "\"catch-all\" groups. Please check your configuration."
 msgstr "'%(group1)s' 鍜 '%(group2)s' 閲岀▼纰戠粍閮藉０鏄庝负\"catch-all\" 缁. 璇锋鏌ユ偍鐨勯厤缃."
 
-#: trac/ticket/roadmap.py:234
+#: trac/ticket/roadmap.py:231
 #, python-format
 msgid ""
 "'%(groupname)s' milestone group reused status '%(status)s' already taken "
 "by other groups. Please check your configuration."
 msgstr "'%(groupname)s' 閲岀▼纰戠粍閲嶇敤浜嗗凡缁忚鍏跺畠缁勪娇鐢ㄧ殑鐘舵 '%(status)s'. 璇锋鏌ユ偍鐨勯厤缃."
 
-#: trac/ticket/roadmap.py:317 trac/ticket/roadmap.py:439
-#: trac/ticket/roadmap.py:573 trac/ticket/templates/roadmap.html:10
+#: trac/ticket/roadmap.py:314 trac/ticket/roadmap.py:436
+#: trac/ticket/roadmap.py:571 trac/ticket/templates/roadmap.html:10
 #: trac/ticket/templates/roadmap.html:15
 msgid "Roadmap"
 msgstr "璺嚎鍥"
 
-#: trac/ticket/roadmap.py:367
+#: trac/ticket/roadmap.py:364
 msgid "iCalendar"
 msgstr "iCalendar"
 
-#: trac/ticket/roadmap.py:448 trac/ticket/roadmap.py:847
+#: trac/ticket/roadmap.py:445 trac/ticket/roadmap.py:845
 #, python-format
 msgid "Milestone %(name)s"
 msgstr "閲岀▼纰 %(name)s"
 
-#: trac/ticket/roadmap.py:467
+#: trac/ticket/roadmap.py:464
 #, python-format
 msgid "Ticket #%(num)s: %(summary)s"
 msgstr "浠诲姟鍗 #%(num)s: %(summary)s"
 
-#: trac/ticket/roadmap.py:528
+#: trac/ticket/roadmap.py:525
 msgid "Milestones reached"
 msgstr "閲岀▼纰戣揪鎴"
 
-#: trac/ticket/roadmap.py:615
+#: trac/ticket/roadmap.py:553
 #, python-format
+msgid "Milestone %(name)s completed"
+msgstr "閲岀▼纰 %(name)s 宸插畬鎴"
+
+#: trac/ticket/roadmap.py:613
+#, python-format
 msgid "The milestone \"%(name)s\" has been deleted."
 msgstr "閲岀▼纰 %(name)s 宸插垹闄ゃ"
 
-#: trac/ticket/roadmap.py:654
+#: trac/ticket/roadmap.py:652
 #, python-format
 msgid "Milestone \"%(name)s\" already exists, please choose another name."
 msgstr "閲岀▼纰 \"%(name)s\" 宸茬粡瀛樺湪, 璇烽夋嫨鍏朵粬鍚嶇О"
 
-#: trac/ticket/roadmap.py:657
+#: trac/ticket/roadmap.py:655
 msgid "You must provide a name for the milestone."
 msgstr "鎮ㄥ繀椤讳负閲岀▼纰戞彁渚涘悕绉."
 
@@ -2790,131 +2839,147 @@
 msgid "Ticket %(ticketref)s (%(summary)s) %(verb)s"
 msgstr "浠诲姟鍗 %(ticketref)s (%(summary)s) %(verb)s"
 
-#: trac/ticket/web_ui.py:496
+#: trac/ticket/web_ui.py:498
 #, python-format
-msgid "Invalid action \"%(name)s\""
-msgstr "鏃犳晥鍔ㄤ綔: \"%(name)s\""
+msgid "The action \"%(name)s\" is not available."
+msgstr "鍔ㄤ綔 \"%(name)s\" 鏃犳晥銆"
 
-#: trac/ticket/web_ui.py:624
+#: trac/ticket/web_ui.py:524
+#, python-format
+msgid ""
+"Please review your configuration, probably starting with %(section)s in "
+"your %(tracini)s."
+msgstr "璇锋鏌ヤ綘鐨勯厤缃, 涔熻鍙互浠庝綘鐨 %(tracini)s 涓殑 %(section)s 寮濮嬨"
+
+#: trac/ticket/web_ui.py:629
 msgid "Previous Ticket"
 msgstr "涓婁竴涓换鍔″崟"
 
-#: trac/ticket/web_ui.py:624
+#: trac/ticket/web_ui.py:629
 msgid "Next Ticket"
 msgstr "涓嬩竴涓换鍔″崟"
 
-#: trac/ticket/web_ui.py:625
+#: trac/ticket/web_ui.py:630
 msgid "Back to Query"
 msgstr "杩斿洖鏌ヨ"
 
-#: trac/ticket/web_ui.py:707 trac/ticket/web_ui.py:855
-#: trac/ticket/web_ui.py:863
+#: trac/ticket/web_ui.py:712 trac/ticket/web_ui.py:860
+#: trac/ticket/web_ui.py:868
 msgid "Ticket History"
 msgstr "浠诲姟鍗曞巻鍙"
 
-#: trac/ticket/web_ui.py:711 trac/ticket/web_ui.py:910
+#: trac/ticket/web_ui.py:716 trac/ticket/web_ui.py:915
 #, python-format
 msgid "Back to Ticket #%(num)s"
 msgstr "鍥炲埌浠诲姟鍗 #%(num)s"
 
-#: trac/ticket/web_ui.py:753
+#: trac/ticket/web_ui.py:758
 msgid "No differences to show"
 msgstr "娌℃湁宸紓"
 
-#: trac/ticket/web_ui.py:796 trac/ticket/web_ui.py:852
-#: trac/ticket/web_ui.py:860 trac/ticket/web_ui.py:931
-#: trac/ticket/web_ui.py:968 trac/ticket/web_ui.py:975 trac/wiki/web_ui.py:431
+#: trac/ticket/web_ui.py:801 trac/ticket/web_ui.py:857
+#: trac/ticket/web_ui.py:865 trac/ticket/web_ui.py:936
+#: trac/ticket/web_ui.py:981 trac/ticket/web_ui.py:988 trac/wiki/web_ui.py:431
 #: trac/wiki/web_ui.py:437 trac/wiki/web_ui.py:626 trac/wiki/web_ui.py:640
 #, python-format
 msgid "Version %(num)s"
 msgstr "鐗堟湰 %(num)s"
 
-#: trac/ticket/web_ui.py:799 trac/ticket/web_ui.py:934
+#: trac/ticket/web_ui.py:804 trac/ticket/web_ui.py:939
+msgid "Initial Version"
+msgstr "鍒濆鐗堟湰"
+
+#: trac/ticket/web_ui.py:804 trac/ticket/web_ui.py:939
 msgid "initial"
 msgstr "鍒濆"
 
-#: trac/ticket/web_ui.py:862 trac/ticket/web_ui.py:977
+#: trac/ticket/web_ui.py:867 trac/ticket/web_ui.py:990
 #: trac/versioncontrol/web_ui/changeset.py:369 trac/wiki/web_ui.py:450
 msgid "Previous Change"
 msgstr "涓婁竴涓洿鏀"
 
-#: trac/ticket/web_ui.py:862 trac/ticket/web_ui.py:977
+#: trac/ticket/web_ui.py:867 trac/ticket/web_ui.py:990
 #: trac/versioncontrol/web_ui/changeset.py:369 trac/wiki/web_ui.py:450
 msgid "Next Change"
 msgstr "涓嬩竴涓洿鏀"
 
-#: trac/ticket/web_ui.py:868
+#: trac/ticket/web_ui.py:873
 msgid "Ticket Diff"
 msgstr "浠诲姟鍗曞樊寮"
 
-#: trac/ticket/web_ui.py:902 trac/ticket/web_ui.py:971
-#: trac/ticket/web_ui.py:978
+#: trac/ticket/web_ui.py:907 trac/ticket/web_ui.py:984
+#: trac/ticket/web_ui.py:991
 msgid "Ticket Comment History"
 msgstr "浠诲姟鍗曡瘎璁哄巻鍙"
 
-#: trac/ticket/web_ui.py:904 trac/ticket/web_ui.py:928
-#: trac/ticket/web_ui.py:985
+#: trac/ticket/web_ui.py:909 trac/ticket/web_ui.py:933
+#: trac/ticket/web_ui.py:998
 #, python-format
 msgid "Ticket #%(num)s, comment %(cnum)d"
 msgstr "浠诲姟鍗 #%(num)s, 璇勮 %(cnum)d"
 
-#: trac/ticket/web_ui.py:983
+#: trac/ticket/web_ui.py:956
+#, python-format
+msgid "No version %(version)d for comment %(cnum)d on ticket #%(ticket)s"
+msgstr "浠诲姟鍗 #%(ticket)s 鐨勮瘎璁 %(cnum)d 娌℃湁鐗堟湰 %(version)d"
+
+#: trac/ticket/web_ui.py:996
 msgid "Ticket Comment Diff"
 msgstr "浠诲姟鍗曡瘎璁哄樊寮"
 
-#: trac/ticket/web_ui.py:1069
+#: trac/ticket/web_ui.py:1082
 msgid "No permission to edit the ticket description."
 msgstr "鏃犳潈淇敼浠诲姟鍗曟弿杩般"
 
-#: trac/ticket/web_ui.py:1075
+#: trac/ticket/web_ui.py:1088
 msgid "No permission to change the ticket reporter."
 msgstr "鏃犳潈淇敼浠诲姟鍗曟姤鍛婁汉銆"
 
-#: trac/ticket/web_ui.py:1080
+#: trac/ticket/web_ui.py:1093
 msgid "No permission to change ticket fields."
 msgstr "鏃犳潈淇敼浠诲姟鍗曞瓧娈点"
 
-#: trac/ticket/web_ui.py:1089
+#: trac/ticket/web_ui.py:1102
 msgid "No permissions to add a comment."
 msgstr "鏃犳潈澧炲姞璇勮銆"
 
-#: trac/ticket/web_ui.py:1095
+#: trac/ticket/web_ui.py:1108
 msgid ""
 "Sorry, can not save your changes. This ticket has been modified by "
 "someone else since you started"
 msgstr "瀵逛笉璧, 鏃犳硶淇濆瓨鎮ㄧ殑淇敼銆傝浠诲姟鍗曞凡鍦ㄦ偍淇敼杩囩▼涓鍏朵粬浜轰慨鏀"
 
-#: trac/ticket/web_ui.py:1102
+#: trac/ticket/web_ui.py:1115
 msgid "Tickets must contain a summary."
 msgstr "浠诲姟鍗曞繀椤绘湁姒傝堪銆"
 
-#: trac/ticket/web_ui.py:1125
+#: trac/ticket/web_ui.py:1138
 #, python-format
 msgid "Ticket description is too long (must be less than %(num)s characters)"
 msgstr "浠诲姟鍗曟弿杩板お闀(蹇呴』灏戜簬 %(num)s 涓瓧绗)"
 
-#: trac/ticket/web_ui.py:1132
+#: trac/ticket/web_ui.py:1145
 #, python-format
 msgid "Ticket comment is too long (must be less than %(num)s characters)"
 msgstr "浠诲姟鍗曡瘎璁哄お闀(蹇呴』灏戜簬 %(num)s 涓瓧绗)"
 
-#: trac/ticket/web_ui.py:1147
+#: trac/ticket/web_ui.py:1160
 msgid "Invalid comment threading identifier"
 msgstr "鏃犳晥璇勮绾跨储鏍囪瘑"
 
-#: trac/ticket/web_ui.py:1154
+#: trac/ticket/web_ui.py:1167
 #, python-format
 msgid "The ticket field '%(field)s' is invalid: %(message)s"
 msgstr "浠诲姟鍗曞瓧娈 '%(field)s' 鏃犳晥: %(message)s"
 
-#: trac/ticket/web_ui.py:1173
+#: trac/ticket/web_ui.py:1186
 #, python-format
 msgid ""
 "The ticket has been created, but an error occurred while sending "
 "notifications: %(message)s"
 msgstr "璇ヤ换鍔″崟宸插垱寤猴紝浣嗗湪鍙戦侀偖浠堕氱煡鏃跺彂鐢熼敊璇細 %(message)s"
 
-#: trac/ticket/web_ui.py:1183
+#: trac/ticket/web_ui.py:1196
 #, python-format
 msgid ""
 "Your ticket %(ticketref)s has been created, but you don't have permission"
@@ -2922,45 +2987,94 @@
 msgstr "浣犵殑浠诲姟鍗 %(ticketref)s 宸茬粡鍒涘缓锛屼絾浣犳病鏈夋潈闄愭煡鐪嬪畠銆"
 
 #. TRANSLATOR: The 'change' has been saved... (link)
-#: trac/ticket/web_ui.py:1214
+#: trac/ticket/web_ui.py:1227
 msgid "change"
 msgstr "鍙樻洿"
 
-#: trac/ticket/web_ui.py:1220
+#: trac/ticket/web_ui.py:1233
 #, python-format
 msgid ""
 "The %(change)s has been saved, but an error occurred while sending "
 "notifications: %(message)s"
 msgstr "%(change)s宸蹭繚瀛橈紝浣嗗湪鍙戦侀偖浠堕氱煡鏃跺彂鐢熼敊璇細 %(message)s"
 
-#: trac/ticket/web_ui.py:1354
+#: trac/ticket/web_ui.py:1367
 msgid "Add to Cc"
 msgstr "澧炲姞鎶勯"
 
-#: trac/ticket/web_ui.py:1355
+#: trac/ticket/web_ui.py:1368
 msgid "Remove from Cc"
 msgstr "鍒犻櫎鎶勯"
 
-#: trac/ticket/web_ui.py:1356
+#: trac/ticket/web_ui.py:1369
 msgid "Add/Remove from Cc"
 msgstr "澧炲姞/鍒犻櫎鎶勯"
 
-#: trac/ticket/web_ui.py:1357
+#: trac/ticket/web_ui.py:1370
 msgid "<Author field>"
 msgstr "<Author field>"
 
-#: trac/ticket/web_ui.py:1378 trac/ticket/templates/query.html:102
+#: trac/ticket/web_ui.py:1391 trac/ticket/templates/query.html:102
 msgid "yes"
 msgstr "鏄"
 
-#: trac/ticket/web_ui.py:1378 trac/ticket/templates/query.html:105
+#: trac/ticket/web_ui.py:1391 trac/ticket/templates/query.html:105
 msgid "no"
 msgstr "鍚"
 
-#: trac/ticket/web_ui.py:1567 trac/versioncontrol/templates/changeset.html:161
+#: trac/ticket/web_ui.py:1577
+msgid "set"
+msgstr "璁剧疆"
+
+#: trac/ticket/web_ui.py:1577
+msgid "unset"
+msgstr "鍙栨秷"
+
+#: trac/ticket/web_ui.py:1580 trac/versioncontrol/templates/changeset.html:189
+#: trac/versioncontrol/templates/revisionlog.txt:12
 msgid "modified"
 msgstr "宸蹭慨鏀"
 
+#. TRANSLATOR: modified ('diff') (link)
+#: trac/ticket/web_ui.py:1585 trac/ticket/templates/ticket.html:180
+#: trac/ticket/templates/ticket_box.html:64 trac/wiki/web_ui.py:722
+msgid "diff"
+msgstr "宸紓"
+
+#: trac/ticket/web_ui.py:1586
+#, python-format
+msgid "modified (%(diff)s)"
+msgstr "宸蹭慨鏀 (%(diff)s)"
+
+#: trac/ticket/web_ui.py:1607
+#, python-format
+msgid "%(items)s added"
+msgid_plural "%(items)s added"
+msgstr[0] "%(items)s 宸叉坊鍔"
+msgstr[1] "%(items)s 宸叉坊鍔"
+
+#: trac/ticket/web_ui.py:1609
+#, python-format
+msgid "%(items)s removed"
+msgid_plural "%(items)s removed"
+msgstr[0] "%(items)s 宸插垹闄"
+msgstr[1] "%(items)s 宸插垹闄"
+
+#: trac/ticket/web_ui.py:1618
+#, python-format
+msgid "%(value)s deleted"
+msgstr "%(value)s 宸插垹闄"
+
+#: trac/ticket/web_ui.py:1620
+#, python-format
+msgid "set to %(value)s"
+msgstr "宸茶缃负 %(value)s"
+
+#: trac/ticket/web_ui.py:1623
+#, python-format
+msgid "changed from %(old)s to %(new)s"
+msgstr "宸蹭粠 %(old)s 鍙樻洿涓 %(new)s"
+
 #: trac/ticket/templates/milestone_delete.html:10
 #: trac/ticket/templates/milestone_delete.html:22
 msgid "Delete Milestone"
@@ -2975,7 +3089,7 @@
 msgstr "閲嶆柊鍏宠仈鐩稿叧浠诲姟鍗曞埌閲岀▼纰"
 
 #: trac/ticket/templates/milestone_delete.html:41
-#: trac/ticket/templates/milestone_view.html:108
+#: trac/ticket/templates/milestone_view.html:107
 msgid "Delete milestone"
 msgstr "鍒犻櫎閲岀▼纰"
 
@@ -3006,7 +3120,7 @@
 
 #: trac/ticket/templates/milestone_edit.html:71
 msgid "Retarget associated open tickets to milestone:"
-msgstr "閲嶆寚瀹氬叧鑱旀椿鍔ㄤ换鍔″崟鍒伴噷绋嬬"
+msgstr "灏嗘湭鍏抽棴浠诲姟鍗曢噸鏂版寚瀹氬埌閲岀▼纰"
 
 #: trac/ticket/templates/milestone_edit.html:92
 #: trac/ticket/templates/ticket.html:397
@@ -3021,61 +3135,57 @@
 msgstr "澧炲姞閲岀▼纰"
 
 #: trac/ticket/templates/milestone_edit.html:98
-#: trac/ticket/templates/milestone_view.html:114
-#: trac/ticket/templates/roadmap.html:82
+#: trac/ticket/templates/milestone_view.html:113
+#: trac/ticket/templates/roadmap.html:79
 msgid ""
 "[1:Note:] See\n"
 "        [2:TracRoadmap] for help on using\n"
 "        the roadmap."
 msgstr "[1:娉ㄦ剰:] 浣跨敤璺嚎鍥剧殑甯姪鍙傝 [2:TracRoadmap]銆"
 
-#: trac/ticket/templates/milestone_view.html:25
+#: trac/ticket/templates/milestone_view.html:11
+msgid "Edit this milestone"
+msgstr "缂栬緫姝ら噷绋嬬"
+
+#: trac/ticket/templates/milestone_view.html:27
+#: trac/ticket/templates/roadmap.html:42
 #, python-format
-msgid ""
-"Completed %(duration)s ago\n"
-"              (%(date)s)"
-msgstr ""
-"浜 %(duration)s 鍓嶅畬鎴怽n"
-"              (%(date)s)"
+msgid "Completed %(duration)s ago (%(date)s)"
+msgstr "宸蹭簬 %(duration)s 鍓嶅畬鎴 (%(date)s)"
 
-#: trac/ticket/templates/milestone_view.html:31
+#: trac/ticket/templates/milestone_view.html:32
+#: trac/ticket/templates/roadmap.html:47
 #, python-format
-msgid ""
-"[1:%(duration)s late]\n"
-"              (%(date)s)"
-msgstr ""
-"[1:婊炲悗 %(duration)s]\n"
-"              (%(date)s)"
+msgid "[1:%(duration)s late] (%(date)s)"
+msgstr "[1:婊炲悗 %(duration)s] (%(date)s)"
 
 #: trac/ticket/templates/milestone_view.html:37
+#: trac/ticket/templates/roadmap.html:52
 #, python-format
-msgid ""
-"Due in %(duration)s\n"
-"              (%(date)s)"
-msgstr ""
-"Due in %(duration)s\n"
-"              (%(date)s)"
+msgid "Due in %(duration)s (%(date)s)"
+msgstr "杩樺墿 %(duration)s (%(date)s)"
 
-#: trac/ticket/templates/milestone_view.html:42
-#: trac/ticket/templates/roadmap.html:59
+#: trac/ticket/templates/milestone_view.html:41
+#: trac/ticket/templates/roadmap.html:56
 msgid "No date set"
 msgstr "娌℃湁璁剧疆鏃ユ湡"
 
-#: trac/ticket/templates/milestone_view.html:52
-#: trac/timeline/templates/timeline.html:43
-msgid "by"
-msgstr "鎸: "
+#: trac/ticket/templates/milestone_view.html:51
+#, python-format
+msgid "%(stat_title)s by"
+msgstr "%(stat_title)s by"
 
-#: trac/ticket/templates/milestone_view.html:66
+#: trac/ticket/templates/milestone_view.html:65
 msgid "(none)"
 msgstr "(鏃)"
 
-#: trac/ticket/templates/milestone_view.html:102
+#: trac/ticket/templates/milestone_view.html:101
 msgid "Edit milestone"
 msgstr "缂栬緫閲岀▼纰"
 
 #: trac/ticket/templates/query.html:29
 #: trac/ticket/templates/query_results.html:28
+#: trac/ticket/templates/report_view.html:21
 #: trac/ticket/templates/report_view.html:87
 #, python-format
 msgid "%(num)s match"
@@ -3091,73 +3201,97 @@
 msgid "Query filters"
 msgstr "鏌ヨ杩囨护鍣"
 
-#: trac/ticket/templates/query.html:45 trac/ticket/templates/query.html:141
+#: trac/ticket/templates/query.html:45 trac/ticket/templates/query.html:143
 msgid "Or"
 msgstr "鎴"
 
-#: trac/ticket/templates/query.html:127
+#: trac/ticket/templates/query.html:73
+msgid "or"
+msgstr "鎴"
+
+#: trac/ticket/templates/query.html:115
+msgid ""
+"[1:between]\n"
+"                            [2:]\n"
+"                            [3:and]\n"
+"                            [4:]"
+msgstr ""
+"[1:鍦╙\n"
+"                            [2:]\n"
+"                            [3:鍜宂\n"
+"                            [4:]涔嬮棿"
+
+#: trac/ticket/templates/query.html:129
 msgid "And"
 msgstr "鍜"
 
-#: trac/ticket/templates/query.html:160
+#: trac/ticket/templates/query.html:162
 msgid "Columns"
 msgstr "鍒"
 
-#: trac/ticket/templates/query.html:174
+#: trac/ticket/templates/query.html:176
 msgid "Group results by"
 msgstr "缁撴灉鍒嗙粍"
 
-#: trac/ticket/templates/query.html:185
+#: trac/ticket/templates/query.html:187
 msgid "descending"
 msgstr "闄嶅簭"
 
-#: trac/ticket/templates/query.html:189
+#: trac/ticket/templates/query.html:191
 msgid "Show under each result:"
 msgstr "鍦ㄦ瘡涓粨鏋滀笅鏄剧ず:"
 
-#: trac/ticket/templates/query.html:199
+#: trac/ticket/templates/query.html:201
 #: trac/ticket/templates/report_view.html:27
 msgid "Max items per page"
-msgstr "姣忛〉鏈澶氭潯鐩"
+msgstr "姣忛〉鏈澶氭樉绀烘潯鐩"
 
-#: trac/ticket/templates/query.html:243
+#: trac/ticket/templates/query.html:245
 #, python-format
 msgid "Edit report {%(id)s} corresponding to this query"
 msgstr "缂栬緫璇ユ煡璇㈢浉搴旂殑鎶ヨ〃{%(id)s}"
 
-#: trac/ticket/templates/query.html:243
+#: trac/ticket/templates/query.html:245
 msgid "Edit query"
 msgstr "缂栬緫鏌ヨ"
 
-#: trac/ticket/templates/query.html:252
+#: trac/ticket/templates/query.html:254
 msgid "Save query"
 msgstr "淇濆瓨鏌ヨ"
 
-#: trac/ticket/templates/query.html:252
+#: trac/ticket/templates/query.html:254
 #, python-format
 msgid "Save updated query in report {%(id)s}"
 msgstr "鍦ㄦ姤琛 {%(id)s} 涓繚瀛樻洿鏂扮殑鏌ヨ"
 
-#: trac/ticket/templates/query.html:252
+#: trac/ticket/templates/query.html:254
 msgid "Create new report from current query"
 msgstr "鐢ㄥ綋鍓嶆煡璇㈠垱寤烘柊鐨"
 
-#: trac/ticket/templates/query.html:260
+#: trac/ticket/templates/query.html:262
 #, python-format
 msgid "Delete report {%(id)s} corresponding to this query"
 msgstr "鍒犻櫎璇ユ煡璇㈢浉搴旂殑鎶ヨ〃{%(id)s}"
 
-#: trac/ticket/templates/query.html:260
+#: trac/ticket/templates/query.html:262
 msgid "Delete query"
 msgstr "鍒犻櫎鏌ヨ"
 
-#: trac/ticket/templates/query.html:267
+#: trac/ticket/templates/query.html:269
 msgid ""
 "[1:Note:] See [2:TracQuery]\n"
 "        for help on using queries."
 msgstr "[1:娉ㄦ剰锛歖鏈夊叧浣跨敤鏌ヨ鐨勫府鍔╁弬瑙乕2:TracQuery]"
 
 #: trac/ticket/templates/query_results.html:35
+msgid "(ascending)"
+msgstr "(鍗囧簭)"
+
+#: trac/ticket/templates/query_results.html:35
+msgid "(descending)"
+msgstr "(闄嶅簭)"
+
+#: trac/ticket/templates/query_results.html:36
 #: trac/versioncontrol/templates/sortable_th.html:18
 #, python-format
 msgid "Sort by %(col)s %(direction)s"
@@ -3199,14 +3333,14 @@
 msgstr "纭畾鍒犻櫎姝ゆ姤琛ㄥ悧?"
 
 #: trac/ticket/templates/report_delete.html:22
-#: trac/ticket/templates/report_list.html:36
+#: trac/ticket/templates/report_list.html:34
 #: trac/ticket/templates/report_view.html:75
 msgid "Delete report"
 msgstr "鍒犻櫎鎶ヨ〃"
 
 #: trac/ticket/templates/report_delete.html:26
-#: trac/ticket/templates/report_edit.html:47
-#: trac/ticket/templates/report_list.html:54
+#: trac/ticket/templates/report_edit.html:49
+#: trac/ticket/templates/report_list.html:52
 #: trac/ticket/templates/report_view.html:195
 msgid ""
 "[1:Note:]\n"
@@ -3227,62 +3361,51 @@
 
 #: trac/ticket/templates/report_edit.html:36
 msgid ""
-"Query for Report: (can be either SQL or, if starting with [1:query:], a "
-"[2:TracQuery] expression)"
+"Query for Report: (can be either SQL or, if starting with [1:query:],\n"
+"              a [2:TracQuery] expression)"
 msgstr "鐢熸垚鎶ヨ〃鐨勬煡璇: (鍙互鏄疭QL锛屾垨鑰呮槸涓涓互[1:query:]寮澶寸殑[2:TracQuery]琛ㄨ揪寮)"
 
-#: trac/ticket/templates/report_edit.html:41
+#: trac/ticket/templates/report_edit.html:43
 msgid "Save report"
 msgstr "淇濆瓨鎶ヨ〃"
 
-#: trac/ticket/templates/report_list.html:18
-msgid "This is a list of available reports."
-msgstr "鏈夋晥鎶ヨ〃鍒楄〃."
-
-#: trac/ticket/templates/report_list.html:25
+#: trac/ticket/templates/report_list.html:23
 msgid "Report"
 msgstr "鎶ヨ〃"
 
-#: trac/ticket/templates/report_list.html:26 trac/wiki/admin.py:202
+#: trac/ticket/templates/report_list.html:24 trac/wiki/admin.py:200
 msgid "Title"
 msgstr "鏍囬"
 
-#: trac/ticket/templates/report_list.html:27
+#: trac/ticket/templates/report_list.html:25
 #: trac/wiki/templates/wiki_edit.html:68 trac/wiki/templates/wiki_edit.html:141
 msgid "Actions"
 msgstr "鍔ㄤ綔"
 
-#: trac/ticket/templates/report_list.html:32
-#: trac/ticket/templates/report_list.html:33
+#: trac/ticket/templates/report_list.html:30
+#: trac/ticket/templates/report_list.html:31
 #: trac/ticket/templates/report_view.html:121
 msgid "View report"
 msgstr "鏌ョ湅鎶ヨ〃"
 
-#: trac/ticket/templates/report_list.html:34
+#: trac/ticket/templates/report_list.html:32
 #: trac/ticket/templates/report_view.html:63
 msgid "Edit report"
 msgstr "缂栬緫鎶ヨ〃"
 
-#: trac/ticket/templates/report_list.html:35
+#: trac/ticket/templates/report_list.html:33
 #: trac/ticket/templates/ticket.html:148 trac/wiki/templates/wiki_edit.html:124
 msgid "Edit"
 msgstr "缂栬緫"
 
-#: trac/ticket/templates/report_list.html:40
+#: trac/ticket/templates/report_list.html:38
 msgid "No reports available."
 msgstr "娌℃湁鍙敤鐨勬姤琛ㄣ"
 
-#: trac/ticket/templates/report_list.html:49
+#: trac/ticket/templates/report_list.html:47
 msgid "Create new report"
 msgstr "鏂板缓鎶ヨ〃"
 
-#: trac/ticket/templates/report_view.html:21
-#, python-format
-msgid "%(num)d match"
-msgid_plural "%(num)d matches"
-msgstr[0] "%(num)d涓尮閰"
-msgstr[1] "%(num)d涓尮閰"
-
 #: trac/ticket/templates/report_view.html:32
 msgid "Arguments"
 msgstr "鍙傛暟"
@@ -3295,10 +3418,6 @@
 msgid "Copy report"
 msgstr "澶嶅埗鎶ヨ〃"
 
-#: trac/ticket/templates/report_view.html:87
-msgid "No matches"
-msgstr "娌℃湁鍖归厤缁撴灉"
-
 #: trac/ticket/templates/report_view.html:128
 #: trac/ticket/templates/report_view.html:136
 #, python-format
@@ -3317,34 +3436,7 @@
 msgid "Milestone:"
 msgstr "閲岀▼纰:"
 
-#: trac/ticket/templates/roadmap.html:42
-#, python-format
-msgid ""
-"Completed %(duration)s ago\n"
-"                  (%(date)s)"
-msgstr ""
-"浜 %(duration)s 鍓嶅畬鎴怽n"
-"                  (%(date)s)"
-
-#: trac/ticket/templates/roadmap.html:48
-#, python-format
-msgid ""
-"[1:%(duration)s late]\n"
-"                  (%(date)s)"
-msgstr ""
-"[1:婊炲悗 %(duration)s]\n"
-"                  (%(date)s)"
-
-#: trac/ticket/templates/roadmap.html:54
-#, python-format
-msgid ""
-"Due in %(duration)s\n"
-"                  (%(date)s)"
-msgstr ""
-"Due in %(duration)s\n"
-"                  (%(date)s)"
-
-#: trac/ticket/templates/roadmap.html:78
+#: trac/ticket/templates/roadmap.html:75
 msgid "Add new milestone"
 msgstr "鏂板缓閲岀▼纰"
 
@@ -3356,10 +3448,19 @@
 msgid "Modify"
 msgstr "淇敼"
 
-#: trac/ticket/templates/ticket.html:90 trac/ticket/templates/ticket.html:93
-msgid "鈥 at"
-msgstr "鈥 浜"
+#: trac/ticket/templates/ticket.html:84
+msgid "Ticket #"
+msgstr "浠诲姟鍗 #"
 
+#: trac/ticket/templates/ticket.html:91
+msgid "at [1:Initial Version]"
+msgstr "[1:鍒濆鐗堟湰]"
+
+#: trac/ticket/templates/ticket.html:94
+#, python-format
+msgid "at [1:Version %(version)s]"
+msgstr "[1:鐗堟湰 %(version)s]"
+
 #: trac/ticket/templates/ticket.html:98
 msgid "Create New Ticket"
 msgstr "鍒涘缓鏂颁换鍔″崟"
@@ -3410,7 +3511,7 @@
 msgstr "鐢 %(author)s 浜 %(date)s 鍓嶆渶鍚庝竴娆＄紪杈"
 
 #: trac/ticket/templates/ticket.html:172
-#: trac/versioncontrol/templates/changeset.html:101
+#: trac/versioncontrol/templates/changeset.html:129
 msgid "previous"
 msgstr "涓婁竴涓"
 
@@ -3418,11 +3519,6 @@
 msgid "next"
 msgstr "涓嬩竴涓"
 
-#: trac/ticket/templates/ticket.html:180
-#: trac/ticket/templates/ticket_box.html:64
-msgid "diff"
-msgstr "宸紓"
-
 #: trac/ticket/templates/ticket.html:196
 msgid "View ticket fields and description"
 msgstr "鏌ョ湅浠诲姟鍗曞瓧娈靛拰鎻忚堪"
@@ -3446,9 +3542,10 @@
 msgid "The ticket validation has [1:failed]."
 msgstr "浠诲姟鍗曟牎楠孾1:澶辫触]."
 
-#: trac/ticket/templates/ticket.html:218
-msgid "Changed by"
-msgstr "淇敼鑰"
+#: trac/ticket/templates/ticket.html:219
+#, python-format
+msgid "Changed by %(author)s"
+msgstr "鐢 %(author)s 鍙樻洿"
 
 #: trac/ticket/templates/ticket.html:226
 msgid "Modify Ticket"
@@ -3492,10 +3589,10 @@
 msgid "Space or comma delimited email addresses and usernames are accepted."
 msgstr "鍙互鎺ュ彈浣跨敤绌烘牸鎴栭楀彿闅斿紑鐨別mail鍦板潃鎴栫敤鎴峰悕銆"
 
-#: trac/ticket/templates/ticket.html:373
-#: trac/wiki/templates/wiki_edit_form.html:49
-msgid "E-mail address and user name can be saved in the"
-msgstr "E-mail鍦板潃鍜岀敤鎴峰悕鍙互淇濆瓨鍦"
+#: trac/ticket/templates/ticket.html:374
+#: trac/wiki/templates/wiki_edit_form.html:50
+msgid "E-mail address and user name can be saved in the [1:Preferences]."
+msgstr "E-mail鍦板潃鍜岀敤鎴峰悕鍙互淇濆瓨鍦╗1:涓汉璁剧疆]閲屻"
 
 #: trac/ticket/templates/ticket.html:382
 msgid "I have files to attach to this ticket"
@@ -3546,32 +3643,40 @@
 msgid "Owned by:"
 msgstr "灞炰富:"
 
-#: trac/ticket/templates/ticket_box.html:62
-msgid "(last modified by"
-msgstr "(鏈鏂颁慨鏀硅"
+#: trac/ticket/templates/ticket_box.html:63
+#, python-format
+msgid "(last modified by %(author)s)"
+msgstr "(鏈鍚庣敱 %(author)s 淇敼)"
 
 #: trac/ticket/templates/ticket_box.html:73
 msgid "Reply, quoting this description"
 msgstr "鍥炲, 寮曠敤姝ゆ弿杩"
 
-#: trac/ticket/templates/ticket_change.html:22
-#: trac/versioncontrol/templates/changeset.html:157
-msgid "added"
-msgstr "澧炲姞"
+#: trac/ticket/templates/ticket_change.html:19
+#, python-format
+msgid ""
+"[1:[2:%(name)s]]\n"
+"          [3:[4:]]\n"
+"          added"
+msgstr ""
+"[1:[2:%(name)s]]\n"
+"          [3:[4:]]\n"
+"          琚坊鍔"
 
 #: trac/ticket/templates/ticket_change.html:26
-msgid "changed from"
-msgstr "鍙樻洿鑷"
+#, python-format
+msgid "changed from [1:%(old)s] to [2:%(new)s]"
+msgstr "宸蹭粠 [1:%(old)s] 鍙樻洿涓 [2:%(new)s]"
 
 #: trac/ticket/templates/ticket_change.html:29
-#: trac/versioncontrol/templates/browser.html:134
-msgid "set to"
-msgstr "璁剧疆涓"
+#, python-format
+msgid "set to [1:%(value)s]"
+msgstr "宸茶缃负 [1:%(value)s]"
 
-#: trac/ticket/templates/ticket_change.html:33
-#: trac/versioncontrol/templates/changeset.html:158
-msgid "deleted"
-msgstr "鍒犻櫎"
+#: trac/ticket/templates/ticket_change.html:32
+#, python-format
+msgid "[1:%(value)s] deleted"
+msgstr "[1:%(value)s] 宸插垹闄"
 
 #: trac/ticket/templates/ticket_change.html:45
 #, python-format
@@ -3588,62 +3693,62 @@
 msgstr "鏀惧純缂栬緫璇勮"
 
 #: trac/ticket/templates/ticket_notify_email.txt:9
-msgid "Changes (by"
-msgstr "鍙樻洿浜 ("
+#, python-format
+msgid "Changes (by %(author)s):"
+msgstr "鍙樻洿 (鏉ヨ嚜 %(author)s):"
 
 #: trac/ticket/templates/ticket_notify_email.txt:15
-msgid "Description changed by"
-msgstr "鎻忚堪鍙樻洿 鎿嶄綔鑰:"
+#, python-format
+msgid "Description changed by %(author)s:"
+msgstr "鎻忚堪琚%(author)s鏀瑰彉:"
 
-#: trac/ticket/templates/ticket_notify_email.txt:28
-msgid ""
-"-- \n"
-"Ticket URL: <"
-msgstr ""
-"-- \n"
-"浠诲姟鍗 URL: <"
+#: trac/ticket/templates/ticket_notify_email.txt:21
+#, python-format
+msgid "Comment (by %(author)s):"
+msgstr "璇勮 (鏉ヨ嚜 %(author)s):"
 
+#: trac/ticket/templates/ticket_notify_email.txt:29
+#, python-format
+msgid "Ticket URL: <%(link)s>"
+msgstr "浠诲姟鍗 URL: <%(link)s>"
+
 #: trac/timeline/web_ui.py:75 trac/timeline/templates/timeline.html:10
 #: trac/timeline/templates/timeline.html:16
 msgid "Timeline"
 msgstr "鏃堕棿绾"
 
-#: trac/timeline/web_ui.py:228 trac/timeline/web_ui.py:236
+#: trac/timeline/web_ui.py:229 trac/timeline/web_ui.py:237
 msgid "Previous Period"
 msgstr "涓婁竴鍛ㄦ湡"
 
-#: trac/timeline/web_ui.py:235 trac/timeline/web_ui.py:236
+#: trac/timeline/web_ui.py:236 trac/timeline/web_ui.py:237
 msgid "Next Period"
 msgstr "涓嬩竴鍛ㄦ湡"
 
-#: trac/timeline/web_ui.py:296
+#: trac/timeline/web_ui.py:297
 #, python-format
 msgid "%(date)s in Timeline"
 msgstr "鏃堕棿绾夸腑鐨%(date)s"
 
-#. TRANSLATOR: other_events
-#: trac/timeline/web_ui.py:342
-msgid "other kind of events"
-msgstr "鍏朵粬绫诲瀷浜嬩欢"
+#. TRANSLATOR: ...want to see the 'other kinds of events' from... (link)
+#: trac/timeline/web_ui.py:343
+msgid "other kinds of events"
+msgstr "鍏朵粬绫诲瀷鐨勪簨浠"
 
-#: trac/timeline/web_ui.py:347
+#: trac/timeline/web_ui.py:348
 #, python-format
 msgid "Event provider %(name)s failed for filters %(kinds)s: "
 msgstr "浜嬩欢鎻愪緵鑰 %(name)s 澶辨晥锛岃繃婊ゅ櫒绫诲瀷涓 %(kinds)s锛"
 
-#: trac/timeline/web_ui.py:353
+#: trac/timeline/web_ui.py:351
 #, python-format
 msgid ""
-"\n"
-"              You may want to see the %(other_events)s from the Timeline "
-"or \n"
-"              notify your Trac administrator about the error (detailed\n"
-"              informations were written to the log).\n"
-"            "
+"You may want to see the %(other_events)s from the Timeline or notify your"
+" Trac administrator about the error (detailed information was written to "
+"the log)."
 msgstr ""
-"\n"
-"              涔熻浣犳兂瑕佷粠鏃堕棿绾夸腑鏌ョ湅 %(other_events)s 鎴栬匼n"
-"              灏嗛敊璇氱煡浣犵殑Trac绠＄悊鍛橈紙璇︾粏淇℃伅宸插啓鍏ユ棩蹇楋級銆俓n"
+"              涔熻浣犳兂瑕佷粠鏃堕棿绾夸腑鏌ョ湅%(other_events)s锛孿n"
+"              鎴栬呴氱煡鎮ㄧ殑Trac绠＄悊鍛樺彂鐢熶簡閿欒锛堣缁嗕俊鎭凡鍐欏叆鏃ュ織锛夈俓n"
 "            "
 
 #: trac/timeline/templates/timeline.html:19
@@ -3664,8 +3769,17 @@
 msgid "Yesterday"
 msgstr "鏄ㄥぉ"
 
-#: trac/timeline/templates/timeline.html:53
+#: trac/timeline/templates/timeline.html:42
+#, python-format
 msgid ""
+"[1:%(time)s] %(title)s\n"
+"                  by [2:%(author)s]"
+msgstr ""
+"[1:%(time)s] %(title)s\n"
+"                  鏉ヨ嚜 [2:%(author)s]"
+
+#: trac/timeline/templates/timeline.html:58
+msgid ""
 "[1:Note:] See [2:TracTimeline]\n"
 "        for information about the timeline view."
 msgstr "[1:娉ㄦ剰:] 鏃堕棿绾胯鍥剧殑鐩稿叧淇℃伅鍙傝[2:TracTimeline]銆"
@@ -3674,50 +3788,50 @@
 #, python-format
 msgid "%(num)d year"
 msgid_plural "%(num)d years"
-msgstr[0] "%(num)d 骞"
-msgstr[1] "%(num)d 骞"
+msgstr[0] "%(num)d骞"
+msgstr[1] "%(num)d骞"
 
 #: trac/util/datefmt.py:80
 #, python-format
 msgid "%(num)d month"
 msgid_plural "%(num)d months"
-msgstr[0] "%(num)d 涓湀"
-msgstr[1] "%(num)d 涓湀"
+msgstr[0] "%(num)d涓湀"
+msgstr[1] "%(num)d涓湀"
 
 #: trac/util/datefmt.py:81
 #, python-format
 msgid "%(num)d week"
 msgid_plural "%(num)d weeks"
-msgstr[0] "%(num)d 鍛"
-msgstr[1] "%(num)d 鍛"
+msgstr[0] "%(num)d鍛"
+msgstr[1] "%(num)d鍛"
 
 #: trac/util/datefmt.py:82
 #, python-format
 msgid "%(num)d day"
 msgid_plural "%(num)d days"
-msgstr[0] "%(num)d 澶"
-msgstr[1] "%(num)d 澶"
+msgstr[0] "%(num)d澶"
+msgstr[1] "%(num)d澶"
 
 #: trac/util/datefmt.py:83
 #, python-format
 msgid "%(num)d hour"
 msgid_plural "%(num)d hours"
-msgstr[0] "%(num)d 灏忔椂"
-msgstr[1] "%(num)d 灏忔椂"
+msgstr[0] "%(num)d灏忔椂"
+msgstr[1] "%(num)d灏忔椂"
 
 #: trac/util/datefmt.py:84
 #, python-format
 msgid "%(num)d minute"
 msgid_plural "%(num)d minutes"
-msgstr[0] "%(num)d 鍒嗛挓"
-msgstr[1] "%(num)d 鍒嗛挓"
+msgstr[0] "%(num)d鍒嗛挓"
+msgstr[1] "%(num)d鍒嗛挓"
 
 #: trac/util/datefmt.py:103
 #, python-format
 msgid "%(num)i second"
 msgid_plural "%(num)i seconds"
-msgstr[0] "%(num)i 绉"
-msgstr[1] "%(num)i 绉"
+msgstr[0] "%(num)i绉"
+msgstr[1] "%(num)i绉"
 
 #: trac/util/datefmt.py:247
 #, python-format
@@ -3747,39 +3861,29 @@
 msgid "%(start)d - %(stop)d of %(total)d"
 msgstr "%(start)d - %(stop)d 鍏 %(total)d"
 
-#: trac/versioncontrol/admin.py:80 trac/versioncontrol/admin.py:105
-#: trac/versioncontrol/admin.py:106 trac/versioncontrol/admin.py:296
-#: trac/versioncontrol/api.py:38 trac/versioncontrol/api.py:155
-#: trac/versioncontrol/api.py:192
-#: trac/versioncontrol/templates/admin_repositories.html:20
-#: trac/versioncontrol/templates/admin_repositories.html:33
-#: trac/versioncontrol/templates/admin_repositories.html:131
-#: trac/versioncontrol/templates/admin_repositories.html:133
-#: trac/versioncontrol/web_ui/browser.py:809
-#: trac/versioncontrol/web_ui/changeset.py:853
-#: trac/versioncontrol/web_ui/changeset.py:994
-msgid "(default)"
-msgstr "(榛樿)"
-
-#: trac/versioncontrol/admin.py:108
+#: trac/versioncontrol/admin.py:110
 msgid "Alias"
 msgstr "鍒悕"
 
-#: trac/versioncontrol/admin.py:108
-#: trac/versioncontrol/templates/admin_repositories.html:124
+#: trac/versioncontrol/admin.py:110
+#: trac/versioncontrol/templates/admin_repositories.html:125
 msgid "Directory"
 msgstr "鐩綍"
 
-#: trac/versioncontrol/admin.py:114
+#: trac/versioncontrol/admin.py:116
 msgid "Cannot synchronize a single revision on multiple repositories"
 msgstr "鏃犳硶鍦ㄥ涓増鏈簱涓悓姝ュ崟涓慨璁"
 
-#: trac/versioncontrol/admin.py:123
+#: trac/versioncontrol/admin.py:124 trac/versioncontrol/admin.py:182
+#: trac/versioncontrol/web_ui/browser.py:349
+#: trac/versioncontrol/web_ui/changeset.py:247
+#: trac/versioncontrol/web_ui/changeset.py:1087
+#: trac/versioncontrol/web_ui/log.py:87 trac/versioncontrol/web_ui/log.py:395
 #, python-format
-msgid "Unknown repository '%(reponame)s'"
-msgstr "鏈煡鐗堟湰搴 '%(reponame)s'"
+msgid "Repository '%(repo)s' not found"
+msgstr "娌℃湁鎵惧埌鐗堟湰搴 %(repo)s"
 
-#: trac/versioncontrol/admin.py:127
+#: trac/versioncontrol/admin.py:128
 #, python-format
 msgid "%(rev)s resynced on %(reponame)s."
 msgstr "%(rev)s宸查噸鏂板悓姝ヨ嚦%(reponame)s銆"
@@ -3789,183 +3893,191 @@
 msgid "Resyncing repository history for %(reponame)s... "
 msgstr "閲嶆柊涓%(reponame)s鍚屾鐗堟湰搴撳巻鍙..."
 
-#: trac/versioncontrol/admin.py:140
+#: trac/versioncontrol/admin.py:142
 #, python-format
 msgid "%(num)s revision cached."
 msgid_plural "%(num)s revisions cached."
 msgstr[0] "%(num)s涓慨璁㈠凡缂撳瓨銆"
 msgstr[1] "%(num)s涓慨璁㈠凡缂撳瓨銆"
 
-#: trac/versioncontrol/admin.py:142
+#: trac/versioncontrol/admin.py:144
 msgid "Done."
 msgstr "瀹屾垚銆"
 
-#: trac/versioncontrol/admin.py:164
+#: trac/versioncontrol/admin.py:166
 msgid "Version Control"
 msgstr "鐗堟湰鎺у埗"
 
-#: trac/versioncontrol/admin.py:165
+#: trac/versioncontrol/admin.py:167
 #: trac/versioncontrol/templates/admin_repositories.html:10
 msgid "Repositories"
 msgstr "鐗堟湰搴"
 
-#: trac/versioncontrol/admin.py:180
+#: trac/versioncontrol/admin.py:203 trac/versioncontrol/admin.py:242
 #, python-format
-msgid "Repository %(name)s does not exist."
-msgstr "鐗堟湰搴 '%(name)s' 涓嶅瓨鍦."
+msgid "You should now run %(resync)s to synchronize Trac with the repository."
+msgstr "鎮ㄧ幇鍦ㄥ簲璇ヨ繍琛 %(resync)s 浠ュ悓姝rac鍜岀増鏈簱銆"
 
-#: trac/versioncontrol/admin.py:199 trac/versioncontrol/admin.py:235
+#: trac/versioncontrol/admin.py:208
 #, python-format
-msgid ""
-"You should now run \"trac-admin $ENV repository resync %(name)s\" to "
-"synchronize Trac with the repository."
-msgstr ""
-"浣犵幇鍦ㄥ簲鎵ц \"trac-admin $ENV repository resync %(name)s\" \"\n"
-"\"鏉ュ皢Trac涓庣増鏈簱鍚屾銆"
+msgid "You may have to run %(resync)s to synchronize Trac with the repository."
+msgstr "鎮ㄥ彲鑳介渶瑕佽繍琛 %(resync)s 浠ュ悓姝rac鍜岀増鏈簱銆"
 
-#: trac/versioncontrol/admin.py:204
+#: trac/versioncontrol/admin.py:216
 #, python-format
 msgid ""
-"You may have to run \"trac-admin $ENV repository resync %(name)s\" to "
-"synchronize Trac with the repository."
-msgstr ""
-"浣犲繀椤绘墽琛 \"trac-admin $ENV repository resync %(name)s\" \"\n"
-"\"鏉ュ皢Trac涓庣増鏈簱鍚屾銆"
+"You will need to update your post-commit hook to call %(cset_added)s with"
+" the new repository name."
+msgstr "鎮ㄩ渶瑕佹洿鏂版偍鐨 post-commit 閽╁瓙锛屼互浣跨敤鏂扮殑鐗堟湰搴撳悕璋冪敤 %(cset_added)銆"
 
-#: trac/versioncontrol/admin.py:209
-msgid ""
-"You will need to update your post-commit hook to call \"trac-admin $ENV "
-"changeset added\" with the new repository name."
-msgstr ""
-"浣犻渶瑕佹洿鏂颁綘鐨刾ost-commit鑴氭湰锛岀敤鏂扮殑鐗堟湰搴撳悕璋冪敤\"\n"
-"\" \"trac-admin $ENV changeset added\"銆"
-
-#: trac/versioncontrol/admin.py:230
+#: trac/versioncontrol/admin.py:238
 #, python-format
 msgid "The repository \"%(name)s\" has been added."
 msgstr "鐗堟湰搴 \"%(name)s\" 宸叉坊鍔犮"
 
-#: trac/versioncontrol/admin.py:237
+#: trac/versioncontrol/admin.py:248
 #, python-format
 msgid ""
 "You should also set up a post-commit hook on the repository to call "
-"\"trac-admin $ENV changeset added %(name)s $REV\" for each committed "
-"changeset."
-msgstr ""
-"浣犱篃搴斿綋鍦ㄧ増鏈簱涓垱寤轰竴涓猵ost-commit鑴氭湰锛屽宸叉彁浜ょ殑姣忎竴涓猏"\n"
-"\"鍙樻洿闆嗚皟鐢 \"trac-admin $ENV changeset added %(name)s $REV\"銆"
+"%(cset_added)s for each committed changeset."
+msgstr "鎮ㄨ繕搴旇鍦ㄧ増鏈簱涓婅缃竴涓 post-commit 閽╁瓙锛屽姣忎竴鎻愪氦鐨勫彉鏇撮泦璋冪敤 %(cset_added)s銆"
 
-#: trac/versioncontrol/admin.py:243
+#: trac/versioncontrol/admin.py:254
 msgid "Missing arguments to add a repository."
 msgstr "澧炲姞鐗堟湰搴撶己灏戝弬鏁般"
 
-#: trac/versioncontrol/admin.py:252
+#: trac/versioncontrol/admin.py:263
 #, python-format
 msgid "The alias \"%(name)s\" has been added."
 msgstr "鍒悕 \"%(name)s\" 宸叉坊鍔犮"
 
-#: trac/versioncontrol/admin.py:255
+#: trac/versioncontrol/admin.py:266
 msgid "Missing arguments to add an alias."
 msgstr "澧炲姞鍒悕缂哄皯鍙傛暟銆"
 
-#: trac/versioncontrol/admin.py:268
+#: trac/versioncontrol/admin.py:279
 msgid "The selected repositories have been removed."
 msgstr "閫夊畾鐗堟湰搴撳凡鍒犻櫎銆"
 
-#: trac/versioncontrol/admin.py:271
+#: trac/versioncontrol/admin.py:282
 msgid "No repositories were selected."
 msgstr "娌℃湁閫夋嫨鐗堟湰搴撱"
 
-#: trac/versioncontrol/api.py:189
+#: trac/versioncontrol/api.py:32
+#: trac/versioncontrol/templates/admin_repositories.html:20
+#: trac/versioncontrol/templates/admin_repositories.html:134
+#: trac/versioncontrol/web_ui/browser.py:819
+#: trac/versioncontrol/web_ui/changeset.py:864
+#: trac/versioncontrol/web_ui/changeset.py:1006
+msgid "(default)"
+msgstr "(榛樿)"
+
+#: trac/versioncontrol/api.py:183
 #, python-format
 msgid "Invalid key \"%(key)s\""
 msgstr "闈炴硶鍏抽敭瀛: \"%(key)s\""
 
-#: trac/versioncontrol/api.py:194
+#: trac/versioncontrol/api.py:188
 #, python-format
 msgid "You should now run \"repository resync %(name)s\"."
 msgstr "浣犲簲璇ユ墽琛 \"repository resync %(name)s\"銆"
 
-#: trac/versioncontrol/api.py:197
+#: trac/versioncontrol/api.py:191
 #, python-format
 msgid "You may have to run \"repository resync %(name)s\"."
 msgstr "浣犲繀椤绘墽琛 \"repository resync %(name)s\"銆"
 
-#: trac/versioncontrol/api.py:208
+#: trac/versioncontrol/api.py:202
 #, python-format
 msgid "The repository type '%(type)s' is not supported"
 msgstr "鐗堟湰搴撶被鍨 '%(type)s' 涓嶈鏀寔"
 
-#: trac/versioncontrol/api.py:337
+#: trac/versioncontrol/api.py:331
 #, python-format
 msgid ""
 "Can't synchronize with repository \"%(name)s\" (%(error)s). Look in the "
 "Trac log for more information."
 msgstr "鏃犳硶涓庣増鏈簱\"%(name)s\"鍚屾 (%(error)s)銆傛洿澶氫俊鎭鏌ョ湅Trac鏃ュ織銆"
 
-#: trac/versioncontrol/api.py:356
+#: trac/versioncontrol/api.py:350
 #, python-format
 msgid "Changeset %(rev)s in %(repo)s"
 msgstr "鍦%(repo)s涓病鏈夊彉鏇撮泦 %(rev)s"
 
-#: trac/versioncontrol/api.py:358
+#: trac/versioncontrol/api.py:352
 #, python-format
 msgid "Changeset %(rev)s"
 msgstr "鍙樻洿闆 %(rev)s"
 
-#: trac/versioncontrol/api.py:366
+#: trac/versioncontrol/api.py:360
 msgid "directory"
 msgstr "鐩綍"
 
-#: trac/versioncontrol/api.py:368
+#: trac/versioncontrol/api.py:362
 msgid "file"
 msgstr "鏂囦欢"
 
-#: trac/versioncontrol/api.py:370
+#: trac/versioncontrol/api.py:364
 #, python-format
-msgid "at version %(rev)s"
-msgstr "浜庝慨璁 %(rev)s"
+msgid " at version %(rev)s"
+msgstr "浜庣増鏈 %(rev)s"
 
-#: trac/versioncontrol/api.py:372
+#: trac/versioncontrol/api.py:366
 msgid "path"
 msgstr "璺緞"
 
-#: trac/versioncontrol/api.py:375
+#: trac/versioncontrol/api.py:369
 #, python-format
 msgid " in %(repo)s"
 msgstr "浜 %(repo)s"
 
-#: trac/versioncontrol/api.py:378
+#. TRANSLATOR: file /trunk/setup.py at version 13 in trac
+#: trac/versioncontrol/api.py:371
 #, python-format
+msgid "%(kind)s %(id)%(at_version)s%(in_repo)s"
+msgstr "%(kind)s %(id)%(at_version)s%(in_repo)s"
+
+#: trac/versioncontrol/api.py:374
+#, python-format
 msgid "Repository %(repo)s"
 msgstr "鐗堟湰搴 %(repo)s"
 
-#: trac/versioncontrol/api.py:659
+#: trac/versioncontrol/api.py:655
 #, python-format
 msgid "Unsupported version control system \"%(name)s\": %(error)s"
 msgstr "涓嶆敮鎸佺殑鐗堟湰鎺у埗绯荤粺 \"%(name)s\": %(error)s"
 
-#: trac/versioncontrol/api.py:662
+#: trac/versioncontrol/api.py:658
 #, python-format
 msgid ""
 "Unsupported version control system \"%(name)s\": Can't find an "
 "appropriate component, maybe the corresponding plugin was not enabled? "
 msgstr "涓嶆敮鎸佺殑鐗堟湰鎺у埗绯荤粺\"%(name)s\"锛氭湭鑳芥壘鍒板悎閫傜殑缁勪欢锛屼篃璁哥浉鍏虫彃浠舵病鏈夎婵娲伙紵"
 
-#: trac/versioncontrol/api.py:670
+#: trac/versioncontrol/api.py:666
 #, python-format
 msgid "No changeset %(rev)s in the repository"
 msgstr "鍦ㄧ増鏈簱涓病鏈夊彉鏇撮泦 %(rev)s"
 
-#: trac/versioncontrol/api.py:672
+#: trac/versioncontrol/api.py:668
 msgid "No such changeset"
 msgstr "娌℃湁杩欎釜鍙樻洿闆"
 
+#: trac/versioncontrol/api.py:674
+#, python-format
+msgid "No node %(path)s at revision %(rev)s"
+msgstr "鍦ㄤ慨璁㈢増 %(rev)s 娌℃湁鑺傜偣 %(path)s"
+
+#: trac/versioncontrol/api.py:676
+#, python-format
+msgid "%(msg)s: No node %(path)s at revision %(rev)s"
+msgstr "%(msg)s: 鍦ㄤ慨璁㈢増 %(rev)s 娌℃湁鑺傜偣 %(path)s"
+
 #: trac/versioncontrol/api.py:678
 msgid "No such node"
 msgstr "娌℃湁杩欎釜鑺傜偣"
 
-#: trac/versioncontrol/cache.py:143
+#: trac/versioncontrol/cache.py:149
 msgid ""
 "The 'repository_dir' has changed, a 'trac-admin $ENV repository resync' "
 "operation is needed."
@@ -4096,45 +4208,47 @@
 #: trac/versioncontrol/templates/admin_repositories.html:45
 msgid ""
 "[1:Note:]\n"
-"            This repository is defined in [2:[3:trac.ini]] and cannot be "
-"edited on this page."
+"            This repository is defined in [2:[3:trac.ini]]\n"
+"            and cannot be edited on this page."
 msgstr ""
-"[1:Note:]\n"
+"[1:娉ㄦ剰锛歖\n"
 "\"\n"
 "\"            璇ョ増鏈簱鍦╗2:[3:trac.ini]]涓畾涔夛紝鏃犳硶鍦ㄦ湰椤甸潰涓紪杈戙"
 
-#: trac/versioncontrol/templates/admin_repositories.html:58
-#: trac/versioncontrol/templates/admin_repositories.html:98
+#: trac/versioncontrol/templates/admin_repositories.html:59
+#: trac/versioncontrol/templates/admin_repositories.html:99
 msgid "Directory:"
 msgstr "鐩綍锛"
 
-#: trac/versioncontrol/templates/admin_repositories.html:66
+#: trac/versioncontrol/templates/admin_repositories.html:67
 msgid "Hide from repository index"
 msgstr "浠庣増鏈簱绱㈠紩涓殣钘"
 
-#: trac/versioncontrol/templates/admin_repositories.html:92
+#: trac/versioncontrol/templates/admin_repositories.html:93
 msgid "Add Repository:"
 msgstr "鏂板鐗堟湰搴擄細"
 
-#: trac/versioncontrol/templates/admin_repositories.html:109
+#: trac/versioncontrol/templates/admin_repositories.html:110
 msgid "Add Alias:"
 msgstr "鏂板鍒悕锛"
 
-#: trac/versioncontrol/templates/admin_repositories.html:124
+#: trac/versioncontrol/templates/admin_repositories.html:125
 msgid "Revision"
 msgstr "淇"
 
-#: trac/versioncontrol/templates/admin_repositories.html:136
-msgid "Alias of"
-msgstr "鍒悕灞炰簬"
+#: trac/versioncontrol/templates/admin_repositories.html:137
+#, python-format
+msgid "Alias of %(repo)s"
+msgstr "%(repo)s 鐨勫埆鍚"
 
-#: trac/versioncontrol/templates/admin_repositories.html:143
+#: trac/versioncontrol/templates/admin_repositories.html:144
 msgid "Refresh"
 msgstr "鍒锋柊"
 
 #: trac/versioncontrol/templates/browser.html:13
-msgid "in"
-msgstr "鍦"
+#, python-format
+msgid "%(basename)s in %(dirname)s"
+msgstr "%(dirname)s 涓殑 %(basename)s "
 
 #: trac/versioncontrol/templates/browser.html:54
 msgid "Default Repository"
@@ -4169,7 +4283,7 @@
 msgstr "娌℃湁鎵惧埌浠讳綍鏂囦欢"
 
 #: trac/versioncontrol/templates/browser.html:106
-#: trac/wiki/templates/wiki_edit.html:112 trac/wiki/templates/wiki_view.html:36
+#: trac/wiki/templates/wiki_edit.html:112 trac/wiki/templates/wiki_view.html:32
 msgid "Revision info"
 msgstr "淇淇℃伅"
 
@@ -4186,88 +4300,144 @@
 "            鐢%(author)s鍦%(date)s鍓嶇鍏n"
 "            ([3:diff])"
 
-#: trac/versioncontrol/templates/browser.html:152
+#: trac/versioncontrol/templates/browser.html:140
+#, python-format
+msgid "Property [1:%(name)s] set to %(value)s"
+msgstr "灞炴 [1:%(name)s] 宸茶缃负 %(value)s"
+
+#: trac/versioncontrol/templates/browser.html:154
 msgid "Repository Index"
 msgstr "鐗堟湰搴撶储寮"
 
-#: trac/versioncontrol/templates/browser.html:162
+#: trac/versioncontrol/templates/browser.html:164
 msgid ""
 "[1:Note:] See [2:TracBrowser]\n"
 "        for help on using the repository browser."
 msgstr "[1:娉ㄦ剰:] 浣跨敤鐗堟湰搴撴祻瑙堝櫒鐨勫府鍔╁弬瑙 [2:TracBrowser]銆"
 
-#: trac/versioncontrol/templates/browser.html:174
+#: trac/versioncontrol/templates/browser.html:176
 msgid "View changes..."
 msgstr "鏌ラ槄鍙樻洿..."
 
-#: trac/versioncontrol/templates/browser.html:174
+#: trac/versioncontrol/templates/browser.html:176
 msgid "Select paths and revs for Diff"
 msgstr "閫夋嫨杩涜瀵规瘮鐨勮矾寰勫拰淇"
 
-#: trac/versioncontrol/templates/changeset.html:25
+#: trac/versioncontrol/templates/changeset.html:36
+#: trac/versioncontrol/templates/changeset.html:46
+#: trac/versioncontrol/templates/changeset.html:48
+#: trac/versioncontrol/templates/changeset.html:58
+#: trac/versioncontrol/templates/changeset.html:68
+#: trac/versioncontrol/templates/changeset.html:70
+msgid "Show full changeset"
+msgstr "鏄剧ず瀹屾暣鍙樻洿闆"
+
+#: trac/versioncontrol/templates/changeset.html:37
+#: trac/versioncontrol/templates/changeset.html:40
+#: trac/versioncontrol/templates/changeset.html:45
+#: trac/versioncontrol/templates/changeset.html:47
+#: trac/versioncontrol/templates/changeset.html:59
+#: trac/versioncontrol/templates/changeset.html:62
+#: trac/versioncontrol/templates/changeset.html:67
+#: trac/versioncontrol/templates/changeset.html:69
+#: trac/versioncontrol/templates/changeset.html:105
+msgid "Show entry in browser"
+msgstr "鍦ㄦ簮鐮佹祻瑙堝櫒涓樉绀烘潯鐩"
+
+#: trac/versioncontrol/templates/changeset.html:35
 #, python-format
 msgid ""
 "Changeset [1:%(new_rev)s] in %(reponame)s\n"
-"          for [2:%(new_path)s]"
+"              for [2:%(new_path)s]"
 msgstr ""
-"淇敼闆 [1:%(new_rev)s] 鍦 %(reponame)s\n"
-"          鐩稿浜巉or [2:%(new_path)s]"
+"鍙樻洿闆 [1:%(new_rev)s] 浣嶄簬 %(reponame)s\n"
+"           涓殑 [2:%(new_path)s]"
 
-#: trac/versioncontrol/templates/changeset.html:30
+#: trac/versioncontrol/templates/changeset.html:41
+#: trac/versioncontrol/templates/changeset.html:63
+msgid "Show revision log"
+msgstr "鏌ョ湅淇鐗堟棩蹇"
+
+#: trac/versioncontrol/templates/changeset.html:39
 #, python-format
 msgid ""
 "Changes in [1:%(new_path)s]\n"
-"          [2:\n"
-"            \\[%(old_rev)s:%(new_rev)s\\]] in %(reponame)s"
+"              [2:\\[%(old_rev)s:%(new_rev)s\\]] in %(reponame)s"
 msgstr ""
-"淇敼 [1:%(new_path)s]\n"
-"          [2:\n"
-"            \\[%(old_rev)s:%(new_rev)s\\]] 鍦ㄤ粨搴 %(reponame)s"
+"%(reponame)s 涓 [1:%(new_path)s]\n"
+"              [2:\\[%(old_rev)s:%(new_rev)s\\]] 鐨勫彉鏇"
 
-#: trac/versioncontrol/templates/changeset.html:35
+#: trac/versioncontrol/templates/changeset.html:43
 #, python-format
 msgid ""
 "Changes in %(reponame)s\n"
-"          from [1:%(old_path)s]\n"
-"          at [2:r%(old_rev)s]\n"
-"          to [3:%(new_path)s]\n"
-"          at [4:r%(new_rev)s]"
+"              from [1:%(old_path)s]\n"
+"              at [2:r%(old_rev)s]\n"
+"              to [3:%(new_path)s]\n"
+"              at [4:r%(new_rev)s]"
 msgstr ""
-"%(reponame)s涓殑淇敼\n"
+"%(reponame)s涓璡n"
 "          浠嶽1:%(old_path)s]\n"
-"          鐗堟湰[2:r%(old_rev)s]\n"
+"          淇鐗圼2:r%(old_rev)s]\n"
 "          鍒癧3:%(new_path)s]\n"
-"          鐗堟湰[4:r%(new_rev)s]"
+"          淇鐗圼4:r%(new_rev)s]鐨勫彉鏇"
 
-#: trac/versioncontrol/templates/changeset.html:42
+#: trac/versioncontrol/templates/changeset.html:50
 #, python-format
+msgid "Changeset [1:%(new_rev)s] in %(reponame)s"
+msgstr "鍙樻洿闆 [1:%(new_rev)s] 浣嶄簬 %(reponame)s"
+
+#: trac/versioncontrol/templates/changeset.html:57
+#, python-format
 msgid ""
 "Changeset [1:%(new_rev)s]\n"
-"          in %(reponame)s"
+"              for [2:%(new_path)s]"
 msgstr ""
-"鍙樻洿闆 [1:%(new_rev)s]\n"
-"          浣嶄簬 %(reponame)s"
+"鍙樻洿闆 [1:%(new_rev)s] \n"
+"          闄愪簬 [2:%(new_path)s]"
 
-#: trac/versioncontrol/templates/changeset.html:46
+#: trac/versioncontrol/templates/changeset.html:61
 #, python-format
+msgid ""
+"Changes in [1:%(new_path)s]\n"
+"              [2:\\[%(old_rev)s:%(new_rev)s\\]]"
+msgstr "[1:%(new_path)s] [2:\\[%(old_rev)s:%(new_rev)s\\]] 涓殑鍙樻洿"
+
+#: trac/versioncontrol/templates/changeset.html:65
+#, python-format
+msgid ""
+"Changes\n"
+"              from [1:%(old_path)s]\n"
+"              at [2:r%(old_rev)s]\n"
+"              to [3:%(new_path)s]\n"
+"              at [4:r%(new_rev)s]"
+msgstr ""
+"          浠嶽1:%(old_path)s]\n"
+"          淇鐗圼2:r%(old_rev)s]\n"
+"          鍒癧3:%(new_path)s]\n"
+"          淇鐗圼4:r%(new_rev)s]鐨勫彉鏇"
+
+#: trac/versioncontrol/templates/changeset.html:72
+#, python-format
 msgid "Changeset [1:%(new_rev)s]"
 msgstr "鍙樻洿闆 [1:%(new_rev)s]"
 
-#: trac/versioncontrol/templates/changeset.html:73
+#: trac/versioncontrol/templates/changeset.html:101
 #, python-format
 msgid "Show what was removed (content at revision %(old_rev)s)"
 msgstr "鏄剧ず宸插垹闄ょ殑鍐呭(鍐呭鐗堟湰%(old_rev)s)"
 
-#: trac/versioncontrol/templates/changeset.html:77
-msgid "Show entry in browser"
-msgstr "鍦ㄦ簮鐮佹祻瑙堝櫒涓樉绀烘潯鐩"
-
-#: trac/versioncontrol/templates/changeset.html:78
+#: trac/versioncontrol/templates/changeset.html:106
 msgid "(root)"
 msgstr "(鏍)"
 
-#: trac/versioncontrol/templates/changeset.html:83
+#: trac/versioncontrol/templates/changeset.html:112
 #, python-format
+msgid "Show original file (revision %(old_rev)s)"
+msgstr "鏄剧ず鍘熷鏂囦欢 (淇鐗 %(old_rev)s)"
+
+#: trac/versioncontrol/templates/changeset.html:111
+#, python-format
 msgid ""
 "(%(kind)s from [1:\n"
 "                %(old_path)s])"
@@ -4275,98 +4445,110 @@
 "(%(kind)s 鏉ヨ嚜 [1:\n"
 "                %(old_path)s])"
 
-#: trac/versioncontrol/templates/changeset.html:91
-#: trac/versioncontrol/templates/changeset.html:94
+#: trac/versioncontrol/templates/changeset.html:119
+#: trac/versioncontrol/templates/changeset.html:122
 msgid "Show differences"
 msgstr "鏄剧ず宸紓"
 
-#: trac/versioncontrol/templates/changeset.html:91
+#: trac/versioncontrol/templates/changeset.html:119
 msgid "view diffs"
 msgstr "鏌ョ湅宸紓"
 
-#: trac/versioncontrol/templates/changeset.html:94
+#: trac/versioncontrol/templates/changeset.html:122
 #, python-format
 msgid "%(num)d diff"
 msgid_plural "%(num)d diffs"
 msgstr[0] "%(num)d涓樊寮"
 msgstr[1] "%(num)d涓樊寮"
 
-#: trac/versioncontrol/templates/changeset.html:97
+#: trac/versioncontrol/templates/changeset.html:125
 #, python-format
 msgid "%(num)d prop"
 msgid_plural "%(num)d props"
 msgstr[0] "%(num)d涓睘鎬"
 msgstr[1] "%(num)d涓睘鎬"
 
-#: trac/versioncontrol/templates/changeset.html:101
+#: trac/versioncontrol/templates/changeset.html:129
 msgid "Show previous version in browser"
 msgstr "鍦ㄦ祻瑙堝櫒涓樉绀轰笂涓涓増鏈"
 
-#: trac/versioncontrol/templates/changeset.html:111
+#: trac/versioncontrol/templates/changeset.html:139
 msgid "(less than one hour ago)"
 msgstr "(涓灏忔椂浠ュ唴)"
 
-#: trac/versioncontrol/templates/changeset.html:112
+#: trac/versioncontrol/templates/changeset.html:140
 #, python-format
 msgid "(%(age)s ago)"
 msgstr "(%(age)s 浠ュ墠)"
 
-#: trac/versioncontrol/templates/changeset.html:126
+#: trac/versioncontrol/templates/changeset.html:154
 msgid "Message:"
 msgstr "娑堟伅:"
 
-#: trac/versioncontrol/templates/changeset.html:138
+#: trac/versioncontrol/templates/changeset.html:166
 msgid "Location:"
 msgstr "浣嶇疆:"
 
-#: trac/versioncontrol/templates/changeset.html:142
+#: trac/versioncontrol/templates/changeset.html:170
 msgid "(No files)"
 msgstr "(娌℃湁鏂囦欢)"
 
-#: trac/versioncontrol/templates/changeset.html:147
+#: trac/versioncontrol/templates/changeset.html:175
 #, python-format
 msgid "%(num)d added"
 msgid_plural "%(num)d added"
-msgstr[0] "%(num)d 宸叉坊鍔"
-msgstr[1] "%(num)d 宸叉坊鍔"
+msgstr[0] "澧炲姞浜%(num)d涓"
+msgstr[1] "澧炲姞浜%(num)d涓"
 
-#: trac/versioncontrol/templates/changeset.html:148
+#: trac/versioncontrol/templates/changeset.html:176
 #, python-format
 msgid "%(num)d deleted"
 msgid_plural "%(num)d deleted"
-msgstr[0] "%(num)d 宸插垹闄"
-msgstr[1] "%(num)d 宸插垹闄"
+msgstr[0] "鍒犻櫎浜%(num)d涓"
+msgstr[1] "鍒犻櫎浜%(num)d涓"
 
-#: trac/versioncontrol/templates/changeset.html:149
+#: trac/versioncontrol/templates/changeset.html:177
 #, python-format
 msgid "%(num)d edited"
 msgid_plural "%(num)d edited"
-msgstr[0] "%(num)d 宸茬紪杈"
-msgstr[1] "%(num)d 宸茬紪杈"
+msgstr[0] "淇敼浜%(num)d涓"
+msgstr[1] "淇敼浜%(num)d涓"
 
-#: trac/versioncontrol/templates/changeset.html:150
+#: trac/versioncontrol/templates/changeset.html:178
 #, python-format
 msgid "%(num)d copied"
 msgid_plural "%(num)d copied"
-msgstr[0] "%(num)d 宸插鍒"
-msgstr[1] "%(num)d 宸插鍒"
+msgstr[0] "澶嶅埗浜%(num)d涓"
+msgstr[1] "澶嶅埗浜%(num)d涓"
 
-#: trac/versioncontrol/templates/changeset.html:151
+#: trac/versioncontrol/templates/changeset.html:179
 #, python-format
 msgid "%(num)d moved"
 msgid_plural "%(num)d moved"
-msgstr[0] "%(num)d 宸茬Щ鍔"
-msgstr[1] "%(num)d 宸茬Щ鍔"
+msgstr[0] "绉诲姩浜%(num)d涓"
+msgstr[1] "绉诲姩浜%(num)d涓"
 
-#: trac/versioncontrol/templates/changeset.html:159
+#: trac/versioncontrol/templates/changeset.html:185
+#: trac/versioncontrol/templates/revisionlog.txt:12
+msgid "added"
+msgstr "宸插鍔"
+
+#: trac/versioncontrol/templates/changeset.html:186
+#: trac/versioncontrol/templates/revisionlog.txt:12
+msgid "deleted"
+msgstr "宸插垹闄"
+
+#: trac/versioncontrol/templates/changeset.html:187
+#: trac/versioncontrol/templates/revisionlog.txt:12
 msgid "copied"
 msgstr "宸插鍒"
 
-#: trac/versioncontrol/templates/changeset.html:160
+#: trac/versioncontrol/templates/changeset.html:188
+#: trac/versioncontrol/templates/revisionlog.txt:12
 msgid "moved"
 msgstr "宸茬Щ鍔"
 
-#: trac/versioncontrol/templates/changeset.html:183
+#: trac/versioncontrol/templates/changeset.html:211
 msgid ""
 "[1:Note:] See [2:TracChangeset]\n"
 "          for help on using the changeset viewer."
@@ -4413,10 +4595,13 @@
 msgstr "[1:娉ㄦ剰:] 瀵规瘮鍔熻兘鐨勪娇鐢ㄥ府鍔╁弬瑙乕2:TracChangeset]"
 
 #: trac/versioncontrol/templates/dir_entries.html:11
-#, python-format
-msgid "View %(path_kind)s"
-msgstr "鏌ョ湅 %(path_kind)s"
+msgid "View Directory"
+msgstr "鏌ョ湅鐩綍"
 
+#: trac/versioncontrol/templates/dir_entries.html:11
+msgid "View File"
+msgstr "鏌ョ湅鏂囦欢"
+
 #: trac/versioncontrol/templates/dir_entries.html:19
 #: trac/versioncontrol/templates/repository_index.html:23
 msgid "View Revision Log"
@@ -4428,13 +4613,13 @@
 msgstr "鏌ラ槄鍙樻洿"
 
 #: trac/versioncontrol/templates/dirlist_thead.html:9
-#: trac/versioncontrol/templates/revisionlog.html:94
-#: trac/versioncontrol/web_ui/browser.py:753
+#: trac/versioncontrol/templates/revisionlog.html:96
+#: trac/versioncontrol/web_ui/browser.py:763
 msgid "Rev"
 msgstr "Rev"
 
 #: trac/versioncontrol/templates/dirlist_thead.html:12
-#: trac/versioncontrol/web_ui/browser.py:441
+#: trac/versioncontrol/web_ui/browser.py:447
 msgid "Last Change"
 msgstr "鏈鏂板彉鏇"
 
@@ -4470,7 +4655,7 @@
 
 #: trac/versioncontrol/templates/revisionlog.html:27
 msgid "Stop on copy"
-msgstr "鍙樉绀哄埌澶嶅埗鏃剁殑淇"
+msgstr "鍦ㄩ亣鍒板鍒舵椂鍋滄"
 
 #: trac/versioncontrol/templates/revisionlog.html:33
 msgid "Follow copies"
@@ -4481,186 +4666,189 @@
 msgstr "鍙樉绀哄鍔犲拰鍒犻櫎"
 
 #: trac/versioncontrol/templates/revisionlog.html:44
-msgid "View log starting at"
-msgstr "鏌ョ湅鏃ュ織锛岃捣濮嬩慨璁:"
+msgid ""
+"[1:\n"
+"              View log starting at\n"
+"              [2:]\n"
+"            ]\n"
+"            [3:\n"
+"              and back to\n"
+"              [4:]\n"
+"            ]"
+msgstr ""
+"[1:\n"
+"              鏌ョ湅鐢盶n"
+"              [2:]\n"
+"            ]\n"
+"            [3:\n"
+"              璧峰洖婧埌\n"
+"              [4:]\n"
+"            ]鐨勬棩蹇"
 
-#: trac/versioncontrol/templates/revisionlog.html:48
-msgid "and back to"
-msgstr "缁撴潫淇:"
+#: trac/versioncontrol/templates/revisionlog.html:54
+msgid ""
+"[1:\n"
+"              Show at most\n"
+"              [2:]\n"
+"              revisions per page.\n"
+"            ]"
+msgstr ""
+"[1:\n"
+"              姣忛〉鏈澶氭樉绀篭n"
+"              [2:]\n"
+"              涓慨璁㈢増銆俓n"
+"            ]"
 
-#: trac/versioncontrol/templates/revisionlog.html:53
-msgid "Show at most"
-msgstr "鏈澶氭樉绀"
-
-#: trac/versioncontrol/templates/revisionlog.html:55
-msgid "revisions per page."
-msgstr "淇/椤."
-
-#: trac/versioncontrol/templates/revisionlog.html:60
+#: trac/versioncontrol/templates/revisionlog.html:62
 msgid "Show full log messages"
 msgstr "鏄剧ず瀹屾暣鏃ュ織淇℃伅"
 
-#: trac/versioncontrol/templates/revisionlog.html:78
+#: trac/versioncontrol/templates/revisionlog.html:80
 msgid "Copied or renamed"
-msgstr "澶嶅埗鎴栨洿鍚"
+msgstr "澶嶅埗鎴栨敼鍚"
 
-#: trac/versioncontrol/templates/revisionlog.html:86
-#: trac/versioncontrol/templates/revisionlog.html:180
+#: trac/versioncontrol/templates/revisionlog.html:88
+#: trac/versioncontrol/templates/revisionlog.html:182
 msgid "Diff from Old Revision to New Revision (as selected in the Diff column)"
 msgstr "鏄剧ず鏃т慨璁㈢増鍒版柊淇鐗堢殑宸紓(鏍规嵁Diff鏍忕殑閫夋嫨)"
 
-#: trac/versioncontrol/templates/revisionlog.html:92
+#: trac/versioncontrol/templates/revisionlog.html:94
 msgid "Old / New"
 msgstr "鏃/鏂"
 
-#: trac/versioncontrol/templates/revisionlog.html:92
+#: trac/versioncontrol/templates/revisionlog.html:94
 msgid "Diff"
 msgstr "宸紓"
 
-#: trac/versioncontrol/templates/revisionlog.html:95
+#: trac/versioncontrol/templates/revisionlog.html:97
 msgid "Age"
 msgstr "骞撮緞"
 
-#: trac/versioncontrol/templates/revisionlog.html:97
+#: trac/versioncontrol/templates/revisionlog.html:99
 msgid "Log Message"
 msgstr "鏃ュ織娑堟伅"
 
-#: trac/versioncontrol/templates/revisionlog.html:104
+#: trac/versioncontrol/templates/revisionlog.html:106
 msgid "No revisions found"
 msgstr "娌℃湁鎵惧埌浠讳綍淇"
 
-#: trac/versioncontrol/templates/revisionlog.html:117
-msgid "copied from"
-msgstr "澶嶅埗浜"
+#: trac/versioncontrol/templates/revisionlog.html:120
+#, python-format
+msgid "copied from [1:%(path)s]:"
+msgstr "浠嶽1:%(path)s]澶嶅埗:"
 
-#: trac/versioncontrol/templates/revisionlog.html:124
+#: trac/versioncontrol/templates/revisionlog.html:126
 #, python-format
-msgid "From r%(rev)s"
-msgstr "浠 %(rev)s"
+msgid "From [%(rev)s]"
+msgstr "浠 [%(rev)s]"
 
-#: trac/versioncontrol/templates/revisionlog.html:127
+#: trac/versioncontrol/templates/revisionlog.html:129
 #, python-format
-msgid "To r%(rev)s"
-msgstr "鍒 %(rev)s"
+msgid "To [%(rev)s]"
+msgstr "鍒 [%(rev)s]"
 
-#: trac/versioncontrol/templates/revisionlog.html:133
+#: trac/versioncontrol/templates/revisionlog.html:135
 msgid "View log starting at this revision"
 msgstr "鏌ョ湅姝や慨璁箣鍚庣殑鏃ュ織"
 
-#: trac/versioncontrol/templates/revisionlog.html:140
+#: trac/versioncontrol/templates/revisionlog.html:142
 #, python-format
 msgid "Browse at revision %(rev)s"
 msgstr "娴忚鐗堟湰 %(rev)s"
 
-#: trac/versioncontrol/templates/revisionlog.html:144
+#: trac/versioncontrol/templates/revisionlog.html:146
 #, python-format
 msgid "View removal changeset [%(rev)s]"
 msgstr "鏌ョ湅鍒犻櫎鍙樻洿闆 [%(rev)s]"
 
-#: trac/versioncontrol/templates/revisionlog.html:146
+#: trac/versioncontrol/templates/revisionlog.html:148
 #, python-format
 msgid "View changeset [%(rev)s] restricted to %(path)s"
 msgstr "浠呮樉绀鸿矾寰 %(path)s鐨勫彉鏇撮泦[%(rev)s]"
 
-#: trac/versioncontrol/templates/revisionlog.html:185
+#: trac/versioncontrol/templates/revisionlog.html:187
 msgid ""
 "[1:Note:] See [2:TracRevisionLog]\n"
 "        for help on using the revision log."
 msgstr "[1:娉ㄦ剰:] 浣跨敤鐗堟湰鏃ュ織鐨勫府鍔╁弬瑙乕2:TracRevisionLog]銆"
 
-#: trac/versioncontrol/templates/revisionlog.txt:1
-msgid ""
-"#\n"
-"# ChangeLog for"
-msgstr ""
-"#\n"
-"# 鍙樻洿鏃ュ織: "
-
 #: trac/versioncontrol/templates/revisionlog.txt:2
-msgid " in $(reponame)s"
-msgstr " 鍦$(reponame)s"
+#, python-format
+msgid "ChangeLog for %(path)s%(in_repo)s"
+msgstr "%(path)s%(in_repo)s 鐨勫彉鏇存棩蹇"
 
-#: trac/versioncontrol/templates/revisionlog.txt:2
-msgid ""
-"# \n"
-"# Generated by Trac"
-msgstr ""
-"# \n"
-"# 鐢盩rac鐢熸垚"
+#: trac/versioncontrol/templates/revisionlog.txt:4
+#, python-format
+msgid "Generated by Trac %(version)s"
+msgstr "鐢盩rac %(version)s 鐢熸垚"
 
 #: trac/versioncontrol/web_ui/browser.py:298
 msgid "Browse Source"
 msgstr "婧愮爜娴忚"
 
-#: trac/versioncontrol/web_ui/browser.py:347
-#: trac/versioncontrol/web_ui/log.py:87
-#, python-format
-msgid "No repository '%(repo)s' found"
-msgstr "鎵句笉鍒扮増鏈簱 '%(repo)s'"
-
-#: trac/versioncontrol/web_ui/browser.py:369
+#: trac/versioncontrol/web_ui/browser.py:372
 msgid "Invalid changeset number"
 msgstr "鏃犳晥鍙樻洿闆嗙増鏈彿"
 
-#: trac/versioncontrol/web_ui/browser.py:424
-#: trac/versioncontrol/web_ui/browser.py:434
+#: trac/versioncontrol/web_ui/browser.py:430
+#: trac/versioncontrol/web_ui/browser.py:440
 #, python-format
 msgid "Revision %(num)s"
 msgstr "淇 %(num)s"
 
-#: trac/versioncontrol/web_ui/browser.py:435
+#: trac/versioncontrol/web_ui/browser.py:441
 msgid "Previous Revision"
 msgstr "涓婁竴淇"
 
-#: trac/versioncontrol/web_ui/browser.py:435
+#: trac/versioncontrol/web_ui/browser.py:441
 msgid "Next Revision"
 msgstr "涓嬩竴淇"
 
-#: trac/versioncontrol/web_ui/browser.py:436
+#: trac/versioncontrol/web_ui/browser.py:442
 msgid "Latest Revision"
 msgstr "鏈鏂颁慨璁"
 
-#: trac/versioncontrol/web_ui/browser.py:440
-#: trac/versioncontrol/web_ui/log.py:299
+#: trac/versioncontrol/web_ui/browser.py:446
+#: trac/versioncontrol/web_ui/log.py:300
 msgid "Parent directory"
 msgstr "鐖剁洰褰"
 
-#: trac/versioncontrol/web_ui/browser.py:446
+#: trac/versioncontrol/web_ui/browser.py:452
 msgid "Normal"
 msgstr "姝ｅ父"
 
-#: trac/versioncontrol/web_ui/browser.py:447
+#: trac/versioncontrol/web_ui/browser.py:453
 msgid "View file without annotations"
 msgstr "鏌ョ湅鏂囦欢(涓嶅寘鍚敞瑙)"
 
-#: trac/versioncontrol/web_ui/browser.py:452
+#: trac/versioncontrol/web_ui/browser.py:458
 msgid "Annotate"
 msgstr "娉ㄨВ"
 
-#: trac/versioncontrol/web_ui/browser.py:453
+#: trac/versioncontrol/web_ui/browser.py:459
 msgid ""
 "Annotate each line with the last changed revision (this can be time "
 "consuming...)"
 msgstr "缁欐渶鏂颁慨璁㈡瘡琛岄兘鍔犳敞瑙 (杩欏彲鑳芥槸鑰楁椂鎿嶄綔...)"
 
-#: trac/versioncontrol/web_ui/browser.py:460
+#: trac/versioncontrol/web_ui/browser.py:466
 msgid "Revision Log"
 msgstr "淇鏃ュ織"
 
-#: trac/versioncontrol/web_ui/browser.py:466
+#: trac/versioncontrol/web_ui/browser.py:472
 msgid "Repository URL"
 msgstr "鐗堟湰搴揢RL"
 
-#: trac/versioncontrol/web_ui/browser.py:580
+#: trac/versioncontrol/web_ui/browser.py:586
 #: trac/versioncontrol/web_ui/changeset.py:362
 msgid "Zip Archive"
 msgstr "Zip褰掓。"
 
-#: trac/versioncontrol/web_ui/browser.py:753
+#: trac/versioncontrol/web_ui/browser.py:763
 msgid "Revision in which the line changed"
 msgstr "璇ヨ鍙戠敓鍙樻洿鐨勪慨璁"
 
-#: trac/versioncontrol/web_ui/browser.py:811
+#: trac/versioncontrol/web_ui/browser.py:821
 #, python-format
 msgid "View repository %(repo)s"
 msgstr "鏌ョ湅鐗堟湰搴 %(repo)s"
@@ -4670,11 +4858,6 @@
 msgid "Can't compare across different repositories: %(old)s vs. %(new)s"
 msgstr "鏃犳硶浠庝笉鍚岀殑鐗堟湰搴撹繘琛屾瘮杈冿細%(old)s <-> %(new)s"
 
-#: trac/versioncontrol/web_ui/changeset.py:247
-#, python-format
-msgid "No repository found for '%(reponame)s'"
-msgstr "娌℃湁鎵惧埌 '%(reponame)s' 鐨勭増鏈簱"
-
 #: trac/versioncontrol/web_ui/changeset.py:249
 msgid "No repository specified and no default repository configured."
 msgstr "娌℃湁鎸囧畾鐗堟湰搴擄紝涔熸病鏈夐厤缃己鐪佺増鏈簱銆"
@@ -4699,288 +4882,310 @@
 msgid "Reverse Diff"
 msgstr "鍙嶅悜瀵规瘮"
 
-#: trac/versioncontrol/web_ui/changeset.py:410
+#: trac/versioncontrol/web_ui/changeset.py:413
 #, python-format
 msgid "Changeset %(id)s for %(path)s"
 msgstr "鍙樻洿闆 %(id)s 涓 %(path)s"
 
-#: trac/versioncontrol/web_ui/changeset.py:413
-#: trac/versioncontrol/web_ui/changeset.py:439
-#: trac/versioncontrol/web_ui/changeset.py:460
+#: trac/versioncontrol/web_ui/changeset.py:416
+#: trac/versioncontrol/web_ui/changeset.py:442
+#: trac/versioncontrol/web_ui/changeset.py:464
 #, python-format
 msgid "Changeset %(id)s"
 msgstr "鍙樻洿闆 %(id)s"
 
-#: trac/versioncontrol/web_ui/changeset.py:486
+#: trac/versioncontrol/web_ui/changeset.py:491
 #, python-format
 msgid "Show revision %(rev)s of this file in browser"
 msgstr "鍦ㄦ祻瑙堝櫒涓樉绀烘枃浠剁殑淇 %(rev)s"
 
-#: trac/versioncontrol/web_ui/changeset.py:632
+#: trac/versioncontrol/web_ui/changeset.py:637
 #, python-format
 msgid "Show the changeset %(id)s restricted to %(path)s"
 msgstr "鏄剧ず鍙樻洿闆 %(id)s , 浠呭寘鍚矾寰 %(path)s"
 
-#: trac/versioncontrol/web_ui/changeset.py:643
+#: trac/versioncontrol/web_ui/changeset.py:649
 #, python-format
 msgid "Show the %(range)s differences restricted to %(path)s"
 msgstr "鏄剧ず宸紓鑼冨洿 %(range)s , 浠呭寘鍚矾寰 %(path)s"
 
-#: trac/versioncontrol/web_ui/changeset.py:859
+#. TRANSLATOR: 'latest' (revision)
+#: trac/versioncontrol/web_ui/changeset.py:789
+msgid "latest"
+msgstr "鏈鏂"
+
+#: trac/versioncontrol/web_ui/changeset.py:792
+#, python-format
+msgid "Diff [%(old_rev)s:%(new_rev)s] for %(path)s"
+msgstr "%(path)s 鐗堟湰 [%(old_rev)s:%(new_rev)s] 鐨勫樊寮"
+
+#: trac/versioncontrol/web_ui/changeset.py:798
+#, python-format
+msgid "Diff from %(old_path)s@%(old_rev)s to %(new_path)s@%(new_rev)s"
+msgstr "浠 %(old_path)s@%(old_rev)s 鍒 %(new_path)s@%(new_rev)s 鐨勫樊寮"
+
+#: trac/versioncontrol/web_ui/changeset.py:870
 msgid "Changesets in all repositories"
 msgstr "鎵鏈夌増鏈簱涓殑鍙樻洿闆"
 
-#: trac/versioncontrol/web_ui/changeset.py:861
+#: trac/versioncontrol/web_ui/changeset.py:872
 msgid "Repository changesets"
 msgstr "鐗堟湰搴撳彉鏇撮泦"
 
-#: trac/versioncontrol/web_ui/changeset.py:998
+#: trac/versioncontrol/web_ui/changeset.py:1010
 #, python-format
 msgid "Changeset in %(repo)s "
 msgid_plural "Changesets in %(repo)s "
 msgstr[0] "%(repo)s涓殑鍙樻洿闆"
 msgstr[1] "%(repo)s涓殑鍙樻洿闆"
 
-#: trac/versioncontrol/web_ui/changeset.py:1000
+#: trac/versioncontrol/web_ui/changeset.py:1012
 msgid "Changeset "
 msgid_plural "Changesets "
 msgstr[0] "鍙樻洿闆"
 msgstr[1] "鍙樻洿闆"
 
-#: trac/versioncontrol/web_ui/changeset.py:1009
+#: trac/versioncontrol/web_ui/changeset.py:1023
 #, python-format
 msgid "%(title)s: %(message)s"
 msgstr "%(title)s锛 %(message)s:"
 
-#: trac/versioncontrol/web_ui/changeset.py:1069
+#: trac/versioncontrol/web_ui/changeset.py:1083
 #, python-format
 msgid "No permission to view changeset %(rev)s on %(repos)s"
 msgstr "鏃犳潈鏌ョ湅%(repos)s涓殑鍙樻洿闆%(rev)s"
 
-#: trac/versioncontrol/web_ui/changeset.py:1073
-#: trac/versioncontrol/web_ui/log.py:393
-#, python-format
-msgid "Repository %(repos)s not found"
-msgstr "娌℃湁鎵惧埌鐗堟湰搴 %(repos)s"
-
-#: trac/versioncontrol/web_ui/changeset.py:1075
-#: trac/versioncontrol/web_ui/log.py:395
+#: trac/versioncontrol/web_ui/changeset.py:1089
+#: trac/versioncontrol/web_ui/log.py:397
 msgid "No default repository defined"
 msgstr "娌℃湁瀹氫箟缂虹渷鐗堟湰搴"
 
-#: trac/versioncontrol/web_ui/changeset.py:1114
+#: trac/versioncontrol/web_ui/changeset.py:1128
 msgid "Changesets"
 msgstr "鍙樻洿闆"
 
-#: trac/versioncontrol/web_ui/log.py:196
+#: trac/versioncontrol/web_ui/log.py:199
 #, python-format
 msgid ""
 "The file or directory '%(path)s' doesn't exist at revision %(rev)s or at "
 "any previous revision."
 msgstr "鏂囦欢鎴栫洰褰 '%(path)s' 涓嶅瓨鍦 %(rev)s 鍙婁互鍓嶇殑淇銆"
 
-#: trac/versioncontrol/web_ui/log.py:198
+#: trac/versioncontrol/web_ui/log.py:199
 msgid "Nonexistent path"
 msgstr "璺緞涓嶅瓨鍦"
 
-#: trac/versioncontrol/web_ui/log.py:225
+#: trac/versioncontrol/web_ui/log.py:227
 #, python-format
 msgid "Revision Log (restarting at %(path)s, rev. %(rev)s)"
 msgstr "淇鏃ュ織 (璧峰浜 %(path)s, 淇 %(rev)s)"
 
-#: trac/versioncontrol/web_ui/log.py:307
+#: trac/versioncontrol/web_ui/log.py:308
 msgid "ChangeLog"
 msgstr "鍙樻洿鏃ュ織"
 
-#: trac/versioncontrol/web_ui/log.py:309
+#: trac/versioncontrol/web_ui/log.py:310
 msgid "View Latest Revision"
 msgstr "鏌ョ湅鏈鏂颁慨璁"
 
-#: trac/versioncontrol/web_ui/log.py:313
+#: trac/versioncontrol/web_ui/log.py:314
 msgid "Older Revisions"
 msgstr "鏇存棭鐗堟湰"
 
-#: trac/versioncontrol/web_ui/log.py:391
+#: trac/versioncontrol/web_ui/log.py:393
 msgid "No permission to view change log"
 msgstr "鏃犳潈鏌ョ湅鍙樻洿璁板綍"
 
-#: trac/versioncontrol/web_ui/util.py:64
+#. TRANSLATOR: You can 'search' in the repository history... (link)
+#: trac/versioncontrol/web_ui/util.py:65
 msgid "search"
 msgstr "鎼滅储"
 
-#: trac/versioncontrol/web_ui/util.py:68
+#: trac/versioncontrol/web_ui/util.py:69
 #, python-format
 msgid ""
 "You can %(search)s in the repository history to see if that path existed "
 "but was later removed"
 msgstr "鎮ㄥ彲浠ュ湪鐗堟湰搴撳巻鍙蹭腑%(search)s锛屼互鍒ゆ柇鏄惁璺緞鏇剧粡瀛樺湪浣嗗悗鏉ヨ鍒犻櫎浜嗐"
 
-#: trac/web/api.py:232
+#: trac/web/api.py:236
 #, python-format
 msgid "Invalid URL encoding (was %(path_info)r)"
 msgstr "鏃犳晥URL缂栫爜 (鍘熸潵鏄 %(path_info)r)"
 
-#: trac/web/api.py:447
+#: trac/web/api.py:474
 #, python-format
 msgid "File %(path)s not found"
 msgstr "鏂囦欢 \"%(path)s\" 鏈壘鍒般"
 
-#: trac/web/auth.py:104
+#: trac/web/auth.py:99
 #, python-format
 msgid "logged in as %(user)s"
 msgstr "鐧诲綍涓 %(user)s"
 
-#: trac/web/auth.py:107
+#: trac/web/auth.py:102
 msgid "Logout"
 msgstr "娉ㄩ攢"
 
-#: trac/web/auth.py:110
+#: trac/web/auth.py:105
 msgid "Login"
 msgstr "鐧诲綍"
 
-#: trac/web/auth.py:152
+#. TRANSLATOR: ... refer to the 'installation documentation'. (link)
+#: trac/web/auth.py:137
+msgid "installation documentation"
+msgstr "瀹夎鏂囨。"
+
+#: trac/web/auth.py:138
+msgid "Configuring Authentication"
+msgstr "閰嶇疆韬唤璁よ瘉"
+
+#: trac/web/auth.py:141
 #, python-format
+msgid ""
+"Authentication information not available. Please refer to the "
+"%(inst_doc)s."
+msgstr "缂哄皯韬唤璁よ瘉淇℃伅锛岃鏌ョ湅 %(inst_doc)s 銆"
+
+#: trac/web/auth.py:149
+#, python-format
 msgid "Already logged in as %(user)s."
 msgstr "宸茬粡鐧诲綍涓 %(user)s."
 
-#: trac/web/chrome.py:580
+#: trac/web/chrome.py:582
 #, python-format
 msgid "Error with navigation contributor \"%(name)s\""
 msgstr "瀵艰埅璐＄尞鑰 \"%(name)s\" 閿欒"
 
-#: trac/web/chrome.py:875
+#: trac/web/chrome.py:877
 msgid "(unknown template location)"
 msgstr "(鏈煡妯℃澘璺緞)"
 
-#: trac/web/chrome.py:876
+#: trac/web/chrome.py:878
 #, python-format
 msgid "Genshi %(error)s error while rendering template %(location)s"
 msgstr "Genshi鍦ㄦ覆鏌撴ā鏉%(location)s鏃讹紝鍙戠敓閿欒%(error)s銆"
 
-#: trac/web/main.py:227
+#: trac/web/main.py:225
 msgid "Secure cookies are enabled, you must use https to submit forms."
 msgstr "瀹夊叏cookies宸插惎鍔紝鎮ㄥ繀椤讳娇鐢╤ttps鎻愪氦琛ㄥ崟銆"
 
-#: trac/web/main.py:230
+#: trac/web/main.py:228
 msgid "Do you have cookies enabled?"
 msgstr "浣犲惎鐢╟ookie浜嗗悧锛"
 
-#: trac/web/main.py:231
+#: trac/web/main.py:229
 #, python-format
 msgid "Missing or invalid form token. %(msg)s"
 msgstr "鏍囪纭疄鎴栨牸寮忔棤鏁堛 %(msg)s"
 
-#: trac/web/main.py:519
+#: trac/web/main.py:527
 #, python-format
 msgid "Error: %(message)s"
 msgstr "閿欒: %(message)s"
 
 #. TRANSLATOR: ... not logged in, you may want to 'do so' now (link)
-#: trac/web/main.py:533
+#: trac/web/main.py:541
 msgid "do so"
 msgstr "杩欐牱鍋"
 
-#: trac/web/main.py:535
+#: trac/web/main.py:543
 #, python-format
 msgid "You are currently not logged in. You may want to %(do_so)s now."
 msgstr "鎮ㄧ幇鍦ㄦ病鏈夌櫥褰曪紝鎮ㄤ篃璁告兂瑕佺幇鍦ㄥ氨%(do_so)s銆"
 
-#: trac/web/session.py:204
+#: trac/web/session.py:203
 #, python-format
 msgid ""
 "Session '%(id)s' already exists.<br />Please choose a different session "
 "ID."
 msgstr "浼氳瘽'%(id)s'宸茬粡瀛樺湪锛<br />璇烽夋嫨鍏跺畠浼氳瘽鏍囪瘑銆"
 
-#: trac/web/session.py:206
+#: trac/web/session.py:205
 msgid "Error renaming session"
 msgstr "浼氳瘽鏇村悕鍑洪敊"
 
-#: trac/web/session.py:313
+#: trac/web/session.py:312
 msgid "No SID found"
 msgstr "娌℃湁鎵惧埌SID"
 
-#: trac/web/session.py:315
+#: trac/web/session.py:314
 msgid "SID"
 msgstr "SID"
 
-#: trac/web/session.py:315
+#: trac/web/session.py:314
 msgid "Email"
 msgstr "閭欢鍦板潃"
 
-#: trac/web/session.py:319
-msgid "Session alread exists. Unable to add a duplicate session."
+#: trac/web/session.py:318
+msgid "Session already exists. Unable to add a duplicate session."
 msgstr "浼氳瘽宸茬粡瀛樺湪锛屼笉鑳芥坊鍔犻噸澶嶇殑浼氳瘽銆"
 
-#: trac/web/session.py:326
+#: trac/web/session.py:325
 msgid "Unable to set session attribute on a non-existent SID"
 msgstr "鏃犳硶缁欎竴涓笉瀛樺湪鐨凷ID璁剧疆浼氳瘽灞炴"
 
-#: trac/web/session.py:439
+#: trac/web/session.py:438
 #, python-format
 msgid "Session id %(sid)s not found"
 msgstr "娌℃湁鎵惧埌浼氳瘽鏍囪瘑%(sid)s"
 
-#: trac/web/session.py:475
-msgid "A datetime object must be specified"
-msgstr "蹇呴』鎸囧畾涓涓椂闂村璞"
-
-#: trac/wiki/admin.py:117
+#: trac/wiki/admin.py:116
 #, python-format
 msgid "'%(name)s' is not a file"
 msgstr "'%(name)s'涓嶆槸涓涓枃浠躲"
 
-#: trac/wiki/admin.py:170 trac/wiki/admin.py:267
+#: trac/wiki/admin.py:168 trac/wiki/admin.py:265
 #, python-format
 msgid "  %(page)s imported from %(filename)s"
 msgstr "宸蹭粠%(filename)s涓鍏%(page)s"
 
-#: trac/wiki/admin.py:202
+#: trac/wiki/admin.py:200
 msgid "Edits"
 msgstr "缂栬緫娆℃暟"
 
-#: trac/wiki/admin.py:208 trac/wiki/web_ui.py:296
+#: trac/wiki/admin.py:206 trac/wiki/web_ui.py:295
 msgid "A new name is mandatory for a rename."
 msgstr "閲嶅懡鍚嶅繀椤绘彁渚涙柊鐨勫悕绉般"
 
-#: trac/wiki/admin.py:212 trac/wiki/web_ui.py:300
+#: trac/wiki/admin.py:210 trac/wiki/web_ui.py:299
 #, python-format
 msgid "The page %(name)s already exists."
 msgstr "椤甸潰 %(name)s 宸茬粡瀛樺湪"
 
-#: trac/wiki/admin.py:226
+#: trac/wiki/admin.py:224
 msgid "Deleted pages"
 msgstr "宸插垹闄ら〉闈 "
 
-#: trac/wiki/admin.py:245
+#: trac/wiki/admin.py:243
 #, python-format
 msgid "'%(name)s' is not a directory"
 msgstr "'%(name)s'涓嶆槸涓涓洰褰曘"
 
-#: trac/wiki/api.py:319
+#: trac/wiki/api.py:361
 msgid "no permission to view this wiki page"
 msgstr "鏃犳潈鏌ョ湅姝iki椤甸潰"
 
-#: trac/wiki/formatter.py:169
+#: trac/wiki/formatter.py:174
 #, python-format
 msgid "HTML parsing error: %(message)s"
 msgstr "HTML澶勭悊閿欒: %(message)s"
 
-#: trac/wiki/formatter.py:173
+#: trac/wiki/formatter.py:178
 msgid "Error: Forbidden character sequence \"--\" in htmlcomment wiki code block"
 msgstr "閿欒: htmlcomment wiki浠ｇ爜鍧椾腑瀛樺湪闈炴硶瀛楃搴忓垪 \"--\" "
 
-#: trac/wiki/formatter.py:247
+#: trac/wiki/formatter.py:252
 #, python-format
 msgid "!#%(name)s must contain at most one table"
 msgstr "!#%(name)s 蹇呴』鍖呭惈鍦ㄨ嚦灏戜竴涓〃涓"
 
-#: trac/wiki/formatter.py:251
+#: trac/wiki/formatter.py:256
 #, python-format
 msgid "!#%(name)s must contain at least one table cell (and table cells only)"
 msgstr "!#%(name)s 蹇呴』鍖呭惈鍦ㄨ嚦灏戜竴涓〃鍗曞厓涓紙涔熷彧鍏佽鍦ㄨ〃鍗曞厓涓級"
 
-#: trac/wiki/formatter.py:564 trac/wiki/interwiki.py:88
+#: trac/wiki/formatter.py:629 trac/wiki/interwiki.py:88
 #, python-format
 msgid "%(target)s in %(name)s"
 msgstr "%(target)s 鍦 %(name)s"
@@ -4990,93 +5195,103 @@
 msgid "Can't view %(link)s:"
 msgstr "鏃犳硶鏌ョ湅 %(link)s:"
 
-#: trac/wiki/macros.py:526
+#: trac/wiki/macros.py:519
 #, python-format
+msgid "No image \"%(id)s\" attached to %(parent)s"
+msgstr "娌℃湁鍥惧儚 \"%(id)s\" 闄勫姞鍒 %(parent)s"
+
+#: trac/wiki/macros.py:562
+#, python-format
 msgid "Error: Can't get description for macro %(name)s"
 msgstr "閿欒: 鏃犳硶寰楀埌瀹 %(name)s 鐨勬弿杩"
 
-#: trac/wiki/macros.py:544
+#: trac/wiki/macros.py:580
 msgid "Aliases:"
 msgstr "鍒悕锛"
 
-#: trac/wiki/macros.py:547
+#: trac/wiki/macros.py:583
 msgid "Sorry, no documentation found"
 msgstr "鎶辨瓑锛屾病鏈夋壘鍒版枃妗"
 
-#: trac/wiki/macros.py:612
+#: trac/wiki/macros.py:648
 msgid "MIME Types"
 msgstr "MIME绫诲瀷"
 
-#: trac/wiki/macros.py:670
+#: trac/wiki/macros.py:706
 msgid "Table of Contents"
 msgstr "鍐呭绱㈠紩"
 
-#: trac/wiki/model.py:124
+#: trac/wiki/model.py:123
 msgid "Page not modified"
 msgstr "鏈慨鏀圭殑椤甸潰"
 
-#: trac/wiki/model.py:175
+#: trac/wiki/model.py:174
 #, python-format
 msgid "Can't rename to existing %(name)s page."
 msgstr "涓嶈兘閲嶅懡鍚嶄负宸叉湁椤甸潰 %(name)s 銆"
 
-#: trac/wiki/web_ui.py:88 trac/wiki/web_ui.py:718
+#: trac/wiki/web_ui.py:87 trac/wiki/web_ui.py:729
 msgid "Wiki"
 msgstr "Wiki"
 
-#: trac/wiki/web_ui.py:90
+#: trac/wiki/web_ui.py:89
 msgid "Help/Guide"
 msgstr "甯姪/鎸囧崡"
 
-#: trac/wiki/web_ui.py:126
+#: trac/wiki/web_ui.py:125
 #, python-format
 msgid "No version \"%(num)s\" for Wiki page \"%(name)s\""
 msgstr "鏃犵増鏈 \"%(num)s\" , Wiki椤甸潰 \"%(name)s\""
 
-#: trac/wiki/web_ui.py:191
+#: trac/wiki/web_ui.py:190
 #, python-format
 msgid "The wiki page is too long (must be less than %(num)s characters)"
 msgstr "浠诲姟鍗曟弿杩板お闀(蹇呴』灏戜簬 %(num)s 涓瓧绗)"
 
-#: trac/wiki/web_ui.py:201
+#: trac/wiki/web_ui.py:200
 #, python-format
 msgid "The Wiki page field '%(field)s' is invalid: %(message)s"
 msgstr "Wiki椤甸潰瀛楁 '%(field)s' 鏃犳晥: %(message)s"
 
-#: trac/wiki/web_ui.py:205
+#: trac/wiki/web_ui.py:204
 #, python-format
 msgid "Invalid Wiki page: %(message)s"
 msgstr "鏃犳晥鐨刉iki椤甸潰: %(message)s"
 
 #. TRANSLATOR: wiki page
-#: trac/wiki/web_ui.py:232
+#: trac/wiki/web_ui.py:231
 msgid "currently edited"
 msgstr "姝ｅ湪缂栬緫"
 
-#: trac/wiki/web_ui.py:266
+#: trac/wiki/web_ui.py:265
 #, python-format
 msgid "The page %(name)s has been deleted."
 msgstr "椤甸潰 %(name)s 宸插垹闄ゃ"
 
-#: trac/wiki/web_ui.py:271
+#: trac/wiki/web_ui.py:270
 #, python-format
 msgid "The versions %(from_)d to %(to)d of the page %(name)s have been deleted."
 msgstr "椤甸潰 %(name)s 鐨勭増鏈 %(from_)d 鍒 %(to)d 宸插垹闄ゃ"
 
-#: trac/wiki/web_ui.py:275
+#: trac/wiki/web_ui.py:274
 #, python-format
 msgid "The version %(version)d of the page %(name)s has been deleted."
 msgstr "椤甸潰 %(name)s 鐗堟湰 %(version)d 宸插垹闄ゃ"
 
-#: trac/wiki/web_ui.py:298
+#: trac/wiki/web_ui.py:297
 msgid "The new name must be different from the old name."
 msgstr "鏂板悕绉板繀椤讳笌鏃у悕绉颁笉鍚屻"
 
-#: trac/wiki/web_ui.py:310
+#: trac/wiki/web_ui.py:309
 #, python-format
 msgid "See [wiki:\"%(name)s\"]."
 msgstr "鏌ョ湅 [wiki:\"%(name)s\"]."
 
+#: trac/wiki/web_ui.py:333
+#, python-format
+msgid "Your changes have been saved in version %(version)s."
+msgstr "鎮ㄧ殑淇敼宸蹭繚瀛樺湪鐗堟湰%(version)s涓"
+
 #: trac/wiki/web_ui.py:338
 msgid "Page not modified, showing latest version."
 msgstr "椤甸潰鏈慨鏀癸紝鏄剧ず鏈鏂扮増鏈"
@@ -5133,47 +5348,79 @@
 msgid "Up"
 msgstr "鍚戜笂"
 
-#: trac/wiki/web_ui.py:665
+#: trac/wiki/web_ui.py:673
 msgid "Start Page"
 msgstr "璧峰椤"
 
-#: trac/wiki/web_ui.py:666
+#: trac/wiki/web_ui.py:674
 msgid "Index"
 msgstr "绱㈠紩"
 
-#: trac/wiki/web_ui.py:668
+#: trac/wiki/web_ui.py:676
 msgid "History"
 msgstr "鍘嗗彶"
 
-#: trac/wiki/web_ui.py:675
+#: trac/wiki/web_ui.py:683
 msgid "Wiki changes"
 msgstr "Wiki鍙樻洿"
 
-#. TRANSLATOR: wiki page
-#: trac/wiki/web_ui.py:704
-msgid " edited"
-msgstr "宸茬紪杈"
+#: trac/wiki/web_ui.py:712
+#, python-format
+msgid "%(page)s edited"
+msgstr "%(page)s 宸茬紪杈"
 
-#: trac/wiki/web_ui.py:704
-msgid " created"
-msgstr "宸插垱寤"
+#: trac/wiki/web_ui.py:714
+#, python-format
+msgid "%(page)s created"
+msgstr "%(page)s 宸插垱寤"
 
-#: trac/wiki/templates/wiki_delete.html:26
-msgid "Are you sure you want to"
-msgstr "鎮ㄧ‘璁"
+#: trac/wiki/templates/wiki_delete.html:19
+#, python-format
+msgid "Delete versions %(from)s to %(to)s of [1:%(name)s]"
+msgstr "鍒犻櫎 [1:%(name)s] 浠%(from)s 鍒 %(to)s 鐨勭増鏈"
 
-#: trac/wiki/templates/wiki_delete.html:26
-msgid "delete"
-msgstr "鍒犻櫎"
+#: trac/wiki/templates/wiki_delete.html:22
+#, python-format
+msgid "Delete version %(version)s of [1:%(name)s]"
+msgstr "鍒犻櫎 [1:%(name)s] 鐨勭増鏈 %(version)s"
 
-#: trac/wiki/templates/wiki_delete.html:26
-msgid "this page?"
-msgstr "姝ら〉?"
+#: trac/wiki/templates/wiki_delete.html:25
+#, python-format
+msgid "Delete [1:%(name)s]"
+msgstr "鍒犻櫎 [1:%(name)s]"
 
-#: trac/wiki/templates/wiki_delete.html:28
+#: trac/wiki/templates/wiki_delete.html:33
+#, python-format
+msgid "Are you sure you want to delete versions %(from)s to %(to)s of this page?"
+msgstr "浣犵‘瀹氬垹闄ゆ椤甸潰浠 %(from)s 鍒 %(to)s 鐨勭増鏈悧锛"
+
+#: trac/wiki/templates/wiki_delete.html:36
+#, python-format
+msgid "Are you sure you want to delete version %(version)s of this page?"
+msgstr "浣犵‘瀹氬垹闄ゆ椤甸潰鐨勭増鏈 %(version)s 鍚楋紵"
+
+#: trac/wiki/templates/wiki_delete.html:39
+msgid "Are you sure you want to completely delete this page?"
+msgstr "浣犵‘瀹氳瀹屽叏鍒犻櫎姝ら〉闈㈠悧锛"
+
+#: trac/wiki/templates/wiki_delete.html:42
 msgid "This is the only version the page, so the page will be removed completely!"
 msgstr "杩欐槸姝ら〉闈㈢殑鍞竴鐗堟湰, 鍥犳璇ラ〉闈㈠皢褰诲簳鍒犻櫎!"
 
+#: trac/wiki/templates/wiki_delete.html:51
+msgid "Delete those versions"
+msgstr "鍒犻櫎杩欎簺鐗堟湰"
+
+#: trac/wiki/templates/wiki_delete.html:51
+#: trac/wiki/templates/wiki_view.html:117
+msgid "Delete this version"
+msgstr "鍒犻櫎姝ょ増鏈"
+
+#: trac/wiki/templates/wiki_delete.html:51
+#: trac/wiki/templates/wiki_view.html:119
+msgid "Delete page"
+msgstr "鍒犻櫎椤甸潰 "
+
 #: trac/wiki/templates/wiki_diff.html:17
 #, python-format
 msgid "Delete version %(old_version)d to version %(version)d"
@@ -5210,40 +5457,38 @@
 msgstr "宸叉湁鍏朵粬浜轰慨鏀逛簡璇ラ〉闈."
 
 #: trac/wiki/templates/wiki_edit.html:76
-msgid "If you save right away, you risk to revert those changes"
-msgstr "濡傛灉鎮ㄧ幇鍦ㄤ繚瀛, 鍙兘灏嗛偅浜涗慨鏀硅鐩"
+msgid ""
+"[1:If you save right away, you risk to revert those changes]\n"
+"        (highlighted below as deletions)."
+msgstr ""
+"[1:濡傛灉鎮ㄧ幇鍦ㄤ繚瀛, 鍙兘灏嗛偅浜涗慨鏀硅鐩朷\n"
+"        (涓嬮潰楂樹寒鏄剧ず浜嗗垹闄ら儴鍒)銆"
 
-#: trac/wiki/templates/wiki_edit.html:76
-msgid "(highlighted below as deletions)."
-msgstr "(鍒犻櫎閮ㄥ垎鍦ㄤ笅闈㈤珮浜樉绀)."
-
 #: trac/wiki/templates/wiki_edit.html:78
 msgid ""
 "Please review all those changes and manually merge them with your\n"
-"        own changes."
-msgstr "璇锋鏌ユ墍鏈変慨鏀, 骞舵墜宸ュ悎骞跺埌鎮ㄧ殑淇敼涓."
-
-#: trac/wiki/templates/wiki_edit.html:79
-msgid "If you're unsure about what you're doing, please press"
-msgstr "濡傛灉鎮ㄥ鎵鍋氱殑涓嶇‘瀹, 璇锋寜"
-
-#: trac/wiki/templates/wiki_edit.html:80
-msgid ""
-"(losing your changes) and start editing the latest version of the page\n"
+"        own changes. [1:]\n"
+"        If you're unsure about what you're doing, please press [2:Cancel]"
+"\n"
+"        (losing your changes) and start editing the latest version of the"
+" page\n"
 "        again."
-msgstr "(澶卞幓鎮ㄧ殑淇敼) 鐒跺悗閲嶆柊寮濮嬬紪杈戦〉闈㈢殑鏈鍏堢増鏈."
+msgstr ""
+"璇锋鏌ユ墍鏈夎繖浜涘彉鏇达紝骞跺皢鍏朵笌鎮ㄨ嚜宸辩殑鍙樻洿鎵嬪姩鍚堝苟\n"
+"        [1:]\n"
+"        濡傛灉浣犱笉纭畾鑷繁鍦ㄥ仛浠涔堬紝璇锋寜 [2:鍙栨秷]\n"
+"        锛堜涪澶辨偍杩涜鐨勪慨鏀癸級 寮濮嬪啀娆＄紪杈戦〉闈㈢殑鏈鏂扮増鏈"
 
 #: trac/wiki/templates/wiki_edit.html:114
-msgid "Change information for future version"
-msgstr "鏈潵鐗堟湰鐨勫彉鏇翠俊鎭"
+#, python-format
+msgid ""
+"Change information for future version %(version)s (modified by "
+"%(author)s):"
+msgstr "鏈潵鐗堟湰 %(version)s 鐨勫彉鏇翠俊鎭(鐢 %(author)s 淇敼):"
 
-#: trac/wiki/templates/wiki_edit.html:115
-msgid "(modified by"
-msgstr "(淇敼鑰"
-
 #: trac/wiki/templates/wiki_edit.html:124
 msgid "Go to the editor"
-msgstr "杞悜缂栬緫鍣"
+msgstr "杞埌缂栬緫鍣"
 
 #: trac/wiki/templates/wiki_edit.html:127
 #: trac/wiki/templates/wiki_edit_form.html:74
@@ -5308,47 +5553,51 @@
 msgid "Preview Page"
 msgstr "椤甸潰棰勮"
 
-#: trac/wiki/templates/wiki_rename.html:14
-msgid "Rename"
-msgstr "閲嶅懡鍚"
+#: trac/wiki/templates/wiki_page_path.html:6
+msgid "View WikiStart"
+msgstr "鏌ョ湅 WikiStart"
 
-#: trac/wiki/templates/wiki_rename.html:18
+#: trac/wiki/templates/wiki_page_path.html:6
+msgid "wiki:"
+msgstr "wiki"
+
+#: trac/wiki/templates/wiki_page_path.html:8
+#, python-format
+msgid "View %(path)s"
+msgstr "鏌ョ湅 %(path)s"
+
+#: trac/wiki/templates/wiki_rename.html:15
+#, python-format
+msgid "Rename [1:%(name)s]"
+msgstr "閲嶅懡鍚 [1:%(name)s]"
+
+#: trac/wiki/templates/wiki_rename.html:19
 msgid "Renaming the page will rename all existing versions of the page in place."
 msgstr "閲嶅懡鍚嶉〉闈㈠皢浼氶噸鍛藉悕椤甸潰鐨勬墍鏈夌増鏈"
 
-#: trac/wiki/templates/wiki_rename.html:18
+#: trac/wiki/templates/wiki_rename.html:19
 msgid "The complete history of the page will be moved to the new location."
 msgstr "椤甸潰鐨勫畬鏁村巻鍙插皢琚Щ鍔ㄥ埌鏂颁綅缃"
 
-#: trac/wiki/templates/wiki_rename.html:22
-#, python-format
+#: trac/wiki/templates/wiki_rename.html:23
 msgid "New name:"
 msgstr "鏂板悕绉:"
 
-#: trac/wiki/templates/wiki_rename.html:26
+#: trac/wiki/templates/wiki_rename.html:27
 msgid "Leave a redirection page at the old location"
 msgstr "鍦ㄦ棫浣嶇疆鏀剧疆涓涓噸瀹氬悜椤甸潰"
 
-#: trac/wiki/templates/wiki_rename.html:32
-#: trac/wiki/templates/wiki_view.html:109
+#: trac/wiki/templates/wiki_rename.html:33
+#: trac/wiki/templates/wiki_view.html:108
 msgid "Rename page"
 msgstr "閲嶅懡鍚嶉〉闈"
 
-#: trac/wiki/templates/wiki_view.html:25
-msgid "View WikiStart"
-msgstr "鏌ョ湅 WikiStart"
+#: trac/wiki/templates/wiki_view.html:14 trac/wiki/templates/wiki_view.html:84
+msgid "Edit this page"
+msgstr "缂栬緫姝ら〉闈"
 
-#: trac/wiki/templates/wiki_view.html:25
-msgid "wiki:"
-msgstr "wiki"
-
-#: trac/wiki/templates/wiki_view.html:26
+#: trac/wiki/templates/wiki_view.html:34
 #, python-format
-msgid "View %(path)s"
-msgstr "鏌ョ湅 %(path)s"
-
-#: trac/wiki/templates/wiki_view.html:38
-#, python-format
 msgid ""
 "Version %(version)s (modified by %(author)s, %(date)s ago)\n"
 "               ([1:diff])"
@@ -5357,52 +5606,43 @@
 "\"\n"
 "\"               ([1:diff])"
 
-#: trac/wiki/templates/wiki_view.html:51
+#: trac/wiki/templates/wiki_view.html:47
 #, python-format
-msgid ""
-"[1:\n"
-"              Last modified] %(reldate)s ago"
-msgstr ""
-"[1:\n"
-"              鏈鍚庝慨鏀逛簬] %(reldate)s 鍓"
+msgid "Version %(version)s by %(author)s: %(comment)s"
+msgstr "鐢 %(author)s 缂栬緫鐨 %(version)s: %(comment)s"
 
-#: trac/wiki/templates/wiki_view.html:60
-msgid "The page"
-msgstr "姝ら〉闈"
+#: trac/wiki/templates/wiki_view.html:47
+#, python-format
+msgid "Version %(version)s by %(author)s"
+msgstr "鐗堟湰 %(version)s 鏉ヨ嚜 %(author)s"
 
-#: trac/wiki/templates/wiki_view.html:60
-msgid "does not exist. You can create it here."
-msgstr "涓嶅瓨鍦ㄣ備綘鍙互鍦ㄦ鍒涘缓瀹冦"
+#: trac/wiki/templates/wiki_view.html:54
+#, python-format
+msgid "[1:Last modified] %(reldate)s ago"
+msgstr "[1:鏈鍚庝慨鏀逛簬] %(reldate)s 鍓"
 
-#: trac/wiki/templates/wiki_view.html:62
+#: trac/wiki/templates/wiki_view.html:61
+#, python-format
+msgid "The page %(name)s does not exist. You can create it here."
+msgstr "椤甸潰 %(name)s 涓嶅瓨鍦ㄣ備綘鍙互鍦ㄦ鍒涘缓瀹冦"
+
+#: trac/wiki/templates/wiki_view.html:63
 msgid "You could also create the same page higher in the hierarchy:"
 msgstr "姝ゅ锛屾偍涔熷彲浠ュ垱寤虹洰褰曞眰娆℃洿楂樼殑椤甸潰:"
 
-#: trac/wiki/templates/wiki_view.html:85
-msgid "Edit this page"
-msgstr "缂栬緫姝ら〉闈"
-
-#: trac/wiki/templates/wiki_view.html:88
+#: trac/wiki/templates/wiki_view.html:87
 msgid "Create this page"
 msgstr "鍒涘缓姝ら〉闈"
 
-#: trac/wiki/templates/wiki_view.html:90
+#: trac/wiki/templates/wiki_view.html:89
 msgid "Using the template:"
 msgstr "浣跨敤妯℃澘:"
 
-#: trac/wiki/templates/wiki_view.html:93
+#: trac/wiki/templates/wiki_view.html:92
 msgid "(blank page)"
 msgstr "(绌虹櫧椤甸潰)"
 
-#: trac/wiki/templates/wiki_view.html:118
-msgid "Delete this version"
-msgstr "鍒犻櫎姝ょ増鏈"
-
-#: trac/wiki/templates/wiki_view.html:120
-msgid "Delete page"
-msgstr "鍒犻櫎椤甸潰 "
-
-#: trac/wiki/templates/wiki_view.html:129
+#: trac/wiki/templates/wiki_view.html:128
 msgid "The following pages have a name similar to this page, and may be related:"
 msgstr "浠ヤ笅椤甸潰涓庢椤甸潰鍚嶇О鐩镐技锛屽彲鑳戒細鏈夊叧鑱旓細"
 

