From 701dfcfb4769bc823e736d73f2ea1f7466393ccf Mon Sep 17 00:00:00 2001
From: tzdwindows 7 <3076584115@qq.com>
Date: Fri, 21 Feb 2025 20:55:10 +0800
Subject: [PATCH] =?UTF-8?q?feat(box):=20=E6=B7=BB=E5=8A=A0=E5=91=BD?=
=?UTF-8?q?=E4=BB=A4=E8=A1=8C=E6=96=87=E4=BB=B6=E8=A7=A3=E6=9E=90=E5=8A=9F?=
=?UTF-8?q?=E8=83=BD=E5=B9=B6=E4=BC=98=E5=8C=96=E4=B8=BB=E9=A2=98=E5=92=8C?=
=?UTF-8?q?=E8=AF=AD=E8=A8=80=E7=AE=A1=E7=90=86-=20=E6=96=B0=E5=A2=9E=20Ar?=
=?UTF-8?q?gsParser=20=E7=B1=BB=E7=94=A8=E4=BA=8E=E8=A7=A3=E6=9E=90?=
=?UTF-8?q?=E5=91=BD=E4=BB=A4=E8=A1=8C=E5=8F=82=E6=95=B0=E4=B8=AD=E7=9A=84?=
=?UTF-8?q?=E6=96=87=E4=BB=B6=E8=B7=AF=E5=BE=84=20-=20=E6=B7=BB=E5=8A=A0?=
=?UTF-8?q?=20OpenFileEvents=20=E4=BA=8B=E4=BB=B6=E7=B1=BB=E7=94=A8?=
=?UTF-8?q?=E4=BA=8E=E5=A4=84=E7=90=86=E6=89=93=E5=BC=80=E6=96=87=E4=BB=B6?=
=?UTF-8?q?=E8=AF=B7=E6=B1=82=20-=20=E6=9B=B4=E6=96=B0=20AxisInnovatorsBox?=
=?UTF-8?q?=20=E7=B1=BB=EF=BC=8C=E6=94=AF=E6=8C=81=E5=91=BD=E4=BB=A4?=
=?UTF-8?q?=E8=A1=8C=E6=96=87=E4=BB=B6=E8=A7=A3=E6=9E=90=20-=20=E9=87=8D?=
=?UTF-8?q?=E6=9E=84=20LanguageManager=20=E7=B1=BB=EF=BC=8C=E4=BC=98?=
=?UTF-8?q?=E5=8C=96=E8=AF=AD=E8=A8=80=E5=90=88=E5=B9=B6=E5=92=8C=E5=8A=A0?=
=?UTF-8?q?=E8=BD=BD=E9=80=BB=E8=BE=91=20-=20=E6=9B=B4=E6=96=B0=20MainWind?=
=?UTF-8?q?ow=20=E7=B1=BB=EF=BC=8C=E6=94=B9=E8=BF=9B=E7=95=8C=E9=9D=A2?=
=?UTF-8?q?=E6=A0=B7=E5=BC=8F=E5=92=8C=E6=BB=9A=E5=8A=A8=E6=9D=A1UI=20-=20?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9=20PluginDescriptor=20=E7=B1=BB=EF=BC=8C?=
=?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B3=A8=E5=86=8C=E5=90=8D=E5=AD=97=E6=AE=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
build.gradle | 8 +-
language/EnglishLanguage.properties | 99 ------------
language/SimplifiedChineseLanguage.properties | 99 ------------
.../TraditionalChineseLanguage.properties | 99 ------------
language/saved_language.properties | 3 -
.../innovators/box/AxisInnovatorsBox.java | 96 +++++++----
.../java/com/axis/innovators/box/Main.java | 7 +-
.../innovators/box/events/OpenFileEvents.java | 53 +++++++
.../axis/innovators/box/gui/MainWindow.java | 150 ++++++++++--------
.../box/plugins/PluginDescriptor.java | 3 +
.../innovators/box/plugins/PluginLoader.java | 116 +++++++++++++-
.../box/plugins/PluginLoadingError.java | 17 ++
.../innovators/box/plugins/PluginMeta.java | 21 ++-
.../box/register/LanguageManager.java | 121 ++++++++++++--
.../register/RegistrationSettingsItem.java | 46 +++++-
.../box/register/RegistrationTool.java | 20 ++-
.../axis/innovators/box/tools/ArgsParser.java | 83 ++++++++++
.../innovators/box/tools/StateManager.java | 4 +-
src/main/java/org/tzd/lm/LM.java | 2 +-
statestate_management.properties | 3 +
20 files changed, 614 insertions(+), 436 deletions(-)
delete mode 100644 language/EnglishLanguage.properties
delete mode 100644 language/SimplifiedChineseLanguage.properties
delete mode 100644 language/TraditionalChineseLanguage.properties
delete mode 100644 language/saved_language.properties
create mode 100644 src/main/java/com/axis/innovators/box/events/OpenFileEvents.java
create mode 100644 src/main/java/com/axis/innovators/box/plugins/PluginLoadingError.java
create mode 100644 src/main/java/com/axis/innovators/box/tools/ArgsParser.java
diff --git a/build.gradle b/build.gradle
index a02d609..6c220a3 100644
--- a/build.gradle
+++ b/build.gradle
@@ -42,8 +42,12 @@ dependencies {
implementation 'com.google.code.gson:gson:2.8.9'
- implementation 'com.formdev:flatlaf:0.26'
- implementation 'commons-io:commons-io:2.11.0'
+ //implementation 'com.formdev:flatlaf:0.26'
+ implementation 'commons-io:commons-io:2.14.0'
+
+ implementation 'com.formdev:flatlaf:3.2.1' // FlatLaf核心
+ implementation 'com.formdev:flatlaf-extras:3.2.1' // 扩展组件
+ implementation 'com.formdev:flatlaf-intellij-themes:3.2.1' // 官方主题包
}
// 分离依赖项到 libs 目录
diff --git a/language/EnglishLanguage.properties b/language/EnglishLanguage.properties
deleted file mode 100644
index 8abb1bc..0000000
--- a/language/EnglishLanguage.properties
+++ /dev/null
@@ -1,99 +0,0 @@
-default_theme.system.topicName=Default Theme
-default_theme.default.tip=Default theme
-metal_theme.system.topicName=Metal Style
-metal_theme.default.tip=Metal style
-motif_theme.system.topicName=Motif Style
-motif_theme.default.tip=Motif style
-flatLightLaf_theme.system.topicName=flatLightLaf Style
-flatLightLaf_theme.default.tip=flatLightLaf style
-
-mainWindow.title=Axis Creation Toolbox v1.0
-mainWindow.title.2=Axis Creation Toolbox
-mainWindow.settings.title=System Settings
-
-andShow.title=Program Crash Report
-andShow.title.2=
A serious error occurred in the program
-andShow.title.3=Please report it to us!
-andShow.pluginInfo.title==== Loaded Plugins ===
-andShow.pluginInfo.title.1=Plugin Name:
-andShow.pluginInfo.title.2=Plugin Description:
-andShow.pluginInfo.title.3=Supported Versions:
-andShow.pluginInfo.exportButton=Export Report
-andShow.pluginInfo.closeButton=Close
-andShow.pluginInfo.writer=The report has been saved to:
-andShow.pluginInfo.writer.title=Export Successful
-andShow.pluginInfo.writer.error=Export Failed:
-andShow.pluginInfo.error.writer.title=Error
-
-progressBarManager.title=Loading...
-
-fridaWindow.title=Frida Injection Tool
-fridaWindow.pidField=Enter Process PID
-fridaWindow.browseButton=Select Process
-fridaWindow.panel=Script Editor
-fridaWindow.injectButton=Inject Script
-fridaWindow.panel.log=Log Output
-fridaWindow.processSelectionWindow=Select Process
-fridaWindow.processSelectionWindow.search=Search Process
-fridaWindow.processSelectionWindow.columns.1=Process Name
-fridaWindow.processSelectionWindow.columns.2=Process ID
-fridaWindow.processSelectionWindow.selectButton=Select
-
-localWindow.newBtn=New Conversation
-localWindow.saveBtn=Save Record
-localWindow.cudaCheck=Enable CUDA
-localWindow.searchBtn=Start Search
-localWindow.searchBtn.1=Close Search
-localWindow.searchBtn.appendMessage=Search functionality is enabled
-localWindow.searchBtn.appendMessage.1=Search functionality is disabled
-localWindow.sendButton=Send
-localWindow.prompt.system=You are a helpful AI assistant. Please respond to user questions in a friendly and natural tone. Users may provide search results, and you should integrate those results into your answers.
-localWindow.prompt.system.2=You are a search-focused assistant. Users will provide links, summaries, titles, and scraped content, and your job is to output the most relevant content to the user's question.
-localWindow.prompt.name=[User]
-
-settings.1.title=Plugins
-settings.2.title=Basic Settings
-settings.3.title=About
-settings.4.title=Themes
-settings.1.tip=Plugin Management
-settings.2.tip=Appearance Settings
-settings.3.tip=Version Information
-settings.4.tip=Theme Management
-
-settings.1.columns.1=Plugin Name
-settings.1.columns.2=Supported Versions
-settings.1.columns.3=Description
-settings.1.scrollPane=Loaded Plugin List
-
-settings.2.color=Interface Theme Color:
-settings.2.colorBtn=Select Color
-settings.2.colorBtn.color=Select Theme Color
-settings.2.font=Interface Font:
-settings.2.fontBtn=Select Font
-settings.2.showConfirmDialog=Select Font
-settings.2.cuda=Use CUDA for AI Inference:
-settings.2.cudaCheckBox=Enable CUDA Acceleration
-settings.2.cuda.error=Unable to reload AI inference library, please check the CUDA environment
-settings.2.cuda.error.1=Error
-settings.2.language=Interface Language:
-settings.2.language.error=Unknown Language
-settings.3.infoArea.1=Software Version:
-settings.3.infoArea.2=Developer:
-settings.4.no_theme=No available themes
-settings.4.search=Search
-settings.4.search_empty=Please enter search content!
-settings.4.search_empty_title=Prompt
-settings.4.search_not_found=No matching themes found!
-settings.4.search_not_found_title=Prompt
-settings.4.loading=This theme has already been loaded, no need to load again!
-settings.4.loading_title=Prompt
-settings.4.load=Load Theme
-settings.4.info=Theme Class:
-settings.4.info.1=Theme Name:
-settings.4.info.2=Tip:
-settings.4.info.3=Register Name:
-settings.4.load_theme_success=Theme '
-settings.4.load_theme_success.2=' loaded successfully!
-settings.4.load_theme_success.3=Success
-settings.4.load_theme_error=Failed to load theme:
-settings.4.load_theme_error.title=Error
diff --git a/language/SimplifiedChineseLanguage.properties b/language/SimplifiedChineseLanguage.properties
deleted file mode 100644
index 4ecd818..0000000
--- a/language/SimplifiedChineseLanguage.properties
+++ /dev/null
@@ -1,99 +0,0 @@
-default_theme.system.topicName=\u9ED8\u8BA4\u4E3B\u9898
-default_theme.default.tip=\u9ED8\u8BA4\u7684\u4E3B\u9898
-metal_theme.system.topicName=Metal\u98CE\u683C
-metal_theme.default.tip=Metal\u98CE\u683C
-motif_theme.system.topicName=Motif\u98CE\u683C
-motif_theme.default.tip=Motif\u98CE\u683C
-flatLightLaf_theme.system.topicName=flatLightLaf\u98CE\u683C
-flatLightLaf_theme.default.tip=flatLightLaf\u98CE\u683C
-
-mainWindow.title=\u8F74\u521B\u5DE5\u5177\u7BB1 v1.0
-mainWindow.title.2=\u8F74\u521B\u5DE5\u5177\u7BB1
-mainWindow.settings.title=\u7CFB\u7EDF\u8BBE\u7F6E
-
-andShow.title=\u7A0B\u5E8F\u5D29\u6E83\u62A5\u544A
-andShow.title.2=\u7A0B\u5E8F\u53D1\u751F\u4E25\u91CD\u9519\u8BEF
-andShow.title.3=\u8BF7\u5411\u6211\u4EEC\u53CD\u9988\uFF01
-andShow.pluginInfo.title==== \u52A0\u8F7D\u7684\u63D2\u4EF6 ===
-andShow.pluginInfo.title.1=\u63D2\u4EF6\u540D\u79F0:
-andShow.pluginInfo.title.2=\u63D2\u4EF6\u63CF\u8FF0:
-andShow.pluginInfo.title.3=\u652F\u6301\u7684\u7248\u672C:
-andShow.pluginInfo.exportButton=\u5BFC\u51FA\u62A5\u544A
-andShow.pluginInfo.closeButton=\u5173\u95ED
-andShow.pluginInfo.writer=\u62A5\u544A\u5DF2\u4FDD\u5B58\u81F3:
-andShow.pluginInfo.writer.title=\u5BFC\u51FA\u6210\u529F
-andShow.pluginInfo.writer.error=\u5BFC\u51FA\u5931\u8D25:
-andShow.pluginInfo.error.writer.title=\u9519\u8BEF
-
-progressBarManager.title=\u52A0\u8F7D\u4E2D...
-
-fridaWindow.title=Frida \u6CE8\u5165\u5DE5\u5177
-fridaWindow.pidField=\u8BF7\u8F93\u5165\u8FDB\u7A0BPID
-fridaWindow.browseButton=\u9009\u62E9\u8FDB\u7A0B
-fridaWindow.panel=\u811A\u672C\u7F16\u8F91\u5668
-fridaWindow.injectButton=\u6CE8\u5165\u811A\u672C
-fridaWindow.panel.log=\u65E5\u5FD7\u8F93\u51FA
-fridaWindow.processSelectionWindow=\u9009\u62E9\u8FDB\u7A0B
-fridaWindow.processSelectionWindow.search=\u641C\u7D22\u8FDB\u7A0B
-fridaWindow.processSelectionWindow.columns.1=\u8FDB\u7A0B\u540D\u79F0
-fridaWindow.processSelectionWindow.columns.2=\u8FDB\u7A0BID
-fridaWindow.processSelectionWindow.selectButton=\u9009\u62E9
-
-localWindow.newBtn=\u65B0\u5BF9\u8BDD
-localWindow.saveBtn=\u4FDD\u5B58\u8BB0\u5F55
-localWindow.cudaCheck=\u542F\u7528CUDA
-localWindow.searchBtn=\u5F00\u542F\u641C\u7D22
-localWindow.searchBtn.1=\u5173\u95ED\u641C\u7D22
-localWindow.searchBtn.appendMessage=\u641C\u7D22\u529F\u80FD\u5DF2\u5F00\u542F
-localWindow.searchBtn.appendMessage.1=\u641C\u7D22\u529F\u80FD\u5DF2\u5173\u95ED
-localWindow.sendButton=\u53D1\u9001
-localWindow.prompt.system=\u4F60\u662F\u4E00\u4E2A\u4E50\u4E8E\u52A9\u4EBA\u7684AI\u52A9\u624B\uFF0C\u8BF7\u7528\u53CB\u597D\u81EA\u7136\u7684\u8BED\u6C14\u56DE\u7B54\u7528\u6237\u95EE\u9898,\u7528\u6237\u53EF\u80FD\u4F1A\u63D0\u4F9B\u4E00\u4E9B\u641C\u7D22\u7ED3\u679C\u8BF7\u4F60\u7ED3\u5408\u641C\u7D22\u7ED3\u679C\u6765\u56DE\u7B54\u7528\u6237\u3002
-localWindow.prompt.system.2=\u4F60\u662F\u4E00\u4E2A\u4E13\u6CE8\u68C0\u7D22\u641C\u7D22\u4FE1\u606F\u7684\u52A9\u624B\uFF0C\u7528\u6237\u5C06\u63D0\u4F9B\u4E00\u4E9B\u94FE\u63A5\u3001\u6458\u8981\u3001\u6807\u9898\u3001\u722C\u53D6\u5230\u7684\u5185\u5BB9\uFF0C\u4F60\u7684\u4F5C\u7528\u5C31\u662F\u8F93\u51FA\u4E3B\u8981\u5185\u5BB9\u4E0E\u7528\u6237\u95EE\u9898\u76F8\u5173\u7684\u5185\u5BB9\u3002
-localWindow.prompt.name=\u3010\u7528\u6237\u3011
-
-settings.1.title=\u63D2\u4EF6
-settings.2.title=\u57FA\u7840\u8BBE\u7F6E
-settings.3.title=\u5173\u4E8E
-settings.4.title=\u4E3B\u9898
-settings.1.tip=\u63D2\u4EF6\u7BA1\u7406
-settings.2.tip=\u5916\u89C2\u8BBE\u7F6E
-settings.3.tip=\u7248\u672C\u4FE1\u606F
-settings.4.tip=\u4E3B\u9898\u7BA1\u7406
-
-settings.1.columns.1=\u63D2\u4EF6\u540D\u79F0
-settings.1.columns.2=\u7248\u672C\u652F\u6301
-settings.1.columns.3=\u63CF\u8FF0
-settings.1.scrollPane=\u5DF2\u52A0\u8F7D\u63D2\u4EF6\u5217\u8868
-
-settings.2.color=\u754C\u9762\u4E3B\u9898\u989C\u8272\uFF1A
-settings.2.colorBtn=\u9009\u62E9\u989C\u8272
-settings.2.colorBtn.color=\u9009\u62E9\u4E3B\u9898\u989C\u8272
-settings.2.font=\u754C\u9762\u5B57\u4F53\uFF1A
-settings.2.fontBtn=\u9009\u62E9\u5B57\u4F53
-settings.2.showConfirmDialog=\u9009\u62E9\u5B57\u4F53
-settings.2.cuda=AI\u63A8\u7406\u65F6\u4F7F\u7528CUDA\uFF1A
-settings.2.cudaCheckBox=\u542F\u7528CUDA\u52A0\u901F
-settings.2.cuda.error=\u65E0\u6CD5\u91CD\u65B0\u52A0\u8F7DAI\u63A8\u7406\u5E93\uFF0C\u8BF7\u68C0\u67E5CUDA\u73AF\u5883
-settings.2.cuda.error.1=\u9519\u8BEF
-settings.2.language=\u754C\u9762\u8BED\u8A00\uFF1A
-settings.2.language.error=\u672A\u77E5\u8BED\u8A00
-settings.3.infoArea.1=\u8F6F\u4EF6\u7248\u672C:
-settings.3.infoArea.2=\u5F00\u53D1\u4F5C\u8005:
-settings.4.no_theme=\u6CA1\u6709\u53EF\u7528\u7684\u4E3B\u9898
-settings.4.search=\u641C\u7D22
-settings.4.search_empty=\u8BF7\u8F93\u5165\u641C\u7D22\u5185\u5BB9\uFF01
-settings.4.search_empty_title=\u63D0\u793A
-settings.4.search_not_found=\u672A\u627E\u5230\u5339\u914D\u7684\u4E3B\u9898\uFF01
-settings.4.search_not_found_title=\u63D0\u793A
-settings.4.loading=\u8BE5\u4E3B\u9898\u5DF2\u52A0\u8F7D\uFF0C\u65E0\u9700\u91CD\u590D\u52A0\u8F7D\uFF01
-settings.4.loading_title=\u63D0\u793A
-settings.4.load=\u52A0\u8F7D\u4E3B\u9898
-settings.4.info=\u4E3B\u9898\u7C7B:
-settings.4.info.1=\u4E3B\u9898\u540D:
-settings.4.info.2=\u63D0\u793A:
-settings.4.info.3=\u6CE8\u518C\u540D:
-settings.4.load_theme_success=\u4E3B\u9898 '
-settings.4.load_theme_success.2=' \u5DF2\u6210\u529F\u52A0\u8F7D\uFF01
-settings.4.load_theme_success.3=\u6210\u529F
-settings.4.load_theme_error=\u52A0\u8F7D\u4E3B\u9898\u5931\u8D25:
-settings.4.load_theme_error.title=\u9519\u8BEF
\ No newline at end of file
diff --git a/language/TraditionalChineseLanguage.properties b/language/TraditionalChineseLanguage.properties
deleted file mode 100644
index 8b754fe..0000000
--- a/language/TraditionalChineseLanguage.properties
+++ /dev/null
@@ -1,99 +0,0 @@
-default_theme.system.topicName=\u9810\u8A2D\u4E3B\u984C
-default_theme.default.tip=\u9810\u8A2D\u7684\u4E3B\u984C
-metal_theme.system.topicName=Metal\u98A8\u683C
-metal_theme.default.tip=Metal\u98A8\u683C
-motif_theme.system.topicName=Motif\u98A8\u683C
-motif_theme.default.tip=Motif\u98A8\u683C
-flatLightLaf_theme.system.topicName=flatLightLaf\u98A8\u683C
-flatLightLaf_theme.default.tip=flatLightLaf\u98A8\u683C
-
-mainWindow.title=\u8EF8\u5275\u5DE5\u5177\u7BB1 v1.0
-mainWindow.title.2=\u8EF8\u5275\u5DE5\u5177\u7BB1
-mainWindow.settings.title=\u7CFB\u7D71\u8A2D\u7F6E
-
-andShow.title=\u7A0B\u5F0F\u5D29\u6F70\u5831\u544A
-andShow.title.2=\u7A0B\u5F0F\u767C\u751F\u56B4\u91CD\u932F\u8AA4
-andShow.title.3=\u8ACB\u5411\u6211\u5011\u53CD\u994B\uFF01
-andShow.pluginInfo.title==== \u8F09\u5165\u7684\u63D2\u4EF6 ===
-andShow.pluginInfo.title.1=\u63D2\u4EF6\u540D\u7A31:
-andShow.pluginInfo.title.2=\u63D2\u4EF6\u63CF\u8FF0:
-andShow.pluginInfo.title.3=\u652F\u63F4\u7684\u7248\u672C:
-andShow.pluginInfo.exportButton=\u532F\u51FA\u5831\u544A
-andShow.pluginInfo.closeButton=\u95DC\u9589
-andShow.pluginInfo.writer=\u5831\u544A\u5DF2\u5132\u5B58\u81F3:
-andShow.pluginInfo.writer.title=\u532F\u51FA\u6210\u529F
-andShow.pluginInfo.writer.error=\u532F\u51FA\u5931\u6557:
-andShow.pluginInfo.error.writer.title=\u932F\u8AA4
-
-progressBarManager.title=\u52A0\u8F09\u4E2D...
-
-fridaWindow.title=Frida \u6CE8\u5165\u5DE5\u5177
-fridaWindow.pidField=\u8F38\u5165\u9032\u7A0BPID
-fridaWindow.browseButton=\u9078\u64C7\u9032\u7A0B
-fridaWindow.panel=\u8173\u672C\u7DE8\u8F2F\u5668
-fridaWindow.injectButton=\u6CE8\u5165\u8173\u672C
-fridaWindow.panel.log=\u65E5\u8A8C\u8F38\u51FA
-fridaWindow.processSelectionWindow=\u9078\u64C7\u9032\u7A0B
-fridaWindow.processSelectionWindow.search=\u641C\u5C0B\u9032\u7A0B
-fridaWindow.processSelectionWindow.columns.1=\u9032\u7A0B\u540D\u7A31
-fridaWindow.processSelectionWindow.columns.2=\u9032\u7A0BID
-fridaWindow.processSelectionWindow.selectButton=\u9078\u64C7
-
-localWindow.newBtn=\u65B0\u5C0D\u8A71
-localWindow.saveBtn=\u4FDD\u5B58\u8A18\u9304
-localWindow.cudaCheck=\u555F\u7528CUDA
-localWindow.searchBtn=\u958B\u555F\u641C\u5C0B
-localWindow.searchBtn.1=\u95DC\u9589\u641C\u5C0B
-localWindow.searchBtn.appendMessage=\u641C\u5C0B\u529F\u80FD\u5DF2\u958B\u555F
-localWindow.searchBtn.appendMessage.1=\u641C\u5C0B\u529F\u80FD\u5DF2\u95DC\u9589
-localWindow.sendButton=\u767C\u9001
-localWindow.prompt.system=\u4F60\u662F\u4E00\u4E2A\u4E50\u4E8E\u52A9\u4EBA\u7684AI\u52A9\u624B\uFF0C\u8BF7\u7528\u53CB\u597D\u81EA\u7136\u7684\u8BED\u6C14\u56DE\u7B54\u7528\u6237\u95EE\u9898,\u7528\u6237\u53EF\u80FD\u4F1A\u63D0\u4F9B\u4E00\u4E9B\u641C\u7D22\u7ED3\u679C\u8BF7\u4F60\u7ED3\u5408\u641C\u7D22\u7ED3\u679C\u6765\u56DE\u7B54\u7528\u6237\u3002
-localWindow.prompt.system.2=\u4F60\u662F\u4E00\u4E2A\u4E13\u6CE8\u68C0\u7D22\u641C\u7D22\u4FE1\u606F\u7684\u52A9\u624B\uFF0C\u7528\u6237\u5C06\u63D0\u4F9B\u4E00\u4E9B\u94FE\u63A5\u3001\u6458\u8981\u3001\u6807\u9898\u3001\u722C\u53D6\u5230\u7684\u5185\u5BB9\uFF0C\u4F60\u7684\u4F5C\u7528\u5C31\u662F\u8F93\u51FA\u4E3B\u8981\u5185\u5BB9\u4E0E\u7528\u6237\u95EE\u9898\u76F8\u5173\u7684\u5185\u5BB9\u3002
-localWindow.prompt.name=[\u7528\u6236]
-
-settings.1.title=\u63D2\u4EF6
-settings.2.title=\u57FA\u672C\u8A2D\u7F6E
-settings.3.title=\u95DC\u65BC
-settings.4.title=\u4E3B\u984C
-settings.1.tip=\u63D2\u4EF6\u7BA1\u7406
-settings.2.tip=\u5916\u89C0\u8A2D\u7F6E
-settings.3.tip=\u7248\u672C\u4FE1\u606F
-settings.4.tip=\u4E3B\u984C\u7BA1\u7406
-
-settings.1.columns.1=\u63D2\u4EF6\u540D\u7A31
-settings.1.columns.2=\u7248\u672C\u652F\u6301
-settings.1.columns.3=\u63CF\u8FF0
-settings.1.scrollPane=\u5DF2\u8F09\u5165\u63D2\u4EF6\u5217\u8868
-
-settings.2.color=\u4ECB\u9762\u4E3B\u984C\u984F\u8272\uFF1A
-settings.2.colorBtn=\u9078\u64C7\u984F\u8272
-settings.2.colorBtn.color=\u9078\u64C7\u4E3B\u984C\u984F\u8272
-settings.2.font=\u4ECB\u9762\u5B57\u9AD4\uFF1A
-settings.2.fontBtn=\u9078\u64C7\u5B57\u9AD4
-settings.2.showConfirmDialog=\u9078\u64C7\u5B57\u9AD4
-settings.2.cuda=AI\u63A8\u7406\u6642\u4F7F\u7528CUDA\uFF1A
-settings.2.cudaCheckBox=\u555F\u7528CUDA\u52A0\u901F
-settings.2.cuda.error=\u7121\u6CD5\u91CD\u65B0\u52A0\u8F09AI\u63A8\u7406\u5EAB\uFF0C\u8ACB\u6AA2\u67E5CUDA\u74B0\u5883
-settings.2.cuda.error.1=\u932F\u8AA4
-settings.2.language=\u4ECB\u9762\u8A9E\u8A00\uFF1A
-settings.2.language.error=\u672A\u77E5\u8A9E\u8A00
-settings.3.infoArea.1=\u8EDF\u9AD4\u7248\u672C:
-settings.3.infoArea.2=\u958B\u767C\u4F5C\u8005:
-settings.4.no_theme=\u6C92\u6709\u53EF\u7528\u7684\u4E3B\u984C
-settings.4.search=\u641C\u5C0B
-settings.4.search_empty=\u8ACB\u8F38\u5165\u641C\u5C0B\u5167\u5BB9\uFF01
-settings.4.search_empty_title=\u63D0\u793A
-settings.4.search_not_found=\u672A\u627E\u5230\u5339\u914D\u7684\u4E3B\u984C\uFF01
-settings.4.search_not_found_title=\u63D0\u793A
-settings.4.loading=\u8A72\u4E3B\u984C\u5DF2\u8F09\u5165\uFF0C\u7121\u9700\u91CD\u8907\u8F09\u5165\uFF01
-settings.4.loading_title=\u63D0\u793A
-settings.4.load=\u52A0\u8F09\u4E3B\u984C
-settings.4.info=\u4E3B\u984C\u985E\u5225:
-settings.4.info.1=\u4E3B\u984C\u540D\u7A31:
-settings.4.info.2=\u63D0\u793A:
-settings.4.info.3=\u8A3B\u518A\u540D\u7A31:
-settings.4.load_theme_success=\u4E3B\u984C '
-settings.4.load_theme_success.2=' \u5DF2\u6210\u529F\u52A0\u8F09\uFF01
-settings.4.load_theme_success.3=\u6210\u529F
-settings.4.load_theme_error=\u52A0\u8F09\u4E3B\u984C\u5931\u6557:
-settings.4.load_theme_error.title=\u932F\u8AA4
diff --git a/language/saved_language.properties b/language/saved_language.properties
deleted file mode 100644
index 060dcf8..0000000
--- a/language/saved_language.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-#Current Loaded Language
-#Fri Feb 14 09:23:44 CST 2025
-loadedLanguage=Zh
diff --git a/src/main/java/com/axis/innovators/box/AxisInnovatorsBox.java b/src/main/java/com/axis/innovators/box/AxisInnovatorsBox.java
index 43247e2..2c44ff2 100644
--- a/src/main/java/com/axis/innovators/box/AxisInnovatorsBox.java
+++ b/src/main/java/com/axis/innovators/box/AxisInnovatorsBox.java
@@ -1,6 +1,7 @@
package com.axis.innovators.box;
import com.axis.innovators.box.events.GlobalEventBus;
+import com.axis.innovators.box.events.OpenFileEvents;
import com.axis.innovators.box.events.StartupEvent;
import com.axis.innovators.box.gui.*;
import com.axis.innovators.box.plugins.PluginDescriptor;
@@ -9,6 +10,7 @@ import com.axis.innovators.box.register.RegistrationSettingsItem;
import com.axis.innovators.box.register.RegistrationTool;
import com.axis.innovators.box.register.RegistrationTopic;
import com.axis.innovators.box.register.LanguageManager;
+import com.axis.innovators.box.tools.ArgsParser;
import com.axis.innovators.box.tools.LibraryLoad;
import com.axis.innovators.box.tools.StateManager;
import com.axis.innovators.box.tools.SystemInfoUtil;
@@ -22,7 +24,9 @@ import java.awt.*;
import java.awt.event.ActionEvent;
import java.io.*;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
+import java.util.Map;
/**
* 主类
@@ -52,13 +56,14 @@ public class AxisInnovatorsBox {
private final List windowsJDialogList = new ArrayList<>();
private final StateManager stateManager = new StateManager();
- public AxisInnovatorsBox(String[] args){
+ public AxisInnovatorsBox(String[] args) {
this.args = args;
}
static {
try {
LibraryLoad.loadLibrary("FridaNative");
+ LibraryLoad.loadLibrary("ThrowSafely");
LM.loadLibrary(LM.CUDA);
} catch (Exception e) {
logger.error("Failed to load the 'FridaNative' library", e);
@@ -218,6 +223,9 @@ public class AxisInnovatorsBox {
dialog.setVisible(true);
}
+ /**
+ * 初始化Log4j2
+ */
public void initLog4j2() {
Log4j2OutputStream.redirectSystemStreams();
@@ -235,9 +243,11 @@ public class AxisInnovatorsBox {
logger.info("ClassLoader.getSystemClassLoader(): {}", ClassLoader.getSystemClassLoader());
}
+ /**
+ * 设置主题
+ */
private void setTopic() {
try {
-
main.registrationTopic.addTopic(UIManager.getSystemLookAndFeelClassName(),
LanguageManager.getLoadedLanguages().getText("default_theme.system.topicName"),
LanguageManager.getLoadedLanguages().getText("default_theme.default.tip"),
@@ -317,43 +327,59 @@ public class AxisInnovatorsBox {
isWindow = true;
}
-
- public static void main(String[] args) {
+ public static void run(String[] args) {
main = new AxisInnovatorsBox(args);
- main.initLog4j2();
- main.setTopic();
+ try {
+ main.initLog4j2();
+ main.setTopic();
- main.thread = new Thread(() -> {
- try {
- // 主任务1:加载插件
- logger.info("Loaded plugins Started");
- main.progressBarManager.updateMainProgress(++main.completedTasks);
- PluginLoader.loadPlugins();
- logger.info("Loaded plugins End");
+ List