FashGate's picture
Upload 204 files
8a469fd
from scripts.physton_prompt.translator.base_tanslator import BaseTranslator
import uuid
import requests
from scripts.physton_prompt.get_lang import get_lang
class MyMemoryTranslator(BaseTranslator):
def __init__(self):
super().__init__('myMemory_free')
def translate(self, text):
if not text:
return ''
url = 'https://api.mymemory.translated.net/get'
api_key = self.api_config.get('api_key', '')
params = {
'q': text,
'langpair': f'{self.from_lang}|{self.to_lang}',
}
if api_key:
params['key'] = api_key
response = requests.get(url, params=params)
if response.status_code != 200:
raise Exception(get_lang('request_error', {'0': 'myMemory'}))
if not response.text:
raise Exception(get_lang('response_is_empty', {'0': 'myMemory'}))
result = response.json()
if 'responseStatus' not in result:
raise Exception(get_lang('no_response_from', {'0': 'myMemory'}))
if result['responseStatus'] != 200:
raise Exception(result['responseDetails'])
if 'responseData' not in result:
raise Exception(get_lang('no_response_from', {'0': 'myMemory'}))
if 'translatedText' not in result['responseData']:
raise Exception(get_lang('no_response_from', {'0': 'myMemory'}))
return result['responseData']['translatedText']