請教:
我想作一個多語系網站 可以切換 英文 簡體中文 繁體中文 日文 等語系切換功能
但我又不想在 給個連接網址上 都加上 &lang=xxxx 這個變數傳遞的方式 單又不採用session 以免造成性能降低
要使用 cookie
但 Yii 的 cookie 有加密防駭功能
我在 main.php
return array(
'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
'name'=>'site',
'defaultController'=>'site',
// preloading 'log' component
'preload'=>array('log'),
// autoloading model and component classes
'import'=>array(
'application.models.*',
'application.components.*',
'application.extensions.*',
'system.zii.widgets.*',
),
// application-level parameters that can be accessed
// using Yii::app()->params['paramName']
//'params'=>require(dirname(__FILE__).'/params.php'),
'language'=>empty($_GET['lang'])?Yii::app()->request->cookies['lang']->value:$_GET['lang'],
'theme'=>'hundred',
// application components
'components'=>array(
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
//'class'=>'CFileLogRoute',
'class'=>'CDbLogRoute',
'levels'=>'trace, info, error, warning, myInfo',
//'categories'=>'system.*',
//'categories'=>'system.db.*',
'autoCreateLogTable' => true,
'connectionID'=>'db',
'logTableName' => 'DBlog',
),
),
),
'request'=>array(
'enableCookieValidation'=>true,
'enableCsrfValidation'=>true,
),
),
);
上面 ‘language’=>empty($_GET[‘lang’])?Yii::app()->request->cookies[‘lang’]->value:$_GET[‘lang’],
這一行 因為 Yii 尚未執行 所以 Yii::app()->request->cookies[‘lang’]->value 會讀不到數據
這樣 我就不能運用到 cookie 的變數
只能 每個地方的連接點 都加上 &lang=xxxx 只能這樣嗎?
請問有大大可以提供 變通方式嗎?
謝謝