diff locale/it.po @ 7203:12a3cd86668f

auto update 'password_pbkdf2_default_rounds' " If the current value for password_pbkdf2_default_rounds is the old default value of 10000, updateconfig will use the new default value when writing the new config. If the curreny value for password_pbkdf2_default_rounds is less than the new default the user will be told to update the value. New translation strings added. Updates to upgrading.txt doc.
author John Rouillard <rouilj@ieee.org>
date Wed, 01 Mar 2023 10:51:37 -0500
parents c9a02c670e69
children ccb0e566e0be
line wrap: on
line diff
--- a/locale/it.po	Wed Mar 01 10:43:54 2023 -0500
+++ b/locale/it.po	Wed Mar 01 10:51:37 2023 -0500
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Roundup 2.3.0\n"
 "Report-Msgid-Bugs-To: roundup-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2022-11-23 22:28-0500\n"
+"POT-Creation-Date: 2023-03-01 10:35-0500\n"
 "PO-Revision-Date: 2013-10-31 12:20+0100\n"
 "Last-Translator: Marco Ghidinelli <marco.ghidinelli@ing.unibs.it>\n"
 "Language-Team: italian <it@li.org>\n"
@@ -23,24 +23,24 @@
 "You do not have permission to retire or restore the %(classname)s class."
 msgstr "Non hai i permessi per %(action)s la classe %(classname)s."
 
-#: ../roundup/actions.py:64 ../roundup/cgi/actions.py:240
+#: ../roundup/actions.py:65 ../roundup/cgi/actions.py:240
 msgid "You may not retire the admin or anonymous user"
 msgstr "Non è possibile ritirare l'utente amministratore o l'utente anonimo"
 
 # ../roundup/admin.py:1052 ../roundup/admin.py:85:981 :1030:1052
-#: ../roundup/admin.py:106 ../roundup/admin.py:1259 ../roundup/admin.py:1314
-#: ../roundup/admin.py:1341 ../roundup/admin.py:106:1259 :1314:1341
+#: ../roundup/admin.py:112 ../roundup/admin.py:1295 ../roundup/admin.py:1350
+#: ../roundup/admin.py:1377 ../roundup/admin.py:112:1295 :1350:1377
 #, python-format
 msgid "no such class \"%(classname)s\""
 msgstr "classe \"%(classname)s\" mancante"
 
 # ../roundup/admin.py:95 ../roundup/admin.py:99 ../roundup/admin.py:95:99
-#: ../roundup/admin.py:118
+#: ../roundup/admin.py:124
 #, python-format
 msgid "argument \"%(arg)s\" not propname=value"
 msgstr "argomento \"%(arg)s\" non nel formato nome=valore"
 
-#: ../roundup/admin.py:131
+#: ../roundup/admin.py:137
 #, python-format
 msgid ""
 "Problem: %(message)s\n"
@@ -49,7 +49,7 @@
 "Problema: %(message)s\n"
 "\n"
 
-#: ../roundup/admin.py:132
+#: ../roundup/admin.py:138
 #, python-format
 msgid ""
 "%(message)sUsage: roundup-admin [options] [<command> <arguments>]\n"
@@ -77,12 +77,12 @@
 " roundup-admin help all                   -- all available help\n"
 msgstr ""
 
-#: ../roundup/admin.py:159
+#: ../roundup/admin.py:165
 #, fuzzy
 msgid "Commands: "
 msgstr "Comandi:"
 
-#: ../roundup/admin.py:166
+#: ../roundup/admin.py:172
 msgid ""
 "Commands may be abbreviated as long as the abbreviation\n"
 "matches only one command, e.g. l == li == lis == list."
@@ -90,7 +90,7 @@
 "I comandi possono essere abbreviati finchè l'abbreviazione rimane univoca\n"
 "es: l == li == lis == list."
 
-#: ../roundup/admin.py:195
+#: ../roundup/admin.py:201
 msgid ""
 "\n"
 "All commands (except help) require a tracker specifier. This is just\n"
@@ -142,7 +142,7 @@
 " . ROUNDUP_LOGIN environment variable\n"
 " . the -u command-line option\n"
 "If either the name or password is not supplied, they are obtained from the\n"
-"command-line.\n"
+"command-line. (See admin guide before using -u.)\n"
 "\n"
 "Date format examples:\n"
 "  \"2000-04-17.03:45\" means <Date 2000-04-17.08:45:00>\n"
@@ -157,12 +157,12 @@
 "Command help:\n"
 msgstr ""
 
-#: ../roundup/admin.py:258
+#: ../roundup/admin.py:264
 #, python-format
 msgid "%s:"
 msgstr "%s:"
 
-#: ../roundup/admin.py:265
+#: ../roundup/admin.py:271
 msgid ""
 "Usage: help topic\n"
 "        Give help about topic.\n"
@@ -174,22 +174,22 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:287
+#: ../roundup/admin.py:293
 #, python-format
 msgid "Sorry, no help for \"%(topic)s\""
 msgstr "Nessun aiuto per \"%(topic)s\""
 
 # ../roundup/admin.py:340 ../roundup/admin.py:396 ../roundup/admin.py:340:396
-#: ../roundup/admin.py:402 ../roundup/admin.py:458 ../roundup/admin.py:402:458
+#: ../roundup/admin.py:408 ../roundup/admin.py:464 ../roundup/admin.py:408:464
 msgid "Templates:"
 msgstr "Modelli predefiniti:"
 
 # ../roundup/admin.py:343 ../roundup/admin.py:407 ../roundup/admin.py:343:407
