private bool LoadCalendarDataFromSystemCore(string localeName, CalendarId calendarId)
{
Debug.Assert(!GlobalizationMode.Invariant);
if (GlobalizationMode.UseNls)
{
return(NlsLoadCalendarDataFromSystem(localeName, calendarId));
}
// If running using ICU on Windows we should honor user overrides using NLS and the rest from ICU
bool result = IcuLoadCalendarDataFromSystem(localeName, calendarId);
if (result && bUseUserOverrides)
{
NormalizeCalendarId(ref calendarId, ref localeName);
result &= CallGetCalendarInfoEx(localeName, calendarId, CAL_ITWODIGITYEARMAX, out this.iTwoDigitYearMax);
// They want user overrides, see if the user calendar matches the input calendar
CalendarId userCalendar = (CalendarId)CultureData.GetLocaleInfoExInt(localeName, LOCALE_ICALENDARTYPE);
// If the calendars were the same, see if the locales were the same
if (userCalendar == calendarId)
{
string?shortDateOverride = CultureData.ReescapeWin32String(CultureData.GetLocaleInfoEx(localeName, LOCALE_SSHORTDATE));
string?longDateOverride = CultureData.ReescapeWin32String(CultureData.GetLocaleInfoEx(localeName, LOCALE_SLONGDATE));
InsertOrSwapOverride(shortDateOverride, ref this.saShortDates);
InsertOrSwapOverride(longDateOverride, ref this.saLongDates);
}
}
return(result);
}