Chinaunix
标题:
請教gtk 在 i18n上的問題. 先謝過.
[打印本页]
作者:
惠繪洋
时间:
2005-03-28 16:54
标题:
請教gtk 在 i18n上的問題. 先謝過.
各位, 小弟正在寫一個gtk的程序, 但當加入i18n支援時就出現以下情況. 情況出現在GtkItemFactoryEntry內, 我想把menu內加入i18n功能.
....
#include <libintl.h>;
#include <stdio.h>;
#define _(STRING) gettext(STRING)
#define N_(STRING) gettext_noop(STRING)
...
static GtkItemFactoryEntry menu_item[] =
{
{ N_("/Action"), NULL, NULL, 0, "<Branch>;"},
{ N_("/Action/one"), NULL, one, 0, NULL},
{ N_("/Action/sep1"), NULL, NULL, 0, "<Separator>;"},
{ N_("/Action/Exit"), NULL, gtk_main_quit, 0, NULL},
{ N_("/Help"), NULL, NULL, 0, "<Branch>;"},
{ N_("/Help/About"), NULL, help, 0, NULL},
};
复制代码
但它在編譯時出現以下錯誤:
root@Compaq:~/setpppoe# ./build.sh
interfunc.c:23: warning: implicit declaration of function `N_'
interfunc.c:23: error: initializer element is not constant
interfunc.c:23: error: (near initialization for `menu_item[0].path')
interfunc.c:23: error: initializer element is not constant
interfunc.c:23: error: (near initialization for `menu_item[0]')
interfunc.c:24: error: initializer element is not constant
interfunc.c:24: error: (near initialization for `menu_item[1].path')
interfunc.c:24: error: initializer element is not constant
interfunc.c:24: error: (near initialization for `menu_item[1]')
interfunc.c:25: error: initializer element is not constant
interfunc.c:25: error: (near initialization for `menu_item[2].path')
interfunc.c:25: error: initializer element is not constant
interfunc.c:25: error: (near initialization for `menu_item[2]')
interfunc.c:26: error: initializer element is not constant
interfunc.c:26: error: (near initialization for `menu_item[3].path')
interfunc.c:26: error: initializer element is not constant
interfunc.c:26: error: (near initialization for `menu_item[3]')
interfunc.c:27: error: initializer element is not constant
......
复制代码
我已經查過很多貼及軟件包, 它們都是用這個方法為MENU加入i18n功能, 但我的就不能, 是否我打錯什麼, 請各位指教. thanks.
作者:
bleem1998
时间:
2005-03-28 17:42
标题:
請教gtk 在 i18n上的問題. 先謝過.
什么是i18n功能
多语言?
给我扫个盲
谢谢
作者:
惠繪洋
时间:
2005-03-28 22:54
标题:
請教gtk 在 i18n上的問題. 先謝過.
i18n 是 internationalization 的縮寫, 由第一個i字到最後一個n字一共18個, 所以叫做i18n.
i18n的作用是可以把程式依系統的語言設定來改變程式的語言顯示, 對於程序員來說它只需要編寫一次程序碼就可以實現多語言的顯示. 例如常用的中文, 可分為簡體及繁體. 只要依著系統的 locale 設定 zh_CN.GB2312 及 zh_TW.Big5 那就可以輕易地顯示繁體及簡體了. 其他語言道理也是一樣的.
有興趣可參考http://i18n.linux.org.tw
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2