iOSアプリの多言語化対応のやり方(Localization)

英語をベースに作っているiOSアプリがあって、せっかくなら日本語化対応もしたいなと思い、対応してみました。

ということで、その手順をメモとして残しておきます。

多言語語化の方法は大きく分けて「アプリ内で言語の変更機能を作り、選択した言語に応じて変更する方法」と、「端末の言語設定によって自動で切り替える方法」の2種類あると思いますが、今回は後者です。

端末の言語設定を日本語にしていれば「日本語」が、そうでなければ英語(ベースとなる言語)が表示されるようになります。

多言語化対応の流れ

アプリを多言語化するには、Localizationの設定が必要になります。

Localizationとは言語を各国の物に合わせることを指しますが、世界中の言語を用意するのは、ほぼ不可能なので、今回は英語ベースで作ったものを、日本語に翻訳する設定を行います。

全体の流れは次の通りです。

  1. Localizationを追加する
  2. 翻訳ファイルを用意する
  3. 翻訳ファイルを使用する
  4. storyboard上の文言を翻訳する

では、順に解説していきますね。



STEP1. Localizationを追加する

まず、プロジェクトファイルを開き、次のように進めます。

  • PROJECT欄にあるプロジェクト名をクリック(画像①)
  • infoをクリック(画像②)
  • Localizationの項目の下の方にある「+」ボタンをクリック(画像③)

MEMO

「Localization」の下の「Use Base Internationalization」がデフォルトでチェックされているはずですので、チェックが外れている場合はチェックをつけておいてください。

言語の一覧が表示されるので、「Japanese(ja)」を選択します。

「Finish」をクリックします。

すると、下の画像のように「Localizations」に「Japanese」が追加されます。

STEP2. 翻訳ファイルを用意する

英語を日本語に訳すための翻訳ファイルを用意していきます。

メニューから「File」-「New」-「File…」でファイル作成画面を開き、「String File」を選んで「Next」をクリックします。

ファイル名を「Localizable.strings」にし「create」をクリックします。

注意

ファイル名は必ず、Localizable.stringsにしましょう。

別の名前にしてしまった場合、あとで紹介するNSLocalizedString(_:tableName:bundle:value:comment:)で毎回、名前を指定しなければならず、面倒です。

Localizable.stringsが作成できたら、開きましょう。

インスペクターに、「Localization」という項目があるのでこの中の「Localize…」をクリックします。

「Do you want to localize this file?」と聞かれるので、「Japanese」を選んで「Localize」をクリックします。

あとは、Localizable.stringsに翻訳したい言葉を書いてきます。

書き方は下のように「“キーとなる文字” = “表示したい文字”;」となります。今回は英語を日本語に変換して表示したいので、「“英単語” = “日本語訳”;」のように書きます。

注意

セミコロンを忘れないように!

STEP3. 翻訳ファイルを使用する

用意した翻訳ファイルを使うには、NSLocalizedStringを使います。

NSLocalizedStringのドキュメント

基本の書き方は、次の通りです。

NSLocalizedString(key, comment: "")

例えば、先ほど設定したファイルの「yes」の日本語訳「はい」が欲しい場合は次のように書きます。

NSLocalizedString("yes", comment: "") 

stringで値が得られるので、あとは必要な箇所に代入してあげればOKです。

言語設定を日本語にしている場合は「はい」が、そうで無い場合は「Yes」が表示されます。

STEP4. storyboard上の文言を翻訳する

ナビゲーションのタイトルや、ボタンの名前など、storyboard上で固定で設定している項目もありますよね。

それらの翻訳方法を紹介します。

ファイル一覧に「Main.string (Japanese)」ができているはずなので、こちらを開きましょう。

中身を確認すると、下の写真のようにstoryboard上で設定している、ラベル名やボタン名の一覧が表示されるので、これらを日本語に変えてあげればOKです。

試しに、トップページのタイトルを「Shop List」から「お買い物リスト」に変更すると、次のようになります

言語設定が日本語以外の場合

言語設定が日本語の場合

以上、多言語化対応の基本的なやり方でした。

アプリ名をローカライズするには?

アプリ名の多言語化対応は少しやり方が異なります。

以下の記事で詳しく解説していますので、気になる方は合わせてお読みください。

【多言語化対応】iOSアプリ名のローカライズ方法

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA