diff locale/roundup.pot @ 5818:30dc6cb23b21

updated pot file for release
author John Rouillard <rouilj@ieee.org>
date Tue, 18 Jun 2019 20:29:34 -0400
parents 55d1a73d6118
children 347f3ae3fd41
line wrap: on
line diff
--- a/locale/roundup.pot	Wed Jun 12 22:13:00 2019 -0400
+++ b/locale/roundup.pot	Tue Jun 18 20:29:34 2019 -0400
@@ -8,43 +8,44 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: roundup-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2009-03-12 11:58+0200\n"
-"PO-Revision-Date: 2013-10-31 10:43+0100\n"
+"POT-Creation-Date: 2019-06-18 20:14-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
-#: ../roundup/actions.py:53 ../roundup/cgi/actions.py:120
-msgid "You may not retire the admin or anonymous user"
-msgstr ""
-
-#: ../roundup/actions.py:66 ../roundup/cgi/actions.py:57
+#: ../roundup/actions.py:52
 #, python-format
-msgid "You do not have permission to %(action)s the %(classname)s class."
-msgstr ""
-
-#: ../roundup/admin.py:83 ../roundup/admin.py:986 ../roundup/admin.py:1037
-#: ../roundup/admin.py:1060 ../roundup/admin.py:83:986 :1037:1060
+msgid "You do not have permission to retire or restore the %(classname)s class."
+msgstr ""
+
+#: ../roundup/actions.py:66 ../roundup/cgi/actions.py:230
+msgid "You may not retire the admin or anonymous user"
+msgstr ""
+
+#: ../roundup/admin.py:92 ../roundup/admin.py:1075 ../roundup/admin.py:1130
+#: ../roundup/admin.py:1157 ../roundup/admin.py:92:1075 :1130:1157
 #, python-format
 msgid "no such class \"%(classname)s\""
 msgstr ""
 
-#: ../roundup/admin.py:93 ../roundup/admin.py:97 ../roundup/admin.py:93:97
+#: ../roundup/admin.py:102 ../roundup/admin.py:106 ../roundup/admin.py:102:106
 #, python-format
 msgid "argument \"%(arg)s\" not propname=value"
 msgstr ""
 
-#: ../roundup/admin.py:110
+#: ../roundup/admin.py:119
 #, python-format
 msgid ""
 "Problem: %(message)s\n"
 "\n"
 msgstr ""
 
-#: ../roundup/admin.py:111
+#: ../roundup/admin.py:120
 #, python-format
 msgid ""
 "%(message)sUsage: roundup-admin [options] [<command> <arguments>]\n"
@@ -71,17 +72,17 @@
 " roundup-admin help all                   -- all available help\n"
 msgstr ""
 
-#: ../roundup/admin.py:138
-msgid "Commands:"
-msgstr ""
-
-#: ../roundup/admin.py:145
+#: ../roundup/admin.py:147
+msgid "Commands: "
+msgstr ""
+
+#: ../roundup/admin.py:154
 msgid ""
 "Commands may be abbreviated as long as the abbreviation\n"
 "matches only one command, e.g. l == li == lis == list."
 msgstr ""
 
-#: ../roundup/admin.py:175
+#: ../roundup/admin.py:181
 msgid ""
 "\n"
 "All commands (except help) require a tracker specifier. This is just\n"
@@ -146,12 +147,12 @@
 "Command help:\n"
 msgstr ""
 
-#: ../roundup/admin.py:238
+#: ../roundup/admin.py:244
 #, python-format
 msgid "%s:"
 msgstr ""
 
-#: ../roundup/admin.py:243
+#: ../roundup/admin.py:249
 msgid ""
 "Usage: help topic\n"
 "        Give help about topic.\n"
@@ -163,20 +164,20 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:266
+#: ../roundup/admin.py:272
 #, python-format
 msgid "Sorry, no help for \"%(topic)s\""
 msgstr ""
 
-#: ../roundup/admin.py:343 ../roundup/admin.py:399 ../roundup/admin.py:343:399
+#: ../roundup/admin.py:349 ../roundup/admin.py:405 ../roundup/admin.py:349:405
 msgid "Templates:"
 msgstr ""
 
-#: ../roundup/admin.py:346 ../roundup/admin.py:410 ../roundup/admin.py:346:410
+#: ../roundup/admin.py:352 ../roundup/admin.py:415 ../roundup/admin.py:352:415
 msgid "Back ends:"
 msgstr ""
 
-#: ../roundup/admin.py:349
+#: ../roundup/admin.py:355
 msgid ""
 "Usage: install [template [backend [key=val[,key=val]]]]\n"
 "        Install a new Roundup tracker.\n"
@@ -202,22 +203,22 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:372 ../roundup/admin.py:469 ../roundup/admin.py:530
-#: ../roundup/admin.py:609 ../roundup/admin.py:660 ../roundup/admin.py:718
-#: ../roundup/admin.py:739 ../roundup/admin.py:767 ../roundup/admin.py:839
-#: ../roundup/admin.py:906 ../roundup/admin.py:977 ../roundup/admin.py:1027
-#: ../roundup/admin.py:1050 ../roundup/admin.py:1081 ../roundup/admin.py:1177
-#: ../roundup/admin.py:1250 ../roundup/admin.py:372:469 :1027:1050 :1081:1177
-#: :1250 :530:609 :660:718 :739:767 :839:906 :977
+#: ../roundup/admin.py:378 ../roundup/admin.py:510 ../roundup/admin.py:584
+#: ../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
 msgid "Not enough arguments supplied"
 msgstr ""
 
-#: ../roundup/admin.py:378
+#: ../roundup/admin.py:384
 #, python-format
 msgid "Instance home parent directory \"%(parent)s\" does not exist"
 msgstr ""
 
-#: ../roundup/admin.py:386
+#: ../roundup/admin.py:393
 #, python-format
 msgid ""
 "WARNING: There appears to be a tracker in \"%(tracker_home)s\"!\n"
@@ -225,20 +226,20 @@
 "Erase it? Y/N: "
 msgstr ""
 
-#: ../roundup/admin.py:401
-msgid "Select template [classic]: "
-msgstr ""
-
-#: ../roundup/admin.py:412
-msgid "Select backend [anydbm]: "
-msgstr ""
-
-#: ../roundup/admin.py:422
+#: ../roundup/admin.py:406
+msgid "Select template"
+msgstr ""
+
+#: ../roundup/admin.py:416
+msgid "Select backend"
+msgstr ""
+
+#: ../roundup/admin.py:427
 #, python-format
 msgid "Error in configuration settings: \"%s\""
 msgstr ""
 
-#: ../roundup/admin.py:431
+#: ../roundup/admin.py:458
 #, python-format
 msgid ""
 "\n"
@@ -247,11 +248,11 @@
 "   %(config_file)s"
 msgstr ""
 
-#: ../roundup/admin.py:441
+#: ../roundup/admin.py:468
 msgid " ... at a minimum, you must set following options:"
 msgstr ""
 
-#: ../roundup/admin.py:446
+#: ../roundup/admin.py:473
 #, python-format
 msgid ""
 "\n"
@@ -267,7 +268,7 @@
 "---------------------------------------------------------------------------\n"
 msgstr ""
 
-#: ../roundup/admin.py:464
+#: ../roundup/admin.py:505
 msgid ""
 "Usage: genconfig <filename>\n"
 "        Generate a new tracker config file (ini style) with default values\n"
@@ -275,8 +276,17 @@
 "        "
 msgstr ""
 
+#: ../roundup/admin.py:520
+msgid ""
+"Usage: updateconfig <filename>\n"
+"        Generate an updated tracker config file (ini style) in\n"
+"        <filename>. Use current settings from existing roundup\n"
+"        tracker in tracker home.\n"
+"        "
+msgstr ""
+
 #. password
-#: ../roundup/admin.py:474
+#: ../roundup/admin.py:528
 msgid ""
 "Usage: initialise [adminpw]\n"
 "        Initialise a new Roundup tracker.\n"
@@ -287,56 +297,59 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:488
+#: ../roundup/admin.py:542
 msgid "Admin Password: "
 msgstr ""
 
-#: ../roundup/admin.py:489
+#: ../roundup/admin.py:543
 msgid "       Confirm: "
 msgstr ""
 
-#: ../roundup/admin.py:493
+#: ../roundup/admin.py:547
 msgid "Instance home does not exist"
 msgstr ""
 
-#: ../roundup/admin.py:497
+#: ../roundup/admin.py:551
 msgid "Instance has not been installed"
 msgstr ""
 
-#: ../roundup/admin.py:502
+#: ../roundup/admin.py:557
 msgid ""
 "WARNING: The database is already initialised!\n"
 "If you re-initialise it, you will lose all the data!\n"
 "Erase it? Y/N: "
 msgstr ""
 
-#: ../roundup/admin.py:523
+#: ../roundup/admin.py:574
 msgid ""
 "Usage: get property designator[,designator]*\n"
 "        Get the given property of one or more designator(s).\n"
 "\n"
+"        A designator is a classname and a nodeid concatenated,\n"
+"        eg. bug1, user10, ...\n"
+"\n"
 "        Retrieves the property value of the nodes specified\n"
 "        by the designators.\n"
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:563 ../roundup/admin.py:578 ../roundup/admin.py:563:578
+#: ../roundup/admin.py:617 ../roundup/admin.py:634 ../roundup/admin.py:617:634
 #, python-format
 msgid "property %s is not of type Multilink or Link so -d flag does not apply."
 msgstr ""
 
-#: ../roundup/admin.py:586 ../roundup/admin.py:988 ../roundup/admin.py:1039
-#: ../roundup/admin.py:1062 ../roundup/admin.py:586:988 :1039:1062
+#: ../roundup/admin.py:644 ../roundup/admin.py:1077 ../roundup/admin.py:1132
+#: ../roundup/admin.py:1159 ../roundup/admin.py:644:1077 :1132:1159
 #, python-format
 msgid "no such %(classname)s node \"%(nodeid)s\""
 msgstr ""
 
-#: ../roundup/admin.py:588
+#: ../roundup/admin.py:647
 #, python-format
 msgid "no such %(classname)s property \"%(propname)s\""
 msgstr ""
 
-#: ../roundup/admin.py:597
+#: ../roundup/admin.py:656
 msgid ""
 "Usage: set items property=value property=value ...\n"
 "        Set the given properties of one or more items(s).\n"
@@ -344,6 +357,9 @@
 "        The items are specified as a class or as a comma-separated\n"
 "        list of item designators (ie \"designator[,designator,...]\").\n"
 "\n"
+"        A designator is a classname and a nodeid concatenated,\n"
+"        eg. bug1, user10, ...\n"
+"\n"
 "        This command sets the properties to the values for all designators\n"
 "        given. If the value is missing (ie. \"property=\") then the property\n"
 "        is un-set. If the property is a multilink, you specify the linked\n"
@@ -351,7 +367,7 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:652
+#: ../roundup/admin.py:722
 msgid ""
 "Usage: find classname propname=value ...\n"
 "        Find the nodes of the given class with a given link property value.\n"
@@ -362,13 +378,13 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:705 ../roundup/admin.py:859 ../roundup/admin.py:871
-#: ../roundup/admin.py:925 ../roundup/admin.py:705:859 :871:925
+#: ../roundup/admin.py:775 ../roundup/admin.py:933 ../roundup/admin.py:945
+#: ../roundup/admin.py:1000 ../roundup/admin.py:775:933 :945:1000
 #, python-format
 msgid "%(classname)s has no property \"%(propname)s\""
 msgstr ""
 
-#: ../roundup/admin.py:712
+#: ../roundup/admin.py:782
 msgid ""
 "Usage: specification classname\n"
 "        Show the properties for a classname.\n"
@@ -377,27 +393,35 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:727
+#: ../roundup/admin.py:798
 #, python-format
-msgid "%(key)s: %(value)s (key property)"
-msgstr ""
-
-#: ../roundup/admin.py:729 ../roundup/admin.py:756 ../roundup/admin.py:729:756
+msgid "%(key)s: %(value)s (key property)\n"
+msgstr ""
+
+#: ../roundup/admin.py:800
 #, python-format
-msgid "%(key)s: %(value)s"
-msgstr ""
-
-#: ../roundup/admin.py:732
+msgid "%(key)s: %(value)s\n"
+msgstr ""
+
+#: ../roundup/admin.py:803
 msgid ""
 "Usage: display designator[,designator]*\n"
 "        Show the property values for the given node(s).\n"
 "\n"
+"        A designator is a classname and a nodeid concatenated,\n"
+"        eg. bug1, user10, ...\n"
+"\n"
 "        This lists the properties and their associated values for the given\n"
 "        node.\n"
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:759
+#: ../roundup/admin.py:829
+#, python-format
+msgid "%(key)s: %(value)s"
+msgstr ""
+
+#: ../roundup/admin.py:832
 msgid ""
 "Usage: create classname property=value ...\n"
 "        Create a new entry of a given class.\n"
@@ -409,31 +433,31 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:786
+#: ../roundup/admin.py:860
 #, python-format
 msgid "%(propname)s (Password): "
 msgstr ""
 
-#: ../roundup/admin.py:788
+#: ../roundup/admin.py:862
 #, python-format
 msgid "   %(propname)s (Again): "
 msgstr ""
 
-#: ../roundup/admin.py:790
+#: ../roundup/admin.py:864
 msgid "Sorry, try again..."
 msgstr ""
 
