[gnue] r9695 - in trunk: gnue-appserver/po gnue-common/po gnue-forms/defaults/default gnue-forms/po

[email protected]
Newsgroups gmane.comp.cms.gnue.cvs
Message-ID <[email protected]>
Author: reinhard
Date: 2007-06-08 10:26:47 -0500 (Fri, 08 Jun 2007)
New Revision: 9695

Added:
   trunk/gnue-appserver/po/fr.po
   trunk/gnue-forms/defaults/default/fr.gfd
Modified:
   trunk/gnue-common/po/fr.po
   trunk/gnue-forms/po/fr.po
Log:
Updated French translations, thanks to Didier Belot (aka electrolinux).


Added: trunk/gnue-appserver/po/fr.po
===================================================================
--- trunk/gnue-appserver/po/fr.po	2007-06-08 15:04:07 UTC (rev 9694)
+++ trunk/gnue-appserver/po/fr.po	2007-06-08 15:26:47 UTC (rev 9695)
@@ -0,0 +1,836 @@
+# GNU Enterprise Appserver - French Translation
+# Copyright (C) 2004-2006 Free Software Foundation
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNUe-AppServer 0.5\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-08-24 10:53+CEST\n"
+"PO-Revision-Date: 2006-08-22 21:47+0200\n"
+"Last-Translator: Didier Belot <[email protected]>\n"
+"Language-Team: French\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: data.py:30
+msgid ""
+"Changing state from '%(oldstate)s' to 'initialized' not allowed in table '%"
+"(table)s' row %(row)s"
+msgstr ""
+"Changement d'état depuis '%(oldstate)s' vers 'initialized' non autorisé "
+"dans la ligne %(row)s de la table '%(table)s'"
+
+#: data.py:37
+msgid "Row '%(row)s' of table '%(table)s' has an invalid state '%(state)s'"
+msgstr "La ligne '%(row)s' de la table '%(table)s' a un état incorrect '%(state)s'"
+
+#: data.py:47
+msgid "Data contains circular references"
+msgstr "Les données contiennent des références circulaires"
+
+#: data.py:52
+msgid "Duplicate instance '%(row)s' in class '%(table)s'"
+msgstr "Instance dupliquée '%(row)s' dans la classe '%(table)s'"
+
+#: data.py:1901 geasInstance.py:470
+msgid "Order-by sequence mismatch: '%(self)s' and '%(other)s'"
+msgstr "Les éléments de tri '%(self)s' et '%(other)s' ne correspondent pas"
+
+#: data.py:1910 geasInstance.py:479
+msgid ""
+"Order-by sequence element has different directions: '%(self)s', '%(other)s'"
+msgstr "Les éléments de tri ont des directions différentes : '%(self)s', '%(other)s'"
+
+#: gcd/GCParser.py:47 gld/GLParser.py:41
+msgid "Class '%s' has no module"
+msgstr "La classe '%s' n'a pas de module"
+
+#: gcd/GCParser.py:53
+msgid "'%s' has a length in type and an extra length attribute"
+msgstr "'%s' a un champ length dans son type et un attribut supplémentaire length"
+
+#: gcd/GCParser.py:55
+msgid "'%s' has a scale in type and an extra scale attribute"
+msgstr "'%s' a un champ scale dans son type et un attribut supplémentaire scale"
+
+#: gcd/GCParser.py:60 gld/GLParser.py:46
+msgid ""
+"The class '%(class)s' mismatches the given module attribute '%(module)s'"
+msgstr ""
+"l'attribut de module '%(module)s' et le module de la classe '%(class)s' "
+"ne correspondent pas"
+
+#: gcd/GCParser.py:66
+msgid "Calculated property '%(class)s.%(property)s' has parameters"
+msgstr "La propriété calculée '%(class)s.%(property)s' a des paramètres"
+
+#: gcd/GCParser.py:75
+msgid "The module name '%s' contains underscores"
+msgstr "Le nom de module '%s' ne doit pas contenir de souligné ('_')"
+
+#: gcd/GCParser.py:80
+msgid "Reference '%(ref)s' not allowed for '%(type)s' instance %(name)s"
+msgstr ""
+"Référence '%(ref)s' non autorisée pour l'instance %(name)s de type '%(type)s' "
+
+#: gcd/GCParser.py:316
+msgid "Reference type '%s' must not have a length"
+msgstr "Une référence du type '%s' ne doit pas avoir de longueur"
+
+#: gcd/GCParser.py:319
+msgid "Reference type '%s' must not have a scale"
+msgstr "Une référence du type '%s' ne doit pas avoir d'échelle"
+
+#: gcd/GCParser.py:343
+msgid "Module has no name"
+msgstr "Le module n'a pas de nom"
+
+#: gcd/GCParser.py:368
+msgid "Class has no name"
+msgstr "La classe n'a pas de nom"
+
+#: gcd/readgcd.py:47
+msgid "Cannot find '%(key)s' named '%(value)s in lookup dictionary"
+msgstr ""
+"La clé '%(key)s' nommée '%(value)s n'existe pas dans le dictionnaire"
+
+#: gcd/readgcd.py:60 gld/readgld.py:53
+msgid "In file(s) '%s':"
+msgstr "Dans le fichier '%s' :"
+
+#: gcd/readgcd.py:68 repository.py:35
+msgid "Module '%s' not found in class repository"
+msgstr "Le module '%s' est introuvable dans le référentiel de classes"
+
+#: gcd/readgcd.py:73 gld/readgld.py:60 repository.py:40
+msgid "Class '%s' not found in class repository"
+msgstr "La classe '%s' est introuvable dans le référentiel de classes"
+
+#: gcd/readgcd.py:78
+msgid "Filter '%(filter)s' of class '%(class)s' not found in class repository"
+msgstr ""
+"Le filtre '%(filter)s' de la classe '%(class)s' est introuvable dans le référentiel de classes"
+
+#: gcd/readgcd.py:85
+msgid "Changing filter of existing class '%s' is not allowed"
+msgstr ""
+"Changer le filter de la classe existante '%s' n'est pas autorisé"
+
+#: gcd/readgcd.py:90
+msgid ""
+"Property '%s' cannot be added to existing class with 'NOT NULL' constraint"
+msgstr ""
+"La propriété '%s' ne peut être ajouté à une classe existante avec une contrainte 'NOT NULL'"
+
+#: gcd/readgcd.py:96
+msgid "Class '%s' is defined multiple times"
+msgstr "La classe '%s' est définie plusieurs fois"
+
+#: gcd/readgcd.py:111
+msgid ""
+"Create or update a database schema from a GNUe Class Definition (gcd) file\n"
+"and maintain data for all gnue_* classes"
+msgstr ""
+"Créer ou modifier un schéma de base de données depuis un fichier de définition\n"
+"de classe GNUe (gcd) et gérer les données pour toutes les classes gnue_*"
+
+#: gcd/readgcd.py:121 geasGsdGen.py:82 gld/readgld.py:101
+msgid "connectionname"
+msgstr "nom_de_connexion"
+
+#: gcd/readgcd.py:122 gld/readgld.py:102
+msgid "Use the connection <connectionname> for creating the schema"
+msgstr ""
+"Utilise la connexion <nom_de_connexion> pour créer le schéma"
+
+#: gcd/readgcd.py:124
+msgid "filename"
+msgstr "nom_de_fichier"
+
+#: gcd/readgcd.py:125
+msgid "Also send the code for creating the schema to this file."
+msgstr ""
+"Envoyer aussi le code de création du schéma dans ce fichier"
+
+#: gcd/readgcd.py:128
+msgid ""
+"If this flag is set, only code is sent to the output file and the schema is "
+"not created automatically."
+msgstr "Si ce drapeau est activé, le code est simplement affiché et le schéma "
+"n'est pas créé automatiquement."
+
+#: gcd/readgcd.py:131 gld/readgld.py:104
+msgid "user"
+msgstr "utilisateur"
+
+#: gcd/readgcd.py:132 gld/readgld.py:105
+msgid ""
+"Set the username for the database. If the database is to be created, this "
+"username will be it's owner."
+msgstr ""
+"Défini l'utilisateur de la base de données. Si la base "
+"de données doit être créée, cet utilisateur en sera le propriétaire."
+
+
+#: gcd/readgcd.py:135 gld/readgld.py:108
+msgid "password"
+msgstr "mot_de_passe"
+
+#: gcd/readgcd.py:136 gld/readgld.py:109
+msgid "Set the password for the database."
+msgstr "Mot de passe pour la connexion à la base de donnée"
+
+#: gcd/readgcd.py:256 gld/readgld.py:213
+msgid "No input file specified."
+msgstr "Pas de fichier d'entrée spécifié."
+
+#: gcd/readgcd.py:259 gld/readgld.py:216
+msgid "No connection specified."
+msgstr "Aucune connexion spécifiée."
+
+#: gcd/readgcd.py:263
+msgid "Output to file only requested, but no filename specified."
+msgstr "Sortie demandée uniquement vers un fichier, mais aucun "
+"nom de fichier spécifié."
+
+#: gcd/readgcd.py:274 gld/readgld.py:227
+msgid "Unable to open input file: %s"
+msgstr "Impossible d'ouvrir le fichier d'entrée %s."
+
+#: gcd/readgcd.py:294
+msgid "Loading gcd files ..."
+msgstr "Chargement des fichiers gcd ..."
+
+#: gcd/readgcd.py:338
+msgid "Updating schema ..."
+msgstr "Mise à jour du schéma ..."
+
+#: gcd/readgcd.py:359
+msgid "Updating class repository ..."
+msgstr "Mise à jour du référentiel de classes ..."
+
+#: gcd/readgcd.py:815
+msgid "  Modules   : %(ins)3d inserted, %(upd)3d updated, %(kept)3d unchanged."
+msgstr ""
+"  Modules    : %(ins)3d insérés, %(upd)3d modifiés, %(kept)3d préservés."
+
+#: gcd/readgcd.py:876
+msgid "  Classes   : %(ins)3d inserted, %(upd)3d updated, %(kept)3d unchanged."
+msgstr ""
+"  Classes    : %(ins)3d insérées, %(upd)3d modifiées, %(kept)3d préservées."
+
+#: gcd/readgcd.py:907
+msgid "  Properties: %(ins)3d inserted, %(upd)3d updated, %(kept)3d unchanged."
+msgstr ""
+"  Propriétés : %(ins)3d insérées, %(upd)3d modifiées, %(kept)3d préservées."
+
+#: gcd/readgcd.py:939
+msgid "  Procedures: %(ins)3d inserted, %(upd)3d updated, %(kept)3d unchanged."
+msgstr ""
+"  Procédures : %(ins)3d insérées, %(upd)3d modifiées, %(kept)3d préservées."
+
+#: gcd/readgcd.py:973
+msgid "  Parameters: %(ins)3d inserted, %(upd)3d updated, %(kept)3d unchanged."
+msgstr ""
+"  Paramètres : %(ins)3d insérés, %(upd)3d modifiés, %(kept)3d préservés."
+
+#: geasAuthentication.py:103
+msgid "User '%s' does not exist."
+msgstr "l'utilisateur '%s' n'existe pas."
+
+#: geasAuthentication.py:107
+msgid ""
+"Internal Error: More than one (%(numrec)s) record for user '%(username)s'."
+msgstr ""
+"Erreur interne : Plus d'un (%(numrec)s) enregistrement pour l'utilisateur '%(username)s'."
+
+#: geasAuthentication.py:113
+msgid "Invalid password for user '%s'"
+msgstr "Mot de passe incorrect pour l'utilisateur '%s'"
+
+#: geasAuthentication.py:175
+msgid "User '%s' logged in."
+msgstr "Utilisateur '%s' connecté."
+
+#: geasConfiguration.py:35 geasConfiguration.py:37
+msgid ""
+"Depreciated: Name of the database connection appserver is using. Use "
+"connection instead."
+msgstr ""
+"Déprécié : Nom de la connexion à la base de données utilisée par appserver. "
+"Utiliser l'option 'connection' à la place."
+
+#: geasConfiguration.py:44 geasConfiguration.py:45
+msgid "Name of the database connection appserver is using"
+msgstr "Nom de la connection utilisée par appserver"
+
+#: geasConfiguration.py:51 geasConfiguration.py:52
+msgid "RPC Interface Type appserver is providing"
+msgstr "Types d'interfaces RPC fournies par appserver"
+
+#: geasConfiguration.py:58 geasConfiguration.py:59
+msgid "Port (if needed) for RPC Interface"
+msgstr "Port (si nécessaire) de l'interface RPC"
+
+#: geasConfiguration.py:65 geasConfiguration.py:66
+msgid "Hosts which are allowed to access appserver"
+msgstr "Hôtes autorisés à accéder à appserver"
+
+#: geasConfiguration.py:72 geasConfiguration.py:73
+msgid "Hostname of the interface to bind services to"
+msgstr ""
+"Nom d'hôte de l'interface à laquelle attacher les services"
+
+#: geasConfiguration.py:79 geasConfiguration.py:80
+msgid "Null values appear first in ascending sort"
+msgstr "Les valeurs NULL apparaissent en premier dans le tri ascendant"
+
+#: geasConfiguration.py:86 geasConfiguration.py:87
+msgid "Null values appear first in descending sort"
+msgstr "Les valeurs NULL apparaissent en premier dans le tri descendant"
+
+#: geasConfiguration.py:93 geasConfiguration.py:94 geasRpcServer.py:154
+msgid "Semicolon-separated list of paths to load modules from"
+msgstr ""
+"Liste de chemins séparés par deux-points (:) d'où charger les modules"
+
+#: geasConfiguration.py:100 geasConfiguration.py:101
+msgid "Type of UUID to use. Can be 'time' or 'random'"
+msgstr ""
+"Type d'UUID à utiliser. Peut-être 'time' ou 'random'"
+
+#: geasConfiguration.py:107 geasConfiguration.py:108
+msgid "Directory for webfrontend http documents"
+msgstr "Répertoire des documents http de l'interface web"
+
+#: geasConfiguration.py:113 geasConfiguration.py:115
+msgid "Type of the HTTP server to use. Can be 'threading' or 'forking'"
+msgstr "Type de serveur HTTP à utiliser. Peut être 'threading' ou 'forking'"
+
+#: geasGsdGen.py:46
+msgid "Classes have circular or unresolveable references"
+msgstr "Les classes ont des références circulaires ou irresolvable"
+
+#: geasGsdGen.py:51
+msgid "The class '%s' contains circular data-references"
+msgstr "La classe '%s' contient des références circulaires"
+
+#: geasGsdGen.py:68
+msgid ""
+"A tool to dump data from a database into a GNUe Schema Definition (gsd) file."
+msgstr ""
+"Un outil pour vider les données d'une base de données\n"
+"dans un fichier de définition de schéma GNUe (gsd)."
+
+#: geasGsdGen.py:77
+msgid "database"
+msgstr "base_de_données"
+
+#: geasGsdGen.py:78
+msgid ""
+"Depreciated: Set the Database to use for data to <name>. gnue-appserver will "
+"search for it in connections.conf. Use '--connection' instead."
+msgstr ""
+"Déprécié : Défini la base de donnée à utiliser. gnue-appserver la recherche dans "
+"connections.conf. Utiliser plutôt '--connection'."
+
+#: geasGsdGen.py:83
+msgid "Use the connection <connectionname> for data retrieval."
+msgstr ""
+"Utiliser la connexion <nom_de_connexion> pour récupérer les données."
+
+#: geasGsdGen.py:85
+msgid "file"
+msgstr "fichier"
+
+#: geasGsdGen.py:86
+msgid "Name of the resulting gsd-file"
+msgstr "Nom du fichier gsd résultant"
+
+#: geasGsdGen.py:89
+msgid "If flag is set include system classes ('gnue_*')"
+msgstr "Inclure aussi les classe système ('gnue_*')"
+
+#: geasGsdGen.py:92
+msgid "If set all detail-classes of the requestd classes will be exported too"
+msgstr ""
+"Inclure aussi toutes les classes détails des classes demandées."
+
+#: geasGsdGen.py:137
+msgid "No output file specified."
+msgstr "Pas de fichier de sortie spécifié."
+
+#: geasGsdGen.py:142
+msgid "Loading class repository ..."
+msgstr "Chargement du référentiel de classes ..."
+
+#: geasGsdGen.py:148
+msgid "Building list of classes and calculating dependencies ..."
+msgstr "Construction de la liste des classes et calcul des dépendances ..."
+
+#: geasGsdGen.py:153
+msgid "Generating schema definition ..."
+msgstr "Génération de la définition du schéma ..."
+
+#: geasGsdGen.py:169
+msgid "Generation run complete."
+msgstr "Génération terminée."
+
+#: geasGsdGen.py:184
+msgid "Exporting data of class '%s' ..."
+msgstr "Les données de la classe '%s' sont exportées ..."
+
+#: geasGsdGen.py:361
+msgid "%s is not a valid date object"
+msgstr "%s n'est pas un objet date correct"
+
+#: geasGsdGen.py:378
+msgid "%s is not a valid time object"
+msgstr "%s n'est pas un objet heure correct"
+
+#: geasGsdGen.py:390
+msgid "%s is not a valid datetime object"
+msgstr "%s n'est pas un objet date/heure correct"
+
+#: geasGsdGen.py:423
+msgid "Invalid command line argument '='"
+msgstr "Argument de ligne de commande incorrect '='"
+
+#: geasGsdGen.py:426
+msgid "Filter '%s' started, but no value given"
+msgstr "Filtre '%s' démarré, mais aucune valeur donnée"
+
+#: geasGsdGen.py:463
+msgid "Filter class '%s' not found"
+msgstr "Classe filtre '%s' introuvable"
+
+#: geasGsdGen.py:469
+msgid "Filter '%(class)s' has no property '%(property)s'"
+msgstr "La classe filtre '%(classname)s' n'a pas de propriété '%(property)s'"
+
+#: geasGsdGen.py:507
+msgid "No filter '%s' found matching the requested values"
+msgstr "Aucun filtre '%s' ne correspond aux valeurs demandées"
+
+#: geasInstance.py:40
+msgid "Database returned invalid value '%(value)s' for property '%(property)s'"
+msgstr ""
+"La base de donnée à renvoyé une valeur invalide '%(value)s' pour la propriété "
+"'%(property)s'"
+
+#: geasInstance.py:48
+msgid "Invalid value '%(value)s' for property '%(property)s'"
+msgstr "Ungültiger Wert '%(value)s' für die Eigenschaft '%(property)s'"
+
+#: geasInstance.py:55
+msgid "Invalid value '%(value)s' for parameter '%(parameter)s'"
+msgstr "Valeur incorrecte '%(value)s' pour le paramètre '%(parameter)s'"
+
+#: geasInstance.py:62
+msgid ""
+"Procedure '%(procedure)s' expected a result of type '%(type)s', but got type "
+"'%(resulttype)s'"
+msgstr ""
+"La procédure '%(procedure)s' attendait un résultat de type '%(type)s', mais a "
+"reçu un '%(resulttype)s'"
+
+#: geasInstance.py:71
+msgid "Calculated field '%(property)s' is a read-only field"
+msgstr "La champ calculé '%(property)s' est en lecture-seule"
+
+#: geasInstance.py:77
+msgid ""
+"Cannot resolve propertyname '%(name)s' because '%(part)s' is not a reference "
+"property"
+msgstr ""
+"Ne peut résoudre le nom de propriété '%(name)s' car '%(part)s' n'est pas une référence "
+
+#: geasRpcServer.py:107
+msgid ""
+"The GNUe Application Server is the core of the n-tier variant of the\n"
+"GNU Enterprise system. To the front end (be it GNUe Forms, GNUe Reports or\n"
+"any other tool), it provides user-defineable business objects with arbitary\n"
+"fields and methods. While transforming access to those fields and methods\n"
+"into database communication and calling of scripts, it cares about "
+"stability,\n"
+"security, speed, and consistency."
+msgstr ""
+"Le serveur d'application GNUe est le coeur de la variante n-tiers du\n"
+"système GNU Enterprise. Pour le frontal (que ce soit GNUe Forms, GNUe Reports\n"
+"ou n'importe quel autre outil), il fournit des objets-métiers définis par\n"
+"l'utilisateur, possédant des champs et méthodes arbitraires.\n"
+"Tandis qu'il transforme l'accès à ces champs et méthodes en communications\n"
+"avec la base de donnée et appels de scripts, il veille à la stabilité\n"
+"la sécurité, la vitesse et la cohérence."
+
+#: geasRpcServer.py:117
+msgid ""
+"Set the GNURPC connection type.  The currently supported values for <type>\n"
+"are 'xmlrpc', 'xmlrpc.py_xmlrpc', 'xmlrpc.pw_xmlrpc' and 'pyro'.  For more\n"
+"information on GNURPC connection types have a look at\n"
+"common/doc/RPC-abstraction."
+msgstr ""
+"Défini le type de connexion GNURPC. Les valeurs actuellement supportées sont\n"
+"'xmlrpc', 'xmlrpc.py_xmlrpc', 'xmlrpc.pw_xmlrpc' and 'pyro'.  Pour plus\n"
+"d'information sur les types de connexion GNURPC, regardez dans\n"
+"common/doc/RPC-abstraction."
+
+#: geasRpcServer.py:123
+msgid ""
+"Set the GNURPC port.  For more information on GNURPC have a look at\n"
+"common/doc/RPC-abstraction."
+msgstr ""
+"Défini le port GNURPC.  Pour plus d'information sur GNURPC, regardez dans\n"
+"common/doc/RPC-abstraction."
+
+#: geasRpcServer.py:127
+msgid ""
+"Depreciated: Set the Database to use for loading and storing data to "
+"<name>.\n"
+"gnue-appserver will search for it in connections.conf."
+msgstr ""
+"Déprécié : Défini la base de donnés à utiliser pour lire et écrire les données.\n"
+"gnue-appserver recherche ce nom dans connections.conf"
+
+#: geasRpcServer.py:131
+msgid ""
+"Set the Database to use for loading and storing data to <name>.\n"
+"gnue-appserver will search for it in connections.conf."
+msgstr ""
+"Défini la base de donnés à utiliser pour lire et écrire les données.\n"
+"gnue-appserver recherche ce nom dans connections.conf"
+
+#: geasRpcServer.py:135
+msgid "Set the username for the used database."
+msgstr "Nom d'utilisateur pour la base de donnée utilisée"
+
+#: geasRpcServer.py:138
+msgid "Set the password for the used database."
+msgstr "Mot de passe pour la base de donnée utilisée"
+
+#: geasRpcServer.py:141
+msgid ""
+"Test appservers connection to the backend database, check correctness of\n"
+"global settings, etc."
+msgstr ""
+"Teste les connexions au moteur de base de données, vérifie l'exactitude\n"
+"des réglages globaux, etc."
+
+#: geasRpcServer.py:145
+msgid ""
+"Enable appservers web frontend. Just works for the rpc-type XMLRPC.  The\n"
+"webfrontend is at the same port as XMLRPC."
+msgstr ""
+"Active le frontal web du serveur d'application. Ne fonctionne que pour le type\n"
+"XMLRPC. Le frontal est sur le même port que XMLRPC."
+
+#: geasRpcServer.py:149
+msgid ""
+"If set to 1, provides information on data dispatched to the RPC\n"
+"interface."
+msgstr ""
+"Mis à 1, fourni des informations sur les données traitées via\n"
+"l'interface RPC"
+
+#: geasRpcServer.py:156
+msgid "Special option for windows service install/update command."
+msgstr "Option spéciale pour la commande d'installation/mise à jour\n"
+"du service windows."
+
+#: geasRpcServer.py:218 geasRpcServer.py:238 geasRpcServer.py:247
+msgid "Exporting our services via %(rpctype)s (port %(port)s) ..."
+msgstr "Les services sont exportés via %(rpctype)s (Port %(port)s) ..."
+
+#: geasRpcServer.py:257
+msgid "Exporting our services via sockets (EXPERIMENTAL!) ..."
+msgstr "Les services sont exportés via sockets (EXPERIMENTAL!) ..."
+
+#: geasRpcServer.py:262
+msgid "The protocol you've set is currently not supported."
+msgstr "Vous avez défini un protocole qui n'est pas supporté actuellement."
+
+#: geasRpcServer.py:271
+msgid "Status: %s Sessions opened"
+msgstr "Etat : %s sessions ouvertes"
+
+#: geasRpcServer.py:310
+msgid ""
+"\n"
+"... GNUe Application Server up and running ...\n"
+msgstr ""
+"\n"
+"... Le serveur d'application GNUe a démarré ...\n"
+
+#: geasRpcServer.py:333
+msgid "Appserver is shutting down....ok"
+msgstr "Le serveur d'application s'arrête ... Ok"
+
+#: geasRpcServer.py:373
+msgid ""
+"\n"
+"GNUe Application Server is running a simple self test\n"
+"=====================================================\n"
+"\n"
+"PREREQUISITE: You have to populate the backend db with\n"
+"'the \"address_person\" example.\n"
+msgstr ""
+"\n"
+"Le serveur d'application GNUe exécute un auto-test\n"
+"==================================================\n"
+"\n"
+"PRE-REQUIS : Vous devez remplire la base de données\n"
+"avec les données de l'exemple \"address_person\".\n"
+
+
+#: geasRpcServer.py:382
+msgid "Step 1: Starting Session Manager ..."
+msgstr "Etape 1: Démarrage du gestionnaire de session-Manager ..."
+
+#: geasRpcServer.py:385
+msgid "Step 2: Opening session (user 'hacker', password 'secret') ..."
+msgstr "Etape 2: Ouverture de session (user 'hacker', password 'secret') ..."
+
+#: geasRpcServer.py:390
+msgid "Step 3: Creating object list ..."
+msgstr "Etape 3: Création de la liste des objets ..."
+
+#: geasRpcServer.py:394
+msgid "Step 4: Retrieving first instance ..."
+msgstr "Etape 4: Récupération de la première instance ..."
+
+#: geasRpcServer.py:398
+msgid ""
+"\n"
+"These are the values of the first instance:\n"
+"  Name  : %(name)s\n"
+"  Street: %(street)s\n"
+"  City  : %(city)s\n"
+msgstr ""
+"\n"
+"Voici les valeurs de la première instance:\n"
+"  Nom   : %(name)s\n"
+"  Rue   : %(street)s\n"
+"  Ville : %(city)s\n"
+
+#: geasRpcServer.py:406
+msgid "Step 5: Retrieving defined filters ..."
+msgstr "Etape 5: Récupération des filtres définis ..."
+
+#: geasRpcServer.py:410
+msgid "Selftest passed!"
+msgstr "Autotest passé!"
+
+#: geasSession.py:40
+msgid "Instance '%(objectId)s' of class '%(classname)s' not found"
+msgstr "Instance '%(objectId)s' de la classe '%(classname)s' introuvable"
+
+#: geasSession.py:47
+msgid "Access to class '%s' denied"
+msgstr "Accès à la classe '%s' refusé"
+
+#: geasSession.py:52
+msgid "Cannot find a list with ID '%s'"
+msgstr "Ne peut trouver une liste avec l'ID '%s'"
+
+#: geasSession.py:57
+msgid "No parameter for the filter %s specified"
+msgstr "Aucun paramètre pour le filtre %s spéficié"
+
+#: geasSession.py:62
+msgid "'%(value)s' is not a valid filter of the type '%(name)s'"
+msgstr "'%(value)s' n'est pas un filtre correct pour le type '%(name)s'"
+
+#: geasSession.py:69
+msgid ""
+"Multiple instances of the filter '%(name)s' matches the value '%(value)s'"
+msgstr ""
+"De multiple instances du filtre  '%(name)s' correspondent à la valeur '%(value)s'"
+
+#: geasSession.py:77
+msgid "Maximum validation cycle reached. Classes in current cycle: %s"
+msgstr ""
+
+#: geasSessionManager.py:43
+msgid "Cannot find a session with ID '%s'"
+msgstr "Ne peut trouver une session avec l'ID '%s'"
+
+#: geasSessionManager.py:120
+msgid "Failed reloading repository: %s"
+msgstr "Impossible de recharger le référentiel : %s"
+
+#: geasSessionManager.py:137
+msgid "Reloading class repository ..."
+msgstr "Rechargement du référentiel de classe ..."
+
+#: geasSessionManager.py:141
+msgid "Class repository loaded"
+msgstr "Référentiel de classes chargé"
+
+#: generator/classdef.py:35
+msgid "The class '%s' has no properties to be displayed"
+msgstr "La classe '%s' n'a aucune propriété affichable"
+
+#: generator/form.py:66
+msgid "GNU Enterprise Application Server"
+msgstr "Serveur d'application GNU Enterprise"
+
+#: generator/form.py:69
+msgid "Generated form for class \"%s\""
+msgstr "Formulaire généré pour la classe \"%s\""
+
+#: generator/layout.py:45
+msgid "Created"
+msgstr "Création"
+
+#: generator/layout.py:47
+msgid "Last modified"
+msgstr "Dernière modification"
+
+#: gld/GLParser.py:52
+msgid "Element '%s' can either have a search- or info-attribute."
+msgstr ""
+
+#: gld/readgld.py:65
+msgid ""
+"Duplicate definition of element '%(itemname)s' for language '%(language)s'"
+msgstr ""
+"Définition dupliquée de l'élément '%(itemname)s' pour le langage '%(language)s'"
+
+#: gld/readgld.py:72 repository.py:50
+msgid "Class '%(classname)s' has no property '%(property)s'"
+msgstr "La classe '%(classname)s' n'a aucune propriété '%(property)s'"
+
+#: gld/readgld.py:78 repository.py:56
+msgid "Class '%(classname)s' has no procedure '%(procedure)s'"
+msgstr "La classe '%(classname)s' n'a aucune procédure '%(procedure)s'"
+
+#: gld/readgld.py:93
+msgid "Read GNUe Language Definitions and update the class repository"
+msgstr ""
+"Lit les définitions de langage GNUe et actualise le référentiel de classes"
+
+#: gld/readgld.py:244
+msgid "Loading GNUe language definitions"
+msgstr "Chargement des définitions de langage GNUe"
+
+#: gld/readgld.py:642
+msgid "  Labels  : %(ins)3d inserted, %(upd)3d updated, %(kept)3d unchanged."
+msgstr "  Etiquettes  : %(ins)3d insérées, %(upd)3d modifiées, %(kept)3d préservées."
+
+#: gld/readgld.py:675
+msgid "  Messages: %(ins)3d inserted, %(upd)3d updated, %(kept)3d unchanged."
+msgstr "  Messages : %(ins)3d insérés, %(upd)3d modifiés, %(kept)3d préservés."
+
+#: language/App.py:42
+msgid "name"
+msgstr "Nom"
+
+#: language/App.py:44
+msgid "Connect to the appserver using the connection <name>"
+msgstr ""
+
+#: language/Object.py:35
+msgid "Class '%(classname)s' has no member '%(member)s'"
+msgstr "La classe '%(classname)s' n'a pas d'attribut/méthode '%(member)s'"
+
+#: language/Session.py:35
+msgid "Cannot qualifiy name '%s', no context specified"
+msgstr ""
+"Ne peut qualifier le nom '%s', aucun contexte spécifié"
+
+#: language/Session.py:40
+msgid "Message '%s' not found"
+msgstr "Message '%s' introuvable"
+
+#: language/Session.py:63
+msgid ""
+"RPC Interface Version Mismatch!Please update to Appserver Version 0.4.4 or "
+"higher!"
+msgstr ""
+""
+
+#: repository.py:45
+msgid "Filter '%s' not found in class repository"
+msgstr "Filtre '%s' introuvable dans le référentiel"
+
+#: repository.py:62
+msgid "Procedure '%(procedure)s' has no parameter '%(parameter)s'"
+msgstr "La procédure '%(procedure)s' n'a aucun paramètre '%(parameter)s'"
+
+#: repository.py:68
+msgid "Property '%(prname)s' has no label '%(name)s'"
+msgstr "La propriété '%(prname)s' n'a pas d'étiquette '%(name)s'"
+
+#: repository.py:74
+msgid "Procedure '%(prname)s' has no label '%(name)s'"
+msgstr "La procédure '%(prname)s' n'a aucune étiquette '%(name)s'"
+
+#: repository.py:80
+msgid "Class '%(class)s' has no label for language '%(language)s'"
+msgstr "La classe '%(class)s' n'a aucune étiquette dans la langue '%(language)s'"
+
+#: repository.py:86
+msgid ""
+"Filter '%(filter)s' defined in class '%(classname)s' not found in class "
+"repository"
+msgstr ""
+"Le filtre '%(filter)s' de la classe '%(class)s' introuvable dans le "
+"référentiel"
+
+#: repository.py:96
+msgid "'%s' is not a valid type"
+msgstr "'%s' n'est pas un type correct"
+
+#: repository.py:104
+msgid ""
+"Error validating parameter '%(parameter)s' of procedure '%(procedure)s': %"
+"(errors)s"
+msgstr ""
+""
+
+#: repository.py:111
+msgid "'%s' is not a valid, fully qualified identifier"
+msgstr ""
+
+#: repository.py:116
+msgid "The filters have circular references"
+msgstr ""
+
+#: repository.py:121
+msgid "'%(property)s' of class '%(class)s' is not a reference property"
+msgstr ""
+
+#: repository.py:1336
+msgid "string does not support 'scale'"
+msgstr ""
+
+#: repository.py:1341
+msgid "%s does not support 'length'"
+msgstr ""
+
+#: repository.py:1343
+msgid "%s does not support 'scale'"
+msgstr ""
+
+#: repository.py:1348
+msgid "number without 'length'"
+msgstr ""
+
+#: repository.py:1373
+msgid "Reference types must not have a 'length'"
+msgstr ""
+
+#: repository.py:1376
+msgid "Reference types must not have a 'scale'"
+msgstr ""
+
+#: repository.py:1404
+msgid "%s: Procedure has no result, but a 'length' is specified."
+msgstr ""
+
+#: repository.py:1407
+msgid "%s: Procedure has no result, but a 'scale' is specified."
+msgstr ""
+

