Xcode 13でSwiftプロジェクトをローカライズ(翻訳)


以前、Xcodeにはローカリゼーションをエクスポート / インポートする機能がありましたが、外部のXLIFFエディターが必要でした。WWDC 2021でリリースされたXcode 13には、ローカリゼーション用のエディターが組み込まれています。

この記事では、Xcode 13におけるローカリゼーションのフローについて説明します。

セットアップ

Xcodeは、既定の開発言語(アプリを開発している時に使用する言語)として英語を使用しています。これは日本語に変更することができます。
Development language の変更

また、アプリの翻訳先言語も指定する必要があります。.

ローカライズ可能な文字列をマークする

SwiftUIビューでは、よく使用される多くのビューコンポーネントにおいて、テキストエントリーはすでにローカライズ可能なものとしてマークされています(例えば、Text、TextField、およびButtonなど)。

スクリーンショット 2021-11-18 15.25.18.png

UIKitを使用し、Swiftでコードを書いている場合、NSLocalizableString関数で文字列をラップする必要があります。

let alert = UIAlertController(title: NSLocalizedString("テストタイトル", comment: ""),
                              message: NSLocalizedString("メッセージの内容", comment: ""),
                              preferredStyle: .alert)

カスタムSwiftUIビューがある場合、NSLocalizableString関数の使用が必要になる場合もあります。

ビルド設定の更新

コンパイラがローカライズ可能な文字列を抽出します。プロジェクトを選択し、Build Settingsに移動して、Use Compiler to Extract Swift Stringsをオンにします。

スクリーンショット 2021-11-18 15.18.42.png

ローカリゼーションをエクスポート

Productメニューをクリックし、Export Localizationsをクリックしてください。

スクリーンショット 2021-11-18 15.49.18.png

翻訳を入力

生成されたフォルダーを開き、.xclocファイルをダブルクリックしてください。GUIが表示されます。
ターゲットが複数ある場合、選択してターゲットフォルダーを開き、ファイルのいずれかをクリックしてください。

右側の、ターゲット言語が表示されている列のテキストをダブルクリックして編集します。

スクリーンショット 2021-11-19 13.24.01.png

ファイルを保存します。

ローカライゼーションのインポート

Xcodeで、Productメニューをクリックして、Import Localizationsをクリックします。 .xclocファイルを選択して、翻訳をインポートします。

スクリーンショット 2021-11-18 15.49.25.png

Storyboardローカライズ

こちらのリンクを参照することにより、UIKit Storyboardのローカライズ方法を学ぶことができます。


:relaxed: Twitter @MszPro

:newspaper: iOS開発に関するニュースレター iOS Dev Letter

:sunny: 私の公開されているQiita記事のリストをカテゴリー別にご覧いただけます。