问题描述
我将用户的源语言和目标语言作为输入,我想使用 .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
中。