Я работаю над проектом, и для этого мне нужен перевод. Поэтому я решил использовать gettext в php, но он работает иногда.
Таким образом, у меня есть папка с именем lng, и в этом случае у меня есть php-файл, который вызывает мой lang-файл для перевода моей страницы.
Вот код:
<?php if(isset($_GET['lang']) != '') { setcookie('lang',$_GET['lang'], time() + 365*24*3600, null, null, false, true); $_SESSION['lang'] = $_GET['lang']; $language = $_GET['lang']; } else if(isset($_SESSION['lang']) != '' ) { $language = $_SESSION['lang']; } else if(isset($_COOKIE['lang']) != '') { $_SESSION['lang'] = $_COOKIE['lang']; $language = $_SESSION['lang']; }else{ $language = 'fr'; } putenv("LANG=$language"); setlocale(LC_MESSAGES, $language); $domain = 'trad'; bindtextdomain($domain, 'locale/'); textdomain($domain); ?>
Поэтому я могу проверить свои $ _SESSION и $ _COOKIE, без проблем он дал мне «en» или «fr», но он не переводит мой файл, и я не знаю, почему.
Для папки в lng это: locale / en / LC_MESSAGES / trad.po (или .mo). Я пытаюсь использовать LC_ALL и LC_MESSAGES, но это не меняет результат.
Я что-то пропустил или сделал неправильный материал?
Большое спасибо!
J.