diff locale/zh_TW.po @ 6134:63739dae0f7e

update translation files for translators 2.0.0 beta
author John Rouillard <rouilj@ieee.org>
date Sat, 04 Apr 2020 11:29:31 -0400
parents 0a42163ac846
children 85f3f54f9e79
line wrap: on
line diff
--- a/locale/zh_TW.po	Sat Apr 04 11:22:06 2020 -0400
+++ b/locale/zh_TW.po	Sat Apr 04 11:29:31 2020 -0400
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: 0.8.3\n"
 "Report-Msgid-Bugs-To: roundup-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2019-10-23 13:45-0400\n"
+"POT-Creation-Date: 2020-04-04 11:24-0400\n"
 "PO-Revision-Date: 2013-10-31 12:23+0100\n"
 "Last-Translator: Fred Lin <gasolin@gmail>\n"
 "Language-Team: Chinese Traditional <gasolin@gmail.com>\n"
@@ -19,13 +19,13 @@
 "X-Poedit-Language: Chinese\n"
 "X-Poedit-Country: TAIWAN\n"
 
-#: ../roundup/actions.py:52
+#: ../roundup/actions.py:49
 #, fuzzy, python-format
 msgid ""
 "You do not have permission to retire or restore the %(classname)s class."
 msgstr "你沒有權限來 %(action)s %(classname)s 類型。"
 
-#: ../roundup/actions.py:66 ../roundup/cgi/actions.py:227
+#: ../roundup/actions.py:64 ../roundup/cgi/actions.py:242
 msgid "You may not retire the admin or anonymous user"
 msgstr "你不能刪除管理員或匿名用戶"
 
@@ -59,7 +59,8 @@
 "Options:\n"
 " -i instance home  -- specify the issue tracker \"home directory\" to "
 "administer\n"
-" -u                -- the user[:password] to use for commands\n"
+" -u                -- the user[:password] to use for commands (default "
+"admin)\n"
 " -d                -- print full designators not just class id numbers\n"
 " -c                -- when outputting lists of data, comma-separate them.\n"
 "                      Same as '-S \",\"'.\n"
@@ -318,9 +319,9 @@
 #: ../roundup/admin.py:673 ../roundup/admin.py:730 ../roundup/admin.py:788
 #: ../roundup/admin.py:813 ../roundup/admin.py:840 ../roundup/admin.py:913
 #: ../roundup/admin.py:980 ../roundup/admin.py:1059 ../roundup/admin.py:1120
-#: ../roundup/admin.py:1147 ../roundup/admin.py:1179 ../roundup/admin.py:1292
-#: ../roundup/admin.py:1373 ../roundup/admin.py:378:510:1059 :1120:1147
-#: :1179:1292:1373 :584:673 :730:788 :813:840 :913:980
+#: ../roundup/admin.py:1147 ../roundup/admin.py:1179 ../roundup/admin.py:1293
+#: ../roundup/admin.py:1374 ../roundup/admin.py:378:510:1059 :1120:1147
+#: :1179:1293:1374 :584:673 :730:788 :813:840 :913:980
 msgid "Not enough arguments supplied"
 msgstr "未提供足夠的參數"
 
@@ -857,7 +858,7 @@
 "        放在指定的目標目錄中。\n"
 "        "
 
-#: ../roundup/admin.py:1257
+#: ../roundup/admin.py:1258
 #, fuzzy
 msgid ""
 "Usage: exporttables [[-]class[,class]] export_dir\n"
@@ -883,7 +884,7 @@
 "        放在指定的目標目錄中。\n"
 "        "
 
-#: ../roundup/admin.py:1272
+#: ../roundup/admin.py:1273
 msgid ""
 "Usage: import import_dir\n"
 "        Import a database from the directory containing CSV files,\n"
@@ -923,7 +924,7 @@
 "        舊數據。)\n"
 "        "
 
-#: ../roundup/admin.py:1355
+#: ../roundup/admin.py:1356
 msgid ""
 "Usage: pack period | date\n"
 "\n"
@@ -961,11 +962,11 @@
 "\n"
 "        "
 
-#: ../roundup/admin.py:1383
+#: ../roundup/admin.py:1384
 msgid "Invalid format"
 msgstr "無效的格式"
 
-#: ../roundup/admin.py:1394
+#: ../roundup/admin.py:1395
 msgid ""
 "Usage: reindex [classname|designator]*\n"
 "        Re-generate a tracker's search indexes.\n"
@@ -980,12 +981,12 @@
 "        重新生成 tracker 的搜索索引,它將自動進行。\n"
 "        "
 
-#: ../roundup/admin.py:1408
+#: ../roundup/admin.py:1409
 #, python-format
 msgid "no such item \"%(designator)s\""
 msgstr "沒有這樣的條目 \"%(designator)s\""
 
-#: ../roundup/admin.py:1418
+#: ../roundup/admin.py:1419
 msgid ""
 "Usage: security [Role name]\n"
 "        Display the Permissions available to one or all Roles.\n"
@@ -995,47 +996,47 @@
 "        顯示一個或多個角色的權限。\n"
 "        "
 
-#: ../roundup/admin.py:1426
+#: ../roundup/admin.py:1427
 #, fuzzy, python-format
 msgid "No such Role \"%(role)s\"\n"
 msgstr "沒有這樣的角色 \"%(role)s\""
 
-#: ../roundup/admin.py:1432
+#: ../roundup/admin.py:1433
 #, fuzzy, python-format
 msgid "New Web users get the Roles \"%(role)s\"\n"
 msgstr "新Web用戶得到角色 \"%(role)s\""
 
-#: ../roundup/admin.py:1434
+#: ../roundup/admin.py:1435
 #, fuzzy, python-format
 msgid "New Web users get the Role \"%(role)s\"\n"
 msgstr "新Web用戶得到角色 \"%(role)s\""
 
-#: ../roundup/admin.py:1437
+#: ../roundup/admin.py:1438
 #, fuzzy, python-format
 msgid "New Email users get the Roles \"%(role)s\"\n"
 msgstr "新郵件用戶得到角色 \"%(role)s\""
 
-#: ../roundup/admin.py:1439
+#: ../roundup/admin.py:1440
 #, fuzzy, python-format
 msgid "New Email users get the Role \"%(role)s\"\n"
 msgstr "新郵件用戶得到角色 \"%(role)s\""
 
-#: ../roundup/admin.py:1442
+#: ../roundup/admin.py:1443
 #, fuzzy, python-format
 msgid "Role \"%(name)s\":\n"
 msgstr "角色 \"%(name)s\":"
 
-#: ../roundup/admin.py:1447
+#: ../roundup/admin.py:1448
 #, fuzzy
 msgid " %(description)s (%(name)s for \"%(klass)s\""
 msgstr " %(description)s (%(name)s 僅用於 \"%(klass)s\")"
 
-#: ../roundup/admin.py:1447
+#: ../roundup/admin.py:1448
 #, fuzzy, python-format
 msgid " %(description)s (%(name)s for \"%(klass)s\": %(properties)s only)\n"
 msgstr " %(description)s (%(name)s 僅用於 \"%(klass)s\")"
 
-#: ../roundup/admin.py:1459
+#: ../roundup/admin.py:1460
 #, python-format
 msgid ""
 "\n"
@@ -1043,22 +1044,22 @@
 "\n"
 msgstr ""
 
-#: ../roundup/admin.py:1461
+#: ../roundup/admin.py:1462
 #, fuzzy
 msgid " %(description)s (%(name)s for \"%(klass)s\" "
 msgstr " %(description)s (%(name)s 僅用於 \"%(klass)s\")"
 
-#: ../roundup/admin.py:1461
+#: ../roundup/admin.py:1462
 #, fuzzy, python-format
 msgid " %(description)s (%(name)s for \"%(klass)s\" only)\n"
 msgstr " %(description)s (%(name)s 僅用於 \"%(klass)s\")"
 
-#: ../roundup/admin.py:1464
+#: ../roundup/admin.py:1465
 #, fuzzy, python-format
 msgid " %(description)s (%(name)s)\n"
 msgstr " %(description)s (%(name)s 僅用於 \"%(klass)s\")"
 
