mirror of
https://github.com/Physton/sd-webui-prompt-all-in-one.git
synced 2026-04-30 19:21:43 +00:00
Added translation API: MyMemory
增加翻译API:MyMemory
This commit is contained in:
@@ -13,6 +13,7 @@ from scripts.physton_prompt.translator.tencent_translator import TencentTranslat
|
||||
from scripts.physton_prompt.translator.translators_translator import TranslatorsTranslator
|
||||
from scripts.physton_prompt.translator.yandex_translator import YandexTranslator
|
||||
from scripts.physton_prompt.translator.youdao_translator import YoudaoTranslator
|
||||
from scripts.physton_prompt.translator.mymemory_translator import MyMemoryTranslator
|
||||
|
||||
caches = {}
|
||||
|
||||
@@ -95,6 +96,8 @@ def translate(text, from_lang, to_lang, api, api_config=None):
|
||||
translator = YoudaoTranslator()
|
||||
elif api == 'tencent':
|
||||
translator = TencentTranslator()
|
||||
elif api == 'myMemory_free' or api == 'myMemory':
|
||||
translator = MyMemoryTranslator()
|
||||
elif 'type' in find and find['type'] == 'translators':
|
||||
translator = TranslatorsTranslator(api)
|
||||
translator.set_translator(find['translator'])
|
||||
|
||||
37
scripts/physton_prompt/translator/mymemory_translator.py
Normal file
37
scripts/physton_prompt/translator/mymemory_translator.py
Normal file
@@ -0,0 +1,37 @@
|
||||
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']
|
||||
Reference in New Issue
Block a user