Update routers/other_route.py
Browse files- routers/other_route.py +21 -7
routers/other_route.py
CHANGED
@@ -1,17 +1,18 @@
|
|
1 |
from fastapi import APIRouter, Query, HTTPException
|
2 |
from googletrans import Translator, LANGUAGES
|
|
|
3 |
|
4 |
# Cria um roteador para a API de tradução
|
5 |
router = APIRouter()
|
6 |
|
7 |
-
# Define a rota para traduzir o texto
|
8 |
@router.get("/translate/")
|
9 |
def translate_text(
|
10 |
text: str = Query(..., description="Texto a ser traduzido"),
|
11 |
-
target_language: str = Query("en", description="Idioma alvo para tradução")
|
|
|
12 |
):
|
13 |
"""
|
14 |
-
Traduz o texto para o idioma alvo e retorna o
|
15 |
"""
|
16 |
# Verifica se o idioma de destino é válido
|
17 |
if target_language not in LANGUAGES:
|
@@ -24,15 +25,28 @@ def translate_text(
|
|
24 |
# Cria o tradutor
|
25 |
translator = Translator()
|
26 |
|
27 |
-
#
|
28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
|
30 |
-
|
|
|
|
|
|
|
31 |
return {
|
32 |
"original_text": text,
|
33 |
"translated_text": translated.text,
|
34 |
"detected_source_language": translated.src,
|
35 |
-
"
|
|
|
|
|
|
|
|
|
36 |
}
|
37 |
|
38 |
except Exception as e:
|
|
|
1 |
from fastapi import APIRouter, Query, HTTPException
|
2 |
from googletrans import Translator, LANGUAGES
|
3 |
+
import time
|
4 |
|
5 |
# Cria um roteador para a API de tradução
|
6 |
router = APIRouter()
|
7 |
|
|
|
8 |
@router.get("/translate/")
|
9 |
def translate_text(
|
10 |
text: str = Query(..., description="Texto a ser traduzido"),
|
11 |
+
target_language: str = Query("en", description="Idioma alvo para tradução"),
|
12 |
+
source_language: str = Query(None, description="Idioma de origem (opcional, se não fornecido será detectado automaticamente)")
|
13 |
):
|
14 |
"""
|
15 |
+
Traduz o texto para o idioma alvo e retorna detalhes, incluindo a detecção de idioma e o tempo de tradução.
|
16 |
"""
|
17 |
# Verifica se o idioma de destino é válido
|
18 |
if target_language not in LANGUAGES:
|
|
|
25 |
# Cria o tradutor
|
26 |
translator = Translator()
|
27 |
|
28 |
+
# Se o idioma de origem não for fornecido, será detectado automaticamente
|
29 |
+
start_time = time.time() # Início do tempo de tradução
|
30 |
+
if source_language:
|
31 |
+
# Traduz com idioma de origem especificado
|
32 |
+
translated = translator.translate(text, src=source_language, dest=target_language)
|
33 |
+
else:
|
34 |
+
# Se não for fornecido, detecta automaticamente o idioma de origem
|
35 |
+
translated = translator.translate(text, dest=target_language)
|
36 |
|
37 |
+
end_time = time.time() # Fim do tempo de tradução
|
38 |
+
translation_time = round(end_time - start_time, 4) # Tempo em segundos (com 4 casas decimais)
|
39 |
+
|
40 |
+
# Retorna a resposta com dados adicionais
|
41 |
return {
|
42 |
"original_text": text,
|
43 |
"translated_text": translated.text,
|
44 |
"detected_source_language": translated.src,
|
45 |
+
"source_language": source_language or "auto-detected",
|
46 |
+
"target_language": target_language,
|
47 |
+
"translation_time_seconds": translation_time,
|
48 |
+
"original_language_name": LANGUAGES.get(translated.src, "Unknown"),
|
49 |
+
"target_language_name": LANGUAGES.get(target_language, "Unknown")
|
50 |
}
|
51 |
|
52 |
except Exception as e:
|