Etude de l'internationalisation avec GNU GetText

De LodelWiki.

Voici une page militante dans laquelle on étudie les avantages et inconvénients sur système GNU GetText en vue de changer le système d'internationalisation fait par Ghislain qui ne donne pas entière satisfaction.


GNU GetText

La page du projet : http://www.gnu.org/software/gettext/ La documentation (en anglais mais très complète) : http://www.gnu.org/software/gettext/manual/

Résumé du fonctionnement

Le système s'appuie sur des fichiers .po pour les traducteurs et .mo (fichier binaire), version compilée des .po optimisé pour le programme. Pour chaque langue le traducteur dispose d'un fichier contenant la phrase originale à traduire et son équivalent traduit si il existe. Du côté programme, et pour ce qui est du PHP, l'extension gettext permet en utilisant la fonction gettext("Ma phrase"); de chercher l'équivalent à "Ma phrase" dans le fichier de langue de la locale définie. Si aucun équivalent n'est trouvé, la phrase d'origine est affichée.

Avantages

  • Très pratique pour les traducteurs : un certains nombres d'outils existe comme POEdit (sous Windows) ou KBabel (sous Linux).
  • Très pratique pour les développeurs : le développeur (ou le responsable de l'interface) ne se soucie pas de l'internationalisation, la seule chose qu'il a à prendre en compte c'est l'utilisation de la fonction gettext(). Un ensemble d'outil lui permet en plus de mettre à jour automatiquement les fichiers de traductions.
  • Très pratique pour la maintenance : L'ensemble des traductions étant des fichiers, ceux-ci sont aisément maintenable et facilement accessible pour modification, suppression,...
  • Très répandu : il s'agit d'un système utilisé par grand nombre d'applications, web ou non. WordPress est parmi ceux-ci : http://www.gnu.org/software/gettext/gettext.html

Inconvénients

  • Nécessite l'installation d'une extension particulière de PHP. Qui n'est malheureusement pas installé chez tous les hébergeurs (cf. Liste des hébergeurs supportant GetText). Heureusement il existe des alternatives à Gettext qui pourrait être utilisées en cas de non détection de l'extension.

On peut citer les projets : http://iki.fi/elonen/code/pophorator/ et https://savannah.nongnu.org/projects/php-gettext/, plus d'information ici http://fr2.php.net/manual/fr/ref.gettext.php.

  • Dépend des locales installées sur le serveur. Peut-être encore un inconvénient suivant l'hébergeur. Mais il est quand même rare que les locales les plus fréquentes ne soient pas installées.
Outils personnels