changeset 5819:7274b2c2667d maint-1.6

updated pot file for release
author John Rouillard <rouilj@ieee.org>
date Tue, 18 Jun 2019 20:30:26 -0400
parents bed579f654ee
children cab6338d7868
files locale/roundup.pot
diffstat 1 files changed, 1045 insertions(+), 664 deletions(-) [+]
line wrap: on
line diff
--- a/locale/roundup.pot	Tue Jun 04 18:42:05 2019 -0400
+++ b/locale/roundup.pot	Tue Jun 18 20:30:26 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:29-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
+#: ../roundup/actions.py:53 ../roundup/cgi/actions.py:219
 msgid "You may not retire the admin or anonymous user"
 msgstr ""
 
-#: ../roundup/actions.py:66 ../roundup/cgi/actions.py:57
+#: ../roundup/actions.py:66
 #, 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 the %(classname)s class."
+msgstr ""
+
+#: ../roundup/admin.py:91 ../roundup/admin.py:1074 ../roundup/admin.py:1129
+#: ../roundup/admin.py:1156 ../roundup/admin.py:91:1074 :1129:1156
 #, 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:101 ../roundup/admin.py:105 ../roundup/admin.py:101:105
 #, python-format
 msgid "argument \"%(arg)s\" not propname=value"
 msgstr ""
 
-#: ../roundup/admin.py:110
+#: ../roundup/admin.py:118
 #, python-format
 msgid ""
 "Problem: %(message)s\n"
 "\n"
 msgstr ""
 
-#: ../roundup/admin.py:111
+#: ../roundup/admin.py:119
 #, 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:146
+msgid "Commands: "
+msgstr ""
+
+#: ../roundup/admin.py:153
 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:180
 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:243
 #, python-format
 msgid "%s:"
 msgstr ""
 
-#: ../roundup/admin.py:243
+#: ../roundup/admin.py:248
 msgid ""
 "Usage: help topic\n"
 "        Give help about topic.\n"
@@ -163,20 +164,20 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:266
+#: ../roundup/admin.py:271
 #, 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:348 ../roundup/admin.py:404 ../roundup/admin.py:348:404
 msgid "Templates:"
 msgstr ""
 
-#: ../roundup/admin.py:346 ../roundup/admin.py:410 ../roundup/admin.py:346:410
+#: ../roundup/admin.py:351 ../roundup/admin.py:414 ../roundup/admin.py:351:414
 msgid "Back ends:"
 msgstr ""
 
-#: ../roundup/admin.py:349
+#: ../roundup/admin.py:354
 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:377 ../roundup/admin.py:509 ../roundup/admin.py:583
+#: ../roundup/admin.py:672 ../roundup/admin.py:729 ../roundup/admin.py:787
+#: ../roundup/admin.py:812 ../roundup/admin.py:839 ../roundup/admin.py:912
+#: ../roundup/admin.py:979 ../roundup/admin.py:1058 ../roundup/admin.py:1119
+#: ../roundup/admin.py:1146 ../roundup/admin.py:1178 ../roundup/admin.py:1291
+#: ../roundup/admin.py:1372 ../roundup/admin.py:377:509 :1058 :1119:1146
+#: :1178:1291 :1372 :583:672 :729:787 :812:839 :912:979
 msgid "Not enough arguments supplied"
 msgstr ""
 
-#: ../roundup/admin.py:378
+#: ../roundup/admin.py:383
 #, python-format
 msgid "Instance home parent directory \"%(parent)s\" does not exist"
 msgstr ""
 
-#: ../roundup/admin.py:386
+#: ../roundup/admin.py:392
 #, 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:405
+msgid "Select template"
+msgstr ""
+
+#: ../roundup/admin.py:415
+msgid "Select backend"
+msgstr ""
+
+#: ../roundup/admin.py:426
 #, python-format
 msgid "Error in configuration settings: \"%s\""
 msgstr ""
 
-#: ../roundup/admin.py:431
+#: ../roundup/admin.py:457
 #, python-format
 msgid ""
 "\n"
@@ -247,11 +248,11 @@
 "   %(config_file)s"
 msgstr ""
 
-#: ../roundup/admin.py:441
+#: ../roundup/admin.py:467
 msgid " ... at a minimum, you must set following options:"
 msgstr ""
 
-#: ../roundup/admin.py:446
+#: ../roundup/admin.py:472
 #, python-format
 msgid ""
 "\n"
@@ -267,7 +268,7 @@
 "---------------------------------------------------------------------------\n"
 msgstr ""
 
-#: ../roundup/admin.py:464
+#: ../roundup/admin.py:504
 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:519
+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:527
 msgid ""
 "Usage: initialise [adminpw]\n"
 "        Initialise a new Roundup tracker.\n"
@@ -287,56 +297,59 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:488
+#: ../roundup/admin.py:541
 msgid "Admin Password: "
 msgstr ""
 
-#: ../roundup/admin.py:489
+#: ../roundup/admin.py:542
 msgid "       Confirm: "
 msgstr ""
 
-#: ../roundup/admin.py:493
+#: ../roundup/admin.py:546
 msgid "Instance home does not exist"
 msgstr ""
 
-#: ../roundup/admin.py:497
+#: ../roundup/admin.py:550
 msgid "Instance has not been installed"
 msgstr ""
 
-#: ../roundup/admin.py:502
+#: ../roundup/admin.py:556
 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:573
 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:616 ../roundup/admin.py:633 ../roundup/admin.py:616:633
 #, 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:643 ../roundup/admin.py:1076 ../roundup/admin.py:1131
+#: ../roundup/admin.py:1158 ../roundup/admin.py:643:1076 :1131:1158
 #, python-format
 msgid "no such %(classname)s node \"%(nodeid)s\""
 msgstr ""
 
