Created
August 22, 2014 15:11
-
-
Save EFLFE/1493f1c9c7422790cf0c to your computer and use it in GitHub Desktop.
Yandex Translate API 1.5 xml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.IO; | |
using System.Net; | |
using System.Xml; | |
namespace TryYandexTranslateAPI | |
{ | |
// Перевод текста с помощью Yandex переводчика. | |
// http://api.yandex.ru/translate/doc/dg/concepts/api-overview.xml | |
// Код взят из сайта http://jobtools.ru/2014/05/yandex-translate-api-1-5-v-c/ | |
// и был дополнен под xml формат. | |
public static class YandexTranslateAPI | |
{ | |
private const string APIKey = "ВАШ Yandex API КЛЮЧ!"; | |
/// <summary> Определение языка </summary> | |
/// <param name="text"></param> | |
/// <returns>Язык строки</returns> | |
public static string Detect(string text) | |
{ | |
WebRequest request = WebRequest.Create("https://translate.yandex.net/api/v1.5/tr/detect?key=" + APIKey + "&text=" + text); | |
WebResponse response = request.GetResponse(); | |
using (StreamReader sr = new StreamReader(response.GetResponseStream())) | |
{ | |
var fetchedXml = sr.ReadToEnd(); | |
XmlDocument d = new XmlDocument(); | |
d.LoadXml(fetchedXml); | |
XmlNodeList langNodes = d.GetElementsByTagName("DetectedLang"); | |
XmlNode node = langNodes.Item(0); | |
return node.Attributes[1].Value; | |
} | |
} | |
/// <summary> Получить перечень доступных направлений для перевода </summary> | |
/// <param name="ui">Если задан, ответ будет дополнен расшифровкой кодов языков. | |
/// Названия языков будут выведены на языке, код которого соответствует этому параметру.</param> | |
public static void GetLangs(string ui) | |
{ | |
WebRequest request = WebRequest.Create("https://translate.yandex.net/api/v1.5/tr/getLangs?key=" + APIKey + "&ui=" + ui); | |
WebResponse response = request.GetResponse(); | |
using (StreamReader sr = new StreamReader(response.GetResponseStream())) | |
{ | |
var fetchedXml = sr.ReadToEnd(); | |
XmlDocument d = new XmlDocument(); | |
d.LoadXml(fetchedXml); | |
XmlNodeList trDirectionNodes = d.GetElementsByTagName("string"); | |
int i = 1; | |
foreach (XmlNode trDirectionNode in trDirectionNodes) | |
Console.WriteLine((i++) + ": {0}", trDirectionNode.InnerText); | |
} | |
} | |
/// <summary> Перевести текст </summary> | |
/// <param name="lang">Язык на какой перевести (ru-en или en-ru).</param> | |
/// <param name="text">Текст для перевода</param> | |
/// <returns>Возвращает NodeList переведенного текста</returns> | |
public static string Translate(string lang, string text) | |
{ | |
WebRequest request = WebRequest.Create( | |
"https://translate.yandex.net/api/v1.5/tr/translate?key=" + APIKey + "&text=" + text + "&lang=" + lang); | |
WebResponse response = request.GetResponse(); | |
using (StreamReader sr = new StreamReader(response.GetResponseStream())) | |
{ | |
var fetchedXml = sr.ReadToEnd(); | |
XmlDocument d = new XmlDocument(); | |
d.LoadXml(fetchedXml); | |
XmlNodeList textNodes = d.GetElementsByTagName("text"); | |
return textNodes[0].InnerText; | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment