8 мая

Как обойти некоторые ограничения google translate

JavaScriptGoogle Chrome
Я опишу два финта, с помощью которых можно обойти некоторые ограничения google translate.

1. Ограничение на количество символов у google translate online то ли 3900, то ли 5000 символов. Иногда нужно больше, а создавать html-файл с текстом неохота. Чтобы обойти это ограничение, создайте html-файл следующего содержания:

<!DOCTYPE HTML>
<html>
 <head>
   <title>Google translator without limits.</title>
 </head>

 <body>
Google translator without limits.  Here comes the English text. It is necessary that translator to work. 
If you do not translate from English, insert the text in your language. Not in the window, but in html.<br>
<textarea id="test" rows="10" cols="45" placeholder="Paste text into this window."></textarea>
<p id="result"></p>
<script>
var textarea = document.getElementById('test');
var result = document.getElementById('result');

function updateResult() {
    result.innerHTML = textarea.value.replace(/\n/g, '<br>');
}

textarea.oninput = updateResult;

</script>
 </body>
</html>


Откройте этот файл в браузере Google Chrome. Если у Вас переводчик не срабатывает автоматически, запустите его через правую кнопку мыши. Если Вам надо переводить не с английского, вставьте в html несколько предложений на нужном Вам языке вместо тех, что там записаны после тэга body.

Как видите, у нас имеется тэг textarea, в который мы вставляем текст для перевода. И тэг p, в который попадает текст сразу после вставки. А google translator налету его переводит. Метод replace заменяет конец строки на тэг br.

2. Можно ли получить результат перевода с помощью javascript? Оказывается, да. Чтобы убедиться в этом, создайте такой html-файл:


<!DOCTYPE HTML>
<html>
 <head>
   <title>alert(translation)</title>
 </head>

 <body>
   <div id="div1">This work presents the efficient, matrix-free finite-element library hyper.deal for solving partial differential equations in two to six dimensions with high-order  discontinuous Galerkin methods.It builds upon the low-dimensional finite-element library deal.II to create complex low-dimensional meshes and to operate on them individually. These meshes are combined via a tensor product on the fly and the library provides new special-purpose highly optimized matrix-free functions exploiting domain decomposition as well as shared memory via MPI-3.0 features.</div>

  <a href="URL" onclick="alert(document.getElementById('div1').innerHTML);">...</a>

 </body>
</html>

Откройте файл в браузере, включите переводчик и нажмите на ссылку с тремя точками. Вы увидите следующее:


<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">В этой работе представлена ​​эффективная безматричная библиотека конечных элементов hyper.deal для решения дифференциальных уравнений в частных производных в двух-шести измерениях с помощью разрывных методов высокого порядка Галеркина. Она основана на низкоразмерной библиотеке конечных элементов. II для создания сложные малогабаритные сетки и оперировать ими индивидуально. </font><font style="vertical-align: inherit;">Эти сетки объединяются через тензорный продукт на лету, и библиотека предоставляет новые специализированные высокооптимизированные функции без матрицы, использующие декомпозицию домена, а также разделяемую память через функции MPI-3.0.</font></font>

Как видим добавились тэги font, которые легко удалить программно.

Это открывает новые возможности в бесплатном переводе сайтов на более 100 языков. Можно разместить каждое предложение в тэги div и каждые 5 секунд проверять все дивы на странице на появление тэгов font. По мере того как посетитель прокручивает страницу, всё новые дивы переводятся, и их можно отправлять аяксом на сервер.

Хотя качество перевода улучшилось, он всё ещё далёк от совершенства. Я бы сделал возможность читателям предлагать свой вариант перевода. Для этого каждую точку в конце предложения сделать ссылкой, при нажатии на которую появляется предложение на исходном языке и варианты перевода, предложенные другими читателями.

Это ж можно перевести Хабр на 100 языков. Если Вы этого не сделаете, я сам этим займусь, и заработаю кучу денег. Вообще-то мне куча денег не нужна, но у меня есть несколько бездомных родственников. Им бы я купил по квартирке у моря.

На этом прощаюсь. Успехов.
Теги:googletranslate
Хабы: JavaScript Google Chrome
+6
2,8k 35
Комментарии 1
Лучшие публикации за сутки

Партнерские материалы

Разместить