-#: ../roundup/admin.py:405 ../roundup/admin.py:468 ../roundup/admin.py:405:468
+#: ../roundup/admin.py:411 ../roundup/admin.py:474 ../roundup/admin.py:411:474
 msgid "Back ends:"
 msgstr "Back ends:"
 
-#: ../roundup/admin.py:408
+#: ../roundup/admin.py:414
 msgid ""
 "Usage: install [template [backend [key=val[,key=val]]]]\n"
 "        Install a new Roundup tracker.\n"
@@ -217,23 +217,23 @@
 
 # ../roundup/admin.py:1243 ../roundup/admin.py:369:466 :1020:1042 :1072:1171
 # :1243 :527:606 :656:714 :735:763 :834:901 :972
-#: ../roundup/admin.py:431 ../roundup/admin.py:562 ../roundup/admin.py:635
-#: ../roundup/admin.py:728 ../roundup/admin.py:786 ../roundup/admin.py:872
-#: ../roundup/admin.py:931 ../roundup/admin.py:958 ../roundup/admin.py:985
-#: ../roundup/admin.py:1062 ../roundup/admin.py:1157 ../roundup/admin.py:1243
-#: ../roundup/admin.py:1304 ../roundup/admin.py:1331 ../roundup/admin.py:1367
-#: ../roundup/admin.py:1495 ../roundup/admin.py:1579
-#: ../roundup/admin.py:431:562 :1157 :1243:1304 :1331:1367 :1495:1579 :635:728
-#: :786:872 :931:958 :985:1062
+#: ../roundup/admin.py:437 ../roundup/admin.py:568 ../roundup/admin.py:671
+#: ../roundup/admin.py:764 ../roundup/admin.py:822 ../roundup/admin.py:908
+#: ../roundup/admin.py:967 ../roundup/admin.py:994 ../roundup/admin.py:1021
+#: ../roundup/admin.py:1098 ../roundup/admin.py:1193 ../roundup/admin.py:1279
+#: ../roundup/admin.py:1340 ../roundup/admin.py:1367 ../roundup/admin.py:1403
+#: ../roundup/admin.py:1531 ../roundup/admin.py:1615
+#: ../roundup/admin.py:437:568 :1021:1098:1193 :1279:1340 :1367:1403 :1531:1615
+#: :671:764 :822:908 :967:994
 msgid "Not enough arguments supplied"
 msgstr "Non sono stati forniti abbastanza argomenti"
 
-#: ../roundup/admin.py:437
+#: ../roundup/admin.py:443
 #, python-format
 msgid "Instance home parent directory \"%(parent)s\" does not exist"
 msgstr "la directory radice dell'istanza \"%(parent)s\" non esiste"
 
-#: ../roundup/admin.py:446
+#: ../roundup/admin.py:452
 #, python-format
 msgid ""
 "WARNING: There appears to be a tracker in \"%(tracker_home)s\"!\n"
@@ -244,22 +244,22 @@
 "Se verrà reinstallata, tutti i dati precedentemente salvati andranno persi\n"
 "Cancellare la directory specificata? Y/N: "
 
-#: ../roundup/admin.py:459
+#: ../roundup/admin.py:465
 #, fuzzy
 msgid "Select template"
 msgstr "Seleziona il modello predefinito [classic]: "
 
-#: ../roundup/admin.py:469
+#: ../roundup/admin.py:475
 #, fuzzy
 msgid "Select backend"
 msgstr "Seleziona il backend [anydbm]: "
 
-#: ../roundup/admin.py:480
+#: ../roundup/admin.py:486
 #, python-format
 msgid "Error in configuration settings: \"%s\""
 msgstr "Erorre nei settaggi di configurazione: \"%s\""
 
-#: ../roundup/admin.py:511
+#: ../roundup/admin.py:517
 #, python-format
 msgid ""
 "\n"
@@ -268,11 +268,11 @@
 "   %(config_file)s"
 msgstr ""
 
-#: ../roundup/admin.py:521
+#: ../roundup/admin.py:527
 msgid " ... at a minimum, you must set following options:"
 msgstr " ... devono essere configurate almeno le seguenti opzioni:"
 
-#: ../roundup/admin.py:526
+#: ../roundup/admin.py:532
 #, python-format
 msgid ""
 "\n"
@@ -289,7 +289,7 @@
 "---------------------------------------------------------------------------\n"
 msgstr ""
 
-#: ../roundup/admin.py:557
+#: ../roundup/admin.py:563
 msgid ""
 "Usage: genconfig <filename>\n"
 "        Generate a new tracker config file (ini style) with default\n"
@@ -297,7 +297,22 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:572
+#: ../roundup/admin.py:581
+#, python-format
+msgid ""
+"Changing option\n"
+"   'password_pbkdf2_default_rounds'\n"
+"from old default of %(old_number)s to new default of %(new_number)s."
+msgstr ""
+
+#: ../roundup/admin.py:593
+#, python-format
+msgid ""
+"Update 'password_pbkdf2_default_rounds'to a number equal to or larger\n"
+"than %s."
+msgstr ""
+
+#: ../roundup/admin.py:604
 msgid ""
 "Usage: updateconfig <filename>\n"
 "        Generate an updated tracker config file (ini style) in\n"
@@ -307,7 +322,7 @@
 msgstr ""
 
 #. password
-#: ../roundup/admin.py:580
+#: ../roundup/admin.py:612
 msgid ""
 "Usage: initialise [adminpw]\n"
 "        Initialise a new Roundup tracker.\n"
@@ -318,30 +333,30 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:594
+#: ../roundup/admin.py:626
 msgid "Admin Password: "
 msgstr "Password dell'amministratore"
 
-#: ../roundup/admin.py:595
+#: ../roundup/admin.py:627
 msgid "       Confirm: "
 msgstr "       Conferma: "
 
