Provided by: po-debconf_1.0.20_all 

NOM
po-debconf - Introduction
DESCRIPTION
L'objectif de « debconf » était de rendre la configuration de paquets conviviale. Afin d'arriver à 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 à la trace le développement du programme ; « po-debconf » a été
conçu 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 écrit un fichier questionnaire en anglais. Pour
ajouter la gestion i18n à votre paquet, vous devez :
- créer le fichier debian/po/POTFILES.in
Ce fichier contient la liste des questionnaires maîtres, qui n'est souvent composé que d'une seule
ligne :
[type: gettext/rfc822deb] templates
Les chemins sont relatifs au répertoire parent.
- ajouter un caractère souligné devant les champs traduisibles dans chaque questionnaire.
Normalement, les champs « Description », « Choices » et parfois « Default » peuvent être traduits.
- exécuter debconf-updatepo
Ceci créera le fichier debian/po/templates.pot que les traducteurs traduiront dans leur langue.
- ajouter une dépendance de construction sur "po-debconf" dans debian/control
METTRE À JOUR DES MODÈLES
Afin d'aider les traducteurs, vous devez faire en sorte que les fichiers PO soient constamment à jour,
sinon ils risquent de traduire des chaînes qui ne sont plus utilisées. Pour cela, appelez simplement la
commande suivante sans paramètre :
$ debconf-updatepo
Cette commande doit être exécutée à chaque changement dans les chaînes en anglais, mais aussi lorsque
vous recevez de nouvelles traductions ou des mises à jour, car le traducteur peut avoir traduit un
fichier PO obsolète.
Si vous renommez, ajoutez ou supprimez des fichiers questionnaires, pensez aussi à modifier le fichier
debian/po/POTFILES.in en conséquence, sinon les chaînes de ces fichiers n'apparaîtront pas dans les
fichiers PO et seront affichées en anglais, alors que le fichier PO peut être complètement traduit.
Le programme debconf-updatepo ne modifie les fichiers PO que si leur contenu a été altéré. Ainsi, la
meilleure solution pour fournir des fichiers PO à jour dans un paquet source consiste à exécuter cette
commande depuis la règle « clean » du fichier debian/rules.
Il est important de savoir que debconf-updatepo doit être exécuté même si vous utilisez la commande
dh_installdebconf. Celle-ci exécute po2debconf qui, auparavant, appelait debconf-updatepo si des fichiers
obsolètes étaient détectés, mais ce n'est plus le cas parce que ce n'était pas une solution satisfaisante
pour au moins deux raisons :
1. po2debconf utilisait la date des fichiers enregistrés sur le disque pour détecter les fichiers
obsolètes, ce qui n'est pas fiable si on utilise « pbuilder » ou si une traduction obsolète a été
enregistrée sur le disque après modification de l'original ;
2. dh_installdebconf est exécuté bien après que le fichier « .diff.gz » a été écrit ;
FUSIONNER DES TRADUCTIONS ET L'ORIGINAL
Vous devez vous assurer que, lors de la compilation de votre paquet, les traductions sont placées dans le
paquet construit. Vous pouvez le faire vous-même, ou automatiquement en utilisant le script
dh_installdebconf (assurez-vous d'avoir une dépendance de construction avec un numéro de version sur
« debhelper (>= 4.1.16) »).
Pour le faire vous-même, vous devez fusionner le questionnaire et les traductions lors de la compilation
(et avoir une dépendance de construction sur « po-debconf ») de cette manière :
$ po2debconf debian/templates > debian/tmp/DEBIAN/templates
ATTENTION : Les deux fichiers appelés templates ne sont pas les mêmes du tout. Le premier ne contient que
le texte en anglais, avec des marques pour indiquer les champs à traduire, alors que le second contient
toutes les traductions. Cela signifie que vous NE POUVEZ PAS conserver uniquement les questionnaires
fusionnés, ou alors vous ne pourrez plus gérer les traductions qui vous seront soumises.
NOUVEAUX MODÈLES MAÎTRES
Le nouveau format source de fichier de questionnaires est pratiquement identique à celui des fichiers de
questionnaires distribués, seul un souligné est ajouté devant les champs à 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.
DÉCOUPER LA LISTE DES CHOIX
À partir de la version 0.6.0 de « po-debconf », les champs à traduire peuvent contenir deux soulignés.
Dans ce cas, le champ est supposé contenir une liste de valeurs séparées par des virgules, elles seront
placées dans des champs msgid différents. Ainsi si l'exemple précédent contenait :
__Choices: Dialog, Readline, Gnome, Editor, Noninteractive
cinq champs msgid différents auraient été créés. Veuillez noter que les espaces après les virgules ne
sont pas pris en compte.
Lorsqu'une liste de choix ne change jamais, « _Choices » peut être considéré comme adapté. Cependant,
l'éclatement de ces listes permet d'éviter des erreurs fréquentes dans les traductions, notamment l'oubli
d'un choix et l'utilisation de virgules non standard. Pour ces raisons, l'utilisation de « __Choices »
facilitera le travail des traducteurs et est fortement recommandée.
Malheureusement si vous décidez de basculer entre ces deux formes, toutes les traductions sont marquées
« fuzzy ». C'est une justification pour effectuer ce changement sans perdre de traduction (ceci requiert
« po-debconf » >= 1.0). Supposez que vous voulez basculer l'exemple précédent vers « __Choices ». Vous
copiez le fichier templates dans un fichier temporaire :
$ cp debian/templates debian/foo
Éditez 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
Exécutez 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 éditer vous-même debian/templates pour modifier « _Choices » en
« __Choices » avant d'exécuter debconf-updatepo.
AJOUTER DES COMMENTAIRES POUR LES TRADUCTEURS
Les responsables de « dpkg » ont décidé que, par convention, les lignes dans les fichiers debian/control
qui commencent par un symbole dièse sont des commentaires et « po-debconf » suit cette règle. Depuis
« po-debconf » 0.8.0, de tels commentaires sont automatiquement écrits dans les fichiers PO et peuvent
donc contenir des informations qui intéressent les traducteurs. Heureuse coïncidence, toutes les versions
précédentes 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 dépendance de
construction sur une version récente 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 spéciaux ont été introduits dans « po-debconf » 1.0 pour traiter les chaînes de
caractères composées de plusieurs choix (les champs Choices) ou paragraphes (les champs Description).
Avec ces directives, les développeurs ont un meilleur contrôle sur ce qui est exposé aux traducteurs. Les
directives sont de la forme « #flag:directive » ; elles sont détaillées ci-dessous :
translate:spec, translate!:spec
Ne marquez que quelques éléments comme traduisibles ; spec est une liste de nombres séparés par des
virgules, elle indique quelles chaînes seront imprimées dans le fichier PO. Des intervalles peuvent
aussi être définis avec un signe moins (par exemple, « 2-6 ») et une étoile (« * ») signifie toutes
les chaînes. 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 » apparaîtront dans les fichiers PO mais pas « /dos » et
« /windows ». Quand un point d'exclamation suit le mot clé translate, spec indique quelles chaînes
seront écartées des fichiers PO, toutes les autres chaînes étant enregistrées. L'exemple précédent est
identique à :
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 même mot clé peut être aussi appliqué au champ Description pour être sûr que certaines chaînes 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 être 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 chaînes indiquées par spec qui est
défini au-dessus. Par défaut, un commentaire écrit avant un champ traduisible est affiché pour toutes
les chaînes appartenant à ce champ. (Note : avec « po-debconf » < 1.0, le commentaire n'est écrit
qu'avec la première chaîne.)
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 possède un commentaire sans directive « #flag:comment », pour lequel un
commentaire implicite « #flag:comment:* » est ajouté. Ce commentaire apparaît avec toutes les chaînes,
mais celui à propos de « Stop for Maintenance » est affiché seulement avant la chaîne appropriée.
partial
Ce mot clé signifie à po2debconf de garder les chaînes traduites même si elles ne sont pas toutes
traduites. Utilisez ceci avec prudence, ce mot clé a été introduit pour des cas très particuliers.
AVERTIR LES TRADUCTEURS AVANT LA MISE À JOUR
Habituellement les traducteurs s'informent depuis les pages d'état des traductions (voyez ci-dessous) que
des traductions ne sont pas à jour et envoient un correctif qui sera inclus dans une future mise à jour.
Cependant, les développeurs sont encouragés à demander aux responsables de traductions en retard de
fournir une mise à jour, par exemple une semaine avant. Un outil spécialisé, podebconf-report-po, a été
écrit pour cet usage. N'hésitez pas à en abuser !
DÉBOGAGE
Vous remarquerez que debconf-loadtemplate n'accepte pas de fichier de traduction comportant des marques
d'internationalisation. Cependant un fichier fusionné sera accepté, donc si vous avez débogué votre
configuration debconf de la façon suivante
rm /tmp/{config,templates}.dat{,-old}
debconf-loadtemplate debian/templates
DEBIAN_PRIORITY=low debconf -freadline debian/config configure 28.0
Vous aurez besoin de quelque chose comme cela à la place :
po2debconf debian/templates > debian/tmp/DEBIAN/templates
rm /tmp/{config,templates}.dat{,-old}
debconf-loadtemplate debian/tmp/DEBIAN/templates
DEBIAN_PRIORITY=low debconf -freadline debian/config configure 28.0
AVERTISSEMENTS
• La version 1.2.0 de « debconf » reconnaît les champs de la forme Nom-langue.codage, par exemple
« Description-de.ISO-8859-1 » ou « Choices-ru.KOI8-R ». Par défaut, po2debconf crée 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 chaîne donnée en anglais ne peut avoir qu'une unique traduction par langue. Il est impossible de
fournir deux traductions différentes en fonction du contexte. Pour résoudre ce problème, vous pouvez
ajouter des balises spéciales aux différentes occurrences d'une chaîne pour les rendre distinctes (ces
balises ne seront visibles que des traducteurs et seront supprimées de la chaîne avant l'affichage à
l'utilisateur).
De telles balises doivent être ajoutées à la fin des chaînes à traduire, elles doivent commencer par
« [ » (un crochet ouvrant suivi d'une espace) et se terminer par « ] » (un crochet fermant) et peuvent
contenir tout caractère hormis des crochets et des retours à 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 à (et sont supprimées avec) cette règle :
$msg =~ s/\[\s[^\[\]]*\]$//s;
• L'espacement n'est pas géré exactement de la même façon par « po-debconf » et « debconf-utils » ; avec
ce dernier, les paragraphes sont reformatés lors de la mise à jour et de la fusion des traductions,
« debconf-utils » est donc très élégant et les espaces ne sont pas considérés comme faisant partie des
chaînes lors de la détermination des entrées approximatives (c'est-à-dire celles qui requièrent
l'attention du traducteur suite à une modification des originales).
D'un autre côté, « po-debconf » se repose sur « gettext » pour détecter les entrées approximatives et
ne traite pas les espaces comme des caractères particuliers. Ainsi les espaces superflus doivent être
supprimés à la fin des lignes des fichiers maîtres de questionnaires, sinon ils apparaîtront dans les
fichiers PO et POT.
Pour la même raison, debconf-gettextize peut marquer un texte comme approximatif à cause de différences
dans les caractères espaces et les traducteurs devront modifier eux-mêmes de telles chaînes. Cela ne
survient qu'une seule fois lors de la conversion des questionnaires au format « po-debconf », à moins
que vous ne modifiez aléatoirement les espaces dans les fichiers maîtres de questionnaires, ce qui
gênerait les traducteurs.
• Normalement, le champ Default: ne doit pas être traduit pour les types de questionnaires Select et
Multiselect. Dans de rares circonstances (par exemple lors du choix de la langue par défaut pour une
application) une valeur régionale peut être plus appropriée.
La valeur fournie par le traducteur ne doit pas être une simple traduction, mais doit au contraire être
choisie parmi les valeurs en anglais listées dans le champ Choices. Le meilleur moyen de l'indiquer est
d'ajouter un commentaire dans le fichier de questionnaire, qui sera recopié 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 défaut apparaît aussi dans le champ Choices et les deux ont des traductions différentes.
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 différentes du même texte, les deux champs msgid
doivent être différenciés, ce qui est exactement le but original de l'utilisation des commentaires
entre crochets, comme expliqué précédemment.
Avant « po-debconf » 0.8.0, ces commentaires étaient inconnus et les responsables de paquets devaient
remplacer le champ _Default: par _DefaultChoice: afin d'indiquer aux traducteurs le caractère spécial
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'éviter plus facilement les erreurs
des traducteurs et sont encouragés.
PAGES WEB SUR L'ÉTAT 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 à
jour lorsqu'un paquet est mis à 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 récupérer les fichiers PO et POT depuis cette page, mais ils doivent toujours
prendre contact avec le traducteur précédent (son adresse de courriel peut être trouvée dans le fichier
PO) ou les membres de l'équipe de traduction sur debian-l10n-<langue>@lists.debian.org (si une telle
liste existe, comme c'est le cas pour le français avec debian-l10n-french@lists.debian.org), pour
vérifier que personne n'effectue actuellement le même travail. Lisez aussi les rapports de bogues sur le
paquet que vous êtes en train de traduire pour vérifier si une traduction n'a pas déjà été soumise.
Après avoir traduit ces fichiers, ils devraient soumettre leur travail au responsable du paquet par un
rapport de bogue de sévérité wishlist (souhaitable) avec le marqueur patch (rustine).
VOIR AUSSI
debconf-gettextize(1), debconf-updatepo(1), dh_installdebconf(1), podebconf-report-po(1), po2debconf(1),
debconf-devel(7).
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>
2016-10-01 PO-DEBCONF(7)