👍[Update] Main : 翻訳エンジンの手動設定に変更
翻訳エンジンの自動設定機能を削除 input/outputの翻訳エンジンを別に設定できるように機能を追加 Aurhkeyの認証をDeepLのみ削減
This commit is contained in:
54
config.py
54
config.py
@@ -150,13 +150,22 @@ class Config:
|
||||
self._TARGET_LANGUAGE = value
|
||||
|
||||
@property
|
||||
def CHOICE_TRANSLATOR(self):
|
||||
return self._CHOICE_TRANSLATOR
|
||||
def CHOICE_INPUT_TRANSLATOR(self):
|
||||
return self._CHOICE_INPUT_TRANSLATOR
|
||||
|
||||
@CHOICE_TRANSLATOR.setter
|
||||
def CHOICE_TRANSLATOR(self, value):
|
||||
@CHOICE_INPUT_TRANSLATOR.setter
|
||||
def CHOICE_INPUT_TRANSLATOR(self, value):
|
||||
if value in translatorEngine:
|
||||
self._CHOICE_TRANSLATOR = value
|
||||
self._CHOICE_INPUT_TRANSLATOR= value
|
||||
|
||||
@property
|
||||
def CHOICE_OUTPUT_TRANSLATOR(self):
|
||||
return self._CHOICE_OUTPUT_TRANSLATOR
|
||||
|
||||
@CHOICE_OUTPUT_TRANSLATOR.setter
|
||||
def CHOICE_OUTPUT_TRANSLATOR(self, value):
|
||||
if value in translatorEngine:
|
||||
self._CHOICE_OUTPUT_TRANSLATOR = value
|
||||
|
||||
# Save Json Data
|
||||
## Main Window
|
||||
@@ -171,6 +180,28 @@ class Config:
|
||||
self._SELECTED_TAB_NO = value
|
||||
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
|
||||
|
||||
@property
|
||||
@json_serializable('SELECTED_TAB_YOUR_TRANSLATOR_ENGINES')
|
||||
def SELECTED_TAB_YOUR_TRANSLATOR_ENGINES(self):
|
||||
return self._SELECTED_TAB_YOUR_TRANSLATOR_ENGINES
|
||||
|
||||
@SELECTED_TAB_YOUR_TRANSLATOR_ENGINES.setter
|
||||
def SELECTED_TAB_YOUR_TRANSLATOR_ENGINES(self, value):
|
||||
if isinstance(value, dict):
|
||||
self._SELECTED_TAB_YOUR_TRANSLATOR_ENGINES = value
|
||||
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
|
||||
|
||||
@property
|
||||
@json_serializable('SELECTED_TAB_TARGET_TRANSLATOR_ENGINES')
|
||||
def SELECTED_TAB_TARGET_TRANSLATOR_ENGINES(self):
|
||||
return self._SELECTED_TAB_TARGET_TRANSLATOR_ENGINES
|
||||
|
||||
@SELECTED_TAB_TARGET_TRANSLATOR_ENGINES.setter
|
||||
def SELECTED_TAB_TARGET_TRANSLATOR_ENGINES(self, value):
|
||||
if isinstance(value, dict):
|
||||
self._SELECTED_TAB_TARGET_TRANSLATOR_ENGINES = value
|
||||
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
|
||||
|
||||
@property
|
||||
@json_serializable('SELECTED_TAB_YOUR_LANGUAGES')
|
||||
def SELECTED_TAB_YOUR_LANGUAGES(self):
|
||||
@@ -562,7 +593,8 @@ class Config:
|
||||
self._ENABLE_TRANSCRIPTION_SEND = False
|
||||
self._ENABLE_TRANSCRIPTION_RECEIVE = False
|
||||
self._ENABLE_FOREGROUND = False
|
||||
self._CHOICE_TRANSLATOR = translatorEngine[0]
|
||||
self._CHOICE_INPUT_TRANSLATOR = translatorEngine[0]
|
||||
self._CHOICE_OUTPUT_TRANSLATOR = translatorEngine[0]
|
||||
self._SOURCE_LANGUAGE = "Japanese"
|
||||
self._SOURCE_COUNTRY = "Japan"
|
||||
self._TARGET_LANGUAGE = "English"
|
||||
@@ -571,6 +603,16 @@ class Config:
|
||||
# Save Json Data
|
||||
## Main Window
|
||||
self._SELECTED_TAB_NO = "1"
|
||||
self._SELECTED_TAB_YOUR_TRANSLATOR_ENGINES = {
|
||||
"1":translatorEngine[0],
|
||||
"2":translatorEngine[0],
|
||||
"3":translatorEngine[0],
|
||||
}
|
||||
self._SELECTED_TAB_TARGET_TRANSLATOR_ENGINES = {
|
||||
"1":translatorEngine[0],
|
||||
"2":translatorEngine[0],
|
||||
"3":translatorEngine[0],
|
||||
}
|
||||
self._SELECTED_TAB_YOUR_LANGUAGES = {
|
||||
"1":"Japanese\n(Japan)",
|
||||
"2":"Japanese\n(Japan)",
|
||||
|
||||
@@ -209,6 +209,12 @@ def messageBoxFocusOut(e):
|
||||
model.oscStopSendTyping()
|
||||
|
||||
# func select languages
|
||||
def initSetTranslateEngine():
|
||||
engine = config.SELECTED_TAB_YOUR_TRANSLATOR_ENGINES[config.SELECTED_TAB_NO]
|
||||
config.CHOICE_INPUT_TRANSLATOR = engine
|
||||
engine = config.SELECTED_TAB_TARGET_TRANSLATOR_ENGINES[config.SELECTED_TAB_NO]
|
||||
config.CHOICE_OUTPUT_TRANSLATOR = engine
|
||||
|
||||
def initSetLanguageAndCountry():
|
||||
select = config.SELECTED_TAB_YOUR_LANGUAGES[config.SELECTED_TAB_NO]
|
||||
language, country = model.getLanguageAndCountry(select)
|
||||
@@ -218,7 +224,18 @@ def initSetLanguageAndCountry():
|
||||
language, country = model.getLanguageAndCountry(select)
|
||||
config.TARGET_LANGUAGE = language
|
||||
config.TARGET_COUNTRY = country
|
||||
config.CHOICE_TRANSLATOR = model.findTranslationEngine(config.SOURCE_LANGUAGE, config.TARGET_LANGUAGE)
|
||||
|
||||
def setYourTranslateEngine(select):
|
||||
engines = config.SELECTED_TAB_YOUR_TRANSLATOR_ENGINES
|
||||
engines[config.SELECTED_TAB_NO] = select
|
||||
config.SELECTED_TAB_YOUR_TRANSLATOR_ENGINES = engines
|
||||
config.CHOICE_INPUT_TRANSLATOR = select
|
||||
|
||||
def setTargetTranslateEngine(select):
|
||||
engines = config.SELECTED_TAB_TARGET_TRANSLATOR_ENGINES
|
||||
engines[config.SELECTED_TAB_NO] = select
|
||||
config.SELECTED_TAB_TARGET_TRANSLATOR_ENGINES = engines
|
||||
config.CHOICE_OUTPUT_TRANSLATOR = select
|
||||
|
||||
def setYourLanguageAndCountry(select):
|
||||
languages = config.SELECTED_TAB_YOUR_LANGUAGES
|
||||
@@ -227,7 +244,6 @@ def setYourLanguageAndCountry(select):
|
||||
language, country = model.getLanguageAndCountry(select)
|
||||
config.SOURCE_LANGUAGE = language
|
||||
config.SOURCE_COUNTRY = country
|
||||
config.CHOICE_TRANSLATOR = model.findTranslationEngine(config.SOURCE_LANGUAGE, config.TARGET_LANGUAGE)
|
||||
view.printToTextbox_selectedYourLanguages(select)
|
||||
|
||||
def setTargetLanguageAndCountry(select):
|
||||
@@ -237,7 +253,6 @@ def setTargetLanguageAndCountry(select):
|
||||
language, country = model.getLanguageAndCountry(select)
|
||||
config.TARGET_LANGUAGE = language
|
||||
config.TARGET_COUNTRY = country
|
||||
config.CHOICE_TRANSLATOR = model.findTranslationEngine(config.SOURCE_LANGUAGE, config.TARGET_LANGUAGE)
|
||||
view.printToTextbox_selectedTargetLanguages(select)
|
||||
|
||||
def swapYourLanguageAndTargetLanguage():
|
||||
@@ -252,17 +267,26 @@ def swapYourLanguageAndTargetLanguage():
|
||||
def callbackSelectedLanguagePresetTab(selected_tab_no):
|
||||
config.SELECTED_TAB_NO = selected_tab_no
|
||||
view.updateGuiVariableByPresetTabNo(config.SELECTED_TAB_NO)
|
||||
|
||||
engines = config.SELECTED_TAB_YOUR_TRANSLATOR_ENGINES
|
||||
engine = engines[config.SELECTED_TAB_NO]
|
||||
config.CHOICE_INPUT_TRANSLATOR = engine
|
||||
|
||||
engines = config.SELECTED_TAB_TARGET_TRANSLATOR_ENGINES
|
||||
engine = engines[config.SELECTED_TAB_NO]
|
||||
config.CHOICE_OUTPUT_TRANSLATOR = engine
|
||||
|
||||
languages = config.SELECTED_TAB_YOUR_LANGUAGES
|
||||
select = languages[config.SELECTED_TAB_NO]
|
||||
language, country = model.getLanguageAndCountry(select)
|
||||
config.SOURCE_LANGUAGE = language
|
||||
config.SOURCE_COUNTRY = country
|
||||
|
||||
languages = config.SELECTED_TAB_TARGET_LANGUAGES
|
||||
select = languages[config.SELECTED_TAB_NO]
|
||||
language, country = model.getLanguageAndCountry(select)
|
||||
config.TARGET_LANGUAGE = language
|
||||
config.TARGET_COUNTRY = country
|
||||
config.CHOICE_TRANSLATOR = model.findTranslationEngine(config.SOURCE_LANGUAGE, config.TARGET_LANGUAGE)
|
||||
view.printToTextbox_changedLanguagePresetTab(config.SELECTED_TAB_NO)
|
||||
|
||||
# command func
|
||||
@@ -392,7 +416,7 @@ def callbackSetUiLanguage(value):
|
||||
def callbackSetDeeplAuthkey(value):
|
||||
print("callbackSetDeeplAuthkey", str(value))
|
||||
if len(value) == 39:
|
||||
result = model.authenticationTranslator(choice_translator="DeepL_API", auth_key=value)
|
||||
result = model.authenticationTranslatorDeepLAuthKey(auth_key=value)
|
||||
if result is True:
|
||||
key = value
|
||||
view.printToTextbox_AuthenticationSuccess()
|
||||
@@ -402,12 +426,10 @@ def callbackSetDeeplAuthkey(value):
|
||||
auth_keys = config.AUTH_KEYS
|
||||
auth_keys["DeepL_API"] = key
|
||||
config.AUTH_KEYS = auth_keys
|
||||
config.CHOICE_TRANSLATOR = model.findTranslationEngine(config.SOURCE_LANGUAGE, config.TARGET_LANGUAGE)
|
||||
elif len(value) == 0:
|
||||
auth_keys = config.AUTH_KEYS
|
||||
auth_keys["DeepL_API"] = None
|
||||
config.AUTH_KEYS = auth_keys
|
||||
config.CHOICE_TRANSLATOR = model.findTranslationEngine(config.SOURCE_LANGUAGE, config.TARGET_LANGUAGE)
|
||||
|
||||
# Transcription Tab (Mic)
|
||||
def callbackSetMicHost(value):
|
||||
@@ -703,15 +725,17 @@ def createMainWindow():
|
||||
|
||||
# init config
|
||||
initSetConfigByExeArguments()
|
||||
initSetTranslateEngine()
|
||||
initSetLanguageAndCountry()
|
||||
|
||||
if model.authenticationTranslator(config.CHOICE_TRANSLATOR, config.AUTH_KEYS[config.CHOICE_TRANSLATOR]) is False:
|
||||
# error update Auth key
|
||||
auth_keys = config.AUTH_KEYS
|
||||
auth_keys[config.CHOICE_TRANSLATOR] = None
|
||||
config.AUTH_KEYS = auth_keys
|
||||
view.printToTextbox_AuthenticationError()
|
||||
config.CHOICE_TRANSLATOR = model.findTranslationEngine(config.SOURCE_LANGUAGE, config.TARGET_LANGUAGE)
|
||||
# if (config.SELECTED_TAB_YOUR_TRANSLATOR_ENGINES[config.SELECTED_TAB_NO] == "DeepL_API" or
|
||||
# config.SELECTED_TAB_TARGET_TRANSLATOR_ENGINES[config.SELECTED_TAB_NO] == "DeepL_API"):
|
||||
# if model.authenticationTranslator("DeepL_API", config.AUTH_KEYS["DeepL_API"]) is False:
|
||||
# # error update Auth key
|
||||
# auth_keys = config.AUTH_KEYS
|
||||
# auth_keys["DeepL_API"] = None
|
||||
# config.AUTH_KEYS = auth_keys
|
||||
# view.printToTextbox_AuthenticationError()
|
||||
|
||||
# set word filter
|
||||
model.addKeywords()
|
||||
|
||||
58
model.py
58
model.py
@@ -83,13 +83,8 @@ class Model:
|
||||
del self.keyword_processor
|
||||
self.keyword_processor = KeywordProcessor()
|
||||
|
||||
def authenticationTranslator(self, choice_translator=None, auth_key=None):
|
||||
if choice_translator is None:
|
||||
choice_translator = config.CHOICE_TRANSLATOR
|
||||
if auth_key is None:
|
||||
auth_key = config.AUTH_KEYS[choice_translator]
|
||||
|
||||
result = self.translator.authentication(choice_translator, auth_key)
|
||||
def authenticationTranslatorDeepLAuthKey(self, auth_key):
|
||||
result = self.translator.authenticationDeepLAuthKey(auth_key)
|
||||
return result
|
||||
|
||||
def startLogger(self):
|
||||
@@ -123,25 +118,25 @@ class Model:
|
||||
country = parts[1][1:-1]
|
||||
return language, country
|
||||
|
||||
def findTranslationEngine(self, source_lang, target_lang):
|
||||
compatible_engines = []
|
||||
for engine in translatorEngine:
|
||||
source_languages = translation_lang.get(engine, {}).get("source", {})
|
||||
target_languages = translation_lang.get(engine, {}).get("target", {})
|
||||
if source_lang in source_languages and target_lang in target_languages:
|
||||
compatible_engines.append(engine)
|
||||
engine_name = compatible_engines[0]
|
||||
# def findTranslationEngine(self, source_lang, target_lang):
|
||||
# compatible_engines = []
|
||||
# for engine in translatorEngine:
|
||||
# source_languages = translation_lang.get(engine, {}).get("source", {})
|
||||
# target_languages = translation_lang.get(engine, {}).get("target", {})
|
||||
# if source_lang in source_languages and target_lang in target_languages:
|
||||
# compatible_engines.append(engine)
|
||||
# engine_name = compatible_engines[0]
|
||||
|
||||
if engine_name == "DeepL" and config.AUTH_KEYS["DeepL_API"] is not None:
|
||||
if self.authenticationTranslator(engine_name, config.AUTH_KEYS["DeepL_API"]) is True:
|
||||
engine_name = "DeepL_API"
|
||||
elif engine_name == "DeepL_API" and config.AUTH_KEYS["DeepL_API"] is None:
|
||||
engine_name = "DeepL"
|
||||
# if engine_name == "DeepL" and config.AUTH_KEYS["DeepL_API"] is not None:
|
||||
# if self.authenticationTranslator(engine_name, config.AUTH_KEYS["DeepL_API"]) is True:
|
||||
# engine_name = "DeepL_API"
|
||||
# elif engine_name == "DeepL_API" and config.AUTH_KEYS["DeepL_API"] is None:
|
||||
# engine_name = "DeepL"
|
||||
|
||||
return engine_name
|
||||
# return engine_name
|
||||
|
||||
def getInputTranslate(self, message):
|
||||
translator_name=config.CHOICE_TRANSLATOR
|
||||
translator_name=config.CHOICE_INPUT_TRANSLATOR
|
||||
source_language=config.SOURCE_LANGUAGE
|
||||
target_language=config.TARGET_LANGUAGE
|
||||
target_country = config.TARGET_COUNTRY
|
||||
@@ -157,19 +152,12 @@ class Model:
|
||||
target_language = "Portuguese European"
|
||||
else:
|
||||
target_language = "Portuguese Brazilian"
|
||||
elif translator_name == "DeepL":
|
||||
else:
|
||||
if target_language in ["English American", "English British"]:
|
||||
target_language = "English"
|
||||
elif target_language in ["Portuguese European", "Portuguese Brazilian"]:
|
||||
target_language = "Portuguese"
|
||||
|
||||
# translation = self.translator.translate_ctranslate2(
|
||||
# translator_name=translator_name,
|
||||
# source_language=source_language,
|
||||
# target_language=target_language,
|
||||
# message=message
|
||||
# )
|
||||
|
||||
translation = self.translator.translate(
|
||||
translator_name=translator_name,
|
||||
source_language=source_language,
|
||||
@@ -179,7 +167,7 @@ class Model:
|
||||
return translation
|
||||
|
||||
def getOutputTranslate(self, message):
|
||||
translator_name=config.CHOICE_TRANSLATOR
|
||||
translator_name=config.CHOICE_OUTPUT_TRANSLATOR
|
||||
source_language=config.TARGET_LANGUAGE
|
||||
target_language=config.SOURCE_LANGUAGE
|
||||
target_country = config.SOURCE_COUNTRY
|
||||
@@ -195,18 +183,12 @@ class Model:
|
||||
target_language = "Portuguese European"
|
||||
else:
|
||||
target_language = "Portuguese Brazilian"
|
||||
elif translator_name == "DeepL":
|
||||
else:
|
||||
if target_language in ["English American", "English British"]:
|
||||
target_language = "English"
|
||||
elif target_language in ["Portuguese European", "Portuguese Brazilian"]:
|
||||
target_language = "Portuguese"
|
||||
|
||||
# translation = self.translator.translate_ctranslate2(
|
||||
# translator_name=translator_name,
|
||||
# source_language=source_language,
|
||||
# target_language=target_language,
|
||||
# message=message
|
||||
# )
|
||||
translation = self.translator.translate(
|
||||
translator_name=translator_name,
|
||||
source_language=source_language,
|
||||
|
||||
@@ -21,15 +21,13 @@ class Translator():
|
||||
self.translator = ctranslate2.Translator(self.weight_path, device="cpu", device_index=0, compute_type="int8", inter_threads=1, intra_threads=4)
|
||||
self.tokenizer = transformers.AutoTokenizer.from_pretrained(tokenizer)
|
||||
|
||||
def authentication(self, translator_name, authkey=None):
|
||||
def authenticationDeepLAuthKey(self, authkey):
|
||||
result = True
|
||||
match translator_name:
|
||||
case "DeepL_API":
|
||||
try:
|
||||
self.deepl_client = deepl_Translator(authkey)
|
||||
self.deepl_client.translate_text(" ", target_lang="EN-US")
|
||||
except Exception:
|
||||
result = False
|
||||
try:
|
||||
self.deepl_client = deepl_Translator(authkey)
|
||||
self.deepl_client.translate_text(" ", target_lang="EN-US")
|
||||
except Exception:
|
||||
result = False
|
||||
return result
|
||||
|
||||
def translate(self, translator_name, source_language, target_language, message):
|
||||
|
||||
Reference in New Issue
Block a user