4

コントローラーで zend-i18n/translate を使用するプラグインを作成したいと考えています。zf2 にはこれを行うコントローラー プラグインがありますが、zf3 ではこれを機能させることができませんでした。コントローラー内で zend-i18n を使用する方法、または zf3 のコントローラー プラグイン経由で使用するにはどうすればよいですか?

========== zf doc で必要なものを見つけました: https://docs.zendframework.com/zend-mvc-i18n/services/#mvctranslator-and-translatorfactory

module.config.php のファクトリとして既にトランスレーターを構成している場合は、コントローラー プラグインに挿入できます。

4

2 に答える 2

2

@hkulekci が彼のコメントで言及した回答と実質的に同じことができます。

'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 のドキュメントまたはこの Zend Framework ブログを確認してください。

于 2016-12-19T13:16:02.367 に答える