iOS App本地化视频异常:切换英文语言仍播放日文视频
问题分析与解决
你的问题出在取消"Use Base Internationalization"后的资源存放逻辑错误,以及对iOS本地化资源搜索优先级的误解:
核心错误点
- 当你取消"Use Base Internationalization"并将英语设为默认语言时,iOS会将默认语言(英语)的资源直接放在App的主Bundle根目录下,而非
en.lproj文件夹中。你把英文版视频放到了en.lproj里,导致英语环境下App仍然读取主Bundle里的原始视频(也就是你替换前的日文版)。 - 只有非默认语言的资源才需要放在对应的
xx.lproj文件夹中,默认语言资源无需放入语言文件夹。
修正步骤
- 推荐重新勾选项目->Info->Localizations中的"Use Base Internationalization"(符合iOS本地化规范,Base目录作为默认资源的 fallback,后续维护更方便)
- 如果坚持取消Base国际化:
- 将英文版视频替换到主Bundle根目录(直接覆盖原文件)
- 日文版视频保留在
ja.lproj文件夹中
- 执行
Command+Shift+K清理Xcode缓存,重新编译运行
补充说明
iOS资源搜索优先级为:当前系统/Scheme设置的语言文件夹 → 默认语言文件夹(开启Base则为Base目录)→ 主Bundle根目录。你之前的操作颠倒了默认语言资源的存放位置,导致语言切换后无法正确加载对应视频。
内容的提问来源于stack exchange,提问作者yuntan_t
相关产品推荐
相关产品推荐