-#: ../roundup/admin.py:1469
+#: ../roundup/admin.py:1470
 msgid ""
 "Usage: migrate\n"
 "        Update a tracker's database to be compatible with the Roundup\n"
@@ -1082,43 +1083,43 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1488
+#: ../roundup/admin.py:1489
 #, fuzzy
 msgid "Tracker updated"
 msgstr "Tracker根目錄"
 
-#: ../roundup/admin.py:1491
+#: ../roundup/admin.py:1492
 msgid "No migration action required"
 msgstr ""
 
-#: ../roundup/admin.py:1517
+#: ../roundup/admin.py:1518
 #, python-format
 msgid "Unknown command \"%(command)s\" (\"help commands\" for a list)"
 msgstr "未知命令 \"%(command)s\" (\"help commands\" 查看命令列表)"
 
-#: ../roundup/admin.py:1523
+#: ../roundup/admin.py:1524
 #, python-format
 msgid "Multiple commands match \"%(command)s\": %(list)s"
 msgstr "多命令匹配 \"%(command)s\": %(list)s"
 
-#: ../roundup/admin.py:1531
+#: ../roundup/admin.py:1532
 msgid "Enter tracker home: "
 msgstr "輸入tracker起始目錄:"
 
 # ../roundup/admin.py:1279 :1285 :1305
-#: ../roundup/admin.py:1540 ../roundup/admin.py:1546 ../roundup/admin.py:1572
-#: ../roundup/admin.py:1540:1546:1572
+#: ../roundup/admin.py:1541 ../roundup/admin.py:1547 ../roundup/admin.py:1573
+#: ../roundup/admin.py:1541:1547:1573
 #, python-format
 msgid "Error: %(message)s"
 msgstr "錯誤:%(message)s"
 
-#: ../roundup/admin.py:1554 ../roundup/admin.py:1558
-#: ../roundup/admin.py:1554:1558
+#: ../roundup/admin.py:1555 ../roundup/admin.py:1559
+#: ../roundup/admin.py:1555:1559
 #, python-format
 msgid "Error: Couldn't open tracker: %(message)s"
 msgstr "錯誤:不能打開tracker:%(message)s"
 
-#: ../roundup/admin.py:1585
+#: ../roundup/admin.py:1586
 #, python-format
 msgid ""
 "Roundup %s ready for input.\n"
@@ -1127,19 +1128,19 @@
 "Roundup %s 輸入就緒。\n"
 "敲入 \"help\" 獲得說明。"
 
-#: ../roundup/admin.py:1590
+#: ../roundup/admin.py:1591
 msgid "Note: command history and editing not available"
 msgstr "注意:命令歷史和編輯無效"
 
-#: ../roundup/admin.py:1594
+#: ../roundup/admin.py:1595
 msgid "roundup> "
 msgstr ""
 
-#: ../roundup/admin.py:1596
+#: ../roundup/admin.py:1597
 msgid "exit..."
 msgstr "退出..."
 
-#: ../roundup/admin.py:1609
+#: ../roundup/admin.py:1610
 msgid "There are unsaved changes. Commit them (y/N)? "
 msgstr "存在未被保存的改動。提交嗎(y/N)?"
 
@@ -1160,220 +1161,230 @@
 #: ../roundup/backends/back_anydbm.py:1427
 #: ../roundup/backends/back_anydbm.py:1445
 #: ../roundup/backends/back_anydbm.py:1491
-#: ../roundup/backends/back_anydbm.py:2069
+#: ../roundup/backends/back_anydbm.py:2090
 #: ../roundup/backends/back_anydbm.py:898:911
-#: ../roundup/backends/rdbms_common.py:1568
-#: ../roundup/backends/rdbms_common.py:1802
-#: ../roundup/backends/rdbms_common.py:2037
-#: ../roundup/backends/rdbms_common.py:2057
-#: ../roundup/backends/rdbms_common.py:2110
-#: ../roundup/backends/rdbms_common.py:2938
-#: ../roundup/backends/rdbms_common.py:1568:1802 :1171:1201 :1427:1445:1491
-#: :2037:2057:2069 :2110:2938
+#: ../roundup/backends/rdbms_common.py:1581
+#: ../roundup/backends/rdbms_common.py:1818
+#: ../roundup/backends/rdbms_common.py:2053
+#: ../roundup/backends/rdbms_common.py:2073
+#: ../roundup/backends/rdbms_common.py:2126
+#: ../roundup/backends/rdbms_common.py:2964
+#: ../roundup/backends/rdbms_common.py:1581:1818 :1171:1201 :1427:1445:1491
+#: :2053:2073:2090 :2126:2964
 msgid "Database open read-only"
 msgstr ""
 
-#: ../roundup/backends/rdbms_common.py:544
+#: ../roundup/backends/rdbms_common.py:549
 #, python-format
-msgid "ALTER operation disallowed: %r -> %r."
+msgid "ALTER operation disallowed: %(old)r -> %(new)r."
 msgstr ""
 
-#: ../roundup/backends/rdbms_common.py:777
+#: ../roundup/backends/rdbms_common.py:785
 #, python-format
 msgid "CREATE operation disallowed: \"%s\"."
 msgstr ""
 
-#: ../roundup/backends/rdbms_common.py:793
+#: ../roundup/backends/rdbms_common.py:802
 #, python-format
 msgid "DROP operation disallowed: \"%s\"."
 msgstr ""
 
-#: ../roundup/backends/rdbms_common.py:1703
+#: ../roundup/backends/rdbms_common.py:1719
 msgid "create"
 msgstr "建立"
 
-#: ../roundup/backends/rdbms_common.py:1872
+#: ../roundup/backends/rdbms_common.py:1888
 msgid "unlink"
 msgstr "解除"
 
-#: ../roundup/backends/rdbms_common.py:1876
+#: ../roundup/backends/rdbms_common.py:1892
 msgid "link"
 msgstr "鏈接"
 
-#: ../roundup/backends/rdbms_common.py:2018
+#: ../roundup/backends/rdbms_common.py:2034
 msgid "set"
 msgstr "設置"
 
-#: ../roundup/backends/rdbms_common.py:2047
+#: ../roundup/backends/rdbms_common.py:2063
 msgid "retired"
 msgstr "收回"
 
-#: ../roundup/backends/rdbms_common.py:2077
+#: ../roundup/backends/rdbms_common.py:2093
 msgid "restored"
 msgstr "恢復"
 
-#: ../roundup/cgi/actions.py:96
+#: ../roundup/cgi/actions.py:99
 msgid "Base url not set. Check configuration."
 msgstr ""
 
-#: ../roundup/cgi/actions.py:112
+#: ../roundup/cgi/actions.py:115
 #, python-format
 msgid "Base url %(base_url)s requires https. Redirect url %(url)s uses http."
 msgstr ""
 
-#: ../roundup/cgi/actions.py:115
+#: ../roundup/cgi/actions.py:120
 #, fuzzy, python-format
 msgid "Unrecognized scheme in %(url)s"
 msgstr "無法識別的字符集:%r"
 
-#: ../roundup/cgi/actions.py:118
+#: ../roundup/cgi/actions.py:124
 #, python-format
 msgid "Net location in %(url)s does not match base: %(base_netloc)s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:121
+#: ../roundup/cgi/actions.py:128
 #, python-format
 msgid "Base path %(base_path)s is not a prefix for url %(url)s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:134
+#: ../roundup/cgi/actions.py:142
 #, python-format
 msgid "Path component (%(url_path)s) in %(url)s is not properly escaped"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:137
+#: ../roundup/cgi/actions.py:146
 #, python-format
 msgid "Params component (%(url_params)s) in %(url)s is not properly escaped"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:140
+#: ../roundup/cgi/actions.py:149
 #, python-format
 msgid "Query component (%(url_query)s) in %(url)s is not properly escaped"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:143
+#: ../roundup/cgi/actions.py:152
 #, python-format
 msgid ""
 "Fragment component (%(url_fragment)s) in %(url)s is not properly escaped"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:164
+#: ../roundup/cgi/actions.py:174
 #, python-format
 msgid "You do not have permission to %(action)s the %(classname)s class."
 msgstr "你沒有權限來 %(action)s %(classname)s 類型。"
 
