bdd2

Компонента перевода средствами Google Translate

Опубликовал Sergey Matrunchik (SkyManPHP) в раздел Программирование - Внешние компоненты

Данная компонента включает возможность перевода из одного языкового направления на другой. Перевод осуществляется посредством экранированного (подобно htmlspecialchars) HTTP-запроса на сервис translate.google.com и возврата уже переведенного значения.

В отличие от других сервисов перевода, таких как Babel Fish и AOL, которые используют технологию SYSTRAN (английский), Google, как и Translate.ru использует собственное программное обеспечение. Видимо, используется самообучаемый алгоритм статистического машинного перевода.

Список языков не ограничен компонентой.

Пример использования библиотеки (1Сv7):


Рез = ЗагрузитьВнешнююКомпоненту("HTTPTrans.dll");                    

Попытка
     Состояние("Загрузка внешней компоненты");
     Переводчик = СоздатьОбъект("Addin.HTTPTranslator");
Исключение
     Возврат;
КонецПопытки;

Переводчик.ПроксиАдрес         = "192.168.1.1";
Переводчик.ПроксиПорт          = 8080;
Переводчик.ПроксиИмя           = "myusername";
Переводчик.ПроксиПароль        = "mypassword";
Переводчик.НаправлениеПеревода = "ru-" + РеквизитПеревестиНаЯзык;
НовоеНаименование              = Переводчик.Перевести(Наименование);


Компонента работает и в 1Cv8


Если будут пожелания по развитию компоненты - буду рад помочь и оптимизировать, включая Ваши пожелания. :)

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

Наименование Файл Версия Размер
Файл-библиотека
.dll 72,00Kb
23.11.11
44
.dll 72,00Kb 44 Скачать

См. также

Добавить вознаграждение
Комментарии
1. Виктор Гавриков (vitekryazan) 23.11.11 19:54 Сейчас в теме
2. Алексей Плутенко (Noy) 1053 24.11.11 13:06 Сейчас в теме
Тут же инфостарте есть обработка для перевода без ВК.
Автор Александр PRADA Максюк

Примерно так:
ВинХТТП = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
		СтрЗапроса = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" + ТекстДляПеревода + "&langpair=ru|uk";
		ВинХТТП.Open("GET",СтрЗапроса,0);
		ВинХТТП.Send();
		РезультатПеревода = ВинХТТП.ResponseText();

...Показать Скрыть
kuznecoff@gmail.com; +1 Ответить
3. Sergey Matrunchik (SkyManPHP) 14 24.11.11 13:51 Сейчас в теме
А как по поводу подключения через прокси аутентификации на нем, если он отличается от системного?
4. Ийон Тихий (cool.vlad4) 41 24.11.11 14:13 Сейчас в теме
(3) http://msdn.microsoft.com/en-us/library/windows/desktop/aa384059(v=vs.85).aspx - setProxy...
а также можно использовать и системное значение (его можно менять через netsh, либо реестр, либо через proxycfg) ...
5. Ийон Тихий (cool.vlad4) 41 24.11.11 14:15 Сейчас в теме
ВинХТТП.SetProxy(0,"адрес:порт");
ВинХТТП.SetCredentials("ProxyLogin","ProxyPassword",1);
6. Sergey Matrunchik (SkyManPHP) 14 24.11.11 14:33 Сейчас в теме
7. v_id (v_id) 85 07.12.11 09:03 Сейчас в теме
У одно меня перестало работать?
12.07.2011 09:00:16 - Plain response is: google.language.callbacks.id100('22', null, 403, 'Suspected Terms of Service Abuse. 
Please see http://code.google.com/apis/errors', 200)
8. Sergey Matrunchik (SkyManPHP) 14 07.12.11 10:52 Сейчас в теме
(7) v_id, Вы работаете не через прокси, да?
9. Sergey Matrunchik (SkyManPHP) 14 07.12.11 11:23 Сейчас в теме
Мда.. Оказывается, Google закрыл лавочку. :(
Цитирую: " Google Translate API v2 is now available as a paid service only, and the number of requests your application can make per day is limited. For website translations, we encourage you to use the Google Website Translator gadget."

То есть варианты - использовать уже платное АПИ версии 2, либо пробовать посылать запросы на сайт как "Google Website Translator gadget". Нужно будет поэкспериментировать.

Либо все-таки попробовать использовать АПИ версии 1, но и там они сообщают, что оно является устаревшим с 1 декабря 2011 года:
"Google Translate API v1 was officially deprecated on May 26, 2011; it was shut off completely on December 1, 2011. For text translations, you can use the Google Translate API v2, which is now available as a paid service. For website translations, we encourage you to use the Google Website Translator gadget."
10. v_id (v_id) 85 09.12.11 16:38 Сейчас в теме
(8) SkyManPHP, работал через прокси, причем сносно переводил даже фразы типа названия должностей
11. v_id (v_id) 85 09.12.11 16:40 Сейчас в теме
Решение от cool.vlad4 тоже не взлетело, увы
12. v_id (v_id) 85 21.02.12 15:51 Сейчас в теме
(9) SkyManPHP, в сзязи с этим нельзя ли переделать компоненту?
Очень хочется бесплатного перевода.
SkyManPHP; +1 Ответить
13. Sergey Matrunchik (SkyManPHP) 14 21.02.12 16:56 Сейчас в теме
Я переделал компоненту, но для этого нужно указывать API Key. Это решение подходит для тех, кто готов платить. Мы в компании переводим с помощью этой компоненты. За прошлый месяц - 0.05 Mb символов было переведено и это стоило $1. В это месяце будет намного больше символов. Разве 10-20 долларов в год - это очень много?

Все же, могу создать компоненту и на основании PHP API от Yandex, если очень надо. :)
14. v_id (v_id) 85 21.02.12 17:02 Сейчас в теме
(13) SkyManPHP,
Все же, могу создать компоненту и на основании PHP API от Yandex, если очень надо. :)


Буду премного благодарен, да и не я один.
15. Sergey Matrunchik (SkyManPHP) 14 21.02.12 17:52 Сейчас в теме
Хорошо, тогда сделаю и сюда сброшу ссылку.
16. Некто Какой-то (non-y) 25.01.13 15:18 Сейчас в теме
:) а если нет прокси-сервера и просто опустить эти 4 строки в параметрах...(7.7) то должен вернуть перевод?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа