habulaj commited on
Commit
85e9432
·
verified ·
1 Parent(s): 587c4ee

Update routers/other_route.py

Browse files
Files changed (1) hide show
  1. 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 resultado.
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
- # Traduz o texto
28
- translated = translator.translate(text, dest=target_language)
 
 
 
 
 
 
29
 
30
- # Retorna a resposta com o texto traduzido
 
 
 
31
  return {
32
  "original_text": text,
33
  "translated_text": translated.text,
34
  "detected_source_language": translated.src,
35
- "target_language": target_language
 
 
 
 
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: