@@ -15,6 +15,7 @@ class PyTranslator:
15
15
libre - LibreTranslate Engine
16
16
translate.com - translate.com Translate
17
17
my_memory - MyMemory Translate
18
+ translate_dict - Translate Dict
18
19
19
20
Argument(s):
20
21
provider - Provider of Translator. (Must be a supported provider)
@@ -23,7 +24,7 @@ class PyTranslator:
23
24
pytranslator = PyTranslator(provider="google")
24
25
"""
25
26
def __init__ (self , provider = "google" ):
26
- self .providers = ["google" , "libre" , "translate.com" , "my_memory" ]
27
+ self .providers = ["google" , "libre" , "translate.com" , "my_memory" , "translate_dict" ]
27
28
if provider in self .providers :
28
29
self .provider = provider
29
30
else :
@@ -51,6 +52,8 @@ def translate(self, text, dest_lang="en"):
51
52
return self .translate_com (text , dest_lang )
52
53
elif self .provider == "my_memory" :
53
54
return self .my_memory (text , dest_lang )
55
+ elif self .provider == "translate_dict" :
56
+ return self .translate_dict (text , dest_lang )
54
57
else :
55
58
return
56
59
@@ -74,6 +77,7 @@ def _detect_lang(self, text, full_name=False):
74
77
r_url = requests .post ("https://libretranslate.com/detect" , data = {"q" : str (text )}, headers = self .lheader ).json ()
75
78
language_code = r_url [0 ]["language" ]
76
79
except :
80
+ # If can't detect the language let's think it's just english (RIP moment)
77
81
language_code = "en"
78
82
if full_name is False :
79
83
return language_code
@@ -117,9 +121,23 @@ def my_memory(self, text, dest_lang):
117
121
except Exception as e :
118
122
return {"status" : "failed" , "error" : e }
119
123
124
+ # Translate Dict
125
+ def translate_dict (self , text , dest_lang ):
126
+ try :
127
+ r_url = requests .get (f"https://t3.translatedict.com/1.php?p1=auto&p2={ dest_lang } &p3={ text } " ).text
128
+ origin_lang = self ._detect_lang (text = text , full_name = True )
129
+ dest_lang_f = self .get_lang_name (dest_lang )
130
+ tr_dict = {"status" : "success" , "engine" : "Translate Dict" , "translation" : r_url , "dest_lang" : dest_lang_f , "orgin_text" : str (text ), "origin_lang" : origin_lang }
131
+ return tr_dict
132
+ except Exception as e :
133
+ return {"status" : "failed" , "error" : e }
134
+
120
135
# Get Language Names
121
136
def get_lang_name (self , text ):
122
137
if len (text ) == 2 :
123
138
return _get_full_lang_name (text )
124
139
else :
125
- return _get_lang_code (text )
140
+ if len (text ) <= 3 :
141
+ return "Not a full language name"
142
+ else :
143
+ return _get_lang_code (text )
0 commit comments