world tools nombre mes gapminder español enero data convertir c#-4.0 globalization cultureinfo country

c#-4.0 - tools - gapminder world



Cómo obtener el nombre del país (5)

Bueno, esta expresión regular parece hacer el trabajo en la mayoría de los casos:

var regex = new System.Text.RegularExpressions.Regex(@"([/w+/s*/.*]+/))"); foreach (var item in CultureInfo.GetCultures(CultureTypes.SpecificCultures)) { var match = regex.Match(item.DisplayName); string countryName = match.Value.Length == 0 ? "NA" : match.Value.Substring(0, match.Value.Length - 1); Console.WriteLine(countryName); }

Usé el siguiente código para obtener la lista del tipo de cultura, ¿hay alguna manera de obtener el nombre del país?

Gracias

static void Main(string[] args) { StringBuilder sb = new StringBuilder(); foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.SpecificCultures)) { sb.Append(ci.DisplayName); sb.AppendLine(); } Console.WriteLine(sb.ToString()); Console.ReadLine(); }

Salida de muestra:

Español (puerto rico)

Español (Estados Unidos)


Esto sería lo que buscas:

foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.SpecificCultures)) { sb.Append(ci.EnglishName); sb.AppendLine(); }


Puedes usar la propiedad Name de CultureInfo para construir un RegionInfo. A continuación, puede utilizar la propiedad DisplayName. Tratar:

foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.SpecificCultures)) { var ri = new RegionInfo(ci.Name); Console.WriteLine(ri.DisplayName); }


// Build your normal dictionary as container Dictionary<string, string> countryNames = new Dictionary<string, string>(); foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.SpecificCultures)) { RegionInfo ri = new RegionInfo(ci.Name); // Check if the ISO language code is already in your collection // Because you don''t want double entries in a country box because we had to use the culture info if (!countryNames.ContainsKey(ri.TwoLetterISORegionName)) { countryNames.Add(ri.TwoLetterISORegionName.ToUpper(), ri.EnglishName); } } // Code for dictionary to dropdownlist transform can be written with your personal preference for symantics SelectList countryDropdown = new SelectList(countryNames.OrderBy(o => o.Value), "Key", "Value");

O listo para su uso sin comentarios:

Dictionary<string, string> countryNames = new Dictionary<string, string>(); foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.SpecificCultures)) { RegionInfo ri = new RegionInfo(ci.Name); if (!countryNames.ContainsKey(ri.TwoLetterISORegionName)) countryNames.Add(ri.TwoLetterISORegionName.ToUpper(), ri.EnglishName); } SelectList countryDropdown = new SelectList(countryNames.OrderBy(o => o.Value), "Key", "Value");


You will need to use following namespaces using System.Configuration; using System.Globalization;

///

/// populate country name /// </summary> /// <param name="dropDown"></param> public static void GetCountryNames(DropDownList dropDown) { Hashtable h = new Hashtable(); Dictionary<string, string> objDic = new Dictionary<string, string>(); foreach (CultureInfo ObjCultureInfo in CultureInfo.GetCultures(CultureTypes.SpecificCultures)) { RegionInfo objRegionInfo = new RegionInfo(ObjCultureInfo.Name); if (!objDic.ContainsKey(objRegionInfo.EnglishName)) { objDic.Add(objRegionInfo.EnglishName, objRegionInfo.TwoLetterISORegionName.ToLower()); } } SortedList<string, string> sortedList = new SortedList<string, string>(objDic); foreach (KeyValuePair<string, string> val in sortedList) { dropDown.Items.Add(new ListItem(val.Key, val.Key)); } dropDown.Items.Insert(0, new ListItem("Select", "Select")); dropDown.Items.Insert(1, new ListItem("Other Country", "Other")); } }