-#: ../roundup/admin.py:599
+#: ../roundup/admin.py:631
 msgid "Instance home does not exist"
 msgstr "La home dell'istanza non esiste"
 
-#: ../roundup/admin.py:603
+#: ../roundup/admin.py:635
 msgid "Instance has not been installed"
 msgstr "L'istanza non è stata installata"
 
-#: ../roundup/admin.py:609
+#: ../roundup/admin.py:641
 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:625
+#: ../roundup/admin.py:661
 msgid ""
 "Usage: get property designator[,designator]*\n"
 "        Get the given property of one or more designator(s).\n"
@@ -355,24 +370,24 @@
 msgstr ""
 
 # ../roundup/admin.py:560 ../roundup/admin.py:575 ../roundup/admin.py:560:575
-#: ../roundup/admin.py:669 ../roundup/admin.py:687 ../roundup/admin.py:669:687
+#: ../roundup/admin.py:705 ../roundup/admin.py:723 ../roundup/admin.py:705:723
 #, python-format
 msgid "property %s is not of type Multilink or Link so -d flag does not apply."
 msgstr ""
 
 # ../roundup/admin.py:1054 ../roundup/admin.py:583:983 :1032:1054
-#: ../roundup/admin.py:697 ../roundup/admin.py:1261 ../roundup/admin.py:1316
-#: ../roundup/admin.py:697:1261:1316
+#: ../roundup/admin.py:733 ../roundup/admin.py:1297 ../roundup/admin.py:1352
+#: ../roundup/admin.py:733:1297:1352
 #, python-format
 msgid "no such %(classname)s node \"%(nodeid)s\""
 msgstr ""
 
-#: ../roundup/admin.py:700
+#: ../roundup/admin.py:736
 #, python-format
 msgid "no such %(classname)s property \"%(propname)s\""
 msgstr ""
 
-#: ../roundup/admin.py:708
+#: ../roundup/admin.py:744
 msgid ""
 "Usage: set items property=value property=value ...\n"
 "        Set the given properties of one or more items(s).\n"
@@ -393,7 +408,7 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:776
+#: ../roundup/admin.py:812
 msgid ""
 "Usage: filter classname propname=value ...\n"
 "        Find the nodes of the given class with a given property value.\n"
@@ -407,20 +422,20 @@
 msgstr ""
 
 # ../roundup/admin.py:920 ../roundup/admin.py:701:854 :866:920
-#: ../roundup/admin.py:819
+#: ../roundup/admin.py:855
 #, fuzzy, python-format
 msgid "Class %(curclassname)s has no property %(pn)s in %(propname)s."
 msgstr "la classe %(classname)s non ha la proprietà \"%(propname)s\""
 
 # ../roundup/admin.py:920 ../roundup/admin.py:701:854 :866:920
-#: ../roundup/admin.py:857 ../roundup/admin.py:918 ../roundup/admin.py:1082
-#: ../roundup/admin.py:1094 ../roundup/admin.py:1177
-#: ../roundup/admin.py:857:918 :1082:1094:1177
+#: ../roundup/admin.py:893 ../roundup/admin.py:954 ../roundup/admin.py:1118
+#: ../roundup/admin.py:1130 ../roundup/admin.py:1213
+#: ../roundup/admin.py:893:954 :1118:1130:1213
 #, python-format
 msgid "%(classname)s has no property \"%(propname)s\""
 msgstr "la classe %(classname)s non ha la proprietà \"%(propname)s\""
 
-#: ../roundup/admin.py:864
+#: ../roundup/admin.py:900
 msgid ""
 "Usage: find classname propname=value ...\n"
 "        Find the nodes of the given class with a given link property value.\n"
@@ -431,7 +446,7 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:925
+#: ../roundup/admin.py:961
 msgid ""
 "Usage: specification classname\n"
 "        Show the properties for a classname.\n"
@@ -440,17 +455,17 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:941
+#: ../roundup/admin.py:977
 #, fuzzy, python-format
 msgid "%(key)s: %(value)s (key property)\n"
 msgstr "%(key)s %(value)s (chiave)"
 
-#: ../roundup/admin.py:944
+#: ../roundup/admin.py:980
 #, fuzzy, python-format
 msgid "%(key)s: %(value)s\n"
 msgstr "%(key)s:·%(value)s"
 
-#: ../roundup/admin.py:947
+#: ../roundup/admin.py:983
 msgid ""
 "Usage: display designator[,designator]*\n"
 "\n"
@@ -464,12 +479,12 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:974
+#: ../roundup/admin.py:1010
 #, python-format
 msgid "%(key)s: %(value)s"
 msgstr "%(key)s:·%(value)s"
 
-#: ../roundup/admin.py:977
+#: ../roundup/admin.py:1013
 msgid ""
 "Usage: create classname property=value ...\n"
 "        Create a new entry of a given class.\n"
@@ -481,31 +496,31 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1005
+#: ../roundup/admin.py:1041
 #, python-format
 msgid "%(propname)s (Password): "
 msgstr "%(propname)s·(Password):·"
 
-#: ../roundup/admin.py:1008
+#: ../roundup/admin.py:1044
 #, python-format
 msgid "   %(propname)s (Again): "
 msgstr "   %(propname)s (Ripeti password): "
 
-#: ../roundup/admin.py:1012
+#: ../roundup/admin.py:1048
 msgid "Sorry, try again..."
 msgstr "Mi dispiace, riprova..."
 
-#: ../roundup/admin.py:1016
+#: ../roundup/admin.py:1052
 #, python-format
 msgid "%(propname)s (%(proptype)s): "
 msgstr "%(propname)s (%(proptype)s): "
 