-#: ../roundup/admin.py:794
+#: ../roundup/admin.py:868
 #, python-format
 msgid "%(propname)s (%(proptype)s): "
 msgstr ""
 
-#: ../roundup/admin.py:812
+#: ../roundup/admin.py:886
 #, python-format
 msgid "you must provide the \"%(propname)s\" property."
 msgstr ""
 
-#: ../roundup/admin.py:824
+#: ../roundup/admin.py:898
 msgid ""
 "Usage: list classname [property]\n"
 "        List the instances of a class.\n"
@@ -449,16 +473,16 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:837
+#: ../roundup/admin.py:911
 msgid "Too many arguments supplied"
 msgstr ""
 
-#: ../roundup/admin.py:873
+#: ../roundup/admin.py:947
 #, python-format
 msgid "%(nodeid)4s: %(value)s"
 msgstr ""
 
-#: ../roundup/admin.py:877
+#: ../roundup/admin.py:951
 msgid ""
 "Usage: table classname [property[,property]*]\n"
 "        List the instances of a class in tabular form.\n"
@@ -490,21 +514,27 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:921
+#: ../roundup/admin.py:995
 #, python-format
 msgid "\"%(spec)s\" not name:width"
 msgstr ""
 
-#: ../roundup/admin.py:971
+#: ../roundup/admin.py:1046
 msgid ""
-"Usage: history designator\n"
+"Usage: history designator [skipquiet]\n"
 "        Show the history entries of a designator.\n"
 "\n"
-"        Lists the journal entries for the node identified by the designator.\n"
+"        A designator is a classname and a nodeid concatenated,\n"
+"        eg. bug1, user10, ...\n"
+"\n"
+"        Lists the journal entries viewable by the user for the\n"
+"        node identified by the designator. If skipquiet is the\n"
+"        second argument, journal entries for quiet properties\n"
+"        are not shown.\n"
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:992
+#: ../roundup/admin.py:1082
 msgid ""
 "Usage: commit\n"
 "        Commit changes made to the database during an interactive session.\n"
@@ -518,7 +548,7 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1007
+#: ../roundup/admin.py:1097
 msgid ""
 "Usage: rollback\n"
 "        Undo all changes that are pending commit to the database.\n"
@@ -530,27 +560,33 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1020
+#: ../roundup/admin.py:1110
 msgid ""
 "Usage: retire designator[,designator]*\n"
 "        Retire the node specified by designator.\n"
 "\n"
+"        A designator is a classname and a nodeid concatenated,\n"
+"        eg. bug1, user10, ...\n"
+"\n"
 "        This action indicates that a particular node is not to be retrieved\n"
 "        by the list or find commands, and its key value may be re-used.\n"
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1044
+#: ../roundup/admin.py:1138
 msgid ""
 "Usage: restore designator[,designator]*\n"
 "        Restore the retired node specified by designator.\n"
 "\n"
+"        A designator is a classname and a nodeid concatenated,\n"
+"        eg. bug1, user10, ...\n"
+"\n"
 "        The given nodes will become available for users again.\n"
 "        "
 msgstr ""
 
 #. grab the directory to export to
-#: ../roundup/admin.py:1067
+#: ../roundup/admin.py:1165
 msgid ""
 "Usage: export [[-]class[,class]] export_dir\n"
 "        Export the database to colon-separated-value files.\n"
@@ -566,7 +602,7 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1142
+#: ../roundup/admin.py:1257
 msgid ""
 "Usage: exporttables [[-]class[,class]] export_dir\n"
 "        Export the database to colon-separated-value files, excluding the\n"
@@ -583,7 +619,7 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1157
+#: ../roundup/admin.py:1272
 msgid ""
 "Usage: import import_dir\n"
 "        Import a database from the directory containing CSV files,\n"
@@ -606,7 +642,7 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1232
+#: ../roundup/admin.py:1355
 msgid ""
 "Usage: pack period | date\n"
 "\n"
@@ -628,11 +664,11 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1260
+#: ../roundup/admin.py:1383
 msgid "Invalid format"
 msgstr ""
 
-#: ../roundup/admin.py:1271
+#: ../roundup/admin.py:1394
 msgid ""
 "Usage: reindex [classname|designator]*\n"
 "        Re-generate a tracker's search indexes.\n"
@@ -642,64 +678,72 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1285
+#: ../roundup/admin.py:1408
 #, python-format
 msgid "no such item \"%(designator)s\""
 msgstr ""
 
-#: ../roundup/admin.py:1295
+#: ../roundup/admin.py:1418
 msgid ""
 "Usage: security [Role name]\n"
 "        Display the Permissions available to one or all Roles.\n"
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1303
+#: ../roundup/admin.py:1426
 #, python-format
-msgid "No such Role \"%(role)s\""
-msgstr ""
-
-#: ../roundup/admin.py:1309
+msgid "No such Role \"%(role)s\"\n"
+msgstr ""
+
+#: ../roundup/admin.py:1432
+#, python-format
+msgid "New Web users get the Roles \"%(role)s\"\n"
+msgstr ""
+
+#: ../roundup/admin.py:1434
 #, python-format
-msgid "New Web users get the Roles \"%(role)s\""
-msgstr ""
-
-#: ../roundup/admin.py:1311
+msgid "New Web users get the Role \"%(role)s\"\n"
+msgstr ""
+
+#: ../roundup/admin.py:1437
 #, python-format
-msgid "New Web users get the Role \"%(role)s\""
-msgstr ""
-
-#: ../roundup/admin.py:1314
+msgid "New Email users get the Roles \"%(role)s\"\n"
+msgstr ""
+
+#: ../roundup/admin.py:1439
 #, python-format
-msgid "New Email users get the Roles \"%(role)s\""
-msgstr ""
-
-#: ../roundup/admin.py:1316
+msgid "New Email users get the Role \"%(role)s\"\n"
+msgstr ""
+
+#: ../roundup/admin.py:1442
 #, python-format
-msgid "New Email users get the Role \"%(role)s\""
-msgstr ""
-
-#: ../roundup/admin.py:1319
-#, python-format
-msgid "Role \"%(name)s\":"
-msgstr ""
-
-#: ../roundup/admin.py:1324
+msgid "Role \"%(name)s\":\n"
+msgstr ""
+
+#: ../roundup/admin.py:1447
+msgid " %(description)s (%(name)s for \"%(klass)s\""
+msgstr ""
+
+#: ../roundup/admin.py:1447
 #, python-format
-msgid " %(description)s (%(name)s for \"%(klass)s\": %(properties)s only)"
-msgstr ""
-
-#: ../roundup/admin.py:1327
+msgid " %(description)s (%(name)s for \"%(klass)s\": %(properties)s only)\n"
+msgstr ""
+
+#: ../roundup/admin.py:1450
+msgid " %(description)s (%(name)s for \"%(klass)s\" "
+msgstr ""
+
+#: ../roundup/admin.py:1450
 #, python-format
-msgid " %(description)s (%(name)s for \"%(klass)s\" only)"
-msgstr ""
-
-#: ../roundup/admin.py:1330
+msgid " %(description)s (%(name)s for \"%(klass)s\" only)\n"
+msgstr ""
+
+#: ../roundup/admin.py:1453
 #, python-format
-msgid " %(description)s (%(name)s)"
-msgstr ""
-
-#: ../roundup/admin.py:1335
+msgid " %(description)s (%(name)s)\n"
+msgstr ""
+
+#: ../roundup/admin.py:1458
 msgid ""
 "Usage: migrate\n"
 "        Update a tracker's database to be compatible with the Roundup\n"
@@ -722,275 +766,364 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1354
+#: ../roundup/admin.py:1477
 msgid "Tracker updated"
 msgstr ""
 
-#: ../roundup/admin.py:1357
+#: ../roundup/admin.py:1480
 msgid "No migration action required"
 msgstr ""
 
-#: ../roundup/admin.py:1386
+#: ../roundup/admin.py:1506
 #, python-format
 msgid "Unknown command \"%(command)s\" (\"help commands\" for a list)"
 msgstr ""
 
-#: ../roundup/admin.py:1392
+#: ../roundup/admin.py:1512
 #, python-format
 msgid "Multiple commands match \"%(command)s\": %(list)s"
 msgstr ""
 
-#: ../roundup/admin.py:1399
+#: ../roundup/admin.py:1520
 msgid "Enter tracker home: "
 msgstr ""
 
-#: ../roundup/admin.py:1406 ../roundup/admin.py:1412 ../roundup/admin.py:1432
-#: ../roundup/admin.py:1406:1412 :1432
+#: ../roundup/admin.py:1529 ../roundup/admin.py:1535 ../roundup/admin.py:1561
+#: ../roundup/admin.py:1529:1535 :1561
 #, python-format
 msgid "Error: %(message)s"
 msgstr ""
 
-#: ../roundup/admin.py:1420
+#: ../roundup/admin.py:1543 ../roundup/admin.py:1547
+#: ../roundup/admin.py:1543:1547
 #, python-format
 msgid "Error: Couldn't open tracker: %(message)s"
 msgstr ""
 
-#: ../roundup/admin.py:1445
+#: ../roundup/admin.py:1574
 #, python-format
 msgid ""
 "Roundup %s ready for input.\n"
 "Type \"help\" for help."
 msgstr ""
 
-#: ../roundup/admin.py:1450
+#: ../roundup/admin.py:1579
 msgid "Note: command history and editing not available"
 msgstr ""
 
-#: ../roundup/admin.py:1454
+#: ../roundup/admin.py:1583
 msgid "roundup> "
 msgstr ""
 
-#: ../roundup/admin.py:1456
+#: ../roundup/admin.py:1585
 msgid "exit..."
 msgstr ""
 
-#: ../roundup/admin.py:1466
+#: ../roundup/admin.py:1598
 msgid "There are unsaved changes. Commit them (y/N)? "
 msgstr ""
 
-#: ../roundup/backends/back_anydbm.py:218
-#: ../roundup/backends/sessions_dbm.py:50
+#: ../roundup/backends/back_anydbm.py:313
+#: ../roundup/backends/sessions_dbm.py:58
 msgid "Couldn't identify database type"
 msgstr ""
 
-#: ../roundup/backends/back_anydbm.py:244
+#: ../roundup/backends/back_anydbm.py:342
 #, python-format
 msgid "Couldn't open database - the required module '%s' is not available"
 msgstr ""
 
-#: ../roundup/backends/back_anydbm.py:799
-#: ../roundup/backends/back_anydbm.py:1074
-#: ../roundup/backends/back_anydbm.py:1271
-#: ../roundup/backends/back_anydbm.py:1289
-#: ../roundup/backends/back_anydbm.py:1335
-#: ../roundup/backends/back_anydbm.py:1905
-#: ../roundup/backends/back_anydbm.py:799:1074
-#: ../roundup/backends/rdbms_common.py:1396
-#: ../roundup/backends/rdbms_common.py:1625
-#: ../roundup/backends/rdbms_common.py:1831
-#: ../roundup/backends/rdbms_common.py:1851
-#: ../roundup/backends/rdbms_common.py:1904
-#: ../roundup/backends/rdbms_common.py:2512
-#: ../roundup/backends/rdbms_common.py:1396:1625 :1271:1289 :1335:1905
-#: :1831:1851 :1904:2512
+#: ../roundup/backends/back_anydbm.py:898
+#: ../roundup/backends/back_anydbm.py:911
+#: ../roundup/backends/back_anydbm.py:1171
+#: ../roundup/backends/back_anydbm.py:1201
+#: ../roundup/backends/back_anydbm.py:1427
+#: ../roundup/backends/back_anydbm.py:1445
+#: ../roundup/backends/back_anydbm.py:1491
+#: ../roundup/backends/back_anydbm.py:2057
+#: ../roundup/backends/back_anydbm.py:898:911
+#: ../roundup/backends/rdbms_common.py:1564
+#: ../roundup/backends/rdbms_common.py:1798
+#: ../roundup/backends/rdbms_common.py:2033
+#: ../roundup/backends/rdbms_common.py:2053
+#: ../roundup/backends/rdbms_common.py:2106
+#: ../roundup/backends/rdbms_common.py:2909
+#: ../roundup/backends/rdbms_common.py:1564:1798 :1171:1201 :1427:1445 :1491
+#: :2033:2053 :2057 :2106:2909
 msgid "Database open read-only"
 msgstr ""
 
-#: ../roundup/backends/back_anydbm.py:2007
+#: ../roundup/backends/rdbms_common.py:544
+#, python-format
+msgid "ALTER operation disallowed: %r -> %r."
+msgstr ""
+
+#: ../roundup/backends/rdbms_common.py:777
 #, python-format
-msgid "WARNING: invalid date tuple %r"
-msgstr ""
-
-#: ../roundup/backends/rdbms_common.py:1525
+msgid "CREATE operation disallowed: \"%s\"."
+msgstr ""
+
+#: ../roundup/backends/rdbms_common.py:793
+#, python-format
+msgid "DROP operation disallowed: \"%s\"."
+msgstr ""
+
+#: ../roundup/backends/rdbms_common.py:1699
 msgid "create"
 msgstr ""
 
-#: ../roundup/backends/rdbms_common.py:1691
+#: ../roundup/backends/rdbms_common.py:1868
 msgid "unlink"
 msgstr ""
 
-#: ../roundup/backends/rdbms_common.py:1695
+#: ../roundup/backends/rdbms_common.py:1872
 msgid "link"
 msgstr ""
 
-#: ../roundup/backends/rdbms_common.py:1817
+#: ../roundup/backends/rdbms_common.py:2014
 msgid "set"
 msgstr ""
 
