コンテンツへスキップ
iOS i18n

iOSローカライゼーション:ネイティブSwiftとSwiftUIの翻訳ワークフロー

iOSはString Catalogs(Xcode 15以降)と.strings/.stringsdictファイルを使用して翻訳を管理します。SwiftUIビューはText()イニシャライザによって自動的にローカライズされ、Xcodeが翻訳者向けのXLIFFへの抽出、複数形規則、エクスポートを処理します。String Catalogsを使えば、サポートされているすべてのロケールにわたって翻訳状態を追跡するビジュアルエディタが利用できます。

iOSローカライゼーション機能

ビジュアル翻訳エディタと状態追跡を備えたString Catalogs(.xcstrings)
Text()とLocalizedStringKeyによるSwiftUIの自動ローカライゼーション
.stringsdictと自動文法エンジンによる複数形化と文法の一致
Xcodeを介したプロのトランスレーターへの受け渡しのためのXCLOCエクスポート/インポート
Interface Builder統合によるStoryboardとXIBのローカライゼーション
テキスト長やレイアウト方向の変化に適応するAuto Layoutの制約
leadingとtrailingのレイアウトセマンティクスによる右から左(RTL)のサポート
日付、数値、単位のロケール対応のためのFoundationフォーマッタ
ロケールごとのリソースのための.lprojディレクトリを使ったアプリバンドルのローカライゼーション

iOSローカライゼーションの実践

SwiftUIビューはText()でリテラル文字列を使用すると自動的にローカライズされます。String Catalogsは複数形化とデバイスのバリエーションを1つのファイルで管理します。

// 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の翻訳を管理します。