Автоматический перевод на странице сайта

В связи с тем, с 1 декабря 2011 года Google Language API  стал платным многие веб-приложения с автоматическим переводом перестали работать. Что делать вебмастерам, которым этот сервис помогал в повседневной жизни? Что делать тем у кого работали приложения на основе перевода текстов "на лету"? Пришлось искать альтернативу.

Многие ждали подобный сервис от Яндекса, но их вариант API для перевода текстов пока не готов. Я нашел вполне себе рабочий вариант от Microsoft - Microsoft Translator AJAX API. Радость от находки быстро закончилась, когда я начал изучать как его подключать.

Дело в том, что в инструкции предлагают получить Access Token, а для этого надо зарегистрироваться на Azure Marketplace (Azure это облачный сервис от Microsoft), потом зарегистрировать свое приложение в разделе разработчиков Azure. Я был переполнен решительности и все это сделал, даже было хотел написать скрипт, который получает Access Token на основе полученных данных, но не тут-то было. Я посмотрел на код который они почему выложили в виде картинки и пришел к выводу что этот самый Access Token и не нужен вовсе. Наверное я просто не внимательно читал, там все на английском :) 

Оказалось, что для запроса на перевод с помощью Ajax нужен только appID, которого я не смог найти в Azure. Итак, вот результат. Инструкция по подключению Bing Translator API к вашему сайту:

1. Получить Live ID если у вас его еще нет

2. Добавить свое веб-приложение в панели вебмастера bing

3. Составить скрипт для перевода с использованием Application ID, который будет выдан вашему приложению.

В целом последовательность действий практически такая же как была у Google. Приведу пример js-функции, которая осуществляет перевод.

function MS_Translate( src_selector, dst_selector ){ 
  window.mycallback = function( response ){ 
$( dst_selector ).val( response );

var text = encodeURI( $( src_selector ).val() );
var appId = ""; 
var url = "http://api.microsofttranslator.com/V2/Ajax.svc/Translate?oncomplete=mycallback&appId=" + appId + "&to=en&text=" + text; 
var s = document.createElement("script"); 
s.src = url;
$("head").get(0).appendChild(s);
}
Функция принимает в качестве параметров селекторы исходного текста и конечного. У меня это <input> элементы. Далее регистрируется функция обратного вызова, которая присвоит полученное значение нужному элементу. Потом создается элемент <script> с адресом вызова переводчика, который вставляется в документ. Ответ который будет получен от сервера Bing Translator выглядит примерно так:

mycallback("Hello World");

Параметры запроса:

oncomplete - функция которая вызывается для ответа

appID - идентификатор приложения из www.bing.com/developers/appids.aspx

from - (не обязательный параметр) язык с которого надо перевести. Если не указан, то язык источника выбирается автоматически. Список поддерживаемых языков тут: http://msdn.microsoft.com/en-us/library/hh456380.aspx

to - язык на который надо перевести.

text - URL-encoded строка с текстом который нужно перевести.

Остается надеется, что Microsoft не сделает этот сервис платным.

 

Follow buzzich on Twitter

Комментарии

Оставить комментарий

CTRL+Enter

Павел11.12.2015 18:32
Increadible, тут речь идет о том, чтобы встроить перевод в свое приложение, а не использовать стороннее.

Increadible30.10.2015 19:26
Для автоматического перевода страницы лучше пользоваться расширением гугл переводчика!http://compage1.ru/