【发布时间】:2012-02-06 17:46:15
【问题描述】:
这就是我所坚持的。 我正在研究 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()); 并返回我设置的语言环境。
那么什么会导致这个问题呢?
【问题讨论】:
-
可能是文件名约定问题?尝试将 messages.ru.yml 重命名为 messages.ru_RU.yml
-
试过了。没有帮助。实际上我猜它只翻译 de_DE 语言环境。即使在 en_US 的情况下,它也需要密钥。是否有任何设置可以设置为仅翻译特定语言?
-
嗨 ArVan,我们遇到了“ru”语言环境的问题,无法从 .xliff 正确获取非 ASCII 字符; stackoverflow.com/questions/20130580/…你有过类似的经历吗?
标签: php symfony translation locale