这就是我所坚持的。 我正在研究Symfony2并尝试使翻译工作。但不知何故,我无法让它按预期工作。这就是我得到的。 在config.yml
中translator: { fallback: de }
session:
default_locale: en
在messages.en.yml
我有这个结构:
Please log in: Bitte melden Sie sich an
我也有messages.en_US.yml
,messages.ru.yml
等的类似文件。
在代码中,我使用$this->get('session')->setLocale('ru_RU');
来更改区域设置。
但只有当语言环境设置为“en_US”或“de_DE”时,翻译才有效。在任何其他情况下,它返回键,而不是值。我尝试使用此代码进行翻译
return new Response($this->get('translator')->trans('Please log in').' '.$this->get('session')->getLocale());
并返回我设置的语言环境。
那么什么会导致这个问题?
答案 0 :(得分:5)
您应该使用symfony命令清除缓存
app/console cache:clear --no-debug
然后最终恢复对{/ 3}}
所述的缓存/和日志/文件夹的写入权限答案 1 :(得分:2)
我自己找到了答案。只需要清理Symfony的缓存。使用控制台这样做。将目录更改为myProject/app
并使用此命令清理缓存和日志:
sudo rm -R cache/
sudo rm -R logs/