-#: ../roundup/admin.py:1035
+#: ../roundup/admin.py:1071
 #, python-format
 msgid "you must provide the \"%(propname)s\" property."
 msgstr "deve essere fornita la proprietà \"%(propname)s\"."
 
-#: ../roundup/admin.py:1047
+#: ../roundup/admin.py:1083
 msgid ""
 "Usage: list classname [property]\n"
 "        List the instances of a class.\n"
@@ -521,16 +536,16 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1060
+#: ../roundup/admin.py:1096
 msgid "Too many arguments supplied"
 msgstr ""
 
-#: ../roundup/admin.py:1096
+#: ../roundup/admin.py:1132
 #, python-format
 msgid "%(nodeid)4s: %(value)s"
 msgstr ""
 
-#: ../roundup/admin.py:1100
+#: ../roundup/admin.py:1136
 msgid ""
 "Usage: templates [trace_search]\n"
 "        List templates and their installed directories.\n"
@@ -540,7 +555,7 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1128
+#: ../roundup/admin.py:1164
 msgid ""
 "Usage: table classname [property[,property]*]\n"
 "        List the instances of a class in tabular form.\n"
@@ -572,17 +587,17 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1172
+#: ../roundup/admin.py:1208
 #, python-format
 msgid "\"%(spec)s\" not name:width"
 msgstr ""
 
-#: ../roundup/admin.py:1194
-#, python-format
-msgid "\"%(spec)s\" does not have an integer width: \"%(width)s\""
-msgstr ""
-
 #: ../roundup/admin.py:1230
+#, python-format
+msgid "\"%(spec)s\" does not have an integer width: \"%(width)s\""
+msgstr ""
+
+#: ../roundup/admin.py:1266
 msgid ""
 "Usage: history designator [skipquiet]\n"
 "        Show the history entries of a designator.\n"
@@ -597,7 +612,7 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1266
+#: ../roundup/admin.py:1302
 msgid ""
 "Usage: commit\n"
 "        Commit changes made to the database during an interactive session.\n"
@@ -611,7 +626,7 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1281
+#: ../roundup/admin.py:1317
 msgid ""
 "Usage: rollback\n"
 "        Undo all changes that are pending commit to the database.\n"
@@ -623,7 +638,7 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1294
+#: ../roundup/admin.py:1330
 msgid ""
 "Usage: retire designator[,designator]*\n"
 "        Retire the node specified by designator.\n"
@@ -636,7 +651,7 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1322
+#: ../roundup/admin.py:1358
 msgid ""
 "Usage: restore designator[,designator]*\n"
 "        Restore the retired node specified by designator.\n"
@@ -649,13 +664,13 @@
 msgstr ""
 
 # ../roundup/admin.py:1052 ../roundup/admin.py:85:981 :1030:1052
-#: ../roundup/admin.py:1347
+#: ../roundup/admin.py:1383
 #, fuzzy
 msgid "no such %(classname)s node \" % (nodeid)s\""
 msgstr "classe \"%(classname)s\" mancante"
 
 #. grab the directory to export to
-#: ../roundup/admin.py:1353
+#: ../roundup/admin.py:1389
 msgid ""
 "Usage: export [[-]class[,class]] export_dir\n"
 "        Export the database to colon-separated-value files.\n"
@@ -671,7 +686,7 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1460
+#: ../roundup/admin.py:1496
 msgid ""
 "Usage: exporttables [[-]class[,class]] export_dir\n"
 "        Export the database to colon-separated-value files, excluding the\n"
@@ -688,7 +703,7 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1475
+#: ../roundup/admin.py:1511
 msgid ""
 "Usage: import import_dir\n"
 "        Import a database from the directory containing CSV files,\n"
@@ -711,7 +726,7 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1554
+#: ../roundup/admin.py:1590
 msgid ""
 "Usage: importtables export_dir\n"
 "\n"
@@ -719,7 +734,7 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1561
+#: ../roundup/admin.py:1597
 msgid ""
 "Usage: pack period | date\n"
 "\n"
@@ -741,11 +756,11 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1589
+#: ../roundup/admin.py:1625
 msgid "Invalid format"
 msgstr ""
 
-#: ../roundup/admin.py:1602
+#: ../roundup/admin.py:1638
 msgid ""
 "Usage: reindex [classname|designator]*\n"
 "        Re-generate a tracker's search indexes.\n"
@@ -755,12 +770,12 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1616
+#: ../roundup/admin.py:1652
 #, python-format
 msgid "no such item \"%(designator)s\""
 msgstr ""
 
-#: ../roundup/admin.py:1626
+#: ../roundup/admin.py:1662
 msgid ""
 "Usage: security [Role name]\n"
 "\n"
@@ -768,46 +783,46 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1635
+#: ../roundup/admin.py:1671
 #, fuzzy, python-format
 msgid "No such Role \"%(role)s\"\n"
 msgstr "Non è presente il ruolo \"%(role)s\""
 
-#: ../roundup/admin.py:1641
+#: ../roundup/admin.py:1677
 #, fuzzy, python-format
 msgid "New Web users get the Roles \"%(role)s\"\n"
 msgstr "I nuovi utenti Web otterranno i ruoli \"%(role)s\""
 
-#: ../roundup/admin.py:1644
+#: ../roundup/admin.py:1680
 #, fuzzy, python-format
 msgid "New Web users get the Role \"%(role)s\"\n"
 msgstr "I nuovi utenti Web otterranno il ruolo \"%(role)s)\""
 
-#: ../roundup/admin.py:1648
+#: ../roundup/admin.py:1684
 #, fuzzy, python-format
 msgid "New Email users get the Roles \"%(role)s\"\n"
 msgstr "I nuovi utenti Email otterranno i ruoli \"%(role)s)\""
 