Modified: trunk/gnue-common/po/fr.po
===================================================================
--- trunk/gnue-common/po/fr.po	2007-06-08 15:04:07 UTC (rev 9694)
+++ trunk/gnue-common/po/fr.po	2007-06-08 15:26:47 UTC (rev 9695)
@@ -1,16 +1,17 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR ORGANIZATION
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+# GNU Enterprise Common - French Translation
+# Copyright (C) 2004-2007 Free Software Foundation
+# Laurent Savaete <[email protected]>
+# Didier Belot <[email protected]>, 2007
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2007-04-11 10:32+CEST\n"
-"PO-Revision-Date: 2004-04-14 19:00+0200\n"
-"Last-Translator: Laurent Savaete <[email protected]>\n"
+"Project-Id-Version: GNUe-Common 0.6\n"
+"POT-Creation-Date: 2007-06-08 00:20+CEST\n"
+"PO-Revision-Date: 2007-06-08 00:00+0200\n"
+"Last-Translator: Didier Belot <[email protected]>\n"
 "Language-Team: Francais <[email protected]>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: pygettext.py 1.5\n"
 
@@ -28,9 +29,9 @@
 "display (e.g., \"--debug-level 5\" displays all debugging messages at level "
 "5 or below.)"
 msgstr ""
-"Active les messages de débogage. L'argument spécifie le niveau des messages "
-"à afficher (par ex: \"--debug-level 5\" affiche tous les  messages de "
-"débogage de niveau 5 ou moins.)"
+"Active les messages de débogage. L'argument spécifie le niveau des messages "
+"à afficher (par ex: \"--debug-level 5\" affiche tous les  messages de "
+"débogage de niveau 5 ou moins.)"
 
 #: apps/GBaseApp.py:128 apps/GBaseApp.py:167 datasources/readgsd.py:142
 msgid "filename"
@@ -41,32 +42,32 @@
 "Sends all debugging messages to a specified file (e.g., \"--debug-file trace."
 "log\" sends all output to \"trace.log\")"
 msgstr ""
-"Envoie tous les messages de débogage vers le fichier spécifié (par ex: \"--"
-"debug-file trave.log\" envoie toutes les sorties vers \"trace.log\")"
+"Envoie tous les messages de débogage vers le fichier spécifié (par ex: \"--"
+"debug-file trace.log\" envoie toutes les sorties vers \"trace.log\")"
 
 #: apps/GBaseApp.py:136
 msgid "All python imports are logged to stdout"
-msgstr ""
+msgstr "Tous les imports python sont affichés sur la sortie standard"
 
 #: apps/GBaseApp.py:139
 msgid "Displays no output at all."
-msgstr ""
+msgstr "N'affiche rien du tout."
 
 #: apps/GBaseApp.py:142
 msgid "Displays this help screen."
-msgstr "Affiche cet écran d'aide."
+msgstr "Affiche cet écran d'aide."
 
 #: apps/GBaseApp.py:146
 msgid ""
 "Displays a list of valid configuration file entries, their purpose, and "
 "their default values."
 msgstr ""
-"Affiche une liste des entrées valides de fichier de configuration, leur "
-"rôle, et leur valeur par défaut."
+"Affiche une liste des entrées valides de fichier de configuration, leur "
+"rôle, et leur valeur par défaut."
 
 #: apps/GBaseApp.py:154
 msgid "Display all options of interest to core developers. "
-msgstr "Affiche toutes les options utiles pour les développeurs."
+msgstr "Affiche toutes les options utiles pour les développeurs."
 
 #: apps/GBaseApp.py:157
 msgid "type[,subtype]"
@@ -74,7 +75,7 @@
 
 #: apps/GBaseApp.py:158
 msgid "Generates self-documentation."
-msgstr "Génère l'auto-documentation."
+msgstr "Génère l'auto-documentation."
 
 #: apps/GBaseApp.py:161
 msgid "format"
@@ -85,16 +86,16 @@
 "Format to output the self-documentation in. Supported formats are dependent "
 "on the type of selfdoc being created."
 msgstr ""
-"Formatte l'auto-documentation pour la sortie. Les formats supportés "
-"dépendent du type d'autodoc créé."
+"Formatte l'auto-documentation pour la sortie. Les formats supportés "
+"dépendent du type d'autodoc créé."
 
 #: apps/GBaseApp.py:168
 msgid ""
 "Specifies the filename that selfdoc should write to. If not provided, output "
 "is sent to stdout."
 msgstr ""
-"Spécifie le nom du fichier autodoc à créer. S'il n'est pas spécifié, la "
-"sortie est envoyée sur la sortie standard."
+"Spécifie le nom du fichier autodoc à créer. S'il n'est pas spécifié, la "
+"sortie est envoyée sur la sortie standard."
 
 #: apps/GBaseApp.py:172
 msgid "options"
@@ -102,28 +103,29 @@
 
 #: apps/GBaseApp.py:173
 msgid "Options specific to individual selfdoc types."
-msgstr "Options spécifiques à certains types d'autodoc."
+msgstr "Options spécifiques à certains types d'autodoc."
 
 #: apps/GBaseApp.py:176
 msgid ""
 "Run Python's built-in profiler and display the resulting run statistics."
 msgstr ""
-"Exécute le profiler intégré à Python et affiche les statistiques d'exécution."
+"Exécute le profiler intégré à Python et affiche les statistiques d'exécution."
 
 #: apps/GBaseApp.py:180
 msgid "Run the app inside Python's built-in debugger "
-msgstr "Exécute l'application dans le débogueur intégré à Python."
+msgstr "Exécute l'application dans le débogueur intégré à Python."
 
 #: apps/GBaseApp.py:184
 msgid ""
 "Debug Python's garbage collection on a SIGUSR1. If the argument is empty "
 "'garbage.log' will be used as logfile."
 msgstr ""
+"Débogue le ramasse-miettes Python sur un SIGUSR1. Si l'argument est vide, le "
+"fichier 'garbage.log' sera utilisé."
 
 #: apps/GBaseApp.py:195 utils/tree.py:713
-#, fuzzy
 msgid "name"
-msgstr "nom de fichier"
+msgstr "nom"
 
 #: apps/GBaseApp.py:196
 msgid ""
@@ -131,17 +133,15 @@
 "be used for all databases.  If not supplied, the program will prompt for "
 "username."
 msgstr ""
-"Nom d'utilisateur utilisé pour se connecter à la base de données. S'il est "
-"spécifié, il sera utilisé pour toutes les bases de données. Sinon, le "
+"Nom d'utilisateur utilisé pour se connecter à la base de données. S'il est "
+"spécifié, il sera utilisé pour toutes les bases de données. Sinon, le "
 "programme demandera un nom d'utilisateur."
 
 #: apps/GBaseApp.py:201
-#, fuzzy
 msgid "passwd"
-msgstr "Mot de passe"
+msgstr "mot_de_passe"
 
 #: apps/GBaseApp.py:202
-#, fuzzy
 msgid ""
 "Password used to log into the database.  Note that if specified, this will "
 "be used for all databases.  If not supplied, the program will prompt for "
@@ -149,27 +149,25 @@
 "NOTE: SUPPLYING A PASSWORD VIA THE COMMAND LINE MAY BE CONSIDERED A SECURITY "
 "RISK AND IS NOT RECOMMENDED."
 msgstr ""
-"Mot de passe utilisé pour se connecter à la base de données. S'il est "
-"spécifié, il sera utilisé pour toutes les bases de données. Sinon, le "
-"programme demandera un mot de passe si nécessaire.\n"
-"NOTE: FOURNIR UN MOT DE PASSE VIA LA LIGNE DE COMMANDE PEUT ETRE CONSIDERÉ "
-"COMME UN RISQUE DE SÉCURITÉ ET N'EST PAS RECOMMENDÉ."
+"Mot de passe utilisé pour se connecter à la base de données. S'il est "
+"spécifié, il sera utilisé pour toutes les bases de données. Sinon, le "
+"programme demandera un mot de passe si nécessaire.\n"
+"NOTE: FOURNIR UN MOT DE PASSE VIA LA LIGNE DE COMMANDE PEUT ETRE CONSIDERÉ "
+"COMME UN RISQUE DE SÉCURITÉ ET N'EST PAS RECOMMANDÉ."
 
 #: apps/GBaseApp.py:212
 msgid ""
 "Display help information related to database connections, including a list "
 "of available drivers."
 msgstr ""
-"Affiche l'aide concernant les connexions aux bases de données, avec une "
+"Affiche l'aide concernant les connexions aux bases de données, avec une "
 "liste des pilotes disponibles."
 
 #: apps/GBaseApp.py:216
-#, fuzzy
 msgid "location"
-msgstr "options"
+msgstr "emplacement"
 
 #: apps/GBaseApp.py:217
-#, fuzzy
 msgid ""
 "Specifies the location of the connection definition file. <location> may "
 "specify a file name (/usr/local/gnue/etc/connections.conf),or a URL location "
@@ -177,60 +175,59 @@
 "environent variable GNUE_CONNECTIONS is checked.If neither of them is set, "
 "\"%s\" is used as a default."
 msgstr ""
-"Spécifié la localisation du fichier de définition des connexions. <loc> peut "
-"spécifier un nom de fichier (/usr/local/gnue/etc/connections.conf), ou un "
-"URL (http://localhost/connections.conf). Si cette option n'est pas "
-"spécifiée, la variable d'environnement GNUE_CONNECTIONS est utilisée. Si "
-"aucun des deux n'est initialisé, \"%s\" est utilisé par défaut."
+"Défini l'emplacement du fichier de définition des connexions. <emplacement> "
+"peut spécifier un nom de fichier (/usr/local/gnue/etc/connections.conf), ou "
+"une URL (http://localhost/connections.conf). Si cette option n'est pas "
+"spécifiée, la variable d'environnement GNUE_CONNECTIONS est utilisée. Si "
+"aucun des deux n'est initialisé, \"%s\" est utilisé par défaut."
 
 #: apps/GBaseApp.py:229
-#, fuzzy
 msgid "This application requires Python 2.3 or greater."
-msgstr "Cette application nécessite Python 2.1 ou plus."
+msgstr "Cette application nécessite Python 2.3 ou plus."
 
 #: apps/GBaseApp.py:231
-#, fuzzy
 msgid ""
 "This application requires Python 2.3 or greater. You are running Python %s"
 msgstr ""
-"Cette application nécessite Python 2.1 ou plus. Vous utilisez Python %s."
+"Cette application nécessite Python 2.3 ou plus. Vous utilisez Python %s."
 
 #: apps/GBaseApp.py:335
-#, fuzzy
 msgid "The debug_level option (\"-d\") expects numerical values."
-msgstr "L'option debug_level (\"-d\") requiert une valeur numérique."
+msgstr "L'option debug_level (\"-d\") requiert une valeur numérique."
 
 #: apps/GBaseApp.py:349
-#, fuzzy
 msgid ""
 "The gnue.conf file is incomplete:\n"
 "   %s"
-msgstr "Le fichier gnue.conf est incomplet: "
+msgstr ""
+"Le fichier gnue.conf est incomplet :\n"
+"   %s"
 
 #: apps/GBaseApp.py:390
-#, fuzzy
 msgid ""
 "Unable to load the connections definition file.\n"
 "\n"
 "The connections file is in an invalid format.\n"
 "%s"
-msgstr "Impossible de charger le fichier de définition de connections.\n"
+msgstr ""
+"Impossible de charger le fichier de définition de connexions.\n"
+"\n"
+"Le fichier de connexions est dans un format incorrect.\n"
+"%s"
 
 #: apps/GBaseApp.py:395
-#, fuzzy
 msgid "Unable to load the connections definition file: %s."
-msgstr "Impossible de charger le fichier de définition de connections.\n"
+msgstr "Impossible de charger le fichier de définition de connections : %s"
 
 #: apps/GBaseApp.py:436
-#, fuzzy
 msgid ""
 "\n"
 "%(name)s\n"
 "Version %(version)s\n"
 msgstr ""
 "\n"
-"%s\n"
-"Version %s\n"
+"%(name)s\n"
+"Version %(version)s\n"
 
 #: apps/GBaseApp.py:438
 msgid "GNUe Common Version %s\n"
@@ -238,41 +235,41 @@
 
 #: apps/GBaseApp.py:523
 msgid "Usage:  "
-msgstr "Utilisation:  "
+msgstr "Utilisation :  "
 
 #: apps/GBaseApp.py:554
 msgid "Available command line options:"
-msgstr "Options de ligne de commande disponibles:"
+msgstr "Options de ligne de commande disponibles :"
 
 #: apps/GBaseApp.py:573
 msgid "The following options are mainly of interest to GNUe developers."
-msgstr "Les options suivantes sont surtout utiles pour les développeurs GNUe."
+msgstr "Les options suivantes sont surtout utiles pour les développeurs GNUe."
 
 #: apps/GBaseApp.py:575 apps/GBaseApp.py:598
 msgid "To view general help, run this command with the --help option."
 msgstr ""
-"Pour afficher l'aide générale, exécuter cette commande avec l'option --help."
+"Pour afficher l'aide générale, exécuter cette commande avec l'option --help."
 
 #: apps/GBaseApp.py:578
 msgid "Developer-specific command line options:"
-msgstr "Options de ligne de commande spécial développeur:"
+msgstr "Options de ligne de commande spécial développeur :"
 
 #: apps/GBaseApp.py:596
 msgid "The following connection/database-related options are available."
-msgstr "Les options de connexion/base de données suivantes sont disponibles."
+msgstr "Les options de connexion/base de données suivantes sont disponibles."
 
 #: apps/GBaseApp.py:601
 msgid "Database/connection command line options:"
-msgstr "Options de ligne de commande de base de données/connexion:"
+msgstr "Options en ligne de commande de base de données/connexion:"
 
 #: apps/GBaseApp.py:604
 msgid "The following database drivers are installed on your system:"
 msgstr ""
-"Les pilotes de base de données suivants sont installés sur votre système:"
+"Les pilotes de base de données suivants sont installés sur votre système :"
 
 #: apps/GBaseApp.py:679
 msgid "Error: %s"
-msgstr "Erreur: %s"
+msgstr "Erreur : %s"
 
 #: apps/GBaseApp.py:683
 msgid ""
@@ -281,45 +278,39 @@
 "   %s --help\n"
 msgstr ""
 "\n"
-"Pour l'aide, taper:\n"
+"Pour l'aide, taper :\n"
 "   %s --help\n"
 
 #: apps/GBaseApp.py:818
-#, fuzzy
 msgid "For help, type: %s --help"
 msgstr ""
 "\n"
-"Pour l'aide, taper:\n"
-"   %s --help\n"
+"Pour l'aide, taper : %s --help\n"
 
 #: apps/GConfig.py:116
-#, fuzzy
 msgid "Configuration file has duplicate sections."
-msgstr "Le fichier a plusieurs définitions sources."
+msgstr "Le fichier de configuration a des sections dupliquées."
 
 #: apps/GConfig.py:119
-#, fuzzy
 msgid "Configuration file has no sections."
-msgstr "Le fichier n'a pas de définition source."
+msgstr "Le fichier de configuration n'a pas de sections."
 
 #: apps/GConfig.py:122
-#, fuzzy
 msgid ""
 "Configuration file cannot be parsed:\n"
 "%s"
 msgstr ""
-"Le fichier de connexions ne peut pas être analysé.\n"
-"\n"
-"Fichier: %s"
+"Le fichier de configuration ne peut pas être analysé :\n"
+"%s"
 
 #: apps/GConfig.py:220
-#, fuzzy
 msgid "Config option %(field)s is of wrong type in [%(section)s]"
-msgstr "Mauvais type pour l'option de configuration %s dans [%s]"
+msgstr ""
+"Mauvais type pour l'option de configuration %(field)s dans [%(section)s]"
 
 #: apps/GServerApp.py:44
 msgid "The server is already running on pid %s"
-msgstr ""
+msgstr "Le serveur s'exécute déjà avec le pid %s"
 
 #: apps/GServerApp.py:54
 msgid ""
@@ -327,21 +318,22 @@
 "keeps the server process from forking and detaching from its controlling "
 "terminal."
 msgstr ""
+"Ne pas mettre le serveur en arrière-plan. Sur un système POSIX, cette option "
+"empêche le processus serveur de se détacher de son terminal de contrôle."
 
 #: apps/GServerApp.py:61
 msgid "pid-file"
-msgstr ""
+msgstr "fichier-pid"
 
 #: apps/GServerApp.py:62
 msgid "Filename to store the server's process id."
-msgstr ""
+msgstr "Nom du fichier stockant l'id du processus serveur."
 
 #: apps/RuntimeSettings.py:94
-#, fuzzy
 msgid "Warning: Unable to save all session data to %s"
 msgstr ""
-"\n"
-"Attention: Impossible de sauvegarder les données de la session vers %s\n"
+"Attention : impossible de sauvegarder toutes les données de la session vers %"
+"s\n"
 
 #: apps/RuntimeSettings.py:107
 msgid ""
@@ -349,128 +341,146 @@
 "Warning: Unable to save session data to %s\n"
 msgstr ""
 "\n"
-"Attention: Impossible de sauvegarder les données de la session vers %s\n"
+"Attention : impossible de sauvegarder les données de la session vers %s\n"
 
 #: apps/checktype.py:77
 msgid ""
 "\"%(varname)s\" is expected to be of %(expected)s but is of %(actual)s and "
 "has value %(value)s"
 msgstr ""
+"\"%(varname)s\" devrait être du type %(expected)s mais est du type %(actual)"
+"s avec la valeur %(value)s"
 
 #: apps/manpage.py:130
 msgid "value"
 msgstr "valeur"
 
 #: apps/plugin.py:91
-#, fuzzy
 msgid "Cannot load plugin '%s'"
-msgstr "Impossible de trouver la table '%s'"
+msgstr "Ne peut charger le plugin '%s'"
 
 #: apps/plugin.py:92
 msgid "The following plugins failed:\n"
-msgstr ""
+msgstr "Les plugins suivants ont échoués :\n"
 
 #: apps/plugin.py:99
-#, fuzzy
 msgid "Cannot find plugin '%s'"
-msgstr "Impossible de trouver la table '%s'"
+msgstr "Impossible de trouver le plugin '%s'"
 
 #: datasources/Exceptions.py:82
-#, fuzzy
 msgid "Cannot insert a new record into a read only datasource"
-msgstr "Tentative d'insertion sur une source de données en lecture seule."
+msgstr "Tentative d'insertion sur une source de données en lecture seule."
 
 #: datasources/Exceptions.py:92
-#, fuzzy
 msgid "Cannot modify data of a read only datasource"
-msgstr "Tentative de suppression sur une source de données en lecture seule."
+msgstr ""
+"Ne peut modifier un enregistrement sur une source de données en lecture "
+"seule."
 
 #: datasources/Exceptions.py:102
-#, fuzzy
 msgid "Cannot delete a record from a read only datasource"
-msgstr "Tentative de suppression sur une source de données en lecture seule."
+msgstr ""
+"Ne peut supprimer un enregistrement sur une source de données en lecture "
+"seule."
 
 #: datasources/Exceptions.py:123
 msgid "Datasource %s is of type 'sql', but has no <sql> definition."
 msgstr ""
+"La source de donnée %s est du type 'sql', mais n'a aucune définition <sql>."
 
 #: datasources/Exceptions.py:134
 msgid "Datasource %s is not of type 'sql', but has an <sql> definition."
 msgstr ""
+"La source de donnée '%s' n'est pas du type 'sql', mais possède une "
+"définition <sql>."
 
 #: datasources/Exceptions.py:145
-#, fuzzy
 msgid ""
 "Detail datasource '%(name)s' references non-existant master '%(master)s'"
-msgstr "La source de détail '%s' fait référence à un maître non-existant '%s'."
+msgstr ""
+"La source de détail '%(name)s' fait référence à un maître non-existant '%"
+"(master)s'."
 
 #: datasources/Exceptions.py:156
 msgid ""
 "Datasource '%s' contains a 'master' attribute, but no 'masterlink' attribute"
 msgstr ""
