Перевод текста используя Yandex Translate API 1.5
В приведенном коде ответ приходит в xml, возможно использование других форматов, для этого необходимо читать документацию и менять пример.
Для начала необходимо получить бесплатный Yandex API-ключ странице Получить ключ бесплатно
public static class Yandex
{
/// <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=!ВАШКЛЮЧ!;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>
public static void GetLangs()
{
WebRequest request = WebRequest.Create("https://translate.yandex.net/api/v1.5/tr/getLangs?key=!ВАШКЛЮЧ!");
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");
foreach (XmlNode trDirectionNode in trDirectionNodes)
Console.WriteLine("Dir: {0}", trDirectionNode.InnerText);
}
}
/// <summary>
/// Перевести текст
/// </summary>
/// <param name="lang">Язык на какой перевести ru</param>
/// <param name="text">Текст для перевода</param>
/// <returns>Возвращает NodeList переведенного текста</returns>
public static XmlNodeList Translate(string lang, string text)
{
WebRequest request = WebRequest.Create("https://translate.yandex.net/api/v1.5/tr/translate?key=!ВАШКЛЮЧ!;lang=" + lang + "&text=" + text + "&format=plain");
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;
}
}
}