From 813ef5ba51126b099626a594816447735c20b89a Mon Sep 17 00:00:00 2001 From: Lan Date: Thu, 4 Sep 2025 16:14:42 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A4=9A=E8=AF=AD=E8=A8=80=E6=94=AF?= =?UTF-8?q?=E6=8C=81=20https://github.com/vastsa/FileCodeBox/issues/310=20?= =?UTF-8?q?=20https://github.com/vastsa/FileCodeBox/issues/299?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + pnpm-lock.yaml | 40 ++ src/App.vue | 57 +- src/components/common/AlertComponent.vue | 5 +- src/components/common/ContentPreviewModal.vue | 6 +- src/components/common/ExpirationSelector.vue | 25 +- src/components/common/FileDetailModal.vue | 22 +- src/components/common/FileUploadArea.vue | 19 +- src/components/common/LanguageSwitcher.vue | 102 +++ src/components/common/PageFooter.vue | 5 +- src/components/common/RetrieveForm.vue | 9 +- src/components/common/SendTypeSelector.vue | 7 +- src/components/common/TextInputArea.vue | 12 +- src/components/common/ThemeToggle.vue | 6 +- src/i18n/index.ts | 50 ++ src/i18n/locales/en-US.ts | 597 +++++++++++++++++ src/i18n/locales/zh-CN.ts | 604 ++++++++++++++++++ src/layout/AdminLayout/AdminLayout.vue | 10 +- src/main.ts | 2 + src/utils/common.ts | 21 +- src/views/RetrievewFileView.vue | 30 +- src/views/SendFileView.vue | 82 +-- src/views/manage/DashboardView.vue | 26 +- src/views/manage/FileManageView.vue | 55 +- src/views/manage/SystemSettingsView.vue | 130 ++-- 25 files changed, 1678 insertions(+), 245 deletions(-) create mode 100644 src/components/common/LanguageSwitcher.vue create mode 100644 src/i18n/index.ts create mode 100644 src/i18n/locales/en-US.ts create mode 100644 src/i18n/locales/zh-CN.ts diff --git a/package.json b/package.json index e26ebdc..5bf1efb 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "qrcode.vue": "^3.6.0", "spark-md5": "^3.0.2", "vue": "^3.5.18", + "vue-i18n": "9", "vue-router": "^4.5.1" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e119a24..9458d3c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -41,6 +41,9 @@ importers: vue: specifier: ^3.5.18 version: 3.5.21(typescript@5.8.3) + vue-i18n: + specifier: '9' + version: 9.14.5(vue@3.5.21(typescript@5.8.3)) vue-router: specifier: ^4.5.1 version: 4.5.1(vue@3.5.21(typescript@5.8.3)) @@ -481,6 +484,18 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} + '@intlify/core-base@9.14.5': + resolution: {integrity: sha512-5ah5FqZG4pOoHjkvs8mjtv+gPKYU0zCISaYNjBNNqYiaITxW8ZtVih3GS/oTOqN8d9/mDLyrjD46GBApNxmlsA==} + engines: {node: '>= 16'} + + '@intlify/message-compiler@9.14.5': + resolution: {integrity: sha512-IHzgEu61/YIpQV5Pc3aRWScDcnFKWvQA9kigcINcCBXN8mbW+vk9SK+lDxA6STzKQsVJxUPg9ACC52pKKo3SVQ==} + engines: {node: '>= 16'} + + '@intlify/shared@9.14.5': + resolution: {integrity: sha512-9gB+E53BYuAEMhbCAxVgG38EZrk59sxBtv3jSizNL2hEWlgjBjAw1AwpLHtNaeda12pe6W20OGEa0TwuMSRbyQ==} + engines: {node: '>= 16'} + '@isaacs/balanced-match@4.0.1': resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} engines: {node: 20 || >=22} @@ -2085,6 +2100,12 @@ packages: peerDependencies: eslint: ^8.57.0 || ^9.0.0 + vue-i18n@9.14.5: + resolution: {integrity: sha512-0jQ9Em3ymWngyiIkj0+c/k7WgaPO+TNzjKSNq9BvBQaKJECqn9cd9fL4tkDhB5G1QBskGl9YxxbDAhgbFtpe2g==} + engines: {node: '>= 16'} + peerDependencies: + vue: ^3.0.0 + vue-router@4.5.1: resolution: {integrity: sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==} peerDependencies: @@ -2483,6 +2504,18 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} + '@intlify/core-base@9.14.5': + dependencies: + '@intlify/message-compiler': 9.14.5 + '@intlify/shared': 9.14.5 + + '@intlify/message-compiler@9.14.5': + dependencies: + '@intlify/shared': 9.14.5 + source-map-js: 1.2.1 + + '@intlify/shared@9.14.5': {} + '@isaacs/balanced-match@4.0.1': {} '@isaacs/brace-expansion@5.0.0': @@ -4086,6 +4119,13 @@ snapshots: transitivePeerDependencies: - supports-color + vue-i18n@9.14.5(vue@3.5.21(typescript@5.8.3)): + dependencies: + '@intlify/core-base': 9.14.5 + '@intlify/shared': 9.14.5 + '@vue/devtools-api': 6.6.4 + vue: 3.5.21(typescript@5.8.3) + vue-router@4.5.1(vue@3.5.21(typescript@5.8.3)): dependencies: '@vue/devtools-api': 6.6.4 diff --git a/src/App.vue b/src/App.vue index d0c2b56..4844d2a 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,44 +1,29 @@