Некоторым пользователям удобно в английском Автокаде видеть русские диалоги настройки плагинов. Я создал локализованные компоненты WinForms, закинул их в один общий компонент OptionsCommonList (в нем уже локализация выключена ибо нет никаких своих ресурсов) и далее закидываю его в диалог настроек Автокада:
private void Application_DisplayingOptionDialog(object sender, TabbedDialogEventArgs e)
{
CultureInfo old = Thread.CurrentThread.CurrentUICulture;
if (MySettings.UseWinLocale) // пользователь хочет диалоги на языке Windows, а не AutoСAD
{
CultureInfo win = Thread.CurrentThread.CurrentCulture;
if (old != win) Thread.CurrentThread.CurrentUICulture = win;
}
try
{
if (_CommonList == null) _CommonList = new OptionsCommonList();
TabbedDialogExtension tde = new TabbedDialogExtension(_CommonList, save, load, help, save);
e.AddTab("A>V>C>", tde);
}
finally
{
if (old != Thread.CurrentThread.CurrentUICulture)
Thread.CurrentThread.CurrentUICulture = old;
}
}
На моей Win7 все прекрасно работает. Но у пользователей с Win10 твориться полный бардак - компоненты переведены через строчку - часть на русском, часть на английском. На некоторых системах даже в русском Автокаде выводятся настройки по английски. А сегодня мне написали что и под Win7 не срабатывает перевод на русский.
Вопрос в том есть ли какой-то более корректный способ переключения языка у конкретного компонента WinForm? Свойство Language вижу в редакторе форм, но не вижу из кода (protected?)
Извините, вам запрещён просмотр содержимого спойлеров.