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:

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);
 
?>
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 : 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);
?>