-#: ../roundup/backends/rdbms_common.py:1841
+#: ../roundup/backends/rdbms_common.py:2043
 msgid "retired"
 msgstr ""
 
-#: ../roundup/backends/rdbms_common.py:1871
+#: ../roundup/backends/rdbms_common.py:2073
 msgid "restored"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:88
+#: ../roundup/cgi/actions.py:99
+msgid "Base url not set. Check configuration."
+msgstr ""
+
+#: ../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:118
+#, python-format
+msgid "Unrecognized scheme in %(url)s"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:121
+#, python-format
+msgid "Net location in %(url)s does not match base: %(base_netloc)s"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:124
+#, python-format
+msgid "Base path %(base_path)s is not a prefix for url %(url)s"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:137
+#, python-format
+msgid "Path component (%(url_path)s) in %(url)s is not properly escaped"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:140
+#, python-format
+msgid "Params component (%(url_params)s) in %(url)s is not properly escaped"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:143
+#, python-format
+msgid "Query component (%(url_query)s) in %(url)s is not properly escaped"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:146
+#, python-format
+msgid "Fragment component (%(url_fragment)s) in %(url)s is not properly escaped"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:167
+#, python-format
+msgid "You do not have permission to %(action)s the %(classname)s class."
+msgstr ""
+
+#: ../roundup/cgi/actions.py:198
 msgid "No type specified"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:90
+#: ../roundup/cgi/actions.py:200
 msgid "No ID entered"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:96
+#: ../roundup/cgi/actions.py:206
 #, python-format
 msgid "\"%(input)s\" is not an ID (%(classname)s ID required)"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:108 ../roundup/cgi/actions.py:287
-#: ../roundup/cgi/actions.py:590 ../roundup/cgi/actions.py:636
-#: ../roundup/cgi/actions.py:822 ../roundup/cgi/actions.py:940
-#: ../roundup/cgi/actions.py:108:287 :590:636 :822:940
+#: ../roundup/cgi/actions.py:218 ../roundup/cgi/actions.py:256
+#: ../roundup/cgi/actions.py:477 ../roundup/cgi/actions.py:805
+#: ../roundup/cgi/actions.py:851 ../roundup/cgi/actions.py:1051
+#: ../roundup/cgi/actions.py:1184 ../roundup/cgi/actions.py:218:256 :1184
+#: :477:805 :851:1051
 msgid "Invalid request"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:126 ../roundup/cgi/actions.py:382
-#: ../roundup/cgi/actions.py:126:382
+#: ../roundup/cgi/actions.py:236 ../roundup/cgi/actions.py:579
+#: ../roundup/cgi/actions.py:236:579
 #, python-format
 msgid "You do not have permission to retire %(class)s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:134
+#: ../roundup/cgi/actions.py:244
 #, python-format
 msgid "%(classname)s %(itemid)s has been retired"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:175 ../roundup/cgi/actions.py:203
-#: ../roundup/cgi/actions.py:175:203
+#: ../roundup/cgi/actions.py:268
+#, python-format
+msgid "You do not have permission to restore %(class)s"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:276
+#, python-format
+msgid "%(classname)s %(itemid)s has been restored"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:319 ../roundup/cgi/actions.py:367
+#: ../roundup/cgi/actions.py:319:367
 msgid "You do not have permission to edit queries"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:181 ../roundup/cgi/actions.py:210
-#: ../roundup/cgi/actions.py:181:210
+#: ../roundup/cgi/actions.py:325 ../roundup/cgi/actions.py:374
+#: ../roundup/cgi/actions.py:325:374
 msgid "You do not have permission to store queries"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:321 ../roundup/cgi/actions.py:507
-#: ../roundup/cgi/actions.py:321:507
+#: ../roundup/cgi/actions.py:346
+#, python-format
+msgid "You already own a query named '%s'. Please choose another name."
+msgstr ""
+
+#: ../roundup/cgi/actions.py:511 ../roundup/cgi/actions.py:711
+#: ../roundup/cgi/actions.py:511:711
 #, python-format
 msgid "You do not have permission to create %(class)s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:329
+#: ../roundup/cgi/actions.py:524
 #, python-format
 msgid "Not enough values on line %(line)s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:339 ../roundup/cgi/actions.py:495
-#: ../roundup/cgi/actions.py:339:495
+#: ../roundup/cgi/actions.py:534 ../roundup/cgi/actions.py:699
+#: ../roundup/cgi/actions.py:534:699
 #, python-format
 msgid "You do not have permission to edit %(class)s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:389
+#: ../roundup/cgi/actions.py:586
 msgid "Items edited OK"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:448
+#: ../roundup/cgi/actions.py:645
 #, python-format
 msgid "%(class)s %(id)s %(properties)s edited ok"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:451
-#, python-format
-msgid "%(class)s %(id)s - nothing changed"
-msgstr ""
-
-#: ../roundup/cgi/actions.py:463
+#: ../roundup/cgi/actions.py:665
 #, python-format
 msgid "%(class)s %(id)s created"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:575
+#: ../roundup/cgi/actions.py:790
 #, python-format
 msgid ""
-"Edit Error: someone else has edited this %s (%s). View <a target=\"new\" href="
-"\"%s%s\">their changes</a> in a new window."
-msgstr ""
-
-#: ../roundup/cgi/actions.py:607
+"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
 #, python-format
 msgid "Edit Error: %s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:642 ../roundup/cgi/actions.py:658
-#: ../roundup/cgi/actions.py:828 ../roundup/cgi/actions.py:847
-#: ../roundup/cgi/actions.py:642:658 :828:847
+#: ../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
 #, python-format
 msgid "Error: %s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:684
+#: ../roundup/cgi/actions.py:901
 msgid ""
 "Invalid One Time Key!\n"
 "(a Mozilla bug may cause this message to show up erroneously, please check "
 "your email)"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:726
+#: ../roundup/cgi/actions.py:951
 #, python-format
 msgid "Password reset and email sent to %s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:735
+#: ../roundup/cgi/actions.py:960
 msgid "Unknown username"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:743
+#: ../roundup/cgi/actions.py:968
 msgid "Unknown email address"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:748
+#: ../roundup/cgi/actions.py:973
 msgid "You need to specify a username or address"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:773
+#: ../roundup/cgi/actions.py:999
 #, python-format
-msgid "Email sent to %s"
-msgstr ""
-
-#: ../roundup/cgi/actions.py:787
+msgid "Email sent to primary notification address for %s."
+msgstr ""
+
+#: ../roundup/cgi/actions.py:1001
+#, python-format
+msgid "Email sent to %s."
+msgstr ""
+
+#: ../roundup/cgi/actions.py:1015
 msgid "You are now registered, welcome!"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:836
+#: ../roundup/cgi/actions.py:1146
 msgid "It is not permitted to supply roles at registration."
 msgstr ""
 
-#: ../roundup/cgi/actions.py:923
+#: ../roundup/cgi/actions.py:1159
 msgid "You are logged out"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:944
+#: ../roundup/cgi/actions.py:1188
 msgid "Username required"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:978 ../roundup/cgi/actions.py:982
-#: ../roundup/cgi/actions.py:978:982
+#: ../roundup/cgi/actions.py:1267
+#, python-format
+msgid "Logins occurring too fast. Please wait: %d seconds."
+msgstr ""
+
+#: ../roundup/cgi/actions.py:1306 ../roundup/cgi/actions.py:1310
+#: ../roundup/cgi/actions.py:1306:1310
 msgid "Invalid login"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:988
+#: ../roundup/cgi/actions.py:1316
 msgid "You do not have permission to login"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:1047
+#: ../roundup/cgi/actions.py:1358 ../roundup/cgi/actions.py:1513
+#: ../roundup/cgi/actions.py:1358:1513
+#, python-format
+msgid "Column \"%(column)s\" not found in %(class)s"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:1564
 #, python-format
 msgid "You do not have permission to view %(class)s"
 msgstr ""
 
-#: ../roundup/cgi/cgitb.py:49
+#: ../roundup/cgi/cgitb.py:56
 #, python-format
 msgid ""
 "<h1>Templating Error</h1>\n"
@@ -998,27 +1131,27 @@
 "<p class=\"help\">Debugging information follows</p>"
 msgstr ""
 
-#: ../roundup/cgi/cgitb.py:64
+#: ../roundup/cgi/cgitb.py:71
 #, python-format
 msgid "<li>\"%(name)s\" (%(info)s)</li>"
 msgstr ""
 
-#: ../roundup/cgi/cgitb.py:67
+#: ../roundup/cgi/cgitb.py:74
 #, python-format
 msgid "<li>Looking for \"%(name)s\", current path:<ol>%(path)s</ol></li>"
 msgstr ""
 
-#: ../roundup/cgi/cgitb.py:71
+#: ../roundup/cgi/cgitb.py:78
 #, python-format
 msgid "<li>In %s</li>"
 msgstr ""
 
-#: ../roundup/cgi/cgitb.py:76
+#: ../roundup/cgi/cgitb.py:83
 #, python-format
 msgid "A problem occurred in your template \"%s\"."
 msgstr ""
 
-#: ../roundup/cgi/cgitb.py:84
+#: ../roundup/cgi/cgitb.py:91
 #, python-format
 msgid ""
 "\n"
@@ -1030,413 +1163,558 @@
 "</table></li>\n"
 msgstr ""
 
-#: ../roundup/cgi/cgitb.py:103
+#: ../roundup/cgi/cgitb.py:110
 msgid "Full traceback:"
 msgstr ""
 
-#: ../roundup/cgi/cgitb.py:116
+#: ../roundup/cgi/cgitb.py:123
 #, python-format
 msgid "<font size=+1><strong>%(exc_type)s</strong>: %(exc_value)s</font>"
 msgstr ""
 
-#: ../roundup/cgi/cgitb.py:120
+#: ../roundup/cgi/cgitb.py:127
 msgid ""
 "<p>A problem occurred while running a Python script. Here is the sequence of "
 "function calls leading up to the error, with the most recent (innermost) call "
 "first. The exception attributes are:"
 msgstr ""
 
-#: ../roundup/cgi/cgitb.py:129
+#: ../roundup/cgi/cgitb.py:136
 msgid "&lt;file is None - probably inside <tt>eval</tt> or <tt>exec</tt>&gt;"
 msgstr ""
 
-#: ../roundup/cgi/cgitb.py:138
+#: ../roundup/cgi/cgitb.py:145
 #, python-format
 msgid "in <strong>%s</strong>"
 msgstr ""
 
-#: ../roundup/cgi/cgitb.py:172 ../roundup/cgi/cgitb.py:178
-#: ../roundup/cgi/cgitb.py:172:178
+#: ../roundup/cgi/cgitb.py:190 ../roundup/cgi/cgitb.py:196
+#: ../roundup/cgi/cgitb.py:190:196
 msgid "<em>undefined</em>"
 msgstr ""
 
-#: ../roundup/cgi/client.py:517
+#: ../roundup/cgi/client.py:82
+msgid ""
+"<html><head><title>An error has occurred</title></head>\n"
+"<body><h1>An error has occurred</h1>\n"
+"<p>A problem was encountered processing your request.\n"
+"The tracker maintainers have been notified of the problem.</p>\n"
+"</body></html>"
+msgstr ""
+
+#: ../roundup/cgi/client.py:759
 msgid "Form Error: "
 msgstr ""
 
-#: ../roundup/cgi/client.py:575
+#: ../roundup/cgi/client.py:849
 #, python-format
 msgid "Unrecognized charset: %r"
 msgstr ""
 
-#: ../roundup/cgi/client.py:696
+#: ../roundup/cgi/client.py:1029
 msgid "Anonymous users are not allowed to use the web interface"
 msgstr ""
 
-#: ../roundup/cgi/client.py:851
+#: ../roundup/cgi/client.py:1102
+msgid "Referer header not available."
+msgstr ""
+
+#: ../roundup/cgi/client.py:1106
+#, python-format
+msgid "csrf key used with wrong method from: %s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1134
+#, python-format
+msgid "csrf header %s required but missing for user%s."
+msgstr ""
+
+#: ../roundup/cgi/client.py:1135
+#, python-format
+msgid "Missing header: %s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1145 ../roundup/cgi/client.py:1148
+#: ../roundup/cgi/client.py:1145:1148
+#, python-format
+msgid "csrf Referer header check failed for user%s. Value=%s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1146
+#, python-format
+msgid "Invalid Referer %s, %s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1161 ../roundup/cgi/client.py:1164
+#: ../roundup/cgi/client.py:1161:1164
+#, python-format
+msgid "csrf Origin header check failed for user%s. Value=%s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1162
+#, python-format
+msgid "Invalid Origin %s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1176 ../roundup/cgi/client.py:1179
+#: ../roundup/cgi/client.py:1176:1179
+#, python-format
+msgid "csrf X-FORWARDED-HOST header check failed for user%s. Value=%s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1177
+#, python-format
+msgid "Invalid X-FORWARDED-HOST %s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1196 ../roundup/cgi/client.py:1199
+#: ../roundup/cgi/client.py:1196:1199
+#, python-format
+msgid "csrf HOST header check failed for user%s. Value=%s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1197
+#, python-format
+msgid "Invalid HOST %s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1205
+msgid "Csrf: unable to verify sufficient headers"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1206
+msgid "Unable to verify sufficient headers"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1219
+#, python-format
+msgid "csrf X-REQUESTED-WITH xmlrpc required header check failed for user%s."
+msgstr ""
+
+#: ../roundup/cgi/client.py:1220
+msgid "Required Header Missing"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1257
+#, python-format
+msgid "Required csrf field missing for user%s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1258
+msgid "Csrf token is missing."
+msgstr ""
+
+#: ../roundup/cgi/client.py:1261
+#, python-format
+msgid "csrf field not supplied by user%s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1308
+#, python-format
+msgid ""
+"Csrf mismatch user: current user %s != stored user %s, current session, "
+"stored session: %s,%s for key %s."
+msgstr ""
+
+#: ../roundup/cgi/client.py:1310
+#, python-format
+msgid "Invalid csrf token found: %s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1313
+#, python-format
+msgid ""
+"logged only: Csrf mismatch user: current user %s != stored user %s, current "
+"session, stored session: %s,%s for key %s."
+msgstr ""
+
+#: ../roundup/cgi/client.py:1318
+#, python-format
+msgid ""
+"Csrf mismatch user: current session %s != stored session %s, current user/"
+"stored user is: %s for key %s."
+msgstr ""
+
+#: ../roundup/cgi/client.py:1320
+#, python-format
+msgid "Invalid csrf session found: %s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1323
+#, python-format
+msgid ""
+"logged only: Csrf mismatch user: current session %s != stored session %s, "
+"current user/stored user is: %s for key %s."
+msgstr ""
+
+#: ../roundup/cgi/client.py:1495
 msgid "You are not allowed to view this file."
 msgstr ""
 
