From a74f3e94019732be2f184e308c6d769e7b9a34a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=96=87=E6=98=8A?= <15984991+wwh2328692301@user.noreply.gitee.com> Date: Mon, 27 Apr 2026 13:48:42 +0800 Subject: [PATCH] =?UTF-8?q?feat(demo-vue):=20=E5=85=A8=E7=AB=99=20i18n=20?= =?UTF-8?q?=E6=8A=BD=E6=96=87=E6=A1=88=E3=80=81=E4=B8=AD=E8=8B=B1=E6=96=87?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E4=B8=8E=E9=A1=B5=E9=9D=A2=E6=8E=A5=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 引入 vue-i18n,集中维护 zh-CN / en-US 文案与产品 catalog、长文 HTML - 前台与后台列表/弹窗/校验/删除确认等改为 t(),顶栏与新闻/行业列表与详情页多语言 - 修正 Industry 等页面文首误粘贴;请求头 Accept-Language 与 Element 语言随 locale 切换 --- .idea/compiler.xml | 1 + .idea/encodings.xml | 1 + .idea/misc.xml | 2 +- demo-vue/env.d.ts | 5 + demo-vue/package-lock.json | 71 +++ demo-vue/package.json | 1 + demo-vue/src/App.vue | 13 +- demo-vue/src/components/Footer.vue | 8 +- demo-vue/src/components/FooterComponent.vue | 37 +- demo-vue/src/components/Header.vue | 13 +- demo-vue/src/components/HeaderComponent.vue | 68 +- demo-vue/src/components/LeftMenu.vue | 31 +- .../src/composables/useLocaleBlockHtml.ts | 10 + demo-vue/src/data/productImages.ts | 41 ++ demo-vue/src/locales/en-US/catalog.ts | 230 +++++++ demo-vue/src/locales/en-US/index.ts | 10 + demo-vue/src/locales/en-US/messages.ts | 172 +++++ .../locales/html/corporate-culture.en.html | 52 ++ .../locales/html/corporate-culture.zh.html | 214 +++++++ demo-vue/src/locales/html/development.en.html | 80 +++ demo-vue/src/locales/html/development.zh.html | 224 +++++++ demo-vue/src/locales/html/honors.en.html | 33 + demo-vue/src/locales/html/honors.zh.html | 384 ++++++++++++ .../src/locales/html/organization.en.html | 150 +++++ .../src/locales/html/organization.zh.html | 168 +++++ demo-vue/src/locales/html/production.en.html | 71 +++ demo-vue/src/locales/html/production.zh.html | 575 +++++++++++++++++ demo-vue/src/locales/types.ts | 17 + demo-vue/src/locales/zh-CN/catalog.ts | 230 +++++++ demo-vue/src/locales/zh-CN/index.ts | 10 + demo-vue/src/locales/zh-CN/messages.ts | 172 +++++ demo-vue/src/main.ts | 9 +- demo-vue/src/utils/i18n.ts | 19 + demo-vue/src/utils/request.ts | 21 +- demo-vue/src/views/AboutDetail.vue | 172 ++--- demo-vue/src/views/CorporateCulture.vue | 441 +------------ demo-vue/src/views/DevelopmentHistory.vue | 314 +--------- .../src/views/HonorsAndQualifications.vue | 549 +--------------- demo-vue/src/views/OrganizationStructure.vue | 250 +------- demo-vue/src/views/PrivacyPolicy.vue | 41 +- demo-vue/src/views/ProductionBase.vue | 586 +----------------- demo-vue/src/views/ProductsDetail.vue | 320 ++-------- demo-vue/src/views/ServicesDetail.vue | 171 ++--- demo-vue/src/views/TermsOfService.vue | 38 +- demo-vue/src/views/WelcomeVue.vue | 159 ++--- demo-vue/src/views/admin/Addorupdate.vue | 130 ++-- demo-vue/src/views/admin/List.vue | 79 +-- demo-vue/src/views/admin/Login.vue | 25 +- demo-vue/src/views/admin/WelcomeView.vue | 6 +- .../views/industry/IndustryAddorUpdate.vue | 84 +-- .../src/views/industry/IndustryDetail.vue | 22 +- demo-vue/src/views/industry/IndustryList.vue | 130 ++-- demo-vue/src/views/industry/IndustryPage.vue | 22 +- demo-vue/src/views/news/ NewsDetail.vue | 24 +- demo-vue/src/views/news/NewsAddorUpdate.vue | 84 +-- demo-vue/src/views/news/NewsList.vue | 128 ++-- demo-vue/src/views/news/NewsPage.vue | 20 +- 57 files changed, 3703 insertions(+), 3235 deletions(-) create mode 100644 demo-vue/src/composables/useLocaleBlockHtml.ts create mode 100644 demo-vue/src/data/productImages.ts create mode 100644 demo-vue/src/locales/en-US/catalog.ts create mode 100644 demo-vue/src/locales/en-US/index.ts create mode 100644 demo-vue/src/locales/en-US/messages.ts create mode 100644 demo-vue/src/locales/html/corporate-culture.en.html create mode 100644 demo-vue/src/locales/html/corporate-culture.zh.html create mode 100644 demo-vue/src/locales/html/development.en.html create mode 100644 demo-vue/src/locales/html/development.zh.html create mode 100644 demo-vue/src/locales/html/honors.en.html create mode 100644 demo-vue/src/locales/html/honors.zh.html create mode 100644 demo-vue/src/locales/html/organization.en.html create mode 100644 demo-vue/src/locales/html/organization.zh.html create mode 100644 demo-vue/src/locales/html/production.en.html create mode 100644 demo-vue/src/locales/html/production.zh.html create mode 100644 demo-vue/src/locales/types.ts create mode 100644 demo-vue/src/locales/zh-CN/catalog.ts create mode 100644 demo-vue/src/locales/zh-CN/index.ts create mode 100644 demo-vue/src/locales/zh-CN/messages.ts create mode 100644 demo-vue/src/utils/i18n.ts diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 8a11a50..854d941 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -2,6 +2,7 @@ + diff --git a/.idea/encodings.xml b/.idea/encodings.xml index 688a19c..1eb42dd 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -2,5 +2,6 @@ + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 753e86d..b6c363a 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -8,7 +8,7 @@ - + \ No newline at end of file diff --git a/demo-vue/env.d.ts b/demo-vue/env.d.ts index 11f02fe..80fd1e8 100644 --- a/demo-vue/env.d.ts +++ b/demo-vue/env.d.ts @@ -1 +1,6 @@ /// + +declare module '*?raw' { + const content: string + export default content +} diff --git a/demo-vue/package-lock.json b/demo-vue/package-lock.json index 91bdd8d..f4b19a7 100644 --- a/demo-vue/package-lock.json +++ b/demo-vue/package-lock.json @@ -15,6 +15,7 @@ "less": "^4.5.1", "pinia": "^3.0.4", "vue": "^3.5.29", + "vue-i18n": "^9.14.4", "vue-router": "^5.0.3" }, "devDependencies": { @@ -971,6 +972,50 @@ "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", "license": "MIT" }, + "node_modules/@intlify/core-base": { + "version": "9.14.4", + "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.14.4.tgz", + "integrity": "sha512-vtZCt7NqWhKEtHa3SD/322DlgP5uR9MqWxnE0y8Q0tjDs9H5Lxhss+b5wv8rmuXRoHKLESNgw9d+EN9ybBbj9g==", + "license": "MIT", + "dependencies": { + "@intlify/message-compiler": "9.14.4", + "@intlify/shared": "9.14.4" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "9.14.4", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.14.4.tgz", + "integrity": "sha512-vcyCLiVRN628U38c3PbahrhbbXrckrM9zpy0KZVlDk2Z0OnGwv8uQNNXP3twwGtfLsCf4gu3ci6FMIZnPaqZsw==", + "license": "MIT", + "dependencies": { + "@intlify/shared": "9.14.4", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/shared": { + "version": "9.14.4", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.14.4.tgz", + "integrity": "sha512-P9zv6i1WvMc9qDBWvIgKkymjY2ptIiQ065PjDv7z7fDqH3J/HBRBN5IoiR46r/ujRcU7hCuSIZWvCAFCyuOYZA==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -3831,6 +3876,32 @@ "integrity": "sha512-O02tnvIfOQVmnvoWwuSydwRoHjZVt8UEBR+2p4rT35p8GAy5VTlWP8o5qXfJR/GWCN0nVZoYWsVUvx2jwgdBmQ==", "license": "MIT" }, + "node_modules/vue-i18n": { + "version": "9.14.4", + "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.14.4.tgz", + "integrity": "sha512-B934C8yUyWLT0EMud3DySrwSUJI7ZNiWYsEEz2gknTthqKiG4dzWE/WSa8AzCuSQzwBEv4HtG1jZDhgzPfWSKQ==", + "license": "MIT", + "dependencies": { + "@intlify/core-base": "9.14.4", + "@intlify/shared": "9.14.4", + "@vue/devtools-api": "^6.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-i18n/node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, "node_modules/vue-router": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-5.0.3.tgz", diff --git a/demo-vue/package.json b/demo-vue/package.json index b33a99d..6288037 100644 --- a/demo-vue/package.json +++ b/demo-vue/package.json @@ -18,6 +18,7 @@ "less": "^4.5.1", "pinia": "^3.0.4", "vue": "^3.5.29", + "vue-i18n": "^9.14.4", "vue-router": "^5.0.3" }, "devDependencies": { diff --git a/demo-vue/src/App.vue b/demo-vue/src/App.vue index 8700889..e42bb2a 100644 --- a/demo-vue/src/App.vue +++ b/demo-vue/src/App.vue @@ -1,7 +1,16 @@ \ No newline at end of file + + + + diff --git a/demo-vue/src/components/Footer.vue b/demo-vue/src/components/Footer.vue index e167dcc..7c5a2d0 100644 --- a/demo-vue/src/components/Footer.vue +++ b/demo-vue/src/components/Footer.vue @@ -1,11 +1,13 @@ @@ -18,4 +20,4 @@ const currentYear = dayjs().year(); color:#0a0e14; } } - \ No newline at end of file + diff --git a/demo-vue/src/components/FooterComponent.vue b/demo-vue/src/components/FooterComponent.vue index f705b50..e5a5e38 100644 --- a/demo-vue/src/components/FooterComponent.vue +++ b/demo-vue/src/components/FooterComponent.vue @@ -3,33 +3,32 @@