【发布时间】:2022-01-09 17:27:04
【问题描述】:
几天前我遇到了这个泰语calendar issue,但在社区的大力帮助下它得到了解决。
由于上述错误,当我们更新电话语言(英语 --> 泰语)时,泰语文化标签或日期格式不一致。请检查显示为 2021 而不是 2564 的标签。
虽然 DatePicker 显示正常:
为了显示日期标签,我们这样做:
dateTime.ToString("dd MMM yyyy", CultureInfo.InvariantCulture)
我们正在更新 App.cs 中的 CultureInfo 以更改配置:
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;
}
在列表视图项或其他视图中更新我们也在使用的 CultureInfo:
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CurrentUICulture;
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;
虽然其他地区/文化标签,例如。 (法国、德国等)显示良好。我们在泰国文化中面临的唯一问题。
任何解决问题的提示都会非常有帮助。
【问题讨论】:
-
仅供参考:有符合泰语/佛教日历的第 3 方开源日历和日期选择器小部件,因为这在 ASOP 中已经存在一段时间了。我从未亲自查看过与此相关的各种 Android API 级别的 ASOP 问题(打开或关闭),但事实上,第 3 方已经开发并维护了严格使用默认 Android 小部件的替代方案
ThaiBuddhistCalendar意味着您可能需要也看看他们......
标签: xamarin xamarin.forms xamarin.android localization