Comment contourner certaines restrictions de Google Translate

Je vais décrire deux feintes avec lesquelles vous pouvez contourner certaines des limitations de google translate.

1. La limite du nombre de caractères pour google translate en ligne est de 3900 ou 5000 caractères. Parfois, vous avez besoin de plus, mais de la réticence à créer un fichier html avec du texte. Pour contourner cette limitation, créez un fichier html avec le contenu suivant:

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


Ouvrez ce fichier dans Google Chrome. Si votre traducteur ne fonctionne pas automatiquement, lancez-le via le bouton droit de la souris. Si vous devez traduire à partir d'une langue autre que l'anglais, insérez dans le html plusieurs phrases dans la langue dont vous avez besoin, au lieu de celles qui y sont écrites après la balise body.

Comme vous pouvez le voir, nous avons la balise textarea dans laquelle nous insérons le texte à traduire. Et la balise p, qui obtient le texte immédiatement après l'insertion. Un traducteur google le traduit à la volée. La méthode replace remplace la fin de la ligne par la balise br.

2. Est-il possible d'obtenir le résultat de la traduction en utilisant javascript? Il s'avère que oui. Pour vérifier cela, créez le fichier html suivant:


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

Ouvrez le fichier dans un navigateur, activez le traducteur et cliquez sur le lien avec trois points. Vous verrez ce qui suit:


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

Comme vous pouvez le voir, des balises de police ont été ajoutées, faciles à supprimer par programme.

Cela ouvre de nouvelles possibilités dans la traduction gratuite de sites dans plus de 100 langues. Vous pouvez placer chaque phrase dans des balises div et toutes les 5 secondes, vérifiez toutes les divs sur la page pour que les balises de police apparaissent. Lorsque le visiteur fait défiler la page, toutes les nouvelles divs sont traduites et peuvent être envoyées ajax au serveur.

Bien que la qualité de la traduction se soit améliorée, elle est encore loin d'être parfaite. Je permettrait aux lecteurs de proposer leur propre version de la traduction. Pour ce faire, faites de chaque point à la fin de la phrase un lien, lorsque vous cliquez dessus, une phrase apparaît dans la langue source et les options de traduction proposées par d'autres lecteurs.

Eh bien, il est possible de traduire Habr en 100 langues. Sinon, je m'en occuperai moi-même et gagnerai beaucoup d'argent. Je n'ai pas vraiment besoin de beaucoup d'argent, mais j'ai plusieurs parents sans abri. Je leur achèterais un appartement en bord de mer.

Je dis au revoir à cela. Succès.

All Articles