[Update] Add feature, Send Only Translated Messages: 翻訳オン時、翻訳後のメッセージのみを送信する機能を追加。

This commit is contained in:
Sakamoto Shiina
2023-12-20 01:07:42 +09:00
parent 1eb84517db
commit 74bd06c768
6 changed files with 58 additions and 2 deletions

View File

@@ -458,6 +458,17 @@ class Config:
self._ENABLE_AUTO_CLEAR_MESSAGE_BOX = value self._ENABLE_AUTO_CLEAR_MESSAGE_BOX = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value) saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('ENABLE_SEND_ONLY_TRANSLATED_MESSAGES')
def ENABLE_SEND_ONLY_TRANSLATED_MESSAGES(self):
return self._ENABLE_SEND_ONLY_TRANSLATED_MESSAGES
@ENABLE_SEND_ONLY_TRANSLATED_MESSAGES.setter
def ENABLE_SEND_ONLY_TRANSLATED_MESSAGES(self, value):
if isinstance(value, bool):
self._ENABLE_SEND_ONLY_TRANSLATED_MESSAGES = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
@property @property
@json_serializable('ENABLE_NOTICE_XSOVERLAY') @json_serializable('ENABLE_NOTICE_XSOVERLAY')
def ENABLE_NOTICE_XSOVERLAY(self): def ENABLE_NOTICE_XSOVERLAY(self):
@@ -655,6 +666,7 @@ class Config:
self._RECEIVED_MESSAGE_FORMAT = "[message]" self._RECEIVED_MESSAGE_FORMAT = "[message]"
self._RECEIVED_MESSAGE_FORMAT_WITH_T = "[message]([translation])" self._RECEIVED_MESSAGE_FORMAT_WITH_T = "[message]([translation])"
self._ENABLE_AUTO_CLEAR_MESSAGE_BOX = True self._ENABLE_AUTO_CLEAR_MESSAGE_BOX = True
self._ENABLE_SEND_ONLY_TRANSLATED_MESSAGES = False
self._ENABLE_NOTICE_XSOVERLAY = False self._ENABLE_NOTICE_XSOVERLAY = False
self._ENABLE_SEND_MESSAGE_TO_VRC = True self._ENABLE_SEND_MESSAGE_TO_VRC = True
self._ENABLE_SEND_RECEIVED_MESSAGE_TO_VRC = False # speaker2Chatbox self._ENABLE_SEND_RECEIVED_MESSAGE_TO_VRC = False # speaker2Chatbox

View File

@@ -58,9 +58,16 @@ def sendMicMessage(message):
if config.ENABLE_TRANSCRIPTION_SEND is True: if config.ENABLE_TRANSCRIPTION_SEND is True:
if config.ENABLE_SEND_MESSAGE_TO_VRC is True: if config.ENABLE_SEND_MESSAGE_TO_VRC is True:
if config.ENABLE_SEND_ONLY_TRANSLATED_MESSAGES is True:
if config.ENABLE_TRANSLATION is False:
osc_message = messageFormatter("SEND", "", message)
else:
osc_message = messageFormatter("SEND", "", translation)
else:
osc_message = messageFormatter("SEND", translation, message) osc_message = messageFormatter("SEND", translation, message)
model.oscSendMessage(osc_message) model.oscSendMessage(osc_message)
view.printToTextbox_SentMessage(message, translation) view.printToTextbox_SentMessage(message, translation)
if config.ENABLE_LOGGER is True: if config.ENABLE_LOGGER is True:
if len(translation) > 0: if len(translation) > 0:
@@ -187,6 +194,12 @@ def sendChatMessage(message):
# send OSC message # send OSC message
if config.ENABLE_SEND_MESSAGE_TO_VRC is True: if config.ENABLE_SEND_MESSAGE_TO_VRC is True:
if config.ENABLE_SEND_ONLY_TRANSLATED_MESSAGES is True:
if config.ENABLE_TRANSLATION is False:
osc_message = messageFormatter("SEND", "", message)
else:
osc_message = messageFormatter("SEND", "", translation)
else:
osc_message = messageFormatter("SEND", translation, message) osc_message = messageFormatter("SEND", translation, message)
model.oscSendMessage(osc_message) model.oscSendMessage(osc_message)
@@ -650,6 +663,10 @@ def callbackSetEnableAutoClearMessageBox(value):
print("callbackSetEnableAutoClearMessageBox", value) print("callbackSetEnableAutoClearMessageBox", value)
config.ENABLE_AUTO_CLEAR_MESSAGE_BOX = value config.ENABLE_AUTO_CLEAR_MESSAGE_BOX = value
def callbackSetEnableSendOnlyTranslatedMessages(value):
print("callbackSetEnableSendOnlyTranslatedMessages", value)
config.ENABLE_SEND_ONLY_TRANSLATED_MESSAGES = value
def callbackSetEnableNoticeXsoverlay(value): def callbackSetEnableNoticeXsoverlay(value):
print("callbackSetEnableNoticeXsoverlay", value) print("callbackSetEnableNoticeXsoverlay", value)
config.ENABLE_NOTICE_XSOVERLAY = value config.ENABLE_NOTICE_XSOVERLAY = value
@@ -856,6 +873,7 @@ def createMainWindow():
# Others Tab # Others Tab
"callback_set_enable_auto_clear_chatbox": callbackSetEnableAutoClearMessageBox, "callback_set_enable_auto_clear_chatbox": callbackSetEnableAutoClearMessageBox,
"callback_set_send_only_translated_messages": callbackSetEnableSendOnlyTranslatedMessages,
"callback_set_enable_notice_xsoverlay": callbackSetEnableNoticeXsoverlay, "callback_set_enable_notice_xsoverlay": callbackSetEnableNoticeXsoverlay,
"callback_set_enable_auto_export_message_logs": callbackSetEnableAutoExportMessageLogs, "callback_set_enable_auto_export_message_logs": callbackSetEnableAutoExportMessageLogs,
"callback_set_enable_send_message_to_vrc": callbackSetEnableSendMessageToVrc, "callback_set_enable_send_message_to_vrc": callbackSetEnableSendMessageToVrc,

