1

アプリのローカライズ バージョンが複数の言語にあるが、ユーザーがいずれの言語も使用していない場合、アプリはローカライズされています。
デフォルト言語を設定するには?または、この場合、既定の言語を定義するためのベスト プラクティスは何でしょうか?

私が取り組もうとしていたシナリオは次のとおりです。

  • アプリケーションは en/fr/es でローカライズされていますが、言語ロケールが en/fr/es でない場合、デフォルトをどのように定義しますか?

  • 言語ロケールがこの en/fr/es のいずれかであり、ユーザーが NSUserDefaults で定義された別の言語を使用したい場合。NSUserDefaults として英語を使用しているが、アプリケーションの fr ローカライズ版を使用したいとしましょう。NSUserDefaults で言語を上書きする方法はありますか?

4

2 に答える 2

1

アプリが起動する前に NSUserDefaults を書き込みます

question1 : 以下のように優先順位を設定できます。

[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"de", @"en", @"fr", nil] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];

質問 2: fr の使用を強制する

[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"de", nil] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
于 2012-10-11T03:59:49.477 に答える
0

これは iOS 9 (およびおそらく 10) では機能しなくなっていることがわかりました。コードベースにはいくつかのターゲットがあります。それらのいくつかについては、ローカライズされた文字列がバンドルに含まれている場合でも、常に英語で表示されるようにしたいと考えています。

[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"en", nil] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];

上記のコードを main() に追加しました。アプリを初めて実行すると、ユーザーが選択した言語で表示されます。その後の実行では、必要に応じて英語で表示されます。

これが iOS 9 で機能しないことを確認し、代替案を提案できる人はいますか? 必要がなければ、他の lproj エントリを削除したくありません。

于 2016-11-01T19:10:08.733 に答える