Traducción de texto con Google Translate API en Python

Puede traducir cualquier cosa simplemente yendo a la página web de Google Translate, aunque también puede integrar la API de Google Translate en su propia aplicación.

A menos que te hayas escondido debajo de una roca, probablemente hayas usado Google Translate en muchas ocasiones en tu vida. Cada vez que intenta traducir una palabra o una oración de un determinado idioma a otro, es la API de Google Translate la que le brinda los resultados deseados en segundo plano. Aunque puede traducir cualquier cosa simplemente yendo a la página web de Google Translate, también puede integrar API del traductor de Google en sus aplicaciones web o programas de escritorio. Lo mejor de la API es que es extremadamente fácil de configurar y usar.

En realidad, puede hacer muchas cosas con la ayuda de la API de Google Translate, desde detectar idiomas hasta la traducción de texto simple, configurar los idiomas de origen y destino y traducir listas completas de frases de texto. En este artículo, verá cómo trabajar con la API de Google Translate en el lenguaje de programación Python.

Instalación de la API del Traductor de Google

Antes de poder trabajar con la API de Google Translate en Python, deberá instalarla. Hay dos métodos diferentes para instalar la API. El primer método es sencillo. Simplemente vaya a la terminal y use el instalador pip para instalar la API, como lo haría con cualquier otra biblioteca de Python. Para hacer esto, escriba el siguiente comando en su terminal:

1
$ pip install googletrans

Presione [Enter]{.kbd} y el módulo de Python para la API de Google Translate se instalará en su sistema.

Si ha instalado una distribución Anaconda de Python, puede instalar la API mediante el indicador de Anaconda. En este método en particular, reemplazará pip en el comando anterior con conda, como se muestra en el siguiente fragmento de código:

1
$ conda install googletrans

Ahora que ha instalado la API, la veremos en acción con la ayuda de algunos ejemplos.

Listado de idiomas admitidos

La API de Google Translate es compatible con una variedad de idiomas. Para enumerar todos los idiomas admitidos, ejecute el siguiente script:

1
2
3
import googletrans

print(googletrans.LANGUAGES)

En el ejemplo anterior, usa la palabra clave import para importar el módulo googletrans. Posteriormente, puede listar todos los nombres de idiomas imprimiendo el atributo IDIOMAS del módulo googletrans.

Cuando se ejecuta, el fragmento de código anterior enumerará todos los nombres de idiomas admitidos junto con su notación abreviada. Así es como se verá la salida:

1
{'af': 'afrikaans', 'sq': 'albanian', 'am': 'amharic', 'ar': 'arabic', 'hy': 'armenian', 'az': 'azerbaijani', 'eu': 'basque', 'be': 'belarusian', 'bn': 'bengali', 'bs': 'bosnian', 'bg': 'bulgarian', 'ca': 'catalan', 'ceb': 'cebuano', 'ny': 'chichewa', 'zh-cn': 'chinese (simplified)', 'zh-tw': 'chinese (traditional)', 'co': 'corsican', 'hr': 'croatian', 'cs': 'czech', 'da': 'danish', 'nl': 'dutch', 'en': 'english', 'eo': 'esperanto', 'et': 'estonian', 'tl': 'filipino', 'fi': 'finnish', 'fr': 'french', 'fy': 'frisian', 'gl': 'galician', 'ka': 'georgian', 'de': 'german', 'el': 'greek', 'gu': 'gujarati', 'ht': 'haitian creole', 'ha': 'hausa', 'haw': 'hawaiian', 'iw': 'hebrew', 'hi': 'hindi', 'hmn': 'hmong', 'hu': 'hungarian', 'is': 'icelandic', 'ig': 'igbo', 'id': 'indonesian', 'ga': 'irish', 'it': 'italian', 'ja': 'japanese', 'jw': 'javanese', 'kn': 'kannada', 'kk': 'kazakh', 'km': 'khmer', 'ko': 'korean', 'ku': 'kurdish (kurmanji)', 'ky': 'kyrgyz', 'lo': 'lao', 'la': 'latin', 'lv': 'latvian', 'lt': 'lithuanian', 'lb': 'luxembourgish', 'mk': 'macedonian', 'mg': 'malagasy', 'ms': 'malay', 'ml': 'malayalam', 'mt': 'maltese', 'mi': 'maori', 'mr': 'marathi', 'mn': 'mongolian', 'my': 'myanmar (burmese)', 'ne': 'nepali', 'no': 'norwegian', 'ps': 'pashto', 'fa': 'persian', 'pl': 'polish', 'pt': 'portuguese', 'pa': 'punjabi', 'ro': 'romanian', 'ru': 'russian', 'sm': 'samoan', 'gd': 'scots gaelic', 'sr': 'serbian', 'st': 'sesotho', 'sn': 'shona', 'sd': 'sindhi', 'si': 'sinhala', 'sk': 'slovak', 'sl': 'slovenian', 'so': 'somali', 'es': 'spanish', 'su': 'sundanese', 'sw': 'swahili', 'sv': 'swedish', 'tg': 'tajik', 'ta': 'tamil', 'te': 'telugu', 'th': 'thai', 'tr': 'turkish', 'uk': 'ukrainian', 'ur': 'urdu', 'uz': 'uzbek', 'vi': 'vietnamese', 'cy': 'welsh', 'xh': 'xhosa', 'yi': 'yiddish', 'yo': 'yoruba', 'zu': 'zulu', 'fil': 'Filipino', 'he': 'Hebrew'}

