private static CultureInfo GetBestFitCultureFromLanguageList(List<string> languages)
{
StringBuilder localeNameBuffer = new StringBuilder(Interop.Kernel32.LOCALE_NAME_MAX_LENGTH);
for (int i = 0; i < languages.Count; i++)
{
if (CultureData.GetCultureData(languages[i], true) != null)
{
return new CultureInfo(languages[i]);
}
if (Interop.Kernel32.ResolveLocaleName(languages[i], localeNameBuffer, localeNameBuffer.MaxCapacity) != 0)
{
string localeName = localeNameBuffer.ToString();
if (CultureData.GetCultureData(localeName, true) != null)
{
return new CultureInfo(localeName);
}
}
}
return null;
}
// Can be called independently of/simultaneously with InitializeStatics.