编辑和翻译你的 Xcode String Catalog(.xcstrings)

LocalePilot 打开 iOS 和 macOS 应用的 Localizable.xcstrings 文件,显示每种语言缺少的内容,检查格式说明符,并按 Xcode 的风格写回目录,只改动你修改过的部分。

LocalePilot 读写哪些内容

  • 缺失的翻译:没有本地化条目、状态为 new 或值为空。LocalePilot 绝不写入空值:清空一条译文会删除该本地化条目,与 Xcode 的做法一致。
  • 复数和设备变体可以编辑,显示为 key › plural › one。
  • 源语言:没有本地化条目的键表示键本身就是文本(Xcode 约定),在你编辑之前不会被改写。
  • 状态:未改动的值保持原状态(needs_review 等);编辑过的值变为 translated。

最小差异,Xcode 风格

写回未修改的目录会得到逐字节相同的文件;一次编辑只改动它自己的那几行。代码审查时差异依然清晰。导出流程与其他格式相同:审阅、与磁盘上的文件合并、备份。

检查格式说明符

质量检查能识别 %@、%1$@、%d、%ld、%lld、%.2f、%u、%i 和 %s;%% 视为普通文本。译文中缺失或多出的说明符会在导出前标出。

已知限制

  • 标记为 shouldTranslate: false 的键和使用替换(%#@count@)的键会原样保留,但不会显示:它们仍在 Xcode 中管理。
  • String Catalog 的目标类别遵循各语言的 CLDR 规则,即使源语言没有该类别。缺少的源类别使用 other 形式;目标语言不使用的类别不会导出。
  • 也支持旧式 .strings 文件(UTF-8 编码)。在 .strings 文件中新增语言会创建 <locale>.lproj 文件夹,需要把它添加到 Xcode 项目中。LocalePilot 会在导出摘要中提醒你,但从不修改 .pbxproj;如果项目使用 Xcode 16 的同步文件夹,则无需操作。

常见问题

LocalePilot 会取代 Xcode 来处理 String Catalog 吗?

不会,它是 Xcode 的补充:Xcode 从代码中提取字符串,LocalePilot 用来检查、翻译和审阅这些字符串。两者读写同一个 .xcstrings 文件。

我的文件会被重新格式化吗?

不会。未做修改就写回的目录逐字节相同;一次编辑只会改动它自己的那几行,并保持 Xcode 的风格。

支持复数吗?

支持,复数和设备变体都可以编辑。替换(%#@count@)会被保留,但仍需在 Xcode 中编辑。

上线时通知我

LocalePilot 正在做最后的完善。留下你的邮箱,上线时我们会通知你。

  • macOS 12 或更高版本 · Ollama 或 LM Studio 可选
  • 应用界面语言:英语、法语、西班牙语、意大利语和葡萄牙语。