Страницы

Поиск по вопросам

воскресенье, 1 декабря 2019 г.

Изменение языка приложения (Смена классов)

#c_sharp #wpf


Пытаюсь реализовать метод переключения языка,создала dll, в которой есть два класса
enEN.cs и  ruRU.cs

public const string NAME_ELEMENT = "НАЗВАНИЕ ЭЛЕМЕНТА";


Не могу понять, как создать класс, который бы менял значения строк моей формы, исходя
из того языка, что я выбираю? Если сохранять дефолтное значение в какой то файле -
то изначально его нужно создавать при загрузке формы. Так же нужно сохранять значение
языка, который выберет пользователь.

Подключение строки в элемент:

label.Content = EN.String;
label.Content = RU.String;


Как я могу сделать это проще? Форма должа загружать (например) RU.String; первее,
а при выборе другого варианта менять все подобные значения в форме на EN.String; .. 
    


Ответы

Ответ 1



Если хочется делать локализацию через файлы (чего я не советую делать), то можно так: public interface ILocalization { string NameLabelText {get;} string LastNameLabelText {get;} } public class RuLocalization : ILocalization { public string NameLabelText {get;} = "Имя"; public string LastNameLabelText {get;} = "Фамилия" } public class EnLocalization : ILocalization { public string NameLabelText {get;} = "Name"; public string LastNameLabelText {get;} = "LastName" } public class View { public View(ILocalization Localization) { labelName.Content = Localization.NameLabelText; labelLastName.Content = Localization.LastNameLabelText; } } Я бы рекомендовал использовать готовый framework. https://www.codeproject.com/kb/wpf/wpf_resx_localization.aspx

Комментариев нет:

Отправить комментарий