ninjinkun's diary

ninjinkunの日記

国際化したStoryboardを一つにまとめる

これまでiOSプロジェクトを国際化する際にはStoryboardファイルは対応言語分複数作る必要がありましたが、iOS6からは一つにまとめて、他の言語は.stringファイルで管理することが可能になります。これにより、Storyboardを変更した際もGUIによるレイアウトの変更は一回で良くなります。
ただしこれをやるとiOS5で動かなくなるので注意が必要です。

やり方

Use Base Internationalizationにチェックを入れる

f:id:ninjinkun:20130114190316p:plain

BaseにするStoryboardを選ぶ

f:id:ninjinkun:20130114190415p:plain
僕のアプリは日本語主体で設計していたので、日本語を選択しています。英語の方が主体なら英語を選択した方が良いと思われます。

Localizeされたファイルができる

f:id:ninjinkun:20130114190758p:plain:w200
この状態だとstoryboardが2つある従来の状態と一緒です。

.stringファイルを生成する

f:id:ninjinkun:20130114190943p:plain:w200
Localizable Stringを選択すると
f:id:ninjinkun:20130114191044p:plain:w400
変換が行われます。

.stringファイルをローカライズする

f:id:ninjinkun:20130114191227p:plain
既にローカライズされた文言が入っていた場合は変換されて.stringファイルが作られます。足りない場合は自分でローカライズします。keyは謎のオブジェクトIDですが、コメントにBaseファイルの情報が入るので、なんとなくどこに対応するかはわかるようになっています。

最高!というかなんで今まで複数必要やったんやろう…。