Boost.Locale
在 Windows 上使用 Gettext 工具

为了在 Windows 上获得 Gettext 工具,例如 msgfmtmsgmergexgettext,您有以下几种选择:

  • CppCMS 下载软件包(Boost.Locale 最初在此处开发)
  • 从 MinGW 项目下载一组软件包
  • 自行构建
  • 使用 Cygwin 的软件包

从 CppCMS 获取 Gettext 实用程序

Boost.Locale 是为 CppCMS 的需求而开发的,因此 CppCMS 为 Windows 用户托管了一个方便的软件包,其中包含预构建的、静态链接的 gettext 运行时实用程序,如 xgettextmsgfmt 等。

您可以从 CppCMS 下载页面的 boost_locale/gettext_for_windows 下下载 zip 文件 gettext-tools-static-XXX.zip

解压文件并使用里面的可执行文件。

通过 MinGW 获取 Gettext

MinGW 项目为 Windows 提供了 GNU 工具,包括 GNU 编译器和各种运行时实用程序。因此,您可以始终安装完整的 MinGW 发行版,包括 gettext 工具。但是,如果您想要一个最小化的运行时版本,允许您提取消息并创建目录,则需要手动下载几个软件包。

为了通过 MinGW 安装 Gettext,您需要下载 GCC 运行时、iconv 库和 Gettext 本身。

请访问 MinGW 的 下载页面 并下载以下文件(选择每个软件包的最新版本):

  • 来自:MinGW/BaseSystem/GCC/Version4/gcc-xxx/
    文件:libgcc-xxx-mingw32-dll-1.tar.lzma
  • 来自 MinGW/Gettext/gettext-yyy/
    文件:gettext-yyy-mingw32-dev.tar.lzmalibgettextpo-yyy-mingw32-dll-0.tar.lzmalibintl-yyy-mingw32-dll-8.tar.lzma
  • 来自 MinGW/libiconv/libiconv-zzz/
    文件:libiconv-zzz-mingw32-dll-2.tar.lzmalibcharset-zzz-mingw32-dll-1.tar.lzma

例如,在 2011 年 6 月 23 日,它是:

  • GNU 运行时:libgcc-4.5.2-1-mingw32-dll-1.tar.lzma
  • iconv: libiconv-1.13.1-1-mingw32-dll-2.tar.lzmalibcharset-1.13.1-1-mingw32-dll-1.tar.lzma
  • gettext: libintl-0.17-1-mingw32-dll-8.tar.lzmalibgettextpo-0.17-1-mingw32-dll-0.tar.lzmagettext-0.17-1-mingw32-dev.tar.lzma

下载软件包后,使用 7zip 等工具将所有文件解压到同一目录,您将在 bin 子目录下获得所有需要的可执行文件和 dll 文件。

注意
MinGW 站点上的版本略有过时 (0.17.1),而 Gettext 当前提供 0.18.1 版本。

自行构建最新版本。

您可以使用 MinGW 环境构建您自己的 GNU Gettext 版本。您需要拥有最新的 gcc 编译器和 shell。您需要先安装 iconv,然后再用它构建 Gettext。

最简单的方法是打开 MinGW shell。

构建 iconv:

cd libiconv-SOMEVERSION
./configure --prefix=c:/mygettext --disable-shared
make
make install
cd ..
cd gettext-SOMEVERSION
./configure --prefix=c:/mygettext --disable-shared --with-libiconv-prefix=c:/mygettext
make
make install

现在您就有了所有准备就绪的可执行文件,可以在 c:\mygettext\bin 中使用。

使用 Cygwin

如果您已经安装了 Cygwin - 只需使用它提供的 Gettext 工具即可。