如何汉化软件

参与到Ubuntu的翻译中来
回复
头像
water2007
帖子: 524
注册时间: 2007-04-23 13:34

如何汉化软件

#1

帖子 water2007 » 2007-05-30 21:01

linux下有很多优秀的软件,可惜很多都是全英文的,使用起来很不方便?
我想有时间的时候坐下来把一些软件汉化一下,可是不知道如何汉化。
谁能教教我?最好能举个汉化软件例子出来啦,谢谢~
头像
aerowolf
帖子: 1778
注册时间: 2006-02-25 17:09
来自: 西安

#2

帖子 aerowolf » 2007-07-13 23:23

同感!Windows下汉化、破解还会小搞一下,U下得从头学习了 :cry: MultiGet就是英文的,虽说不影响使用,但看着别扭。
建议联系一些有同感的朋友,集中研究一下,汉化一些作品。
头像
windwiny
帖子: 2254
注册时间: 2007-03-13 17:26

#3

帖子 windwiny » 2007-07-14 14:52

要看那个软件包编写时有没有注意国际化问题,有没用使用 gettext 这类函数来取得字符串,
如果没有的话,表示那些菜单,提示字符串是编码在源程序里了

如果有的话: 往下

比如你装了一个叫 mysoft 的软件包,里面有一个程序名是 softabcd ,到 /usr/share/locale 下,里面有很多目录,比如 进 fr/LC_MESSAGES 这个目录,如果这里有 softabcd.mo 这个文件,表示这个程序有 法语的 字符串翻译,
执行:
> cd /usr/share/locale/fr/LC_MESSAGES/
> msgunfmt softabcd.mo > /tmp/softabcd.po
> gvim /tmp/softabcd.po
> msgfmt /tmp/softabcd.po -o /tmp/softabcd.mo
> sudo cp /tmp/softabcd.mo /usr/share/locale/zh_CN/LC_MESSAGES/
解释:
>找到要翻译程序的字符串表目录
>把 程序的mo文件变成文本文件
>打开文本,看到的格式是
msgid "Cancel"
msgstr "Annuler"
msgid 这行表示字符串,99.99999% 是英文的,这是源程序字符串所使用的语言
msgstr 这行你可以翻译成任何你喜欢的语言
翻译完了,保存退出
>把文本文件编译成mo文件
>复制到 /usr/share/locale/zh_CN/LC_MESSAGES/ 目录下,中间那个zh_CN 不用解释了吧
再运行程序,如果运行程序时的LANGUAGE ,LANG 之类的是 zh_CN 的话,程序要显示字符时就会打开 /usr/share/locale/zh_CN/LC_MESSAGES/ 下的与可执行文件同名的mo文件,取出里面的msgstr 字符串显示出来

好了,一个程序的l10n 就这样完成了.


希望你们懂E文的多翻译些好的软件啊,最好是把翻译的提交给官方打包的。。。。以后升级就直接有中文化的软件了。。。。
sunteam
帖子: 77
注册时间: 2007-05-21 21:01
系统: Win 7 Ubuntu

#4

帖子 sunteam » 2007-07-18 18:40

aerowolf 写了:同感!Windows下汉化、破解还会小搞一下,U下得从头学习了 :cry: MultiGet就是英文的,虽说不影响使用,但看着别扭。
建议联系一些有同感的朋友,集中研究一下,汉化一些作品。
我也差不多啦~
头像
guxinghanshe
帖子: 14
注册时间: 2007-09-06 1:28
来自: 北京海淀
联系:

#6

帖子 guxinghanshe » 2007-09-10 14:53

同求呀
头像
water2007
帖子: 524
注册时间: 2007-04-23 13:34

#7

帖子 water2007 » 2007-09-27 20:14

谢谢你的耐心指导~
windwiny 写了:要看那个软件包编写时有没有注意国际化问题,有没用使用 gettext 这类函数来取得字符串,
如果没有的话,表示那些菜单,提示字符串是编码在源程序里了

如果有的话: 往下

比如你装了一个叫 mysoft 的软件包,里面有一个程序名是 softabcd ,到 /usr/share/locale 下,里面有很多目录,比如 进 fr/LC_MESSAGES 这个目录,如果这里有 softabcd.mo 这个文件,表示这个程序有 法语的 字符串翻译,
执行:
> cd /usr/share/locale/fr/LC_MESSAGES/
> msgunfmt softabcd.mo > /tmp/softabcd.po
> gvim /tmp/softabcd.po
> msgfmt /tmp/softabcd.po -o /tmp/softabcd.mo
> sudo cp /tmp/softabcd.mo /usr/share/locale/zh_CN/LC_MESSAGES/
解释:
>找到要翻译程序的字符串表目录
>把 程序的mo文件变成文本文件
>打开文本,看到的格式是
msgid "Cancel"
msgstr "Annuler"
msgid 这行表示字符串,99.99999% 是英文的,这是源程序字符串所使用的语言
msgstr 这行你可以翻译成任何你喜欢的语言
翻译完了,保存退出
>把文本文件编译成mo文件
>复制到 /usr/share/locale/zh_CN/LC_MESSAGES/ 目录下,中间那个zh_CN 不用解释了吧
再运行程序,如果运行程序时的LANGUAGE ,LANG 之类的是 zh_CN 的话,程序要显示字符时就会打开 /usr/share/locale/zh_CN/LC_MESSAGES/ 下的与可执行文件同名的mo文件,取出里面的msgstr 字符串显示出来

好了,一个程序的l10n 就这样完成了.


希望你们懂E文的多翻译些好的软件啊,最好是把翻译的提交给官方打包的。。。。以后升级就直接有中文化的软件了。。。。
头像
yanjingtu
帖子: 30
注册时间: 2007-11-08 18:58
来自: 山东省淄博市
联系:

#8

帖子 yanjingtu » 2007-11-08 20:36

嗯嗯嗯,强烈的支持啊!!!
毕竟Win与Linux有太大的差别了,不熟悉啊!!!
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#9

帖子 BigSnake.NET » 2007-11-08 20:40

aerowolf 写了:同感!Windows下汉化、破解还会小搞一下,U下得从头学习了 :cry: MultiGet就是英文的,虽说不影响使用,但看着别扭。
建议联系一些有同感的朋友,集中研究一下,汉化一些作品。
1.2.0 版是中文的
图片
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
回复