-#: ../roundup/admin.py:1650
+#: ../roundup/admin.py:1686
 #, fuzzy, python-format
 msgid "New Email users get the Role \"%(role)s\"\n"
 msgstr "I nuovi utenti Email otterranno il ruolo \"%(role)s\""
 
-#: ../roundup/admin.py:1653
+#: ../roundup/admin.py:1689
 #, fuzzy, python-format
 msgid "Role \"%(name)s\":\n"
 msgstr "Ruolo \"%(name)s\":"
 
-#: ../roundup/admin.py:1659
+#: ../roundup/admin.py:1695
 msgid " %(description)s (%(name)s for \"%(klass)s\""
 msgstr ""
 
-#: ../roundup/admin.py:1659
+#: ../roundup/admin.py:1695
 #, python-format
 msgid " %(description)s (%(name)s for \"%(klass)s\": %(properties)s only)\n"
 msgstr ""
 
-#: ../roundup/admin.py:1672
+#: ../roundup/admin.py:1708
 #, python-format
 msgid ""
 "\n"
@@ -815,17 +830,17 @@
 "\n"
 msgstr ""
 
-#: ../roundup/admin.py:1678
+#: ../roundup/admin.py:1714
 #, python-format
 msgid " %(description)s (%(name)s for \"%(klass)s\" only)\n"
 msgstr ""
 
-#: ../roundup/admin.py:1681
+#: ../roundup/admin.py:1717
 #, python-format
 msgid " %(description)s (%(name)s)\n"
 msgstr ""
 
-#: ../roundup/admin.py:1685
+#: ../roundup/admin.py:1721
 msgid ""
 "Usage: migrate\n"
 "\n"
@@ -849,61 +864,57 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1706
+#: ../roundup/admin.py:1742
 msgid "Tracker updated"
 msgstr ""
 
-#: ../roundup/admin.py:1709
+#: ../roundup/admin.py:1745
 msgid "No migration action required"
 msgstr ""
 
-#: ../roundup/admin.py:1735
+#: ../roundup/admin.py:1771
 #, python-format
 msgid "Unknown command \"%(command)s\" (\"help commands\" for a list)"
 msgstr ""
 
-#: ../roundup/admin.py:1741
+#: ../roundup/admin.py:1777
 #, python-format
 msgid "Multiple commands match \"%(command)s\": %(list)s"
 msgstr ""
 
-#: ../roundup/admin.py:1750
+#: ../roundup/admin.py:1786
 msgid "Enter tracker home: "
 msgstr ""
 
 # ../roundup/admin.py:1371:1377 :1397
-#: ../roundup/admin.py:1759 ../roundup/admin.py:1765 ../roundup/admin.py:1802
-#: ../roundup/admin.py:1759:1765:1802
+#: ../roundup/admin.py:1795 ../roundup/admin.py:1801 ../roundup/admin.py:1838
+#: ../roundup/admin.py:1795:1801:1838
 #, python-format
 msgid "Error: %(message)s"
 msgstr ""
 
-#: ../roundup/admin.py:1775 ../roundup/admin.py:1779
-#: ../roundup/admin.py:1775:1779
+#: ../roundup/admin.py:1811 ../roundup/admin.py:1815
+#: ../roundup/admin.py:1811:1815
 #, python-format
 msgid "Error: Couldn't open tracker: %(message)s"
 msgstr ""
 
-#: ../roundup/admin.py:1815
+#: ../roundup/admin.py:1851
 #, python-format
 msgid ""
 "Roundup %s ready for input.\n"
 "Type \"help\" for help."
 msgstr ""
 
-#: ../roundup/admin.py:1820
+#: ../roundup/admin.py:1856
 msgid "Note: command history and editing not available"
 msgstr ""
 
-#: ../roundup/admin.py:1824
-msgid "roundup> "
-msgstr ""
-
-#: ../roundup/admin.py:1826
+#: ../roundup/admin.py:1862
 msgid "exit..."
 msgstr ""
 
-#: ../roundup/admin.py:1839
+#: ../roundup/admin.py:1875
 msgid "There are unsaved changes. Commit them (y/N)? "
 msgstr ""
 
@@ -1011,20 +1022,22 @@
 msgid "restored"
 msgstr "ripristina"
 
-#: ../roundup/backends/sessions_redis.py:76
-#: ../roundup/backends/sessions_redis.py:95
-#: ../roundup/backends/sessions_redis.py:76:95
+#: ../roundup/backends/sessions_redis.py:78
+#: ../roundup/backends/sessions_redis.py:97
+#: ../roundup/backends/sessions_redis.py:78:97
 #, python-format
 msgid "Key %(key)s not found in %(name)s database."
 msgstr ""
 
-#: ../roundup/backends/sessions_redis.py:191
+#: ../roundup/backends/sessions_redis.py:193
 #, python-format
 msgid "Key %(key)s changed in %(name)s db"
 msgstr ""
 
-#: ../roundup/backends/sessions_redis.py:195
-msgid "Redis set failed afer 3 retries"
+#: ../roundup/backends/sessions_redis.py:203
+#, python-format
+msgid ""
+"Redis set failed after %(retries)d retries for user %(user)s with key %(key)s"
 msgstr ""
 
 #: ../roundup/cgi/actions.py:97
@@ -1340,22 +1353,22 @@
 msgstr ""
 
 # ../roundup/cgi/actions.py:931:935
-#: ../roundup/cgi/actions.py:1383 ../roundup/cgi/actions.py:1387
-#: ../roundup/cgi/actions.py:1383:1387
+#: ../roundup/cgi/actions.py:1384 ../roundup/cgi/actions.py:1388
+#: ../roundup/cgi/actions.py:1384:1388
 msgid "Invalid login"
 msgstr "Login invalida"
 
