[iPhone]国際化

同じアプリケーションで日本語、英語を分ける方法です。

  1. 国際化するプロジェクトにて、新規ファイル追加
  2. stringsファイルをLocalizable.stringsというファイル名で作成
  3. 追加したファイルを右クリック→「情報を見る」→「ローカリゼーションを追加」から「Japanese」を追加
  4. English,Japaneseファイルにそれぞれ文字列を記述
  5. Japaneseファイルを右クリック→「情報を見る」→「エンコーディング」→「Unicode(UTF-16)」選択→「変換」
  6. 国際化する文字列に、NSLocalizedStrings関数を使う。引数はstringsファイルのキー名と対応させます。

手順4の例

Localizable.strings Japanese
"test"="テスト";
"pen"="ペン";
Localizable.strings English
"test"="Test";
"pen"="Pen";

手順6の例
NSLocalizedStrings("test",nil);


手順5をやらないとシミュレータでのみ日本語になり、実機では英語になるという現象が起きるのですが、下記サイトのやり方で解決しました。

シミュレーターでは日本語表示されるのに、なぜか実機では英語で表示されるという、何とも中途半端な問題が発生することがあります。この問題の解決方法がようやく見つかりました。
解決方法
1. Xcode左側のリストのリソース項目に追加した日本語用のローカライズファイルを選択します。
2.ウインドウ上のタイトルバー近くにある情報アイコンを押します。
3. ウインドウが開くので中央付近の「エンコーディング」から「Unicode (UTF-16)」を選択します。
4. さらにウインドウが開くので「変換」のボタンを押します。
5. Xcodeのメニューで「ビルド」>「すべてのターゲットをクリーニング」を選びます。
6. あとはいつも通り「ビルドして進行」させます。
http://kontonsoft.blog.shinobi.jp/Entry/30/