语言支持

时间:2024.4.27

对于下表中没有列出来的语言mtk均不支持,如果需要请按照下面的FAQ自行添加。

语言支持

语言支持

语言支持


第二篇:(4)多语言支持


多语言支持篇

(1)复制Yii Framework/ messages下的config文件到项目 的protected/messages目录下,支持的语言根据需要进行修改(比如需要中、繁,英):

'languages' => array('zh_cn', 'zh_tw', 'en'),

'sourceLanguage' => 'zh_cn',

(2)在protected/components/Controller.php添加方法

public function init() {

if (isset($_GET['setlang'])) {

setcookie("setlang", $_GET['setlang'], time() + 3600, '/');

$_COOKIE['setlang'] = $_GET['setlang'];

}

if (isset($_COOKIE['setlang'])) {

Yii::app()->language = $_COOKIE['setlang'];

}

}

//额外的知识点,输出调试方法,在项目全局$this->pr()可以调用调试程序: public function pr($pr, $exit = false) {

echo '<pre>';

print_r($pr);

echo '</pre>';

if ($exit) {

exit();

}

}

(3)在protected/config/main.php最前面添加代码:

if (isset($_GET['setlang']) && !empty($_GET['setlang'])) {

setcookie("setlang", $_GET['setlang'], time() + 3600, '/');

$_COOKIE['setlang'] = $_GET['setlang'];

}

数组可添加:

'language'=>'zh_cn',

'sourceLanguage'=>'en',

(4)方法一:页面下拉框根据用户设置

<select name="footer_preferedlanguage" onChange="window.location='?setlang='+this.options[this.selectedIndex].value">

<option value="" <?php if (isset($_GET['setlang']) && $_GET['setlang'] == '') echo 'selected';?> ><?php echo Yii::t('index', 'Choose your preferred language') ?></option>

<option value="zh_cn" <?php if (isset($_GET['setlang']) && $_GET['setlang'] == 'zh_cn') echo 'selected';?>>中文(简体)</option>

<option value="en" <?php if (isset($_GET['setlang']) && $_GET['setlang'] == 'en') echo 'selected';?>>English</option>

</select>

方法二:在页面菜单里切换

<div>

<?php

$form = $this->beginWidget('CActiveForm', array(

'id' => 'setLang',

'enableAjaxValidation' => false,

'action' => Yii::app()->request->baseUrl . '/user/setLangMenu', 'htmlOptions' => array('class' => 'regform'),

));

$userInfo = Yii::app()->session->get('userInfo');

$user = User::model()->findByPk($userInfo['userID']);

echo CHtml::hiddenField('User[prefLang]', $user->prefLang); $this->endWidget();

?>

<ul class="language">

<li class="aa <?php echo ($user->prefLang == 'zh_tw') ? 'kk' : '' ?>" onclick="changeLang('zh_tw');">繁</li>

<li class="aa <?php echo ($user->prefLang == 'zh_cn') ? 'kk' : '' ?>" onclick="changeLang('zh_cn');">简</li>

<li class="aa <?php echo ($user->prefLang == 'en') ? 'kk' : '' ?>" onclick="changeLang('en');">EN</li>

</ul>

</div>

添加JS控制:

<script type="text/javascript" charset="utf-8">

function changeLang(lang){

$("#User_prefLang").val(lang);

$("#setLang").submit();

}

$(".language li").bind({

mousedown:function(){

$(".language li").removeClass("kk");

$(this).addClass("kk");

},

mouseout:function(){

$(".language li").removeClass("kk1");

},

mouseover:function(){

$(this).addClass("kk1");

}

});

</script>

样式效果加到<head>

<style>

.language{

margin:0px;

padding:0px;

margin-top:10px;

margin-right:80px;

float:right;

}

.language li{

margin:0px;

padding:0px;

list-style:none;

float:left;

margin-right:10px;

display:block;

font-size:15px;

padding:2px;

color:#ABC8A8;

cursor:pointer;

}

.aa{

border:1px solid transparent;

font-weight: bold;

}

.kk,.kk1{

border:1px solid #7d8892;

border-radius:5px;

-moz-border-radius:5px;

-webkit-border-radius:5px; }

</style>

在源文件的CSS/main.css有一些样式也可以根据效果调整 #mainmenu ul li a

{

} color:#ffffff; background-color:transparent; font-size:12px; font-weight:bold; text-decoration:none; padding:5px 8px;

(5)在protected/messages目录下新建各种语言的文件夹,如中、英,繁就建文件夹名为zh_cn、en、zh_tw 文件夹新建php翻译文件,文件内容是数组形式(如中文翻译):

