string strUrl = "https://translate.yandex.net/api/v1.5/tr.json/translate?";
strUrl += "key=trnsl.1.1.20150624T044522Z.904fd838812ba867.80102829f6e81c4e6644da5342680bc8dbeff88f";
strUrl += "&lang=ru-uk";
strUrl += "&text=" + "Привет";
WebClient wc = new WebClient { Encoding = Encoding.UTF8 };
string strJson = wc.DownloadString(strUrl);
С ключем все впорядке, причем ключ на 1 млн. символов в день, и легко обойти это ограничение. Заводишь три четыире аккаунта на yandex и берешь ключи, а потом Split и все.Для данных вещей должен быть безлимитный ключ
У тебя через GET все работает нормально????Все работает)
МММ. Т.е. вы парсите через "GET". Если честно я даже и не пробовал)У тебя через GET все работает нормально????
Тут парень писал про GET, да и я пробовал через GET - фигня выходит с кодировкой.МММ. Т.е. вы парсите через "GET". Если честно я даже и не пробовал)
Но перевод то такое дело, помоги разобраться с вхождением в таблице - Проверка на наличие вхождения в таблице.МММ. Т.е. вы парсите через "GET". Если честно я даже и не пробовал)
Ну что с переводом через get так ничего и не выяснилось?Тут парень писал про GET, да и я пробовал через GET - фигня выходит с кодировкой.
Пока нет, но мне советовали сделать urlencode для url и потом попробовать для текст. Но я не пробовал, нет времени пока на это.Ну что с переводом через get так ничего и не выяснилось?
У меня в ответе получается вот что {"code":200,"lang":"ru-uk","text":["Ð�еÐ�Ð�- -оÐ�Ð�кÐ�"]}Сейчас попробовал через GET, все отлично работает, в ответе никаких кракозябр.
У меня в ответе получается вот что {"code":200,"lang":"ru-uk","text":["Ð�еÐ�Ð�- -оÐ�Ð�кÐ�"]}
Покажи свой запрос может у меня где-то ошибка?
Откуда берёте текст для перевода? Если из txt, то файл должен быть в кодировке UTF-8.Все равно ответ тот же! Неужели никто не знает как решить эту проблему?
Может они поправили уже в новой версии. У меня 5.8.0.2У меня норм! ZP v5.9.0.1
Я прописывал в самом get запросе и с файла в кодировке utf8 результат одинаковый!Откуда берёте текст для перевода? Если из txt, то файл должен быть в кодировке UTF-8.
Как сделать чтоб api ключ и текст вставлялись в сниппет из переменной?Yandex перевод через новый API 1.5:
&key - ключ API берем его - https://tech.yandex.ru/keys/get/?service=trnslКод:using (var translate = new System.Net.WebClient()){ translate.QueryString.Add("key", "trnsl.1.1.20150314T094513Z.............."); translate.QueryString.Add("lang", "ru-uk"); translate.QueryString.Add("format", "plain"); translate.QueryString.Add("text", "Пример перевода с Русского языка на Украинский язык"); translate.Encoding = Encoding.UTF8; string result = translate.DownloadString("https://translate.yandex.net/api/v1.5/tr.json/translate"); return result; }
&lang - ключ перевода, в данном варианте это с Русского на Украинский. Если надо узнать ключи перевода заходим https://translate.yandex.net/api/v1.5/tr.json/getLangs?&key=trnsl.1.1.20150314T094513Z.f35761080d21af46......... и смотрим. Ключ key вставляем свой.
&format = plain|html - plain текст, ну и просто html.
&text - текст перевода.
return result - возвращает результат перевода в переменную которую Вы указали.
И получаем, вот такой результат в формате json:
Кто не хочет извращаться со снипетами, то делаем очень просто через GET запрос:Код:{"code":200,"lang":"ru-uk","text":["Приклад перекладу з Російської мови на Українську мову"]}
Код:https://translate.yandex.net/api/v1.5/tr.json/translate?key=trnsl.1.1.20150314T094513Z.f35761080d21af46..........&lang=ru-uk&format=plain&text=Пример перевода с Русского языка на Украинский язык
using (var translate = new System.Net.WebClient()){
translate.QueryString.Add("key", "project.Variables["Key"].Value");
translate.QueryString.Add("lang", "ru-uk");
translate.QueryString.Add("format", "plain");
translate.QueryString.Add("text", "project.Variables["Text"].Value");
translate.Encoding = Encoding.UTF8;
string result = translate.DownloadString("https://translate.yandex.net/api/v1.5/tr.json/translate");
return result;
}
Я так понимаю, что в данном случае - translate.QueryString.Add("text", "project.Variables["Text"].Value"); - Text это название переменной?Код:using (var translate = new System.Net.WebClient()){ translate.QueryString.Add("key", "project.Variables["Key"].Value"); translate.QueryString.Add("lang", "ru-uk"); translate.QueryString.Add("format", "plain"); translate.QueryString.Add("text", "project.Variables["Text"].Value"); translate.Encoding = Encoding.UTF8; string result = translate.DownloadString("https://translate.yandex.net/api/v1.5/tr.json/translate"); return result; }
translate.QueryString.Add("text", project.Variables["text2"].Value);Я так понимаю, что в данном случае - translate.QueryString.Add("text", "project.Variables["Text"].Value"); - Text это название переменной?
У меня переменная называется text2 и соответственно строка выглядит так - translate.QueryString.Add("text", "project.Variables["text2"].Value");
При попытке запустить появляются ошибки:
Посмотреть вложение 9264
Что я делаю не так?
И правда.
Заработало.
Однако вместо перевода я получил - {"code":200,"lang":"ru-uk","text":["project.Variables[text2].Value"]}
Может я как-то не правильно подаю данные в переменную?
Там должен быть текст примерно на 2к символов.
var text2 = project.Variables["text2"].Value;
using (var translate = new System.Net.WebClient()){
translate.QueryString.Add("key", "trnsl.1.1.20150314T094513Z..............");
translate.QueryString.Add("lang", "ru-uk");
translate.QueryString.Add("format", "plain");
translate.QueryString.Add("text", text2);
translate.Encoding = Encoding.UTF8;
string result = translate.DownloadString("https://translate.yandex.net/api/v1.5/tr.json/translate");
return result;
}