GTK+ 程序使用gettext国际化小结
来源:互联网 发布:刺客信条枭雄画面优化 编辑:程序博客网 时间:2024/06/05 02:43
gettext软件包是GNU工程中解决国际化问题的重要工具,支持C/C++和JAVA语言,它在开源 界应用相当广泛,GNOME/GTK+的国际化问题都是用它来解决的,正常的情况下GNU/LINUX系统是默认安装这一软件包的。
首先,应用程序要包含两个头文件,并且做一下定义:
然后在主函数中加入以代码:
然后在程序代码中使用 _( ) 括起需要进行国际化的字符串即可。
生成po文件:
xgettext -j -k_ -o main.po *.c
-j 参数表示不覆盖生成过的po文件
-k 指定翻译字符以何种宏定义括起,我们在前面使用的是 _( ) 所以用 -k_
输入文件可以是*.c表示扫描所有的c文件,如果是glade生成的UI文件,可以使用 *.glade
进行翻译:
打开po文件,msgid后面的内容为代码中的英文, msgstr后面的内容为要翻译的中文,翻译好后保存为UTF8格式。
生成mo文件:
msgfmt -o main.mo main.po
用于我们指定的LOCALEDIR为./locale,所以我们将生成的mo文件拷到 ./locale/zh_CN/LC_MESSAGES下。
最后启动你的应用程序就行了。
首先,应用程序要包含两个头文件,并且做一下定义:
#include <glib/gi18n.h>
#include <locale.h>
#define PACKAGE "main" //软件包名 最后生成的.mo文件名应该命名为这个
#define LOCALEDIR "./locale" //locale所在目录
#include <locale.h>
#define PACKAGE "main" //软件包名 最后生成的.mo文件名应该命名为这个
#define LOCALEDIR "./locale" //locale所在目录
然后在主函数中加入以代码:
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
然后在程序代码中使用 _( ) 括起需要进行国际化的字符串即可。
生成po文件:
xgettext -j -k_ -o main.po *.c
-j 参数表示不覆盖生成过的po文件
-k 指定翻译字符以何种宏定义括起,我们在前面使用的是 _( ) 所以用 -k_
输入文件可以是*.c表示扫描所有的c文件,如果是glade生成的UI文件,可以使用 *.glade
进行翻译:
打开po文件,msgid后面的内容为代码中的英文, msgstr后面的内容为要翻译的中文,翻译好后保存为UTF8格式。
生成mo文件:
msgfmt -o main.mo main.po
用于我们指定的LOCALEDIR为./locale,所以我们将生成的mo文件拷到 ./locale/zh_CN/LC_MESSAGES下。
最后启动你的应用程序就行了。
- GTK+ 程序使用gettext国际化小结
- GTK+ 程序使用gettext国际化小结
- php 程序的国际化gettext
- 使用GTK+进行国际化
- JAVA使用GNU的Gettext后端国际化
- 关于GTK GETTEXT
- php gettext国际化
- php gettext国际化
- php gettext国际化
- gettext国际化用法示例
- gettext:Python本地/国际化模块
- python的国际化gettext模块
- 使用 Netbeans 编写 gtk+ 程序
- 使用eclipse编译gtk+程序
- php的国际化编程思路(i18n gettext)
- 用gettext快速实现国际化 PyGTK,glade
- 关于软件国际化工具GNU GetText
- Zend Framework 多语言国际化-适配器gettext
- javascript站点收藏
- 在路上:博客的心态
- 锁相环的原理
- Wse3.0 学习笔记
- SQL Server中解决死锁的新方法介绍
- GTK+ 程序使用gettext国际化小结
- 如何在Eclispe中,正确导入自带的SWT包
- Button.performclick()
- 好好学习:VSS使用故障及解决(2)
- sql server数据库定时自动备份
- 读《C++并行与分布式编程》(中文版)
- PowerDesigner的一些使用
- 没有main 函数也可以运行java的方法
- 牢骚