Loading modules/translators/base.py +6 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,9 @@ LANGMAP_GLOBAL = { 'украї́нська мо́ва': '', 'Thai': '', 'Arabic': '', 'Hindi': '', 'Malayalam': '', 'Tamil': '', } SYSTEM_LANG = '' Loading Loading @@ -195,6 +198,9 @@ class BaseTranslator(BaseModule): text_list.append(text) translations.append(text) non_empty_txtlst_str = ',\n'.join(text_list) LOGGER.debug(f'non empty src text list: \n[{non_empty_txtlst_str}]') if len(text_list) > 0: _translations = self.translate(text_list) for ii, idx in enumerate(non_empty_ids): Loading modules/translators/trans_chatgpt.py +6 −0 Original line number Diff line number Diff line Loading @@ -91,6 +91,9 @@ class GPTTranslator(BaseTranslator): self.lang_map['украї́нська мо́ва'] = 'Ukrainian' self.lang_map['Thai'] = 'Thai' self.lang_map['Arabic'] = 'Arabic' self.lang_map['Malayalam'] = 'Malayalam' self.lang_map['Tamil'] = 'Tamil' self.lang_map['Hindi'] = 'Hindi' self.token_count = 0 self.token_count_last = 0 Loading Loading @@ -329,6 +332,9 @@ class GPTTranslator(BaseTranslator): return url def _request_translation(self, prompt, chat_sample: List): self.logger.debug(f'chatgpt prompt: \n {prompt}' ) openai.api_key = self.params['api key'] base_url = self.api_url if OPENAPI_V1_API: Loading modules/translators/trans_google.py +3 −0 Original line number Diff line number Diff line Loading @@ -304,6 +304,9 @@ class TransGoogle(BaseTranslator): self.lang_map['Indonesia'] = 'id' self.lang_map['Thai'] = 'th' self.lang_map['Arabic'] = 'ar' self.lang_map['Malayalam'] = 'ml' self.lang_map['Tamil'] = 'ta' self.lang_map['Hindi'] = 'hi' self.googletrans = GoogleTranslator() Loading modules/translators/trans_papago.py +4 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,9 @@ class PapagoTranslator(BaseTranslator): self.lang_map['русский язык'] = 'ru' self.lang_map['Español'] = 'es' self.lang_map['Arabic'] = 'ar' self.lang_map['Malayalam'] = 'ml' self.lang_map['Tamil'] = 'ta' self.lang_map['Hindi'] = 'hi' if self.papagoVer is None: script = requests.get('https://papago.naver.com', proxies=PROXY) Loading modules/translators/trans_trnslatorsmodule.py 0 → 100644 +89 −0 Original line number Diff line number Diff line from .base import * import translators as ts @register_translator('TranslatorsPack') class GeneralTranslator(BaseTranslator): def __init__(self, lang_source, lang_target, *args, **kwargs): self.lang_source = lang_source self.lang_target = lang_target self.lang_map = {} super().__init__(lang_source, lang_target, *args, **kwargs) self.raise_unsupported_lang = kwargs.get('raise_unsupported_lang', False) self._setup_translator() def _setup_translator(self): self.lang_map['简体中文'] = 'zh' self.lang_map['日本語'] = 'ja' self.lang_map['English'] = 'EN-US' self.lang_map['Français'] = 'fr' self.lang_map['Deutsch'] = 'de' self.lang_map['Italiano'] = 'it' self.lang_map['Português'] = 'pt' self.lang_map['Brazilian Portuguese'] = 'pt-br' self.lang_map['русский язык'] = 'ru' self.lang_map['Español'] = 'es' self.lang_map['български език'] = 'bg' self.lang_map['Český Jazyk'] = 'cs' self.lang_map['Dansk'] = 'da' self.lang_map['Ελληνικά'] = 'el' self.lang_map['Eesti'] = 'et' self.lang_map['Suomi'] = 'fi' self.lang_map['Magyar'] = 'hu' self.lang_map['Lietuvių'] = 'lt' self.lang_map['latviešu'] = 'lv' self.lang_map['Nederlands'] = 'nl' self.lang_map['Polski'] = 'pl' self.lang_map['Română'] = 'ro' self.lang_map['Slovenčina'] = 'sk' self.lang_map['Slovenščina'] = 'sl' self.lang_map['Svenska'] = 'sv' self.lang_map['Indonesia'] = 'id' self.lang_map['украї́нська мо́ва'] = 'uk' self.lang_map['한국어'] = 'ko' self.lang_map['Arabic'] = 'ar' self.lang_map['Malayalam'] = 'ml' self.lang_map['Tamil'] = 'ta' self.lang_map['Hindi'] = 'hi' translator_options = ts.translators_pool params: Dict = { 'translator provider': { 'type': 'selector', 'options': ts.translators_pool, 'select': 'bing' }, 'sleep_seconds': 0 } def _translate(self, src_list: List[str]) -> List[str]: translations = [] for text in src_list: if not text: translations.append("Translation error or empty text") continue try: translator = self.params['translator']['select'] source_language = self.lang_map.get(self.lang_source, 'auto') target_language = self.lang_map.get(self.lang_target, 'en') translated_text = ts.translate_text( query_text=text, translator=translator, from_language=source_language, to_language=target_language, sleep_seconds=self.params['sleep_seconds'] ) translations.append(translated_text) except Exception as e: error_message = str(e) if "has been not certified yet" in error_message: print("The translation service is temporarily unavailable. Send logs @bropines") print(f"{e}") translations.append("") else: print(f"Error when translating text(send logs from console @bropines in issue on github page https://github.com/dmMaze/BallonsTranslator): {e}") translations.append("Translation error") return translations No newline at end of file Loading
modules/translators/base.py +6 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,9 @@ LANGMAP_GLOBAL = { 'украї́нська мо́ва': '', 'Thai': '', 'Arabic': '', 'Hindi': '', 'Malayalam': '', 'Tamil': '', } SYSTEM_LANG = '' Loading Loading @@ -195,6 +198,9 @@ class BaseTranslator(BaseModule): text_list.append(text) translations.append(text) non_empty_txtlst_str = ',\n'.join(text_list) LOGGER.debug(f'non empty src text list: \n[{non_empty_txtlst_str}]') if len(text_list) > 0: _translations = self.translate(text_list) for ii, idx in enumerate(non_empty_ids): Loading
modules/translators/trans_chatgpt.py +6 −0 Original line number Diff line number Diff line Loading @@ -91,6 +91,9 @@ class GPTTranslator(BaseTranslator): self.lang_map['украї́нська мо́ва'] = 'Ukrainian' self.lang_map['Thai'] = 'Thai' self.lang_map['Arabic'] = 'Arabic' self.lang_map['Malayalam'] = 'Malayalam' self.lang_map['Tamil'] = 'Tamil' self.lang_map['Hindi'] = 'Hindi' self.token_count = 0 self.token_count_last = 0 Loading Loading @@ -329,6 +332,9 @@ class GPTTranslator(BaseTranslator): return url def _request_translation(self, prompt, chat_sample: List): self.logger.debug(f'chatgpt prompt: \n {prompt}' ) openai.api_key = self.params['api key'] base_url = self.api_url if OPENAPI_V1_API: Loading
modules/translators/trans_google.py +3 −0 Original line number Diff line number Diff line Loading @@ -304,6 +304,9 @@ class TransGoogle(BaseTranslator): self.lang_map['Indonesia'] = 'id' self.lang_map['Thai'] = 'th' self.lang_map['Arabic'] = 'ar' self.lang_map['Malayalam'] = 'ml' self.lang_map['Tamil'] = 'ta' self.lang_map['Hindi'] = 'hi' self.googletrans = GoogleTranslator() Loading
modules/translators/trans_papago.py +4 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,9 @@ class PapagoTranslator(BaseTranslator): self.lang_map['русский язык'] = 'ru' self.lang_map['Español'] = 'es' self.lang_map['Arabic'] = 'ar' self.lang_map['Malayalam'] = 'ml' self.lang_map['Tamil'] = 'ta' self.lang_map['Hindi'] = 'hi' if self.papagoVer is None: script = requests.get('https://papago.naver.com', proxies=PROXY) Loading
modules/translators/trans_trnslatorsmodule.py 0 → 100644 +89 −0 Original line number Diff line number Diff line from .base import * import translators as ts @register_translator('TranslatorsPack') class GeneralTranslator(BaseTranslator): def __init__(self, lang_source, lang_target, *args, **kwargs): self.lang_source = lang_source self.lang_target = lang_target self.lang_map = {} super().__init__(lang_source, lang_target, *args, **kwargs) self.raise_unsupported_lang = kwargs.get('raise_unsupported_lang', False) self._setup_translator() def _setup_translator(self): self.lang_map['简体中文'] = 'zh' self.lang_map['日本語'] = 'ja' self.lang_map['English'] = 'EN-US' self.lang_map['Français'] = 'fr' self.lang_map['Deutsch'] = 'de' self.lang_map['Italiano'] = 'it' self.lang_map['Português'] = 'pt' self.lang_map['Brazilian Portuguese'] = 'pt-br' self.lang_map['русский язык'] = 'ru' self.lang_map['Español'] = 'es' self.lang_map['български език'] = 'bg' self.lang_map['Český Jazyk'] = 'cs' self.lang_map['Dansk'] = 'da' self.lang_map['Ελληνικά'] = 'el' self.lang_map['Eesti'] = 'et' self.lang_map['Suomi'] = 'fi' self.lang_map['Magyar'] = 'hu' self.lang_map['Lietuvių'] = 'lt' self.lang_map['latviešu'] = 'lv' self.lang_map['Nederlands'] = 'nl' self.lang_map['Polski'] = 'pl' self.lang_map['Română'] = 'ro' self.lang_map['Slovenčina'] = 'sk' self.lang_map['Slovenščina'] = 'sl' self.lang_map['Svenska'] = 'sv' self.lang_map['Indonesia'] = 'id' self.lang_map['украї́нська мо́ва'] = 'uk' self.lang_map['한국어'] = 'ko' self.lang_map['Arabic'] = 'ar' self.lang_map['Malayalam'] = 'ml' self.lang_map['Tamil'] = 'ta' self.lang_map['Hindi'] = 'hi' translator_options = ts.translators_pool params: Dict = { 'translator provider': { 'type': 'selector', 'options': ts.translators_pool, 'select': 'bing' }, 'sleep_seconds': 0 } def _translate(self, src_list: List[str]) -> List[str]: translations = [] for text in src_list: if not text: translations.append("Translation error or empty text") continue try: translator = self.params['translator']['select'] source_language = self.lang_map.get(self.lang_source, 'auto') target_language = self.lang_map.get(self.lang_target, 'en') translated_text = ts.translate_text( query_text=text, translator=translator, from_language=source_language, to_language=target_language, sleep_seconds=self.params['sleep_seconds'] ) translations.append(translated_text) except Exception as e: error_message = str(e) if "has been not certified yet" in error_message: print("The translation service is temporarily unavailable. Send logs @bropines") print(f"{e}") translations.append("") else: print(f"Error when translating text(send logs from console @bropines in issue on github page https://github.com/dmMaze/BallonsTranslator): {e}") translations.append("Translation error") return translations No newline at end of file