Traducción de texto con la API de Google Translate en Python

A menos que se haya estado escondiendo debajo de una roca, probablemente haya usado Traductor de google en muchas ocasiones en tu vida. Siempre que intente traducir una palabra o una oración de un idioma determinado a otro, es la API de Google Translate la que le brinda los resultados deseados en segundo plano. Aunque puede traducir cualquier cosa con solo ir a la página web del Traductor de Google, también puede integrar API de Google Translate en sus aplicaciones web o programas de escritorio. Lo mejor de la API es que es extremadamente fácil de configurar y usar.

De hecho, puede hacer muchas cosas con la ayuda de la API de Google Translate, que van desde la detección de idiomas hasta la traducción de texto simple, la configuración de idiomas de origen y destino y la traducción de 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 de Google Translate

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 pip instalador para instalar la API, como lo haría con cualquier otra biblioteca de Python. Para hacer esto, escriba el siguiente comando en su terminal:

$ pip install googletrans

Presione Enter y el módulo 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 usando Anaconda Prompt. En este método en particular, reemplazará pip en el comando anterior con conda, como se muestra en el siguiente fragmento de código:

$ 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:

import googletrans

print(googletrans.LANGUAGES)

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

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

{'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', "https://Pharos.sh.com/text-translation-with-google-translate-api-in-python/fi": 'finnish', "https://Pharos.sh.com/text-translation-with-google-translate-api-in-python/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 el Translator clase de googletrans módulo.

from googletrans import Translator

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

translator = Translator()

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

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

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

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

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

  • src: El idioma de origen
  • dest: Idioma de destino, que se establece en inglés (en)
  • origin: Texto original, que es ‘Mitä sinä teet’ en nuestro ejemplo
  • text: Texto traducido, que será ‘¿qué estás haciendo?’ en nuestro caso
  • pronunciation: Pronunciación del texto traducido

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

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

Salida:

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 frase traducida se puede imprimir a través del text atributo.

En el ejemplo anterior, no especificamos el idioma de origen. Por lo tanto, la API de Google Translate intenta detectar el idioma fuente por sí mismo. De manera similar, 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

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

result = translator.translate('Mikä on nimesi', src="https://Pharos.sh.com/text-translation-with-google-translate-api-in-python/fi")

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

result = translator.translate('Mikä on nimesi', dest="https://Pharos.sh.com/text-translation-with-google-translate-api-in-python/fr")

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

result = translator.translate('Mikä on nimesi', src="https://Pharos.sh.com/text-translation-with-google-translate-api-in-python/fi", dest="https://Pharos.sh.com/text-translation-with-google-translate-api-in-python/fr")

Ahora traduzcamos una oración finlandesa al francés y luego imprimamos los idiomas de origen y destino, así como el texto traducido. Esta vez especificaremos los idiomas de origen y destino.

from googletrans import Translator

translator = Translator()
result = translator.translate('Mikä on nimesi', src="https://Pharos.sh.com/text-translation-with-google-translate-api-in-python/fi", dest="https://Pharos.sh.com/text-translation-with-google-translate-api-in-python/fr")

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

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

fi
fr
Quel est votre nom

Traducción de 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 translate() método. Esto es útil para tener un lote de frases traducidas por separado, pero todo en una llamada API.

Creemos una lista de cadenas que contengan algunas frases del idioma francés.

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

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

result = translator.translate(sentences, src="https://Pharos.sh.com/text-translation-with-google-translate-api-in-python/fr", dest="sw")

En el script anterior, el idioma de origen es el francés y el idioma de destino es el suajili.

los translate() El método devuelve una lista de objetos si le pasa una lista de frases. Cada objeto de la lista devuelto por translate() El método corresponde a cada frase de la lista de entrada que debe traducirse. 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. A continuación, puede utilizar el text, origin, srcy 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 translate() método y luego imprime el origen y el texto traducido:

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

El siguiente será el resultado que se mostrará en la pantalla.

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 open método, lea el texto y páselo al translate() método.

El primer paso es abrir el archivo en modo “lectura”:

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

También puede comprobar si el archivo está en modo “lectura” utilizando el mode propiedad:

if f.mode == 'r':

A continuación, puede utilizar el f.read() método 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á contents.

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

contents = f.read()
print(contents)

Aquí está la salida del contenido del archivo:

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 el mismo Translate clase de antes.

from googletrans import Translator

file_translate = Translator()

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

result = translator.translate(contents, dest="https://Pharos.sh.com/text-translation-with-google-translate-api-in-python/fr")
print(result.text)

La salida debería verse como la siguiente:

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 abrirá el archivo en el modo de escritura (“w”). A continuación, debe llamar al write() y páselo con el texto traducido, como se muestra a continuación:

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 la secuencia de escritura. En segundo lugar, hemos abierto el archivo en modo escritura. Por último, hemos utilizado el write() método para escribir la cadena traducida en un nuevo archivo.

Conclusión

Google Translate es una herramienta con una API que le ayuda a realizar muchas funciones diferentes relacionadas con la traducción. Solo hemos arañado la superficie con los ejemplos anteriores. Se le anima a practicar la API, así como a aprender y comprender cómo usarla en aplicaciones de la vida real.

 

Etiquetas:

1 pensamiento sobre “Traducción de texto con la API de Google Translate en Python”

  1. Hola Ramiro, soy muy nuevo en esto, muy interesante tu post e intentado hacer funcionar la libreria de google translate sin exito siguiendo todos los pasos de tu post, me puedes confirmar si sigue funcionando?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *