GNU Gettext:GNU 本地化和国际化函数库,即 GNU Localization(l10n) & Internationalization (i18n) Library,是自由软件国际化支持的常用工具。
翻译步骤:
(1)开发者:编程时按照字符串资源格式的约定,在代码中采用msgid调用字符串资源,最后可得到pot资源文件,该文件包括所有需要翻译的字符串及相关信息;
(2)翻译者:将pot文件转化为对应语言的po文件,利用poedit或其它软件(或翻译平台)进行翻译;
(3)维护者:将po文件转化为二进制的mo文件,打包到软件的资源目录;
(4)用户:Gettext会优先显示本地化语言,如果某字符串没有翻译,则显示英文。
也有一些软件,如Android、Ubuntu的帮助文档,不采用mo文件,而是每种语言一个xml文件。
:3_59:噢 原来是这样。。长知识了!!O(∩_∩)O~
自由软件主要的翻译平台以及相应的软件
Launchpad:Ubuntu、Linux Mint、Enlightenment
Transifex翻译平台:Fedora、XFCE
Damned-Lies翻译平台:GNOME专用
Narro:Firefox,特点是可以对已有翻译建议进行投票
Ubuntu项目在Launchpad上的翻译流程
a. Ubuntu不直接使用各软件项目本身的翻译(即上游翻译),而通过 [url=https://launchpad.net/]launchpad.net[/url] 站点对进入其核心(main)组件仓库的软件翻译进行二次修订。
b. 在每个版本的生命周期内,软件包维护者或翻译组成员会先向 Launchpad 上传上游的翻译模板(POT)文件和上游翻译(PO)等待审核。经[url=https://launchpad.net/~ubuntu-translations-coordinators]Ubuntu 翻译组协调人员[/url]批准导入后,相应的翻译文件会被标记为 Approved 状态。Launchpad 会自动处理这些文件,在每个版本周期中通常都会不止一次地导入这些文件。
c. 导入完成后,翻译交由 Launchpad 上的 [url=https://translations.launchpad.net/+groups/ubuntu-translators]Ubuntu 翻译组[/url] 下的各语言小组对翻译进行进一步的审核和补充,最后由[url=https://edge.launchpad.net/~ubuntu-langpack]负责的打包人员[/url]制成语言包提供给用户。
翻译是个费时费力的工作,Ubuntu作为一个操作系统,还有丰富的开源应用软件,这些软件也是操作系统生态环境的一部分,也需要进行翻译,在目前翻译力量有限的情况下,先翻译谁后翻译谁的顺序就非常重要,为此,Ubuntu根据一定的原则制定了翻译的优先级:
a. Ubuntu特有的,不存在上游的项目,所谓上游是指在其它地方开发,而Ubuntu上会用到软件;
b. 对非英语用户影响大的翻译;
c. 最小系统,也就是能运行起来的最基本的操作系统;
d. 减少与上下游项目的重复翻译工作,这是一条总的原则,节约大家的时间和精力。