如何在 Symfony 中创建多语言页面?在 Symfony 1.0 中,Jobeet tutorial 有很好的描述。但是现在在 symfony.com 上,我还没有看到与页面翻译相关的东西。 在 symfony 1.4 中,echo __('text');使用,但现在在 Symfony 2 中使用 TWIG。
最佳答案
在 Symfony2 网站上有一个文档部分。
您可以在这里查看:Translations
基本上,您可以在路由中访问名为 _locale
的特殊属性,该属性放在您的 url 中,将用于在 session 中设置区域设置。请注意,使用此方案,locale 值由 Symfony2 自动设置到 Session
http://www.host.com/en/contact // English version
http://www.host.com/fr/contact // French version
您还可以在路由中指定默认的 _locale
值,这样就不必在 url 中提供区域设置。
http://www.host.com/contact // English version if default _locale is 'en'
然后,在 twig 中,您使用特殊的转换器 trans
和 transchoice
来翻译消息。您的消息可以是 key 或用作 key 的自然语言消息,通常为英文。
{{ 'user.prompt.welcome' | trans }} {# Key message #}
{{ 'Welcome to our site' | trans }} {# Natural language message #}
翻译消息的语言环境是从 session 中获取的,因此在 session 中更改语言环境(通过 url 或以编程方式),会将翻译更改为另一件事。
这在后台使用了 translator
服务。
关于php - Symfony2 和 Twig 中的多语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8271125/