簡體   English   中英

沒有過程語言環境的Gettext

[英]Gettext without process locale

我想為i18n使用gettext。 但是我需要將信息翻譯成其他語言。 是否可以為一個gettext調用指定語言環境?

如果使用多個線程,那么如果使用POSIX.1-2008(在GLIBC 2.3中實現)中指定的與語言環境相關的功能,則可以使用gettext。 您將使用的關鍵功能是uselocale ,它有點像setlocale但僅適用於當前線程。

如果您使用的是Windows,那么您就不走運了uselocale不提供等效於uselocale ,我相信libintl在該平台上以非線程安全的方式IIRC模仿setlocale本身。

“ gettext的替換”中可以看到,我也遇到了類似的問題,只有在必須支持更多平台的情況下,情況才會變得更糟。

基本上,gettext僅真正適用於單線程交互式程序。

如果您有機會,那么可以使用其他翻譯系統(ICU看起來不錯)。

否則,有一些庫可以直接讀取.mo文件,並可以根據需要提供翻譯:

http://art-blog.no-ip.info/cppcms/blog/post/16

我想為i18n使用gettext。 但是我需要將信息翻譯成其他語言。

如果您的應用程序是單線程的,則可以切換語言環境,否則,您不能為此使用gettext庫。

是否可以為一個gettext調用指定語言環境?

您可以使用支持gettext消息目錄的非官方Boost庫Boost.Locale 但這僅是C++

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM