【发布时间】:2012-11-09 12:06:24
【问题描述】:
前段时间,我开始翻译我正在处理的 Symfony 2.1 网站,使用 URL 中通过 /{ _locale } 的“正确方式”。现在,大多数路由的翻译工作正常,但其中一些(/login、/register、...)一直使用默认语言(在本例中为 fr),因为它们的 { _locale } 部分没有网址。
通过调试面板,我意识到语言环境实际上并没有通过 url 导航更改(不像 this 让我相信的那样)。
然后我去了there,在那里我找到了设置侦听器的信息和链接,以便根据调用的路径更改会话区域设置。 所有默认语言环境声明(在 config.yml 和侦听器本身中)都是“fr”。
当我切换语言时,我实际上可以在调试面板上看到会话区域设置发生了变化。但是,翻译似乎被破坏了:即使默认语言是法语,并且会话区域设置为“fr”,每个翻译位都是用英语进行的。
这可能是从哪里来的?我该如何解决?
提前致谢。
更多技术信息:
routing.yml:
AuraeLCUserBundle:
resource: "@AuraeLCUserBundle/Resources/config/routing.yml"
prefix: /{_locale}/
defaults: { _locale: fr }
requirements:
_locale: en|fr
树枝示例:
<p>{{ 'layout.greeting.welcome'|trans({}, 'AuraeLCUserBundle') }}</p>
【问题讨论】:
标签: symfony translation symfony-2.1