[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fr:howtos:misc:internationalization_and_localization_of_shell_scripts [2015/10/03 16:47 (UTC)] – [Conseils pratiques aux traducteurs] pierreaversengfr:howtos:misc:internationalization_and_localization_of_shell_scripts [2016/01/03 04:10 (UTC)] (Version actuelle) – [Processus d' internationalisation] pierreaverseng
Ligne 1: Ligne 1:
-                                         <note warning>En cours de traduction (pierreaverseng)</note> +                                       
 =====Internationalisation et localisation des shell-scripts===== =====Internationalisation et localisation des shell-scripts=====
  
Ligne 11: Ligne 10:
 Le document de référence est le manuel intitulé [[http://www.gnu.org/software/gettext/manual/gettext.html|GNU 'gettext' utilities]]. Le document de référence est le manuel intitulé [[http://www.gnu.org/software/gettext/manual/gettext.html|GNU 'gettext' utilities]].
  
-Le manuel envisage tous les langages de programmation qui peuvent être employés avec gettext, en faisant principalement référence au langage C.+Le manuel envisage tous les langages de programmation qui peuvent être employés avec gettext, et fait principalement référence au langage C.
  
 Voir [[http://pubs.opengroup.org/onlinepubs/009695399/nframe.html|POSIX specification]] qu'il est recommandé de lire, en particulier les volumes [[http://pubs.opengroup.org/onlinepubs/009695399/basedefs/contents.html|Base Definitions]] et [[http://pubs.opengroup.org/onlinepubs/009695399/utilities/contents.html|Shell and Utilities]]. Voir [[http://pubs.opengroup.org/onlinepubs/009695399/nframe.html|POSIX specification]] qu'il est recommandé de lire, en particulier les volumes [[http://pubs.opengroup.org/onlinepubs/009695399/basedefs/contents.html|Base Definitions]] et [[http://pubs.opengroup.org/onlinepubs/009695399/utilities/contents.html|Shell and Utilities]].
Ligne 186: Ligne 185:
   * Que la chaîne msgstr commence et finisse par 'newline' ou non, à l'dentique de msgid.   * Que la chaîne msgstr commence et finisse par 'newline' ou non, à l'dentique de msgid.
   * Que dans le cas où la chaîne de texte contient un paramètre d'expansion, eval_gettext soit employé à la place de gettext.   * Que dans le cas où la chaîne de texte contient un paramètre d'expansion, eval_gettext soit employé à la place de gettext.
-  * "The variable names must consist solely of alphanumeric or underscore  ASCII characters, not start with a digit and be nonempty; otherwise such a variable reference is ignored." (nous rappelle le manuel de gettext): Les noms de variables ne doivent comporter uniquement que des caractères alphanumériques ou le tiret bas, ne peuvent pas commencer par un chiffre ni être une chaîne vide; sinon la référence à la variable (son nom) est ignorée.+  * "The variable names must consist solely of alphanumeric or underscore  ASCII characters, not start with a digit and be nonempty; otherwise such a variable reference is ignored." (nous __rappelle le manuel__ de gettext): Les noms de variables ne doivent comporter uniquement que des caractères alphanumériques ou le tiret bas, ne peuvent pas commencer par un chiffre ni être une chaîne vide; sinon la référence à la variable (son nom) est ignorée.
   * Que l'évitement des paramètres d'expansion soit obtenu par une seule barre oblique inversée, comme ceci:\\ \$parameter or \${parameter}\\ sauf si la commande eval_gettext se trouve dans une commande de substitution comme celle-ci:\\ "`eval_gettext "..."`"  ou   "$(eval_gettext "...")"\\ Dans ce cas, il faut mettre trois barres obliques inversées, comme ceci:\\ \\\$parameter or \\\${parameter}.   * Que l'évitement des paramètres d'expansion soit obtenu par une seule barre oblique inversée, comme ceci:\\ \$parameter or \${parameter}\\ sauf si la commande eval_gettext se trouve dans une commande de substitution comme celle-ci:\\ "`eval_gettext "..."`"  ou   "$(eval_gettext "...")"\\ Dans ce cas, il faut mettre trois barres obliques inversées, comme ceci:\\ \\\$parameter or \\\${parameter}.
   * Que seules les formes $parameter and ${parameter} du paramètre d'expansion soient employées dans un argument d'eval_gettext (toute autre forme est interdite).   * Que seules les formes $parameter and ${parameter} du paramètre d'expansion soient employées dans un argument d'eval_gettext (toute autre forme est interdite).
-  * Que les paramètres positionnels, paramètres spéciaux et commandes de substitution *ne soient pas* employés dans un argument de gettext ou d'eval_gettext.+  * Que les paramètres positionnels, paramètres spéciaux et commandes de substitution ***ne soient pas*** employés dans un argument de gettext ou d'eval_gettext.
  
 Une conséquence pratique des deux dernières règles conduit à recommander que tous les paramètres positionnels, paramètres spéciaux, les commandes de substitution et les formes non autorisées des paramètres de substitution soient assignées en amont aux variables nommées, puis développées dans la chaîne de texte en argument d'eval_gettext ou eval_ngettext. Une conséquence pratique des deux dernières règles conduit à recommander que tous les paramètres positionnels, paramètres spéciaux, les commandes de substitution et les formes non autorisées des paramètres de substitution soient assignées en amont aux variables nommées, puis développées dans la chaîne de texte en argument d'eval_gettext ou eval_ngettext.
Ligne 315: Ligne 314:
 Suivant le volume de travail nécessaire et les ressources disponibles, il peut y avoir un traducteur ou bien une équipe de traducteurs par langue de destination. Dans tous les cas je recommande qu'au moins une personne ait la responsabilité d'organiser le travail de l'équipe, de vérifier les traductions et de transmettre le fichier PO au(x) mainteneur(s). Appelons cette personne: «coordinateur».  Suivant le volume de travail nécessaire et les ressources disponibles, il peut y avoir un traducteur ou bien une équipe de traducteurs par langue de destination. Dans tous les cas je recommande qu'au moins une personne ait la responsabilité d'organiser le travail de l'équipe, de vérifier les traductions et de transmettre le fichier PO au(x) mainteneur(s). Appelons cette personne: «coordinateur». 
  
-Il ne faut pas obligatoirement traduire mot à mot. Non seulement c'est rarement la meilleure façon de communiquer le sens, mais encore cela produit souvent des phrases trop longues pour entrer dans l'espace prévu.+Il ne faut pas obligatoirement traduire mot à mot. Non seulement c'est rarement la meilleure façon de communiquer clairement le sens, mais encore cela produit souvent des phrases trop longues pour entrer dans l'espace prévu.
  
 Utilisez un éditeur de PO spécifique, '__pas__' un éditeur de texte standard. D'une part vous éviterez ainsi d'éditer des chaînes 'msgid' par inadvertance et d'autre part leur action en sera facilitée et les vérifications complémentaires seront automatisées, comme la présence d'une variable ayant la même orthographe dans la traduction et dans l'original. Utilisez un éditeur de PO spécifique, '__pas__' un éditeur de texte standard. D'une part vous éviterez ainsi d'éditer des chaînes 'msgid' par inadvertance et d'autre part leur action en sera facilitée et les vérifications complémentaires seront automatisées, comme la présence d'une variable ayant la même orthographe dans la traduction et dans l'original.
Ligne 329: Ligne 328:
 N'ajoutez pas de points d'interrogation qui ne figurent pas dans le message d'origine. N'ajoutez pas de points d'interrogation qui ne figurent pas dans le message d'origine.
  
-Si le message concerne des invites(un texte bref sur les boutons) de boîtes de dialogue, comme "OK", "Yes", "NO", "Continue", "Cancel", assurez vous de la traduction dans votre langue de ces invites employées dans l'interface globale de dialogue et reprenez les mêmes mots.+Si le message concerne des invites (un texte bref sur les boutons) de boîtes de dialogue, comme "OK", "Yes", "NO", "Continue", "Cancel", assurez vous de la traduction dans votre langue de ces invites employées dans l'interface globale de dialogue et reprenez les mêmes mots.
  
 Évitez les expressions familières et l'argot technique. Évitez les expressions familières et l'argot technique.
Ligne 337: Ligne 336:
 En outre, vous devrez vous conformer aux exigences suivantes de gettext pour qu'il fonctionne: En outre, vous devrez vous conformer aux exigences suivantes de gettext pour qu'il fonctionne:
   * S'il y a un mot commençant par le signe dollar dans le texte d'origine, il devra apparaître dans la traduction avec exactement la même écriture (la casse compte).   * S'il y a un mot commençant par le signe dollar dans le texte d'origine, il devra apparaître dans la traduction avec exactement la même écriture (la casse compte).
-  * The translation text should include a "new line" character (or line feed, represented by "\n"at the beginning or at the endexactly as the original text doesConverselyif the original text doesn’t have the characterthen the translation shouldn’t have it+  *  Le texte traduit doit comporter un caractère de passage à la ligne (ou "saut de lignereprésenté par '\n'au début ou à la finexactement comme dans le texte d'origineS'il n'y a pas le caractère '\n' dans le texte d'originealors il ne doit pas être dans la traductionnon plus
-  * A single backslash character "\" is not allowed in the translation. +  * Le caractère barre oblique inverse “\” n'est pas autorisé dans la traduction.
- +
-To "cut" (or end) a line inside a "dialog" box you should type \n: pressing [Enter] will 'not' insert a "new line" character in the text viewed by user.+
  
-To check your translation against gettext's requirements you could run following command+Pour vérifier que votre traduction satisfait aux exigences de gettext vous pourrez appeler cette commande 
-  msgfmt -c <name of the PO file+  msgfmt -c <nom du fichier PO> 
-==== Warning  about translation of man pages ====+==== Points importants pour traduire les pages de manuel ====
  
-Preserve carefully syntax of man pages found in English markup. For instance don't replace:+Conservez attentivement la syntaxe des pages de manuel telles qu'elles sont notées en anglais. Il ne faut pas changer:
  
-  * 'B<' with 'B <' (don't insert a space+  * 'B<' en 'B <' (n'insérez pas l'espace
-  * 'B<' with 'b<' (keep the as a capital letter and don't replace it by the Greek capital letter BETA that looks the same on the screen+  * 'B<' en 'b<' (laissez le en majuscule et ne le remplacez pas par la lettre majuscule grecque BETA qui a le même aspect à l'écran
-  * "I" with '|' (don't replace the capital letter with a pipe symbol)+  * "I" en '|' (ne remplacez pas la lettre majuscule par le symbole 'pipe' -- alt gr + 6 --)
  
-When translating shell commandspreserve English names of paths when neededBut you may and should translate arguments to be replaced by a value like 'packagename'+En traduisant des commandes du shell, laissez en anglais les noms de chemins d'accès à utiliserMais vous pouvez et __devez__ traduire les arguments destinés à prendre une valeur comme 'packagename', dans ce cas --> 'nomdupaquet'.
  
 Didier Spaier Didier Spaier
Ligne 358: Ligne 355:
 ====== Sources ====== ====== Sources ======
 * Originally written by [[wiki:user:didierspaier | Didier Spaier]] * Originally written by [[wiki:user:didierspaier | Didier Spaier]]
-{{tag>howtos gettext shell scripts internationalization localization i18n l10n}}+* Translation October 2015 by [[wiki:user:pierreaverseng | P-M Averseng]] 
 +{{tag>howtos gettext shell scripts internationalization localization i18n l10n translator_pierreaverseng}}
  
 fr:howtos:misc:internationalization_and_localization_of_shell_scripts ()