-#: ../roundup/cgi/actions.py:1393
+#: ../roundup/cgi/actions.py:1394
 msgid "You do not have permission to login"
 msgstr "Non hai il permesso per eseguire la login"
 
-#: ../roundup/cgi/actions.py:1437 ../roundup/cgi/actions.py:1616
-#: ../roundup/cgi/actions.py:1437:1616
+#: ../roundup/cgi/actions.py:1439 ../roundup/cgi/actions.py:1618
+#: ../roundup/cgi/actions.py:1439:1618
 #, python-format
 msgid "Column \"%(column)s\" not found in %(class)s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:1687
+#: ../roundup/cgi/actions.py:1689
 #, fuzzy, python-format
 msgid "You do not have permission to view %(class)s"
 msgstr "Non hai i permessi per modificare i %(class)s"
@@ -1459,158 +1472,159 @@
 "La notifica del problema è stata notificata al manutentore del tracker.</p>\n"
 "</body></html>"
 
-#: ../roundup/cgi/client.py:651
+#: ../roundup/cgi/client.py:670 ../roundup/cgi/client.py:1570
+#: ../roundup/cgi/client.py:670:1570
+msgid "Required Header Missing"
+msgstr ""
+
+#: ../roundup/cgi/client.py:672
 #, fuzzy
 msgid "Client is not allowed to use Rest Interface."
 msgstr ""
 "Gli utenti anonimi non hanno il permesso di utilizzare l'interfaccia web"
 
-#: ../roundup/cgi/client.py:895
+#: ../roundup/cgi/client.py:921
 msgid "Form Error: "
 msgstr "Errore nella Form: "
 
-#: ../roundup/cgi/client.py:985
+#: ../roundup/cgi/client.py:1011
 #, python-format
 msgid "Unrecognized charset: %r"
 msgstr "Codice di carattere sconosciuto: %r"
 
-#: ../roundup/cgi/client.py:1238 ../roundup/cgi/client.py:2196
-#: ../roundup/cgi/client.py:1238:2196
+#: ../roundup/cgi/client.py:1264 ../roundup/cgi/client.py:2250
+#: ../roundup/cgi/client.py:1264:2250
 msgid "broken form: multiple @action values submitted"
 msgstr ""
 
-#: ../roundup/cgi/client.py:1253
+#: ../roundup/cgi/client.py:1279
 msgid "Anonymous users are not allowed to use the web interface"
 msgstr ""
 "Gli utenti anonimi non hanno il permesso di utilizzare l'interfaccia web"
 
-#: ../roundup/cgi/client.py:1376
+#: ../roundup/cgi/client.py:1430
 msgid "Referer header not available."
 msgstr ""
 
-#: ../roundup/cgi/client.py:1380
+#: ../roundup/cgi/client.py:1434
 #, python-format
 msgid "csrf key used with wrong method from: %s"
 msgstr ""
 
-#: ../roundup/cgi/client.py:1409
+#: ../roundup/cgi/client.py:1463
 #, python-format
 msgid "csrf header %(header)s required but missing for user%(userid)s."
 msgstr ""
 
-#: ../roundup/cgi/client.py:1413
+#: ../roundup/cgi/client.py:1467
 #, python-format
 msgid "Missing header: %s"
 msgstr ""
 
-#: ../roundup/cgi/client.py:1421
+#: ../roundup/cgi/client.py:1475
 #, python-format
 msgid "csrf Referer header check failed for user%(userid)s. Value=%(referer)s"
 msgstr ""
 
 # ../roundup/cgi/actions.py:931:935
-#: ../roundup/cgi/client.py:1426
+#: ../roundup/cgi/client.py:1480
 #, fuzzy, python-format
 msgid "Invalid Referer: %s"
 msgstr "Login invalida"
 
-#: ../roundup/cgi/client.py:1441
+#: ../roundup/cgi/client.py:1495
 #, python-format
 msgid "csrf Origin header check failed for user%(userid)s. Value=%(origin)s"
 msgstr ""
 
 # ../roundup/cgi/actions.py:931:935
-#: ../roundup/cgi/client.py:1446
+#: ../roundup/cgi/client.py:1500
 #, fuzzy, python-format
 msgid "Invalid Origin %s"
 msgstr "Login invalida"
 
-#: ../roundup/cgi/client.py:1460
+#: ../roundup/cgi/client.py:1514
 #, python-format
 msgid ""
 "csrf X-FORWARDED-HOST header check failed for user%(userid)s. Value=%(host)s"
 msgstr ""
 
-#: ../roundup/cgi/client.py:1466
+#: ../roundup/cgi/client.py:1520
 #, python-format
 msgid "Invalid X-FORWARDED-HOST %s"
 msgstr ""
 
-#: ../roundup/cgi/client.py:1485
+#: ../roundup/cgi/client.py:1539
 #, python-format
 msgid "csrf HOST header check failed for user%(userid)s. Value=%(host)s"
 msgstr ""
 
-#: ../roundup/cgi/client.py:1490
+#: ../roundup/cgi/client.py:1544
 #, python-format
 msgid "Invalid HOST %s"
 msgstr ""
 
-#: ../roundup/cgi/client.py:1498
+#: ../roundup/cgi/client.py:1552
 msgid "Csrf: unable to verify sufficient headers"
 msgstr ""
 
-#: ../roundup/cgi/client.py:1499
+#: ../roundup/cgi/client.py:1553
 msgid "Unable to verify sufficient headers"
 msgstr ""
 
