Мне удалось успешно включить интернационализацию и тэг {% 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").
Между тем я не вижу ошибок в своих журналах. Что я должен проверить, чтобы понять источник проблемы и заставить ее работать последовательно?
Заранее спасибо.
В моем случае проблема решена путем перезапуска Apache (или php5-fpm, когда я использую nginx на удаленном сервере) каждый раз, когда я вношу изменения в файлы переводов. В противном случае gettext работает глючно, как описано в вопросе.
Убедитесь, что ваш Twig Cache отключен во время разработки.