查看“软件翻译/Old”的源代码
来自Ubuntu中文
←
软件翻译/Old
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
==开源软件的国际化的原理== 软件,总是从程序代码开始的。程序源代码中有很多的字符串,国际化的目的,就是把这些字符串从代码中取出来,翻译成其他语种。开源软件国际化有一种使用广泛的实现方式,整个过程会涉及到三种格式的文件:pot格式、po格式、mo格式,并有一套GNU工具完成其中的转化,其流程可以参见下面的图: [[Image:Pic1.JPG|700px]] 具体的步骤如下: #使用工具软件提取出代码中的字符串,生成的结果是pot(Portable Object Template )格式的文件,这是po(Portable Object)格式文件的模板,在将来程序可能配置成其他语种,其他语言的po文件都从它而来 #如果需要翻译中文版,则由pot格式生成po格式的初始文件ZH_CN.po,这时的po文件还没有翻译,与pot文件差别还不大 #软件翻译者完成po文件中字符串的翻译,这是开源软件翻译的工作主体 #po格式文件翻译完成后,生成可以被程序使用的mo(Machine Object)格式的文件ZH_CN.mo #生成的mo格式文件存放在系统中,启动程序,中文版本的ZH_CN.mo被调用,软件摇身变成中文版了 ==以一个例子说明开源软件的翻译== 上面的介绍有点晦涩难懂,那么我们看一个已经完成翻译的软件MonoDevelop,相信就比较清楚了。 MonoDevelop 是个Linux平台上的开放源代码集成开发环境,主要用来开发Mono与.NET Framework软件。在ubuntu环境下,我们下载MonoDevelop的源代码,可以看到有一个po的文件夹,有很多不同语言的po文件,如意大利语po文件it.po,也包括已经翻译完成的中文po文件zh_CN.po。 [[Image:Pic2.JPG|700px]] 在ubuntu环境下,首先成功编译安装MonoDevelop(具体参照INSTALL文件的方法). 然后,如下设置系统的语言为英文: export LANG=es_US 启动MonoDevelop,看到的是英文界面: [[Image:Pic3.JPG|700px]] 然后设置系统的语言为中文: export LANG=zh_CN.UTF-8 启动MonoDevelop,看到的是摇身一变的中文界面: [[Image:Pic4.JPG|700px]] 很神奇是吧,为什么会这样的效果呢?因为在编译MonoDevelop的时候,会生成前面提到的各种语言的mo文件,当你使用中文的时候,使用的就是中文的翻译mo文件,当系统环境变量设置为其他的语言,软件启动后会找对应语言的mo文件。我们搜索一下,就可以看到MonoDevelop的mo放在了系统的语言包文件夹里,我们看到MonoDevelop有很多的语言版本。 administrator@ubuntu:~$ locate monodevelop.mo<br> /usr/share/locale/ca/LC_MESSAGES/monodevelop.mo<br> /usr/share/locale/cs/LC_MESSAGES/monodevelop.mo<br> /usr/share/locale/da/LC_MESSAGES/monodevelop.mo<br> /usr/share/locale/es/LC_MESSAGES/monodevelop.mo<br> /usr/share/locale/fr/LC_MESSAGES/monodevelop.mo<br> /usr/share/locale/gl/LC_MESSAGES/monodevelop.mo<br> /usr/share/locale/hu/LC_MESSAGES/monodevelop.mo<br> /usr/share/locale/id/LC_MESSAGES/monodevelop.mo<br> /usr/share/locale/it/LC_MESSAGES/monodevelop.mo<br> /usr/share/locale/ja/LC_MESSAGES/monodevelop.mo<br> /usr/share/locale/nl/LC_MESSAGES/monodevelop.mo<br> /usr/share/locale/pl/LC_MESSAGES/monodevelop.mo<br> /usr/share/locale/pt/LC_MESSAGES/monodevelop.mo<br> /usr/share/locale/pt_BR/LC_MESSAGES/monodevelop.mo<br> /usr/share/locale/ru/LC_MESSAGES/monodevelop.mo<br> /usr/share/locale/sl/LC_MESSAGES/monodevelop.mo<br> /usr/share/locale/sv/LC_MESSAGES/monodevelop.mo<br> /usr/share/locale/tr/LC_MESSAGES/monodevelop.mo<br> /usr/share/locale/zh_CN/LC_MESSAGES/monodevelop.mo<br> /usr/share/locale/zh_TW/LC_MESSAGES/monodevelop.mo<br> ==开源软件的翻译工具使用== ==使用网站launchpad.net做在线翻译== 以上简要里描述了开源软件的翻译的大致过程,现在还有一种比较新颖的方式,那就是通过UBUNTU的网站launchpad.net做在线翻译。Launchpad.net 是由 Ubuntu 的母公司 Canonical 有限公司所架设,其功能之一就是提供了在线翻译的功能,不过建议大家只选择于 Launchpad 翻译 Ubuntu 上独有的软体,而其他的软体则直接到其社群参与翻译的工作,有关其介绍请参考Ubuntu的wiki,这里不再赘述。 ==开源软件的翻译经验汇总==
返回
软件翻译/Old
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
登录
导航
首页
最近更改
随机页面
页面分类
帮助
搜索
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息