Google Translator PHP
Google Translator PHP es un wrapper (adaptador) de la API de Google Translator. Esta API, además de ser gratuita, permite la traducción entre más de 40 idiomas, incluidos vasco, gallego y catalán.
Algunas de las funcionalidades aportada por esta librería son:
- Traducción entre más de 40 idiomas disponibles.
- Soporte para HTML.
- Soporte mejorado para textos largos.
- Detección de idioma.
- Trabaja en entornos con y sin curl.
- Soporte para las credenciales de la API.
Ejemplos de uso
Traducción
require 'GoogleTranslator.php';
$gt = new GoogleTranslator();
echo $gt->Translate('¡Hola!', 'es', 'en');Detección de idioma
require 'GoogleTranslator.php';
$gt = new GoogleTranslator();
echo $gt->Detect('Si tratta di un piccolo testo in italiano');Traducción sin conocer el idioma origen
require 'GoogleTranslator.php';
$gt = new GoogleTranslator();
echo $gt->Translate('¡Hola!', '', 'en');
echo 'Idioma detectado: ' . $gt->GetDetectedLanguage();Listar los idiomas disponibles
require 'GoogleTranslator.php';
$gt = new GoogleTranslator();
echo '<select> ';
foreach(GoogleTranslator::AvailableLanguages() as $code => $name) {
echo "<option value="$code">$name</option>";
}
echo '</select>';Observaciones
Traducción de textos largos
Una de las mayores diferencias de esta implementación de la API respecto a otras librerías se basa en el soporte para textos largos. Google impone un límite máximo de 5.000 caracteres para sus consultas POST, por lo que para traducir textos de mayor tamaño es necesario dividirlos y traducirlos a trozos. Sin embargo, si esto no se hace de manera adecuada puede darse el caso de que se corten oraciones o etiquetas HTML. La mayoría de implementaciones no tienen en cuenta este detalle, y es por ello que pueden dar lugar a traducciones erróneas y poco precisas. Google Translator PHP sí tiene en cuenta este problema y se encarga de dividir automáticamente el texto de manera adecuada para intentar mantener la coherencia y el formato en la medida de los posible. Además, intenta realizar esta división utilizando la mínima memoria posible, para evitar que el script agote toda la memoria asignada al traducir un texto de tamaño considerable.
Uso en entornos sin curl
Google Translator PHP es compatible en entornos que no dispongan de las funciones curl, situación que se da típicamente en sistemas Windows. Para ello, realiza todas las llamadas a la API mediante GET y usando file_get_contents, por lo que puede dar lugar a que se ralentice la traducción de textos largos, debido a que éstos deberán dividirse en trozos aún más pequeños.
Hola,
Me he mirado tu código y funciona bastante bien, sólo que el resultado obtenido lo tengo que pasar por la función php utf8_decode()
Mi problema real es al traducir un texto chino. El valor devuelto no soy capaz de visualizarlo con los carácteres chinos, me salen símbolos extraños.