Genta Hirauchi

公開日:2020/08/06
更新日:2020/09/03

【SwiftUI】Localizable.stringsで、多言語対応する方法を解説

  • SwiftUIで多言語対応する方法が知りたい
  • テキストをカスタマイズしたい

Swiftでは、Localizable.stringsを使用することで、多言語に対応することができます。

本記事では、SwiftUIで、Localizable.stringsによる多言語対応をする方法について解説致します。

目次

Localizable.stringsで多言語に対応する

※本記事は、ほぼプロジェクトを新規作成した状態から解説しておりますが、多言語対応を説明するにあたり、解説をわかりやすくするため、LaunchScreen.storyboardは削除しております。

Localizationsに言語を追加する

まず、ProjectのInfo画面にて、Localizationsにjapaneseを追加します。

画面左のProject Navigatorに表示されているProjectを選択し、表示された画面左上の、Project、Target切り替えから、Projectを選択します。

Projectの設定画面が表示されますので、Info画面を表示し、Localizationsの+ボタンをタップし、Japaneze(ja)を追加します。

Localizable.stringsの作成

続いて、Localizable.stringsを作成します。

新規ファイル作成画面にて、Strings Fileを選択し、ファイル名をLocalizable.stringsとします。

Localizable.stringsが作成できましたら、画面右にFile inspectorを表示し、Localize…をクリックします。

localizeする言語を選択する画面が表示されますので、Englishを選択します。すると、Localize…のボタンがなくなり、チェックボックスの選択型に表示変わると思いますので、Japaneseも選択します。

選択されると、Project Navigatorに、EnglishとJapanese用のLocalizable.stringsがそれぞれ作成されます。

テキストの定義

続いて、作成されたLocalizable.stringsに、英語用、日本語用のテキストを定義します。

Localizable.strings (English)

Localizable.strings (Japanese)

テキストは、“参照するためのキー” = “表示されるテキスト”;の形で定義します。

テキストの参照

では、UIから、定義したテキストを参照してみましょう。まず、プロジェクト作成時の実装の確認です。

プロジェクト作成時は、Hello, World!と表示されていると思います。一見、”Hello, World!”という指定したテキストをそのまま表示しているようですが、実際は、Localizable.stringsに”Hello, World!”というキーを探しにいき、キーが見つからなかったため、そのままキーを表示するという仕組みになっております。

では、先ほど定義した、”test”というキーに変更してみましょう。

キーが見つかり、キーに対応するテキストが表示されました。これで、多言語対応は完了です。スマホの言語に対応したLocalizable.stringsが選択され、言語が自動で切り替わります。

プレビュー画面の言語を切り替える

プレビュー画面に表示される言語は、デフォルト(English)の言語になっているかと思います。この表示を変更するには、environment()を実装します。

identifierで指定した言語を表示してくれるようになります。

テキストをそのまま表示する

さて、現在Localizable.stringsには、”test”というキーが定義されております。では、”test”というテキストを表示したい場合はどうしたらいいでしょうか?

“show_text” = “text”; というように、新たに定義するという方法もありますが、少し手間ですよね。

そんな時のために、verbatimを使用したテキストの表示方法があります。verbatimをラベルにすることで、指定したテキストがそのまま表示されるようになります。

ちなみにverbatimとは、「逐語的に、言葉どおりに」という意味だそうです。
以上、Localizable.stringsで多言語対応する方法についてでした。