diff locale/fr.po @ 5839:cab6338d7868 maint-1.6

updating .po files from latest roundup.pot
author John Rouillard <rouilj@ieee.org>
date Wed, 10 Jul 2019 07:55:51 -0400
parents 55d1a73d6118
children
line wrap: on
line diff
--- a/locale/fr.po	Tue Jun 18 20:30:26 2019 -0400
+++ b/locale/fr.po	Wed Jul 10 07:55:51 2019 -0400
@@ -3,45 +3,58 @@
 # Patrick Decat <pdecat@gmail.com>, 2008.
 # Stéphane Raimbault <stephane.raimbault@gmail.com>, 2008.
 # This file is distributed under the same license as the Roundup package.
-# 
+#
 # roundup.pot revision 1.18
-# 
+#
 msgid ""
 msgstr ""
 "Project-Id-Version: Roundup 1.4.6\n"
 "Report-Msgid-Bugs-To: roundup-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2006-04-27 09:02+0300\n"
+"POT-Creation-Date: 2019-06-18 20:29-0400\n"
 "PO-Revision-Date: 2013-10-31 12:19+0100\n"
 "Last-Translator: Stéphane Raimbault <stephane.raimbault@gmail.com>\n"
 "Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n>1;\n"
 
+#: ../roundup/actions.py:53 ../roundup/cgi/actions.py:219
+msgid "You may not retire the admin or anonymous user"
+msgstr "Vous ne pouvez pas abandonner les utilisateurs admin ou anonyme"
+
+#: ../roundup/actions.py:66
+#, fuzzy, python-format
+msgid "You do not have permission to retire the %(classname)s class."
+msgstr ""
+"Vous n'avez pas les permissions pour %(action)s la classe %(classname)s."
+
 # ../roundup/admin.py:85 :979 :1028 :1050
 # ../roundup/admin.py:1052 ../roundup/admin.py:85:981 :1030:1052
-#: ../roundup/admin.py:85 ../roundup/admin.py:981 ../roundup/admin.py:1030
-#: ../roundup/admin.py:1052
+#: ../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 "aucune classe nommée « %(classname)s »"
 
 # ../roundup/admin.py:95 :99
 # ../roundup/admin.py:95 ../roundup/admin.py:99 ../roundup/admin.py:95:99
-#: ../roundup/admin.py:95 ../roundup/admin.py:99
+#: ../roundup/admin.py:101 ../roundup/admin.py:105 ../roundup/admin.py:101:105
 #, python-format
 msgid "argument \"%(arg)s\" not propname=value"
 msgstr "l'argument « %(arg)s » n'est pas au format nom-de-propriété=valeur"
 
-#: ../roundup/admin.py:112
+#: ../roundup/admin.py:118
 #, python-format
 msgid ""
 "Problem: %(message)s\n"
 "\n"
-msgstr "Problème : %(message)s\n\n"
-
-#: ../roundup/admin.py:113
+msgstr ""
+"Problème : %(message)s\n"
+"\n"
+
+#: ../roundup/admin.py:119
 #, python-format
 msgid ""
 "%(message)sUsage: roundup-admin [options] [<command> <arguments>]\n"
@@ -85,7 +98,8 @@
 "                       des espaces.\n"
 "                       Identique à « -S \" \" ».\n"
 " -V                 -- est verbeux à l'importation\n"
-" -v                 -- affiche les versions de Roundup et Python (et quitte).\n"
+" -v                 -- affiche les versions de Roundup et Python (et "
+"quitte).\n"
 "\n"
 " Seulement une des options parmi -s, -c ou -S peut être utilisée à la fois.\n"
 "\n"
@@ -95,11 +109,12 @@
 " roundup-admin help <commande>            -- l'aide sur une commande\n"
 " roundup-admin help all                   -- toute l'aide disponible\n"
 
-#: ../roundup/admin.py:140
-msgid "Commands:"
+#: ../roundup/admin.py:146
+#, fuzzy
+msgid "Commands: "
 msgstr "Commandes :"
 
-#: ../roundup/admin.py:147
+#: ../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."
@@ -108,7 +123,7 @@
 "où l'abréviation ne correspond qu'à une seule commande,\n"
 "par ex. : l == li == lis == list."
 
-#: ../roundup/admin.py:177
+#: ../roundup/admin.py:180
 msgid ""
 "\n"
 "All commands (except help) require a tracker specifier. This is just\n"
@@ -246,12 +261,12 @@
 "\n"
 "Aide sur les commandes :\n"
 
-#: ../roundup/admin.py:240
+#: ../roundup/admin.py:243
 #, python-format
 msgid "%s:"
 msgstr "%s :"
 
-#: ../roundup/admin.py:245
+#: ../roundup/admin.py:248
 msgid ""
 "Usage: help topic\n"
 "        Give help about topic.\n"
@@ -271,35 +286,36 @@
 "        all        -- toute l'aide disponible\n"
 "        "
 
-#: ../roundup/admin.py:268
+#: ../roundup/admin.py:271
 #, python-format
 msgid "Sorry, no help for \"%(topic)s\""
 msgstr "Désolé, aucune aide n'est disponible au sujet de « %(topic)s »"
 
 # ../roundup/admin.py:338 :394
 # ../roundup/admin.py:340 ../roundup/admin.py:396 ../roundup/admin.py:340:396
-#: ../roundup/admin.py:340 ../roundup/admin.py:396
+#: ../roundup/admin.py:348 ../roundup/admin.py:404 ../roundup/admin.py:348:404
 msgid "Templates:"
 msgstr "Modèles :"
 
 # ../roundup/admin.py:341 :405
 # ../roundup/admin.py:343 ../roundup/admin.py:407 ../roundup/admin.py:343:407
-#: ../roundup/admin.py:343 ../roundup/admin.py:407
+#: ../roundup/admin.py:351 ../roundup/admin.py:414 ../roundup/admin.py:351:414
 msgid "Back ends:"
 msgstr "Moteurs de stockage :"
 
-#: ../roundup/admin.py:346
+#: ../roundup/admin.py:354
+#, fuzzy
 msgid ""
-"Usage: install [template [backend [admin password [key=val[,key=val]]]]]\n"
+"Usage: install [template [backend [key=val[,key=val]]]]\n"
 "        Install a new Roundup tracker.\n"
 "\n"
 "        The command will prompt for the tracker home directory\n"
 "        (if not supplied through TRACKER_HOME or the -i option).\n"
-"        The template, backend and admin password may be specified\n"
-"        on the command-line as arguments, in that order.\n"
+"        The template and backend may be specified on the command-line\n"
+"        as arguments, in that order.\n"
 "\n"
-"        The last command line argument allows to pass initial values\n"
-"        for config options.  For example, passing\n"
+"        Command line arguments following the backend allows you to\n"
+"        pass initial values for config options.  For example, passing\n"
 "        \"web_http_auth=no,rdbms_user=dinsdale\" will override defaults\n"
 "        for options http_auth in section [web] and user in section [rdbms].\n"
 "        Please be careful to not use spaces in this argument! (Enclose\n"
@@ -313,7 +329,8 @@
 "        See also initopts help.\n"
 "        "
 msgstr ""
-"Utilisation : install [template [backend [admin password [key=val[,key=val]]]]]\n"
+"Utilisation : install [template [backend [admin password [key=val[,"
+"key=val]]]]]\n"
 "        Installe un nouveau pisteur Roundup.\n"
 "\n"
 "        Cette commande demandera le répertoire de base du pisteur\n"
@@ -345,45 +362,49 @@
 # :1018 :1040 :1067 :1134 :1204
 # ../roundup/admin.py:1207 ../roundup/admin.py:369:466 :1020:1042 :1069:1136
 # :1207 :527:606 :656:714 :735:763 :834:901:972
-#: ../roundup/admin.py:369 ../roundup/admin.py:466 ../roundup/admin.py:527
-#: ../roundup/admin.py:606 ../roundup/admin.py:656 ../roundup/admin.py:714
-#: ../roundup/admin.py:735 ../roundup/admin.py:763 ../roundup/admin.py:834
-#: ../roundup/admin.py:901 ../roundup/admin.py:972 ../roundup/admin.py:1020
-#: ../roundup/admin.py:1042 ../roundup/admin.py:1069 ../roundup/admin.py:1136
-#: ../roundup/admin.py:1207
+#: ../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 "Pas suffisamment d'arguments fournis"
 
-#: ../roundup/admin.py:375
+#: ../roundup/admin.py:383
 #, python-format
 msgid "Instance home parent directory \"%(parent)s\" does not exist"
 msgstr "Le répertoire parent « %(parent)s » de l'instance de base n'existe pas"
 
-#: ../roundup/admin.py:383
+#: ../roundup/admin.py:392
 #, python-format
 msgid ""
 "WARNING: There appears to be a tracker in \"%(tracker_home)s\"!\n"
 "If you re-install it, you will lose all the data!\n"
 "Erase it? Y/N: "
 msgstr ""
-"ATTENTION : il semble qu'il y ait déjà un pisteur dans « %(tracker_home)s » !\n"
+"ATTENTION : il semble qu'il y ait déjà un pisteur dans "
+"« %(tracker_home)s » !\n"
 "Si vous le réinstallez, vous perdrez toutes les données !\n"
 "Supprimer le pisteur (Y/N) ? "
 
-#: ../roundup/admin.py:398
-msgid "Select template [classic]: "
+#: ../roundup/admin.py:405
+#, fuzzy
+msgid "Select template"
 msgstr "Sélection du modèle [classic] : "
 
-#: ../roundup/admin.py:409
-msgid "Select backend [anydbm]: "
+#: ../roundup/admin.py:415
+#, fuzzy
+msgid "Select backend"
 msgstr "Sélection du moteur de stockage [anydbm]: "
 
-#: ../roundup/admin.py:419
+#: ../roundup/admin.py:426
 #, python-format
 msgid "Error in configuration settings: \"%s\""
 msgstr "Erreur dans les paramètres de la configuration : « %s »"
 
-#: ../roundup/admin.py:428
+#: ../roundup/admin.py:457
 #, python-format
 msgid ""
 "\n"
@@ -396,11 +417,11 @@
 " Vous devez maintenant modifier le fichier de configuration du pisteur :\n"
 "    %(config_file)s"
 
-#: ../roundup/admin.py:438
+#: ../roundup/admin.py:467
 msgid " ... at a minimum, you must set following options:"
 msgstr " ou au minimum, vous devez définir les options suivantes :"
 
-#: ../roundup/admin.py:443
+#: ../roundup/admin.py:472
 #, python-format
 msgid ""
 "\n"
@@ -432,7 +453,7 @@
 " que vous avez réalisé les étapes précédentes.\n"
 "---------------------------------------------------------------------------\n"
 
-#: ../roundup/admin.py:461
+#: ../roundup/admin.py:504
 msgid ""
 "Usage: genconfig <filename>\n"
 "        Generate a new tracker config file (ini style) with default values\n"
@@ -444,8 +465,22 @@
 "              (au format ini) avec des valeurs par défaut dans\n"
 "              <nomfichier>"
 
+#: ../roundup/admin.py:519
+#, fuzzy
+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 ""
+"Utilisation : genconfig <nomfichier>\n"
+"              Génère un nouveau fichier de configuration du pisteur\n"
+"              (au format ini) avec des valeurs par défaut dans\n"
+"              <nomfichier>"
+
 #. password
-#: ../roundup/admin.py:471
+#: ../roundup/admin.py:527
 msgid ""
 "Usage: initialise [adminpw]\n"
 "        Initialise a new Roundup tracker.\n"
@@ -464,23 +499,23 @@
 "        Exécute la fonction d'initialisation dbinit.init() du pisteur.\n"
 "        "
 
-#: ../roundup/admin.py:485
+#: ../roundup/admin.py:541
 msgid "Admin Password: "
 msgstr "Mot de passe administrateur : "
 
-#: ../roundup/admin.py:486
+#: ../roundup/admin.py:542
 msgid "       Confirm: "
 msgstr "       Confirmez : "
 
-#: ../roundup/admin.py:490
+#: ../roundup/admin.py:546
 msgid "Instance home does not exist"
 msgstr "Le répertoire racine de l'instance n'existe pas"
 
-#: ../roundup/admin.py:494
+#: ../roundup/admin.py:550
 msgid "Instance has not been installed"
 msgstr "L'instance n'a pas été installée"
 
-#: ../roundup/admin.py:499
+#: ../roundup/admin.py:556
 msgid ""
 "WARNING: The database is already initialised!\n"
 "If you re-initialise it, you will lose all the data!\n"
@@ -490,11 +525,15 @@
 "Si vous la réinitialisez, vous perdrez toutes les données !\n"
 "Supprimez la base de données (Y/N) ? "
 
-#: ../roundup/admin.py:520
+#: ../roundup/admin.py:573
+#, fuzzy
 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"
 "        "
@@ -508,25 +547,29 @@
 
 # ../roundup/admin.py:558 :573
 # ../roundup/admin.py:560 ../roundup/admin.py:575 ../roundup/admin.py:560:575
-#: ../roundup/admin.py:560 ../roundup/admin.py:575
+#: ../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 "la propriété %s n'est pas de type Multilien ou Lien et donc l'option -d ne s'applique pas."
+msgstr ""
+"la propriété %s n'est pas de type Multilien ou Lien et donc l'option -d ne "
+"s'applique pas."
 
 # ../roundup/admin.py:581 :981 :1030 :1052
 # ../roundup/admin.py:1054 ../roundup/admin.py:583:983 :1032:1054
-#: ../roundup/admin.py:583 ../roundup/admin.py:983 ../roundup/admin.py:1032
-#: ../roundup/admin.py:1054
+#: ../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 "le noeud « %(nodeid)s » de classe « %(classname)s » n'existe pas"
 
-#: ../roundup/admin.py:585
+#: ../roundup/admin.py:646
 #, python-format
 msgid "no such %(classname)s property \"%(propname)s\""
-msgstr "la propriété « %(propname)s » n'existe pas pour la classe « %(classname)s »"
-
-#: ../roundup/admin.py:594
+msgstr ""
+"la propriété « %(propname)s » n'existe pas pour la classe « %(classname)s »"
+
+#: ../roundup/admin.py:655
+#, fuzzy
 msgid ""
 "Usage: set items property=value property=value ...\n"
 "        Set the given properties of one or more items(s).\n"
@@ -534,6 +577,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"
@@ -555,7 +601,7 @@
 "        ce lien sont indiqués comme des nombres séparés par des\n"
 "        virgules (par ex. « 1,2,3 »)."
 
-#: ../roundup/admin.py:648
+#: ../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"
@@ -576,13 +622,13 @@
 
 # ../roundup/admin.py:699 :852 :864 :918
 # ../roundup/admin.py:920 ../roundup/admin.py:701:854 :866:920
-#: ../roundup/admin.py:701 ../roundup/admin.py:854 ../roundup/admin.py:866
-#: ../roundup/admin.py:920
+#: ../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 "%(classname)s n'a pas de propriété « %(propname)s »"
 
-#: ../roundup/admin.py:708
+#: ../roundup/admin.py:781
 msgid ""
 "Usage: specification classname\n"
 "        Show the properties for a classname.\n"
@@ -596,21 +642,25 @@
 "        Cette commande énumère les propriétés de la classe nommée.\n"
 "        "
 
-#: ../roundup/admin.py:723
-#, python-format
-msgid "%(key)s: %(value)s (key property)"
+#: ../roundup/admin.py:797
+#, fuzzy, python-format
+msgid "%(key)s: %(value)s (key property)\n"
 msgstr "%(key)s : %(value)s (propriété clé)"
 
-#: ../roundup/admin.py:725
-#, python-format
-msgid "%(key)s: %(value)s"
+#: ../roundup/admin.py:799
+#, fuzzy, python-format
+msgid "%(key)s: %(value)s\n"
 msgstr "%(key)s : %(value)s"
 
-#: ../roundup/admin.py:728
+#: ../roundup/admin.py:802
+#, fuzzy
 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"
 "        "
@@ -622,12 +672,12 @@
 "        des noeuds indiqués.\n"
 "        "
 
-#: ../roundup/admin.py:752
+#: ../roundup/admin.py:828
 #, python-format
-msgid "%(key)s: %(value)r"
-msgstr "%(key)s: %(value)r"
-
-#: ../roundup/admin.py:755
+msgid "%(key)s: %(value)s"
+msgstr "%(key)s : %(value)s"
+
+#: ../roundup/admin.py:831
 msgid ""
 "Usage: create classname property=value ...\n"
 "        Create a new entry of a given class.\n"
@@ -647,31 +697,31 @@
 "        « create ».\n"
 "        "
 
-#: ../roundup/admin.py:782
+#: ../roundup/admin.py:859
 #, python-format
 msgid "%(propname)s (Password): "
 msgstr "%(propname)s (mot de passe) : "
 
-#: ../roundup/admin.py:784
+#: ../roundup/admin.py:861
 #, python-format
 msgid "   %(propname)s (Again): "
 msgstr "   %(propname)s (à nouveau) : "
 
-#: ../roundup/admin.py:786
+#: ../roundup/admin.py:863
 msgid "Sorry, try again..."
 msgstr "Désolé, essayez à nouveau..."
 
-#: ../roundup/admin.py:790
+#: ../roundup/admin.py:867
 #, python-format
 msgid "%(propname)s (%(proptype)s): "
 msgstr "%(propname)s (%(proptype)s) : "
 
-#: ../roundup/admin.py:808
+#: ../roundup/admin.py:885
 #, python-format
 msgid "you must provide the \"%(propname)s\" property."
 msgstr "vous devez renseigner la propriété « %(propname)s »."
 
-#: ../roundup/admin.py:819
+#: ../roundup/admin.py:897
 msgid ""
 "Usage: list classname [property]\n"
 "        List the instances of a class.\n"
@@ -701,16 +751,16 @@
 "        propriété pour chaque instance de cette classe.\n"
 "        "
 
-#: ../roundup/admin.py:832
+#: ../roundup/admin.py:910
 msgid "Too many arguments supplied"
 msgstr "Trop d'arguments fournis"
 
-#: ../roundup/admin.py:868
+#: ../roundup/admin.py:946
 #, python-format
 msgid "%(nodeid)4s: %(value)s"
 msgstr "%(nodeid)4s : %(value)s"
 
-#: ../roundup/admin.py:872
+#: ../roundup/admin.py:950
 msgid ""
 "Usage: table classname [property[,property]*]\n"
 "        List the instances of a class in tabular form.\n"
@@ -772,28 +822,27 @@
 "        donnera une colonne « Name » large de 4 caractères.\n"
 "        "
 
-#: ../roundup/admin.py:916
+#: ../roundup/admin.py:994
 #, python-format
 msgid "\"%(spec)s\" not name:width"
 msgstr "« %(spec)s » ne correspond pas au format « nom:largeur »"
 
