NSLocalizedString
の実装をデバッグするときに問題があります。単純なはずですが、私が何をしても、関数はKEY
文字列を返します。iOS - NSLocalizedStringはキー文字列を返すだけです
私はXCodeの4.5とiOS6を使用しているので、私だ:
- は、新しいファイルが
File.strings
と呼ばれる追加しました。 - 私のプロジェクト設定では、言語設定として英語とスペイン語を追加しました。
- ファイルインスペクタで「ローカライズ」をクリックし、英語とスペイン語の両方のオプションが選択されていることを確認し、ターゲットへのターゲットメンバーシップが選択されていることを確認しました。私のスペイン語
File.strings
- に私の英語
File.strings
- 追加
"KEY" = "TestSpanish";
から - 追加
"KEY" = "TestEnglish";
は私の.m
ファイルにNSLog(@"Localization: %@\n", NSLocalizedString(@"KEY", nil));
を追加しました。
私がこのアプリケーションを実行すると、値"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
が有効なパスです
誰もがいずれかを持っています:
もう少しこのにジャンプするには、私もこれを試してみました。どのようにこれをデバッグするのですか?私はそこのすべての質問/回答を読んだようですが、提案の助けはありません。
私はNSLocalizedString
がKEY
の文字列を返すことを認識しています。私のアプリがKEYに一致しない理由をデバッグする方法がわかりません。
私は約12回もアプリを削除/クリーニングしました。
代わりに 'table:nil'を' table:@ "File" 'にしてはいけませんか? –
@ H2CO3:うわー、はい、ありがとう。それは英語のバージョンをつかむ、と私は非常にうまく動作してうれしいです。しかし、最終的には、NSLocalizedStringが必要なので、そのメソッドの便利さを利用できます。私はNSLocalizedStringを多分に働かせるために何かに "File.strings"の名前を変更する必要がありますか? – Brett
あなたはアクセス権があると予想されるすべてのローカリゼーションを "XXX.lproj/Localized.strings"に入れなければなりません。また、なぜ** NSLocalizedString()を使用する必要がありますか? –