用途:面向 iOS 项目本地化,处理 UIKit 的 View/ViewController 与 SwiftUI View,把硬编码的用户可见文本提取出来,生成一致的键,替换为正确的 Swift API,并创建或更新 .xcstrings 字符串目录(Xcode 15+ 推荐的本地化格式)。
主要能力:提取硬编码字符串;按 featureNameComponentNameDescription 规则生成 camelCase 键;在 String(localized:) 与 xcstrings-tool 的 .localizable(...) 之间按条件选择 API;创建或更新 Localizable.xcstrings;依据 project.pbxproj 的 knownRegions 检测语言并补充翻译条目;覆盖复数规则、字符串插值、无障碍标签本地化、RTL 布局与本地化内容测试等规则。
使用方式:先检查是否安装 xcstrings-tool(在 Package.swift 搜索 xcstrings-tool、在 project.pbxproj 搜索 XCStringsToolPlugin),此为硬性前置步骤;未安装时询问用户是否安装或跳过。随后读取目标 Swift 文件并分类为视图层、ViewModel/Presenter 或 Helper/Formatter/Enum,提取候选字符串并向用户确认,再提出键名并确认。更新 .xcstrings 时,若项目存在多个文件需询问使用哪个,无文件则创建 Resources/Localization/Localizable.xcstrings,并用 swift sh .claude/skills/localize-ios/scripts/add_to_xcodeproj.swift 注册到 project.pbxproj。替换字符串时,已安装 xcstrings-tool 用 .localizable(...),否则用 String(localized:);跨 target 且无插件时用 String(localized:, table:)。最后输出替换表、文件路径与后续步骤。
适用场景:为已有 iOS 项目引入或补充本地化,统一键名与 API,迁移到 String Catalog。
限制:依赖 Xcode 15+ 与 .xcstrings;xcstrings-tool 的类型化访问器需构建(Cmd+B)后生成;翻译准确性不足时标记 needs_review;switch 语句中的字符串需逐条替换;文件必须同时存在于磁盘并在 project.pbxproj 中注册。