"Paul Gaborit" <Paul.Gaborit@invalid.invalid> a écrit dans le message de
news: wt963o4o75i.fsf@marceau.enstimac.fr...
À (at) Tue, 7 Oct 2008 14:44:08 +0200,
"Jean-Charles Gibier" <jeancharles__and__g@free.fr.invalid> écrivait
(wrote):
Ce n'est pas vraiment capital mais c'est le problème posé par le présence
des paramètres.
Dans l'option gettext on ne peut pas employer ce genre de construction
:
print gettext("Le fichier : $nom_fichier est ouvert.\n");
On est obligé de faire soit ceci :
print gettext("Le fichier :"). $nom_fichier .gettext("est ouvert").".\n";
Soit ceci :
print sprintf (gettext("Le fichier : %s est ouvert.\n"), $nom_fichier);
Ce qui n'est pas tres pratique lorsqu'on est en phase d'extraction des
chaines.
Donc s'il ya une autre méthode je suis preneur.
C'est un peu la même chose dans Locale::MakeText. Mais la syntaxe est
différente :
print maketext("Le fichier : [_1] est ouvert.\n"), $nom_fichier);
Ça permet de changer l'ordre d'apparition, de prévoir une éventuelle
fonction de traitement pour les cas compliqués, ça permet aussi de
vérifier qu'on n'oublie aucun argument...
Mais ça ne résoud pas votre problème : il faut quand même explorer
tout le code pour extraire les chaînes à traduire.
Ok ça va, ça fait une semaine que je peaufine mes outils.
En fait, c'est
assez fastidieux. Et c'est en général à ce moment-là qu'on se dit que
la prochaine fois, on prévoira de faire l'I18N dès de le départ ! ;-)
Oui enfin, si on est à l'origine du chantier :-)