[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의 권장 사항 은 위에 게시되어 있습니다. 다른 브라우저에서이를 수행하는 방법은 일반적으로 세 가지가 있습니다.
-
W3C 권장 사항 :html 태그에서
lang
및 / 또는xml:lang
속성을사용하십시오.<html lang="en" xml:lang="en" xmlns= "http://www.w3.org/1999/xhtml">
-
UPDATE : 이전에 구글 추천은 이제 사양되지 있지만 그것은 크롬 도움 여전히 않을 수 있습니다. :
meta http-equiv
(위에서 설명한 바와 같이) :<meta http-equiv="Content-Language" content="en">
-
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과 같은 내용-언어로 지정된 캐릭터 세트 en
HTTP 응답 헤더를 그리고 선언에서 크롬을 막을 아무것도하지 않았다 내 페이지는 포르투갈어로되어있었습니다. 문제를 해결 한 유일한 것은 이것을 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이 페이지를 번역하려는 이유를 정확하게 말할 수는 없습니다. 우리는 다음과 같이 가정 할 수 있습니다.
- 페이지에 다른 언어에 해당하는 단어가 있습니다.
- 로 포함 된 요소를 표시
translate="no"
하고lang="en"
(또는 이러한 단어를 제거하는 것은) 구글이 제대로 페이지의 언어를 예측하는 데 도움이 될 것입니다.
불행히도이 게시물에 도달하는 대부분의 사람들은 어떤 단어가 문제를 일으키는 지 알 수 없습니다. Chrome의 기본 제공 “영어로 번역”기능 (오른쪽 클릭 상황에 맞는 메뉴)을 사용하여 번역 된 내용을 확인 하면 다음과 같은 예기치 않은 번역이 표시 될 수 있습니다 .
따라서 페이지의 Google 번역에서 아무 변화가 없을 때까지 적절한 번역 태그를 사용하여 html을 업데이트하십시오. 그러면 향후 방문자를 위해 팝업이 사라질 것으로 예상됩니다.
이 모든 추가 태그를 추가하는 것이 많은 일이 아닙니까? 그렇습니다. WordPress 또는 다른 콘텐츠 관리 시스템을 사용하는 경우 코드를 업데이트하는 빠른 방법 은 설명서 를 참조하십시오!
답변
다른 솔루션이 작동하지 않으면 속성 xml:lang=""
을에 포함 해보십시오 <html>
.
<html class="no-js" lang="pt-BR" dir="ltr" xml:lang="pt-BR">