2011-07-17 2 views
3

Chrome에서 웹 사이트를 여는 것은 러시아어로되어 있다고 해봅시다. Chrome은 러시아어로되어 있으며 번역 해줍니다. C#을 사용하여 웹 페이지의 언어를 찾는 방법은 무엇입니까? 영어, 스페인어, 러시아어 등의 실제 언어를 찾는 것이 좋습니다.C#에서 웹 페이지의 언어 (프로그래밍이 아님)를 찾는 방법

+1

아마도 이것은 적절한 방향으로 당신을 가리킬 수 있습니다 : http://stackoverflow.com/questions/1464362/detect-language-of-text – Bart

답변

4

<meta http-equiv="language" content="ru" /><meta http-equiv="content-language" content="ru" /> 태그를 페이지 머리 부분에서 파싱 해 볼 수 있습니다.

일반적으로 이러한 태그는 모든 페이지에서 사용할 수있는 것은 아닙니다.

이러한 태그가 누락되면 Google은 내부 데이터베이스에서 "단어 검색"을 수행하여 페이지의 가장 가능성있는 언어를 확인합니다.

편집

또한 언어를 감지 할 SOAP API of Bing를 사용할 수 있습니다.

자신의 사이트에서 예 :

var client = new TranslatorService.LanguageServiceClient(); 
var result = client.Detect(
    "myAppId", 
    "I have no idea what this language may be"); 

Console.WriteLine("The detected language friendly code is: " + result); 

그냥 당신이에서 감지하고 SOAP 기능에 전달하고자하는 HTML 페이지에서 (예를 들어, HTML Agility Pack 포함) 텍스트를 추출합니다.

+1

'language'는 공식적인 것이 아니 었습니다. 어쨌든 둘 다 'lang' 속성은 HTML이나 다른 요소들에 대한 것입니다. – Joey

+0

@Joey, Language는 공식은 아니지만 Content-Language는 RFC 2616에 있습니다. 그러나 lang 및 xml : lang 속성은 문서 내의 언어 변경 사항을 식별 할 수 있으므로 선호해야합니다. 물론, 그들은 거기에 넣은 저자에 달려 있습니다. Google과 빙은 그러한 정보가 누락되거나 부정확하다는 것을 다루기 위해 비교를 할 수있는 막대한 근원을 가지고 있다는 이점이 있습니다. –

+0

HTML5에서도 Content-Language가 더 이상 사용되지 않습니다. – Joey

0

Google's api을 사용하여 페이지의 일부 또는 모든 텍스트를 API로 보내어 언어를 감지하십시오.

.NET 라이브러리의 경우 this question에 대한 대답을 참조하십시오.

+0

2011 년 말에 Google이 API를 중단한다는 내용을 읽었습니다. –

+1

@Uwe Keim : 네, 저는 여러분과 나와 같은 사람들이 API를 광범위하게 사용했기 때문입니다. 구글이 말했듯이, 그들은 "광범위한 학대로 인한 상당한 경제적 부담으로 인해"그것을 폐쇄하고있다. 어쨌든 "무료"번역본을 찾고있는 사람들은 http://www.google.com/webelements/#!/translate를 사용하여 제안합니다. 오프코어는 언어를 직접 검색 할 수있는 방법이 없습니다. API가 아닙니다. –

관련 문제