我正在閱讀有關路由的CakePHP文檔,但是我還無法掌握它。語言和路由
我想實現的是:
- 應該有和沒有在控制器參數的前一個語言參數工作。
- 當沒有給出動作時,它應該轉到前端動作(該函數也有輸入變量)。
編輯
最後,我做我的應用程序邏輯,如果有定義的只有1種語言,不會有lanugage前綴,如果有更多的語言,鏈接將被生成語言前綴(通過覆蓋html助手)和路由將是不同的。否則,當我試圖定義單一語言版本的路由(沒有前綴)時總會有問題。這裏是我的代碼,現在的工作:
(應用程序/配置/ routes.php文件)
/*
* ===================== Input start ===================== *
*/
/**
* Default language
*/
Configure :: write('Config.language', 'mkd');
/**
* Application languages
*/
Configure :: write('Config.languages', array(
'mkd' => 'Македонски',
'eng' => 'English',
));
/**
* ====================== Input end ====================== *
*/
/**
* Counting languages...
*/
Configure :: write('Config.languageCount', count(Configure :: read('Config.languages')));
/**
* If application is multilingual
*/
if(Configure :: read('Config.languageCount') > 1) {
Router::connect('/:language/:controller/:action/*',
array(),
array('language' => implode('|', array_keys(Configure :: read('Config.languages'))))
);
Router::connect('/:language/:controller/*',
array('action' => 'frontend'),
array('language' => implode('|', array_keys(Configure :: read('Config.languages'))))
);
}
/**
* If application has one language
*/
else {
Router::connect('/:controller/*', array('action' => 'frontend'));
}
感謝您的幫助戴夫和kicaj,你的幫助簡化我的這種方法。
閱讀:http://bakery.cakephp.org/articles/kicaj/2013/01/27/internationalization_with_static_and_dynamic_content_routing_and_switching – kicaj
我找不到任何有關語言插件路由的問題 –