|
自己整理了一下——本文给初学者。
首先确保机器里安装好了automake autoconf libtools 等等一系列GNU开发工具。最好还附带装上Glade,这样才能让Anjuta的工程创建精灵起作用。打开支持本地化,还要有gettext工具。
这是一篇快速指南,具体还请参阅autotools文档和gettext的相关文档。
用Anjuta可以工程创建精灵可以方便的生成一个工程,虽然不一定要用anjuta来编程(本人使用Emacs),但是也可以稍微利用一下它这个工程创建精灵的作用。首先在创建工程时选择支持本地语言这样,可以让工程创建时增加一个setup-gettext脚本,可以运行一下,会提示:
[code:1]autopoint --force
autopoint: *** Missing version: please specify in configure.in through a line 'AM_GNU_GETTEXT_VERSION(x.yy.zz)'
the gettext version the package is using
autopoint: *** Stop.[/code:1]
编辑一下configure.in 加入自己的gettext 的version信息。
[code:1]dnl Languages which your application supports
ALL_LINGUAS=""
AM_GLIB_GNU_GETTEXT[/code:1]
如果需要加入zh_CN的支持,就改成 ALL_LINGUAS="zh_CN",另外我习惯改成 AM_GNU_GETTEXT。最后在AC_OUTPUT 下加上 intl/Makefil 编辑 Makefile.am 在 SUBDIRS 里加上 intl。 编辑完后运行 setup-gettext 脚本。
编程的时候要调用一个函数。方便大家:
[code:1]static void
setup_i18n (void)
{
gtk_set_locale ();
bindtextdomain (PACKAGE, PACKAGE_LOCALE_DIR);
bind_textdomain_codeset (PACKAGE, "UTF-8");
textdomain (PACKAGE);
}[/code:1]
把需要翻译的字符串都如下面这样写:
[code:1]gtk_window_set_title(GTK_WINDOW(opwin),_("General Options"));[/code:1]程序写差不多了进入po目录,运行 make update-po。如果报错说需要Changelog就用touch Changelog一下。po目录下就会有一个pot文件,名称就是你的工程名字。同时也有zh_CN.po文件。没有请将pot文件复制一份成zh_CN文件。编辑它,补全所有的头信息。写 charset=UTF-8。另外确保文件保存时编码为 UTF-8。然后开始翻译。格式如下:
[code:1]#: src/interface.c:95
msgid "About us"
msgstr "关于我们"[/code:1]
然后在po里面make一下就生成了一个gmo文件。最后make install你的软件运行一下,可以看到你的翻译信息在图形界面上显示了。程序变更后重新运行 make update-po。修正po文件,确保每一句翻译信息都如上例子,不要有
[code:1]#, fuzzy[/code:1]
诸如此类和其他的东西,全部删除掉,修正完毕后重新make,然后make install。
如果自己添加了文件,修正po目录下POTFILES.in,加上自己的文件,重新来一遍就可以了。 |
|