我需要转换一些 2 字母(中性)标识符(例如英语的 en
),以便对用户更友好,例如英语。
是否有使用 Win32 执行此操作的 Api?到目前为止我只找到了LCID一系列函数没有帮助。
最佳答案
您正在查找 IsValidLocaleName
、GetLocaleInfoEx
和 LOCALE_SLANGUAGE
/LOCALE_SLOCALIZEDLANGUAGENAME
/LOCALE_SENGLISHLANGUAGENAME
code>,在 WinNls.h
中定义为:
#define LOCALE_SLOCALIZEDDISPLAYNAME 0x00000002 // localized name of locale, eg "German (Germany)" in UI language
#if (WINVER >= _WIN32_WINNT_VISTA)
#define LOCALE_SLOCALIZEDLANGUAGENAME 0x0000006f // Language Display Name for a language, eg "German" in UI language
#endif //(WINVER >= _WIN32_WINNT_VISTA)
#define LOCALE_SENGLISHLANGUAGENAME 0x00001001 // English name of language, eg "German"
#define LOCALE_SNATIVELANGUAGENAME 0x00000004 // native name of language, eg "Deutsch"
(取决于操作系统版本和您的要求)。
注意:XP 仅使用 LCID
的
关于c++ - Win32 Api 将 2 字母(中性)标识符转换为语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9261905/