我目前正在使用基于codeigniter
PHP的应用程序,并已经到了要用多种语言进行开发的地步.
codeigniters自己的语言类是处理语言的最有效方法吗?
是否有任何特定的语言工具/库通常用于程序?
谢谢!
我从来没有使用CI_Language,但似乎使用语言数组来进行翻译.
这种类型方法过于简化的例子:
$trans = array( 'MAIN_TITLE' => 'Title Here' ); echo $trans['MAIN_TITLE'];
就个人而言,我觉得这真的很烦人,因为你正在编辑的视图是乱码的数组键名,而不是有用的文本.有时可能很烦人.更不用说,如果您在多个地方使用这些字符串,您必须记住哪些键与哪些字符串相关联.
我使用Gettext,我觉得很容易.你只需要用translate方法包装你的字符串:_().一旦你完成你的应用程序,你打开PoEdit并创建新的语言文件. PoEdit将解析我所有的源文件,寻找这样的字符串<?PHP echo _('Title here')?>并将它们插入到.po语言文件中.然后,您可以通过字符串转换字符串,并在PoEdit中轻松翻译文本.这样做的好处是您可以在PoEdit中进行源翻译,而不是在某些包含文件中使用无意义的数组键名
这一切使我的生活更容易,我可以每个星期五更新我的语言文件一点击.任何新的或修改的翻译将自动添加到我的语言文件,任何未使用的翻译将自动被删除.我将文件发送到我的3个国际分行进行翻译,我的更改和更新的语言文件准备在星期一上午部署