View File

@@ -174,6 +174,9 @@ config_window:
auto_clear_the_message_box: auto_clear_the_message_box:
label: Auto Clear The Message Box label: Auto Clear The Message Box
send_only_translated_messages:
label: Send Only Translated Messages
notice_xsoverlay: notice_xsoverlay:
label: Notification XSOverlay (VR Only) label: Notification XSOverlay (VR Only)
desc: Notify received messages by using XSOverlay's notification feature. desc: Notify received messages by using XSOverlay's notification feature.

View File

@@ -167,9 +167,13 @@ config_window:
desc: 文字起こしされた単語数の下限値で、この数値を超えた場合のみ結果をログに表示します。 desc: 文字起こしされた単語数の下限値で、この数値を超えた場合のみ結果をログに表示します。
error_message: 0以上の数値を設定できます。 error_message: 0以上の数値を設定できます。
auto_clear_the_message_box: auto_clear_the_message_box:
label: 送信後はチャットボックスを空にする label: 送信後はチャットボックスを空にする
send_only_translated_messages:
label: 翻訳後のメッセージのみ送信する
notice_xsoverlay: notice_xsoverlay:
label: XSOverlayでの通知受け取り機能を有効 (VR限定) label: XSOverlayでの通知受け取り機能を有効 (VR限定)
desc: 文字起こし受信されたメッセージをXSOverlayの機能を使って通知として受け取れます。 desc: 文字起こし受信されたメッセージをXSOverlayの機能を使って通知として受け取れます。

View File

