PHP gettext и vagrant работают под управлением 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");

Обновления

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

1 ответ

Вот и получается, что следующее предложение у меня сработало /questions/40068396/gettext-rabotaet-s-pereboyami/40068416#40068416

sudo service php5-fpm restart

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

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