2

是否可以通过 TwoLetterISOLanguageName 获取特定的 CultureInfo?只有一个吸气剂,而不是一个二传手......你会怎么做。如果可能的话,无需经历所有文化……

所以不是:

// Get all available cultures on the current system.
CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.AllCultures);
foreach (var culture in cultures) {
   // Exclude custom cultures. 
   if ((culture.CultureTypes & CultureTypes.UserCustomCulture) == CultureTypes.UserCustomCulture) 
        continue;

   if (culture.TwoLetterISOLanguageName == "<Whatever>"){
        //Do some stuff
        break;
   }
}   

http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.twoletterisolanguagename.aspx

第二:

是否可以显示该语言的语言?
喜欢
* 荷兰语 -> Nederlands
* 德语 -> Deutsch
* 西班牙语 -> Español

4

3 回答 3

4

您可以使用构造函数,例如

  CultureInfo germanCulture = new CultureInfo("DE");
  CultureInfo russianCulture = new CultureInfo("RU");


  String germanNativeLanguage = germanCulture.NativeName; // <- Deutsch
  String russianNativeLanguage = russianCulture.NativeName; // <- русский


  String germanLanguage = germanCulture.EnglishName; // <- German
  String russianLanguage = russianCulture.EnglishName; // <- Russian
于 2013-08-14T06:40:17.150 回答
2

使用CultureInfo(string)构造函数:

var culture = new CultureInfo("<Whatever>");

它也适用于没有两个字母文化名称的文化

如果 ISO 639-1 没有为特定文化定义两个字母的语言代码,则该TwoLetterISOLanguageName属性返回由三个或更多字母组成的字符串。

例如对于下索布语(德国)

var culture = new CultureInfo("dsb");
于 2013-08-14T06:40:33.723 回答
1

您可以使用构造函数,但我更喜欢使用静态方法GetCultureInfo,因为文档明确表示它返回一个缓存实例:

var ci = CultureInfo.GetCultureInfo("<TwoLetterISOLanguageName>");
于 2013-08-14T06:42:14.873 回答