在我的ZF2应用程序中,我想检索用于翻译页面的语言。我以ZendSkeletonApplication为基础。在 Module.php 中,我将 Locale 设置为:
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 中检索 locale 和 fallbackLocale ,但后来我还是不知道哪一个用于翻译。因为没有办法(据我没有找到)找出哪些语言实际加载到翻译器中。如果 locale 存在翻译,我甚至无法测试自己。
也许我在这里遗漏了一些东西。我希望有人可以指出这一点。
答案 0 :(得分:2)
一个选项可能是通过重新创建缓存键来检索缓存对象并检查是否存在主要区域设置。查看loadMessages()
方法,缓存结果似乎包含可用消息列表。
否则,翻译函数似乎只是尝试第一个语言环境,然后是回退。
答案 1 :(得分:0)
我决定采用最简单的方法。我也翻译了该语言的文本。