-#: ../roundup/admin.py:588
+#: ../roundup/admin.py:646
 #, python-format
 msgid "no such %(classname)s property \"%(propname)s\""
 msgstr ""
 
-#: ../roundup/admin.py:597
+#: ../roundup/admin.py:655
 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:721
 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:774 ../roundup/admin.py:932 ../roundup/admin.py:944
+#: ../roundup/admin.py:999 ../roundup/admin.py:774:932 :944:999
 #, python-format
 msgid "%(classname)s has no property \"%(propname)s\""
 msgstr ""
 
-#: ../roundup/admin.py:712
+#: ../roundup/admin.py:781
 msgid ""
 "Usage: specification classname\n"
 "        Show the properties for a classname.\n"
@@ -377,27 +393,35 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:727
+#: ../roundup/admin.py:797
 #, 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:799
 #, python-format
-msgid "%(key)s: %(value)s"
-msgstr ""
-
-#: ../roundup/admin.py:732
+msgid "%(key)s: %(value)s\n"
+msgstr ""
+
+#: ../roundup/admin.py:802
 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:828
+#, python-format
+msgid "%(key)s: %(value)s"
+msgstr ""
+
+#: ../roundup/admin.py:831
 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:859
 #, python-format
 msgid "%(propname)s (Password): "
 msgstr ""
 
-#: ../roundup/admin.py:788
+#: ../roundup/admin.py:861
 #, python-format
 msgid "   %(propname)s (Again): "
 msgstr ""
 
-#: ../roundup/admin.py:790
+#: ../roundup/admin.py:863
 msgid "Sorry, try again..."
 msgstr ""
 
-#: ../roundup/admin.py:794
+#: ../roundup/admin.py:867
 #, python-format
 msgid "%(propname)s (%(proptype)s): "
 msgstr ""
 
-#: ../roundup/admin.py:812
+#: ../roundup/admin.py:885
 #, python-format
 msgid "you must provide the \"%(propname)s\" property."
 msgstr ""
 
-#: ../roundup/admin.py:824
+#: ../roundup/admin.py:897
 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:910
 msgid "Too many arguments supplied"
 msgstr ""
 
-#: ../roundup/admin.py:873
+#: ../roundup/admin.py:946
 #, python-format
 msgid "%(nodeid)4s: %(value)s"
 msgstr ""
 
-#: ../roundup/admin.py:877
+#: ../roundup/admin.py:950
 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:994
 #, python-format
 msgid "\"%(spec)s\" not name:width"
 msgstr ""
 
-#: ../roundup/admin.py:971
+#: ../roundup/admin.py:1045
 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:1081
 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:1096
 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:1109
 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:1137
 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:1164
 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:1256
 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:1271
 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:1354
 msgid ""
 "Usage: pack period | date\n"
 "\n"
@@ -628,11 +664,11 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1260
+#: ../roundup/admin.py:1382
 msgid "Invalid format"
 msgstr ""
 
-#: ../roundup/admin.py:1271
+#: ../roundup/admin.py:1393
 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:1407
 #, python-format
 msgid "no such item \"%(designator)s\""
 msgstr ""
 
-#: ../roundup/admin.py:1295
+#: ../roundup/admin.py:1417
 msgid ""
 "Usage: security [Role name]\n"
 "        Display the Permissions available to one or all Roles.\n"
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1303
+#: ../roundup/admin.py:1425
 #, python-format
-msgid "No such Role \"%(role)s\""
-msgstr ""
-
-#: ../roundup/admin.py:1309
+msgid "No such Role \"%(role)s\"\n"
+msgstr ""
+
+#: ../roundup/admin.py:1431
+#, python-format
+msgid "New Web users get the Roles \"%(role)s\"\n"
+msgstr ""
+
+#: ../roundup/admin.py:1433
 #, 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:1436
 #, 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:1438
 #, 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:1441
 #, 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:1446
+msgid " %(description)s (%(name)s for \"%(klass)s\""
+msgstr ""
+
+#: ../roundup/admin.py:1446
 #, 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:1449
+msgid " %(description)s (%(name)s for \"%(klass)s\" "
+msgstr ""
+
+#: ../roundup/admin.py:1449
 #, 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:1452
 #, python-format
-msgid " %(description)s (%(name)s)"
-msgstr ""
-
-#: ../roundup/admin.py:1335
+msgid " %(description)s (%(name)s)\n"
+msgstr ""
+
+#: ../roundup/admin.py:1457
 msgid ""
 "Usage: migrate\n"
 "        Update a tracker's database to be compatible with the Roundup\n"
@@ -722,270 +766,353 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1354
+#: ../roundup/admin.py:1476
 msgid "Tracker updated"
 msgstr ""
 
-#: ../roundup/admin.py:1357
+#: ../roundup/admin.py:1479
 msgid "No migration action required"
 msgstr ""
 
-#: ../roundup/admin.py:1386
+#: ../roundup/admin.py:1505
 #, python-format
 msgid "Unknown command \"%(command)s\" (\"help commands\" for a list)"
 msgstr ""
 
-#: ../roundup/admin.py:1392
+#: ../roundup/admin.py:1511
 #, python-format
 msgid "Multiple commands match \"%(command)s\": %(list)s"
 msgstr ""
 
-#: ../roundup/admin.py:1399
+#: ../roundup/admin.py:1519
 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:1528 ../roundup/admin.py:1534 ../roundup/admin.py:1560
+#: ../roundup/admin.py:1528:1534 :1560
 #, python-format
 msgid "Error: %(message)s"
 msgstr ""
 