-#: ../roundup/cgi/client.py:968
+#: ../roundup/cgi/client.py:1762
 #, python-format
 msgid "%(starttag)sTime elapsed: %(seconds)fs%(endtag)s\n"
 msgstr ""
 
-#: ../roundup/cgi/client.py:972
+#: ../roundup/cgi/client.py:1766
 #, 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:283
+#: ../roundup/cgi/form_parser.py:289
 #, python-format
 msgid "link \"%(key)s\" value \"%(entry)s\" not a designator"
 msgstr ""
 
-#: ../roundup/cgi/form_parser.py:301
+#: ../roundup/cgi/form_parser.py:307
 #, python-format
 msgid "%(class)s %(property)s is not a link or multilink property"
 msgstr ""
 
-#: ../roundup/cgi/form_parser.py:313
+#: ../roundup/cgi/form_parser.py:319
 #, python-format
 msgid ""
 "The form action claims to require property \"%(property)s\" which doesn't "
 "exist"
 msgstr ""
 
-#: ../roundup/cgi/form_parser.py:335
+#: ../roundup/cgi/form_parser.py:341
 #, python-format
 msgid ""
 "You have submitted a %(action)s action for the property \"%(property)s\" "
 "which doesn't exist"
 msgstr ""
 
-#: ../roundup/cgi/form_parser.py:354 ../roundup/cgi/form_parser.py:380
-#: ../roundup/cgi/form_parser.py:354:380
+#: ../roundup/cgi/form_parser.py:366 ../roundup/cgi/form_parser.py:394
+#: ../roundup/cgi/form_parser.py:366:394
 #, python-format
 msgid "You have submitted more than one value for the %s property"
 msgstr ""
 
-#: ../roundup/cgi/form_parser.py:377 ../roundup/cgi/form_parser.py:383
-#: ../roundup/cgi/form_parser.py:377:383
+#: ../roundup/cgi/form_parser.py:391 ../roundup/cgi/form_parser.py:397
+#: ../roundup/cgi/form_parser.py:391:397
 msgid "Password and confirmation text do not match"
 msgstr ""
 
-#: ../roundup/cgi/form_parser.py:418
+#: ../roundup/cgi/form_parser.py:415
+msgid "Not a file attachment"
+msgstr ""
+
+#: ../roundup/cgi/form_parser.py:458
 #, python-format
 msgid "property \"%(propname)s\": \"%(value)s\" not currently in list"
 msgstr ""
 
-#: ../roundup/cgi/form_parser.py:557
+#: ../roundup/cgi/form_parser.py:578
 #, python-format
 msgid "Required %(class)s property %(property)s not supplied"
 msgid_plural "Required %(class)s properties %(property)s not supplied"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/cgi/form_parser.py:580
-msgid "File is empty"
-msgstr ""
-
-#: ../roundup/cgi/templating.py:77
+#: ../roundup/cgi/templating.py:118
 #, python-format
 msgid "You are not allowed to %(action)s items of class %(class)s"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:664
+#: ../roundup/cgi/templating.py:698
 msgid "(list)"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:733
+#: ../roundup/cgi/templating.py:770
 msgid "Submit New Entry"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:747 ../roundup/cgi/templating.py:886
-#: ../roundup/cgi/templating.py:1358 ../roundup/cgi/templating.py:1387
-#: ../roundup/cgi/templating.py:1407 ../roundup/cgi/templating.py:1420
-#: ../roundup/cgi/templating.py:1471 ../roundup/cgi/templating.py:1494
-#: ../roundup/cgi/templating.py:1530 ../roundup/cgi/templating.py:1567
-#: ../roundup/cgi/templating.py:1620 ../roundup/cgi/templating.py:1637
-#: ../roundup/cgi/templating.py:1721 ../roundup/cgi/templating.py:1741
-#: ../roundup/cgi/templating.py:1759 ../roundup/cgi/templating.py:1791
-#: ../roundup/cgi/templating.py:1801 ../roundup/cgi/templating.py:1853
-#: ../roundup/cgi/templating.py:2069 ../roundup/cgi/templating.py:747:886
-#: :1358:1387 :1407:1420 :1471:1494 :1530:1567 :1620:1637 :1721:1741 :1759:1791
-#: :1801:1853 :2069
+#: ../roundup/cgi/templating.py:787 ../roundup/cgi/templating.py:944
+#: ../roundup/cgi/templating.py:1493 ../roundup/cgi/templating.py:1522
+#: ../roundup/cgi/templating.py:1542 ../roundup/cgi/templating.py:1555
+#: ../roundup/cgi/templating.py:1605 ../roundup/cgi/templating.py:1628
+#: ../roundup/cgi/templating.py:1635 ../roundup/cgi/templating.py:1671
+#: ../roundup/cgi/templating.py:1708 ../roundup/cgi/templating.py:1741
+#: ../roundup/cgi/templating.py:1830 ../roundup/cgi/templating.py:1851
+#: ../roundup/cgi/templating.py:1941 ../roundup/cgi/templating.py:1961
+#: ../roundup/cgi/templating.py:1979 ../roundup/cgi/templating.py:2011
+#: ../roundup/cgi/templating.py:2021 ../roundup/cgi/templating.py:2085
+#: ../roundup/cgi/templating.py:2332 ../roundup/cgi/templating.py:787:944
+#: :1493:1522 :1542:1555 :1605:1628 :1635:1671 :1708:1741 :1830:1851 :1941:1961
+#: :1979:2011 :2021:2085 :2332
 msgid "[hidden]"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:748
+#: ../roundup/cgi/templating.py:788
 msgid "New node - no history"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:868
+#: ../roundup/cgi/templating.py:913
 msgid "Submit Changes"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:950
+#: ../roundup/cgi/templating.py:981
 msgid "<em>The indicated property no longer exists</em>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:951
+#: ../roundup/cgi/templating.py:982
 #, python-format
 msgid "<em>%s: %s</em>\n"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:964
+#: ../roundup/cgi/templating.py:1017
 #, python-format
 msgid "The linked class %(classname)s no longer exists"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:998 ../roundup/cgi/templating.py:1023
-#: ../roundup/cgi/templating.py:998:1023
+#: ../roundup/cgi/templating.py:1055 ../roundup/cgi/templating.py:1081
+#: ../roundup/cgi/templating.py:1055:1081
 msgid "<strike>The linked node no longer exists</strike>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1077
+#: ../roundup/cgi/templating.py:1142
 #, python-format
 msgid "%s: (no value)"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1089
+#: ../roundup/cgi/templating.py:1154
 msgid ""
 "<strong><em>This event is not handled by the history display!</em></strong>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1101
+#: ../roundup/cgi/templating.py:1166
 msgid "<tr><td colspan=4><strong>Note:</strong></td></tr>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1110
+#: ../roundup/cgi/templating.py:1175
 msgid "History"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1112
+#: ../roundup/cgi/templating.py:1177
 msgid "<th>Date</th>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1113
+#: ../roundup/cgi/templating.py:1178
 msgid "<th>User</th>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1114
+#: ../roundup/cgi/templating.py:1179
 msgid "<th>Action</th>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1115
+#: ../roundup/cgi/templating.py:1180
 msgid "<th>Args</th>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1160
+#: ../roundup/cgi/templating.py:1228
 #, python-format
 msgid "Copy of %(class)s %(id)s"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1498
-msgid "*encrypted*"
-msgstr ""
-
-#: ../roundup/cgi/templating.py:1571 ../roundup/cgi/templating.py:1592
-#: ../roundup/cgi/templating.py:1598 ../roundup/cgi/templating.py:1066:1571
-#: :1592:1598
+#: ../roundup/cgi/templating.py:1745 ../roundup/cgi/templating.py:1778
+#: ../roundup/cgi/templating.py:1124:1745 :1778
 msgid "No"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1571 ../roundup/cgi/templating.py:1590
-#: ../roundup/cgi/templating.py:1595 ../roundup/cgi/templating.py:1066:1571
-#: :1590:1595
+#: ../roundup/cgi/templating.py:1745 ../roundup/cgi/templating.py:1773
+#: ../roundup/cgi/templating.py:1124:1745 :1773
 msgid "Yes"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1684
+#: ../roundup/cgi/templating.py:1899
 msgid ""
 "default value for DateHTMLProperty must be either DateHTMLProperty or string "
 "date representation."
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1844
+#: ../roundup/cgi/templating.py:2065
 #, python-format
 msgid "Attempt to look up %(attr)s on a missing value"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1929
+#: ../roundup/cgi/templating.py:2076
+#, python-format
+msgid "Attempt to look up %(item)s on a missing value"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:2179
 #, python-format
 msgid "<option %svalue=\"-1\">- no selection -</option>"
 msgstr ""
 
-#: ../roundup/date.py:292
+#: ../roundup/date.py:384
+#, python-format
 msgid ""
-"Not a date spec: \"yyyy-mm-dd\", \"mm-dd\", \"HH:MM\", \"HH:MM:SS\" or \"yyyy-"
-"mm-dd.HH:MM:SS.SSS\""
-msgstr ""
-
-#: ../roundup/date.py:315
+"Not a date spec: %r (\"yyyy-mm-dd\", \"mm-dd\", \"HH:MM\", \"HH:MM:SS\" or "
+"\"yyyy-mm-dd.HH:MM:SS.SSS\")"
+msgstr ""
+
+#: ../roundup/date.py:407
 msgid "Could not determine granularity"
 msgstr ""
 
-#: ../roundup/date.py:365
+#: ../roundup/date.py:459
 #, python-format
 msgid ""
 "%r not a date / time spec \"yyyy-mm-dd\", \"mm-dd\", \"HH:MM\", \"HH:MM:SS\" "
 "or \"yyyy-mm-dd.HH:MM:SS.SSS\""
 msgstr ""
 
-#: ../roundup/date.py:677
+#: ../roundup/date.py:824
+#, python-format
 msgid ""
-"Not an interval spec: [+-] [#y] [#m] [#w] [#d] [[[H]H:MM]:SS] [date spec]"
-msgstr ""
-
-#: ../roundup/date.py:699
-msgid "Not an interval spec: [+-] [#y] [#m] [#w] [#d] [[[H]H:MM]:SS]"
-msgstr ""
-
-#: ../roundup/date.py:836
+"Not an interval spec: \"%s\" ([+-] [#y] [#m] [#w] [#d] [[[H]H:MM]:SS] [date "
+"spec])"
+msgstr ""
+
+#: ../roundup/date.py:847
+#, python-format
+msgid "Not an interval spec: \"%s\" ([+-] [#y] [#m] [#w] [#d] [[[H]H:MM]:SS])"
+msgstr ""
+
+#: ../roundup/date.py:1024
 #, python-format
 msgid "%(number)s year"
 msgid_plural "%(number)s years"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:840
+#: ../roundup/date.py:1028
 #, python-format
 msgid "%(number)s month"
 msgid_plural "%(number)s months"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:844
+#: ../roundup/date.py:1032
 #, python-format
 msgid "%(number)s week"
 msgid_plural "%(number)s weeks"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:848
+#: ../roundup/date.py:1036
 #, python-format
 msgid "%(number)s day"
 msgid_plural "%(number)s days"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:852
+#: ../roundup/date.py:1040
 msgid "tomorrow"
 msgstr ""
 
-#: ../roundup/date.py:854
+#: ../roundup/date.py:1042
 msgid "yesterday"
 msgstr ""
 
-#: ../roundup/date.py:857
+#: ../roundup/date.py:1045
 #, python-format
 msgid "%(number)s hour"
 msgid_plural "%(number)s hours"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:861
+#: ../roundup/date.py:1049
 msgid "an hour"
 msgstr ""
 
-#: ../roundup/date.py:863
+#: ../roundup/date.py:1051
 msgid "1 1/2 hours"
 msgstr ""
 
-#: ../roundup/date.py:865
+#: ../roundup/date.py:1053
 #, python-format
 msgid "1 %(number)s/4 hours"
 msgid_plural "1 %(number)s/4 hours"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:869
