diff --git a/library/gettext.po b/library/gettext.po index ca0b051b1..9ec277329 100644 --- a/library/gettext.po +++ b/library/gettext.po @@ -3,27 +3,27 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-01 13:21+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2017-10-04 20:41+0200\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Last-Translator: François Magimel \n" +"Language-Team: \n" +"X-Generator: Poedit 2.0.3\n" #: ../Doc/library/gettext.rst:2 msgid ":mod:`gettext` --- Multilingual internationalization services" -msgstr "" +msgstr ":mod:`gettext` --- Services d'internationalisation multilingue" #: ../Doc/library/gettext.rst:10 msgid "**Source code:** :source:`Lib/gettext.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/gettext.py`" #: ../Doc/library/gettext.rst:14 msgid "" @@ -35,15 +35,25 @@ msgid "" "messages in one natural language, and provide a catalog of translated " "messages for running under different natural languages." msgstr "" +"Le module :mod:`gettext` fournit un service d'internationalisation (I18N) et " +"de localisation linguistique (L10N) pour vos modules et applications " +"Python. Il est compatible avec l'API du catalogue de messages GNU `gettext` " +"et à un plus haut niveau, avec l'API basée sur les classes qui serait peut-" +"être plus adaptée aux fichiers Python. L'interface décrite ci-dessous vous " +"permet d'écrire les textes de vos modules et applications dans une langue " +"naturelle, puis de fournir un catalogue de traductions pour les lancer " +"ensuite dans d'autres langues naturelles." #: ../Doc/library/gettext.rst:22 msgid "" "Some hints on localizing your Python modules and applications are also given." msgstr "" +"Quelques astuces sur la localisation de vos modules et applications Python " +"sont également données." #: ../Doc/library/gettext.rst:26 msgid "GNU :program:`gettext` API" -msgstr "" +msgstr "API GNU :program:`gettext`" #: ../Doc/library/gettext.rst:28 msgid "" @@ -55,6 +65,13 @@ msgid "" "module, or if your application needs to switch languages on the fly, you " "probably want to use the class-based API instead." msgstr "" +"Le module :mod:`gettext` définit l'API suivante, qui est très proche de " +"l'API de GNU :program:`gettext`. Si vous utilisez cette API, cela affectera " +"la traduction de toute votre application. C'est souvent le comportement " +"attendu si votre application est monolingue, avec le choix de la langue qui " +"dépend des paramètres linguistiques de l'utilisateur. Si vous localisez un " +"module Python ou si votre application a besoin de changer de langue à la " +"volée, il est plus judicieux d'utiliser l'API basée sur des classes." #: ../Doc/library/gettext.rst:39 msgid "" @@ -65,12 +82,20 @@ msgid "" "`LANGUAGE`, :envvar:`LC_ALL`, :envvar:`LC_MESSAGES`, and :envvar:`LANG` " "respectively." msgstr "" +"Lie *domain* au répertoire *localedir* des localisations. Plus " +"spécifiquement, :mod:`gettext` va chercher les fichiers binaires :file:`.mo` " +"pour un domaine donné, en utilisant le chemin suivant (sous Unix) : :file:" +"`localedir/language/LC_MESSAGES/domain.mo`, où *language* est contenu " +"respectivement dans l'une des variables d'environnement suivantes : :envvar:" +"`LANGUAGE`, :envvar:`LC_ALL`, :envvar:`LC_MESSAGES` et :envvar:`LANG`." #: ../Doc/library/gettext.rst:45 msgid "" "If *localedir* is omitted or ``None``, then the current binding for *domain* " "is returned. [#]_" msgstr "" +"Si *localedir* n'est pas renseigné ou vaut ``None``, alors le lien actuel de " +"*domain* est renvoyé. [#]_" #: ../Doc/library/gettext.rst:51 msgid "" @@ -79,6 +104,10 @@ msgid "" "func:`ldngettext` functions. If *codeset* is omitted, then the current " "binding is returned." msgstr "" +"Lie *domain* à *codeset*, en changeant l'encodage des chaînes d'octets " +"retournées par les fonctions :func:`lgettext`, :func:`ldgettext`, :func:" +"`lngettext` et :func:`ldngettext`. Si *codeset* n'est pas renseigné, alors " +"le lien actuel est renvoyé." #: ../Doc/library/gettext.rst:59 msgid "" @@ -86,6 +115,9 @@ msgid "" "the current global domain is returned, otherwise the global domain is set to " "*domain*, which is returned." msgstr "" +"Change ou interroge le domaine global actuel. Si *domain* vaut ``None``, " +"alors le domaine global actuel est renvoyé. Sinon, le domaine global est " +"positionné à *domain*, puis renvoyé." #: ../Doc/library/gettext.rst:66 msgid "" @@ -93,11 +125,14 @@ msgid "" "domain, language, and locale directory. This function is usually aliased " "as :func:`_` in the local namespace (see examples below)." msgstr "" +"Renvoie la traduction localisée de *message*, en se basant sur le domaine " +"global actuel, la langue et le répertoire des localisations." #: ../Doc/library/gettext.rst:73 msgid "" "Like :func:`.gettext`, but look the message up in the specified *domain*." msgstr "" +"Comme :func:`gettext`, mais cherche le message dans le domaine spécifié." #: ../Doc/library/gettext.rst:78 msgid "" @@ -106,6 +141,11 @@ msgid "" "languages have more than two plural forms). If no translation is found, " "return *singular* if *n* is 1; return *plural* otherwise." msgstr "" +"Comme :func:`gettext`, mais prend en compte les formes au pluriel. Si une " +"traduction a été trouvée, utilise la formule pour trouver le pluriel à *n* " +"et renvoie le message généré (quelques langues ont plus de deux formes au " +"pluriel). Si aucune traduction n'a été trouvée, renvoie *singular* si *n* " +"vaut 1, *plural* sinon." #: ../Doc/library/gettext.rst:83 msgid "" @@ -116,11 +156,18 @@ msgid "" "precise syntax to be used in :file:`.po` files and the formulas for a " "variety of languages." msgstr "" +"La formule pour trouver le pluriel est récupérée dans l'entête du " +"catalogue. C'est une expression en C ou en Python qui a une variable libre " +"*n* et qui évalue l'index du pluriel dans le catalogue. Voir `la " +"documentation de GNU gettext `__ pour la syntaxe précise à utiliser dans les fichiers :file:" +"`.po` et pour les formules dans différents langues." #: ../Doc/library/gettext.rst:93 msgid "" "Like :func:`ngettext`, but look the message up in the specified *domain*." msgstr "" +"Comme :func:`ngettext`, mais cherche le message dans le domaine spécifié." #: ../Doc/library/gettext.rst:101 msgid "" @@ -130,6 +177,11 @@ msgid "" "encoding if no other encoding was explicitly set with :func:" "`bind_textdomain_codeset`." msgstr "" +"Équivalent aux fonctions correspondantes non préfixées par ``l`` (:func:`." +"gettext`, :func:`dgettext`, :func:`ngettext` et :func:`dngettext`), mais la " +"traduction est retournée en tant que chaîne d'octets, encodée avec " +"l'encodage du système si aucun autre n'a été explicitement défini avec :func:" +"`bind_textdomain_codeset`." #: ../Doc/library/gettext.rst:109 msgid "" @@ -142,20 +194,32 @@ msgid "" "will be deprecated in future Python versions due to their inherent problems " "and limitations." msgstr "" +"Ces fonctions sont à éviter en Python 3 car elles renvoient des octets " +"encodés. Il est préférable d'utiliser des alternatives qui renvoient de " +"l'Unicode, puisque beaucoup d'applications Python voudront manipuler du " +"texte lisible par des humains plutôt que des octets. En outre, il est " +"possible que vous obteniez des exceptions non prévues liées à Unicode s'il y " +"a des soucis d'encodage avec les chaînes de caractères traduites. Il est " +"d'ailleurs probable que les fonctions ``l*()`` deviennent obsolètes dans les " +"versions futures de Python à cause de leurs problèmes et limitations " +"inhérents." #: ../Doc/library/gettext.rst:119 msgid "" "Note that GNU :program:`gettext` also defines a :func:`dcgettext` method, " "but this was deemed not useful and so it is currently unimplemented." msgstr "" +"Notez que GNU :program:`gettext` a aussi une méthode :func:`dcgettext`, mais " +"elle a été considérée comme inutile et donc actuellement marquée comme non " +"implémentée." #: ../Doc/library/gettext.rst:122 msgid "Here's an example of typical usage for this API::" -msgstr "" +msgstr "Voici un exemple classique d'utilisation de cette API : ::" #: ../Doc/library/gettext.rst:133 msgid "Class-based API" -msgstr "" +msgstr "API basée sur les classes" #: ../Doc/library/gettext.rst:135 msgid "" @@ -167,6 +231,14 @@ msgid "" "Instances of this \"translations\" class can also install themselves in the " "built-in namespace as the function :func:`_`." msgstr "" +"L'API du module :mod:`gettext` basée sur les classes vous donne plus de " +"flexibilité et est plus pratique que l'API de GNU :program:`gettext`. Son " +"utilisation est recommandée pour localiser vos applications et modules " +"Python. :mod:`gettext` définit une classe \"translations\" qui analyse " +"syntaxiquement les fichiers au format GNU :file:`.mo`, et qui possède des " +"méthodes pour renvoyer des chaînes de caractères. Les instances de cette " +"classe \"translations\" peuvent également s'installer dans l'espace de noms " +"natif en tant que fonction :func:`_`." #: ../Doc/library/gettext.rst:146 msgid "" @@ -175,6 +247,11 @@ msgid "" "*localedir* is as in :func:`bindtextdomain` Optional *languages* is a list " "of strings, where each string is a language code." msgstr "" +"Cette fonction implémente l'algorithme standard de recherche de fichier :" +"file:`mo`. Il prend en entrée un *domain*, tout comme la fonction :func:" +"`textdomain`. Le paramètre optionnel *localedir* est le même que celui de :" +"func:`bindtextdomain`. Le paramètre optionnel *langages* est une liste de " +"chaînes de caractères correspondants au code d'une langue." #: ../Doc/library/gettext.rst:151 msgid "" @@ -186,16 +263,27 @@ msgid "" "contain a colon separated list of languages, which will be split on the " "colon to produce the expected list of language code strings." msgstr "" +"Si *localedir* n'est pas renseigné, alors le répertoire de la locale par " +"défaut du système est utilisé. [#]_ Si *languages* n'est pas renseigné, " +"alors les variables d'environnement suivantes sont utilisées : :envvar:" +"`LANGUAGE`, :envvar:`LC_ALL`, :envvar:`LC_MESSAGES` et :envvar:`LANG`. La " +"première à renvoyer une valeur non vide est alors utilisée pour " +"*languages*. Ces variables d'environnement doivent contenir une liste de " +"langues, séparées par des deux-points, qui sera utilisée pour générer la " +"liste des codes de langues attendue." #: ../Doc/library/gettext.rst:159 msgid "" ":func:`find` then expands and normalizes the languages, and then iterates " "through them, searching for an existing file built of these components:" msgstr "" +"Recherche avec :func:`find`, découvre et normalise les langues, puis itère " +"sur la liste obtenue afin de trouver un fichier de traduction existant et " +"correspondant :" #: ../Doc/library/gettext.rst:162 msgid ":file:`{localedir}/{language}/LC_MESSAGES/{domain}.mo`" -msgstr "" +msgstr ":file:`{localedir}/{language}/LC_MESSAGES/{domain}.mo`" #: ../Doc/library/gettext.rst:164 msgid "" @@ -204,6 +292,10 @@ msgid "" "list of all file names, in the order in which they appear in the languages " "list or the environment variables." msgstr "" +"Le premier nom de fichier trouvé est renvoyé par :func:`find`. Si aucun " +"fichier n'a été trouvé, alors `None` est renvoyé. Si *all* est vrai, est " +"renvoyée la liste de tous les noms de fichiers, dans l'ordre dans lequel ils " +"apparaissent dans *languages* ou dans les variables d'environnement." #: ../Doc/library/gettext.rst:172 msgid "" @@ -216,6 +308,16 @@ msgid "" "change the charset used to encode translated strings in the :meth:" "`~NullTranslations.lgettext` and :meth:`~NullTranslations.lngettext` methods." msgstr "" +"Renvoie une instance de la classe :class:`Translations` en se basant sur " +"*domain*, *localedir* et *languages*, qui sont d'abord passés en argument " +"de :func:`find` afin d'obtenir une liste de chemin des fichiers :file:`.mo` " +"associés. Les instances avec des noms de fichiers :file:`.mo` identiques " +"sont mises en cache. La classe réellement instanciée est soit *class_* si " +"renseigné, soit une classe :class:`GNUTranslations`. Le constructeur de " +"cette classe doit prendre en argument un seul :term:`file object`. Si " +"renseigné, *codeset* modifiera le jeu de caractères utilisé pour encoder les " +"chaînes de caractères traduites, dans les méthodes :meth:`~NullTranslations." +"lgettext` et :meth:`~NullTranslations.lngettext`." #: ../Doc/library/gettext.rst:182 msgid "" @@ -224,6 +326,10 @@ msgid "" "translation object from the cache; the actual instance data is still shared " "with the cache." msgstr "" +"Si plusieurs fichiers ont été trouvés, les derniers sont utilisés comme " +"substitut des premiers. Pour rendre possible cette substitution, :func:" +"`copy.copy` est utilisé pour copier chaque objet traduit depuis le cache ; " +"les vraies données de l'instance étant toujours recopiées dans le cache." #: ../Doc/library/gettext.rst:187 msgid "" @@ -231,10 +337,16 @@ msgid "" "*fallback* is false (which is the default), and returns a :class:" "`NullTranslations` instance if *fallback* is true." msgstr "" +"Si aucun fichier :file:`.mo` n'a été trouvé, soit *fallback* vaut *False* " +"(valeur par défaut) et une exception :exc:`OSError` est levée, soit " +"*fallback* vaut *True* et une instance :class:`NullTranslations` est " +"renvoyée." #: ../Doc/library/gettext.rst:191 msgid ":exc:`IOError` used to be raised instead of :exc:`OSError`." msgstr "" +"Avant, c'était l'exception :exc:`IOError` qui était levée, au lieu de :exc:" +"`OSError`." #: ../Doc/library/gettext.rst:197 msgid "" @@ -242,12 +354,17 @@ msgid "" "on *domain*, *localedir*, and *codeset* which are passed to the function :" "func:`translation`." msgstr "" +"Positionne la fonction :func:`_` dans l'espace de noms natif à Python, en se " +"basant sur *domain*, *localedir* et *codeset*, qui sont passés en argument " +"de la fonction :func:`translation`." #: ../Doc/library/gettext.rst:201 msgid "" "For the *names* parameter, please see the description of the translation " "object's :meth:`~NullTranslations.install` method." msgstr "" +"Concernant le paramètre *names*, se référer à la description de la méthode :" +"meth:`~NullTranslations.install`." #: ../Doc/library/gettext.rst:204 msgid "" @@ -255,6 +372,8 @@ msgid "" "candidates for translation, by wrapping them in a call to the :func:`_` " "function, like this::" msgstr "" +"Habituellement, la fonction :func:`_` est appliquée aux chaînes de " +"caractères qui doivent être traduites comme suit : ::" #: ../Doc/library/gettext.rst:210 msgid "" @@ -262,10 +381,13 @@ msgid "" "builtins namespace, so it is easily accessible in all modules of your " "application." msgstr "" +"Pour plus de confort, il vaut mieux positionner la fonction :func:`_` dans " +"l'espace de noms natif à Python pour la rendre plus accessible dans tous les " +"modules de votre application." #: ../Doc/library/gettext.rst:216 msgid "The :class:`NullTranslations` class" -msgstr "" +msgstr "La classe :class:`NullTranslations`" #: ../Doc/library/gettext.rst:218 msgid "" @@ -275,6 +397,12 @@ msgid "" "the basic interface you can use to write your own specialized translation " "classes. Here are the methods of :class:`NullTranslations`:" msgstr "" +"Les classes de traduction implémentent le fait de passer d'une chaîne de " +"caractères du fichier original à traduire à la traduction de celle-ci. La " +"classe de base utilisée est :class:`NullTranslations`. C'est l'interface de " +"base à utiliser lorsque vous souhaitez écrire vos propres classes " +"spécifiques à la traduction. Voici les méthodes de :class:" +"`NullTranslations` :" #: ../Doc/library/gettext.rst:227 msgid "" @@ -284,6 +412,11 @@ msgid "" "through :meth:`add_fallback`. It then calls ``self._parse(fp)`` if *fp* is " "not ``None``." msgstr "" +"Prend un paramètre optionnel un :term:`file object` *fp*, qui est ignoré par " +"la classe de base. Initialise les variables d'instance \"protégées\" " +"*_info* et *_chardet*, définies par des classes dérivées, tout comme " +"*_fallback* qui est définie au travers de :meth:`add_fallback`. Puis " +"appelle ``self._parse(fp)`` si *fp* ne vaut pas ``None``." #: ../Doc/library/gettext.rst:235 msgid "" @@ -292,6 +425,10 @@ msgid "" "unsupported message catalog file format, you should override this method to " "parse your format." msgstr "" +"Cette méthode, non exécutée dans la classe de base, prend en paramètre un " +"objet fichier *fp* et lit les données de ce dernier. Si vous avez un " +"catalogue de messages dont le format n'est pas pris en charge, vous devriez " +"surcharger cette méthode pour analyser votre format." #: ../Doc/library/gettext.rst:243 msgid "" @@ -299,12 +436,17 @@ msgid "" "translation object should consult the fallback if it cannot provide a " "translation for a given message." msgstr "" +"Ajoute *fallback* comme objet de substitution pour l'objet de traduction " +"courant. Un objet de traduction devrait interroger cet objet de " +"substitution s'il ne peut fournir une traduction pour un message donné." #: ../Doc/library/gettext.rst:250 msgid "" "If a fallback has been set, forward :meth:`.gettext` to the fallback. " "Otherwise, return *message*. Overridden in derived classes." msgstr "" +"Si un objet de substitution a été défini, transmet :meth:`.gettext` à celui-" +"ci. Sinon, renvoie *message*. Surchargé dans les classes dérivées." #: ../Doc/library/gettext.rst:256 msgid "" @@ -312,6 +454,9 @@ msgid "" "Otherwise, return *singular* if *n* is 1; return *plural* otherwise. " "Overridden in derived classes." msgstr "" +"Si un objet de substitution a été défini, transmet :meth:`ngettext` à celui-" +"ci. Sinon, renvoie *singular* si *n* vaut 1, *plural* sinon. Surchargé " +"dans les classes dérivées." #: ../Doc/library/gettext.rst:264 msgid "" @@ -320,36 +465,46 @@ msgid "" "encoding was explicitly set with :meth:`set_output_charset`. Overridden in " "derived classes." msgstr "" +"Équivalent de :meth:`.gettext` et :meth:`ngettext`, mais la traduction est " +"renvoyée sous la forme d'une chaîne d'octets, encodée avec l'encodage du " +"système si aucun autre n'a été défini avec :meth:`set_output_charset`. " +"Surchargé dans les classes dérivées." #: ../Doc/library/gettext.rst:271 ../Doc/library/gettext.rst:392 msgid "" "These methods should be avoided in Python 3. See the warning for the :func:" "`lgettext` function." msgstr "" +"L'utilisation de ces méthodes doivent être évitée en Python 3. Voir " +"l'avertissement de la fonction :func:`lgettext`." #: ../Doc/library/gettext.rst:277 msgid "Return the \"protected\" :attr:`_info` variable." -msgstr "" +msgstr "Renvoie la variable \"protégée\" :attr:`_info`." #: ../Doc/library/gettext.rst:282 msgid "Return the encoding of the message catalog file." -msgstr "" +msgstr "Renvoie l'encodage du fichier du catalogue de messages." #: ../Doc/library/gettext.rst:287 msgid "" "Return the encoding used to return translated messages in :meth:`.lgettext` " "and :meth:`.lngettext`." msgstr "" +"Renvoie l'encodage utilisé par :meth:`.lgettext` et :meth:`.lngettext` pour " +"la traduction des messages." #: ../Doc/library/gettext.rst:293 msgid "Change the encoding used to return translated messages." -msgstr "" +msgstr "Modifie l'encodage utilisé pour la traduction des messages." #: ../Doc/library/gettext.rst:298 msgid "" "This method installs :meth:`.gettext` into the built-in namespace, binding " "it to ``_``." msgstr "" +"Cette méthode positionne :meth:`.gettext` dans l'espace de noms natif, en le " +"liant à ``_``." #: ../Doc/library/gettext.rst:301 msgid "" @@ -358,6 +513,10 @@ msgid "" "to :func:`_`. Supported names are ``'gettext'``, ``'ngettext'``, " "``'lgettext'`` and ``'lngettext'``." msgstr "" +"Si le paramètre *names* est renseigné, celui-ci doit être une séquence " +"contenant les noms des fonctions que vous souhaitez positionner dans " +"l'espace de noms natif, en plus de :func:`_`. Les noms pris en charge sont " +"``'gettext'``, ``'ngettext'``, ``'lgettext'`` et ``'lngettext'``." #: ../Doc/library/gettext.rst:306 msgid "" @@ -367,16 +526,24 @@ msgid "" "localized modules should never install :func:`_`. Instead, they should use " "this code to make :func:`_` available to their module::" msgstr "" +"Notez que ce n'est là qu'un moyen parmi d'autres, quoique le plus pratique, " +"pour rendre la fonction :func:`_` accessible à votre application. Puisque " +"cela affecte toute l'application, et plus particulièrement l'espace de noms " +"natif, les modules localisés ne devraient jamais y positionner :func:`_`. " +"Au lieu de cela, ces derniers doivent plutôt utiliser le code suivant pour " +"rendre :func:`_` accessible par leurs modules : ::" #: ../Doc/library/gettext.rst:316 msgid "" "This puts :func:`_` only in the module's global namespace and so only " "affects calls within this module." msgstr "" +"Cela met :func:`_` dans l'espace de noms global du module uniquement et donc " +"n'affectera ses appels que dans ce module." #: ../Doc/library/gettext.rst:321 msgid "The :class:`GNUTranslations` class" -msgstr "" +msgstr "La classe :class:`GNUTranslations`" #: ../Doc/library/gettext.rst:323 msgid "" @@ -385,6 +552,10 @@ msgid "" "`_parse` to enable reading GNU :program:`gettext` format :file:`.mo` files " "in both big-endian and little-endian format." msgstr "" +"Le module :mod:`gettext` fournit une classe supplémentaire qui hérite de :" +"class:`NullTranslations` : :class:`GNUTranslations`. Cette classe " +"surcharge :meth:`_parse` pour permettre de lire les fichiers GNU :program:" +"`gettext` :file:`.mo` au format petit et grand boutiste." #: ../Doc/library/gettext.rst:328 msgid "" @@ -398,18 +569,35 @@ msgid "" "then all message ids and message strings read from the catalog are converted " "to Unicode using this encoding, else ASCII encoding is assumed." msgstr "" +":class:`GNUTranslations` analyse les métadonnées optionnelles du catalogue " +"de traduction. Il est d'usage avec GNU :program:`gettext` d'utiliser une " +"métadonnée pour traduire la chaîne vide. Cette métadonnée est un ensemble " +"de paires de la forme ``clef: valeur`` comme définie par la :rfc:`822`, et " +"doit contenir la clef ``Project-Id-Version``. Si la clef ``Content-Type`` " +"est trouvée dans une métadonnée, alors la propriété ``charset`` (jeu de " +"caractères) est utilisée pour initialiser la variable d'instance \"protégée" +"\" :attr:`_charset`, sinon cette dernière est positionnée à ``None``. Si " +"l'encodage du jeu de caractères est spécifié, tous les messages " +"(identifiants et chaînes de caractères) lus depuis le catalogue sont " +"convertis en chaînes Unicode via cet encodage, ou via l'encodage ASCII si " +"non renseigné." #: ../Doc/library/gettext.rst:338 msgid "" "Since message ids are read as Unicode strings too, all :meth:`*gettext` " "methods will assume message ids as Unicode strings, not byte strings." msgstr "" +"Et puisque les identifiants des messages sont également lus comme des " +"chaînes Unicode, toutes les méthodes :meth:`*gettext` les considéreront " +"ainsi, et pas comme des chaînes d'octets." #: ../Doc/library/gettext.rst:341 msgid "" "The entire set of key/value pairs are placed into a dictionary and set as " "the \"protected\" :attr:`_info` instance variable." msgstr "" +"La totalité des paires clef / valeur est insérée dans un dictionnaire et " +"représente la variable d'instance \"protégée\" :attr:`_info`." #: ../Doc/library/gettext.rst:344 msgid "" @@ -417,11 +605,17 @@ msgid "" "is unexpected, or if other problems occur while reading the file, " "instantiating a :class:`GNUTranslations` class can raise :exc:`OSError`." msgstr "" +"Si le nombre magique du fichier :file:`.mo` est invalide, le numéro de la " +"version majeure inattendu, ou si d'autres problèmes apparaissent durant la " +"lecture du fichier, instancier une classe :class:`GNUTranslations` peut " +"lever une exception :exc:`OSError`." #: ../Doc/library/gettext.rst:350 msgid "" "The following methods are overridden from the base class implementation:" msgstr "" +"Les méthodes suivantes, provenant de l'implémentation de la classe de base, " +"ont été surchargée :" #: ../Doc/library/gettext.rst:354 msgid "" @@ -431,6 +625,11 @@ msgid "" "fallback's :meth:`~NullTranslations.gettext` method. Otherwise, the " "*message* id is returned." msgstr "" +"Recherche l'identifiant de *message* dans le catalogue et renvoie le message " +"de la chaîne de caractères correspondante comme une chaîne Unicode. Si " +"aucun identifiant n'a été trouvé pour *message* et qu'un substitut a été " +"défini, la recherche est transmise à la méthode :meth:`~NullTranslations." +"gettext` du substitut. Sinon, l'identifiant de *message* est renvoyé." #: ../Doc/library/gettext.rst:363 msgid "" @@ -438,6 +637,10 @@ msgid "" "id for purposes of lookup in the catalog, while *n* is used to determine " "which plural form to use. The returned message string is a Unicode string." msgstr "" +"Effectue une recherche sur les formes plurielles de l'identifiant d'un " +"message. *singular* est utilisé pour la recherche de l'identifiant dans le " +"catalogue, alors que *n* permet de savoir quelle forme plurielle utiliser. " +"La chaîne de caractère du message renvoyée est une chaîne Unicode." #: ../Doc/library/gettext.rst:367 msgid "" @@ -446,10 +649,14 @@ msgid "" "ngettext` method. Otherwise, when *n* is 1 *singular* is returned, and " "*plural* is returned in all other cases." msgstr "" +"Si l'identifiant du message n'est pas trouvé dans le catalogue et qu'un " +"substitut a été spécifié, la requête est transmise à la méthode :meth:" +"`~NullTranslations.ngettext` du substitut. Sinon, est renvoyé *singular* " +"lorsque *n* vaut 1, *plural* dans tous les autres cas." #: ../Doc/library/gettext.rst:372 msgid "Here is an example::" -msgstr "" +msgstr "Voici un exemple : ::" #: ../Doc/library/gettext.rst:385 msgid "" @@ -458,10 +665,14 @@ msgid "" "encoding was explicitly set with :meth:`~NullTranslations." "set_output_charset`." msgstr "" +"Équivalent de :meth:`.gettext` et :meth:`.ngettext`, mais la traduction est " +"renvoyée sous la forme d'une chaîne d'octets, encodée avec l'encodage du " +"système si aucun autre n'a été défini avec :meth:`~NullTranslations." +"set_output_charset`." #: ../Doc/library/gettext.rst:397 msgid "Solaris message catalog support" -msgstr "" +msgstr "Support du catalogue de message de Solaris" #: ../Doc/library/gettext.rst:399 msgid "" @@ -469,22 +680,30 @@ msgid "" "but since no documentation can be found on this format, it is not supported " "at this time." msgstr "" +"Le système d'exploitation Solaris possède son propre format de fichier " +"binaire :file:`.mo`, mais pour l'heure, puisqu'on ne peut trouver de " +"documentation sur ce format, il n'est pas géré." #: ../Doc/library/gettext.rst:405 msgid "The Catalog constructor" -msgstr "" +msgstr "Le constructeur *Catalog*" #: ../Doc/library/gettext.rst:409 msgid "" "GNOME uses a version of the :mod:`gettext` module by James Henstridge, but " "this version has a slightly different API. Its documented usage was::" msgstr "" +"GNOME utilise une version du module :mod:`gettext` de James Henstridge, mais " +"qui a une API légèrement différente. D'après la documentation, elle " +"s'utilise ainsi : ::" #: ../Doc/library/gettext.rst:417 msgid "" "For compatibility with this older module, the function :func:`Catalog` is an " "alias for the :func:`translation` function described above." msgstr "" +"Pour des raisons de compatibilité avec cet ancien module, la fonction :func:" +"`Catalog` est un alias de la fonction :func:`translation` décrite ci-dessous." #: ../Doc/library/gettext.rst:420 msgid "" @@ -492,10 +711,13 @@ msgid "" "supported access through a mapping API, but this appears to be unused and so " "is not currently supported." msgstr "" +"Une différence entre ce module et celui de Henstridge : les objets de son " +"catalogue étaient accessibles depuis un schéma de l'API, mais cela semblait " +"ne pas être utilisé et donc n'est pas pris en charge." #: ../Doc/library/gettext.rst:426 msgid "Internationalizing your programs and modules" -msgstr "" +msgstr "Internationaliser vos programmes et modules" #: ../Doc/library/gettext.rst:428 msgid "" @@ -505,25 +727,37 @@ msgid "" "and cultural habits. In order to provide multilingual messages for your " "Python programs, you need to take the following steps:" msgstr "" +"L'internationalisation (I18N) consiste à permettre à un programme de " +"recevoir des traductions dans plusieurs langues. La localisation (L10N) " +"consiste à adapter un programme à la langue et aux habitudes culturelles " +"locales, une fois celui-ci internationalisé. Afin de fournir du texte " +"multilingue à votre programme Python, les étapes suivantes sont nécessaires :" #: ../Doc/library/gettext.rst:434 msgid "" "prepare your program or module by specially marking translatable strings" msgstr "" +"préparer votre programme ou module en marquant spécifiquement les chaînes à " +"traduire" #: ../Doc/library/gettext.rst:436 msgid "" "run a suite of tools over your marked files to generate raw messages catalogs" msgstr "" +"lancer une suite d'outils sur les fichiers contenant des chaînes à traduire " +"pour générer des catalogues de messages brut" #: ../Doc/library/gettext.rst:438 msgid "create language specific translations of the message catalogs" msgstr "" +"créer les traductions spécifiques à une langue des catalogues de messages" #: ../Doc/library/gettext.rst:440 msgid "" "use the :mod:`gettext` module so that message strings are properly translated" msgstr "" +"utiliser le module :mod:`gettext` pour que les chaînes de caractères soient " +"bien traduites" #: ../Doc/library/gettext.rst:442 msgid "" @@ -532,6 +766,10 @@ msgid "" "wrapping it in ``_('...')`` --- that is, a call to the function :func:`_`. " "For example::" msgstr "" +"Afin de préparer votre code à être traduit (I18N), vous devrez rechercher " +"toutes les chaînes de caractères de vos fichiers. À chaque chaîne de " +"caractères à traduire doit être appliqué le marqueur ``_('...')`` --- c'est-" +"à-dire en appelant la fonction :func:`_`. Par exemple : ::" #: ../Doc/library/gettext.rst:452 msgid "" @@ -539,6 +777,8 @@ msgid "" "candidate for translation, while the strings ``'mylog.txt'`` and ``'w'`` are " "not." msgstr "" +"Dans cet exemple, la chaîne ``'writing a log message'`` est maquée comme " +"traduite, contrairement aux chaînes ``'mylog.txt'`` et ``'w'``." #: ../Doc/library/gettext.rst:455 msgid "" @@ -552,6 +792,16 @@ msgid "" "available as part of his `po-utils package `__." msgstr "" +"Il existe quelques outils pour extraire les chaînes de caractères destinées " +"à la traduction. Le programme d'origine GNU :program:`gettext` ne prenait " +"en charge que les codes sources en C ou C++, mais sa version étendue :" +"program:`xgettext` peut lire du code écrit dans de nombreux langages, dont " +"le Python, afin de trouver les chaînes notées comme traduisibles. `Babel " +"`__ est une bibliothèque en Python " +"d'internationalisation, qui inclut un script :file:`pybabel` permettant " +"d'extraire et de compiler des catalogues de messages. Le programme de " +"François Pinard, nommé :program:`xpot`, fait de même et est disponible dans " +"son `paquet po-utils `__." #: ../Doc/library/gettext.rst:465 msgid "" @@ -565,6 +815,17 @@ msgid "" "with GNU :program:`msgfmt`. With these two programs, you may not need the " "GNU :program:`gettext` package to internationalize your Python applications.)" msgstr "" +"(Python inclut également des versions en Python de ces programmes, :program:" +"`pygettext.py` et :program:`msgfmt.py`, que certaines distributions Python " +"installeront pour vous. :program:`pygettext.py` est similaire à :program:" +"`xgettext`, mais ne comprend que le code source écrit en Python et ne peut " +"prendre en charge d'autres langages de programmation tels que le C ou C++. :" +"program:`pygettext.py` possède une interface en ligne de commande similaire " +"à celle de :program:`xgettext` --- pour plus de détails sur son utilisation, " +"exécuter ``pygettext.py --help``. :program:`msgfmt.py` est compatible avec " +"GNU :program:`msgfmt`. Avec ces deux programmes, vous ne devriez pas avoir " +"besoin du paquet GNU :program:`gettext` pour internationaliser vos " +"applications en Python.)" #: ../Doc/library/gettext.rst:477 msgid "" @@ -573,6 +834,11 @@ msgid "" "files that contain every marked string in the source code, along with a " "placeholder for the translated versions of these strings." msgstr "" +":program:`xgettext`, :program:`pygettext` et d'autres outils similaires " +"génèrent des fichiers :file:`.po` représentant les catalogues de messages. " +"Il s'agit de fichiers structurés et lisibles par un être humain, qui " +"contiennent toutes les chaînes du code source marquées comme traduisible, " +"ainsi que leur traduction à utiliser." #: ../Doc/library/gettext.rst:483 msgid "" @@ -584,6 +850,14 @@ msgid "" "mo` files are used by the :mod:`gettext` module for the actual translation " "processing at run-time." msgstr "" +"Les copies de ces fichiers :file:`.po` sont ensuite remises à des êtres " +"humains qui traduisent le contenu pour chaque langue naturelle prise en " +"charge. Pour chacune des langues, ces derniers renvoient la version " +"complétée sous la forme d'un fichier :file:`.po` qui a été " +"compilé dans un fichier binaire :file:`.mo` représentant le catalogue " +"lisible par une machine à l'aide du programme :program:`msgfmt`. Les " +"fichiers :file:`.mo` sont utilisés par le module :mod:`gettext` pour la " +"traduction lors de l'exécution." #: ../Doc/library/gettext.rst:492 msgid "" @@ -591,10 +865,13 @@ msgid "" "are internationalizing a single module or your entire application. The next " "two sections will discuss each case." msgstr "" +"La façon dont vous utilisez le module :mod:`gettext` dans votre code dépend " +"de si vous internationalisez un seul module ou l'ensemble de votre " +"application. Les deux sections suivantes traitent chacune des cas." #: ../Doc/library/gettext.rst:498 msgid "Localizing your module" -msgstr "" +msgstr "Localiser votre module" #: ../Doc/library/gettext.rst:500 msgid "" @@ -602,6 +879,9 @@ msgid "" "changes, e.g. to the built-in namespace. You should not use the GNU " "``gettext`` API but instead the class-based API." msgstr "" +"Si vous localisez votre module, veillez à ne pas faire de changements " +"globaux, e.g. dans l'espace de nom natif. Vous ne devriez pas utiliser " +"l'API GNU ``gettext`` mais plutôt celle basée sur les classes." #: ../Doc/library/gettext.rst:504 msgid "" @@ -610,10 +890,14 @@ msgid "" "in GNU :program:`gettext` format. Here's what you would put at the top of " "your module::" msgstr "" +"Disons que votre module s'appelle \"spam\" et que les fichiers :file:`.mo` " +"de traduction dans les différentes langues naturelles soient dans :file:`/" +"usr/share/locale` au format GNU :program:`gettext`. Voici ce que vous " +"pouvez alors mettre en haut de votre module : ::" #: ../Doc/library/gettext.rst:515 msgid "Localizing your application" -msgstr "" +msgstr "Localiser votre application" #: ../Doc/library/gettext.rst:517 msgid "" @@ -622,22 +906,31 @@ msgid "" "file of your application. This will let all your application-specific files " "just use ``_('...')`` without having to explicitly install it in each file." msgstr "" +"Si vous localisez votre application, vous pouvez positionner la fonction :" +"func:`_` de manière globale dans l'espace de noms natif, généralement dans " +"le fichier principal de votre application. Cela permettra à tous les " +"fichiers de votre application de n'utiliser que ``_('...')`` sans devoir le " +"redéfinir explicitement dans chaque fichier." #: ../Doc/library/gettext.rst:522 msgid "" "In the simple case then, you need only add the following bit of code to the " "main driver file of your application::" msgstr "" +"Dans ce cas, vous n'aurez à ajouter que le bout de code suivant au fichier " +"principal de votre application : ::" #: ../Doc/library/gettext.rst:528 msgid "" "If you need to set the locale directory, you can pass it into the :func:" "`install` function::" msgstr "" +"Si vous avez besoin de définir le dossier des localisations, vous pouvez le " +"mettre en argument de la fonction :func:`install` : ::" #: ../Doc/library/gettext.rst:536 msgid "Changing languages on the fly" -msgstr "" +msgstr "Changer de langue à la volée" #: ../Doc/library/gettext.rst:538 msgid "" @@ -645,10 +938,13 @@ msgid "" "want to create multiple translation instances and then switch between them " "explicitly, like so::" msgstr "" +"Si votre programme a besoin de prendre en charge plusieurs langues en même " +"temps, vous pouvez créer plusieurs instances de traduction, puis basculer " +"entre elles de façon explicite, comme ceci : ::" #: ../Doc/library/gettext.rst:559 msgid "Deferred translations" -msgstr "" +msgstr "Traductions différées" #: ../Doc/library/gettext.rst:561 msgid "" @@ -656,6 +952,10 @@ msgid "" "Occasionally however, you need to mark strings for translation, but defer " "actual translation until later. A classic example is::" msgstr "" +"Dans la plupart des cas, en programmation, les chaînes de caractères sont " +"traduites à l'endroit où on les écrit. Cependant, il peut arriver que vous " +"ayez besoin de traduire une chaîne de caractères un peu plus loin. Un " +"exemple classique est : ::" #: ../Doc/library/gettext.rst:574 msgid "" @@ -663,10 +963,12 @@ msgid "" "translatable, but you don't actually want to translate them until they are " "printed." msgstr "" +"Ici, vous voulez marquer les chaînes de caractères de la liste ``animals`` " +"comme étant traduisibles, mais ne les traduire qu'au moment de les afficher." #: ../Doc/library/gettext.rst:578 msgid "Here is one way you can handle this situation::" -msgstr "" +msgstr "Voici un moyen de gérer ce cas : ::" #: ../Doc/library/gettext.rst:594 msgid "" @@ -676,6 +978,12 @@ msgid "" "command). Take care, though if you have a previous definition of :func:`_` " "in the local namespace." msgstr "" +"Cela fonctionne car la définition factice de :func:`_` renvoie simplement la " +"chaîne de caractères passée en entrée. Et cette définition factice va " +"temporairement outrepasser toute autre définition de :func:`_` dans l'espace " +"de noms natif (jusqu'à l'utilisation de la commande :keyword:`del`). " +"Attention toutefois si vous avez déjà une autre définition de :func:`_` dans " +"l'espace de noms local." #: ../Doc/library/gettext.rst:600 msgid "" @@ -683,10 +991,13 @@ msgid "" "translatable to the :program:`gettext` program, because the parameter is not " "a string literal." msgstr "" +"À noter qu'à la deuxième utilisation de :func:`_`, \"a\" ne sera pas vue " +"comme traduisible par le programme :program:`gettext` car ce n'est pas un " +"chaîne au sens propre." #: ../Doc/library/gettext.rst:604 msgid "Another way to handle this is with the following example::" -msgstr "" +msgstr "Voici une autre solution : ::" #: ../Doc/library/gettext.rst:618 msgid "" @@ -699,10 +1010,18 @@ msgid "" "totally arbitrary; it could have just as easily been :func:" "`MarkThisStringForTranslation`." msgstr "" +"Dans ce cas, les chaînes à traduire sont identifiées avec la fonction :func:" +"`N_`, qui n'entre pas en conflit avec définition de :func:`_`. Cependant, " +"il faudra apprendre à votre programme d'extraction de messages à rechercher " +"les chaînes de caractères à traduire parmi celles ayant le marqueur :func:" +"`N_`. :program:`xgettext`, :program:`pygettext`, ``pybabel extract`` et :" +"program:`xpot` prennent tous en charge cela grâce à l'option en ligne de " +"commande :option:`!-k`. Le choix du nom :func:`N_` ici est totalement " +"arbitraire et aurait très bien pu être :func:`MarqueurDeTraduction`." #: ../Doc/library/gettext.rst:629 msgid "Acknowledgements" -msgstr "" +msgstr "Remerciements" #: ../Doc/library/gettext.rst:631 msgid "" @@ -710,6 +1029,9 @@ msgid "" "previous implementations, and valuable experience to the creation of this " "module:" msgstr "" +"Les personnes suivantes ont contribué au code, ont fait des retours, ont " +"participé aux suggestions de conception et aux implémentations précédentes, " +"et ont partagé leur expérience précieuse pour la création de ce module :" #: ../Doc/library/gettext.rst:634 msgid "Peter Funk" @@ -717,11 +1039,11 @@ msgstr "Peter Funk" #: ../Doc/library/gettext.rst:636 msgid "James Henstridge" -msgstr "" +msgstr "James Henstridge" #: ../Doc/library/gettext.rst:638 msgid "Juan David Ibáñez Palomar" -msgstr "" +msgstr "Juan David Ibáñez Palomar" #: ../Doc/library/gettext.rst:640 msgid "Marc-André Lemburg" @@ -741,7 +1063,7 @@ msgstr "Barry Warsaw" #: ../Doc/library/gettext.rst:648 msgid "Gustavo Niemeyer" -msgstr "" +msgstr "Gustavo Niemeyer" #: ../Doc/library/gettext.rst:651 msgid "Footnotes" @@ -756,7 +1078,14 @@ msgid "" "For this reason, it is always best to call :func:`bindtextdomain` with an " "explicit absolute path at the start of your application." msgstr "" +"Le dossier par défaut pour les localisations dépend du système : par " +"exemple, sur RedHat c'est :file:`/usr/share/locale`, mais sur Solaris c'est :" +"file:`/usr/lib/locale`. Le module :mod:`gettext` n'essaie pas de prendre en " +"charge ce paramètre système, mais utilise le dossier :file:`sys.prefix/share/" +"locale`. C'est pour cette raison qu'il est toujours préférable d'appeler :" +"func:`bindtextdomain` en donnant explicitement un chemin absolu au début de " +"votre application." #: ../Doc/library/gettext.rst:659 msgid "See the footnote for :func:`bindtextdomain` above." -msgstr "" +msgstr "Voir la note de :func:`bindtextdomain` ci-dessus."