Приложение WPF с разными CurrentCulture и CurrentUICulture

Наша цель - предложить пользователю настроить другой язык приложения и форматирование (например, тексты на английском языке, но форматы даты / номера на немецком языке). До сих пор я пробовал разные способы, и наиболее перспективным является этот (конечно, упрощенная жестко закодированная версия):

var german = new CultureInfo("de-DE");
var english = new CultureInfo("en-US");

Thread.CurrentThread.CurrentCulture = german;
CultureInfo.DefaultThreadCurrentCulture = german;

Thread.CurrentThread.CurrentUICulture = english;
CultureInfo.DefaultThreadCurrentUICulture = english;
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(english.IetfLanguageTag)));

К сожалению, в последней строке также применяется форматирование на английском языке для дат и чисел (не только для текста). И нет никакого CultureProperty в FrameworkElement для переопределения. Так есть ли способ добиться желаемого поведения, не используя StringFormat везде?

Когда я пытаюсь использовать немецкую культуру для последней строки вместо английского, тогда некоторые тексты пишутся на немецком, а не на английском (что опять-таки не правильно).

1 ответ

Другие вопросы по тегам