+#: ../roundup/date.py:1057
 msgid "in a moment"
 msgstr ""
 
-#: ../roundup/date.py:871
+#: ../roundup/date.py:1059
 msgid "just now"
 msgstr ""
 
-#: ../roundup/date.py:874
+#: ../roundup/date.py:1062
 msgid "1 minute"
 msgstr ""
 
-#: ../roundup/date.py:877
+#: ../roundup/date.py:1065
 #, python-format
 msgid "%(number)s minute"
 msgid_plural "%(number)s minutes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:880
+#: ../roundup/date.py:1068
 msgid "1/2 an hour"
 msgstr ""
 
-#: ../roundup/date.py:882
+#: ../roundup/date.py:1070
 #, python-format
 msgid "%(number)s/4 hour"
 msgid_plural "%(number)s/4 hours"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:886
+#: ../roundup/date.py:1074
 #, python-format
 msgid "%s ago"
 msgstr ""
 
-#: ../roundup/date.py:888
+#: ../roundup/date.py:1076
 #, python-format
 msgid "in %s"
 msgstr ""
 
-#: ../roundup/hyperdb.py:91
+#: ../roundup/hyperdb.py:92
 #, python-format
 msgid "property %s: %s"
 msgstr ""
 
-#: ../roundup/hyperdb.py:111
+#: ../roundup/hyperdb.py:114
 #, python-format
 msgid "property %s: %r is an invalid date (%s)"
 msgstr ""
 
-#: ../roundup/hyperdb.py:128
+#: ../roundup/hyperdb.py:131
 #, python-format
 msgid "property %s: %r is an invalid date interval (%s)"
 msgstr ""
 
-#: ../roundup/hyperdb.py:223
-#, python-format
-msgid "property %s: %r is not currently an element"
-msgstr ""
-
-#: ../roundup/hyperdb.py:267
+#: ../roundup/hyperdb.py:318
 #, python-format
 msgid "property %s: %r is not a number"
 msgstr ""
 
-#: ../roundup/hyperdb.py:280
+#: ../roundup/hyperdb.py:329
+#, python-format
+msgid "property %s: %r is not an integer"
+msgstr ""
+
+#: ../roundup/hyperdb.py:342
 #, python-format
 msgid "\"%s\" not a node designator"
 msgstr ""
 
-#: ../roundup/hyperdb.py:953 ../roundup/hyperdb.py:961
-#: ../roundup/hyperdb.py:953:961
+#: ../roundup/hyperdb.py:1176 ../roundup/hyperdb.py:1184
+#: ../roundup/hyperdb.py:1176:1184
 #, python-format
 msgid "Not a property name: %s"
 msgstr ""
 
-#: ../roundup/hyperdb.py:1244
+#: ../roundup/hyperdb.py:1581
 #, python-format
 msgid "property %s: %r is not a %s."
 msgstr ""
 
-#: ../roundup/hyperdb.py:1247
+#: ../roundup/hyperdb.py:1584
 #, python-format
 msgid "you may only enter ID values for property %s"
 msgstr ""
 
-#: ../roundup/hyperdb.py:1277
+#: ../roundup/hyperdb.py:1616
 #, python-format
 msgid "%r is not a property of %s"
 msgstr ""
@@ -1448,45 +1726,49 @@
 "\tcontains old-style template - ignored"
 msgstr ""
 
-#: ../roundup/mailgw.py:201 ../roundup/mailgw.py:213
-#: ../roundup/mailgw.py:201:213
+#: ../roundup/mailgw.py:184 ../roundup/mailgw.py:197
+#: ../roundup/mailgw.py:184:197
 #, python-format
 msgid "Message signed with unknown key: %s"
 msgstr ""
 
-#: ../roundup/mailgw.py:204
+#: ../roundup/mailgw.py:187
 #, python-format
 msgid "Message signed with an expired key: %s"
 msgstr ""
 
-#: ../roundup/mailgw.py:207
+#: ../roundup/mailgw.py:190
 #, python-format
 msgid "Message signed with a revoked key: %s"
 msgstr ""
 
-#: ../roundup/mailgw.py:210
+#: ../roundup/mailgw.py:193
 msgid "Invalid PGP signature detected."
 msgstr ""
 
-#: ../roundup/mailgw.py:464
+#: ../roundup/mailgw.py:199
+msgid "Unsigned Message"
+msgstr ""
+
+#: ../roundup/mailgw.py:429
 msgid "Unknown multipart/encrypted version."
 msgstr ""
 
-#: ../roundup/mailgw.py:473
+#: ../roundup/mailgw.py:438
 msgid "Unable to decrypt your message."
 msgstr ""
 
-#: ../roundup/mailgw.py:502
+#: ../roundup/mailgw.py:465
 msgid "No PGP signature found in message."
 msgstr ""
 
-#: ../roundup/mailgw.py:812
+#: ../roundup/mailgw.py:537
 msgid ""
 "\n"
 "Emails to Roundup trackers must include a Subject: line!\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:936
+#: ../roundup/mailgw.py:646
 #, python-format
 msgid ""
 "\n"
@@ -1503,7 +1785,7 @@
 "Subject was: '%(subject)s'\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:974
+#: ../roundup/mailgw.py:684
 #, python-format
 msgid ""
 "\n"
@@ -1514,7 +1796,7 @@
 "Subject was: \"%(subject)s\"\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:982
+#: ../roundup/mailgw.py:692
 #, python-format
 msgid ""
 "\n"
@@ -1531,7 +1813,7 @@
 "Subject was: '%(subject)s'\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:1023
+#: ../roundup/mailgw.py:730
 #, python-format
 msgid ""
 "\n"
@@ -1542,7 +1824,7 @@
 "Subject was: \"%(subject)s\"\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:1056
+#: ../roundup/mailgw.py:763
 #, python-format
 msgid ""
 "\n"
@@ -1552,25 +1834,7 @@
 "Subject was: \"%(subject)s\"\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:1084
-#, python-format
-msgid ""
-"\n"
-"The mail gateway is not properly set up. Please contact\n"
-"%(mailadmin)s and have them fix the incorrect class specified as:\n"
-"  %(current_class)s\n"
-msgstr ""
-
-#: ../roundup/mailgw.py:1107
-#, python-format
-msgid ""
-"\n"
-"The mail gateway is not properly set up. Please contact\n"
-"%(mailadmin)s and have them fix the incorrect properties:\n"
-"  %(errors)s\n"
-msgstr ""
-
-#: ../roundup/mailgw.py:1147
+#: ../roundup/mailgw.py:808
 #, python-format
 msgid ""
 "\n"
@@ -1579,21 +1843,21 @@
 "Unknown address: %(from_address)s\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:1155
+#: ../roundup/mailgw.py:816
 msgid "You are not permitted to access this tracker."
 msgstr ""
 
-#: ../roundup/mailgw.py:1162
+#: ../roundup/mailgw.py:827
 #, python-format
 msgid "You are not permitted to edit %(classname)s."
 msgstr ""
 
-#: ../roundup/mailgw.py:1166
+#: ../roundup/mailgw.py:833
 #, python-format
 msgid "You are not permitted to create %(classname)s."
 msgstr ""
 
-#: ../roundup/mailgw.py:1213
+#: ../roundup/mailgw.py:914
 #, python-format
 msgid ""
 "\n"
@@ -1603,34 +1867,38 @@
 "Subject was: \"%(subject)s\"\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:1266
+#: ../roundup/mailgw.py:966
+msgid "This tracker has been configured to require all email be PGP encrypted."
+msgstr ""
+
+#: ../roundup/mailgw.py:1003
 msgid ""
 "\n"
 "This tracker has been configured to require all email be PGP signed or\n"
 "encrypted."
 msgstr ""
 
-#: ../roundup/mailgw.py:1273
+#: ../roundup/mailgw.py:1033
+msgid "You are not permitted to create files."
+msgstr ""
+
+#: ../roundup/mailgw.py:1047
+#, python-format
+msgid "You are not permitted to add files to %(classname)s."
+msgstr ""
+
+#: ../roundup/mailgw.py:1077
 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:1290
-msgid "You are not permitted to create files."
-msgstr ""
-
-#: ../roundup/mailgw.py:1304
-#, python-format
-msgid "You are not permitted to add files to %(classname)s."
-msgstr ""
-
-#: ../roundup/mailgw.py:1322
+#: ../roundup/mailgw.py:1088
 msgid "You are not permitted to create messages."
 msgstr ""
 
-#: ../roundup/mailgw.py:1330
+#: ../roundup/mailgw.py:1096
 #, python-format
 msgid ""
 "\n"
@@ -1638,17 +1906,22 @@
 "%(error)s\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:1338
+#: ../roundup/mailgw.py:1104
 #, python-format
 msgid "You are not permitted to add messages to %(classname)s."
 msgstr ""
 
-#: ../roundup/mailgw.py:1365
+#: ../roundup/mailgw.py:1126
 #, python-format
 msgid "You are not permitted to edit property %(prop)s of class %(classname)s."
 msgstr ""
 
-#: ../roundup/mailgw.py:1374
+#: ../roundup/mailgw.py:1135
+#, python-format
+msgid "You are not permitted to set property %(prop)s of class %(classname)s."
+msgstr ""
+
+#: ../roundup/mailgw.py:1141
 #, python-format
 msgid ""
 "\n"
@@ -1656,85 +1929,113 @@
 "   %(message)s\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:1396
+#: ../roundup/mailgw.py:1607
+#, python-format
+msgid ""
+"\n"
+"The mail gateway is not properly set up. Please contact\n"
+"%(mailadmin)s and have them fix the incorrect class specified as:\n"
+"  %(clsname)s\n"
+msgstr ""
+
+#: ../roundup/mailgw.py:1638
+#, python-format
+msgid ""
+"\n"
+"The mail gateway is not properly set up. Please contact\n"
+"%(mailadmin)s and have them fix the incorrect properties:\n"
+"  %(errors)s\n"
+msgstr ""
+
+#: ../roundup/mailgw.py:1659
 msgid "not of form [arg=value,value,...;arg=value,value,...]"
 msgstr ""
 
-#: ../roundup/roundupdb.py:174
+#: ../roundup/rest.py:1711
+#, python-format
+msgid "Api rate limits exceeded. Please wait: %d seconds."
+msgstr ""
+
+#: ../roundup/roundupdb.py:203
 msgid "files"
 msgstr ""
 
-#: ../roundup/roundupdb.py:174
+#: ../roundup/roundupdb.py:203
 msgid "messages"
 msgstr ""
 
-#: ../roundup/roundupdb.py:174
+#: ../roundup/roundupdb.py:203
 msgid "nosy"
 msgstr ""
 
-#: ../roundup/roundupdb.py:174
+#: ../roundup/roundupdb.py:203
 msgid "superseder"
 msgstr ""
 
-#: ../roundup/roundupdb.py:174
+#: ../roundup/roundupdb.py:203
 msgid "title"
 msgstr ""
 
-#: ../roundup/roundupdb.py:175
+#: ../roundup/roundupdb.py:204
 msgid "assignedto"
 msgstr ""
 
-#: ../roundup/roundupdb.py:175
+#: ../roundup/roundupdb.py:204
 msgid "keyword"
 msgstr ""
 
-#: ../roundup/roundupdb.py:175
+#: ../roundup/roundupdb.py:204
 msgid "priority"
 msgstr ""
 
-#: ../roundup/roundupdb.py:175
+#: ../roundup/roundupdb.py:204
 msgid "status"
 msgstr ""
 
-#: ../roundup/roundupdb.py:178
+#: ../roundup/roundupdb.py:207
 msgid "activity"
 msgstr ""
 
 #. following properties are common for all hyperdb classes
 #. they are listed here to keep things in one place
-#: ../roundup/roundupdb.py:178
+#: ../roundup/roundupdb.py:207
 msgid "actor"
 msgstr ""
 
-#: ../roundup/roundupdb.py:178
+#: ../roundup/roundupdb.py:207
 msgid "creation"
 msgstr ""
 
-#: ../roundup/roundupdb.py:178
+#: ../roundup/roundupdb.py:207
 msgid "creator"
 msgstr ""
 
-#: ../roundup/roundupdb.py:335
+#: ../roundup/roundupdb.py:391
+#, python-format
+msgid "No key for \"%(adr)s\" in keyring"
+msgstr ""
+
+#: ../roundup/roundupdb.py:461
 #, python-format
 msgid "New submission from %(authname)s%(authaddr)s:"
 msgstr ""
 
-#: ../roundup/roundupdb.py:338
+#: ../roundup/roundupdb.py:464
 #, python-format
 msgid "%(authname)s%(authaddr)s added the comment:"
 msgstr ""
 
-#: ../roundup/roundupdb.py:341
+#: ../roundup/roundupdb.py:467
 #, python-format
 msgid "Change by %(authname)s%(authaddr)s:"
 msgstr ""
 
-#: ../roundup/roundupdb.py:361
+#: ../roundup/roundupdb.py:486
 #, python-format
 msgid "File '%(filename)s' not attached - you can download it from %(link)s."
 msgstr ""
 
-#: ../roundup/roundupdb.py:661
+#: ../roundup/roundupdb.py:852
 #, python-format
 msgid ""
 "\n"
@@ -1744,37 +2045,42 @@
 "%(old)s"
 msgstr ""
 
-#: ../roundup/scripts/roundup_demo.py:32
+#: ../roundup/scripts/roundup_demo.py:48
 #, python-format
 msgid "Enter directory path to create demo tracker [%s]: "
 msgstr ""
 