return array(

'Home'=>'首页',

'Login'=>'登录',

'Logout'=>'退出',

'Contact'=>'联系我们',

'About'=>'公告',

'User'=>'用户',

'View file:'=>'视图文件:',

'Layout file:'=>'布局文件:',

'For more details on how to further develop this application, please read the'=>'更多详细应用的开发,请阅读',

'documentation'=>'说明文档',

'Feel free to ask in the'=>'如果您有任何问题,可以在',

'forum'=>'论坛',

'should you have any questions.'=>'自由询问。',

'Welcome to'=>'欢迎',

'Choose your preferred language' => '选择您的语言',

'Congratulations! You have successfully created your Yii application.'=>'恭喜!您已经成功创建你的Yii应用程序。',

'You may change the content of this page by modifying the following two files:'=>'你可以修改当前页的目录通过修改下面的两个文件:',

);

(6)在所有需要翻译页面输出的文字用方法Yii::t(‘翻译文件名’,’翻译文件里数组的KEY’) 例如:<?php echo Yii::t('index','View file:') ?> ,页面选择了中文,则在messages/zh_cn/index.php文件找数组key为‘View file:‘对应的翻译‘视图文件:‘作为页面输出。

更多相关推荐:
语言的名言

思想是不出声的语言中国现代作家文学研究家钱钟书围城辞达则止不贵多言南宋哲学家教育家诗人朱熹时间是大公无私的语言俄罗斯作家尤邦达列夫炼辞得奇句炼意得余味北宋哲学家易学家邵雍论诗吟语言名言宋邵雍论诗吟这两句大意是锤...

语言积累名言名句类

语言积累名言名句类1冬天麦盖三层被来年枕着馒头睡2瑞雪兆丰年这并不是迷信有着充分的科学根据3万事俱备只欠东风4不要想着远在下面的岩石而要着眼于那最初的一小步走了这一小步再走下一步直到抵达我所要到的地方5不论未来...

语言积累名言名句类

语言积累名言名句类七上1冬天麦盖三层被来年枕着馒头睡2瑞雪兆丰年这并不是迷信有着充分的科学根据3万事俱备只欠东风4不要想着远在下面的岩石而要着眼于那最初的一小步走了这一小步再走下一步直到抵达我所要到的地方5不论...

经典名言语录精选100句

公务员面试经典名言语录精选100句在公务员面试中好的语言亮点是取得高分的亮点之一结合公务员面试考查范围整理经典名言警句以供在面试中参考之用民本篇1民生在勤勤则不匮左传2民惟邦本本固邦宁尚书3圣人无常心以百姓心为...

关于行动胜于言语的名言1

关于行动的名言名句行动胜于语言admin20xx028浏览1806更多书中自有颜如玉书中自有黄金屋这是人们对读书的高度评价但人们对行动的评价更是超越书本读万卷书不如行万里路可见行动在生活中的重要之处Amanli...

读书名人名言大全

读书名人名言大全1学就像一只钻头去开掘知识的深井问就像一把钥匙去启开疑团的大门作者新格言2凡读无益之书皆是玩物丧志作者清王豫3读书对于智慧就象体操对于身体一样作者英国谚语4读书不知味不如束高阁蠢鱼尔何如终日食糟...

关于信仰的名言警句格言语录

关于信仰的名言警句格言语录享有特权而无力量的人是废物受过教育而无影响的人是一堆一文不值的垃圾有些人在知识道德宗教信仰方面受过教养但没有成为社会上行善的积极力量这些人就对不起为培育和供养他们而花费的代价如果他们也...

德语名言警句

1玩人丧德玩物丧志尚书仲虺之诰WeranderezumNarrenhltverliertseineTugendwersichmitunntzenDingenbeschftigtverliertseineZiel...

德语62格言

1JedenTaggibt39sdieMoeglichkeiteinesWunders每一天都有发生奇迹的可能2JederMenschistgeheimnisvollDuhastgarkeineAhnungwi...

用名言警句让你的面试语言闪闪发光

黑龙江中公教育国家公务员考试的笔试已经过去了两周考生们的面试备考已经逐步进入正轨了中公教育专家结合自己的实践经验撰写公务员面试辅导语言表达系列稿件提高考生的实战能力中公教育专家在实际带队辅导考生的过程中感受到学...

俄语名言

要害怕你自己的愿望他们会实现的没有什么像一见钟情那样能省钱的了没有什么比一见钟情更能节约财力了别那么谦虚你还没那么伟大如果有人给你把咖啡端到床前意味着这不是你的床对呆板的任务我们用完成它的速度来答复对刻板的任务...

名言俗语

俄语日常用语俗语成语谚语名言警句唉要是有数不清的钱就好了人不是光靠面包活着要防患于未燃趁热打铁胳膊拧不过大腿隔墙有耳可望而不可及人老心不老平时不烧香临时抱佛脚动口不动手半斤八两无谓地忙碌我们也会有扬眉吐气的时候...

语言名言(33篇)