在 windows rt 中本地化 DatePicker 和 TimePicker
Localize DatePicker and TimePicker in windows rt
如何本地化 DatePicker 和 TimePicker?
我们的用例是用户将在控制面板中设置语言,我们将尝试显示正确的 datepicker/timepicker 格式。
我尝试设置 DatePicker/TimePicker 语言 属性 但它仍然设置为英语并且日期选择器的订单仍然是英语格式(月日年)和(小时分钟 AM/PM) 对于时间选择器。
我确实尝试了 DatePicker.CalendarIdentifier,它确实改变了日期选择器的日期格式。所以对于日语来说,它是正确设置的,但是timepicker只有一个clockidentifier,所以它没有改变显示(AM/PM仍然是英文)。
这是否意味着我必须识别语言并手动设置 calendaridentifer/clockidentifier?
提前致谢!
更新:
我确实发现了 GlobalizationPreference,我可以将它设置为 Date and TimePicker:
var 日历 = Windows.System.UserProfile.GlobalizationPreferences.Calendars[0];
var 时钟 = Windows.System.UserProfile.GlobalizationPreferences.Clocks[0];
如果我将区域设置设置为日语,时钟将正确设置为 24 小时制。但日历仍设置为 GregorianCalendar。
这是一个错误还是有不同的方法来设置日历以便我可以正确检索 GlobalizationPreferences.Calendar?
我能够解决这个问题。
不知怎么的,虽然我已经在控制面板中设置了区域设置和语言设置(例如:日语),但datepicker.Language和timepicker.Language仍然使用原来的Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride放。
尽管我将控件(日期选择器和时间选择器)中的语言设置为日语。
所以我所做的是,在应用程序启动时,app.xaml.cs,我设置了
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride 这是一个空字符串,现在它遵循我在语言设置和区域设置中设置的设置。
如何本地化 DatePicker 和 TimePicker?
我们的用例是用户将在控制面板中设置语言,我们将尝试显示正确的 datepicker/timepicker 格式。
我尝试设置 DatePicker/TimePicker 语言 属性 但它仍然设置为英语并且日期选择器的订单仍然是英语格式(月日年)和(小时分钟 AM/PM) 对于时间选择器。
我确实尝试了 DatePicker.CalendarIdentifier,它确实改变了日期选择器的日期格式。所以对于日语来说,它是正确设置的,但是timepicker只有一个clockidentifier,所以它没有改变显示(AM/PM仍然是英文)。
这是否意味着我必须识别语言并手动设置 calendaridentifer/clockidentifier?
提前致谢!
更新: 我确实发现了 GlobalizationPreference,我可以将它设置为 Date and TimePicker:
var 日历 = Windows.System.UserProfile.GlobalizationPreferences.Calendars[0]; var 时钟 = Windows.System.UserProfile.GlobalizationPreferences.Clocks[0];
如果我将区域设置设置为日语,时钟将正确设置为 24 小时制。但日历仍设置为 GregorianCalendar。
这是一个错误还是有不同的方法来设置日历以便我可以正确检索 GlobalizationPreferences.Calendar?
我能够解决这个问题。
不知怎么的,虽然我已经在控制面板中设置了区域设置和语言设置(例如:日语),但datepicker.Language和timepicker.Language仍然使用原来的Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride放。 尽管我将控件(日期选择器和时间选择器)中的语言设置为日语。
所以我所做的是,在应用程序启动时,app.xaml.cs,我设置了 Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride 这是一个空字符串,现在它遵循我在语言设置和区域设置中设置的设置。