【问题标题】:Cultureinfo: how to get only languagecodeCultureinfo:如何仅获取语言代码
【发布时间】:2011-04-16 09:01:12
【问题描述】:

我正在开发一个 Windows Phone 应用程序。

如何从 CultureInfo.CurrentCulture 获取语言代码?

我正在使用 CultureInfo.CurrentCulture.Name 并且得到“en-US”。我只需要恩。

【问题讨论】:

标签: windows-phone-7 globalization cultureinfo currentculture


【解决方案1】:

您是否尝试过使用TwoLetterISOLanguageName 属性?

【讨论】:

  • 哦,对不起。我没看过。
【解决方案2】:

我不确定您想要达到的目标。如果您只想删除区域,保留脚本区别(例如,如果您对 zh-Hans 感兴趣,而不仅仅是 zh),那么您将需要使用 Parent 属性 ()。虽然这可能会返回旧版 (zh-CHS),但您可能希望使用 IetfLanguageTag 属性来解决该问题:

CultureInfo.CurrentCulture.Parent.IetfLanguageTag

en-US -> en
zh-CN -> zh-Hans
zh-TW -> zh-Hant

有时它仍然不会给您预期的答案,因为它只会支持受支持的语言标签(但这与 TwoLetterISOLanguageName 属性没有任何不同):

az-Cyrl-AZ -> az
az-Latn-AZ -> az

似乎有些链条被省略了:

sr-Cyrl-BA -> (Invariant)

您可以检查不变量,然后返回 TwoLetterISOLanguageName 属性来解决这个问题。

【讨论】:

  • 我意识到这是一个较旧的答案。但是,对于现在查看此答案的人:在 VS 2013 和 .NET 4.5 中,leftLanguageTag 似乎已被弃用。
猜你喜欢
  • 2022-01-18
  • 2011-05-11
  • 1970-01-01
  • 2011-06-24
  • 2010-12-02
  • 1970-01-01
  • 2011-01-26
  • 1970-01-01
相关资源
最近更新 更多