翻译
编辑该页面警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 2.7,不再维护。
读这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。
翻译
“国际化”这个词(通常缩写i18n)是指抽象成字符串的过程和其他应用程序的特定部分为一层,在那里他们可以被翻译和转换根据用户的语言环境(即语言和国家)。对于文本,这意味着包装每一个函数能够翻译文本(或“消息”)为用户的语言:
1 2 3 4 5 6 7 8
/ /文本将* *总是用英文打印转储(“Hello World”);死();/ /文本可以转化为最终用户的语言或/ /默认为英文转储(美元翻译- >反式(“Hello World”));死();
请注意
这个词语言环境大概是指用户的语言和国家。它可以是任何字符串,您的应用程序使用管理翻译和其他格式的差异(如货币格式)。的ISO 639 - 1语言代码,下划线(_
),那么ISO 3166 - 1α2国家代码(如。fr_FR
法国建议/法国)。
在本文中,您将学习如何使用翻译组件在Symfony框架。欧宝娱乐app下载地址你可以阅读的翻译组件文档欧宝体育电话学习更多。总的来说,这个过程有几个步骤:
- 启用和配置欧宝娱乐app下载地址Symfony的翻译服务;
- (即抽象的字符串。“消息”),在调用包装它们
翻译
(“翻译”); - 创建翻译资源/文件每种受支持的语言环境,将每个消息的应用程序;
- 确定,设置和管理用户的语言环境请求和选择在用户的整个会话。
配置
翻译由一个处理翻译
服务,使用用户的语言环境来查找并返回翻译信息。在使用它之前,启用翻译
在你的配置:
- YAML
- XML
- PHP
1 2 3
# app / config / config.yml框架:翻译:{回退:(en)}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
< !——app / config / config。xml - - >< ?xml version = " 1.0 " encoding = " utf - 8 " ? ><容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xmlns:框架=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd //www.oldmanjams.com/schema/dic/symfony //www.oldmanjams.com/schema/dic/symfony/symfony-1.0.xsd”><框架:配置><框架:翻译><框架:回退>在< /框架:回退>< /框架:翻译>< /框架:配置>< /容器>
1 2 3 4
/ / app / config / config . php美元容器- >loadFromExtension (“框架”,数组(“翻译”= >数组(“回退”= >数组(“en”))));
看到翻译细节的回退
键和什么Symfony的时欧宝娱乐app下载地址候不找一个翻译。
翻译中所使用的语言环境是一个存储在请求。这通常是通过设置_locale
在你的路线(见属性如何处理用户的语言环境)。
基本的翻译
翻译文本是通过的翻译
服务(翻译)。翻译的文本块(称为消息),用反式()方法。例如,假设你翻译一个简单的消息从一个控制器:
1 2 3 4 5 6 7 8
/ /……公共函数indexAction(){美元翻译=美元这- >get (“翻译”)- >反式(S欧宝娱乐app下载地址ymfony是伟大的);/ /……}
执行这段代码时,Symfony将尝试翻译消息基于“Sym欧宝娱乐app下载地址fony是伟大的”语言环境
的用户。为此,您需要告诉Symfony如何翻译消息通过“翻译资源”,这通常是一欧宝娱乐app下载地址个文件,它包含一组翻译对于一个给定的语言环境。这种“字典”的翻译可以在几个不同的格式,创建XLIFF被推荐的格式: