Merge branch 'model' into UI_2.0
This commit is contained in:
19
config.py
19
config.py
@@ -429,19 +429,6 @@ class Config:
|
||||
self._OSC_PORT = value
|
||||
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
|
||||
|
||||
@property
|
||||
@json_serializable('AUTH_KEYS')
|
||||
def AUTH_KEYS(self):
|
||||
return self._AUTH_KEYS
|
||||
|
||||
@AUTH_KEYS.setter
|
||||
def AUTH_KEYS(self, value):
|
||||
if type(value) is dict and set(value.keys()) == set(self.AUTH_KEYS.keys()):
|
||||
for key, value in value.items():
|
||||
if type(value) is str:
|
||||
self._AUTH_KEYS[key] = value
|
||||
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, self.AUTH_KEYS)
|
||||
|
||||
@property
|
||||
@json_serializable('MESSAGE_FORMAT')
|
||||
def MESSAGE_FORMAT(self):
|
||||
@@ -578,12 +565,6 @@ class Config:
|
||||
self._INPUT_SPEAKER_MAX_PHRASES = 10
|
||||
self._OSC_IP_ADDRESS = "127.0.0.1"
|
||||
self._OSC_PORT = 9000
|
||||
self._AUTH_KEYS = {
|
||||
"DeepL(web)": None,
|
||||
"DeepL(auth)": None,
|
||||
"Bing(web)": None,
|
||||
"Google(web)": None,
|
||||
}
|
||||
self._MESSAGE_FORMAT = "[message]([translation])"
|
||||
self._ENABLE_AUTO_CLEAR_MESSAGE_BOX = True
|
||||
self._ENABLE_NOTICE_XSOVERLAY = False
|
||||
|
||||
@@ -22,13 +22,10 @@ def sendMicMessage(message):
|
||||
return
|
||||
elif config.ENABLE_TRANSLATION is False:
|
||||
pass
|
||||
elif model.getTranslatorStatus() is False:
|
||||
view.printToTextbox_AuthenticationError()
|
||||
else:
|
||||
translation = model.getInputTranslate(message)
|
||||
|
||||
if translation == None:
|
||||
view.printToTextbox_AuthenticationError()
|
||||
translation = ""
|
||||
|
||||
if config.ENABLE_TRANSCRIPTION_SEND is True:
|
||||
@@ -88,13 +85,10 @@ def receiveSpeakerMessage(message):
|
||||
translation = ""
|
||||
if config.ENABLE_TRANSLATION is False:
|
||||
pass
|
||||
elif model.getTranslatorStatus() is False:
|
||||
view.printToTextbox_AuthenticationError()
|
||||
else:
|
||||
translation = model.getOutputTranslate(message)
|
||||
|
||||
if translation == None:
|
||||
view.printToTextbox_AuthenticationError()
|
||||
translation = ""
|
||||
|
||||
if config.ENABLE_TRANSCRIPTION_RECEIVE is True:
|
||||
@@ -155,13 +149,10 @@ def sendChatMessage(message):
|
||||
translation = ""
|
||||
if config.ENABLE_TRANSLATION is False:
|
||||
pass
|
||||
elif model.getTranslatorStatus() is False:
|
||||
view.printToTextbox_AuthenticationError()
|
||||
else:
|
||||
translation = model.getInputTranslate(message)
|
||||
|
||||
if translation == None:
|
||||
view.printToTextbox_AuthenticationError()
|
||||
translation = ""
|
||||
|
||||
# send OSC message
|
||||
@@ -201,14 +192,11 @@ def initSetLanguageAndCountry():
|
||||
language, country = model.getLanguageAndCountry(select)
|
||||
config.SOURCE_LANGUAGE = language
|
||||
config.SOURCE_COUNTRY = country
|
||||
|
||||
select = config.SELECTED_TAB_TARGET_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)
|
||||
model.authenticationTranslator(callbackSetAuthKeys)
|
||||
|
||||
def setYourLanguageAndCountry(select):
|
||||
languages = config.SELECTED_TAB_YOUR_LANGUAGES
|
||||
@@ -218,7 +206,6 @@ def setYourLanguageAndCountry(select):
|
||||
config.SOURCE_LANGUAGE = language
|
||||
config.SOURCE_COUNTRY = country
|
||||
config.CHOICE_TRANSLATOR = model.findTranslationEngine(config.SOURCE_LANGUAGE, config.TARGET_LANGUAGE)
|
||||
model.authenticationTranslator(callbackSetAuthKeys)
|
||||
view.printToTextbox_selectedYourLanguages(select)
|
||||
|
||||
def setTargetLanguageAndCountry(select):
|
||||
@@ -229,7 +216,6 @@ def setTargetLanguageAndCountry(select):
|
||||
config.TARGET_LANGUAGE = language
|
||||
config.TARGET_COUNTRY = country
|
||||
config.CHOICE_TRANSLATOR = model.findTranslationEngine(config.SOURCE_LANGUAGE, config.TARGET_LANGUAGE)
|
||||
model.authenticationTranslator(callbackSetAuthKeys)
|
||||
view.printToTextbox_selectedTargetLanguages(select)
|
||||
|
||||
def callbackSelectedLanguagePresetTab(selected_tab_no):
|
||||
@@ -246,11 +232,8 @@ def callbackSelectedLanguagePresetTab(selected_tab_no):
|
||||
config.TARGET_LANGUAGE = language
|
||||
config.TARGET_COUNTRY = country
|
||||
config.CHOICE_TRANSLATOR = model.findTranslationEngine(config.SOURCE_LANGUAGE, config.TARGET_LANGUAGE)
|
||||
model.authenticationTranslator(callbackSetAuthKeys)
|
||||
view.printToTextbox_changedLanguagePresetTab(config.SELECTED_TAB_NO)
|
||||
|
||||
def callbackSetAuthKeys(keys):
|
||||
config.AUTH_KEYS = keys
|
||||
|
||||
# command func
|
||||
def callbackToggleTranslation(is_turned_on):
|
||||
@@ -370,21 +353,6 @@ def callbackSetUiLanguage(value):
|
||||
config.UI_LANGUAGE = value
|
||||
view.showRestartButton(locale=config.UI_LANGUAGE)
|
||||
|
||||
# Translation Tab
|
||||
def callbackSetDeeplAuthkey(value):
|
||||
print("callbackSetDeeplAuthkey", str(value))
|
||||
if len(value) > 0 and model.authenticationTranslator(callbackSetAuthKeys, choice_translator="DeepL(auth)", auth_key=value) is True:
|
||||
config.CHOICE_TRANSLATOR = model.findTranslationEngine(config.SOURCE_LANGUAGE, config.TARGET_LANGUAGE)
|
||||
model.authenticationTranslator(callbackSetAuthKeys)
|
||||
view.printToTextbox_AuthenticationSuccess()
|
||||
elif len(value) == 0:
|
||||
auth_keys = config.AUTH_KEYS
|
||||
auth_keys["DeepL(auth)"] = None
|
||||
config.AUTH_KEYS = auth_keys
|
||||
model.authenticationTranslator(callbackSetAuthKeys)
|
||||
else:
|
||||
view.printToTextbox_AuthenticationError()
|
||||
|
||||
# Transcription Tab (Mic)
|
||||
def callbackSetMicHost(value):
|
||||
print("callbackSetMicHost", value)
|
||||
@@ -633,12 +601,6 @@ def createMainWindow():
|
||||
# init config
|
||||
initSetLanguageAndCountry()
|
||||
|
||||
if model.authenticationTranslator(callbackSetAuthKeys) is False:
|
||||
# error update Auth key
|
||||
view.printToTextbox_AuthenticationError()
|
||||
config.CHOICE_TRANSLATOR = model.findTranslationEngine(config.SOURCE_LANGUAGE, config.TARGET_LANGUAGE)
|
||||
model.authenticationTranslator(callbackSetAuthKeys)
|
||||
|
||||
# set word filter
|
||||
model.addKeywords()
|
||||
|
||||
@@ -696,9 +658,6 @@ def createMainWindow():
|
||||
"callback_set_font_family": callbackSetFontFamily,
|
||||
"callback_set_ui_language": callbackSetUiLanguage,
|
||||
|
||||
# Translation Tab
|
||||
"callback_set_deepl_authkey": callbackSetDeeplAuthkey,
|
||||
|
||||
# Transcription Tab (Mic)
|
||||
"callback_set_mic_host": callbackSetMicHost,
|
||||
"list_mic_host": model.getListInputHost(),
|
||||
|
||||
49
model.py
49
model.py
@@ -81,22 +81,6 @@ class Model:
|
||||
del self.keyword_processor
|
||||
self.keyword_processor = KeywordProcessor()
|
||||
|
||||
def authenticationTranslator(self, fnc, choice_translator=None, auth_key=None):
|
||||
if choice_translator == None:
|
||||
choice_translator = config.CHOICE_TRANSLATOR
|
||||
if auth_key == None:
|
||||
auth_key = config.AUTH_KEYS[choice_translator]
|
||||
|
||||
result = self.translator.authentication(choice_translator, auth_key)
|
||||
if result:
|
||||
auth_keys = config.AUTH_KEYS
|
||||
auth_keys[choice_translator] = auth_key
|
||||
try:
|
||||
fnc(auth_keys)
|
||||
except:
|
||||
pass
|
||||
return result
|
||||
|
||||
def startLogger(self):
|
||||
os_makedirs(os_path.join(os_path.dirname(sys.argv[0]), "logs"), exist_ok=True)
|
||||
logger = getLogger()
|
||||
@@ -137,31 +121,10 @@ class Model:
|
||||
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(web)" and config.AUTH_KEYS["DeepL(auth)"] != None:
|
||||
engine_name = "DeepL(auth)"
|
||||
return engine_name
|
||||
|
||||
def getTranslatorStatus(self):
|
||||
return self.translator.translator_status[config.CHOICE_TRANSLATOR]
|
||||
|
||||
def getListTranslatorName(self):
|
||||
return list(self.translator.translator_status.keys())
|
||||
|
||||
def getInputTranslate(self, message):
|
||||
try:
|
||||
if config.CHOICE_TRANSLATOR == "DeepL(auth)":
|
||||
if config.TARGET_LANGUAGE == "English":
|
||||
if config.TARGET_COUNTRY in ["United States", "Canada", "Philippines"]:
|
||||
config.TARGET_LANGUAGE = "English American"
|
||||
else:
|
||||
config.TARGET_LANGUAGE = "English British"
|
||||
elif config.TARGET_LANGUAGE in ["Portuguese"]:
|
||||
if config.TARGET_COUNTRY == "Portugal":
|
||||
config.TARGET_LANGUAGE = "Portuguese European"
|
||||
else:
|
||||
config.TARGET_LANGUAGE = "Portuguese Brazilian"
|
||||
|
||||
translation = self.translator.translate(
|
||||
translator_name=config.CHOICE_TRANSLATOR,
|
||||
source_language=config.SOURCE_LANGUAGE,
|
||||
@@ -174,18 +137,6 @@ class Model:
|
||||
|
||||
def getOutputTranslate(self, message):
|
||||
try:
|
||||
if config.CHOICE_TRANSLATOR == "DeepL(auth)":
|
||||
if config.SOURCE_LANGUAGE == "English":
|
||||
if config.SOURCE_COUNTRY in ["United States", "Canada", "Philippines"]:
|
||||
config.SOURCE_LANGUAGE = "English American"
|
||||
else:
|
||||
config.SOURCE_LANGUAGE = "English British"
|
||||
elif config.SOURCE_LANGUAGE in ["Portuguese"]:
|
||||
if config.SOURCE_COUNTRY == "Portugal":
|
||||
config.SOURCE_LANGUAGE = "Portuguese European"
|
||||
else:
|
||||
config.SOURCE_LANGUAGE = "Portuguese Brazilian"
|
||||
|
||||
translation = self.translator.translate(
|
||||
translator_name=config.CHOICE_TRANSLATOR,
|
||||
source_language=config.TARGET_LANGUAGE,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
translatorEngine = ["DeepL(web)", "DeepL(auth)", "Google(web)", "Bing(web)"]
|
||||
translatorEngine = ["DeepL", "Google", "Bing"]
|
||||
translation_lang = {}
|
||||
dict_deepl_web_languages = {
|
||||
dict_deepl_languages = {
|
||||
"Japanese":"JA",
|
||||
"English":"EN",
|
||||
"Korean":"KO",
|
||||
@@ -31,82 +31,12 @@ dict_deepl_web_languages = {
|
||||
"Turkish":"TR",
|
||||
"Norwegian":"NB",
|
||||
}
|
||||
translation_lang["DeepL(web)"] = {
|
||||
"source":dict_deepl_web_languages,
|
||||
"target":dict_deepl_web_languages,
|
||||
translation_lang["DeepL"] = {
|
||||
"source":dict_deepl_languages,
|
||||
"target":dict_deepl_languages,
|
||||
}
|
||||
|
||||
dict_deepl_auth_source_languages = {
|
||||
"Japanese":"ja",
|
||||
"English":"en",
|
||||
"Bulgarian":"bg",
|
||||
"Czech":"cs",
|
||||
"Danish":"da",
|
||||
"German":"de",
|
||||
"Greek":"el",
|
||||
"Spanish":"es",
|
||||
"Estonian":"et",
|
||||
"Finnish":"fi",
|
||||
"French":"fr",
|
||||
"Hungarian":"hu",
|
||||
"Indonesian":"id",
|
||||
"Italian":"it",
|
||||
"Korean":"ko",
|
||||
"Lithuanian":"lt",
|
||||
"Latvian":"lv",
|
||||
"Norwegian":"nb",
|
||||
"Dutch":"nl",
|
||||
"Polish":"pl",
|
||||
"Portuguese":"pt",
|
||||
"Romanian":"ro",
|
||||
"Russian":"ru",
|
||||
"Slovak":"sk",
|
||||
"Slovenian":"sl",
|
||||
"Swedish":"sv",
|
||||
"Turkish":"tr",
|
||||
"Ukrainian":"uk",
|
||||
"Chinese":"zh"
|
||||
}
|
||||
dict_deepl_auth_target_languages = {
|
||||
"Japanese":"ja",
|
||||
"English American":"en-US",
|
||||
"English British":"en-GB",
|
||||
"Bulgarian":"bg",
|
||||
"Czech":"cs",
|
||||
"Danish":"da",
|
||||
"German":"de",
|
||||
"Greek":"el",
|
||||
"English":"en",
|
||||
"Spanish":"es",
|
||||
"Estonian":"et",
|
||||
"Finnish":"fi",
|
||||
"French":"fr",
|
||||
"Hungarian":"hu",
|
||||
"Indonesian":"id",
|
||||
"Italian":"it",
|
||||
"Korean":"ko",
|
||||
"Lithuanian":"lt",
|
||||
"Latvian":"lv",
|
||||
"Norwegian":"nb",
|
||||
"Dutch":"nl",
|
||||
"Polish":"pl",
|
||||
"Portuguese Brazilian":"pt-BR",
|
||||
"Portuguese European":"pt-PT",
|
||||
"Romanian":"ro",
|
||||
"Russian":"ru",
|
||||
"Slovak":"sk",
|
||||
"Slovenian":"sl",
|
||||
"Swedish":"sv",
|
||||
"Turkish":"tr",
|
||||
"Ukrainian":"uk",
|
||||
"Chinese":"zh"
|
||||
}
|
||||
translation_lang["DeepL(auth)"] = {
|
||||
"source": dict_deepl_auth_source_languages,
|
||||
"target": dict_deepl_auth_target_languages,
|
||||
}
|
||||
|
||||
dict_google_web_languages = {
|
||||
dict_google_languages = {
|
||||
"Japanese":"ja",
|
||||
"English":"en",
|
||||
"Chinese":"zh",
|
||||
@@ -170,12 +100,12 @@ dict_google_web_languages = {
|
||||
"Basque":"eu",
|
||||
"Irish":"ga"
|
||||
}
|
||||
translation_lang["Google(web)"] = {
|
||||
"source":dict_google_web_languages,
|
||||
"target":dict_google_web_languages,
|
||||
translation_lang["Google"] = {
|
||||
"source":dict_google_languages,
|
||||
"target":dict_google_languages,
|
||||
}
|
||||
|
||||
dict_bing_web_languages = {
|
||||
dict_bing_languages = {
|
||||
"Japanese":"ja",
|
||||
"English":"en",
|
||||
"Chinese":"zh",
|
||||
@@ -237,7 +167,7 @@ dict_bing_web_languages = {
|
||||
"Punjabi":"pa",
|
||||
"Irish":"ga"
|
||||
}
|
||||
translation_lang["Bing(web)"] = {
|
||||
"source":dict_bing_web_languages,
|
||||
"target":dict_bing_web_languages,
|
||||
translation_lang["Bing"] = {
|
||||
"source":dict_bing_languages,
|
||||
"target":dict_bing_languages,
|
||||
}
|
||||
@@ -6,63 +6,34 @@ from .translation_languages import translatorEngine, translation_lang
|
||||
# Translator
|
||||
class Translator():
|
||||
def __init__(self):
|
||||
self.translator_status = {}
|
||||
for translator in translatorEngine:
|
||||
self.translator_status[translator] = False
|
||||
self.deepl_client = None
|
||||
|
||||
def authentication(self, translator_name, authkey=None):
|
||||
result = False
|
||||
if translator_name == "DeepL(web)":
|
||||
self.translator_status[translator_name] = True
|
||||
result = True
|
||||
elif translator_name == "DeepL(auth)":
|
||||
try:
|
||||
self.deepl_client = deepl_Translator(authkey)
|
||||
self.deepl_client.translate_text(" ", target_lang="EN-US")
|
||||
self.translator_status[translator_name] = True
|
||||
result = True
|
||||
except:
|
||||
self.translator_status[translator_name] = False
|
||||
elif translator_name == "Google(web)":
|
||||
self.translator_status[translator_name] = True
|
||||
result = True
|
||||
elif translator_name == "Bing(web)":
|
||||
self.translator_status[translator_name] = True
|
||||
result = True
|
||||
return result
|
||||
pass
|
||||
|
||||
def translate(self, translator_name, source_language, target_language, message):
|
||||
result = ""
|
||||
try:
|
||||
result = ""
|
||||
source_language=translation_lang[translator_name]["source"][source_language]
|
||||
target_language=translation_lang[translator_name]["target"][target_language]
|
||||
if translator_name == "DeepL(web)":
|
||||
result = deepl_web_Translator(
|
||||
source_language=source_language,
|
||||
target_language=target_language,
|
||||
text=message
|
||||
)
|
||||
elif translator_name == "DeepL(auth)":
|
||||
result = self.deepl_client.translate_text(
|
||||
message,
|
||||
source_lang=source_language,
|
||||
target_lang=target_language,
|
||||
).text
|
||||
elif translator_name == "Google(web)":
|
||||
result = other_web_Translator(
|
||||
query_text=message,
|
||||
translator="google",
|
||||
from_language=source_language,
|
||||
to_language=target_language,
|
||||
)
|
||||
elif translator_name == "Bing(web)":
|
||||
result = other_web_Translator(
|
||||
query_text=message,
|
||||
translator="bing",
|
||||
from_language=source_language,
|
||||
to_language=target_language,
|
||||
)
|
||||
match translator_name:
|
||||
case "DeepL":
|
||||
result = deepl_web_Translator(
|
||||
source_language=source_language,
|
||||
target_language=target_language,
|
||||
text=message
|
||||
)
|
||||
case "Google":
|
||||
result = other_web_Translator(
|
||||
query_text=message,
|
||||
translator="google",
|
||||
from_language=source_language,
|
||||
to_language=target_language,
|
||||
)
|
||||
case "Bing":
|
||||
result = other_web_Translator(
|
||||
query_text=message,
|
||||
translator="bing",
|
||||
from_language=source_language,
|
||||
to_language=target_language,
|
||||
)
|
||||
except:
|
||||
pass
|
||||
return result
|
||||
2
view.py
2
view.py
@@ -198,7 +198,7 @@ class View():
|
||||
VAR_LABEL_DEEPL_AUTH_KEY=StringVar(value=i18n.t("config_window.deepl_auth_key.label")),
|
||||
VAR_DESC_DEEPL_AUTH_KEY=None,
|
||||
CALLBACK_SET_DEEPL_AUTH_KEY=None,
|
||||
VAR_DEEPL_AUTH_KEY=StringVar(value=config.AUTH_KEYS["DeepL(auth)"]),
|
||||
VAR_DEEPL_AUTH_KEY=StringVar(value=""),
|
||||
|
||||
|
||||
# Transcription Tab (Mic)
|
||||
|
||||
Reference in New Issue
Block a user