C 不带进程区域设置的Gettext

C 不带进程区域设置的Gettext,c,linux,internationalization,C,Linux,Internationalization,我想为i18n使用gettext。但我需要把梅塞奇翻译成不同的语言。是否可以为one gettext调用指定区域设置?如您所见 我也遇到过类似的问题,只是如果你必须支持更多的平台,情况会变得更糟 基本上,gettext只适用于单线程交互程序 如果你有机会,那就换个翻译系统(ICU看起来很不错) 否则,有几个库可以直接读取.mo文件,并可以根据需要提供翻译: 正如您从 我也遇到过类似的问题,只是如果你必须支持更多的平台,情况会变得更糟 基本上,gettext只适用于单线程交互程序 如果你有机会,那

我想为i18n使用gettext。但我需要把梅塞奇翻译成不同的语言。是否可以为one gettext调用指定区域设置?

如您所见 我也遇到过类似的问题,只是如果你必须支持更多的平台,情况会变得更糟

基本上,gettext只适用于单线程交互程序

如果你有机会,那就换个翻译系统(ICU看起来很不错)

否则,有几个库可以直接读取.mo文件,并可以根据需要提供翻译:

正如您从 我也遇到过类似的问题,只是如果你必须支持更多的平台,情况会变得更糟

基本上,gettext只适用于单线程交互程序

如果你有机会,那就换个翻译系统(ICU看起来很不错)

否则,有几个库可以直接读取.mo文件,并可以根据需要提供翻译:

我想为i18n使用gettext。但我需要把梅塞奇翻译成不同的语言

如果您的应用程序是单线程的,您可以切换区域设置,否则无法使用 用于此目的的gettext库

是否可以为one gettext调用指定区域设置

您可以使用支持gettext消息目录的非官方Boost库。但它只是
C++

我想为i18n使用gettext。但我需要把梅塞奇翻译成不同的语言

如果您的应用程序是单线程的,您可以切换区域设置,否则无法使用 用于此目的的gettext库

是否可以为one gettext调用指定区域设置


您可以使用支持gettext消息目录的非官方Boost库。但是它仅限于C++

如果使用多个线程,那么如果使用POSIX.1-2008中指定的与语言环境相关的工具(并在GLIBC 2.3中实现),则可以使用gettext。您将使用的关键函数是,这有点像
setlocale
,但仅适用于当前线程


如果您使用的是Windows,那么您就不走运了——MSVCRT没有提供与
uselocale
等效的版本,我相信在这个平台上,libintl模拟了
setlocale
本身,以非线程安全的方式IIRC。

如果您使用多个线程,那么如果您使用POSIX.1-2008(并在GLIBC 2.3中实现)中指定的与区域设置相关的工具,则可以使用gettext。您将使用的关键函数是,这有点像
setlocale
,但仅适用于当前线程

如果您使用的是Windows,那么您就不走运了——MSVCRT没有提供与
uselocale
等效的工具,我相信在这个平台上,libintl以非线程安全的方式模拟
setlocale
本身