/*
方法一: 使用yii-multilanguage 扩展
优:设置简单,使用便捷,容错性强,可以对默认语言 en_us进行再翻译
缺:url结构变化,对SEO可能有部分负面影响
网址:https://github.com/mishamx/yii-multilanguage
*/
//下载扩展后  解压文件到对应目录  url/protected/extensions/yii-multilanguage/MLUrlManager.php
//查看 readme 中的说明内容,修改 config/main 中的 urlManager 设置
// languages 数组中增删自己需要的语言,如:zh_cn , zh_tw , en_us 等

//创建对应的翻译文件  如:
/* url/protected/messages/
                        ./zh_cn/        main.php    '首页','Test'=>'测试',);
                        ./zh_tw/        main.php    '首頁','Test'=>'測試',);
                        ./en_us/        main.php    'Home Page','Test'=>'Try Now',);
*/
//视图或布局对应位置 调用示例如下
echo CHtml::link('简体中文',Yii::app()->UrlManager->changeLanguage('zh_cn')) .'|'.
     CHtml::link('繁体中文',Yii::app()->UrlManager->changeLanguage('zh_tw')) .'|'.
     CHtml::link('英文',Yii::app()->UrlManager->changeLanguage('en_us')) .'
';
//在需要使用翻译部分的地方  使用示例如下
echo Yii::t('main','Test');
//参数一 'main'为对应翻译目录下的文件名, 参数二'Test'为翻译文件所返回数组中的 键名
// 最终输出对应键值,若无键值则直接输出键值

/*************************************************************************************************************
方法二:修改 Controller 初始化操作
优: 比较直观
缺点: 不同页面的语言链接即时生成,可能对加载速度及部分性能造成影响
*/
//同方法一,创建对应的目录及翻译文件
//添加如下代码至 url/protected/components/Controller.php 文件中
        public function init() 
        {  
            //Yii::app()->charset = 'utf-8';//防止多语言乱码
            $lang = Yii::app()->request->getParam('lang');
            if(isset($lang) && $lang !="")
             {
                 Yii::app()->language= $lang;
                 setcookie('lang',$lang);
             }else if(isset($_COOKIE['lang']) && $_COOKIE['lang'] != "")
             {
                 Yii::app()->language=$_COOKIE['lang'];
             }else{
                //Yii::app()->language = 'en_us';//en_us 为系统默认语言,若部分英文翻译不同,语言目录请勿命名为en_us
             }
        }
        public function langurl($lang = 'en_us'){ //用于生成多语言链接
            if($lang == Yii::app()->language) return '';
            $current_uri = Yii::app()->request->requestUri;
            if(strrpos($current_uri,'lang=' ))
            {
                //防止生成的 url 传值出现重复
                $langstr = 'lang='.Yii::app()->language;
                $current_uri = str_replace ('?'.$langstr.'&','?', $current_uri);
                $current_uri = str_replace ('?'.$langstr,'', $current_uri);
                $current_uri = str_replace ('&'.$langstr,'', $current_uri);
            }
            if(strrpos($current_uri,'?' ))
                return $current_uri.'&lang='.$lang;
            else
                return $current_uri.'?lang='.$lang;
        }
       
///在视图或布局文件中创建 语言切换链接 示例
echo CHtml::link ( ' 中文 ' , $this->langurl('zh_cn')) . '| ' . CHtml::link ( 'English' ,$this->langurl('en_us')) ;
//在需要使用翻译部分的地方  使用示例如下
echo Yii::t('main','Test');
/******************************************************************************************/