« first day (887 days earlier)      last day (2144 days later) » 

8:36 AM
Ковырялся тут с различными конвертерами (WPF) и выяснил, что если мы явно не указываем ConverterCulture, то будет передано значение культуры из свойства Language контрола (или его родительского контейнера, если не установлено явно)
но:
> В XAML это по умолчанию имеет значение «en US» ...
Это цитата отсюда:
Очень неудобно и выглядит как недоработка
Во-первых, мне придется проставить Language у всех окон
А, во-вторых, мне надо как-то уметь это менять "на лету" для всех окон, если приложение поддерживает локализацию
Как с этим бороться?
 
9:27 AM
Я могу, конечно, написать базовый класс и все окна от него наследовать
public class LocalizabilityWindow : Window
{
    public LocalizabilityWindow()
    {
        Language = XmlLanguage.GetLanguage(CultureInfo.CurrentUICulture.IetfLanguageTag);
    }
}
 
 
3 hours later…
12:48 PM
@VladD, что скажете ^^^ Сталкивались с этим? Как решали?
 
@АндрейNOP Сталкивался.
Можно сделать это без наследования, через OverrideMetadata
Что-то вроде
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement),
    new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
 
@VladD хм, это всем FrameworkElement установит Language?
 
@АндрейNOP Угу. Ну или typeof(Window), если хочется только окно.
 
т.е. как бы значение по умолчанию переопределяет?
 
@АндрейNOP Ага
 
1:00 PM
Просто никогда не приходилось работать с DependencyProperty.OverrideMetadata
Это похоже на решение моей задачи
 
@АндрейNOP Мне приходилось пару раз. Работает вроде :)
 
@VladD Как вы считаете, это вообще нормальное решение, что независимо от настроек ОС и прочего всегда используется Language="en-US"?
 
@АндрейNOP Чёрт его знает, мне пришлось менять вот так для нужд локализации как раз.
Я не видел мнения разработчиков фреймворка по этому поводу
 
@VladD спасибо, буду пробовать!
 
@Bretbas О, привет, что-то я давно тут не появлялся
Ну да, по идее этим должна заниматься VM. Не привязывать же модельные объекты к UI?
 

« first day (887 days earlier)      last day (2144 days later) »