-#: ../roundup/admin.py:966
+#: ../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 ""
-"Utilisation : history indicateur\n"
-"        Affiche le journal des entrées d'un indicateur.\n"
-"\n"
-"        Liste les entrées de journal pour le noeud identifié par\n"
-"        l'indicateur.\n"
-"        "
-
-#: ../roundup/admin.py:987
+
+#: ../roundup/admin.py:1081
 msgid ""
 "Usage: commit\n"
 "        Commit changes made to the database during an interactive session.\n"
@@ -818,7 +867,7 @@
 "        automatiquement validées si elles réussissent.\n"
 "        "
 
-#: ../roundup/admin.py:1001
+#: ../roundup/admin.py:1096
 msgid ""
 "Usage: rollback\n"
 "        Undo all changes that are pending commit to the database.\n"
@@ -841,11 +890,15 @@
 "        base de données.\n"
 "        "
 
-#: ../roundup/admin.py:1013
+#: ../roundup/admin.py:1109
+#, fuzzy
 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"
 "        "
@@ -858,11 +911,15 @@
 "        valeur de clé peut être ré-utilisée.\n"
 "        "
 
-#: ../roundup/admin.py:1036
+#: ../roundup/admin.py:1137
+#, fuzzy
 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 ""
@@ -875,12 +932,16 @@
 "        "
 
 #. grab the directory to export to
-#: ../roundup/admin.py:1058
+#: ../roundup/admin.py:1164
+#, fuzzy
 msgid ""
-"Usage: export [class[,class]] export_dir\n"
+"Usage: export [[-]class[,class]] export_dir\n"
 "        Export the database to colon-separated-value files.\n"
+"        To exclude the files (e.g. for the msg or file class),\n"
+"        use the exporttables command.\n"
 "\n"
-"        Optionally limit the export to just the names classes.\n"
+"        Optionally limit the export to just the named classes\n"
+"        or exclude the named classes, if the 1st argument starts with '-'.\n"
 "\n"
 "        This action exports the current data from the database into\n"
 "        colon-separated-value files that are placed in the nominated\n"
@@ -898,7 +959,35 @@
 "        format aux valeurs séparées par des doubles-points.\n"
 "        "
 
-#: ../roundup/admin.py:1116
+#: ../roundup/admin.py:1256
+#, fuzzy
+msgid ""
+"Usage: exporttables [[-]class[,class]] export_dir\n"
+"        Export the database to colon-separated-value files, excluding the\n"
+"        files below $TRACKER_HOME/db/files/ (which can be archived "
+"separately).\n"
+"        To include the files, use the export command.\n"
+"\n"
+"        Optionally limit the export to just the named classes\n"
+"        or exclude the named classes, if the 1st argument starts with '-'.\n"
+"\n"
+"        This action exports the current data from the database into\n"
+"        colon-separated-value files that are placed in the nominated\n"
+"        destination directory.\n"
+"        "
+msgstr ""
+"Utilisation : export [classe[,classe]] répertoire-d'exportation\n"
+"        Exporte la base de données vers des fichiers dans un format\n"
+"        aux valeurs séparées par des double-points.\n"
+"\n"
+"        Limite éventuellement l'exportation aux classes indiquées.\n"
+"\n"
+"        Cette action exporte les données actuelles de la base de données,\n"
+"        vers des fichiers placés dans le répertoire désigné, et dans un \n"
+"        format aux valeurs séparées par des doubles-points.\n"
+"        "
+
+#: ../roundup/admin.py:1271
 msgid ""
 "Usage: import import_dir\n"
 "        Import a database from the directory containing CSV files,\n"
@@ -943,7 +1032,7 @@
 "        plus péniblement, « abandonnez » toutes les anciennes données).\n"
 "        "
 
-#: ../roundup/admin.py:1189
+#: ../roundup/admin.py:1354
 msgid ""
 "Usage: pack period | date\n"
 "\n"
@@ -985,11 +1074,11 @@
 "\n"
 "        "
 
-#: ../roundup/admin.py:1217
+#: ../roundup/admin.py:1382
 msgid "Invalid format"
 msgstr "Format non valide"
 
-#: ../roundup/admin.py:1227
+#: ../roundup/admin.py:1393
 msgid ""
 "Usage: reindex [classname|designator]*\n"
 "        Re-generate a tracker's search indexes.\n"
@@ -1005,12 +1094,12 @@
 "        Cette opération est normalement effectuer automatiquement.\n"
 "        "
 
-#: ../roundup/admin.py:1241
+#: ../roundup/admin.py:1407
 #, python-format
 msgid "no such item \"%(designator)s\""
 msgstr "pas d'élément « %(designator)s »"
 
-#: ../roundup/admin.py:1251
+#: ../roundup/admin.py:1417
 msgid ""
 "Usage: security [Role name]\n"
 "        Display the Permissions available to one or all Roles.\n"
@@ -1020,78 +1109,124 @@
 "        Affiche les permissions disponible pour un ou plusieurs rôles.\n"
 "        "
 
-#: ../roundup/admin.py:1259
-#, python-format
-msgid "No such Role \"%(role)s\""
+#: ../roundup/admin.py:1425
+#, fuzzy, python-format
+msgid "No such Role \"%(role)s\"\n"
 msgstr "Ce rôle « %(role)s » n'existe pas"
 
-#: ../roundup/admin.py:1265
-#, python-format
-msgid "New Web users get the Roles \"%(role)s\""
+#: ../roundup/admin.py:1431
+#, fuzzy, python-format
+msgid "New Web users get the Roles \"%(role)s\"\n"
 msgstr "Les nouveaux utilisateurs Web ont les rôles « %(role)s »"
 
-#: ../roundup/admin.py:1267
-#, python-format
-msgid "New Web users get the Role \"%(role)s\""
+#: ../roundup/admin.py:1433
+#, fuzzy, python-format
+msgid "New Web users get the Role \"%(role)s\"\n"
 msgstr "Les nouveaux utilisateurs Web ont le rôle « %(role)s »"
 
-#: ../roundup/admin.py:1270
-#, python-format
-msgid "New Email users get the Roles \"%(role)s\""
+#: ../roundup/admin.py:1436
+#, fuzzy, python-format
+msgid "New Email users get the Roles \"%(role)s\"\n"
 msgstr "Les nouveaux utilisateurs Courriel ont les rôles « %(role)s »"
 
-#: ../roundup/admin.py:1272
-#, python-format
-msgid "New Email users get the Role \"%(role)s\""
+#: ../roundup/admin.py:1438
+#, fuzzy, python-format
+msgid "New Email users get the Role \"%(role)s\"\n"
 msgstr "Les nouveaux utilisateurs Courriel ont le rôle « %(role)s »"
 
-#: ../roundup/admin.py:1275
-#, python-format
-msgid "Role \"%(name)s\":"
+#: ../roundup/admin.py:1441
+#, fuzzy, python-format
+msgid "Role \"%(name)s\":\n"
 msgstr "Rôle « %(name)s » :"
 
-#: ../roundup/admin.py:1280
-#, python-format
-msgid " %(description)s (%(name)s for \"%(klass)s\": %(properties)s only)"
-msgstr " %(description)s (%(name)s pour « %(klass)s » : %(properties)s uniquement)"
-
-#: ../roundup/admin.py:1283
-#, python-format
-msgid " %(description)s (%(name)s for \"%(klass)s\" only)"
+#: ../roundup/admin.py:1446
+#, fuzzy
+msgid " %(description)s (%(name)s for \"%(klass)s\""
+msgstr " %(description)s (%(name)s pour « %(klass)s » uniquement)"
+
+#: ../roundup/admin.py:1446
+#, fuzzy, python-format
+msgid " %(description)s (%(name)s for \"%(klass)s\": %(properties)s only)\n"
+msgstr ""
+" %(description)s (%(name)s pour « %(klass)s » : %(properties)s uniquement)"
+
+#: ../roundup/admin.py:1449
+#, fuzzy
+msgid " %(description)s (%(name)s for \"%(klass)s\" "
+msgstr " %(description)s (%(name)s pour « %(klass)s » uniquement)"
+
+#: ../roundup/admin.py:1449
+#, fuzzy, python-format
+msgid " %(description)s (%(name)s for \"%(klass)s\" only)\n"
 msgstr " %(description)s (%(name)s pour « %(klass)s » uniquement)"
 
-#: ../roundup/admin.py:1286
-#, python-format
-msgid " %(description)s (%(name)s)"
+#: ../roundup/admin.py:1452
+#, fuzzy, python-format
+msgid " %(description)s (%(name)s)\n"
 msgstr " %(description)s (%(name)s)"
 
-#: ../roundup/admin.py:1315
+#: ../roundup/admin.py:1457
+msgid ""
+"Usage: migrate\n"
+"        Update a tracker's database to be compatible with the Roundup\n"
+"        codebase.\n"
+"\n"
+"        You should run the \"migrate\" command for your tracker once you've\n"
+"        installed the latest codebase. \n"
+"\n"
+"        Do this before you use the web, command-line or mail interface and\n"
+"        before any users access the tracker.\n"
+"\n"
+"        This command will respond with either \"Tracker updated\" (if "
+"you've\n"
+"        not previously run it on an RDBMS backend) or \"No migration action\n"
+"        required\" (if you have run it, or have used another interface to "
+"the\n"
+"        tracker, or possibly because you are using anydbm).\n"
+"\n"
+"        It's safe to run this even if it's not required, so just get into\n"
+"        the habit.\n"
+"        "
+msgstr ""
+
+#: ../roundup/admin.py:1476
+#, fuzzy
+msgid "Tracker updated"
+msgstr "Accueil de Tracker"
+
+#: ../roundup/admin.py:1479
+msgid "No migration action required"
+msgstr ""
+
+#: ../roundup/admin.py:1505
 #, python-format
 msgid "Unknown command \"%(command)s\" (\"help commands\" for a list)"
 msgstr "Commande inconnue « %(command)s » (« help commands » pour la liste)"
 
-#: ../roundup/admin.py:1321
+#: ../roundup/admin.py:1511
 #, python-format
 msgid "Multiple commands match \"%(command)s\": %(list)s"
 msgstr "Plusieurs commandes correspondent à « %(command)s » : %(list)s"
 
-#: ../roundup/admin.py:1328
+#: ../roundup/admin.py:1519
 msgid "Enter tracker home: "
 msgstr "Saisissez le répertoire racine du pisteur : "
 
 # ../roundup/admin.py:1332 :1338 :1358
 # ../roundup/admin.py:1335:1341:1361
-#: ../roundup/admin.py:1335 ../roundup/admin.py:1341 ../roundup/admin.py:1361
+#: ../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 "Erreur : %(message)s"
 
-#: ../roundup/admin.py:1349
+#: ../roundup/admin.py:1542 ../roundup/admin.py:1546
+#: ../roundup/admin.py:1542:1546
 #, python-format
 msgid "Error: Couldn't open tracker: %(message)s"
 msgstr "Erreur : impossible d'ouvrir le pisteur, %(message)s"
 
-#: ../roundup/admin.py:1374
+#: ../roundup/admin.py:1573
 #, python-format
 msgid ""
 "Roundup %s ready for input.\n"
@@ -1100,206 +1235,335 @@
 "Roundup %s est prêt pour la saisie.\n"
 "Saisissez « help » pour l'aide."
 
-#: ../roundup/admin.py:1379
+#: ../roundup/admin.py:1578
 msgid "Note: command history and editing not available"
 msgstr "Note : l'historique et l'édition des commandes n'est pas disponible"
 
-#: ../roundup/admin.py:1383
+#: ../roundup/admin.py:1582
 msgid "roundup> "
 msgstr "roundup> "
 
-#: ../roundup/admin.py:1385
+#: ../roundup/admin.py:1584
 msgid "exit..."
 msgstr "sortie..."
 
-#: ../roundup/admin.py:1395
+#: ../roundup/admin.py:1597
 msgid "There are unsaved changes. Commit them (y/N)? "
 msgstr "Des changements n'ont pas été enregistrés, les valider (y/N) ?"
 
-#: ../roundup/backends/back_anydbm.py:2001
+#: ../roundup/backends/back_anydbm.py:312
+#: ../roundup/backends/sessions_dbm.py:54
+msgid "Couldn't identify database type"
+msgstr ""
+
+#: ../roundup/backends/back_anydbm.py:341
 #, python-format
-msgid "WARNING: invalid date tuple %r"
-msgstr "ATTENTION : tuple de date non valide %r"
-
-#: ../roundup/backends/rdbms_common.py:1434
+msgid "Couldn't open database - the required module '%s' is not available"
+msgstr ""
+
+#: ../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/rdbms_common.py:542
+#, python-format
+msgid "ALTER operation disallowed: %r -> %r."
+msgstr ""
+
+#: ../roundup/backends/rdbms_common.py:775
+#, python-format
+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 "créer"
 
-#: ../roundup/backends/rdbms_common.py:1600
+#: ../roundup/backends/rdbms_common.py:1866
 msgid "unlink"
 msgstr "détacher"
 
-#: ../roundup/backends/rdbms_common.py:1604
+#: ../roundup/backends/rdbms_common.py:1870
 msgid "link"
 msgstr "attacher"
 
-#: ../roundup/backends/rdbms_common.py:1724
+#: ../roundup/backends/rdbms_common.py:2012
 msgid "set"
 msgstr "assigner"
 
-#: ../roundup/backends/rdbms_common.py:1748
+#: ../roundup/backends/rdbms_common.py:2041
 msgid "retired"
 msgstr "retiré"
 
-#: ../roundup/backends/rdbms_common.py:1778
+#: ../roundup/backends/rdbms_common.py:2071
 msgid "restored"
 msgstr "restauré"
 
-#: ../roundup/cgi/actions.py:58
+#: ../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
+#, fuzzy, python-format
+msgid "Unrecognized scheme in %(url)s"
+msgstr "Jeu de caractères non reconnu : %r"
+
+#: ../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 ""
 "Vous n'avez pas les permissions pour %(action)s la classe %(classname)s."
 
-#: ../roundup/cgi/actions.py:89
+#: ../roundup/cgi/actions.py:187
 msgid "No type specified"
 msgstr "Aucun type spécifié"
 
-#: ../roundup/cgi/actions.py:91
+#: ../roundup/cgi/actions.py:189
 msgid "No ID entered"
 msgstr "Aucun identifiant saisi"
 
-#: ../roundup/cgi/actions.py:97
+#: ../roundup/cgi/actions.py:195
 #, python-format
 msgid "\"%(input)s\" is not an ID (%(classname)s ID required)"
-msgstr "« %(input)s » n'est pas un identifiant (l'identifiant de %(classname)s est requis)"
-
-#: ../roundup/cgi/actions.py:117
-msgid "You may not retire the admin or anonymous user"
-msgstr "Vous ne pouvez pas abandonner les utilisateurs admin ou anonyme"
-
-#: ../roundup/cgi/actions.py:124
+msgstr ""
+"« %(input)s » n'est pas un identifiant (l'identifiant de %(classname)s est "
+"requis)"
+
+#: ../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
+#, fuzzy
+msgid "Invalid request"
+msgstr "Format non valide"
+
+#: ../roundup/cgi/actions.py:225 ../roundup/cgi/actions.py:568
+#: ../roundup/cgi/actions.py:225:568
+#, fuzzy, python-format
+msgid "You do not have permission to retire %(class)s"
+msgstr "Vous n'avez pas la permission de créer de %(class)s"
+
+#: ../roundup/cgi/actions.py:233
 #, python-format
 msgid "%(classname)s %(itemid)s has been retired"
 msgstr "%(classname)s %(itemid)s a été retiré"
 
+#: ../roundup/cgi/actions.py:257
+#, fuzzy, python-format
+msgid "You do not have permission to restore %(class)s"
+msgstr "Vous n'avez pas la permission de créer de %(class)s"
+
+#: ../roundup/cgi/actions.py:265
+#, fuzzy, python-format
+msgid "%(classname)s %(itemid)s has been restored"
+msgstr "%(classname)s %(itemid)s a été retiré"
+
 # ../roundup/cgi/actions.py:174 :202
 # ../roundup/cgi/actions.py:174:202
-#: ../roundup/cgi/actions.py:174 ../roundup/cgi/actions.py:202
+#: ../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 "Vous n'avez pas la permission de modifier des requêtes"
 
 # ../roundup/cgi/actions.py:180 :209
 # ../roundup/cgi/actions.py:180:209
-#: ../roundup/cgi/actions.py:180 ../roundup/cgi/actions.py:209
+#: ../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 "Vous n'avez pas la permission d'enregistrer des requêtes"
 
-#: ../roundup/cgi/actions.py:297
+#: ../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 "Vous n'avez pas la permission de créer de %(class)s"
+
+#: ../roundup/cgi/actions.py:513
 #, python-format
 msgid "Not enough values on line %(line)s"
 msgstr "Pas suffisament de valeurs sur la ligne %(line)s"
 
-#: ../roundup/cgi/actions.py:344
+#: ../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 "Vous n'avez pas la permission de modifier %(class)s"
+
+#: ../roundup/cgi/actions.py:575
 msgid "Items edited OK"
 msgstr "Les éléments ont été modifiés avec succès"
 
-#: ../roundup/cgi/actions.py:404
+#: ../roundup/cgi/actions.py:634
 #, python-format
 msgid "%(class)s %(id)s %(properties)s edited ok"
 msgstr "%(class)s %(id)s %(properties)s modifié(s) avec succès"
 
-#: ../roundup/cgi/actions.py:407
-#, python-format
-msgid "%(class)s %(id)s - nothing changed"
-msgstr "%(class)s %(id)s - aucun changement"
-
-#: ../roundup/cgi/actions.py:419
+#: ../roundup/cgi/actions.py:654
 #, python-format
 msgid "%(class)s %(id)s created"
 msgstr "%(class)s %(id)s créé"
 
-#: ../roundup/cgi/actions.py:451
-#, python-format
-msgid "You do not have permission to edit %(class)s"
-msgstr "Vous n'avez pas la permission de modifier %(class)s"
-
-#: ../roundup/cgi/actions.py:463
-#, python-format
-msgid "You do not have permission to create %(class)s"
-msgstr "Vous n'avez pas la permission de créer de %(class)s"
-
-#: ../roundup/cgi/actions.py:487
-msgid "You do not have permission to edit user roles"
-msgstr "Vous n'avez pas la permission de modifier les rôles d'un utilisateur"
-
-#: ../roundup/cgi/actions.py:537
-#, python-format
+#: ../roundup/cgi/actions.py:779
+#, fuzzy, python-format
 msgid ""
-"Edit Error: someone else has edited this %s (%s). View <a target=\"new\" "
+"Edit Error: someone else has edited this %s (%s). View <a target=\"_blank\" "
 "href=\"%s%s\">their changes</a> in a new window."
