Yandex Translate API 1.5 в c#

Перевод текста используя 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;
            }
        }
    }

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *