我已成功使用这些行在twig中成功启用国际化和{%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”变为“Localized value to output”),有时它会回落到输出{%trans%}标签下的字符串(“Translation.Key”)。
同时我在日志中看不到任何错误。我应该检查什么才能理解问题的根源并使其始终如一地工作?
提前致谢。
答案 0 :(得分:2)
在我的情况下,每次我对翻译文件进行更改时,通过重新启动Apache(或者当我在远程服务器上使用nginx时重启php5-fpm)来解决问题。否则,gettext会像问题中描述的那样出现故障。
答案 1 :(得分:0)
确保在开发过程中禁用了Twig Cache。
答案 2 :(得分:0)
个人而言,它来自php-fpm。重新启动Apache没有任何作用。
要在centos7上重新启动php-fpm :
systemctl restart php-fpm
对于其他操作系统,请检查此链接以重新启动php-fpm: https://serverfault.com/questions/189940/how-do-you-restart-php-fpm