c++ - Win32 Api 将 2 字母(中性)标识符转换为语言

标签 c++ windows locale

我需要转换一些 2 字母(中性)标识符(例如英语的 en),以便对用户更友好,例如英语。

是否有使用 Win32 执行此操作的 Api?到目前为止我只找到了LCID一系列函数没有帮助。

最佳答案

您正在查找 IsValidLocaleNameGetLocaleInfoExLOCALE_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/

相关文章:

java - 使用区域设置设置自定义货币符号

c++ - C++ 中的委托(delegate)(或类似的东西)

windows - 为什么我在 cygwin 中运行咖啡命令时出现错误?

android - 如何获取当前语言环境(API 级别 24)?

java - 如何在 weblogic 中共享 session

c++ - 在 Windows 下,您如何识别当前的控制台用户,然后对该用户进行注销?

c++ - 排序 vector 不起作用

c++ - 全局 namespace 中没有名为 'isinf'的成员

C++模板类T麻烦

windows - 是否有阻止访问远程计算机(模拟断开连接)的应用程序?