这是我坚持的。我正在研究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, , ETC。

在我使用的代码中 $this->get('session')->setLocale('ru_RU'); 改变语言环境。

但是,仅当将语言环境设置为“ en_us”或“ de_de”时,翻译才起作用。在任何其他情况下,它都会返回密钥,而不是值。我尝试使用此代码的翻译

return new Response($this->get('translator')->trans('Please log in').' '.$this->get('session')->getLocale()); 它返回我设置的语言环境。

那么什么会导致这个问题?

有帮助吗?

解决方案 2

我自己找到了答案。只需要清理Symfony的缓存即可。使用的控制台可以这样做。将目录更改为 myProject/app 并使用此命令清洁缓存和日志:

sudo rm -R cache/
sudo rm -R logs/

其他提示

您应该使用Symfony Comand清除缓存

app/console cache:clear --no-debug

然后,如上所述,最终还原在缓存/和日志/文件夹上的写入权限 这里

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top