私のサイトのいくつかのページは、検索結果に[Translate this page]
の横に表示されます。クリックすると、Google翻訳に移動し、ページを「カタロニア語から英語に」翻訳します。
ページは英語ですが、いくつかの外国語(実際にはカタロニア語ではなく日本語のローマ字表記)があり、Googleをつまずかせているようです。
数週間前、htmlタグを<html lang="en">
に設定しました。これは、調査から、文書の言語を指定するための最良の方法であると思われます。 Googleはこの属性を持つページをキャッシュしましたが、まだ翻訳を提供しています。
より多くの研究により、翻訳を完全に防ぐ「notranslate」属性に至りました:<html lang="en" class="notranslate">
。問題は、ユーザーが英語から希望する言語に翻訳できないことです。
Googleにサイトを英語のみとして解析させる他のソリューションはありますか?
Googleは一般に間違っていることがわかっているため、言語のメタデータは使用しません。 HTTPヘッダー、HTMLメタタグ、または要素レベルのlang-attributesを使用しても、Googleの言語認識に影響はありません。したがって、他の目的(スクリーンリーダーなど)でそれを行いたい場合を除き、おそらくスキップできます。
覚えておくべきことの1つは、Googleがページごとに複数の言語を認識するのに問題がないことです。そのため、ページの一部がイタリア語であると認識し(おそらくイタリアのホテルについて書いている場合)、検索結果に「このページを翻訳する」リンクを表示しても、おそらく認識できるでしょう。ほとんどが英語です。これを確認する簡単な方法は、高度な検索オプションを使用して特定の言語を選択し、サイトのsite:-queryを実行することです。
このメタを使用して、Googleの翻訳をスキップします
<meta name="google" content="notranslate" />
メタタグを追加する必要があります
<meta http-equiv="content-language" content="en" />
アクセスできる場合は、サーバーからContent-Language HTTPヘッダーを送信することもできます。
詳細は http://www.w3.org/International/questions/qa-http-and-lang
言語文字列にen
が含まれる場合、リクエストAccept-Language
ヘッダーを見て、class="notranslate"
属性を動的に追加/削除できます。
Web Master Worldによるclass="notranslate"
を適用対象のコンテンツ(つまり、「外国語のカップル」)のみに適用し、できれば英語/英語の翻訳ボックスを回避できます。