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