如何安全迁移Xcode String Catalog至新项目并保留所有翻译?
Xcode String Catalogs(.xcstrings)迁移方案
核心结论
完全可以直接迁移旧项目的.xcstrings文件保留翻译,不需要手动重新创建所有翻译。.xcstrings是存储翻译内容的实体源文件,代码里的Button(String(localized:"Done", table: "AddEdit"))这类写法只是调用翻译的入口,只要代码中的key和table名称与.xcstrings文件中的条目匹配,就能直接复用已有翻译。
安全迁移步骤
- 关闭Xcode,避免文件状态冲突
- 从旧项目A的目录中找到所有.xcstrings文件(比如对应
AddEdit表格的AddEdit.xcstrings、全局的Localizable.xcstrings等),复制到新项目B的对应目录(建议和旧项目保持相同结构,比如统一放在Resources/Localization文件夹下) - 打开新项目B,在项目导航栏右键点击目标文件夹,选择「Add Files to "项目名"」,选中复制的.xcstrings文件,确保勾选「Copy items if needed」和对应的项目target
- 验证配置:进入项目「Info」标签页,确认所需的本地化语言(如简体中文、英文)已添加;再选中每个.xcstrings文件,在右侧「File Inspector」中确认对应语言已勾选,且文件归属正确的target
- 编译运行项目,测试所有带
localized:的文本是否正常显示翻译,重点验证指定table的文本(比如String(localized:"Done", table: "AddEdit")的显示效果)
注意事项
- 确保新项目B的代码与旧项目A完全一致,特别是
String(localized:)的key和table参数无改动,否则会出现翻译匹配失败的情况 - 若迁移后翻译不显示,优先检查.xcstrings文件是否正确加入target,再核对语言配置是否完整,最后确认代码中的key和table与.xcstrings条目完全对应
- 无需在Xcode的String Catalog界面手动重建翻译,直接复用旧文件即可
内容的提问来源于stack exchange,提问作者Nerdy Bunz
相关产品推荐
相关产品推荐

