介绍
这篇文章主要介绍”Yii框架多语言站点怎么配置——英语中文站点”,在日常操作中,相信很多人在Yii框架多语言站点怎么配置——英语中文站点问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“Yii框架多语言站点怎么配置——英语中文站点”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
这里假设我们要建立中文/英文切换的站点
1。设置全局默认的语言
文件添加代码:/config/主要保护。php
& # 39;语言# 39;,=祝辞,& # 39;zh_cn # 39;,
2。控制器根据用户选择动态切换语言
一般来说,我们所有的控制器都是继承于保护/组件/控制器。php这个类,因此,我们可以在
这个类里面进行语言的定义来影响当前的请求。
public function init () { 如果才能(收取($ _GET[& # 39;朗# 39;]),,,,$ _GET[& # 39;朗# 39;],!=,,,) {才能 ,,,Yii:应用()→language =, $ _GET[& # 39;朗# 39;]; ,,,Yii:应用()→→请求cookie(& # 39;朗# 39;],=,new CHttpCookie(& # 39;朗# 39;,,$ _GET[& # 39;朗# 39;]); ,,} else 才能;如果(!空(Yii:应用()→→请求cookie(& # 39;朗# 39;))) {才能 ,,,Yii:应用()→language =, Yii:应用()→→请求cookie(& # 39;朗# 39;); ,,} 其他的才能 {才能 ,,,lang 美元;=,爆炸(& # 39;& # 39;$ _SERVER [& # 39; HTTP_ACCEPT_LANGUAGE& # 39;]); ,,,Yii:应用()→language =,函数(str_replace(& # 39; & # 39;,, & # 39; _ # 39;,,元朗[0])); ,,} }
3。页面提供切换语言选项
在公用的布局头部,加入
& lt; ? php echo 除外):链接(& # 39;中文& # 39;,,Yii::应用()→createUrl(& # 39;/& # 39;,,数组(& # 39;朗# 39;,=祝辞,& # 39;zh_cn # 39;))); ?比; & lt; ? php echo 除外):链接(& # 39;英语# 39;,,Yii::应用()→createUrl(& # 39;/& # 39;,,数组(& # 39;朗# 39;,=祝辞,& # 39;en_us # 39;))); ?在
4。多语言描述文字
//普遍是对应的语言文件,路径:保护/信息/zh_cn/common.php Yii: t(& # 39;常见# 39;,,& # 39;,你好,世界! & # 39;);
5。数据库内容多语言
假设我们有这样的数据表:
CREATE TABLE IF NOT EXISTS “新闻”,( “id”才能,INT (10), UNSIGNED NOT NULL AUTO_INCREMENT, “朗”,才能VARCHAR (4), NOT NULL DEFAULT en # 39;,,/*,这个用来区分不同语言的内容,*/氨晏狻?才能VARCHAR (255), NOT 空, “文本”,才能TEXT NOT 空, PRIMARY 才能;KEY (id) );
在模型里面添加一些代码,可以根据当前语言加载不同语言的消息。
class News extends CActiveRecord { ,/* * ,,*,这里会在查询数据的时候,合并条件,根据当前语言查出数据 ,,* ,,*/public 才能;function  defaultScope () {才能 ,,,return 阵列( ,,,,,& # 39;条件# 39;,=祝辞,“lang=: lang" ,,,,,& # 39;params # 39;,=祝辞,阵列( ,,,,,,,& # 39;:朗# 39;,=祝辞,Yii:应用()→语言, ,,,,,), ,,,); ,,} ,, ,/* * ,,*,提供这个方法,作一个例子说明,可以指定加载哪个语言的数据 ,,* ,,*/public 才能;function 朗郎($) {才能 ,,,这个→美元getDbCriteria ()→mergeWith(数组( ,,,,,& # 39;条件# 39;,=祝辞,“lang=: lang" ,,,,,& # 39;params # 39;,=祝辞,阵列( ,,,,,,,& # 39;:朗# 39;,=祝辞,元朗, ,,,,,), ,,,)); ,,,return 美元; ,,} }
使用方法:
//,加载默认语言的数据。 $ posts =,职位:模型()→findAll ();//,Get posts  written 德国拷贝//,加载,en_us 语言的数据。 posts 美元=,职位:模型()→朗(& # 39;en_us # 39;)→findAll ();
到此,关于“Yii框架多语言站点怎么配置——英语中文站点”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!