Provided by: po4a_0.52-1_all 

NOM
po4a-runtime - po4a et traduction gettext des messages affichés pendant l'exécution sans Autotools
Introduction
Avec po4a-build, po4a peut aussi prendre en charge la traduction des messages de sortie des scripts à
l'aide de gettext. Pour cela, il n'est pas nécessaire que le programme utilise les Autotools et le
processus ./configure habituel.
En utilisant les extraits de Makefile en exemple, les paquets peuvent exploiter intltool avec un minimum
d'efforts.
Format
La traduction de la documentation ne devrait jamais utiliser le même répertoire po/ que la traduction des
messages affichés pendant l'exécution. Même si la traduction des messages affichés pendant l'exécution
peut utiliser des répertoires ne s'appelant pas po/, il est généralement plus facile de respecter la
convention.
Multiples langages
Juste un mot sur les paquets qui utilisent des scripts écrits dans plusieurs langages de programmation,
Perl et shell par exemple. Prenez garde : gettext sera perturbé et oubliera des chaînes d'un langage ou
d'un autre sauf si les extensions de fichier sont utilisées pour le langage qui pose le moins de
problèmes.
Lors de l'utilisation de plusieurs langages, faites des essais avec différents réglages de po/Makevars
jusqu'à avoir toutes les chaînes nécessaires dans le fichier POT.
En particulier, indiquer deux langages dans po/Makevars peut être problématique. Plutôt que :
# Ne faites pas ça :
XGETTEXT_OPTIONS = -L Perl -L Shell --from-code=iso-8859-1
Envisagez de renommer (ou de mettre en place des liens symboliques pour) tous les fichiers de l'un des
langages impliqués et évitez les options -L explicites. L'extension de fichier n'est nécessaire que
pendant le traitement de po/POTFILES.in.
L'option --keywords peut également être utile, voir la documentation de xgettext(1).
Remplissage de po/
D'abord, créez le répertoire po/ de plus haut niveau puis utilisez les fichiers exemples de
/usr/share/doc/po4a/examples/ pour le remplir.
LINGUAS
Doit exister, même vide. C'est une liste des traductions, chaque ligne qui ne commence pas par « # »
doit correspondre à un fichier PO existant. Par exemple, si LINGUAS contient seulement une ligne
« fr », un fichier fr.po doit exister à côté du fichier LINGUAS.
$ cat po/LINGUAS
cs
de
fr
$
Par convention, le fichier LINGUAS est ordonné alphabétiquement, mais ce n'est pas automatiquement
fait.
POTFILES.in
La liste des fichiers contenant des messages affichés pendant l'exécution à traduire, c'est-à-dire
les scripts. Si le répertoire po/ de plus haut niveau est utilisé, les chemins devraient être
relatifs au répertoire de plus haut niveau, pas au répertoire po/ lui-même.
$ ls -l
monscript.pl
unautre.pl
truc/gestion.pl
po/
po/POTFILES.in
$ cat po/POTFILES.in
monscript.pl
unautre.pl
truc/gestion.pl
$
Remarquez que les scripts eux-mêmes peuvent contenir des messages affichés pendant l'exécution et de
la documentation, tous deux à traduire ; par exemple, ils peuvent utiliser les fonctions de gettext
pour les messages affichés pendant l'exécution et des contenus POD embarqués pour la documentation.
Donc ça ne pose pas de problème d'avoir le même fichier à la fois dans po/POTFILES.in et
doc/po4a-build.conf.
Makevars-perl.example
Si les scripts sont écrits en Perl, copiez ce fichier exemple vers po/Makevars et modifiez-le selon
vos besoins.
Makevars-shell.example
Si les scripts sont écrits en shell, copiez ce fichier exemple vers po/Makevars et modifiez-le selon
vos besoins.
po4a-build.make
Copiez ce fichier exemple vers po/Makefile, il ne devrait pas être nécessaire de le modifier, mais
vous pouvez vouloir le garder à jour par rapport à /usr/share/doc/po4a/examples/po4a-build.make.
Celui-ci peut être mis à jour au sein de po4a en fonction des modifications de la prise en charge
sous-jacente d'intltool. Le fichier lui-même a été créé à partir d'un autre projet utilisant les
Autotools et intltool.
Construction
Ces extraits doivent être ajoutés au Makefile de plus haut niveau ou à tout fichier nécessaire en
fonction de la méthode utilisée pour préparer les sources du programme pour sa distribution.
clean:
$(MAKE) -C po/ clean
install:
$(MAKE) -C po/ install DESTDIR=$(DESTDIR)
dist:
$(MAKE) -C po/ pot
(Dans un projet utilisant les Autotools, l'ajout aurait été automatique après avoir simplement ajouté po
à la valeur "SUBDIRS" de Makefile.am.)
Maintenance
La traduction des messages affichés pendant l'exécution n'est pas aussi simple que po4a-build car l'ajout
d'une nouvelle traduction nécessite de modifier po/LINGUAS, mais à part cela, la mise à jour des
traductions se réduit simplement au remplacement du fichier PO correspondant par sa nouvelle version.
En fonction de la façon de préparer l'archive source, il peut être nécessaire d'indiquer la liste des
nouveaux fichiers PO au fichier MANIFEST ou les ajouter aux scripts qui s'occupent de préparer l'archive
source (cette remarque s'applique aussi à po4a-build).
Tous les fichiers *.mo ou *.gmo du répertoire po/ peuvent être effacés.
Copyright
Même si les fichiers exemples font partie du projet po4a, vous êtes libre de les utiliser, les modifier
et les distribuer dans vos projets sans avoir besoin de renvoyer vers po4a ou d'ajouter l'équipe de po4a
dans vos indications de copyright, de même que les autres outils de construction comme Automake lui-même.
Si vous voulez citer po4a, c'est très bien aussi.
AUTEURS
Neil Williams <linux@codehelp.co.uk>
TRADUCTION
Martin Quinson (mquinson#debian.org)
Outils po4a 2017-08-26 PO4A-RUNTIME(7)