[iPhone]国際化
同じアプリケーションで日本語、英語を分ける方法です。
- 国際化するプロジェクトにて、新規ファイル追加
- stringsファイルをLocalizable.stringsというファイル名で作成
- 追加したファイルを右クリック→「情報を見る」→「ローカリゼーションを追加」から「Japanese」を追加
- English,Japaneseファイルにそれぞれ文字列を記述
- Japaneseファイルを右クリック→「情報を見る」→「エンコーディング」→「Unicode(UTF-16)」選択→「変換」
- 国際化する文字列に、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/