You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin.Forms中App设为越南语时双端日期选择器如何显示越文月日

iOS端Xamarin.Forms DatePicker越南语本地化适配方案

要实现iOS端DatePicker的月份、日期以越南语展示,可通过自定义DatePicker渲染器强制设置原生控件的区域配置,具体实现步骤如下:

1. 自定义iOS端DatePicker渲染器

在iOS平台项目中创建自定义渲染器类,给原生UIDatePicker设置越南语区域,同时替换确定、取消按钮文本和Android端保持一致,代码示例如下:

using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
using UIKit;
using Foundation;

// 注册渲染器,替换默认DatePicker渲染逻辑
[assembly: ExportRenderer(typeof(DatePicker), typeof(YourAppNamespace.iOS.VietnameseDatePickerRenderer))]
namespace YourAppNamespace.iOS
{
    public class VietnameseDatePickerRenderer : DatePickerRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<DatePicker> e)
        {
            base.OnElementChanged(e);

            if (Control == null) return;
            
            // 强制设置日期选择器的区域为越南语
            var viLocale = NSLocale.FromLocaleIdentifier("vi-VN");
            Control.Locale = viLocale;
            Control.Calendar = new NSCalendar(NSCalendarType.Gregorian)
            {
                Locale = viLocale
            };

            // 替换弹出工具栏的确定、取消按钮文本,和Android端复用资源
            var toolbar = Control.InputAccessoryView as UIToolbar;
            if (toolbar?.Items != null)
            {
                foreach (var barItem in toolbar.Items)
                {
                    if (barItem.Style == UIBarButtonItemStyle.Done)
                    {
                        barItem.Title = AppResources.AlertDismiss;
                    }
                    else if (barItem.Style == UIBarButtonItemStyle.Plain && barItem.Title == "Cancel")
                    {
                        barItem.Title = AppResources.PickerCancelText;
                    }
                }
            }
        }
    }
}

注意将代码中的YourAppNamespace替换为你项目的实际命名空间。

2. 配置Info.plist支持越南语

在iOS项目的Info.plist文件中添加越南语本地化声明,避免系统默认过滤不支持的语言配置:

<key>CFBundleLocalizations</key>
<array>
    <string>vi</string>
    <!-- 可保留其他已支持的语言,例如zh-CN、en -->
</array>

补充说明

如果你的应用支持用户手动切换语言(不跟随系统语言),切换语言后需要主动刷新当前页面已加载的DatePicker实例,触发渲染器重新加载越南语配置即可生效。

内容的提问来源于stack exchange,提问作者Devanathan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 20:24:03