2011-02-08 22 views
2

私はSettings.bundleを持つiPhoneアプリケーションを持っています。このバンドルには、ロケールに依存するデフォルトのアイテムがあります(例:米国では「メートル法単位」は「オフ」、ブラジルなどでは「オン」でなければなりません)。Xcode/iOSのロケール固有のデフォルト設定

設定のデフォルトはロケールに依存しますか?

答えて

3

私は数日前に同様の問題がありました。私が知っていることから、地域ごとに異なるデフォルト値を持つことは不可能なので、私はそれを別の方法で解決しました。

DefaultFahrenheitCelsiusの多値設定があります。 stringsTableを使用して「メートル単位」の翻訳は簡単だったが、変更

- (MBUnit)temperatureUnit { 
    MBUnit tmp = [ud integerForKey:MBUDKeyTemperatureUnit]; 
    if (tmp == MBTemperatureDefaultUnit) { 
     MBUnit defaultTemperatureUnit; 
     BOOL isMetric = [[[NSLocale currentLocale] objectForKey:NSLocaleUsesMetricSystem] boolValue]; 
     if (isMetric) { 
      defaultTemperatureUnit = MBTemperatureCelsiusUnit; 
     } 
     else { 
      defaultTemperatureUnit = MBTemperatureFahrenheitUnit; 
     } 
     return defaultTemperatureUnit; 
    } 
    return [ud integerForKey:MBUDKeyTemperatureUnit]; 
} 
+0

あまりにも私はそれを行うことはできませんが、私は本当に "デフォルト"のアイデアが大好き!どうもありがとう! –

0

stringsTableを見ましたか?あなたはあなたの目的のためにそれを使用することができるかもしれません。またチェックアウトするthis documentation

確かにできることは、アプリが最初に起動されたとき(またはロケールが変更されたとき)のデフォルトに設定されていることです。

+0

:デフォルトでは、私はこのような

何かを設定NSLocaleに基づいてコードでユニットを把握することを意味し、デフォルトに設定されていますロケールに基づくデフォルト値はありません。手で設定することはできますが、初めてアプリケーションを開くときに、ユーザーが設定を開いたときに小さなバグが発生します(iPodを持ってきたときにNike + iPodでこれを行っています)。 –

+0

あなたの問題はどこですか?文字列がロケール依存で、他の文字列以外の設定を制御するという事実を使用できませんか? –

+0

私は「メトリックユニット」という名前の設定を持っています。これはON/OFFスイッチです。 "ON"にすると、アプリケーションはkm、kgなどを使用します。 "OFF"、feets、lblなどの場合は、メトリックシステムを使用する国ではデフォルトで "ON"にします。 –

関連する問題