+"La source de donnée '%s' contient un attribut 'master', mais aucun attribut "
+"'masterlink'"
 
 #: datasources/Exceptions.py:167
 msgid ""
 "Datasource '%s' contains a 'master' attribute, but no 'detaillink' attribute"
 msgstr ""
+"La source de donnée '%s' contient un attribut 'master', mais aucun attribut "
+"'detaillink'"
 
 #: datasources/Exceptions.py:179
 msgid ""
 "Number of fields in 'masterlink' and 'detaillink' attributes does not match "
 "for datasource '%s'"
 msgstr ""
+"Le nombre de champs des attributs 'masterlink' et 'detaillink' ne "
+"correspondent pas pour la source de donnée '%s'"
 
 #: datasources/Exceptions.py:193
 msgid "Cannot use 'update' and 'call' functions on this datasource"
 msgstr ""
+"Ne peut utiliser les fonctions 'update' et 'call' sur cette source de donnée"
 
 #: datasources/Exceptions.py:206
 msgid "Cannot call a function on an empty record"
-msgstr ""
+msgstr "Ne peut appeler une fonction sur un enregistrement vide"
 
 #: datasources/Exceptions.py:219
 msgid "Record not found on attempt to requery changed record"
 msgstr ""
+"Enregistrement introuvable lors du rechargement de l'enregistremenrt modifié"
 
 #: datasources/GConditions.py:72
 msgid ""
 "Conditionelement '%(element)s' was expected to have '%(wanted)d'arguments, "
 "but only has %(real)d'"
 msgstr ""
+"Conditionelement '%(element)s' devrait avoir '%(wanted)d' arguments, mais "
+"n'en a que %(real)d'"
 
 #: datasources/GConditions.py:90
 msgid "The field '%(field)s' has no entry in the given lookup-table"
 msgstr ""
+"Le champ '%(field)s' n'a aucune entrée dans la table de recherche spécifiée"
 
 #: datasources/GConditions.py:112
 msgid "No unification rule for combination '%(type1)s' and '%(type2)s'"
 msgstr ""
+"Pas de règle d'unification pour la combinaison '%(type1)s' et '%(type2)s'"
 
 #: datasources/GConditions.py:125
 msgid ""
 "Value '%(value1)s' of type '%(type1)s' cannot be converted into type '%"
 "(type2)s'"
 msgstr ""
+"La valeur '%(value1)s' de type '%(type1)s' ne peut être convertie vers le "
+"type '%(type2)s'"
 
 #: datasources/GConnections.py:47
-#, fuzzy
 msgid ""
 "The connections file does not contain a definition for \"%(connection)s\".\n"
 "\n"
 "File: %(file)s"
 msgstr ""
-"Le fichier de connexions ne contient aucune définition \n"
-"    pour \"%s\".\n"
+"Le fichier de connexions ne contient aucune définition pour \"%(connection)s"
+"\".\n"
 "\n"
-"Fichier: %s"
+"Fichier : %(file)s"
 
 #: datasources/GConnections.py:64
 msgid "Module '%s' is not installed."
-msgstr ""
+msgstr "Le module '%s' n'est pas installé."
 
 #: datasources/GConnections.py:66
 msgid "  You can download it from %s."
-msgstr ""
+msgstr "  Vous pouvez le télécharger depuis %s."
 
 #: datasources/GConnections.py:139
 msgid ""
@@ -478,7 +488,7 @@
 "\n"
 "File: %s"
 msgstr ""
-"Le fichier de connexions a plusieurs définitions sources.\n"
+"Le fichier de connexions a des définitions sources dupliquées.\n"
 "\n"
 "Fichiers: %s"
 
@@ -488,7 +498,7 @@
 "\n"
 "File: %s"
 msgstr ""
-"Le fichier de connexions n'a aucune définition source.\n"
+"Le fichier de connexions n'a aucune définition source.\n"
 "\n"
 "Fichier: %s"
 
@@ -498,17 +508,17 @@
 "\n"
 "File: %s"
 msgstr ""
-"Le fichier de connexions ne peut pas être analysé.\n"
+"Le fichier de connexions ne peut pas être analysé.\n"
 "\n"
-"Fichier: %s"
+"Fichier : %s"
 
 #: datasources/GConnections.py:459
 msgid "Login required for %(newline)s\"%(description)s\""
-msgstr ""
+msgstr "Identification requise pour %(newline)s\"%(description)s\""
 
 #: datasources/GConnections.py:463
 msgid "GNU Enterprise: Login to %s"
-msgstr ""
+msgstr "GNU Enterprise : connexion à %s"
 
 #: datasources/GConnections.py:498
 msgid ""
@@ -516,177 +526,207 @@
 "\n"
 "Error: %s"
 msgstr ""
-"La connexion a echoué après 4 essais.\n"
+"La connexion a echoué après 4 essais.\n"
 "\n"
-"Erreur: %s"
+"Erreur : %s"
 
-#: datasources/GDataSource.py:830
+#: datasources/GDataSource.py:834
 msgid "Unknown type/format of 'order-by' attribute"
-msgstr ""
+msgstr "Type/format inconnu pour l'attribut 'order-by'"
 
-#: datasources/GDataSource.py:1044
+#: datasources/GDataSource.py:1048
 msgid ""
 "A datasource provides a link to a database table or some similar data store."
 msgstr ""
+"Une source de donnée fournit un lien vers une base de données ou d'autres "
+"magasins de données."
 
-#: datasources/GDataSource.py:1051
+#: datasources/GDataSource.py:1055
 msgid "Unique name of the datasource."
-msgstr ""
+msgstr "Nom unique de la source de données."
 
-#: datasources/GDataSource.py:1053
+# (type objet de donnée ??)
+#: datasources/GDataSource.py:1057
 msgid "Data Object Type"
-msgstr ""
+msgstr "Type de donnée objet"
 
-#: datasources/GDataSource.py:1057
-#, fuzzy
+#: datasources/GDataSource.py:1061
 msgid "Connection Name"
-msgstr "Connexion refusée"
+msgstr "Nom de la connexion "
 
-#: datasources/GDataSource.py:1059
+#: datasources/GDataSource.py:1063
 msgid ""
 "The name of the connection as in connections.conf that points to a valid "
 "database."
 msgstr ""
+"Le nom de la connexion (dans connections.conf) indiquant une source de "
+"données valide."
 
-#: datasources/GDataSource.py:1066
-#, fuzzy
+#: datasources/GDataSource.py:1070
 msgid "Table Name"
-msgstr "Table"
+msgstr "Nom de la table"
 
-#: datasources/GDataSource.py:1069
+#: datasources/GDataSource.py:1073
 msgid "The table in the database this datasource will point to."
 msgstr ""
+"La table de la base de données vers laquelle pointe cette source de données."
 
-#: datasources/GDataSource.py:1072
+#: datasources/GDataSource.py:1076
 msgid "Cache Size"
-msgstr ""
+msgstr "Taille du cache"
 
-#: datasources/GDataSource.py:1073
+#: datasources/GDataSource.py:1077
 msgid "Cache this number of records"
-msgstr ""
+msgstr "Cache ce nombre d'enregistrements"
 
-#: datasources/GDataSource.py:1077
+#: datasources/GDataSource.py:1081
 msgid "Query on Startup"
-msgstr ""
+msgstr "Requête au démarrage"
 
-#: datasources/GDataSource.py:1078
+#: datasources/GDataSource.py:1082
 msgid ""
 "If true, the datasource is populated on form startup. If false (default), "
 "the form starts out with an empty record until the user or a trigger queries "
 "the database."
 msgstr ""
+"Si vrai, la source de données est remplie au démarrage du formulaire. Si "
+"faux (defaut), le formulaire démarre avec un enregistrement vide jusqu'à ce "
+"que l'utilisateur ou une procédure interroge la base de données."
 
-#: datasources/GDataSource.py:1091
+#: datasources/GDataSource.py:1095
 msgid "M/D Master DataSource"
-msgstr ""
+msgstr "Source de données maître (M/D)"
 
-#: datasources/GDataSource.py:1092
+#: datasources/GDataSource.py:1096
 msgid ""
 "If this datasource is the child in a master/detail relationship, this "
 "property contains the name of the master datasource."
 msgstr ""
+"Si cette source de données est l'enfant d'une relation maître/détails, cette "
+"propriété contient le nom de la source de données maître."
 
-#: datasources/GDataSource.py:1097
+#: datasources/GDataSource.py:1101
 msgid "M/D Master Field(s)"
-msgstr ""
+msgstr "Champ(s) maître (M/D)"
 
-#: datasources/GDataSource.py:1098
+#: datasources/GDataSource.py:1102
 msgid ""
 "If this datasource is the child in a master/detail relationship, this "
 "property contains a comma-separated list of the master datasource's field(s) "
 "used for linking."
 msgstr ""
+"Si cette source de données est l'enfant d'une relation maître/détails, cette "
+"propriété contient la liste (séparée par des virgule) des champs de la "
+"source de données maître utilisés pour le lien."
 
-#: datasources/GDataSource.py:1105
+#: datasources/GDataSource.py:1109
 msgid "M/D Detail Field(s)"
-msgstr ""
+msgstr "Champ(s) détail (M/D)"
 
-#: datasources/GDataSource.py:1106
+#: datasources/GDataSource.py:1110
 msgid ""
 "If this datasource is the child in a master/detail relationship, this "
 "property contains a comma-separated list of the this (child's) datasource's "
 "field(s) used for linking."
 msgstr ""
+"Si cette source de données est l'enfant d'une relation maître/détails, cette "
+"propriété contient la liste (séparée par des virgule) des champs de la "
+"source de données détails utilisés pour le lien."
 
-#: datasources/GDataSource.py:1114
+#: datasources/GDataSource.py:1118
 msgid "Explicit Fields"
-msgstr ""
+msgstr "Champs explicites"
 
-#: datasources/GDataSource.py:1118
-#, fuzzy
+#: datasources/GDataSource.py:1122
 msgid "Primary Key Field(s)"
-msgstr "Clé primaire: %s"
+msgstr "Champ(s) de clé primaire"
 
-#: datasources/GDataSource.py:1119
+#: datasources/GDataSource.py:1123
 msgid "Comma-separated list of the fields that make up the primary key."
-msgstr ""
+msgstr "Liste séparée par des virgules des champs constituant la clé primaire."
 
-#: datasources/GDataSource.py:1123
-#, fuzzy
+#: datasources/GDataSource.py:1127
 msgid "Primary Key Sequence"
-msgstr "Clé primaire: %s"
+msgstr "Séquence de la clé primaire"
 
-#: datasources/GDataSource.py:1124
+#: datasources/GDataSource.py:1128
 msgid ""
 "Name of the sequence used to populate a primary key (only applies to "
 "relational backends that support sequences; requires a single {primarykey} "
 "value."
 msgstr ""
+"Nom de la séquence utilisée pour remplir la clé primaire (s'applique "
+"seulement auxSGBD relationnels suportant les séquences); nécessite une "
+"valeur  unique de {primarykey}."
 
-#: datasources/GDataSource.py:1130
+#: datasources/GDataSource.py:1134
+msgid "Row-ID field"
+msgstr "Champ ID-Ligne"
+
+#: datasources/GDataSource.py:1135
+msgid ""
+"Name of the field to use as Row-ID if the connection does not support row "
+"ids."
+msgstr "Nom du champ à utilisercomme ID-Ligne si la connexion ne supporte "
+"pas les ids ligne."
+
+#: datasources/GDataSource.py:1139
 msgid "Re-query on commit?"
-msgstr ""
+msgstr "Ré-interroger après validation ?"
 
-#: datasources/GDataSource.py:1132
+#: datasources/GDataSource.py:1141
 msgid ""
 "Requery a record after posting it; requires {primarykey} support and a non-"
 "null primary key value at the time of update (whether via a trigger or by "
 "the use of {primarykeyseq}."
 msgstr ""
+"Redemande l'enregistrement après l'avoir posté; nécessite le support de "
+"{primarykey} et une clé primaire non nulle au moment de la mise à jour (via "
+"une procédure ou par l'utilisation de {primarykeyseq})."
 
-#: datasources/GDataSource.py:1152
+#: datasources/GDataSource.py:1161
 msgid "The name of the field by which the datasource will be ordered."
-msgstr ""
+msgstr "Le nom du champ utilisé pour ordonner la source de données."
 
-#: datasources/GDataSource.py:1157
+#: datasources/GDataSource.py:1166
 msgid ""
 "Selects if the ordering is done in ascending (default) or in descending "
 "order."
-msgstr ""
+msgstr "Sélection d'un classement ascendant (défaut) ou descendant."
 
-#: datasources/GDataSource.py:1165
+#: datasources/GDataSource.py:1174
 msgid "Selects wether the ordering is case-sensitive or not."
-msgstr ""
+msgstr "Sélection d'un classement sensible à la casse ou non."
 
-#: datasources/GDataSource.py:1311
+#: datasources/GDataSource.py:1320
 msgid "The URL '%s' is not a valid application server resource locator"
 msgstr ""
+"L'URL '%s' n'est pas un localisateur de ressource valide pour le serveur "
+"d'application."
 
-#: datasources/GDataSource.py:1322
+#: datasources/GDataSource.py:1331
 msgid "Resource type '%s' is not supported"
-msgstr ""
+msgstr "Le type de ressource '%s' n'est pas supporté"
 
-#: datasources/GDataSource.py:1332
-#, fuzzy
+#: datasources/GDataSource.py:1341
 msgid "Resource '%(name)s' of type '%(type)s' not found"
-msgstr "La ligne %d de la table %s n'a pas de champ clé."
+msgstr "La ressource '%(name)s' de type '%(type)s' est introuvable"
 
 #: datasources/GLoginHandler.py:44
 msgid "User canceled the login request."
-msgstr "Demande de connexion annulée par l'utilisateur."
+msgstr "Demande de connexion annulée par l'utilisateur."
 
 #: datasources/drivers/Base/Behavior.py:44
-#, fuzzy
 msgid "No type transformation for '%s' found"
-msgstr "de liaison pour %s "
+msgstr "Aucun transformation de type trouvée pour '%s'"
 
 #: datasources/drivers/Base/Behavior.py:190
 msgid "DB-Export of %s"
-msgstr ""
+msgstr "Exportation de %s"
 
 #: datasources/drivers/Base/Behavior.py:258
 msgid "Cannot merge triples of different length"
-msgstr ""
+msgstr "Ne peut fusionner des triples de différentes longueur"
 
 #: datasources/drivers/DBSIG2/Connection.py:111
 #: datasources/drivers/other/appserver.py:333
@@ -704,6 +744,7 @@
 #: datasources/drivers/DBSIG2/ResultSet.py:45
 msgid "The driver '%(driver)s' returned an invalid row count '%(count)s'"
 msgstr ""
+"Le pilote '%(driver)s a retourné un compte incorrect de lignes '%(count)s'"
 
 #: datasources/drivers/file/Base.py:240
 #: datasources/drivers/sql/interbase/Behavior.py:57
@@ -717,12 +758,11 @@
 
 #: datasources/drivers/file/inifile.py:86
 msgid "Duplicate section name %s"
-msgstr ""
+msgstr "Nom de section '%s' dupliqué"
 
 #: datasources/drivers/file/inifile.py:93
-#, fuzzy
 msgid "Missing section name"
-msgstr "Connexion refusée"
+msgstr "Nom de section manquant"
 
 #: datasources/drivers/other/appserver.py:116
 msgid "Business Object Class"
@@ -730,7 +770,7 @@
 
 #: datasources/drivers/other/appserver.py:426
 msgid "'%(value)s' is not a valid filter-value for '%(filter)s'"
-msgstr ""
+msgstr "'%(value)s' n'est pas une valeur de filtre correcte pour '%(filter)s'"
 
 #: datasources/drivers/sql/interbase/Behavior.py:58
 #: datasources/drivers/sql/maxdb/Behavior.py:56
@@ -742,56 +782,53 @@
 
 #: datasources/drivers/sql/interbase/Behavior.py:94
 msgid "Logon for SYSDBA into Security Database"
-msgstr ""
+msgstr "Identification pour SYSDBA dans la base de données de sécurité"
 
 #: datasources/drivers/sql/interbase/Behavior.py:101
 msgid "Please specify a password"
-msgstr ""
+msgstr "Veuillez SVP spécifier un mot de passe"
 
 #: datasources/drivers/sql/maxdb/Behavior.py:93
 msgid "OS User for host %s"
-msgstr ""
+msgstr "Utilisateur système pour l'hôte %s"
 
 #: datasources/drivers/sql/maxdb/Behavior.py:104
-#, fuzzy
 msgid "Unable to establish session: %s"
-msgstr ""
-"\n"
-"Attention: Impossible de sauvegarder les données de la session vers %s\n"
+msgstr "Impossible d'établir la session : %s"
 
 #: datasources/drivers/sql/maxdb/Behavior.py:113
 msgid "Creating database instance %s"
-msgstr ""
+msgstr "Création de l'instance de base de données %s"
 
 #: datasources/drivers/sql/maxdb/Behavior.py:117
 msgid "Setting up parameters ..."
-msgstr ""
+msgstr "Définition des paramètres ..."
 
 #: datasources/drivers/sql/maxdb/Behavior.py:126
 msgid "Adding log- and data-volumes ..."
-msgstr ""
+msgstr "Ajout des volumes log et data ..."
 
 #: datasources/drivers/sql/maxdb/Behavior.py:130
 msgid "Entering administration mode"
-msgstr ""
+msgstr "Entrée dans le mode administratif"
 
 #: datasources/drivers/sql/maxdb/Behavior.py:133
 msgid "Activating instance with initial user %s"
-msgstr ""
+msgstr "Activation de l'instance avec l'utilisateur initial %s"
 
 #: datasources/drivers/sql/maxdb/Behavior.py:136
-#, fuzzy
 msgid "Loading system tables ..."
-msgstr "Chargement du fichier gsd '%s' ..."
+msgstr "Chargement des tables systèmes ..."
 
 #: datasources/drivers/sql/maxdb/Behavior.py:139
 msgid "Database instance created."
-msgstr ""
+msgstr "Instance de base de données créée."
 
 #: datasources/drivers/sql/mysql/Behavior.py:304
-#, fuzzy
 msgid "WARNING: changing column type of '%(table)s.%(column)s' to 'timestamp'"
-msgstr "ATTENTION: changement du type de colonne de '%s.%s' en 'timestamp'."
+msgstr ""
+"ATTENTION: changement du type de colonne de '%(table)s.%(column)s' en "
+"'timestamp'."
 
 #: datasources/drivers/sql/oracle/Behavior.py:52
 msgid "User Tables"
@@ -807,114 +844,115 @@
 
 #: datasources/drivers/sql/oracle/Behavior.py:55
 msgid "System Tables"
-msgstr "Tables système"
+msgstr "Tables système"
 
 #: datasources/drivers/sql/oracle/Behavior.py:56
 msgid "System Views"
-msgstr "Vues système"
+msgstr "Vues système"
 
 #: datasources/drivers/sql/oracle/Behavior.py:57
 msgid "System Synonyms"
-msgstr "Synonymes système"
+msgstr "Synonymes système"
 
 #: datasources/drivers/sql/sqlite2/Behavior.py:67
-#, fuzzy
 msgid "Cannot find table '%s' anymore"
-msgstr "Impossible de trouver la table '%s'"
+msgstr "Impossible de retrouver la table '%s'"
 
 #: datasources/drivers/sql/sqlite2/Behavior.py:75
 msgid "Cannot split SQL command: '%s'"
-msgstr ""
+msgstr "Ne peut découper la commande SQL : '%s'"
 
 #: datasources/readgsd.py:45
-#, fuzzy
 msgid "Table '%(table)s' not found in the schema"
-msgstr "La table '%s' n'a pas de champ '%s'."
+msgstr "Table '%(table)s' introuvable dans le schéma"
 
 #: datasources/readgsd.py:50
 msgid "Key field(s) '%(fields)s' missing in row '%(row)s' of table '%(table)s'"
 msgstr ""
+"Champ(s) clé '%(field)s' manquant dans la ligne '%(row)s' de la table '%"
+"(table)s'"
 
 #: datasources/readgsd.py:58
-#, fuzzy
 msgid "Table '%(table)s' has no field '%(fields)s'"
-msgstr "La table '%s' n'a pas de champ '%s'."
+msgstr "La table '%(table)s' n'a pas de champ '%(field)s'"
 
 #: datasources/readgsd.py:64
 msgid "Tables have circular or unresolveable references"
-msgstr ""
+msgstr "Les tables ont des références circulaires ou irresolvable"
 
 #: datasources/readgsd.py:69
 msgid "Table '%s' contains circular/unresolvable record references"
 msgstr ""
+"La table '%(table)s' contient des enregistrements avec des références "
+"circulaires/irrésolvable"
 
 #: datasources/readgsd.py:75
-#, fuzzy
 msgid "The value '%(value)s' is not a valid number (%(length)s.%(scale)s)"
-msgstr "n'est pas un nombre (%d.%d)"
+msgstr ""
+"La valeur '%(value)s' n'est pas un nombre valide (%(length)s.%(scale)s)"
 
 #: datasources/readgsd.py:82
-#, fuzzy
 msgid "The value '%(value)s' is out of range (%(length)s.%(scale)s)"
-msgstr "%s Valeur '%s' hors de la plage (%s)"
+msgstr "La valeur '%(value)s' est en-dehors de la plage (%(length)s.%(scale)s)"
 
 #: datasources/readgsd.py:89
 msgid "'%(value)s' is not a valid boolean value"
-msgstr ""
+msgstr "'%(value)s' n'est pas une valeur booléenne correcte"
 
 #: datasources/readgsd.py:94
-#, fuzzy
 msgid "'%s' is not a vaild date, use 'YYYY-MM-DD' (ISO)"
-msgstr "n'est pas une date (AAAA-MM-JJ)"
+msgstr "'%s' n'est pas une date correcte, utiliser 'AAAA-MM-JJ' (ISO)"
 
 #: datasources/readgsd.py:99
-#, fuzzy
 msgid "'%s' is not a vaild time, use 'HH[:MM[:SS[.ss]]]' (ISO)"
-msgstr "n'est pas une heure (HH:MM:SS.ss)"
+msgstr "'%s' n'est pas une heure correcte, utiliser 'HH[:MM[:SS[.ss]]]' (ISO)"
 
 #: datasources/readgsd.py:105
-#, fuzzy
 msgid "'%s' is not a vaild date/time, use 'YYYY-MM-DD HH[:MM[:SS[.ss]]]' (ISO)"
-msgstr "n'est pas une horodate (AAAA-MM-JJ HH:MM:SS.ss)"
+msgstr ""
+"'%s' n'est pas une date/heure correcte , utiliser 'YYYY-MM-DD HH[:MM[:SS[."
+"ss]]]' (ISO)"
 
 #: datasources/readgsd.py:111
 msgid "'%s' is not a recognized field type"
-msgstr ""
+msgstr "'%s' n'est pas un type de champ reconnu"
 
 #: datasources/readgsd.py:128
-#, fuzzy
 msgid "Import GNUe Schema Definition files into a given connection"
-msgstr "de schéma GNUe et les importe vers une connexion."
+msgstr ""
+"Importe des fichiers de définitions de schéma GNUe vers une connexion donnée."
 
 #: datasources/readgsd.py:137
-#, fuzzy
 msgid "connectionname"
-msgstr "Connexion refusée"
+msgstr "nom_de_connexion"
 
 #: datasources/readgsd.py:139
-#, fuzzy
 msgid "Use the connection <connectionname> for creating the schema"
-msgstr "Utiliser la connexion <nom_de_connexion> pour importer les données."
+msgstr "Utiliser la connexion <nom_de_connexion> pour créer le schéma."
 
 #: datasources/readgsd.py:143
 msgid "Also send the code for creating the schema to this file."
-msgstr ""
+msgstr "Envoyer aussi le code de création du schéma vers ce fichier."
 
 #: datasources/readgsd.py:147
 msgid ""
 "If this flag is set, only code is sent to the output file and the schema is "
 "not created automatically."
 msgstr ""
+"Si ce drapeau est activé, le code est simplement affiché et le schéma n'est "
+"pas créé automatiquement."
 
 #: datasources/readgsd.py:152
 msgid ""
 "Mode of operation. If mode is 'schema', only schema creation is done. If "
 "mode is 'data' only data integration is done."
 msgstr ""
+"Mode opératoire. Si le mode est 'schema', seule lacréation du schéma est "
+"faite. Si le mode est 'data', seule l'intégration des données est faite."
 
 #: datasources/readgsd.py:156
 msgid "user"
-msgstr ""
+msgstr "utilisateur"
 
 #: datasources/readgsd.py:157
 msgid ""
@@ -922,33 +960,37 @@
 "created and no owner (--owner) is specified, this username will be it's "
 "owner."
 msgstr ""
+"Défini l'utilisateur pour se connecter à la base de données. Si la base de "
+"données doit être créée et aucun propriétaire (--owner) n'est spécifié, cet "
+"utilisateur en sera le propriétaire."
 
 #: datasources/readgsd.py:161
-#, fuzzy
 msgid "password"
-msgstr "Mot de passe"
+msgstr "mot_de_passe"
 
 #: datasources/readgsd.py:162
 msgid "Set the password to connect to the database."
-msgstr ""
+msgstr "Mot de passe pour la connexion à la base de donnée"
 
 #: datasources/readgsd.py:164
 msgid "owner"
-msgstr ""
+msgstr "propriétaire"
 
 #: datasources/readgsd.py:165
 msgid "If the database is to be created this will be its owner."
-msgstr ""
+msgstr "Si la base de données doit être créée, il en sera propriétaire."
 
 #: datasources/readgsd.py:168
 msgid "ownerpwd"
-msgstr ""
+msgstr "mot_de_passe_proprio"
 
 #: datasources/readgsd.py:169
 msgid ""
 "If the database is to be created this will be the password used for the "
 "database owner."
 msgstr ""
+"Si la base de données doit être créée, ce sera le mot de passe pour son "
+"propriétaire."
 
 #: datasources/readgsd.py:173
 msgid ""
@@ -957,196 +999,202 @@
 "connection-configuration or from the command line. This user becomes the "
 "owner of the database and will be implicitly created."
 msgstr ""
+"Si cette option est activée, la base de données sera créée avant toute "
+"création de schéma. Il doit y avoir un propriétaire ou un utilisateur, soit "
+"depuis la configuration, soit depuis la ligne de commande. Cet utilisateur "
+"devient le propriétaire de la base de données et sera créé implicitement."
 
 #: datasources/readgsd.py:181
 msgid ""
 "If this option is set, the program runs in batch-mode, which means all "
 "questions are answered with 'yes' automatically."
 msgstr ""
+"Si cette option ectivé, le programme s'exécute en mode 'batch', et répondra "
+"automatiquement 'oui' à toutes les questions."
 
 #: datasources/readgsd.py:223
 msgid "No input file specified."
