ちなみに、iPhoneエミュレータも言語環境設定できます。
こんな感じ。
![Fig.1](https://stat.ameba.jp/user_images/c5/dd/10112921626.jpg?caw=800)
まあ、いったん英語のままで、いろいろ実験してみる。
Localizable.stringが無い場合
ということで、ボタン右クリック(1ボタンマウスならコントロール+クリック)でLocalizable.stringを押して出てくるメニューから削除を選ぶ。
![Fig.2](https://stat.ameba.jp/user_images/7c/6a/10112922212.jpg?caw=800)
Localizable.stringファイルは後で利用するから、出てきたアラートでは「参照を削除」を選択。
![Fig.3](https://stat.ameba.jp/user_images/e6/01/10112923474.jpg?caw=800)
あとは、ビルド>クリーニングメニューでターゲットをクリーニング。
![Fig.4](https://stat.ameba.jp/user_images/32/69/10112924253.jpg?caw=800)
これをしないと、アプリケーション側にLocalizable.stringが残ったままの状態になってるから注意。これで実行すると
![Fig.5](https://stat.ameba.jp/user_images/50/b3/10112925028.jpg?caw=800)
て、かんじで"chimpanzee!"が表示されます。
つまり、別にLocalizable.stringが用意されてなきゃ、ソースに書いた文字列がそのまま表示されるって仕組みみたい。
これは、結構ありがたいです。プログラミングする時はNSLocalizedString使っときゃ、そのままでも動くし、その気になったときにいつでも多国対応もできる。文字列の抽出はgenstringsコマンドを使えば、探す手間も無い。いい感じ。
英語の文字列を追加してみる
んじゃ、今度はちゃんと英語環境なら英語出すように英語用Localizable.stringを追加してみる。英語は「ISO 639-1言語コードと.lprojという接尾辞で構成」ということ(iPhone OSプログラミングガイド読んでるけ?)からen.lprojとなるわけですな。
ま、せっかくなんで、二カ国語対応にしちゃいましょう。
さっき外したja.lproj/Localizable.stringをもう一度追加(やり方はiPhoneアプリ開発、その(41)参照)。
次にファインダー上でja.lprojを複製して名前をen.lprojとする。
このen.lproj/Localizable.stringを同じように追加(ドラッグ先の位置に注意)する。
![Fig.6](https://stat.ameba.jp/user_images/3e/07/10112926013.jpg?caw=800)
こうすると以下のように2つファイルが並ぶ事になる。ファンダー上の構造と逆な状態ですな。
![Fig.7](https://stat.ameba.jp/user_images/9e/a8/10112927130.jpg?caw=800)
でもって、en.lproj/Localizable.stringの"chimpanzee!"には"chimpanzeeeeeee!"を直接エディタから書き込み
"chimpanzee!" = "chimpanzeeeeeee!";
で、実行させると
![Fig.8](https://stat.ameba.jp/user_images/b5/3e/10112927834.jpg?caw=800)
ちゃんと英語用の文字が表示される。言語を日本語にしたら~
![Fig.9](https://stat.ameba.jp/user_images/d6/51/10112934335.jpg?caw=800)
ほら、チンパンジー。
![Fig.6](https://stat.ameba.jp/user_images/9b/d9/10112024441.png?caw=800)
いやいや、グレートですな。
次回はドラッグアンドドロップを使わない国別リソース追加方法。
あすとらびすた!あみーご。
こんな感じ。
![Fig.1](https://stat.ameba.jp/user_images/c5/dd/10112921626.jpg?caw=800)
まあ、いったん英語のままで、いろいろ実験してみる。
Localizable.stringが無い場合
ということで、ボタン右クリック(1ボタンマウスならコントロール+クリック)でLocalizable.stringを押して出てくるメニューから削除を選ぶ。
![Fig.2](https://stat.ameba.jp/user_images/7c/6a/10112922212.jpg?caw=800)
Localizable.stringファイルは後で利用するから、出てきたアラートでは「参照を削除」を選択。
![Fig.3](https://stat.ameba.jp/user_images/e6/01/10112923474.jpg?caw=800)
あとは、ビルド>クリーニングメニューでターゲットをクリーニング。
![Fig.4](https://stat.ameba.jp/user_images/32/69/10112924253.jpg?caw=800)
これをしないと、アプリケーション側にLocalizable.stringが残ったままの状態になってるから注意。これで実行すると
![Fig.5](https://stat.ameba.jp/user_images/50/b3/10112925028.jpg?caw=800)
て、かんじで"chimpanzee!"が表示されます。
つまり、別にLocalizable.stringが用意されてなきゃ、ソースに書いた文字列がそのまま表示されるって仕組みみたい。
これは、結構ありがたいです。プログラミングする時はNSLocalizedString使っときゃ、そのままでも動くし、その気になったときにいつでも多国対応もできる。文字列の抽出はgenstringsコマンドを使えば、探す手間も無い。いい感じ。
英語の文字列を追加してみる
んじゃ、今度はちゃんと英語環境なら英語出すように英語用Localizable.stringを追加してみる。英語は「ISO 639-1言語コードと.lprojという接尾辞で構成」ということ(iPhone OSプログラミングガイド読んでるけ?)からen.lprojとなるわけですな。
ま、せっかくなんで、二カ国語対応にしちゃいましょう。
さっき外したja.lproj/Localizable.stringをもう一度追加(やり方はiPhoneアプリ開発、その(41)参照)。
次にファインダー上でja.lprojを複製して名前をen.lprojとする。
このen.lproj/Localizable.stringを同じように追加(ドラッグ先の位置に注意)する。
![Fig.6](https://stat.ameba.jp/user_images/3e/07/10112926013.jpg?caw=800)
こうすると以下のように2つファイルが並ぶ事になる。ファンダー上の構造と逆な状態ですな。
![Fig.7](https://stat.ameba.jp/user_images/9e/a8/10112927130.jpg?caw=800)
でもって、en.lproj/Localizable.stringの"chimpanzee!"には"chimpanzeeeeeee!"を直接エディタから書き込み
"chimpanzee!" = "chimpanzeeeeeee!";
で、実行させると
![Fig.8](https://stat.ameba.jp/user_images/b5/3e/10112927834.jpg?caw=800)
ちゃんと英語用の文字が表示される。言語を日本語にしたら~
![Fig.9](https://stat.ameba.jp/user_images/d6/51/10112934335.jpg?caw=800)
ほら、チンパンジー。
![Fig.6](https://stat.ameba.jp/user_images/9b/d9/10112024441.png?caw=800)
いやいや、グレートですな。
次回はドラッグアンドドロップを使わない国別リソース追加方法。
あすとらびすた!あみーご。