linux下有很多优秀的软件,可惜很多都是全英文的,使用起来很不方便?
我想有时间的时候坐下来把一些软件汉化一下,可是不知道如何汉化。
谁能教教我?最好能举个汉化软件例子出来啦,谢谢~
如何汉化软件
- aerowolf
- 帖子: 1778
- 注册时间: 2006-02-25 17:09
- 来自: 西安
- windwiny
- 帖子: 2254
- 注册时间: 2007-03-13 17:26
要看那个软件包编写时有没有注意国际化问题,有没用使用 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文的多翻译些好的软件啊,最好是把翻译的提交给官方打包的。。。。以后升级就直接有中文化的软件了。。。。
如果没有的话,表示那些菜单,提示字符串是编码在源程序里了
如果有的话: 往下
比如你装了一个叫 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文的多翻译些好的软件啊,最好是把翻译的提交给官方打包的。。。。以后升级就直接有中文化的软件了。。。。
-
- 帖子: 77
- 注册时间: 2007-05-21 21:01
- 系统: Win 7 Ubuntu
-
- 帖子: 140
- 注册时间: 2006-10-15 12:59
- 联系:
- guxinghanshe
- 帖子: 14
- 注册时间: 2007-09-06 1:28
- 来自: 北京海淀
- 联系:
- water2007
- 帖子: 524
- 注册时间: 2007-04-23 13:34
谢谢你的耐心指导~
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
- 来自: 山东省淄博市
- 联系:
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系: