2011-07-17 5 views
3

Chromeでウェブサイトを開くと、ロシア語であるといいます。クロムはそれがロシア語であると私に伝え、それを翻訳してくれます。 C#を使用してWebページの言語を調べるにはどうすればよいですか?英語、スペイン語、ロシア語などの実際の言語を見つけるのが大好きです。C#でWebページの言語を調べる方法(プログラミングではない!)

+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'は決して公式ではありませんでした。どちらの場合でも、両方ともHTMLやその他の要素に 'lang'属性があります。 – Joey

+0

@Joey、言語は公式ではありませんが、Content-LanguageはRFC 2616にあります。しかし、lang属性とxml:lang属性は文書内の言語の変更を識別できるため、好意的であるはずです。もちろん、それらはそこに置かれた作者に依存しています - グーグルとビンは、そのような情報が欠落しているか間違っていることに対処するための比較を行うことができる大規模なソースを持っているという利点があります。 –

+0

HTML5でもContent-Languageは推奨されていません。 – Joey

0

Google's apiを使用して、ページの一部またはすべてのテキストをAPIに送信して言語を検出します。

.NETライブラリの場合、this questionへの回答を参照してください。

+0

2011年末にGoogleがAPIを廃止することをお伝えします。 –

+1

@Uwe Keim:はい、あなたと私のような人がAPIを広く使用していたからです。 Googleが言っているように、彼らは「広範な虐待によって大きな経済的負担があるために」それを止めている。とにかく、まだ "無料"の翻訳を探している人は、次のように使ってみることをお勧めします。http://www.google.com/webelements/#!/translateオフコースには言語を直接検出する方法がありません。それはAPIではありません –

関連する問題