-msgstr "Erreur de modification : quelqu'un d'autre a modifié ce %s (%s). Consultez <a target=\"new\" href=\"%s%s\">ses modifications</a> dans une nouvelle fenêtre."
-
-#: ../roundup/cgi/actions.py:565
+msgstr ""
+"Erreur de modification : quelqu'un d'autre a modifié ce %s (%s). Consultez "
+"<a target=\"new\" href=\"%s%s\">ses modifications</a> dans une nouvelle "
+"fenêtre."
+
+#: ../roundup/cgi/actions.py:811
 #, python-format
 msgid "Edit Error: %s"
 msgstr "Erreur de modification : %s"
 
 # ../roundup/cgi/actions.py:596 :607 :778 :797
 # ../roundup/cgi/actions.py:596:607 :778:797
-#: ../roundup/cgi/actions.py:596 ../roundup/cgi/actions.py:607
-#: ../roundup/cgi/actions.py:778 ../roundup/cgi/actions.py:797
+#: ../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 "Erreur : %s"
 
-#: ../roundup/cgi/actions.py:633
+#: ../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 ""
 "La clé à usage unique n'est pas valide.\n"
-"Un bug dans Mozilla peut provoquer une apparition erronée de ce message, vérifiez votre courriel."
-
-#: ../roundup/cgi/actions.py:675
+"Un bug dans Mozilla peut provoquer une apparition erronée de ce message, "
+"vérifiez votre courriel."
+
+#: ../roundup/cgi/actions.py:940
 #, python-format
 msgid "Password reset and email sent to %s"
 msgstr "Mot de passe réinitialisé et courriel envoyé à %s"
 
-#: ../roundup/cgi/actions.py:684
+#: ../roundup/cgi/actions.py:949
 msgid "Unknown username"
 msgstr "Nom d'utilisateur inconnu"
 
-#: ../roundup/cgi/actions.py:692
+#: ../roundup/cgi/actions.py:957
 msgid "Unknown email address"
 msgstr "Adresse électronique inconnue"
 
-#: ../roundup/cgi/actions.py:697
+#: ../roundup/cgi/actions.py:962
 msgid "You need to specify a username or address"
 msgstr "Vous devez indiquer un nom d'utilisateur ou une adresse électronique"
 
-#: ../roundup/cgi/actions.py:722
+#: ../roundup/cgi/actions.py:988
 #, python-format
-msgid "Email sent to %s"
+msgid "Email sent to primary notification address for %s."
+msgstr ""
+
+#: ../roundup/cgi/actions.py:990
+#, fuzzy, python-format
+msgid "Email sent to %s."
 msgstr "Courriel envoyé à %s"
 
-#: ../roundup/cgi/actions.py:741
+#: ../roundup/cgi/actions.py:1004
 msgid "You are now registered, welcome!"
 msgstr "Vous êtes désormais inscrit, bienvenue !"
 
-#: ../roundup/cgi/actions.py:786
+#: ../roundup/cgi/actions.py:1135
 msgid "It is not permitted to supply roles at registration."
 msgstr "Impossible de renseigner les rôles à l'inscription."
 
-#: ../roundup/cgi/actions.py:878
+#: ../roundup/cgi/actions.py:1148
 msgid "You are logged out"
 msgstr "Vous êtes déconnecté"
 
-#: ../roundup/cgi/actions.py:895
+#: ../roundup/cgi/actions.py:1177
 msgid "Username required"
 msgstr "Nom d'utilisateur requis"
 
 # ../roundup/cgi/actions.py:930 :934
 # ../roundup/cgi/actions.py:930:934
-#: ../roundup/cgi/actions.py:930 ../roundup/cgi/actions.py:934
+#: ../roundup/cgi/actions.py:1265 ../roundup/cgi/actions.py:1269
+#: ../roundup/cgi/actions.py:1265:1269
 msgid "Invalid login"
 msgstr "Tentative de connexion non valide"
 
-#: ../roundup/cgi/actions.py:940
+#: ../roundup/cgi/actions.py:1275
 msgid "You do not have permission to login"
 msgstr "Vous n'avez la permission de vous connecter"
 
+#: ../roundup/cgi/actions.py:1316
+#, python-format
+msgid "Column \"%(column)s\" not found in %(class)s"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:1353
+#, fuzzy, python-format
+msgid "You do not have permission to view %(class)s"
+msgstr "Vous n'avez pas la permission de modifier %(class)s"
+
 #: ../roundup/cgi/cgitb.py:49
 #, python-format
 msgid ""
@@ -1364,11 +1628,16 @@
 "<p>A problem occurred while running a Python script. Here is the sequence of "
 "function calls leading up to the error, with the most recent (innermost) "
 "call first. The exception attributes are:"
-msgstr "<p>Un problème est apparu lors de l'exécution d'un script Python. Voici la suite d'appels de fonction menant à l'erreur, avec l'appel le plus récent (le plus imbriqué) d'abord. Les attributs de l'exception sont :"
+msgstr ""
+"<p>Un problème est apparu lors de l'exécution d'un script Python. Voici la "
+"suite d'appels de fonction menant à l'erreur, avec l'appel le plus récent "
+"(le plus imbriqué) d'abord. Les attributs de l'exception sont :"
 
 #: ../roundup/cgi/cgitb.py:129
 msgid "&lt;file is None - probably inside <tt>eval</tt> or <tt>exec</tt>&gt;"
-msgstr "&lt;« file » est à « None » - probablement dans un <tt>eval</tt> ou un <tt>exec</tt>&gt;"
+msgstr ""
+"&lt;« file » est à « None » - probablement dans un <tt>eval</tt> ou un "
+"<tt>exec</tt>&gt;"
 
 #: ../roundup/cgi/cgitb.py:138
 #, python-format
@@ -1378,10 +1647,11 @@
 # ../roundup/cgi/cgitb.py:172 :178
 # ../roundup/cgi/cgitb.py:172:178
 #: ../roundup/cgi/cgitb.py:172 ../roundup/cgi/cgitb.py:178
+#: ../roundup/cgi/cgitb.py:172:178
 msgid "<em>undefined</em>"
 msgstr "<em>indéfini</em>"
 
-#: ../roundup/cgi/client.py:49
+#: ../roundup/cgi/client.py:76
 msgid ""
 "<html><head><title>An error has occurred</title></head>\n"
 "<body><h1>An error has occurred</h1>\n"
@@ -1395,72 +1665,228 @@
 "Les administrateurs du pisteur ont été notifiés du problème.</p>\n"
 "</body></html>"
 
-#: ../roundup/cgi/client.py:308
+#: ../roundup/cgi/client.py:665
 msgid "Form Error: "
 msgstr "Erreur de formulaire : "
 
-#: ../roundup/cgi/client.py:363
+#: ../roundup/cgi/client.py:755
 #, python-format
 msgid "Unrecognized charset: %r"
 msgstr "Jeu de caractères non reconnu : %r"
 
-#: ../roundup/cgi/client.py:491
+#: ../roundup/cgi/client.py:925
 msgid "Anonymous users are not allowed to use the web interface"
 msgstr ""
 "Les utilisateurs anonymes ne sont pas autorisés à utiliser l'interface Web"
 
-#: ../roundup/cgi/client.py:646
+#: ../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/actions.py:930 :934
+# ../roundup/cgi/actions.py:930:934
+#: ../roundup/cgi/client.py:1058
+#, fuzzy, python-format
+msgid "Invalid Origin %s"
+msgstr "Tentative de connexion non valide"
+
+#: ../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 "Vous n'êtes pas autorisé à voir ce fichier"
 
-#: ../roundup/cgi/client.py:738
+#: ../roundup/cgi/client.py:1655
 #, python-format
 msgid "%(starttag)sTime elapsed: %(seconds)fs%(endtag)s\n"
 msgstr "%(starttag)sTemps écoulé: %(seconds)fs%(endtag)s\n"
 
-#: ../roundup/cgi/client.py:742
+#: ../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 "%(starttag)sAccès au cache : %(cache_hits)d, manqués %(cache_misses)d. Chargement d'éléments : %(get_items)f secondes. Filtrage : %(filtering)f secondes.%(endtag)s\n"
-
-#: ../roundup/cgi/form_parser.py:283
-#, python-format
-msgid "link \"%(key)s\" value \"%(value)s\" not a designator"
+msgstr ""
+"%(starttag)sAccès au cache : %(cache_hits)d, manqués %(cache_misses)d. "
+"Chargement d'éléments : %(get_items)f secondes. Filtrage : %(filtering)f "
+"secondes.%(endtag)s\n"
+
+#: ../roundup/cgi/form_parser.py:289
+#, fuzzy, python-format
+msgid "link \"%(key)s\" value \"%(entry)s\" not a designator"
 msgstr "la valeur « %(value)s » du lien « %(key)s » n'est pas un indicateur"
 
-#: ../roundup/cgi/form_parser.py:290
+#: ../roundup/cgi/form_parser.py:307
 #, python-format
 msgid "%(class)s %(property)s is not a link or multilink property"
 msgstr "%(class)s %(property)s n'est pas une propriété lien ou lien multiple"
 
-#: ../roundup/cgi/form_parser.py:312
+#: ../roundup/cgi/form_parser.py:319
+#, fuzzy, python-format
+msgid ""
+"The form action claims to require property \"%(property)s\" which doesn't "
+"exist"
+msgstr ""
+"Vous avez demandé une action « %(action)s » sur une propriété "
+"« %(property)s » qui n'existe pas"
+
+#: ../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 "Vous avez demandé une action « %(action)s » sur une propriété « %(property)s » qui n'existe pas"
+msgstr ""
+"Vous avez demandé une action « %(action)s » sur une propriété "
+"« %(property)s » qui n'existe pas"
 
 # ../roundup/cgi/form_parser.py:331 :357
 # ../roundup/cgi/form_parser.py:331:357
-#: ../roundup/cgi/form_parser.py:331 ../roundup/cgi/form_parser.py:357
+#: ../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 "Vous avez fourni plus d'une valeur pour la propriété %s"
 
 # ../roundup/cgi/form_parser.py:354 :360
 # ../roundup/cgi/form_parser.py:354:360
-#: ../roundup/cgi/form_parser.py:354 ../roundup/cgi/form_parser.py:360
+#: ../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 "Le mot de passe et le texte de confirmation ne correspondent pas"
 
-#: ../roundup/cgi/form_parser.py:395
+#: ../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 "propriété « %(propname)s » : « %(value)s » n'est pas actuellement dans la liste"
-
-#: ../roundup/cgi/form_parser.py:512
+msgstr ""
+"propriété « %(propname)s » : « %(value)s » n'est pas actuellement dans la "
+"liste"
+
+#: ../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"
@@ -1468,20 +1894,16 @@
 msgstr[1] ""
 "Les propriétés requises %(property)s de %(class)s n'ont pas été fournies"
 
-#: ../roundup/cgi/form_parser.py:535
-msgid "File is empty"
-msgstr "Le fichier est vide"
-
-#: ../roundup/cgi/templating.py:72
+#: ../roundup/cgi/templating.py:124
 #, python-format
 msgid "You are not allowed to %(action)s items of class %(class)s"
 msgstr "Vous ne pouvez pas %(action)s des éléments de classe %(class)s"
 
-#: ../roundup/cgi/templating.py:627
+#: ../roundup/cgi/templating.py:706
 msgid "(list)"
 msgstr "(liste)"
 
-#: ../roundup/cgi/templating.py:696
+#: ../roundup/cgi/templating.py:779
 msgid "Submit New Entry"
 msgstr "Soumettre un nouvelle entrée"
 
@@ -1490,106 +1912,109 @@
 # ../roundup/cgi/templating.py:1875 ../roundup/cgi/templating.py:710:829
 # :1236:1257 :1304:1327 :1361:1400 :1453:1470 :1549:1569 :1587:1619
 # :1629:1683 :1875
-#: ../roundup/cgi/templating.py:710 ../roundup/cgi/templating.py:829
-#: ../roundup/cgi/templating.py:1236 ../roundup/cgi/templating.py:1257
-#: ../roundup/cgi/templating.py:1304 ../roundup/cgi/templating.py:1327
-#: ../roundup/cgi/templating.py:1361 ../roundup/cgi/templating.py:1400
-#: ../roundup/cgi/templating.py:1453 ../roundup/cgi/templating.py:1470
-#: ../roundup/cgi/templating.py:1549 ../roundup/cgi/templating.py:1569
-#: ../roundup/cgi/templating.py:1587 ../roundup/cgi/templating.py:1619
-#: ../roundup/cgi/templating.py:1629 ../roundup/cgi/templating.py:1683
-#: ../roundup/cgi/templating.py:1875
+#: ../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 "[masqué]"
 
-#: ../roundup/cgi/templating.py:711
+#: ../roundup/cgi/templating.py:797
 msgid "New node - no history"
 msgstr "Nouveau n~ud - pas d'historique"
 
-#: ../roundup/cgi/templating.py:811
+#: ../roundup/cgi/templating.py:922
 msgid "Submit Changes"
 msgstr "Soumettre les changements"
 
-#: ../roundup/cgi/templating.py:893
+#: ../roundup/cgi/templating.py:1011
 msgid "<em>The indicated property no longer exists</em>"
 msgstr "<em>La propriété indiquée n'existe plus</em>"
 
-#: ../roundup/cgi/templating.py:894
+#: ../roundup/cgi/templating.py:1012
 #, python-format
 msgid "<em>%s: %s</em>\n"
 msgstr "<em>%s : %s</em>\n"
 
-#: ../roundup/cgi/templating.py:907
+#: ../roundup/cgi/templating.py:1025
 #, python-format
 msgid "The linked class %(classname)s no longer exists"
 msgstr "La classe liée %(classname)s n'existe plus"
 
 # ../roundup/cgi/templating.py:940 :964
 # ../roundup/cgi/templating.py:940:964
-#: ../roundup/cgi/templating.py:940 ../roundup/cgi/templating.py:964
+#: ../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 "<strike>Le noeud lié n'existe plus</strike>"
 
+#: ../roundup/cgi/templating.py:1150
+#, python-format
+msgid "%s: (no value)"
+msgstr "%s : (pas de valeur)"
+
+#: ../roundup/cgi/templating.py:1162
+msgid ""
+"<strong><em>This event is not handled by the history display!</em></strong>"
+msgstr ""
+"<strong><em>Cet évènement n'est pas géré par l'affichage de l'historique.</"
+"em></strong>"
+
+#: ../roundup/cgi/templating.py:1174
+msgid "<tr><td colspan=4><strong>Note:</strong></td></tr>"
+msgstr "<tr><td colspan=4><strong>Note :</strong></td></tr>"
+
+#: ../roundup/cgi/templating.py:1183
+msgid "History"
+msgstr "Historique"
+
+#: ../roundup/cgi/templating.py:1185
+msgid "<th>Date</th>"
+msgstr "<th>Date</th>"
+
+#: ../roundup/cgi/templating.py:1186
+msgid "<th>User</th>"
+msgstr "<th>Utilisateur</th>"
+
+#: ../roundup/cgi/templating.py:1187
+msgid "<th>Action</th>"
+msgstr "<th>Action</th>"
+
+#: ../roundup/cgi/templating.py:1188
+msgid "<th>Args</th>"
+msgstr "<th>Arguments</th>"
+
+#: ../roundup/cgi/templating.py:1236
+#, python-format
+msgid "Copy of %(class)s %(id)s"
+msgstr "Copie de %(class)s %(id)s"
+
 # ../roundup/cgi/templating.py:1006 :1404 :1425 :1431
 # ../roundup/cgi/templating.py:1431 ../roundup/cgi/templating.py:1006:1404
 # :1425:1431
-#: ../roundup/cgi/templating.py:1006 ../roundup/cgi/templating.py:1404
-#: ../roundup/cgi/templating.py:1425 ../roundup/cgi/templating.py:1431
+#: ../roundup/cgi/templating.py:1731 ../roundup/cgi/templating.py:1764
+#: ../roundup/cgi/templating.py:1132:1731:1764
 msgid "No"
 msgstr "Non"
 
 # ../roundup/cgi/templating.py:1006 :1404 :1423 :1428
 # ../roundup/cgi/templating.py:1428 ../roundup/cgi/templating.py:1006:1404
 # :1423:1428
-#: ../roundup/cgi/templating.py:1006 ../roundup/cgi/templating.py:1404
-#: ../roundup/cgi/templating.py:1423 ../roundup/cgi/templating.py:1428
+#: ../roundup/cgi/templating.py:1731 ../roundup/cgi/templating.py:1759
+#: ../roundup/cgi/templating.py:1132:1731:1759
 msgid "Yes"
 msgstr "Oui"
 
-#: ../roundup/cgi/templating.py:1017
-#, python-format
-msgid "%s: (no value)"
-msgstr "%s : (pas de valeur)"
-
-#: ../roundup/cgi/templating.py:1029
-msgid ""
-"<strong><em>This event is not handled by the history display!</em></strong>"
-msgstr "<strong><em>Cet évènement n'est pas géré par l'affichage de l'historique.</em></strong>"
-
-#: ../roundup/cgi/templating.py:1041
-msgid "<tr><td colspan=4><strong>Note:</strong></td></tr>"
-msgstr "<tr><td colspan=4><strong>Note :</strong></td></tr>"
-
-#: ../roundup/cgi/templating.py:1050
-msgid "History"
-msgstr "Historique"
-
-#: ../roundup/cgi/templating.py:1052
-msgid "<th>Date</th>"
-msgstr "<th>Date</th>"
-
-#: ../roundup/cgi/templating.py:1053
-msgid "<th>User</th>"
-msgstr "<th>Utilisateur</th>"
-
-#: ../roundup/cgi/templating.py:1054
-msgid "<th>Action</th>"
-msgstr "<th>Action</th>"
-
-#: ../roundup/cgi/templating.py:1055
-msgid "<th>Args</th>"
-msgstr "<th>Arguments</th>"
-
-#: ../roundup/cgi/templating.py:1097
-#, python-format
-msgid "Copy of %(class)s %(id)s"
-msgstr "Copie de %(class)s %(id)s"
-
-#: ../roundup/cgi/templating.py:1331
-msgid "*encrypted*"
-msgstr "*crypté*"
-
-#: ../roundup/cgi/templating.py:1514
+#: ../roundup/cgi/templating.py:1886
 msgid ""
 "default value for DateHTMLProperty must be either DateHTMLProperty or string "
 "date representation."
@@ -1597,137 +2022,216 @@
 "la valeur par défaut pour DateHTMLProperty doit être soit DateHTMLProperty "
 "soit une représentation textuelle de la date."
 
-#: ../roundup/cgi/templating.py:1674
+#: ../roundup/cgi/templating.py:2052
 #, python-format
 msgid "Attempt to look up %(attr)s on a missing value"
 msgstr "Tentative de recherche de %(attr)s sur une valeur manquante"
 
-#: ../roundup/cgi/templating.py:1750
+#: ../roundup/cgi/templating.py:2063
+#, fuzzy, python-format
+msgid "Attempt to look up %(item)s on a missing value"
+msgstr "Tentative de recherche de %(attr)s sur une valeur manquante"
+
+#: ../roundup/cgi/templating.py:2166
 #, python-format
 msgid "<option %svalue=\"-1\">- no selection -</option>"
 msgstr "<option %svalue=\"-1\">- pas de sélection -</option>"
 