-#: ../roundup/scripts/roundup_gettext.py:22
+#: ../roundup/scripts/roundup_demo.py:53
+#, python-format
+msgid "Enter tracker template to use (one of (%s)) [%s]: "
+msgstr ""
+
+#: ../roundup/scripts/roundup_gettext.py:34
 #, python-format
 msgid "Usage: %(program)s <tracker home>"
 msgstr ""
 
-#: ../roundup/scripts/roundup_gettext.py:37
+#: ../roundup/scripts/roundup_gettext.py:49
 #, python-format
 msgid "No tracker templates found in directory %s"
 msgstr ""
 
-#: ../roundup/scripts/roundup_mailgw.py:36
+#: ../roundup/scripts/roundup_mailgw.py:49
 #, python-format
 msgid ""
-"Usage: %(program)s [-v] [-c class] [[-C class] -S field=value]* <instance "
-"home> [method]\n"
+"Usage: %(program)s [-v] [-c class] [[-C class] -S field=value]* [instance "
+"home] [mail source [specification]]\n"
 "\n"
 "Options:\n"
 " -v: print version and exit\n"
 " -c: default class of item to create (else the tracker's MAIL_DEFAULT_CLASS)\n"
 " -C / -S: see below\n"
 "\n"
-"The roundup mail gateway may be called in one of four ways:\n"
+"The roundup mail gateway may be called in one of the following ways:\n"
+" . without arguments. Then the env var ROUNDUP_INSTANCE will be tried.\n"
 " . with an instance home as the only argument,\n"
 " . with both an instance home and a mail spool file,\n"
-" . with both an instance home and a POP/APOP server account, or\n"
-" . with both an instance home and a IMAP/IMAPS server account.\n"
+" . with an instance home, a mail source type and its specification.\n"
 "\n"
 "It also supports optional -C and -S arguments that allows you to set a\n"
 "fields for a class created by the roundup-mailgw. The default class if\n"
@@ -1787,25 +2093,27 @@
 "It can let you set the type of the message on a per email address basis.\n"
 "\n"
 "PIPE:\n"
-" In the first case, the mail gateway reads a single message from the\n"
-" standard input and submits the message to the roundup.mailgw module.\n"
+" If there is no mail source specified,\n"
+" the mail gateway reads a single message from the standard input\n"
+" and submits the message to the roundup.mailgw module.\n"
 "\n"
-"UNIX mailbox:\n"
-" In the second case, the gateway reads all messages from the mail spool\n"
+"Mail source \"mailbox\":\n"
+" In this case, the gateway reads all messages from the UNIX mail spool\n"
 " file and submits each in turn to the roundup.mailgw module. The file is\n"
 " emptied once all messages have been successfully handled. The file is\n"
 " specified as:\n"
 "   mailbox /path/to/mailbox\n"
 "\n"
-"In all of the following the username and password can be stored in a\n"
-"~/.netrc file. In this case only the server name need be specified on\n"
-"the command-line.\n"
+"In all of the following mail source type the username and password\n"
+"can be stored in a ~/.netrc file. If done so case only the server name\n"
+"need to be specified on the command-line.\n"
 "\n"
 "The username and/or password will be prompted for if not supplied on\n"
 "the command-line or in ~/.netrc.\n"
 "\n"
 "POP:\n"
-" In the third case, the gateway reads all messages from the POP server\n"
+" For the mail source \"pop\", the gateway reads all messages from the POP "
+"server\n"
 " specified and submits each in turn to the roundup.mailgw module. The\n"
 " server is specified as:\n"
 "    pop username:password@server\n"
@@ -1835,83 +2143,88 @@
 " This supports the same notation as IMAP.\n"
 "    imaps username:password@server [mailbox]\n"
 "\n"
-msgstr ""
-
-#: ../roundup/scripts/roundup_mailgw.py:157
+"IMAPS_CRAM:\n"
+" Connect to an IMAP server over ssl using CRAM-MD5 authentication.\n"
+" This supports the same notation as IMAP.\n"
+"    imaps_cram username:password@server [mailbox]\n"
+"\n"
+msgstr ""
+
+#: ../roundup/scripts/roundup_mailgw.py:171
 msgid "Error: not enough source specification information"
 msgstr ""
 
-#: ../roundup/scripts/roundup_mailgw.py:186
+#: ../roundup/scripts/roundup_mailgw.py:200
 #, python-format
 msgid "Error: %s specification not valid"
 msgstr ""
 
-#: ../roundup/scripts/roundup_mailgw.py:192
+#: ../roundup/scripts/roundup_mailgw.py:206
 msgid "Error: a later version of python is required"
 msgstr ""
 
-#: ../roundup/scripts/roundup_mailgw.py:203
+#: ../roundup/scripts/roundup_mailgw.py:222
 msgid ""
 "Error: The source must be either \"mailbox\", \"pop\", \"pops\", \"apop\", "
-"\"imap\" or \"imaps\""
-msgstr ""
-
-#: ../roundup/scripts/roundup_server.py:76
+"\"imap\", \"imaps\" or \"imaps_cram"
+msgstr ""
+
+#: ../roundup/scripts/roundup_server.py:111
 msgid "WARNING: generating temporary SSL certificate"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:253
+#: ../roundup/scripts/roundup_server.py:291
 msgid ""
 "<html><head><title>Roundup trackers index</title></head>\n"
 "<body><h1>Roundup trackers index</h1><ol>\n"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:389
+#: ../roundup/scripts/roundup_server.py:499
 #, python-format
 msgid "Error: %s: %s"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:399
+#: ../roundup/scripts/roundup_server.py:509
 msgid "WARNING: ignoring \"-g\" argument, not root"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:405
+#: ../roundup/scripts/roundup_server.py:515
 msgid "Can't change groups - no grp module"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:414
+#: ../roundup/scripts/roundup_server.py:524
 #, python-format
 msgid "Group %(group)s doesn't exist"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:425
+#: ../roundup/scripts/roundup_server.py:535
 msgid "Can't run as root!"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:428
+#: ../roundup/scripts/roundup_server.py:538
 msgid "WARNING: ignoring \"-u\" argument, not root"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:434
+#: ../roundup/scripts/roundup_server.py:544
 msgid "Can't change users - no pwd module"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:443
+#: ../roundup/scripts/roundup_server.py:553
 #, python-format
 msgid "User %(user)s doesn't exist"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:592
+#: ../roundup/scripts/roundup_server.py:735
 #, python-format
 msgid "Multiprocess mode \"%s\" is not available, switching to single-process"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:620
+#: ../roundup/scripts/roundup_server.py:762
 #, python-format
 msgid "Unable to bind to port %s, port already in use."
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:688
+#: ../roundup/scripts/roundup_server.py:830
 msgid ""
 " -c <Command>  Windows Service options.\n"
 "               If you want to run the server as a Windows Service, you\n"
@@ -1921,7 +2234,7 @@
 "               specifics."
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:695
+#: ../roundup/scripts/roundup_server.py:837
 msgid ""
 " -u <UID>      runs the Roundup web server as this UID\n"
 " -g <GID>      runs the Roundup web server as this GID\n"
@@ -1930,7 +2243,7 @@
 "               specified if -d is used."
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:702
+#: ../roundup/scripts/roundup_server.py:844
 #, python-format
 msgid ""
 "%(message)sUsage: roundup-server [options] [name=tracker home]*\n"
@@ -1940,13 +2253,17 @@
 " -h            print this text and exit\n"
 " -S            create or update configuration file and exit\n"
 " -C <fname>    use configuration file <fname>\n"
-" -n <name>     set the host name of the Roundup web server instance\n"
+" -n <name>     set the host name of the Roundup web server instance,\n"
+"               specifies on which network interfaces to listen for\n"
+"               connections, defaults to localhost, use 0.0.0.0 to bind\n"
+"               to all network interfaces\n"
 " -p <port>     set the port to listen on (default: %(port)s)\n"
 " -l <fname>    log to the file indicated by fname instead of stderr/stdout\n"
 " -N            log client machine names instead of IP addresses (much "
 "slower)\n"
 " -i <fname>    set tracker index template\n"
 " -s            enable SSL\n"
+" -L            http request logging uses python logging (roundup.http)\n"
 " -e <fname>    PEM file containing SSL key and certificate\n"
 " -t <mode>     multiprocess mode (default: %(mp_def)s).\n"
 "               Allowed values: %(mp_types)s.\n"
@@ -1988,20 +2305,20 @@
 "   any url-unsafe characters like spaces, as these confuse IE.\n"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:860
+#: ../roundup/scripts/roundup_server.py:1002
 msgid "Instances must be name=home"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:874
+#: ../roundup/scripts/roundup_server.py:1016
 #, python-format
 msgid "Configuration saved to %s"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:892
+#: ../roundup/scripts/roundup_server.py:1034
 msgid "Sorry, you can't run the server as a daemon on this Operating System"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:907
+#: ../roundup/scripts/roundup_server.py:1054
 #, python-format
 msgid "Roundup server started on %(HOST)s:%(PORT)s"
 msgstr ""
@@ -2033,7 +2350,7 @@
 #: ../share/roundup/templates/classic/html/_generic.index.html:14
 #: ../share/roundup/templates/classic/html/_generic.item.html:12
 #: ../share/roundup/templates/classic/html/file.item.html:9
-#: ../share/roundup/templates/classic/html/issue.index.html:16
+#: ../share/roundup/templates/classic/html/issue.index.html:15
 #: ../share/roundup/templates/classic/html/issue.item.html:28
 #: ../share/roundup/templates/classic/html/msg.item.html:26
 #: ../share/roundup/templates/classic/html/user.index.html:9
@@ -2041,7 +2358,7 @@
 #: ../share/roundup/templates/minimal/html/_generic.index.html:14
 #: ../share/roundup/templates/minimal/html/_generic.item.html:12
 #: ../share/roundup/templates/minimal/html/user.index.html:9
-#: ../share/roundup/templates/minimal/html/user.item.html:35
+#: ../share/roundup/templates/minimal/html/user.item.html:34
 #: ../share/roundup/templates/minimal/html/user.register.html:14
 msgid "You are not allowed to view this page."
 msgstr ""
@@ -2076,21 +2393,21 @@
 
 #: ../share/roundup/templates/classic/html/_generic.help.html:41
 #: ../share/roundup/templates/classic/html/help.html:21
-#: ../share/roundup/templates/classic/html/issue.index.html:81
+#: ../share/roundup/templates/classic/html/issue.index.html:80
 #: ../share/roundup/templates/minimal/html/_generic.help.html:41
 msgid "&lt;&lt; previous"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/_generic.help.html:53
 #: ../share/roundup/templates/classic/html/help.html:28
-#: ../share/roundup/templates/classic/html/issue.index.html:89
+#: ../share/roundup/templates/classic/html/issue.index.html:88
 #: ../share/roundup/templates/minimal/html/_generic.help.html:53
 msgid "${start}..${end} out of ${total}"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/_generic.help.html:57
 #: ../share/roundup/templates/classic/html/help.html:32
-#: ../share/roundup/templates/classic/html/issue.index.html:92
+#: ../share/roundup/templates/classic/html/issue.index.html:91
 #: ../share/roundup/templates/minimal/html/_generic.help.html:57
 msgid "next &gt;&gt;"
 msgstr ""
@@ -2112,15 +2429,15 @@
 #: ../share/roundup/templates/classic/html/_generic.index.html:19
 #: ../share/roundup/templates/classic/html/_generic.item.html:16
 #: ../share/roundup/templates/classic/html/file.item.html:13
-#: ../share/roundup/templates/classic/html/issue.index.html:20
+#: ../share/roundup/templates/classic/html/issue.index.html:19
 #: ../share/roundup/templates/classic/html/issue.item.html:32
 #: ../share/roundup/templates/classic/html/msg.item.html:30
 #: ../share/roundup/templates/classic/html/user.index.html:13
 #: ../share/roundup/templates/classic/html/user.item.html:39
 #: ../share/roundup/templates/minimal/html/_generic.index.html:19
-#: ../share/roundup/templates/minimal/html/_generic.item.html:17
+#: ../share/roundup/templates/minimal/html/_generic.item.html:16
 #: ../share/roundup/templates/minimal/html/user.index.html:13
-#: ../share/roundup/templates/minimal/html/user.item.html:39
+#: ../share/roundup/templates/minimal/html/user.item.html:38
 #: ../share/roundup/templates/minimal/html/user.register.html:17
 msgid "Please login with your username and password."
 msgstr ""
@@ -2135,14 +2452,23 @@
 "(\"\"). </p> <p class=\"form-help\"> Multilink properties have their multiple "
 "values colon (\":\") separated (... ,\"one:two:three\", ...) </p> <p class="
 "\"form-help\"> Remove entries by deleting their line. Add new entries by "
-"appending them to the table - put an X in the id column. </p>"
-msgstr ""
-
-#: ../share/roundup/templates/classic/html/_generic.index.html:50
-#: ../share/roundup/templates/minimal/html/_generic.index.html:50
+"appending them to the table - put an X in the id column. If you wish to "
+"restore a removed item and you know its id then just put that id in the id "
+"column. </p>"
+msgstr ""
+
+#: ../share/roundup/templates/classic/html/_generic.index.html:53
+#: ../share/roundup/templates/minimal/html/_generic.index.html:53
 msgid "Edit Items"
 msgstr ""
 
