2

バイリンガルのASP.NETアプリケーションを開発していますが、アプリケーション全体にUICultureとCultureの値を格納するための最良の方法を知りたいですか?

  • クッキー。
  • セッション。
  • クエリ文字列。
  • または、他の何か。

更新: 同じASPXフォームをバイリンガルページにしたいのですが、これまでの答えは、別のページを作成してサブドメインからアクセスできるようにすることです。現在実際に行っているのは、Sessionを使用することです。しかし、私は今、ページを別のコピーを作成せずにバイリンガルにするためにリソースファイルを使用するためのベストプラクティスを知りたいと思います。

4

3 に答える 3

3

多くの場合、それは特定のユースケースによって異なります。

ただし、ほとんどの場合、検索エンジンで適切にインデックスを作成するには、ページと言語ごとに異なるURLを使用する必要があります。たとえば、URLは次のようになります。

私は最初の2つのオプションを好みます。

オプションで、ユーザーが最初にサイトにアクセスしたときにブラウザの言語に基づいてユーザーをリダイレクトできます(ただし、ユーザーが他の言語を参照できることを確認してください)。


更新:これは、言語と同じ数のバージョンのサイトを作成する必要があるという意味ではありません。

各言語のサブドメインがある場合:

  • 各サブドメインをサイトにポイントする
  • ページの背後にあるコードで、メソッドをオーバーライドしますInitializeCulture(DRYを維持するために、すべてのページに基本クラスを使用できます)。
  • オーバーライドされたInitializeCultureメソッドで適切なカルチャを設定します
  • リソースファイルを作成する
  • ページ内のリソースを使用してください。文化に応じて正しい翻訳が表示されます。

サブドメインを使用せずにURLにカルチャ名を含める場合は、URL書き換えを使用して、各URLから同じページを指すことができます。

始めるためのいくつかのコード:

protected override void InitializeCulture() {
    // Identify the culture and replace the hardcoded values below
    // (Use Request.Url.xxx for example)
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("en", false);
    Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US", false);
    base.InitializeCulture();
}
于 2012-05-09T11:40:13.727 に答える
-1

いつでもURL書き換えを使用して、ユーザーが選択した文化的好みを保存できます。ASP.Netでこれがどのように実現されるかは特にわかりませんが、MVCのルーティングテーブルを使用すると簡単です。

解明するために、あなたのURLは次のようになります:http ://example.org/en-gb/Action 解決策として、これはセッションのオーバーヘッド、誰かがブラウザでクッキーをオフにした可能性、そして見苦しいことを取り除きます生成されるQueryString。

URLの書き換え方法の例を試してみます。

于 2012-05-09T11:39:34.703 に答える
-1

ベストプラクティスは、独自の個別のIIS Webサイトを使用して、言語ごとにサブドメイン\個別のサイトを作成することです。これは、2バイトが必要なアジア言語に特に当てはまります。

あなたはyahoo、googleなどでこの練習をいたるところに見るでしょう:

于 2012-05-09T11:47:57.403 に答える