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