Revit 2017.1.1
Столкнулся с такой проблемой: на некоторых компьютерах (на двух из трёх, если быть точным) использование ключа
/language RUS не приводит к использованию русскоязычных ресурсов моей надстройки для Revit.
Проверка на проблемных компьютерах показала, что при использовании этого ключа происходит переключение локализации не для того потока, который по факту отвечает за пользовательский интерфейс: т.е. вместо
CurrentUICulture локализация переключается у потока
CurrentCulture. Можно было бы предположить, что это "косячит" какой-то "левый" Add-In, если бы проблема не возникала на "чистом" Revit, для которого не устанавливались дополнительные приложения...
Если я программно переключаю
CurrentUICulture на русскую локаль (в момент загрузки моего приложения в Revit), то проблема исчезает. Однако хотелось бы понять, почему так вообще происходит... Подробнее проблема описана
здесь.
Result IExternalApplication.OnStartup(UIControlledApplication application) {
...
// I use the `/language RUS` key for revit.exe
// But I see that my add-in user the 'default' localization
// instead of 'ru'. Hm...
// Ok,I will check the CurrentCulture and CurrentUICulture
// values...
//
// Oops... Localization was changed by the `/language RUS`
// key, but not for that thread which shall to have this
// change! Why???
CultureInfo n = Thread.CurrentThread.CurrentCulture; // ru-RU
CultureInfo m = Thread.CurrentThread.CurrentUICulture; // en
// I can fix this problem myself:
// The CurrentUICulture switching fixes the problem, but
// why such problem occurs in Revit?
CultureInfo k = new CultureInfo("ru");
Thread.CurrentThread.CurrentUICulture = k;
// Now my add-in uses right localization.
...
}
Кто-нибудь сталкивался с подобным? Похоже на баг Revit...