- 論壇徽章:
- 0
|
用Anjuta可以工程創(chuàng)建精靈可以方便的生成一個(gè)工程,雖然不一定要用anjuta來(lái)編程(本人使用Emacs),但是也可以稍微利用一下它這個(gè)工程創(chuàng)建精靈的作用。
選擇支持本地語(yǔ)言可以讓工程創(chuàng)建時(shí)增加一個(gè)setup-gettext腳本,運(yùn)行后會(huì)提示:
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.
編輯一下configure.in 加入自己的gettext 的version信息。我的是AM_GNU_GETTEXT_VERSION("0.15")
dnl Languages which your application supports
ALL_LINGUAS=""
AM_GLIB_GNU_GETTEXT
如果需要加入zh_CN的支持
就改成 ALL_LINGUAS="zh_CN"
我習(xí)慣改成AM_GNU_GETTEXT
另外在最后在AC_OUTPUT 下加上 intl/Makefile
還要編輯Makefile.am在SUBDIRS里加上intl
編輯完后運(yùn)行 setup-gettext 腳本。
拷貝生成一堆東西過(guò)來(lái)。比如m4目錄和intl目錄。
圖形編程的時(shí)候要這樣:
先給一個(gè)函數(shù)方便大家:
static void
setup_i18n (void)
{
gtk_set_locale ();
bindtextdomain (PACKAGE, PACKAGE_LOCALE_DIR);
bind_textdomain_codeset (PACKAGE, "UTF-8");
textdomain (PACKAGE);
}
在主程進(jìn)入時(shí)調(diào)用一下。
程序里還可以聲明一句這個(gè):
#define _(String) gettext(String)
#define gettext_noop(String) (String)
然后把需要翻譯的字符串都如下面這樣寫(xiě):
gtk_window_set_title(GTK_WINDOW(opwin),_("General Options"));
程序?qū)懖畈欢嗔诉M(jìn)入po目錄
運(yùn)行make update-po
如果報(bào)錯(cuò)說(shuō)需要Changelog啥的就touch一個(gè)出來(lái)。沒(méi)什么影響。
po目錄下就會(huì)有一個(gè)pot文件,名稱就是你的工程名字。
我們把這個(gè)pot文件復(fù)制成zh_CN.po
然后編輯它,補(bǔ)全所有的頭信息。
最關(guān)鍵的是Charset,寫(xiě)charset=UTF-8。
然后開(kāi)始翻譯了。
注意這個(gè)po文件的編碼一定要是UTF-8。
可以使用leafpad之類的編輯器存程UTF-8 編碼的文件。
然后在po里面make一下就生成了一個(gè)gmo文件。
最后make install你的軟件
運(yùn)行一下,可以看到你的翻譯信息在圖形界面上顯示了。
大功告成。
********************************************************
問(wèn)題:這是一篇原文,但是我按照上面的說(shuō)明,在po文件夾中執(zhí)行make update-po時(shí)候報(bào)錯(cuò)
錯(cuò)誤消息如下:
[root@FC5TEST po]# make update-mo
make: *** No rule to make target `Makevars', needed by `Makefile'. Stop.
什么原因呢? |
|