Я пытаюсь использовать gettext и добавить поддержку локализации на мой сайт. Я следовал различным инструкциям по настройке gettext и сделал следующее:
Я создал следующие файлы и каталоги в корне моего проекта dir:
test.php
locale/
de_DE
LC_MESSAGES
messages.mo
messages.po
en_GB
LC_MESSAGES
messages.mo
messages.po
Я использовал Poedit для создания вышеуказанных файлов .po и mo. Я заставил его подать в суд на конец строки Unix, UTF-8 и соответственно установить язык и страну.
Затем я создал PHP-скрипт с именем test.php, который имеет следующий код:
<?php
define('LOCALE', 'de_DE');
// Set up environmental variables
putenv("LC_ALL=" . LOCALE);
setlocale(LC_ALL, LOCALE);
bindtextdomain("messages", "./locale");
bind_textdomain_codeset("messages", LOCALE .".utf8");
textdomain("messages");
die(gettext('This is a test.'));
?>
Я импортировал текст «Это тест». Poedit, предоставил перевод и сохранил его.
Но по какой-то причине скрипт test.php будет выводить только исходный текст без перевода. Он отказывается загружать версию для файлов перевода.
Стоит отметить, что сервер работает под управлением Linux (Ubuntu),
Apache 2.2.11 и PHP 5.2.6-3ubuntu4.5. Я проверил phpinfo()
и gettext включен.