【问题标题】:Zend Framework 2 Translator, setLocale doesn't affect anythingZend Framework 2 Translator,setLocale 不影响任何东西
【发布时间】:2014-05-05 15:12:58
【问题描述】:

我似乎浪费了过去几个小时试图找到解决这个看似简单的问题的方法。 交易很简单,我希望能够为我的翻译服务动态设置语言环境,所以

$this->translate('some string')

在我看来使用会返回正确的翻译字符串。 到目前为止,我发现的每一个解决方案都指向一个简单的 sn-p 代码 在Module::onBoostrap()

$e->getApplication()->getServiceManager()->get('Translator')->setLocale('some_LOCALE');

它没有错误,没有警告,运行平稳,只有一个异常,它不影响任何东西,上面的行(翻译助手)仍然使用在 module.config.php 中定义的语言环境,我已经尝试了无数次方法,尝试通过 MVC 的不同部分设置语言环境(上帝禁止我什至尝试使用以下方法在我的视图中直接更改它:

$this->plugin('translate')->getTranslator()->setLocale('some_LOCALE')

总结一下:当从模块配置中设置语言环境时,翻译器可以正常工作,在其他任何地方设置它似乎没有任何效果。

任何帮助、提示、建议、解决方案指针都将非常受欢迎。

提前致谢

【问题讨论】:

    标签: php localization zend-framework2 language-translation


    【解决方案1】:

    我在回答自己,因为这就是原因。 答案是: 由于某种远远超出我对 ZendFramework 理解的原因,我的实例决定使用服务 MvcTranslator 而不是 Translator,我对它可能发生的原因的想法指向没有安装 php-intl,但这是一个盲目的猜测。

    为了后代:

    $e->getApplication()->getServiceManager()->get('MvcTranslator')->setLocale('some_LOCALE');
    

    那个对我来说按预期工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 2017-10-13
      • 2014-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      相关资源
      最近更新 更多