在Windows rt中本地化DatePicker和TimePicker

时间:2015-03-11 07:47:16

标签: windows-8.1 windows-rt

如何本地化DatePicker和TimePicker?

我们的用例是用户将在控制面板中设置语言,我们将尝试显示正确的datepicker / timepicker格式。

我尝试设置DatePicker / TimePicker语言属性,但仍然设置为英语,并且日期选择器的订单仍然是英文格式(月份日期年份)和时间戳的(小时分钟AM / PM)。

我确实尝试过DatePicker.CalendarIdentifier,它确实更改了datepicker的日期格式。所以对于日语来说,它是正确设置的,但是时间戳只有一个clockidentifier,所以它没有改变显示(AM / PM仍然是英文)。

这是否意味着我必须手动识别语言并设置calendaridentifer / clockidentifier?

提前致谢!

更新: 我确实发现了GlobalizationPreference,我可以将它设置为Date和TimePicker:

var calendar = Windows.System.UserProfile.GlobalizationPreferences.Calendars [0]; var clock = Windows.System.UserProfile.GlobalizationPreferences.Clocks [0];

如果我将区域设置设置为日语,则时钟正确设置为24HourClock。但是日历仍然设置为GregorianCalendar。

这是一个错误,还是有不同的方法设置日历,以便我可以正确检索GlobalizationPreferences.Calendar?

1 个答案:

答案 0 :(得分:2)

我能够解决这个问题。

不知何故,虽然我已经在控制面板中设置了区域设置和语言设置(例如:japanese),但datepicker.Language和timepicker.Language仍然使用已设置的Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride。 尽管我将控件(datepicker和timepicker)中的语言设置为日语。

所以我做的是,在应用程序的启动时,app.xaml.cs,我设置了 Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride这是一个空字符串,现在它遵循我在语言设置和区域设置中设置的设置。