-#: ../roundup/date.py:186
+#: ../roundup/date.py:375
+#, fuzzy, 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 "Ceci n'est pas une représentation de date : « aaaa-mm-jj », « mm-jj », « HH:MM », « HH:MM:SS » or « aaaa-mm-jj.HH:MM:SS.SSS »"
-
-#: ../roundup/date.py:240
+"Not a date spec: %r (\"yyyy-mm-dd\", \"mm-dd\", \"HH:MM\", \"HH:MM:SS\" or "
+"\"yyyy-mm-dd.HH:MM:SS.SSS\")"
+msgstr ""
+"Ceci n'est pas une représentation de date : « aaaa-mm-jj », « mm-jj », « HH:"
+"MM », « HH:MM:SS » or « aaaa-mm-jj.HH:MM:SS.SSS »"
+
+#: ../roundup/date.py:398
+msgid "Could not determine granularity"
+msgstr ""
+
+#: ../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 "%r n'est pas une représentation de date ou d'heure « aaaa-mm-jj », « mm-jj », « HH:MM », « HH:MM:SS » or « aaaa-mm-jj.HH:MM:SS.SSS »"
-
-#: ../roundup/date.py:538
+msgstr ""
+"%r n'est pas une représentation de date ou d'heure « aaaa-mm-jj », « mm-"
+"jj », « HH:MM », « HH:MM:SS » or « aaaa-mm-jj.HH:MM:SS.SSS »"
+
+#: ../roundup/date.py:786
+#, fuzzy, python-format
 msgid ""
-"Not an interval spec: [+-] [#y] [#m] [#w] [#d] [[[H]H:MM]:SS] [date spec]"
-msgstr "Ceci n'est pas une représentation d'intervalle : [+-] [#a] [#m] [#s] [#j] [[[H]H:MM]:SS] [représentation de date]"
-
-#: ../roundup/date.py:557
-msgid "Not an interval spec: [+-] [#y] [#m] [#w] [#d] [[[H]H:MM]:SS]"
-msgstr "Ceci n'est pas une représentation d'intervalle : [+-] [#a] [#m] [#s] [#j] [[[H]H:MM]:SS]"
-
-#: ../roundup/date.py:694
+"Not an interval spec: \"%s\" ([+-] [#y] [#m] [#w] [#d] [[[H]H:MM]:SS] [date "
+"spec])"
+msgstr ""
+"Ceci n'est pas une représentation d'intervalle : [+-] [#a] [#m] [#s] [#j] "
+"[[[H]H:MM]:SS] [représentation de date]"
+
+#: ../roundup/date.py:809
+#, fuzzy, python-format
+msgid "Not an interval spec: \"%s\" ([+-] [#y] [#m] [#w] [#d] [[[H]H:MM]:SS])"
+msgstr ""
+"Ceci n'est pas une représentation d'intervalle : [+-] [#a] [#m] [#s] [#j] "
+"[[[H]H:MM]:SS]"
+
+#: ../roundup/date.py:944
 #, python-format
 msgid "%(number)s year"
 msgid_plural "%(number)s years"
 msgstr[0] "%(number)s année"
 msgstr[1] "%(number)s années"
 
-#: ../roundup/date.py:698
+#: ../roundup/date.py:948
 #, python-format
 msgid "%(number)s month"
 msgid_plural "%(number)s months"
 msgstr[0] "%(number)s mois"
 msgstr[1] "%(number)s mois"
 
-#: ../roundup/date.py:702
+#: ../roundup/date.py:952
 #, python-format
 msgid "%(number)s week"
 msgid_plural "%(number)s weeks"
 msgstr[0] "%(number)s semaine"
 msgstr[1] "%(number)s semaines"
 
-#: ../roundup/date.py:706
+#: ../roundup/date.py:956
 #, python-format
 msgid "%(number)s day"
 msgid_plural "%(number)s days"
 msgstr[0] "%(number)s jour"
 msgstr[1] "%(number)s jours"
 
-#: ../roundup/date.py:710
+#: ../roundup/date.py:960
 msgid "tomorrow"
 msgstr "demain"
 
-#: ../roundup/date.py:712
+#: ../roundup/date.py:962
 msgid "yesterday"
 msgstr "hier"
 
-#: ../roundup/date.py:715
+#: ../roundup/date.py:965
 #, python-format
 msgid "%(number)s hour"
 msgid_plural "%(number)s hours"
 msgstr[0] "%(number)s heure"
 msgstr[1] "%(number)s heures"
 
-#: ../roundup/date.py:719
+#: ../roundup/date.py:969
 msgid "an hour"
 msgstr "une heure"
 
-#: ../roundup/date.py:721
+#: ../roundup/date.py:971
 msgid "1 1/2 hours"
 msgstr "1 heure et demie"
 
-#: ../roundup/date.py:723
+#: ../roundup/date.py:973
 #, python-format
 msgid "1 %(number)s/4 hours"
 msgid_plural "1 %(number)s/4 hours"
 msgstr[0] "1 heure et quart"
 msgstr[1] "1 heure %(number)s/4"
 
-#: ../roundup/date.py:727
+#: ../roundup/date.py:977
 msgid "in a moment"
 msgstr "dans un instant"
 
-#: ../roundup/date.py:729
+#: ../roundup/date.py:979
 msgid "just now"
 msgstr "à l'instant"
 
-#: ../roundup/date.py:732
+#: ../roundup/date.py:982
 msgid "1 minute"
 msgstr "une minute"
 
-#: ../roundup/date.py:735
+#: ../roundup/date.py:985
 #, python-format
 msgid "%(number)s minute"
 msgid_plural "%(number)s minutes"
 msgstr[0] "%(number)s minute"
 msgstr[1] "%(number)s minutes"
 
-#: ../roundup/date.py:738
+#: ../roundup/date.py:988
 msgid "1/2 an hour"
 msgstr "une demi-heure"
 
-#: ../roundup/date.py:740
+#: ../roundup/date.py:990
 #, python-format
 msgid "%(number)s/4 hour"
 msgid_plural "%(number)s/4 hours"
 msgstr[0] "un quart d'heure"
 msgstr[1] "%(number)s/4 d'heures"
 
-#: ../roundup/date.py:744
+#: ../roundup/date.py:994
 #, python-format
 msgid "%s ago"
 msgstr "Il y a %s"
 
-#: ../roundup/date.py:746
+#: ../roundup/date.py:996
 #, python-format
 msgid "in %s"
 msgstr "dans %s"
 
-#: ../roundup/init.py:134
+#: ../roundup/hyperdb.py:91
+#, fuzzy, python-format
+msgid "property %s: %s"
+msgstr "Erreur : %s: %s"
+
+#: ../roundup/hyperdb.py:113
+#, python-format
+msgid "property %s: %r is an invalid date (%s)"
+msgstr ""
+
+#: ../roundup/hyperdb.py:130
+#, python-format
+msgid "property %s: %r is an invalid date interval (%s)"
+msgstr ""
+
+#: ../roundup/hyperdb.py:260
+#, fuzzy, python-format
+msgid "property %s: %r is not currently an element"
+msgstr ""
+"propriété « %(propname)s » : « %(value)s » n'est pas actuellement dans la "
+"liste"
+
+#: ../roundup/hyperdb.py:314
+#, python-format
+msgid "property %s: %r is not a number"
+msgstr ""
+
+#: ../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:1163 ../roundup/hyperdb.py:1171
+#: ../roundup/hyperdb.py:1163:1171
+#, python-format
+msgid "Not a property name: %s"
+msgstr ""
+
+#: ../roundup/hyperdb.py:1570
+#, python-format
+msgid "property %s: %r is not a %s."
+msgstr ""
+
+#: ../roundup/hyperdb.py:1573
+#, python-format
+msgid "you may only enter ID values for property %s"
+msgstr ""
+
+#: ../roundup/hyperdb.py:1605
+#, python-format
+msgid "%r is not a property of %s"
+msgstr ""
+
+#: ../roundup/init.py:135
 #, python-format
 msgid ""
 "WARNING: directory '%s'\n"
@@ -1736,13 +2240,53 @@
 "ATTENTION : le répertoire '%s'\n"
 "\tcontient des modèles obsolètes - ignoré"
 
-#: ../roundup/mailgw.py:586
+#: ../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:199
+#, python-format
+msgid "Message signed with an expired key: %s"
+msgstr ""
+
+#: ../roundup/mailgw.py:202
+#, python-format
+msgid "Message signed with a revoked key: %s"
+msgstr ""
+
+#: ../roundup/mailgw.py:205
+msgid "Invalid PGP signature detected."
+msgstr ""
+
+#: ../roundup/mailgw.py:211
+#, fuzzy
+msgid "Unsigned Message"
+msgstr "Nouveau message"
+
+#: ../roundup/mailgw.py:506
+msgid "Unknown multipart/encrypted version."
+msgstr ""
+
+#: ../roundup/mailgw.py:515
+msgid "Unable to decrypt your message."
+msgstr ""
+
+#: ../roundup/mailgw.py:545
+msgid "No PGP signature found in message."
+msgstr ""
+
+#: ../roundup/mailgw.py:621
 msgid ""
 "\n"
 "Emails to Roundup trackers must include a Subject: line!\n"
-msgstr "\nLes courriels envoyés au gestionnaire de ticket doivent comporter un sujet !\n"
-
-#: ../roundup/mailgw.py:674
+msgstr ""
+"\n"
+"Les courriels envoyés au gestionnaire de ticket doivent comporter un "
+"sujet !\n"
+
+#: ../roundup/mailgw.py:730
 #, python-format
 msgid ""
 "\n"
@@ -1772,13 +2316,12 @@
 "\n"
 "Sujet original : '%(subject)s'\n"
 
-#: ../roundup/mailgw.py:705
-#, python-format
+#: ../roundup/mailgw.py:768
+#, fuzzy, python-format
 msgid ""
 "\n"
-"The class name you identified in the subject line (\"%(classname)s\") does "
-"not exist in the\n"
-"database.\n"
+"The class name you identified in the subject line (\"%(classname)s\") does\n"
+"not exist in the database.\n"
 "\n"
 "Valid class names are: %(validname)s\n"
 "Subject was: \"%(subject)s\"\n"
@@ -1790,12 +2333,42 @@
 "Les noms de classes valides sont : %(validname)s\n"
 "Sujet original : « %(subject)s »\n"
 
-#: ../roundup/mailgw.py:733
-#, python-format
+#: ../roundup/mailgw.py:776
+#, fuzzy, python-format
+msgid ""
+"\n"
+"You did not identify a class name in the subject line and there is no\n"
+"default set for this tracker. The subject must contain a class name or\n"
+"designator to indicate the 'topic' of the message. For example:\n"
+"    Subject: [issue] This is a new issue\n"
+"      - this will create a new issue in the tracker with the title 'This is\n"
+"        a new issue'.\n"
+"    Subject: [issue1234] This is a followup to issue 1234\n"
+"      - this will append the message's contents to the existing issue 1234\n"
+"        in the tracker.\n"
+"\n"
+"Subject was: '%(subject)s'\n"
+msgstr ""
+"\n"
+"Le sujet du message que vous avez envoyé au gestionnaire de ticket n'était\n"
+"pas correct. Le sujet doit contenir le nom d'une classe ou d'un objet. Par\n"
+"exemple : \n"
+"   Sujet: [issue] Un nouveau ticket\n"
+"     - créera dans le gestionnaire un nouveau ticket dont le titre\n"
+"       sera « Un nouveau ticket ».\n"
+"\n"
+"   Sujet: [issue1234] Réponse au ticket 1234\n"
+"     - ajoutera le corps du message au ticket 1234 déjà présent dans \n"
+"       le gestionnaire.\n"
+"\n"
+"Sujet original : '%(subject)s'\n"
+
+#: ../roundup/mailgw.py:814
+#, fuzzy, python-format
 msgid ""
 "\n"
 "I cannot match your message to a node in the database - you need to either\n"
-"supply a full designator (with number, eg \"[issue123]\" or keep the\n"
+"supply a full designator (with number, eg \"[issue123]\") or keep the\n"
 "previous subject title intact so I can match that.\n"
 "\n"
 "Subject was: \"%(subject)s\"\n"
@@ -1808,7 +2381,7 @@
 "\n"
 "Sujet original : « %(subject)s »\n"
 
-#: ../roundup/mailgw.py:766
+#: ../roundup/mailgw.py:847
 #, python-format
 msgid ""
 "\n"
@@ -1823,39 +2396,11 @@
 "\n"
 "Sujet original : « %(subject)s »\n"
 
-#: ../roundup/mailgw.py:794
-#, python-format
+#: ../roundup/mailgw.py:892
+#, fuzzy, 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 ""
-"\n"
-"La passerelle courriel ne fonctionne pas correctement. Contactez\n"
-"%(mailadmin)s afin qu'il corrige la classe incorrecte qui a été\n"
-"indiquée comme : \n"
-"  %(current_class)s\n"
-
-#: ../roundup/mailgw.py:817
-#, 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 ""
-"\n"
-"La passerelle courriel ne fonctionne pas correctement. Contactez\n"
-"%(mailadmin)s afin que les propriétés incorrectes suivantes soient\n"
-"corrigés :\n"
-"  %(errors)s\n"
-
-#: ../roundup/mailgw.py:847
-#, python-format
-msgid ""
-"\n"
-"You are not a registered user.\n"
+"You are not a registered user.%(registration_info)s\n"
 "\n"
 "Unknown address: %(from_address)s\n"
 msgstr ""
@@ -1864,21 +2409,21 @@
 "\n"
 "Addresse inconnue : %(from_address)s\n"
 
-#: ../roundup/mailgw.py:855
+#: ../roundup/mailgw.py:900
 msgid "You are not permitted to access this tracker."
 msgstr "Vous n'êtes pas autorisé à accéder à ce pisteur."
 
-#: ../roundup/mailgw.py:862
+#: ../roundup/mailgw.py:911
 #, python-format
 msgid "You are not permitted to edit %(classname)s."
 msgstr "Vous n'avez pas la permission de modifier %(classname)s"
 
-#: ../roundup/mailgw.py:866
+#: ../roundup/mailgw.py:917
 #, python-format
 msgid "You are not permitted to create %(classname)s."
 msgstr "Vous n'avez pas la permission de créer  %(classname)s"
 
-#: ../roundup/mailgw.py:913
+#: ../roundup/mailgw.py:998
 #, python-format
 msgid ""
 "\n"
@@ -1893,32 +2438,44 @@
 "\n"
 "Le sujet était « %(subject)s »\n"
 
-#: ../roundup/mailgw.py:942
+#: ../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:1119
+msgid "You are not permitted to create files."
+msgstr "Vous n'êtes pas autorisé à créer des fichiers."
+
+#: ../roundup/mailgw.py:1133
+#, python-format
+msgid "You are not permitted to add files to %(classname)s."
+msgstr ""
+"Vous n'avez pas la permission d'ajouter des fichiers à la classe "
+"%(classname)s."
+
+#: ../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 ""
 "\n"
-"Le message soumis doit être en texte brut. L'analyse du message n'a pas trouvé\n"
+"Le message soumis doit être en texte brut. L'analyse du message n'a pas "
+"trouvé\n"
 "de partie text/plain à utiliser.\n"
 
-#: ../roundup/mailgw.py:964
-msgid "You are not permitted to create files."
-msgstr "Vous n'êtes pas autorisé à créer des fichiers."
-
-#: ../roundup/mailgw.py:978
-#, python-format
-msgid "You are not permitted to add files to %(classname)s."
-msgstr ""
-"Vous n'avez pas la permission d'ajouter des fichiers à la classe %(classname)"
-"s."
-
-#: ../roundup/mailgw.py:996
+#: ../roundup/mailgw.py:1173
 msgid "You are not permitted to create messages."
 msgstr "Vous n'avez pas la permission de créer des messages."
 
-#: ../roundup/mailgw.py:1004
+#: ../roundup/mailgw.py:1181
 #, python-format
 msgid ""
 "\n"
@@ -1929,19 +2486,26 @@
 "Le message a été rejeté par un détecteur.\n"
 "%(error)s\n"
 
-#: ../roundup/mailgw.py:1012
+#: ../roundup/mailgw.py:1189
 #, python-format
 msgid "You are not permitted to add messages to %(classname)s."
 msgstr "Vous n'avez pas la permission d'ajouter des messages à %(classname)s."
 
-#: ../roundup/mailgw.py:1039
+#: ../roundup/mailgw.py:1211
 #, python-format
 msgid "You are not permitted to edit property %(prop)s of class %(classname)s."
 msgstr ""
 "Vous n'avez pas la permission de modifier la propriété %(prop)s de la classe "
 "%(classname)s."
 
-#: ../roundup/mailgw.py:1047
+#: ../roundup/mailgw.py:1220
+#, fuzzy, python-format
+msgid "You are not permitted to set property %(prop)s of class %(classname)s."
+msgstr ""
+"Vous n'avez pas la permission de modifier la propriété %(prop)s de la classe "
+"%(classname)s."
+
+#: ../roundup/mailgw.py:1226
 #, python-format
 msgid ""
 "\n"
@@ -1952,98 +2516,155 @@
 "Un problème a eu lieu à l'envoi de votre message :\n"
 "   %(message)s\n"
 
-#: ../roundup/mailgw.py:1069
+#: ../roundup/mailgw.py:1674
+#, fuzzy, 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 ""
+"\n"
+"La passerelle courriel ne fonctionne pas correctement. Contactez\n"
+"%(mailadmin)s afin qu'il corrige la classe incorrecte qui a été\n"
+"indiquée comme : \n"
+"  %(current_class)s\n"
+
+#: ../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 ""
+"\n"
+"La passerelle courriel ne fonctionne pas correctement. Contactez\n"
+"%(mailadmin)s afin que les propriétés incorrectes suivantes soient\n"
+"corrigés :\n"
+"  %(errors)s\n"
+
+#: ../roundup/mailgw.py:1726
 msgid "not of form [arg=value,value,...;arg=value,value,...]"
 msgstr "pas de la forme [arg=value,value,...;arg=value,value,...]"
 
-#: ../roundup/roundupdb.py:142
+#: ../roundup/roundupdb.py:209
 msgid "files"
 msgstr "fichiers"
 
-#: ../roundup/roundupdb.py:142
+#: ../roundup/roundupdb.py:209
 msgid "messages"
 msgstr "messages"
 
-#: ../roundup/roundupdb.py:142
+#: ../roundup/roundupdb.py:209
 msgid "nosy"
 msgstr "curieux"
 
-#: ../roundup/roundupdb.py:142
+#: ../roundup/roundupdb.py:209
 msgid "superseder"
 msgstr "remplaçant"
 
-#: ../roundup/roundupdb.py:142
+#: ../roundup/roundupdb.py:209
 msgid "title"
 msgstr "titre"
 
