Php Symfony2语言环境检测和翻译
这就是我一直坚持的。 我正在研究Symfony2,并试图使翻译工作正常。但不知怎么的,我不能让它正常工作。这是我得到的。 在config.yml中Php Symfony2语言环境检测和翻译,php,symfony,translation,locale,Php,Symfony,Translation,Locale,这就是我一直坚持的。 我正在研究Symfony2,并试图使翻译工作正常。但不知怎么的,我不能让它正常工作。这是我得到的。 在config.yml中 translator: { fallback: de } session: default_locale: en 在messages.en.yml中,我有以下结构: 请登录:请登录 我还有类似的messages.en_US.yml,messages.ru.yml等文件 在代码中,我使用$this->get('session
translator: { fallback: de }
session:
default_locale: en
在messages.en.yml
中,我有以下结构:
请登录:请登录
我还有类似的messages.en_US.yml
,messages.ru.yml
等文件
在代码中,我使用$this->get('session')->setLocale('ru_-ru')
更改区域设置
但是,只有当语言环境设置为“en_US”或“de_de”时,翻译才起作用。在任何其他情况下,它返回键,而不是值。我试着用这个代码翻译
返回新响应($this->get('translator')->trans('Please login')。$this->get('session')->getLocale())代码>并返回我设置的区域设置
那么是什么导致了这个问题呢?我自己找到了答案。只是需要清理Symfony的缓存。使用控制台执行此操作。将目录更改为myProject/app
,并使用以下命令清理缓存和日志:
sudo rm -R cache/
sudo rm -R logs/
您应该使用symfony命令清除缓存
app/console cache:clear --no-debug
然后最终恢复缓存/和日志/文件夹的写入权限,如前所述可能是文件名约定问题?尝试将messages.ru.yml重命名为messages.ru_ru.yml已尝试。没有帮助。事实上,我猜它只翻译语言环境。即使是en_US,也需要钥匙。是否有任何设置可以设置为仅翻译特定语言?嗨,ArVan,我们遇到了“ru”语言环境的问题,非ASCII字符无法从.xliff中正确提取;您是否经历过类似的情况?:D-这是与MS Windows相当的Symfony“您是否尝试过将其关闭并再次打开?”文档确实提到您在添加新翻译文件时需要清除缓存。也许这只是sudo
的问题,如果命令app/console cache:clear--no debug
一开始不起作用。你试过了吗?我不记得了:)这个问题太老了。无论如何,谢谢你。