跳转至主要内容
iOS i18n

iOS 本地化:原生 Swift 和 SwiftUI 翻译工作流

iOS 使用 String Catalog(Xcode 15+)以及 .strings/.stringsdict 文件管理翻译。SwiftUI 视图通过 Text() 初始化器自动完成本地化,Xcode 负责提取、复数规则处理以及导出为 XLIFF 供译者使用。借助 String Catalog,您可以获得一个可视化编辑器,跟踪每个支持语言版本的翻译状态。

iOS 本地化功能

String Catalog(.xcstrings),提供可视化翻译编辑器和状态跟踪
通过 Text() 和 LocalizedStringKey 实现 SwiftUI 的自动本地化
通过 .stringsdict 和自动语法引擎处理复数形式和语法一致性
通过 Xcode 导出/导入 XCLOC 文件,实现专业译者的交接
Storyboard 和 XIB 本地化,集成 Interface Builder
Auto Layout 约束,可适应文本长度和布局方向的变化
支持从右到左 (RTL) 布局,采用 leading/trailing 布局语义
Foundation 格式化器,支持感知区域设置的日期、数字和度量单位格式化
使用 .lproj 目录对应用包进行本地化,管理各语言版本的资源

iOS 本地化实践

在 Text() 中使用字符串字面量时,SwiftUI 视图会自动完成本地化。String Catalog 在单个文件中管理复数形式和设备变体。

// SwiftUI - Automatic localization
struct WelcomeView: View {
    let name: String

    var body: some View {
        VStack {
            // Automatically looks up "Welcome to %@" in String Catalog
            Text("Welcome to \(name)")

            // Pluralization via String Catalog
            Text("^[\(itemCount) item](inflect: true)")

            // Date formatting respects locale
            Text(Date.now, format: .dateTime.month(.wide).day())
        }
    }
}

// Localizable.xcstrings (String Catalog)
// Managed in Xcode - supports:
// - Automatic extraction from SwiftUI
// - Pluralization rules per locale
// - String variation by device
// - Translation state tracking

立即开始 iOS 本地化

使用 AI 驱动的工作流、CLI 同步和延迟低于 50ms 的 CDN 分发,管理您的 iOS String Catalog 翻译。