Почему Chrome неправильно определяет страницу на другом языке и предлагает перевод? - PullRequest
148 голосов
/ 18 марта 2010

Новая функция автоматического перевода Google Chrome запускается на одной странице в одном из наших приложений. Всякий раз, когда мы переходим на эту страницу, Chrome сообщает нам, что страница написана на датском языке, и предлагает перевод. Страница на английском языке, как и любая другая страница в нашем приложении. Эта конкретная страница является внутренней страницей тестирования, которая имеет несколько десятков полей формы с английскими метками. Я понятия не имею, почему Chrome считает эту страницу датской.

Кто-нибудь знает, как работает эта функция определения языка и как я могу определить, что заставляет Chrome считать страницу датской?

Ответы [ 5 ]

199 голосов
/ 28 июня 2010

Используйте следующее:

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

Если это не сработает, вы всегда можете поместить кучу текста (например, страницу «О нас») в скрытый блок. Это может помочь и с SEO.

РЕДАКТИРОВАТЬ (и больше информации)

ОП спрашивает о Chrome, поэтому рекомендация Google размещена выше. Обычно есть три способа сделать это для других браузеров:

  1. рекомендация W3C : используйте атрибуты lang и / или xml:lang в теге html:

    <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 не всегда выбирает новый метатег при обновлении вкладки.

3 голосов
/ 09 мая 2010

Хром считает эту страницу на филиппинском: http://www.reyalvarado.com/portfolio/cuba/ Примечания: на странице почти нет текста, кроме имени владельца и пунктов меню. Пункты меню динамически заменяются изображениями с помощью FLIR.

HTML-код декларирует страницу как американский английский:

<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"> 
2 голосов
/ 20 ноября 2017

Я добавил lang="en" в объявление doctype, добавил метатеги для charset utf-8 и Content-Langauge в заголовке HTML, указал charset как utf-8 и Content-Language как en в заголовках ответа HTTP и это не помешало Chrome объявить мою страницу на португальском. Единственное, что решило проблему, это добавило это в HTML-заголовок:

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

Но теперь я запретил пользователям переводить мою страницу на английском языке на свой язык. Плохая работа, Хром. Вы можете быть лучше, чем это.

1 голос
/ 23 июля 2010

Не зная, что это был за текст, возможно, обнаружение ngram обмануто содержанием вашей страницы.

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

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

0 голосов
/ 08 марта 2012

Попробуйте включить свойство xml:lang="" в <html>, если другие решения не работают:

<html class="no-js" lang="pt-BR" dir="ltr" xml:lang="pt-BR">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...