From eb69f933af7dd0a2d5a42d3b0623d150de9001f6 Mon Sep 17 00:00:00 2001 From: yeongpin Date: Wed, 15 Jan 2025 17:14:05 +0800 Subject: [PATCH] Update & Fix reset machine problem --- locales/en.json | 4 +++- locales/zh_cn.json | 21 +++++++++++++++++++++ locales/zh_tw.json | 21 +++++++++++++++++++++ main.py | 16 +++++++++++----- reset_machine_manual.py | 5 ++--- 5 files changed, 58 insertions(+), 9 deletions(-) diff --git a/locales/en.json b/locales/en.json index 4b27679..35ae9f4 100644 --- a/locales/en.json +++ b/locales/en.json @@ -136,6 +136,8 @@ "get_cursor_session_token": "Get Cursor Session Token", "get_cursor_session_token_success": "Get Cursor Session Token Success", "get_cursor_session_token_failed": "Get Cursor Session Token Failed", - "save_token_failed": "Save Token Failed" + "save_token_failed": "Save Token Failed", + "database_updated_successfully": "Database Updated Successfully", + "database_connection_closed": "Database Connection Closed" } } \ No newline at end of file diff --git a/locales/zh_cn.json b/locales/zh_cn.json index 88393db..05adeec 100644 --- a/locales/zh_cn.json +++ b/locales/zh_cn.json @@ -26,6 +26,27 @@ "timeout": "以下进程未能在规定时间内关闭: {pids}", "error": "关闭 Cursor 进程时发生错误: {error}" }, + "reset": { + "title": "Cursor 机器标识重置工具", + "checking": "检查配置文件", + "not_found": "配置文件未找到", + "no_permission": "无法读取或写入配置文件,请检查文件权限", + "reading": "读取当前配置", + "creating_backup": "创建配置备份", + "backup_exists": "备份文件已存在,跳过备份步骤", + "generating": "生成新机器标识", + "saving_json": "保存新配置到JSON", + "success": "机器标识重置成功", + "new_id": "新机器标识", + "permission_error": "权限错误: {error}", + "run_as_admin": "请尝试以管理员身份运行此程序", + "process_error": "重置进程错误: {error}", + "updating_sqlite": "更新SQLite数据库", + "updating_pair": "更新键值对", + "sqlite_success": "SQLite数据库更新成功", + "sqlite_error": "SQLite数据库更新失败: {error}", + "press_enter": "按回车键退出" + }, "register": { "title": "Cursor 注册工具", "start": "开始注册流程", diff --git a/locales/zh_tw.json b/locales/zh_tw.json index 851e9f2..4e494f9 100644 --- a/locales/zh_tw.json +++ b/locales/zh_tw.json @@ -26,6 +26,27 @@ "timeout": "以下進程未能在規定時間內關閉: {pids}", "error": "關閉 Cursor 進程時發生錯誤: {error}" }, + "reset": { + "title": "Cursor 機器標識重置工具", + "checking": "檢查配置文件", + "not_found": "配置文件未找到", + "no_permission": "無法讀取或寫入配置文件,請檢查文件權限", + "reading": "讀取當前配置", + "creating_backup": "創建配置備份", + "backup_exists": "備份文件已存在,跳過備份步驟", + "generating": "生成新機器標識", + "saving_json": "保存新配置到JSON", + "success": "機器標識重置成功", + "new_id": "新機器標識", + "permission_error": "權限錯誤: {error}", + "run_as_admin": "請嘗試以管理員身份運行此程序", + "process_error": "重置進程錯誤: {error}", + "updating_sqlite": "更新SQLite數據庫", + "updating_pair": "更新鍵值對", + "sqlite_success": "SQLite數據庫更新成功", + "sqlite_error": "SQLite數據庫更新失敗: {error}", + "press_enter": "按回車鍵退出" + }, "register": { "title": "Cursor 註冊工具", "start": "開始註冊流程", diff --git a/main.py b/main.py index 38742a6..33f7fea 100644 --- a/main.py +++ b/main.py @@ -42,11 +42,17 @@ class Translator: def get(self, key, **kwargs): """获取翻译文本""" - keys = key.split('.') - value = self.translations.get(self.current_language, {}) - for k in keys: - value = value.get(k, key) - return value.format(**kwargs) if kwargs else value + try: + keys = key.split('.') + value = self.translations.get(self.current_language, {}) + for k in keys: + if isinstance(value, dict): + value = value.get(k, key) + else: + return key # 如果中間值不是字典,返回原始key + return value.format(**kwargs) if kwargs else value + except Exception: + return key # 出現任何錯誤時返回原始key def set_language(self, lang_code): """设置当前语言""" diff --git a/reset_machine_manual.py b/reset_machine_manual.py index 5474327..4af402d 100644 --- a/reset_machine_manual.py +++ b/reset_machine_manual.py @@ -160,18 +160,17 @@ class MachineIDResetter: return False def run(translator=None): - """Main function to be called from main.py""" + """便捷函数,用于直接调用重置功能""" print(f"\n{Fore.CYAN}{'='*50}{Style.RESET_ALL}") print(f"{Fore.CYAN}{EMOJI['RESET']} {translator.get('reset.title')}{Style.RESET_ALL}") print(f"{Fore.CYAN}{'='*50}{Style.RESET_ALL}") - resetter = MachineIDResetter(translator) + resetter = MachineIDResetter(translator) # 正確傳遞 translator resetter.reset_machine_ids() print(f"\n{Fore.CYAN}{'='*50}{Style.RESET_ALL}") input(f"{EMOJI['INFO']} {translator.get('reset.press_enter')}...") if __name__ == "__main__": - # 如果直接运行,使用默认翻译器 from main import translator as main_translator run(main_translator) \ No newline at end of file