如何获得三字母母语名称?

How to get Three-letter-native-language-names?

一个TwoLetterISOLanguageName、一个ThreeLetterIsoLanguageName、一个EnglishName、一个NativeName、一个DisplayName等都可以通过CultureInfo.

例如:

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)

但是... 问题!

如何获得三字母-native-language-names(如Windows 8.1 中的那些;见下图)?还是它们存储在注册表中的某处,或者只是 NativeName 的 trim*?

(*) 我不确定 trim,因为日语。

谢谢!

它们不是通过算法从本地名称派生出来的。这些都没有暴露在任何 public API.