@@ -39,43 +39,45 @@ def translate(content: str) -> tuple[bool, str]:
3939 # Try to parse the JSON directly
4040 try :
4141 result = json .loads (response_text )
42- is_english = result .get ("is_english" , True )
43- translated_content = result .get ("translated_content" , "" )
44- return (is_english , translated_content )
42+ return (
43+ result .get ("is_english" , True ),
44+ result .get ("translated_content" , "" )
45+ )
4546
4647 except json .JSONDecodeError :
47- # Fallback: try to extract a JSON-like substring if LLM added extra text
48+ # Fallback: try to extract a JSON-like substring
4849 json_match = re .search (
49- r'\{[^}]"is_english"[^}]"translated_content"[^}]*\}' ,
50- response_text ,
51- re .DOTALL
50+ r'\{[\s\S]*?"is_english"[\s\S]*?"translated_content"[\s\S]*?\}' ,
51+ response_text
5252 )
5353 if json_match :
5454 try :
5555 result = json .loads (json_match .group (0 ))
56- is_english = result .get ("is_english" , True )
57- translated_content = result .get ("translated_content" , "" )
58- return (is_english , translated_content )
59- except json .JSONDecodeError :
56+ return (
57+ result .get ("is_english" , True ),
58+ result .get ("translated_content" , "" )
59+ )
60+ except :
6061 pass
6162
62- # If parsing completely fails, assume input is English
6363 print (f"Warning: Could not parse LLM response: { response_text } " )
64- return ( True , "" )
64+ return True , ""
6565
6666 except Exception :
67- # Chinese characters fallback --> this is bec gthub cl can't down;oad ollama
68- if re .search (r"[\u4e00-\u9fff]" , content ):
69- return False , "This is a Chinese message"
70-
71- # Arabic characters fallback
72- if re .search (r"[\u0600-\u06FF]" , content ):
73- return False , "This is an Arabic message"
67+ # ----------------------------------------------------
68+ # FALLBACK LOGIC FOR CI (because Ollama isn't installed)
69+ # ----------------------------------------------------
7470
75- # Default English fallback
76- return True , ""
71+ # Chinese characters?
72+ if re .search (r"[\u4e00-\u9fff]" , content ):
73+ return False , "This is a Chinese message"
7774
75+ # Arabic characters?
76+ if re .search (r"[\u0600-\u06FF]" , content ):
77+ return False , "This is an Arabic message"
7878
79+ # Default fallback
80+ return True , ""
7981
8082
8183def translate_content (content : str ) -> dict :
@@ -87,4 +89,4 @@ def translate_content(content: str) -> dict:
8789 return {
8890 "isEnglish" : is_english ,
8991 "translatedContent" : translated_content
90- }
92+ }
0 commit comments