iOSアプリの日本語化(プロジェクトを日本語として開発する方法)
Table of Contents
多言語対応は、国内向けのアプリ開発をしているとあまり意識しません。 しかし、たとえ国内向けのアプリであっても、プロジェクトの設定はしっかり日本語化しておきたいところ。 今回は、iOSアプリのプロジェクトを「日本語のアプリ」として設定する方法をまとめます。
日本語アプリで、しばしば発生する問題 #
アプリをリリースすると、すべて日本語で表示されるかと思いきや、部分的に英語で表示される場合があります。 例えば、UISearchBarのキャンセルボタンが「Cancel」と表示されたり、UITextView等でテキストを選択したときに出るツールチップのボタンが英語で表示されたりします。
さらには、ストアで表示される「言語」の欄で「英語」として表示されてしまうこともあります。
せっかく作ったアプリなので、ちゃんと「日本語」で表示されるように設定していきます。
AppStoreの表示に対する設定 #
まずは、AppStoreでアプリが日本語であることを表示できるようにしておきます。
- Localizations
- 「Japanese」を選択
「Localizations」の設定は、AppStoreの「言語」の表記に反映されるようです。 対応する言語が増えたら、「Localizations」の部分を増やしていくと良さそうです。
アプリの表示に関わる設定 #
つぎに、アプリの表示を日本語化していきます。UISearchBarやツールチップの日本語化をします。 ここでは、2パターンの方法をお伝えします。
とりあえず日本語化する場合 #
Info.plist
で、「Localization native development region」の項目を「Japan」に設定します。
これだけで、アプリのUIは日本語で表示されるようになります。
確かに日本語になりました!日本国内のみを想定するなら、実用上これで問題ないと思われます。
ただし、不十分な部分もあります。この方法では、端末が英語設定のときに、UISearchBarなどが英語になる現象は発生します。 これは、プロジェクトのLocalizationの設定にEnglishがあることによるものです。 アプリがサポートを意図していない言語で表示されることを是としない場合は、次の方法で、EnglishのLocalizationを削除する必要があります。
プロジェクトの根本から日本語化する場合 #
プロジェクトの言語設定ごと変更します。project.pbxproj
をテキストエディタで開き、developmentRegion
の項目をen
ではなくja
に設定します。
この方法では、 Info.plist
は変更しません。「Localization native development region」の項目は$(DEVELOPMENT_LANGUAGE)
のままで大丈夫です。
(ここで設定するdevelopmentRegion
が、 $(DEVELOPMENT_LANGUAGE)
に割り当てられるようです = 挙動から推定)
この変更を行うと、Projectの設定にある「Localization」の項目が変わります。「Development Language」が「Japanese」に変わりました。
変更前
変更後
Englishの表示を実装しないのであれば、EnglishのLocalizationは削除してしまいましょう! むしろそれがあると、端末が英語設定のときにUIが英語表示になってしまします。意図しない言語で表示されることを防止するために、削除しましょう。
これで、プロジェクトの日本語化は完了です。
ところで、プロジェクトの設定の「Localization」には、Baseという項目があります。これは、なにか特定の言語でなく「Base」という言語のようです。 不要に感じてしまうかもしれませんが、Baseは多言語対応するときに便利なようです。
Storyboardやxibを多言語対応するときは、変換先の言語に対して、変換元となる言語(Reference Language)を選択する仕様になっているようです。 この変換元をどこか特定の言語に依存させるのではなく、抽象的な言語「Base」に依存させるという考え方を、「Base Internationalization」と呼んでいるようです。
アプリの日本語化の方法をまとめました。 アプリの新規開発のときには「プロジェクトの日本語化」を意識しておきたいですね。