页面里中文已经写好了,但切到英文后按钮仍不变,或文本目录里找不到那句文案。
最快解法:用 Xcode 的 String Catalog 管理可见界面文字;不要在代码里拼接不同语言的句子。补齐翻译后,分别切换语言检查长文本和动态内容。 (Apple 的 String Catalog 本地化文档)
刚开始用 SwiftUI 写课程项目、想给第一个 App 加中英文界面的学生,可以从一两个页面开始。
已有项目、发现文案散落在代码里的初学者,可以按下文逐步整理。
需要提交多语言作业的小组成员,可以重点看语言切换、翻译交接和最终验收。
资料核对:2026 年 9 月 26 日。Apple 文档与发布说明显示,Xcode 27.2 为 Beta;请按你实际安装的 Xcode 版本核对菜单和支持情况,不要把 Beta 路径当成所有稳定版本都一致。(Xcode 27.2 发布说明)
先分清哪些文字要翻译
本地化不是把项目里每个字符串都换成另一种语言,而是让面向用户的内容能根据语言设置显示合适文本。课程作品通常先处理首页标题、按钮、提示语和空状态,不必先翻译调试输出、内部变量名或用户输入的数据。Apple 将准备代码与资源供翻译称为国际化,再把文本适配到目标语言称为本地化。(Apple 的多语言应用支持说明)
| 项目里的内容 | 通常怎么处理 | 课程页面示例 |
|---|---|---|
| 用户能看见的静态文案 | 使用可本地化写法,交给目录管理 | “开始学习”、提交按钮 |
| 动态句子与数量 | 保留变量含义,用系统支持的格式组织整句 | “已完成 3 项” |
| 产品数据或用户输入 | 不要把数据本身当成固定翻译文案 | 用户填写的课程名称 |
| 调试信息、变量名 | 通常不属于界面翻译范围 | 控制台排错文字、courseTitle |
SwiftUI 视图中的一部分字符串字面量会自动按本地化方式处理;但并不是代码里出现的每段文字都会被识别。若某句没进入目录,先确认它是否真是用户可见文本,再检查它是否经过 Xcode 能识别的本地化 API。(Apple 关于准备应用文本供翻译的说明)
第一步:只给一个页面建立文案目录
先选一个小页面,例如课程首页。把页面上会显示给用户看的标题、按钮和状态提示列出来,暂时不动模型字段、调试文字和课程内容数据。这样做能让你先验证整条流程,而不是一次性面对全项目的翻译工作。
在 Xcode 中创建 String Catalog 后,构建项目,让 Xcode 收集支持提取的本地化字符串。默认目录常见名称是 Localizable.xcstrings。随后在目录中添加目标语言并填写译文。Apple 的目录文档说明了创建目录、构建以填充条目、添加语言和输入翻译的流程;具体菜单名称应以你安装版本的官方文档为准。(Apple 的 String Catalog 操作说明)
| 操作 | 你要确认什么 | 没有结果时先查什么 |
|---|---|---|
| 创建或打开 String Catalog | 项目里有可管理本地化文案的目录 | 是否选对项目与资源文件 |
| 构建项目 | 支持提取的用户文案出现 | 字符串是否用了可本地化 API |
| 添加中文或英文 | 目标语言出现在目录中 | 项目语言设置与目录状态 |
| 填写翻译 | 每条可见文案都有对应译文 | 条目是否仍标记为待翻译 |
| 切换运行语言 | 实际页面显示对应语言 | 运行方案是否选对语言与地区 |
已有中文页面:逐条迁移,不要整段硬拼
如果页面文字已经散落在代码里,不必先重写整个项目。先从最容易识别的可见文本开始,例如按钮标题和错误提示;改为可本地化的写法后,构建项目,再回到 String Catalog 检查条目是否生成。
不要把一句话拆成若干小块再按顺序拼接。例如,把“你有”与数量、复数名词分别翻译后拼起来,英文和中文的语序、空格或词形可能不同。Apple 的文档说明,SwiftUI 的 Text 等本地化 API 可帮助 Xcode 在构建时发现文本;若字符串没被收录,应检查 API 和具体使用位置,而不是假设 Xcode 会扫描所有代码字符串。
适合先迁移: 按钮、导航标题、提示语等固定界面文案。
先别误翻: 用户输入、从课程数据读取的名称、变量标识和调试日志。
需要额外判断: 日期、数字、货币等格式可能还受地区影响,不只是换一段文字。(Apple 的多语言应用支持说明)
动态值与数量:让一条完整句子承担翻译
像“已完成 3 项”这样的内容包含动态数字。不要在中文、英文中各自拼出不同片段,再把数字插入任意位置。把句子作为完整的可本地化内容处理,并检查目录对变量和数量变化的支持。
原因很简单:不同语言对数量的表达规则可能不同。对刚入门的课程项目,先用一个简单数量场景验证,再确认两种语言的整句读起来自然。
如果动态文案包含日期、金额或用户输入,先明确哪部分是界面提示、哪部分是数据,再分别验证显示格式。不要把动态内容的某一次样例误当成完整测试:试一个普通值,也试一个较长值,观察文字是否遮挡按钮或挤出卡片。
小组协作:给翻译者上下文,再导出交接
翻译者只拿到“提交”这样的单词,可能不知道它是表单按钮、作业上传动作还是最终确认。你可以在目录条目旁补充用途说明,并截取页面上下文;同一个短词在不同位置未必应该使用同一种译法。
Xcode 支持从项目导出本地化内容,翻译或调整后再导回项目。导出设置和提取范围需要检查:Apple 文档特别说明,若要导出所有可本地化 Swift 字符串,应核对项目的字符串提取设置;导出的内容也可附带上下文材料。机器翻译可以作为草稿,但不能代替对语义、语气和页面显示的人工检查。(Apple 的本地化导出说明)
交接前先确认这几项:
- 条目对应哪个页面、控件或操作。
- 占位符和动态变量的含义是否写清楚。
- 翻译完成后是否重新导入并重新构建。
- 中文和英文是否都在运行结果中检查过。
没有本地 Mac:按课程交付要求选路线
Windows 上可以先学习本地化思路、整理文案表,也能完成不依赖苹果开发工具的基础编程练习。但要构建、启动和检查 SwiftUI 项目,仍需要可用的 Mac 与 Xcode 环境。远程 Mac 可以作为临时开发环境选项;它不会让 Windows 本身变成 Mac,也不能跳过 Xcode 构建与运行环节。
| 你的课程要求 | 建议路线 | 取舍 |
|---|---|---|
| 只需理解多语言设计或先写文案 | 先整理界面文字与译文 | 暂时无法证明项目实际切换成功 |
| 需要打开项目并运行 SwiftUI 页面 | 借用兼容的 Mac,或评估远程 Mac | 需要能访问并操作 Xcode 环境 |
| 需要完成长期、高频的 Mac 开发 | 比较自购与持续使用远程环境 | 自购前期投入较高;远程使用依赖网络 |
| 作业暂不要求苹果平台构建 | 先完成通用编程练习 | 不能替代之后的 iOS 项目验收 |
版本兼容也要提前核对。Apple 的 Xcode 系统要求页面会列出工具版本对应的 macOS、SDK 和支持范围;目前发布说明中包含 Beta 版本信息,因此不要只看“支持 iOS 27”就默认手头电脑能安装该版本。(Apple 的 Xcode 系统要求)
FAQ:先排除最常见的卡点
为什么构建后目录里还是没有某句文字?
先检查它是否显示给用户,以及它是不是通过可本地化 API 使用。SwiftUI 中不少视图文本会被自动识别,但任意变量里的字符串、调试内容或外部数据并不等于可本地化界面文案。调整写法后重新构建,再检查条目来源与目录状态。
课程项目要怎么测试系统语言切换?
在 Xcode 的运行方案里设置 App Language 和 App Region,再启动项目;也可先用 SwiftUI 预览查看不同语言的布局。Apple 官方说明运行时可以通过方案选择语言与地区。最终还要检查真实运行画面,不能只凭预览或目录里已有译文就判定通过。(Apple 的本地化运行测试说明)
只有 Windows 时,能不能先做本地化练习?
可以先整理用户可见文字、准备中英文译文、学习动态文案为什么不该拆段拼接。但这些准备工作不能证明 SwiftUI 项目能构建运行。若课程验收要求展示语言切换结果,你仍要安排 Mac 与 Xcode 环境;可以先询问学校或小组是否能借用,再评估远程 Mac。
String Catalog 显示翻译完成,为什么页面还是不对?
目录显示条目已填写,不代表运行时选中了目标语言,也不代表文字适合实际布局。检查运行方案的语言和地区设置,确认构建使用了更新后的资源,再看较长文本、动态内容与按钮是否完整显示。Apple 建议针对支持的语言和地区运行应用进行测试。
提交前:按条件选择你的验收方式
- 若页面只有固定标题和按钮: 检查默认语言与另一语言各一次,再确认每个按钮文字都出现。
- 若页面包含动态数字或日期: 额外测试不同取值,并检查完整句子的语序与格式。
- 若文字较长或页面空间紧: 在运行结果中查看换行、截断和按钮布局,不要只检查目录译文。
- 若课程要求小组交接: 导出翻译内容、提供上下文,导回后重新构建并复查。
- 若手边没有可用 Mac,且作业要求实际运行: 先安排兼容的 Mac 环境;若作业不要求平台构建,则先完成通用练习,不要把文案表当成已验收的 App。
Apple 提供在运行方案中选择语言与地区的方式,也提供 SwiftUI 本地化预览。两者适合发现不同阶段的问题;作业最终仍应以项目实际构建和运行后的画面为准。
如果你现在只能用学校电脑或 Windows,自己配置 Mac 会有购置、维护和兼容核对的成本;借用设备则受可用时间限制。远程 Mac 省去先购买实体 Mac 的步骤,但依赖网络,也不适合必须直接连接本地硬件接口的任务。若课程周期有限、又需要实际打开 Xcode 验收中英界面,可以先查看 MACCOME 的 Mac mini 云算力方案,按作业要求判断是否需要临时使用;若暂时只做文案规划,继续用现有电脑更合适。
开始前可以先到 MACCOME 中文站了解远程 Mac 学习 iOS 项目的使用方式,再对照课程的构建与验收要求安排环境。