NSLocalizedString実装のデバッグに問題があります。シンプルにする必要がありますが、何をしても、関数はKEY文字列のみを返します。
XCode 4.5 と iOS6 を使用しているので、次のようにします。
- という新しいファイルを追加しました
File.strings。 - 私のプロジェクト設定では、言語設定として英語とスペイン語を追加しました。
- ファイルインスペクターで「ローカライズする」をクリックし、英語とスペイン語の両方のオプションが選択されていること、およびターゲットへのターゲットメンバーシップが選択されていることを確認しました。
"KEY" = "TestEnglish";私の英語に追加されましたFile.strings"KEY" = "TestSpanish";スペイン語に追加File.stringsNSLog(@"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回削除/クリーニングしました。