Salut,
C'est limite hors-sujet mais c'est pour un logiciel destin� �
Debian... J'ai envoy� un message d'aide sur fr.comp.lang.perl mais
cela n'a pas l'air de donner quelque chose...
Alors, je tente :
Je suis en train d'internationnaliser un long programme �crit en
Perl/Tk. Il est �crit en fran�ais donc je me contente
d'internationaliser le fran�ais avec de localiser (et donc de revenir
� un source en anglais).
Pour cela, j'utilise gettext :
use POSIX; use Locale::gettext; setlocale(LC_ALL, "");
bindtextdomain("echelon_message", "./");
textdomain("echelon_message");
(tout est en local pour le moment).
J'ai remplac� toutes les cha�nes � traduire sur le mod�le :
cha�ne -> gettext("cha�ne")
Pour les print, cela n'est pas un probl�me (on peut m�me s�parer les
marqueurs comme \n comme c'est recommand�). Par contre, j'ai fait de
m�me pour tout, y compris Tk (principalement, les � text => �) et
divers trucs internes de Perl qui me servent un moment ou un autre �
produire un affichage, par exemple :
%field =
(
user => ["user", gettext("Utilisateur :")],
host => ["hostname", gettext("Machine :") ],
date => ["date", gettext("Date :") ],
time => ["current_time", gettext("Heure :") ],
);
J'ai ensuite extrait toutes les cha�nes sur le mod�le :
$ xgettext --language=C -sn *pl -o echelon_message.po
Bon, pas de soucis (et dans la doc, on dit que l'histoire du langage
n'est pas une g�ne pour Perl). Le .po a l'air correct (j'en ai traduit
plein...) donc tout parait OK.
Sauf que... le programme qui fonctionnait *avant* ne fonctionne plus
*maintenant*. Il s'arr�te en me disant qu'il ne trouve plus un
sous-programme qui existe bien quelques lignes plus bas. Je n'ai
aucune indication (avec le -w) d'un malaise de Perl sur l'i18n des
fichiers.
Par acquis de conscience, j'ai pass� un diff minutieux sur tous les
fichiers avec ceux d'avant l'i18n mais je ne peux trouver aucun
changement autre que l'i18n (et donc l'introduction de gettext).
Ai-je oubli� quelque chose d'important ? C'est la premi�re fois que je
fais cela et la doc sur le sujet est tr�s mince (sur Debian
GNU/Linux�: dans /usr/share/doc/liblocale-gettext-perl/README.gz (qui
m'a servi de support: c'est un paquet de Rapha�l, notre futur leader
;-) ) et le perldoc gettext (plus que sommaire... et non accessible en
ligne...)). Je n'ai rien non plus dans la litt�rature O'Reilly en ma
possession (c'est-�-dire tous les tomes sur Perl).
Bref, si une bonne �me pouvait me d�panner... par avance, merci.
PK
PS : seul indice : le msgfmt me sort une erreur : � attention:
l'en-t�te n'a pas �t� trouv� �. Comme j'ignore de quel en-t�te il
parle (et que j'ai rempli les champs traditionnels d'en-t�tes), je ne
suis pas avanc� :-(
--
|\ _,,,---,,_ Patrice KARATCHENTZEFF
ZZZzz /,`.-'`' -. ;-;;,_ mailto:[EMAIL PROTECTED]
|,4- ) )-,_. ,\ ( `'-' http://p.karatchentzeff.free.fr
'---''(_/--' `-'\_)