2009
03/05
Les fichiers .po et .mo sont utilisés pour la réalisation d’applications multi-langues Open Source. Ces fichiers ne servent en general qu’à l’affichage de texte dit "statique" (invariable). Le texte dit "dynamique" est stocké dans une base de données.
Ce programme permet de manipuler les fichiers de langues au format .po et .mo directement depuis votre site sans utilisation d’éditeur externe tel que "poedit".

7/05/2009 2:57 pm
Hi, I found you add/edit window really cool, I went to the ThickBox web site, but I can’t figure out how this work.
Could yo explain me how to implement ADD/EDIT window modal ?
I mean, how many files doI need ? a controler ? where do you html input fields ?
Best regards
Nicolas
8/05/2009 5:00 pm
Hi Nicolas,
All what you want is in the file: cmsadmin/cmslanguages.php
The top buttons call the javascript function “action()” with parameter bcaction: ‘edit’, ‘add’,'delete’.
From “action()” you can call “tb_show()” to open the ThickBox.
I hope that will help you.
8/05/2009 5:19 pm
Hello,
Ce programme semble être exectement ce que je cherchais pour un projet libre (http://gcweb.web4me.fr/) mais sous quel licence est-il ?
This program seems to be exect what I was looking for a free project (http://gcweb.web4me.fr/) but under what license is it?
Tanks !
9/05/2009 10:42 am
Salut Jonas,
Tant que c’est dans un but non lucratif tu peux l’utiliser:
http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Tiens moi au courant de l’avancement de ton projet.
A bientot
17/05/2009 10:52 am
J’ai finallement trouvé dans /cmsadmin/cmslanguages.php que le logiciel était sous licence GNU/GPL dans /cmsadmin/cmslanguages.php et sauf erreur la GNU/GPL autorise l’utilisation pour but lucratif !
Mais je ne revennais pas pour ça
mais pour dit que mon navigateur internet (epiphany-webkit) n’envoie pas la vaiable $_SERVER[”HTTP_ACCEPT_LANGUAGE”]
> Notice: Undefined index: HTTP_ACCEPT_LANGUAGE in /…/cmsadmin/cmslanguage.php on line 41
J’ai donc ajouter juste avant
> if (!isset($_SERVER[”HTTP_ACCEPT_LANGUAGE”]))
> $_SERVER[”HTTP_ACCEPT_LANGUAGE”] = ‘eng’;
Un autre truc, le script “google translate” ne fonctionne que si le programme est écrit en anglais, je suis allé modifier le code pour changer cella mais se serait pas mal d’avoir ça dans un fichier de config ;).
En tous cas merci pour ce petit logiciel, je vais retirer quelques boutons (Supprimer …), mettre un système de backup (en cas de vandalisme) et mettre ton petit programe en place ;).
17/05/2009 2:17 pm
Salut Jonas,
Ok, merci pour tes remarques, je vai tester tout cela et mettre le programme a jour.
Concernant “google translate”, j’ai considere que la langue par defaut est toujours l’Anglais.
18/05/2009 9:48 pm
J’aurais encore quelques demandes
mais plus compliquées à mettre en œuvre :-/.
* Avoir une couleur d’arrière plan qui change en fonction de l’état de traduction (vert quand c’est ok, rouge quand non traduit et … orange quand c’est une traduction approximative¹)
* Avoir des boutons qui permettent de filtrer les chaines non traduite et/ou les traductions approximative¹ .
* Une barre représentant l’état des traductions (%traduit, %approximatif¹, %non traduit) un peu comme sur https://translations.launchpad.net/ubuntu/jaunty/+lang/fr
Je suis conscient que c’est du boulot, mais comme c’est le seul outils de traduction en php que j’ai trouvé (grâce au forum de framasoft). Enfin … faut voir ces idées comme des évolutions future possible ;-).
—-
¹) petite note car je ne comprend pas comment poedit fait pour savoir quels sont les traductions approximatives et terminées.
20/05/2009 6:46 pm
Salut Jonas,
Merci pour tes remarques judicieuses.
Je vais reflechir a ta proposition de barre de progression.
Pour ce qui est de “l’etat” de traduction des elemements pris separement, il n’y a rien qui permette de l’enregistrer si ce n’est eventuellement en tant que commentaire. Et je crois qu’une colonne supplementaire avec une icone pourrait etre peut-etre mieux convenir. Mais je n’ai pas prevu de travailler sur cela a court terme.
20/08/2009 3:47 pm
Bonjour,
Merci pour ce programme. Mais j’ai du mal à voir comment il peut être intégrer à un projet. En effet, dans la config, rien ne permet de paramétrer l’emplacement et la forme des fichiers à traduire.
Ainsi, les fichiers sont dans /includes/locales/$languageAbbrev/LC_MESSAGES/ alors que je voudrais lui indiquer, par exemple, de prendre ABSPATH . “../rep/langues” pour aller cherche le fichier que je souhaite (prenons original.pot) et faire les fichiers de trad dans le même répertoire, sous forme $languageAbbrev.po et .mo.
23/08/2009 7:12 pm
Cyd,
J’ai utilise cette arborescence pour rendre le programme compatible avec la librairie “gettext” :
http://us.php.net/manual/en/book.gettext.php
Ainsi il est possible soit d’utiliser les fonctions de la librairie “gettext” qui d’apres la la literature semble etre la solution la plus performante pour les versions recentes de php ou soit d’inclure dans son code des fonctions dediees a la traduction :
http://savannah.nongnu.org/projects/php-gettext/
26/08/2009 4:56 pm
Superbe application web, vraiment du beau boulot. Une adaptation en plugin wordpress ferait des centaines d’heureux ! Bonne continuation
26/08/2009 6:25 pm
bgouban,
Ce plugin existe deja d’ailleur je m’en suis inspire pour creer ce programme :
http://www.code-styling.de/english/development/wordpress-plugin-codestyling-localization-en
5/09/2009 11:42 am
Je viens de trouver cette application aujourd’hui cherchant les principes de création des sites multi-langues.
Super application et merci pour l’effort.
Par contre j’ai 2 petits soucis faisant les tests plus un avertissement :
Contexte : Linux - Ubuntu 9.04 - PHP 5
- dans class-translationfile-extends.php à la ligne 400
la commande split() affiche un avertissement en php 5 car cette commande n’est plus correcte - à utiliser enreg_split() ou explode() - de préférence explode car enreg_split affiche un autre avertissement
* j’ai remplacé split() par explode()
- lors de la création d’un nouveau fichier language chaque ligne traduite dans le nouveau fichier contient les “{” et “}” au début et à la fin de la chaine.
* je ne sais pas où trouver le code en erreur, donc un peu plus génant sauf de modifier toutes les lignes manuellement
- lors de l’édition d’un fichier .po avec le programme Poedit (référence Linux) impossible de lire le contenu du fichier .po sauvegardé avec Poedit. L’écran de l’application de contient pas de ligne…
* je ne trouve pas de solution pour récupérer le contenu .po avec votre application (la seule est de restaurer les fichiers .po téléchargés depuis votre site
Voila ma problématique, dont la réutilisation des fichiers .po existants (ou sauvegardés avec Poedit) pose le problème majeur
Cordialement
5/09/2009 12:49 pm
En fait il ne reste que le problème d’ajout de “{” et “}” aux lignes traduites lors de la création d’un nouveau fichier langue sur la base d’un fichier existant.
Le problème de lecture des fichiers sauvegardés avec Poedit est liée à ma mauvaise configuration… désolé
17/09/2009 8:03 pm
Robert,
tu peux supprimer les accolades a partir du fichier:
class-translationfile-extends.php
remplace:
$this->listItems[$i][3] = ‘{’ . $this->listItems[$i][1] . ‘}’;
par
$this->listItems[$i][3] = $this->listItems[$i][1];
c’est dans la function “duplicate_language_file” a la ligne 510 environ
17/09/2009 8:06 pm
J’ai corrige quelques bugs et mis une nouvelle version en telechargement (v1.1)
12/10/2009 10:05 am
Merci pour les précisions données plus haut… et pour la nouvelle version.