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

如何修改WebView中日期时间选择器按钮的语言文本?

问题描述

在Android WebView及Flutter in_appwebview 插件环境中,使用HTML的 <input type="time"> 或 <input type="date"> 输入控件时,系统弹出的日期时间选择器内的「设置」(set)和「清除」(clear)按钮无法正确加载葡萄牙语翻译,始终显示英文文本。

当前配置

使用的 InAppWebViewGroupOptions 配置如下:

final InAppWebViewGroupOptions _webViewOptions = InAppWebViewGroupOptions(
crossPlatform: InAppWebViewOptions(
  useShouldOverrideUrlLoading: false,
  javaScriptEnabled: true,
  allowFileAccessFromFileURLs: true,
  allowUniversalAccessFromFileURLs: true,
  javaScriptCanOpenWindowsAutomatically: true,
  supportZoom: false,
  userAgent:
      'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36',
),
ios: IOSInAppWebViewOptions(
  allowsInlineMediaPlayback: true,
),
android: AndroidInAppWebViewOptions(
  useHybridComposition: true,
  allowContentAccess: true,
  allowFileAccess: true,
),
);
解决方案

1. 确保WebView的Locale配置正确

Android系统层面的Locale设置会影响WebView控件的系统UI翻译:

  • 原生Android项目中,可在WebView初始化前强制设置Locale为葡萄牙语:
    // 设置为巴西葡萄牙语,若为欧洲葡萄牙语则用 "pt", "PT"
    Locale.setDefault(new Locale("pt", "BR"));
    Configuration config = getResources().getConfiguration();
    config.setLocale(Locale.getDefault());
    getResources().updateConfiguration(config, getResources().getDisplayMetrics());
    
  • Flutter项目中,可通过修改AndroidManifest.xml添加全局Locale配置:
    <application
        ...
        android:locale="pt-BR">
    

2. 替换为自定义JS日期时间选择器

放弃依赖系统原生控件,使用第三方JS日期时间选择器(如Flatpickr、Tempus Dominus),完全控制文本翻译:

  • 示例:引入Flatpickr并配置葡萄牙语本地化
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css">
    <script src="https://cdn.jsdelivr.net/npm/flatpickr"></script>
    <script src="https://cdn.jsdelivr.net/npm/flatpickr/dist/l10n/pt.js"></script>
    <input type="text" id="timeInput">
    <script>
      flatpickr("#timeInput", {
        locale: "pt",
        enableTime: true,
        noCalendar: true,
        time_24hr: true
      });
    </script>
    

3. 更新WebView版本与系统语言包

  • 检查设备是否已安装葡萄牙语语言包,若未安装需引导用户在系统设置中添加
  • 将设备的Chrome WebView更新至最新版本,旧版本WebView存在系统UI翻译缺失的已知bug,新版本已修复相关问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 05:26:12