代码之家  ›  专栏  ›  技术社区  ›  Peter Moberg

如何使用zend路由器在url中添加本地化

  •  3
  • Peter Moberg  · 技术社区  · 15 年前

    我有一个zend framework站点,它在一个文件routes.in i中设置所有路由。路线如下:

    routes.popular.route = popular/:type/:page/:sortOrder
    routes.popular.defaults.controller = popular
    routes.popular.defaults.action = index
    routes.popular.defaults.type = images
    routes.popular.defaults.sortOrder = alltime
    routes.popular.defaults.page = 1
    routes.popular.reqs.type = \w+
    routes.popular.reqs.page = \d+
    routes.popular.reqs.sortOrder = \w+
    

    在bootstrap.php中,它们被读取并添加到frontcontroller:

    $config = new Zend_Config_Ini(APPLICATION_PATH . ‘/config/routes.ini’);
    $router = $frontController->getRouter();
    $router->addConfig($config,‘routes’);
    

    我想将本地化添加到url,例如www.mysite.com/en/popular、www.mysite.com/sv/popular。做这件事的首选方法是什么?

    1 回复  |  直到 15 年前
        1
  •  2
  •   St.Woland    15 年前

    将默认路由本地化是个好主意,因此我建议使用以下配置:

    routes.default.route = :lang/:controller/:action
    routes.default.defaults.lang = en
    routes.default.defaults.controller = default
    routes.default.defaults.action = index
    
    routes.popular.route = :lang/popular/:type/:page/:sortOrder
    routes.popular.defaults.lang = en
    routes.popular.defaults.controller = popular
    routes.popular.defaults.action = index
    routes.popular.defaults.type = images
    routes.popular.defaults.sortOrder = alltime
    routes.popular.defaults.page = 1
    routes.popular.reqs.type = \w+
    routes.popular.reqs.page = \d+
    routes.popular.reqs.sortOrder = \w+