使用翻译
编辑该页面警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 4.2,不再维护。
读这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。
使用翻译
想象你想翻译的字符串“欧宝娱乐app下载地址Symfony是伟大的”法国:
1 2 3 4 5 6 7 8 9 10
使用欧宝娱乐app下载地址\组件\翻译\加载程序\ArrayLoader;使用欧宝娱乐app下载地址\组件\翻译\翻译;美元翻译=新翻译(“fr_FR”);美元翻译- >addLoader (“数组”,新ArrayLoader ());美元翻译- >addResource (“数组”,(“欧宝娱乐app下载地址Symfony是伟大的!”= >“欧宝娱乐app下载地址Symfony est超级!”),“fr_FR”);var_dump (美元翻译- >反式(“欧宝娱乐app下载地址Symfony是伟大的!”));
在这个示例中,消息“欧宝娱乐app下载地址Symfony是伟大的!”将翻译成语言环境设置在构造函数中(fr_FR
)如果消息的信息存在于一个目录。
创建翻译
创建翻译文件的行为是一个重要的部分(通常缩写为“本地化”L10n)。翻译文件包含一系列id-translation对给定域和语言环境。源标识符的个人翻译,并可以在主要地区(如消息。“欧宝娱乐app下载地址Symfony是伟大的”)您的应用程序或一个惟一的标识符(例如欧宝娱乐app下载地址symfony.great
下面,请参阅侧栏)。
翻译文件可以创建几个格式,XLIFF被推荐的格式。这些文件被解析类装入器之一。
- XML
- YAML
- PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
< ?xml version = " 1.0 " ? ><xliff版本=“1.2”xmlns=“urn: oasis:名称:tc: xliff文档:1.2”><文件通过读=“en”数据类型=“明文”原始=“file.ext”><身体><trans-unitid=“欧宝娱乐app下载地址symfony_is_great”><源>欧宝娱乐app下载地址Symfony是伟大的< /源><目标>我Symfon欧宝娱乐app下载地址y< /目标>< /trans-unit><trans-unitid=“欧宝娱乐app下载地址symfony.great”><源>欧宝娱乐app下载地址symfony.great< /源><目标>我Symfon欧宝娱乐app下载地址y< /目标>< /trans-unit>< /身体>< /文件>< /xliff>
迫使译者语言环境
翻译一个消息时,译者使用指定的区域或回退
现场如果有必要。你也可以手动指定地区用于翻译:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
美元翻译- >反式(S欧宝娱乐app下载地址ymfony是伟大的[],“消息”,“fr_FR”);美元翻译- >transChoice (“{0}没有苹果|{1}有一个苹果|)1,正[有%数%苹果',10[],“消息”,“fr_FR”);
请注意
从3.2 Symfony开始欧宝娱乐app下载地址,第三个参数transChoice ()
是可选的唯一使用占位符是什么时候%数%
。在以前的Symfony版欧宝娱乐app下载地址本你需要总是定义:
1 2 3 4 5 6 7
美元翻译- >transChoice (“{0}没有苹果|{1}有一个苹果|)1,正[有%数%苹果',10,(“%数%”= >10),“消息”,“fr_FR”);
检索信息目录
如果您想使用相同的翻译目录以外的应用程序(例如,使用翻译在客户端),可以获取原始翻译信息。指定所需的语言环境:
1 2 3 4 5
美元目录=美元翻译- >getCatalogue (“fr_FR”);美元消息=美元目录- >所有();而(美元目录=美元目录- >getFallbackCatalogue ()) {美元消息= array_replace_recursive (美元目录- >所有(),美元消息);}
的美元的消息
变量将有以下结构:
1 2 3 4 5 6 7 8 9
(“消息”= > [“Hello world”= >“你好,兜售《世界报》”),“验证”= > [“价值不应该是空的= >“不doit的数值可能见的,“价值太长”= >”的美国东部时间太长”]];
添加笔记翻译内容
有时译者需要额外的上下文来决定如何更好地翻译一些内容。这个上下文可以提供笔记,评论的集合用于存储终端用户可读信息。唯一的格式,它支持加载和倾销notes是XLIFF 2.0版。
如果2.0 XLIFF文档包含<笔记>
节点,它们被自动加载/倾倒在使用该组件在一个Symfony应用程序:欧宝娱乐app下载地址
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
< ?xml version = " 1.0 " encoding = " utf - 8 " ? ><xliffxmlns=“urn: oasis:名称:tc: xliff文档:2.0”版本=“2.0”srcLang=“- fr”trgLang=“en - us”><文件id=“messages.en_US”><单位id=“LCa0a2j”的名字=“原创内容”><笔记><请注意类别=“状态”>新< /请注意><请注意类别=“批准”>真正的< /请注意><请注意类别=“节”优先级=“1”>用户登录< /请注意>< /笔记><段><源>原创内容< /源><目标>翻译的文章内容< /目标>< /段>< /单位>< /文件>< /xliff>
使用独立的翻译组件时,调用setMetadata ()
目录的方法并通过notes作为数组。这是例如所需的代码生成之前的XLIFF文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
使用欧宝娱乐app下载地址\组件\翻译\自动倾卸车\XliffFileDumper;使用欧宝娱乐app下载地址\组件\翻译\MessageCatalogue;美元目录=新MessageCatalogue (“en_US”);美元目录- >添加([“原创内容”= >“翻译的文章内容”]);美元目录- >setMetadata (“原创内容”,(“笔记”= > [[“类别”= >“状态”,“内容”= >“新”]、[“类别”= >“批准”,“内容”= >“真正的”]、[“类别”= >“节”,“内容”= >“用户登录”,“优先”= >' 1 ']]]);美元自动倾卸车=新XliffFileDumper ();美元自动倾卸车- >formatCatalogue (美元目录,“消息”,(“default_locale”= >“fr_FR”,“xliff_version”= >“2.0”]);