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

Posted

技术标签:

【中文标题】如何在 DatePickerDialog 中以越南语显示月份和日期?【英文标题】:How to display months and days in Vietnamese in DatePickerDialog? 【发布时间】:2021-11-30 02:59:59 【问题描述】:

当应用程序语言在 Xamarin 表单中为越南语时,如何在 android 的 DatePickerDialog 和 ios 的 DatePicker 中以越南语显示月份和日期

安卓:

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中怎么做?

【问题讨论】:

【参考方案1】:

如果我理解正确,你想为 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 不提供实现该选项/模式,你需要创建一个视图和实现 UIPickerViewDelegate 并创建您自己的控制器。

参考

https://***.com/a/412754/8187800.

https://***.com/a/24971192/8187800.


安卓解决方案

将以下代码添加到MainActivity类的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());
        

之前

###之后

参考

DatePickerDialog in arabic language

Set Android DatePicker title language

【讨论】:

所以你想要的是显示英文风格? 我反之问英语到越南语。但感谢 IOS 它的工作原理。我要求Android和IOS。对于 Android 请推荐我? 如果我在应用程序中将语言从英语切换到越南语和越南语到英语,是否可以在运行时更改。不是移动语言。 可以,使用消息中心调用特定平台项目中的代码即可。

以上是关于如何在 DatePickerDialog 中以越南语显示月份和日期?的主要内容,如果未能解决你的问题,请参考以下文章

Material UI:如何在 DatePicker 之外使用 DatePickerDialog?

如何在 DatePickerDialog Android 中禁用今天日期之前的日期?

如何在 DatePickerDialog Android 中禁用今天日期之后的日期?

如何在按钮单击时显示 DatePickerDialog? [关闭]

如何在 xamarin 表单中更改视觉材料 DatePickerDialog 和 TimePickerDialog 背景颜色

使用 DatePickerDialog 选择多个日期