Xcode4でのアプリの多言語化

多言語化に関するメモ

多言語化の概要
iOSアプリのローカライズは、ファイル単位で行う。この項目をローカライズしたい時はこのファイル、あの項目をローカライズしたい時はあのファイル、というようにローカライズしたい項目に該当するファイルを多言語化させる。
ファイルをローカライズさせると、言語数の分だけ同じ内容のファイルが出来ます。後は各言語毎にファイルを編集します。
はじめにデフォルトを1つ作って(だいたいの場合は英語)それを複製し、それぞれの言語に対応させることがほとんどかと思います。
ローカライズされたファイルはそれぞれの言語フォルダの中に入れられます。

ソースが置いてあるところ/en.lproj/Localizable.strings
ソースが置いてあるところ/ja.lproj/Localizable.strings

注意点
ファイルのローカライズ状態には、どうも
1,ローカライズされてない
2,ローカライズされているが、en(英語)のみに対応している
3,ローカライズされていて、複数の言語に対応している
の3パターンあるようです。1と2の違いに気づきにくい。1から2への変更の場合、何か操作して何も反応がないように見える場合がよくあります。

具体的なやり方
ローカライズしたいファイルを選択し、ファイルインスペクタ(XCodeの右のほうにあるやつ)でLocalizationを行います。
ローカライズすることが多いであろうファイルは
  • storyboard
  • Icon.png
  • InfoPlist.strings
    アイコンの下に表示するアプリ名
  • Localizable.strings
    ソースコード内のNSStringインスタンス

など。
プロジェクトの設定のLocalizationsより言語を追加すると一気に複数のファイルを多言語化します。
すると、iPhone用、iPad用それぞれのstoryboard、それからInfoPlist.strings、Icon.pngなど多言語化されます。なにが多言語化されるかはそのときの構成によって違うようです。多言語化出来るものが見つかればそれを多言語化するような感じです。

Xcode4.2でプロジェクトの設定のLocalizationsで多言語化するものは
storyboard
icon
InfoPlist.strings(デフォルトで存在していてLocalizationsされているがenのみ存在する。)
Localizable.strings(デフォルトで存在しない)
などです。

参考
http://akisute.com/2008/12/iphone_21.html

コメント

このブログの人気の投稿

Swiftのコンパイルエラー寄せ集め

Swift2.2からSwift3.0への変換を行ってみて

AVAudioSession細かいことまとめ(late 2014)