2010-01-10 115 views
3

我有一個Zend Framework站點,它可以設置文件routes.ini中的所有路由。該路線是這樣的:如何使用Zend路由器在URL中添加本地化

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。這樣做的首選方式是什麼?

+0

我要補充一點,我希望能夠以編程方式設置站點的默認語言(我做不想爲每個路線設置默認語言)。 – 2010-01-18 09:41:35

回答

2

這是有默認路由本地化是一個好主意,所以我建議以下配置:

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+ 
+0

這不會導致我不得不爲每條路線定義默認語言嗎?有沒有設置全局默認語言的方法? – 2010-01-18 09:37:28