CakePHP开发之controller设置之国际化_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > CakePHP开发之controller设置之国际化

CakePHP开发之controller设置之国际化

 2010/9/19 23:34:11  lesorb  http://lesorb.javaeye.com  我要评论(0)
  • 摘要:CakePHP中对国际化(internationalization通常将它简写为i18n)和本地化(localization被简写为l10n)的支持遵循国际组织(Openi18n)的相关标准.通常相关的文件包括了PO和MO文件,资源包的位置一般在/app/locale/资源名称/LC_MESSAGES/,命名是default.moANDdefault.po.PO是PortableObject(可移植对象)的缩写形式;MO是MachineObject(机器对象)的缩写形式
  • 标签:CakePHP开发 controller设置 国际化
CakePHP中对国际化(internationalization通常将它简写为i18n)和本地化(localization被简写为l10n)的支持遵循国际组织(Openi18n)的相关标准.

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

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

CakePHP中的PO和MO文件的编辑,可能需要借助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");


值得注意的是,在l10n.php中有CakePHP规定好的__l10nMap变量,在app\locale下对应的资源包名称应该是此变量中的某一值,否则系统将无法正确解析.
发表评论
用户名: 匿名