-msgstr "Pas de fichier d'entrée spécifié."
+msgstr "Pas de fichier d'entrée spécifié."
 
 #: datasources/readgsd.py:234
-#, fuzzy
 msgid "Unable to open input file: %s"
-msgstr "Impossible d'ouvrir le fichier d'entrée %s."
+msgstr "Impossible d'ouvrir le fichier d'entrée %s."
 
 #: datasources/readgsd.py:242
 msgid "Output to file only requested, but no filename specified."
 msgstr ""
+"Sortie demandée uniquement vers un fichier, mais aucun nom de fichier "
+"spécifié."
 
 #: datasources/readgsd.py:253
 msgid "Mode of operation must be one of 'both', 'schema' or 'data'."
-msgstr ""
+msgstr "Le mode opératoire doit être choisi parmi 'both', 'schema' ou 'data'."
 
 #: datasources/readgsd.py:313
 msgid "You are about to create the new database '%s'. Continue"
-msgstr ""
+msgstr "Vous allez créer la nouvelle base de données '%s'. Continuer "
 
 #: datasources/readgsd.py:315 datasources/readgsd.py:325
 #: datasources/readgsd.py:382
-#, fuzzy
 msgid "n"
-msgstr "non"
+msgstr "n"
 
 #: datasources/readgsd.py:315 datasources/readgsd.py:325
 #: datasources/readgsd.py:382 datasources/readgsd.py:773
 msgid "y"
-msgstr ""
+msgstr "o"
 
 #: datasources/readgsd.py:323
 msgid "You are about to change the database '%s'. Continue"
-msgstr ""
+msgstr "Vous allez modifier la base de données '%s'. Continuer "
 
 #: datasources/readgsd.py:330
-#, fuzzy
 msgid "Updating schema ..."
-msgstr "Ecriture du schéma dans %s ..."
+msgstr "Mise à jour du schéma ..."
 
 #: datasources/readgsd.py:356
 msgid "Updating data ..."
-msgstr ""
+msgstr "Mise à jour des données ..."
 
 #: datasources/readgsd.py:380
 msgid "The table '%s' has no key defined. Shall i insert all rows"
 msgstr ""
+"La table '%s' n'a aucune clé définie. Faut-il insérer toutes les lignes "
 
 #: datasources/readgsd.py:517
-#, fuzzy
 msgid "  updating table '%s' ..."
-msgstr "Chargement du fichier gsd '%s' ..."
+msgstr "  mise à jour de la table '%s' ..."
 
 #: datasources/readgsd.py:544
 msgid "    Rows: %(ins)d inserted, %(upd)d updated, %(kept)d unchanged."
-msgstr ""
+msgstr "    Lignes: %(ins)d insérées, %(upd)d modifiées, %(kept)d préservées."
 
 #: datasources/readgsd.py:583
-#, fuzzy
 msgid "  inserting into table '%s' ..."
-msgstr "Chargement du fichier gsd '%s' ..."
+msgstr "  insertion dans la table '%s' ..."
 
 #: datasources/readgsd.py:593
 msgid "    Rows: %(ins)d inserted"
-msgstr ""
+msgstr "    Lignes: %(ins)d insérées"
 
 #: definitions/GBinary.py:42
 msgid "Unsupported binary format: '%(format)s'"
-msgstr ""
+msgstr "Format binaire non supporté : '%(format)s'"
 
 #: definitions/GParser.py:70
 msgid "XML markup error in '%(url)s' at line %(line)s:"
-msgstr ""
+msgstr "Erreur XML dans '%(url)s' à la ligne %(line)s :"
 
 #: definitions/GParser.py:73
 msgid "XML markup error in '%(url)s':"
-msgstr ""
+msgstr "Erreur XML dans '%(url)s' :"
 
 #: definitions/GParser.py:83
 msgid ""
 "'%(value)s' is not valid for %(attr)s-attribute which allows these values "
 "only: %(allowed)s"
 msgstr ""
+"'%(value)s' est incorrect pour l'attribut %(attr)s; valeurs autorisées : %"
+"(allowed)s"
 
-#: definitions/GParser.py:155
+#: definitions/GParser.py:156
 msgid "Error loading %s: empty definition file"
-msgstr "Erreur lors du chargement %s: fichier de définition vide"
+msgstr "Erreur lors du chargement de %s: fichier de définition vide"
 
-#: definitions/GParser.py:159
-#, fuzzy
+#: definitions/GParser.py:160
 msgid ""
 "Error loading %(filetype)s: not a valid %(filetype)s definition (expected: %"
 "(expected)s, got: %(got)s)"
 msgstr ""
-"Erreur lors du chargement %s: définition %s non valide (attendu: %s, reçu: %"
-"s)"
+"Erreur lors du chargement de %(filetype)s : définition %(filetype)s "
+"incorrecte (attendu : %(excepted)s, reçu : %(got)s"
 
-#: definitions/GParser.py:326
+#: definitions/GParser.py:309
 msgid "File is missing required tag <%s>"
 msgstr "Le fichier ne contient pas le tag requis <%s>"
 
-#: definitions/GParser.py:375
-#, fuzzy
+#: definitions/GParser.py:358
 msgid ""
 "Error processing <%(tagname)s> tag [I do not know what a <%(tagname)s> tag "
 "does]"
-msgstr "Erreur lors du traitement du tag <%s> [ je ne sais pas ce qu'il fait]"
+msgstr ""
+"Erreur lors du traitement du tag <%(tagname)s> [ je ne sais pas ce que fait "
+"le tag <%(tagname)s> ]"
 
-#: definitions/GParser.py:397
-#, fuzzy
+#: definitions/GParser.py:380
 msgid "Error processing <%(tagname)s> tag [tag not allowed at this position]"
-msgstr "Erreur lors du traitement du tag <%s> [ je ne sais pas ce qu'il fait]"
+msgstr ""
+"Erreur lors du traitement du tag <%(tagname)s> [ tag non autorisé à cette "
+"position ]"
 
-#: definitions/GParser.py:411
+#: definitions/GParser.py:394
 msgid "Unexpected namespace on attribute"
-msgstr "Nom d'espace (namespace) inattendu sur l'attribut"
+msgstr "Espace de nommage inattendu sur l'attribut"
 
-#: definitions/GParser.py:428
-#, fuzzy
+#: definitions/GParser.py:411
 msgid ""
 "Error processing <%(tagname)s> tag [I do not recognize the \"%(attribute)s\" "
 "attribute]"
 msgstr ""
-"Erreur lors du traitement du tag <%s> [je ne reconnais pas l'attribut \"%s\"]"
+"Erreur lors du traitement du tag <%(tagname)s> [ je ne reconnais pas "
+"l'attribut \"%(attribute)s\" ]"
 
-#: definitions/GParser.py:449
-#, fuzzy
+#: definitions/GParser.py:432
 msgid ""
 "Error processing <%(tag)s> tag [\"%(attribute)s\" attribute should be "
 "unique; duplicate value is \"%(duplicate)s\"]"
 msgstr ""
-"Erreur lors du traitement du tag <%s> [L'attribut \"%s\" devrait être "
-"unique; la valeur \"%s\" est dupliquée]"
+"Erreur lors du traitement du tag <%(tag)s> [ L'attribut \"%(attribute)s\" "
+"devrait être unique; la valeur \"%(duplicate)s\" est dupliquée ]"
 
-#: definitions/GParser.py:473
-#, fuzzy
+#: definitions/GParser.py:456
 msgid ""
 "Error processing <%(tagname)s> tag [required attribute \"%(attribute)s\" not "
 "present]"
 msgstr ""
-"Erreur lors du traitement du tag <%s> [L'attribut \"%s\" requis n'est pas "
-"présent]"
+"Erreur lors du traitement du tag <%(tagname)s> [ L'attribut \"%(attribute)s"
+"\" requis n'est pas présent ]"
 
-#: definitions/GParser.py:480
-#, fuzzy
+#: definitions/GParser.py:463
 msgid ""
 "Error in GParser xmlElement definition for %(tag)s/%(attr)s\n"
 "%(message)s"
-msgstr "Erreur lors du chargement %s: fichier de définition vide"
+msgstr ""
+"Erreur dans GParser xmlElement definition pour %(tag)s/%(attr)s\n"
+"%(message)s"
 
-#: definitions/GParser.py:519
-#, fuzzy
+#: definitions/GParser.py:502
 msgid ""
 "Error processing <%(namespace)s:%(name)s> tag: root element needs to be in "
 "default namespace"
 msgstr ""
-"Erreur lors du traitement du tag <%s:%s>: l'élément racine doit être dans le "
-"namespace par défaut."
+"Erreur lors du traitement du tag <%(namespace)s:%(name)s>: l'élément racine "
+"doit être dans l'espace de nommage par défaut."
 
-#: definitions/GParser.py:539
+#: definitions/GParser.py:522
 msgid "WARNING: Markup includes unsupported namespace '%s'."
 msgstr ""
+"AVERTISSEMENT: Le marquage inclut l'espace de nommage '%s' non supporté."
 
-#: definitions/GParser.py:776
-#, fuzzy
+#: definitions/GParser.py:750
 msgid "Unable to find an importable object named %(name)s in %(library)s"
-msgstr "Impossible de trouver un objet importable nommé %s dans %s."
+msgstr ""
+"Impossible de trouver un objet importable nommé %(name)s dans %(library)s."
 
 #: definitions/GParserHelpers.py:40
 msgid "Cannot assign class '%(source)s' to class '%(dest)s'"
-msgstr ""
+msgstr "Ne peut assigner la classe '%(source)s' à la classe '%(dest)s'"
 
 #: formatting/BaseMask.py:142
-#, fuzzy
 msgid ""
 "The requested format mask \"%(mask)s\" is not defined for %(type)s fields"
-msgstr "Le masque de format requis \"%s\" n'est pas défini pour les champs %s."
+msgstr ""
+"Le masque de format requis \"%(mask)s\" n'est pas défini pour les champs %"
+"(type)s."
 
 #: formatting/BaseMask.py:159
-#, fuzzy
 msgid "Unexpected character \"%(char)s\" in %(type)s mask."
-msgstr "Caractère \"%s\" inattendu dans le masque %s."
+msgstr "Caractère \"%(char)s\" inattendu dans le masque %(type)s."
 
 #: formatting/DateMask.py:139
 msgid "inputMaskPos=%s"
@@ -1158,31 +1206,31 @@
 
 #: formatting/GTypecast.py:166
 msgid "Whole numbers must be positive or 0"
-msgstr "Les nombres entiers doivent être positifs ou nuls (0)."
+msgstr "Les nombres entiers doivent être positifs ou nuls (0)."
 
 #: formatting/NumberMask.py:203 formatting/TextMask.py:192
 msgid "Invalid Entry"
-msgstr "Entrée invalide"
+msgstr "Entrée incorrecte"
 
 #: formatting/masks/GMask.py:66
 msgid "Mask Type"
-msgstr ""
+msgstr "Type de masque"
 
 #: formatting/masks/GMask.py:69
 msgid "Display/Output"
-msgstr ""
+msgstr "Affichage/sortie"
 
 #: formatting/masks/GMask.py:70
 msgid "Input Validation/Reformatting"
-msgstr ""
+msgstr "Validation en entrée/formattage"
 
 #: formatting/masks/GMask.py:71
 msgid "Storage"
-msgstr ""
+msgstr "Stockage"
 
 #: formatting/masks/GMask.py:72
 msgid "Validation"
-msgstr ""
+msgstr "Validation"
 
 #: formatting/masks/InputMask.py:157
 msgid ""
@@ -1190,158 +1238,156 @@
 "%(exType)s\n"
 "%(exMessage)s"
 msgstr ""
+"erreur d'entrée :\n"
+"%(exType)s\n"
+"%(exMessage)s"
 
 #: logic/GTrigger.py:45
-#, fuzzy
 msgid "Invalid trigger type '%s'"
-msgstr "Trigger invalide"
+msgstr "Type de trigger '%s' incorrect"
 
 #: logic/GTrigger.py:58
-#, fuzzy
 msgid "Invalid trigger type '%s' fired by %s"
-msgstr "Type de contrainte invalide '%s'."
+msgstr "Type de trigger '%s' incorrect déclenché par '%s'"
 
 #: logic/GTrigger.py:251
 msgid "A piece of code that can be bound to a specific event."
-msgstr ""
+msgstr "Un morceau de code attaché à un évènement spécifique."
 
 #: logic/GTrigger.py:261 logic/usercode.py:262
-#, fuzzy
 msgid "Name"
-msgstr "Nom d'utilisateur"
+msgstr "Nom"
 
 #: logic/GTrigger.py:262 logic/usercode.py:263 utils/tree.py:714
 msgid "Name of this element"
-msgstr ""
+msgstr "Nom de cet élément"
 
 #: logic/GTrigger.py:266
 msgid "Type"
-msgstr ""
+msgstr "Type"
 
 #: logic/GTrigger.py:267
 msgid ""
 "Type of the trigger. Can be either the name of the event that should fire "
 "this trigger, or 'NAMED' for named triggers"
 msgstr ""
+"Type de cette procédure. Peut être soit le nom de l'événement qui doit "
+"déclencher cette procédure, soit 'NAMED' pour les procédures nommées"
 
 #: logic/GTrigger.py:273 logic/usercode.py:280
 msgid "Language"
-msgstr ""
+msgstr "Langage"
 
 #: logic/GTrigger.py:274 logic/usercode.py:281
 msgid "Programming language the code is written in"
-msgstr ""
+msgstr "Langage de programmation utilisé par la procédure"
 
 #: logic/GTrigger.py:281 logic/usercode.py:288
-#, fuzzy
 msgid "Source file"
-msgstr "Trigger source"
+msgstr "Fichier source"
 
 #: logic/GTrigger.py:282 logic/usercode.py:289
 msgid "External file containing the source code"
-msgstr ""
+msgstr "Fichier externe contenant le code-source"
 
 #: logic/GTrigger.py:286
 msgid "Source Trigger"
-msgstr "Trigger source"
+msgstr "Procédure source"
 
 #: logic/GTrigger.py:287
 msgid "Name of a named trigger that contains the program code"
-msgstr ""
+msgstr "Nom d'une procédure nommée contenant le code du programme"
 
 #: logic/GTriggerCore.py:224
 msgid "Cannot set value of object '%s'"
-msgstr ""
+msgstr "Ne peut définir la valeur de l'objet '%s'"
 
 #: logic/GTriggerCore.py:234
 msgid "Cannot set readonly property '%s'"
-msgstr ""
+msgstr "Ne peut définir la propriété en lecture seule '%s'"
 
 #: logic/adapters/python.py:96
 msgid "Sourcecode contains tab character at position %d"
-msgstr ""
+msgstr "Le code source contient un caractère tabulation à la position %d"
 
 #: logic/language.py:60
-#, fuzzy
 msgid "No adapter available for language '%s'"
-msgstr "Pas d'aide disponible pour %s"
+msgstr "Pas d'adaptateur disponible pour le langage %s"
 
 #: logic/language.py:70
 msgid "The class '%(class)s' has no implementation for '%(method)s'"
-msgstr ""
+msgstr "La classe '%(class)s' n'a pas d'implémentation pour '%(method)s'"
 
 #: logic/usercode.py:252
 msgid ""
 "A piece of code that can be bound to a button, a menu item, a toolbar button "
 "or a trigger."
 msgstr ""
+"Un morceau de code attaché à un bouton, un élément de menu, un bouton de "
+"barre d'outil ou un déclencheur (trigger)."
 
 #: logic/usercode.py:268
 msgid "Icon"
-msgstr ""
+msgstr "Icône"
 
 #: logic/usercode.py:269
 msgid "Icon assigned with this action"
-msgstr ""
+msgstr "Icône assignée à cette action"
 
 #: logic/usercode.py:272
-#, fuzzy
 msgid "Label"
-msgstr "Table"
+msgstr "étiquette"
 
 #: logic/usercode.py:273
 msgid "Short text to use for this action"
-msgstr ""
+msgstr "Texte court utilisé pour cette action"
 
 #: logic/usercode.py:276
 msgid "Description"
-msgstr ""
+msgstr "Description"
 
 #: logic/usercode.py:277
 msgid "Long text to use for this action"
-msgstr ""
+msgstr "Texte long utilisé pour cette action"
 
 #: logic/usercode.py:293
-#, fuzzy
 msgid "Enabled"
-msgstr "Table"
+msgstr "Activé"
 
 #: logic/usercode.py:294
 msgid "Determines whether this action can be run"
-msgstr ""
+msgstr "Détermine si cette action peut être exécutée"
 
 #: rpc/RpcDoc.py:43
 msgid "GNUe RPC Documentation Generator"
-msgstr "Générateur de Documentation GNUe RPC"
+msgstr "Générateur de Documentation GNUe RPC"
 
 #: rpc/RpcDoc.py:45
 msgid "Error: the module %s does not exist or cannot be loaded"
-msgstr "Erreur: le module %s n'existe pas ou ne peut être chargé"
+msgstr "Erreur: le module %s n'existe pas ou ne peut être chargé"
 
 #: rpc/client.py:112
 msgid "Access to services at '%s' denied"
-msgstr ""
+msgstr "Accès aux services refusé sur '%s'"
 
 #: rpc/drivers/Base.py:362
-#, fuzzy
 msgid "Required parameter 'port' not supplied"
-msgstr "Paramètre requis \"port\" non fourni"
+msgstr "Paramètre requis 'port' non fourni"
 
 #: rpc/drivers/hessian/ServerAdapter.py:43
 #: rpc/drivers/xmlrpc/ServerAdapter.py:43
 msgid "Element of type '%(type)s' with id '%(id)s' not found in store"
-msgstr ""
+msgstr "Element de type '%(type)s' ayant l'id '%(id)s' introuvable en stock"
 
 #: rpc/drivers/pyro/ClientAdapter.py:38 rpc/drivers/pyro/ServerAdapter.py:41
-#, fuzzy
 msgid ""
 "Unable to load Pyro. To use the Pyro interface, please install pyro from "
 "http://pyro.sf.net"
 msgstr ""
 "\n"
-"Impossible de charger xmlrpclib. Pour utiliser l'interface XML-RPC, \n"
-"installez xmlrpc depuis:\n"
-"   http://www.pythonware.com/products/xmlrpc/"
+"Impossible de charger Pyro. Pour utiliser l'interface Pyro, \n"
+"veuillez installez pyro depuis:\n"
+"   http://www.pyro.sf.net/"
 
 #: rpc/drivers/xmlrpc/RpcDoc.py:69 rpc/drivers/xmlrpc/RpcDoc.py:80
 #: rpc/drivers/xmlrpc/RpcDoc.py:91
@@ -1362,1009 +1408,56 @@
 
 #: rpc/drivers/xmlrpc/RpcDoc.py:411
 msgid "RpcDoc.py has to be called with an command argument. "
-msgstr "RpcDoc.py doit être appelé avec un argument."
+msgstr "RpcDoc.py doit être appelé avec un argument de commande."
 
 #: rpc/drivers/xmlrpc/RpcDoc.py:412
 msgid "call 'RpcDoc.py help' for more information."
-msgstr "exécutez 'RpcDoc.py help' pour plus d'information."
+msgstr "exécutez 'RpcDoc.py help' pour plus d'information."
 
 #: utils/GDateTime.py:156
 msgid "Dates before 0001/01/01 are not supported by datetime library"
 msgstr ""
+"Les dates précédant le 01/01/0001 ne sont pas supportées par la bibliothèque "
+"datetime"
 
 #: utils/GDateTime.py:392
 msgid "Not a valid date"
-msgstr "Date invalide"
+msgstr "Date incorrecte"
 
 #: utils/tree.py:53
 msgid "Setting parent would create a circular reference"
-msgstr ""
+msgstr "Définir le parent créerait une référence circulaire"
 
 #: utils/tree.py:70
 msgid "Duplicate child name '%(child_name)s' for parent node '%(parent_node)s'"
 msgstr ""
+"Nom d'enfant dupliqué '%(child_name)s' pour le noeud parent '%(parent_node)s'"
 
 #: utils/tree.py:93
 msgid ""
 "Duplicate node name '%(descendant_name)s' in descendants of node type %"
 "(descendant_type)s of node '%(ancestor_node)s'"
 msgstr ""
+"Nom de noeud dupliqué '%(descendant_name)s' dans les descendants du noeud '%"
+"(ancestor_node)s' de type %(descendant_type)s"
 
 #: utils/tree.py:111
 msgid ""
 "Node '%(node_name)s' of class '%(node_class)s' does not maintain a node "
 "dictionary for node type '%(node_type)s'"
 msgstr ""
+"Le noeud '%(node_name)s' de classe '%(node_class)s' ne maintient pas un "
+"dictionnaire de noeud pour le type '%(node_type)s'"
 
 #: utils/uuid.py:69
 msgid "The version '%s' is not a valid UUID version"
-msgstr ""
+msgstr "La version '%s' n'est pas une version UUID correcte"
 
 #: utils/uuid.py:84
 msgid "'%s' is not recognized as valid namespace argument"
-msgstr ""
+msgstr "'%s' n'est pas reconnu comme un argument 'espace de nommage' correct"
 
 #: utils/uuid.py:98
 msgid "No namespace given for namebased UUID generation"
 msgstr ""
