Provided by:
po4a_0.41-1ubuntu1_all 
NOM
po4a-runtime - po4a et traduction gettext des messages affiches pendant
l'execution sans Autotools
Introduction
Avec po4a-build, po4a peut aussi prendre en charge la traduction des
messages de sortie des scripts a l'aide de gettext. Pour cela, il n'est
pas necessaire 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 meme
repertoire po/ que la traduction des messages affiches pendant
l'execution. Meme si la traduction des messages affiches pendant
l'execution peut utiliser des repertoires ne s'appelant pas po/, il est
generalement plus facile de respecter la convention.
Multiples langages
Juste un mot sur les paquets qui utilisent des scripts ecrits dans
plusieurs langages de programmation, Perl et shell par exemple. Prenez
garde: gettext sera perturbe et oubliera des chaines d'un langage ou
d'un autre sauf si les extensions de fichier sont utilisees pour le
langage qui pose le moins de problemes.
Lors de l'utilisation de plusieurs langages, faites des essais avec
differents reglages de po/Makevars jusqu'a avoir toutes les chaines
necessaires dans le fichier POT.
En particulier, indiquer deux langages dans po/Makevars peut etre
problematique. Plutot que:
# Ne faites pas ca :
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 impliques et evitez les
options -L explicites. L'extension de fichier n'est necessaire que
pendant le traitement de po/POTFILES.in.
L'option --keywords peut egalement etre utile, voir la documentation de
xgettext.
Remplissage de po/
D'abord, creez le repertoire po/ de plus haut niveau puis utilisez les
fichiers exemples de /usr/share/doc/po4a/examples/ pour le remplir.
LINGUAS
Doit exister, meme vide. C'est une liste des traductions, chaque
ligne qui ne commence pas par <<#>> doit correspondre a un fichier
PO existant. Par exemple, si LINGUAS contient seulement une ligne
<<fr>>, un fichier fr.po doit exister a cote du fichier LINGUAS.
$ cat po/LINGUAS
cs
de
fr
$
Par convention, le fichier LINGUAS est ordonne alphabetiquement,
mais ce n'est pas automatiquement fait.
POTFILES.in
La liste des fichiers contenant des messages affiches pendant
l'execution a traduire, c'est-a-dire les scripts. Si le repertoire
po/ de plus haut niveau est utilise, les chemins devraient etre
relatifs au repertoire de plus haut niveau, pas au repertoire po/
lui-meme.
$ 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-memes peuvent contenir des messages
affiches pendant l'execution et de la documentation, tous deux a
traduire; par exemple, ils peuvent utiliser les fonctions de
gettext pour les messages affiches pendant l'execution et des
contenus POD embarques pour la documentation. Donc ca ne pose pas
de probleme d'avoir le meme fichier a la fois dans po/POTFILES.in
et doc/po4a-build.conf.
Makevars-perl.example
Si les scripts sont ecrits en Perl, copiez ce fichier exemple vers
po/Makevars et modifiez-le selon vos besoins.
Makevars-shell.example
Si les scripts sont ecrits 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 etre
necessaire de le modifier, mais vous pouvez vouloir le garder a
jour par rapport a /usr/share/doc/po4a/examples/po4a-build.make.
Celui-ci peut etre mis a jour au sein de po4a en fonction des
modifications de la prise en charge sous-jacente d'intltool. Le
fichier lui-meme a ete cree a partir d'un autre projet utilisant
les Autotools et intltool.
Construction
Ces extraits doivent etre ajoutes au Makefile de plus haut niveau ou a
tout fichier necessaire en fonction de la methode utilisee pour
preparer 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 ete automatique
apres avoir simplement ajoute po a la valeur "SUBDIRS" de Makefile.am.)
Maintenance
La traduction des messages affiches pendant l'execution n'est pas aussi
simple que po4a-build car l'ajout d'une nouvelle traduction necessite
de modifier po/LINGUAS, mais a part cela, la mise a jour des
traductions se reduit simplement au remplacement du fichier PO
correspondant par sa nouvelle version.
En fonction de la facon de preparer l'archive source, il peut etre
necessaire d'indiquer la liste des nouveaux fichiers PO au fichier
MANIFEST ou les ajouter aux scripts qui s'occupent de preparer
l'archive source (cette remarque s'applique aussi a po4a-build).
Tous les fichiers *.mo ou *.gmo du repertoire po/ peuvent etre effaces.
Copyright
Meme si les fichiers exemples font partie du projet po4a, vous etes
libre de les utiliser, les modifier et les distribuer dans vos projets
sans avoir besoin de renvoyer vers po4a ou d'ajouter l'equipe de po4a
dans vos indications de copyright, de meme que les autres outils de
construction comme Automake lui-meme. Si vous voulez citer po4a, c'est
tres bien aussi.
AUTEURS
Neil Williams <linux@codehelp.co.uk>