2

我正在开发Windows Phone应用程序。Cultureinfo:如何获得语言代码

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

我正在使用CultureInfo.CurrentCulture.Name,并获得'en-US'。我只需要en。

+0

第35部分 - Windows Phone 7 - Culure http://dotnetspeaks.com/DisplayArticle.aspx?ID=163 – Sumit 2011-12-15 06:08:06

回答

1

我不确定你想要达到的目标。如果你想要的是删除区域,保留脚本区别(如果你对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属性以解决该问题。

+0

我意识到这是一个较老的答案。但是,对于现在查看此答案的人:在VS 2013和.NET 4.5中,似乎不提倡使用'leftLanguageTag'。 – Ellesedil 2015-03-11 21:03:04