Gettext работает с перебоями

Мне удалось успешно включить интернационализацию и тег {% trans %} в ветке, используя следующие строки:

$language = "...";
$domain = "project";
putenv("LC_MESSAGES=$language");
setlocale(LC_MESSAGES, $language);
bindtextdomain($domain, SITE_DIR . "locale");
textdomain($domain);
bind_textdomain_codeset($domain, "UTF-8");

И веточка шаблона:

...
{% trans "Translation.Key" %}
...

К сожалению, это работает случайно. Я имею в виду, что, хотя я продолжаю нажимать F5, скажем, каждую секунду или переходить между страницами, иногда он переключается на переведенную строку, как и должно ("Translation.Key" становится "Локализованным значением для вывода"), а иногда возвращается к вывод строки в теге {% trans %} ("Translation.Key").

Пока что я не вижу ошибок в своих журналах. Что я должен проверить, чтобы понять источник проблемы и заставить его работать последовательно?

Заранее спасибо.

3 ответа

Решение

В моем случае проблема решается путем перезапуска Apache (или php5-fpm, когда я использую nginx на удаленном сервере) каждый раз, когда я изменяю файлы переводов. В противном случае gettext работает с ошибками, как описано в вопросе.

Убедитесь, что ваш Twig Cache отключен во время разработки.

Лично это пришло с php-fpm. Перезапуск Apache ничего не сделал.

Чтобы перезапустить php-fpm на centos7:

systemctl restart php-fpm

Для других ОС, пожалуйста, проверьте эту ссылку, чтобы перезапустить php-fpm: https://serverfault.com/questions/189940/how-do-you-restart-php-fpm

Другие вопросы по тегам