-#: ../roundup/cgi/actions.py:195
+#: ../roundup/cgi/actions.py:209
 msgid "No type specified"
 msgstr "沒有指定類型"
 
-#: ../roundup/cgi/actions.py:197
+#: ../roundup/cgi/actions.py:211
 msgid "No ID entered"
 msgstr "沒有輸入ID"
 
-#: ../roundup/cgi/actions.py:203
+#: ../roundup/cgi/actions.py:217
 #, python-format
 msgid "\"%(input)s\" is not an ID (%(classname)s ID required)"
 msgstr "\"%(input)s\" 不是一個 ID (要求 %(classname)s ID)"
 
-#: ../roundup/cgi/actions.py:215 ../roundup/cgi/actions.py:253
-#: ../roundup/cgi/actions.py:474 ../roundup/cgi/actions.py:805
-#: ../roundup/cgi/actions.py:851 ../roundup/cgi/actions.py:1051
-#: ../roundup/cgi/actions.py:1184 ../roundup/cgi/actions.py:215:253:1184
-#: :474:805 :851:1051
+#: ../roundup/cgi/actions.py:230 ../roundup/cgi/actions.py:268
+#: ../roundup/cgi/actions.py:494 ../roundup/cgi/actions.py:827
+#: ../roundup/cgi/actions.py:874 ../roundup/cgi/actions.py:1079
+#: ../roundup/cgi/actions.py:1236 ../roundup/cgi/actions.py:230:268:1236
+#: :494:827 :874:1079
 #, fuzzy
 msgid "Invalid request"
 msgstr "無效的格式"
 
-#: ../roundup/cgi/actions.py:233 ../roundup/cgi/actions.py:579
-#: ../roundup/cgi/actions.py:233:579
+#: ../roundup/cgi/actions.py:248 ../roundup/cgi/actions.py:600
+#: ../roundup/cgi/actions.py:248:600
 #, fuzzy, python-format
 msgid "You do not have permission to retire %(class)s"
 msgstr "你沒有權限來建立 %(class)s"
 
-#: ../roundup/cgi/actions.py:241
+#: ../roundup/cgi/actions.py:256
 #, python-format
 msgid "%(classname)s %(itemid)s has been retired"
 msgstr "%(classname)s %(itemid)s 已經被回收了"
 
-#: ../roundup/cgi/actions.py:265
+#: ../roundup/cgi/actions.py:280
 #, fuzzy, python-format
 msgid "You do not have permission to restore %(class)s"
 msgstr "你沒有權限來建立 %(class)s"
 
-#: ../roundup/cgi/actions.py:273
+#: ../roundup/cgi/actions.py:288
 #, fuzzy, python-format
 msgid "%(classname)s %(itemid)s has been restored"
 msgstr "%(classname)s %(itemid)s 已經被回收了"
 
-#: ../roundup/cgi/actions.py:316 ../roundup/cgi/actions.py:364
-#: ../roundup/cgi/actions.py:316:364
+#: ../roundup/cgi/actions.py:331 ../roundup/cgi/actions.py:381
+#: ../roundup/cgi/actions.py:331:381
 #, fuzzy
 msgid "You do not have permission to edit queries"
 msgstr "你沒有編輯用戶或角色的權限"
 
-#: ../roundup/cgi/actions.py:322 ../roundup/cgi/actions.py:371
-#: ../roundup/cgi/actions.py:322:371
+#: ../roundup/cgi/actions.py:337 ../roundup/cgi/actions.py:388
+#: ../roundup/cgi/actions.py:337:388
 #, fuzzy
 msgid "You do not have permission to store queries"
 msgstr "你沒有編輯用戶或角色的權限"
 
-#: ../roundup/cgi/actions.py:343
+#: ../roundup/cgi/actions.py:358
 #, python-format
 msgid "You already own a query named '%s'. Please choose another name."
 msgstr ""
 
-#: ../roundup/cgi/actions.py:508 ../roundup/cgi/actions.py:711
-#: ../roundup/cgi/actions.py:508:711
+#: ../roundup/cgi/actions.py:441
+#, fuzzy
+msgid "Invalid number: "
+msgstr "無效的格式"
+
+#: ../roundup/cgi/actions.py:451
+#, fuzzy
+msgid "Invalid integer: "
+msgstr "無效登錄"
+
+#: ../roundup/cgi/actions.py:528 ../roundup/cgi/actions.py:731
+#: ../roundup/cgi/actions.py:528:731
 #, python-format
 msgid "You do not have permission to create %(class)s"
 msgstr "你沒有權限來建立 %(class)s"
 
-#: ../roundup/cgi/actions.py:521
+#: ../roundup/cgi/actions.py:541
 #, python-format
 msgid "Not enough values on line %(line)s"
 msgstr "在 %(line)s 行沒有足夠的值"
 
-#: ../roundup/cgi/actions.py:531 ../roundup/cgi/actions.py:699
-#: ../roundup/cgi/actions.py:531:699
+#: ../roundup/cgi/actions.py:552 ../roundup/cgi/actions.py:719
+#: ../roundup/cgi/actions.py:552:719
 #, python-format
 msgid "You do not have permission to edit %(class)s"
 msgstr "你沒有權限來編輯 %(class)s"
 
-#: ../roundup/cgi/actions.py:586
+#: ../roundup/cgi/actions.py:607
 msgid "Items edited OK"
 msgstr "項目編輯成功"
 
-#: ../roundup/cgi/actions.py:645
+#: ../roundup/cgi/actions.py:667
 #, python-format
 msgid "%(class)s %(id)s %(properties)s edited ok"
 msgstr "%(class)s %(id)s %(properties)s 編輯成功"
 
-#: ../roundup/cgi/actions.py:665
+#: ../roundup/cgi/actions.py:685
 #, python-format
 msgid "%(class)s %(id)s created"
 msgstr "%(class)s %(id)s 被建立"
 
-#: ../roundup/cgi/actions.py:790
+#: ../roundup/cgi/actions.py:812
 #, python-format
 msgid ""
 "Edit Error: someone else has edited this %s (%s). View <a target=\"_blank\" "
 "href=\"%s%s\">their changes</a> in a new window."
 msgstr ""
 
-#: ../roundup/cgi/actions.py:822
+#: ../roundup/cgi/actions.py:844
 #, python-format
 msgid "Edit Error: %s"
 msgstr "編輯錯誤:%s"
 
 # ../roundup/cgi/actions.py:549 :559 :730 :749
-#: ../roundup/cgi/actions.py:857 ../roundup/cgi/actions.py:868
-#: ../roundup/cgi/actions.py:1057 ../roundup/cgi/actions.py:1070
-#: ../roundup/cgi/actions.py:857:868 :1057:1070
+#: ../roundup/cgi/actions.py:880 ../roundup/cgi/actions.py:891
+#: ../roundup/cgi/actions.py:1094 ../roundup/cgi/actions.py:1107
+#: ../roundup/cgi/actions.py:880:891 :1094:1107
 #, python-format
 msgid "Error: %s"
 msgstr "錯誤:%s"
 
-#: ../roundup/cgi/actions.py:901
+#: ../roundup/cgi/actions.py:925
 msgid ""
 "Invalid One Time Key!\n"
 "(a Mozilla bug may cause this message to show up erroneously, please check "
@@ -1382,70 +1393,75 @@
 "Invalid One Time Key!\n"
 "(一個 Mozilla 的錯誤可能會錯誤地引發這個消息,你檢查你的郵件)"
 
-#: ../roundup/cgi/actions.py:951
+#: ../roundup/cgi/actions.py:976
 #, python-format
 msgid "Password reset and email sent to %s"
 msgstr "口令被重設,郵件被發給 %s"
 
-#: ../roundup/cgi/actions.py:960
+#: ../roundup/cgi/actions.py:985
 msgid "Unknown username"
 msgstr "未知用戶名"
 
-#: ../roundup/cgi/actions.py:968
+#: ../roundup/cgi/actions.py:993
 msgid "Unknown email address"
 msgstr "未知郵件地址"
 
-#: ../roundup/cgi/actions.py:973
+#: ../roundup/cgi/actions.py:998
 msgid "You need to specify a username or address"
 msgstr "你需要指定用戶名或地址"
 
