如何从C#中的国家代码中获取语言本机名称(内名)?
我可以从国家代码中获取语言名称吗?我已经创建了一个程序,让用户选择货币显示的目的本地化。这是进行配置的程序如何从C#中的国家代码中获取语言本机名称(内名)?,c#,localization,globalization,cultureinfo,C#,Localization,Globalization,Cultureinfo,我可以从国家代码中获取语言名称吗?我已经创建了一个程序,让用户选择货币显示的目的本地化。这是进行配置的程序 CultureInfo[] cinfo = CultureInfo.GetCultures(CultureTypes.AllCultures & ~CultureTypes.NeutralCultures); Dictionary<string, string> Misc_dictLocalization = new Dictionary<string, stri
CultureInfo[] cinfo = CultureInfo.GetCultures(CultureTypes.AllCultures & ~CultureTypes.NeutralCultures);
Dictionary<string, string> Misc_dictLocalization = new Dictionary<string, string>();
var sortList = cinfo.OrderBy(p => p.EnglishName).ToList();
foreach (CultureInfo cul in sortList)
{
//Add country name and bind with country code
Misc_dictLocalization.Add(cul.Name, cul.EnglishName);
}
Misc_LocalizationCombobox.DataSource = new BindingSource(Misc_dictLocalization, null);
Misc_LocalizationCombobox.DisplayMember = "Value";
Misc_LocalizationCombobox.ValueMember = "Key";
如何从国家/地区代码中获取本地名称(内名?
基于维基百科,
我需要得到
1) 菲律宾(菲律宾)=>Tagalog
2) 越南(vi越南)=>Tiếng Việt
3) 美国(en-US)=>英语
4) 阿拉伯文(阿拉伯语)
已解决的解决方案(credit Nhan Phan)
…就像我想要的那样
观点:-
您可以通过NativeName而不是DisplayName来检索它:
var allCultures = System.Globalization.CultureInfo.GetCultures(System.Globalization.CultureTypes.AllCultures);
string countrycode = "ar-SA";
string langname = allCultures.FirstOrDefault(c => c.Name == countrycode).NativeName;
var allCultures = System.Globalization.CultureInfo.GetCultures(System.Globalization.CultureTypes.AllCultures);
string countrycode = "ar-SA";
string langname = allCultures.FirstOrDefault(c => c.Name == countrycode).DisplayName;
//langname will have "Arabic"
DirectoryInfo di = new DirectoryInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Language"));
FileInfo[] Files = di.GetFiles("*.xaml");
int ID = 1;
var allCultures = System.Globalization.CultureInfo.GetCultures(System.Globalization.CultureTypes.AllCultures);
LocalizationProperty.LangLoc = new List<AppModel.LanguageLocalization>();
foreach (FileInfo file in Files)
{
string countrycode = file.Name.Replace(".xaml", "").Replace("Resources.", "");
int index = countrycode.LastIndexOf("-");
string ISOName = countrycode;
if (index > 0)
ISOName = ISOName.Substring(0, index);
string langname = allCultures.FirstOrDefault(c => c.Name == ISOName).NativeName;
AppModel.LanguageLocalization applang = new AppModel.LanguageLocalization
{
LanguageID = ID,
CountryCode = countrycode,
LanguageName = langname
};
LocalizationProperty.LangLoc.Add(applang);
ID += 1;
}
string langjson = Newtonsoft.Json.JsonConvert.SerializeObject(LocalizationProperty.LangLoc, Formatting.Indented);
LogEvents($"[{PageTitle} Language file retrieved. {langjson}", EventLogEntryType.Information);
[
{
"LanguageID":1,
"CountryCode":"ar-SA",
"LanguageName":"العربية"
},
{
"LanguageID":2,
"CountryCode":"en-US",
"LanguageName":"English"
},
{
"LanguageID":3,
"CountryCode":"fil-PH",
"LanguageName":"Filipino"
},
{
"LanguageID":4,
"CountryCode":"ms-MY",
"LanguageName":"Melayu"
},
{
"LanguageID":5,
"CountryCode":"syr-SY",
"LanguageName":"ܣܘܪܝܝܐ"
},
{
"LanguageID":6,
"CountryCode":"ta-IN",
"LanguageName":"தமிழ்"
},
{
"LanguageID":7,
"CountryCode":"tt-RU",
"LanguageName":"Татар"
},
{
"LanguageID":8,
"CountryCode":"vi-VN",
"LanguageName":"Tiếng Việt"
},
{
"LanguageID":9,
"CountryCode":"zh-CN",
"LanguageName":"中文"
}
]
var allCultures = System.Globalization.CultureInfo.GetCultures(System.Globalization.CultureTypes.AllCultures);
string countrycode = "ar-SA";
string langname = allCultures.FirstOrDefault(c => c.Name == countrycode).NativeName;