-#: ../roundup/roundupdb.py:143
+#: ../roundup/roundupdb.py:210
 msgid "assignedto"
 msgstr "affecté_à"
 
-#: ../roundup/roundupdb.py:143
+#: ../roundup/roundupdb.py:210
+#, fuzzy
+msgid "keyword"
+msgstr "Mot-cl&eacute;"
+
+#: ../roundup/roundupdb.py:210
 msgid "priority"
 msgstr "priorité"
 
-#: ../roundup/roundupdb.py:143
+#: ../roundup/roundupdb.py:210
 msgid "status"
 msgstr "état"
 
-#: ../roundup/roundupdb.py:143
-msgid "topic"
-msgstr "sujet"
-
-#: ../roundup/roundupdb.py:146
+#: ../roundup/roundupdb.py:213
 msgid "activity"
 msgstr "activité"
 
 #. following properties are common for all hyperdb classes
 #. they are listed here to keep things in one place
-#: ../roundup/roundupdb.py:146
+#: ../roundup/roundupdb.py:213
 msgid "actor"
 msgstr "acteur"
 
-#: ../roundup/roundupdb.py:146
+#: ../roundup/roundupdb.py:213
 msgid "creation"
 msgstr "création"
 
-#: ../roundup/roundupdb.py:146
+#: ../roundup/roundupdb.py:213
 msgid "creator"
 msgstr "créateur"
 
-#: ../roundup/roundupdb.py:304
+#: ../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 "Nouvel envoi de %(authname)s%(authaddr)s :"
 
-#: ../roundup/roundupdb.py:307
+#: ../roundup/roundupdb.py:460
 #, python-format
 msgid "%(authname)s%(authaddr)s added the comment:"
 msgstr "%(authname)s%(authaddr)s a ajouté le commentaire :"
 
-#: ../roundup/roundupdb.py:310
-msgid "System message:"
-msgstr "Message système :"
-
-#: ../roundup/scripts/roundup_demo.py:32
+#: ../roundup/roundupdb.py:463
+#, fuzzy, python-format
+msgid "Change by %(authname)s%(authaddr)s:"
+msgstr "Nouvel envoi de %(authname)s%(authaddr)s :"
+
+#: ../roundup/roundupdb.py:482
+#, python-format
+msgid "File '%(filename)s' not attached - you can download it from %(link)s."
+msgstr ""
+
+#: ../roundup/roundupdb.py:841
+#, python-format
+msgid ""
+"\n"
+"Now:\n"
+"%(new)s\n"
+"Was:\n"
+"%(old)s"
+msgstr ""
+
+#: ../roundup/scripts/roundup_demo.py:47
 #, python-format
 msgid "Enter directory path to create demo tracker [%s]: "
-msgstr "Saisissez le chemin du répertoire où créer le pisteur de démonstration [%s] : "
-
-#: ../roundup/scripts/roundup_gettext.py:22
+msgstr ""
+"Saisissez le chemin du répertoire où créer le pisteur de démonstration "
+"[%s] : "
+
+#: ../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 "Utilisation : %(program)s <répertoire du pisteur>"
 
-#: ../roundup/scripts/roundup_gettext.py:37
+#: ../roundup/scripts/roundup_gettext.py:48
 #, python-format
 msgid "No tracker templates found in directory %s"
 msgstr "Aucun modèle de pisteur dans le répertoire %s"
 
-#: ../roundup/scripts/roundup_mailgw.py:36
-#, python-format
+#: ../roundup/scripts/roundup_mailgw.py:48
+#, fuzzy, python-format
 msgid ""
-"Usage: %(program)s [-v] [-c] [[-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"
@@ -2051,11 +2672,11 @@
 "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"
@@ -2068,26 +2689,38 @@
 "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 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"
-" The username and password may be omitted:\n"
+" Alternatively, one can omit one or both of username and password:\n"
 "    pop username@server\n"
 "    pop server\n"
-" are both valid. The username and/or password will be prompted for if\n"
-" not supplied on the command-line.\n"
+" are both valid.\n"
+"\n"
+"POPS:\n"
+" Connect to a POP server over ssl. This requires python 2.4 or later.\n"
+" This supports the same notation as POP.\n"
 "\n"
 "APOP:\n"
 " Same as POP, but using Authenticated POP:\n"
@@ -2106,18 +2739,27 @@
 " This supports the same notation as IMAP.\n"
 "    imaps username:password@server [mailbox]\n"
 "\n"
+"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 ""
-"Utilisation : %(program)s [-v] [[-C classe] -S champ=valeur]* <base de l'instance> [méthode]\n"
+"Utilisation : %(program)s [-v] [[-C classe] -S champ=valeur]* <base de "
+"l'instance> [méthode]\n"
 "\n"
 "Options :\n"
 " -v : imprime la version et quitte.\n"
-" -c : classe de l'élement à créer (par défaut, la classe MAIL_DEFAULT_CLASS).\n"
+" -c : classe de l'élement à créer (par défaut, la classe "
+"MAIL_DEFAULT_CLASS).\n"
 " -C / -S : voir ci-dessous.\n"
 "\n"
 "La passerelle de messagerie de Roundup peut être appelée de quatre façons :\n"
 " . avec le répertoire de base d'une instance comme seul argument,\n"
-" . avec à la fois un répertoire de base et un fichier d'attente de messagerie,\n"
-" . avec à la fois un répertoire de base et un compte de serveur POP/APOP, ou\n"
+" . avec à la fois un répertoire de base et un fichier d'attente de "
+"messagerie,\n"
+" . avec à la fois un répertoire de base et un compte de serveur POP/APOP, "
+"ou\n"
 " . avec à la fois un répertoire de base et un compte de serveur IMAP/IMAPS.\n"
 "\n"
 "Elle accepte également les options -C et -S qui vous permettent\n"
@@ -2133,7 +2775,8 @@
 "adresse de messagerie.\n"
 "\n"
 "PIPE :\n"
-" Dans le premier cas, la passerelle de messagerie lit un seul message venant\n"
+" Dans le premier cas, la passerelle de messagerie lit un seul message "
+"venant\n"
 " de l'entrée standard et le soumet au module roundup.mailgw.\n"
 "\n"
 "UNIX mailbox :\n"
@@ -2173,25 +2816,34 @@
 "    imaps nom-d'utilisateur:mot-de-passe@serveur [boîte-aux-lettres]\n"
 "\n"
 
-#: ../roundup/scripts/roundup_mailgw.py:147
+#: ../roundup/scripts/roundup_mailgw.py:170
 msgid "Error: not enough source specification information"
-msgstr "Erreur : pas suffisament d'informations dans la spécification de la source"
-
-#: ../roundup/scripts/roundup_mailgw.py:163
-msgid "Error: pop specification not valid"
+msgstr ""
+"Erreur : pas suffisament d'informations dans la spécification de la source"
+
+#: ../roundup/scripts/roundup_mailgw.py:199
+#, fuzzy, python-format
+msgid "Error: %s specification not valid"
 msgstr "Erreur : la spécification pop n'est pas valide"
 
-#: ../roundup/scripts/roundup_mailgw.py:170
-msgid "Error: apop specification not valid"
-msgstr "Erreur : la spécification apop n'est pas valide"
-
-#: ../roundup/scripts/roundup_mailgw.py:184
+#: ../roundup/scripts/roundup_mailgw.py:205
+msgid "Error: a later version of python is required"
+msgstr ""
+
+#: ../roundup/scripts/roundup_mailgw.py:221
+#, fuzzy
 msgid ""
-"Error: The source must be either \"mailbox\", \"pop\", \"apop\", \"imap\" or "
-"\"imaps\""
-msgstr "Erreur : la source doit être « mailbox », « pop », « apop », « imap » ou « imaps »"
-
-#: ../roundup/scripts/roundup_server.py:157
+"Error: The source must be either \"mailbox\", \"pop\", \"pops\", \"apop\", "
+"\"imap\", \"imaps\" or \"imaps_cram"
+msgstr ""
+"Erreur : la source doit être « mailbox », « pop », « apop », « imap » ou "
+"« imaps »"
+
+#: ../roundup/scripts/roundup_server.py:90
+msgid "WARNING: generating temporary SSL certificate"
+msgstr ""
+
+#: ../roundup/scripts/roundup_server.py:270
 msgid ""
 "<html><head><title>Roundup trackers index</title></head>\n"
 "<body><h1>Roundup trackers index</h1><ol>\n"
@@ -2199,56 +2851,58 @@
 "<html><head><title>Index des pisteurs Roundup</title></head>\n"
 "<body><h1>Index des pisteurs Roundup</h1><ol>\n"
 
-#: ../roundup/scripts/roundup_server.py:287
+#: ../roundup/scripts/roundup_server.py:465
 #, python-format
 msgid "Error: %s: %s"
 msgstr "Erreur : %s: %s"
 
-#: ../roundup/scripts/roundup_server.py:297
+#: ../roundup/scripts/roundup_server.py:475
 msgid "WARNING: ignoring \"-g\" argument, not root"
-msgstr "ATTENTION : le paramètre « -g » est ignoré, vous n'êtes pas superutilisateur (« root »)"
-
-#: ../roundup/scripts/roundup_server.py:303
+msgstr ""
+"ATTENTION : le paramètre « -g » est ignoré, vous n'êtes pas superutilisateur "
+"(« root »)"
+
+#: ../roundup/scripts/roundup_server.py:481
 msgid "Can't change groups - no grp module"
 msgstr "Impossible de changer les groupes - le module grp n'est pas présent"
 
-#: ../roundup/scripts/roundup_server.py:312
+#: ../roundup/scripts/roundup_server.py:490
 #, python-format
 msgid "Group %(group)s doesn't exist"
 msgstr "Le groupe %(group)s n'existe pas"
 
-#: ../roundup/scripts/roundup_server.py:323
+#: ../roundup/scripts/roundup_server.py:501
 msgid "Can't run as root!"
 msgstr "Impossible d'exécuter en tant que superutilisateur (\"root\")"
 
-#: ../roundup/scripts/roundup_server.py:326
+#: ../roundup/scripts/roundup_server.py:504
 msgid "WARNING: ignoring \"-u\" argument, not root"
 msgstr ""
 "ATTENTION: le paramètre \"-u\" est ignoré, vous n'êtes pas superutilisateur "
 "(\"root\")"
 
-#: ../roundup/scripts/roundup_server.py:331
+#: ../roundup/scripts/roundup_server.py:510
 msgid "Can't change users - no pwd module"
 msgstr ""
 "Impossible de changer les utilisateurs - le module pwd n'est pas présent"
 
-#: ../roundup/scripts/roundup_server.py:340
+#: ../roundup/scripts/roundup_server.py:519
 #, python-format
 msgid "User %(user)s doesn't exist"
 msgstr "L'utilisateur %(user)s n'existe pas"
 
-#: ../roundup/scripts/roundup_server.py:471
+#: ../roundup/scripts/roundup_server.py:700
 #, python-format
 msgid "Multiprocess mode \"%s\" is not available, switching to single-process"
 msgstr ""
 "Le mode multiprocessus \"%s\" n'existe pas, passage en mode processus unique"
 
-#: ../roundup/scripts/roundup_server.py:494
+#: ../roundup/scripts/roundup_server.py:728
 #, python-format
 msgid "Unable to bind to port %s, port already in use."
 msgstr "Impossible de s'attacher au port %s, le port est déjà utilisé"
 
-#: ../roundup/scripts/roundup_server.py:562
+#: ../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"
@@ -2267,7 +2921,7 @@
 "               La commande « roundup-server -c help » donne les\n"
 "               spécificités du service Windows."
 
-#: ../roundup/scripts/roundup_server.py:569
+#: ../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"
@@ -2286,8 +2940,8 @@
 "PID\n"
 "               L'option -l option *doit* être spécifiée si -d est utilisé."
 
-#: ../roundup/scripts/roundup_server.py:576
-#, python-format
+#: ../roundup/scripts/roundup_server.py:810
+#, fuzzy, python-format
 msgid ""
 "%(message)sUsage: roundup-server [options] [name=tracker home]*\n"
 "\n"
@@ -2296,11 +2950,18 @@
 " -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"
 "%(os_part)s\n"
@@ -2361,7 +3022,8 @@
 "Options longues :\n"
 " --version            affiche le numéro de version Roundup et quitte\n"
 " --help               affiche ce texte et quitte\n"
-" --save-config        crée ou met à jour le fichier de configuration et quitte\n"
+" --save-config        crée ou met à jour le fichier de configuration et "
+"quitte\n"
 " --config <fichier>   utilise le fichier de configuration <fichier>\n"
 "\n"
 "Exemples :\n"
@@ -2394,38 +3056,38 @@
 "    souhaité. Assurez-vous que « name » ne contienne pas de caractères\n"
 "    inappropriés pour une URL, comme les espaces qui perturbe IE.\n"
 
-#: ../roundup/scripts/roundup_server.py:723
+#: ../roundup/scripts/roundup_server.py:968
 msgid "Instances must be name=home"
 msgstr "Les instances doivent être nom=base-du-pisteur"
 
-#: ../roundup/scripts/roundup_server.py:737
+#: ../roundup/scripts/roundup_server.py:982
 #, python-format
 msgid "Configuration saved to %s"
 msgstr "Configuration sauvegardée dans %s"
 
-#: ../roundup/scripts/roundup_server.py:755
+#: ../roundup/scripts/roundup_server.py:1000
 msgid "Sorry, you can't run the server as a daemon on this Operating System"
 msgstr ""
 "Désolé, vous ne pouvez pas démarrer le serveur en tâche de fond avec ce "
 "système d'exploitation"
 
-#: ../roundup/scripts/roundup_server.py:767
+#: ../roundup/scripts/roundup_server.py:1015
 #, python-format
 msgid "Roundup server started on %(HOST)s:%(PORT)s"
 msgstr "Le serveur Roundup est démarré sur %(HOST)s:%(PORT)s"
 
-#: ../templates/classic/html/_generic.collision.html:4
-#: ../templates/minimal/html/_generic.collision.html:4
+#: ../share/roundup/templates/classic/html/_generic.collision.html:4
+#: ../share/roundup/templates/minimal/html/_generic.collision.html:4
 msgid "${class} Edit Collision - ${tracker}"
 msgstr "Modification des collisions pour ${class} - ${tracker}"
 
-#: ../templates/classic/html/_generic.collision.html:7
-#: ../templates/minimal/html/_generic.collision.html:7
+#: ../share/roundup/templates/classic/html/_generic.collision.html:7
+#: ../share/roundup/templates/minimal/html/_generic.collision.html:7
 msgid "${class} Edit Collision"
 msgstr "Modification des collisions pour ${class}"
 
-#: ../templates/classic/html/_generic.collision.html:14
-#: ../templates/minimal/html/_generic.collision.html:14
+#: ../share/roundup/templates/classic/html/_generic.collision.html:14
+#: ../share/roundup/templates/minimal/html/_generic.collision.html:14
 msgid ""
 "\n"
 "  There has been a collision. Another user updated this node\n"
@@ -2438,71 +3100,109 @@
 "  modifier. Veuillez <a href='${context}'>actualiser</a> ce noeud et\n"
 "  v&eacute;rifier vos modifications.\n"
 
-#: ../templates/classic/html/_generic.help.html:9
-#: ../templates/minimal/html/_generic.help.html:9
-msgid "${property} help - ${tracker}"
-msgstr "Aide à propos de « ${property} » - ${tracker}"
-
-#: ../templates/classic/html/_generic.help.html:31
-#: ../templates/minimal/html/_generic.help.html:31
+#: ../share/roundup/templates/classic/html/_generic.help-empty.html:6
+msgid "Please specify your search parameters!"
+msgstr ""
+
+#: ../share/roundup/templates/classic/html/_generic.help-list.html:20
+#: ../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: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
+#: ../share/roundup/templates/classic/html/user.item.html:35
+#: ../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:34
+#: ../share/roundup/templates/minimal/html/user.register.html:14
+msgid "You are not allowed to view this page."
+msgstr "Vous n'&ecirc;tes pas autoris&eacute; &agrave; voir cette page."
+
+#: ../share/roundup/templates/classic/html/_generic.help-list.html:34
+msgid "1..25 out of 50"
+msgstr ""
+
+#: ../share/roundup/templates/classic/html/_generic.help-search.html:9
+msgid ""
+"Generic template ${template} or version for class ${classname} is not yet "
+"implemented"
+msgstr ""
+
+#: ../share/roundup/templates/classic/html/_generic.help-submit.html:57
+#: ../share/roundup/templates/classic/html/_generic.help.html:31
+#: ../share/roundup/templates/minimal/html/_generic.help.html:31
 msgid " Cancel "
 msgstr " Annuler "
 
-#: ../templates/classic/html/_generic.help.html:34
-#: ../templates/minimal/html/_generic.help.html:34
+#: ../share/roundup/templates/classic/html/_generic.help-submit.html:63
+#: ../share/roundup/templates/classic/html/_generic.help.html:34
+#: ../share/roundup/templates/minimal/html/_generic.help.html:34
 msgid " Apply "
 msgstr " Appliquer "
 
-#: ../templates/classic/html/_generic.help.html:41
-#: ../templates/classic/html/issue.index.html:73
-#: ../templates/minimal/html/_generic.help.html:41
+#: ../share/roundup/templates/classic/html/_generic.help.html:9
+#: ../share/roundup/templates/classic/html/user.help.html:13
+#: ../share/roundup/templates/minimal/html/_generic.help.html:9
+msgid "${property} help - ${tracker}"
+msgstr "Aide à propos de « ${property} » - ${tracker}"
+
+#: ../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:80
+#: ../share/roundup/templates/minimal/html/_generic.help.html:41
 msgid "&lt;&lt; previous"
 msgstr "&lt;&lt; pr&eacute;c&eacute;dents"
 
-#: ../templates/classic/html/_generic.help.html:53
-#: ../templates/classic/html/issue.index.html:81
-#: ../templates/minimal/html/_generic.help.html:53
+#: ../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:88
+#: ../share/roundup/templates/minimal/html/_generic.help.html:53
 msgid "${start}..${end} out of ${total}"
 msgstr "${start}..${end} sur ${total}"
 
-#: ../templates/classic/html/_generic.help.html:57
-#: ../templates/classic/html/issue.index.html:84
-#: ../templates/minimal/html/_generic.help.html:57
+#: ../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:91
+#: ../share/roundup/templates/minimal/html/_generic.help.html:57
 msgid "next &gt;&gt;"
 msgstr "suivants &gt;&gt;"
 
-#: ../templates/classic/html/_generic.index.html:6
-#: ../templates/classic/html/_generic.item.html:4
-#: ../templates/minimal/html/_generic.index.html:6
-#: ../templates/minimal/html/_generic.item.html:4
+#: ../share/roundup/templates/classic/html/_generic.index.html:6
+#: ../share/roundup/templates/classic/html/_generic.item.html:4
+#: ../share/roundup/templates/minimal/html/_generic.index.html:6
+#: ../share/roundup/templates/minimal/html/_generic.item.html:4
 msgid "${class} editing - ${tracker}"
 msgstr "Modification de ${class} - ${tracker}"
 
