[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/02 12:22 (UTC)] – [Practical recommendations for translators] 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 313: Ligne 312:
 ==== Conseils pratiques aux traducteurs ==== ==== Conseils pratiques aux traducteurs ====
  
-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. In all cases, I recommend that at least one person be responsible for organizing the team's workchecking the translations and transmitting the checked PO file to the maintainer(s). Let's call this person the team coordinator. +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'équipede vérifier les traductions et de transmettre le fichier PO au(x) mainteneur(s). Appelons cette personne: «coordinateur»
- +
-Don't feel obliged to translate verbatim. Not only is this rarely the best way to convey the meaning, but in addition this often leads to sentences too long to fit in allowed space. +
- +
-Use a specialized PO editor, 'not' a general text editor. This will not only prevent inadvertently editing 'msgid' strings but also facilitate their work and automatize additional checks, as the presence of a variable in the translation with the same spelling as in the original.+
  
-While translating, choose a serif fixed width (or "monospaced") font, like CourierThat allow to visually distinguish characters that otherwise would look the sameand check line's length when that matters.+Il ne faut pas obligatoirement traduire mot à motNon seulement c'est rarement la meilleure façon de communiquer clairement le sensmais encore cela produit souvent des phrases trop longues pour entrer dans l'espace prévu.
  
-If possiblecheck the layout of the messagesYou could do that looking at the context in the relevant source file. Even bettersimply run the translated script+Utilisez un éditeur de PO spécifique'__pas__' un éditeur de texte standardD'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éescomme la présence d'une variable ayant la même orthographe dans la traduction et dans l'original.
  
-This is especially important if you are translating dialog boxesIn particulartake care not to write too long sentences on one single line if it appears that the text can't flow on next one.+Pendant la traduction, choisissez une police sérif de largeur fixe (ou "monospace"), comme CourierCela évite de confondre des caractères qui autrement se ressemblent, on peut aussi vérifier la longueur de ligne quand cela importe.
  
-Bear in mind that in VGA mode (used in text installersin particular), line's width is limited theoretically to 80 charactersbut practically often to 74.+Si possiblevérifiez l'affichage des messages. Vous pourriez le faire en regardant le contexte dans le fichier source correspondant. Mieux encoreactivez tout simplement le script traduit
  
-Do not add question marks that are not present in the original message.+Ceci est très important si vous traduisez des boîtes de dialogue. En particulier, évitez d'écrire des phrases trop longues sur une seule ligne s'il s'avère que le texte ne peut pas continuer sur la ligne suivante.
  
-If the message refers to tags (text on the buttonsof dialog boxeslike "OK""Yes", "NO", "Continue", "Cancel", check how theses tags are translated in your language in dialog's interface and use the same words.+N'oubliez pas qu'en mode VGA (utilisé dans les installeurs à interface en texte, par exemple), la dimension des lignes est limitée en théorie à 80 caractèresmais souvent à 74 en fait.
  
-Avoid colloquialisms and technical slang.+N'ajoutez pas de points d'interrogation qui ne figurent pas dans le message d'origine.
  
-To "cut" (or enda line inside a "dialogbox you should type \n: pressing [Enter] will 'not' insert a "new linecharacter in the text viewed by user+Si le message concerne des invites (un texte bref sur les boutonsde 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.
  
-In addition, you will have to comply to gettext's requirements for it to work: +Évitez les expressions familières et l'argot technique.
-  * If a word beginning with a dollar sign is included in the original text it should be present in the translation with exactly the same spelling (case matters). +
-  * The translation text should include a "new line" character (or line feed, represented by "\n") at the beginning or at the end, exactly as the original text does. Conversely, if the original text doesn’t have the character, then the translation shouldn’t have it. +
-  * A single backslash character "\" is not allowed in the translation.+
  
-To "cut" (or enda line inside a "dialog" box you should type \n: pressing [Enter] will 'notinsert a "new line" character in the text viewed by user.+Pour "couper" (ou terminerune ligne dans une boîte de dialogue vous entrerez \n: et quand il enfoncera [Enter], l'utilisateur '__ne verra pas__' de caractère "new line" s'afficher dans le texte sous ses yeux
  
-To check your translation against gettext's requirements you could run following command+En outre, vous devrez vous conformer aux exigences suivantes de gettext pour qu'il fonctionne
-  msgfmt -c <name of the PO file>+  * 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). 
 +  *  Le texte traduit doit comporter un caractère de passage à la ligne (ou "saut de ligne" représenté par '\n') au début ou à la fin, exactement comme dans le texte d'origine. S'il n'y a pas le caractère '\n' dans le texte d'origine, alors il ne doit pas être dans la traduction, non plus. 
 +  * Le caractère barre oblique inverse “\” n'est pas autorisé dans la traduction.
  
-==== Warning  about translation of man pages ====+Pour vérifier que votre traduction satisfait aux exigences de gettext vous pourrez appeler cette commande : 
 +  msgfmt -c <nom du fichier PO> 
 +==== 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 359: 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 ()