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]:
|
# Strategy 1: Try local NLLB model first (best quality)
|
||||||
"""Translate using free Google Translate (no API key required)"""
|
if self.nllb_model:
|
||||||
try:
|
translated_text = await self.translate_with_nllb(text, source_lang, target_lang)
|
||||||
if not self.free_google_translator:
|
if translated_text:
|
||||||
return None
|
service_used = "nllb_local"
|
||||||
|
|
||||||
# Use the free Google Translate service
|
# Strategy 2: Try free Google Translate (excellent quality, no API key)
|
||||||
result = self.free_google_translator.translate(text, dest=target_lang, src=source_lang)
|
if not translated_text:
|
||||||
|
translated_text = await self.translate_with_free_google(text, source_lang, target_lang)
|
||||||
if result and result.text and result.text != text:
|
if translated_text:
|
||||||
return result.text.strip()
|
service_used = "google_free"
|
||||||
|
|
||||||
return None
|
# Strategy 3: Try Argos Translate (offline backup)
|
||||||
|
if not translated_text:
|
||||||
except Exception as e:
|
translated_text = await self.translate_with_argos(text, source_lang, target_lang)
|
||||||
logger.error("Error in free Google translation",
|
if translated_text:
|
||||||
error=str(e), source=source_lang, target=target_lang)
|
service_used = "argos_offline"
|
||||||
return None
|
|
||||||
|
# Strategy 4: Try MyMemory API (free online backup)
|
||||||
async def translate_with_argos(self, text: str, source_lang: str, target_lang: str) -> Optional[str]:
|
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