Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Gettext (quels sont les principes techniques) ?

23 réponses
Avatar
Jean-Charles Gibier
Bonjour,
Un poil HS mais également plein d'intérêt,
Je cherche à savoir comment fonctionne le module gettext pour indexer ses
messages via les fichiers mo
En fait après avoir fait le travail d'extraction, je m'inquiète un peu de
voir des chaines interminables passées en paramètres et je me demande
comment cela ne pourrait pas nuire aux performances du script.

Merci.

3 réponses

1 2 3
Avatar
Jean-Charles Gibier
"Patrice Karatchentzeff" a écrit dans le message
de news:
"Jean-Charles Gibier" a écrit :

[...]

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);



<HS>
La première solution n'est évidemment pas recommandable. La forme du
langage étant spécifique à chaque langue, il faut laisser le maximum
de libertés aux traducteurs pour remettre les mots à leur place.
</HS>




Oui.
La deuxieme pose aussi ses problèmes comme le suggérait Paul Gaborit, selon
les langues
l'ordonnancement des attributs ou des verbes est différent.
Avatar
Jean-Charles Gibier
"Paul Gaborit" a écrit dans le message de
news:

À (at) Tue, 7 Oct 2008 14:44:08 +0200,
"Jean-Charles Gibier" é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 :-)
Avatar
Patrice Karatchentzeff
"Jean-Charles Gibier" a écrit :

[...]

La deuxieme pose aussi ses problèmes comme le suggérait Paul
Gaborit, selon les langues l'ordonnancement des attributs ou des
verbes est différent.



L'ordonnancement n'est pas tant un problème que la gestion des
pluriels par exemple (prendre le polonais).

PK

--
      |      _,,,---,,_       Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:
     |,4-  ) )-,_. , (  `'-'  http://p.karatchentzeff.free.fr
    '---''(_/--'  `-'_)       
1 2 3