Загрузить все доступные спутниковые сборки для смены языка во время выполнения WPF - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь получить список доступной информации о культуре, добавить их в комбинированный список и изменить язык во время выполнения. Моя реализация действует по-разному в разных средах. Есть некоторые ПК, на которых все работает как положено, все спутниковые сборки распознаются, но на других ПК это же приложение не распознает доступные языки, только язык по умолчанию (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>

Я не очень понимаю почему одно и то же приложение в некоторых средах работает как положено, а в других - нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...