Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Перевод с google translate


Автор: DoZENT 1.2.2010, 19:08
Привет всем! Никто не работал с google translate через AJAX запросы? Делаю, грубо говоря, вот так:

Код

   function submitChange() {
      var value = document.getElementById('source').value;
      var src = document.getElementById('src').value;
      var dest = document.getElementById('dst').value;
      google.language.translate(value, src, dest, translateResult);
      return false;
    }

код работает, но только с ограничением на кол-во символов (что-то около 300 символов). Мне же надо сделать перевод текста состоящего из 1000 символов максимум.  Идея разбивать текст на предложения (по точкам) не подходит - точка может отделять ведь не только предложения, но может быть просто сокращением и т.д. Тем более, после около десятого запроса подряд гугл перестает отвечать - видимо стоит какое-то ограничение.
Есть какие-то идеи?

Автор: IDVsbruck 1.2.2010, 22:01
Ага. Оплатить услугу.
Тогда снимется и ограничение на длину перевода, и на количество запросов к сервису за единицу времени (есть там и такое).

Автор: DoZENT 1.2.2010, 22:41
Цитата(IDVsbruck @ 1.2.2010,  22:01)
Ага. Оплатить услугу.
Тогда снимется и ограничение на длину перевода, и на количество запросов к сервису за единицу времени (есть там и такое).

а, тогда все понятно. спасибо за ответ! не подскажите, где можно расценки найти и вообще страницу гугла про эту услугу?

Автор: IDVsbruck 2.2.2010, 20:33
Сталкивался с таким, когда имел дело с запросами на Гугл Мепс, но платить не хотел, поэтому темой не занимался.
Думаю, что тут похоже.

Во-первых, ограничение на строку существенно больше - при GET-запросе ограничено УРЛом (в иИЕ 2048 символов), при POST-запросе - 5 тыс. символов. Так что просто сконфигурируй правильно свои запросы и с длиной все получится.
Во-вторых, на Гугле есть форумы Google AJAX API. Посмотрел - многие жалуются на невозможность совершения большего количества запросов за единицу времени. Им советуют заключить платное соглашение с Гуглом на безграничное использование инструмента. Как и расценки не видел. Поищи, может найдешь ...

Автор: DoZENT 2.2.2010, 20:49
Цитата(IDVsbruck @ 2.2.2010,  20:33)
Сталкивался с таким, когда имел дело с запросами на Гугл Мепс, но платить не хотел, поэтому темой не занимался.
Думаю, что тут похоже.

Во-первых, ограничение на строку существенно больше - при GET-запросе ограничено УРЛом (в иИЕ 2048 символов), при POST-запросе - 5 тыс. символов. Так что просто сконфигурируй правильно свои запросы и с длиной все получится.
Во-вторых, на Гугле есть форумы Google AJAX API. Посмотрел - многие жалуются на невозможность совершения большего количества запросов за единицу времени. Им советуют заключить платное соглашение с Гуглом на безграничное использование инструмента. Как и расценки не видел. Поищи, может найдешь ...

я сейчас делаю точно как в примерах у гугла.
Код

    function submitChange() {
      var value = document.getElementById('source').value;
      var src = document.getElementById('src').value;
      var dest = document.getElementById('dst').value;      
      
      var resultBody = document.getElementById("results_body");        
      resultBody.innerHTML = "";
      
      if (value){        
        google.language.translate(value, src, dest, function(result){            
        if (!result.error){            
            resultBody.innerHTML = result.translation;
        }
        else {
            resultBody.innerHTML = 'Невозможно перевести текст';
        }
      });
      
      if (!resultBody.innerHTML){
        resultBody.innerHTML = 'Невозможно перевести текст (превышено количество знаков или попыток в минуту)';
      }
      
      return false;      
     } 
    
    }

при этом если кол-во символов > 350 примерно, то выдается сообщение 'Невозможно перевести текст (превышено количество знаков или попыток в минуту)'. Что же я делаю не так, подскажите пожалуйста, как добиться этих 5000 символов, о которых вы говорите?

Автор: IDVsbruck 2.2.2010, 21:15
http://groups.google.com/group/google-ajax-search-api/browse_thread/thread/924d04c355ae50cb# ссылочка с таким же вопросом и ответом на него.
Суть в том, что со странички не получится отправить POST-запрос Гуглу. Надо проксировать запрос через сервер: кидать по ajax'у на сервер строку, а сервер сделает запрос Гуглу, получит ответ и вернут клиенту. Кстати, так можно попробовать обойти ограничение на количество запросов, используя список прокси-серверов (думаю, список серверов надо иметь дли-и-инный, потому как таких "умных" много может найтись и попыток может быть много) smile
В последнем посте по ссылке есть даже примеры реализации отправки запросов с сервера на Джаве, ПэХаПэ, Перле, Флеше.

Автор: DoZENT 2.2.2010, 22:14
Цитата(IDVsbruck @ 2.2.2010,  21:15)
http://groups.google.com/group/google-ajax-search-api/browse_thread/thread/924d04c355ae50cb# ссылочка с таким же вопросом и ответом на него.
Суть в том, что со странички не получится отправить POST-запрос Гуглу. Надо проксировать запрос через сервер: кидать по ajax'у на сервер строку, а сервер сделает запрос Гуглу, получит ответ и вернут клиенту. Кстати, так можно попробовать обойти ограничение на количество запросов, используя список прокси-серверов (думаю, список серверов надо иметь дли-и-инный, потому как таких "умных" много может найтись и попыток может быть много) smile
В последнем посте по ссылке есть даже примеры реализации отправки запросов с сервера на Джаве, ПэХаПэ, Перле, Флеше.

спасибо за то что уделяете время моему посту! поставил вам + =)
если честно, я ничего не понял из тех примеров((( нет ли готового примера как перевести строку из 1000 символов на другой язык? я, к сожалению, первый раз сталкиваюсь с javascript и всеми этими вещами, но проект надо сделать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)