【问题标题】:How to get Three-letter-native-language-names?如何获得三个字母的母语名称?
【发布时间】:2015-07-19 09:14:52
【问题描述】:

TwoLetterISOLanguageNameThreeLetterIsoLanguageNameEnglishNameNativeNameDisplayName 等都可以通过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-语言名称(如 Windows 8.1 中的语言名称;见下图)?或者它们是存储在注册表中的某个位置,还是只是 NativeName 的修剪*?

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

谢谢!

【问题讨论】:

  • 您使用的是哪个版本的 Windows 8?在我的 Windows 8 (8.0) 机器上,语言选择列表看起来非常不同;它使用非本地的两个字母代码。
  • Windows 8.1 64 位 6.3.9600
  • 我不知道它在 Windows 8.0 上不一样。无论如何,您会在图片上看到开始按钮。
  • 我猜通常你可以免费升级到 Windows 8.1。
  • 你可以有一个翻译方法来返回“EN”的定义,例如一个 switch 语句

标签: vb.net windows cultureinfo iso


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-02-17
    • 2014-01-19
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多