编辑:我真的希望看到关于格式,它们的优点和缺点的一般性讨论!
编辑2:'赏金并没有真正帮助创建所需的讨论,有一些有趣的答案,但仍然缺少对该主题的全面报道.六个人将这个问题标记为收藏,这表明我对此讨论感兴趣.
在决定国际化时,IMO最棘手的部分是存储格式的选择.
例如,Zend PHP Framework提供了以下适配器,它几乎涵盖了我的所有选项:
数组:不,难以维护
CSV:不知道,编码可能存在问题
Gettext:经常使用,poEdit适用于所有平台但非常复杂
INI:不知道,编码可能存在问题
TBX:没有头绪
TMX:太重要了?没有编辑可以免费获得.
QT:不是很普遍,没有免费工具
XLIFF:即将推出的标准?但没有可用的免费工具.
XMLTM:不,不是我需要的
基本上我坚持4'大胆'的选择.我想使用INI文件,但我正在阅读有关编码问题...如果我使用严格的UTF-8(文件,连接,数据库等),它真的是一个问题吗?
我在Windows上,我试图找出poEdit如何运作,但只是没有管理.网上也没有教程,gettext仍然是一个选择或濒临灭绝的物种?
XLIFF怎么样,还有人使用它吗?关于使用什么工具的任何提示?
Eclipse集成任何这些技术的想法?
POEdit并不是很难掌握.只需创建一个新的.po文件,然后告诉它从源文件导入字符串.该程序扫描您的PHP文件以查找匹配的任何函数调用_("Text"), gettext("Text")
等.您甚至可以指定自己的函数来查找.
然后在相应的框中输入翻译.保存.po文件时,会自动生成.mo文件.这只是翻译的二进制版本,gettext可以轻松解析.
在PHP脚本中,调用bindtextdomain()
告诉它.mo文件所在的位置.现在传递给gettext
(或下划线函数)的任何字符串都将被翻译.
它使您的翻译文件保持最新变得非常容易.POEdit还有一些简洁的功能,如允许注释,显示更改和删除字符串以及允许模糊匹配,这意味着您不必重新翻译稍微修改过的字符串.
总有Translate Toolkit允许在我认为所有提到的格式之间进行翻译,并且首选gettext(po)和XLIFF.