YII Framework框架教程之国际化实现方法
发布:smiling 来源: PHP粉丝网 添加日期:2021-07-14 10:44:06 浏览: 评论:0
本文讲述了YII Framework框架教程之国际化实现方法,分享给大家供大家参考,具体如下:
一个web应用,发布到互联网,就是面向全球用户,用户在世界的各个角落都可以访问到你的web应用,当然要看你的网站和不和谐,不和谐的web应用在和谐社会是不让你访问的。
YII提供了国际化的支持,可以让我们创建的应用适合不同语言的人群。
国际化是一个很花哨的东西,没有哪个大型的网站真正能做到国际化。大多都是针对不懂的语言,不同地区设计不同的网站。如果你的应用相对较小,处理的东西不多,那么国际化起来的东西还是蛮可以的。
国际化从以下几个方面入手:
区域设置
信息文本和文件资源的翻译
日期/时间、货币符号和数字格式
YII中国际化涉及到的类在/yii_dev/yii/framework/i18n目录下面:
/yii_dev/yii/framework/i18n# tree
- .
- ├── CChoiceFormat.php
- ├── CDateFormatter.php
- ├── CDbMessageSource.php
- ├── CGettextMessageSource.php
- ├── CLocale.php
- ├── CMessageSource.php
- ├── CNumberFormatter.php
- ├── CPhpMessageSource.php
- ├── data
- │ ├── en_us.php
- │ ├── ....................
- │ ├── zh_hk.php
- │ ├── zh_mo.php
- │ ├── zh.php
- │ ├── zh_sg.php
- │ ├── zh_tw.php
- │ ├── zu.php
- │ └── zu_za.php
- └── gettext
- ├── CGettextFile.php
- ├── CGettextMoFile.php
- └── CGettextPoFile.php
2 directories, 616 files
区域设置
通过对区域的设置,来判断用户所在的国际和使用的语言。
YII定义了常见的区域标识,可以认为是表示区域的唯一ID。
YII中通过CLocale类存放区域数据(包括货币,日期,数字格式等等)。
通过一个区域唯一ID,然后就可以通过 CLocale::getInstance($localeID) 或者CApplication::getLocale($localeID) 获取相应的 CLocale 实例。通过CLocale实例,就能够判断用户所在的国家,使用的语言。然后可以根据CLocale的数据进行相应的翻译,让web应用更适于当前用户使用和阅读。最根本的就是为了用户进行特定的翻译。
信息文本和文件资源的翻译
翻译很简单就是把一种语言变成另一种语言。在计算机中用的是26字母,就是e文,所以可以把e文当成是原始语言,万语之源,所有其他的语言都是通过e文翻译而成的,暂且e文叫做源语言,翻译成的语言叫做目标语言。
具体的类说明
- /**
- * Translates a message to the specified language.
- * Starting from version 1.0.2, this method supports choice format (see {@link CChoiceFormat}),
- * i.e., the message returned will be chosen from a few candidates according to the given
- * number value. This feature is mainly used to solve plural format issue in case
- * a message has different plural forms in some languages.
- * @param string $category message category. Please use only word letters. Note, category 'yii' is
- * reserved for Yii framework core code use. See {@link CPhpMessageSource} for
- * more interpretation about message category.
- * @param string $message the original message
- * @param array $params parameters to be applied to the message using <code>strtr</code>.
- * Starting from version 1.0.2, the first parameter can be a number without key.
- * And in this case, the method will call {@link CChoiceFormat::format} to choose
- * an appropriate message translation.
- * Starting from version 1.1.6 you can pass parameter for {@link CChoiceFormat::format}
- * or plural forms format without wrapping it with array.
- * @param string $source which message source application component to use.
- * Defaults to null, meaning using 'coreMessages' for messages belonging to
- * the 'yii' category and using 'messages' for the rest messages.
- * @param string $language the target language. If null (default), the {@link CApplication::getLanguage application language} will be used.
- * This parameter has been available since version 1.0.3.
- * @return string the translated message
- * @see CMessageSource
- */
- public static function t($category,$message,$params=array(),$source=null,$language=null)
- {
$category源语言
$mesage目标语言
$params是$mesage中要匹配翻译的数组。
具体使用方法如:
Yii::t('app', 'Path alias "{alias}" is redefined.',
array('{alias}'=>$alias))
当然可以通过yiic提供的命令行命令message进行翻译,具体的参考yiic命令的使用说明
日期/时间、金钱和数字格式
日期/时间处理CDateFormatter类
具体参考(/yii_dev/yii/framework/i18n/CDateFormatter.php)类文件
数字处理
具体参考(/yii_dev/yii/framework/i18n/CNumberFormatter.php)类文件
Tags: Framework框架教程
相关文章
- ·YII Framework框架教程之国际化实现方法(2021-07-14)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)