gpt4 book ai didi

controller - ZF2 在 Controller 中使用翻译器

转载 作者:行者123 更新时间:2023-12-03 08:20:21 26 4
gpt4 key购买 nike

对于 url 重定向,我需要在 Controller 中翻译一些东西。

我怎样才能访问 $this->translate();在 Controller 中?

谢谢!
缺口

最佳答案

翻译通过 Translator 完成.翻译器是一个对象,例如注入(inject)到 View 助手中,因此如果您调用该 View 助手,它会使用翻译器来翻译您的字符串。对于这个答案,我假设您已经配置了翻译器 just the same as the skeleton application .

最好的方法是使用工厂将其作为依赖项注入(inject)到您的 Controller 中。 Controller 配置:

'controllers' => array(
'factories' => array(
'my-controller' => function($sm) {
$translator = $sm->getServiceLocator()->get('translator');
$controller = new MyModule\Controller\FooController($translator);
}
)
)

和 Controller 本身:
namespace MyModule;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\I18n\Translator\Translator;

class FooController extends AbstractActionController
{
protected $translator;

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

另一种方法是在您的操作中从服务管理器中拉出翻译器,但这不太灵活、可测试性较差且难以维护:
public function fooAction()
{
$translator = $this->getServiceManager()->get('translator');
}

在这两种情况下,您都可以使用 $translator->translate('foo bar baz')翻译你的字符串。

关于controller - ZF2 在 Controller 中使用翻译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14261115/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com