Provided by:
po-debconf_0.9.2_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. Un
système (appelé "debconf-utils" dans ce document) avait ainsi été conçu
pour permettre la traduction des questionnaires debconf.
Mais ce système avait quelques inconvénients, et le besoin d’une
nouvelle solution s’est fait sentir. "po-debconf" essaye de résoudre
ces problèmes par l’utilisation des quelques idées qui se sont révélées
utiles dans le contexte de la traduction de messages.
AVANTAGES DE CE SYSTÈME
- Les traductions ne sont pas conservées avec l’original (comme c’était
trop souvent le cas avec l’ancien système), ce qui permet de détecter
les traductions obsolètes.
- Les traductions sont conservées chacune dans un fichier séparé. Cela
signifie que des traducteurs de deux langues différentes peuvent
mettre à jour leur travail en même temps sans difficulté particulière
pour le responsable du paquet. De plus, un traducteur ne peut pas
casser le codage d’autres langues.
- Il est basé de manière interne sur "intltool" (la réponse de GNOME
aux difficultés d’internationalisation), qui est lui-même basé sur
"gettext" (mais "po-debconf" offre une interface très simple vous
dispensant d’en comprendre le fonctionnement interne). Ainsi, il
n’est pas nécessaire de réinventer la roue, et grâce à leur
utilisation répandue, ces outils devraient être plus ou moins exempts
de bogues.
- Rien n’est modifié pour l’utilisateur final (à part le fait que les
traductions sont plus faciles à gérer :). Le fichier de questionnaire
distribué dans le paquet binaire est exactement le même (les
problèmes de codage en moins ;).
- Les traducteurs n’ont pas besoin d’apprendre une nouvelle syntaxe de
fichier et leur éditeur de fichiers po préféré (comme le mode po
d’emacs, kbabel ou gtranslator) fonctionne parfaitement.
En résumé, "po-debconf" est un système qui facilite le travail des
traducteurs et l’insertion de leur travail dans "debconf" sans modifier
ce qui ne devrait pas l’être.
CONVERSION DE VOTRE PAQUET À CE SYSTÈME
Pour convertir vos questionnaires debconf et vos traductions
existantes, appelez debconf-gettextize à partir du répertoire principal
avec en argument les noms des questionnaires maîtres. Par exemple :
$ debconf-gettextize debian/toto.templates debian/tata.templates
Cette commande réalise les tâches suivantes :
- création des fichiers debian/po/xx.po
où xx est le code de la langue dans laquelle le fichier est
traduit ;
- création de debian/po/POTFILES.in
fichier contenant la liste des questionnaires maîtres et utilisé
par debconf-updatepo ;
- ajout du suffixe ".old" aux questionnaires
dans cet exemple, le suffixe ".old" est ajouté aux fichiers
toto.templates et tata.templates, et de nouveaux fichiers maîtres
remplacent ceux-ci (voir ci-dessous).
Afin de terminer la conversion, vous devez :
a. Vérifier que, dans les nouveaux fichiers questionnaires, le nom de
tous les champs à traduire (et seulement ceux-ci) sont préfixés d’un
souligné "_" (voir "Nouveaux questionnaires maîtres" ci-dessous) ;
b. Supprimer les fichiers obsolètes : master.old et les questionnaires
traduits (par exemple templates.xx) ;
c. Ajouter "debhelper (>= 4.1.16)" à Build-Depends ou à Build-Depends-
Indep dans debian/control pour utiliser dh_installdebconf. Si vous
n’utilisez pas "debhelper", votre paquet devrait avoir une
dépendance de construction directement envers "po-debconf" ;
d. Vous assurer que le fichier debian/rules génère le fichier de
questionnaire traduit, soit par dh_installdebconf soit par
po2debconf ;
e. Si des fichiers debian/po/*.po.unknown ont été générés, cela
signifie que le script n’a pas réussi à déterminer automatiquement
le codage des langues correspondantes. Dans ce cas, vous devriez
contacter le traducteur pour résoudre ce problème, ou demander de
l’aide sur debian-i18n@lists.debian.org. Supprimez les suffixes
".unknown" lorsque le codage est corrigé (la plupart du temps, les
étapes b et c ci-dessus sont suffisantes si vous utilisez
dh_installdebconf).
MISE À 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 argument :
$ 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’apparaitront 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 mailleure solution pour fournir des
fichiers PO à jour 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 à son tour va appeler debconf-updatepo si des fichiers
obsolètes sont détectés, mais ce n’est pas une solution satisfaisante
pour au moins trois raisons :
1. po2debconf utilise 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 disque après modification de l’original ;
2. dh_installdebconf est exécuté bien après que le fichier ".diff.gz" a
été écrit ;
3. à cause des points précédents, po2debconf sera modifié dans une
version future et n’exécutera plus debconf-updatepo.
FUSION DES TRADUCTIONS ET DE 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 numéro de
version envers "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 envers "po-debconf") comme ceci :
$ po2debconf debian/templates > debian/templates.merged
Puis, vous devriez installer le fichier résultant au bon endroit :
$ cp debian/templates.merged debian/tmp/DEBIAN/templates
FAITES ATTENTION : Les deux fichiers appelés templates dans ces deux
lignes ne sont pas les mêmes du tout. Le premier ne contient que le
texte en anglais et les marques des champs à traduire, alors que le
second contient toutes les traductions. C’est-à -dire que vous NE POUVEZ
PAS ne conserver que les questionnaires fusionnés, ou alors vous ne
pourrez plus gérer les traductions qui vous seront soumises.
En fait, c’était l’un des principaux inconvénients de l’ancien système
"debconf-utils". Il était vraiment trop tentant pour les développeurs
de ne conserver que le questionnaire fusionné, mais cela empêchait les
traducteurs de garder la trace des modifications en anglais.
Heureusement, comme les deux versions de ces fichiers n’ont pas
exactement la même syntaxe, cette erreur ne sera plus faite.
NOUVEAUX MODÈLES MAÎTRES
Le nouveau format source de fichier de questionnaire est pratiquement
identique à celui des fichiers de questionnaire 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: What interface should be used 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 msgids différents. Ainsi si l’exemple précédent avait
contenu :
__Choices: Dialog, Readline, Gnome, Editor, Noninteractive
cinq msgids différents auraient été créés. Veuillez noter que les
espaces après les virgules ne sont pas significatifs.
En fait, lorsqu’une liste de choix ne change jamais, "_Choices"
convient, dans le cas contraire, "__Choices" facilite la vie du
traducteur.
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". Un exemple
d’utilisation se trouve dans la section suivante.
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 à ce nouveau format. Les versions plus anciennes de
"debconf" ignorent ces champs et affichent le texte en anglais. Voir
po2debconf(1) pour savoir comment modifier le codage et le format de
sortie.
- Une chaîne en anglais donnée 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’un espace) et se terminer par "]" (un crocher fermant), et peuvent
contenir tout caractère hormis des crochets et des retours à la
ligne. Par exemple "[ blabla]" est une balise valide 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 superfétatoires 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 modifiiez 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 (l’exemple est en
français, mais il faut évidemment l’écrire en anglais).
Template: geneweb/lang
Type: select
__Choices: Danish (da), Dutch (nl), English (en), Esperanto (eo)
# Vous NE devez PAS traduire cette chaîne, mais vous pouvez changer
# sa valeur. Les commentaires entre crochets sont utilisés pour
# différencier ce msgid de celui obtenu à partir du champ Choices.
# Vous n’avez pas besoin de vous en préoccuper, et devez simplement
# choisir une des valeurs listées dans le champ Choices ci-dessus,
# par exemple 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 msgids 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[ valeur par défaut : ne traduisez pas la partie entre "
"crochets, indiquez ici votre propre langue SANS la traduire. "
"Si elle n’apparaît pas dans la liste, indiquez English (sans la "
"partie entre crochets)]"
msgstr ""
"French"
Les commentaires dans les fichiers de questionnaire permettent
d’éviter plus facilement les erreurs des traducteurs, et sont
encouragés.
PAGES WEB SUR Lâ€â€™Ã‰TAT DES TRADUCTIONS
Les traducteurs peuvent récupérer les fichiers PO et POT à partir de
<http://www.debian.org/intl/l10n/po-debconf/> (ou de miroirs). Après
avoir traduit ces fichiers, ils devraient soumettre leur travail au
responsable du paquet par un rapport de bogue de sévérité minor
(mineur) avec le marqueur patch (rustine).
La page ci-dessus est mise à jour automatiquement quand de nouveaux
paquets sont téléchargés. 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.
VOIR AUSSI
debconf-gettextize(1), debconf-updatepo(1), debconf2pot(1),
dh_installdebconf(1), po2debconf(1),
AUTEURS
Martin Quinson <Martin.Quinson@ens-lyon.fr>
Denis Barbier <barbier@linuxfr.org>
TRADUCTION
Nicolas Bertolissio <nico.bertol@free.fr>
2005-12-22 PO-DEBCONF(7)