-#: ../roundup/cgi/actions.py:999
+#: ../roundup/cgi/actions.py:1024
 #, python-format
 msgid "Email sent to primary notification address for %s."
 msgstr ""
 
-#: ../roundup/cgi/actions.py:1001
+#: ../roundup/cgi/actions.py:1026
 #, fuzzy, python-format
 msgid "Email sent to %s."
 msgstr "郵件發給 %s"
 
-#: ../roundup/cgi/actions.py:1015
+#: ../roundup/cgi/actions.py:1041
 msgid "You are now registered, welcome!"
 msgstr "你已經註冊,歡迎!"
 
-#: ../roundup/cgi/actions.py:1146
+#: ../roundup/cgi/actions.py:1131
+#, python-format
+msgid "Username '%s' is already used."
+msgstr ""
+
+#: ../roundup/cgi/actions.py:1196
 msgid "It is not permitted to supply roles at registration."
 msgstr "不允許在註冊時指供角色。"
 
-#: ../roundup/cgi/actions.py:1159
+#: ../roundup/cgi/actions.py:1210
 msgid "You are logged out"
 msgstr "你已經註銷"
 
-#: ../roundup/cgi/actions.py:1188
+#: ../roundup/cgi/actions.py:1240
 msgid "Username required"
 msgstr "需要用戶名"
 
-#: ../roundup/cgi/actions.py:1267
+#: ../roundup/cgi/actions.py:1319
 #, python-format
 msgid "Logins occurring too fast. Please wait: %s seconds."
 msgstr ""
 
-#: ../roundup/cgi/actions.py:1306 ../roundup/cgi/actions.py:1310
-#: ../roundup/cgi/actions.py:1306:1310
+#: ../roundup/cgi/actions.py:1358 ../roundup/cgi/actions.py:1362
+#: ../roundup/cgi/actions.py:1358:1362
 msgid "Invalid login"
 msgstr "無效登錄"
 
-#: ../roundup/cgi/actions.py:1316
+#: ../roundup/cgi/actions.py:1368
 msgid "You do not have permission to login"
 msgstr "你沒有登錄的權限"
 
-#: ../roundup/cgi/actions.py:1358 ../roundup/cgi/actions.py:1513
-#: ../roundup/cgi/actions.py:1358:1513
+#: ../roundup/cgi/actions.py:1411 ../roundup/cgi/actions.py:1576
+#: ../roundup/cgi/actions.py:1411:1576
 #, python-format
 msgid "Column \"%(column)s\" not found in %(class)s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:1564
+#: ../roundup/cgi/actions.py:1632
 #, fuzzy, python-format
 msgid "You do not have permission to view %(class)s"
 msgstr "你沒有權限來編輯 %(class)s"
@@ -1542,11 +1558,11 @@
 "</body></html>"
 msgstr ""
 
-#: ../roundup/cgi/client.py:798
+#: ../roundup/cgi/client.py:794
 msgid "Form Error: "
 msgstr "表格錯誤:"
 
-#: ../roundup/cgi/client.py:888
+#: ../roundup/cgi/client.py:884
 #, python-format
 msgid "Unrecognized charset: %r"
 msgstr "無法識別的字符集:%r"
@@ -1685,36 +1701,36 @@
 msgid "You are not allowed to view this file."
 msgstr "你不允許查看此頁"
 
-#: ../roundup/cgi/client.py:1865
+#: ../roundup/cgi/client.py:1876
 #, python-format
 msgid "%(starttag)sTime elapsed: %(seconds)fs%(endtag)s\n"
 msgstr ""
 
-#: ../roundup/cgi/client.py:1869
+#: ../roundup/cgi/client.py:1880
 #, python-format
 msgid ""
 "%(starttag)sCache hits: %(cache_hits)d, misses %(cache_misses)d. Loading "
 "items: %(get_items)f secs. Filtering: %(filtering)f secs.%(endtag)s\n"
 msgstr ""
 
-#: ../roundup/cgi/form_parser.py:289
+#: ../roundup/cgi/form_parser.py:290
 #, fuzzy, python-format
 msgid "link \"%(key)s\" value \"%(entry)s\" not a designator"
 msgstr "鏈接 \"%(key)s\" 的值 \"%(value)s\" 不是一個 指示器(designator)"
 
-#: ../roundup/cgi/form_parser.py:307
+#: ../roundup/cgi/form_parser.py:308
 #, python-format
 msgid "%(class)s %(property)s is not a link or multilink property"
 msgstr "%(class)s %(property)s 不是一個 Link 或 MultiLink 屬性"
 
-#: ../roundup/cgi/form_parser.py:319
+#: ../roundup/cgi/form_parser.py:320
 #, fuzzy, python-format
 msgid ""
 "The form action claims to require property \"%(property)s\" which doesn't "
 "exist"
 msgstr "你提交了一個對於不存在屬性 \"%(property)s\" 的一個操作 %(action)s"
 
-#: ../roundup/cgi/form_parser.py:341
+#: ../roundup/cgi/form_parser.py:342
 #, python-format
 msgid ""
 "You have submitted a %(action)s action for the property \"%(property)s\" "
@@ -1722,162 +1738,175 @@
 msgstr "你提交了一個對於不存在屬性 \"%(property)s\" 的一個操作 %(action)s"
 
 # ../roundup/cgi/form_parser.py:331 :357
-#: ../roundup/cgi/form_parser.py:366 ../roundup/cgi/form_parser.py:394
-#: ../roundup/cgi/form_parser.py:366:394
+#: ../roundup/cgi/form_parser.py:367 ../roundup/cgi/form_parser.py:395
+#: ../roundup/cgi/form_parser.py:367:395
 #, python-format
 msgid "You have submitted more than one value for the %s property"
 msgstr "你需要提交針對 %s 屬性的一個以上的值"
 
 # ../roundup/cgi/form_parser.py:354 :360
-#: ../roundup/cgi/form_parser.py:391 ../roundup/cgi/form_parser.py:397
-#: ../roundup/cgi/form_parser.py:391:397
+#: ../roundup/cgi/form_parser.py:392 ../roundup/cgi/form_parser.py:398
+#: ../roundup/cgi/form_parser.py:392:398
 msgid "Password and confirmation text do not match"
 msgstr "口令和確認文本不匹配"
 
-#: ../roundup/cgi/form_parser.py:415
+#: ../roundup/cgi/form_parser.py:416
 msgid "Not a file attachment"
 msgstr ""
 
-#: ../roundup/cgi/form_parser.py:458
+#: ../roundup/cgi/form_parser.py:460
 #, python-format
 msgid "property \"%(propname)s\": \"%(value)s\" not currently in list"
 msgstr "屬性 \"%(propname)s\": \"%(value)s\" 當前不在列表中"
 
-#: ../roundup/cgi/form_parser.py:578
+#: ../roundup/cgi/form_parser.py:582
 #, fuzzy, python-format
 msgid "Required %(class)s property %(property)s not supplied"
 msgid_plural "Required %(class)s properties %(property)s not supplied"
 msgstr[0] "要求的 %(class)s 屬性 %(property)s 沒有被提供"
 
-#: ../roundup/cgi/templating.py:115
+#: ../roundup/cgi/templating.py:184
 #, python-format
 msgid "You are not allowed to %(action)s items of class %(class)s"
 msgstr "你不允許 %(action)s 類別 %(class)s 的項目"
 
-#: ../roundup/cgi/templating.py:699
+#: ../roundup/cgi/templating.py:791
 msgid "(list)"
 msgstr "(列表)"
 
-#: ../roundup/cgi/templating.py:771
+#: ../roundup/cgi/templating.py:863
 msgid "Submit New Entry"
 msgstr "提交新的項"
 
