在 Zend 框架 1 我可以做
try {
$locale = new Zend_Locale('browser');
} catch (Zend_Locale_Exception $e) {
$locale = new Zend_Locale('en');
}
$registry = Zend_Registry::getInstance();
$registry->set('Zend_Locale', $locale);
但它如何与 Zend Framework 2 配合使用?
最佳答案
我最近发表了关于 Zend Framework 2 以及所有 i18n、l10n 和区域设置如何工作的博客。这对您来说也可能很有趣,因为可以通过多种方式设置所使用的语言环境。
阅读它:Zend Framework 2 - translate, i18n, locale
我个人采用以下方法,然后 - 根据您的结构 - 您可以从数据库、 session 或 cookie 或其他任何地方添加语言环境;)
<?php
namespace FileManager;
use Zend\Mvc\ModuleRouteListener;
class Module
{
public function onBootstrap($e)
{
$translator = $e->getApplication()->getServiceManager()->get('translator');
$translator
->setLocale(\Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']))
->setFallbackLocale('en_US');
}
//...
}
关于translation - 如何从浏览器首选项在 ZF2 中设置语言环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12687821/