-
-#, fuzzy
-#~ msgid "The file cannot be parsed. %(exType)s :: %(exValue)s"
-#~ msgstr "Le fichier ne peut être analysé. %s :: %s"
-
-#~ msgid "The file cannot be parsed."
-#~ msgstr "Le fichier ne peut être analysé."
-
-#~ msgid ""
-#~ "Unable to read the GNUE_INSTALLED_SITE_CFG file... There is a problem "
-#~ "with your installation"
-#~ msgstr ""
-#~ "Impossible de lire le fichier GNUE_INSTALLED_SITE_CFG... Il y a un "
-#~ "problème avec votre installation."
-
-#, fuzzy
-#~ msgid "The requested method '%s' does not exist"
-#~ msgstr "La méthode demandée n'existe pas"
-
-#, fuzzy
-#~ msgid "Missing Binding information. Please add binding information for %s"
-#~ msgstr "Information de liaison manquante. Ajoutez l'information "
-
-#, fuzzy
-#~ msgid "GNURPC cannot bind service '%(name)s' to service '%(destination)s'"
-#~ msgstr "GNURPC ne peut lier le service '%s' au service '%s'"
-
-#, fuzzy
-#~ msgid ""
-#~ "GNURPC cannot bind method/attribut '%(name)s' to service '%(service)s'"
-#~ msgstr "GNURPC ne peut lier la méthode/attribut '%s' au service '%s'"
-
-#~ msgid "Dispatching: "
-#~ msgstr "Répartition: "
-
-#, fuzzy
-#~ msgid "Server XML-RPC method '%s' is not bound to real method"
-#~ msgstr "La méthode '%s' XML-RPC du serveur n'est pas "
-
-#, fuzzy
-#~ msgid "Server does not have XML-RPC procedure %s"
-#~ msgstr "Le serveur n'a pas la procédure"
-
-#, fuzzy
-#~ msgid ""
-#~ "Internal Server XML-RPC error: method type (get/set attribute) couldn't "
-#~ "be detected (method %s)"
-#~ msgstr "(lire/écrire l'attribut) n'a pas pu être détéctée (méthode %s)"
-
-#, fuzzy
-#~ msgid ""
-#~ "Server XML-RPC procedure %(method)s accepts just %(attr)s as attributs"
-#~ msgstr "du serveur XML-RPC n'accepte que %s comme attributs"
-
-#~ msgid "No help available for %s"
-#~ msgstr "Pas d'aide disponible pour %s"
-
-#~ msgid "InvalidMethodName"
-#~ msgstr "Nom de méthode invalide"
-
-#~ msgid "Requested method does not exist"
-#~ msgstr "La méthode demandée n'existe pas"
-
-#, fuzzy
-#~ msgid "Wrong format of object handler in method call %s"
-#~ msgstr "Mauvais format de gestionnaire d'objet"
-
-#~ msgid "Object handle not returned"
-#~ msgstr "Handle sur l'objet non renvoyé"
-
-#~ msgid "Invalid object handle"
-#~ msgstr "Handle objet invalide"
-
-#~ msgid "Proxy client adapter should be called with the server object"
-#~ msgstr "L'adaptateur client proxy devrait être appelé avec l'objet serveur."
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Unable to load pyro. To use the Pyro interface, \n"
-#~ "please install xmlrpc from:\n"
-#~ "    http://sourceforge.net/projects/pyro the appropriate DEBIAN package "
-#~ "is python-pyro.deb"
-#~ msgstr ""
-#~ "\n"
-#~ "Impossible de charger xmlrpc. Pour utiliser l'interface XML-RPC,\n"
-#~ "installez xmlrpc depuis:\n"
-#~ "   http://sourceforge.net/projects/py-xmlrpc\n"
-#~ "Le package DEBIAN est python-xmlrpc.deb"
-
-#, fuzzy
-#~ msgid ""
-#~ "py-xmlrpc just support http as a transport. If you need https please have "
-#~ "a look at the 'pw_xmlrpc' adapter."
-#~ msgstr ""
-#~ "py-xmlrpc ne supporte que http comme transport. Si vous avez besoin de "
-#~ "https, jetez un oeil à l'adaptateur 'pw_xmlrpc'"
-
-#, fuzzy
-#~ msgid ""
-#~ "To use Pyro, you must either specify a 'url' or\n"
-#~ "a 'host' and 'port' setting."
-#~ msgstr "Pour utiliser XML-RPC, vous devez soit spécifier un url ou\n"
-
-#, fuzzy
-#~ msgid "Unable to initialize the Pyro interface at %s"
-#~ msgstr "Impossible d'initialiser l'interface XML-RPC à %s"
-
-#, fuzzy
-#~ msgid "Wrong format of object handle in method call %s"
-#~ msgstr "Mauvais format de handle objet"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Unable to load soaplib. To use the SOAP interface, please install soaplib "
-#~ "from:\n"
-#~ "    http://www.pythonware.com/products/soap/\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Impossible de charger xmlrpclib. Pour utiliser l'interface XML-RPC, \n"
-#~ "installez xmlrpc depuis:\n"
-#~ "   http://www.pythonware.com/products/xmlrpc/"
-
-#~ msgid ""
-#~ "\n"
-#~ "Unable to load SOAP.py.  To use the SOAP interface,\n"
-#~ "please install SOAP.py from:\n"
-#~ "    http://sourceforge.net/projects/pywebsvcs\n"
-#~ "the appropriate DEBIAN package is python-soappy"
-#~ msgstr ""
-#~ "\n"
-#~ "Impossible de charger SOAP.py. Pour utiliser l'interface SOAP,\n"
-#~ "installez SOAP.py depuis:\n"
-#~ "   http://sourceforge.net/projects/pywebsvcs\n"
-#~ "Le package DEBIAN est python-soappy"
-
-#, fuzzy
-#~ msgid ""
-#~ "Internal server error occured:\n"
-#~ " server %(server)s \n"
-#~ " on source %(source)s."
-#~ msgstr ""
-#~ "Erreur interne au serveur:\n"
-#~ " serveur %s\n"
-#~ " sur la source %s."
-
-#, fuzzy
-#~ msgid ""
-#~ "Your configuration references a file-based sockets connection.\n"
-#~ "However, your operating system does not support file-based sockets."
-#~ msgstr ""
-#~ "Cependant, votre système d'exploitation ne supporte pas ce type de socket."
-
-#~ msgid "Unable to initialize the requested socket located at %s"
-#~ msgstr "Impossible d'initialiser le socket demandé, situé à %s"
-
-#, fuzzy
-#~ msgid ""
-#~ "To use the sockets commdriver, you must specify either a sockets\n"
-#~ "file or a host and port number. Please see documentation."
-#~ msgstr ""
-#~ "Pour utiliser le pilote de socket commdriver, vous devez spécifier soit"
-
-#, fuzzy
-#~ msgid ""
-#~ "Unable to initialize the requested socket located at %(host)s:%(port)s"
-#~ msgstr "Impossible d'initialiser le socket demandé, situé à %s:%s"
-
-#~ msgid ""
-#~ "\n"
-#~ "Unable to load xmlrpclib.  To use the XML-RPC interface, \n"
-#~ "please install xmlrpc from:\n"
-#~ "    http://www.pythonware.com/products/xmlrpc/"
-#~ msgstr ""
-#~ "\n"
-#~ "Impossible de charger xmlrpclib. Pour utiliser l'interface XML-RPC, \n"
-#~ "installez xmlrpc depuis:\n"
-#~ "   http://www.pythonware.com/products/xmlrpc/"
-
-#, fuzzy
-#~ msgid ""
-#~ "Server XML-RPC procedure %(method)s accepts just %(attr)s as attributes"
-#~ msgstr "du serveur XML-RPC n'accepte que %s comme attributs"
-
-#~ msgid ""
-#~ "\n"
-#~ "Unable to load xmlrpc.  To use the XML-RPC interface, \n"
-#~ "please install xmlrpc from:\n"
-#~ "    http://sourceforge.net/projects/py-xmlrpc\n"
-#~ "the appropriate DEBIAN package is python-xmlrpc.deb"
-#~ msgstr ""
-#~ "\n"
-#~ "Impossible de charger xmlrpc. Pour utiliser l'interface XML-RPC,\n"
-#~ "installez xmlrpc depuis:\n"
-#~ "   http://sourceforge.net/projects/py-xmlrpc\n"
-#~ "Le package DEBIAN est python-xmlrpc.deb"
-
-#~ msgid ""
-#~ "py-xmlrpc only supports http as a transport.  If you need https, please "
-#~ "have a look at the 'pw_xmlrpc' adapter."
-#~ msgstr ""
-#~ "py-xmlrpc ne supporte que http comme transport. Si vous avez besoin de "
-#~ "https, jetez un oeil à l'adaptateur 'pw_xmlrpc'"
-
-#, fuzzy
-#~ msgid "No valid condition tree"
-#~ msgstr "Date invalide"
-
-#, fuzzy
-#~ msgid ""
-#~ "Condition element \"%(element)s\" expects at most %(expected)s arguments; "
-#~ "found %(found)s"
-#~ msgstr ""
-#~ "L'élément de condition \\\"%s\\\" attend au plus %s arguments, mais en a "
-#~ "reçu %s."
-
-#, fuzzy
-#~ msgid ""
-#~ "Condition clause \"%s\" is not supported by the condition to prefix table "
-#~ "conversion."
-#~ msgstr ""
-#~ "La clause de condition \"%s\" n'est pas supportée par ce pilote de base "
-#~ "de données."
-
-#, fuzzy
-#~ msgid ""
-#~ "DB Driver '%(connection)s' does not support source type '%(conType)s'"
-#~ msgstr ""
-#~ "Le pilote de base de données '%s' ne supporte pas le type de source '%s'."
-
-#~ msgid "Backend doesn't support the trigger 'call' function"
-#~ msgstr "Le backend ne supporte pas la fonction trigger 'call'."
-
-#, fuzzy
-#~ msgid "Backend does not support the 'update' function"
-#~ msgstr "Le backend ne supporte pas la fonction trigger 'call'."
-
-#~ msgid "This database adapter doesn't have 'schema writing' support"
-#~ msgstr ""
-#~ "Cet adaptateur de base de données ne supporte pas 'l'écriture de schéma'."
-
-#~ msgid "master=%s; detail=%s"
-#~ msgstr "maitre=%s; détail=%s"
-
-#~ msgid "Attempted to modify read only field '%s'"
-#~ msgstr "Tentative de modification du champ en lecture seule '%s'."
-
-#, fuzzy
-#~ msgid "The definition has no attribute '%s'"
-#~ msgstr "L'instance %s n'a pas d'attribut %s."
-
-#, fuzzy
-#~ msgid "The table definition has no attribute '%s'"
-#~ msgstr "Définition de table dans '%s'"
-
-#, fuzzy
-#~ msgid "The field definition has no attribute '%s'"
-#~ msgstr "L'instance %s n'a pas d'attribut %s."
-
-#, fuzzy
-#~ msgid "Primarykey definition has no attribute '%s'"
-#~ msgstr "L'instance %s n'a pas d'attribut %s."
-
-#, fuzzy
-#~ msgid "Primarykey '%(name)s' of table '%(table)s' has no fields"
-#~ msgstr "La ligne %d de la table %s n'a pas de champ clé."
-
-#, fuzzy
-#~ msgid "Index definition has no attribute '%s'"
-#~ msgstr "L'instance %s n'a pas d'attribut %s."
-
-#, fuzzy
-#~ msgid "Index '%(name)s' of table '%(table)s' has no fields"
-#~ msgstr "La ligne %d de la table %s n'a pas de champ clé."
-
-#, fuzzy
-#~ msgid "Constraint definition has no attribute '%s'"
-#~ msgstr "L'instance %s n'a pas d'attribut %s."
-
-#~ msgid "Object of unknown type (%s) passed to DBSIG2 based dbdriver."
-#~ msgstr ""
-#~ "Objet de type inconnu (%s) passé au pilote de base de données DBSIG2."
-
-#, fuzzy
-#~ msgid ""
-#~ "Condition element \"%(element)s\" expects at least %(expected)s "
-#~ "arguments; found %(found)s"
-#~ msgstr ""
-#~ "L'élément de condition \"%s\" attend au moins %s arguments, mais n'en a "
-#~ "reçu que %s."
-
-#~ msgid "Condition clause \"%s\" is not supported by this db driver."
-#~ msgstr ""
-#~ "La clause de condition \"%s\" n'est pas supportée par ce pilote de base "
-#~ "de données."
-
-#~ msgid "adodbapi"
-#~ msgstr "adodbapi"
-
-#~ msgid "MS Access database"
-#~ msgstr "Base de données MS Access"
-
-#~ msgid "MS SQL Server database"
-#~ msgstr "Base de données MS SQL Server"
-
-#, fuzzy
-#~ msgid "Module '%s' not found."
-#~ msgstr "Fichier CSV non trouvé."
-
-#~ msgid "GNUe AppServer Driver"
-#~ msgstr "Pilote GNUe AppServer"
-
-#~ msgid "CSV file not found."
-#~ msgstr "Fichier CSV non trouvé."
-
-#~ msgid "Wrong file format."
-#~ msgstr "Erreur de format de fichier."
-
-#~ msgid "Python 2.3+ CSV Driver"
-#~ msgstr "Pilote Python 2.3+ CSV"
-
-#~ msgid "Aliases"
-#~ msgstr "Alias"
-
-#~ msgid "Summary Tables"
-#~ msgstr "Tables de synthèse"
-
-#~ msgid "IBM DB2 Data Driver"
-#~ msgstr "Pilote de données IBM DB2"
-
-#~ msgid "DBF file not found."
-#~ msgstr "Fichier DBF non trouvé."
-
-#~ msgid "DBF File Data Driver"
-#~ msgstr "Pilote de données fichier DBF"
-
-#~ msgid "Gadfly Driver"
-#~ msgstr "Pilote Gadfly"
-
-#~ msgid "Kinfxdb Informix driver"
-#~ msgstr "Pilote Informix Kinfxdb"
-
-#~ msgid "ingmod Ingres Driver"
-#~ msgstr "Pilote Ingres ingmod"
-
-#, fuzzy
-#~ msgid ""
-#~ "Encoding '%s' is not supported by interbase dbdriver. Using default "
-#~ "encoding."
-#~ msgstr ""
-#~ "L'encodage '%s' n'est pas supporté par le pilote de base de données "
-#~ "Interbase."
-
-#~ msgid "kinterbasdb Firebird/Interbase Driver"
-#~ msgstr "Pilote Firebird/Interbase kinterbasdb"
-
-#~ msgid "Objects"
-#~ msgstr "Objets"
-
-#, fuzzy
-#~ msgid ""
-#~ "The MySQL driver returned the following error:\n"
-#~ "%s"
-#~ msgstr ""
-#~ "Le pilote PostgreSQL a renvoyé l'erreur suivante:\n"
-#~ "   %s"
-
-#~ msgid "MySQLdb"
-#~ msgstr "Base de données MySQL"
-
-#, fuzzy
-#~ msgid ""
-#~ "Driver not installed: win32all ODBC driver\n"
-#~ "\n"
-#~ "[%s]"
-#~ msgstr ""
-#~ "Pilote non installé: win32all ODBC\n"
-#~ "\n"
-#~ "%s"
-
-#~ msgid "PythonWin ODBC Driver"
-#~ msgstr "Pilote ODBC PythonWin"
-
-#~ msgid ""
-#~ "Driver not installed: win32all ODBC driver\n"
-#~ "\n"
-#~ "[%s"
-#~ msgstr ""
-#~ "Pilote non installé: win32all ODBC\n"
-#~ "\n"
-#~ "%s"
-
-#, fuzzy
-#~ msgid ""
-#~ "The Oracle driver returned the following error:\n"
-#~ "%s"
-#~ msgstr ""
-#~ "Le pilote PostgreSQL a renvoyé l'erreur suivante:\n"
-#~ "   %s"
-
-#, fuzzy
-#~ msgid "This feature is currently not supported by this driver"
-#~ msgstr ""
-#~ "La clause de condition \"%s\" n'est pas supportée par ce pilote de base "
-#~ "de données."
-
-#~ msgid "cx_Oracle SQLNet Driver"
-#~ msgstr "Pilote SQLNet cx_Oracle"
-
-#~ msgid "DCOracle2 OCI Driver"
-#~ msgstr "Pilote OCI DCOracle2"
-
-#~ msgid "DCOracle2 Data Driver for Oracle 7.3/8i/9i+ (OCI8)"
-#~ msgstr "Pilote de données DCOracle2 pour Oracle 7.3/8i/9i+ (OCI8)"
-
-#~ msgid ""
-#~ "The PostgreSQL driver returned the following error:\n"
-#~ "\t%s"
-#~ msgstr ""
-#~ "Le pilote PostgreSQL a renvoyé l'erreur suivante:\n"
-#~ "   %s"
-
-#, fuzzy
-#~ msgid ""
-#~ "Encoding '%s' is not supported by postgresql dbdriver. Using default "
-#~ "encoding."
-#~ msgstr ""
-#~ "L'encodage '%s' n'est pas supporté par le pilote de base de données "
-#~ "Interbase."
-
-#~ msgid "popy"
-#~ msgstr "popy"
-
-#~ msgid "Psycopg"
-#~ msgstr "Psycopg"
-
-#~ msgid "PyGreSQL"
-#~ msgstr "PyGreSQL"
-
-#~ msgid "pyPgSQL"
-#~ msgstr "pyPgSQL"
-
-#~ msgid "Synonyms"
-#~ msgstr "Synonymes"
-
-#~ msgid "Result Table"
-#~ msgstr "Table de résultat"
-
-#, fuzzy
-#~ msgid ""
-#~ "The MaxDB/SAP-DB driver returned the following error:\n"
-#~ "%s"
-#~ msgstr ""
-#~ "Le pilote PostgreSQL a renvoyé l'erreur suivante:\n"
-#~ "   %s"
-
-#~ msgid "MySQL's MaxDB driver"
-#~ msgstr "Pilote MySQL MaxDB"
-
-#~ msgid "Error opening config file %s"
-#~ msgstr "Erreur lors de l'ouverture du fichier de configuration %s"
-
-#~ msgid ""
-#~ "This database driver always shows all sections             of a config "
-#~ "file. You cannot execute querys on it."
-#~ msgstr ""
-#~ "Ce pilote de base de données montre toujours toutes les sections d'un "
-#~ "fichier de configuration. Vous ne pouvez pas exécuter de requêtes sur "
-#~ "celui-ci."
-
-#~ msgid "The section name you have provided for this record already exists."
-#~ msgstr ""
-#~ "Le nom de section que vous avez fourni pour cet enregistrement existe "
-#~ "déjà."
-
-#~ msgid "You have to provide a section name for this record!"
-#~ msgstr "Vous devez fournir un nom de section pour cet enregistrement!"
-
-#~ msgid "ConfigFile Special Data Driver"
-#~ msgstr "Pilote de données spécial pour fichier de configuration"
-
-#~ msgid "Static Special Data Driver"
-#~ msgstr "Pilote de données spécial statique"
-
-#~ msgid "Unbound Special Data Driver"
-#~ msgstr "Pilote de données spécial non lié"
-
-#, fuzzy
-#~ msgid ""
-#~ "The SQLite driver returned the following error:\n"
-#~ "\t%s"
-#~ msgstr ""
-#~ "Le pilote PostgreSQL a renvoyé l'erreur suivante:\n"
-#~ "   %s"
-
-#~ msgid "PySQLite Driver"
-#~ msgstr "Pilote PySQLite"
-
-#~ msgid ""
-#~ "Driver not installed: SQLRelay Python API\n"
-#~ "[%s]"
-#~ msgstr ""
-#~ "Pilote non installé: SQLRelay Python API\n"
-#~ "[%s]"
-
-#~ msgid "SQLRelay Python Client"
-#~ msgstr "Client Python SQLRelay"
-
-#~ msgid "Driver not installed: Sybase.py for Sybase ASE 11.0/11.9 [%s]"
-#~ msgstr "Pilote non installé: Sybase.py pour Sybase ASE 11.0/11.9 [%s]"
-
-#~ msgid "Sybase Python Driver"
-#~ msgstr "Pilote Python Sybase"
-
-#, fuzzy
-#~ msgid "%(fieldname)sInvalid datatype '%(datatype)s'."
-#~ msgstr "%s Type de données invalide '%s'."
-
-#~ msgid "is not a boolean (TRUE or FALSE)"
-#~ msgstr "n'est pas un booléen (TRUE ou FALSE)"
-
-#~ msgid "Errors found while processing GSD file."
-#~ msgstr "Erreurs lors du traitement du fichier GSD."
-
-#~ msgid "Constraint '%s' has no reference fields."
-#~ msgstr "La contrainte '%s' n'a pas de champs de référence."
-
-#, fuzzy
-#~ msgid "Constraint '%(name)s' has more fields than the table '%(table)s'"
-#~ msgstr "La contrainte '%s' n'a pas de champs de référence."
-
-#, fuzzy
-#~ msgid "Constraint '%(name)s': typemismatch in reference field '%(field)s'."
-#~ msgstr "La contrainte '%s' n'a pas de champs de référence."
-
-#~ msgid "GSD-Error: can't find myself in the XML tree?!"
-#~ msgstr "Erreur GSD: je ne me trouve pas dans l'arbre XML ?!"
-
-#, fuzzy
-#~ msgid "Data row of table '%s' has no key fields"
-#~ msgstr "La ligne %d de la table %s n'a pas de champ clé."
-
-#, fuzzy
-#~ msgid ""
-#~ "GNUe Schema Scripter creates database schemas based on GNUe Schema "
-#~ "Definitions."
-#~ msgstr ""
-#~ "GNUe Schema Scripter crée un fichier SQL basé sur un définition de schéma "
-#~ "GNUe."
-
-#~ msgid "Loading gsd file '%s' ..."
-#~ msgstr "Chargement du fichier gsd '%s' ..."
-
-#, fuzzy
-#~ msgid "Unable to initialize the XML-RPC interface at %s: Connection refused"
-#~ msgstr "Impossible d'initialiser l'interface XML-RPC à %s: "
-
-#~ msgid ""
-#~ "Driver not installed: sapdbapi for SAP-DB 7.x \n"
-#~ "[%s]"
-#~ msgstr ""
-#~ "Pilote non installé: sapdbapi pour SAB-DB 7.x.\n"
-#~ "[%s]"
-
-#, fuzzy
-#~ msgid "    Inserted %d row(s), updated %d row(s)"
-#~ msgstr "  %d lignes insérées, %d lignes mises à jour."
-
-#, fuzzy
-#~ msgid "Row %(row)d of table %(table)s has no key fields."
-#~ msgstr "La ligne %d de la table %s n'a pas de champ clé."
-
-#~ msgid "Use the connection <connectionname> for importing data."
-#~ msgstr "Utiliser la connexion <nom_de_connexion> pour importer les données."
-
-#~ msgid "GNUe Schema Importer reads data from a GNUe Schema "
-#~ msgstr "L'importateur de schéma GNUe lit les données depuis une définition "
-
-#~ msgid "Importing into %s"
-#~ msgstr "Import vers %s"
-
-#, fuzzy
-#~ msgid "  Inserted %(inserted)d row(s), updated %(updated)d row(s)"
-#~ msgstr "  %d lignes insérées, %d lignes mises à jour."
-
-#, fuzzy
-#~ msgid "No connection specified."
-#~ msgstr "Pas de fichier d'entrée spécifié."
-
-#, fuzzy
-#~ msgid ""
-#~ "%(exType)s while reading gnue.conf:\n"
-#~ "   %(message)s"
-#~ msgstr "%s pendant la lecture de gnue.conf: "
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Could not load MySQLdb. For MySQL support, please install mysql-python "
-#~ "0.9.0 or later from\n"
-#~ "http://sourceforge.net/projects/mysql-python\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Impossible de charger la base MySQL. Pour le support MySQL, installez \n"
-
-#, fuzzy
-#~ msgid "Server XML-RPC method %s is not bound to real method"
-#~ msgstr "La méthode '%s' XML-RPC du serveur n'est pas "
-
-#, fuzzy
-#~ msgid ""
-#~ "GNURPC can't bind method/attribut '%(name)s' to service '%(service)s'"
-#~ msgstr "GNURPC ne peut lier la méthode/attribut '%s' au service '%s'"
-
-#~ msgid "Wrong format of object handle "
-#~ msgstr "Mauvais format de handle objet"
-
-#~ msgid "in method call %s"
-#~ msgstr "dans l'appel à la méthode %s"
-
-#~ msgid "Internal XMLRPC server error: method %s can be "
-#~ msgstr "Erreur interne du serveur XMLRPC: la méthode %s peut être "
-
-#~ msgid "found in the directory (build out of a .grpc file),"
-#~ msgstr "trouvée dans le répertoir (construite à partir d'un fichier .grpc),"
-
-#~ msgid " but the object doesn't contain this method/attribut."
-#~ msgstr "mais l'objet ne contient pas cette méthode/attribut."
-
-#~ msgid " Please check you .grpc file for wrong return types."
-#~ msgstr ""
-#~ "Vérifiez que votre fichier .grpc ne contient pas d'erreur de type de "
-#~ "retour."
-
-#~ msgid "bound to real method"
-#~ msgstr "liée à la méthode réelle"
-
-#~ msgid "Server does not have XML-RPC "
-#~ msgstr "Le serveur n'a pas la procédure"
-
-#~ msgid "procedure %s"
-#~ msgstr "XML-RPC %s"
-
-#~ msgid "Server XML-RPC "
-#~ msgstr "La procédure %s "
-
-#~ msgid "procedure %s accepts just %s as attributs"
-#~ msgstr "du serveur XML-RPC n'accepte que %s comme attributs"
-
-#~ msgid "Internal Server XML-RPC error: method type"
-#~ msgstr "Erreur interne du serveur XML-RPC: le type de la méthode"
-
-#~ msgid "(get/set attribute) couldn't be detected (method %s)"
-#~ msgstr "(lire/écrire l'attribut) n'a pas pu être détéctée (méthode %s)"
-
-#~ msgid ""
-#~ "Internal server error occured:\n"
-#~ " server %s \n"
-#~ " on source %s."
-#~ msgstr ""
-#~ "Erreur interne au serveur:\n"
-#~ " serveur %s\n"
-#~ " sur la source %s."
-
-#, fuzzy
-#~ msgid "Missing Binding information. Please add binding information for %s "
-#~ msgstr "Information de liaison manquante. Ajoutez l'information "
-
-#, fuzzy
-#~ msgid "GNURPC cannot bind service '%(name)s' to service'%(destination)s'"
-#~ msgstr "GNURPC ne peut lier le service '%s' au service '%s'"
-
-#~ msgid ""
-#~ "\n"
-#~ "   The connections file is in an invalid format. "
-#~ msgstr ""
-#~ "\n"
-#~ "Le fichier de connections n'a pas un format valide. "
-
-#~ msgid ""
-#~ "\n"
-#~ "   The connections file specified either does "
-#~ msgstr ""
-#~ "\n"
-#~ "Le fichier de connections spécifié n'existe pas"
-
-#~ msgid ""
-#~ "\n"
-#~ "   not exist or is not readable by your account.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "ou n'est pas lisible par votre compte.\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "   Location: \"%s\""
-#~ msgstr ""
-#~ "\n"
-#~ "   Localisation: \"%s\""
-
-#~ msgid "Do not send the server into the background. For a POSIX system, "
-#~ msgstr "Ne pas envoyer le serveur en tâche de fond. Sur un système POSIX, "
-
-#~ msgid "this option keeps the server process from forking and detaching "
-#~ msgstr ""
-#~ "cette option empêche le processus serveur de forker et de se détacher "
-
-#~ msgid "from its controlling terminal."
-#~ msgstr "de son terminal parent."
-
-#~ msgid "mysql-python 0.9.0 or later from"
-#~ msgstr "mysql-python 0.9.0 ou plus récent depuis"
-
-#~ msgid "Error:  %s"
-#~ msgstr "Erreur:  %s"
-
-#~ msgid "Encoding '%s' is not supported by postgresql dbdriver."
-#~ msgstr "L'encodage '%s' n'est pas supporté par le pilote PostgreSQL."
-
-#~ msgid "Using default encoding."
-#~ msgstr "Utilisation de l'encodage par défaut."
-
-#~ msgid "Starting cursor: %s; shift: %s"
-#~ msgstr "Curseur de départ: %s; décalage: %s."
-
-#~ msgid "Ending cursor: %s; shift: %s"
-#~ msgstr "Curseur de fin: %s; décalage: %s."
-
-#~ msgid "relative=%s"
-#~ msgstr "relatif=%s"
-
-#~ msgid "direction=%s"
-#~ msgstr "direction=%s"
-
-#~ msgid "cursor #1: %s"
-#~ msgstr "curseur #1: %s"
-
-#~ msgid "cursor #2: %s"
-#~ msgstr "curseur #2: %s"
-
-#~ msgid "pos=%s"
-#~ msgstr "pos=%s"
-
-#~ msgid "section=%s"
-#~ msgstr "section=%s"
-
-#~ msgid "cursor #2b: %s"
-#~ msgstr "curseur #2b: %s"
-
-#~ msgid "cursor #3: %s"
-#~ msgstr "curseur #3: %s"
-
-#~ msgid "cursor #4: %s"
-#~ msgstr "curseur #4: %s"
-
-#~ msgid "New cursor position: %s"
-#~ msgstr "Nouvelle position curseur: %s"
-
-#~ msgid "after processEdit, index=%s;cursor=%s"
-#~ msgstr "après processEdit, index=%s;curseur=%s"
-
-#~ msgid "information for %s "
-#~ msgstr "de liaison pour %s "
-
-#~ msgid "GNURPC: cannot bind service '%s' to %s"
-#~ msgstr "GNURPC ne peut lier le service '%s' au service '%s'"
-
-#~ msgid ""
-#~ "\n"
-#~ "Unable to load pyro.  To use the Pyro interface, \n"
-#~ msgstr ""
-#~ "\n"
-#~ "Impossible de charger pyro. Pour utiliser l'interface pyro, \n"
-
-#~ msgid "please install xmlrpc from:\n"
-#~ msgstr "installez xmlrpc depuis:\n"
-
-#~ msgid "the appropriate DEBIAN package is python-pyro.deb"
-#~ msgstr "le package DEBIAN est python-pyro.deb"
-
-#~ msgid "py-xmlrpc just support http as a transport. "
-#~ msgstr "py-xmlrpc ne supporte que http comme transport. "
-
-#~ msgid "If you need https please have a look at the "
-#~ msgstr "Si vous avez besoin de https, utilisez plutôt"
-
-#~ msgid "'pw_xmlrpc' adapter."
-#~ msgstr "l'adaptateur 'pw_xmlrpc'."
-
-#~ msgid "a 'host' and 'port' setting."
-#~ msgstr "un 'hote' et un 'port'."
-
-#~ msgid "Connection refused"
-#~ msgstr "Connexion refusée"
-
-#~ msgid ""
-#~ "\n"
-#~ "Unable to load Pyro.  To use the Pyro interface, \n"
-#~ msgstr ""
-#~ "\n"
-#~ "Impossible de charger Pyro. Pour utiliser l'interface Pyro, \n"
-
-#~ msgid "please install pyro from:\n"
-#~ msgstr "installez pyro depuis:\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "Unable to load soaplib.  To use the SOAP interface, \n"
-#~ msgstr ""
-#~ "\n"
-#~ "Impossible de charger soaplib. Pour utiliser l'interface SOAP, \n"
-
-#~ msgid "please install soaplib from:\n"
-#~ msgstr "installez soaplib depuis:\n"
-
-#~ msgid "Your configuration references a file-based sockets connection.\n"
-#~ msgstr ""
-#~ "Votre configuration fait référence à une connexion sur un socket file-"
-#~ "based.\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "file or a host and port number.  Please see documentation."
-#~ msgstr ""
-#~ "\n"
-#~ "un fichier de socket, soit un hôte et un numéro de port. Consultez la "
-#~ "documentation."
-
-#~ msgid "%sValue '%s' %s"
-#~ msgstr "%s Valeur '%s' %s"
-
-#~ msgid ""
-#~ "Driver not installed: SQLitedbapi for SQLite 7.x \n"
-#~ "[%s]"
-#~ msgstr ""
-#~ "Pilote non installé: SQLitedbapi pour SQLite 7.x \n"
-#~ "[%s]"
-
-#~ msgid "Generate commands to drop relevant tables.  * NOT IMPLEMENTED"
-#~ msgstr ""
-#~ "Générer les commandes pour supprimer les tables correspondantes.  * NON "
-#~ "IMPLEMENTE"
-
-#~ msgid "Do not generate schema creation code.  * NOT IMPLEMENTED"
-#~ msgstr "Ne pas générer le code de création du schéma.  * NON IMPLEMENTE"
-
-#~ msgid "Do not generate data insertion code.  * NOT IMPLEMENTED"
-#~ msgstr "Ne pas générer le code d'insertion des données.  * NON IMPLEMENTE"
-
-#~ msgid "encoding"
-#~ msgstr "encodage"
-
-#~ msgid ""
-#~ "The generated SQL script will be encoded using <encoding>. Default "
-#~ "encoding is UTF-8"
-#~ msgstr ""
-#~ "Le script SQL généré sera encodé en utilisant <encodage>. L'encodage par "
-#~ "défaut est UTF-8."
-
-#~ msgid ""
-#~ "Generate code to upgrade an older version of a schema to the recent "
-#~ "version. You must specify a previous schema on the command line.  * NOT "
-#~ "IMPLEMENTED"
-#~ msgstr ""
-#~ "Générer le code pour mettre à jour une ancienne version d'un schéma vers "
-#~ "sa nouvelle version. Vous devez spécifier un ancien schéma sur la ligne "
-#~ "de commande.  * NON IMPLEMENTE"
-
-#~ msgid ""
-#~ "Generate code to upgrade an older version of schema data to the recent "
-#~ "version. You must specify a previous schema on the command line.  * NOT "
-#~ "IMPLEMENTED"
-#~ msgstr ""
-#~ "Générer le code pour mettre à jour les données d'une ancienne version "
-#~ "d'un schéma vers sa nouvelle version. Vous devez spécifier un ancien "
-#~ "schéma sur la ligne de commande.  * NON IMPLEMENTE"
-
-#~ msgid "List all supported vendors."
-#~ msgstr "Lister tous les constructeurs supportés."
-
-#~ msgid ""
-#~ "The destination for the created schemas. This can be in several formats. "
-#~ "If <dest> is a file name, then output is written to this file. If <dest> "
-#~ "is a directory, then <dest>/<Vendor>.sql is created. The default is to "
-#~ "create <Vendor>.sql in the current directory. NOTE: the first form "
-#~ "(<dest> as a filename) is not supported for --vendors all."
-#~ msgstr ""
-#~ "La destination pour les schémas créés. Elle peut utiliser divers "
-#~ "formats.\n"
-#~ " Si <dest> est un nom de fichier, la sortie est écrite dans ce fichier.\n"
-#~ " Si <dest> est un répertoire, alors <dest>/<constructeur>.sql est créé.\n"
-#~ " Par défaut, <constructeur>.sql est créé dans le répertoire courant.\n"
-#~ " NOTE: la première solution n'est pas compatible avec --vendors all."
-
-#~ msgid ""
-#~ "The vendor to create a script for. If <vendor> is 'all', then scripts for "
-#~ "all supported vendors will be created. <vendor> can also be a comma-"
-#~ "separated list."
-#~ msgstr ""
-#~ "Le constructeur pour lequel créer un script. Si <constructeur> est 'all', "
-#~ "alors des scripts pour tous les constructeurs sont créés. <constructeur> "
-#~ "peut aussi être une liste de nom séparés pas des virgules."
-
-#~ msgid "--no-schema and --no-data cannot be used together. What to export?"
-#~ msgstr ""
-#~ "--no-schema et --no-data ne peuvent être utilisée ensemble. Exporter "
-#~ "quoi ?"
-
-#~ msgid ""
-#~ "--drop-tables, --upgrade-schema and --upgrade-data\n"
-#~ " are not implemented yet."
-#~ msgstr ""
-#~ "--drop-tables, --upgrade-schema et --upgrade-data ne sont pas encore "
-#~ "implémentés."
-
-#~ msgid ""
-#~ "If multiply vendors are specified --output must be a directory or\n"
-#~ " left empty."
-#~ msgstr ""
-#~ "Si plusieurs constructeurs sont spécifiés --output doit être un "
-#~ "répertoire ou laissé vide."
-
-#~ msgid "Unable to create output file %s."
-#~ msgstr "Impossible de créer le fichier de sortie %s."
-
-#~ msgid "WARNING: datatype 'timestamp' is depreciated. Use datetime instead."
-#~ msgstr ""
-#~ "ATTENTION: le type de données 'timestamp' est déprécié. Utilisez "
-#~ "'datetime'."
-
-#~ msgid ""
-#~ "WARNING: datatype 'text' is depreciated. Use 'string' without length "
-#~ "instead."
-#~ msgstr ""
-#~ "ATTENTION: le type de données 'text' est déprécié. Utilisez 'string' sans "
-#~ "longueur à la place."
-
-#~ msgid "Table definition of '%s'"
-#~ msgstr "Définition de table pour '%s'"
-
-#~ msgid "List of fields"
-#~ msgstr "Liste de champs"
-
-#~ msgid "Unique Index"
-#~ msgstr "Index unique"
-
-#~ msgid "Index"
-#~ msgstr "Index"
-
-#~ msgid "Foreign Key"
-#~ msgstr "Clé étrangère"
-
-#~ msgid "references"
-#~ msgstr "référence"
-
-#~ msgid "yes"
-#~ msgstr "oui"
-
-#~ msgid "Generated on"
-#~ msgstr "Généré le"
+"Aucun espace de nommage donné pour la génération UUID basée sur les noms"

