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


173

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

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


1
이것은 긴 샷이지만 페이지에 단어가 거의 있습니까? 단어가 거의없는 다른 페이지를 사용해보십시오. 동일한 증상이 있습니까? 내 생각에 서버 어딘가에 로케일을 덴마크어로 설정하는 구성이 있으며 페이지에 언어를 결정하기에 충분한 단어가 없기 때문에 크롬은 서버의 가정에 따릅니다.
hasen


7
Norweigian Bokmal 여기 있습니다. 몇 개의 버튼에 'Barf'라는 단어를 사용했습니다. 단어를 '바운스'로 변경했으며 이제 크롬은 네덜란드어라고 생각합니다. 뭐 하냐?
토마스 피터

답변:


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

  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은 탭 새로 고침시 항상 새로운 메타 태그를 선택하지 않습니다.


1
다음은 Google의 메타 태그에 대한 설명입니다. support.google.com/webmasters/bin/…
Joshua Davis

7
@Emile : 새 탭에 페이지를로드하면 작동합니다. F5를 눌러 새로 고치면 작동하지 않습니다.
Stefan Steiger

1
html5에서는 <meta name = "google"content = "notranslate"/>
r03

1
@Jack, 그것은 구글이나 W3C의 추천이 아닙니다. 당신의 도전은 내 대답을 의문으로 불러 일으키는 흥미로운 정보를 만들어 냈지만
Kyle

2
Chrome은 원하는 것을 수행하는 것 같습니다. HTTP 응답 헤더에 ASCII가 있음을 지정하여 txt 파일을 영어로 반환 할 수 있으며 데이터에 ASCII 문자 만 포함되어 있어도 크롬은 여전히 ​​바이트에 대한 주파수 분석을 수행하고 사용자에게 다른 언어로되어 있음을 묻습니다.
Myforwik

3

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

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

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


2

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

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

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


2
그러나 문제는 어떻게 그것을 선택했는지, 왜 Chrome이 왜 선택을했는지 정확히 파악하기 위해 더 많은 정보를 얻을 수 있습니까?
사무엘 네프

2
본문을 보지 않으면 확실하게 말할 수 없습니다. 시도해야 할 사항 :-텍스트를 복사하여 translate.google.com에 붙여넣고 '언어 감지'로 설정하면 영어인지 여부가 표시됩니까? -덴마크어 또는 기타 언어로 표시되어 있으면 문제를 찾을 때까지 문장을 제거하기 시작합니다.
NinjaCat

안녕 샘-그것은 내가 제안하는 효과입니다. 왜 결정을 내 렸는지 물어볼 방법이 없습니다. 텍스트를 속이는 문장이나 문구가 있습니다 (모든 기계 번역이 거의 완벽하지 않은 후에). 이 문제를 디버깅하기 위해 올바른 언어를 인식 할 때까지 문장별로 문장을 추출합니다.
NinjaCat

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"이 있습니다. 크롬은 그것을 무시합니다!
Joshua Davis

1
@JoshuaDavis, lang 속성, 메타 태그 위의 모든 것을 시도했습니다 (notranslate 태그 제외). 마지막으로 문제를 해결 한 것은 dir = "ltr"속성을 추가하는 것이 었습니다.
Dan Morphis

1
dir = "ltr"는 ... 방향, 왼쪽에서 오른쪽입니다. 와.
Joshua Davis

1

문서의 기본 언어를 지정하고 다음 과 같이 요소 / 컨테이너마다 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 또는 다른 콘텐츠 관리 시스템을 사용하는 경우 코드를 업데이트하는 빠른 방법 은 설명서 를 참조하십시오!


이것은 메타 태그가 여전히 번역 팝업을 허용하고 있습니다.
Ryan

0

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

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

1
이 방법은 저에게 효과적이지 않았습니다. Chrome에서 lang = "..."및 xml : lang = "..."을 무시하는 것 같습니다.
Joshua Davis

이것은 크롬이 페이지의 언어를 알지 못하도록 혼동하기 때문에 번역을 제공하지 않습니다.
카터 메 드린
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.