get text PHP5 не работает в debian

#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 -> включено. Ты это имеешь в виду?