web-dev-qa-db-ja.com

Googleがページの翻訳を誤って提供しないようにするにはどうすればよいですか?

私のサイトのいくつかのページは、検索結果に[Translate this page]の横に表示されます。クリックすると、Google翻訳に移動し、ページを「カタロニア語から英語に」翻訳します。

ページは英語ですが、いくつかの外国語(実際にはカタロニア語ではなく日本語のローマ字表記)があり、Googleをつまずかせているようです。

数週間前、htmlタグを<html lang="en">に設定しました。これは、調査から、文書の言語を指定するための最良の方法であると思われます。 Googleはこの属性を持つページをキャッシュしましたが、まだ翻訳を提供しています。

より多くの研究により、翻訳を完全に防ぐ「notranslate」属性に至りました:<html lang="en" class="notranslate">。問題は、ユーザーが英語から希望する言語に翻訳できないことです。

Googleにサイトを英語のみとして解析させる他のソリューションはありますか?

36
DisgruntledGoat

Googleは一般に間違っていることがわかっているため、言語のメタデータは使用しません。 HTTPヘッダー、HTMLメタタグ、または要素レベルのlang-attributesを使用しても、Googleの言語認識に影響はありません。したがって、他の目的(スクリーンリーダーなど)でそれを行いたい場合を除き、おそらくスキップできます。

覚えておくべきことの1つは、Googleがページごとに複数の言語を認識するのに問題がないことです。そのため、ページの一部がイタリア語であると認識し(おそらくイタリアのホテルについて書いている場合)、検索結果に「このページを翻訳する」リンクを表示しても、おそらく認識できるでしょう。ほとんどが英語です。これを確認する簡単な方法は、高度な検索オプションを使用して特定の言語を選択し、サイトのsite:-queryを実行することです。

18
John Mueller

このメタを使用して、Googleの翻訳をスキップします

<meta name="google" content="notranslate" />
12
Krish

メタタグを追加する必要があります

<meta http-equiv="content-language" content="en" />

アクセスできる場合は、サーバーからContent-Language HTTPヘッダーを送信することもできます。

詳細は http://www.w3.org/International/questions/qa-http-and-lang

12

言語文字列にenが含まれる場合、リクエストAccept-Languageヘッダーを見て、class="notranslate"属性を動的に追加/削除できます。

Web Master Worldによるclass="notranslate"を適用対象のコンテンツ(つまり、「外国語のカップル」)のみに適用し、できれば英語/英語の翻訳ボックスを回避できます。

4
Metalshark