A tradução de texto é uma tarefa bastante útil. Melhor ainda quando ela pode ser totalmente feita em Python. O Python tem bibliotecas excelentes que possibilitam a criação de inúmeras aplicações de forma fácil e eficiente. Neste post, faremos um aplicativo Python na velocidade da luz para realizar traduções de textos em português para inglês, espanhol, francês ou alemão. Também utilizaremos Streamlit para fazer uma interface de usuário para nosso aplicativo poder ser usado na web.
Bibliotecas
Utilizaremos as seguintes bibliotecas: Streamlit, deep-translator.
pip install deep-translator streamlit
Após as instalações, crie um arquivo Python que pode se chamar app.py. No início do arquivo, faça as importações necessárias.
import streamlit as st
from deep_translator import GoogleTranslator
A interface do aplicativo
Para começar, vamos fazer a interface gráfica do aplicativo. Seu primeiro elemento consiste no título. Digite no seu arquivo o trecho de código abaixo.
st.title("Aplicativo Python para Traduções de Textos em Português")
Depois, criaremos um formulário (linha 1 abaixo) com uma área de texto onde os usuários colarão textos para traduções (linha 2). Aceitaremos apenas textos em português.
Também criaremos algumas opções de idiomas para traduções. Nosso app realizará traduções de português para alemão, francês, espanhol ou inglês. Fique a vontade para olhar a documentação da biblioteca deep-translator e inserir outros idiomas. Usaremos radio buttons para a seleção do idioma (linhas 3-5). Nosso formulário também precisará de um botão de submissão para a tradução ser realizada (linha 6). Copie o código abaixo no seu arquivo Python logo depois do título definido anteriormente.
with st.form("my_form"):
text = st.text_area("Por favor, cole seu texto em português.")
idioma = st.radio(
"Para qual idioma você deseja traduzir seu texto?",
["Alemão", "Espanhol", "Francês", "Inglês"], index=None)
submitted = st.form_submit_button("Traduzir")
Para testar o código até aqui, salve o arquivo e o execute com o comando streamlit run app.py. Se seu código não se chama app.py, atualize o nome corretamente. A execução do código abre uma página da web no localhost. No alto da página, clique na opção Always reruns para o código ser executado automaticamente sempre que for salvo.
Essa é a interface do nosso app.
Traduções de textos com Python
A tradução de textos em si é simples. No código abaixo, recopiamos o formulário definido anteriormente devido à indentação do Python. Copie da linha 7 em diante.
No novo trecho, se o botão de submissão for clicado (linha 7), é necessário garantir que um idioma foi selecionado corretamente (linha 8), caso contrário uma mensagem indicando o erro deverá ser impressa (linhas 22-23).
Em seguida, usamos a opção de idioma selecionada para definir o idioma_target da tradução (linhas 9-16). A tradução será feita com a excelente biblioteca deep-translator em uma única linha de código (linha 17). Após a tradução, o texto final será impresso numa nova área de texto no nosso aplicativo (linhas 18-21).
with st.form("my_form"):
text = st.text_area("Por favor, cole seu texto em português.")
idioma = st.radio(
"Para qual idioma você deseja traduzir seu texto?",
["Alemão", "Espanhol", "Francês", "Inglês"], index=None)
submitted = st.form_submit_button("Traduzir")
if submitted:
if idioma is not None:
if idioma == "Alemão":
idioma_target = 'de'
if idioma == "Espanhol":
idioma_target = 'es'
if idioma == "Francês":
idioma_target = 'fr'
if idioma == "Inglês":
idioma_target = 'en'
translated = GoogleTranslator(source='pt', target=idioma_target).translate(text)
txt = st.text_area(
"Seu texto traduzido",
translated,
)
else:
st.write('Por favor, selecione o idioma desejado')
Pronto! Salve seu arquivo e teste os textos que desejar. Abaixo mostramos um dos testes que fizemos.
E com isso concluímos mais um Python app.