From 33061591a4d10cff71139c1c2155b4ae5ff8ef0f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=8F=B2=E9=B8=BD?= <1020103647@qq.com>
Date: Mon, 29 Jan 2024 14:48:07 +0800
Subject: [PATCH] =?UTF-8?q?feat(i18n):=20=E5=BC=95=E5=85=A5i18n=EF=BC=8C?=
=?UTF-8?q?=E6=A0=87=E9=A2=98=E4=B8=8D=E7=94=9F=E6=95=88=EF=BC=8C=E5=8F=A6?=
=?UTF-8?q?=E5=A4=96=E8=BF=98=E6=9C=89=E6=8A=A5=E9=94=99=E6=8F=90=E7=A4=BA?=
=?UTF-8?q?=E5=87=BA=E7=8E=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.eslintrc.cjs | 1 +
package.json | 2 +-
pnpm-lock.yaml | 30 +++++++++++++++---------------
src/locale/en.json | 3 +++
src/locale/index.ts | 17 +++++++++++++++++
src/locale/zh.json | 3 +++
src/main.ts | 3 ++-
src/pages/index/i18n.vue | 9 +++++++++
src/pages/index/index.vue | 5 +++--
9 files changed, 54 insertions(+), 19 deletions(-)
create mode 100644 src/locale/en.json
create mode 100644 src/locale/index.ts
create mode 100644 src/locale/zh.json
create mode 100644 src/pages/index/i18n.vue
diff --git a/.eslintrc.cjs b/.eslintrc.cjs
index 516fa3b..054351b 100644
--- a/.eslintrc.cjs
+++ b/.eslintrc.cjs
@@ -75,6 +75,7 @@ module.exports = {
},
},
globals: {
+ $t: true,
uni: true,
UniApp: true,
wx: true,
diff --git a/package.json b/package.json
index b506642..2f50f8d 100644
--- a/package.json
+++ b/package.json
@@ -87,7 +87,7 @@
"pinia": "2.0.36",
"pinia-plugin-persistedstate": "3.2.1",
"vue": "3.2.47",
- "vue-i18n": "9.8.0"
+ "vue-i18n": "9.9.0"
},
"devDependencies": {
"@commitlint/cli": "^18.4.3",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 100a064..bfd8d76 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -59,8 +59,8 @@ dependencies:
specifier: 3.2.47
version: 3.2.47
vue-i18n:
- specifier: 9.8.0
- version: 9.8.0(vue@3.2.47)
+ specifier: 9.9.0
+ version: 9.9.0(vue@3.2.47)
devDependencies:
'@commitlint/cli':
@@ -2731,12 +2731,12 @@ packages:
'@intlify/shared': 9.1.9
'@intlify/vue-devtools': 9.1.9
- /@intlify/core-base@9.8.0:
- resolution: {integrity: sha512-UxaSZVZ1DwqC/CltUZrWZNaWNhfmKtfyV4BJSt/Zt4Or/fZs1iFj0B+OekYk1+MRHfIOe3+x00uXGQI4PbO/9g==}
+ /@intlify/core-base@9.9.0:
+ resolution: {integrity: sha512-C7UXPymDIOlMGSNjAhNLtKgzITc/8BjINK5gNKXg8GiWCTwL6n3MWr55czksxn8RM5wTMz0qcLOFT+adtaVQaA==}
engines: {node: '>= 16'}
dependencies:
- '@intlify/message-compiler': 9.8.0
- '@intlify/shared': 9.8.0
+ '@intlify/message-compiler': 9.9.0
+ '@intlify/shared': 9.9.0
dev: false
/@intlify/devtools-if@9.1.9:
@@ -2753,11 +2753,11 @@ packages:
'@intlify/shared': 9.1.9
source-map: 0.6.1
- /@intlify/message-compiler@9.8.0:
- resolution: {integrity: sha512-McnYWhcoYmDJvssVu6QGR0shqlkJuL1HHdi5lK7fNqvQqRYaQ4lSLjYmZxwc8tRNMdIe9/KUKfyPxU9M6yCtNQ==}
+ /@intlify/message-compiler@9.9.0:
+ resolution: {integrity: sha512-yDU/jdUm9KuhEzYfS+wuyja209yXgdl1XFhMlKtXEgSFTxz4COZQCRXXbbH8JrAjMsaJ7bdoPSLsKlY6mXG2iA==}
engines: {node: '>= 16'}
dependencies:
- '@intlify/shared': 9.8.0
+ '@intlify/shared': 9.9.0
source-map-js: 1.0.2
dev: false
@@ -2777,8 +2777,8 @@ packages:
resolution: {integrity: sha512-xKGM1d0EAxdDFCWedcYXOm6V5Pfw/TMudd6/qCdEb4tv0hk9EKeg7lwQF1azE0dP2phvx0yXxrt7UQK+IZjNdw==}
engines: {node: '>= 10'}
- /@intlify/shared@9.8.0:
- resolution: {integrity: sha512-TmgR0RCLjzrSo+W3wT0ALf9851iFMlVI9EYNGeWvZFUQTAJx0bvfsMlPdgVtV1tDNRiAfhkFsMKu6jtUY1ZLKQ==}
+ /@intlify/shared@9.9.0:
+ resolution: {integrity: sha512-1ECUyAHRrzOJbOizyGufYP2yukqGrWXtkmTu4PcswVnWbkcjzk3YQGmJ0bLkM7JZ0ZYAaohLGdYvBYnTOGYJ9g==}
engines: {node: '>= 16'}
dev: false
@@ -12123,14 +12123,14 @@ packages:
- vue
dev: true
- /vue-i18n@9.8.0(vue@3.2.47):
- resolution: {integrity: sha512-Izho+6PYjejsTq2mzjcRdBZ5VLRQoSuuexvR8029h5CpN03FYqiqBrShMyf2I1DKkN6kw/xmujcbvC+4QybpsQ==}
+ /vue-i18n@9.9.0(vue@3.2.47):
+ resolution: {integrity: sha512-xQ5SxszUAqK5n84N+uUyHH/PiQl9xZ24FOxyAaNonmOQgXeN+rD9z/6DStOpOxNFQn4Cgcquot05gZc+CdOujA==}
engines: {node: '>= 16'}
peerDependencies:
vue: ^3.0.0
dependencies:
- '@intlify/core-base': 9.8.0
- '@intlify/shared': 9.8.0
+ '@intlify/core-base': 9.9.0
+ '@intlify/shared': 9.9.0
'@vue/devtools-api': 6.5.1
vue: 3.2.47
dev: false
diff --git a/src/locale/en.json b/src/locale/en.json
new file mode 100644
index 0000000..9eaddd2
--- /dev/null
+++ b/src/locale/en.json
@@ -0,0 +1,3 @@
+{
+ "app.name": "En Title"
+}
diff --git a/src/locale/index.ts b/src/locale/index.ts
new file mode 100644
index 0000000..0a85193
--- /dev/null
+++ b/src/locale/index.ts
@@ -0,0 +1,17 @@
+import { createI18n } from 'vue-i18n'
+
+import en from './en.json'
+import zh from './zh.json'
+
+const messages = {
+ en,
+ zh,
+}
+console.log(uni.getLocale())
+
+const i18n = createI18n({
+ locale: 'zh',
+ messages,
+})
+
+export default i18n
diff --git a/src/locale/zh.json b/src/locale/zh.json
new file mode 100644
index 0000000..b1ba111
--- /dev/null
+++ b/src/locale/zh.json
@@ -0,0 +1,3 @@
+{
+ "app.name": "中文标题"
+}
diff --git a/src/main.ts b/src/main.ts
index 30d9b00..51f3a4a 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -1,12 +1,13 @@
import { createSSRApp } from 'vue'
import App from './App.vue'
import store from './store'
+import i18n from './locale/index'
import 'virtual:svg-icons-register'
import 'virtual:uno.css'
export function createApp() {
const app = createSSRApp(App)
- app.use(store)
+ app.use(store).use(i18n)
return {
app,
}
diff --git a/src/pages/index/i18n.vue b/src/pages/index/i18n.vue
new file mode 100644
index 0000000..3009474
--- /dev/null
+++ b/src/pages/index/i18n.vue
@@ -0,0 +1,9 @@
+{{ $t('app.name') }}
+
+
+{
+ "style": {
+ "navigationBarTitleText": "%app.name%"
+ }
+}
+
diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue
index 12cc03d..004264d 100644
--- a/src/pages/index/index.vue
+++ b/src/pages/index/index.vue
@@ -2,8 +2,8 @@
{
style: {
- navigationStyle: 'custom',
- navigationBarTitleText: '首页',
+ // "navigationStyle": "custom",
+ navigationBarTitleText: '%app.name%',
},
}
@@ -15,6 +15,7 @@
+ {{ $t('app.name') }}
unibest
最好用的 uniapp 开发模板