-#: ../templates/classic/html/_generic.index.html:9
-#: ../templates/classic/html/_generic.item.html:7
-#: ../templates/minimal/html/_generic.index.html:9
-#: ../templates/minimal/html/_generic.item.html:7
+#: ../share/roundup/templates/classic/html/_generic.index.html:9
+#: ../share/roundup/templates/classic/html/_generic.item.html:7
+#: ../share/roundup/templates/minimal/html/_generic.index.html:9
+#: ../share/roundup/templates/minimal/html/_generic.item.html:7
 msgid "${class} editing"
 msgstr "Modification de ${class}"
 
-#: ../templates/classic/html/_generic.index.html:14
-#: ../templates/classic/html/_generic.item.html:12
-#: ../templates/classic/html/file.item.html:9
-#: ../templates/classic/html/issue.index.html:16
-#: ../templates/classic/html/issue.item.html:28
-#: ../templates/classic/html/msg.item.html:26
-#: ../templates/classic/html/user.index.html:9
-#: ../templates/classic/html/user.item.html:28
-#: ../templates/minimal/html/_generic.index.html:14
-#: ../templates/minimal/html/_generic.item.html:12
-#: ../templates/minimal/html/user.index.html:9
-#: ../templates/minimal/html/user.item.html:28
-#: ../templates/minimal/html/user.register.html:14
-msgid "You are not allowed to view this page."
-msgstr "Vous n'&ecirc;tes pas autoris&eacute; &agrave; voir cette page."
-
-#: ../templates/classic/html/_generic.index.html:22
-#: ../templates/minimal/html/_generic.index.html:22
+#: ../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: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:16
+#: ../share/roundup/templates/minimal/html/user.index.html:13
+#: ../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 ""
+
+#: ../share/roundup/templates/classic/html/_generic.index.html:28
+#: ../share/roundup/templates/minimal/html/_generic.index.html:28
+#, fuzzy
 msgid ""
 "<p class=\"form-help\"> You may edit the contents of the ${classname} class "
 "using this form. Commas, newlines and double quotes (\") must be handled "
@@ -2511,206 +3211,225 @@
 "(\"\"). </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 "<p class=\"form-help\"> Vous pouvez modifier le contenu de la classe ${classname} en utilisant ce formulaire. Les virgules, passages &agrave; la ligne guillemets doubles (\") doivent &ecirc;tre g&eacute;r&eacute;s soigneusement. Vous pouvez ins&eacute;rer des virgules et des passage &agrave; la ligne en ins&eacute;rant les valeurs dans des guillemets doubles (\"). Les guillemets doubles eux-m&ecirc;mes doivent &ecirc;tre ins&eacute;r&eacute;s en les doublant (\"\").</p><p class=\"form-help\">Les propri&eacute;t&eacute;s des liens multiples doivent s&eacute;parer leurs valeurs multiples par des double-points « : » (... , \"un:deux:trois\", ...) </p><p class=\"form-help\"> Enlevez des entr&eacute;es en effa&ccedil;ant leur ligne. Ajoutez de nouvelles entr&eacute;es en les ajoutant &agrave; la fin de la table - mettez un « X » dans la colonne « id ».</p>"
-
-#: ../templates/classic/html/_generic.index.html:44
-#: ../templates/minimal/html/_generic.index.html:44
+"entries by 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 ""
+"<p class=\"form-help\"> Vous pouvez modifier le contenu de la classe "
+"${classname} en utilisant ce formulaire. Les virgules, passages &agrave; la "
+"ligne guillemets doubles (\") doivent &ecirc;tre g&eacute;r&eacute;s "
+"soigneusement. Vous pouvez ins&eacute;rer des virgules et des passage "
+"&agrave; la ligne en ins&eacute;rant les valeurs dans des guillemets doubles "
+"(\"). Les guillemets doubles eux-m&ecirc;mes doivent &ecirc;tre ins&eacute;"
+"r&eacute;s en les doublant (\"\").</p><p class=\"form-help\">Les "
+"propri&eacute;t&eacute;s des liens multiples doivent s&eacute;parer leurs "
+"valeurs multiples par des double-points « : » (... , \"un:deux:trois\", ...) "
+"</p><p class=\"form-help\"> Enlevez des entr&eacute;es en effa&ccedil;ant "
+"leur ligne. Ajoutez de nouvelles entr&eacute;es en les ajoutant &agrave; la "
+"fin de la table - mettez un « X » dans la colonne « id ».</p>"
+
+#: ../share/roundup/templates/classic/html/_generic.index.html:53
+#: ../share/roundup/templates/minimal/html/_generic.index.html:53
 msgid "Edit Items"
 msgstr "Modifier des &eacute;l&eacute;ments"
 
-#: ../templates/classic/html/file.index.html:4
+#: ../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 "Liste des fichiers - ${tracker}s"
 
-#: ../templates/classic/html/file.index.html:5
+#: ../share/roundup/templates/classic/html/file.index.html:5
 msgid "List of files"
 msgstr "Liste des fichiers"
 
-#: ../templates/classic/html/file.index.html:10
+#: ../share/roundup/templates/classic/html/file.index.html:10
 msgid "Download"
 msgstr "T&eacute;l&eacute;charger"
 
-#: ../templates/classic/html/file.index.html:11
-#: ../templates/classic/html/file.item.html:22
+#: ../share/roundup/templates/classic/html/file.index.html:11
+#: ../share/roundup/templates/classic/html/file.item.html:27
 msgid "Content Type"
 msgstr "Type de contenu"
 
-#: ../templates/classic/html/file.index.html:12
+#: ../share/roundup/templates/classic/html/file.index.html:12
 msgid "Uploaded By"
 msgstr "T&eacute;l&eacute;charg&eacute; par"
 
-#: ../templates/classic/html/file.index.html:13
-#: ../templates/classic/html/msg.item.html:43
+#: ../share/roundup/templates/classic/html/file.index.html:13
+#: ../share/roundup/templates/classic/html/msg.item.html:48
 msgid "Date"
 msgstr "Date"
 
-#: ../templates/classic/html/file.item.html:2
+#: ../share/roundup/templates/classic/html/file.item.html:2
 msgid "File display - ${tracker}"
 msgstr "Affichage de fichier - ${tracker}"
 
-#: ../templates/classic/html/file.item.html:4
+#: ../share/roundup/templates/classic/html/file.item.html:4
 msgid "File display"
 msgstr "Affichage de fichier"
 
-#: ../templates/classic/html/file.item.html:18
-#: ../templates/classic/html/user.item.html:39
-#: ../templates/classic/html/user.register.html:17
+#: ../share/roundup/templates/classic/html/file.item.html:23
+#: ../share/roundup/templates/classic/html/user.register.html:17
 msgid "Name"
 msgstr "Nom"
 
-#: ../templates/classic/html/file.item.html:40
+#: ../share/roundup/templates/classic/html/file.item.html:45
 msgid "download"
 msgstr "t&eacute;l&eacute;chargement"
 
-#: ../templates/classic/html/home.classlist.html:2
-#: ../templates/minimal/html/home.classlist.html:2
+#: ../share/roundup/templates/classic/html/home.classlist.html:2
+#: ../share/roundup/templates/minimal/html/home.classlist.html:2
 msgid "List of classes - ${tracker}"
 msgstr "Liste des classes - ${tracker}"
 
-#: ../templates/classic/html/home.classlist.html:4
-#: ../templates/minimal/html/home.classlist.html:4
+#: ../share/roundup/templates/classic/html/home.classlist.html:4
+#: ../share/roundup/templates/minimal/html/home.classlist.html:4
 msgid "List of classes"
 msgstr "Liste des classes"
 
-#: ../templates/classic/html/issue.index.html:7
-msgid "List of issues - ${tracker}"
-msgstr "Liste des anomalies - ${tracker}"
-
-#: ../templates/classic/html/issue.index.html:11
+#: ../share/roundup/templates/classic/html/issue.index.html:3
+#: ../share/roundup/templates/classic/html/issue.index.html:9
 msgid "List of issues"
 msgstr "Liste des anomalies"
 
-#: ../templates/classic/html/issue.index.html:22
-#: ../templates/classic/html/issue.item.html:44
+#: ../share/roundup/templates/classic/html/issue.index.html:26
+#: ../share/roundup/templates/classic/html/issue.item.html:49
 msgid "Priority"
 msgstr "Priorit&eacute;"
 
-#: ../templates/classic/html/issue.index.html:23
+#: ../share/roundup/templates/classic/html/issue.index.html:27
 msgid "ID"
 msgstr "ID"
 
-#: ../templates/classic/html/issue.index.html:24
+#: ../share/roundup/templates/classic/html/issue.index.html:28
 msgid "Creation"
 msgstr "Cr&eacute;ation"
 
-#: ../templates/classic/html/issue.index.html:25
+#: ../share/roundup/templates/classic/html/issue.index.html:29
 msgid "Activity"
 msgstr "Activit&eacute;"
 
-#: ../templates/classic/html/issue.index.html:26
+#: ../share/roundup/templates/classic/html/issue.index.html:30
 msgid "Actor"
 msgstr "Acteur"
 
-#: ../templates/classic/html/issue.index.html:27
-msgid "Topic"
-msgstr "Sujet"
-
-#: ../templates/classic/html/issue.index.html:28
-#: ../templates/classic/html/issue.item.html:39
+#: ../share/roundup/templates/classic/html/issue.index.html:31
+#: ../share/roundup/templates/classic/html/keyword.item.html:37
+msgid "Keyword"
+msgstr "Mot-cl&eacute;"
+
+#: ../share/roundup/templates/classic/html/issue.index.html:32
+#: ../share/roundup/templates/classic/html/issue.item.html:44
 msgid "Title"
 msgstr "Titre"
 
-#: ../templates/classic/html/issue.index.html:29
-#: ../templates/classic/html/issue.item.html:46
+#: ../share/roundup/templates/classic/html/issue.index.html:33
+#: ../share/roundup/templates/classic/html/issue.item.html:51
 msgid "Status"
 msgstr "&Eacute;tat"
 
-#: ../templates/classic/html/issue.index.html:30
+#: ../share/roundup/templates/classic/html/issue.index.html:34
 msgid "Creator"
 msgstr "Cr&eacute;ateur"
 
-#: ../templates/classic/html/issue.index.html:31
+#: ../share/roundup/templates/classic/html/issue.index.html:35
 msgid "Assigned&nbsp;To"
 msgstr "Affect&eacute;&nbsp;&agrave;"
 
-#: ../templates/classic/html/issue.index.html:97
+#: ../share/roundup/templates/classic/html/issue.index.html:104
 msgid "Download as CSV"
 msgstr "T&eacute;l&eacute;charger comme CSV"
 
-#: ../templates/classic/html/issue.index.html:105
+#: ../share/roundup/templates/classic/html/issue.index.html:114
 msgid "Sort on:"
 msgstr "Trier par :"
 
-
-#: ../templates/classic/html/issue.index.html:108
-#: ../templates/classic/html/issue.index.html:125
+#: ../share/roundup/templates/classic/html/issue.index.html:118
+#: ../share/roundup/templates/classic/html/issue.index.html:139
 msgid "- nothing -"
 msgstr "- rien -"
 
-#: ../templates/classic/html/issue.index.html:116
-#: ../templates/classic/html/issue.index.html:133
+#: ../share/roundup/templates/classic/html/issue.index.html:126
+#: ../share/roundup/templates/classic/html/issue.index.html:147
 msgid "Descending:"
 msgstr "Descendant:"
 
-#: ../templates/classic/html/issue.index.html:122
+#: ../share/roundup/templates/classic/html/issue.index.html:135
 msgid "Group on:"
 msgstr "Regrouper par :"
 
-#: ../templates/classic/html/issue.index.html:139
+#: ../share/roundup/templates/classic/html/issue.index.html:154
 msgid "Redisplay"
 msgstr "Actualiser"
 
-#: ../templates/classic/html/issue.item.html:7
+#: ../share/roundup/templates/classic/html/issue.item.html:7
 msgid "Issue ${id}: ${title} - ${tracker}"
 msgstr "Anomalie ${id} : ${title} - ${tracker}"
 
-#: ../templates/classic/html/issue.item.html:10
+#: ../share/roundup/templates/classic/html/issue.item.html:10
 msgid "New Issue - ${tracker}"
 msgstr "Nouvelle anomalie - ${tracker}"
 
-#: ../templates/classic/html/issue.item.html:14
+#: ../share/roundup/templates/classic/html/issue.item.html:14
 msgid "New Issue"
 msgstr "Nouvelle anomalie"
 
-#: ../templates/classic/html/issue.item.html:16
+#: ../share/roundup/templates/classic/html/issue.item.html:16
 msgid "New Issue Editing"
 msgstr "Création d'une nouvelle anomalie"
 
-#: ../templates/classic/html/issue.item.html:19
+#: ../share/roundup/templates/classic/html/issue.item.html:19
 msgid "Issue${id}"
 msgstr "Anomalie ${id}"
 
-#: ../templates/classic/html/issue.item.html:22
+#: ../share/roundup/templates/classic/html/issue.item.html:22
 msgid "Issue${id} Editing"
 msgstr "Modification de l'anomalie ${id}"
 
-#: ../templates/classic/html/issue.item.html:51
+#: ../share/roundup/templates/classic/html/issue.item.html:56
 msgid "Superseder"
 msgstr "Supplant&eacute; par"
 
-#: ../templates/classic/html/issue.item.html:56
-msgid "View: ${link}"
-msgstr "Voir : ${link}"
-
-#: ../templates/classic/html/issue.item.html:60
+#: ../share/roundup/templates/classic/html/issue.item.html:61
+msgid "View:"
+msgstr ""
+
+#: ../share/roundup/templates/classic/html/issue.item.html:67
 msgid "Nosy List"
 msgstr "Liste des curieux"
 
-#: ../templates/classic/html/issue.item.html:69
+#: ../share/roundup/templates/classic/html/issue.item.html:76
 msgid "Assigned To"
 msgstr "Affect&eacute; &agrave;"
 
-#: ../templates/classic/html/issue.item.html:71
-msgid "Topics"
-msgstr "Sujets"
-
-#: ../templates/classic/html/issue.item.html:79
+#: ../share/roundup/templates/classic/html/issue.item.html:78
+#: ../share/roundup/templates/classic/html/page.html:105
+#: ../share/roundup/templates/minimal/html/page.html:105
+msgid "Keywords"
+msgstr "Mots-cl&eacute;"
+
+#: ../share/roundup/templates/classic/html/issue.item.html:86
 msgid "Change Note"
 msgstr "Note de modification"
 
-#: ../templates/classic/html/issue.item.html:87
+#: ../share/roundup/templates/classic/html/issue.item.html:94
 msgid "File"
 msgstr "Fichier"
 
-#: ../templates/classic/html/issue.item.html:99
+#: ../share/roundup/templates/classic/html/issue.item.html:106
 msgid "Make a copy"
 msgstr "R&eacute;aliser une copie"
 
-#: ../templates/classic/html/issue.item.html:107
-#: ../templates/classic/html/user.item.html:106
-#: ../templates/classic/html/user.register.html:69
-#: ../templates/minimal/html/user.item.html:86
+#: ../share/roundup/templates/classic/html/issue.item.html:114
+#: ../share/roundup/templates/classic/html/user.item.html:153
+#: ../share/roundup/templates/classic/html/user.register.html:72
+#: ../share/roundup/templates/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>"
@@ -2719,212 +3438,220 @@
 "\"required\">mis en &eacute;vidence</th> <td>&nbsp;sont requis.</td> </tr> </"
 "table>"
 
-#: ../templates/classic/html/issue.item.html:121
+#: ../share/roundup/templates/classic/html/issue.item.html:128
+#, fuzzy
 msgid ""
-"Created on <b>${creation}</b> by <b>${creator}</b>, last changed <b>"
-"${activity}</b> by <b>${actor}</b>."
+"Created on ${creation} by ${creator}, last changed ${activity} by ${actor}."
 msgstr ""
 "Cr&eacute;&eacute; le <b>${creation}</b> par <b>${creator}</b>, "
 "modifi&eacute; le <b>${activity}</b> par <b>${actor}</b>."
 
-#: ../templates/classic/html/issue.item.html:125
-#: ../templates/classic/html/msg.item.html:56
+#: ../share/roundup/templates/classic/html/issue.item.html:132
+#: ../share/roundup/templates/classic/html/msg.item.html:61
 msgid "Files"
 msgstr "Fichiers"
 
-#: ../templates/classic/html/issue.item.html:127
-#: ../templates/classic/html/msg.item.html:58
+#: ../share/roundup/templates/classic/html/issue.item.html:134
+#: ../share/roundup/templates/classic/html/msg.item.html:63
 msgid "File name"
 msgstr "Nom de fichier"
 
-#: ../templates/classic/html/issue.item.html:128
-#: ../templates/classic/html/msg.item.html:59
+#: ../share/roundup/templates/classic/html/issue.item.html:135
+#: ../share/roundup/templates/classic/html/msg.item.html:64
 msgid "Uploaded"
 msgstr "T&eacute;l&eacute;charg&eacute;"
 
-#: ../templates/classic/html/issue.item.html:129
+#: ../share/roundup/templates/classic/html/issue.item.html:136
 msgid "Type"
 msgstr "Type"
 
-#: ../templates/classic/html/issue.item.html:130
-#: ../templates/classic/html/query.edit.html:30
+#: ../share/roundup/templates/classic/html/issue.item.html:137
+#: ../share/roundup/templates/classic/html/query.edit.html:60
 msgid "Edit"
 msgstr "Modifier"
 
-#: ../templates/classic/html/issue.item.html:131
+#: ../share/roundup/templates/classic/html/issue.item.html:138
 msgid "Remove"
 msgstr "Supprimer"
 
-#: ../templates/classic/html/issue.item.html:151
-#: ../templates/classic/html/issue.item.html:172
-#: ../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 "supprimer"
 
-#: ../templates/classic/html/issue.item.html:158
-#: ../templates/classic/html/msg.index.html:9
+#: ../share/roundup/templates/classic/html/issue.item.html:167
+#: ../share/roundup/templates/classic/html/msg.index.html:9
 msgid "Messages"
 msgstr "Messages"
 
-#: ../templates/classic/html/issue.item.html:162
+#: ../share/roundup/templates/classic/html/issue.item.html:171
 msgid "msg${id} (view)"
 msgstr "msg${id} (voir)"
 
-#: ../templates/classic/html/issue.item.html:163
+#: ../share/roundup/templates/classic/html/issue.item.html:172
 msgid "Author: ${author}"
 msgstr "Auteur : ${author}"
 
-#: ../templates/classic/html/issue.item.html:165
+#: ../share/roundup/templates/classic/html/issue.item.html:174
 msgid "Date: ${date}"
 msgstr "Date : ${date}"
 