Added: trunk/gnue-forms/defaults/default/fr.gfd
===================================================================
--- trunk/gnue-forms/defaults/default/fr.gfd	2007-06-08 15:04:07 UTC (rev 9694)
+++ trunk/gnue-forms/defaults/default/fr.gfd	2007-06-08 15:26:47 UTC (rev 9695)
@@ -0,0 +1,93 @@
+<?xml version="1.0"?>
+
+<!--
+  GNU Enterprise default menu definition
+
+  Copyright 2001-2007 Free Software Foundation
+
+  This file is part of GNU Enterprise
+
+  GNU Enterprise is free software; you can redistribute it
+  and/or modify it under the terms of the GNU General Public
+  License as published by the Free Software Foundation; either
+  version 2, or (at your option) any later version.
+
+  GNU Enterprise is distributed in the hope that it will be
+  useful, but WITHOUT ANY WARRANTY; without even the implied
+  warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+  PURPOSE. See the GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public
+  License along with program; see the file COPYING. If not,
+  write to the Free Software Foundation, Inc., 59 Temple Place
+  - Suite 330, Boston, MA 02111-1307, USA.
+
+  Version française: didier Belot <[email protected]>, 2007
+
+-->
+
+<form>
+  <!-- Clipboard and selection -->
+  <action name="act__cut__" label="Co&amp;uper"    description="Couper le texte sélectioné" />
+  <action name="act__copy__" label="&amp;Copier"   description="Copier le texte sélectionné vers le presse-papier" />
+  <action name="act__paste__" label="Co&amp;ller"  description="Coller le contenu du presse-papier à la position courante" />
+  <action name="act__select_all__" label="Tout sélectionner"  description="Sélectionner tout le champ" />
+
+  <!-- Focus management -->
+  <action name="act__next_block__" label="Bloc suivant"    description="Aller au bloc suivant" />
+  <action name="act__previous_block__" label="Bloc précédent"   description="Aller au bloc précédent" />
+  <action name="act__next_page__" label="Page suivante"    description="Aller à la page suivante" />
+  <action name="act__previous_page__" label="Page précédente"  description="Aller à la page précédente" />
+
+  <!-- Record navigation -->
+  <action name="act__first_record__" icon="firstrecord" label="Premier enregistrement" 
+	description="Déplacer le bloc courant vers le premier enregistrement" />
+  <action name="act__prev_record__" icon="prevrecord" label="Enregistrement préc."
+    description="Déplacer le bloc courant vers l'enreistrement précédent" />
+  <action name="act__next_record__" icon="nextrecord" label="Enregistrement suiv."
+    description="Déplacer le bloc courant vers l'enregistrement suivant" />
+  <action name="act__last_record__" icon="lastrecord" label="Dernier enregistrement"
+    description="Déplacer le bloc courant vers le dernier enregistrement" />
+  <action name="act__ask_record__" icon="jumpprompt" label="Aller à l'enregistrement"
+    description="Saisir un n° d'enregistrement et se déplacer vers cet enregistrement" />
+
+  <!-- Record insertion and deletion -->
+  <action name="act__new_record__" icon="newrecord" label="Nouvel enregistrement"
+    description="Insérer un nouvel enregistrement dans le bloc courant" />
+  <action name="act__delete_record__" icon="deleterecord" label="Supprimer l'enregistrement"
+    description="Marquer l'enregistrement actuel pour suppression" />
+  <action name="act__undelete_record__" label="Restaurer l'enregistrement"
+    description="Annuler la suppression de l'enregistrement" />
+
+  <!-- Filter -->
+  <action name="act__init_filter__" icon="init_filter" label="Définir un filtre"
+    description="Définir un nouveau critère de filtrage" />
+  <action name="act__change_filter__" label="Modifier le filtre"
+    description="Modifier le critère de filtrage" />
+  <action name="act__discard_filter__" label="Annuler les modifications du filtre"
+    description="Annule les modification du critère de filtrage et rétabli le filtrage précédent" />
+  <action name="act__apply_filter__" icon="apply_filter" label="Appliquer le filtre"
+    description="Applique le critère de filtrage" />
+
+  <!-- Transactions -->
+  <action name="act__commit__" icon="commit" label="Enregistrer les modifications"
+    description="Enregistrer tous les changements dans la base de données" />
+  <action name="act__rollback__" icon="rollback" label="Annuler les modifications"
+    description="Annuler les modifications et ré-initialiser le formulaire" />
+
+  <!-- Other stuff -->
+  <action name="act__show_about__" label="A propos"    description="Affiche les informations du formulaire" />
+  <action name="act__printout__" icon="printout" label="Imprimer le formulaire"
+    description="Imprime le contenu du formulaire" />
+  <action name="act__close__" icon="exit" label="Fermer la fenêtre"    description="Ferme cette fenêtre" />
+
+
+  <menu name="__main_menu__" label="Menu Principal">
+    <menu name="__file__" label="&amp;Fichier" />
+    <menu name="__edit__" label="&amp;Edition" />
+    <menu name="__filter__" label="F&amp;iltre" />
+  </menu>
+  <menu name="__help_menu__">
+    <menu name="__help__" label="Aide" />
+  </menu>
+</form>

Modified: trunk/gnue-forms/po/fr.po
===================================================================
--- trunk/gnue-forms/po/fr.po	2007-06-08 15:04:07 UTC (rev 9694)
+++ trunk/gnue-forms/po/fr.po	2007-06-08 15:26:47 UTC (rev 9695)
@@ -1,23 +1,25 @@
 # French translation for GNUe Forms
 # Copyright (C) 2004 Free Software Foundation
 # Laurent Savaete <[email protected]>, 2004.
+# Didier Belot <[email protected]>, 2007.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: GNUe-Forms 0.6\n"
+"Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2007-06-04 21:28+CEST\n"
 "PO-Revision-Date: 2004-04-10 19:29+0200\n"
-"Last-Translator: Laurent Savaete <[email protected]>\n"
+"Last-Translator: Didier Belot <[email protected]>\n"
 "Language-Team: Francais <[email protected]>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: pygettext.py 1.5\n"
 
 #: GFClient.py:62
 msgid "GNUe Forms is the primary user interface to the GNU Enterprise system."
 msgstr ""
-"GNUe Forms est l'interface utilisateur principale pour le système GNU "
+"GNUe Forms est l'interface utilisateur principale pour le système GNU "
 "Enterprise."
 
 #: GFClient.py:76
@@ -25,170 +27,161 @@
 "The name of the user interface to use to display your form. For a list of "
 "interfaces, use the --help-ui options."
 msgstr ""
-"Le nom de l'interface utilisateur à utiliser pour afficher votre formulaire. "
-"our obtenir une liste d'interfaces, utilisez l'option --hel-ui."
+"Le nom de l'interface utilisateur à utiliser pour afficher votre formulaire. "
+"Pour obtenir une liste d'interfaces, utilisez l'option --help-ui."
 
 #: GFClient.py:80
 msgid "Prints a list of user interfaces that forms supports."
-msgstr "Affiche une liste des interfaces utilisateur supportées par Forms."
+msgstr "Affiche une liste des interfaces utilisateur supportées par Forms."
 
 #: GFClient.py:83
 msgid "Disables the splash screen"
-msgstr "Désactive l'écran de démarrage"
+msgstr "Désactive l'écran de démarrage"
 
 #: GFClient.py:135
 msgid "Unknown UI driver specified: %s"
-msgstr "Pilote d'UI spécifié inconnu: %s"
+msgstr "Pilote d'UI spécifié inconnu : %s"
 
 #: GFClient.py:142
-#, fuzzy
 msgid "Unable to load UI driver: %s"
-msgstr "Impossible de charger un pilote d'UI valide. Abandon."
+msgstr "Impossible de charger  pilote d'UI : %s"
 
 #: GFClient.py:194 uidrivers/html/GFServer.py:81
 msgid "No Forms Definition File Specified."
-msgstr "Pas de fichier de définition de formulaire spécifié."
+msgstr "Pas de fichier de définition de formulaire spécifié."
 
 #: GFClient.py:217
 msgid ""
 "The following interfaces are supported by GNUe Forms. You can select an\n"
 "interface via the --interface option."
 msgstr ""
-"Les interfaces suivantes sont supportées par GNUe Forms. Vous\n"
-"pouvez sélectionner une interface avec l'option --interface."
+"Les interfaces suivantes sont supportées par GNUe Forms. Vous\n"
+"pouvez sélectionner une interface avec l'option --interface."
 
 #: GFClient.py:220
 msgid "To view general help, run this command with the --help option."
 msgstr ""
-"Pour obtenir l'aide générale, executez cette commande avec l'option --help."
+"Pour obtenir l'aide générale, executez cette commande avec l'option --help."
 
 #: GFClient.py:222
 msgid "User interface command line options:"
-msgstr "Options de la ligne de commande de l'interface utilisateur:"
+msgstr "Options de la ligne de commande de l'interface utilisateur :"
 
 #: GFForm.py:53
-#, fuzzy
 msgid "Form is read only"
 msgstr "Formulaire en lecture seule"
 
 #: GFForm.py:62 GFObjects/GFParameter.py:201
 msgid "Parameter '%(name)s' not defined in the form"
-msgstr ""
+msgstr "Paramètre '%(name)s' indéfini dans le formulaire"
 
 #: GFForm.py:1182 GFForm.py:1199
 msgid "Recordnumber"
-msgstr ""
+msgstr "Enregistrement n°"
 
 #: GFForm.py:1186
-#, fuzzy
 msgid "Jump to record"
-msgstr "Aller à l'enregistrement..."
+msgstr "Aller à l'enregistrement"
 
 #: GFForm.py:1197
 msgid "Invalid numeric value entered."
-msgstr "Valeur numérique saisie incorrecte."
+msgstr "Valeur numérique saisie incorrecte."
 
 #: GFForm.py:1282 GFForm.py:1309
 msgid "Enter your filter criteria."
-msgstr ""
+msgstr "Entrez vos critères de tri"
 
 #: GFForm.py:1328
 msgid "Query canceled."
-msgstr ""
+msgstr "Requête annulée"
 
 #: GFForm.py:1380
 msgid "Query returned no results."
-msgstr ""
+msgstr "La requête n'a retourné aucun résultat."
 
 #: GFForm.py:1382
 msgid "Query successful."
-msgstr ""
+msgstr "Requête réussie."
 
 #: GFForm.py:1868
-#, fuzzy
 msgid "Save changes?"
-msgstr "Enregistrer les changements"
+msgstr "Enregistrer les changements ?"
 
 #: GFInstance.py:53
-#, fuzzy
 msgid "Unable to open file: %s"
-msgstr ""
-"Ouverture du fichier impossible\n"
-"\n"
-"%s"
+msgstr "Impossible d'ouvrir le fichier : %s"
 
 #: GFObjects/GFBlock.py:1639
 msgid "Datasource '%(datasource)s' in block '%(block)s' not found"
-msgstr ""
+msgstr "Datatasource '%(datasource)s' dans le bloc '%(block)s' introuvable"
 
 #: GFObjects/GFField.py:316 GFObjects/GFField.py:346 GFObjects/GFField.py:642
 msgid "(all)"
-msgstr ""
+msgstr "(tous)"
 
 #: GFObjects/GFField.py:318 GFObjects/GFField.py:344 GFObjects/GFField.py:642
 msgid "(empty)"
-msgstr ""
+msgstr "(vide)"
 
 #: GFObjects/GFField.py:734
 msgid "Field '%(name)s' has a fk_source specified, but no fk_key"
-msgstr ""
+msgstr "Le champ '%(name)s' spécifie un fk_source, mais aucun fk_key"
 
 #: GFObjects/GFField.py:744
 msgid "'length' attribute not allowed for field '%(name)s'"
-msgstr ""
+msgstr "Attribut 'Length' interdit pour le champ '%(name)s'"
 
 #: GFObjects/GFField.py:754
 msgid "'minLength' attribute not allowed for field '%(name)s'"
-msgstr ""
+msgstr "Attribut 'minlength' interdit pour le champ '%(name)s'"
 
 #: GFObjects/GFField.py:764
 msgid "Datasource '%(name)s' not found"
-msgstr ""
+msgstr "Datasource '%(name)s' introuvable"
 
 #: GFObjects/GFField.py:780
-#, fuzzy
 msgid "Invalid database value '%(value)s' for field '%(field)s'"
-msgstr "Valeur '%s' incorrecte pour le champ"
+msgstr "Valeur '%(value)s' incorrecte pour le champ '%(field)s' dans la base de données"
 
 #: GFObjects/GFField.py:790
 msgid ""
 "Value '%(value)s' for field '%(field)s' does not reach minimum length of %"
 "(min_length)s"
-msgstr ""
+msgstr "La valeur '%(value)s' pour le champ '%(field)s' n'atteind pas la longueur minimum de"
+" %(min_length)s'"
 
 #: GFObjects/GFField.py:805
-#, fuzzy
 msgid "Invalid value '%(value)s' for field '%(field)s'"
-msgstr "Valeur '%s' incorrecte pour le champ"
+msgstr "Valeur '%(value)s' incorrecte pour le champ '%(field)s'"
 
 #: GFObjects/GFLayout.py:42
 msgid "%(item)s '%(name)s' not allowed in a managed layout"
-msgstr ""
+msgstr "%(item)s '%(name)s' interdit dans une mise en page gérée"
 
 #: GFObjects/GFLayout.py:45
 msgid "%(item)s '%(name)s' uses positioning information in a managed layout"
-msgstr ""
+msgstr "%(item)s '%(name)s' utilise les informations de position dans une "
+"mise en page gérée"
 
 #: GFObjects/GFLayout.py:49
 msgid "%(item)s '%(name)s' not allowed in a positioned layout"
-msgstr ""
+msgstr "%(item)s '%(name)s' interdit dans une mise en page positionnée"
 
 #: GFObjects/GFObj.py:41
 msgid "%(item)s '%(name)s' references non-existent block '%(block)s'"
-msgstr ""
+msgstr "%(item)s '%(name)s' référence un bloc inexistant : '%(block)s'"
 
 #: GFObjects/GFObj.py:52
 msgid "%(item)s '%(name)s' references non-existent field '%(field)s'"
-msgstr ""
+msgstr "%(item)s '%(name)s' référence un champ inexistant : '%(field)s'"
 
 #: GFObjects/GFParameter.py:189
 msgid "Value %(value)r is not valid for parameter '%(name)s'"
-msgstr ""
+msgstr "La valeur %(value)r est incorrecte pour le paramètre '%(name)s'"
 
 #: GFParser.py:86
-#, fuzzy
 msgid "Form"
-msgstr "Normal"
+msgstr "Formulaire"
 
 #: GFParser.py:91
 msgid "Title"
@@ -201,12 +194,11 @@
 #: GFParser.py:103 GFParser.py:126 GFParser.py:143 GFParser.py:202
 #: GFParser.py:214 GFParser.py:298 GFParser.py:1110 GFParser.py:1188
 msgid "Name"
-msgstr ""
+msgstr "Nom"
 
 #: GFParser.py:107
-#, fuzzy
 msgid "Style"
-msgstr "Titre"
+msgstr "Style"
 
 #: GFParser.py:109 GFParser.py:323
 msgid "Normal"
@@ -218,179 +210,171 @@
 
 #: GFParser.py:119
 msgid "A menu or submenu containing menu items and/or submenus"
-msgstr ""
+msgstr "Un menu ou sous-menu contenant des éléments de menu et/ou des sous-menus"
 
 #: GFParser.py:123
 msgid "Menu"
-msgstr ""
+msgstr "Menu"
 
 #: GFParser.py:127 GFParser.py:144 GFParser.py:203 GFParser.py:215
 msgid "Name of this element"
-msgstr ""
+msgstr "Nom de cet élément"
 
 #: GFParser.py:132 GFParser.py:154 GFParser.py:224 GFParser.py:498
 msgid "Label"
-msgstr ""
+msgstr "Étiquette"
 
 #: GFParser.py:133
 msgid "Text to use if this is a submenu"
-msgstr ""
+msgstr "Texte à utiliser si c'est un sous-menu"
 
 #: GFParser.py:136
 msgid "A menu item that fires a trigger when selected"
-msgstr ""
+msgstr "Un élément de menu déclenchant une procédure (trigger) lors de sa sélection"
 
 #: GFParser.py:139
 msgid "Menu Item"
-msgstr ""
+msgstr "Élément de menu"
 
 #: GFParser.py:149 GFParser.py:220
 msgid "Icon"
-msgstr ""
+msgstr "Icône"
 
 #: GFParser.py:150
 msgid "Icon to display besides this menu item"
-msgstr ""
+msgstr "Icône affichée à côté de cet élément de menu"
 
 #: GFParser.py:155
 msgid "Text to use for this menu item"
-msgstr ""
+msgstr "Texte à utiliser pour cet élément de menu"
 
 #: GFParser.py:158 GFParser.py:228 GFParser.py:1146 GFParser.py:1234
-#, fuzzy
 msgid "Description"
-msgstr "Champ de description F/K"
+msgstr "Description"
 
 #: GFParser.py:159
 msgid "Text to display in the status bar for this menu item"
-msgstr ""
+msgstr "Texte affiché dans la barre de statut pour cet élément de menu"
 
 #: GFParser.py:164 GFParser.py:233
 msgid "Action"
-msgstr ""
+msgstr "Action"
 
 #: GFParser.py:165
 msgid "Name of the trigger to run whenever this menu item is selected"
-msgstr ""
+msgstr "Nom de la procédure (trigger) à exécuter lorsque cet élément est sélectionné"
 
 #: GFParser.py:171 GFParser.py:240
 msgid "Action Off"
-msgstr ""
+msgstr "Action si inactif"
 
 #: GFParser.py:172
 msgid "Name of the trigger to run whenever this menu item is switched to off"
-msgstr ""
+msgstr "Nom de la procédure à exécuter lorsque cet élément est désactivé"
 
 #: GFParser.py:178
 msgid "Hotkey"
-msgstr ""
+msgstr "Raccourci"
 
 #: GFParser.py:179
 msgid "Hotkey to assign to this menu item"
-msgstr ""
+msgstr "Raccourci clavier affecté à cet élément"
 
 #: GFParser.py:182 GFParser.py:247
-#, fuzzy
 msgid "State"
-msgstr "Titre"
+msgstr "État"
 
 #: GFParser.py:183
 msgid "Determines whether this menu item will be switched on by default"
-msgstr ""
+msgstr "Détermine si cet élément sera sélectionné par défaut"
 
 #: GFParser.py:189 GFParser.py:254
 msgid "Enabled"
-msgstr ""
+msgstr "Actif"
 
 #: GFParser.py:190
 msgid "Determines whether this menu item will be enabled by default"
-msgstr ""
+msgstr "Détermine si cet élément sera actif par défaut"
 
 #: GFParser.py:196
 msgid "A toolbar containing tool buttons"
-msgstr ""
+msgstr "Une barre d'outils contenant des boutons"
 
 #: GFParser.py:199
 msgid "Toolbar"
-msgstr ""
+msgstr "Barre d'outils"
 
 #: GFParser.py:208
 msgid "A button on a toolbar"
-msgstr ""
+msgstr "Un bouton sur une barre d'outils"
 
 #: GFParser.py:211
 msgid "Toolbar Button"
-msgstr ""
+msgstr "Bouton (de barre d'outil)"
 
 #: GFParser.py:221
 msgid "Icon to display on the button"
-msgstr ""
+msgstr "Icône affichée sur le bouton"
 
 #: GFParser.py:225
 msgid "Text to display on the button"
-msgstr ""
+msgstr "Texte affiché sur le bouton"
 
 #: GFParser.py:229
 msgid "Text to display in a tooltip window"
-msgstr ""
+msgstr "Texte affiché dans une bulle d'aide"
 
 #: GFParser.py:234
 msgid "Name of the trigger to run whenever this button is clicked"
-msgstr ""
+msgstr "Nom de la procédure (trigger) a exécuter lorsque ce bouton est cliqué"
 
 #: GFParser.py:241
 msgid "Name of the trigger to run whenever this button is switched to off"
-msgstr ""
+msgstr "Nom de la procédure à exécuter lorsque ce bouton est désactivé"
 
 #: GFParser.py:248
 msgid "Determines whether this button will be switched on by default"
-msgstr ""
+msgstr "Détermine si ce bouton sera sélectionné par défaut"
 
 #: GFParser.py:255
 msgid "Determines whether this button will be enabled by default"
-msgstr ""
+msgstr "Détermine si ce bouton sera activé par défaut"
 
 #: GFParser.py:266
-#, fuzzy
 msgid "Logic"
 msgstr "Connexion"
 
 #: GFParser.py:275
 msgid "Layout"
-msgstr ""
+msgstr "Mise en page"
 
 #: GFParser.py:281
 msgid "Tab Location"
-msgstr ""
+msgstr "Position des onglets"
 
 #: GFParser.py:283
 msgid "No tabs"
-msgstr "Pas de tabulations"
+msgstr "Pas d'onglets"
 
 #: GFParser.py:284
-#, fuzzy
 msgid "Left tabs"
-msgstr "Pas de tabulations"
+msgstr "Onglets à gauche"
 
 #: GFParser.py:285
-#, fuzzy
 msgid "Right tabs"
-msgstr "Droite"
+msgstr "Onglets à droite"
 
 #: GFParser.py:286
-#, fuzzy
 msgid "Botton tabs"
-msgstr "Pas de tabulations"
+msgstr "Onglets en bas"
 
 #: GFParser.py:287
-#, fuzzy
 msgid "Top tabs"
-msgstr "Pas de tabulations"
+msgstr "Onglets en haut"
 
 #: GFParser.py:333
-#, fuzzy
 msgid "Page"
-msgstr "C&oller"
+msgstr "Page"
 
 #: GFParser.py:356 GFParser.py:493 GFParser.py:729 GFParser.py:1034
 msgid "Row Spacing"
