第一个GTK程序:中国农历 之四
2013-04-21 03:22
603 查看
处理gettext与多国语言,我们先需要在configure.ac中增加一个AM_GNU_GETTEXT宏,如下
定义了external就不需要在当前目录下面有intl目录了,当然intl目录也是可以通过
然后我们执行gettextize生成config.rpath以及po/m4目录下面的文件。同时会往configure.ac的AC_CONFIG_FILES中增加一个输出po/Makefile.in
执行此命令时,带参数--symlink就是链接到系统中而不是拷贝到本地
当前版本的gettextize会提示下一步需要做些什么事情,最关键的是在po目录下面将一个Makevars.template拷贝为Makevars,内容是不需要修改的
由于glade-2中使用的gettext宏是GET_PACKAGE,因此,我们在configure.ac中增加定义
做完这些操作之后,我们需要再执行autogen.sh脚本,然后再执行configure,再调用make程序
此时的全部代码打包:lunarcalendar.0.0.3.zip
这时候,编译后会在po目录下生成lunarcalendar.pot文件,基于此文件,我们可以对源代码的字符串进行翻译
比如,我们翻译出一个zh_CN.po文件
然后,我们还要再在po目录下创建一个LINGUAS文件,文件的内容只有一行"zh_CN"
再调用autogen.sh重新生成Makefile等之后,再调用configure及make,就可以将刚才增加的zh_CN.po自动编译为zh_CN.gmo了
此时的全部代码打包:lunarcalendar.0.0.4.zip
至此,我们的工程是可以编译、链接,也可以安装了,下一步是生成.desktop文件
# Checks for programs. AC_PROG_CXX AC_PROG_CC AC_PROG_MAKE_SET AM_GNU_GETTEXT([external])
定义了external就不需要在当前目录下面有intl目录了,当然intl目录也是可以通过
AM_GNU_GETTEXT_INTL_SUBDIR来指定另外名称的
然后我们执行gettextize生成config.rpath以及po/m4目录下面的文件。同时会往configure.ac的AC_CONFIG_FILES中增加一个输出po/Makefile.in
执行此命令时,带参数--symlink就是链接到系统中而不是拷贝到本地
当前版本的gettextize会提示下一步需要做些什么事情,最关键的是在po目录下面将一个Makevars.template拷贝为Makevars,内容是不需要修改的
由于glade-2中使用的gettext宏是GET_PACKAGE,因此,我们在configure.ac中增加定义
GETTEXT_PACKAGE=lunarcalendar AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["$GETTEXT_PACKAGE"], [GETTEXT lunarcalendar])
做完这些操作之后,我们需要再执行autogen.sh脚本,然后再执行configure,再调用make程序
此时的全部代码打包:lunarcalendar.0.0.3.zip
这时候,编译后会在po目录下生成lunarcalendar.pot文件,基于此文件,我们可以对源代码的字符串进行翻译
比如,我们翻译出一个zh_CN.po文件
# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # msgid "" msgstr "" "Project-Id-Version: lunarcalendar 0.1\n" "Report-Msgid-Bugs-To: eagle_xmw@yahoo.com.cn\n" "POT-Creation-Date: 2013-04-21 03:02+0800\n" "PO-Revision-Date: 2013-04-21 03:07+0800\n" "Last-Translator: \n" "Language-Team: LANGUAGE <eagle_xmw@yahoo.com.cn>\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/interface.c:39 msgid "Lunar Calendar" msgstr "中国农历" #: src/support.c:90 #: src/support.c:114 #, c-format msgid "Couldn't find pixmap file: %s" msgstr "无法打开图片文件: %s"
然后,我们还要再在po目录下创建一个LINGUAS文件,文件的内容只有一行"zh_CN"
再调用autogen.sh重新生成Makefile等之后,再调用configure及make,就可以将刚才增加的zh_CN.po自动编译为zh_CN.gmo了
此时的全部代码打包:lunarcalendar.0.0.4.zip
至此,我们的工程是可以编译、链接,也可以安装了,下一步是生成.desktop文件
相关文章推荐
- 第一个GTK程序:中国农历 附录3 静态库
- 第一个GTK程序:中国农历 之二
- 第一个GTK程序:中国农历 附录4 动态库
- 第一个GTK程序:中国农历 附录5 变量名
- 第一个GTK程序:中国农历 之三
- 第一个GTK程序:中国农历 之五
- 第一个GTK程序:中国农历 附录1 autogen.sh
- 第一个GTK程序:中国农历 之一
- 第一个GTK程序:中国农历 附录2 libtool
- 02 第一个GTK程序
- gtk第一个程序
- C语言 + GTK3+ Visual Studio 2015环境配置 以及第一个GTK界面程序
- GTK学习第一步: Windows环境下运行第一个GTK程序
- 第一个GTK程序
- 中国象棋程序的设计与实现(三)--2012本科毕业论文等重要文档资料
- 【 D3.js 入门系列 --- 1 】 第一个程序HelloWorld
- Windows程序设计:编写第一个Windows程序Helllo World!
- idea创建第一个java小程序
- Java-003-第一个程序及class与java
- 第一个JFace程序