Я разрабатываю многоязычную программу на С# в Windows
Как изменить язык записи Windows на определенные действия...
например. для перехода с английского на арабский на событие фокуса.
Спасибо
Я разрабатываю многоязычную программу на С# в Windows
Как изменить язык записи Windows на определенные действия...
например. для перехода с английского на арабский на событие фокуса.
Спасибо
Чтобы выбрать совершенно новую культуру, установите 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;
Thread.CurrentThread.CurrentCulture = yournewculture;
Также см. свойство CurrentUICulture
.
В окне загрузки введите следующий код:
InputLanguage.CurrentInputLanguage =
InputLanguage.FromCulture(new System.Globalization.CultureInfo("fa-IR"));
Кроме того, если вы хотите обновить все ресурсы элементов управления во время выполнения, вам нужно будет использовать что-то вроде этого:
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);
}
Если вам нужен лучший пример, проверьте мой блог.
Эти высказывания были полезны для меня:
string myLanguage = "HE-IL";
InputLanguage.CurrentInputLanguage =
InputLanguage.FromCulture(new System.Globalization.CultureInfo(myLanguage));