@@ -398,7 +382,7 @@
 
 #: GFParser.py:362
 msgid "Startup state"
-msgstr ""
+msgstr "État à l'ouverture"
 
 #: GFParser.py:363
 msgid ""
@@ -406,98 +390,95 @@
 "filled with a single empty record, 'full' means the block is populated with "
 "the result of a full query."
 msgstr ""
+"État dans lequel se trouve le bloc à l'ouverture du formulaire. 'Vide' signifie que le bloc "
+"est rempli avec un seul enregistrement vide, 'Complet' signifie que le bloc est rempli avec "
+"le résultat d'une requête complète."
 
 #: GFParser.py:370
 msgid "Empty"
-msgstr ""
+msgstr "Vide"
 
 #: GFParser.py:371
 msgid "Full"
-msgstr ""
+msgstr "Complet"
 
 #: GFParser.py:375
 msgid "Transparent Nav"
-msgstr ""
+msgstr "Navigation tranparente"
 
 #: GFParser.py:385
-#, fuzzy
 msgid "Auto Create Record"
-msgstr "Supprimer l'enregistrement courant"
+msgstr "Créer automatiquement l'enregistrement"
 
 #: GFParser.py:391
-#, fuzzy
 msgid "Auto Next Record"
-msgstr "Enregistrement suivant"
+msgstr "Passer automatiquement à l'enregistrement suivant"
 
 #: GFParser.py:399
 msgid "Auto Commit"
-msgstr ""
+msgstr "Validation automatique"
 
 #: GFParser.py:406
 msgid "Auto Clear on Commit"
-msgstr ""
+msgstr "Effacement automatique après validation"
 
 #: GFParser.py:412 GFParser.py:650 GFParser.py:947
 msgid "Allow Editing"
-msgstr ""
+msgstr "Autoriser la modification"
 
 #: GFParser.py:414 GFParser.py:652 GFParser.py:673 GFParser.py:949
 #: uidrivers/curses/UIdriver.py:218
 msgid "Yes"
-msgstr ""
+msgstr "Oui"
 
 #: GFParser.py:415 GFParser.py:653 GFParser.py:674 GFParser.py:950
 #: uidrivers/curses/UIdriver.py:219
 msgid "No"
-msgstr ""
+msgstr "Non"
 
 #: GFParser.py:416 GFParser.py:655 GFParser.py:952
-#, fuzzy
 msgid "Update Only"
-msgstr "Lecture seule"
+msgstr "Mise à jour seulement"
 
 #: GFParser.py:417 GFParser.py:656 GFParser.py:953
-#, fuzzy
 msgid "New Records Only"
-msgstr "Enregistrement suivant"
+msgstr "Nouvel enregistrement seulement"
 
 #: GFParser.py:422
 msgid "Allow Querying"
-msgstr ""
+msgstr "Autoriser les requêtes"
 
 #: GFParser.py:427
 msgid "Allow Deletes"
-msgstr ""
+msgstr "Autoriser les suppressions"
 
 #: GFParser.py:432 GFParser.py:1018
-#, fuzzy
 msgid "Navigable"
-msgstr "&Navigation"
+msgstr "Parcourable"
 
 #: GFParser.py:439
 msgid "Prevent Deletes"
-msgstr "Empêcher les suppressions"
+msgstr "Empêcher les suppressions"
 
 #: GFParser.py:445
 msgid "Prevent Inserts"
-msgstr "Empêcher les insertions"
+msgstr "Empêcher les insertions"
 
 #: GFParser.py:456
-#, fuzzy
 msgid "Block"
-msgstr "&Bloc suivant"
+msgstr "Bloc"
 
 #: GFParser.py:466
 msgid "The unique ID of the label."
-msgstr ""
+msgstr "L'ID unique de l'étiquette."
 
 #: GFParser.py:470
 msgid "The text to be displayed."
-msgstr ""
+msgstr "Le texte affiché"
 
 #: GFParser.py:475
 msgid "If this label is for a specific object, name it here."
-msgstr ""
+msgstr "Si cette étiquette est pour un objet spécifique, nommez-le ici."
 
 #: GFParser.py:480
 msgid "Left"
@@ -509,69 +490,64 @@
 
 #: GFParser.py:482
 msgid "Centered"
-msgstr "Centré"
+msgstr "Centré"
 
 #: GFParser.py:513
 msgid "Field (Database)"
-msgstr "Champ (base de données)"
+msgstr "Champ (base de données)"
 
 #: GFParser.py:517 GFParser.py:1194
-#, fuzzy
 msgid "Datatype"
-msgstr "Type de données"
+msgstr "Type de données"
 
 #: GFParser.py:518
 msgid "The type of data stored in this field."
-msgstr ""
+msgstr "Le type de donnée stockée dans ce champ"
 
 #: GFParser.py:521 GFParser.py:1198
 msgid "Text"
 msgstr "Texte"
 
 #: GFParser.py:522 GFParser.py:1199
-#, fuzzy
 msgid "Number"
-msgstr "Numérique"
+msgstr "Numérique"
 
 #: GFParser.py:523 GFParser.py:1200
-#, fuzzy
 msgid "Date"
-msgstr "Type de données"
+msgstr "Date"
 
 #: GFParser.py:524 GFParser.py:1201
-#, fuzzy
 msgid "Time"
-msgstr "Titre"
+msgstr "Heure"
 
 #: GFParser.py:525 GFParser.py:1202
-#, fuzzy
 msgid "Date and time"
 msgstr "Date/Heure"
 
 #: GFParser.py:526 GFParser.py:1203
 msgid "Boolean"
-msgstr ""
+msgstr "Booléen"
 
 #: GFParser.py:527 GFParser.py:1204
 msgid "Raw data"
-msgstr ""
+msgstr "Données brutes"
 
 #: GFParser.py:530 GFParser.py:1207
-#, fuzzy
 msgid "Length"
-msgstr "Gauche"
+msgstr "Longueur"
 
 #: GFParser.py:531
 msgid ""
 "Maximum length of data stored in this field. Applies only to fields with a "
 "datatype of 'string' or 'number'. For numbers, this is the total number of "
 "digits, including the fractional digits."
-msgstr ""
+msgstr "Longueur maximum des données stockées dans ce champs. S'applique uniquement aux champs de type "
+"'chaîne' ou 'numérique'. Pour les nombres, c'est le nombre total de chiffres, "
+"y-compris la partie fractionnaire."
 
 #: GFParser.py:538 GFParser.py:1215
-#, fuzzy
 msgid "Scale"
-msgstr "Titre"
+msgstr "Échelle"
 
 #: GFParser.py:539
 msgid ""
@@ -580,47 +556,47 @@
 msgstr ""
 
 #: GFParser.py:544
-#, fuzzy
 msgid "Case"
-msgstr "Fermer"
+msgstr "Casse"
 
 #: GFParser.py:545
 msgid ""
 "Convert the value to uppercase/lowercase or leave it as it is. Applies only "
 "to fields with a datatype of 'string'."
-msgstr ""
+msgstr "Convertir la valeur en majuscule/minuscule ou laisser tel quel. S'applique "
+"seulement aux champs de type 'chaîne'."
 
 #: GFParser.py:551
 msgid "Mixed case"
-msgstr ""
+msgstr "Telle quelle"
 
 #: GFParser.py:552
 msgid "Upper case"
-msgstr ""
+msgstr "Majuscules"
 
 #: GFParser.py:553
 msgid "Lower case"
-msgstr ""
+msgstr "Minuscules"
 
 #: GFParser.py:556 GFParser.py:1221
 msgid "Required"
-msgstr ""
+msgstr "Requis"
 
 #: GFParser.py:557
 msgid "If set, empty values can not be stored in this field."
-msgstr ""
+msgstr "Si oui, des valeurs vides ne peuvent pas être stockées dans ce champ."
 
 #: GFParser.py:566
 msgid "Min Text Length"
-msgstr ""
+msgstr "Longueur de texte minimum"
 
 #: GFParser.py:590
 msgid "F/K Datasource"
-msgstr "Source de données F/K"
+msgstr "Source de données F/K"
 
 #: GFParser.py:594
 msgid "F/K Bound Field"
-msgstr "Champ lié F/K"
+msgstr "Champ lié F/K"
 
 #: GFParser.py:600
 msgid "F/K Description Field"
@@ -628,40 +604,35 @@
 
 #: GFParser.py:610
 msgid "F/K Refresh Method"
-msgstr "Méthode de rafraichissment F/K"
+msgstr "Méthode de rafraichissment F/K"
 
 #: GFParser.py:612
-#, fuzzy
 msgid "On form startup"
-msgstr "Mettre à jour seulement au lancement"
+msgstr "À l'ouverture du formulaire"
 
 #: GFParser.py:613
-#, fuzzy
 msgid "On field modification"
-msgstr "Mettre à jour sur modification du champ"
+msgstr "Après modification du champ"
 
 #: GFParser.py:614
 msgid "On commit"
-msgstr ""
+msgstr "Après validation"
 
 #: GFParser.py:620
-#, fuzzy
 msgid "Default (New Records)"
-msgstr "Défaut (Nouveau champ)"
+msgstr "Défaut (Nouveaux enregistrements)"
 
 #: GFParser.py:627
-#, fuzzy
 msgid "Default to last entry"
-msgstr "Dernière valeur par défaut ?"
+msgstr "Dernière valeur par défaut ?"
 
 #: GFParser.py:635
-#, fuzzy
 msgid "Default (Querying)"
-msgstr "Défaut (Requête)"
+msgstr "Défaut (Requête)"
 
 #: GFParser.py:642
 msgid "Perform queries case-sensitive"
-msgstr ""
+msgstr "Effectuer des requêtes sensibles à la casse"
 
 #: GFParser.py:654 GFParser.py:951
 msgid "Null Only"
@@ -669,64 +640,63 @@
 
 #: GFParser.py:661
 msgid "Allow Query"
-msgstr ""
+msgstr "Autoriser requête"
 
 #: GFParser.py:671
 msgid "Automatic Query"
-msgstr ""
+msgstr "Requête automatique"
 
 #: GFParser.py:675
 msgid "Empty forms only"
-msgstr ""
+msgstr "Seulement les formulaires vides"
 
 #: GFParser.py:679
 msgid "Trim left spaces"
-msgstr "Enlever les espaces à gauche"
+msgstr "Enlever les espaces à gauche"
 
 #: GFParser.py:685
 msgid "Trim right spaces"
-msgstr "Enlever les espaces à droite"
+msgstr "Enlever les espaces à droite"
 
 #: GFParser.py:691
-#, fuzzy
 msgid "Field"
-msgstr "&Fichier"
+msgstr "Champ"
 
 #: GFParser.py:720
 msgid "Focus Order"
-msgstr ""
+msgstr "Ordre de focus"
 
 #: GFParser.py:745
 msgid "Automatic"
-msgstr ""
+msgstr "Automatique"
 
 #: GFParser.py:746
 msgid "Default"
-msgstr "Défaut"
+msgstr "Défaut"
 
 #: GFParser.py:747
 msgid "Password/Hidden"
-msgstr "Mot de passe/Caché"
+msgstr "Mot de passe/Caché"
 
 #: GFParser.py:748
 msgid "Dropdown/Combo box"
-msgstr "Menu déroulant"
+msgstr "Menu déroulant"
 
 #: GFParser.py:749
 msgid "Listbox"
-msgstr ""
+msgstr "Liste"
 
 #: GFParser.py:750
 msgid "Checkbox"
-msgstr "Case à cocher"
+msgstr "Case à cocher"
 
 #: GFParser.py:751
 msgid "Multiline-Edit"
-msgstr ""
+msgstr "Zone de texte sur plusieurs ignes"
 
 #: GFParser.py:752
 msgid "Label (non-editable)"
-msgstr "Etiquette (non éditable)"
+msgstr "Étiquette (non éditable)"
 
 #: GFParser.py:763
 msgid "Format Mask"
@@ -741,51 +711,51 @@
 msgstr "Masque d'affichage"
 
 #: GFParser.py:777
-#, fuzzy
 msgid "Entry"
-msgstr "E&ntrée suivante"
+msgstr "Entrée"
 
 #: GFParser.py:800
 msgid "Scrollbar"
-msgstr ""
+msgstr "Barre de défilement"
 
 #: GFParser.py:823
 msgid "Box (Vertical)"
-msgstr ""
+msgstr "Boîte (verticale)"
 
 #: GFParser.py:846
 msgid "Box (Horizontal)"
-msgstr ""
+msgstr "Boîte (horizontale)"
 
 #: GFParser.py:867
 msgid "Box"
-msgstr ""
+msgstr "Boîte"
 
 #: GFParser.py:868
 msgid ""
 "A box is a visual element that draws a box around other visual elements, "
 "thus providing logical separation for them."
-msgstr ""
+msgstr "Une boîte est un élément visuel entourant d'autres éléments visuel, "
+"leur assurant ainsi une séparation logique."
 
 #: GFParser.py:884
 msgid "Overrides the rows setting defined at the block level."
-msgstr ""
+msgstr "Remplace le réglage des lignes défini au niveau du bloc."
 
 #: GFParser.py:890
 msgid "Grid"
-msgstr ""
+msgstr "Grille"
 
 #: GFParser.py:891
 msgid "A grid is a layout container grouping fields into repeating rows."
-msgstr ""
+msgstr "Une grille est un conteneur groupant les champs en lignes successives."
 
 #: GFParser.py:902
 msgid "Grid Row"
-msgstr ""
+msgstr "Ligne de grille"
 
 #: GFParser.py:903
 msgid "Contains all elements of a single line in a grid"
-msgstr ""
+msgstr "Contient tous les éléments d'une ligne dans une grille"
 
 #: GFParser.py:925
 msgid "Field contains the URL of the image"
@@ -797,27 +767,27 @@
 
 #: GFParser.py:934
 msgid "Full-size image (no scaling)"
-msgstr ""
+msgstr "Image sans mise à l'échelle"
 
 #: GFParser.py:935
 msgid "Scale to width"
-msgstr ""
+msgstr "Redimensionner à la largeur"
 
 #: GFParser.py:936
 msgid "Scale to height"
-msgstr ""
+msgstr "Redimensionner à la hauteur"
 
 #: GFParser.py:937
 msgid "Scale width and height (may distort image)"
-msgstr ""
+msgstr "Redimensionner largeur et hauteur (peut déformer l'image)"
 
 #: GFParser.py:938
 msgid "Use a best-fit algorithm"
-msgstr ""
+msgstr "Utiliser un algorithme 'best-fit'"
 
 #: GFParser.py:966
 msgid "Image"
-msgstr ""
+msgstr "Image"
 
 #: GFParser.py:993
 msgid "Field contains the URL of the component"
@@ -826,56 +796,56 @@
 #: GFParser.py:994
 #, fuzzy
 msgid "Field contains the data of the component in Base64 encoding"
-msgstr "Le champ contient l'URL du composant"
+msgstr "Le champ contient les données du composant (encodé en Base64)"
 
 #: GFParser.py:1004
 msgid "Embedded Component"
-msgstr ""
+msgstr "Composant inclut"
 
 #: GFParser.py:1049
 msgid "Button"
-msgstr ""
+msgstr "Bouton"
 
 #: GFParser.py:1058
 msgid "Options"
-msgstr ""
+msgstr "Options"
 
 #: GFParser.py:1073
 msgid "Option"
-msgstr ""
+msgstr "Option"
 
 #: GFParser.py:1092
-#, fuzzy
 msgid "Form Title"
-msgstr "Titre"
+msgstr "Titre du formulaire"
 
 #: GFParser.py:1128
 msgid "Form Author"
-msgstr ""
+msgstr "Auteur du formulaire"
 
 #: GFParser.py:1164
-#, fuzzy
 msgid "Version"
-msgstr "Version %s"
+msgstr "Version"
 
 #: GFParser.py:1182
 msgid "Tip"
-msgstr ""
+msgstr "Astuce"
 
 #: GFParser.py:1189
 msgid "Unique name of the parameter."
-msgstr ""
+msgstr "Nom unique du paramètre."
 
 #: GFParser.py:1195
 msgid "The type of data for this parameter."
-msgstr ""
+msgstr "Le type de données pour ce paramètre."
 
 #: GFParser.py:1208
 msgid ""
 "Maximum length of data stored in this parameter. Applies only to parameters "
 "with a datatype of 'string' or 'number'. For numbers, this is the total "
 "number of digits, including the fractional digits."
-msgstr ""
+msgstr "Longueur maximum des données stockées dans ce paramètre. S'applique "
+"uniquement aux paramètres de type 'chaîne' ou 'numérique'. Pour les nombres, "
+"c'est le nombre total de chiffres, y-compris la partie fractionnaire."
 
 #: GFParser.py:1216
 msgid ""
@@ -888,199 +858,196 @@
 msgstr ""
 
 #: GFParser.py:1228
-#, fuzzy
 msgid "Default value"
-msgstr "Défaut"
+msgstr "Valeur par défaut"
 
 #: GFParser.py:1229
 msgid ""
 "Default value for the parameter, if the user does not provide a value for it."
 msgstr ""
+"Valeur par défaut pour le paramètre, si l'utilisateur n'en fournit pas."
 
 #: GFParser.py:1235
 msgid "Description of the parameter for the help text."
-msgstr ""
+msgstr "Description du paramètre pour le texte d'aide."
 
 #: GFParser.py:1242
 msgid "Parameter"
-msgstr ""
+msgstr "Paramètre"
 
 #: GFParser.py:1281
 msgid "M/D Min Child Rows"
-msgstr ""
+msgstr "Nombre de lignes enfant mini (M/D)"
 
 #: GFParser.py:1292
 msgid "M/D Max Child Rows"
-msgstr ""
+msgstr "Nombre de lignes enfant maxi (M/D)"
 
 #: GFParser.py:1325
 msgid "Text Field"
-msgstr ""
+msgstr "Champ texte"
 
 #: GFParser.py:1326
 msgid "List Box"
-msgstr ""
+msgstr "Boîte liste"
 
 #: GFParser.py:1327
-#, fuzzy
 msgid "Drop Down Box"
-msgstr "Menu déroulant"
+msgstr "Menu déroulant"
 
 #: GFParser.py:1328
 msgid "Label-like Field"
-msgstr ""
+msgstr "Champ étiquette"
 
 #: GFParser.py:1329
-#, fuzzy
 msgid "Check Box"
-msgstr "Case à cocher"
+msgstr "Case à cocher"
 
 #: input/GFKeyMapper.py:136
-#, fuzzy
 msgid "Invalid keystroke id '%(key)s' in keymap for '%(event)s'"
-msgstr "Touche incorrecte '%s' dans le mappage clavier pour '%s'"
+msgstr "Ide de touche incorrect '%(key)s' dans le mappage clavier pour '%(event)s'"
 
 #: input/GFKeyMapper.py:141
-#, fuzzy
 msgid "Invalid keystroke combination '%(comb)s' in keymap for '%(event)s'"
-msgstr "Combinaison clavier incorrecte '%s' dans le mappage clavier pour '%s'"
+msgstr "Combinaison clavier incorrecte '%(comb)s' dans le mappage clavier pour '%(event)s'"
 
 #: input/displayHandlers/Cursor.py:290
 msgid "This field can not be changed"
-msgstr ""
+msgstr "Ce champ ne peut être modifié"
 
 #: input/displayHandlers/Cursor.py:303
 msgid "This field allows numeric input only"
-msgstr ""
+msgstr "Ce champ n'autorise que les valeurs numériques"
 
 #: input/displayHandlers/Cursor.py:313
 msgid "Maximum input length reached"
-msgstr ""
+msgstr "Longueur de saisie maximum atteinte"
 
 #: input/displayHandlers/Image.py:40
 msgid "Form contains a <image> but python image support not installed"
-msgstr ""
+msgstr "Le formulaire contient une <image> mais le support image de python "
+"n'est pas installé"
 
 #: input/displayHandlers/datehandler.py:42
 msgid "'%(value)s' is not a valid date-literal"
-msgstr ""
+msgstr "'%(value)s' n'est pas une entrée correcte pour 'date-literal'"
 
 #: input/displayHandlers/datehandler.py:47
 msgid "'%(value)s' is not a valid time-literal"
-msgstr ""
+msgstr "'%(value)s' n'est pas une entrée correcte pour 'time-literal'"
 
 #: input/displayHandlers/datehandler.py:129
 #: input/displayHandlers/datehandler.py:130
 msgid "H"
-msgstr ""
+msgstr "H"
 
 #: input/displayHandlers/datehandler.py:131
 #: input/displayHandlers/datehandler.py:134
 #: input/displayHandlers/datehandler.py:135
 msgid "M"
-msgstr ""
+msgstr "M"
 
 #: input/displayHandlers/datehandler.py:132
 msgid "S"
-msgstr ""
+msgstr "S"
 
 #: input/displayHandlers/datehandler.py:133
 msgid "D"
-msgstr ""
+msgstr "J"
 
 #: input/displayHandlers/datehandler.py:136
 #: input/displayHandlers/datehandler.py:137
 msgid "Y"
-msgstr ""
+msgstr "A"
 
 #: uidrivers/_base/UIdriver.py:41
 msgid "The UI-Driver %(name)s has no implementation of %(method)s"
-msgstr ""
+msgstr "Le pilote d'UI %(name)s n'a pas d'implémentation de %(method)s"
 
 #: uidrivers/_base/widgets/_base.py:45
 msgid "Widget %(cur_type)s '%(cur_name)s' overlaps %(cmp_type)s '%(cmp_name)s'"
-msgstr ""
+msgstr "Le widget %(cur_type)s '%(cur_name)s' chevauche %(cmp_type)s '%(cmp_name)s'"
 
 #: uidrivers/_base/widgets/_base.py:57
 msgid "Widget %(type)s '%(name)s' has an invalid width or height"
-msgstr ""
+msgstr "Le widget %(type)s '%(name)s' a une largeur ou hauteur incorrecte"
 
 #: uidrivers/curses/UIdriver.py:220 uidrivers/qt3/dialogs.py:192
 #: uidrivers/qt3/dialogs.py:436 uidrivers/qt4/dialogs.py:196
 #: uidrivers/qt4/dialogs.py:441 uidrivers/win32/dialog.py:62
 msgid "Ok"
-msgstr ""
+msgstr "Ok"
 
 #: uidrivers/curses/widgets/entry.py:740
 msgid "Select option"
-msgstr ""
+msgstr "Sélectionnez une option "
 
 #: uidrivers/curses/widgets/form.py:140
 msgid "processing..."
-msgstr ""
+msgstr "traitement en cours..."
 
 #: uidrivers/curses/widgets/form.py:218
-#, fuzzy
 msgid "Filename"
-msgstr "&Fichier"
+msgstr "Fichier"
 
 #: uidrivers/curses/widgets/form.py:221
 msgid "File '%s' already exists. Overwrite"
-msgstr ""
+msgstr "Le fichier '%s' existe déjà. Remplacer"
 
 #: uidrivers/curses/widgets/form.py:222
 msgid "n"
-msgstr ""
+msgstr "n"
 
 #: uidrivers/curses/widgets/form.py:222 uidrivers/curses/widgets/form.py:223
 msgid "y"
-msgstr ""
+msgstr "o"
 
 #: uidrivers/curses/widgets/form.py:229
 msgid "File '%s' does not exist."
-msgstr ""
+msgstr "Le fichier '%s' n'existe pas."
 
 #: uidrivers/curses/widgets/form.py:258
 msgid "Directory"
-msgstr ""
+msgstr "Répertoire"
 
 #: uidrivers/curses/widgets/form.py:495
 msgid "Hit <Return> to continue."
-msgstr ""
+msgstr "Appuyez sur <Entrée> pour continuer."
 
 #: uidrivers/curses/widgets/page.py:224
 msgid "Not enough space available to display the page."
-msgstr ""
+msgstr "Pas assez d'espace disponible pour afficher le formulaire."
 
 #: uidrivers/gtk2/UIdriver.py:43
 msgid "Import error: You need pygtk 2.4 to use the gtk2 user interface driver."
-msgstr ""
+msgstr "Erreur d'import : vous avez besoin de pygtk 2.4 pour utiliser le pilote "
+"d'interface gtk2."
 
 #: uidrivers/gtk2/UIdriver.py:45
 msgid "You are actually using gtk %s and pygtk %s"
-msgstr ""
+msgstr "Vous utilisez gtk %s et pygtk %s"
 
 #: uidrivers/gtk2/UIdriver.py:53
 msgid "The GNUe-Forms GTK driver requires PyGTK and GTK 2.x."
-msgstr "Le pilote GTK pour GNUe Forms nécessite PyGTK et GTK 2.x."
+msgstr "Le pilote GTK pour GNUe Forms nécessite PyGTK et GTK 2.x."
 
 #: uidrivers/gtk2/UIdriver.py:232 uidrivers/qt3/dialogs.py:43
 #: uidrivers/qt4/dialogs.py:43 uidrivers/win32/dialogs.py:493
 #: uidrivers/wx26/dialogs.py:429
 msgid "GNUe Internal System Error"
-msgstr ""
+msgstr "Erreur interne au système GNUe"
 
 #: uidrivers/gtk2/UIdriver.py:233 uidrivers/qt3/dialogs.py:44
 #: uidrivers/qt4/dialogs.py:44 uidrivers/win32/dialogs.py:494
 #: uidrivers/wx26/dialogs.py:430
 msgid "GNUe Unexpected Error"
-msgstr ""
+msgstr "Erreur inattendue de GNUe"
 
 #: uidrivers/gtk2/UIdriver.py:234 uidrivers/qt3/dialogs.py:45
 #: uidrivers/qt4/dialogs.py:45 uidrivers/win32/dialogs.py:495
 #: uidrivers/wx26/dialogs.py:431
 msgid "GNUe Application Error"
-msgstr ""
+msgstr "Erreur d'application GNUe"
 
 #: uidrivers/gtk2/UIdriver.py:237 uidrivers/qt3/dialogs.py:48
 #: uidrivers/qt4/dialogs.py:48 uidrivers/wx26/dialogs.py:434
@@ -1089,7 +1056,10 @@
 "%s.\n"
 "This means you have found a bug in GNU Enterprise. Please report it to gnue-"
 "[email protected]"
-msgstr ""
+msgstr "Une erreur interne inattendue est arrivée :\n"
+"%s.\n"
+"Vous venez de découvrir un bug dans GNU enterprise. Merci d'en faire part à "
+"[email protected]"
 
 #: uidrivers/gtk2/UIdriver.py:240 uidrivers/gtk2/UIdriver.py:242
 #: uidrivers/qt3/dialogs.py:51 uidrivers/qt3/dialogs.py:53
@@ -1099,96 +1069,96 @@
 "An unexpected error has occured:\n"
 "%s.\n"
 "Please contact your system administrator."