-#: ../roundup/admin.py:1420
+#: ../roundup/admin.py:1542 ../roundup/admin.py:1546
+#: ../roundup/admin.py:1542:1546
 #, python-format
 msgid "Error: Couldn't open tracker: %(message)s"
 msgstr ""
 
-#: ../roundup/admin.py:1445
+#: ../roundup/admin.py:1573
 #, python-format
 msgid ""
 "Roundup %s ready for input.\n"
 "Type \"help\" for help."
 msgstr ""
 
-#: ../roundup/admin.py:1450
+#: ../roundup/admin.py:1578
 msgid "Note: command history and editing not available"
 msgstr ""
 
-#: ../roundup/admin.py:1454
+#: ../roundup/admin.py:1582
 msgid "roundup> "
 msgstr ""
 
-#: ../roundup/admin.py:1456
+#: ../roundup/admin.py:1584
 msgid "exit..."
 msgstr ""
 
-#: ../roundup/admin.py:1466
+#: ../roundup/admin.py:1597
 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:312
+#: ../roundup/backends/sessions_dbm.py:54
 msgid "Couldn't identify database type"
 msgstr ""
 
-#: ../roundup/backends/back_anydbm.py:244
+#: ../roundup/backends/back_anydbm.py:341
 #, 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:897
+#: ../roundup/backends/back_anydbm.py:910
+#: ../roundup/backends/back_anydbm.py:1167
+#: ../roundup/backends/back_anydbm.py:1195
+#: ../roundup/backends/back_anydbm.py:1421
+#: ../roundup/backends/back_anydbm.py:1439
+#: ../roundup/backends/back_anydbm.py:1485
+#: ../roundup/backends/back_anydbm.py:2051
+#: ../roundup/backends/back_anydbm.py:897:910
+#: ../roundup/backends/rdbms_common.py:1562
+#: ../roundup/backends/rdbms_common.py:1796
+#: ../roundup/backends/rdbms_common.py:2031
+#: ../roundup/backends/rdbms_common.py:2051
+#: ../roundup/backends/rdbms_common.py:2104
+#: ../roundup/backends/rdbms_common.py:2907
+#: ../roundup/backends/rdbms_common.py:1562:1796 :1167:1195 :1421:1439 :1485
+#: :2031:2051 :2051 :2104:2907
 msgid "Database open read-only"
 msgstr ""
 
-#: ../roundup/backends/back_anydbm.py:2007
+#: ../roundup/backends/rdbms_common.py:542
+#, python-format
+msgid "ALTER operation disallowed: %r -> %r."
+msgstr ""
+
+#: ../roundup/backends/rdbms_common.py:775
 #, 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:791
+#, python-format
+msgid "DROP operation disallowed: \"%s\"."
+msgstr ""
+
+#: ../roundup/backends/rdbms_common.py:1697
 msgid "create"
 msgstr ""
 
-#: ../roundup/backends/rdbms_common.py:1691
+#: ../roundup/backends/rdbms_common.py:1866
 msgid "unlink"
 msgstr ""
 
-#: ../roundup/backends/rdbms_common.py:1695
+#: ../roundup/backends/rdbms_common.py:1870
 msgid "link"
 msgstr ""
 
-#: ../roundup/backends/rdbms_common.py:1817
+#: ../roundup/backends/rdbms_common.py:2012
 msgid "set"
 msgstr ""
 
-#: ../roundup/backends/rdbms_common.py:1841
+#: ../roundup/backends/rdbms_common.py:2041
 msgid "retired"
 msgstr ""
 
-#: ../roundup/backends/rdbms_common.py:1871
+#: ../roundup/backends/rdbms_common.py:2071
 msgid "restored"
 msgstr ""
 
 #: ../roundup/cgi/actions.py:88
+msgid "Base url not set. Check configuration."
+msgstr ""
+
+#: ../roundup/cgi/actions.py:104
+#, python-format
+msgid "Base url %(base_url)s requires https. Redirect url %(url)s uses http."
+msgstr ""
+
+#: ../roundup/cgi/actions.py:107
+#, python-format
+msgid "Unrecognized scheme in %(url)s"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:110
+#, python-format
+msgid "Net location in %(url)s does not match base: %(base_netloc)s"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:113
+#, python-format
+msgid "Base path %(base_path)s is not a prefix for url %(url)s"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:126
+#, python-format
+msgid "Path component (%(url_path)s) in %(url)s is not properly escaped"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:129
+#, python-format
+msgid "Params component (%(url_params)s) in %(url)s is not properly escaped"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:132
+#, python-format
+msgid "Query component (%(url_query)s) in %(url)s is not properly escaped"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:135
+#, python-format
+msgid "Fragment component (%(url_fragment)s) in %(url)s is not properly escaped"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:156
+#, python-format
+msgid "You do not have permission to %(action)s the %(classname)s class."
+msgstr ""
+
+#: ../roundup/cgi/actions.py:187
 msgid "No type specified"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:90
+#: ../roundup/cgi/actions.py:189
 msgid "No ID entered"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:96
+#: ../roundup/cgi/actions.py:195
 #, 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:207 ../roundup/cgi/actions.py:245
+#: ../roundup/cgi/actions.py:466 ../roundup/cgi/actions.py:794
+#: ../roundup/cgi/actions.py:840 ../roundup/cgi/actions.py:1040
+#: ../roundup/cgi/actions.py:1173 ../roundup/cgi/actions.py:207:245 :1173
+#: :466:794 :840:1040
 msgid "Invalid request"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:126 ../roundup/cgi/actions.py:382
-#: ../roundup/cgi/actions.py:126:382
+#: ../roundup/cgi/actions.py:225 ../roundup/cgi/actions.py:568
+#: ../roundup/cgi/actions.py:225:568
 #, python-format
 msgid "You do not have permission to retire %(class)s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:134
