yii框架详解 之 国际化 (I18N)

我们要开启组件中们关于语言的配置,默认的就是CPhpMessageSource,也可以改为其他的方式。

#组件配置中

‘messages‘ => array(

‘class‘=>‘CPhpMessageSource‘,

),

Yii 含有如下几种信息源。你也可以扩展 CMessageSource 创建自己的信息源类型。

  • CPhpMessageSource: 信息的翻译存储在一个 PHP 的 键值对 数组中。 原始信息为键,翻译后的信息为值。每个数组表示一个特定信息分类的翻译,分别存储在不同的 PHP 脚本文件中,文件名即分类名。 针对同一种语言的 PHP 翻译文件存储在同一个以区域 ID 命名的目录中。而所有的这些目录位于 basePath 指定的目录中。
  • CGettextMessageSource: 信息的翻译存储在 GNU Gettext 文件中。
  • CDbMessageSource: 信息的翻译存储在数据库的表中。更多细节,请查看 CDbMessageSource 的 API 文档。

    信息源是作为一个 应用程序组件 载入的。 Yii 预定义了一个名为 messages 的应用程序组件以存储用户程序中用到的信息。 默认情况下,此信息源的类型是 CPhpMessageSource ,而存储这些 PHP 翻译文件的目录是 protected/messages


总体来说,要实现信息翻译,需要执行如下几步:

  1. 在合适的位置调用 Yii::t() ;

    echo Yii::t(‘common‘,‘error_404‘);

  2. 以 protected/messages/LocaleID/CategoryName.php 的格式创建 PHP 翻译文件。 每个文件简单的返回一个信息翻译数组。 注意,这是假设你使用默认的 CPhpMessageSource 存储翻译信息。

    return array(

    ‘error_404‘ => ‘抱歉,没有找到页面!‘,

    );

    注意:CategoryName是自定义的,比如我把通用的一些提示语言都放在common.php中,把相关模块的语言都放在moduleName.php中。

  3. 配置 CApplication::sourceLanguage 和 CApplication::language

在一个 Yii 应用程序中,我们区分了它的 目标语言(target language) 和 源语言(source language)

目标语言是应用程序的目标用户的语言(区域), 而源语言是指写在应用程序源代码中的语言(区域)。国际化仅会在这两种语言不同的情况下发生。

#配置文件中

‘sourceLanguage‘=>‘en_us‘,

‘language‘=>‘zh_cn‘,

来源: <http://www.yiichina.com/guide/topics.i18n>

来自为知笔记(Wiz)

时间: 2024-10-14 15:57:22

yii框架详解 之 国际化 (I18N)的相关文章

yii框架详解 之 CWebApplication 运行流程分析

在 程序入口处,index.php 用一句 Yii::createWebApplication($config)->run();  开始了app的运行. 那么,首先查看 CWebApplication 的 构造函数,如下: public function __construct($config=null) { Yii::setApplication($this); // set basePath at early as possible to avoid trouble if(is_string

yii框架详解 之 CActiveRecord

[特别注意事项] 1.所有要用于访问的属性,都要先在类中声明(原数据表中的字段是默认可访问的,自定义的属性值,一定要先在类中添加声明,才可以正常访问) 2.数据库的表面引用,一般都是有固定的数据库表前缀的,在类中,使用 {{tableName}} 代表着 table_pre.tableName 3.model()方法是 static 方法,不用实例化即可直接使用,多用于查询. 4.rules() 方法 是用来验证字段合法性的,而且可以设置每个规则的应用环境标示,如 'on'=>'search',

MTK平台LCD驱动框架详解(一)

许多学习嵌入式的进入MTK开发平台,很多东西都会感到很陌生.在MTK平台上你可以简简单单几分钟就点亮一块屏.加上MTK快速开发的节奏,也很少有时间自己整理学习.如果不思进取,不加班加点学习.很容易就慢慢--.这也难怪有些人说MTK造就了一批懒人,毁掉了一批工程师.但其实都是基于linux开发,核心的东西都是一样一样的.我刚入行业,在迷茫之际,自己整理跟踪源码.想慢慢找回自己熟悉的感觉,掌握MTK的整体框架.也希望能给有需要的人带来些帮助.好吧!前话说到这,开始正题. 本文肯定有不少地方会出现错误

jQuery Validate验证框架详解

jQuery校验官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一.导入js库 <script type="text/javascript" src="<%=path %>/validate/jquery-1.6.2.min.js"></script> <script type="text/javascript" src

hadoop 学习笔记:mapreduce框架详解

hadoop 学习笔记:mapreduce框架详解 开始聊mapreduce,mapreduce是hadoop的计算框架,我 学hadoop是从hive开始入手,再到hdfs,当我学习hdfs时候,就感觉到hdfs和mapreduce关系的紧密.这个可能是我做技术研究的 思路有关,我开始学习某一套技术总是想着这套技术到底能干什么,只有当我真正理解了这套技术解决了什么问题时候,我后续的学习就能逐步的加快,而学习 hdfs时候我就发现,要理解hadoop框架的意义,hdfs和mapreduce是密不

【转】jQuery Validate验证框架详解

jQuery校验官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一.导入js库 <script type="text/javascript" src="<%=path %>/validate/jquery-1.6.2.min.js"></script> <script type="text/javascript" src

iOS 开发之照片框架详解之二 —— PhotoKit 详解(下)

这里接着前文<iOS 开发之照片框架详解之二 —— PhotoKit 详解(上)>,主要是干货环节,列举了如何基于 PhotoKit 与 AlAssetLibrary 封装出通用的方法. 三. 常用方法的封装 虽然 PhotoKit 的功能强大很多,但基于兼容 iOS 8.0 以下版本的考虑,暂时可能仍无法抛弃 ALAssetLibrary,这时候一个比较好的方案是基于 ALAssetLibrary 和 PhotoKit 封装出一系列模拟系统 Asset 类的自定义类,然后在其中封装好兼容 A

iOS 开发之照片框架详解之二 —— PhotoKit 详解(上)

一. 概况 本文接着 iOS 开发之照片框架详解,侧重介绍在前文中简单介绍过的 PhotoKit 及其与 ALAssetLibrary 的差异,以及如何基于 PhotoKit 与 AlAssetLibrary 封装出通用的方法. 这里引用一下前文中对 PhotoKit 基本构成的介绍: PHAsset: 代表照片库中的一个资源,跟 ALAsset 类似,通过 PHAsset 可以获取和保存资源 PHFetchOptions: 获取资源时的参数,可以传 nil,即使用系统默认值 PHAssetCo

(转) shiro权限框架详解06-shiro与web项目整合(上)

http://blog.csdn.net/facekbook/article/details/54947730 shiro和web项目整合,实现类似真实项目的应用 本文中使用的项目架构是springMVC+mybatis,所以我们是基于搭建好的项目进行改造的. 将shiro整合到web应用中 登录 退出 认证信息在页面展现,也就是显示菜单 shiro的过滤器 将shiro整合到web应用中 数据库脚步 sql脚步放到项目中,项目上传到共享的资源中,文章最后给出共享url. 去除项目中不使用shi