-#: ../templates/classic/html/issue.search.html:2
+#: ../share/roundup/templates/classic/html/issue.search.html:2
 msgid "Issue searching - ${tracker}"
 msgstr "Recherche de l'anomalie - ${tracker}"
 
-#: ../templates/classic/html/issue.search.html:4
+#: ../share/roundup/templates/classic/html/issue.search.html:4
 msgid "Issue searching"
 msgstr "Recherche de l'anomalie"
 
-#: ../templates/classic/html/issue.search.html:25
+#: ../share/roundup/templates/classic/html/issue.search.html:32
 msgid "Filter on"
 msgstr "Filter sur"
 
-#: ../templates/classic/html/issue.search.html:26
+#: ../share/roundup/templates/classic/html/issue.search.html:33
 msgid "Display"
 msgstr "Afficher"
 
-#: ../templates/classic/html/issue.search.html:27
+#: ../share/roundup/templates/classic/html/issue.search.html:34
 msgid "Sort on"
 msgstr "Trier par"
 
-#: ../templates/classic/html/issue.search.html:28
+#: ../share/roundup/templates/classic/html/issue.search.html:35
 msgid "Group on"
 msgstr "Grouper par"
 
-#: ../templates/classic/html/issue.search.html:32
+#: ../share/roundup/templates/classic/html/issue.search.html:39
 msgid "All text*:"
 msgstr "Tout le texte* :"
 
-#: ../templates/classic/html/issue.search.html:40
+#: ../share/roundup/templates/classic/html/issue.search.html:47
 msgid "Title:"
 msgstr "Titre:"
 
-#: ../templates/classic/html/issue.search.html:50
-msgid "Topic:"
-msgstr "Sujet:"
-
-#: ../templates/classic/html/issue.search.html:58
+#: ../share/roundup/templates/classic/html/issue.search.html:57
+#, fuzzy
+msgid "Keyword:"
+msgstr "Mot-cl&eacute;"
+
+#: ../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 "non s&eacute;lectionn&eacute;"
+
+#: ../share/roundup/templates/classic/html/issue.search.html:68
 msgid "ID:"
 msgstr "ID:"
 
-#: ../templates/classic/html/issue.search.html:66
+#: ../share/roundup/templates/classic/html/issue.search.html:76
 msgid "Creation Date:"
 msgstr "Date de cr&eacute;ation :"
 
-#: ../templates/classic/html/issue.search.html:77
+#: ../share/roundup/templates/classic/html/issue.search.html:87
 msgid "Creator:"
 msgstr "Cr&eacute;ateur:"
 
-#: ../templates/classic/html/issue.search.html:79
+#: ../share/roundup/templates/classic/html/issue.search.html:89
 msgid "created by me"
 msgstr "cr&eacute;&eacute; par moi"
 
-#: ../templates/classic/html/issue.search.html:88
+#: ../share/roundup/templates/classic/html/issue.search.html:98
 msgid "Activity:"
 msgstr "Activit&eacute; :"
 
-#: ../templates/classic/html/issue.search.html:99
+#: ../share/roundup/templates/classic/html/issue.search.html:109
 msgid "Actor:"
 msgstr "Acteur:"
 
-#: ../templates/classic/html/issue.search.html:101
+#: ../share/roundup/templates/classic/html/issue.search.html:111
 msgid "done by me"
 msgstr "fait par moi"
 
-#: ../templates/classic/html/issue.search.html:112
+#: ../share/roundup/templates/classic/html/issue.search.html:122
 msgid "Priority:"
 msgstr "Priorit&eacute; :"
 
-#: ../templates/classic/html/issue.search.html:114
-#: ../templates/classic/html/issue.search.html:130
-msgid "not selected"
-msgstr "non s&eacute;lectionn&eacute;"
-
-#: ../templates/classic/html/issue.search.html:125
+#: ../share/roundup/templates/classic/html/issue.search.html:135
 msgid "Status:"
 msgstr "&Eacute;tat :"
 
-#: ../templates/classic/html/issue.search.html:128
+#: ../share/roundup/templates/classic/html/issue.search.html:138
 msgid "not resolved"
 msgstr "non r&eacute;solu"
 
-#: ../templates/classic/html/issue.search.html:143
+#: ../share/roundup/templates/classic/html/issue.search.html:153
 msgid "Assigned to:"
 msgstr "Affect&eacute; &agrave; :"
 
-#: ../templates/classic/html/issue.search.html:146
+#: ../share/roundup/templates/classic/html/issue.search.html:156
 msgid "assigned to me"
 msgstr "affect&eacute; &agrave; moi"
 
-#: ../templates/classic/html/issue.search.html:148
+#: ../share/roundup/templates/classic/html/issue.search.html:158
 msgid "unassigned"
 msgstr "non affect&eacute;"
 
-#: ../templates/classic/html/issue.search.html:158
+#: ../share/roundup/templates/classic/html/issue.search.html:168
 msgid "No Sort or group:"
 msgstr "Aucun tri ou groupe :"
 
-#: ../templates/classic/html/issue.search.html:166
+#: ../share/roundup/templates/classic/html/issue.search.html:176
 msgid "Pagesize:"
 msgstr "Taille de la page :"
 
-#: ../templates/classic/html/issue.search.html:172
+#: ../share/roundup/templates/classic/html/issue.search.html:182
 msgid "Start With:"
 msgstr "Commence par :"
 
-#: ../templates/classic/html/issue.search.html:178
+#: ../share/roundup/templates/classic/html/issue.search.html:188
 msgid "Sort Descending:"
 msgstr "Tri descendant :"
 
-#: ../templates/classic/html/issue.search.html:185
+#: ../share/roundup/templates/classic/html/issue.search.html:195
 msgid "Group Descending:"
 msgstr "Groupe descendant :"
 
-#: ../templates/classic/html/issue.search.html:192
+#: ../share/roundup/templates/classic/html/issue.search.html:202
 msgid "Query name**:"
 msgstr "Nom de requête** :"
 
-#: ../templates/classic/html/issue.search.html:204
-#: ../templates/classic/html/page.html:31
-#: ../templates/classic/html/page.html:60
-#: ../templates/minimal/html/page.html:31
+#: ../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:40
+#: ../share/roundup/templates/minimal/html/page.html:92
 msgid "Search"
 msgstr "Rechercher"
 
-#: ../templates/classic/html/issue.search.html:209
+#: ../share/roundup/templates/classic/html/issue.search.html:220
 msgid "*: The \"all text\" field will look in message bodies and issue titles"
-msgstr "* : le champ « tout le texte » recherchera dans tous les corps de message et les titres de l'anomalie"
-
-#: ../templates/classic/html/issue.search.html:212
+msgstr ""
+"* : le champ « tout le texte » recherchera dans tous les corps de message et "
+"les titres de l'anomalie"
+
+#: ../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"
-msgstr "** : si vous attribuez un nom, la requ&ecirc;te sera enregistr&eacute;e et disponible comme lien dans la barre lat&eacute;rale"
-
-#: ../templates/classic/html/keyword.item.html:3
+msgstr ""
+"** : si vous attribuez un nom, la requ&ecirc;te sera enregistr&eacute;e et "
+"disponible comme lien dans la barre lat&eacute;rale"
+
+#: ../share/roundup/templates/classic/html/keyword.item.html:3
 msgid "Keyword editing - ${tracker}"
 msgstr "Modification de mots cl&eacute; - ${tracker}"
 
-#: ../templates/classic/html/keyword.item.html:5
+#: ../share/roundup/templates/classic/html/keyword.item.html:5
 msgid "Keyword editing"
 msgstr "Modification de mot-cl&eacute;s"
 
-#: ../templates/classic/html/keyword.item.html:11
+#: ../share/roundup/templates/classic/html/keyword.item.html:11
 msgid "Existing Keywords"
 msgstr "Mot-cl&eacute;s existants"
 
-#: ../templates/classic/html/keyword.item.html:20
+#: ../share/roundup/templates/classic/html/keyword.item.html:20
 msgid ""
 "To edit an existing keyword (for spelling or typing errors), click on its "
 "entry above."
@@ -2932,273 +3659,338 @@
 "Pour modifier un mot-cl&eacute; existant (pour les erreurs d'orthographe et "
 "de frappe), cliquez sur son entr&eacute;e ci-dessus."
 
-#: ../templates/classic/html/keyword.item.html:27
+#: ../share/roundup/templates/classic/html/keyword.item.html:27
 msgid "To create a new keyword, enter it below and click \"Submit New Entry\"."
-msgstr "Pour cr&eacute;er un nouveau mot-cl&eacute;, saisissez-le ci-dessous et cliquer sur « Soumettre une nouvelle entr&eacute;e »."
-
-#: ../templates/classic/html/keyword.item.html:37
-msgid "Keyword"
-msgstr "Mot-cl&eacute;"
-
-#: ../templates/classic/html/msg.index.html:3
+msgstr ""
+"Pour cr&eacute;er un nouveau mot-cl&eacute;, saisissez-le ci-dessous et "
+"cliquer sur « Soumettre une nouvelle entr&eacute;e »."
+
+#: ../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 "Liste de messages - ${tracker}"
 
-#: ../templates/classic/html/msg.index.html:5
+#: ../share/roundup/templates/classic/html/msg.index.html:5
 msgid "Message listing"
 msgstr "Liste de messages"
 
-#: ../templates/classic/html/msg.item.html:6
+#: ../share/roundup/templates/classic/html/msg.item.html:6
 msgid "Message ${id} - ${tracker}"
 msgstr "Message ${id} - ${tracker}"
 
-#: ../templates/classic/html/msg.item.html:9
+#: ../share/roundup/templates/classic/html/msg.item.html:9
 msgid "New Message - ${tracker}"
 msgstr "Nouveau message - ${tracker}"
 
-#: ../templates/classic/html/msg.item.html:13
+#: ../share/roundup/templates/classic/html/msg.item.html:13
 msgid "New Message"
 msgstr "Nouveau message"
 
-#: ../templates/classic/html/msg.item.html:15
+#: ../share/roundup/templates/classic/html/msg.item.html:15
 msgid "New Message Editing"
 msgstr "Modification d'un nouveau message"
 
-#: ../templates/classic/html/msg.item.html:18
+#: ../share/roundup/templates/classic/html/msg.item.html:18
 msgid "Message${id}"
 msgstr "Message${id}"
 
-#: ../templates/classic/html/msg.item.html:21
+#: ../share/roundup/templates/classic/html/msg.item.html:21
 msgid "Message${id} Editing"
 msgstr "Modification du message ${id}"
 
-#: ../templates/classic/html/msg.item.html:33
+#: ../share/roundup/templates/classic/html/msg.item.html:38
 msgid "Author"
 msgstr "Auteur"
 
-#: ../templates/classic/html/msg.item.html:38
+#: ../share/roundup/templates/classic/html/msg.item.html:43
 msgid "Recipients"
 msgstr "Destinataires"
 
-#: ../templates/classic/html/msg.item.html:49
+#: ../share/roundup/templates/classic/html/msg.item.html:54
 msgid "Content"
 msgstr "Contenu"
 
-#: ../templates/classic/html/page.html:41
+#: ../share/roundup/templates/classic/html/page.html:54
+#: ../share/roundup/templates/minimal/html/page.html:54
 msgid "<b>Your Queries</b> (<a href=\"query?@template=edit\">edit</a>)"
-msgstr "<b>Vos requ&ecirc;tes</b> (<a href=\"query?@template=edit\">modifier</a>)"
-
-#: ../templates/classic/html/page.html:52
+msgstr ""
+"<b>Vos requ&ecirc;tes</b> (<a href=\"query?@template=edit\">modifier</a>)"
+
+#: ../share/roundup/templates/classic/html/page.html:65
+#: ../share/roundup/templates/minimal/html/page.html:65
 msgid "Issues"
 msgstr "Anomalies"
 
-#: ../templates/classic/html/page.html:54
-#: ../templates/classic/html/page.html:74
+#: ../share/roundup/templates/classic/html/page.html:67
+#: ../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 "Cr&eacute;er"
 
-#: ../templates/classic/html/page.html:56
+#: ../share/roundup/templates/classic/html/page.html:69
+#: ../share/roundup/templates/minimal/html/page.html:69
 msgid "Show Unassigned"
 msgstr "Afficher les non-affectées"
 
-#: ../templates/classic/html/page.html:58
+#: ../share/roundup/templates/classic/html/page.html:81
+#: ../share/roundup/templates/minimal/html/page.html:81
 msgid "Show All"
 msgstr "Tout afficher"
 
-#: ../templates/classic/html/page.html:61
+#: ../share/roundup/templates/classic/html/page.html:93
+#: ../share/roundup/templates/minimal/html/page.html:93
 msgid "Show issue:"
 msgstr "Voir l'anomalie :"
 
-#: ../templates/classic/html/page.html:72
-msgid "Keywords"
-msgstr "Mots-cl&eacute;"
-
-#: ../templates/classic/html/page.html:78
+#: ../share/roundup/templates/classic/html/page.html:110
+#: ../share/roundup/templates/minimal/html/page.html:110
 msgid "Edit Existing"
 msgstr "Modifier"
 
-#: ../templates/classic/html/page.html:84
-#: ../templates/minimal/html/page.html:65
+#: ../share/roundup/templates/classic/html/page.html:116
+#: ../share/roundup/templates/minimal/html/page.html:116
 msgid "Administration"
 msgstr "Administration"
 
-#: ../templates/classic/html/page.html:86
-#: ../templates/minimal/html/page.html:66
+#: ../share/roundup/templates/classic/html/page.html:118
+#: ../share/roundup/templates/minimal/html/page.html:118
 msgid "Class List"
 msgstr "Liste des classes"
 
-#: ../templates/classic/html/page.html:90
-#: ../templates/minimal/html/page.html:68
+#: ../share/roundup/templates/classic/html/page.html:122
+#: ../share/roundup/templates/minimal/html/page.html:122
 msgid "User List"
 msgstr "Liste des utilisateurs"
 
-#: ../templates/classic/html/page.html:92
-#: ../templates/minimal/html/page.html:71
+#: ../share/roundup/templates/classic/html/page.html:124
+#: ../share/roundup/templates/minimal/html/page.html:124
 msgid "Add User"
 msgstr "Ajouter un utilisateur"
 
-#: ../templates/classic/html/page.html:99
-#: ../templates/classic/html/page.html:105
-#: ../templates/minimal/html/page.html:46
+#: ../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 "Se connecter"
 
-#: ../templates/classic/html/page.html:104
-#: ../templates/minimal/html/page.html:45
+#: ../share/roundup/templates/classic/html/page.html:136
+#: ../share/roundup/templates/minimal/html/page.html:138
 msgid "Remember me?"
 msgstr "Se souvenir"
 
-#: ../templates/classic/html/page.html:108
-#: ../templates/classic/html/user.register.html:63
-#: ../templates/minimal/html/page.html:50
-#: ../templates/minimal/html/user.register.html:58
+#: ../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 "S'inscrire"
 
-#: ../templates/classic/html/page.html:111
+#: ../share/roundup/templates/classic/html/page.html:150
+#: ../share/roundup/templates/minimal/html/page.html:150
 msgid "Lost&nbsp;your&nbsp;login?"
 msgstr "Retrouver&nbsp;votre&nbsp;identifiant"
 
-#: ../templates/classic/html/page.html:116
+#: ../share/roundup/templates/classic/html/page.html:155
+#: ../share/roundup/templates/minimal/html/page.html:155
 msgid "Hello, ${user}"
 msgstr "Bienvenue, ${user}"
 
-#: ../templates/classic/html/page.html:118
+#: ../share/roundup/templates/classic/html/page.html:157
 msgid "Your Issues"
 msgstr "Vos anomalies"
 
-#: ../templates/classic/html/page.html:119
-#: ../templates/minimal/html/page.html:57
+#: ../share/roundup/templates/classic/html/page.html:169
+#: ../share/roundup/templates/minimal/html/page.html:157
 msgid "Your Details"
 msgstr "Vos d&eacute;tails"
 
-#: ../templates/classic/html/page.html:121
-#: ../templates/minimal/html/page.html:59
+#: ../share/roundup/templates/classic/html/page.html:171
+#: ../share/roundup/templates/minimal/html/page.html:159
 msgid "Logout"
 msgstr "Se d&eacute;connecter"
 
-#: ../templates/classic/html/page.html:125
+#: ../share/roundup/templates/classic/html/page.html:175
+#: ../share/roundup/templates/minimal/html/page.html:163
 msgid "Help"
 msgstr "Aide"
 
-#: ../templates/classic/html/page.html:126
+#: ../share/roundup/templates/classic/html/page.html:176
+#: ../share/roundup/templates/minimal/html/page.html:164
 msgid "Roundup docs"
 msgstr "Documentation de Roundup"
 
-#: ../templates/classic/html/page.html:136
-#: ../templates/minimal/html/page.html:81
+#: ../share/roundup/templates/classic/html/page.html:187
+#: ../share/roundup/templates/minimal/html/page.html:175
 msgid "clear this message"
 msgstr "Supprimer ce message"
 
-#: ../templates/classic/html/page.html:181
+#: ../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 "aucune importance"
 
-#: ../templates/classic/html/page.html:183
+#: ../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 "------------"
 
-#: ../templates/classic/html/page.html:210
+#: ../share/roundup/templates/classic/html/page.html:325
+#: ../share/roundup/templates/minimal/html/page.html:297
 msgid "no value"
 msgstr "pas de valeur"
 
-#: ../templates/classic/html/query.edit.html:4
+#: ../share/roundup/templates/classic/html/query.edit.html:4
 msgid "\"Your Queries\" Editing - ${tracker}"
 msgstr "Modification de « Vos requ&ecirc;tes » - ${tracker}"
 
-#: ../templates/classic/html/query.edit.html:6
+#: ../share/roundup/templates/classic/html/query.edit.html:6
 msgid "\"Your Queries\" Editing"
 msgstr "Modification de « Vos requ&ecirc;tes »"
 
-#: ../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 "Vous n'avez pas l'autorisation de modifier des requ&ecirc;tes."
 
-#: ../templates/classic/html/query.edit.html:28
+#: ../share/roundup/templates/classic/html/query.edit.html:58
 msgid "Query"
 msgstr "Requ&ecirc;te"
 
-#: ../templates/classic/html/query.edit.html:29
+#: ../share/roundup/templates/classic/html/query.edit.html:59
 msgid "Include in \"Your Queries\""
 msgstr "Inclus dans « Vos requ&ecirc;tes »"
 
-#: ../templates/classic/html/query.edit.html:31
+#: ../share/roundup/templates/classic/html/query.edit.html:61
 msgid "Private to you?"
 msgstr "Priv&eacute; ?"
 
-#: ../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 "sortir"
 
-#: ../templates/classic/html/query.edit.html:45
+#: ../share/roundup/templates/classic/html/query.edit.html:78
 msgid "include"
 msgstr "inclure"
 