+#: ../roundup/cgi/actions.py:233
 #, 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:257
+#, python-format
+msgid "You do not have permission to restore %(class)s"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:265
+#, python-format
+msgid "%(classname)s %(itemid)s has been restored"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:308 ../roundup/cgi/actions.py:356
+#: ../roundup/cgi/actions.py:308:356
 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:314 ../roundup/cgi/actions.py:363
+#: ../roundup/cgi/actions.py:314:363
 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:335
+#, python-format
+msgid "You already own a query named '%s'. Please choose another name."
+msgstr ""
+
+#: ../roundup/cgi/actions.py:500 ../roundup/cgi/actions.py:700
+#: ../roundup/cgi/actions.py:500:700
 #, python-format
 msgid "You do not have permission to create %(class)s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:329
+#: ../roundup/cgi/actions.py:513
 #, 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:523 ../roundup/cgi/actions.py:688
+#: ../roundup/cgi/actions.py:523:688
 #, python-format
 msgid "You do not have permission to edit %(class)s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:389
-msgid "Items edited OK"
-msgstr ""
-
-#: ../roundup/cgi/actions.py:448
-#, 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
-#, python-format
-msgid "%(class)s %(id)s created"
-msgstr ""
-
 #: ../roundup/cgi/actions.py:575
+msgid "Items edited OK"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:634
+#, python-format
+msgid "%(class)s %(id)s %(properties)s edited ok"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:654
+#, python-format
+msgid "%(class)s %(id)s created"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:779
 #, 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:811
 #, 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:846 ../roundup/cgi/actions.py:857
+#: ../roundup/cgi/actions.py:1046 ../roundup/cgi/actions.py:1059
+#: ../roundup/cgi/actions.py:846:857 :1046:1059
 #, python-format
 msgid "Error: %s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:684
+#: ../roundup/cgi/actions.py:890
 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:940
 #, python-format
 msgid "Password reset and email sent to %s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:735
+#: ../roundup/cgi/actions.py:949
 msgid "Unknown username"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:743
+#: ../roundup/cgi/actions.py:957
 msgid "Unknown email address"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:748
+#: ../roundup/cgi/actions.py:962
 msgid "You need to specify a username or address"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:773
-#, python-format
-msgid "Email sent to %s"
-msgstr ""
-
-#: ../roundup/cgi/actions.py:787
-msgid "You are now registered, welcome!"
-msgstr ""
-
-#: ../roundup/cgi/actions.py:836
-msgid "It is not permitted to supply roles at registration."
-msgstr ""
-
-#: ../roundup/cgi/actions.py:923
-msgid "You are logged out"
-msgstr ""
-
-#: ../roundup/cgi/actions.py:944
-msgid "Username required"
-msgstr ""
-
-#: ../roundup/cgi/actions.py:978 ../roundup/cgi/actions.py:982
-#: ../roundup/cgi/actions.py:978:982
-msgid "Invalid login"
-msgstr ""
-
 #: ../roundup/cgi/actions.py:988
+#, python-format
+msgid "Email sent to primary notification address for %s."
+msgstr ""
+
+#: ../roundup/cgi/actions.py:990
+#, python-format
+msgid "Email sent to %s."
+msgstr ""
+
+#: ../roundup/cgi/actions.py:1004
+msgid "You are now registered, welcome!"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:1135
+msgid "It is not permitted to supply roles at registration."
+msgstr ""
+
+#: ../roundup/cgi/actions.py:1148
+msgid "You are logged out"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:1177
+msgid "Username required"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:1265 ../roundup/cgi/actions.py:1269
+#: ../roundup/cgi/actions.py:1265:1269
+msgid "Invalid login"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:1275
 msgid "You do not have permission to login"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:1047
+#: ../roundup/cgi/actions.py:1316
+#, python-format
+msgid "Column \"%(column)s\" not found in %(class)s"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:1353
 #, python-format
 msgid "You do not have permission to view %(class)s"
 msgstr ""
@@ -1060,332 +1187,477 @@
 msgid "<em>undefined</em>"
 msgstr ""
 
-#: ../roundup/cgi/client.py:517
+#: ../roundup/cgi/client.py:76
+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:665
 msgid "Form Error: "
 msgstr ""
 
-#: ../roundup/cgi/client.py:575
+#: ../roundup/cgi/client.py:755
 #, python-format
 msgid "Unrecognized charset: %r"
 msgstr ""
 
-#: ../roundup/cgi/client.py:696
+#: ../roundup/cgi/client.py:925
 msgid "Anonymous users are not allowed to use the web interface"
 msgstr ""
 
