web-dev-qa-db-ja.com

Chromeがページが異なる言語であると誤って判断し、翻訳を提案するのはなぜですか?

新しいGoogle Chrome自動翻訳機能は、いずれかのアプリケーション内の1ページで作動します。この特定のページに移動するたびに、Chromeは、ページがデンマーク語であり、翻訳を提案していることを通知します。このページは、アプリ内の他のすべてのページと同じように英語です。この特定のページは、英語のラベルが付いた数十個のフォームフィールドがある内部テストページです。 Chromeがこのページをデンマーク語と考える理由がわかりません。

この言語検出機能がどのように機能し、ページがデンマーク語であるとChromeが考えている原因を特定する方法について、誰かが洞察を持っていますか?

152
Samuel Neff

以下を使用してください。

<meta charset="UTF-8">
<meta name="google" content="notranslate">
<meta http-equiv="Content-Language" content="en">

それがうまくいかない場合は、いつでも非表示のdivにたくさんのテキスト(「About」ページなど)を配置できます。それはSEOにも役立つかもしれません。

EDIT(および詳細)

OPはChromeについて尋ねているので、 Googleの推奨 が上に投稿されています。他のブラウザでこれを実現するには、一般に3つの方法があります。

  1. W3C推奨:htmlタグでlangおよび/またはxml:lang属性を使用します。

    <html lang="en" xml:lang="en" xmlns= "http://www.w3.org/1999/xhtml">
    
  2. Googleの推奨事項meta http-equiv(上記のとおり):

    <meta http-equiv="Content-Language" content="en">
    
  3. HTTPヘッダーを使用します( ブラウザ間の認識テスト に基づいて推奨されません):

    HTTP/1.1 200 OK
    Date: Wed, 05 Nov 2003 10:46:04 GMT
    Content-Type: text/html; charset=iso-8859-1
    Content-Language: en
    

Chromeを完全に終了して再起動し、変更が検出されたことを確認します。 Chromeは、タブの更新時に常に新しいメタタグを取得するとは限りません。

204
Kyle

Chromiumはこのページをフィリピン語で考えています: http://www.reyalvarado.com/portfolio/cuba/ 注:ページにはほとんどテキストがありません所有者の名前とメニュー項目を除きます。メニュー項目は、FLIRによって画像に動的に置き換えられます。

HTMLは、ページを米国英語として宣言します。

<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"> 
3
James Revillini

テキストが何であるかを知らずに、おそらくあなたのページのコンテンツによってngramの検出がだまされています。

http://googleresearch.blogspot.com/2006/08/all-our-n-gram-are-belong-to-you.html

https://en.wikipedia.org/wiki/N-gram

2
NinjaCat

lang="en"をdoctype宣言に追加し、charset utf-8およびContent-LangaugeのメタタグをHTMLヘッダーに追加し、charsetをutf-8として、Content-LanguageをenとしてHTTP応答ヘッダーに追加しましたChromeが私のページがポルトガル語であることを宣言するのを止めることはできませんでした。問題を修正した唯一のことは、これをHTMLヘッダーに追加することでした。

<meta name="google" content="notranslate">

しかし今では、明らかに英語のページを自分の言語に翻訳することをユーザーに禁止しています。悪い仕事、Chrome。あなたはこれよりも良いことができます。

2
Chris Broski

ドキュメントのデフォルト言語を指定し、次のように要素/コンテナごとに translate属性 およびGoogleのnotranslateクラスを使用します。

<html lang="en">
    ...
    <span><a href="#" translate="no" class="notranslate">English</a></span>

説明:

受け入れられた回答は包括的な解決策を示していますが、バグを修正し、 ページが翻訳可能のままである を保証できる要素ごとの言語の指定方法については触れていません。

なぜこれが良いのですか?これにより、Googleの国際化に協力するのではなく、停止します。 OPに戻る:

Chromeがページが異なる言語であると誤って判断し、翻訳を提案するのはなぜですか?

Answer:Googleは国際化を支援しようとしていますが、これが失敗する理由を理解する必要があります。 NinjaCat's answerから構築し、Google reads and predictsN-gram algorithm -を使用してあなたのウェブサイトの言語を仮定しますGoogleがページを翻訳する理由を正確に言うことはできません。私たちはそれだけを仮定することができます:

  1. ページには、異なる言語に属する言葉があります。
  2. 含まれる要素をtranslate="no"およびlang="en"としてマークする(またはこれらの単語を削除する)と、Googleはページの言語を正しく予測するのに役立ちます。

残念ながら、この投稿にアクセスするほとんどの人は、どの単語が問題を引き起こしているかを知りません。 Chromeの組み込みの「英語に翻訳」機能(右クリックコンテキストメニュー)を使用して、翻訳内容を確認すると、予期しない翻訳が表示される場合があります 次のように

enter image description here

したがって、ページのGoogle翻訳が何も変わらなくなるまで、適切な翻訳タグでhtmlを更新します。その後、ポップアップが今後の訪問者に表示されることを期待する必要があります。

これらのすべての追加タグを追加するのは大変な作業ではありませんか?はい、ありそうです。 Wordpressまたは別のコンテンツ管理システムを使用している場合は、 documentation でコードを更新する簡単な方法を確認してください!

1
mattavatar

他のソリューションが機能しない場合は、xml:lang=""<html>に含めてみてください:

<html class="no-js" lang="pt-BR" dir="ltr" xml:lang="pt-BR">
0
Alan