gifts2017

Быстрый яндекс-переводчик для 1С. Работающий с помощью API

Опубликовал Alexander Shvets (Alexander.Shvets) в раздел Обработки - Универсальные обработки

Быстрый переводчик для 1С. Работающий с помощью API. Преимущество - это отказоустойчивость и быстродействие. Без создания тхт-файлов, не теребя HTTP-соединение и POST (Используется XMLHttp).

Блуждая по просторам Инфостарта заметил публикацию http://infostart.ru/public/88054/... Посмотрел на код и немного удивился подходу... Что и натолкнуло на мысль опубликовать данный пример работы с API для перевода. Воизбежания нареканий на плагиат =)))))) Взял АПИ-Яндекса 

Преимущество - это отказоустойчивость и быстродействие. Без создания тхт-файлов, не теребя HTTP-соединение.

Использую как всегда любимые функции

encodeURI (жаба)

XMLReader (XMLчтение 1с)

XMLHttp (GetCOMObject("", "Microsoft.XMLHTTP");)

 

API-key "вшит" в коде. Получить его можно на оф. сайте Яндекса. И ручками заменить, при потере работоспособности.
 

Скачать файлы

Наименование Файл Версия Размер
Яндекс переводчик.epf 105
.epf 7,30Kb
23.04.13
105
.epf 7,30Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. Макас (makas) 23.04.13 14:22
Я незнаю зачем и такая штука необходима, но плюс за идею :)
2. Alexander Shvets (Alexander.Shvets) 23.04.13 14:30
Есть клиент. Занимается сетью магазинов "купи-продай". Товары импортные... При создании номенклатур менеджеры устали лезть в гугл и переводить названия. В решении код является частью обработчика элемента формы. Для демонстрации привел к виду обработки.
3. Сергей Кудашкин (sikuda) 23.04.13 17:41
Фраза:
не теребя HTTP-соединение и POST (Используется XMLHttp). COM+!!!
Не понятна в современных условиях 2013. Если 1С, то лучше использовать ее нативные компоненты...
4. Alexander Shvets (Alexander.Shvets) 23.04.13 18:24
Есть один минус - использование ВК.
Зачастую проблемы начинаются при использовании ВК на сервере в управляемом приложении...

Если использовать внешние компоненты - тогда почему же не использовать локальный переводчик?
Посему - считаю что решение оптимальное и универсальное.
5. Николай Гусев (GusevNA) 27.04.13 16:22
(3) sikuda, HTTP-соединение не всегда корректно работает с HTTPS-запросами. Согласен с автором: лучше использовать XMLHttp, тем более, что это стандартный компонент Windows.
6. Александр Крынецкий (echo77) 28.04.13 12:02
(5) А под Linux как будет работать?
7. Николай Гусев (GusevNA) 28.04.13 12:33
(6) echo77, интересный вопрос. Можно потестировать HTTP-соединение на HTTPS-запросах под Linux. Может, будет стабильно работать. Тогда можно проверять версию ОС и под Windows использовать XMLHttp, а под Linux - HTTP-соединение.
8. Илья Воробьев (ilyav) 28.04.13 12:45
А у гугла есть подобный api?
9. Николай Гусев (GusevNA) 28.04.13 12:54
У Гугла API перевода платный. Бесплатный прикрыли. Раньше я использовал свою обработку http://infostart.ru/public/88054/. Если купить доступ у гугла, обработку несложно переделать под платный API.
10. Alexander Shvets (Alexander.Shvets) 29.04.13 01:32
(9) GusevNA,
api используется халявный. Правда на яндексе... Но не вижу сильно большой разницы именно в переводчике... по одному слову можно но не более... Раз на раз... На мой взгляд

(6) echo77,
В общем на никсах будет работать... Только вот тогда нужно будет юзать как то так...

через жабоскрипт
var req = new XMLHttpRequest();
так как это объект, встроенный в JavaScript...

В функцию передать строку УРЛ... Вуаля - кроссплатформенность...

