Я пытаюсь использовать 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, который имеет следующий код:
Я импортировал текст, "Это - тест". к Poedit и предоставленный перевод и сохраненный это.
Но по некоторым причинам test.php сценарий только произведет непереведенный оригинальный текст. Это отказывается загружать версию для файлов перевода.
Стоит отметить, что сервер запускает Linux (Ubuntu), Apache 2.2.11 и PHP 5.2.6-3ubuntu4.5. Я проверил phpinfo()
и gettext включен.
Ваша проблема может быть связана с отсутствием локали в вашей системе. Пожалуйста, установите немецкий язык, и все должно работать:
sudo apt-get install language-pack-de-base
Затем введите следующую команду, и вы должны увидеть немецкий язык:
locale -a
После этого следующий код должен работать, если у вас все еще есть файлы .po и .mo в описанной вами структуре каталогов:
<?php
setlocale(LC_ALL, 'de_DE.UTF-8');
bindtextdomain('messages', './locale');
textdomain('messages');
echo gettext('This is a test.');
?>
попробуйте следующее
<?php
define(LC_MESSAGES, 'de_DE');
// Set up environmental variables
putenv("LANGUAGE=de_DE");
bindtextdomain("*", dirname(__FILE__).'/locale');
bind_textdomain_codeset("messages", 'UTF-8');
die(gettext('This is a test.'));
?>
Да, да, в PHP снова появилась поддержка gettext. Просто подсказка, которая может оказаться полезной для вас, а может и нет:
Из-за ужасной реализации gettext в PHP многие проекты с открытым исходным кодом, такие как WordPress, перешли на эту: http://savannah.nongnu.org/projects/php-gettext/ и полностью обходят оригинальную версию.
Я тоже так сделал в одном из своих проектов, и не могу сказать, что мне чего-то не хватает.
Недостаток для коммерческих проектов: Это под GPL.