当前位置: 技术问答>linux和unix
gtk+国际化问题
来源: 互联网 发布时间:2016-04-12
本文导语: 小子写了一个gtk程序,打算国际化一下 步骤都没有错 但是把语言从英语转成简体中文后,再运行程序,还是没有变化 但是如果用LC_ALL=zh_CN.UTF-8 ./project 运行后,又可以了 这又是怎么回事呢? 我是在SUSE 企业...
小子写了一个gtk程序,打算国际化一下
步骤都没有错
但是把语言从英语转成简体中文后,再运行程序,还是没有变化
但是如果用LC_ALL=zh_CN.UTF-8 ./project 运行后,又可以了
这又是怎么回事呢?
我是在SUSE 企业版9下编的
有没高人把编译过可行的代码弄一份给小子看一下,或者有出现这种问题解决的高人不吝赐教
小子感激不尽~~~~
步骤都没有错
但是把语言从英语转成简体中文后,再运行程序,还是没有变化
但是如果用LC_ALL=zh_CN.UTF-8 ./project 运行后,又可以了
这又是怎么回事呢?
我是在SUSE 企业版9下编的
有没高人把编译过可行的代码弄一份给小子看一下,或者有出现这种问题解决的高人不吝赐教
小子感激不尽~~~~
|
int main(int argc,char *argv[])
{
#ifdef ENABLE_NLS
bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
textdomain (GETTEXT_PACKAGE);
#endif
g_thread_init(0);
gdk_threads_init();
gtk_init(&argc,&argv);
/*
//gtk_set_locale();
//setlocale(LC_ALL,"zh_CN.UTF-8"); //切换到中文模式
setlocale(LC_ALL,"en_US.UTF-8"); //切换到英文模式
*/
gtk_main();
return 0;
}
{
#ifdef ENABLE_NLS
bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
textdomain (GETTEXT_PACKAGE);
#endif
g_thread_init(0);
gdk_threads_init();
gtk_init(&argc,&argv);
/*
//gtk_set_locale();
//setlocale(LC_ALL,"zh_CN.UTF-8"); //切换到中文模式
setlocale(LC_ALL,"en_US.UTF-8"); //切换到英文模式
*/
gtk_main();
return 0;
}
|
我做过国际化编程,先生成po,文件,这里面对应写好语言,比如英文,和中文,
然后 po文件生成mo文件,放到/usr/share/locale/zh_CN等具体的路径
当你改变locale的时候,然后运行程序,如果locale是英文,界面就是英文的,
如果是中文的界面就是中文的。
然后 po文件生成mo文件,放到/usr/share/locale/zh_CN等具体的路径
当你改变locale的时候,然后运行程序,如果locale是英文,界面就是英文的,
如果是中文的界面就是中文的。
|
xgettext
那个忘记了。
那个忘记了。