WinRT приложения и региональные настройки. Правильный способ форматирования дат и чисел на основе региональных настроек пользователя?
У меня есть некоторые проблемы в приложениях Windows 8 Metro (XAML и C #), касающиеся региональных настроек пользователя. Кажется, чтоapps won't respect user's regional settingsТаким образом, даже если в Windows 8 настроено отображение даты и времени в финском формате, приложения будут отображать их в американском формате. Но это такая большая проблема, что я должен что-то упустить?
Чтобы проверить это, я начал с созданияWPF-application, Приложение просто распечатывает CurrentCulture и отформатированный DateTime.Now:
private void Culture_Loaded_1(object sender, RoutedEventArgs e)
{
this.Culture.Text = System.Globalization.CultureInfo.CurrentCulture.DisplayName;
}
private void Date_Loaded_1(object sender, RoutedEventArgs e)
{
this.Date.Text = DateTime.Now.ToString();
}
Вот мои региональные настройки по умолчанию:
При запуске приложение отображало дату в финском формате:
Затем я изменил региональные настройки на США:
И когда приложение снова запустилось, культура и форматирование изменились:
Этоas I expected все работает, и я также ожидал, что приложения WinRT будут работать.
Поэтому в качестве следующего шага я создал приложение WinRT (XAML & C #) с тем же кодом и вернул региональные настройки обратно на финский. Эта проблема:
Даже когда в региональных настройках я определил, что форматирование должно быть «финским», приложение WinRT отображает дату и время в американском формате. Затем я изменил файл проекта приложения и сделалfi-FI the default language:
Это изменение также изменило культуру приложения:
Странный. Я изменил язык по умолчанию обратно на его значение по умолчанию, и форматирование было восстановлено в США. Затем я создал папки "Strings - fi-FI" внутри проекта и добавилempty "Resources.resw" to the project, Этого пустого файла кажется достаточно, так как я теперь получал финское форматирование:
Как только я удаляю пустой файл ресурсов, форматирование возвращается к США:
Очень странно.
Это приводит к нескольким вопросам, но главный из них, на мой взгляд, заключается в следующем: намеренно ли WinRT-приложения не следуют региональным настройкам пользователя, как это делают приложения WPF?