#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
Комментариев нет:
Отправить комментарий