Uso básico

El uso más básico de la API de Google Translate es, por supuesto, traducir palabras u oraciones de un idioma a otro. Para hacerlo, tenemos que importar la clase Translator desde el módulo googletrans.

1
from googletrans import Translator

A continuación, debe crear un objeto de la clase Translator.

1
translator = Translator()

Una vez que se crea el objeto de la clase Traductor, pasará el texto en el idioma de origen como parámetro al método translate() del objeto de la clase Translator(), como se muestra a continuación:

1
result = translator.translate('Mitä sinä teet')

En el script anterior, pasamos texto en finlandés al método translate().

El método translate() devuelve un objeto que contiene información sobre el texto traducido, los idiomas de origen y de destino y la pronunciación del texto. De forma predeterminada, el método translate() devuelve la traducción al inglés del texto que se le pasa. En nuestro caso, el objeto devuelto por el método translate() se almacena en la variable resultado.

El objeto devuelto por el método translate() tiene los siguientes atributos:

  • src: El idioma de origen
  • dest: idioma de destino, que se establece en inglés (en)
  • origen: Texto original, es decir '¿Qué estás haciendo' en nuestro ejemplo
  • texto: Texto traducido, que será '¿qué estás haciendo?' en nuestro caso
  • pronunciación: Pronunciación del texto traducido

Imprimamos todos los atributos anteriores y veamos qué resultado obtenemos:

1
2
3
4
5
print(result.src)
print(result.dest)
print(result.origin)
print(result.text)
print(result.pronunciation)

Producción:

1
2
3
4
5
fi
en
Mitä sinä teet
What are you doing
What are you doing

El resultado muestra que el idioma de origen es el finlandés (fi) y el idioma de destino es el inglés (en). La oración traducida se puede imprimir a través del atributo texto.

En el ejemplo anterior, no especificamos el idioma de origen. Por lo tanto, la API de Google Translate intenta detectar el idioma de origen. Del mismo modo, tampoco especificamos ningún idioma de destino y, por lo tanto, la API tradujo el idioma de origen al idioma predeterminado que es el inglés. Pero, ¿qué sucede si desea especificar tanto el idioma de origen como el de destino?

