Я пытаюсь получить список доступной информации о культуре, добавить их в комбинированный список и изменить язык во время выполнения. Моя реализация действует по-разному в разных средах. Есть некоторые ПК, на которых все работает как положено, все спутниковые сборки распознаются, но на других ПК это же приложение не распознает доступные языки, только язык по умолчанию (Engli sh).
Это мой код, где я пытаюсь найти доступный ресурс:
public static IEnumerable<CultureInfo> GetAvailableCultures()
{
List<CultureInfo> result = new List<CultureInfo>();
ResourceManager rm = new ResourceManager(typeof(PresentationResources));
CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.AllCultures);
foreach (CultureInfo culture in cultures)
{
try
{
if (culture.Equals(CultureInfo.InvariantCulture))
{
continue;
}
ResourceSet rs = rm.GetResourceSet(culture, true, false);
if (rs != null)
{
result.Add(culture);
}
}
catch (CultureNotFoundException)
{
//NOP
}
}
return result;
}
Также код из xaml, откуда я пытаюсь изменить язык:
<ComboBox Name="LanguageComboBox"
SelectedIndex="{Binding SelectedLanguageIndex}"
ItemsSource="{Binding AvailableLanguages}"
DisplayMemberPath="NativeName"
SelectedItem="{Binding Source={x:Static lex:LocalizeDictionary.Instance},
Path=Culture}"
SelectionChanged="LanguageComboBox_OnSelectionChanged">
</ComboBox>
Я не очень понимаю почему одно и то же приложение в некоторых средах работает как положено, а в других - нет.