Языковые настройки приложения - C#
Формулировка задачи:
как лучше всего реализовать систему языковых настроек в приложении? т.е. чтобы в программе можно было менять язык интерфейса? понятно что в файле хранить, но во первых как проще всего сделать чтобы меньше кода было при сохранении / загрузке? т.е. если для кучи контролов прописывать textBox.Text = array[0] и т.п. то это как то коряво имхо... а как лучше?
Решение задачи: «Языковые настройки приложения»
textual
Листинг программы
private void LocalizeForm(Form thisForm, CultureInfo cultureInfo) { Type formType = thisForm.GetType(); ResourceManager resManager = new ResourceManager(formType); string[] properties = { "Text", "Location" }; foreach (string propertyName in properties) { foreach (FieldInfo fieldInfo in formType.GetFields(BindingFlags.NonPublic | BindingFlags.DeclaredOnly | BindingFlags.Instance)) { PropertyInfo propInfo = fieldInfo.FieldType.GetProperty(propertyName); if (propInfo == null) continue; object objProperty = resManager.GetObject(fieldInfo.Name + '.' + propInfo.Name, cultureInfo); if (objProperty == null) continue; object field = fieldInfo.GetValue(thisForm); if (field != null) propInfo.SetValue(field, objProperty, null); } PropertyInfo propertyInfo_ = formType.GetProperty(propertyName); if (propertyInfo_ == null) continue; object obProperty = resManager.GetObject("$this." + propertyInfo_.Name, cultureInfo); if (obProperty == null) continue; propertyInfo_.SetValue(thisForm, obProperty, null); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д