PHP gettext и бродячий бег ubuntu

У меня возникла проблема с получением gettext для перевода одного из моих файлов переводов на моей настройке Vagrant с запуском Ubuntu. Мои файлы локали находятся в такой директории …

locales\de_DE\LC_MESSAGES\default.po 

Я уверен, что файлы перевода в порядке, поскольку у меня есть локальная версия xampp, указывающая на тот же файл, и она отлично работает.

Я пробовал следующее и почти просто хочу понять, что происходит, потому что я так долго смотрел на него

  • Разрешения. Я могу выводить содержимое файла default.mo на веб-страницу.
  • Включенные локали в «/etc/locale.gen», запущены «locale-gen» и перезапущены apache

Есть ли что-то, что я, возможно, пропустил?

 <?php define('LOCALES_DIR', "../locales"); if (! file_exists(LOCALES_DIR)) { exit("Locales not found from here"); } $content = file_get_contents(LOCALES_DIR . "/de_DE/LC_MESSAGES/default.mo"); if (strlen($content) < 1) { exit("File could not be read"); } $language = "de_DE.UTF-8"; putenv('LANG=' . $language); setlocale(LC_ALL, $language); $domain = "default"; bindtextdomain($domain, LOCALES_DIR); textdomain($domain); bind_textdomain_codeset($domain, 'UTF-8'); echo _("Sign In"); 

Обновления

  • По какой-то причине он теперь работает полупрерывно, на третьем обновлении он отобразит правильный текст.
  • Мои версии PHP немного отличаются
    • бродяга: 5.4.42
    • местный: 5.4.7
  • Не уверен, что это помогает, но php_sapi_name () на бродяге было «fpm-fcgi», а на локальном – «apache2handler», просто угадывая, что не на 100% уверены в различии, но могут объяснить, почему перезапуск Apache был недостаточным для бродяг

Итак, оказывается, что после предложения здесь работало для меня https://stackoverflow.com/a/20602983/682754

 sudo service php5-fpm restart 

Я предполагаю, что это могло произойти из одного из следующих:

  • Я переключил языковые значения de_DE.UTF-8, чтобы не использовать дефис и не пробовал в нижнем регистре, я заметил, что на Ubuntu это de_DE.utf8
  • Я также изменил имена моих файлов .po и .mo