-#: ../roundup/cgi/templating.py:790 ../roundup/cgi/templating.py:948
-#: ../roundup/cgi/templating.py:1502 ../roundup/cgi/templating.py:1531
-#: ../roundup/cgi/templating.py:1551 ../roundup/cgi/templating.py:1564
-#: ../roundup/cgi/templating.py:1614 ../roundup/cgi/templating.py:1637
-#: ../roundup/cgi/templating.py:1644 ../roundup/cgi/templating.py:1680
-#: ../roundup/cgi/templating.py:1717 ../roundup/cgi/templating.py:1750
-#: ../roundup/cgi/templating.py:1839 ../roundup/cgi/templating.py:1860
-#: ../roundup/cgi/templating.py:1950 ../roundup/cgi/templating.py:1970
-#: ../roundup/cgi/templating.py:1988 ../roundup/cgi/templating.py:2020
-#: ../roundup/cgi/templating.py:2030 ../roundup/cgi/templating.py:2094
-#: ../roundup/cgi/templating.py:2341 ../roundup/cgi/templating.py:790:948
-#: :1502:1531 :1551:1564 :1614:1637 :1644:1680 :1717:1750 :1839:1860 :1950:1970
-#: :1988:2020 :2030:2094:2341
+#: ../roundup/cgi/templating.py:885 ../roundup/cgi/templating.py:1046
+#: ../roundup/cgi/templating.py:1612 ../roundup/cgi/templating.py:1641
+#: ../roundup/cgi/templating.py:1661 ../roundup/cgi/templating.py:1674
+#: ../roundup/cgi/templating.py:1711 ../roundup/cgi/templating.py:1760
+#: ../roundup/cgi/templating.py:1783 ../roundup/cgi/templating.py:1790
+#: ../roundup/cgi/templating.py:1826 ../roundup/cgi/templating.py:1863
+#: ../roundup/cgi/templating.py:1896 ../roundup/cgi/templating.py:1985
+#: ../roundup/cgi/templating.py:2006 ../roundup/cgi/templating.py:2096
+#: ../roundup/cgi/templating.py:2116 ../roundup/cgi/templating.py:2134
+#: ../roundup/cgi/templating.py:2166 ../roundup/cgi/templating.py:2176
+#: ../roundup/cgi/templating.py:2240 ../roundup/cgi/templating.py:2487
+#: ../roundup/cgi/templating.py:885:1046 :1612:1641 :1661:1674 :1711:1760
+#: :1783:1790 :1826:1863 :1896:1985 :2006:2096 :2116:2134 :2166:2176 :2240:2487
 msgid "[hidden]"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:791
+#: ../roundup/cgi/templating.py:886
 msgid "New node - no history"
 msgstr "新記錄 - 無歷史"
 
-#: ../roundup/cgi/templating.py:916
+#: ../roundup/cgi/templating.py:1011
 msgid "Submit Changes"
 msgstr "提交變動"
 
-#: ../roundup/cgi/templating.py:985
+#: ../roundup/cgi/templating.py:1083
 msgid "<em>The indicated property no longer exists</em>"
 msgstr "<em>指示的屬性不再存在</em>"
 
-#: ../roundup/cgi/templating.py:986
+#: ../roundup/cgi/templating.py:1084
 #, python-format
 msgid "<em>%s: %s</em>\n"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1021
+#: ../roundup/cgi/templating.py:1119
 #, python-format
 msgid "The linked class %(classname)s no longer exists"
 msgstr "鏈接的類別 %(classname)s 不再存在"
 
 # ../roundup/cgi/templating.py:872 :893
-#: ../roundup/cgi/templating.py:1059 ../roundup/cgi/templating.py:1085
-#: ../roundup/cgi/templating.py:1059:1085
+#: ../roundup/cgi/templating.py:1157 ../roundup/cgi/templating.py:1183
+#: ../roundup/cgi/templating.py:1157:1183
 msgid "<strike>The linked node no longer exists</strike>"
 msgstr "<strike>鏈接的結點不再存在</strike>"
 
-#: ../roundup/cgi/templating.py:1146
+#: ../roundup/cgi/templating.py:1244
 #, python-format
 msgid "%s: (no value)"
 msgstr "%s: (無值)"
 
-#: ../roundup/cgi/templating.py:1162
+#: ../roundup/cgi/templating.py:1260
 #, fuzzy, python-format
 msgid ""
 "<strong><em>This event %s is not handled by the history display!</em></"
 "strong>"
 msgstr "<strong><em>這個事件不能被歷史顯示所處理!</em></strong>"
 
-#: ../roundup/cgi/templating.py:1175
+#: ../roundup/cgi/templating.py:1273
 msgid "<tr><td colspan=4><strong>Note:</strong></td></tr>"
 msgstr "<tr><td colspan=4><strong>注意:</strong></td></tr>"
 
-#: ../roundup/cgi/templating.py:1184
+#: ../roundup/cgi/templating.py:1282
 msgid "History"
 msgstr "歷史"
 
-#: ../roundup/cgi/templating.py:1186
+#: ../roundup/cgi/templating.py:1284
 msgid "<th>Date</th>"
 msgstr "<th>日期</th>"
 
-#: ../roundup/cgi/templating.py:1187
+#: ../roundup/cgi/templating.py:1285
 msgid "<th>User</th>"
 msgstr "<th>用戶</th>"
 
-#: ../roundup/cgi/templating.py:1188
+#: ../roundup/cgi/templating.py:1286
 msgid "<th>Action</th>"
 msgstr "<th>動作</th>"
 
-#: ../roundup/cgi/templating.py:1189
+#: ../roundup/cgi/templating.py:1287
 msgid "<th>Args</th>"
 msgstr "<th>參數</th>"
 
-#: ../roundup/cgi/templating.py:1237
+#: ../roundup/cgi/templating.py:1335
 #, fuzzy, python-format
 msgid "Copy of %(class)s %(id)s"
 msgstr "%(class)s %(id)s 被建立"
 
-#: ../roundup/cgi/templating.py:1754 ../roundup/cgi/templating.py:1787
-#: ../roundup/cgi/templating.py:1128:1754:1787
+#: ../roundup/cgi/templating.py:1900 ../roundup/cgi/templating.py:1933
+#: ../roundup/cgi/templating.py:1226:1900:1933
 msgid "No"
 msgstr "否"
 
-#: ../roundup/cgi/templating.py:1754 ../roundup/cgi/templating.py:1782
-#: ../roundup/cgi/templating.py:1128:1754:1782
+#: ../roundup/cgi/templating.py:1900 ../roundup/cgi/templating.py:1928
+#: ../roundup/cgi/templating.py:1226:1900:1928
 msgid "Yes"
 msgstr "是"
 
-#: ../roundup/cgi/templating.py:1908
+#: ../roundup/cgi/templating.py:2054
 msgid ""
 "default value for DateHTMLProperty must be either DateHTMLProperty or string "
 "date representation."
 msgstr "DateHTMLProperty 的預設值或者是 DateHTMLProperty 或字符串的日期表示。"
 
-#: ../roundup/cgi/templating.py:2074
+#: ../roundup/cgi/templating.py:2220
 #, python-format
 msgid "Attempt to look up %(attr)s on a missing value"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:2085
+#: ../roundup/cgi/templating.py:2231
 #, python-format
 msgid "Attempt to look up %(item)s on a missing value"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:2188
+#: ../roundup/cgi/templating.py:2334
 #, python-format
 msgid "<option %svalue=\"-1\">- no selection -</option>"
 msgstr "<option %svalue=\"-1\">- 未選擇 -</option>"
 
+#: ../roundup/cgi/timestamp.py:19
+msgid "Form is corrupted."
+msgstr ""
+
+#: ../roundup/cgi/timestamp.py:28
+#, python-format
+msgid "Form is corrupted, missing: %s."
+msgstr ""
+
+#: ../roundup/cgi/timestamp.py:30
+msgid "Responding to form too quickly."
+msgstr ""
+
 #: ../roundup/date.py:384
 #, python-format
 msgid ""
@@ -1998,108 +2027,108 @@
 msgid "in %s"
 msgstr "在 %s"
 
-#: ../roundup/hyperdb.py:92
+#: ../roundup/hyperdb.py:103
 #, fuzzy, python-format
 msgid "property %s: %s"
 msgstr "錯誤:%s: %s"
 
-#: ../roundup/hyperdb.py:114
+#: ../roundup/hyperdb.py:130
 #, python-format
 msgid "property %s: %r is an invalid date (%s)"
 msgstr ""
 
-#: ../roundup/hyperdb.py:131
+#: ../roundup/hyperdb.py:151
 #, python-format
 msgid "property %s: %r is an invalid date interval (%s)"
 msgstr ""
 
