Я разрабатываю многоязычную программу на С# в 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));