这就是我所坚持的。 我正在研究Symfony2并试图使翻译工作。但不知何故,我无法按原样开展工作。这是我得到的。 在config.ymlSymfony2语言环境检测和翻译
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());
并且它返回我设置的语言环境。
那么会导致这个问题呢?
也许文件名惯例问题?尝试将messages.ru.yml重命名为messages.ru_RU.yml – madflow 2012-01-10 10:29:31
已尝试过。没有帮助。其实我猜它只翻译* de_DE语言环境。即使在en_US的情况下,也需要密钥。有没有可能设置为仅翻译特定语言的设置? – ArVan 2012-01-10 10:35:20
嗨ArVan我们遇到了'ru'语言环境问题,非ASCII字符无法从.xliff正确读取; http://stackoverflow.com/questions/20130580/symfony2-translations-and-locale-with-not-ascii-symbols 你有没有经历过类似的事情? – ChatCloud 2013-11-21 20:50:34