如何从给定的语言名称中获取语言文化?

问题描述

我将用户的源语言和目标语言作为输入,我想使用 .Net 库生成这些输入的文化,如下所示;

例如,用户从两个组合框中选择“英语”和“土耳其语”。然后我想从“英语”生成“En”,从土耳其语生成“Tr”。我想为所有可能的语言实现这一点,正确的方法是什么?

我将在我的请求中使用这些文化来翻译文本,而不是这个;

string url = String.Format("https://translate.googleapis.com/translate_a/single?client=gtx&sl={0}&tl={1}&dt=t&q={2}","En","Tr",Uri.EscapeUriString(input));

我想用这个;

string url = String.Format("https://translate.googleapis.com/translate_a/single?client=gtx&sl={0}&tl={1}&dt=t&q={2}",sourceLanguage,targetLanguage,Uri.EscapeUriString(input));

我不想使用字典,因为那样我需要手动输入每种语言的所有信息,我想用 CultureInfo 类来做,但我还没有弄清楚该怎么做。

解决方法

使用System.Globalization

添加 using 语句:using System.Globalization;

CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.AllCultures);

foreach (CultureInfo ci in cultures)
{
    string output = String.Format("Name: {0} DisplayName: {1} 2-Letter Name: {2} 3-Letter Name: {3}",ci.Name,ci.DisplayName,ci.TwoLetterISOLanguageName,ci.ThreeLetterISOLanguageName);
    System.Diagnostics.Debug.WriteLine(output);
}

注意:您需要的数据位于属性 TwoLetterISOLanguageName 中。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...