0

在我的 ZF2 应用程序中,我想检索用于翻译页面的语言。我使用ZendSkeletonApplication作为基础。在Module.php 中,我像这样设置语言环境

public function onBootstrap($e){
  $translator = $e->getApplication()->getServiceManager()->get('translator');
  $translator->setLocale(
      Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE'])
    )
    ->setFallbackLocale('en_US');
}

我可以从Zend\I18n\Translator\Translator检索语言环境fallbackLocale,但是我仍然不知道哪个用于翻译。因为也没有办法(就我没有找到)找出实际加载到翻译器中的语言。如果locale存在翻译,我什至无法测试自己。

也许我在这里遗漏了一些东西。我希望有人能指出这一点。

4

2 回答 2

2

一种选择可能是检索缓存对象并通过重新创建缓存键来检查主要语言环境的存在。查看该loadMessages()方法,缓存结果似乎将包含可用消息的列表。

否则,翻译功能似乎只是尝试第一个语言环境然后回退。

于 2012-09-24T16:41:01.323 回答
0

我决定采用最简单的方法。我也翻译该语言的文本。

于 2012-09-25T08:08:01.813 回答