Cómo sortear algunas restricciones de Google Translate

Describiré dos fintas con las que puede omitir algunas de las limitaciones del traductor de Google.

1. El límite en el número de caracteres para el traductor de Google en línea es de 3900 o 5000 caracteres. A veces necesitas más, pero renuencia a crear un archivo html con texto. Para evitar esta limitación, cree un archivo html con el siguiente contenido:

<!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>


Abre este archivo en Google Chrome. Si su traductor no funciona automáticamente, ejecútelo con el botón derecho del mouse. Si necesita traducir no del inglés, inserte en html varias oraciones en el idioma que necesita en lugar de las escritas allí después de la etiqueta del cuerpo.

Como puede ver, tenemos la etiqueta textarea en la que insertamos el texto para traducirlo. Y la etiqueta p, que obtiene el texto inmediatamente después de la inserción. Un traductor de google lo traduce sobre la marcha. El método de reemplazo reemplaza el final de la línea con la etiqueta br.

2. ¿Es posible obtener el resultado de la traducción usando javascript? Resulta que si. Para verificar esto, cree el siguiente archivo 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>

Abra el archivo en un navegador, habilite el traductor y haga clic en el enlace con tres puntos. Verá lo siguiente:


<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">    ​​     hyper.deal         -        .       . II         . </font><font style="vertical-align: inherit;">       ,         ,   ,       MPI-3.0.</font></font>

Como puede ver, se han agregado etiquetas de fuente, que son fáciles de eliminar mediante programación.

Esto abre nuevas posibilidades en la traducción gratuita de sitios a más de 100 idiomas. Puede colocar cada oración en etiquetas div y cada 5 segundos verifique todos los divs en la página para que aparezcan las etiquetas de fuente. A medida que el visitante se desplaza por la página, todos los divs nuevos se traducen y se pueden enviar ajax al servidor.

Aunque la calidad de la traducción ha mejorado, todavía está lejos de ser perfecta. Permitiría a los lectores ofrecer su propia versión de la traducción. Para hacer esto, haga que cada punto al final de la oración sea un enlace, cuando se hace clic, aparece una oración en el idioma de origen y las opciones de traducción propuestas por otros lectores.

Bueno, es posible traducir Habr a 100 idiomas. Si no lo hace, yo me ocuparé de ello y ganaré mucho dinero. Realmente no necesito mucho dinero, pero tengo varios familiares sin hogar. Les compraría un apartamento junto al mar.

Me despido de esto. Éxitos

All Articles