@@ -48,7 +48,7 @@ def set_current_language(lang: str) -> None:
4848
4949
5050# 文本字典
51- I18N = {
51+ I18N = {
5252 # 占位符/片段
5353 "version_prefix" : {
5454 LANG_ZH_CN : "版本:" ,
@@ -238,6 +238,14 @@ def set_current_language(lang: str) -> None:
238238 LANG_KO : "추천" ,
239239 LANG_RU : "Партнёры" ,
240240 },
241+ "menu_quit" : {
242+ LANG_ZH_CN : "退出" ,
243+ LANG_EN : "Quit" ,
244+ LANG_ZH_TW : "退出" ,
245+ LANG_JA : "終了" ,
246+ LANG_KO : "종료" ,
247+ LANG_RU : "Выход" ,
248+ },
241249 "menu_language" : {
242250 LANG_ZH_CN : "语言" ,
243251 LANG_EN : "Language" ,
@@ -1004,6 +1012,11 @@ def __init__(self):
10041012 self ._cfg = load_config ()
10051013 # 应用语言设置
10061014 set_current_language (self ._cfg .get ("language" , LANG_ZH_CN ))
1015+ # 使用自定义的本地化“退出”按钮(避免默认 Quit 文案不可本地化)
1016+ try :
1017+ self .quit_button = None
1018+ except Exception :
1019+ pass
10071020 self ._lock = threading .RLock ()
10081021 self ._last_data : Dict [str , Any ] = {}
10091022 self ._last_error : Optional [str ] = None
@@ -1126,6 +1139,8 @@ def _rebuild_menu(self, show_renew: bool):
11261139 # 移除根目录“在线更新”入口,改由“检查更新”对话框触发
11271140 {_t ("menu_affiliates" ): self ._build_affiliates_menu_items ()},
11281141 None ,
1142+ rumps .MenuItem (_t ("menu_quit" ), callback = self .quit_app ),
1143+ None ,
11291144 self .info_version ,
11301145 ])
11311146 # 先清空旧菜单,避免重复绑定 MenuItem
@@ -1221,6 +1236,12 @@ def _do(timer: rumps.Timer):
12211236 def refresh_now (self , _ : Optional [rumps .MenuItem ] = None ):
12221237 self ._refresh (force = True )
12231238
1239+ def quit_app (self , _ : Optional [rumps .MenuItem ] = None ):
1240+ try :
1241+ rumps .quit_application ()
1242+ except Exception :
1243+ os ._exit (0 )
1244+
12241245 def toggle_hidden (self , _ : Optional [rumps .MenuItem ] = None ):
12251246 with self ._lock :
12261247 hidden = not bool (self ._cfg .get ("hidden" ))
0 commit comments