Zend framework2 Zend Framework 2(ZF2)动态区域设置

Zend framework2 Zend Framework 2(ZF2)动态区域设置,zend-framework2,zend-locale,Zend Framework2,Zend Locale,我正在寻找一种在我的URL中使用globals向我的ZF2应用程序添加翻译的方法。 是否有任何方法可以同时对整个应用程序执行此操作 典型URL如下所示: 第一部分(en_GB)应用于显示正确的翻译 除此之外,如果可以将此路由器部分设置为可选,那就太好了。 因此,如果我应该转到(不带区域设置部分)我的应用程序,它应该自动采用浏览器区域设置 我希望我足够清楚,如果这个问题需要补充什么,请随时提问 Thanx提前我建议扩展段路由类,并添加可选的区域设置约束和段部分(如果缺少)。在应用程序范围内调用可选

我正在寻找一种在我的URL中使用globals向我的ZF2应用程序添加翻译的方法。 是否有任何方法可以同时对整个应用程序执行此操作

典型URL如下所示:

第一部分(en_GB)应用于显示正确的翻译

除此之外,如果可以将此路由器部分设置为可选,那就太好了。 因此,如果我应该转到(不带区域设置部分)我的应用程序,它应该自动采用浏览器区域设置

我希望我足够清楚,如果这个问题需要补充什么,请随时提问


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],
);