如何尊重"区域格式"在UWP应用程序中设置

时间:2016-06-05 16:31:49

标签: localization uwp

我想根据"区域格式"格式化日期和数字。设置在Windows 10中配置的用户。使用WPF,这没有问题。有了UWP,这似乎是不可能的,如果不诉诸黑客。

Sample code to experiment with

我盯着一个新问题,因为最好的similar one是3岁而没有接受答案。

"区域格式"是一个Windows设置,用户可以独立于语言和区域进行配置。例如。用户可以配置:

  • 语言:英语(作为Windows显示语言),法语,德语
  • 地区:泰国(获取地区信息)
  • 区域格式:德语(以德语显示日期和数字 格式)

enter image description here

MS似乎希望我们使用UserProfile.GlobalizationPreferences,但这不会公开活动的"区域格式"。有MS声明 " 这是故意的。微软正逐渐迫使应用程序采用操作系统的语言...... "在上面提到的问题中。我们在使用与操作系统不同的语言创建应用程序时从未遇到过问题。这并没有解释如何在UWP应用中尊重用户选择。

  • UserProfile.GlobalizationPreferences.HomeGeographicRegion返回 区域不是"区域格式"。
  • Windows.Globalization.Language.CurrentInputMethodLanguageTag取决于 在键盘上选择。
  • Windows.System.UserProfile.GlobalizationPreferences.Languages(1)only 如果用户意外配置了区域格式"
    匹配第二语言。

我阅读了我能找到的关于此的所有帖子,唯一的解决方案似乎是以下描述的here

 var systemLanguage = GlobalizationPreferences.Languages.First();
 var regionInfo = new RegionInfo(systemLanguage);
 var dtf = new DateTimeFormatter("longdate", new[] { regionInfo.TwoLetterISORegionName });
 var regionInfoName = dtf.ResolvedLanguage;
 var regionFormatCultureInfo = new CultureInfo(regionInfoName);

MS似乎建议对我不起作用,我的客户抱怨我的应用不尊重他们的设置。

有人可以对此有所了解吗?如果这是一个SDK错误,它应该很久以前就已修复。

内置的Calendar UWP应用程序确实遵循区域格式。

0 个答案:

没有答案