po-debconf

Autres langues

Langue: fr

Autres versions - même langue

Version: 2008-10-24 (ubuntu - 07/07/09)

Section: 7 (Divers)

NOM

po-debconf - Introduction

DESCRIPTION

L'objectif de « debconf » etait de rendre la configuration de paquets conviviale. Afin d'arriver a ce but, il est important de s'assurer que les utilisateurs lisent les questions dans leur propre langue. Les traducteurs ont besoin d'une infrastructure qui leur permette de travailler facilement sur des traductions sans avoir besoin de suivre a la trace le developpement du programme ; « po-debconf » a ete concu pour travailler avec les outils habituels de « gettext » pour traduire les questionnaires debconf.

AJOUTER LA GESTION I18N POUR LES QUESTIONNAIRES DEBCONF

Si vous utilisez debconf avec votre paquet, vous avez ecrit un fichier questionnaire en anglais. Pour ajouter la gestion i18n a votre paquet, vous devez :
- creer le fichier debian/po/POTFILES.in
Ce fichier contient la liste des questionnaires maitres, qui n'est souvent compose que d'une seule ligne :
   [type: gettext/rfc822deb] templates
 
 

Les chemins sont relatifs au repertoire parent.

- ajouter un caractere souligne "_E" devant les champs traduisibles.
Normalement, les champs « Description », « Choices » et parfois « Default » peuvent etre traduits.
- executer debconf-updatepo
Ceci creera le fichier debian/po/templates.pot que les traducteurs traduiront dans leur langue.
- ajouter une dependance de construction sur "po-debconf" dans debian/control
 

METTRE A JOUR DES MODELES

Afin d'aider les traducteurs, vous devez faire en sorte que les fichiers PO soient constamment a jour, sinon ils risquent de traduire des chaines qui ne sont plus utilisees. Pour cela, appelez simplement la commande suivante sans argument :
   $ debconf-updatepo
 
 

Cette commande doit etre executee a chaque changement dans les chaines en anglais, mais aussi lorsque vous recevez de nouvelles traductions ou des mises a jour, car le traducteur peut avoir traduit un fichier PO obsolete.

Si vous renommez, ajoutez ou supprimez des fichiers questionnaires, pensez aussi a modifier le fichier debian/po/POTFILES.in en consequence, sinon les chaines de ces fichiers n'apparaitront pas dans les fichiers PO et seront affichees en anglais, alors que le fichier PO peut etre completement traduit.

Le programme debconf-updatepo ne modifie les fichiers PO que si leur contenu a ete altere. Ainsi, la meilleure solution pour fournir des fichiers PO a jour consiste a executer cette commande depuis la regle « clean » du fichier debian/rules.

Il est important de savoir que debconf-updatepo doit etre execute meme si vous utilisez la commande dh_installdebconf. Celle-ci execute po2debconf qui, auparavant, appelait debconf-updatepo si des fichiers obsoletes etaient detectes, mais ce n'est plus le cas parce que ce n'etait pas une solution satisfaisante pour au moins deux raisons :

1.
po2debconf utilisait la date des fichiers enregistres sur le disque pour detecter les fichiers obsoletes, ce qui n'est pas fiable si on utilise « pbuilder » ou si une traduction obsolete a ete enregistree sur le disque apres modification de l'original ;
2.
dh_installdebconf est execute bien apres que le fichier « .diff.gz » a ete ecrit ;

FUSIONNER DES TRADUCTIONS ET L'ORIGINAL

