Tag: iPhoneSDK/ローカライゼーション
参考情報†
- NSLocalizedStringを使ってソースを修正する。
NSLocalizedStringで文字列指定部分を書き直す†
genstringsを実行する。†
- ターミナルでXcodeプロジェクトのルートディレクトリに移動し、genstringsコマンドを実行する。
genstrings ./Classes/*.m
- Localizable.stringsというファイルが作られる
Localizable.stringsを取り込みローカライズする†
- XcodeでResourcesフォルダを右クリック→既存の項目を追加→Localizable.stringsを選択し取り込む。
- Localizable.stringsを右クリックし、情報を見る→一般タブ→ファイルをローカライズ可能にする、をクリックする。
- 一般タブに戻る→ローカリゼーションを追加でローカリゼーションの名前を入力し追加をクリックする。名前は日本の場合は"ja"。
- Localization.stringsに右三角が表示され開けるようになる。Englishが英語リソース、jaが日本語リソースになる。中身は次のように記述する。
- 文字列リソースファイルのエンコーディングはUTF-16。文字化けして表示される場合は、情報→一般タブ→エンコーディングでUTF-16を指定し、「再解釈」してみる
ローカリゼーションの名前†
- 追加するローカリゼーションの名前は、ISO 639の言語コードで指定されている2文字または3文字の名前。
- Wikipediaを参照すると次のようになっている(http://ja.wikipedia.org/wiki/ISO_639)。
Japanese | 日本語 | ja |
English | 英語 | en |
French | フランス語 | fr |
German | ドイツ語 | de |
Italian | イタリア語 | it |
Spanish | スペイン語 | es |
- ローカリゼーションの名前を入力するダイアログで"English", "Japanese"などの名前を選択できるばISO 639形式を選んだ方がいいらしい(?)
トラブルシューティング†
コンパイルエラーが発生する†
文字列リソースのセミコロンを忘れてないかどうか確認する。
"Close" = "閉じる"; ←必要
"Edit" "Cancel" "Done"などのボタンが日本語にならない。†
- initWithBarButtonSystemItemで生成したボタン(UIBarButtonSystemItemCancelやUIBarButtonSystemItemDone)が日本語表示にならないのは、Localizable.stringsがないせいかも。
- info.plistの"Localization native development region"を"Japan"にすれば表示されるという情報があちこちになるがこれだけだと表示されず、Localizable.stringsを作ったら表示された。