Но для винды не предусматривал лишних телодвижений...
11. Николай Гусев (GusevNA) 29.04.13 08:53
(10) Alexander.Shvets, Гугл больше языков поддерживал, а так большой разницы я не заметил. Хотя Яндексу можно несколько фраз одновременно передавать в запросе, а в закрывшемся API Гугла, по-моему, нельзя было - только одну.
12. Alexander Shvets (Alexander.Shvets) 29.04.13 10:17
(11) GusevNA,
Точно не помню на счет Гугла, поверю на слово =)
Но мне кажется умел, дело в том, что всю фразу надо было приобразовывать в URI перед передачей и пихать в строку хттп-запроса. без преобразования можно было передать одно слово, и то без специальных знаков...

Яндекс умеет переводить несколько слов... Но смыслового перевода от него не дождешься...
Передать можно целое предложение, но переведет он их все равно по слову, без учета пунктуации и логики. По этому и сказал, что разницы не много.
13. Сергей Ожерельев (Поручик) 29.04.13 10:58
(12) Вот именно поэтому я использую переводчик гугля. Там хоть фразы в обе стороны получаются более-менее осмысленные, а иногда и вовсе литературные.
14. Евгений _ (MrUnnamed) 29.04.13 11:38
15. Alexander Shvets (Alexander.Shvets) 29.04.13 13:26
(14) MrUnnamed,

Совсем не то... В описании говорится, что упор делал на оптимизацию... Так как похожих вещей прудь-пруди...

Вот, например, в вашей публикации Функции ЗакодироватьURL, ПеревестиВСистему, UnicodeToUtf8 довольно спицефические, как на мой взгляд... Лишние телодвижения по каждому символу...

Плюс никакого чтения XML и обработок ошибок...
Если серв передумает отвечать - 1С упадет на крит. ошибку...

Скорее всего вы даже не открывали исходный код, перед тем как прокомментировать сию публикацию...

С Уважением...
16. Виталий Фантич (Boudybuilder) 05.05.13 15:18
Я вот с работой АРІ новичок.
Только только учусь.
Написал кожд , но что то на Яндекс Диске не авторизируется. Где у меня ошибка?


ЯДиск = Новый HTTPСоединение ("webdav.yandex.ru","443",,,,Истина);
ИмяФайла = ПолучитьИмяВременногоФайла();
ЯДиск.Получить("PROPFIND / HTTP/1.1
|Host: webdav.yandex.ru
|Accept: */*
|Depth: 0
|Authorization: Basic "+мЛогин+" : "+мПароль,ИмяФайла);

Вот не пойму , правильно я делаю или нет?
17. Alexander Shvets (Alexander.Shvets) 08.05.13 12:24
Про авторизацию почитай здесь.

Если пытаешься авторизироваться через "Basic" То скорее всего забыл логин и пароль перевести в соответствующую кодировку (Base64). Читать здесь
18. Сергей Чигирь (Kserken) 06.07.13 11:50
Работает действительно быстро. Плюс автору за реализацию.
19. yinfo (FireFox_Manager) 10.03.14 05:26
У меня почему-то вот такую ошибку выдает (в УТ 11):

{Обработка.ЯндексПереводчик.Форма.Форма.Форма(43)}: Ошибка при вызове метода контекста (Eval)
	Сообщение = ScrCtrl.eval("var uri='"+Строка+"'; encodeURI(uri);") ;
по причине:
Произошла исключительная ситуация (Ошибка компиляции Microsoft JScript): Предполагается наличие ';'
20. Alexander Shvets (Alexander.Shvets) 11.03.14 12:53
(19) yinfo,
Предполагаю ОС старая?
У ХРюши есть известные проблемы с Microsoft JSc. На новых ОС (7,8) должно работать с предустановленными драйверами.
21. Артём Рогов (ben_art) 01.06.15 13:16
Подскажите пожалуйста , можно ли подключить автоопределение языка ?
22. Alexander Shvets (Alexander.Shvets) 05.06.15 18:35
(21) ben_art, На момент создания обработки - апи не предоставляла такой возможности. Сейчас данная возможность есть у Гугла Google Language API. Посмотрите здесь
http://abrdev.com/?p=286
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа