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

如何基于Swift代码库中NSLocalizedString调用生成Localizable.strings文件

Swift项目NSLocalizedString自动提取生成Localizable.strings方案

1. Xcode原生工具(零依赖首选)

Xcode 13及更高版本自带全量本地化提取能力,无需安装任何第三方组件:

  • 可视化操作:选中项目根目录后点击顶部菜单栏 Editor → Export Localizations,选择导出路径即可自动扫描全项目的NSLocalizedString调用,直接生成对应语言的格式化Localizable.strings文件,定义时写的注释也会同步导出
  • 命令行操作:在项目根目录执行以下命令即可批量导出:
# 普通project项目
xcodebuild -exportLocalizations -localizationPath ./l10n_export -project 你的项目名.xcodeproj
# 使用workspace的项目
xcodebuild -exportLocalizations -localizationPath ./l10n_export -workspace 你的项目名.xcworkspace -scheme 你要扫描的scheme名

多target场景下额外补充-target参数指定要扫描的目标即可。

2. 第三方工具(适合自定义/增量更新需求)

  • SwiftGen:配置好字符串扫描规则后,可一键提取全项目NSLocalizedString,支持自动去重、自定义导出格式,还能同步生成多语言调用的静态扩展代码,避免硬编码key
  • BartyCrouch:主打增量更新能力,不会覆盖已经翻译完成的内容,只会新增扫描到的未收录key,适合迭代过程中持续维护多语言文件,安装后直接执行bartycrouch update即可完成更新

3. 自定义Shell脚本(适配特殊业务规则)

如果你的项目有自定义的NSLocalizedString封装,可直接用以下快速脚本按需调整:

find ./你的源码根目录 -name "*.swift" | xargs grep -o 'NSLocalizedString\(@*"[^"]*"' | sed -e 's/NSLocalizedString(@*"\(.*\)"/"\1" = "\1";/' | sort | uniq > Localizable.strings

该脚本会遍历所有Swift文件提取key,自动生成标准格式的strings文件并去重,你可以根据自己的封装方法名修改grep匹配规则即可适配自定义封装场景。

提示:如果你的项目中存在OC混编的情况,只需要在find命令中补充-name "*.m"参数即可同时扫描OC文件中的多语言定义。

内容的提问来源于stack exchange,提问作者Rahul Rentash

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 22:18:04