【问题标题】:Translation handling in Zend Framework 2Zend Framework 2 中的翻译处理
【发布时间】:2013-03-26 18:45:43
【问题描述】:

我正在使用 Zend Framework 2 构建一个多语言应用程序。

目前,我让每个具有可翻译输出的对象都实现 TranslatorAwareInterface 并使用 TranslatorAwareTrait。因此,我将一个翻译器实例注入到每个表单、输入过滤器和控制器对象中,以便翻译表单标签、错误消息和通知。

这是正确的方法,还是有不同的方法不需要将翻译器实例注入每个具有需要翻译的文本的对象中?

(我知道我可以通过向 AbstractValidator 注入默认翻译器来翻译验证错误,但我更喜欢有自己的错误消息)

【问题讨论】:

  • 总而言之,我会说这听起来很合法
  • Manu,您可以通过验证器选项中的验证器错误代码键入您自己的messageTemplates 数组。无需直接在表单或视图中处理它。
  • @Crisp 谢谢你的提示。这就是客户验证错误的解决方案。翻译在控制器和其他对象中生成的表单元素标签和消息怎么样?实体?
  • 对于其他对象,我会说你正在做的方式就是要走的路。表单元素标签和标题的自动翻译将是一个不错的功能,但据我所知,它还没有实现。
  • @Crisp 谢谢,我现在感觉舒服多了 :-) 并且会继续下去。

标签: php zend-framework2


【解决方案1】:

使用zf2的doctrine模块作为orm,让Doctrine扩展gedmo/translatable处理数据翻译https://github.com/l3pp4rd/DoctrineExtensions

要使可翻译功能正常工作,请遵循文档的这一部分: https://github.com/l3pp4rd/DoctrineExtensions/blob/master/doc/zendframework2.md#note-you-may-need-to-provide-additional-settings-for-some-of-the-available-listeners

然后运行架构工具来更新您的数据库。

【讨论】:

  • 我不知道该扩展名,但我看不出这将如何帮助翻译控制器中生成的表单元素标签和消息?
  • 我建议翻译模型...消息和表单元素可以通过 zend_i18n/translate 轻松翻译
  • 在 iSeries 上使用 DB2 的系统怎么样。教义在那里行不通。 ZF2 中的可翻译是 imo 缺少的功能。
猜你喜欢
  • 1970-01-01
  • 2013-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-31
  • 1970-01-01
  • 2013-04-04
相关资源
最近更新 更多