&tag(iPhoneSDK/ローカライゼーション); *目次 [#we572e89] #contents *参考情報 [#od195501] -[[livedoor Techブログ : iPhoneアプリを多言語対応にする:http://blog.livedoor.jp/techblog/archives/65158071.html]] *手順 [#j833d1a7] -NSLocalizedStringを使ってソースを修正する。 *NSLocalizedStringで文字列指定部分を書き直す [#rbac6edb] -@"日本語文字列"形式で文字列を指定している部分をNSLocalizedStringで全て置き換える。 self.title = @"テスト"; -これを次のように修正する。 self.title = NSLocalizedString(@"test", @"test message"); -NSLocalizedStringの引数は「文字列リソースのキー」、「コメント」の順。 *genstringsを実行する。 [#sb56ba1d] -ターミナルでXcodeプロジェクトのルートディレクトリに移動し、genstringsコマンドを実行する。 genstrings ./Classes/*.m -Localizable.stringsというファイルが作られる *Localizable.stringsを取り込みローカライズする [#dc423cfb] -XcodeでResourcesフォルダを右クリック→既存の項目を追加→Localizable.stringsを選択し取り込む。 -Localizable.stringsを右クリックし、情報を見る→一般タブ→ファイルをローカライズ可能にする、をクリックする。 -一般タブに戻る→ローカリゼーションを追加でローカリゼーションの名前を入力し追加をクリックする。名前は日本の場合は"ja"。 -Localization.stringsに右三角が表示され開けるようになる。Englishが英語リソース、jaが日本語リソースになる。中身は次のように記述する。 --Localizable.strings(English) #pre{{ /* 閉じる */ "Close" = "Close"; }} --Localizable.strings(ja) #pre{{ /* 閉じる */ "Close" = "閉じる"; }} -文字列リソースファイルのエンコーディングはUTF-16。文字化けして表示される場合は、情報→一般タブ→エンコーディングでUTF-16を指定し、「再解釈」してみる **ローカリゼーションの名前 [#y8a7fad0] -追加するローカリゼーションの名前は、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形式を選んだ方がいいらしい(?) *トラブルシューティング [#secb3e33] **コンパイルエラーが発生する [#caea26bd] 文字列リソースのセミコロンを忘れてないかどうか確認する。 "Close" = "閉じる"; ←必要