Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/11/2011, 22h08   #1
Membre éclairé
 
Inscription : janvier 2004
Messages : 423
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 423
Points : 308
Points : 308
Par défaut gettext I18n et locale

Bonjour,

Je suis en train de m'arracher mes pauvres cheveux sur un truc qui doit etre tout bete.. mais la je vois pas !

J'ai un gros site que je vais devoir rendre multilingue. Comme j'utilise Twig (moteur de templates) et qu'il est compatible avec gettext, je ne veux pas compliquer.. surtout que c'est la facon 'PHP' d'internationaliser.. !

J'ai commencé quelques tests sur le serveur :

Code :
1
2
3
4
5
6
7
8
9
10
<?php
$language = "fr_FR";
putenv("LANG=" . $language);
setlocale(LC_ALL, $language);
$domain = "messages";
bindtextdomain($domain, "./Locale");
bind_textdomain_codeset($domain, 'UTF-8');
textdomain($domain);
 
echo gettext("TEST_TRANSLATION");

Pour le moment j'ai mes fichiers de traduction comme suit :

"Locale/fr_FR/LC_MESSAGES/messages.po"
et
"Locale/en_US/LC_MESSAGES/messages.po"

j'ai aussi les fichiers messages.mo, créés avec PoEdit, donc a priori, corrects..

un exemple :
Code :
1
2
3
4
5
6
7
#Test 1
msgid "HELLO_WORLD"
msgstr "Bonjour tout le monde"
 
#Test 2
msgid "TEST_TRANSLATION"
msgstr "Un test de traduction !"
Quelle que soit la langue que j'indique dans le php, ou les modifications que je fais sur les .po / .mo.. ca ne change rien...

Code :
echo gettext("HELLO_WORLD");
renvoie toujours :


Je dois oublier quelque chose.. Mais la je ne vois pas !
et je n'ai meme pas de messages ou de warnings dans le log.. meme pas une notice !

Les locales sont installées sur le serveur et gettext également !


Une idée ?


Hmm, bon je viens de trouver, je laisse quand même mon message si ca peut aider certains..

le langage doit être indiqué sous sa forme complète :
$language = "en_US.UTF8";
ou
$language = "fr_FR.UTF8";

Et la ça marche !
zevince est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h08.


 
 
 
 
Partenaires

Hébergement Web