#php #debian #locale #gettext
#php #debian #локализация #gettext получить текст #gettext
Вопрос:
Я разрабатываю веб-сайт, который использует gettext. Все отлично работает в local. Но сегодня я загрузил свой веб-сайт на свой рабочий сервер, и gettext больше не хочет работать. Язык, который я хотел бы использовать, — fr_FR и en_US. gettext переведите мой текст, если я показываю свой веб-сайт на французском, но ничего не происходит для английского.
Когда я запускаю locale -a на моем сервере debian, я получаю:
C
fr_FR.utf8
POSIX
Я француз, поэтому думаю, что все нормально. Но когда я делаю: locale-gen en_US или locale-gen en_US.UTF-8, а затем locale -a снова, ничего не меняется. ! Это нормально ?
Вот пример кода PHP на всякий случай. Но поскольку gettext работает для французского языка, я считаю, что проблема не здесь.
$langage = 'en_US.utf8';
putenv("LC_ALL=$langage");
setlocale(LC_ALL, $langage);
$languageFileName = "default"; // locale/en_US/LC_MESSAGES/default.mo
bindtextdomain($languageFileName, PATH.'/locale');
bind_textdomain_codeset($languageFileName, 'UTF-8');
textdomain($languageFileName);
Заранее большое спасибо за помощь.
Ответ №1:
Что ж, я нашел решение своей проблемы. Я отредактировал файл /etc/locale.gen и раскомментировал язык, который я хотел бы использовать с gettext . Затем я запустил locale-gen. Вот и все !
Все еще не понимаю, почему locale-gen en_US.UTF-8 не сделал то же самое. Я использую debian 6 Squeeze.
Комментарии:
1. У меня была точно такая же проблема:
en_US
отсутствовал locale, иlocale-gen en_US.UTF-8
у меня все работало нормально.
Ответ №2:
Вам нужно использовать расширение php php_gettext
.
Комментарии:
1. Не могли бы вы рассказать мне подробнее? В моем phpinfo у меня есть: Поддержка GetText -> включено. Ты это имеешь в виду?