1

最終的に4つの言語と2つの国(米国とカナダ、英語とスペイン語)をサポートするサイトがあります

ディレクトリ構造を設定するための最良の方法は何ですか?

現在、site.comというルートサイトがあります。

これにより、国と言語を選択するページに移動します。

理想的には、次のようなディレクトリが必要です。

site.com/ca/en/ (Canada English)
site.com/ca/fr/ (Canada French)
site.com/us/en/ (US English)
site.com/us/es/ (US Spanish)

しかし、それは私が「ca」と「us」の仮想ディレクトリと言語の仮想ディレクトリをその中に置くことを意味します。それは良い習慣ですか、それとも私は次のようなことをすべきですか?

site.com/ca-en/ (Canada English)
site.com/ca-fr/ (Canada French)
site.com/us-en/ (US English)
site.com/us-es/ (US Spanish)

編集:私は次のことをしました:

アプリケーションにはダミーディレクトリ/ca/と/us/があります。どちらにも、単なるリダイレクトであるdefault.aspxがあります。私の場合、私は彼らを彼らの英語のサイトにリダイレクトします:

例:site.com/ca/-> site.com/ca/en/ site.com/us/-> site.com/us/en/

site.comにアクセスすると、言語選択ページに移動します。基本的に、言語/カルチャ文字列を探すために、すべてのリクエストでGlobal.asaxの正規表現を使用します。

これには次の利点があります。国の分離。したがって、site.com / ca/またはsite.com/us/を制御し、国ごとに簡単なURLを提供できます。

とにかく、仮想ディレクトリ/ en /、/ fr /、および/ es /は、それぞれの国の物理フォルダ内にあります。

したがって、次のようになります(仮想Dirは太字で示されています)。

site.com/ca/ en /(デフォルト)site.com/ca/ fr / site.com/us/ en /(デフォルト)site.com/us/ es /

これが意味するのは、URLを使用して現在の言語と国を取得できる(そして適切なデータベースを指すことができる)ことを除いて、5つの(同一の)アプリケーションが必要であることです。

4

3 に答える 3

1

1 つのサイトを用意して、クライアント設定 (request.servervariables / HTTP_ACCEPT_LANGUAGE) を確認し、使用する優先言語を確認し、asp.Net に組み込まれているグローバリゼーションを使用しないのはなぜですか?

国や言語によってまったく異なるコンテンツが表示される場合、そのように分ける理由は理解できます。

于 2008-12-16T23:26:32.920 に答える
1

まあ、彼らは URL がサイトごとに異なることを望んでいます。

基本的に、これは実際には 1 つのサイト (メンテナンス上の理由から) であり、グローバリゼーションを使用して、使用する接続文字列を決定しています (異なるデータベース、それぞれの同じ構造)。

発行するたびに、4 つの場所に発行します。同一アプリ。

1 つの URL を使用したグローバリゼーションは良いアイデアのように思えますが、適切にスパイダーするとは思えません。(フランス人は、英語に設定されたコンピューターを使用して別のフランス人にリンクを送信します)。他にも意味がありますが、Apple や Microsoft などのサイトが言語/文化ごとに異なる URL を使用するのには理由があります。

セッションが開始されるたびに、URL を確認し、それに応じて接続文字列を設定します。

最後に、メイン アプリケーションに /ca/ および /us/ ディレクトリを配置し、各言語にいくつかの仮想ディレクトリを追加して、「言語の選択」ページへの応答リダイレクトを行います。

おそらく最善の解決策ではありませんが、うまくいっているようです。

この方法のもう 1 つの利点は、1 つのサイトにのみ適用される特別なページがある場合、そのサイトにのみ追加できることです。

于 2008-12-23T20:31:16.403 に答える
0

ローカリゼーションで一般的に受け入れられている命名法は、言語コード ハイフン国コードの ll-CC です。例: en-US ですが、おそらく en-US がデフォルトであり、フォールバックとして en-GB または en-CA が使用されます... es-MX なども価値があります。ただし、サブドメインを使用する方が良い場合があります。これにより、前もって複雑な負荷分散規則を使用せずにリソースを分割できます。例: us.en.yoursite.com ... これにより、Web ファーム環境のサーバーを簡単に分類することもできます。ローカリゼーションに合わせてサイトごとに設定を変更して、実際のコードを同じにすることをお勧めします。次に、テキスト キーで渡すローカリゼーション リソースを使用すると、サイトのローカリゼーション パターンに基づいて言語翻訳が解決されます。注: .Net およびその他のプラットフォームには、組み込みのリソース ローカリゼーション オプションが用意されています。

于 2008-12-23T21:07:50.417 に答える