php gettext игнорирует локаль - PullRequest
0 голосов
/ 03 ноября 2018

У меня очень странная проблема: я использую решение для подкастов под названием «Генератор подкастов» (podcastgenerator.net) и установил на одном сервере перевод на основе gettext работает отлично (www.fegertest.de/podcasts), а на другом сервере он просто не будет переводиться (www.feg-erlangen.de/podcasts).

Я уже проверил следующие вещи:

  • Локаль правильно настроена в файле конфигурации
  • gettext установлен на обоих серверах
  • доступна локаль de_DE браузера
  • версия php 7 на обоих серверах
  • языковой стандарт правильно задан в коде

$locale="de_DE";
if (!ini_get('safe_mode')) 
    putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain($domain, LOCALE_DIR);
bind_textdomain_codeset($domain, $encoding); //encoding
textdomain($domain);

Понятия не имею, что еще может быть причиной для этого ... Есть идеи?

1 Ответ

0 голосов
/ 04 ноября 2018

Языковой стандарт "de_DE" должен быть установлен на сервере . Запустите "locale -a grep de_DE", чтобы проверить это.

Кроме того, переменная окружения LC_ALL может быть неправильной для установки. Установите также LANG, LANGUAGE и LC_MESSAGES. См. http://git.savannah.gnu.org/cgit/gettext.git/tree/gettext-runtime/ABOUT-NLS и прочитайте раздел «1.2 Использование этого пакета», в котором подробно объясняется точное значение различных переменных среды.

...