+#: ../share/roundup/templates/classic/html/_generic.item.html:51
+#: ../share/roundup/templates/minimal/html/_generic.item.html:51
+msgid ""
+"Showing 10 items. <a href=\"\">Show all history</a> (warning: this could be "
+"VERY long)"
+msgstr ""
+
 #: ../share/roundup/templates/classic/html/file.index.html:4
 msgid "List of files - ${tracker}"
 msgstr ""
@@ -2196,78 +2522,78 @@
 msgid "List of classes"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.index.html:4
-#: ../share/roundup/templates/classic/html/issue.index.html:10
+#: ../share/roundup/templates/classic/html/issue.index.html:3
+#: ../share/roundup/templates/classic/html/issue.index.html:9
 msgid "List of issues"
 msgstr ""
 
+#: ../share/roundup/templates/classic/html/issue.index.html:26
+#: ../share/roundup/templates/classic/html/issue.item.html:49
+msgid "Priority"
+msgstr ""
+
 #: ../share/roundup/templates/classic/html/issue.index.html:27
-#: ../share/roundup/templates/classic/html/issue.item.html:49
-msgid "Priority"
+msgid "ID"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/issue.index.html:28
-msgid "ID"
+msgid "Creation"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/issue.index.html:29
-msgid "Creation"
+msgid "Activity"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/issue.index.html:30
-msgid "Activity"
+msgid "Actor"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/issue.index.html:31
-msgid "Actor"
+#: ../share/roundup/templates/classic/html/keyword.item.html:37
+msgid "Keyword"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/issue.index.html:32
-#: ../share/roundup/templates/classic/html/keyword.item.html:37
-msgid "Keyword"
+#: ../share/roundup/templates/classic/html/issue.item.html:44
+msgid "Title"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/issue.index.html:33
-#: ../share/roundup/templates/classic/html/issue.item.html:44
-msgid "Title"
+#: ../share/roundup/templates/classic/html/issue.item.html:51
+msgid "Status"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/issue.index.html:34
-#: ../share/roundup/templates/classic/html/issue.item.html:51
-msgid "Status"
+msgid "Creator"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/issue.index.html:35
-msgid "Creator"
-msgstr ""
-
-#: ../share/roundup/templates/classic/html/issue.index.html:36
 msgid "Assigned&nbsp;To"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.index.html:105
+#: ../share/roundup/templates/classic/html/issue.index.html:104
 msgid "Download as CSV"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.index.html:115
+#: ../share/roundup/templates/classic/html/issue.index.html:114
 msgid "Sort on:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.index.html:119
-#: ../share/roundup/templates/classic/html/issue.index.html:140
+#: ../share/roundup/templates/classic/html/issue.index.html:118
+#: ../share/roundup/templates/classic/html/issue.index.html:139
 msgid "- nothing -"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.index.html:127
-#: ../share/roundup/templates/classic/html/issue.index.html:148
+#: ../share/roundup/templates/classic/html/issue.index.html:126
+#: ../share/roundup/templates/classic/html/issue.index.html:147
 msgid "Descending:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.index.html:136
+#: ../share/roundup/templates/classic/html/issue.index.html:135
 msgid "Group on:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.index.html:155
+#: ../share/roundup/templates/classic/html/issue.index.html:154
 msgid "Redisplay"
 msgstr ""
 
@@ -2312,8 +2638,8 @@
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/issue.item.html:78
-#: ../share/roundup/templates/classic/html/page.html:103
-#: ../share/roundup/templates/minimal/html/page.html:102
+#: ../share/roundup/templates/classic/html/page.html:105
+#: ../share/roundup/templates/minimal/html/page.html:105
 msgid "Keywords"
 msgstr ""
 
@@ -2331,8 +2657,8 @@
 
 #: ../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:69
-#: ../share/roundup/templates/minimal/html/user.item.html:153
+#: ../share/roundup/templates/classic/html/user.register.html:72
+#: ../share/roundup/templates/minimal/html/user.item.html:103
 msgid ""
 "<table class=\"form\"> <tr> <td>Note:&nbsp;</td> <th class=\"required"
 "\">highlighted</th> <td>&nbsp;fields are required.</td> </tr> </table>"
@@ -2363,7 +2689,7 @@
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/issue.item.html:137
-#: ../share/roundup/templates/classic/html/query.edit.html:30
+#: ../share/roundup/templates/classic/html/query.edit.html:60
 msgid "Edit"
 msgstr ""
 
@@ -2371,26 +2697,26 @@
 msgid "Remove"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.item.html:158
-#: ../share/roundup/templates/classic/html/issue.item.html:179
-#: ../share/roundup/templates/classic/html/query.edit.html:50
+#: ../share/roundup/templates/classic/html/issue.item.html:160
+#: ../share/roundup/templates/classic/html/issue.item.html:183
+#: ../share/roundup/templates/classic/html/query.edit.html:83
 msgid "remove"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.item.html:165
+#: ../share/roundup/templates/classic/html/issue.item.html:167
 #: ../share/roundup/templates/classic/html/msg.index.html:9
 msgid "Messages"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.item.html:169
+#: ../share/roundup/templates/classic/html/issue.item.html:171
 msgid "msg${id} (view)"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.item.html:170
-msgid "Author: ${author}"
-msgstr ""
-
 #: ../share/roundup/templates/classic/html/issue.item.html:172
+msgid "Author: ${author}"
+msgstr ""
+
+#: ../share/roundup/templates/classic/html/issue.item.html:174
 msgid "Date: ${date}"
 msgstr ""
 
@@ -2402,130 +2728,130 @@
 msgid "Issue searching"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:31
+#: ../share/roundup/templates/classic/html/issue.search.html:32
 msgid "Filter on"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:32
-msgid "Display"
-msgstr ""
-
 #: ../share/roundup/templates/classic/html/issue.search.html:33
-msgid "Sort on"
+msgid "Display"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/issue.search.html:34
+msgid "Sort on"
+msgstr ""
+
+#: ../share/roundup/templates/classic/html/issue.search.html:35
 msgid "Group on"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:38
+#: ../share/roundup/templates/classic/html/issue.search.html:39
 msgid "All text*:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:46
+#: ../share/roundup/templates/classic/html/issue.search.html:47
 msgid "Title:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:56
+#: ../share/roundup/templates/classic/html/issue.search.html:57
 msgid "Keyword:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:58
-#: ../share/roundup/templates/classic/html/issue.search.html:123
-#: ../share/roundup/templates/classic/html/issue.search.html:139
+#: ../share/roundup/templates/classic/html/issue.search.html:59
+#: ../share/roundup/templates/classic/html/issue.search.html:124
+#: ../share/roundup/templates/classic/html/issue.search.html:140
 msgid "not selected"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:67
+#: ../share/roundup/templates/classic/html/issue.search.html:68
 msgid "ID:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:75
+#: ../share/roundup/templates/classic/html/issue.search.html:76
 msgid "Creation Date:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:86
+#: ../share/roundup/templates/classic/html/issue.search.html:87
 msgid "Creator:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:88
+#: ../share/roundup/templates/classic/html/issue.search.html:89
 msgid "created by me"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:97
+#: ../share/roundup/templates/classic/html/issue.search.html:98
 msgid "Activity:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:108
+#: ../share/roundup/templates/classic/html/issue.search.html:109
 msgid "Actor:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:110
+#: ../share/roundup/templates/classic/html/issue.search.html:111
 msgid "done by me"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:121
+#: ../share/roundup/templates/classic/html/issue.search.html:122
 msgid "Priority:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:134
+#: ../share/roundup/templates/classic/html/issue.search.html:135
 msgid "Status:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:137
+#: ../share/roundup/templates/classic/html/issue.search.html:138
 msgid "not resolved"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:152
+#: ../share/roundup/templates/classic/html/issue.search.html:153
 msgid "Assigned to:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:155
+#: ../share/roundup/templates/classic/html/issue.search.html:156
 msgid "assigned to me"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:157
+#: ../share/roundup/templates/classic/html/issue.search.html:158
 msgid "unassigned"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:167
+#: ../share/roundup/templates/classic/html/issue.search.html:168
 msgid "No Sort or group:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:175
+#: ../share/roundup/templates/classic/html/issue.search.html:176
 msgid "Pagesize:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:181
+#: ../share/roundup/templates/classic/html/issue.search.html:182
 msgid "Start With:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:187
+#: ../share/roundup/templates/classic/html/issue.search.html:188
 msgid "Sort Descending:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:194
+#: ../share/roundup/templates/classic/html/issue.search.html:195
 msgid "Group Descending:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:201
+#: ../share/roundup/templates/classic/html/issue.search.html:202
 msgid "Query name**:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:213
-#: ../share/roundup/templates/classic/html/page.html:43
+#: ../share/roundup/templates/classic/html/issue.search.html:215
+#: ../share/roundup/templates/classic/html/page.html:40
 #: ../share/roundup/templates/classic/html/page.html:92
 #: ../share/roundup/templates/classic/html/user.help-search.html:69
-#: ../share/roundup/templates/minimal/html/page.html:43
-#: ../share/roundup/templates/minimal/html/page.html:91
+#: ../share/roundup/templates/minimal/html/page.html:40
+#: ../share/roundup/templates/minimal/html/page.html:92
 msgid "Search"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:218
+#: ../share/roundup/templates/classic/html/issue.search.html:220
 msgid "*: The \"all text\" field will look in message bodies and issue titles"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/issue.search.html:221
+#: ../share/roundup/templates/classic/html/issue.search.html:223
 msgid ""
 "**: If you supply a name, the query will be saved off and available as a link "
 "in the sidebar"
@@ -2553,6 +2879,10 @@
 msgid "To create a new keyword, enter it below and click \"Submit New Entry\"."
 msgstr ""
 
+#: ../share/roundup/templates/classic/html/keyword.item.html:51
+msgid "Continue adding keywords."
+msgstr ""
+
 #: ../share/roundup/templates/classic/html/msg.index.html:3
 msgid "List of messages - ${tracker}"
 msgstr ""
@@ -2598,140 +2928,142 @@
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/page.html:54
-#: ../share/roundup/templates/minimal/html/page.html:53
+#: ../share/roundup/templates/minimal/html/page.html:54
 msgid "<b>Your Queries</b> (<a href=\"query?@template=edit\">edit</a>)"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/page.html:65
-#: ../share/roundup/templates/minimal/html/page.html:64
+#: ../share/roundup/templates/minimal/html/page.html:65
 msgid "Issues"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/page.html:67
-#: ../share/roundup/templates/classic/html/page.html:105
-#: ../share/roundup/templates/minimal/html/page.html:66
-#: ../share/roundup/templates/minimal/html/page.html:104
+#: ../share/roundup/templates/classic/html/page.html:107
+#: ../share/roundup/templates/minimal/html/page.html:67
+#: ../share/roundup/templates/minimal/html/page.html:107
 msgid "Create New"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/page.html:69
-#: ../share/roundup/templates/minimal/html/page.html:68
+#: ../share/roundup/templates/minimal/html/page.html:69
 msgid "Show Unassigned"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/page.html:81
-#: ../share/roundup/templates/minimal/html/page.html:80
+#: ../share/roundup/templates/minimal/html/page.html:81
 msgid "Show All"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/page.html:93
-#: ../share/roundup/templates/minimal/html/page.html:92
+#: ../share/roundup/templates/minimal/html/page.html:93
 msgid "Show issue:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/page.html:108
-#: ../share/roundup/templates/minimal/html/page.html:107
+#: ../share/roundup/templates/classic/html/page.html:110
+#: ../share/roundup/templates/minimal/html/page.html:110
 msgid "Edit Existing"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/page.html:114
-#: ../share/roundup/templates/minimal/html/page.html:113
-msgid "Administration"
-msgstr ""
-
 #: ../share/roundup/templates/classic/html/page.html:116
-#: ../share/roundup/templates/minimal/html/page.html:115
+#: ../share/roundup/templates/minimal/html/page.html:116
+msgid "Administration"
+msgstr ""
+
+#: ../share/roundup/templates/classic/html/page.html:118
+#: ../share/roundup/templates/minimal/html/page.html:118
 msgid "Class List"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/page.html:120
-#: ../share/roundup/templates/minimal/html/page.html:119
-msgid "User List"
-msgstr ""
-
 #: ../share/roundup/templates/classic/html/page.html:122
-#: ../share/roundup/templates/minimal/html/page.html:121
+#: ../share/roundup/templates/minimal/html/page.html:122
+msgid "User List"
+msgstr ""
+
+#: ../share/roundup/templates/classic/html/page.html:124
+#: ../share/roundup/templates/minimal/html/page.html:124
 msgid "Add User"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/page.html:129
-#: ../share/roundup/templates/classic/html/page.html:135
-#: ../share/roundup/templates/minimal/html/page.html:128
-#: ../share/roundup/templates/minimal/html/page.html:134
+#: ../share/roundup/templates/classic/html/page.html:131
+#: ../share/roundup/templates/classic/html/page.html:139
+#: ../share/roundup/templates/minimal/html/page.html:131
+#: ../share/roundup/templates/minimal/html/page.html:139
 msgid "Login"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/page.html:134
-#: ../share/roundup/templates/minimal/html/page.html:133
+#: ../share/roundup/templates/classic/html/page.html:136
+#: ../share/roundup/templates/minimal/html/page.html:138
 msgid "Remember me?"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/page.html:138
