From 37aaf31904574e1225537cdf16ebcd6213f38335 Mon Sep 17 00:00:00 2001 From: YunLong Date: Wed, 1 Apr 2026 18:54:28 +0800 Subject: [PATCH 1/3] feat: Add comprehensive i18n support and fix WorkflowEdge crash bug --- frontend/package-lock.json | 83 +++ frontend/package.json | 1 + .../src/components/CollapsibleMessage.vue | 3 +- frontend/src/components/DynamicFormField.vue | 67 +-- frontend/src/components/FormGenerator.vue | 73 +-- .../src/components/InlineConfigRenderer.vue | 2 +- frontend/src/components/RichTooltip.vue | 11 +- frontend/src/components/SettingsModal.vue | 52 +- frontend/src/components/Sidebar.vue | 12 +- frontend/src/components/StartNode.vue | 4 +- frontend/src/components/WorkflowEdge.vue | 8 +- frontend/src/i18n.js | 25 + frontend/src/locales/en.json | 507 ++++++++++++++++++ frontend/src/locales/zh.json | 507 ++++++++++++++++++ frontend/src/main.js | 3 +- frontend/src/pages/BatchRunView.vue | 84 +-- frontend/src/pages/HomeView.vue | 10 +- frontend/src/pages/LaunchView.vue | 109 ++-- frontend/src/pages/TutorialView.vue | 32 +- frontend/src/pages/WorkflowList.vue | 14 +- frontend/src/pages/WorkflowView.vue | 119 ++-- frontend/src/pages/WorkflowWorkbench.vue | 6 +- frontend/src/utils/configStore.js | 3 +- frontend/src/utils/helpContent.js | 125 ++--- 24 files changed, 1535 insertions(+), 325 deletions(-) create mode 100644 frontend/src/i18n.js create mode 100644 frontend/src/locales/en.json create mode 100644 frontend/src/locales/zh.json diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 4305d52d6e..be237923e9 100755 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -17,6 +17,7 @@ "markdown-it": "^14.1.0", "markdown-it-anchor": "^9.2.0", "vue": "^3.5.22", + "vue-i18n": "^11.3.0", "vue-router": "^4.6.0" }, "devDependencies": { @@ -733,6 +734,67 @@ "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@intlify/core-base": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-11.3.0.tgz", + "integrity": "sha512-NNX5jIwF4TJBe7RtSKDMOA6JD9mp2mRcBHAwt2X+Q8PvnZub0yj5YYXlFu2AcESdgQpEv/5Yx2uOCV/yh7YkZg==", + "license": "MIT", + "dependencies": { + "@intlify/devtools-types": "11.3.0", + "@intlify/message-compiler": "11.3.0", + "@intlify/shared": "11.3.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/devtools-types": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@intlify/devtools-types/-/devtools-types-11.3.0.tgz", + "integrity": "sha512-G9CNL4WpANWVdUjubOIIS7/D2j/0j+1KJmhBJxHilWNKr9mmt3IjFV3Hq4JoBP23uOoC5ynxz/FHZ42M+YxfGw==", + "license": "MIT", + "dependencies": { + "@intlify/core-base": "11.3.0", + "@intlify/shared": "11.3.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-11.3.0.tgz", + "integrity": "sha512-RAJp3TMsqohg/Wa7bVF3cChRhecSYBLrTCQSj7j0UtWVFLP+6iEJoE2zb7GU5fp+fmG5kCbUdzhmlAUCWXiUJw==", + "license": "MIT", + "dependencies": { + "@intlify/shared": "11.3.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/shared": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-11.3.0.tgz", + "integrity": "sha512-LC6P/uay7rXL5zZ5+5iRJfLs/iUN8apu9tm8YqQVmW3Uq3X4A0dOFUIDuAmB7gAC29wTHOS3EiN/IosNSz0eNQ==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", @@ -2866,6 +2928,27 @@ "eslint": "^8.57.0 || ^9.0.0" } }, + "node_modules/vue-i18n": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-11.3.0.tgz", + "integrity": "sha512-1J+xDfDJTLhDxElkd3+XUhT7FYSZd2b8pa7IRKGxhWH/8yt6PTvi3xmWhGwhYT5EaXdatui11pF2R6tL73/zPA==", + "license": "MIT", + "dependencies": { + "@intlify/core-base": "11.3.0", + "@intlify/devtools-types": "11.3.0", + "@intlify/shared": "11.3.0", + "@vue/devtools-api": "^6.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, "node_modules/vue-router": { "version": "4.6.4", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.6.4.tgz", diff --git a/frontend/package.json b/frontend/package.json index 9e45de6331..56a000211e 100755 --- a/frontend/package.json +++ b/frontend/package.json @@ -18,6 +18,7 @@ "markdown-it": "^14.1.0", "markdown-it-anchor": "^9.2.0", "vue": "^3.5.22", + "vue-i18n": "^11.3.0", "vue-router": "^4.6.0" }, "devDependencies": { diff --git a/frontend/src/components/CollapsibleMessage.vue b/frontend/src/components/CollapsibleMessage.vue index 70c323abcf..63aa45ce05 100755 --- a/frontend/src/components/CollapsibleMessage.vue +++ b/frontend/src/components/CollapsibleMessage.vue @@ -4,7 +4,7 @@ @@ -87,7 +87,7 @@ @@ -118,11 +118,11 @@
@@ -289,11 +289,11 @@