【Xcode15】String Catalogでローカライズ対応する

iOS

以前まで、iOSアプリの多言語対応(ローカライズ対応)ではプロジェクトにstringFileを追加して、アプリ内のStringを手作業で入力していましたが、Xcode15からiOSアプリのローカライズにString Catalogによる方法が追加されました。

Appleの”Localizing and varying text with a string catalog”のページをChat GPTで要約したものです。

アプリの多言語対応は、ユーザーエクスペリエンス向上に不可欠です。ただ翻訳だけでなく、複数形やデバイス別のテキスト表示も考慮すべきです。

Xcode内で文字列カタログを使用して、アプリ内のテキストを翻訳できます。これにより、コード内のすべてのローカライズ可能な文字列がトラッキングされ、翻訳が集約されます。

テキストを翻訳可能にするためには、String(localized:)イニシャライザを使用します。String(localized:)は古いプラットフォーム向けにNSLocalizedStringマクロも利用できます。翻訳にコンテキストを提供するため、コメントも追加しましょう。

プロジェクトに文字列カタログを追加するには、ファイル > 新規 > ファイルを選択し、String Catalogを選択します。文字列カタログが大きくなる場合、複数のカタログをプロジェクトに追加し、翻訳ごとに使用するカタログを選択します。

複数言語をサポートするには、プロジェクトに言語を追加します。各言語に対応するために、文字列カタログ内でローカライズ可能なテキストを追加します。Xcodeはビルド時に自動的に文字列カタログとアプリを同期させ、翻訳の進捗率を表示します。

翻訳は手動で入力するか、エクスポートしてサードパーティに翻訳を委託し、インポートすることができます。プラットフォームの違いによる複数形に対応するために、文字列内で複数形に依存する値を使用し、文字列カタログエディタで複数形オプションを設定します。

デバイスごとにテキストを変更する場合、文字列カタログエディタの「Vary by Device」オプションを使用します。最後に、シミュレータで翻訳をテストする方法について説明されています。

Xcode15では新規ファイル作成でstring catalogが追加できます。

追加するにはXcodeで新規ファイル追加画面から”String”などで検索すると”String Catalog”というのが出てくるので、プロジェクトに追加します。ファイル名は”Localizable”にしてます。

追加するとAppファイルのLocalizationsに登録されている言語が設定された状態で作成され、ここで一度buildするとソースコード内のStringをキーとして自動で入力してくれます。これがめっちゃ便利。翻訳忘れが激減です。

String Catalogファイルにキーが入力されたら、それに対する翻訳を入力していきます。

自分はプライマリ言語を英語、ソースコード内のStringも英語で書いてそれを日本語ローカライズしました。

String Catalogでは対応の進捗度が%で表示されたり、一回buildした後にコードを編集して変わったstringに注意マークを出してくれたりしてて、ローカライズ漏れがないようになっています。

対応の進捗度
使われていないstringにはSTALEの表示が出る,選択してバックスペースで削除可能

入力されるのは、Text(),String()などで、Textfield(title:”**”)の**などは入力されませんでした。

またButton(label:{Text(”**”)})などもローカライズされませんでしたが、

Buttonの中のTextなどはプロパティとして

let buttonText : Text = Text("hugahuga")

などとし

Button(label {buttonText}){}

というふうにするとうまいこと自動でローカライズされるようです。

アプリ名などInfoPlistをローカライズするときは、追加するstring catalogファイルのファイル名を”InfoPlist”に変更すると、上記と同様一回buildするとInfoPlist内のローカライズ可能なStringがキーとして登録されます。ファイル名が間違っているとうまくいきませんのでご注意を。

以前のstring Fileもまだ使えますが、新規でSwiftUIを用いてアプリを作成するときはstring catalogを使ったほうが手間がかからずに良いと思います。

以上

SwiftUI初心者にわかりやすいオススメ参考書

コメント