-#: ../templates/classic/html/query.edit.html:49
+#: ../share/roundup/templates/classic/html/query.edit.html:82
 msgid "leave in"
 msgstr "entrer"
 
-#: ../templates/classic/html/query.edit.html:54
+#: ../share/roundup/templates/classic/html/query.edit.html:87
+#: ../share/roundup/templates/classic/html/query.edit.html:121
+msgid "edit"
+msgstr "modifier"
+
+#: ../share/roundup/templates/classic/html/query.edit.html:91
+msgid "yes"
+msgstr "oui"
+
+#: ../share/roundup/templates/classic/html/query.edit.html:93
+msgid "no"
+msgstr "non"
+
+#: ../share/roundup/templates/classic/html/query.edit.html:99
+msgid "Delete"
+msgstr "Supprimer"
+
+#: ../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 "[ne vous appartient pas]"
+
+#: ../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 "[requ&ecirc;te retir&eacute;e]"
 
-#: ../templates/classic/html/query.edit.html:67
-#: ../templates/classic/html/query.edit.html:92
-msgid "edit"
-msgstr "modifier"
-
-#: ../templates/classic/html/query.edit.html:71
-msgid "yes"
-msgstr "oui"
-
-#: ../templates/classic/html/query.edit.html:73
-msgid "no"
-msgstr "non"
-
-#: ../templates/classic/html/query.edit.html:79
-msgid "Delete"
-msgstr "Supprimer"
-
-#: ../templates/classic/html/query.edit.html:94
-msgid "[not yours to edit]"
-msgstr "[ne vous appartient pas]"
-
-#: ../templates/classic/html/query.edit.html:102
+#: ../share/roundup/templates/classic/html/query.edit.html:141
+#: ../share/roundup/templates/classic/html/query.edit.html:156
+#, fuzzy
+msgid "Restore"
+msgstr "restauré"
+
+#: ../share/roundup/templates/classic/html/query.edit.html:154
+#, fuzzy
+msgid "[query is private]"
+msgstr "[requ&ecirc;te retir&eacute;e]"
+
+#: ../share/roundup/templates/classic/html/query.edit.html:168
 msgid "Save Selection"
 msgstr "Enregistrer la sélection"
 
-#: ../templates/classic/html/user.forgotten.html:3
+#: ../share/roundup/templates/classic/html/user.forgotten.html:3
 msgid "Password reset request - ${tracker}"
 msgstr "Demande de r&eacute;initialisation de mot de passe - ${tracker}"
 
-#: ../templates/classic/html/user.forgotten.html:5
+#: ../share/roundup/templates/classic/html/user.forgotten.html:5
 msgid "Password reset request"
 msgstr "Demande de r&eacute;initialisation de mot de passe"
 
-#: ../templates/classic/html/user.forgotten.html:9
+#: ../share/roundup/templates/classic/html/user.forgotten.html:9
 msgid ""
 "You have two options if you have forgotten your password. If you know the "
 "email address you registered with, enter it below."
-msgstr "Vous avez deux solutions si vous avez oubli&eacute; votre mot de passe. Si vous connaissez l'adresse électronique avec laquelle vous vous &ecirc;tes enregistr&eacute;, saisissez l&agrave; ci-dessous."
-
-#: ../templates/classic/html/user.forgotten.html:16
+msgstr ""
+"Vous avez deux solutions si vous avez oubli&eacute; votre mot de passe. Si "
+"vous connaissez l'adresse électronique avec laquelle vous vous &ecirc;tes "
+"enregistr&eacute;, saisissez l&agrave; ci-dessous."
+
+#: ../share/roundup/templates/classic/html/user.forgotten.html:16
 msgid "Email Address:"
 msgstr "Adresse électronique :"
 
-#: ../templates/classic/html/user.forgotten.html:24
-#: ../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 "Demander une réinitialisation du mot de passe"
 
-#: ../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 "ou, si vous connaissez votre nom d'utilisateur, saisissez-le ci-dessous."
-
-#: ../templates/classic/html/user.forgotten.html:33
+msgstr ""
+"ou, si vous connaissez votre nom d'utilisateur, saisissez-le ci-dessous."
+
+#: ../share/roundup/templates/classic/html/user.forgotten.html:35
 msgid "Username:"
 msgstr "Nom d'utilisateur :"
 
-#: ../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."
@@ -3207,181 +3999,317 @@
 "les instructions qu'il contient pour terminer le processus de\n"
 "r&eacute;initialisation de votre mot de passe."
 
-#: ../templates/classic/html/user.index.html:3
-#: ../templates/minimal/html/user.index.html:3
+#: ../share/roundup/templates/classic/html/user.help-search.html:73
+#, fuzzy
+msgid "Pagesize"
+msgstr "Taille de la page :"
+
+#: ../share/roundup/templates/classic/html/user.help.html:43
+msgid ""
+"Your browser is not capable of using frames; you should be redirected "
+"immediately, or visit ${link}."
+msgstr ""
+
+#: ../share/roundup/templates/classic/html/user.index.html:3
+#: ../share/roundup/templates/minimal/html/user.index.html:3
 msgid "User listing - ${tracker}"
 msgstr "Liste des utilisateurs - ${tracker}"
 
-#: ../templates/classic/html/user.index.html:5
-#: ../templates/minimal/html/user.index.html:5
+#: ../share/roundup/templates/classic/html/user.index.html:5
+#: ../share/roundup/templates/minimal/html/user.index.html:5
 msgid "User listing"
 msgstr "Liste des utilisateurs"
 
-#: ../templates/classic/html/user.index.html:14
-#: ../templates/minimal/html/user.index.html:14
+#: ../share/roundup/templates/classic/html/user.index.html:19
+#: ../share/roundup/templates/minimal/html/user.index.html:19
 msgid "Username"
 msgstr "Nom d'utilisateur"
 
-#: ../templates/classic/html/user.index.html:15
+#: ../share/roundup/templates/classic/html/user.index.html:20
 msgid "Real name"
 msgstr "Nom r&eacute;el"
 
-#: ../templates/classic/html/user.index.html:16
-#: ../templates/classic/html/user.item.html:70
-#: ../templates/classic/html/user.register.html:45
+#: ../share/roundup/templates/classic/html/user.index.html:21
+#: ../share/roundup/templates/classic/html/user.register.html:45
 msgid "Organisation"
 msgstr "Organisation"
 
-#: ../templates/classic/html/user.index.html:17
-#: ../templates/minimal/html/user.index.html:15
+#: ../share/roundup/templates/classic/html/user.index.html:22
+#: ../share/roundup/templates/minimal/html/user.index.html:20
 msgid "Email address"
 msgstr "Adresse électronique"
 
-#: ../templates/classic/html/user.index.html:18
+#: ../share/roundup/templates/classic/html/user.index.html:23
 msgid "Phone number"
 msgstr "Num&eacute;ro de t&eacute;l&eacute;phone"
 
-#: ../templates/classic/html/user.index.html:19
+#: ../share/roundup/templates/classic/html/user.index.html:24
 msgid "Retire"
 msgstr "Retirer"
 
-#: ../templates/classic/html/user.index.html:32
+#: ../share/roundup/templates/classic/html/user.index.html:43
 msgid "retire"
 msgstr "retirer"
 
-#: ../templates/classic/html/user.item.html:7
-#: ../templates/minimal/html/user.item.html:7
+#: ../share/roundup/templates/classic/html/user.item.html:9
+#: ../share/roundup/templates/minimal/html/user.item.html:8
 msgid "User ${id}: ${title} - ${tracker}"
 msgstr "Utilisateur ${id} : ${title} - ${tracker}"
 
-#: ../templates/classic/html/user.item.html:10
-#: ../templates/minimal/html/user.item.html:10
+#: ../share/roundup/templates/classic/html/user.item.html:12
+#: ../share/roundup/templates/minimal/html/user.item.html:11
 msgid "New User - ${tracker}"
 msgstr "Nouvel utilisateur - ${tracker}"
 
-#: ../templates/classic/html/user.item.html:14
-#: ../templates/minimal/html/user.item.html:14
+#: ../share/roundup/templates/classic/html/user.item.html:21
+#: ../share/roundup/templates/minimal/html/user.item.html:20
 msgid "New User"
 msgstr "Nouvel utilisateur"
 
-#: ../templates/classic/html/user.item.html:16
-#: ../templates/minimal/html/user.item.html:16
+#: ../share/roundup/templates/classic/html/user.item.html:23
+#: ../share/roundup/templates/minimal/html/user.item.html:22
 msgid "New User Editing"
 msgstr "Création d'un nouvel utilisateur"
 
-#: ../templates/classic/html/user.item.html:19
-#: ../templates/minimal/html/user.item.html:19
+#: ../share/roundup/templates/classic/html/user.item.html:26
+#: ../share/roundup/templates/minimal/html/user.item.html:25
 msgid "User${id}"
 msgstr "Utilisateur ${id}"
 
-#: ../templates/classic/html/user.item.html:22
-#: ../templates/minimal/html/user.item.html:22
+#: ../share/roundup/templates/classic/html/user.item.html:29
+#: ../share/roundup/templates/minimal/html/user.item.html:28
 msgid "User${id} Editing"
 msgstr "Modification de l'utilisateur ${id}"
 
-#: ../templates/classic/html/user.item.html:43
-#: ../templates/classic/html/user.register.html:21
-#: ../templates/minimal/html/user.item.html:40
-#: ../templates/minimal/html/user.register.html:26
+#: ../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:75
+#: ../share/roundup/templates/minimal/html/user.register.html:41
+msgid "Roles"
+msgstr "R&ocirc;les"
+
+#: ../share/roundup/templates/classic/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 ""
+"(pour donner à l'utilisateur plus d'un r&ocirc;le, saisissez une liste,"
+"s&eacute;par&eacute;e,par,des,virgules)"
+
+#: ../share/roundup/templates/classic/html/user.item.html:109
+msgid "(the default is ${zone})"
+msgstr "(par d&eacute;faut: ${zone})"
+
+#: ../share/roundup/templates/classic/html/user.item.html:130
+#: ../share/roundup/templates/classic/html/user.register.html:53
+#: ../share/roundup/templates/minimal/html/user.register.html:53
+msgid "Alternate E-mail addresses<br>One address per line"
+msgstr "Adresses électronique alternatives<br>Une adresse par ligne"
+
+#: ../share/roundup/templates/classic/html/user.register.html:4
+#: ../share/roundup/templates/classic/html/user.register.html:7
+#: ../share/roundup/templates/minimal/html/user.register.html:4
+#: ../share/roundup/templates/minimal/html/user.register.html:7
+msgid "Registering with ${tracker}"
+msgstr "Inscription à ${tracker}"
+
+#: ../share/roundup/templates/classic/html/user.register.html:21
+#: ../share/roundup/templates/minimal/html/user.register.html:29
 msgid "Login Name"
 msgstr "Nom d'utilisateur"
 
-#: ../templates/classic/html/user.item.html:47
-#: ../templates/classic/html/user.register.html:25
-#: ../templates/minimal/html/user.item.html:44
-#: ../templates/minimal/html/user.register.html:30
+#: ../share/roundup/templates/classic/html/user.register.html:25
+#: ../share/roundup/templates/minimal/html/user.register.html:33
 msgid "Login Password"
 msgstr "Mot de passe"
 
-#: ../templates/classic/html/user.item.html:51
-#: ../templates/classic/html/user.register.html:29
-#: ../templates/minimal/html/user.item.html:48
-#: ../templates/minimal/html/user.register.html:34
+#: ../share/roundup/templates/classic/html/user.register.html:29
+#: ../share/roundup/templates/minimal/html/user.register.html:37
 msgid "Confirm Password"
 msgstr "Confirmation du mot de passe"
 
-#: ../templates/classic/html/user.item.html:55
-#: ../templates/classic/html/user.register.html:33
-#: ../templates/minimal/html/user.item.html:52
-#: ../templates/minimal/html/user.register.html:38
-msgid "Roles"
-msgstr "R&ocirc;les"
-
-#: ../templates/classic/html/user.item.html:61
-#: ../templates/minimal/html/user.item.html:58
-msgid "(to give the user more than one role, enter a comma,separated,list)"
-msgstr "(pour donner à l'utilisateur plus d'un r&ocirc;le, saisissez une liste,s&eacute;par&eacute;e,par,des,virgules)"
-
-#: ../templates/classic/html/user.item.html:66
-#: ../templates/classic/html/user.register.html:41
+#: ../share/roundup/templates/classic/html/user.register.html:41
 msgid "Phone"
 msgstr "T&eacute;l&eacute;phone"
 
-#: ../templates/classic/html/user.item.html:74
-msgid "Timezone"
-msgstr "Fuseau horaire"
-
-#: ../templates/classic/html/user.item.html:78
-msgid "(the default is ${zone})"
-msgstr ""
-"(par d&eacute;faut: ${zone})"
-
-#: ../templates/classic/html/user.item.html:83
-#: ../templates/classic/html/user.register.html:49
-#: ../templates/minimal/html/user.item.html:63
-#: ../templates/minimal/html/user.register.html:46
+#: ../share/roundup/templates/classic/html/user.register.html:49
+#: ../share/roundup/templates/minimal/html/user.register.html:49
 msgid "E-mail address"
 msgstr "Adresse électronique"
 
-#: ../templates/classic/html/user.item.html:91
-#: ../templates/classic/html/user.register.html:53
-#: ../templates/minimal/html/user.item.html:71
-#: ../templates/minimal/html/user.register.html:50
-msgid "Alternate E-mail addresses<br>One address per line"
-msgstr "Adresses électronique alternatives<br>Une adresse par ligne"
-
-#: ../templates/classic/html/user.register.html:4
-#: ../templates/classic/html/user.register.html:7
-#: ../templates/minimal/html/user.register.html:4
-#: ../templates/minimal/html/user.register.html:7
-msgid "Registering with ${tracker}"
-msgstr "Inscription à ${tracker}"
-
-#: ../templates/classic/html/user.rego_progress.html:4
-#: ../templates/minimal/html/user.rego_progress.html:4
+#: ../share/roundup/templates/classic/html/user.rego_progress.html:4
+#: ../share/roundup/templates/minimal/html/user.rego_progress.html:4
 msgid "Registration in progress - ${tracker}"
 msgstr "Inscription en cours - ${tracker}"
 
-#: ../templates/classic/html/user.rego_progress.html:6
-#: ../templates/minimal/html/user.rego_progress.html:6
+#: ../share/roundup/templates/classic/html/user.rego_progress.html:6
+#: ../share/roundup/templates/minimal/html/user.rego_progress.html:6
 msgid "Registration in progress..."
 msgstr "Inscription en cours..."
 
-#: ../templates/classic/html/user.rego_progress.html:10
-#: ../templates/minimal/html/user.rego_progress.html:10
+#: ../share/roundup/templates/classic/html/user.rego_progress.html:10
+#: ../share/roundup/templates/minimal/html/user.rego_progress.html:10
 msgid ""
 "You will shortly receive an email to confirm your registration. To complete "
 "the registration process, visit the link indicated in the email."
-msgstr "Vous recevrez sous peu un courriel confirmant votre inscription. Pour cl&ocirc;turer le processus d'inscription, suivez le lien indiqu&eacute; dans le courriel."
-
-#: ../templates/minimal/html/home.html:2
+msgstr ""
+"Vous recevrez sous peu un courriel confirmant votre inscription. Pour "
+"cl&ocirc;turer le processus d'inscription, suivez le lien indiqu&eacute; "
+"dans le courriel."
+
+#: ../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
+#, fuzzy
+msgid "testing"
+msgstr "Liste des utilisateurs"
+
+#: ../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
+#, fuzzy
+msgid "resolved"
+msgstr "non r&eacute;solu"
+
+#: ../share/roundup/templates/devel/extensions/spambayes.py:65
+#: ../share/roundup/templates/responsive/extensions/spambayes.py:65
+#, fuzzy
+msgid "Message classified as"
+msgstr "Liste de messages"
+
+#: ../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 "Accueil de Tracker - ${tracker}"
 
-#: ../templates/minimal/html/home.html:4
+#: ../share/roundup/templates/minimal/html/home.html:4
 msgid "Tracker home"
 msgstr "Accueil de Tracker"
 
-#: ../templates/minimal/html/home.html:16
+#: ../share/roundup/templates/minimal/html/home.html:16
 msgid "Please select from one of the menu options on the left."
 msgstr "S&eacute;lectionnez l'une des options du menu de gauche."
 
-#: ../templates/minimal/html/home.html:19
+#: ../share/roundup/templates/minimal/html/home.html:19
 msgid "Please log in or register."
 msgstr "Veuillez vous connecter ou vous inscrire."
 
-#: ../templates/minimal/html/page.html:55
-msgid "Hello,<br>${user}"
-msgstr "Bienvenue, <br/>${user}"
-
- 	  	 
+#~ msgid "%(key)s: %(value)r"
+#~ msgstr "%(key)s: %(value)r"
+
+#~ msgid ""
+#~ "Usage: history designator\n"
+#~ "        Show the history entries of a designator.\n"
+#~ "\n"
+#~ "        Lists the journal entries for the node identified by the "
+#~ "designator.\n"
+#~ "        "
+#~ msgstr ""
+#~ "Utilisation : history indicateur\n"
+#~ "        Affiche le journal des entrées d'un indicateur.\n"
+#~ "\n"
+#~ "        Liste les entrées de journal pour le noeud identifié par\n"
+#~ "        l'indicateur.\n"
+#~ "        "
+
+#~ msgid "WARNING: invalid date tuple %r"
+#~ msgstr "ATTENTION : tuple de date non valide %r"
+
+#~ msgid "%(class)s %(id)s - nothing changed"
+#~ msgstr "%(class)s %(id)s - aucun changement"
+
+#~ msgid "You do not have permission to edit user roles"
+#~ msgstr ""
+#~ "Vous n'avez pas la permission de modifier les rôles d'un utilisateur"
+
+#~ msgid "File is empty"
+#~ msgstr "Le fichier est vide"
+
+#~ msgid "*encrypted*"
+#~ msgstr "*crypté*"
+
+#~ msgid "topic"
+#~ msgstr "sujet"
+
+#~ msgid "System message:"
+#~ msgstr "Message système :"
+
+#~ msgid "Error: apop specification not valid"
+#~ msgstr "Erreur : la spécification apop n'est pas valide"
+
+#~ msgid "List of issues - ${tracker}"
+#~ msgstr "Liste des anomalies - ${tracker}"
+
+#~ msgid "Topic"
+#~ msgstr "Sujet"
+
+#~ msgid "View: ${link}"
+#~ msgstr "Voir : ${link}"
+
+#~ msgid "Topics"
+#~ msgstr "Sujets"
+
+#~ msgid "Topic:"
+#~ msgstr "Sujet:"
+
+#~ msgid "Timezone"
+#~ msgstr "Fuseau horaire"
+
+#~ msgid "Hello,<br>${user}"
+#~ msgstr "Bienvenue, <br/>${user}"

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