-#: ../roundup/cgi/client.py:851
+#: ../roundup/cgi/client.py:998
+msgid "Referer header not available."
+msgstr ""
+
+#: ../roundup/cgi/client.py:1002
+#, python-format
+msgid "csrf key used with wrong method from: %s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1030
+#, python-format
+msgid "csrf header %s required but missing for user%s."
+msgstr ""
+
+#: ../roundup/cgi/client.py:1031
+#, python-format
+msgid "Missing header: %s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1041 ../roundup/cgi/client.py:1044
+#: ../roundup/cgi/client.py:1041:1044
+#, python-format
+msgid "csrf Referer header check failed for user%s. Value=%s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1042
+#, python-format
+msgid "Invalid Referer %s, %s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1057 ../roundup/cgi/client.py:1060
+#: ../roundup/cgi/client.py:1057:1060
+#, python-format
+msgid "csrf Origin header check failed for user%s. Value=%s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1058
+#, python-format
+msgid "Invalid Origin %s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1072 ../roundup/cgi/client.py:1075
+#: ../roundup/cgi/client.py:1072:1075
+#, python-format
+msgid "csrf X-FORWARDED-HOST header check failed for user%s. Value=%s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1073
+#, python-format
+msgid "Invalid X-FORWARDED-HOST %s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1092 ../roundup/cgi/client.py:1095
+#: ../roundup/cgi/client.py:1092:1095
+#, python-format
+msgid "csrf HOST header check failed for user%s. Value=%s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1093
+#, python-format
+msgid "Invalid HOST %s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1101
+msgid "Csrf: unable to verify sufficient headers"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1102
+msgid "Unable to verify sufficient headers"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1115
+#, python-format
+msgid "csrf X-REQUESTED-WITH xmlrpc required header check failed for user%s."
+msgstr ""
+
+#: ../roundup/cgi/client.py:1116
+msgid "Required Header Missing"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1153
+#, python-format
+msgid "Required csrf field missing for user%s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1154
+msgid "Csrf token is missing."
+msgstr ""
+
+#: ../roundup/cgi/client.py:1157
+#, python-format
+msgid "csrf field not supplied by user%s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1204
+#, 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:1206
+#, python-format
+msgid "Invalid csrf token found: %s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1209
+#, 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:1214
+#, 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:1216
+#, python-format
+msgid "Invalid csrf session found: %s"
+msgstr ""
+
+#: ../roundup/cgi/client.py:1219
+#, 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:1387
 msgid "You are not allowed to view this file."
 msgstr ""
 
-#: ../roundup/cgi/client.py:968
+#: ../roundup/cgi/client.py:1655
 #, python-format
 msgid "%(starttag)sTime elapsed: %(seconds)fs%(endtag)s\n"
 msgstr ""
 
-#: ../roundup/cgi/client.py:972
+#: ../roundup/cgi/client.py:1659
 #, 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:124
 #, 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:706
 msgid "(list)"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:733
+#: ../roundup/cgi/templating.py:779
 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:796 ../roundup/cgi/templating.py:953
+#: ../roundup/cgi/templating.py:1479 ../roundup/cgi/templating.py:1508
+#: ../roundup/cgi/templating.py:1528 ../roundup/cgi/templating.py:1541
+#: ../roundup/cgi/templating.py:1591 ../roundup/cgi/templating.py:1614
+#: ../roundup/cgi/templating.py:1621 ../roundup/cgi/templating.py:1657
+#: ../roundup/cgi/templating.py:1694 ../roundup/cgi/templating.py:1727
+#: ../roundup/cgi/templating.py:1817 ../roundup/cgi/templating.py:1838
+#: ../roundup/cgi/templating.py:1928 ../roundup/cgi/templating.py:1948
+#: ../roundup/cgi/templating.py:1966 ../roundup/cgi/templating.py:1998
+#: ../roundup/cgi/templating.py:2008 ../roundup/cgi/templating.py:2072
+#: ../roundup/cgi/templating.py:2319 ../roundup/cgi/templating.py:796:953
+#: :1479:1508 :1528:1541 :1591:1614 :1621:1657 :1694:1727 :1817:1838 :1928:1948
+#: :1966:1998 :2008:2072 :2319
 msgid "[hidden]"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:748
+#: ../roundup/cgi/templating.py:797
 msgid "New node - no history"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:868
+#: ../roundup/cgi/templating.py:922
 msgid "Submit Changes"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:950
+#: ../roundup/cgi/templating.py:1011
 msgid "<em>The indicated property no longer exists</em>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:951
+#: ../roundup/cgi/templating.py:1012
 #, python-format
 msgid "<em>%s: %s</em>\n"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:964
+#: ../roundup/cgi/templating.py:1025
 #, 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:1063 ../roundup/cgi/templating.py:1089
+#: ../roundup/cgi/templating.py:1063:1089
 msgid "<strike>The linked node no longer exists</strike>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1077
+#: ../roundup/cgi/templating.py:1150
 #, python-format
 msgid "%s: (no value)"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1089
+#: ../roundup/cgi/templating.py:1162
 msgid ""
 "<strong><em>This event is not handled by the history display!</em></strong>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1101
+#: ../roundup/cgi/templating.py:1174
 msgid "<tr><td colspan=4><strong>Note:</strong></td></tr>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1110
+#: ../roundup/cgi/templating.py:1183
 msgid "History"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1112
+#: ../roundup/cgi/templating.py:1185
 msgid "<th>Date</th>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1113
+#: ../roundup/cgi/templating.py:1186
 msgid "<th>User</th>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1114
+#: ../roundup/cgi/templating.py:1187
 msgid "<th>Action</th>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1115
+#: ../roundup/cgi/templating.py:1188
 msgid "<th>Args</th>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1160
+#: ../roundup/cgi/templating.py:1236
 #, 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:1731 ../roundup/cgi/templating.py:1764
+#: ../roundup/cgi/templating.py:1132:1731 :1764
 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:1731 ../roundup/cgi/templating.py:1759
+#: ../roundup/cgi/templating.py:1132:1731 :1759
 msgid "Yes"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1684
+#: ../roundup/cgi/templating.py:1886
 msgid ""
 "default value for DateHTMLProperty must be either DateHTMLProperty or string "
 "date representation."
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1844
+#: ../roundup/cgi/templating.py:2052
 #, python-format
 msgid "Attempt to look up %(attr)s on a missing value"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1929
+#: ../roundup/cgi/templating.py:2063
+#, python-format
+msgid "Attempt to look up %(item)s on a missing value"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:2166
 #, python-format
 msgid "<option %svalue=\"-1\">- no selection -</option>"
 msgstr ""
 
-#: ../roundup/date.py:292
+#: ../roundup/date.py:375
+#, 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:398
 msgid "Could not determine granularity"
 msgstr ""
 
