2009-08-01 6 views

答えて

6

私はリソースファイル(.resx)でUIプロパティを格納し、要求ごとに特定の言語にCurrentUICultureを持ってお勧め:あなたのWebサイトは、主に指向コンテンツではなく、ビジネス指向のアプリケーションものである場合

<globalization culture="auto" uiCulture="auto" /> 

言語によって大きく異なるため、各言語ごとに個別のページセットを作成し、CookieまたはプロファイルプロパティまたはRequest.UserLanguagesに基づいてユーザーをリダイレクトすることを検討することをお勧めします。グローバリゼーション問題の一般的な処方箋を与えることは不可能です。最高のアーキテクチャは、個々のプロジェクトの性質によって大きく異なります。

+0

ウェブサイトはコンテンツ指向です – Ahmed

+0

これを開発するための最善のアーキテクチャとは何ですか? – Ahmed

+0

コンテンツとページの向きが言語ごとに大きく異なる場合(各UI要素間に1対1の関係がない場合)、言語ごとに「aspx」ページを用意してビジネスを共有することをお勧めしますクラスライブラリを使用するロジック。 –

1

NLSは定期的な要件であり、多くの場合、NLSの機能に関する質問が尋ねられたとき、質問する人は複雑さを認識していません。あなたは、データ内のUI

  • NLSあなたの場合

  • 、コンテンツベースのウェブサイトで

    • NLSあり:NLSは、一般的に(少なくとも)2つの領域に分割します第2のポイントを分割して、ウェブサイトプロバイダによって生成されたデータと、ユーザが生成したデータとに分割する。

      UI NLSの場合、Mehrdadの説明に従って.resxメカニズムを使用できますが、ローカライゼーションの作業は常にソースコード(resxファイル)を編集する必要があります。

      私はマルチランゲージWebアプリケーションを開発しなければならなかったので、私は自分のコードでNLS要件を処理することを選択し、UIを反映したNLS特有のテーブルを作成しました(これはgraspx :Label.Textなどのaspxソースからすべての表示テキストを抽出します。 UI定義をアップロードして翻訳者に作業をさせるための別個のアプリケーションがあります。主なアプリケーションには、翻訳されたテキストのインポート機能があります。

      データモデルは次のようになります。Pag​​e - PageItems - PageItemTexts(Languageを基準にして)、とても単純です。

      同じモデルをコンテンツに適用することができます。Pag​​eやPageItemsの代わりに、単にPKと識別子だけを保持するContentItemsと、言語に関連付けられたContentItemのテキストを保持するテーブルがあります。

      また、ある種の言語フォールバックチェーンを定義して、まだ翻訳されていないテキストが元の言語または他の(密接に関連した)言語で表示されるようにすることができます。

      表示される言語は、ブラウザが提供する言語(HTTP_ACCEPT_LANGUAGE)で選択できますが、ユーザーが(たとえばコンボボックスを使用して)上書きできるようにする必要があります。選択した言語は、セッション変数、Cookie、またはデータベース(登録ユーザー用)に格納する必要があります。

    関連する問題