Especificación de idiomas de origen y destino {#especificación de idiomas de origen y destino}

De hecho, es muy fácil especificar tanto el idioma de destino como el de origen en la API de Google Translate. Aquí está el código que usará para pasar solo el idioma de origen:

1
result = translator.translate('Mikä on nimesi', src='fi')

Para agregar solo el idioma de destino, debe agregar el atributo dest, seguido del código de idioma:

1
result = translator.translate('Mikä on nimesi', dest='fr')

También puede pasar los idiomas de origen y destino al mismo tiempo:

1
result = translator.translate('Mikä on nimesi', src='fi', dest='fr')

Traduzcamos ahora una oración finlandesa al francés y luego imprimamos los idiomas de origen y de destino, así como el texto traducido. En esta ocasión especificaremos los idiomas de origen y de destino.

1
2
3
4
5
6
7
8
from googletrans import Translator

translator = Translator()
result = translator.translate('Mikä on nimesi', src='fi', dest='fr')

print(result.src)
print(result.dest)
print(result.text)

El fragmento de código anterior producirá el siguiente resultado.

1
2
3
fi
fr
Quel est votre nom

Traducción de la lista de frases

También es posible traducir una lista de frases textuales con la ayuda de la API de Google Translate. El proceso básico es el mismo que se discutió anteriormente. Solo tienes que pasar la lista que contiene las frases como parámetro al método translate(). Esto es útil para tener un lote de frases traducidas por separado, pero todo en una sola llamada a la API.

Vamos a crear una lista de cadenas que contengan algunas frases del idioma francés.

1
sentences = ['Bienvenu', 'Comment allez-vous', 'je vais bien']

Ahora es el momento de llamar al método translate() y pasar la lista, el idioma de origen y el idioma de destino como parámetros.

1
result = translator.translate(sentences, src='fr', dest='sw')

En el guión anterior, el idioma de origen es el francés y el idioma de destino es el swahili.

El método translate() devuelve una lista de objetos si le pasas una lista de frases. Cada objeto en la lista devuelta por el método translate() corresponde a cada frase en la lista de entrada que tiene que ser traducida. La mejor manera de encontrar la traducción de cada frase de entrada en la lista es iterar sobre la lista de objetos de salida. Luego puede usar text, origin, src y otros atributos de los objetos individuales para ver la traducción de frases individuales en la lista de entrada.

En el siguiente script, iteramos sobre la lista de objetos devueltos por el método translate() y luego imprimimos el origen y el texto traducido:

1
2
for trans in result:
    print(f'{trans.origin} -> {trans.text}')

El siguiente será el resultado mostrado en la pantalla.

1
2
3
Bienvenu -> karibu
Comment allez-vous -> Vipi wewe
je vais bien -> Niko sawa

Traducción de documentos de texto

También puede traducir documentos de texto a través de la API de Google Translate. Todo lo que tienes que hacer es leer el archivo de texto en Python usando el método abrir, leer el texto y pasarlo al método translate().

El primer paso es abrir el archivo en modo "leer":

1
f = open('C:\\Users\\Khurram\\Desktop\\test.txt', 'r')

También puede verificar si el archivo está o no en modo "leer" usando la propiedad mode:

1
if f.mode == 'r':

A continuación, puede utilizar el método f.read() para leer el contenido del archivo. El contenido del archivo se puede almacenar en cualquier variable. En nuestro caso, el nombre de la variable será contenido.

También imprimiremos la variable contents para comprobar si Python está leyendo correctamente el archivo de texto:

1
2
contents = f.read()
print(contents)

Aquí está la salida del contenido del archivo:

1
2
We are going to translate this text file using Python.
Subsequently, we will also translate it into French.

Asegúrese de tener el contenido anterior en su archivo de texto si desea seguir nuestro ejemplo.

Hemos comprobado que Python está accediendo y leyendo el archivo de texto. Ahora, traduciremos el resultado importando la misma clase Translate de antes.

1
2
3
from googletrans import Translator

file_translate = Translator()

El siguiente paso es pasar la variable contenido que contiene el texto de entrada a la función translate(). Finalmente, imprime el atributo texto del objeto devuelto por el método translate() y obtendrás la cadena traducida.

1
2
result = translator.translate(contents, dest='fr')
print(result.text)

La salida debería ser similar a la siguiente:

1
2
Nous allons traduire ce fichier texte en Python.
Par la suite, nous le traduirons également en français.

Para escribir el texto traducido en el mismo archivo, o en un archivo de texto diferente, simplemente abra el archivo en el modo de escritura ("w"). A continuación, debe llamar al método write() y pasarle su texto traducido, como se muestra a continuación:

1
2
with open('C:\\Users\\Khurram\\Desktop\\test_2.txt', 'w') as f:
    f.write(result.text)

En el ejemplo anterior, hemos utilizado el administrador de contexto with para abrir y cerrar automáticamente el flujo de escritura. En segundo lugar, hemos abierto el archivo en el modo de escritura. Por último, hemos utilizado el método write() para escribir la cadena traducida en un nuevo archivo.

Conclusión

Google Translate es una herramienta con una API que lo ayuda a realizar muchas funciones diferentes relacionadas con la traducción. Solo hemos arañado la superficie con los ejemplos anteriores. Le recomendamos que practique la API, así como que aprenda y comprenda cómo usarla en aplicaciones de la vida real.