Zend framework2 Zend Framework 2(ZF2)动态区域设置
我正在寻找一种在我的URL中使用globals向我的ZF2应用程序添加翻译的方法。 是否有任何方法可以同时对整个应用程序执行此操作 典型URL如下所示: 第一部分(en_GB)应用于显示正确的翻译 除此之外,如果可以将此路由器部分设置为可选,那就太好了。 因此,如果我应该转到(不带区域设置部分)我的应用程序,它应该自动采用浏览器区域设置 我希望我足够清楚,如果这个问题需要补充什么,请随时提问Zend framework2 Zend Framework 2(ZF2)动态区域设置,zend-framework2,zend-locale,Zend Framework2,Zend Locale,我正在寻找一种在我的URL中使用globals向我的ZF2应用程序添加翻译的方法。 是否有任何方法可以同时对整个应用程序执行此操作 典型URL如下所示: 第一部分(en_GB)应用于显示正确的翻译 除此之外,如果可以将此路由器部分设置为可选,那就太好了。 因此,如果我应该转到(不带区域设置部分)我的应用程序,它应该自动采用浏览器区域设置 我希望我足够清楚,如果这个问题需要补充什么,请随时提问 Thanx提前我建议扩展段路由类,并添加可选的区域设置约束和段部分(如果缺少)。在应用程序范围内调用可选
Thanx提前我建议扩展段路由类,并添加可选的区域设置约束和段部分(如果缺少)。在应用程序范围内调用可选变量,如“locale” 然后在主模块引导中创建一个“路由”事件,一旦路由匹配,该事件将触发。被激发的回调函数将通过传递的事件访问RouteMatch对象,使您能够访问“locale”值。然后,您可以执行一些检查并设置应用程序区域设置。@DrBeza 谢谢你的回答。我不知道这是否正确,但我创建了下一个解决方案: 在/config/global.php中,我添加了这个部分
'translator' => array(
'locale' => 'nl_NL',
'translation_file_patterns' => array(
array(
'type' => 'phpArray',
'base_dir' => __DIR__ . '/../../language',
'pattern' => '%s.php',
),
),
),
在/module/[modulename]/config/module.config.php中,我添加了这个部分来设置包含区域设置的URL的第一部分
'router' => array(
'routes' => array(
'user' => array(
'options' => array(
'route' => '[/:lang]/user[/:action][/:id]',
'constraints' => array(
'lang' => '([a-z]{2})+(_)+([A-Z]{2})',
),
),
),
),
),
在/config/local.php中,我添加了以下代码以从URL获取区域设置:
http://domain.com/[现场][模块][控制器]
我添加了此部分以动态加载区域设置:
return array(
'translator' => array(
'locale' => $segment[1],
);
return array(
'translator' => array(
'locale' => $segment[1],
);