是否可以将LANGID
从Win32_OperatingSystem映射到C#CultureInfo
。或者更具体地说是Locale
中的Win32_OperatingSystem
属性?
以下是说明
Locale
Data type: string
Access type: Read-only
Qualifiers: MappingStrings ("Win32API|National Language Support Functions|GetLocaleInfo|LOCALE_ILANGUAGE")
操作系统使用的语言标识符。一种语言 identifier是a的标准国际数字缩写 国家/地区。每种语言都有唯一的语言标识符 (LANGID),一个由主要语言组成的16位值 标识符和辅助语言标识符
我认为它会映射到CultureInfo
的LCID参数,但之后我在报告中得到了值409
,它使CultureInfo.GetCultureInfo(lcid)
抛出异常。
那么获得CultureInfo
(或其他能给我一个人名而不是语言代码的东西)的正确方法是什么。
答案 0 :(得分:2)
您需要将字符串解析为十六进制数字:
int lcid;
if (int.TryParse(currentValue, NumberStyles.HexNumber,
NumberFormatInfo.InvariantInfo, out lcid)) {
currentValue = CultureInfo.GetCultureInfo(lcid).Name;
}