-#: ../roundup/date.py:365
+#: ../roundup/date.py:450
 #, 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:786
+#, 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:809
+#, python-format
+msgid "Not an interval spec: \"%s\" ([+-] [#y] [#m] [#w] [#d] [[[H]H:MM]:SS])"
+msgstr ""
+
+#: ../roundup/date.py:944
 #, python-format
 msgid "%(number)s year"
 msgid_plural "%(number)s years"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:840
+#: ../roundup/date.py:948
 #, python-format
 msgid "%(number)s month"
 msgid_plural "%(number)s months"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:844
+#: ../roundup/date.py:952
 #, python-format
 msgid "%(number)s week"
 msgid_plural "%(number)s weeks"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:848
+#: ../roundup/date.py:956
 #, python-format
 msgid "%(number)s day"
 msgid_plural "%(number)s days"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:852
+#: ../roundup/date.py:960
 msgid "tomorrow"
 msgstr ""
 
-#: ../roundup/date.py:854
+#: ../roundup/date.py:962
 msgid "yesterday"
 msgstr ""
 
-#: ../roundup/date.py:857
+#: ../roundup/date.py:965
 #, python-format
 msgid "%(number)s hour"
 msgid_plural "%(number)s hours"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:861
+#: ../roundup/date.py:969
 msgid "an hour"
 msgstr ""
 
-#: ../roundup/date.py:863
+#: ../roundup/date.py:971
 msgid "1 1/2 hours"
 msgstr ""
 
-#: ../roundup/date.py:865
+#: ../roundup/date.py:973
 #, 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:977
 msgid "in a moment"
 msgstr ""
 
-#: ../roundup/date.py:871
+#: ../roundup/date.py:979
 msgid "just now"
 msgstr ""
 
-#: ../roundup/date.py:874
+#: ../roundup/date.py:982
 msgid "1 minute"
 msgstr ""
 
-#: ../roundup/date.py:877
+#: ../roundup/date.py:985
 #, python-format
 msgid "%(number)s minute"
 msgid_plural "%(number)s minutes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:880
+#: ../roundup/date.py:988
 msgid "1/2 an hour"
 msgstr ""
 
-#: ../roundup/date.py:882
+#: ../roundup/date.py:990
 #, python-format
 msgid "%(number)s/4 hour"
 msgid_plural "%(number)s/4 hours"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:886
+#: ../roundup/date.py:994
 #, python-format
 msgid "%s ago"
 msgstr ""
 
-#: ../roundup/date.py:888
+#: ../roundup/date.py:996
 #, python-format
 msgid "in %s"
 msgstr ""
@@ -1395,98 +1667,107 @@
 msgid "property %s: %s"
 msgstr ""
 
-#: ../roundup/hyperdb.py:111
+#: ../roundup/hyperdb.py:113
 #, python-format
 msgid "property %s: %r is an invalid date (%s)"
 msgstr ""
 
-#: ../roundup/hyperdb.py:128
+#: ../roundup/hyperdb.py:130
 #, python-format
 msgid "property %s: %r is an invalid date interval (%s)"
 msgstr ""
 
-#: ../roundup/hyperdb.py:223
+#: ../roundup/hyperdb.py:260
 #, python-format
 msgid "property %s: %r is not currently an element"
 msgstr ""
 
-#: ../roundup/hyperdb.py:267
+#: ../roundup/hyperdb.py:314
 #, python-format
 msgid "property %s: %r is not a number"
 msgstr ""
 
-#: ../roundup/hyperdb.py:280
+#: ../roundup/hyperdb.py:325
+#, python-format
+msgid "property %s: %r is not an integer"
+msgstr ""
+
+#: ../roundup/hyperdb.py:338
 #, 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:1163 ../roundup/hyperdb.py:1171
+#: ../roundup/hyperdb.py:1163:1171
 #, python-format
 msgid "Not a property name: %s"
 msgstr ""
 
-#: ../roundup/hyperdb.py:1244
+#: ../roundup/hyperdb.py:1570
 #, python-format
 msgid "property %s: %r is not a %s."
 msgstr ""
 
-#: ../roundup/hyperdb.py:1247
+#: ../roundup/hyperdb.py:1573
 #, python-format
 msgid "you may only enter ID values for property %s"
 msgstr ""
 
-#: ../roundup/hyperdb.py:1277
+#: ../roundup/hyperdb.py:1605
 #, python-format
 msgid "%r is not a property of %s"
 msgstr ""
 
-#: ../roundup/init.py:136
+#: ../roundup/init.py:135
 #, python-format
 msgid ""
 "WARNING: directory '%s'\n"
 "\tcontains old-style template - ignored"
 msgstr ""
 
-#: ../roundup/mailgw.py:201 ../roundup/mailgw.py:213
-#: ../roundup/mailgw.py:201:213
+#: ../roundup/mailgw.py:196 ../roundup/mailgw.py:209
+#: ../roundup/mailgw.py:196:209
 #, python-format
 msgid "Message signed with unknown key: %s"
 msgstr ""
 
-#: ../roundup/mailgw.py:204
+#: ../roundup/mailgw.py:199
 #, python-format
 msgid "Message signed with an expired key: %s"
 msgstr ""
 
-#: ../roundup/mailgw.py:207
+#: ../roundup/mailgw.py:202
 #, python-format
 msgid "Message signed with a revoked key: %s"
 msgstr ""
 
-#: ../roundup/mailgw.py:210
+#: ../roundup/mailgw.py:205
 msgid "Invalid PGP signature detected."
 msgstr ""
 
-#: ../roundup/mailgw.py:464
+#: ../roundup/mailgw.py:211
+msgid "Unsigned Message"
+msgstr ""
+
+#: ../roundup/mailgw.py:506
 msgid "Unknown multipart/encrypted version."
 msgstr ""
 
