独立开发之 App 国际化全步骤(五):提取 App 中文本文案

关于我:大厂摸鱼 + 业余独立开发,之后会输出深度技术文章 + 独立开发技巧

我的往期技术文章合集:RickeyBoy - Gitbub

我的独立开发 App:iColors - 设计灵感 配色助手

上一篇:

独立开发之 App 国际化全步骤(一):为什么要做国际化

独立开发之 App 国际化全步骤(二):App 数据翻译

独立开发之 App 国际化全步骤(三):Core Data 模型升级

独立开发之 App 国际化全步骤(四):Core Data 模型解析

🤿 提取 App 内文本文案

我们前面花了大部分的篇幅,讲清楚了和 Core Data 相关的数据库文案的翻译。一般来讲,App 的国际化需要考虑两部分文案,我姑且称之为"数据库文案"和"文本文案"。数据库文案是指的 App 中的运营内容,每次上传新的运营数据其实都会需要准备多语言的版本,是一个长期的活;而文本文案通常本身就是写死的,只需要在国际化的时候一次性解决就行了。

下面用一张图来说明就很清楚了:

  • 红色部分,就是文本文案
  • 蓝色部分,就是数据库文案

因为我的 App 的特殊性,所以需要先处理数据库文案,实际上大部分 App 只需要处理文本文案就够了。这也是之前我说,大部分网上的国际化教程,都不能够直接使用的原因。

那么,从这一章开始,我们就准备开始处理文本文案了。

配置新语言

我们需要先新增目标语言,以我这里的例子而言就是本身支持中文,现在需要新增英文语言。这部分的教程其实很多,也并不难,所以这里我会尽量简洁地讲解。

首先需要根据 Project -> Info -> Localizations 在工程设置中添加所需本地化语言:

之后如果有一些稍微有所经验的开发者,可能知道我们该创建 Localizable.strings 文件了。没错,这其实就是我们最终想要获得的翻译文件,应该有多份 Localizable.strings 文件来承载不同的语言翻译。

不过相比于传统的,手动创建文件,并执行翻译,我们这次会尝试使用更具效率的方法,那就是通过 Xcode 的新功能来自动进行生成。

Xcode 自动提取文本文案

首先,我们需要确认 Xcode 中的一个配置是正确的,即 Use compiler to Extract Swift 这个选项配置为 YES。这里意味着我们允许 Xcode 自动提取我们 App 中的文本文案:

接下来,我们在 Xcode 的 Product 选中 Import Localizations,就可以自动创建了:

提取出来之后,大概页面会是这样:

这里有两列 English,第二列和第三列看起来一模一样。这里讲一下区别:

  • 第二列:代表基础语言(base localization),如果你的 App 选择的 base language 是英文,那么这里就是英文,如果选择的是中文这里就是中文
  • 第三列:当前语言的翻译,目前浏览的是英文翻译,所以这里就是英文;如果浏览的是中文翻译,那么第三列就是中文。

这样,我们就可以将 Xcode 自动生成的 Localizable.strings 导入,成功之后的样式应该是如下图所示:

这样,我们的架构实际上就已经成功搭建起来了,通过这样的文件架构,我们就能处理文本文案的多语言展示。比如我们分别在 Localizable.strings 文件中增加了对应的翻译:

swift 复制代码
// Localizable (Chinese, Simplified)
"色彩主题" = "色彩主题";
// Localizable (English)
"色彩主题" = "Editor's Pick";

那么在代码中就自动被更新了,在英文版中也可以被直接正常显示了!

swift 复制代码
Text("色彩主题")

成功!不过目前我们还有一个大问题没有解决:

当 App 中的文本不多时,用这样的方式可以非常方便的进行创建和提取。如果 App 比较复杂,里面涉及的文本非常多,用这种自动提取的方法,发现有很多文本没有办法被自动处理。

不过不用担心,遗漏的翻译我们是有办法检查出来的,现在我们只需要先进行下一步:翻译文案,以及修改代码,将其应用在 App 中。


国际化系列文章的第五篇,终于到了 App 中文本文案的部分,本期讲了如何将需要翻译的内容提取出来,以及一些原理。

相关推荐
zhongben123_8 小时前
从零开发一个打车APP:技术选型、系统架构与成本评估指南
大数据·运维·ios·系统架构·uni-app·web app
茶底世界之下8 小时前
人像清晰度加多少?用 Awaking 对照皮肤与发丝
ios
Anhty11 小时前
2026三款AI变声器测评:iOS男变女自然声线实测
人工智能·功能测试·ios·智能手机
传奇开心果编程11 小时前
组合优先开发范式:从汉字造字原理到声明式UI组件组合思想
android·flutter·ios·swiftui·移动开发·harmonyos·android jetpack
腾讯端服务12 小时前
一码Duo端-Kuikly-iOS折叠屏新UI适配实践
android·ui·ios·kotlin·鸿蒙
2501_9159184112 小时前
Windows 上开发 React Native iOS,真机调试、Fast Refresh 与打包 ipa
windows·vscode·react native·ios·个人开发·swift·敏捷流程
aiopencode1 天前
局域网设备抓包怎么做?用 TraceEagle 抓电视、游戏机和 IoT 流量
后端·ios
奇牙coding1 天前
GPT-5.5 报 401 invalid_api_key 怎么办?换密钥前按 4 层排查请求头、项目权限和端点
数据库·gpt·ios·ai
szp20051 天前
中文字幕烧进视频后整片空白:CoreText 低报行高,导出照样成功
ios·swift
二流小码农1 天前
HarmonyOS开发助手,0代码让元服务从开发到上架
android·ios·harmonyos