web-dev-qa-db-ja.com

Webサイトの言語が誤って検出されるのはなぜですか?また、適切な言語に設定するにはどうすればよいですか?

携帯電話(クロームアプリ)で個人のWebサイトにアクセスすると、ページの言語が「ポルトガル語」として検出され、翻訳するかどうかを尋ねられます。しかし、ページは英語であり、タグを使用して言語を英語に設定しました:

<html lang="en">

ページがポルトガル語として登録されているのはなぜですか?また、翻訳ボタンがトリガーされないようにするにはどうすればよいですか?

screenshot of page showing translate option

6
Niahc

注意すべきことの1つは、Googleが「このページはXYZにあります」と提案し、翻訳を提供する場合、ページ全体がその言語であると考えることを必ずしも意味しないことです。ページのごく一部がその言語であると考えている場合でも、ページを翻訳するための同じオプションを提供します。

あなたの例では、translateリンクをクリックすると、「翻訳」されたように見える唯一の部分は、メールアドレスの可視のローカル部分です。 faithFaithになります。

ページのHTMLソースを確認すると、この要素が(非常に)HTMLエンティティエンコード(href属性が%エンコード(URLエンコード)およびHTMLエンティティエンコード)されていることがわかります。

<a href='mai&#108;&#116;o&#58;f%61i&#37;74%68%40fa%&#54;9th%6&#50;ot&#46;c%&#54;F&#37;6D'>fai&#116;h&#64;faith&#98;ot&#46;com</a>

このエンコードがfoolingかもしれませんメールアドレスとして表示されていない可能性がありますか? Chromeでは、Chromeがツールチップにリンクのソースを表示すると、%40(エンコードされた@)はデコードされません。また、ユーザーがコンテキストメニューから[メールアドレスのコピー]を選択した場合、コピーされるメールアドレスはHTMLエンティティのみデコードされ、%デコードされません(つまりf%61i%74%68%40fa%69th%62ot.c%6F%6D)-これは潜在的な使いやすさです問題。

解決

Googleヘルプドキュメント によると、翻訳の対象としない特定の要素の周りに次のタグを追加してみることができます。

<span class="notranslate">....</span>

アンカーにclass="notranslate"を追加できる場合もあれば、要素全体が必要な場合もありますが、わかりません。

HTML5のtranslate="no"属性を使用できる可能性もありますか?

参照:
https://stackoverflow.com/questions/9628507/how-can-i-tell-google-translate-to-not-translate-a-section-of-a-website =

5
DocRoot

<head>セクションでこれを試してください:

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

言語にhreflangを使用 が問題を解決すると信じています。上記の答えでスティーブが示唆していることもうまくいくかもしれません。

1
Prasad Ajinkya