Внешние файлы .resx во время выполнения

Какие у меня есть варианты, если я хочу локализовать приложения WPF. Я хотел бы иметь возможность заполнять файлы .resx для языков, и это работает. Но мне нужно получить язык во время выполнения из файлов.

Итак, мой вопрос: возможно ли получить внешний .resx в приложениях WPF. И изменить язык во время выполнения? Или я смотрю на этот вопрос под плохим углом?


person Igoris Azanovas    schedule 11.08.2011    source источник
comment
Я ищу ту же функциональность, вы когда-нибудь находили решение для этого?   -  person faldeland    schedule 05.01.2017


Ответы (2)


Почему бы просто не скомпилировать файлы resx вместе с ресурсами по умолчанию?

Задайте Thread.CurrentThread.CurrentUICulture нужный язык и региональные параметры, затем вызовите ResourceManager.GetString(), чтобы установите свои локализованные свойства.

Если вы хотите получить другую культуру, используйте перегрузку. Что-то типа:

    public static string GetStringForCurrentUICulture(string name)
    {
        var value = _resourceManager.GetString(name, CultureInfo.CurrentUICulture);
        return value;
    }

Чтобы добавить ресурс динамически, используйте соответствующий конструктор ResourceManager, который позволяет чтобы указать ресурс и сборку, в которой он содержится.

person si618    schedule 11.08.2011
comment
Да, я делаю это прямо сейчас, но я хочу знать, возможно ли получить эти файлы без встраивания в приложение. Это похоже на то, что у меня есть 3 языка внутри приложения, и я хочу добавить новый язык в приложение, мне нужно снова создать это приложение и использовать его. Но я хочу знать, можно ли просто добавить файл resx (или другой тип) в каталог приложения и прикрепить этот язык к существующим языкам. - person Igoris Azanovas; 11.08.2011

Вы можете локализовать приложение wpf с помощью инструмента LocBaml Это помогает создавать файлы resx и выполнять сопоставление с xaml.

person Shebin    schedule 11.08.2011
comment
Да, я читал об этом инструменте, но я хотел бы знать, могу ли я создавать файлы resx, просто добавляю их в каталог и использую без сборки в приложение (без компиляции) - person Igoris Azanovas; 11.08.2011
comment
@IgorisAzanovas Я ищу ту же функциональность, вы когда-нибудь находили для этого решение? - person faldeland; 05.01.2017
comment
@faldeland В конце концов я сделал локализационную оболочку, которая использовала базу данных, и если она не могла найти ее там, она пыталась получить доступ из ресурсов. Я не мог найти лучшего решения в тот момент. - person Igoris Azanovas; 09.01.2017