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
Voila mon code que je "require" avant le require de ma page:
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".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); ?>
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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); ?>
Partager