131

Culture.NET フレームワークとUICulture.NET フレームワーク内の違いについて、もう少し詳しい情報を教えてください。彼らは何をし、いつ何を使うのですか?

4

4 に答える 4

156

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ます。

于 2012-02-29T22:27:38.387 に答える
0

@Vacheのすばらしい説明に加えて、考慮すべき小さな問題:UICultureとCultureの両方を(ページレベルとアプリケーションレベル)で設定できます。

それらをアプリケーション レベルで設定するには、単純に web.config にグローバリゼーション セッションを追加します。

例えば<globalization uiCulture="es" culture="es-MX" />

特定の (個々の) ページに追加するのに適したページ レベルで設定するには、@ page ディレクティブ内で Culture 属性と UICulture 属性を設定します。

例えば<%@ Page UICulture="es" Culture="es-MX" %>

于 2016-05-29T05:57:56.900 に答える
-5

UICulture プロパティは Web ブラウザーごとに変わる可能性がありますが、Culture は一定のままです。

Culture 値は、en-US や en-GB などの特定のカルチャのみに設定できます。これにより、en-US と en-GB が異なる通貨記号を持つ en に使用する正しい通貨記号を識別する必要がなくなります。ユーザーは、ブラウザーで UI カルチャとカルチャを設定できます。

于 2015-08-07T13:32:54.773 に答える