Zend framework2 如何在视图助手中使用translate方法?

Zend framework2 如何在视图助手中使用translate方法?,zend-framework2,Zend Framework2,假设我们有如下示例视图帮助程序代码: namespace Product\View\Helper; use Zend\View\Helper\AbstractHelper; class ProductType extends AbstractHelper { public function __invoke($id) { return $this->translate('Super extra product'); # How to use this

假设我们有如下示例视图帮助程序代码:

namespace Product\View\Helper;

use Zend\View\Helper\AbstractHelper;

class ProductType extends AbstractHelper
{

    public function __invoke($id)
    {
        return $this->translate('Super extra product'); # How to use this method here
    }
}
现在,在这个视图帮助器中使用translate的最佳方式是什么


关于,最简单的方法是翻译视图帮助器:

public function __invoke($id)
{
    return $this->view->translate('Super extra product');
}
class ProductType extends AbstractHelper    
{
    protected $serviceManager;

    public function __construct($serviceManager)
    {
        $this->serviceManager = $serviceManager;
    }

    public function __invoke($id)
    {
       return $this->serviceManager->get('translator')->translate('Super extra product');
    }
}
您还可以使用
ServiceManager
执行翻译或其他操作。 在
Module.php
中,更改
getViewHelperConfig
以传递
ServiceManager

public function getViewHelperConfig()
{
    return array(
        'factories'=>array(
                'ProductType'=>function ($helperPluginManager){
                    return new \Product\View\Helper\ProductType($helperPluginManager->getServiceLocator());
                }
        )
    );      
}
现在,您可以使用
ServiceManager
在视图帮助器中翻译:

public function __invoke($id)
{
    return $this->view->translate('Super extra product');
}
class ProductType extends AbstractHelper    
{
    protected $serviceManager;

    public function __construct($serviceManager)
    {
        $this->serviceManager = $serviceManager;
    }

    public function __invoke($id)
    {
       return $this->serviceManager->get('translator')->translate('Super extra product');
    }
}