Ковырялся тут с различными конвертерами (WPF) и выяснил, что если мы явно не указываем ConverterCulture, то будет передано значение культуры из свойства Language контрола (или его родительского контейнера, если не установлено явно)
но:
> В XAML это по умолчанию имеет значение «en US» ...
Я могу, конечно, написать базовый класс и все окна от него наследовать
public class LocalizabilityWindow : Window
{
public LocalizabilityWindow()
{
Language = XmlLanguage.GetLanguage(CultureInfo.CurrentUICulture.IetfLanguageTag);
}
}
Можно сделать это без наследования, через OverrideMetadata
Что-то вроде
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement),
new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));