Gettext: ne marche tout simplement pas
Bonjour :)
Voila, dans le but d'internationalisé mon site qui est en anglais vers le français j'ai téléchargé la librairie de gettext et j'ai suivie un tutoriel trouvé sur un autre site.
Malheureusement cela ne marche absolument pas, rien ne se passe et je ne comprend pas pourquoi!
J'ai cherché pendant plusieurs heures et je me résigne maintenant à demander de l'aide :D
Voila mon code que je "require" avant le require de ma page:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <?php
// define constants
define('PROJECT_DIR', ROOT);
define('LOCALE_DIR', PROJECT_DIR .'/locale');
define('DEFAULT_LOCALE', 'en_US');
require_once('../lib/gettext/gettext.inc');
$supported_locales = array('en_US', 'fr_FR');
$encoding = 'UTF-8';
$_GET['lang'] = 'fr_FR'; // je force le get (pour le développement) pour être sur que le get est bien pris en compte mais cela ne change rien
$locale = (isset($_GET['lang']))? $_GET['lang'] : DEFAULT_LOCALE; //$locale vaut bien 'fr_FR'
// gettext setup
T_setlocale(LC_MESSAGES, $locale);
// Set the text domain as 'messages'
$domain = 'translate';
bindtextdomain($domain, LOCALE_DIR);
// bind_textdomain_codeset is supported only in PHP 4.2.0+
if (function_exists('bind_textdomain_codeset')){
bind_textdomain_codeset($domain, $encoding);
}
textdomain($domain);
?> |
Mon fichier translate.po et translate.mo sont bien dans le dossier "fr_FR" qui ce trouve lui même dans le dossier "LC_MESSAGES" et celui ci dans le dossier "locale".
J'ai cree le catalogue de lang avec poEdit exactement comme dans la video.
Au finale, les textes ne sont pas remplacé :(
Pourriez vous m'aider?
Merci d'avance :)
Cordialement
EDIT:
J'ai reussi!!
La solution:
Code:
1 2 3 4 5 6 7 8 9
| <?php
$locale = $_GET['lang'];
$file_mo = "messages"; // Fichier d'internationalisation compilé sans l'extension.
$folder_lang = "../locale"; // Dossier ou se trouver les dossiers de langues (en_US, fr_FR).
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain($file_mo, $folder_lang);
textdomain($file_mo);
?> |