添加自定义格式支持

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.7,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

添加自定义格式支持

有时,你需要处理自定义格式的翻译文件。翻译组件是足够灵活以支持这一点。只创建一个加载器加载(翻译),可选的翻车机(转储翻译)。

假设您有一个自定义的格式翻译使用一行定义为每个消息翻译和括号包装和消息的关键。翻译文件是这样的:

1 2 3
(欢迎)(接待处)(再见)(再见)(你好)(你好)

创建一个自定义加载程序

定义一个自定义加载程序能够读取这些文件,您必须创建一个新类,它实现了LoaderInterface。的load ()方法将得到一个文件名和解析成一个数组。然后,它将创建目录,将返回:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日
使用ob娱乐下载\组件\翻译\MessageCatalogue;使用ob娱乐下载\组件\翻译\加载程序\LoaderInterface;MyFormatLoader实现了LoaderInterface{公共函数负载(美元资源,美元语言环境,美元=“消息”){美元消息=数组();美元=文件(美元资源);foreach(美元作为美元){如果(preg_match (/ \ (([^ \)]+)\ \ (([^ \]+)\)/ ',美元,美元匹配)){美元消息(美元匹配(1]]=美元匹配(2];}}美元messageCatalogue=MessageCatalogue (美元语言环境);美元messageCatalogue- >add (美元消息,美元);返回美元messageCatalogue;}}

一旦创建,它可以用作任何其他装载机:

1 2 3 4 5 6 7 8
使用ob娱乐下载\组件\翻译\翻译;美元翻译=翻译(“fr_FR”);美元翻译- >addLoader (“my_format”,MyFormatLoader ());美元翻译- >addResource (“my_format”,__DIR__“/翻译/ messages.txt”,“fr_FR”);var_dump (美元翻译- >反式(“欢迎”));

它将打印“招待”

创建一个自定义自动倾卸车

还可以创建一个定制的翻车机的格式,这是有用的在使用提取命令。为此,一个新的类实现DumperInterface必须创建。写内容转储到一个文件中,扩展FileDumper类将节省几行:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
使用ob娱乐下载\组件\翻译\MessageCatalogue;使用ob娱乐下载\组件\翻译\自动倾卸车\FileDumper;MyFormatDumper扩展FileDumper{受保护的函数格式(MessageCatalogue美元消息,美元=“消息”){美元输出=;foreach(美元消息- >(美元)作为美元= >美元目标){美元输出= sprintf (。”(% s) (% s) \ n”,美元,美元目标);}返回美元输出;}受保护的函数getExtension(){返回“三”;}}

format ()方法创建输出的字符串,将使用的dump ()FileDumper类的方法来创建该文件。可以使用自动倾卸车像其他内置翻斗车。在接下来的例子中,翻译YAML文件中定义的消息倒到一个文本文件,自定义格式:

1 2 3 4 5 6 7
使用ob娱乐下载\组件\翻译\加载程序\YamlFileLoader;美元加载程序=YamlFileLoader ();美元翻译=美元加载程序- >负载(__DIR__“/翻译/ messages.fr_FR.yml”,“fr_FR”);美元自动倾卸车=MyFormatDumper ();美元自动倾卸车- >转储(美元翻译,数组(“路径”= >__DIR__' /转储'));
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。