DB ZF2的翻译

时间:2014-03-25 22:03:29

标签: zend-framework2 translation zend-translate

我有两个字段的数据库 - translation.nametranslation.value

可以在ZF2中创建自定义翻译器,就像使用数据库翻译的标准$this->translate("SomeKey");一样?请告诉我如何在我的项目中实现它?

1 个答案:

答案 0 :(得分:1)

您所寻找的只是一个简单的ViewHelper,它取代了当前分配给ViewHelper的{​​{1}}。

基本上你需要将它添加到你的配置中:

$this->translate()

然后你需要编写实现'view_helpers' => [ 'factories' => [ 'translate' => 'My\View\Helper\Factory\TranslateFactory' ] ] 的Factory类。然后,此工厂将创建您的实际FactoryInterface。您需要通过Factory执行此操作,因为您的ViewHelper将数据库访问权限作为依赖项。此外,您需要将当前使用的ViewHelper注入locale

这让我想到最后一点:那是什么样的翻译表?任何翻译表都应支持多种语言,要么添加语言密钥,要么根本不使用数据库。

最终:一定要赶快行动吧!如果一个密钥已翻译一次,它不可能随时更改,所以请将其缓存,并且以后不要进行不必要的数据库调用!请确保您的缓存仅运行一个文件,这样您就不会进行5000个I / O调用。