好像网上一直没有比较详细的中文资料来讲述如何使用cakephp来实现i18n。正好昨天被逼无奈的将代码中的提示中文化了一把,略有心得,简而志之。
中文化cakephp有如下几步:
在需要进行中文化的地方使用__()函数,如下所示:
__('This is the string i need to translate', true);
将第2个参数置为ture,这样如果有相对应的翻译词条的话那么翻译过的词条将输出,否则会输出未翻译的词条。
如果你的代码中存在__()函数的话,你就可以执行i18n task来进行代码扫描了。
i18n task的作用是扫描源码中所有__()函数,为__()中的string建立翻译索引并将这些索引保存在.pot文件中。
那么如何执行i18n task呢?
---------------------------------------I18n Shell---------------------------------------[E]xtract POT file from sources[I]nitialize i18n database table[H]elp[Q]uitWhat would you like to do? (E/I/H/Q)>
Configure::write('Config.language', 'chs');
好了,这样就完成简单的项目中文化了。
其中很多细节由于篇幅原因就不做完整介绍了。有疑问的话请参考cakephp的帮助文档。