vb.net - 如何获得三字母母语名称?

标签 vb.net windows cultureinfo iso

一个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)

但是……问题!

如何获取三字母-本地-语言名称(如 Windows 8.1 中的名称;参见下图)?还是它们存储在注册表中的某处,或者它只是 NativeName 的修剪*?

(*) 我不确定修剪,因为例如日语。

Windows 8 Language bar

谢谢!

最佳答案

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

关于vb.net - 如何获得三字母母语名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30124095/

相关文章:

asp.net - 在 TextBox ASP.NET 中的文本后插入换行符

windows - 如何在 Windows 上的 emacs 中禁用哔声

c# - 为什么 TextInfo.ToTitleCase 在字母全部为大写的字符串上不能正常工作?

c# - 获取 "belong"到当前文化的字符列表

C# GetResourceSet找不到默认资源resx文件

vb.net - 在 VB.NET 中创建文本并将其附加到 txt 文件

vb.net - 选择持续时间为 StartDate 和 EndDate 且未包含在给定 StartDate 和 EndDate 的持续时间范围内的记录

ASP.NET 表单查看更新时的 IF

python - Pyautogui 屏幕截图。它去哪儿了?如何保存以后查找?

windows - 为什么 Apache 将本地服务于 Firefox,而不是 VBScript?