NSLocalizedString
実装のデバッグに問題があります。シンプルにする必要がありますが、何をしても、関数はKEY
文字列のみを返します。
XCode 4.5 と iOS6 を使用しているので、次のようにします。
- という新しいファイルを追加しました
File.strings
。 - 私のプロジェクト設定では、言語設定として英語とスペイン語を追加しました。
- ファイルインスペクターで「ローカライズする」をクリックし、英語とスペイン語の両方のオプションが選択されていること、およびターゲットへのターゲットメンバーシップが選択されていることを確認しました。
"KEY" = "TestEnglish";
私の英語に追加されましたFile.strings
"KEY" = "TestSpanish";
スペイン語に追加File.strings
NSLog(@"Localization: %@\n", NSLocalizedString(@"KEY", nil));
私の.m
ファイルに追加されました。
アプリを実行すると、値"KEY"
は常に に出力されて表示されますNSLog
。
これにもう少し飛び込むために、私もこれを試しました:
NSString *path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
NSString *str = [[NSBundle bundleWithPath:path] localizedStringForKey:@"KEY" value:@"" table:nil];
NSLog(@"Localization: %@\n", str);
それでも値"KEY
" が出力されpath
ますが、有効なパスです。
これをデバッグする方法を知っている人はいますか? そこにあるすべてのSOの質問/回答を読んだような気がしますが、提案はどれも役に立ちません。
キーと一致しない場合に文字列をNSLocalizedString
返すことはわかっKEY
ていますが、アプリがキーと一致しない理由をデバッグする方法がわかりません。
また、アプリを約12回削除/クリーニングしました。