Подтвердить что ты не робот

Изменить язык в С#

Я разрабатываю многоязычную программу на С# в Windows

Как изменить язык записи Windows на определенные действия...
например. для перехода с английского на арабский на событие фокуса.

Спасибо

4b9b3361

Ответ 1

Чтобы выбрать совершенно новую культуру, установите CurrentThread.CurrentCulture в новую культуру, например. установить на французский язык:

System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("fr-FR");
System.Threading.Thread.CurrentThread.CurrentCulture = ci;

Вы можете найти список предопределенных имен CultureInfo здесь и .

Если вы хотите изменить некоторые аспекты культуры по умолчанию, вы можете захватить текущую культуру потока, использовать ее имя для создания нового экземпляра CultureInfo и установить поток новой культуры с некоторыми изменениями, например. для изменения текущей культуры использовать символ "Евро":

System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo( System.Threading.Thread.CurrentThread.CurrentCulture.Name);
ci.NumberFormat.CurrencySymbol = "€";
System.Threading.Thread.CurrentThread.CurrentCulture = ci;

Ответ 2

Thread.CurrentThread.CurrentCulture = yournewculture;

Также см. свойство CurrentUICulture.

Ответ 3

В окне загрузки введите следующий код:

InputLanguage.CurrentInputLanguage =
      InputLanguage.FromCulture(new System.Globalization.CultureInfo("fa-IR"));

Ответ 4

Кроме того, если вы хотите обновить все ресурсы элементов управления во время выполнения, вам нужно будет использовать что-то вроде этого:

private void RefreshResources(Control ctrl, ComponentResourceManager res)
{
    ctrl.SuspendLayout();
    res.ApplyResources(ctrl, ctrl.Name, CurrentLocale);
    foreach (Control control in ctrl.Controls)
        RefreshResources(control, res); // recursion
    ctrl.ResumeLayout(false);
}

Если вам нужен лучший пример, проверьте мой блог.

Ответ 5

Эти высказывания были полезны для меня:

string myLanguage = "HE-IL";
InputLanguage.CurrentInputLanguage =
   InputLanguage.FromCulture(new System.Globalization.CultureInfo(myLanguage));