[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 14:19 (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 323: Ligne 322:
 Si possible, vérifiez l'affichage des messages. Vous pourriez le faire en regardant le contexte dans le fichier source correspondant. Mieux encore, activez tout simplement le script traduit.  Si possible, vérifiez l'affichage des messages. Vous pourriez le faire en regardant le contexte dans le fichier source correspondant. Mieux encore, activez tout simplement le script traduit. 
  
-Ceci est particulièrement important si vous traduisez des boîtes de dialogue. In particulartake care not to write too long sentences on one single line if it appears that the text can't flow on next one. +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.
- +
-Bear in mind that in VGA mode (used in text installers, in particular), line'width is limited theoretically to 80 characters, but practically often to 74. +
- +
-Do not add question marks that are not present in the original message.+
  
-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 ()