Update file
This commit is contained in:
@ -1,20 +1,23 @@
|
||||
async def translate_with_free_google(self, text: str, source_lang: str, target_lang: str) -> Optional[str]:
|
||||
"""Translate using free Google Translate (no API key required)"""
|
||||
try:
|
||||
if not self.free_google_translator:
|
||||
return None
|
||||
|
||||
# Use the free Google Translate service
|
||||
result = self.free_google_translator.translate(text, dest=target_lang, src=source_lang)
|
||||
|
||||
if result and result.text and result.text != text:
|
||||
return result.text.strip()
|
||||
|
||||
return None
|
||||
|
||||
except Exception as e:
|
||||
logger.error("Error in free Google translation",
|
||||
error=str(e), source=source_lang, target=target_lang)
|
||||
return None
|
||||
|
||||
async def translate_with_argos(self, text: str, source_lang: str, target_lang: str) -> Optional[str]:
|
||||
# Strategy 1: Try local NLLB model first (best quality)
|
||||
if self.nllb_model:
|
||||
translated_text = await self.translate_with_nllb(text, source_lang, target_lang)
|
||||
if translated_text:
|
||||
service_used = "nllb_local"
|
||||
|
||||
# Strategy 2: Try free Google Translate (excellent quality, no API key)
|
||||
if not translated_text:
|
||||
translated_text = await self.translate_with_free_google(text, source_lang, target_lang)
|
||||
if translated_text:
|
||||
service_used = "google_free"
|
||||
|
||||
# Strategy 3: Try Argos Translate (offline backup)
|
||||
if not translated_text:
|
||||
translated_text = await self.translate_with_argos(text, source_lang, target_lang)
|
||||
if translated_text:
|
||||
service_used = "argos_offline"
|
||||
|
||||
# Strategy 4: Try MyMemory API (free online backup)
|
||||
if not translated_text:
|
||||
translated_text = await self.translate_with_mymemory(text, source_lang, target_lang)
|
||||
if translated_text:
|
||||
service_used = "mymemory_free"
|
Reference in New Issue
Block a user