using System.Collections.Generic;
using System.Globalization;
public static void Main()
public static void Example2()
var supportedCultures = GetCultures();
CultureInfo.GetCultures(CultureTypes.AllCultures)
.Where(w => supportedCultures.ContainsKey(w.TextInfo.CultureName))
value = a.TextInfo.CultureName,
selected = string.Equals(a.TextInfo.CultureName, Thread.CurrentThread.CurrentCulture.TextInfo.CultureName,
StringComparison.InvariantCultureIgnoreCase)
cultures.ToList().ForEach(i => Console.WriteLine(i.ToString()));
public static void Example1()
var currentCulture = new CultureInfo(culture);
var cultureInfos = CultureInfo.GetCultures(currentCulture.CultureTypes);
if (cultureInfos.All(c => c.Name != ""))
cultureInfos = cultureInfos.Append(CultureInfo.InvariantCulture).ToArray();
var filteredCultures = cultureInfos
.Where(x => x.Name == "en-US" || x.Name == "en-GB" || x.Name == "de-DE" || x.Name == "fr-FR" || x.Name == "")
.ToDictionary(x => x.Name, x => (x.Name == "" ? "" : x.EnglishName));
filteredCultures.ToList().ForEach(i => Console.WriteLine(i.ToString()));
public static Dictionary<string, string> GetCultures(string culture = "")
var currentCulture = new CultureInfo(culture);
var cultureInfos = CultureInfo.GetCultures(currentCulture.CultureTypes);
if (cultureInfos.All(c => c.Name != ""))
cultureInfos = cultureInfos.Append(CultureInfo.InvariantCulture).ToArray();
var filteredCultures = cultureInfos
.Where(x => x.Name == "en-US" || x.Name == "en-GB" || x.Name == "de-DE" || x.Name == "fr-FR" || x.Name == "")
.ToDictionary(x => x.Name, x => (x.Name == "" ? "" : x.EnglishName));