@@ -334,6 +334,11 @@ class View():
CALLBACK_SET_ENABLE_AUTO_CLEAR_MESSAGE_BOX=None, CALLBACK_SET_ENABLE_AUTO_CLEAR_MESSAGE_BOX=None,
VAR_ENABLE_AUTO_CLEAR_MESSAGE_BOX=BooleanVar(value=config.ENABLE_AUTO_CLEAR_MESSAGE_BOX), VAR_ENABLE_AUTO_CLEAR_MESSAGE_BOX=BooleanVar(value=config.ENABLE_AUTO_CLEAR_MESSAGE_BOX),
VAR_LABEL_ENABLE_SEND_ONLY_TRANSLATED_MESSAGES=StringVar(value=i18n.t("config_window.send_only_translated_messages.label")),
VAR_DESC_ENABLE_SEND_ONLY_TRANSLATED_MESSAGES=None,
CALLBACK_SET_ENABLE_SEND_ONLY_TRANSLATED_MESSAGES=None,
VAR_ENABLE_SEND_ONLY_TRANSLATED_MESSAGES=BooleanVar(value=config.ENABLE_SEND_ONLY_TRANSLATED_MESSAGES),
VAR_LABEL_ENABLE_NOTICE_XSOVERLAY=StringVar(value=i18n.t("config_window.notice_xsoverlay.label")), VAR_LABEL_ENABLE_NOTICE_XSOVERLAY=StringVar(value=i18n.t("config_window.notice_xsoverlay.label")),
VAR_DESC_ENABLE_NOTICE_XSOVERLAY=StringVar(value=i18n.t("config_window.notice_xsoverlay.desc")), VAR_DESC_ENABLE_NOTICE_XSOVERLAY=StringVar(value=i18n.t("config_window.notice_xsoverlay.desc")),
CALLBACK_SET_ENABLE_NOTICE_XSOVERLAY=None, CALLBACK_SET_ENABLE_NOTICE_XSOVERLAY=None,
@@ -546,6 +551,7 @@ class View():
# Others Tab # Others Tab
self.view_variable.CALLBACK_SET_ENABLE_AUTO_CLEAR_MESSAGE_BOX = config_window_registers.get("callback_set_enable_auto_clear_chatbox", None) self.view_variable.CALLBACK_SET_ENABLE_AUTO_CLEAR_MESSAGE_BOX = config_window_registers.get("callback_set_enable_auto_clear_chatbox", None)
self.view_variable.CALLBACK_SET_ENABLE_SEND_ONLY_TRANSLATED_MESSAGES = config_window_registers.get("callback_set_send_only_translated_messages", None)
self.view_variable.CALLBACK_SET_ENABLE_NOTICE_XSOVERLAY = config_window_registers.get("callback_set_enable_notice_xsoverlay", None) self.view_variable.CALLBACK_SET_ENABLE_NOTICE_XSOVERLAY = config_window_registers.get("callback_set_enable_notice_xsoverlay", None)
self.view_variable.CALLBACK_SET_ENABLE_AUTO_EXPORT_MESSAGE_LOGS = config_window_registers.get("callback_set_enable_auto_export_message_logs", None) self.view_variable.CALLBACK_SET_ENABLE_AUTO_EXPORT_MESSAGE_LOGS = config_window_registers.get("callback_set_enable_auto_export_message_logs", None)

View File

@@ -14,6 +14,9 @@ def createSettingBox_Others(setting_box_wrapper, config_window, settings, view_v
def checkbox_auto_clear_message_box_callback(checkbox_box_widget): def checkbox_auto_clear_message_box_callback(checkbox_box_widget):
callFunctionIfCallable(view_variable.CALLBACK_SET_ENABLE_AUTO_CLEAR_MESSAGE_BOX, checkbox_box_widget.get()) callFunctionIfCallable(view_variable.CALLBACK_SET_ENABLE_AUTO_CLEAR_MESSAGE_BOX, checkbox_box_widget.get())
def checkbox_send_only_translated_messages_callback(checkbox_box_widget):
callFunctionIfCallable(view_variable.CALLBACK_SET_ENABLE_SEND_ONLY_TRANSLATED_MESSAGES, checkbox_box_widget.get())
def checkbox_notice_xsoverlay_callback(checkbox_box_widget): def checkbox_notice_xsoverlay_callback(checkbox_box_widget):
callFunctionIfCallable(view_variable.CALLBACK_SET_ENABLE_NOTICE_XSOVERLAY, checkbox_box_widget.get()) callFunctionIfCallable(view_variable.CALLBACK_SET_ENABLE_NOTICE_XSOVERLAY, checkbox_box_widget.get())
@@ -41,6 +44,16 @@ def createSettingBox_Others(setting_box_wrapper, config_window, settings, view_v
config_window.sb__auto_clear_message_box.grid(row=row) config_window.sb__auto_clear_message_box.grid(row=row)
row+=1 row+=1
config_window.sb__send_only_translated_messages = createSettingBoxCheckbox(
for_var_label_text=view_variable.VAR_LABEL_ENABLE_SEND_ONLY_TRANSLATED_MESSAGES,
for_var_desc_text=view_variable.VAR_DESC_ENABLE_SEND_ONLY_TRANSLATED_MESSAGES,
checkbox_attr_name="sb__checkbox_send_only_translated_messages",
command=lambda: checkbox_send_only_translated_messages_callback(config_window.sb__checkbox_send_only_translated_messages),
variable=view_variable.VAR_ENABLE_SEND_ONLY_TRANSLATED_MESSAGES,
)
config_window.sb__send_only_translated_messages.grid(row=row)
row+=1
config_window.sb__notice_xsoverlay = createSettingBoxCheckbox( config_window.sb__notice_xsoverlay = createSettingBoxCheckbox(
for_var_label_text=view_variable.VAR_LABEL_ENABLE_NOTICE_XSOVERLAY, for_var_label_text=view_variable.VAR_LABEL_ENABLE_NOTICE_XSOVERLAY,