-#: ../roundup/hyperdb.py:318
+#: ../roundup/hyperdb.py:349
 #, python-format
 msgid "property %s: %r is not a number"
 msgstr ""
 
-#: ../roundup/hyperdb.py:329
+#: ../roundup/hyperdb.py:361
 #, python-format
 msgid "property %s: %r is not an integer"
 msgstr ""
 
-#: ../roundup/hyperdb.py:342
+#: ../roundup/hyperdb.py:378
 #, python-format
 msgid "\"%s\" not a node designator"
 msgstr ""
 
-#: ../roundup/hyperdb.py:1211 ../roundup/hyperdb.py:1219
-#: ../roundup/hyperdb.py:1211:1219
+#: ../roundup/hyperdb.py:1258 ../roundup/hyperdb.py:1266
+#: ../roundup/hyperdb.py:1258:1266
 #, fuzzy, python-format
 msgid "Not a property name: %s"
 msgstr "不是日期格式:%s"
 
-#: ../roundup/hyperdb.py:1661
+#: ../roundup/hyperdb.py:1707
 #, python-format
 msgid "property %s: %r is not a %s."
 msgstr ""
 
-#: ../roundup/hyperdb.py:1664
+#: ../roundup/hyperdb.py:1710
 #, python-format
 msgid "you may only enter ID values for property %s"
 msgstr ""
 
-#: ../roundup/hyperdb.py:1696
+#: ../roundup/hyperdb.py:1744
 #, python-format
 msgid "%r is not a property of %s"
 msgstr ""
 
-#: ../roundup/init.py:136
+#: ../roundup/init.py:139
 #, python-format
 msgid ""
 "WARNING: directory '%s'\n"
 "\tcontains old-style template - ignored"
 msgstr ""
 
-#: ../roundup/mailgw.py:184 ../roundup/mailgw.py:197
-#: ../roundup/mailgw.py:184:197
+#: ../roundup/mailgw.py:197 ../roundup/mailgw.py:210
+#: ../roundup/mailgw.py:197:210
 #, python-format
 msgid "Message signed with unknown key: %s"
 msgstr ""
 
-#: ../roundup/mailgw.py:187
+#: ../roundup/mailgw.py:200
 #, python-format
 msgid "Message signed with an expired key: %s"
 msgstr ""
 
-#: ../roundup/mailgw.py:190
+#: ../roundup/mailgw.py:203
 #, python-format
 msgid "Message signed with a revoked key: %s"
 msgstr ""
 
-#: ../roundup/mailgw.py:193
+#: ../roundup/mailgw.py:206
 msgid "Invalid PGP signature detected."
 msgstr ""
 
-#: ../roundup/mailgw.py:199
+#: ../roundup/mailgw.py:213
 #, fuzzy
 msgid "Unsigned Message"
 msgstr "新信息"
 
-#: ../roundup/mailgw.py:429
+#: ../roundup/mailgw.py:446
 msgid "Unknown multipart/encrypted version."
 msgstr ""
 
-#: ../roundup/mailgw.py:438
+#: ../roundup/mailgw.py:455
 msgid "Unable to decrypt your message."
 msgstr ""
 
-#: ../roundup/mailgw.py:465
+#: ../roundup/mailgw.py:482
 msgid "No PGP signature found in message."
 msgstr ""
 
-#: ../roundup/mailgw.py:537
+#: ../roundup/mailgw.py:555
 msgid ""
 "\n"
 "Emails to Roundup trackers must include a Subject: line!\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:646
+#: ../roundup/mailgw.py:668
 #, python-format
 msgid ""
 "\n"
@@ -2116,7 +2145,7 @@
 "Subject was: '%(subject)s'\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:684
+#: ../roundup/mailgw.py:706
 #, python-format
 msgid ""
 "\n"
@@ -2127,7 +2156,7 @@
 "Subject was: \"%(subject)s\"\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:692
+#: ../roundup/mailgw.py:714
 #, python-format
 msgid ""
 "\n"
@@ -2144,7 +2173,7 @@
 "Subject was: '%(subject)s'\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:730
+#: ../roundup/mailgw.py:750
 #, python-format
 msgid ""
 "\n"
@@ -2155,7 +2184,7 @@
 "Subject was: \"%(subject)s\"\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:763
+#: ../roundup/mailgw.py:783
 #, python-format
 msgid ""
 "\n"
@@ -2165,7 +2194,7 @@
 "Subject was: \"%(subject)s\"\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:808
+#: ../roundup/mailgw.py:828
 #, python-format
 msgid ""
 "\n"
@@ -2174,22 +2203,22 @@
 "Unknown address: %(from_address)s\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:816
+#: ../roundup/mailgw.py:836
 #, fuzzy
 msgid "You are not permitted to access this tracker."
 msgstr "你不允許查看此頁"
 
-#: ../roundup/mailgw.py:827
+#: ../roundup/mailgw.py:847
 #, fuzzy, python-format
 msgid "You are not permitted to edit %(classname)s."
 msgstr "你沒有權限來編輯 %(class)s"
 
-#: ../roundup/mailgw.py:833
+#: ../roundup/mailgw.py:853
 #, fuzzy, python-format
 msgid "You are not permitted to create %(classname)s."
 msgstr "你沒有權限來建立 %(class)s"
 
-#: ../roundup/mailgw.py:914
+#: ../roundup/mailgw.py:935
 #, python-format
 msgid ""
 "\n"
@@ -2199,40 +2228,40 @@
 "Subject was: \"%(subject)s\"\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:966
+#: ../roundup/mailgw.py:987
 msgid "This tracker has been configured to require all email be PGP encrypted."
 msgstr ""
 
-#: ../roundup/mailgw.py:1003
+#: ../roundup/mailgw.py:1024
 msgid ""
 "\n"
 "This tracker has been configured to require all email be PGP signed or\n"
 "encrypted."
 msgstr ""
 
-#: ../roundup/mailgw.py:1033
+#: ../roundup/mailgw.py:1055
 #, fuzzy
 msgid "You are not permitted to create files."
 msgstr "不允許編輯查詢"
 
-#: ../roundup/mailgw.py:1047
+#: ../roundup/mailgw.py:1069
 #, fuzzy, python-format
 msgid "You are not permitted to add files to %(classname)s."
 msgstr "你沒有權限來 %(action)s %(classname)s 類型。"
 
-#: ../roundup/mailgw.py:1077
+#: ../roundup/mailgw.py:1099
 msgid ""
 "\n"
 "Roundup requires the submission to be plain text. The message parser could\n"
 "not find a text/plain part to use.\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:1088
+#: ../roundup/mailgw.py:1112
 #, fuzzy
 msgid "You are not permitted to create messages."
 msgstr "不允許編輯查詢"
 
-#: ../roundup/mailgw.py:1096
+#: ../roundup/mailgw.py:1120
 #, python-format
 msgid ""
 "\n"
@@ -2240,22 +2269,22 @@
 "%(error)s\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:1104
+#: ../roundup/mailgw.py:1128
 #, fuzzy, python-format
 msgid "You are not permitted to add messages to %(classname)s."
 msgstr "你沒有權限來 %(action)s %(classname)s 類型。"
 
-#: ../roundup/mailgw.py:1126
+#: ../roundup/mailgw.py:1150
 #, fuzzy, python-format
 msgid "You are not permitted to edit property %(prop)s of class %(classname)s."
 msgstr "你不允許 %(action)s 類別 %(class)s 的項目"
 
-#: ../roundup/mailgw.py:1135
+#: ../roundup/mailgw.py:1159
 #, fuzzy, python-format
 msgid "You are not permitted to set property %(prop)s of class %(classname)s."
 msgstr "你不允許 %(action)s 類別 %(class)s 的項目"
 
-#: ../roundup/mailgw.py:1141
+#: ../roundup/mailgw.py:1167
 #, python-format
 msgid ""
 "\n"
@@ -2263,7 +2292,7 @@
 "   %(message)s\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:1607
+#: ../roundup/mailgw.py:1633
 #, python-format
 msgid ""
 "\n"
@@ -2272,7 +2301,7 @@
 "  %(clsname)s\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:1638
+#: ../roundup/mailgw.py:1664
 #, python-format
 msgid ""
 "\n"
