如何获得ZF3控制器插件内的翻译器
我想创建一个插件来在控制器上使用zend-i18n/translate。在zf2上,我有一个控制器插件可以为我做到这一点,但是在zf3上我无法实现这个功能。我如何在控制器中使用zend-i18n或者通过控制器插件使用zf3?如何获得ZF3控制器插件内的翻译器
========== 我只是找到了我需要在这里ZF DOC:https://docs.zendframework.com/zend-mvc-i18n/services/#mvctranslator-and-translatorfactory
如果你已经配置了翻译为工厂对你module.config.php,你可以注入你的控制器插件。
您几乎可以像the answer that @hkulekci referred to in his comment一样进行操作。
'service_manager' => [
'factories' => [
\Zend\I18n\Translator\TranslatorInterface::class => \Zend\I18n\Translator\TranslatorServiceFactory::class,
]
]
和
'controller_plugins' => [
'invokables' => [
'translate' => \Zend\I18n\View\Helper\Translate::class
]
]
之后,你可以得到翻译插件就像在你的控制器操作方法是这样的:
public someAction(){
$translator = $this->translate;
}
检查Zend Framework documentation或this Zend Framework blog为控制器的更多细节插件管理器。
嗨,我创建了一个名为translate的插件,并注入到serviceManager中,然后在插件内部获得全局MvcTranslator,并且工作正常。但是谢谢。一个问题是,使用View \ Helper \ Translate :: class作为插件的配置正确吗? – rafaelphp
你看这个http://*.com/questions/38293988/zf3-zend-mvc-skeleton-internationalization-not-working – hkulekci
感谢您的答复,但翻译视图我已经配置和工作正常,我需要在控制器上翻译。 – rafaelphp