2011-09-16 36 views
1

我想國際化都在我的CakePHP的網站具有以下格式的網頁:路由的CakePHP的國際化

  • /EN /約
  • /ZH /約(爲中國版)

我已經有了所有在router.php定義的路由,例如。

Router::connect('/about/*', array('controller' => 'pages', 'action' => 'about')); 
Router::connect('/login/*', array('controller' => 'users', 'action' => 'login')); 
// etc... 

如何讓這個/語言/前綴自動應用到所有的路由器連接::()■?

在CakePHP的圖書館router.php,有一個類似路由的例子,給出這樣的:

Router::connect('/:lang/:controller/:action/:id', 
       array(), array('id' => '[0-9]+', 'lang' => '[a-z]{2}')); 

然而,這僅適用於默認的路由類型(例如/頁/約/ ),而不是像我的例子那樣特別定義的/ about。

換句話說,它會工作時,用戶訪問/ ZH /頁/約而不是當用戶訪問/ ZH /約

任何建議或做我必須手動重寫我的所有路由器連接::()包括朗?

回答

2

試試這個:

Router::connect('/:lang/:controller', array(), array('lang' => '[a-z]{2}')); 
    Router::connect('/:lang/:controller/:action', array(), array('lang' => '[a-z]{2}')); 
    Router::connect('/:lang/:controller/:action/*', array(), array('lang' => '[a-z]{2}'));