Zend Framework 1.x,如何在URI中添加语言前缀?

时间:2013-11-07 09:00:03

标签: php zend-framework multilingual

我正在使用ZendFramework构建多语言网站。

关于URL,我希望它像:

http://example.com/lang/module/controller/action

是的,我在bootstrap.php中的_initRoute()创建新的路由器:

public function _initRoutes() {
    $this->bootstrap('FrontController');
    $this->_frontController = $this->getResource('FrontController');
    $router = $this->_frontController->getRouter();

    $langRouter = new Zend_Controller_Router_Route(':lang/', array(
        'lang' => 'en'
    ));

    $defaultRouter = new Zend_Controller_Router_Route(':module/:controller/:action', array(
        'module' => 'default',
        'controller' => 'index',
        'action' => 'index'
    ));

    $defaultRouter = $langRouter->chain($defaultRouter);

    $router->addRoute('langRoute', $langRouter);
    $router->addRoute('defaultRoute', $defaultRouter);

}

它确实有效。

但是还不完整,我有两个问题:

  1. 如何设置默认语言 例如,如果URL是

    http://example.com/module/controller/action

    _initRoutes()仅处理"模块"作为语言

  2. 如何用语言生成网址?

    类似的东西:

    $ this-> url(数组('控制器' =>'','模块' =>'' ;,' action' =>''' lang' =>''))

  3. 你能帮我解决问题吗?

    提前致谢。

0 个答案:

没有答案