From 2854a9eea82657da6039a68479b4bfc01c6c2984 Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Wed, 13 Sep 2023 04:25:02 +0800 Subject: [PATCH] Fix: Add setting In-game Text Language --- config/template.json | 1 + module/config/argument/args.json | 9 +++++++++ module/config/argument/argument.yaml | 3 +++ module/config/config_generated.py | 1 + module/config/i18n/en-US.json | 7 +++++++ module/config/i18n/ja-JP.json | 7 +++++++ module/config/i18n/zh-CN.json | 7 +++++++ module/config/i18n/zh-TW.json | 7 +++++++ module/device/connection.py | 13 ++++++------- 9 files changed, 48 insertions(+), 7 deletions(-) diff --git a/config/template.json b/config/template.json index 81ab5fa29..9f1370751 100644 --- a/config/template.json +++ b/config/template.json @@ -3,6 +3,7 @@ "Emulator": { "Serial": "auto", "PackageName": "auto", + "GameLanguage": "auto", "ScreenshotMethod": "scrcpy", "ControlMethod": "MaaTouch", "AdbRestart": false diff --git a/module/config/argument/args.json b/module/config/argument/args.json index b22ef801d..7c80ffbb0 100644 --- a/module/config/argument/args.json +++ b/module/config/argument/args.json @@ -16,6 +16,15 @@ "com.miHoYo.hkrpg.bilibili" ] }, + "GameLanguage": { + "type": "select", + "value": "auto", + "option": [ + "auto", + "cn", + "en" + ] + }, "ScreenshotMethod": { "type": "select", "value": "scrcpy", diff --git a/module/config/argument/argument.yaml b/module/config/argument/argument.yaml index ca23968b0..8f7bd4d6c 100644 --- a/module/config/argument/argument.yaml +++ b/module/config/argument/argument.yaml @@ -21,6 +21,9 @@ Emulator: PackageName: value: auto option: [ auto, ] + GameLanguage: + value: auto + option: [ auto, cn, en ] ScreenshotMethod: value: auto option: [ auto, ADB, ADB_nc, uiautomator2, aScreenCap, aScreenCap_nc, DroidCast, DroidCast_raw, scrcpy ] diff --git a/module/config/config_generated.py b/module/config/config_generated.py index 8470aa6f8..ce49f7962 100644 --- a/module/config/config_generated.py +++ b/module/config/config_generated.py @@ -18,6 +18,7 @@ class GeneratedConfig: # Group `Emulator` Emulator_Serial = 'auto' Emulator_PackageName = 'auto' # auto, com.miHoYo.hkrpg, com.HoYoverse.hkrpgoversea, com.miHoYo.hkrpg.bilibili + Emulator_GameLanguage = 'auto' # auto, cn, en Emulator_ScreenshotMethod = 'auto' # auto, ADB, ADB_nc, uiautomator2, aScreenCap, aScreenCap_nc, DroidCast, DroidCast_raw, scrcpy Emulator_ControlMethod = 'MaaTouch' # minitouch, MaaTouch Emulator_AdbRestart = False diff --git a/module/config/i18n/en-US.json b/module/config/i18n/en-US.json index 15c3ae87b..adf37e406 100644 --- a/module/config/i18n/en-US.json +++ b/module/config/i18n/en-US.json @@ -84,6 +84,13 @@ "com.HoYoverse.hkrpgoversea": "OVERSEA", "com.miHoYo.hkrpg.bilibili": "CN com.miHoYo.hkrpg.bilibili" }, + "GameLanguage": { + "name": "In-game Text Language", + "help": "", + "auto": "Auto-detect", + "cn": "简体中文", + "en": "English" + }, "ScreenshotMethod": { "name": "Screenshot Method", "help": "When using auto-select, a benchmark will be performed and automatically changed to the fastest screenshot method.\nGeneral speed: DroidCast_raw >> aScreenCap_nc > ADB_nc >>> aScreenCap > uiautomator2 ~= ADB.\nRun Tools - Performance Test to find the fastest method.", diff --git a/module/config/i18n/ja-JP.json b/module/config/i18n/ja-JP.json index 614961d74..f34bc90e5 100644 --- a/module/config/i18n/ja-JP.json +++ b/module/config/i18n/ja-JP.json @@ -84,6 +84,13 @@ "com.HoYoverse.hkrpgoversea": "OVERSEA", "com.miHoYo.hkrpg.bilibili": "CN com.miHoYo.hkrpg.bilibili" }, + "GameLanguage": { + "name": "Emulator.GameLanguage.name", + "help": "Emulator.GameLanguage.help", + "auto": "auto", + "cn": "cn", + "en": "en" + }, "ScreenshotMethod": { "name": "Emulator.ScreenshotMethod.name", "help": "Emulator.ScreenshotMethod.help", diff --git a/module/config/i18n/zh-CN.json b/module/config/i18n/zh-CN.json index 6432c4d70..2fdcb59f3 100644 --- a/module/config/i18n/zh-CN.json +++ b/module/config/i18n/zh-CN.json @@ -84,6 +84,13 @@ "com.HoYoverse.hkrpgoversea": "OVERSEA", "com.miHoYo.hkrpg.bilibili": "CN Bilibili渠道服 com.miHoYo.hkrpg.bilibili" }, + "GameLanguage": { + "name": "游戏内文本语言", + "help": "", + "auto": "自动检测", + "cn": "简体中文", + "en": "English" + }, "ScreenshotMethod": { "name": "模拟器截图方案", "help": "使用自动选择时,将执行一次性能测试并自动更改为最快的截图方案\n一般情况下的速度: DroidCast_raw >> aScreenCap_nc > ADB_nc >>> aScreenCap > uiautomator2 ~= ADB\n运行 工具 - 性能测试 以寻找最快的方案", diff --git a/module/config/i18n/zh-TW.json b/module/config/i18n/zh-TW.json index bf9565e1a..538e78e09 100644 --- a/module/config/i18n/zh-TW.json +++ b/module/config/i18n/zh-TW.json @@ -84,6 +84,13 @@ "com.HoYoverse.hkrpgoversea": "OVERSEA", "com.miHoYo.hkrpg.bilibili": "CN com.miHoYo.hkrpg.bilibili" }, + "GameLanguage": { + "name": "遊戲內文本語言", + "help": "", + "auto": "自動檢測", + "cn": "简体中文", + "en": "English" + }, "ScreenshotMethod": { "name": "模擬器截圖方案", "help": "使用自動選擇時,將執行一次性能測試並自動更改為最快的截圖方案\n一般情況下的速度: DroidCast_raw >> aScreenCap_nc > ADB_nc >>> aScreenCap > uiautomator2 ~= ADB\n運行 工具 - 性能測試 以尋找最快的方案", diff --git a/module/device/connection.py b/module/device/connection.py index 841d13794..9a71c4af0 100644 --- a/module/device/connection.py +++ b/module/device/connection.py @@ -11,17 +11,15 @@ import uiautomator2 as u2 from adbutils import AdbClient, AdbDevice, AdbTimeout, ForwardItem, ReverseItem from adbutils.errors import AdbError +import module.config.server as server_ from module.base.decorator import Config, cached_property, del_cached_property -from module.base.utils import ensure_time +from module.base.utils import SelectedGrids, ensure_time from module.device.connection_attr import ConnectionAttr from module.device.method.utils import ( - RETRY_TRIES, remove_shell_warning, retry_sleep, - handle_adb_error, PackageNotInstalled, - recv_all, possible_reasons, - random_port, get_serial_pair) -from module.exception import RequestHumanTakeover, EmulatorNotRunningError + PackageNotInstalled, RETRY_TRIES, get_serial_pair, handle_adb_error, + possible_reasons, random_port, recv_all, remove_shell_warning, retry_sleep) +from module.exception import EmulatorNotRunningError, RequestHumanTakeover from module.logger import logger -from module.base.utils import SelectedGrids def retry(func): @@ -109,6 +107,7 @@ class Connection(ConnectionAttr): # else: # set_server(self.package) logger.attr('PackageName', self.package) + server_.lang = self.config.Emulator_GameLanguage logger.attr('Lang', self.config.LANG) self.check_mumu_app_keep_alive()