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