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
    '---''(_/--'  `-'\_)       


Répondre à