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.
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/
<
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>