如何在 DatePickerDialog 中以越南语显示月份和日期?

How to display months and days in Vietnamese in DatePickerDialog?

如何在 DatePickerDialog for Android 和 DatePicker in IOS 中显示越南语月份和日期,当 Xamarin forms 中的应用程序语言为越南语时

Android:

protected override DatePickerDialog CreateDatePickerDialog(int year, int month, int day)
        {
            pickerDialog = new DatePickerDialog(Context, (o, e) =>
            {
                datePicker.Date = e.Date;
                ((IElementController)datePicker).SetValueFromRenderer(VisualElement.IsFocusedPropertyKey, false);
            }, year, month, day);

            //ok
            pickerDialog.SetButton((int)DialogButtonType.Positive, AppResources.AlertDismiss, OnDone);

            //cancel
            pickerDialog.SetButton((int)DialogButtonType.Negative, AppResources.PickerCancelText, OnCancel);

            return pickerDialog;
        }

IOS: 建议我在 IOS?

中怎么做

如果我没理解错的话,你想为 DatePicker 显示英文格式吗?

如果是这样,您可以修改自定义渲染器中日期选择器的 Locale

iOS 解决方案


[assembly: ExportRenderer(typeof(DatePicker), typeof(MyRenderer))]
namespace FormsApp.iOS
{
    class MyRenderer : DatePickerRenderer
    {

        protected override void OnElementChanged(ElementChangedEventArgs<DatePicker> e)
        {
            base.OnElementChanged(e);
          
            if(Control != null)
            {
                UIDatePicker picker = Control.InputView as UIDatePicker;
                picker.Locale = new NSLocale("us");
            }
        }
    }
}

之前

之后


如果你想让 Datepicker 只显示 monthday 来选择项目,它可能有点复杂,因为 iOS 没有提供 option/mode 要实现这一点,您需要创建一个实现 UIPickerViewDelegate 的视图和控制器并创建您自己的。

参考

.

.


Android 解决方案

MainActivity class .

中的 OnCreate 中添加以下代码
 protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);

            //this code 
            Locale locale = Locale.Us;
            Locale.SetDefault(Locale.Category.Format, locale);
            Configuration config = this.Resources.Configuration;
            config.SetLocale(locale);
            CreateConfigurationContext(config);
                
            LoadApplication(new App());
        }

之前

###之后

参考

Set Android DatePicker title language