4

ローカリゼーション ミドルウェアを gettext および trans/blocktrans テンプレート タグと組み合わせて使用​​し、ユーザー エージェント文字列の優先言語に応じて異なるページを訪問者に表示する Django サイトがあります (これは Django での標準的な方法のようです)。 .

これは、サポートされている言語でうまく機能します (現在、スペイン語、英語、ドイツ語のみで、さらに増える予定です)。ブラウザーの優先言語を別の言語に設定すると、その翻訳のページが表示されます。ただし、検索エンジンにどのように表示されるかはわかりません。

検索エンジンがサイトをクロールするとき、通常、エージェント文字列に優先言語が含まれていますか? ドイツのスパイダーはドイツ語のサイトを取得し、スペイン語のスパイダーはスペイン語のサイトを取得しますか? それとも、ユーザーが言語を設定していない場合に表示されるデフォルトの英語のサイトを取得するだけですか? これは検索エンジンによって異なりますか?また、個々のクローラーが固執する場合としない場合があることを行う「標準的な方法」はありますか?

4

3 に答える 3

3

ボットは通常、httpヘッダーにaccept-language設定を持っていません。これは、djangoがデフォルトの言語を提供することを意味します。地域の検索エンジンは、accept-languageが好きなように設定されたボットを持つことができますが、それに依存することはできません。言語ごとに異なるページを用意することをお勧めします。http://your.website.com/english/など 、特定の受け入れ言語が存在する場合は、ミドルウェアで適切な言語ページへのリダイレクトを設定します。

于 2010-10-20T18:46:00.763 に答える
2

この点に関して、検索エンジンが何をするかに依存しないでください。すべてのバージョンをクロールする必要があります。それを達成するには:

  • 異なる言語バージョンには異なる URL があります。
  • 検索エンジンが異なるバージョンを見つけられることを確認してください。

全体として、ホームページで行った方法は、検索エンジンと通常のユーザーの両方に関して理想に近いと思います。

  • ユーザーが brazzy.de/index.php などにアクセスすると、サイトは Cookie (存在する場合) またはブラウザー設定 (Accept-language ヘッダー) から言語を判別しようとし、デフォルトで英語に設定され、リダイレクトされません。
  • すべてのページには、そのページのさまざまな言語バージョンへのリンクがあります (IMO は、ユーザーの利便性にとって最も重要な要素であり、検索エンジンがさまざまなバージョンを簡単に見つけられるようにもします)。
  • これらのリンクは、私の場合は brazzy.de/index.php?lang=en に書き換えられた、たとえば brazzy.de/en/index.php につながります。これにより、検索エンジンは言語バージョンごとに異なる URL を認識できるようになります。
  • そのようなサブディレクトリにアクセスすると、言語 Cookie がその言語に設定されます
  • 言語固有の URL を持たないページ (つまり、言語がクライアント データに依存するページ) は、たとえば<link rel="canonical" href="/en/">、そのページを見つけることができる言語固有の URL を検索エンジンに伝えるために使用します。
  • XML サイトマップを使用して、検索エンジンがすべてのページとすべての異なる言語バージョンを確実に見つけられるようにします。
于 2010-10-20T18:55:46.400 に答える