如何在Symfony中创建多语言页面?在Symfony 1.0中,Jobeet教程有很好的描述。但现在在symfony.com上,我还没有看到与翻译页面有关的事情。 在symfony 1.4中,echo __('text');使用,但现在使用Symfony 2 TWIG。
答案 0 :(得分:19)
Symfony2网站上有关于此的文档部分。
您可以在此处查看:Translations
基本上,您可以在路由中访问名为_locale
的特殊属性,该属性放在您的网址中,并将用于在会话中设置区域设置。请注意,使用此方案,语言环境值将自动设置为Symfony2的Session
http://www.host.com/en/contact // English version
http://www.host.com/fr/contact // French version
您还可以在路线中指定默认的_locale
值,因此不必在网址中提供区域设置。
http://www.host.com/contact // English version if default _locale is 'en'
然后,在树枝中,您使用特殊变换器trans
和transchoice
来翻译消息。您的消息可以是用作密钥的密钥或自然语言消息,通常是英文。
{{ 'user.prompt.welcome' | trans }} {# Key message #}
{{ 'Welcome to our site' | trans }} {# Natural language message #}
翻译消息的语言环境取自会话,因此更改会话中的语言环境(通过url或programmaticaly)会将翻译更改为其他内容。
这使用了引擎盖下的translator
服务。