如何获得三个字母的本地语言名称?

时间:2015-05-08 12:39:00

标签: vb.net windows cultureinfo iso

TwoLetterISOLanguageNameThreeLetterIsoLanguageNameEnglishNameNativeNameDisplayName等可以通过CultureInfo

e.g:

Dim buffer As String = "IetfLanguageTag" & ControlChars.Tab & _
                       "TwoLetterISOLanguageName" & ControlChars.Tab & _
                       "ThreeLetterISOLanguageName" & ControlChars.Tab & _
                       "EnglishName" & ControlChars.Tab & _
                       "NativeName" & ControlChars.Tab & _
                       "Name" & ControlChars.Tab & _
                       "DisplayName" & _
                       Environment.NewLine

For Each ci As CultureInfo In System.Globalization.CultureInfo.GetCultures(CultureTypes.InstalledWin32Cultures)
   buffer &= ci.IetfLanguageTag & ControlChars.Tab & _
             ci.TwoLetterISOLanguageName & ControlChars.Tab & _
             ci.ThreeLetterISOLanguageName & ControlChars.Tab & _
             ci.EnglishName & ControlChars.Tab & _
             ci.NativeName & ControlChars.Tab & _
             ci.Name & ControlChars.Tab & _
             ci.DisplayName & _
             Environment.NewLine
Next
My.Computer.Clipboard.SetText(buffer)

但是...... 问题!

如何获取三个字母 - 原生 - 语言名称(如Windows 8.1中的那些;请参见下图)?或者它们是存储在注册表中的某个位置还是只是NativeName的修剪*?

(*)我不确定修剪,例如日本人。

Windows 8 Language bar

谢谢!

1 个答案:

答案 0 :(得分:1)

它们不是通过算法从本机名称派生的。这些不会在任何公共API中公开。