-#: ../roundup/cgi/client.py:1513
+#: ../roundup/cgi/client.py:1567
 #, python-format
 msgid "csrf X-REQUESTED-WITH xmlrpc required header check failed for user%s."
 msgstr ""
 
-#: ../roundup/cgi/client.py:1516
-msgid "Required Header Missing"
-msgstr ""
-
-#: ../roundup/cgi/client.py:1554
+#: ../roundup/cgi/client.py:1608
 #, python-format
 msgid "Required csrf field missing for user%s"
 msgstr ""
 
-#: ../roundup/cgi/client.py:1556 ../roundup/cgi/client.py:1583
-#: ../roundup/cgi/client.py:1600 ../roundup/cgi/client.py:1556:1583:1600
+#: ../roundup/cgi/client.py:1610 ../roundup/cgi/client.py:1637
+#: ../roundup/cgi/client.py:1654 ../roundup/cgi/client.py:1610:1637:1654
 msgid ""
 "We can't validate your session (csrf failure). Re-enter any unsaved data and "
 "try again."
 msgstr ""
 
-#: ../roundup/cgi/client.py:1560
+#: ../roundup/cgi/client.py:1614
 #, python-format
 msgid "csrf field not supplied by user%s"
 msgstr ""
 
-#: ../roundup/cgi/client.py:1572
+#: ../roundup/cgi/client.py:1626
 #, python-format
 msgid ""
 "Csrf mismatch user: current user %(user)s != stored user %(stored)s, current "
 "session, stored session: %(cur_sess)s,%(stor_sess)s for key %(key)s."
 msgstr ""
 
-#: ../roundup/cgi/client.py:1590
+#: ../roundup/cgi/client.py:1644
 #, python-format
 msgid ""
 "Csrf mismatch user: current session %(curr_sess)s != stored session "
 "%(stor_sess)s, current user/stored user is: %(user)s for key %(key)s."
 msgstr ""
 
-#: ../roundup/cgi/client.py:1784
+#: ../roundup/cgi/client.py:1838
 msgid "You are not allowed to view this file."
 msgstr "Non si dispone dei permessi per visualizzare questo file."
 
-#: ../roundup/cgi/client.py:2073
+#: ../roundup/cgi/client.py:2127
 #, python-format
 msgid "%(starttag)sTime elapsed: %(seconds)fs%(endtag)s\n"
 msgstr "%(starttag)sTempo trascorso: %(seconds)fs%(endtag)s\n"
 
-#: ../roundup/cgi/client.py:2077
+#: ../roundup/cgi/client.py:2131
 #, 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/client.py:2615
+#: ../roundup/cgi/client.py:2669
 #, python-format
 msgid ""
 "Cache failure: compressed file %(compressed)s is older than its source file "
@@ -2016,29 +2030,29 @@
 msgid "\"%s\" not a node designator"
 msgstr ""
 
-#: ../roundup/hyperdb.py:1492 ../roundup/hyperdb.py:1500
-#: ../roundup/hyperdb.py:1492:1500
+#: ../roundup/hyperdb.py:1493 ../roundup/hyperdb.py:1501
+#: ../roundup/hyperdb.py:1493:1501
 #, python-format
 msgid "Not a property name: %s"
 msgstr ""
 
-#: ../roundup/hyperdb.py:1977
+#: ../roundup/hyperdb.py:1978
 #, fuzzy, python-format
 msgid "property %(property)s: %(value)r is not a %(classname)s."
 msgstr ""
 "la proprietà \"%(propname)s\": \"%(value)s\" non è al momento nella lista"
 
-#: ../roundup/hyperdb.py:1983
+#: ../roundup/hyperdb.py:1984
 #, python-format
 msgid "you may only enter ID values for property %s"
 msgstr ""
 
-#: ../roundup/hyperdb.py:2018
+#: ../roundup/hyperdb.py:2019
 #, python-format
 msgid "%(property)r is not a property of %(classname)s"
 msgstr ""
 
-#: ../roundup/init.py:139
+#: ../roundup/init.py:141
 #, python-format
 msgid ""
 "WARNING: directory '%s'\n"
@@ -2327,7 +2341,7 @@
 "%(mailadmin)s e segnala che la proprietà scorretta:\n"
 "  %(errors)s\n"
 
-#: ../roundup/mailgw.py:1820
+#: ../roundup/mailgw.py:1821
 #, fuzzy, python-format
 msgid ""
 "\n"
@@ -2355,19 +2369,19 @@
 msgid "Invalid attribute %s"
 msgstr "Login invalida"
 
-#: ../roundup/rest.py:2078
+#: ../roundup/rest.py:2090
 #, python-format
 msgid "Api rate limits exceeded. Please wait: %s seconds."
 msgstr ""
 
-#: ../roundup/rest.py:2113
+#: ../roundup/rest.py:2125
 #, python-format
 msgid ""
 "Unable to parse Accept Header. %(error)s. Acceptable types: "
 "%(acceptable_types)s"
 msgstr ""
 
-#: ../roundup/rest.py:2262
+#: ../roundup/rest.py:2305
 #, python-format
 msgid ""
 "Unrecognized api version: %s. See /rest without specifying api version for "
@@ -2500,27 +2514,27 @@
 msgid "No tracker templates found in directory %s"
 msgstr ""
 
-#: ../roundup/scripts/roundup_mailgw.py:185
+#: ../roundup/scripts/roundup_mailgw.py:182
 msgid ""
 "\n"
 "Error: The instance home must be specified"
 msgstr ""
 
-#: ../roundup/scripts/roundup_mailgw.py:203
+#: ../roundup/scripts/roundup_mailgw.py:200
 #, fuzzy
 msgid ""
 "\n"
 "Error: not enough source specification information"
 msgstr "Errore: insufficienti informazioni sul sorgente"
 
