2012-03-22 21 views
4

特定のファイルに対して "en"と "en-AU"(オーストラリア英語)の両方のローカリゼーションがあります。NSBundle preferredLocalizationsは、最も具体的なローカリゼーションを返しません。

("en-AU", "en") 

しかし、[[NSBundle mainBundle] preferredLocalizations](実際には重要なもの)のみ生成します:

("en") 

なぜ

現在のロケールが "en_AUは" ですが、[[NSBundle mainBundle] localizations]は、私が期待してローカライズのセットを生成します優先リストから完全に除外された、サポートされている最もローカライズされたローカライゼーションです。

NSBundleは、あまり具体的でないオプションの中で最も正確に使用できるローカライゼーションに優先順位を付ける方法はありますか?

答えて

0

あなたの携帯電話はオーストラリア英語ではなく英語を使用するように設定されているからです。私は電話でサポートされている言語のリストを見て、私はオーストラリアの英語を見つけることができませんでした。ちょうど英語と英国の英語、それはおそらく理由です。

EDIT:https://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPInternational/Articles/LanguageDesignations.html#//apple_ref/doc/uid/20002144-BBCEGGFF

私はあなたを理解したよう 、この:

NSLog(@"%@", [[NSLocale currentLocale] localeIdentifier]); 

プリントen_AUをし、それがen-AUと同じものではありません

私はあなたがこれを読むべきだと思います。リンクされたドキュメントを読んだら、既にその違いを知っています。たとえばen-GB_AUは、オーストラリアで話されている英国の英語を意味し、オーストラリアのイギリス人には適しています。

とにかく、バンドルにen-AUen_AUに変更してみましたか?

+0

英語は言語で、オーストラリアは地域です。言語を英語に、リージョンフォーマットをオーストラリアに設定すると、ロケール "en_AU"(NSLocaleにcurrentLocaleを照会することで確認できます)が取得されます。 – BWW

+0

確かに、ロケールとローカライゼーションには区別があります。この回答を見てください:http://stackoverflow.com/a/7204733/310121 私は専門家ではないと主張していますが、私はロケールが通貨、時計の形式などを決定すると考えていますが、使用されている。少なくとも私はen_USをロケール、 'sv'をローカライゼーションとしたのは、すべてスウェーデン語だったからです。 –

+0

私が理解しているように、ローカライゼーションは本質的には特定のロケールのコンテンツセットです。特定のロケールのローカリゼーションがない場合は、一致しないことになります。しかし、この場合、現在のロケールとまったく同じローカライゼーションがありますが、何らかの理由でそれが/好ましいローカリゼーションとはみなされません。 – BWW

関連する問題