Vous devez vous assurer que, lors de la compilation de votre paquet, les traductions sont placees dans le paquet construit. Vous pouvez le faire vous-meme, ou automatiquement en utilisant le script dh_installdebconf (assurez-vous d'avoir une dependance de construction avec un numero de version sur « debhelper (>= 4.1.16) »).

Pour le faire vous-meme, vous devez fusionner le questionnaire et les traductions lors de la compilation (et avoir une dependance de construction sur « po-debconf ») de cette maniere :

   $ po2debconf debian/templates > debian/tmp/DEBIAN/templates
 
 

ATTENTION : Les deux fichiers appeles templates ne sont pas les memes du tout. Le premier ne contient que le texte en anglais, avec des marques pour indiquer les champs a traduire, alors que le second contient toutes les traductions. Cela signifie que vous NE POUVEZ PAS conserver uniquement les questionnaires fusionnes, ou alors vous ne pourrez plus gerer les traductions qui vous seront soumises.

NOUVEAUX MODELES MAITRES

Le nouveau format source de fichier de questionnaires est pratiquement identique a celui des fichiers de questionnaires distribues, seul un souligne est ajoute devant les champs a traduire. Par exemple :
   Template: debconf/frontend
   Type: select
   _Choices: Dialog, Readline, Gnome, Editor, Noninteractive
   Default: Dialog
   _Description: Interface to use for configuring packages:
    Packages that use debconf for configuration share a common look and
    feel.  You can select the type of user interface they use.
    .
    The dialog frontend is a full-screen, character based interface,
    while the readline frontend uses a more traditional plain text
    interface, and the gnome frontend is a modern X interface.  The
    editor frontend lets you configure things using your favorite text
    editor. The noninteractive frontend never asks you any questions.
 
 

DECOUPER LA LISTE DES CHOIX

A partir de la version 0.6.0 de « po-debconf », les champs a traduire peuvent contenir deux soulignes. Dans ce cas, le champ est suppose contenir une liste de valeurs separees par des virgules, elles seront placees dans des champs msgid differents. Ainsi si l'exemple precedent contenait :

   __Choices: Dialog, Readline, Gnome, Editor, Noninteractive
 
 

cinq champs msgid differents auraient ete crees. Veuillez noter que les espaces apres les virgules ne sont pas pris en compte.

En fait, lorsqu'une liste de choix ne change jamais, « _Choices » convient. Dans le cas contraire, « __Choices » facilite la vie du traducteur.

Malheureusement si vous decidez de basculer entre ces deux formes, toutes les traductions sont marquees « fuzzy ». C'est une justification pour effectuer ce changement sans perdre de traduction (ceci requiere « po-debconf » >= 1.0). Supposez que vous voulez basculer l'exemple precedent vers « __Choices ». Vous copiez le fichier templates dans un fichier temporaire :

   $ cp debian/templates debian/foo
 
 

Editez debian/foo et ne garder seulement que les champs « Template », « Type » et « _Choices » de cet exemple :

   Template: debconf/frontend
   Type: select
   _Choices: Dialog, Readline, Gnome, Kde, Editor, Noninteractive
 
 

Executez debconf-gettextize avec les options « --merge » et « --choices » pour construire les fichiers PO :

   $ debconf-gettextize --merge --choices debian/foo
 
 

Ensuite vous devez supprimer foo et editer vous-meme debian/templates pour modifier « _Choices » en « __Choices » avant d'executer debconf-updatepo.

AJOUTER DES COMMENTAIRES POUR LES TRADUCTEURS

Les responsables de « dpkg » ont decide que, par convention, les lignes dans les fichiers debian/control qui commencent par un symbole diese sont des commentaires et « po-debconf » suit cette regle. Depuis « po-debconf » 0.8.0, de tels commentaires sont automatiquement ecrits dans les fichiers PO et peuvent donc contenir des informations qui interessent les traducteurs. Heureuse coi.ncidence, toutes les versions precedentes de « po-debconf » ignorent les lignes ne contenant pas de symbole deux-points ; si vos commentaires ne contiennent pas ce symbole, ce n'est donc pas la peine d'ajouter une dependance de construction sur une version recente de « po-debconf ». Voici un exemple d'utilisation :

   Template: debconf/button-yes
   Type: text
   # Translators, this text will appear on a button, so KEEP IT SHORT
   _Description: Yes
 
 

Des commentaires speciaux ont ete introduits dans « po-debconf » 1.0 pour traiter les chaines de caracteres composees de plusieurs choix (les champs Choices) ou paragraphes (les champs Description). Avec ces directives, les developpeurs ont un meilleur controle sur ce qui est expose aux traducteurs. Les directives sont de la forme « #flag:directive » ; elles sont detaillees ci-dessous :

translate:spec, translate!:spec
Ne marquez que quelques elements comme traduisibles ; spec est une liste de nombres separes par des virgules, elle indique quelles chaines seront imprimees dans le fichier PO. Des intervalles peuvent aussi etre definis avec un signe moins (par exemple, « 2-6 ») et une etoile (« * ») signifie toutes les chaines. Par exemple, avec :
   Template: partman-basicfilesystems/fat_mountpoint
   Type: select
   #flag:translate:3,4
   __Choices: /dos, /windows, Enter manually, Do not mount it
   _Description: Mount point for this partition:
 
 

« Enter manually » et « Do not mount it » apparaitront dans les fichiers PO mais pas « /dos » et « /windows ». Quand un point d'exclamation suit le mot cle translate, spec indique quelles chaines seront ecartees des fichiers PO, toutes les autres chaines etant enregistrees. L'exemple precedent est identique a :

   Template: partman-basicfilesystems/fat_mountpoint
   Type: select
   #flag:translate!:1,2
   __Choices: /dos, /windows, Enter manually, Do not mount it
   _Description: Mount point for this partition:
 
 

Le meme mot cle peut etre aussi applique au champ Description pour etre sur que certaines chaines ne seront pas traduites.

   Template: partman-crypto/options_missing
   Type: error
   #flag:translate!:3
   _Description: Required encryption options missing
    The encryption options for ${DEVICE} are incomplete. Please
    return to the partition menu and select all required options.
    .
    ${ITEMS}
 
 

Mais ceci est hasardeux car le contexte peut etre perdu depuis les fichiers PO. Ajoutez des commentaires dans ce cas pour ne pas induire le traducteur en erreur.

comment:spec, comment!:spec
Ce commentaire juste en-dessous de cette directive s'applique aux chaines indiquees par spec qui est defini au-dessus. Par defaut, un commentaire ecrit avant un champ traduisible est affiche pour toutes les chaines appartenant a ce champ. (Note : avec « po-debconf » < 1.0, le commentaire n'est ecrit qu'avec la premiere chaine.)
   Template: arcboot-installer/prom-variables
   Type: note
   # Translators, the 4th string of this description has been dropped
   # from PO files.  It contains shell commands and should not be
   # translated.
   #flag:comment:3
   # "Stop for Maintenance" should be left in English
   #flag:translate!:4
   _Description: Setting PROM variables for Arcboot
    If this is the first Linux installation on this machine, or if the
    hard drives have been repartitioned, some variables need to be set
    in the PROM before the system is able to boot normally.
    .
    At the end of this installation stage, the system will reboot.
    After this, enter the command monitor from the "Stop for
    Maintenance" option, and enter the following commands:
    .
       setenv OSLoader arcboot
       setenv OSLoadFilename Linux
    .
    You will only need to do this once.  Afterwards, enter the "boot"
    command or reboot the system to proceed to the next stage of the
    installation.
 
 

L'exemple ci-dessus possede un commentaire sans directive « #flag:comment », pour lequel un commentaire implicite « #flag:comment:* » est ajoute. Ce commentaire apparait avec toutes les chaines, mais celui a propos de « Stop for Maintenance » est affiche seulement avant la chaine appropriee.

partial
Ce mot cle signifie a po2debconf de garder les chaines traduites meme si elles ne sont pas toutes traduites. Utilisez ceci avec prudence, ce mot cle a ete introduit pour des cas tres particuliers.

AVERTIR LES TRADUCTEURS AVANT LA MISE A JOUR

Habituellement les traducteurs s'informent depuis les pages d'etat des traductions (voyez ci-dessous) que des traductions ne sont pas a jour et envoient un correctif qui sera inclus dans une future mise a jour. Cependant, les developpeurs sont encourages a demander aux responsables de traductions en retard de fournir une mise a jour, par exemple une semaine avant. Un outil specialise, podebconf-report-po, a ete ecrit pour cet usage. N'hesitez pas a en abuser !

AVERTISSEMENTS

La version 1.2.0 de « debconf » reconnait les champs de la forme Nom-langue.codage, par exemple « Description-de.ISO-8859-1 » ou « Choices-ru.KOI8-R ». Par defaut, po2debconf cree les fichiers de questionnaire avec ce nouveau format. Les versions plus anciennes de « debconf » ignorent ces champs et affichent le texte en anglais. Consultez po2debconf(1) pour savoir comment modifier le codage et le format de sortie.
Une chaine donnee en anglais ne peut avoir qu'une unique traduction par langue. Il est impossible de fournir deux traductions differentes en fonction du contexte. Pour resoudre ce probleme, vous pouvez ajouter des balises speciales aux differentes occurrences d'une chaine pour les rendre distinctes (ces balises ne seront visibles que des traducteurs et seront supprimees de la chaine avant l'affichage a l'utilisateur).

De telles balises doivent etre ajoutees a la fin des chaines a traduire, elles doivent commencer par « [  » (un crochet ouvrant suivi d'une espace) et se terminer par « ] » (un crochet fermant) et peuvent contenir tout caractere hormis des crochets et des retours a la ligne. Par exemple « [ blabla] » est une balise valable alors que « [ bla[bla]bla] » ne l'est pas. Pour les mordus de Perl, les balises correspondent a (et sont supprimees avec) cette regle :

   $msg =~ s/\[\s[^\[\]]*\]$//s;
 
 
L'espacement n'est pas gere exactement de la meme facon par « po-debconf » et « debconf-utils » ; avec ce dernier, les paragraphes sont reformates lors de la mise a jour et de la fusion des traductions, « debconf-utils » est donc tres elegant et les espaces ne sont pas consideres comme faisant partie des chaines lors de la determination des entrees approximatives (c'est-a-dire celles qui requierent l'attention du traducteur suite a une modification des originales).

D'un autre cote, « po-debconf » se repose sur « gettext » pour detecter les entrees approximatives et ne traite pas les espaces comme des caracteres particuliers. Ainsi les espaces superflus doivent etre supprimes a la fin des lignes des fichiers maitres de questionnaires, sinon ils apparaitront dans les fichiers PO et POT.

Pour la meme raison, debconf-gettextize peut marquer un texte comme approximatif a cause de differences dans les caracteres espaces et les traducteurs devront modifier eux-memes de telles chaines. Cela ne survient qu'une seule fois lors de la conversion des questionnaires au format « po-debconf », a moins que vous ne modifiez aleatoirement les espaces dans les fichiers maitres de questionnaires, ce qui generait les traducteurs.

Normalement, le champ Default: ne doit pas etre traduit pour les types de questionnaires Select et Multiselect. Dans de rares circonstances (par exemple lors du choix de la langue par defaut pour une application) une valeur regionale peut etre plus appropriee.

La valeur fournie par le traducteur ne doit pas etre une simple traduction, mais doit au contraire etre choisie parmi les valeurs en anglais listees dans le champ Choices. Le meilleur moyen de l'indiquer est d'ajouter un commentaire dans le fichier de questionnaire, qui sera recopie dans le fichier PO.

   Template: geneweb/lang
   Type: select
   __Choices: Danish (da), Dutch (nl), English (en), Esperanto (eo)
   #  You must NOT translate this string, but you can change its value.
   #  The comment between brackets is used to distinguish this msgid
   #  from the one in the Choices list; you do not have to worry about
   #  them, and have to simply choose a msgstr among the English values
   #  listed in the Choices field above, e.g. msgstr "Dutch (nl)"
   _Default: English (en)[ default language]
   _Description: Geneweb default language
 
 

La valeur par defaut apparait aussi dans le champ Choices et les deux ont des traductions differentes. Dans le premier cas, il s'agit d'une autre valeur en anglais choisie parmi la liste des valeurs possibles du champ Choices, alors que pour le second cas il s'agit d'une traduction classique. Comme « gettext » ne permet pas d'avoir deux traductions differentes du meme texte, les deux champs msgid doivent etre differencies, ce qui est exactement le but original de l'utilisation des commentaires entre crochets, comme explique precedemment.

Avant « po-debconf » 0.8.0, ces commentaires etaient inconnus et les responsables de paquets devaient remplacer le champ _Default: par _DefaultChoice: afin d'indiquer aux traducteurs le caractere special de ce champ :

   #. DefaultChoice
   msgid ""
   "English[ default: do not translate bracketed material, put your "
   "own language here but UNTRANSLATED.  If it is not in the list, "
   "put English (without bracketed material)]"
   msgstr ""
   "French"
 
 

Les commentaires dans les fichiers de questionnaires permettent d'eviter plus facilement les erreurs des traducteurs et sont encourages.

PAGES WEB SUR L'ETAT DES TRADUCTIONS

Les statistiques des traductions « po-debconf » sont disponibles sur <http://www.debian.org/intl/l10n/po-debconf/> (ou sur l'un des miroirs) ; ils sont automatiquement mis a jour lorsqu'un paquet est mis a jour. Seuls les paquets contenant des fichiers debian/po/templates.pot et debian/po/POTFILES.in sont pris en compte, vous devriez donc vous assurer que votre paquet source les fournit.

Les traducteurs peuvent recuperer les fichiers PO et POT depuis cette page, mais ils doivent toujours prendre contact avec le traducteur precedent (son adresse de courriel peut etre trouvee dans le fichier PO) ou les membres de l'equipe de traduction sur debian-l10n-<langue>@lists.debian.org (si une telle liste existe, comme c'est le cas pour le francais avec debian-l10n-french@lists.debian.org), pour verifier que personne n'effectue actuellement le meme travail. Lisez aussi les rapports de bogues sur le paquet que vous etes en train de traduire pour verifier si une traduction n'a pas deja ete soumise.

Apres avoir traduit ces fichiers, ils devraient soumettre leur travail au responsable du paquet par un rapport de bogue de severite wishlist (souhaitable) avec le marqueur patch (rustine).

VOIR AUSSI

debconf-gettextize(1), debconf-updatepo(1), dh_installdebconf(1), podebconf-report-po(1). po2debconf(1).

AUTEURS

   Martin Quinson <Martin.Quinson@ens-lyon.fr>
   Denis Barbier <barbier@linuxfr.org>
 
 

TRADUCTION

   Nicolas Bertolissio <nico.bertol@free.fr>
   Denis Barbier <barbier@linuxfr.org>