@@ -2281,96 +2310,101 @@
 "  %(errors)s\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:1659
+#: ../roundup/mailgw.py:1685
 msgid "not of form [arg=value,value,...;arg=value,value,...]"
 msgstr ""
 
-#: ../roundup/rest.py:1781
+#: ../roundup/rest.py:1830
 #, python-format
 msgid "Api rate limits exceeded. Please wait: %s seconds."
 msgstr ""
 
-#: ../roundup/roundupdb.py:203
+#: ../roundup/roundupdb.py:135
+#, python-format
+msgid "Username '%s' already exists."
+msgstr ""
+
+#: ../roundup/roundupdb.py:219
 msgid "files"
 msgstr "文件"
 
-#: ../roundup/roundupdb.py:203
+#: ../roundup/roundupdb.py:219
 msgid "messages"
 msgstr "信息"
 
-#: ../roundup/roundupdb.py:203
+#: ../roundup/roundupdb.py:219
 msgid "nosy"
 msgstr "雜事"
 
-#: ../roundup/roundupdb.py:203
+#: ../roundup/roundupdb.py:219
 msgid "superseder"
 msgstr "延期"
 
-#: ../roundup/roundupdb.py:203
+#: ../roundup/roundupdb.py:219
 msgid "title"
 msgstr "標題"
 
-#: ../roundup/roundupdb.py:204
+#: ../roundup/roundupdb.py:220
 msgid "assignedto"
 msgstr "分配給"
 
-#: ../roundup/roundupdb.py:204
+#: ../roundup/roundupdb.py:220
 #, fuzzy
 msgid "keyword"
 msgstr "關鍵字"
 
-#: ../roundup/roundupdb.py:204
+#: ../roundup/roundupdb.py:220
 msgid "priority"
 msgstr "優先級"
 
-#: ../roundup/roundupdb.py:204
+#: ../roundup/roundupdb.py:220
 msgid "status"
 msgstr "狀態"
 
-#: ../roundup/roundupdb.py:207
+#: ../roundup/roundupdb.py:223
 msgid "activity"
 msgstr "活躍度"
 
 #. following properties are common for all hyperdb classes
 #. they are listed here to keep things in one place
-#: ../roundup/roundupdb.py:207
+#: ../roundup/roundupdb.py:223
 msgid "actor"
 msgstr "執行人"
 
-#: ../roundup/roundupdb.py:207
+#: ../roundup/roundupdb.py:223
 msgid "creation"
 msgstr "建立"
 
-#: ../roundup/roundupdb.py:207
+#: ../roundup/roundupdb.py:223
 msgid "creator"
 msgstr "建立者"
 
-#: ../roundup/roundupdb.py:391
+#: ../roundup/roundupdb.py:412
 #, python-format
 msgid "No key for \"%(adr)s\" in keyring"
 msgstr ""
 
-#: ../roundup/roundupdb.py:461
+#: ../roundup/roundupdb.py:484
 #, python-format
 msgid "New submission from %(authname)s%(authaddr)s:"
 msgstr ""
 
-#: ../roundup/roundupdb.py:464
+#: ../roundup/roundupdb.py:487
 #, python-format
 msgid "%(authname)s%(authaddr)s added the comment:"
 msgstr ""
 
-#: ../roundup/roundupdb.py:467
+#: ../roundup/roundupdb.py:490
 #, python-format
 msgid "Change by %(authname)s%(authaddr)s:"
 msgstr ""
 
-#: ../roundup/roundupdb.py:486
+#: ../roundup/roundupdb.py:509
 #, python-format
 msgid "File '%(filename)s' not attached - you can download it from %(link)s."
 msgstr ""
 
-#: ../roundup/roundupdb.py:852
+#: ../roundup/roundupdb.py:886
 #, python-format
 msgid ""
 "\n"
@@ -2380,27 +2414,27 @@
 "%(old)s"
 msgstr ""
 
-#: ../roundup/scripts/roundup_demo.py:48
+#: ../roundup/scripts/roundup_demo.py:49
 #, python-format
 msgid "Enter directory path to create demo tracker [%s]: "
 msgstr "輸入目錄來建立演示tracker [%s]:"
 
-#: ../roundup/scripts/roundup_demo.py:53
+#: ../roundup/scripts/roundup_demo.py:54
 #, python-format
 msgid "Enter tracker template to use (one of (%s)) [%s]: "
 msgstr ""
 
-#: ../roundup/scripts/roundup_gettext.py:34
+#: ../roundup/scripts/roundup_gettext.py:35
 #, python-format
 msgid "Usage: %(program)s <tracker home>"
 msgstr ""
 
-#: ../roundup/scripts/roundup_gettext.py:49
+#: ../roundup/scripts/roundup_gettext.py:51
 #, python-format
 msgid "No tracker templates found in directory %s"
 msgstr ""
 
-#: ../roundup/scripts/roundup_mailgw.py:49
+#: ../roundup/scripts/roundup_mailgw.py:50
 #, fuzzy, python-format
 msgid ""
 "Usage: %(program)s [-v] [-c class] [[-C class] -S field=value]* [instance "
@@ -2542,20 +2576,16 @@
 "    imaps username:password@server [mailbox]\n"
 "\n"
 
-#: ../roundup/scripts/roundup_mailgw.py:171
+#: ../roundup/scripts/roundup_mailgw.py:174
 msgid "Error: not enough source specification information"
 msgstr "錯誤:沒有足夠的源協議資訊"
 
-#: ../roundup/scripts/roundup_mailgw.py:200
+#: ../roundup/scripts/roundup_mailgw.py:203
 #, fuzzy, python-format
 msgid "Error: %s specification not valid"
 msgstr "錯誤:pop協議無效"
 
-#: ../roundup/scripts/roundup_mailgw.py:206
-msgid "Error: a later version of python is required"
-msgstr ""
-
-#: ../roundup/scripts/roundup_mailgw.py:222
+#: ../roundup/scripts/roundup_mailgw.py:223
 #, fuzzy
 msgid ""
 "Error: The source must be either \"mailbox\", \"pop\", \"pops\", \"apop\", "
@@ -2563,11 +2593,11 @@
 msgstr ""
 "錯誤:源必須是 \"mailbox\", \"pop\", \"apop\", \"imap\" 或者 \"imaps\" 之一"
 
-#: ../roundup/scripts/roundup_server.py:108
+#: ../roundup/scripts/roundup_server.py:109
 msgid "WARNING: generating temporary SSL certificate"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:288
+#: ../roundup/scripts/roundup_server.py:293
 msgid ""
 "<html><head><title>Roundup trackers index</title></head>\n"
 "<body><h1>Roundup trackers index</h1><ol>\n"
@@ -2575,52 +2605,52 @@
 "<html><head><title>Roundup tracker 索引</title></head>\n"
 "<body><h1>Roundup tracker 索引</h1><ol>\n"
 
-#: ../roundup/scripts/roundup_server.py:496
-#, python-format
-msgid "Error: %s: %s"
-msgstr "錯誤:%s: %s"
-
-#: ../roundup/scripts/roundup_server.py:506
+#: ../roundup/scripts/roundup_server.py:502
+#, fuzzy, python-format
+msgid "Error: %(type)s: %(value)s"
+msgstr "%(key)s: %(value)s (關鍵屬性)"
+
+#: ../roundup/scripts/roundup_server.py:514
 msgid "WARNING: ignoring \"-g\" argument, not root"
 msgstr "警告:忽略 \"-g\" 參數,不是 root"
 
-#: ../roundup/scripts/roundup_server.py:512
+#: ../roundup/scripts/roundup_server.py:520
 msgid "Can't change groups - no grp module"
 msgstr "不能修改組 - 無 grp 模塊"
 
-#: ../roundup/scripts/roundup_server.py:521
+#: ../roundup/scripts/roundup_server.py:529
 #, python-format
 msgid "Group %(group)s doesn't exist"
 msgstr "組 %(group)s 不存在"
 
-#: ../roundup/scripts/roundup_server.py:532
+#: ../roundup/scripts/roundup_server.py:541
 msgid "Can't run as root!"
 msgstr "不能以 root 運行!"
 
