8.31. Gettext-0.21

Gettext 软件包包含国际化和本地化工具,它们允许程序在编译时加入 NLS (本地语言支持) 功能,使它们能够以用户的本地语言输出消息。

估计构建时间: 2.9 SBU
需要硬盘空间: 240 MB

8.31.1. 安装 Gettext

准备编译 Gettext:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/gettext-0.21

编译该软件包:

make

输入以下命令以测试编译结果 (需要较长时间, 大约 3 SBU):

make check

安装该软件包:

make install
chmod -v 0755 /usr/lib/preloadable_libintl.so

8.31.2. Gettext 的内容

安装的程序: autopoint, envsubst, gettext, gettext.sh, gettextize, msgattrib, msgcat, msgcmp, msgcomm, msgconv, msgen, msgexec, msgfilter, msgfmt, msggrep, msginit, msgmerge, msgunfmt, msguniq, ngettext, recode-sr-latin, 以及 xgettext
安装的库: libasprintf.so, libgettextlib.so, libgettextpo.so, libgettextsrc.so, libtextstyle.so, 以及 preloadable_libintl.so
安装的目录: /usr/lib/gettext, /usr/share/doc/gettext-0.21, /usr/share/gettext, 以及 /usr/share/gettext-0.19.8

简要描述

autopoint

将标准 Gettext 微架构文件复制到源代码包

envsubst

替换 shell 格式化字符串中的环境变量

gettext

通过查询消息目录中的翻译,将中性语言消息翻译成用户的语言

gettext.sh

主要用于 gettext 的 shell 函数库

gettextize

将所有标准 Gettext 文件复制到软件包顶层目录中,以开始国际化该软件包

msgattrib

根据属性过滤翻译目录中的消息,或修改这些属性

msgcat

连接并合并给定的 .po 文件

msgcmp

比较两个 .po 文件,以检查它们是否包含相同的 msgid 字符串集合

msgcomm

找出给定的多个 .po 中的公共消息

msgconv

将翻译目录转换成另一种字符编码

msgen

创建英文翻译目录

msgexec

对翻译目录中的所有翻译执行命令

msgfilter

对翻译目录中的所有翻译应用过滤器

msgfmt

根据翻译目录创建二进制消息目录

msggrep

找出翻译目录中所有匹配给定模式,或属于给定源代码文件的消息

msginit

创建一个新的 .po 文件,以用户环境中的值初始化其元信息

msgmerge

将两个原始翻译文件组合成一个文件

msgunfmt

反编译二进制消息目录,生成原始翻译文本

msguniq

去除翻译目录中重复的翻译

ngettext

显示某条语法形式依赖于数字的文本消息的母语翻译

recode-sr-latin

将塞尔维亚语文本从西里尔字符转换为拉丁字符

xgettext

从给定源代码文件中提取可翻译消息,以生成最初的翻译模板

libasprintf

定义 autosprintf 类,使得 C 格式化输出子程序在 C++ 程序中可用,能够与 <string> 字符串和 <iostream> 流一起使用

libgettextlib

一个内部库,包含若干 Gettext 程序的公共子程序;不建议普遍使用

libgettextpo

用于编写处理 .po 文件的专用程序;这个库在 Gettext 发行的标准程序 (如 msgcomm, msgcmp, msgattrib, 以及 msgen) 不能满足要求时使用

libgettextsrc

一个内部库,包含若干 Gettext 程序使用的公共子程序;没有设计为普遍使用

libtextstyle

文本样式库

preloadable_libintl

一个被设计为由 LD_PRELOAD 预加载的库,帮助 libintl 记录未翻译的消息