CakePHP开发之controller设置之国际化

CakePHP中对国际化(internationalization通常将它简写为i18n)和本地化(localization被简写为l10n)的支持遵循国际组织(Openi18n)的相关标准.

[b]通常相关的文件包括了PO和MO文件[/b],资源包的位置一般在/app/locale/资源名称/LC_MESSAGES/,命名是default.mo AND default.po.

PO是Portable Object(可移植对象)的缩写形式;MO是Machine Object(机器对象) 的缩写形式。PO 文件是面向翻译人员的、提取于源代码的一种资源文件。而MO文件是面向计算机的、由 PO 文件通过 gettext 软件包编译而成的二进制文件。程序主要通过读取MO文件使自身的界面转换成用户使用的语言。

[b]CakePHP中的PO和MO文件的编[/b]辑,可能需要借助Poedit等专门的编辑器来完成.当然,如果您对它们的组织结构非常熟悉,用一般的编辑器也可完成相关操作.

CakePHP中输出函数覆写形式__()中,引入了translate()函数,其中:

$language = Configure::read('Config.language');

if (!empty($_SESSION['Config']['language'])) {
$language = $_SESSION['Config']['language'];
}


以上代码可知:规定当前语言形式可有两种方法:

1. 在core文件中写入配置项

Configure::write('Config.language', 'chi');


2.在系统上层文件中写入session值

$this->Session->write ("Config.language","chi");


[b]值得注意的是[/b],在l10n.php中有CakePHP规定好的__l10nMap变量,在app\locale下对应的资源包名称应该是此变量中的某一值,否则系统将无法正确解析.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值