gettext
1.0、参考
1.1、gettext简介
是什么 ?:GNU internationalization (i18n) and localization (l10n) library
开发语言:C
开发组织:GNU
官方主页:https://www.gnu.org/software/gettext
1.2、通过包管理器安装GNU gettext
操作系统包管理器安装命令
Windowsscoopscoop install gettext
macOSHomeBrewbrew install gettext
GNU/LinuxLinuxBrewbrew install gettext
aptsudo apt-get install -y gettext
CentOSyumsudo yum install -y gettext
dnfsudo dnf install -y gettext
openSUSEzyppersudo zypper install -y gettext-tools gettext-runtime
Alpine Linuxapksudo apk add gettext

Arch Linux

ArcoLinux

Manjaro Linux

pacmansudo pacman -Syyu --noconfirm
sudo pacman -S    --noconfirm gettext
Gentoo LinuxPortagesudo emerge gettext
1.3、通过编译源码安装GNU gettext 

step1、安装依赖

下载时cURL
解压时targzip
编译时POSIX shGNU CoreUtilsGNU makeGCC ( gcc )   | LLVM / Clang
运行时glibc ( libc.sold-linux-x86-64.so )

step2、使用curl命令下载GNU gettext源码包 (

curl -LO https://mirrors.tuna.tsinghua.edu.cn/gnu/gettext/gettext-0.20.1.tar.gz

step3、使用tar解压GNU gettext源码包

tar vxf gettext-0.20.1.tar.gz

step4、进入gettext-0.20.1目录,并查看它的内容

step5、配置、编译、安装

./configure --prefix=/usr && make && sudo make install
1.4、gettext中包含的工具
1.5、gettext中包含的头文件
1.6、gettext中包含的库文件
  • libasprintf.{a | so | dylib}
  • libtextstyle.{a | so | dylib}
  • libgettextpo.{a | so | dylib}
  • libintl.{a | so | dylib}
1.7、通过一个项目理解gettext

pot:

pot(Portable Object Template)

.pot文件是一种模板文件。其中包含了从源代码中提取所有的需要翻译的字符串的列表。

.pot文件是提供给翻译人员,让翻译人员进行翻译的。

.pot文件是使用xgettext命令生成的。

po:

po(Portable Object)

.po文件是对应语言的翻译结果,比如中文就是zh_CN.po、法语就是fr.po文件。

.po文件是使用msginit命令生成的。

mo:

mo(Machine Object)

.mo文件是面向计算机程序的,他是二进制文件。

.mo文件是使用msgfmt命令生成的。

汉化:

我们经常看到一些英文软件的汉化包,这些汉化包实际上就是通过使用msgunfmt命令 将.mo文件反编译为.po文件,做了汉语的翻译之后,重新走了生成.mo文件的流程而得到的。