Skip to content
This repository has been archived by the owner on Feb 1, 2024. It is now read-only.

Commit

Permalink
feat(ui): ✨ add language switch combobox
Browse files Browse the repository at this point in the history
  • Loading branch information
AnzhiZhang committed Jul 2, 2022
1 parent 8f42def commit d35b407
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 1 deletion.
3 changes: 3 additions & 0 deletions lang/en-us.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ window.show.resultWarning.content: Got 0 results!
window.filters.sort: 'Sort: '
window.filters.gameVersion: 'Game Version: '
window.filters.modpackVersion: 'Modpack Version: '
window.buttons.languageSwitch.title: Confirmation
window.buttons.languageSwitch.content: |
Are you sure to switch the language to English? Please restart the program after clicking ok.
window.buttons.import: Import
window.buttons.download: Download
window.buttons.exit: Exit
Expand Down
3 changes: 3 additions & 0 deletions lang/zh-cn.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ window.show.resultWarning.content: 共搜索到 0 个结果!
window.filters.sort: 排序:
window.filters.gameVersion: 游戏版本:
window.filters.modpackVersion: 整合包版本:
window.buttons.languageSwitch.title: 确认
window.buttons.languageSwitch.content: |
您是否确认要切换为简体中文?请在确定后重新启动程序。
window.buttons.import: 导入
window.buttons.download: 下载
window.buttons.exit: 退出
Expand Down
36 changes: 35 additions & 1 deletion utils/window/frames/buttons.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import os
from threading import Thread
from tkinter import Frame, Button, Toplevel
from tkinter.ttk import Progressbar
from tkinter.ttk import Combobox, Progressbar
from tkinter.messagebox import askokcancel
from tkinter.filedialog import askopenfilename
from typing import TYPE_CHECKING

Expand All @@ -18,6 +19,7 @@ def __init__(self, master: 'Main'):

self.__main_window = master

self.__language_combobox = Combobox(self, state='readonly')
self.__import_button = Button(
self,
text=self.__main_window.factory.language.translate(
Expand Down Expand Up @@ -47,10 +49,42 @@ def __init__(self, master: 'Main'):
command=master.quit
)

# Language
self.__languages = {
value: key for key, value in
self.__main_window.factory.language.get_languages().items()
}
self.__language_combobox.bind(
'<<ComboboxSelected>>',
self.on_select_language
)
self.__language_combobox['values'] = list(self.__languages.keys())
current_index = list(self.__languages.values()).index(
self.__main_window.factory.config.get('language')
)
self.__language_combobox.current(current_index)

self.__language_combobox.pack(side='left')
self.__exit_button.pack(side='right')
self.__download_button.pack(side='right', padx=10)
self.__import_button.pack(side='right')

def on_select_language(self, event=None):
language_key = self.__languages[self.__language_combobox.get()]
if askokcancel(
self.__main_window.factory.language.translate(
'window.buttons.languageSwitch.title',
lang=language_key
),
self.__main_window.factory.language.translate(
'window.buttons.languageSwitch.content',
lang=language_key
),
):
self.__main_window.factory.config['language'] = language_key
self.__main_window.factory.config.save()
self.__main_window.quit()

def download(self):
def run():
toplevel = Toplevel(self)
Expand Down

0 comments on commit d35b407

Please sign in to comment.