J'utilise la localisation gettext comme celui-ciGettext ne peut pas obtenir setlocale() pour travailler
$lang = $_GET['lang'];
echo $lang;
putenv("LANG=$lang");
setlocale(LC_ALL, $lang);
bindtextdomain("messages", realpath("../locale"));
bind_textdomain_codeset("messages", "utf-8");
textdomain("messages");
...
echo _("Welcome!") etc.
Je peux voir des œuvres de localisation, car le site peut être vu traduit en slovaque. Cependant, peu importe ce qu'il y a dans la variable $ lang, le site est seulement traduit en slovaque ou pas du tout traduit. Slovaque signifie tous les fichiers .po et .mo que j'ai dans le dossier 'sk'. J'ai essayé de mettre différentes langues dans le dossier 'sk', ça marche et j'ai différentes traductions. Mais je ne peux pas le faire pour prendre un dossier différent, comme 'en' ou 'cs'. Tous les autres dossiers sont ignorés. Qu'est-ce que je fais mal?
P.S. setlocale() renvoie false, je n'arrive pas à comprendre pourquoi mais cela cause probablement le problème.
Avez-vous un coup d'oeil à la commentaires sur http://www.php.net/manual/fr/book.gettext.php? – iblue
bien je l'ai fait et je ne vois pas de solution là-bas, j'ai essayé de renommer à la fois le dossier et la variable $ lang en en_US, j'ai toujours la traduction 'sk'. –
Si je dois deviner que votre locale standard est sk et c'est ce qu'elle utilise parce que le changement de locale ne se produit jamais. Vous indiquez que votre appel à setlocale renvoie false. Que faites-vous passer? Quel est le contenu de '$ lang'? – Dan