Fichiers langues sous format .po .mo ?
Hamtaro
Member
Bonjour
Je me demandais si ce n'était pas plus intéressant d'avoir les fichiers langues sous .po et .mo ?
En tout cas, je vois la facilité de traduction sous Wordpress avec poedit, c'est clairement pas une corvée.
Là, je suis en train de faire les fichier lang de mes plugins et je dois vous dire que ça me fait c*ier, à moins qu'il existe un éditeur pour ce format bizarre mais je ne pense pas.
Alors pourquoi ne pas passer sous ce système ? Problème de dépendances du serveur ? Trop gourmand ?
Je me demandais si ce n'était pas plus intéressant d'avoir les fichiers langues sous .po et .mo ?
En tout cas, je vois la facilité de traduction sous Wordpress avec poedit, c'est clairement pas une corvée.
Là, je suis en train de faire les fichier lang de mes plugins et je dois vous dire que ça me fait c*ier, à moins qu'il existe un éditeur pour ce format bizarre mais je ne pense pas.
Alors pourquoi ne pas passer sous ce système ? Problème de dépendances du serveur ? Trop gourmand ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Et ajouter un index de traduction est beaucoup plus facile quand tu crées un nouveau thème que de passer par poEdit.
Ensuite, je trouve beaucoup, mais alors beaucoup plus rapide l'utilisation de poEdit, et surtout pas besoin d'ouvrir un éditeur de code, d'assigner des variables L_MACHIN_CHOSE.
Parce que ça va pour quelques variables mais alors ça devient lourd et surtout faut être créatif pour bien les nommer histoire de pas se perdre, déjà que c'est lourd de trouver des noms sympa pour des fonctions php...
Quelques liens :
http://www.grafikart.fr/tutoriels/php/internationaliser-site-gettext-104
http://maxime.sh/2012/06/utilisation-pratique-de-gettext-avec-php/
http://blog.lingohub.com/developers/2013/07/php-internationalization-with-gettext-tutorial/#Setting_up_the_PHP_to_use_gettext
Et ce n'est pas éditable avec un éditeur basique. Il faut utiliser le logiciel poEdit qui ne fonctionne pas bien sur toutes les plateformes (mac os en particulier).
Pour ce qui est de trouver des noms, tu mets L_+nom en anglais.
Je crois qu'on va pas être d'accord sur ce sujet.
En plus, en terme de performances, il semblerait qu'avec gettext, ce soit plus rapide.
Et en lecture rapide du code, on voit directement dans le fichier .php les mots utilisés. Si pas de fichiers langue, il utilise le contenu directement. Je vois vraiment que des avantages pour une localisation aisée et rapide. Le codeur écrit simplement son echo avec un alias, sans se soucier et après, un scan et hop on traduit tout.
Je trouve la méthode avec les array vraiment lourde.
Peut être que Stéphane pourrait venir donner son point de vue. Savoir pourquoi ce choix ?
De plus ce qui est quand même galère surtout si on est sur un mutualisé.
J'ai un string de l'array
@JerryWham: J'ai la solution technique pour ne pas avoir à redemarrer le serveur apache en cas de modification d'un .po Je l'ai testé est ça fonctionne très bien.
@flipflip: Le scan des sources pour trouver les chaines de traduction est effectivement un gros point positif pour maintenir les fichiers qui ne m'a pas échappé également.
De façon générale l'utilisation des fichiers .po repose soit sur l'extension gettext qui doit être installé sur le serveur, soit sur une librairie php qu'il faut inclure dans les sources. Si l'extension n'est pas dispo sur l'hébergeur, il faut basculer sur la lib php. J'ai fait quelques tests également avec ce fonctionnement et ça marche très bien.
edit: les 1ers benchmarks ne sont pas en faveur de l'utilisation de .po. La consommation cpu est assez importante (et ça explose avec la lib php) et même au niveau de la conso mémoire ce n'est pas très concluant par rapport à la solution PluXml
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Pour la solution qui évite de redémarrer, je veux bien un petit lien... :P
Genre par un tableur ou je ne sais quoi ?
Histoire d'avoir comme poEdit : une case source et en face une case traduction. Parce que, je dois mal m'y prendre, mais rédiger avec les => etc c'est lourd et long...
Voilà le bout de code que j'ai écrit pour mes tests, qui permet de switcher entre l'utilisation de l'extension php_gettext si dispo sinon la librairie php gettext (à mettre dans un dossier /gettext). Il permet également de prendre en compte la modification d'un fichier .po sans avoir à redémarrer apache. Les fichiers .po et .mo sont à mettre dans /lang/fr_FR/LC_MESSAGES/ avec le nom de la locale.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)