Culture
.NET フレームワークとUICulture
.NET フレームワーク内の違いについて、もう少し詳しい情報を教えてください。彼らは何をし、いつ何を使うのですか?
4 に答える
Culture
カルチャに依存するデータ (日付、通貨、数値など) の表示方法に影響します。以下にいくつかの例を示します。
var date = new DateTime(2000, 1, 2);
var number = 12345.6789;
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
Console.WriteLine(date); // 02.01.2000 00:00:00
Console.WriteLine(number.ToString("C")); // 12.345,68 €
Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA");
Console.WriteLine(date); // 2000-01-02 00:00:00
Console.WriteLine(number.ToString("C")); // 12 345,68 $
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Console.WriteLine(date); // 1/2/2000 12:00:00 AM
Console.WriteLine(number.ToString("C")); // $12,345.68
カルチャは、ユーザー入力の解析にも同じように影響します。
const string numberString = "12.345,68";
decimal money;
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
money = decimal.Parse(numberString); // OK!
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
money = decimal.Parse(numberString); // FormatException is thrown, TryParse would return false
解析は成功したが、結果が期待したものではない場合に注意してください。
const string numberString = "12.345";
decimal money;
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
money = decimal.Parse(numberString); // 12345
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
money = decimal.Parse(numberString); // 12.345, where the . is a decimal point
UICulture
アプリケーションによってロードされるリソース ファイル (Resources. lang .resx) に影響します。
したがって、ドイツ語のリソース (おそらくローカライズされたテキスト) を読み込むUICulture
には、ドイツ語のカルチャに設定し、ドイツ語の書式を表示するには (読み込まれるリソースに影響を与えずに) を設定しCulture
ます。
@Vacheのすばらしい説明に加えて、考慮すべき小さな問題:UICultureとCultureの両方を(ページレベルとアプリケーションレベル)で設定できます。
それらをアプリケーション レベルで設定するには、単純に web.config にグローバリゼーション セッションを追加します。
例えば<globalization uiCulture="es" culture="es-MX" />
特定の (個々の) ページに追加するのに適したページ レベルで設定するには、@ page ディレクティブ内で Culture 属性と UICulture 属性を設定します。
例えば<%@ Page UICulture="es" Culture="es-MX" %>
UICulture プロパティは Web ブラウザーごとに変わる可能性がありますが、Culture は一定のままです。
Culture 値は、en-US や en-GB などの特定のカルチャのみに設定できます。これにより、en-US と en-GB が異なる通貨記号を持つ en に使用する正しい通貨記号を識別する必要がなくなります。ユーザーは、ブラウザーで UI カルチャとカルチャを設定できます。