|
|
各位大大, 有一個關於GTK+2.0的I18N問題,
我的gtk程序加入了
- #include <gtk/gtk.h>
- #include <locale.h>
- #include <libintl.h>
- #define PACKAGE "gui"
- #define _(STRING) gettext(STRING)
- int main(int argc, char *argv[])
- {
- GtkWidget *window;
- setlocale(LC_ALL, "");
- textdomain(PACKAGE);
- gtk_init(&argc, &argv);
- window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(window), _("Testing UI"));
- gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(gtk_main_quit), NULL);
- gtk_widget_show(window);
- printf(_("gogogogogo\n"));
- gtk_main();
- return 0;
- }
复制代码
使用 #xgettext -k_ -o test.po test.c 得到 po檔, 再更改po內容如下:
- # This file is distributed under the same license as the PACKAGE package.
- # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
- #
- #, fuzzy
- msgid ""
- msgstr ""
- "Project-Id-Version: PACKAGE VERSION\n"
- "Report-Msgid-Bugs-To: \n"
- "POT-Creation-Date: 2005-03-29 14:42+0800\n"
- "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
- "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
- "Language-Team: LANGUAGE <LL@li.org>\n"
- "MIME-Version: 1.0\n"
- "Content-Type: text/plain; charset=big5\n"
- "Content-Transfer-Encoding: 8bit\n"
- #: gui.c:17
- msgid "Testing UI"
- msgstr "測試測試"
- #: gui.c:21
- #, c-format
- msgid "gogogogogo\n"
- msgstr "受死吧\n"
复制代码
再用 #msgfmt -v -o gui.mo gui.po
安裝po檔 #install -m 644 gui.po /usr/share/locale/zh_TW/LC_MESSAGES/gui.mo
再編譯程序 #gcc -o gui gui.c `pkg-config --cflags --libs gtk+-2.0`
再運行 #./gui
在文本模式下會出現"受死吧", 但在gtk程式內就是空的, 沒有任何字顯示, 包括中文及英文.
請問各位, 我錯的地方在那呢? 請指教. 已經看了得多相關的文件, 但效果也是一樣的. |
|