-#: ../roundup/scripts/roundup_server.py:535
+#: ../roundup/scripts/roundup_server.py:544
 msgid "WARNING: ignoring \"-u\" argument, not root"
 msgstr "警告:忽略 \"-u\" 參數,不是 root"
 
-#: ../roundup/scripts/roundup_server.py:541
+#: ../roundup/scripts/roundup_server.py:550
 msgid "Can't change users - no pwd module"
 msgstr "不能修改用戶 - 無 pwd 模塊"
 
-#: ../roundup/scripts/roundup_server.py:550
+#: ../roundup/scripts/roundup_server.py:559
 #, python-format
 msgid "User %(user)s doesn't exist"
 msgstr "用戶 %(user)s 不存在"
 
-#: ../roundup/scripts/roundup_server.py:732
+#: ../roundup/scripts/roundup_server.py:742
 #, python-format
 msgid "Multiprocess mode \"%s\" is not available, switching to single-process"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:759
+#: ../roundup/scripts/roundup_server.py:769
 #, python-format
 msgid "Unable to bind to port %s, port already in use."
 msgstr "無法綁定到端口 %s, 端口已經被佔用。"
 
-#: ../roundup/scripts/roundup_server.py:827
+#: ../roundup/scripts/roundup_server.py:841
 #, fuzzy
 msgid ""
 " -c <Command>  Windows Service options.\n"
@@ -2637,7 +2667,7 @@
 "               變量上配置一個tracker。這個選項與其經選項是互斥的。打入\n"
 "               \"roundup-server -c help\" 來瞭解Windows服務的規範。"
 
-#: ../roundup/scripts/roundup_server.py:834
+#: ../roundup/scripts/roundup_server.py:848
 msgid ""
 " -u <UID>      runs the Roundup web server as this UID\n"
 " -g <GID>      runs the Roundup web server as this GID\n"
@@ -2651,7 +2681,7 @@
 "去。\n"
 "               如果使用了 -d 選項,則 -l 選項 *必須* 要指定。"
 
-#: ../roundup/scripts/roundup_server.py:841
+#: ../roundup/scripts/roundup_server.py:855
 #, fuzzy, python-format
 msgid ""
 "%(message)sUsage: roundup-server [options] [name=tracker home]*\n"
@@ -2742,20 +2772,20 @@
 "   意數量的 name=home 對。要確保 name 部分不能包括任何非url安全的\n"
 "   字符,像空格,因為它們會把IE搞亂。\n"
 
-#: ../roundup/scripts/roundup_server.py:999
+#: ../roundup/scripts/roundup_server.py:1027
 msgid "Instances must be name=home"
 msgstr "實例必須是 實例名=實例路徑"
 
-#: ../roundup/scripts/roundup_server.py:1013
+#: ../roundup/scripts/roundup_server.py:1041
 #, python-format
 msgid "Configuration saved to %s"
 msgstr "配置保存到 %s"
 
-#: ../roundup/scripts/roundup_server.py:1031
+#: ../roundup/scripts/roundup_server.py:1059
 msgid "Sorry, you can't run the server as a daemon on this Operating System"
 msgstr "抱歉,在這個操作系統上不能以守護進程的方式來運行服務"
 
-#: ../roundup/scripts/roundup_server.py:1051
+#: ../roundup/scripts/roundup_server.py:1079
 #, python-format
 msgid "Roundup server started on %(HOST)s:%(PORT)s"
 msgstr "Roundup server 啟動於 %(HOST)s:%(PORT)s"
@@ -2951,7 +2981,7 @@
 msgstr "文件顯示"
 
 #: ../share/roundup/templates/classic/html/file.item.html:23
-#: ../share/roundup/templates/classic/html/user.register.html:17
+#: ../share/roundup/templates/classic/html/user.register.html:19
 msgid "Name"
 msgstr "姓名"
 
@@ -3104,7 +3134,7 @@
 
 #: ../share/roundup/templates/classic/html/issue.item.html:114
 #: ../share/roundup/templates/classic/html/user.item.html:153
-#: ../share/roundup/templates/classic/html/user.register.html:72
+#: ../share/roundup/templates/classic/html/user.register.html:74
 #: ../share/roundup/templates/minimal/html/user.item.html:103
 msgid ""
 "<table class=\"form\"> <tr> <td>Note:&nbsp;</td> <th class=\"required"
@@ -3453,9 +3483,9 @@
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/page.html:147
-#: ../share/roundup/templates/classic/html/user.register.html:66
+#: ../share/roundup/templates/classic/html/user.register.html:68
 #: ../share/roundup/templates/minimal/html/page.html:147
-#: ../share/roundup/templates/minimal/html/user.register.html:63
+#: ../share/roundup/templates/minimal/html/user.register.html:65
 msgid "Register"
 msgstr "註冊"
 
@@ -3692,7 +3722,7 @@
 msgstr "真實姓名"
 
 #: ../share/roundup/templates/classic/html/user.index.html:21
-#: ../share/roundup/templates/classic/html/user.register.html:45
+#: ../share/roundup/templates/classic/html/user.register.html:47
 msgid "Organisation"
 msgstr "組織"
 
@@ -3744,9 +3774,9 @@
 msgstr "用戶 [${id}] 編輯"
 
 #: ../share/roundup/templates/classic/html/user.item.html:80
-#: ../share/roundup/templates/classic/html/user.register.html:33
+#: ../share/roundup/templates/classic/html/user.register.html:35
 #: ../share/roundup/templates/minimal/html/user.item.html:75
-#: ../share/roundup/templates/minimal/html/user.register.html:41
+#: ../share/roundup/templates/minimal/html/user.register.html:43
 msgid "Roles"
 msgstr "角色"
 
@@ -3760,8 +3790,8 @@
 msgstr "(預設值是 ${zone})"
 
 #: ../share/roundup/templates/classic/html/user.item.html:130
-#: ../share/roundup/templates/classic/html/user.register.html:53
-#: ../share/roundup/templates/minimal/html/user.register.html:53
+#: ../share/roundup/templates/classic/html/user.register.html:55
+#: ../share/roundup/templates/minimal/html/user.register.html:55
 msgid "Alternate E-mail addresses<br>One address per line"
 msgstr "修改郵件地址<br>每行一個地址"
 
@@ -3772,27 +3802,27 @@
 msgid "Registering with ${tracker}"
 msgstr "用 ${tracker} 註冊"
 
-#: ../share/roundup/templates/classic/html/user.register.html:21
-#: ../share/roundup/templates/minimal/html/user.register.html:29
+#: ../share/roundup/templates/classic/html/user.register.html:23
+#: ../share/roundup/templates/minimal/html/user.register.html:31
 msgid "Login Name"
 msgstr "登錄名"
 
-#: ../share/roundup/templates/classic/html/user.register.html:25
-#: ../share/roundup/templates/minimal/html/user.register.html:33
+#: ../share/roundup/templates/classic/html/user.register.html:27
+#: ../share/roundup/templates/minimal/html/user.register.html:35
 msgid "Login Password"
 msgstr "登錄口令"
 
-#: ../share/roundup/templates/classic/html/user.register.html:29
-#: ../share/roundup/templates/minimal/html/user.register.html:37
+#: ../share/roundup/templates/classic/html/user.register.html:31
+#: ../share/roundup/templates/minimal/html/user.register.html:39
 msgid "Confirm Password"
 msgstr "口令確認"
 
-#: ../share/roundup/templates/classic/html/user.register.html:41
+#: ../share/roundup/templates/classic/html/user.register.html:43
 msgid "Phone"
 msgstr "電話"
 
-#: ../share/roundup/templates/classic/html/user.register.html:49
-#: ../share/roundup/templates/minimal/html/user.register.html:49
+#: ../share/roundup/templates/classic/html/user.register.html:51
+#: ../share/roundup/templates/minimal/html/user.register.html:51
 msgid "E-mail address"
 msgstr "郵件地址"
 
@@ -3907,6 +3937,9 @@
 msgid "Please log in or register."
 msgstr "請登錄或註冊。"
 
+#~ msgid "Error: %s: %s"
+#~ msgstr "錯誤:%s: %s"
+
 #~ msgid ""
 #~ "Usage: history designator\n"
 #~ "        Show the history entries of a designator.\n"

Roundup Issue Tracker: http://roundup-tracker.org/