-#: ../roundup/scripts/roundup_mailgw.py:234
+#: ../roundup/scripts/roundup_mailgw.py:231
 #, fuzzy, python-format
 msgid ""
 "\n"
 "Error: %s specification not valid"
 msgstr "Errore: il pop server specificato non è valido."
 
-#: ../roundup/scripts/roundup_mailgw.py:258
+#: ../roundup/scripts/roundup_mailgw.py:254
 #, fuzzy
 msgid ""
 "\n"
@@ -2534,7 +2548,7 @@
 msgid "WARNING: generating temporary SSL certificate"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:329
+#: ../roundup/scripts/roundup_server.py:331
 msgid ""
 "<html><head><title>Roundup trackers index</title></head>\n"
 "<body><h1>Roundup trackers index</h1><ol>\n"
@@ -2542,60 +2556,60 @@
 "<html><head><title>indice dei ticket Roundup</title></head>\n"
 "<body><h1>indice dei ticket Roundup</h1><ol>\n"
 
-#: ../roundup/scripts/roundup_server.py:549
+#: ../roundup/scripts/roundup_server.py:551
 #, fuzzy, python-format
 msgid "Error: %(type)s: %(value)s"
 msgstr "%(key)s:·%(value)s"
 
-#: ../roundup/scripts/roundup_server.py:561
+#: ../roundup/scripts/roundup_server.py:563
 msgid "WARNING: ignoring \"-g\" argument, not root"
 msgstr "ATTENZIONE: ignoro il parametro \"-g\", non sei root"
 
-#: ../roundup/scripts/roundup_server.py:567
+#: ../roundup/scripts/roundup_server.py:569
 msgid "Can't change groups - no grp module"
 msgstr "Non è possibile cambiare gruppo - nessun modulo grp"
 
-#: ../roundup/scripts/roundup_server.py:576
+#: ../roundup/scripts/roundup_server.py:578
 #, python-format
 msgid "Group %(group)s doesn't exist"
 msgstr "Il gruppo %(group)s non esiste"
 
-#: ../roundup/scripts/roundup_server.py:588
+#: ../roundup/scripts/roundup_server.py:590
 msgid "Can't run as root!"
 msgstr "Non può essere eseguito come root!"
 
-#: ../roundup/scripts/roundup_server.py:591
+#: ../roundup/scripts/roundup_server.py:593
 msgid "WARNING: ignoring \"-u\" argument, not root"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:597
+#: ../roundup/scripts/roundup_server.py:599
 msgid "Can't change users - no pwd module"
 msgstr "Non è possibile cambiare utente - nessun modulo pwd"
 
-#: ../roundup/scripts/roundup_server.py:606
+#: ../roundup/scripts/roundup_server.py:608
 #, python-format
 msgid "User %(user)s doesn't exist"
 msgstr "L'utente %(user)s non esiste"
 
-#: ../roundup/scripts/roundup_server.py:803
+#: ../roundup/scripts/roundup_server.py:805
 #, python-format
 msgid "Multiprocess mode \"%s\" is not available, switching to single-process"
 msgstr ""
 "La modalità multiprocesso \"%s\" non è disponibile, viene utilizzata quella "
 "a singolo processo"
 
-#: ../roundup/scripts/roundup_server.py:830
+#: ../roundup/scripts/roundup_server.py:832
 #, python-format
 msgid "Unable to bind to port %s, port already in use."
 msgstr "Impossibile bindare alla porta %s, la porta risulta già in uso."
 
-#: ../roundup/scripts/roundup_server.py:834
+#: ../roundup/scripts/roundup_server.py:836
 #, fuzzy, python-format
 msgid ""
 "Unable to bind to port %(port)s, access not allowed, errno: %(errno)s %(msg)s"
 msgstr "Impossibile bindare alla porta %s, la porta risulta già in uso."
 
-#: ../roundup/scripts/roundup_server.py:913
+#: ../roundup/scripts/roundup_server.py:915
 msgid ""
 " -c <Command>  Windows Service options.\n"
 "               If you want to run the server as a Windows Service, you\n"
@@ -2605,7 +2619,7 @@
 "               specifics."
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:920
+#: ../roundup/scripts/roundup_server.py:922
 msgid ""
 " -u <UID>      runs the Roundup web server as this UID\n"
 " -g <GID>      runs the Roundup web server as this GID\n"
@@ -2614,7 +2628,7 @@
 "               specified if -d is used."
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:927
+#: ../roundup/scripts/roundup_server.py:929
 #, python-format
 msgid ""
 "\n"
@@ -2681,22 +2695,22 @@
 "   any url-unsafe characters like spaces, as these confuse IE.\n"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:1103
+#: ../roundup/scripts/roundup_server.py:1105
 msgid "Instances must be name=home"
 msgstr "L'istanza deve essere nel formato nome=home"
 
-#: ../roundup/scripts/roundup_server.py:1117
+#: ../roundup/scripts/roundup_server.py:1119
 #, python-format
 msgid "Configuration saved to %s"
 msgstr "Configurazione salvata in %s"
 
-#: ../roundup/scripts/roundup_server.py:1135
+#: ../roundup/scripts/roundup_server.py:1137
 msgid "Sorry, you can't run the server as a daemon on this Operating System"
 msgstr ""
 "Spiacente, non è possibile utilizzare il server come demone su questo "
 "sistema operativo."
 
-#: ../roundup/scripts/roundup_server.py:1155
+#: ../roundup/scripts/roundup_server.py:1157
 #, python-format
 msgid "Roundup server started on %(HOST)s:%(PORT)s"
 msgstr "Il server Roundup è stato attivato su %(HOST)s:%(PORT)s"

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