|   |   | 
| 
 | перевод слов | ☑ | ||
|---|---|---|---|---|
| 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; Возврат ответ; КонецФункции но не работает - ответ - всегда пустая строка. Если вручную пользуюсь сервисом - то переводит,автоматом - нет. Помогите найти ошибку. | |||
| 1
    
        Fragster гуру 21.09.15✎ 10:53 | ||||
| 2
    
        vip67 21.09.15✎ 10:54 | 
        (1) это что?     | |||
| 3
    
        Fragster гуру 21.09.15✎ 10:55 | 
        (2) я как бы намекаю, что специально обученный сотрудник сделает это качественнее, чем робот. Ну и второй сотрудник, который потом результат первого будет проверять.     | |||
| 4
    
        vip67 21.09.15✎ 10:56 | 
        (3) а если позиций около 500?     | |||
| 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
    
        Nuobu 21.09.15✎ 11:28 | ||||
| 9
    
        vip67 21.09.15✎ 11:51 | 
        (7) спс! счас попробую, ключ - это что? и чему равно направление?     | |||
| 10
    
        vip67 21.09.15✎ 11:53 | 
        а... почитал, понял!     | |||
| 11
    
        vip67 21.09.15✎ 12:00 | 
        (8) с ключем разобрался, а где рыска?     | |||
| 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
    
        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
    
        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)); См. также: СпособКодированияСтроки Глобальный контекст, метод РаскодироватьСтроку -------------------------------------------------------------------------------- Методическая информация | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |