Available in

(7) (7)/de (7)/fr (7)/pt (7)/ru (7)/vi

Contents

NOM

po-debconf − Introduction

DESCRIPTION

The goal of « debconf » was to make package configuration user-friendly. In order to achieve this, it is important to ensure that users will get the question in their own language. Translators need a framework to easily work on translations without having to track package development; « po−debconf » was designed to be able to work with standard « gettext » tools when translating debconf templates files.

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.

− Prepend an underscore before translatable fields in each template

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

In order to help translators, PO files in your package should always be up-to-date, otherwise they may waste their time translating unused strings. For that, simply call the following command without arguments:

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

The debconf-updatepo program is idempotent, it modifies PO files only if their content has been updated. Thus the best way to provide up-to-date PO files in your source package is to call this command from the « clean » target of the debian/rules file.

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
Since « po−debconf » 0.6.0, localized fields may contain two leading underscores. In this case, the field value is supposed to be a comma separated list of values, which are put in separate msgids. Thus if the previous example did contain

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

When a choices list never changes, « _Choices » may be considered fine. However, splitting such lists may help avoiding frequent mistakes in translations such as omitting a choice or using non-standard commas. For such reasons, the use of « __Choices » will ease translator’s life and is strongly recommended.

Unfortunately if you decide to switch from « _Choices » to « __Choices », all translations become fuzzy. Here is an explanation to make this change without translation loss (it requires « po−debconf » >= 1.0). Suppose that we want to switch the previous example to « __Choices ». You copy the templates file into a temporary file.

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

PUTTING IN COMMENTS FOR TRANSLATORS
« Dpkg »
maintainers decided that by convention lines beginning with a number sign (« # ») are comments in debian/control files, and « po−debconf » follows this rule. Since « po−debconf » 0.8.0, such comments are written into PO files, and can then contain valuable information for translators. Incidentally all previous « po−debconf » versions ignore lines which do not contain a colon, thus if your comments does not contain any colons, there is no need to add a versioned build dependency against « po−debconf ». Here is an example:

  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 !

DEBUGGING

You will find that debconf-loadtemplate will not accept a templates file with i18n markups. However, it will accept a merged file, so if you have been debugging your debconf setup like this

  rm /tmp/{config,templates}.dat{,−old}
  debconf−loadtemplate debian/templates
  DEBIAN_PRIORITY=low debconf −freadline debian/config configure 28.0

you will now need something like this instead:

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

A given English string may be given only one unique translation in a given language. It is impossible to give two different translations, depending on the context. To solve this issue, you have to add special markups to the different occurrences of a given string to make them different. (These markers will only be visible to translators, and they will be removed from the string before being displayed to user)

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 [AT] lists.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 [AT] linuxfr.org>

TRADUCTION

  Nicolas Bertolissio <nico.bertol [AT] free.fr>
  Denis Barbier <barbier [AT] linuxfr.org>

COMMENTS

blog comments powered by Disqus