[html] Chrome에서 페이지가 다른 언어로되어 있고 번역 제안을 잘못 판단하는 이유는 무엇입니까?

새로운 Chrome 자동 번역 기능이 응용 프로그램 중 하나의 한 페이지에서 작동합니다. 이 특정 페이지로 이동할 때마다 Chrome은 해당 페이지가 덴마크어로되어 있으며 번역 할 것을 제안합니다. 이 페이지는 앱의 다른 모든 페이지와 마찬가지로 영어로되어 있습니다. 이 특정 페이지는 영어 레이블이있는 수십 개의 양식 필드가있는 내부 테스트 페이지입니다. Chrome에서이 페이지가 덴마크어라고 생각하는 이유를 모르겠습니다.

이 언어 감지 기능의 작동 방식과 Chrome이 페이지를 덴마크어로 생각하게 만드는 원인을 어떻게 알 수 있습니까?



답변

업데이트 : 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의 권장 사항 은 위에 게시되어 있습니다. 다른 브라우저에서이를 수행하는 방법은 일반적으로 세 가지가 있습니다.

  1. W3C 권장 사항 :html 태그에서lang및 / 또는xml:lang속성을사용하십시오.

    <html lang="en" xml:lang="en" xmlns= "http://www.w3.org/1999/xhtml">
  2. UPDATE : 이전에 구글 추천은 이제 사양되지 있지만 그것은 크롬 도움 여전히 않을 수 있습니다. : 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은 탭 새로 고침시 항상 새로운 메타 태그를 선택하지 않습니다.


답변

나는 추가 lang="en", DOCTYPE 선언에 HTML 헤더에 문자 집합 UTF-8 및 내용 – Langauge에 대한 추가 메타 태그, UTF-8과 같은 내용-언어로 지정된 캐릭터 세트 enHTTP 응답 헤더를 그리고 선언에서 크롬을 막을 아무것도하지 않았다 내 페이지는 포르투갈어로되어있었습니다. 문제를 해결 한 유일한 것은 이것을 HTML 헤더에 추가하는 것입니다.

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

그러나 이제는 사용자가 영어로 된 페이지를 자신의 언어로 명확하게 번역하지 못했습니다. 불쌍한 일, 크롬 이보다 더 나을 수 있습니다.


답변

텍스트가 무엇인지 알지 못하면 아마도 페이지 내용에 따라 ngram 감지가 어려워 질 수 있습니다.

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

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


답변

Chromium은이 페이지를 필리핀어로 생각합니다. http://www.reyalvarado.com/portfolio/cuba/
참고 : 페이지에는 소유자의 이름과 메뉴 항목을 제외하고 텍스트가 거의 없습니다. 메뉴 항목은 FLIR에 의해 이미지로 동적으로 대체됩니다.

HTML은 페이지를 미국 영어로 선언합니다.

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


답변

문서의 기본 언어를 지정하고 다음 과 같이 요소 / 컨테이너마다 translate 속성 및 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"(또는 이러한 단어를 제거하는 것은) 구글이 제대로 페이지의 언어를 예측하는 데 도움이 될 것입니다.

불행히도이 게시물에 도달하는 대부분의 사람들은 어떤 단어가 문제를 일으키는 지 알 수 없습니다. Chrome의 기본 제공 “영어로 번역”기능 (오른쪽 클릭 상황에 맞는 메뉴)을 사용하여 번역 된 내용을 확인 하면 다음과 같은 예기치 않은 번역이 표시 될 수 있습니다 .

여기에 이미지 설명을 입력하십시오

따라서 페이지의 Google 번역에서 아무 변화가 없을 때까지 적절한 번역 태그를 사용하여 html을 업데이트하십시오. 그러면 향후 방문자를 위해 팝업이 사라질 것으로 예상됩니다.

이 모든 추가 태그를 추가하는 것이 많은 일이 아닙니까? 그렇습니다. WordPress 또는 다른 콘텐츠 관리 시스템을 사용하는 경우 코드를 업데이트하는 빠른 방법 은 설명서 를 참조하십시오!


답변

다른 솔루션이 작동하지 않으면 속성 xml:lang=""을에 포함 해보십시오 <html>.

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


답변