Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从C#中的国家代码中获取语言本机名称(内名)?_C#_Localization_Globalization_Cultureinfo - Fatal编程技术网

如何从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;