1

おはようございます、

初心者の質問で申し訳ありません。ASP.NET の国際化設定を始めたばかりです。

背景情報:

<table>HTML オブジェクトを表示する Web サイトがあります。その<table>HTML オブジェクトには、日付を表示する列があります。私のサーバーは米国にあり、これらの日付は として表示されMM/DD/YYYYます。私のユーザーの多くは、データ --> 外部データのインポート --> Web クエリのインポート インターフェイスを介して、Excel からこの Web ページにプラグインします。私のユーザーの大部分は米国にいるため、これらの日付は Excel 画面に正しく表示されます。

次に、英国のユーザー向けに Web ページを機能させる必要があります。そのまま、日付を としてダウンロードしているMM/DD/YYYYため、地域設定が に設定されているため、スプレッドシートが使用できなくなりますDD/MM/YYYY

私の質問は:

en-GB着信要求にカルチャ設定があることを Web サーバーが認識できるようにするにはどうすればよいですか? 独自の小さなカスタム回避策を設計することはできますが、これに遭遇した最初のプログラマーではないと確信しています。プロはこれをどのように処理しますか?比較的シンプルですぐに実装できるソリューションを探していますが、自分のロジックのくだらないバグのある部分をまとめて、今から6か月後を恐れるつもりはありません.

よろしくお願いします、-アラン。

4

3 に答える 3

2

必要に応じて、次のように web.config を開くことで、ブラウザーが UI カルチャを自動的に設定できるようにすることができます。

<configuration>
   <system.web>    
       <globalization uiCulture="auto" />
       ...

そして、ブラウザーによって設定されたカルチャがアプリに自動的に設定されます。これは、フレームワークに日付/時刻の値を表示させると、現在のスレッドの UI カルチャに従ってフォーマットされることを意味します。

これは、通貨やローカライズされたテキストを使用している場合にも役立ちます (ただし、サポートするカルチャごとにローカライズされたリソースを提供する必要があります)。

于 2008-11-19T15:11:34.210 に答える
2

いくつかのポイント:

  • <globalization> 要素には、属性 culture="auto" も必要です。uiCulture 属性は、リソースの取得に使用される言語に影響します。culture 属性は、数値や日付の書式設定に使用されるカルチャに影響します。

  • この MSDN の記事で説明されているように、ページの UI カルチャを決定するためにブラウザーの設定のみに依存することはベスト プラクティスではありません。ユーザーは、好みに合わせて設定されていないブラウザーを頻繁に使用します (インターネット カフェなど)。ユーザーがページの言語または言語とカルチャ (CultureInfo 名) を明示的に選択する方法を提供する必要があります。

于 2008-11-19T16:38:37.153 に答える
1

カルチャ設定をオーバーライドするためのクエリ文字列パラメーターを受け入れることもできます。

カルチャの初期化は、Page.InitializeCulture メソッドで行う必要があります。

protected override void InitializeCulture ( )
{
  Thread.CurrentThread.CurrentCulture
    = Thread.CurrentThread.CurrentUICulture
    = Request.QueryString [ "culture" ] != null ? new CultureInfo ( Request.QueryString [ "culture" ] ) : CultureInfo.InvariantCulture;
  //base.InitializeCulture ( );
}

使用法: http://tempuri.org/page.aspx?culture=en-GB

于 2008-11-19T16:54:12.583 に答える