From 028ad8f92a39ad6bda7e058c6ea54e72ac601747 Mon Sep 17 00:00:00 2001 From: misyaguziya Date: Tue, 6 Jun 2023 04:12:10 +0900 Subject: [PATCH] add google, bing --- VRCT.py | 61 ++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 45 insertions(+), 16 deletions(-) diff --git a/VRCT.py b/VRCT.py index 887ee49c..d6d45e39 100644 --- a/VRCT.py +++ b/VRCT.py @@ -2,6 +2,7 @@ import os import json import deepl import deepl_translate +import translators as ts from pythonosc import osc_message_builder from pythonosc import udp_client import tkinter as tk @@ -20,17 +21,33 @@ class Translator(): def __init__(self): self.translator_status = { "DeepL(web)": False, - "DeepL": False, + "DeepL(auth)": False, + "Google(web)": False, + "Bing(web)": False, } self.languages = {} self.languages["DeepL(web)"] = [ "JA","EN","BG","ZH","CS","DA","NL","ET","FI","FR","DE","EL","HU","IT", "LV","LT","PL","PT","RO","RU","SK","SL","ES","SV", ] - self.languages["DeepL"] = [ + self.languages["DeepL(auth)"] = [ "JA","EN-US","EN-GB","BG","CS","DA","DE","EL","ES","ET","FI","FR","HU", - "ID","IT","KO","LT","LV","NB","NL","PL","PT","PT-BR","PT-PT","RO","RU","SK","SL", - "SV","TR","UK","ZH", + "ID","IT","KO","LT","LV","NB","NL","PL","PT","PT-BR","PT-PT","RO","RU", + "SK","SL","SV","TR","UK","ZH", + ] + self.languages["Google(web)"] = [ + "ja","en","zh","ar","ru","fr","de","es","pt","it","ko","el","nl","hi", + "tr","ms","th","vi","id","he","pl","mn","cs","hu","et","bg","da","fi", + "ro","sv","sl","fa","bs","sr","tl","ht","ca","hr","lv","lt","ur","uk", + "cy","sw","sm","sk","af","no","bn","mg","mt","gu","ta","te","pa","am", + "az","be","ceb","eo","eu","ga" + ] + self.languages["Bing(web)"] = [ + "ja","en","zh","ar","ru","fr","de","es","pt","it","ko","el","nl","hi", + "tr","ms","th","vi","id","he","pl","cs","hu","et","bg","da","fi","ro", + "sv","sl","fa","bs","sr","fj","tl","ht","ca","hr","lv","lt","ur","uk", + "cy","ty","to","sw","sm","sk","af","no","bn","mg","mt","otq","tlh","gu", + "ta","te","pa","ga" ] self.deepl_client = None @@ -40,10 +57,16 @@ class Translator(): if translator_name == "DeepL(web)": self.translator_status["DeepL(web)"] = True result = True - elif translator_name == "DeepL": + elif translator_name == "DeepL(auth)": self.deepl_client = deepl.Translator(authkey) self.deepl_client.translate_text(" ", target_lang="EN-US") - self.translator_status["DeepL"] = True + self.translator_status["DeepL(auth)"] = True + result = True + elif translator_name == "Google(web)": + self.translator_status["Google(web)"] = True + result = True + elif translator_name == "Bing(web)": + self.translator_status["Bing(web)"] = True result = True except: pass @@ -54,8 +77,12 @@ class Translator(): try: if translator_name == "DeepL(web)": result = deepl_translate.translate(source_language=source_language, target_language=target_language, text=message) - elif translator_name == "DeepL": - result = self.deepl_client.translate_text(message, target_lang=target_language).text + 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 = ts.translate_text(query_text=message, translator="google", from_language=source_language, to_language=target_language) + elif translator_name == "Bing(web)": + result = ts.translate_text(query_text=message, translator="bing", from_language=source_language, to_language=target_language) except: pass return result @@ -342,7 +369,7 @@ class ToplevelWindowConfig(customtkinter.CTkToplevel): self.label_authkey.grid(row=2, column=0, columnspan=1, padx=5, pady=5, sticky="nsw") self.entry_authkey = customtkinter.CTkEntry( self.tabview_config.tab("Parameter"), - textvariable=customtkinter.StringVar(value=self.parent.AUTH_KEYS["DeepL"]), + textvariable=customtkinter.StringVar(value=self.parent.AUTH_KEYS["DeepL(auth)"]), font=customtkinter.CTkFont(family=self.parent.FONT_FAMILY) ) self.entry_authkey.grid(row=2, column=1, columnspan=1, padx=1, pady=5, sticky="nsew") @@ -398,7 +425,7 @@ class ToplevelWindowConfig(customtkinter.CTkToplevel): self.parent.textbox_message_log.configure(state='disabled') if self.parent.translator.authentication(self.parent.CHOICE_TRANSLATOR, self.parent.AUTH_KEYS[self.parent.CHOICE_TRANSLATOR]) is True: - self.parent.AUTH_KEYS["DeepL"] = value + self.parent.AUTH_KEYS["DeepL(auth)"] = value save_json(self.parent.PATH_CONFIG, "AUTH_KEYS", self.parent.AUTH_KEYS) else: self.parent.textbox_message_log.configure(state='normal') @@ -424,14 +451,14 @@ class ToplevelWindowConfig(customtkinter.CTkToplevel): else: self.optionmenu_source_language.configure( values=self.parent.translator.languages[choice], - variable=customtkinter.StringVar(value="Select")) + variable=customtkinter.StringVar(value=self.parent.translator.languages[choice][0])) self.optionmenu_target_language.configure( values=self.parent.translator.languages[choice], - variable=customtkinter.StringVar(value="Select")) + variable=customtkinter.StringVar(value=self.parent.translator.languages[choice][1])) self.parent.CHOICE_TRANSLATOR = choice - self.parent.SOURCE_LANG = "None" - self.parent.TARGET_LANG = "None" + self.parent.SOURCE_LANG = self.parent.translator.languages[choice][0] + self.parent.TARGET_LANG = self.parent.translator.languages[choice][1] save_json(self.parent.PATH_CONFIG, "CHOICE_TRANSLATOR", self.parent.CHOICE_TRANSLATOR) save_json(self.parent.PATH_CONFIG, "SOURCE_LANG", self.parent.SOURCE_LANG) save_json(self.parent.PATH_CONFIG, "TARGET_LANG", self.parent.TARGET_LANG) @@ -506,8 +533,10 @@ class App(customtkinter.CTk): self.ENABLE_FOREGROUND = False self.AUTH_KEYS = { "DeepL(web)": None, - "DeepL": None, - } + "DeepL(auth)": None, + "Bing(web)": None, + "Google(web)": None, + } self.MESSAGE_FORMAT = "[message]([translation])" self.FONT_FAMILY = "Yu Gothic UI" self.TRANSPARENCY = 100