C语言中用GNU gettext实现本地化
来源:互联网 发布:淘宝自定义分类模板 编辑:程序博客网 时间:2024/05/16 05:12
http://blog.sina.com.cn/s/blog_593abc890100noo7.html
首先要确认GNU gettext已经被安装。
写一个示例程序
gettext_test.c:
#include <stdio.h>
#include <locale.h>
#include <libintl.h>
#define _(string) gettext(string)
int
main ()
{
}
下面先分析一下上面的源文件
locale.h包含下面要调用的setlocale函数的声明。
libintl.h包含gettext所使用的一些函数。
setlocale(LC_ALL, "");进行区域设置。(第二个参数为""说明设置成当前系统的区域)
bindtextdomain ("gettext_test","language");设置包含给定domain的语言文件的基目录。这里domain设置为gettext_test,基目录是当前目录下的language目录。
textdomain("gettext_test");设置当前程序的domain,要与bindtextdomain中的domain保持一致(这里是"gettext_test")。
将所有要翻译的字符串写成gettext("some string.")的形式,如程序中原来的printf ("Helloworld!\n");要写成printf (gettext ("Helloworld!\n");根据GNU标准也可以使用_代替gettext,这样可以少写几个字...
编译源文件生成gettext_test程序:
# gcc -o gettext_test gettext_test.c
生成翻译文件gettext_test.po:
# xgettext -k_ gettext_test.c
按照bindtextdomain 中参数,建立目录结构:
在gettext_test当前目录下建立language目录,language目录下建立你的语言目录如:zh_CN、zh_TW等等,所有可以使用的名字参考setlocale的第二个参数。在所有的语言目录下建立LC_MESSAGES目录。下面建立目录结构,假设你已经位于gettext_test的当前目录下:
# mkdir -p language/zh_CN/LC_MESSAGES
# mkdir -p language/zh_TW/LC_MESSAGES
将gettext_test.po拷贝到所有语言目录下:
# cp gettext_test.po language/zh_CN/LC_MESSAGES
# cp gettext_test.po language/zh_TW/LC_MESSAGES
编辑各个语言文件*.po,具体如何翻译,可以自己查阅资料,进行翻译。
翻译完成后生成*.mo文件:
# msgfmt -o language/zh_CN/LC_MESSAGES/gettext_test.mogettext_test.po
# msgfmt -o language/zh_TW/LC_MESSAGES/gettext_test.mogettext_test.po
下面运行gettext_test,其中的Hello world!\n已经显示翻译后的词了!
- C语言中用GNU gettext实现本地化
- C语言中用GNU gettext实现本地化
- 使用GNU gettext来实现网站多语言支持
- PHP中用gettext实现i18n
- c语言的本地化实现
- GNU gettext
- 使用GetText本地化编程
- 使用GetText本地化编程
- GNU gettext utilities
- iOS实现语言本地化
- unity3d实现语言本地化
- C语言中用结构实现位段
- C语言中用bsearch()实现查找操作
- C 语言中用bsearch()实现查找操作
- C 语言中用bsearch()实现查找操作
- php i18n gettext 实现多语言
- Linux下C语言的本地化/国际化实现
- 转贴:使用GetText本地化编程
- "Syntax error on tokens, delete these tokens"的分析以及的解决之道
- 【ML】机器学习中的相似性度量
- GDB调试技巧:调试复杂的宏定义
- HLS与RTMP ,RTSP对比
- 列里面内容太长的话,展现不完全
- C语言中用GNU gettext实现本地化
- WCF学习记录一
- 在CentOS release 5.6上安装gearman及php扩展错误记录
- Performance Considerations for Direct3D9 and WPF Interoperability
- 笔记13-8-22
- mybatis学习笔记
- Heaviside step function 阶跃函数
- gdb define查看一个宏(C预处理宏)
- makefile 文件的语法及相关知识(1)