は、今私がやっている:C#で質問せずにユーザーがメトリックや帝国を好むかどうかを判断する方法はありますか?
bool UseMetricByDefault() {
return TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).TotalHours >= 0;
}
をこれは、ヨーロッパやアジアから米国を区別するために動作しますが、それは南米を無視します。
良い方法がありますか?
は、今私がやっている:C#で質問せずにユーザーがメトリックや帝国を好むかどうかを判断する方法はありますか?
bool UseMetricByDefault() {
return TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).TotalHours >= 0;
}
をこれは、ヨーロッパやアジアから米国を区別するために動作しますが、それは南米を無視します。
良い方法がありますか?
はSystem.Globalization
名前空間にRegionInfo
クラスを使用します。
bool isMetric = RegionInfo.CurrentRegion.IsMetric;
あなたが特定の領域をしたい場合は、以下のいずれかを使用できます。問題の
// from a CultureInfo
CultureInfo culture = ...;
RegionInfo r = new RegionInfo(culture.Name);
// from a string
RegionInfo r = new RegionInfo("us");
恐ろしいです。ありがとう。 –
System.Globalization.RegionInfo
(regionInfo.IsMetric
)に既に実装されているようです。
あなたははあなたが上で実行しているオペレーティングシステムのCulture
を返すことができたCultureInfo
classを使用することができます - 通常の形式でen-US
en-GB
de-DE
など 文化をより頻繁に別応じて、1つの言語からアプリケーションを変換するために使用されていますオペレーティングシステムの文化に基づいています。
これはすべて指定されたローカリゼーションのためのものです。チュートリアルとその記事に関する記事(here)をお読みになることをおすすめします。
RegionInfoクラスを意味していませんか? CultureInfoはこれを言語に関連づけます - RegionInfoには言語、測定値、通貨があります。 –
はい、そうです。とにかく 'CultureInfo'についての情報を残しました.30分ほど休憩を取ることができるようです。 –
パートがあってもということですRegionInfoを使用すると、リージョン内の全員が同じシステムを使用するわけではありません。米国では、科学者はしばしばその研究で測定基準を使用します。カナダでは、米国から多くの食品包装を取得しているので、ここではちょっとしたミックスですが、私たちは子供たちにメートル法を教えています(しかし、まだ皇室で考える)。
言われているように、あなたはRegionInfoクラスを使用して公正な推測を行うことができます。
私にとっては公正な推測で十分ですが、チップに感謝します。 –
それはRegionInfo
クラスのプロパティがあります:「暗闇の中で刺す」については
// en-US, en-GB, de-DE etc.
string cultureName = CultureInfo.CurrentCulture.Name;
RegionInfo regionInfo = new RegionInfo(cultureName);
Console.WriteLine("You prefer to see {0}", regionInfo.IsMetric ? "metric" : "imperial");
RegionInfo情報は十分です。
しかし、実際には英国のような場所には例外があります。たとえば:関連
は多くに依存しますあなたがいるジェネレーションと変化するあなたの態度。
実際には両方を提供しても賢明なデフォルトを推測しますが、重要な場合は常にユーザーが設定を上書きできるようにして、これらの変更が記憶されていることを確認してください。
私はロンドンのインターネットカフェにいた場合、私も私を無視します。私は、推測を無効にするオプションを高く評価しています。 –
もちろん、オーバーライドされます。したがって、関数名の "ByDefault"。 –
ええ、[コントロールパネル]の[地域と言語のオプション]には、[カスタマイズ]ボタンの後ろに[測定システム]設定があります。私はそれが.NETにマップされているのだろうか。 –