【问题标题】:Thai Culture Date labels are Inconsistent泰国文化日期标签不一致
【发布时间】: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


【解决方案1】:

当我将设备系统语言从英语更改为泰语时,标签​​会显示 2564。

如果还是显示 2021,在 page.xaml.cs 中添加下面的代码设置泰语文化,让它第一次显示 2564。

   public partial class Page4 : ContentPage
{
    public Page4()
    {
        InitializeComponent();
        System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("th-TH");

    }
 }

【讨论】:

  • 温迪,上述解决方案不起作用。我在这里创建了一个错误(github.com/xamarin/Xamarin.Forms/issues/14963)。
  • 这可能会将日期选择器标签中的 2021 更改为 2564。但是对于 datepicker 对话框,2021 不能像我之前所做的那样更改。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-06
  • 1970-01-01
  • 2016-05-05
  • 2022-01-26
  • 1970-01-01
  • 2017-06-28
  • 1970-01-01
相关资源
最近更新 更多