多くの場合、それは特定のユースケースによって異なります。
ただし、ほとんどの場合、検索エンジンで適切にインデックスを作成するには、ページと言語ごとに異なる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();
}