Traducir texto gratis en páginas web
Actualizado: 17 de noviembre del 2022
Por: Norfi Carrodeguas
Por: Norfi Carrodeguas
Servicios de traductores que se pueden usar gratis en blog o sitios web para traducir a otros idiomas, manual o automáticamente, con PHP o JavaScript.

Después de que Google desactivara su famoso y clásico servicio gratis del traductor para sitios web, los que no podemos el lujo de pagar hemos tenido que buscar otras alternativas.
En este artículo comparto algunos ejemplos.
Traducir contenido de páginas usando Yandex
Yandex el servicio ruso proporciona un servicio de traducción para sitios web gratis.Se puede emplear de varias formas.
Podemos insertar un widget o usar su API gratis que proporciona varias opciones.
Para esto último es necesario registrarnos.
Traducir texto con Yandex
A continuación un ejemplo de cómo dar la opción de traducir un bloque de texto al inglés, presionando un botón.Esta línea de texto se traduce desde el español al idioma inglés, usando el servicio gratis de Yandex.
Código JavaScript y JQuery para traducir con Yandex
HTML
<div id="source">This is a chair</div>
<div id="output"></div>
<button id="translate" class="btn tw">Traducir</button>
CARGAR JQUERY
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
JAVASCRIPT
<script>
var url = "https://translate.yandex.net/api/v1.5/tr.json/translate",
keyAPI = "API PERSONAL DE YANDEX";
document.querySelector('#translate').addEventListener('click', function() {
var xhr = new XMLHttpRequest(),
textAPI=$("#source").text();
data = "key="+keyAPI+"&text="+textAPI+"&lang=en";
xhr.open("POST",url,true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send(data);
xhr.onreadystatechange = function() {
if (this.readyState==4 && this.status==200) {
var res = this.responseText;
var json = JSON.parse(res);
if(json.code == 200) {
document.querySelector('#output').innerHTML = json.text[0];}
else {
document.querySelector('#output').innerHTML = "Error Code: " + json.code;}
}}
}, false);
</script>
Traducir texto a otro idioma usando MyMemory
MyMemoryes un servicio de traducción gratis.Para usarlo no es necesario ninguna API, solo incluir el texto a traducir y parámetros que indiquen los idiomas en una petición GET.
Se requiere que el texto sea escapado y lamentablemente existe la limitación de 500 bytes.
Ejemplo de petición GET a MyMemory
Para traducir al inglés el texto: "Esto es una mesa", usamos la siguiente dirección.https://api.mymemory.translated.net/get?q=Esto es una mesa&langpair=es|en
Los parámetros "es|en" indican que se debe traducir del español al inglés.Copia y pega la instrucción anterior en la barra de direcciones del navegador y presiona la tecla Enter.
La respuesta se recibe en formato JSON por lo que se debe decodificar con Javascript o PHP.
Lee más información en las Especificaciones técnicas del servicio.
Traducir texto con MyMemory y PHP
El servicio de MyMemory se puede usar de dos formas en páginas web: enviando la petición, recibiendo la respuesta y decodificándola con JavaScript o con PHP.A continuación un ejemplo de cómo traducir un bloque de texto en español al inglés con PHP.
Texto a traducir:
"El servicio MyMemory es una alternativa libre y gratuita, para traducir texto entre varios idiomas de forma sencilla, cuando no se trata de gran cantidad de datos."
Respuesta:The MyMemory service is a free alternative, to translate text between multiple languages in a simple way, when it is not a large amount of data
Código PHP para traducir texto con MyMemory
<?php
$textt = 'Texto a traducir';
$json = file_get_contents('https://api.mymemory.translated.net/get?q='.urlencode($textt).'&langpair=es|en');
if (!empty($json)) {
$obj = json_decode($json);
echo $obj->responseData->translatedText;
}
?>
Comparte
Facebook
Twitter