-#: ../roundup/mailgw.py:473
+#: ../roundup/mailgw.py:515
 msgid "Unable to decrypt your message."
 msgstr ""
 
-#: ../roundup/mailgw.py:502
+#: ../roundup/mailgw.py:545
 msgid "No PGP signature found in message."
 msgstr ""
 
-#: ../roundup/mailgw.py:812
+#: ../roundup/mailgw.py:621
 msgid ""
 "\n"
 "Emails to Roundup trackers must include a Subject: line!\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:936
+#: ../roundup/mailgw.py:730
 #, python-format
 msgid ""
 "\n"
@@ -1503,7 +1784,7 @@
 "Subject was: '%(subject)s'\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:974
+#: ../roundup/mailgw.py:768
 #, python-format
 msgid ""
 "\n"
@@ -1514,7 +1795,7 @@
 "Subject was: \"%(subject)s\"\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:982
+#: ../roundup/mailgw.py:776
 #, python-format
 msgid ""
 "\n"
@@ -1531,7 +1812,7 @@
 "Subject was: '%(subject)s'\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:1023
+#: ../roundup/mailgw.py:814
 #, python-format
 msgid ""
 "\n"
@@ -1542,7 +1823,7 @@
 "Subject was: \"%(subject)s\"\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:1056
+#: ../roundup/mailgw.py:847
 #, python-format
 msgid ""
 "\n"
@@ -1552,25 +1833,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:892
 #, python-format
 msgid ""
 "\n"
@@ -1579,21 +1842,21 @@
 "Unknown address: %(from_address)s\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:1155
+#: ../roundup/mailgw.py:900
 msgid "You are not permitted to access this tracker."
 msgstr ""
 
-#: ../roundup/mailgw.py:1162
+#: ../roundup/mailgw.py:911
 #, python-format
 msgid "You are not permitted to edit %(classname)s."
 msgstr ""
 
-#: ../roundup/mailgw.py:1166
+#: ../roundup/mailgw.py:917
 #, python-format
 msgid "You are not permitted to create %(classname)s."
 msgstr ""
 
-#: ../roundup/mailgw.py:1213
+#: ../roundup/mailgw.py:998
 #, python-format
 msgid ""
 "\n"
@@ -1603,34 +1866,38 @@
 "Subject was: \"%(subject)s\"\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:1266
+#: ../roundup/mailgw.py:1051
+msgid "This tracker has been configured to require all email be PGP encrypted."
+msgstr ""
+
+#: ../roundup/mailgw.py:1088
 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:1119
+msgid "You are not permitted to create files."
+msgstr ""
+
+#: ../roundup/mailgw.py:1133
+#, python-format
+msgid "You are not permitted to add files to %(classname)s."
+msgstr ""
+
+#: ../roundup/mailgw.py:1162
 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:1173
 msgid "You are not permitted to create messages."
 msgstr ""
 
-#: ../roundup/mailgw.py:1330
+#: ../roundup/mailgw.py:1181
 #, python-format
 msgid ""
 "\n"
@@ -1638,17 +1905,22 @@
 "%(error)s\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:1338
+#: ../roundup/mailgw.py:1189
 #, python-format
 msgid "You are not permitted to add messages to %(classname)s."
 msgstr ""
 
-#: ../roundup/mailgw.py:1365
+#: ../roundup/mailgw.py:1211
 #, python-format
 msgid "You are not permitted to edit property %(prop)s of class %(classname)s."
 msgstr ""
 
-#: ../roundup/mailgw.py:1374
+#: ../roundup/mailgw.py:1220
+#, python-format
+msgid "You are not permitted to set property %(prop)s of class %(classname)s."
+msgstr ""
+
+#: ../roundup/mailgw.py:1226
 #, python-format
 msgid ""
 "\n"
@@ -1656,85 +1928,108 @@
 "   %(message)s\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:1396
+#: ../roundup/mailgw.py:1674
+#, 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:1705
+#, 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:1726
 msgid "not of form [arg=value,value,...;arg=value,value,...]"
 msgstr ""
 
-#: ../roundup/roundupdb.py:174
+#: ../roundup/roundupdb.py:209
 msgid "files"
 msgstr ""
 
-#: ../roundup/roundupdb.py:174
+#: ../roundup/roundupdb.py:209
 msgid "messages"
 msgstr ""
 
-#: ../roundup/roundupdb.py:174
+#: ../roundup/roundupdb.py:209
 msgid "nosy"
 msgstr ""
 
-#: ../roundup/roundupdb.py:174
+#: ../roundup/roundupdb.py:209
 msgid "superseder"
 msgstr ""
 
-#: ../roundup/roundupdb.py:174
+#: ../roundup/roundupdb.py:209
 msgid "title"
 msgstr ""
 
-#: ../roundup/roundupdb.py:175
+#: ../roundup/roundupdb.py:210
 msgid "assignedto"
 msgstr ""
 
-#: ../roundup/roundupdb.py:175
+#: ../roundup/roundupdb.py:210
 msgid "keyword"
 msgstr ""
 
-#: ../roundup/roundupdb.py:175
+#: ../roundup/roundupdb.py:210
 msgid "priority"
 msgstr ""
 
-#: ../roundup/roundupdb.py:175
+#: ../roundup/roundupdb.py:210
 msgid "status"
 msgstr ""
 
-#: ../roundup/roundupdb.py:178
+#: ../roundup/roundupdb.py:213
 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:213
 msgid "actor"
 msgstr ""
 
-#: ../roundup/roundupdb.py:178
+#: ../roundup/roundupdb.py:213
 msgid "creation"
 msgstr ""
 
