使用.NET从locale字符串获取语言名称?例如:en_us =>英语

时间:2011-04-20 12:38:48

标签: c# .net locale cultureinfo

如何找到给定语言环境的语言?

示例:输入:en_US 输出:英文

使用.NET库?我尝试过CultureInfo类,但我找不到有用的东西。

谢谢!

4 个答案:

答案 0 :(得分:14)

不要使用CultureInfo的构造函数。使用静态GetCultureInfo方法更快,因为此方法被缓存并返回不可变(只读)CultureInfo对象。

根据Facebook SDK documentation concerning localization,可以安全地假设您可以用短划线替换下划线,以便.NET能够理解语言环境。

  

Facebook区域设置遵循ISO语言   和国家代码,   由下划线连接。

     

基本格式为'll_CC'',其中   ''ll''是一个双字母的语言代码,   和''CC''是一个双字母的国家   码。例如,'en_US'代表   美国英语。

取决于您是否需要以英语显示名称而不管操作系统的语言,请使用

CultureInfo.GetCultureInfo("en-US").EnglishName

如果您需要操作系统语言的名称,请使用:

CultureInfo.GetCultureInfo("en-US").DisplayName

答案 1 :(得分:9)

你需要使用en-US而不是en_US代码如下:

System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("en-US");
string name = culture.DisplayName;

输出:英语(美国)

答案 2 :(得分:2)

System.Globalization.CultureInfo.GetCultureInfo("en-US").EnglishName;

答案 3 :(得分:0)

您可以使用以下代码

Dim culture1 As CultureInfo = New CultureInfo("en-US")
Dim t As Thread = Thread.CurrentThread
Dim currentCulture As CultureInfo = t.CurrentCulture
Dim currentUICulture As CultureInfo = t.CurrentUICulture

'*** display cultures in console
Console.WriteLine("Current Culture: " & currentCulture.Name)
Console.WriteLine("Current UI Culture: " & currentUICulture.Name)