Windows中的语言环境列表

在* nix系统上,您可以执行locale -a来获取可用语言环境的列表。

什么是Windows中的等效命令(或动作)?

我在互联网上看到了列表,但其中大多数只是语言环境标签,而不是实际的语言环境名称。 另外,并不是所有的系统都能保证全部安装,对吗?

请注意,我在这里定义的“locale”是“locale string”,即C的setlocale()的第二个参数,它将导致非空的返回值。

程序化的答案也很好,我只是厌倦猜测Windows语言环境名称的蛮力。

最初,我找不到一个C / Win32 API来获取信息。 (见后面的编辑。)但是,它看起来像.NET类System.Globalization.CultureInfo可以提供您所需要的信息。 具体请参阅CultureInfo.GetCultures()。 这个网页似乎有一个完整的例子 ,你在找什么。

编辑:如果您更喜欢C / Win32 API,请参阅EnumSystemLocales ()函数,以及简单的示例代码 。

编辑2: 此示例显示如何将LCID(从EnumSystemLocales()获取)转换为可由setlocale()使用的字符串。

此页面似乎包含指向WIN32 setlocale可识别的语言和国家/地区列表的链接。 然而:

除了需要每个字符超过两个字节的代码页(例如UTF-7和UTF-8)之外,可用语言,国家/地区代码和代码页的集合包括Win32 NLS API支持的所有这些页面。 如果您提供的代码页如UTF-7或UTF-8,则setlocale将失败,返回NULL。

失败。