-#: ../share/roundup/templates/classic/html/user.register.html:63
-#: ../share/roundup/templates/minimal/html/page.html:137
-#: ../share/roundup/templates/minimal/html/user.register.html:61
+#: ../share/roundup/templates/classic/html/page.html:147
+#: ../share/roundup/templates/classic/html/user.register.html:66
+#: ../share/roundup/templates/minimal/html/page.html:147
+#: ../share/roundup/templates/minimal/html/user.register.html:63
 msgid "Register"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/page.html:141
-#: ../share/roundup/templates/minimal/html/page.html:140
+#: ../share/roundup/templates/classic/html/page.html:150
+#: ../share/roundup/templates/minimal/html/page.html:150
 msgid "Lost&nbsp;your&nbsp;login?"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/page.html:146
-#: ../share/roundup/templates/minimal/html/page.html:145
+#: ../share/roundup/templates/classic/html/page.html:155
+#: ../share/roundup/templates/minimal/html/page.html:155
 msgid "Hello, ${user}"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/page.html:148
+#: ../share/roundup/templates/classic/html/page.html:157
 msgid "Your Issues"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/page.html:160
-#: ../share/roundup/templates/minimal/html/page.html:147
+#: ../share/roundup/templates/classic/html/page.html:169
+#: ../share/roundup/templates/minimal/html/page.html:157
 msgid "Your Details"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/page.html:162
-#: ../share/roundup/templates/minimal/html/page.html:149
+#: ../share/roundup/templates/classic/html/page.html:171
+#: ../share/roundup/templates/minimal/html/page.html:159
 msgid "Logout"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/page.html:166
-#: ../share/roundup/templates/minimal/html/page.html:153
+#: ../share/roundup/templates/classic/html/page.html:175
+#: ../share/roundup/templates/minimal/html/page.html:163
 msgid "Help"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/page.html:167
-#: ../share/roundup/templates/minimal/html/page.html:154
+#: ../share/roundup/templates/classic/html/page.html:176
+#: ../share/roundup/templates/minimal/html/page.html:164
 msgid "Roundup docs"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/page.html:177
-#: ../share/roundup/templates/minimal/html/page.html:164
+#: ../share/roundup/templates/classic/html/page.html:187
+#: ../share/roundup/templates/minimal/html/page.html:175
 msgid "clear this message"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/page.html:241
-#: ../share/roundup/templates/classic/html/page.html:256
-#: ../share/roundup/templates/classic/html/page.html:270
-#: ../share/roundup/templates/minimal/html/page.html:228
-#: ../share/roundup/templates/minimal/html/page.html:243
-#: ../share/roundup/templates/minimal/html/page.html:257
+#: ../share/roundup/templates/classic/html/page.html:251
+#: ../share/roundup/templates/classic/html/page.html:264
+#: ../share/roundup/templates/classic/html/page.html:282
+#: ../share/roundup/templates/classic/html/page.html:296
+#: ../share/roundup/templates/minimal/html/page.html:239
+#: ../share/roundup/templates/minimal/html/page.html:254
+#: ../share/roundup/templates/minimal/html/page.html:268
 msgid "don't care"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/page.html:243
-#: ../share/roundup/templates/classic/html/page.html:258
-#: ../share/roundup/templates/classic/html/page.html:271
-#: ../share/roundup/templates/minimal/html/page.html:230
-#: ../share/roundup/templates/minimal/html/page.html:245
-#: ../share/roundup/templates/minimal/html/page.html:258
+#: ../share/roundup/templates/classic/html/page.html:253
+#: ../share/roundup/templates/classic/html/page.html:266
+#: ../share/roundup/templates/classic/html/page.html:284
+#: ../share/roundup/templates/classic/html/page.html:297
+#: ../share/roundup/templates/minimal/html/page.html:241
+#: ../share/roundup/templates/minimal/html/page.html:256
+#: ../share/roundup/templates/minimal/html/page.html:269
 msgid "------------"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/page.html:299
-#: ../share/roundup/templates/minimal/html/page.html:286
+#: ../share/roundup/templates/classic/html/page.html:325
+#: ../share/roundup/templates/minimal/html/page.html:297
 msgid "no value"
 msgstr ""
 
@@ -2743,60 +3075,94 @@
 msgid "\"Your Queries\" Editing"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/query.edit.html:11
+#: ../share/roundup/templates/classic/html/query.edit.html:12
 msgid "You are not allowed to edit queries."
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/query.edit.html:28
+#: ../share/roundup/templates/classic/html/query.edit.html:58
 msgid "Query"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/query.edit.html:29
+#: ../share/roundup/templates/classic/html/query.edit.html:59
 msgid "Include in \"Your Queries\""
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/query.edit.html:31
+#: ../share/roundup/templates/classic/html/query.edit.html:61
 msgid "Private to you?"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/query.edit.html:44
+#: ../share/roundup/templates/classic/html/query.edit.html:62
+msgid "delete/restore<br> (javascript<br>required)"
+msgstr ""
+
+#: ../share/roundup/templates/classic/html/query.edit.html:65
+msgid "Queries I created"
+msgstr ""
+
+#: ../share/roundup/templates/classic/html/query.edit.html:77
 msgid "leave out"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/query.edit.html:45
+#: ../share/roundup/templates/classic/html/query.edit.html:78
 msgid "include"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/query.edit.html:49
+#: ../share/roundup/templates/classic/html/query.edit.html:82
 msgid "leave in"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/query.edit.html:54
-msgid "[query is retired]"
-msgstr ""
-
-#: ../share/roundup/templates/classic/html/query.edit.html:67
-#: ../share/roundup/templates/classic/html/query.edit.html:94
+#: ../share/roundup/templates/classic/html/query.edit.html:87
+#: ../share/roundup/templates/classic/html/query.edit.html:121
 msgid "edit"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/query.edit.html:71
+#: ../share/roundup/templates/classic/html/query.edit.html:91
 msgid "yes"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/query.edit.html:73
+#: ../share/roundup/templates/classic/html/query.edit.html:93
 msgid "no"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/query.edit.html:79
+#: ../share/roundup/templates/classic/html/query.edit.html:99
 msgid "Delete"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/query.edit.html:96
+#: ../share/roundup/templates/classic/html/query.edit.html:105
+msgid "Queries others created"
+msgstr ""
+
+#: ../share/roundup/templates/classic/html/query.edit.html:106
+msgid "Owner"
+msgstr ""
+
+#: ../share/roundup/templates/classic/html/query.edit.html:118
 msgid "[not yours to edit]"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/query.edit.html:104
+#: ../share/roundup/templates/classic/html/query.edit.html:121
+msgid "<a href=\"\">x</a>"
+msgstr ""
+
+#: ../share/roundup/templates/classic/html/query.edit.html:128
+msgid "Active retired/private queries"
+msgstr ""
+
+#: ../share/roundup/templates/classic/html/query.edit.html:138
+#: ../share/roundup/templates/classic/html/query.edit.html:139
+msgid "[query is retired]"
+msgstr ""
+
+#: ../share/roundup/templates/classic/html/query.edit.html:141
+#: ../share/roundup/templates/classic/html/query.edit.html:156
+msgid "Restore"
+msgstr ""
+
+#: ../share/roundup/templates/classic/html/query.edit.html:154
+msgid "[query is private]"
+msgstr ""
+
+#: ../share/roundup/templates/classic/html/query.edit.html:168
 msgid "Save Selection"
 msgstr ""
 
@@ -2818,20 +3184,20 @@
 msgid "Email Address:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/user.forgotten.html:24
-#: ../share/roundup/templates/classic/html/user.forgotten.html:34
+#: ../share/roundup/templates/classic/html/user.forgotten.html:26
+#: ../share/roundup/templates/classic/html/user.forgotten.html:36
 msgid "Request password reset"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/user.forgotten.html:30
+#: ../share/roundup/templates/classic/html/user.forgotten.html:32
 msgid "Or, if you know your username, then enter it below."
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/user.forgotten.html:33
+#: ../share/roundup/templates/classic/html/user.forgotten.html:35
 msgid "Username:"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/user.forgotten.html:39
+#: ../share/roundup/templates/classic/html/user.forgotten.html:41
 msgid ""
 "A confirmation email will be sent to you - please follow the instructions "
 "within it to complete the reset process."
@@ -2884,60 +3250,58 @@
 msgid "Retire"
 msgstr ""
 
-#: ../share/roundup/templates/classic/html/user.index.html:41
+#: ../share/roundup/templates/classic/html/user.index.html:43
 msgid "retire"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/user.item.html:9
-#: ../share/roundup/templates/minimal/html/user.item.html:9
+#: ../share/roundup/templates/minimal/html/user.item.html:8
 msgid "User ${id}: ${title} - ${tracker}"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/user.item.html:12
-#: ../share/roundup/templates/minimal/html/user.item.html:12
+#: ../share/roundup/templates/minimal/html/user.item.html:11
 msgid "New User - ${tracker}"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/user.item.html:21
-#: ../share/roundup/templates/minimal/html/user.item.html:21
+#: ../share/roundup/templates/minimal/html/user.item.html:20
 msgid "New User"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/user.item.html:23
-#: ../share/roundup/templates/minimal/html/user.item.html:23
+#: ../share/roundup/templates/minimal/html/user.item.html:22
 msgid "New User Editing"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/user.item.html:26
-#: ../share/roundup/templates/minimal/html/user.item.html:26
+#: ../share/roundup/templates/minimal/html/user.item.html:25
 msgid "User${id}"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/user.item.html:29
-#: ../share/roundup/templates/minimal/html/user.item.html:29
+#: ../share/roundup/templates/minimal/html/user.item.html:28
 msgid "User${id} Editing"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/user.item.html:80
 #: ../share/roundup/templates/classic/html/user.register.html:33
-#: ../share/roundup/templates/minimal/html/user.item.html:80
+#: ../share/roundup/templates/minimal/html/user.item.html:75
 #: ../share/roundup/templates/minimal/html/user.register.html:41
 msgid "Roles"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/user.item.html:88
-#: ../share/roundup/templates/minimal/html/user.item.html:88
+#: ../share/roundup/templates/minimal/html/user.item.html:83
 msgid "(to give the user more than one role, enter a comma,separated,list)"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/user.item.html:109
-#: ../share/roundup/templates/minimal/html/user.item.html:109
 msgid "(the default is ${zone})"
 msgstr ""
 
 #: ../share/roundup/templates/classic/html/user.item.html:130
 #: ../share/roundup/templates/classic/html/user.register.html:53
-#: ../share/roundup/templates/minimal/html/user.item.html:130
 #: ../share/roundup/templates/minimal/html/user.register.html:53
 msgid "Alternate E-mail addresses<br>One address per line"
 msgstr ""
@@ -2991,57 +3355,80 @@
 msgstr ""
 
 #: ../share/roundup/templates/classic/initial_data.py:5
+#: ../share/roundup/templates/jinja2/initial_data.py:6
 msgid "critical"
 msgstr ""
 
 #: ../share/roundup/templates/classic/initial_data.py:6
+#: ../share/roundup/templates/jinja2/initial_data.py:7
 msgid "urgent"
 msgstr ""
 
 #: ../share/roundup/templates/classic/initial_data.py:7
+#: ../share/roundup/templates/jinja2/initial_data.py:8
 msgid "bug"
 msgstr ""
 
 #: ../share/roundup/templates/classic/initial_data.py:8
+#: ../share/roundup/templates/jinja2/initial_data.py:9
 msgid "feature"
 msgstr ""
 
 #: ../share/roundup/templates/classic/initial_data.py:9
+#: ../share/roundup/templates/jinja2/initial_data.py:10
 msgid "wish"
 msgstr ""
 
 #: ../share/roundup/templates/classic/initial_data.py:12
+#: ../share/roundup/templates/jinja2/initial_data.py:13
 msgid "unread"
 msgstr ""
 
 #: ../share/roundup/templates/classic/initial_data.py:13
+#: ../share/roundup/templates/jinja2/initial_data.py:14
 msgid "deferred"
 msgstr ""
 
 #: ../share/roundup/templates/classic/initial_data.py:14
+#: ../share/roundup/templates/jinja2/initial_data.py:15
 msgid "chatting"
 msgstr ""
 
 #: ../share/roundup/templates/classic/initial_data.py:15
+#: ../share/roundup/templates/jinja2/initial_data.py:16
 msgid "need-eg"
 msgstr ""
 
 #: ../share/roundup/templates/classic/initial_data.py:16
+#: ../share/roundup/templates/jinja2/initial_data.py:17
 msgid "in-progress"
 msgstr ""
 
 #: ../share/roundup/templates/classic/initial_data.py:17
+#: ../share/roundup/templates/jinja2/initial_data.py:18
 msgid "testing"
 msgstr ""
 
 #: ../share/roundup/templates/classic/initial_data.py:18
+#: ../share/roundup/templates/jinja2/initial_data.py:19
 msgid "done-cbb"
 msgstr ""
 
 #: ../share/roundup/templates/classic/initial_data.py:19
+#: ../share/roundup/templates/jinja2/initial_data.py:20
 msgid "resolved"
 msgstr ""
 
+#: ../share/roundup/templates/devel/extensions/spambayes.py:66
+#: ../share/roundup/templates/responsive/extensions/spambayes.py:66
+msgid "Message classified as"
+msgstr ""
+
+#: ../share/roundup/templates/devel/extensions/spambayes.py:68
+#: ../share/roundup/templates/responsive/extensions/spambayes.py:68
+msgid "Unable to classify message, got error:"
+msgstr ""
+
 #: ../share/roundup/templates/minimal/html/home.html:2
 msgid "Tracker home - ${tracker}"
 msgstr ""

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