Windows中的语言环境列表

时间:2011-03-01 09:52:17

标签: c windows localization locale setlocale

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

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

我在Internet上看过列表,但大多数都是区域设置标签,而不是实际的区域设置名称。另外,并非所有系统都保证安装所有系统,对吧?

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

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

2 个答案:

答案 0 :(得分:6)

最初,我找不到C / Win32 API来获取信息。 (请参阅后面的编辑。)但是,看起来.NET类System.Globalization.CultureInfo可以提供您需要的信息。特别是,请参阅CultureInfo.GetCultures()。此页面似乎有complete example您正在寻找的内容。

编辑:如果您更喜欢C / Win32 API,请参阅EnumSystemLocales()函数。

编辑2:This example显示如何将LCID(您从EnumSystemLocales()获得)转换为setlocale()可用的字符串。

答案 1 :(得分:1)

This page似乎包含指向WIN32 setlocale识别的语言和国家/地区列表的链接。但是:

  

可用语言集,   国家/地区代码和代码页   包括所有支持的人   Win32 NLS API除了代码页之外   每个需要两个以上的字节   字符,例如UTF-7和UTF-8。如果   你提供像UTF-7或   UTF-8,setlocale将失败,返回   NULL。

失败。