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


173

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

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


1
これはロングショットですが、ページには単語がほとんどありませんか?単語の少ない他のページを試してみてください。同じ症状が出ますか?私の推測では、サーバーのどこかにロケールをデンマーク語に設定する構成があり、ページ上に言語を判別するのに十分な単語がないため、Chromeはサーバーの想定に基づいています。
hasen 03


7
ノルウェーのボクマル。いくつかのボタンで「Barf」という単語を使用しました。単語を「バウンス」に変更したところ、Chromeはオランダ語だと思っています。えっ?
トーマスピーター2012

回答:


222

更新:Googleによると

lang属性などのコードレベルの言語情報は使用しません。

彼らはあなたのサイトの言語が何であるかを明らかにすることを勧めます。Content-Language推奨されていませんが、Googleは無視すると言っていますが、次のようにしてくださいlang

<html lang="en" xml:lang="en" xmlns= "http://www.w3.org/1999/xhtml">
<meta charset="UTF-8">
<meta name="google" content="notranslate">
<meta http-equiv="Content-Language" content="en">

それでも問題が解決しない場合は、非表示のdivに常に一連のテキスト(たとえば、「概要」ページ)を配置できます。それはSEOにも役立つかもしれません。

編集(および詳細)

OPがChromeについて質問しているため、Googleの推奨事項を上記に掲載しています。他のブラウザでこれを実現するには、一般に3つの方法があります。

  1. W3Cの推奨事項:htmlタグでlangxml:lang属性を使用します。

    <html lang="en" xml:lang="en" xmlns= "http://www.w3.org/1999/xhtml">
  2. 更新:以前はGoogleの推奨事項でしたが、Chromeでは引き続き役立つ可能性がありますが、仕様廃止されました。:(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は、タブの更新時に常に新しいメタタグを取得するわけではありません。


1
Googleのメタタグの説明は次のとおりです。support.google.com
Joshua Davis

7
@Emile:新しいタブでページをロードすれば動作します。F5キーを押して更新するだけでは機能しません。
Stefan Steiger

1
html5では、値ではなくコンテンツにする必要があります:<meta name = "google" content = "notranslate" />
r03

1
@ジャック、それはグーグルやW3Cの推奨ではありません。あなたの挑戦は私の答えを質問に呼んだ興味深い情報をもたらしましたが、w3.org
カイル

2
Chromeは好きなようにやるようです。HTTP応答ヘッダーでASCIIであることを指定してtxtファイルを英語で返すことができます。データにASCII文字のみが含まれている場合でも、Chromeはバイトの頻度分析を行い、ユーザーに別の言語であることを通知します。
Myforwik 2014年

3

私が追加lang="en"、HTMLヘッダに文字セットをUTF-8およびContent-のlangaugeのために、DOCTYPE宣言に追加されたメタタグをUTF-8として文字セットを指定し、コンテンツ言語としてのenHTTPレスポンスヘッダーに、それは私を宣言からChromeを停止するには何もしませんでしたページはポルトガル語でした。問題を修正した唯一のものは、これをHTMLヘッダーに追加することでした。

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

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


2

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

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

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


2
しかし問題は、どうやってそれをデバッグしたり、Chromeがなぜそれを選んだのかを正確に理解するための詳細情報を取得したりできることです。
Samuel Neff、2010

2
本文を見ないと、はっきりとは言えません。試すべきこと:-テキストをコピーしてtranslate.google.comに貼り付け、[言語を検出]に設定すると、英語かどうかがわかりますか?-デンマーク語などと書かれている場合は、問題を解決するまで文章の削除を開始します。
NinjaCat 2010

こんにちはサム-それは事実私が提案していることです。なぜそれが決定を下したのかを尋ねる方法はありません。あなたのテキストにそれをだましているいくつかの文または言葉遣いがあります(すべての機械翻訳がほぼ完全ではない後)。これをデバッグするために、正しい言語が認識されるまで、文ごとに取り出します。
NinjaCat 2010

1

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

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

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

1
ええ、私は同じ問題を抱えています。ページ上のテキストは多くなく、<html>要素にはlang = "en"とxml:lang = "en"があります。Chromeはそれを無視します!
ジョシュアデイビス

1
@JoshuaDavis、私はlang属性、メタタグ(notranslateを除く)の上にあるすべてのものを試しました。最後にそれを修正したのは、dir = "ltr"属性を追加することでした。
Dan Morphis 2014年

1
dir = "ltr"は...方向、左から右でしょうね。ワオ。
ジョシュアデイビス

1

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

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

説明:

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

なぜこれが良いのですか?これは、Googleの国際化に協力するのではなく、閉鎖するのです。OPを再度参照します。

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

回答:Googleは国際化を支援しようとしていますが、これが失敗する理由を理解する必要があります。オフ構築NinjaCatの答えは、Googleが仮定読み込み、予測使用してウェブサイトの言語をN-gramのアルゴリズムは -そう、私達はGoogleがあなたのページを翻訳したい理由を正確に言うことはできません。次のことのみを想定できます。

  1. 別の言語に属する単語がページにあります。
  2. 含む要素をマーキングtranslate="no"してlang="en"(またはこれらの単語を除去すること)Googleが正しくページの言語を予測するのに役立ちます。

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

ここに画像の説明を入力してください

したがって、ページのGoogle翻訳が何も変わらないようになるまで、適切な翻訳タグでhtmlを更新してください。そうすれば、今後の訪問者のためにポップアップが消えるはずです。

これらの余分なタグをすべて追加するのは大変な作業ではないでしょうか?はい、そうです。Wordpressまたは別のコンテンツ管理システムを使用している場合は、それらのドキュメントを参照して、コードをすばやく更新する方法を見つけてください。


これは私にとってはうまくいきます、メタタグはまだ翻訳ポップアップを許可していました。
ライアン

0

他の解決策が機能しない場合は、プロパティxml:lang=""をに含めてみてください <html>

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

1
このアプローチは私にはうまくいきませんでした。Chromeはlang = "..."とxml:lang = "..."を無視するようです。
ジョシュアデイビス

これは、クロームを混乱させてページの言語がわからないように機能するため、翻訳は提供されません。
カーターメドリン2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.