Zend framework2 Zend框架多语言集成步骤
我是zend framework2的新手,我正在一个多语言集成的网站上工作。请告诉我如何配置内置库和翻译文件,以及如何从视图文件调用它。ZF2已经集成了I18n工具 如何整合 module.config.php 文件*.mo 按照上一步,创建一个文件夹,并使用(简单且良好的应用程序)添加您的en_US.mo(例如) Module.php rq:就我个人而言,我使用一个会话来存储我的区域设置,但这取决于我是否需要使用SEO语言Zend framework2 Zend框架多语言集成步骤,zend-framework2,Zend Framework2,我是zend framework2的新手,我正在一个多语言集成的网站上工作。请告诉我如何配置内置库和翻译文件,以及如何从视图文件调用它。ZF2已经集成了I18n工具 如何整合 module.config.php 文件*.mo 按照上一步,创建一个文件夹,并使用(简单且良好的应用程序)添加您的en_US.mo(例如) Module.php rq:就我个人而言,我使用一个会话来存储我的区域设置,但这取决于我是否需要使用SEO语言 // session container $sessi
// session container
$sessionContainer = new Container('locale');
// test if session language exists
if(!$sessionContainer->offsetExists('mylocale')){
// if not use the browser locale
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
$sessionContainer->offsetSet('mylocale', Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']));
}else{
$sessionContainer->offsetSet('mylocale', 'en_US');
}
}
// translating system
$translator = $serviceManager->get('translator');
$translator ->setLocale($sessionContainer->mylocale)
->setFallbackLocale('en_US');
$mylocale = $sessionContainer->mylocale;
如何使用它
在视图中,只需键入以下内容:
<?php echo $this->translate("Translate that!"); ?>
一些链接可供探索
$\u SERVER['HTTP\u ACCEPT\u LANGUAGE']
设置值,而是从url
像domain.com/en/…
设置值,该怎么办。路线将给我的值为en
,而不是ZF2中要求的en_US
。实际上,我需要它的fr
,它有两个变体。
// session container
$sessionContainer = new Container('locale');
// test if session language exists
if(!$sessionContainer->offsetExists('mylocale')){
// if not use the browser locale
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
$sessionContainer->offsetSet('mylocale', Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']));
}else{
$sessionContainer->offsetSet('mylocale', 'en_US');
}
}
// translating system
$translator = $serviceManager->get('translator');
$translator ->setLocale($sessionContainer->mylocale)
->setFallbackLocale('en_US');
$mylocale = $sessionContainer->mylocale;
<?php echo $this->translate("Translate that!"); ?>