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

时间:2013-12-07 13:06:03

标签: 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 method here
    }
}

现在在这个视图助手中使用translate的最佳方法是什么?

此致

1 个答案:

答案 0 :(得分:2)

最简单的方法是翻译视图助手:

public function __invoke($id)
{
    return $this->view->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翻译视图助手:

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');
    }
}