Symfony2 和 Twig 中的多语言
如何在 Symfony 中创建多语言页面?在Symfony 1.0中,Jobeet教程有很好的描述。但现在在 symfony.com 上,我还没有看到与页面翻译相关的东西。 在 symfony 1.4 中, echo __('text');使用,但现在在 Symfony 2 中使用 TWIG。
how to create multilanguage page in Symfony? In Symfony 1.0, Jobeet tutorial has very good description. But now on symfony.com, i haven't seen somethings related to translation of page.
In symfony 1.4, echo __('text'); is used, but now in Symfony 2 TWIG is used.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Symfony2 网站上有一个关于此的文档部分。
您可以在这里查看: 翻译
基本上,您可以在路由中访问名为
_locale
放入您的网址中,将用于在会话中设置区域设置。请注意,使用此方案,Symfony2 会自动将语言环境值设置到Session
中。您还可以在路由中指定默认的
_locale
值,因此不必提供网址中的区域设置。然后,在 twig 中,您使用特殊的转换器
trans
和transchoice
来翻译消息。您的消息可以是密钥,也可以是用作密钥的自然语言消息,通常是英语。翻译消息的区域设置是从会话中获取的,因此更改会话中的区域设置(通过 url 或以编程方式)会将翻译更改为其他内容。
这在底层使用了
translator
服务。There is a documentation section on this on the Symfony2 website.
You can check it here: Translations
Basically, you have access in the routing to a special attribute named
_locale
that is put in your url and will be used to set the locale in the session. Note that using this scheme, the locale value is automatically set into theSession
by Symfony2You can also specify a default
_locale
value in your routes so it is not mandatory to provide the locale in the url.Then, in twig, you use the special transformer
trans
andtranschoice
to translate messages. Your messages can be a key or an natural language message that is used as the key, usually in english.The locale to translate the message is taken from the session, so changing the locale in the session (via the url or programmaticaly), will change the translation to another thing.
This uses the
translator
service under the hood.