-#: ../roundup/roundupdb.py:178
+#: ../roundup/roundupdb.py:213
 msgid "creator"
 msgstr ""
 
-#: ../roundup/roundupdb.py:335
+#: ../roundup/roundupdb.py:387
+#, python-format
+msgid "No key for \"%(adr)s\" in keyring"
+msgstr ""
+
+#: ../roundup/roundupdb.py:457
 #, python-format
 msgid "New submission from %(authname)s%(authaddr)s:"
 msgstr ""
 
-#: ../roundup/roundupdb.py:338
+#: ../roundup/roundupdb.py:460
 #, python-format
 msgid "%(authname)s%(authaddr)s added the comment:"
 msgstr ""
 
-#: ../roundup/roundupdb.py:341
+#: ../roundup/roundupdb.py:463
 #, python-format
 msgid "Change by %(authname)s%(authaddr)s:"
 msgstr ""
 
-#: ../roundup/roundupdb.py:361
+#: ../roundup/roundupdb.py:482
 #, python-format
 msgid "File '%(filename)s' not attached - you can download it from %(link)s."
 msgstr ""
 
-#: ../roundup/roundupdb.py:661
+#: ../roundup/roundupdb.py:841
 #, python-format
 msgid ""
 "\n"
@@ -1744,37 +2039,42 @@
 "%(old)s"
 msgstr ""
 
-#: ../roundup/scripts/roundup_demo.py:32
+#: ../roundup/scripts/roundup_demo.py:47
 #, python-format
 msgid "Enter directory path to create demo tracker [%s]: "
 msgstr ""
 
-#: ../roundup/scripts/roundup_gettext.py:22
+#: ../roundup/scripts/roundup_demo.py:52
+#, python-format
+msgid "Enter tracker template to use (one of (%s)) [%s]: "
+msgstr ""
+
+#: ../roundup/scripts/roundup_gettext.py:33
 #, python-format
 msgid "Usage: %(program)s <tracker home>"
 msgstr ""
 
-#: ../roundup/scripts/roundup_gettext.py:37
+#: ../roundup/scripts/roundup_gettext.py:48
 #, python-format
 msgid "No tracker templates found in directory %s"
 msgstr ""
 
-#: ../roundup/scripts/roundup_mailgw.py:36
+#: ../roundup/scripts/roundup_mailgw.py:48
 #, 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 +2087,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 +2137,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:170
 msgid "Error: not enough source specification information"
 msgstr ""
 
-#: ../roundup/scripts/roundup_mailgw.py:186
+#: ../roundup/scripts/roundup_mailgw.py:199
 #, python-format
 msgid "Error: %s specification not valid"
 msgstr ""
 
-#: ../roundup/scripts/roundup_mailgw.py:192
+#: ../roundup/scripts/roundup_mailgw.py:205
 msgid "Error: a later version of python is required"
 msgstr ""
 
-#: ../roundup/scripts/roundup_mailgw.py:203
+#: ../roundup/scripts/roundup_mailgw.py:221
 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:90
 msgid "WARNING: generating temporary SSL certificate"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:253
+#: ../roundup/scripts/roundup_server.py:270
 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:465
 #, python-format
 msgid "Error: %s: %s"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:399
+#: ../roundup/scripts/roundup_server.py:475
 msgid "WARNING: ignoring \"-g\" argument, not root"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:405
+#: ../roundup/scripts/roundup_server.py:481
 msgid "Can't change groups - no grp module"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:414
+#: ../roundup/scripts/roundup_server.py:490
 #, python-format
 msgid "Group %(group)s doesn't exist"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:425
+#: ../roundup/scripts/roundup_server.py:501
 msgid "Can't run as root!"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:428
+#: ../roundup/scripts/roundup_server.py:504
 msgid "WARNING: ignoring \"-u\" argument, not root"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:434
+#: ../roundup/scripts/roundup_server.py:510
 msgid "Can't change users - no pwd module"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:443
+#: ../roundup/scripts/roundup_server.py:519
 #, python-format
 msgid "User %(user)s doesn't exist"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:592
+#: ../roundup/scripts/roundup_server.py:700
 #, 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:728
 #, 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:796
 msgid ""
 " -c <Command>  Windows Service options.\n"
 "               If you want to run the server as a Windows Service, you\n"
@@ -1921,7 +2228,7 @@
 "               specifics."
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:695
+#: ../roundup/scripts/roundup_server.py:803
 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 +2237,7 @@
 "               specified if -d is used."
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:702
+#: ../roundup/scripts/roundup_server.py:810
 #, python-format
 msgid ""
 "%(message)sUsage: roundup-server [options] [name=tracker home]*\n"
@@ -1940,13 +2247,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 +2299,20 @@
 "   any url-unsafe characters like spaces, as these confuse IE.\n"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:860
+#: ../roundup/scripts/roundup_server.py:968
 msgid "Instances must be name=home"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:874
+#: ../roundup/scripts/roundup_server.py:982
 #, python-format
 msgid "Configuration saved to %s"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:892
+#: ../roundup/scripts/roundup_server.py:1000
 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:1015
 #, python-format
 msgid "Roundup server started on %(HOST)s:%(PORT)s"
 msgstr ""
@@ -2033,7 +2344,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 +2352,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 +2387,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 +2423,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 +2446,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 +2516,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 +2632,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 +2651,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 +2683,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 +2691,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 +2722,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 +2873,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 +2922,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 +3069,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 +3178,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 +3244,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 +3349,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:65
+#: ../share/roundup/templates/responsive/extensions/spambayes.py:65
+msgid "Message classified as"
+msgstr ""
+
+#: ../share/roundup/templates/devel/extensions/spambayes.py:67
+#: ../share/roundup/templates/responsive/extensions/spambayes.py:67
+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/