http://blog.sina.com.cn/s/blog_61e65d1701016zg9.html
Yii框架的多语言设置
Yii 框架的缺省语言是美国英语(en_us )。但是身在在中国,又希望致力于中国企业的信息化建设,所以让Yii 支持多语言(至少简体中文和美国英语)那是必须的。
1. 全局语言
和其它application 级别的配置一样,系统的缺省语言可以在protected/config/main.php 中设置:
return array( 'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..', ...... 'language'=>'zh_cn', *** 不设置的话缺省为 en_us
2. Controller 级别
由于Yii 框架中Controller 掌控几乎全部的Views ,所以我们可以通过在Controller 的初始化函数中指定该Controller 控制的所有Views 的缺省语言。
class foo extends Controller { public function init() { Yii::app()->language = ‘zh_cn’; }
需要动态切换语言的系统需要更多的逻辑。目前通行的做法是在页面的某个位置(多数是右上角)放置语言的链接,例如:中文 | English 。
echo CHtml:: link ( ' 中文 ' , array ( '' , 'hl' => 'zh' )) . '| ' . CHtml:: link ( 'English' , array ( '' , 'hl' => 'en' )) ;
这样在点击相应的语言链接之后,利用Cache 将语言选择保存在服务器端。同样在Controller::init() 函数中根据Cache 中缓存的语言设置系统的缺省语言。
public function init() { If (isset ($_GET['hl']) && 'en'===$_GET['hl']) { setcookie ("hl", 'en_us'); $_COOKIE['hl']='en_us'; //cookie 不能立刻生效 } else if (isset ($_GET['hl']) && 'zh'===$_GET['hl']) { unset ($_COOKIE['hl']); setcookie ("hl", ""); } If ('en_us'==$_COOKIE['hl']) { Yii::app()->language='en_us'; } }
3. 文本翻译
为了解决文本的不同语言版本的动态选择,Yii 框架提供一个全局性的函数Yii::t(‘[text file]’, ‘[text]’) 用来封装所有需要多语言支持的文本。其中第一个参数’[text file]’ 代表存储当前语言文本的文件,第二个参数‘[text] ’是文本编码。’[text]’ 通常就是该文本在系统的缺省语言中的版本。例如:Yii 框架缺省的系统语言是美国英语,所以’[text]’通常就是文本的英文语意。但是如果在protected/config/main.php 中设置系统的缺省语言是简体中文,那么’[text]’ 应该是文本的简体中文语意。以文本“Name (名称)”为例,如果系统语言是美国英语,我们可以将’[text]’ 定义为’Name’;而当系统语言是简体中文时,’[text]’ 应该定义为’ 名称’ 。
和大多数多语言框架一样,Yii 框架也将不同语言的文本保存在该语言对应的目录下,作为一个资源。基于Yii 框架的系统在根目录下有一个messages 目录([webapp]/messages )。简体中文资源放置在[webapp]/messages/zh_cn 下,美国英语资源放置在[webapp]/messages/en_us 下。所有语言资源都是以PHP 文件的形式存在,且都返回一个包含若干Key/Value 对的数组。其中Key 就是Yii::t() 的第二参数’[text]’ 。仍以文本“Name (名称)”为例,如果系统语言是美国英语,语言资源文件中对应的Key/Value 应该是’Name’=>’ 名称’ ; 而当系统语言是简体中文时,Key/Value 应该是’ 名称’=>’Name’ 。值得注意的是,因为Yii 框架是使用UTF-8 编码,所以语言资源文件也必须是UTF-8 编码。否则显示文本时会出现乱码。
Yii 框架在运行时,会首先根据Yii::app()->language 的值定位到对应语言目录下的[text file].php 文件。然后再根据’[text]’ 在Key/Value 对数组中定位该’[text]’ 对应的语言文本,作为最终显示的文本。
相关推荐
本文实例讲述了Yii框架多语言站点配置方法。分享给大家供大家参考,具体如下: 这里假设我们要建立 中文/英文 切换的站点 1. 设置全局默认的语言 文件添加代码:protected/config/main.php 'language' => 'zh_cn'...
TbML输入Yii框架的多语言输入。 需要和
YiiStudy #####Yii框架的路由以安全方面的研究 ...├── i18n // 国际化(就是让网站实现多语言访问) ├── logging // 日志功能相关类库 ├── messages // 存放的是与国际化相关的语言包 ├──
网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信是一个非常广泛的领域,它涉及到计算机科学、电子工程、数学等多个学科的知识。 云计算与大数据:数据集、包括云计算平台、大数据...
软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发Node.js、C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、...
mostop 是基于 php 的 yii2 框架开发的一款后台管理系统,界面简洁美观(layui),功能实用,拓展性好,更有增强版的一站式内容管理系统(phpcms)。 软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站...
Fecshop更名为FecMall 详细参看: Fecmall-2.x版本 Fecmall-2版本在用户体验方面进行了很多的优化,请安装Fecmall-2版本 项目状态: ...,vue端(appserver),第三方系统...Fecmall支持多语言,多货币,架构上支持pc,
Fecmall 全称为Fancy ECommerce Mall,是基于php Yii2框架之上开发的一款优秀的开源电商系统, Fecmall支持多语言,多货币,架构上支持pc,手机web,手机app,和erp对接等入口,您可以免费快速的定制和部署属于您的...
KYPHP是经过两年的开发,终于从原来的v1.0版本到成熟版本v2.0,成熟版更强大,KYPHP2.0不仅支持以前所有的功能,还支持多数据库,多语言,多模版,多app,多缓存,多编码格式,模板布局,自定义类,自动加载公共类库。...
本文讲述了YII Framework框架教程之国际化实现方法。分享给大家供大家参考,具体如下: 一个web应用,发布到互联网,就是面向全球用户。用户在世界的各个角落都可以访问到你的web应用,当然要看你的网站和不和谐,不...
Fecmall多语言外贸商城系统是一款开源外贸商城系统的全称为花式电子商务商城 他基于php Yii2框架开发的一款优秀的开源电商系统 Fecmall支持多语言,多货币,架构上支持pc,手机web,手机app,和企业资源计划对接等...
Hbase通过thrift这个跨语言的RPC框架提供多语言的调用。 Hbase有两套thrift接口(thrift1和thrift2),但是它们并不兼容。根据官方文档,thrift1很可能被抛弃,本文以thrift2整合为例。 1、访问官网...
YiiCms企业站管理系统,使用 PHP+MySQL ...yiicms主要功能:1、新闻管理2、产品管理3、下载管理4、图片管理5、后台权限rbac6、前台菜单自定义、后台菜单自定义7、多模板多主题8、内容批量操作9、多语言支持10、友情链接
YiiCms企业站管理系统,使用 PHP MySQL ,基于 Yii2 框架开发完成,页面采用 Bootsrap 3.0 前端样式,支持 PC 、手机,响应式页面布局。 yiicms主要功能: 1、新闻管理 ...9、多语言支持 10、友情链接
同时我们将打造一套兼容性的API标准,从ThinkPHP5.1+Vue2开始,逐步吸引爱好者共同加入,以覆盖laravel、spring-boot、django、yii、koa、react等多语言框架。 特性 模块化 UniAdmin后台本着高内聚低耦合的原则, ...
夏午茶后台管理系统是一个基于YII2框架的后台,采用boosstrap布局渲染开发背景:发现当前市面的CMS系统代码不规范,UI暴丑,每天对面这样的UI,是很影响心情的,代码怎么能写的风骚呢,所以作为一个优秀的程序员是...
YiiCms企业站管理系统简介 YiiCms 企业站管理系统,使用 PHP MySQL ,基于 Yii2 框架开发完成,页面采用 Bootsrap...9、多语言支持 10、友情链接 YiiCms企业站管理系统页面展示 相关阅读 同类推荐:站长常用源码
KYPHP是经过两年的开发,终于从原来的v1.0版本到成熟版本v2.0,成熟版更强大,KYPHP2.0不仅支持以前所有的功能,还支持多数据库,多语言,多模版,多app,多缓存,多编码格式,模板布局,自定义类,自动加载公共类库。...
Yii 2实用企业Webapp模板 ...多语言支持 可自定义的用户界面 用户界面增强 基于权限的菜单操作 文档和图像支持 Selectabe系统日期格式 自动添加菜单 目录结构 common config/ contains shared configurations mail/