-msgstr ""
+msgstr "Une erreur inattendue est arrivée :\n"
+"%s.\n"
+"Merci de contacter votre administrateur système."
 
 #: uidrivers/gtk2/UIdriver.py:251 uidrivers/qt3/widgets/form.py:59
 #: uidrivers/qt4/widgets/form.py:61 uidrivers/win32/dialogs.py:512
 #: uidrivers/win32/widgets/form/widget.py:59 uidrivers/wx26/dialogs.py:449
 #: uidrivers/wx26/widgets/form.py:49
-#, fuzzy
 msgid "Error"
-msgstr "Erreur: %s"
+msgstr "Erreur"
 
 #: uidrivers/gtk2/UIdriver.py:256 uidrivers/qt3/dialogs.py:97
 #: uidrivers/qt3/dialogs.py:115 uidrivers/qt4/dialogs.py:99
 #: uidrivers/qt4/dialogs.py:117
 msgid ">> Detail"
-msgstr ""
+msgstr ">> Détails"
 
 #: uidrivers/gtk2/UIdriver.py:313 uidrivers/win32/dialogs.py:534
 #: uidrivers/win32/dialogs.py:574
 msgid ">> Details"
-msgstr ""
+msgstr ">> Détails"
 
 #: uidrivers/gtk2/UIdriver.py:317 uidrivers/win32/dialogs.py:569
 msgid "<< Details"
-msgstr ""
+msgstr "<< Détails"
 
 #: uidrivers/gtk2/dialogs.py:40 uidrivers/win32/dialogs.py:50
 msgid "%s is not a valid type for an input field"
-msgstr ""
+msgstr "%s n'est pas un type correct pour un champ d'entrée"
 
 #: uidrivers/gtk2/dialogs.py:66 uidrivers/qt3/dialogs.py:149
 #: uidrivers/qt4/dialogs.py:151 uidrivers/win32/dialogs.py:360
 #: uidrivers/wx26/dialogs.py:55
-#, fuzzy
 msgid "About %s"
-msgstr "A propos..."
+msgstr "A propos de %s"
 
 #: uidrivers/gtk2/dialogs.py:81 uidrivers/gtk2/dialogs.py:100
 #: uidrivers/win32/dialogs.py:369 uidrivers/win32/dialogs.py:378
-#, fuzzy
 msgid "Version:"
-msgstr "Version %s"
+msgstr "Version :"
 
 #: uidrivers/gtk2/dialogs.py:82 uidrivers/win32/dialogs.py:370
 msgid "Driver:"
-msgstr ""
+msgstr "Pilote :"
 
 #: uidrivers/gtk2/dialogs.py:91
 msgid " Form Information "
-msgstr ""
+msgstr "Information sur le formulaire"
 
 #: uidrivers/gtk2/dialogs.py:99 uidrivers/win32/dialogs.py:377
 msgid "Name:"
-msgstr ""
+msgstr "Nom :"
 
 #: uidrivers/gtk2/dialogs.py:101 uidrivers/win32/dialogs.py:379
 msgid "Author:"
-msgstr ""
+msgstr "Auteur :"
 
 #: uidrivers/gtk2/dialogs.py:102 uidrivers/win32/dialogs.py:380
-#, fuzzy
 msgid "Description:"
-msgstr "Champ de description F/K"
+msgstr "Description :"
 
 #: uidrivers/html/UIdriver.py:99
 msgid ""
 "The following error occured in GNU Enterprise:\n"
 "%s"
 msgstr ""
+"L'erreur suivante s'est produite dans GNU enterprise :\n"
+"%s"
 
 #: uidrivers/html/UIdriver.py:110
 #, fuzzy
 msgid "Title: %s"
-msgstr "Titre"
+msgstr "Titre : %s"
 
 #: uidrivers/html/UIdriver.py:111
 #, fuzzy
 msgid "Group: %s"
-msgstr "Erreur: %s"
+msgstr "Groupe : %s"
 
 #: uidrivers/html/UIdriver.py:112
 msgid "Name: %s"
-msgstr ""
+msgstr "Nom : %s"
 
 #: uidrivers/html/UIdriver.py:113
 msgid "Message: %s"
-msgstr ""
+msgstr "Message : %s"
 
 #: uidrivers/html/UIdriver.py:114
 msgid "Detail: %s "
-msgstr ""
+msgstr "Détails : %s"
 
 #: uidrivers/html/widgets/form.py:188
 msgid ""
@@ -1198,14 +1168,19 @@
 "Author: %s\n"
 "Description: %s"
 msgstr ""
+"GNUe Forms :\n"
+"Nom : %s\n"
+"Version : %s\n"
+"Auteur : %s\n"
+"Description : %s"
 
 #: uidrivers/html/widgets/form.py:197
 msgid "Printout currently not supported"
-msgstr ""
+msgstr "L'impression n'est pas encore supportée."
 
 #: uidrivers/qt3/UIdriver.py:37
 msgid "The GNUe-Forms QT3 driver requires PyQT."
-msgstr "Le pilote QT3 pour GNUe Forms nécessite PyQT."
+msgstr "Le pilote QT3 pour GNUe-Forms nécessite PyQT."
 
 #: uidrivers/qt3/dialogs.py:92 uidrivers/qt4/dialogs.py:94
 #: uidrivers/win32/dialogs.py:530
@@ -1214,13 +1189,13 @@
 
 #: uidrivers/qt3/dialogs.py:113 uidrivers/qt4/dialogs.py:115
 msgid "<< Detail"
-msgstr ""
+msgstr "<< Détail"
 
 #: uidrivers/qt3/dialogs.py:164 uidrivers/qt4/dialogs.py:166
 #: uidrivers/wx26/UISplashScreen.py:54 uidrivers/wx26/dialogs.py:82
 #, fuzzy
 msgid "Version: %s"
-msgstr "Version %s"
+msgstr "Version : %s"
 
 #: uidrivers/qt3/dialogs.py:430 uidrivers/qt4/dialogs.py:435
 #: uidrivers/win32/dialog.py:66
@@ -1230,50 +1205,49 @@
 #: uidrivers/qt3/widgets/form.py:49 uidrivers/qt4/widgets/form.py:51
 #: uidrivers/wx26/widgets/form.py:40
 msgid "Information"
-msgstr ""
+msgstr "Information"
 
 #: uidrivers/qt3/widgets/form.py:52 uidrivers/qt4/widgets/form.py:54
 #: uidrivers/win32/widgets/form/widget.py:53 uidrivers/wx26/widgets/form.py:43
 #, fuzzy
 msgid "Warning"
-msgstr "Impression en cours"
+msgstr "Avertissement"
 
 #: uidrivers/qt3/widgets/form.py:55 uidrivers/qt4/widgets/form.py:57
 #: uidrivers/win32/widgets/form/widget.py:56 uidrivers/wx26/widgets/form.py:46
 msgid "Question"
-msgstr ""
+msgstr "Question"
 
 #: uidrivers/qt3/widgets/form.py:364
 msgid "The file '%(file)s' already exists. Overwrite it?"
-msgstr ""
+msgstr "Le fichier '%(file)s existe déjà. Le remplacer ?"
 
 #: uidrivers/qt3/widgets/form.py:366
 msgid "File already exists"
-msgstr ""
+msgstr "Le fichier existe déjà"
 
 #: uidrivers/qt3/widgets/image.py:43 uidrivers/qt4/widgets/image.py:43
 #: uidrivers/wx26/widgets/image.py:42
 msgid "Image '%(name)s' is missing one of Sizer:width or Sizer:height"
-msgstr ""
+msgstr "L'image '%(name)s' requiert soit Sizer:width, soit Sizer:height"
 
 #: uidrivers/qt4/UIdriver.py:37
 #, fuzzy
 msgid "The GNUe-Forms qt4 driver requires PyQT 4.1+"
-msgstr "Le pilote QT3 pour GNUe Forms nécessite PyQT."
+msgstr "Le pilote qt4 pour GNUe-Forms nécessite PyQT 4.1+"
 
 #: uidrivers/win32/UIdriver.py:33
 msgid "The GNUe-Forms Win32 driver requires PyWin32."
-msgstr "Le pilote Win32 pour GNUe Forms nécessite PyWin32."
+msgstr "Le pilote Win32 pour GNUe-Forms nécessite PyWin32."
 
 #: uidrivers/win32/dialogs.py:368
 #, fuzzy
 msgid "GNUe Forms"
-msgstr "GNU Enterprise Forms"
+msgstr "GNUe Forms"
 
 #: uidrivers/win32/dialogs.py:376
-#, fuzzy
 msgid "Form Information"
-msgstr "Navigation dans les formulaire"
+msgstr "Information formulaire"
 
 #: uidrivers/win32/dialogs.py:498
 msgid ""
@@ -1282,6 +1256,10 @@
 "This means you have found a bug in GNU Enterprise. Please report it to gnue-"
 "[email protected]"
 msgstr ""
+"Une erreur inattendue s'est produite :\n"
+"%s.\r\n"
+"Vous venez de découvrir un bug dans GNU enterprise. Merci d'en faire part à "
+"[email protected]"
 
 #: uidrivers/win32/dialogs.py:501 uidrivers/win32/dialogs.py:503
 msgid ""
@@ -1289,518 +1267,25 @@
 "%s.\r\n"
 "Please contact your system administrator."
 msgstr ""
+"Une erreur inattendue est arrivée :\r\n"
+"%s.\r\n"
+"Veuillez contacter votre administrateur système."
 
 #: uidrivers/win32/widgets/form/widget.py:50
 msgid "Info"
-msgstr ""
+msgstr "Info"
 
 #: uidrivers/win32/widgets/form/widget.py:291
 #: uidrivers/wx26/widgets/form.py:471
 msgid "All files"
-msgstr ""
+msgstr "Tous les fichiers"
 
 #: uidrivers/wx26/UIdriver.py:45
 #, fuzzy
 msgid "This GNUe-Forms UI Driver requires at least wx %s."
-msgstr "Le pilote GTK pour GNUe Forms nécessite PyGTK et GTK 2.x."
+msgstr "Ce pilote pour GNUe-Forms nécessite au minimum wx %s."
 
 #: uidrivers/wx26/widgets/form.py:683
 msgid "Login: "
-msgstr "Login: "
+msgstr "Identifiant : "
 
-#~ msgid "Printing"
-#~ msgstr "Impression en cours"
-
-#~ msgid ""
-#~ "There was a problem printing.\n"
-#~ "Please verify your printer setup and try again."
-#~ msgstr ""
-#~ "Problème lors de l'impression.\n"
-#~ "Vérifiez votre configuration d'imprimante et réessayez."
-
-#~ msgid "Page 1 of 1"
-#~ msgstr "Page 1 de 1"
-
-#~ msgid "GNU Enterprise Forms"
-#~ msgstr "GNU Enterprise Forms"
-
-#~ msgid "Version %s"
-#~ msgstr "Version %s"
-
-#~ msgid "Protected by GNU General Public Licence 2.0"
-#~ msgstr "Protégé par la GNU General Public Licence 2.0"
-
-#~ msgid "The GNUe-Forms wx driver requires wxPython."
-#~ msgstr "Le pilote wx pour GNUe Forms nécessite wxPython."
-
-#~ msgid "Encoding %s is not supported by the wx UI driver"
-#~ msgstr "l'encodage %s n'est pas supporté par le pilote wx UI."
-
-#~ msgid "Save all changes to the database."
-#~ msgstr "Sauvegarder tous les changements dans la base de données."
-
-#~ msgid "Clear form."
-#~ msgstr "Effacer le formulaire."
-
-#~ msgid "Clear form and revert back to your original data."
-#~ msgstr "Effacer le formulaire et revenir aux données originales."
-
-#~ msgid "Perform print routine for this form."
-#~ msgstr "Executer la routine d'impression pour ce formulaire."
-
-#~ msgid "Leave the application."
-#~ msgstr "Quitter l'application."
-
-#~ msgid "Cut the selected text"
-#~ msgstr "Couper le texte sélectionné"
-
-#~ msgid "Copy the selected text"
-#~ msgstr "Copier le texte sélectionné"
-
-#~ msgid "Copy the current record to the clipboard."
-#~ msgstr "Copier l'enregistrement courant vers le presse papier."
-
-#~ msgid ""
-#~ "Copy the current record to the clipboard. The record is copied with tabs "
-#~ "separating values."
-#~ msgstr ""
-#~ "Copier l'enregistrement courant vers le presse papier. Les valeurs sont "
-#~ "séparées par des tabulations."
-
-#~ msgid "Copy the current screen to the clipboard as plain text."
-#~ msgstr "Copier l'écran courant vers le presse papier comme texte seul."
-
-#~ msgid "Paste text into the current field."
-#~ msgstr "Coller le texte dans le champ courant."
-
-#~ msgid "Select all text."
-#~ msgstr "Sélectionner tout le texte."
-
-#~ msgid "Move to the previous logical field."
-#~ msgstr "Aller au champ logique précédent."
-
-#~ msgid "Move to the next logical field."
-#~ msgstr "Aller au champ logique suivant."
-
-#~ msgid "Jump to the first record in the current block."
-#~ msgstr "Aller au premier enregistrement dans le bloc courant."
-
-#~ msgid "Jump to the previous record in the current block."
-#~ msgstr "Aller à l'enregistrement précédent dans le bloc courant."
-
-#~ msgid "Jump to the next record in the current block."
-#~ msgstr "Aller à l'enregistrement suivant dans le bloc courant."
-
-#~ msgid "Jump to the last record in the current block."
-#~ msgstr "Aller au dernier enregistrement dans le bloc courant."
-
-#~ msgid "Prompts for a record number to which the system should jump."
-#~ msgstr "Atteindre l'enregistrement numéro..."
-
-#~ msgid "Insert a new record into the current block."
-#~ msgstr "Insérer un enregistrement dans le bloc courant."
-
-#~ msgid "Mark record for removal at next commit."
-#~ msgstr ""
-#~ "Marquer l'enregistrement pour suppression à la prochaine validation."
-
-#, fuzzy
-#~ msgid "Unmark record for removal at next commit."
-#~ msgstr ""
-#~ "Marquer l'enregistrement pour suppression à la prochaine validation."
-
-#~ msgid "Navigate to the next data block."
-#~ msgstr "Aller au bloc de données suivant."
-
-#~ msgid "Navigate to the previous data block."
-#~ msgstr "Aller au bloc de données précédent."
-
-#~ msgid "Navigate to the next page."
-#~ msgstr "Aller à la page suivante."
-
-#~ msgid "Navigate to the previous page."
-#~ msgstr "Aller à la page précédente."
-
-#~ msgid ""
-#~ "Switch to query mode. Select Execute Query once your criteria has been "
-#~ "entered."
-#~ msgstr ""
-#~ "Passer en mode requête. Cliquez sur 'Exécuter la requête' une fois vos "
-#~ "critères entrés."
-
-#~ msgid ""
-#~ "Switch to query mode (if not already) and retrieve the last query "
-#~ "parameters. Select Execute Query once your criteria has been entered."
-#~ msgstr ""
-#~ "Passer en mode requête (si besoin) et récupérer les derniers paramètres "
-#~ "de recherche. Cliquez sur 'Exécuter la requête' une fois vos critères "
-#~ "entrés."
-
-#~ msgid "Cancel query mode."
-#~ msgstr "Quitter le mode requête."
-
-#~ msgid "Perform a query and show the results."
-#~ msgstr "Exécuter une requête et afficher les résultats."
-
-#~ msgid "Display info about GNUe Forms."
-#~ msgstr "Afficher les infos sur GNUe Forms."
-
-#~ msgid "Display the keystroke bindings currently in use."
-#~ msgstr "Afficher les raccourcis clavier."
-
-#~ msgid "&File"
-#~ msgstr "&Fichier"
-
-#~ msgid "&Save Changes"
-#~ msgstr "&Enregistrer les changements"
-
-#~ msgid "&Revert Changes"
-#~ msgstr "&Annuler les changements"
-
-#~ msgid "&Print"
-#~ msgstr "&Imprimer"
-
-#~ msgid "&Close"
-#~ msgstr "&Fermer"
-
-#~ msgid "&Edit"
-#~ msgstr "&Edition"
-
-#~ msgid "C&ut"
-#~ msgstr "&Couper"
-
-#~ msgid "&Copy"
-#~ msgstr "Co&pier"
-
-#~ msgid "&Paste"
-#~ msgstr "C&oller"
-
-#~ msgid "Select &All"
-#~ msgstr "&Tout sélectionner"
-
-#~ msgid "&Insert New Record"
-#~ msgstr "&Insérer un nouvel enregistrement"
-
-#~ msgid "&Delete Current Record"
-#~ msgstr "S&upprimer l'enregistrement courant"
-
-#, fuzzy
-#~ msgid "&Undelete Current Record"
-#~ msgstr "S&upprimer l'enregistrement courant"
-
-#~ msgid "&Navigation"
-#~ msgstr "&Navigation"
-
-#~ msgid "&Next Entry"
-#~ msgstr "E&ntrée suivante"
-
-#~ msgid "&Previous Entry"
-#~ msgstr "Entrée &précédente"
-
-#~ msgid "Next &Record"
-#~ msgstr "En&registrement suivant"
-
-#~ msgid "Previous R&ecord"
-#~ msgstr "&Enregistrement précédent"
-
-#~ msgid "&First Record"
-#~ msgstr "Pre&mier enregistrement"
-
-#~ msgid "&Last Record"
-#~ msgstr "&Dernier enregistrement"
-
-#~ msgid "&Go to record..."
-#~ msgstr "&Atteindre l'enregistrement..."
-
-#~ msgid "Next &Block"
-#~ msgstr "&Bloc suivant"
-
-#~ msgid "Previous Bl&ock"
-#~ msgstr "B&loc précédent"
-
-#~ msgid "Next P&age"
-#~ msgstr "Pa&ge suivante"
-
-#~ msgid "Pre&vious Page"
-#~ msgstr "Page pré&cédente"
-
-#~ msgid "&Search"
-#~ msgstr "&Chercher"
-
-#~ msgid "Enter Query Mode"
-#~ msgstr "Passer en mode requête"
-
-#~ msgid "Cancel Query Mode"
-#~ msgstr "Annuler le mode requête"
-
-#~ msgid "Repeat Last Query"
-#~ msgstr "Refaire la dernière requête"
-
-#~ msgid "Perform Query"
-#~ msgstr "Exécuter la requête"
-
-#~ msgid "&Help"
-#~ msgstr "A&ide"
-
-#~ msgid "About..."
-#~ msgstr "A propos..."
-
-#~ msgid "Save Changes"
-#~ msgstr "Enregistrer les changements"
-
-#~ msgid "Insert New Record"
-#~ msgstr "Insérer un nouvel enregistrement"
-
-#~ msgid "Delete Current Record"
-#~ msgstr "Supprimer l'enregistrement courant"
-
-#~ msgid "First Record"
-#~ msgstr "Permier enregistrement"
-
-#~ msgid "Previous Record"
-#~ msgstr "Enregistrement précédent"
-
-#~ msgid "Next Record"
-#~ msgstr "Enregistrement suivant"
-
-#~ msgid "Last Record"
-#~ msgstr "Dernier enregistrement"
-
-#~ msgid "Go to record..."
-#~ msgstr "Aller à l'enregistrement..."
-
-#~ msgid "Enter Search Mode"
-#~ msgstr "Passer en mode recherche"
-
-#~ msgid "Perform Search"
-#~ msgstr "Lancer la recherche"
-
-#, fuzzy
-#~ msgid "Print Form"
-#~ msgstr "&Imprimer"
-
-#~ msgid "Revert Changes"
-#~ msgstr "Annuler les changements"
-
-#, fuzzy
-#~ msgid "Revert"
-#~ msgstr "Annuler les changements"
-
-#, fuzzy
-#~ msgid "Delete"
-#~ msgstr "Défaut"
-
-#, fuzzy
-#~ msgid "Exit"
-#~ msgstr "&Edition"
-
-#~ msgid "Invalid value '%s' for keyed pull-down field"
-#~ msgstr "Valeur '%s' incorrecte pour le menu déroulant"
-
-#~ msgid "Trigger Exception :\n"
-#~ msgstr "Déclencher l'exception : \n"
-
-#~ msgid "Data not saved. Save changes or clear the form to proceed."
-#~ msgstr ""
-#~ "Données non sauvegardées. Enregistrez les changements ou effacez le "
-#~ "formulaire pour continuer."
-
-#~ msgid "Form not in query mode"
-#~ msgstr "Le formulaire n'est pas en mode recherche."
-
-#, fuzzy
-#~ msgid ""
-#~ "Database query error:\n"
-#~ "%(exType)s\n"
-#~ "%(exMessage)s"
-#~ msgstr ""
-#~ "Erreur de requête sur la base de données:\n"
-#~ "%s\n"
-#~ "%s "
-
-#~ msgid "Form trigger returned error"
-#~ msgstr "Le trigger du formulaire a renvoyé une erreur."
-
-#~ msgid "Block trigger returned error"
-#~ msgstr "Le trigger du bloc a renvoyé une erreur."
-
-#, fuzzy
-#~ msgid "You cannot do that in query mode."
-#~ msgstr "Le formulaire n'est pas en mode recherche."
-
-#, fuzzy
-#~ msgid "There are no navigable widgets in this form. Unable to display."
-#~ msgstr ""
-#~ "Il n'y a pas de composants navigables dans ce formulaire. Affichage "
-#~ "impossible."
-
-#~ msgid "Current data is saved"
-#~ msgstr "Données actuelles sauvegardées"
-
-#~ msgid "Block does not allow delete"
-#~ msgstr "Le bloc n'autorise pas la suppression"
-
-#~ msgid "Block does not allow insert"
-#~ msgstr "Le bloc n'autorise pas l'insertion"
-
-#, fuzzy
-#~ msgid "As Entered"
-#~ msgstr "Centré"
-
-#~ msgid "Ignore Case on Queries"
-#~ msgstr "Ignorer la casse dans les requêtes"
-
-#, fuzzy
-#~ msgid "Description field"
-#~ msgstr "Champ de description F/K"
-
-#, fuzzy
-#~ msgid "Parent ID field"
-#~ msgstr "Empêcher les suppressions"
-
-#~ msgid "Invalid value '%s' for field"
-#~ msgstr "Valeur '%s' incorrecte pour le champ"
-
-#~ msgid "Forms Navigation"
-#~ msgstr "Navigation dans les formulaire"
-
-#~ msgid ""
-#~ "Login required for\n"
-#~ "\"%s\""
-#~ msgstr ""
-#~ "Login requis pour\n"
-#~ "\"%s\""
-
-#~ msgid "Login required for %s"
-#~ msgstr "Login requis pour %s"
-
-#~ msgid "GNU Enterprise: Login to %s"
-#~ msgstr "GNU Enterprise: Connexion en tant que %s"
-
-#, fuzzy
-#~ msgid ""
-#~ "Database commit error:\n"
-#~ "%(exType)s\n"
-#~ "%(exMessage)s"
-#~ msgstr ""
-#~ "Erreur de mise à jour de la base de données:\n"
-#~ "%s\n"
-#~ "%s"
-
-#, fuzzy
-#~ msgid "Edit Current Record"
-#~ msgstr "Supprimer l'enregistrement courant"
-
-#, fuzzy
-#~ msgid "Unable to login to datasource: %s"
-#~ msgstr ""
-#~ "Connexion à la source de données impossible.\n"
-#~ "\n"
-#~ "%s"
-
-#, fuzzy
-#~ msgid "Error while communicating with datasource: %s"
-#~ msgstr ""
-#~ "Erreur lors de la communication avec la source de données.\n"
-#~ "\n"
-#~ "%s"
-
-#, fuzzy
-#~ msgid "Login required for \"%s\""
-#~ msgstr ""
-#~ "Login requis pour\n"
-#~ "\"%s\""
-
-#, fuzzy
-#~ msgid "Login required for %(newline)s\"%(description)s\""
-#~ msgstr ""
-#~ "Login requis pour\n"
-#~ "\"%s\""
-
-#~ msgid "The win32 forms driver supports only BMP format logo files!"
-#~ msgstr ""
-#~ "Le pilote de formulaire pour Win32 ne supporte que les logos au format "
-#~ "BMP!"
-
-#, fuzzy
-#~ msgid "Unknown UI Driver: %s"
-#~ msgstr "Pilote d'UI inconnu:"
-
-#, fuzzy
-#~ msgid "Unable to load any valid UI drivers.Aborting."
-#~ msgstr "Impossible de charger un pilote d'UI valide. Abandon."
-
-#, fuzzy
-#~ msgid ""
-#~ "GFForm: Unexcpected Exception:\n"
-#~ "%s"
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ "GFForm: Exception inattendue:"
-
-#, fuzzy
-#~ msgid ""
-#~ "Unable to start GNUe Forms:\n"
-#~ "\n"
-#~ "%s"
-#~ msgstr "Impossible de lancer GNUe Forms:"
-
-#, fuzzy
-#~ msgid ""
-#~ "Exception occured in GNUe Forms:\n"
-#~ "%(exType)s\n"
-#~ "%(exValue)s\n"
-#~ "\n"
-#~ "%(trace)s"
-#~ msgstr "Exception dans GNUe Forms:"
-
-#~ msgid "Unable to start GNUe Forms:"
-#~ msgstr "Impossible de lancer GNUe Forms:"
-
-#~ msgid "Unknown UI driver"
-#~ msgstr "Pilote d'UI inconnu"
-
-#~ msgid "Move to the next logicalfield."
-#~ msgstr "Aller au champ logique suivant."
-
-#~ msgid "Move to the previous logicalfield."
-#~ msgstr "Aller au champ logique précédent."
-
-#~ msgid ""
-#~ "The GNUe-Forms Curses driver requires Python 2.1+ and the ncurses library."
-#~ msgstr ""
-#~ "Le pilote Curses pour GNUe Forms nécessite Python 2.1+ et la librairie "
-#~ "ncurses."
-
-#~ msgid "_LOGIN"
-#~ msgstr "_LOGIN"
-
-#~ msgid "_CANCEL"
-#~ msgstr "_CANCEL"
-
-#~ msgid "Wrong Place to execute set CursorPosition (%s,%s), widget is a %s"
-#~ msgstr ""
-#~ "Mauvais endroit pour exécuter set CursorPosition (%s,%s), le composant "
-#~ "est un %s"
-
-#~ msgid "Cannot modify field.  Form is read only"
-#~ msgstr "Impossible de modifier le champ. Formulaire en lecture seule"
-
-#~ msgid "Cannot modify field after initial creation."
-#~ msgstr "Impossible de modifier le champ après sa création."
-
-#~ msgid "Mixed case (no conversion)"
-#~ msgstr "Casse mélangée (pas de conversion)"
-
-#~ msgid "Convert to upper case"
-#~ msgstr "Convertir en majuscules"
-
-#~ msgid "Convert to lower case"
-#~ msgstr "Convertir en minuscules"
-
-#~ msgid "Refresh after record is committed"
-#~ msgstr "Mettre à jour lorsque l'enregistrement est enregistré"
-
-#~ msgid "Edit Only When Null"
-#~ msgstr "Editer seulement si Null"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.