-
Notifications
You must be signed in to change notification settings - Fork 0
/
provider.py
42 lines (35 loc) · 1.31 KB
/
provider.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import papago
import json
from googletrans import Translator as GoogleTranslator
from kakaotrans import Translator as KakaoTranslator
class Translator:
def __init__(self) -> None:
self.ktranslator = KakaoTranslator()
self.gtranslator = GoogleTranslator()
self.update_apimodel()
pass
def use_kakao(self, text:str, src:str, dst:str):
"Error safe."
self.update_apimodel()
try:
translated_text = self.ktranslator.translate(text, src=src, tgt=dst)
except Exception as e:
translated_text = ""
return translated_text
def use_papago(self, text:str, src:str, dst:str):
"Error safe."
self.update_apimodel()
client_id = self.apimodel_dict["Papago"]["Client ID:"]
secret = self.apimodel_dict["Papago"]["Client secret:"]
return papago.papagotrans(text, src, dst, client_id, secret)
def use_google(self, text:str, src:str, dst:str):
"Error safe now"
self.update_apimodel()
try:
obj = self.gtranslator.translate(text=text, src=src, dest=dst)
return obj.text
except Exception as e:
return ""
def update_apimodel(self,):
with open("apimodel.json") as f:
self.apimodel_dict = json.load(f)