Forum Programmation.autre Problème de traduction avec gettext et accent

Posté par  .
Étiquettes : aucune
0
1
sept.
2004
Comment utiliser dans un fichier .po des termes français dans le msgid ?
Surtout des termes avec accents ?

A priori, après avoir cherché pendant trois mois, avoir lu et relu le manuel de gettext, écumé les newsgroups, soumis google à des batteries de requêtes et même demandé sur les forums de linuxfr, c'est pas possible.

Pas possible ?

Si :-))))

Le problème : si vous mettez des termes en français dans le msgid, les traductions vont sortir correctement tant que vous n'utiliserez pas d'accent ou de caractères spécial.
Dès que vous utilisez un accent par exemple, le caractère n'est plus traduit et le msgid est renvoyé à la place :-(

La solution : utilisez msgfmt avec l'option --no-hash pour générer le fichier.mo

Qu'est-ce que ça fait ?
Ca ne met pas de table de hachage dans le fichier .mo (et donc en théorie ça ralentit la recherche de correspondance entre terme à traduire et terme traduit).

Pourquoi ça marche ?
Je ne sais pas.
Je suppose qu'il s'agit d'un problème d'encodage du hash.

Pourquoi j'écris tout ça ici ?
Parce que je n'ai trouvé cette solution nulle part sur le net, et faut bien que ce soit écrit quelque part !
  • # msgid fr ??

    Posté par  (site web personnel) . Évalué à 1.

    Quel intérêt de mettre le msgid en français ? À partir du moment où tu veux faire ensuite des traductions, je suppose que tu vas en faire au moins une en anglais, donc puisqu'il y a de l'anglais, autant le mettre dans le msgid. Et je crois que les outils gettext ne sont pas prévus pour autre chose que d'avoir de l'ascii en msgid.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.