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