Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 9eecfcd

Browse files
committed
feat: 翻译下载源
1 parent c71ef36 commit 9eecfcd

4 files changed

Lines changed: 36 additions & 3 deletions

File tree

src/core/i18n.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,10 @@
9898
"msg_no_thumbnails_hint": "No thumbnails found. Please go to the 'Actions' page to generate them.",
9999
"label_view_list": "List",
100100
"label_view_thumbnail": "Thumbnail",
101+
"label_download_source": "Download Source:",
102+
"source_auto": "Auto",
103+
"source_default": "Default",
104+
"source_mirror": "Mirror",
101105
"btn_update_translations": "Update Translations",
102106
"msg_updating_translations": "Updating translations...",
103107
"msg_translations_updated": "Translations updated!",
@@ -201,6 +205,10 @@
201205
"msg_no_thumbnails_hint": "未找到缩略图。请到“操作”页面进行自动生成缩略图。",
202206
"label_view_list": "列表",
203207
"label_view_thumbnail": "缩略图",
208+
"label_download_source": "下载源:",
209+
"source_auto": "自动",
210+
"source_default": "默认",
211+
"source_mirror": "镜像",
204212
"btn_update_translations": "下载/更新角色翻译库",
205213
"msg_updating_translations": "正在更新翻译库...",
206214
"msg_translations_updated": "翻译库更新成功!",

src/services/translation/service.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,22 @@ def load_cached(self):
3535
print(f"Failed to load cached translations: {e}")
3636
return False
3737

38-
def download_translations(self, callback=None):
38+
def download_translations(self, callback=None, source="auto"):
3939
lang = Config.get_effective_language()
4040
if lang not in ["English", "Chinese"]:
4141
if callback:
4242
callback(False, False)
4343
return
4444

45-
urls = [self.en_url] if lang == "English" else [self.zh_url, self.zh_mirror_url]
45+
if lang == "English":
46+
urls = [self.en_url]
47+
else:
48+
if source == "default":
49+
urls = [self.zh_url]
50+
elif source == "mirror":
51+
urls = [self.zh_mirror_url]
52+
else: # auto
53+
urls = [self.zh_url, self.zh_mirror_url]
4654

4755
def _worker():
4856
success = False

src/ui/controllers/settings_controller.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,14 @@ def on_update_translations(self, sender, app_data, user_data):
3838
dpg.set_value("settings_translation_status", i18n("msg_updating_translations"))
3939
dpg.configure_item(sender, enabled=False)
4040

41+
source_val = dpg.get_value("settings_translation_source")
42+
source_map = {
43+
i18n("source_auto"): "auto",
44+
i18n("source_default"): "default",
45+
i18n("source_mirror"): "mirror",
46+
}
47+
source = source_map.get(source_val, "auto")
48+
4149
def callback(success, is_mirror=False):
4250
def finalize():
4351
if success:
@@ -57,4 +65,4 @@ def finalize():
5765

5866
self.app._queue_ui_task(finalize)
5967

60-
self.app.translation_service.download_translations(callback)
68+
self.app.translation_service.download_translations(callback, source=source)

src/ui/views/main_view.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,15 @@ def create_main_layout(self):
356356
width=200,
357357
)
358358

359+
dpg.add_spacer(height=10)
360+
dpg.add_text(i18n("label_download_source"))
361+
dpg.add_combo(
362+
items=[i18n("source_auto"), i18n("source_default"), i18n("source_mirror")],
363+
tag="settings_translation_source",
364+
default_value=i18n("source_auto"),
365+
width=200,
366+
)
367+
359368
dpg.add_spacer(height=10)
360369
with dpg.group(horizontal=True):
361370
dpg.add_button(

0 commit comments

Comments
 (0)