[Update] 翻訳エンジンを自動で設定するように変更
This commit is contained in:
45
main.py
45
main.py
@@ -3,8 +3,6 @@ import customtkinter
|
||||
from vrct_gui import vrct_gui
|
||||
from config import config
|
||||
from model import model
|
||||
from models.translation.translation_languages import translatorEngine, translation_lang
|
||||
from models.transcription.transcription_languages import transcription_lang
|
||||
|
||||
# func transcription send message
|
||||
def sendMicMessage(message):
|
||||
@@ -120,84 +118,71 @@ def foregroundOnForcefully(e):
|
||||
vrct_gui.attributes("-topmost", True)
|
||||
|
||||
# func select languages
|
||||
def getListLanguageAndCountry():
|
||||
langs = []
|
||||
for lang in model.SUPPORTED_LANGUAGES:
|
||||
for country in transcription_lang[lang]:
|
||||
langs.append(f"{lang}\n({country})")
|
||||
return langs
|
||||
|
||||
def getLanguageAndState(select):
|
||||
parts = select.split("\n")
|
||||
language = parts[0]
|
||||
country = parts[1][1:-1]
|
||||
return language, country
|
||||
|
||||
def setYourLanguageAndCountry(select):
|
||||
languages = config.SELECTED_TAB_YOUR_LANGUAGES
|
||||
languages[config.SELECTED_TAB_NO] = select
|
||||
config.SELECTED_TAB_YOUR_LANGUAGES = languages
|
||||
|
||||
language, country = getLanguageAndState(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)
|
||||
|
||||
def setTargetLanguageAndCountry(select):
|
||||
languages = config.SELECTED_TAB_TARGET_LANGUAGES
|
||||
languages[config.SELECTED_TAB_NO] = select
|
||||
config.SELECTED_TAB_TARGET_LANGUAGES = languages
|
||||
|
||||
language, country = getLanguageAndState(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)
|
||||
|
||||
def callbackSelectedTabNo1():
|
||||
config.SELECTED_TAB_NO = "tab_1"
|
||||
vrct_gui.YOUR_LANGUAGE = config.SELECTED_TAB_YOUR_LANGUAGES[config.SELECTED_TAB_NO]
|
||||
vrct_gui.TARGET_LANGUAGE = config.SELECTED_TAB_TARGET_LANGUAGES[config.SELECTED_TAB_NO]
|
||||
|
||||
languages = config.SELECTED_TAB_YOUR_LANGUAGES
|
||||
select = languages[config.SELECTED_TAB_NO]
|
||||
language, country = getLanguageAndState(select)
|
||||
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 = getLanguageAndState(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)
|
||||
|
||||
def callbackSelectedTabNo2():
|
||||
config.SELECTED_TAB_NO = "tab_2"
|
||||
vrct_gui.YOUR_LANGUAGE = config.SELECTED_TAB_YOUR_LANGUAGES[config.SELECTED_TAB_NO]
|
||||
vrct_gui.TARGET_LANGUAGE = config.SELECTED_TAB_TARGET_LANGUAGES[config.SELECTED_TAB_NO]
|
||||
|
||||
languages = config.SELECTED_TAB_YOUR_LANGUAGES
|
||||
select = languages[config.SELECTED_TAB_NO]
|
||||
language, country = getLanguageAndState(select)
|
||||
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 = getLanguageAndState(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)
|
||||
|
||||
def callbackSelectedTabNo3():
|
||||
config.SELECTED_TAB_NO = "tab_3"
|
||||
vrct_gui.YOUR_LANGUAGE = config.SELECTED_TAB_YOUR_LANGUAGES[config.SELECTED_TAB_NO]
|
||||
vrct_gui.TARGET_LANGUAGE = config.SELECTED_TAB_TARGET_LANGUAGES[config.SELECTED_TAB_NO]
|
||||
|
||||
languages = config.SELECTED_TAB_YOUR_LANGUAGES
|
||||
select = languages[config.SELECTED_TAB_NO]
|
||||
language, country = getLanguageAndState(select)
|
||||
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 = getLanguageAndState(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)
|
||||
|
||||
# func print textbox
|
||||
def logTranslationStatusChange():
|
||||
@@ -333,11 +318,11 @@ entry_message_box.bind("<FocusIn>", foregroundOffForcefully)
|
||||
entry_message_box.bind("<FocusOut>", foregroundOnForcefully)
|
||||
|
||||
sqls__optionmenu_your_language = getattr(vrct_gui, "sqls__optionmenu_your_language")
|
||||
sqls__optionmenu_your_language.configure(values=getListLanguageAndCountry())
|
||||
sqls__optionmenu_your_language.configure(values=model.getListLanguageAndCountry())
|
||||
sqls__optionmenu_your_language.configure(command=setYourLanguageAndCountry)
|
||||
|
||||
sqls__optionmenu_target_language = getattr(vrct_gui, "sqls__optionmenu_target_language")
|
||||
sqls__optionmenu_target_language.configure(values=getListLanguageAndCountry())
|
||||
sqls__optionmenu_target_language.configure(values=model.getListLanguageAndCountry())
|
||||
sqls__optionmenu_target_language.configure(command=setTargetLanguageAndCountry)
|
||||
|
||||
vrct_gui.CALLBACK_SELECTED_TAB_NO_1 = callbackSelectedTabNo1
|
||||
|
||||
31
model.py
31
model.py
@@ -11,6 +11,8 @@ from models.transcription.transcription_recorder import SelectedMicRecorder, Sel
|
||||
from models.transcription.transcription_recorder import SelectedMicEnergyRecorder, SelectedSpeakeEnergyRecorder
|
||||
from models.transcription.transcription_transcriber import AudioTranscriber
|
||||
from models.xsoverlay.notification import xsoverlayForVRCT
|
||||
from models.translation.translation_languages import translatorEngine, translation_lang
|
||||
from models.transcription.transcription_languages import transcription_lang
|
||||
from config import config
|
||||
|
||||
class threadFnc(Thread):
|
||||
@@ -75,6 +77,31 @@ class Model:
|
||||
config.AUTH_KEYS = auth_keys
|
||||
return result
|
||||
|
||||
@staticmethod
|
||||
def getListLanguageAndCountry():
|
||||
langs = []
|
||||
for lang in model.SUPPORTED_LANGUAGES:
|
||||
for country in transcription_lang[lang]:
|
||||
langs.append(f"{lang}\n({country})")
|
||||
return langs
|
||||
|
||||
@staticmethod
|
||||
def getLanguageAndCountry(select):
|
||||
parts = select.split("\n")
|
||||
language = parts[0]
|
||||
country = parts[1][1:-1]
|
||||
return language, country
|
||||
|
||||
@staticmethod
|
||||
def findTranslationEngine(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)
|
||||
return compatible_engines[0]
|
||||
|
||||
def getTranslatorStatus(self):
|
||||
return self.translator.translator_status[config.CHOICE_TRANSLATOR]
|
||||
|
||||
@@ -93,8 +120,8 @@ class Model:
|
||||
def getOutputTranslate(self, message):
|
||||
translation = self.translator.translate(
|
||||
translator_name=config.CHOICE_TRANSLATOR,
|
||||
source_language=config.OUTPUT_SOURCE_LANG,
|
||||
target_language=config.OUTPUT_TARGET_LANG,
|
||||
source_language=config.TARGET_LANGUAGE,
|
||||
target_language=config.SOURCE_LANGUAGE,
|
||||
message=message
|
||||
)
|
||||
return translation
|
||||
|
||||
Reference in New Issue
Block a user