現在のロケールとは異なる特定のロケール/ローカライゼーションをどのように使用することができますか?Cocoaアプリケーションで特定のローカライゼーションを使用する
私のアプリにはいくつかのローカリゼーションがあり、アプリが設定ファイルで使用するローカライゼーションを選択したいと考えています。どのようにしてCocoaに使用するローカリゼーションを教えることができますか?
現在のロケールとは異なる特定のロケール/ローカライゼーションをどのように使用することができますか?Cocoaアプリケーションで特定のローカライゼーションを使用する
私のアプリにはいくつかのローカリゼーションがあり、アプリが設定ファイルで使用するローカライゼーションを選択したいと考えています。どのようにしてCocoaに使用するローカリゼーションを教えることができますか?
アプリケーションのユーザーデフォルトのAppleLanguages
アレイに、使用したいアレイが含まれるように設定し、デフォルトで適切なAppleLocale
文字列を設定します。それを言って、なぜは、ユーザーが好むものではないローカリゼーションを使用していますか?
「利用者」の概念は、このアプリのために誤解を招くされますユーザーはマシンを所有しています。これは私の会社のハードウェア上で実行されるキオスクスタイルのアプリです。常に同じロケールに設定されています。 GUI言語を含むすべての設定を指示する中央設定があります。 –
ローカライザーから受信した文字列がUIに表示されているコントロールに収まるかどうか、または複数の文字列以外の文字列を繰り返して繰り返していないことを確認するなど、ペン先のローカライゼーション。 –
@Peter:はい、私はそれを自分で行います。しかし、それは私がその質問から推論したユースケースではありません。 –
私は次のようなもので、「AppleLocale」と「AppleLanguages」を設定してみました:
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"en"] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] setObject:@"en_US" forKey:@"AppleLocale"];
それは、しかし好みが使用されているシステムから、まだ言語とロケールを何もしませんでした。
プログラムを再起動した後でのみ動作するようです。 意味:プログラムが最初に変更された設定で始まり、上記のコードを使用してユーザーのデフォルトを設定します。 NSLocalizedStringへの後続の呼び出しは、プログラムを再起動するまで、新しく設定された言語/ロケールを使用しません。 –
によるMAADの答えです。 私は私のアプリでテストし、影響を与える唯一の鍵を見つけたので、
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"en"] forKey:@"AppleLanguages"];
が十分であるAppleLanguages
です。
アプリを再起動して、ユーザーのデフォルト設定が有効になるようにしてください。
「AppleLocaleは「en」ではなく「en_US」ではないことがありますか?
デフォルトはcom.mycompanyを書き、あなたのアプリでそれを設定するときに
は「en」と同様にあなたのためにここでは、同じ文字列をすべきではないなぜ...私は見ていないターミナルで私の作品.myproduct AppleLocale 'en'
設定ファイルのローカライズを1つだけ追加します。 –
[This] [1]あなたを助けることができます。それは私が思う最善の方法です!がんばろう。 [1]:それは前提としてhttp://stackoverflow.com/questions/26594222/detect-localization-xcode-6-mac-cocoa –