Решение найдено, может полезно кому то будет.
Итак, создаем в components класс Languages
<?php
class Languages extends CApplicationComponent
{
/**
* @var boolean enable language component.
*/
public $useLanguage=false;
/**
* @var boolean auto detect language if not set.
*/
public $autoDetect=false;
/**
* @var array allowed languages.
*/
public $languages=array('ru','ro');
/**
* @var array languages titles for link.
*/
public $languagesTitles=array('ru'=>'Russian','ro'=>'Romana');
/**
* @var string default language.
*/
public $defaultLanguage='ro';
/**
* @var string hidden input id.
*/
public $id='siteLang';
/**
* @return void
*/
public function init()
{
if($this->useLanguage)
$this->initLanguage();
}
/**
* @return void
*/
private function initLanguage()
{
$language=Yii::app()->session->itemAt('language');
if($language===null && $this->defaultLanguage)
$language=$this->defaultLanguage;
if($language===null && $this->autoDetect)
$language=Yii::app()->getRequest()->getPreferredLanguage();
$languageId=array_search($language, $this->languages);
$language=$this->languages[$languageId===false ? 0 : $languageId];
Yii::app()->session['language']=$language;
Yii::app()->setLanguage($language);
}
}
в любом контролере создаем действие к примеру actionChange
public function actionChange()
{
if (isset($_GET['lang']))
Yii::app()->session['language'] = $_GET['lang'];
if (isset(Yii::app()->session['language']))
Yii::app()->language = Yii::app()->session['language'];
$this->redirect(array(/*страница*/));
}
далее в config/main.php дописываем следующие строчки
....
'preload'=>array('log','languages',), //обязательно
....
'components'=>array(
....
'languages'=>array(
'class'=>'Languages',
'useLanguage'=>true,
'autoDetect'=>true,
'languages'=>array('ru','ro',),//'en','ro',
'languagesTitles'=>array('ru'=>'Russian','ro'=>'Romanian'),
),
ну и собственно ссылки переключения выглядят следующим образом
<a href="<?echo Yii::app()->CreateUrl('<controller>/change',array('lang'=>'ru'));?>">Русский</a>
<a href="<?echo Yii::app()->CreateUrl('<controller>/change',array('lang'=>'ro'));?>">Romana</a>
<controller> - контролер где у вас ваша функция actionChange