Языковые настройки приложения - 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);
    }
 
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы