Почему CultureInfo.DisplayName в Sami вдруг? Я использую его для отображения списка названий стран. Возможно, это не очень хорошая идея, но она работала до недавнего времени, и я вполне уверен, что она была на шведском (думаю, это мог быть английский).
MSDN говорит
Это свойство представляет локализованное имя из версии .NET Framework. Например, если установлена английская версия .NET Framework, свойство возвращает «английский (США)» в качестве имени культуры en-US. Если установлена версия .NET Framework на испанском языке, независимо от того, на каком языке установлена система, имя культуры отображается на испанском языке, а свойство en-US возвращает «Ingles (Estados Unidos)».
Но я совершенно уверен, что у меня не установлена саами-версия фреймворка.
Мой веб-конфиг имеет:
<globalization
culture="sv-SE"
uiCulture="sv-SE"/>
Дополнение: код
public static IEnumerable<KeyValuePair<string, string>> CountryList
{
get
{
Thread.CurrentThread.CurrentCulture =
CultureInfo.CreateSpecificCulture("sv-SE");
Thread.CurrentThread.CurrentUICulture = new
CultureInfo("sv-SE");
var cultures = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
/*Array.Sort(countries.Select(
x => Regex.Match(x.DisplayName, "\\(([\\w- ]+)\\)").ToString()).ToArray(),
countries);
*/
SortedDictionary<string, CultureInfo> d = new SortedDictionary<string, CultureInfo>();
foreach (CultureInfo cultureInfo in cultures)
{
string key = Regex.Match(cultureInfo.DisplayName, "\\(([\\w- ]+)\\)").ToString();
if (!d.ContainsKey(key))
d.Add(key, cultureInfo);
}
var countries = d
.Where(x => Regex.Match(x.Value.DisplayName, "\\([A-ZÅÄÖ]").Success)
.Select(
x => new KeyValuePair<string, string>(
Regex.Match(x.Value.Name, "-(\\w+)").Groups[1].ToString(),
Regex.Match(x.Value.DisplayName, "\\(([\\w- ]+)\\)").Groups[1].ToString()
));
return countries;
}
}