from scripts.physton_prompt.translator.base_tanslator import BaseTranslator from scripts.physton_prompt.get_lang import get_lang class AmazonTranslator(BaseTranslator): def __init__(self): super().__init__('amazon') def translate(self, text): if not text: return '' api_key_id = self.api_config.get('api_key_id', '') api_key_secret = self.api_config.get('api_key_secret', '') region = self.api_config.get('region', '') if not api_key_id: raise Exception(get_lang('is_required', {'0': 'API Key ID'})) if not api_key_secret: raise Exception(get_lang('is_required', {'0': 'API Key Secret'})) if not region: raise Exception(get_lang('is_required', {'0': 'Region'})) import boto3 translate = boto3.client(service_name='translate', region_name=region, use_ssl=True, aws_access_key_id=api_key_id, aws_secret_access_key=api_key_secret) result = translate.translate_text(Text=text, SourceLanguageCode=self.from_lang, TargetLanguageCode=self.to_lang) if 'TranslatedText' not in result: raise Exception(get_lang('no_response_from', {'0': 'Amazon'})) return result['TranslatedText']