- 締切済み
iPhoneのアプリケーションのローカライズについて
iPhoneのアプリケーションのローカライズについて iPhoneのアプリケーション開発の勉強をしています。 開発環境はXcode 3.2.4で、シュミレータ4.1で動作確認を行っています。 ローカライズに対応しようと以下のサイトを参考にしてみました。 http://akisute.com/2008/12/iphone_21.html Localizable.strings ファイルを追加し、NSLocalizedStringメソッドで値を取得するまではできました。 例) "hoge" = "hoge"; NSString* string = NSLocalizedString(@"hoge", nil); →string に "hoge" が格納される。 ところが、ファイルの設定で「ファイルをローカライズ可能にする」を選択して「English」が追加された後、 ローカライズの値を変更しても反映されません。 例) "hoge" = "hoge hoge"; NSString* string = NSLocalizedString(@"hoge", nil); →string に "hoge" が格納される。 ※"hoge hoge"にならない。 XCode で クリーニングを行ったり、build フォルダを削除しましたが状況は変わりません。 Finder でパッケージの中を確認しましたが、Localizable.stringsは English.lproj にのみ存在し、 内容も編集後の状態になっているようです。 ※そもそも"hoge" のリソースがない状態になっているのに、何故情報が残っているのか不明です。 原因がわからず途方に暮れている状態です。 皆様のお知恵を拝借できればと思いますので、何卒よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
お礼
回答&テストコードのご提供ありがとうございます。 試した結果ですが、コンソールに、実行日時とともに「Hoge Hoge」が表示されました。 ただ、ここまでは予想通りというか、最初の質問で記述した内容と再確認となります。 質問の状況説明が良くなく、伝わり辛かったようで恐縮です。 つきましては、説明の補足させていただきます。 (1)Localizable.stringsファイルを追加して、NSLocalizedString関数で文字列の取得ができた。 (2)Localizable.stringsファイルの情報を表示。一般タブの「ファイルをローカライズ可能にする」をクリックし、 English.lproj フォルダが作成され、且つ、Localizable.stringsファイルがXCode上で階層化され、 English が追加されていることが確認できた。 (3)1で設定した文字列のみ編集(hoge から hoge hoge)して実行。 結果は hoge のままであった。 (4)build フォルダの削除やクリーニングを行ったが結果は変わらなかった。 また、最初の質問で割愛してしまいましたが、 Nibファイル(.xib)のローカライズも同様の現象を確認しています。 以上のことにより、コーディングミスというより、設定不足やインストールの失敗を考えていました。 ただ、再インストールを行いましたが、残念ながら状況は変わらずとなっています。 ちなみに現在確認できている点を追記しますと、「プロジェクトの情報>一般」タブで すべての構成のベースSDKを「iOS デバイス 4.1」から「iOS デバイス 3.2」に変更して試したところ、 ローカライズされて表示される(hoge が hoge hogehoge になった)ことが確認できました。 ちなみに開発環境(コンパイラなど)の問題のみを疑うつもりはなく、 先に記述した通り、設定不足(おっしゃるところの人的ミス)もあると認識していますので、 その点についてはご安心(?)ください(^^;) ※仮に開発環境の問題であっても憤りは感じません。。 本業で某.Netフレームワークやら、Oraxxx Developer など 香ばしい環境で開発していますので、なれっこです(^^;) それでは引き続き情報のご提供をお待ちしておりますm(_ _)m
補足
>hoge が hoge hogehoge になった 「hoge が hoge hoge になった」の記述ミスです。