I faced this Thai calendar issue a few days back but it got resolved with great community help.
Following the above bug, The Thai culture labels or date format are inconsistent when we update the Phone language (English --> Thai). Please check the labels displaying as 2021 instead of 2564.
Though the DatePicker is displaying fine:
To display the date label, we are doing:
dateTime.ToString("dd MMM yyyy", CultureInfo.InvariantCulture)
We are updating the CultureInfo at App.cs on configuration changed:
public override void OnConfigurationChanged([NotNull] Configuration newConfig)
{
base.OnConfigurationChanged(newConfig);
var javaLocale = newConfig.Locales.Get(0);
if (javaLocale != null)
{
ResetNetLocale(javaLocale);
}
}
private static void ResetNetLocale([NotNull] Locale javaLocale)
{
var cultureInfo = javaLocale.TryGetCultureInfo() ?? CultureInfo.InvariantCulture;
CultureInfo.CurrentUICulture = cultureInfo;
CultureInfo.CurrentCulture = cultureInfo;
CultureInfo.DefaultThreadCurrentCulture = cultureInfo;
}
At listview item or other views to update the CultureInfo we are also using:
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CurrentUICulture;
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;
Though other regions/culture labels eg. (France, German, etc.) are displaying fine. The only problem we are facing in Thai culture.
Any hint to solve the issue would be really helpful.