|
перевод слов | ☑ | ||
---|---|---|---|---|
0
vip67
21.09.15
✎
10:50
|
Всем привет!
есть задача перевести наименования в справочнике с одного языка на другой. воспользовался этой функцией: Функция глПеревод(исх,направление = "ru|uk") Экспорт Строка=Исх; fromLang="Ru"; toLang ="Uk"; Урл="http://translate.yandex.net/api/v1.5/tr/translate?lang=ru-uk&text=";+Строка; Соединение = ПолучитьCOMОбъект("","Microsoft.XMLHTTP"); Попытка Соединение.open("GET", урл,0); //0 - синхронный (по другому 1с не умеет), 1 - асинхронный Исключение Сообщить("Ошибка обработки"); КонецПопытки; Соединение.send(); Сч=1; Пока (Соединение.readyState) <> 4 Цикл Сч=Сч+1; Если Сч=1000 Тогда Прервать; КонецЕсли; КонецЦикла; ответ = Соединение.responseXML.text; Возврат ответ; КонецФункции но не работает - ответ - всегда пустая строка. Если вручную пользуюсь сервисом - то переводит,автоматом - нет. Помогите найти ошибку. |
7 |
||
1
Fragster
гуру
21.09.15
✎
10:53
|
2 |
|||
2
vip67
21.09.15
✎
10:54
|
(1) это что?
|
3 |
||
3
Fragster
гуру
21.09.15
✎
10:55
|
(2) я как бы намекаю, что специально обученный сотрудник сделает это качественнее, чем робот. Ну и второй сотрудник, который потом результат первого будет проверять.
|
4 |
||
4
vip67
21.09.15
✎
10:56
|
(3) а если позиций около 500?
|
5 |
||
5
Fragster
гуру
21.09.15
✎
10:59
|
(4) меньше двух часов работы, не?
|
|||
6
Chikko
21.09.15
✎
11:09
|
Глянь сюда еще:
Внимание! Начиная с версии 1.5 доступ ко всем методам API осуществляется по ключу. |
|||
7
Nuobu
21.09.15
✎
11:27
|
(0) Немного переделал твою ф-ю.
Функция глПеревод(исх,направление = "ru-uk") Экспорт Строка=Исх; Урл="http://translate.yandex.net/api/v1.5/tr/translate?lang=ru-uk&text=";+Строка; Урл = "https://translate.yandex.net/api/v1.5/tr/translate?key="; + Ключ + "&text=" + Строка + "&lang=" + направление; Соединение = ПолучитьCOMОбъект("","Microsoft.XMLHTTP"); У меня взлетело, только кодировка чуть лагает. Обрати внимание на рыску и на ключ. |
8 9 |
||
8
Nuobu
21.09.15
✎
11:28
|
11 |
|||
9
vip67
21.09.15
✎
11:51
|
(7) спс! счас попробую, ключ - это что? и чему равно направление?
|
|||
10
vip67
21.09.15
✎
11:53
|
а... почитал, понял!
|
|||
11
vip67
21.09.15
✎
12:00
|
(8) с ключем разобрался, а где рыска?
|
12 |
||
12
Nuobu
21.09.15
✎
12:02
|
(11) В направлении))
У тебя косая, а у меня - рыска. Посмотри самую первую строку. Функция глПеревод(исх,направление = "ru-uk") Экспорт |
|||
13
vip67
21.09.15
✎
12:05
|
это я исправил, но опять возвращает пустую строку :(
и ключ получил... |
|||
14
vip67
21.09.15
✎
12:07
|
хотя, нет, брешу, возвращает не пустую строку, а аброкадабру, че с кодировкой делать-то?
|
|||
15
vip67
21.09.15
✎
12:19
|
какая кодировка возвращается?
|
16 17 |
||
16
Nuobu
21.09.15
✎
12:29
|
(15) Написано, что UTF-8.
Только что тестил, с английского на русский нормально переводит. Как перевести с UTF-8 на Виндоус-1251 пока не знаю. |
|||
17
Nuobu
21.09.15
✎
12:58
|
(15) Нашел!!!
Когда передаётся английский текст, то он нормально прописывается в путь по урл. Поэтому перевод с английского на русский нормально отображается. Когда же прописывается русский текст, то он неадекватно отображается для Яндекса. Я восопользовался этой ссылкой: http://catalog.mista.ru/public/70330/ Там есть код, который переводит строку, которую нужно перевести с русского еще куда-то в УРЛ код: Функция ПреобразованиеСтрокуВURL(Строка="") ScrCtrl = Новый COMОбъект("MSScriptControl.ScriptControl"); ScrCtrl.Language="JScript"; Сообщение = ScrCtrl.eval("var uri='"+Строка+"'; encodeURI(uri);") ; Возврат Сообщение; КонецФункции И вместо Строка=Исх; Написал Строка=ПреобразованиеСтрокуВURL(Исх); И взлетело!)) |
|||
18
vip67
22.09.15
✎
10:00
|
спс! счас попробую!
|
|||
19
vip67
22.09.15
✎
10:06
|
Да! взлетело!
СПС!СПС!СПС! |
20 |
||
20
Nuobu
22.09.15
✎
10:07
|
(19) Не за что, самому было интересно, как оно работает.
|
|||
21
Fragster
гуру
22.09.15
✎
11:05
|
Глобальный контекст.КодироватьСтроку (Global context.EncodeString)
Глобальный контекст (Global context) КодироватьСтроку (EncodeString) Синтаксис: КодироватьСтроку(<Строка>, <СпособКодированияСтроки>, <КодировкаСтроки>) Параметры: <Строка> (обязательный) Тип: Строка. Кодируемая строка. <СпособКодированияСтроки> (обязательный) Тип: СпособКодированияСтроки. Способ кодирования строки. <КодировкаСтроки> (необязательный) Тип: Строка. Кодировка, в которую преобразуется строка перед кодированием. Значение по умолчанию: UTF8. Возвращаемое значение: Тип: Строка. Описание: Кодирует строку в соответствии с выбранным способом кодирования. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). Пример: Стр1 = КодироватьСтроку("http://tools.ietf.org/папка/rfc2822", СпособКодированияСтроки.КодировкаURL); Стр2 = КодироватьСтроку("http://tools.ietf.org/папка/rfc2822", СпособКодированияСтроки.URLВКодировкеURL); Стр3 = РаскодироватьСтроку( "wiki:Шар", СпособКодированияСтроки.КодировкаURL); Сообщить(Стр1); Сообщить(РаскодироватьСтроку(Стр1, СпособКодированияСтроки.КодировкаURL)); Сообщить(Стр2); Сообщить(РаскодироватьСтроку(Стр2, СпособКодированияСтроки.КодировкаURL)); Сообщить(Стр3); Сообщить(КодироватьСтроку(Стр3, СпособКодированияСтроки.URLВКодировкеURL)); См. также: СпособКодированияСтроки Глобальный контекст, метод РаскодироватьСтроку -------------------------------------------------------------------------------- Методическая информация |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |