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

修改WKWebView默认上下文菜单语言的方法

WKWebView上传图片上下文菜单语言不匹配的解决方法

(西班牙语环境下菜单显示英文)

检查应用本地化基础配置

  • 确认项目Info.plist中,CFBundleLocalizations数组已添加西班牙语标识es,同时将CFBundleDevelopmentRegion设置为es或包含西班牙语的区域(如es-ES)。
  • 确保应用工程中存在西班牙语本地化资源文件(.lproj文件夹),保证应用能响应系统语言切换。

修正网页的语言属性

WKWebView的上下文菜单语言可能受网页自身的语言设置影响:

  • 检查目标URL对应的网页代码,确认<html>标签的lang属性设置为es,即<html lang="es">;如果网页支持动态语言切换,确保其能读取用户设备的语言环境并自动适配。
  • 若无法修改网页代码,可通过WKUserScript注入JavaScript强制修改页面语言:
    // 创建注入脚本,设置页面语言为西班牙语
    let langScript = WKUserScript(
        source: "document.documentElement.lang = 'es';",
        injectionTime: .atDocumentEnd,
        forMainFrameOnly: true
    )
    // 配置WKWebView
    let userContentController = WKUserContentController()
    userContentController.addUserScript(langScript)
    let webConfig = WKWebViewConfiguration()
    webConfig.userContentController = userContentController
    // 初始化WKWebView
    let webView = WKWebView(frame: view.bounds, configuration: webConfig)
    

配置WKWebView的语言偏好

强制指定WKWebView的首选语言:

let webConfig = WKWebViewConfiguration()
// 设置网页偏好的首选语言
webConfig.defaultWebpagePreferences.setValue("es", forKey: "preferredLanguage")
let webView = WKWebView(frame: view.bounds, configuration: webConfig)

验证系统与应用语言设置

  • 检查设备系统设置,确认西班牙语为首选语言;进入应用的单独语言设置(设置>应用名称>语言),确保未强制设置为英文。
  • 确认Info.plist中相机、相册权限的描述已添加西班牙语本地化值(NSCameraUsageDescription、NSPhotoLibraryUsageDescription),完整的本地化配置有助于系统识别应用语言环境。

测试验证步骤

  1. 清理Xcode项目缓存(Product > Clean Build Folder),重新编译安装应用。
  2. 重启设备,确保系统语言设置完全生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 13:40:36