@xiaonoodles/meetfun-i18n 1.2.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,280 @@
1
+ # 故障排除指南
2
+
3
+ ## Vue2 项目报错:`export 'createI18n' was not found in 'vue-i18n'`
4
+
5
+ ### 问题描述
6
+
7
+ 在 Vue2 项目中使用 `meetfun-i18n/vue2` 时,遇到以下错误:
8
+
9
+ ```
10
+ ERROR in ./node_modules/meetfun-i18n/dist/index.esm.js
11
+ export 'createI18n' (imported as 'createI18n') was not found in 'vue-i18n'
12
+ ```
13
+
14
+ ### 原因
15
+
16
+ 这个错误说明打包工具(Webpack/uni-app)加载了 Vue3 版本的代码(`dist/index.esm.js`),而不是 Vue2 版本(`dist/vue2/index.esm.js`)。
17
+
18
+ Vue3 的 vue-i18n@9 使用 `createI18n`,而 Vue2 的 vue-i18n@8 使用 `new VueI18n()`,这导致了不兼容。
19
+
20
+ ### 解决方案
21
+
22
+ #### 方案 1:使用正确的引入路径(推荐)
23
+
24
+ 确保您的引入语句是:
25
+
26
+ ```javascript
27
+ // ✅ 正确 - Vue2 项目
28
+ import { createMeetFunI18n } from 'meetfun-i18n/vue2'
29
+
30
+ // ❌ 错误 - 这会加载 Vue3 版本
31
+ import { createMeetFunI18n } from 'meetfun-i18n'
32
+ ```
33
+
34
+ #### 方案 2:检查 package.json 中的版本
35
+
36
+ 确保安装了正确版本的依赖:
37
+
38
+ ```bash
39
+ # 检查当前版本
40
+ pnpm list vue vue-i18n
41
+
42
+ # Vue2 项目应该是:
43
+ # vue: ^2.7.x
44
+ # vue-i18n: ^8.x.x
45
+
46
+ # 如果版本不对,重新安装
47
+ pnpm remove vue vue-i18n
48
+ pnpm add vue@^2.7.0 vue-i18n@^8.0.0
49
+ ```
50
+
51
+ #### 方案 3:清除缓存并重新安装
52
+
53
+ ```bash
54
+ # 清除 node_modules
55
+ rm -rf node_modules
56
+
57
+ # 清除锁定文件(根据你的包管理器选择)
58
+ rm package-lock.json # npm
59
+ rm yarn.lock # yarn
60
+ rm pnpm-lock.yaml # pnpm
61
+
62
+ # 重新安装
63
+ pnpm install
64
+ ```
65
+
66
+ #### 方案 4:Webpack 配置别名(适用于 uni-app)
67
+
68
+ 如果上述方法都不行,可以在 `vue.config.js` 或 Webpack 配置中添加别名:
69
+
70
+ ```javascript
71
+ // vue.config.js
72
+ module.exports = {
73
+ configureWebpack: {
74
+ resolve: {
75
+ alias: {
76
+ 'meetfun-i18n/vue2': 'meetfun-i18n/vue2.js'
77
+ }
78
+ }
79
+ }
80
+ }
81
+ ```
82
+
83
+ ### 验证是否正确加载
84
+
85
+ 创建一个测试文件:
86
+
87
+ ```javascript
88
+ // test.js
89
+ import { createMeetFunI18n } from 'meetfun-i18n/vue2'
90
+ console.log('导入成功:', typeof createMeetFunI18n)
91
+ ```
92
+
93
+ 如果输出 `导入成功: function`,说明加载正确。
94
+
95
+ ---
96
+
97
+ ## 类型定义找不到
98
+
99
+ ### 问题描述
100
+
101
+ TypeScript 项目报错:找不到模块 `meetfun-i18n/vue2` 的类型定义。
102
+
103
+ ### 解决方案
104
+
105
+ #### 方案 1:确保安装了最新版本
106
+
107
+ ```bash
108
+ pnpm add meetfun-i18n@latest
109
+ ```
110
+
111
+ #### 方案 2:在 tsconfig.json 中添加类型引用
112
+
113
+ ```json
114
+ {
115
+ "compilerOptions": {
116
+ "types": ["meetfun-i18n/vue2"]
117
+ }
118
+ }
119
+ ```
120
+
121
+ #### 方案 3:手动指定类型
122
+
123
+ 在文件顶部添加:
124
+
125
+ ```typescript
126
+ /// <reference types="meetfun-i18n/vue2" />
127
+ import { createMeetFunI18n } from 'meetfun-i18n/vue2'
128
+ ```
129
+
130
+ ---
131
+
132
+ ## uni-app 编译报错
133
+
134
+ ### 问题描述
135
+
136
+ 在 uni-app 项目中编译时报错。
137
+
138
+ ### 解决方案
139
+
140
+ #### 方案 1:确保 HBuilderX 或 CLI 版本最新
141
+
142
+ ```bash
143
+ # 如果使用 CLI
144
+ npm update -g @vue/cli-service-global
145
+ ```
146
+
147
+ #### 方案 2:检查 manifest.json 配置
148
+
149
+ 确保配置了正确的 Vue 版本:
150
+
151
+ ```json
152
+ {
153
+ "vueVersion": "2" // Vue2 项目
154
+ }
155
+ ```
156
+
157
+ #### 方案 3:清除编译缓存
158
+
159
+ 在 HBuilderX 中:
160
+ 1. 运行 -> 清除缓存
161
+ 2. 重新编译
162
+
163
+ 使用 CLI:
164
+ ```bash
165
+ rm -rf unpackage
166
+ npm run dev:mp-weixin # 或其他平台
167
+ ```
168
+
169
+ ---
170
+
171
+ ## peerDependencies 警告
172
+
173
+ ### 问题描述
174
+
175
+ 安装时出现 peerDependencies 警告。
176
+
177
+ ### 解决方案
178
+
179
+ 这是正常的,因为包支持 Vue2 和 Vue3。确保您安装了正确版本的依赖即可:
180
+
181
+ **Vue2 项目:**
182
+ ```bash
183
+ pnpm add vue@^2.7.0 vue-i18n@^8.0.0
184
+ ```
185
+
186
+ **Vue3 项目:**
187
+ ```bash
188
+ pnpm add vue@^3.0.0 vue-i18n@^9.0.0
189
+ ```
190
+
191
+ ---
192
+
193
+ ## 运行时报错:`uni is not defined`
194
+
195
+ ### 问题描述
196
+
197
+ 在非 uni-app 项目中使用报错。
198
+
199
+ ### 解决方案
200
+
201
+ 本库依赖 uni-app 的 `uni` 全局对象,仅适用于 uni-app 项目。
202
+
203
+ 如果您需要在普通 Vue 项目中使用,可以:
204
+
205
+ 1. 使用原生的 vue-i18n
206
+ 2. 或者 mock `uni` 对象(不推荐)
207
+
208
+ ---
209
+
210
+ ## 构建产物体积过大
211
+
212
+ ### 问题描述
213
+
214
+ 打包后体积较大。
215
+
216
+ ### 解决方案
217
+
218
+ #### 方案 1:启用 Tree Shaking
219
+
220
+ 确保使用 ES Module 导入:
221
+
222
+ ```javascript
223
+ // ✅ 好 - 支持 Tree Shaking
224
+ import { createMeetFunI18n } from 'meetfun-i18n/vue2'
225
+
226
+ // ❌ 不好
227
+ const { createMeetFunI18n } = require('meetfun-i18n/vue2')
228
+ ```
229
+
230
+ #### 方案 2:只导入需要的功能
231
+
232
+ ```javascript
233
+ import { createMeetFunI18n, LANGUAGE_OPTIONS_CONFIGURATION } from 'meetfun-i18n/vue2'
234
+ // 而不是:import * as i18n from 'meetfun-i18n/vue2'
235
+ ```
236
+
237
+ ---
238
+
239
+ ## 其他常见问题
240
+
241
+ ### Q: 可以在 Vue2 和 Vue3 混合项目中使用吗?
242
+
243
+ A: 不建议。一个项目应该只使用一个版本的 Vue 和对应的 meetfun-i18n 版本。
244
+
245
+ ### Q: 升级到新版本后出现问题怎么办?
246
+
247
+ A:
248
+ 1. 查看 [CHANGELOG.md](./CHANGELOG.md) 了解破坏性更改
249
+ 2. 清除缓存和 node_modules
250
+ 3. 重新安装依赖
251
+
252
+ ### Q: 如何确认使用的是哪个版本?
253
+
254
+ A: 在代码中添加调试信息:
255
+
256
+ ```javascript
257
+ import { createMeetFunI18n } from 'meetfun-i18n/vue2'
258
+ console.log('meetfun-i18n version:', createMeetFunI18n.toString())
259
+ ```
260
+
261
+ ---
262
+
263
+ ## 获取帮助
264
+
265
+ 如果以上方法都无法解决问题,请:
266
+
267
+ 1. 检查 [GitHub Issues](https://github.com/meetfun/meetfun-i18n/issues)
268
+ 2. 提供以下信息创建新 Issue:
269
+ - Vue 版本
270
+ - vue-i18n 版本
271
+ - meetfun-i18n 版本
272
+ - 完整的错误信息
273
+ - 最小复现代码
274
+
275
+ ## 相关文档
276
+
277
+ - [README.md](./README.md) - 完整使用文档
278
+ - [VUE2_USAGE.md](./VUE2_USAGE.md) - Vue2 使用指南
279
+ - [MIGRATION_GUIDE.md](./MIGRATION_GUIDE.md) - 迁移指南
280
+
package/VERIFY_FIX.md ADDED
@@ -0,0 +1,272 @@
1
+ # 修复验证指南
2
+
3
+ ## 📋 问题总结
4
+
5
+ **错误信息:**
6
+ ```
7
+ ERROR in ./node_modules/meetfun-i18n/dist/index.esm.js 1029:20-30
8
+ export 'createI18n' (imported as 'createI18n') was not found in 'vue-i18n'
9
+ ```
10
+
11
+ **根本原因:**
12
+ Webpack 5 在处理 `import from 'meetfun-i18n/vue2'` 时,没有正确解析到 Vue2 版本的代码,而是加载了 Vue3 版本(`dist/index.esm.js`)。Vue3 版本使用 `createI18n`(vue-i18n@9),但您的项目安装的是 vue-i18n@8(只有 `default` 导出),因此报错。
13
+
14
+ ## ✅ 修复方案
15
+
16
+ 创建了物理的 `vue2/` 目录,确保 Webpack 能够正确解析子路径导入。
17
+
18
+ ## 🔍 验证步骤
19
+
20
+ ### 步骤 1: 重新发布包(维护者)
21
+
22
+ ```bash
23
+ # 确保已构建
24
+ pnpm build
25
+
26
+ # 发布新版本 1.2.1
27
+ npm publish
28
+ ```
29
+
30
+ ### 步骤 2: 在您的项目中更新(用户)
31
+
32
+ ```bash
33
+ # 方式 1: 更新到最新版本
34
+ pnpm update meetfun-i18n
35
+
36
+ # 方式 2: 指定版本更新
37
+ pnpm add meetfun-i18n@1.2.1
38
+
39
+ # 方式 3: 强制重新安装
40
+ pnpm remove meetfun-i18n
41
+ pnpm add meetfun-i18n@latest
42
+ ```
43
+
44
+ ### 步骤 3: 验证文件结构
45
+
46
+ 更新后,检查 `node_modules/meetfun-i18n/` 是否包含:
47
+
48
+ ```bash
49
+ ls node_modules/meetfun-i18n/vue2/
50
+
51
+ # 应该看到以下文件:
52
+ # ✅ package.json
53
+ # ✅ index.js
54
+ # ✅ index.mjs
55
+ # ✅ index.d.ts
56
+ ```
57
+
58
+ 查看 `vue2/package.json` 内容:
59
+
60
+ ```bash
61
+ cat node_modules/meetfun-i18n/vue2/package.json
62
+
63
+ # 应该显示:
64
+ {
65
+ "main": "../dist/vue2/index.js",
66
+ "module": "../dist/vue2/index.esm.js",
67
+ "types": "../dist/vue2/index.d.ts"
68
+ }
69
+ ```
70
+
71
+ ### 步骤 4: 清除缓存
72
+
73
+ ```bash
74
+ # 清除 node_modules(确保干净安装)
75
+ rm -rf node_modules
76
+ rm pnpm-lock.yaml
77
+
78
+ # 重新安装
79
+ pnpm install
80
+
81
+ # 清除构建缓存
82
+ rm -rf unpackage # uni-app 项目
83
+ rm -rf dist # 如果有
84
+ rm -rf .cache # Webpack 缓存
85
+ ```
86
+
87
+ ### 步骤 5: 验证代码
88
+
89
+ 在您的 `src/locales/index.js` 中确认引入语句:
90
+
91
+ ```javascript
92
+ // ✅ 正确的引入方式
93
+ import { createMeetFunI18n } from 'meetfun-i18n/vue2'
94
+
95
+ // ❌ 错误 - 这会加载 Vue3 版本
96
+ // import { createMeetFunI18n } from 'meetfun-i18n'
97
+ ```
98
+
99
+ ### 步骤 6: 添加调试代码
100
+
101
+ 临时添加以下代码来验证加载的版本:
102
+
103
+ ```javascript
104
+ import { createMeetFunI18n } from 'meetfun-i18n/vue2'
105
+
106
+ console.log('✅ 导入成功')
107
+ console.log('createMeetFunI18n:', typeof createMeetFunI18n)
108
+
109
+ // 创建一个测试实例
110
+ const testInstance = createMeetFunI18n(
111
+ { 'zh-Hans': {} },
112
+ {
113
+ queryLangDictHotData: async () => ({ data: {} }),
114
+ queryLangDictColdData: async () => ({ data: {} })
115
+ }
116
+ )
117
+
118
+ const i18n = testInstance.getI18n()
119
+ console.log('i18n 实例类型:', i18n.constructor.name)
120
+ console.log('是否有 t 方法:', typeof i18n.t)
121
+
122
+ // 期望输出:
123
+ // ✅ 导入成功
124
+ // createMeetFunI18n: function
125
+ // i18n 实例类型: VueI18n
126
+ // 是否有 t 方法: function
127
+ ```
128
+
129
+ ### 步骤 7: 重新编译运行
130
+
131
+ ```bash
132
+ # 重新运行开发服务器
133
+ npm run dev
134
+
135
+ # 或针对特定平台
136
+ npm run dev:mp-weixin
137
+ npm run dev:h5
138
+ ```
139
+
140
+ ## 🎯 预期结果
141
+
142
+ ### 成功标志
143
+
144
+ 1. ✅ 不再出现 `export 'createI18n' was not found` 错误
145
+ 2. ✅ 控制台输出显示 `i18n 实例类型: VueI18n`
146
+ 3. ✅ 项目正常编译和运行
147
+ 4. ✅ 翻译功能正常工作
148
+
149
+ ### 如果还是失败
150
+
151
+ 请检查以下内容:
152
+
153
+ #### 1. 确认 vue-i18n 版本
154
+
155
+ ```bash
156
+ pnpm list vue-i18n
157
+
158
+ # Vue2 项目应该显示:
159
+ # vue-i18n 8.x.x
160
+ ```
161
+
162
+ 如果不是 8.x.x,重新安装:
163
+
164
+ ```bash
165
+ pnpm remove vue-i18n
166
+ pnpm add vue-i18n@^8.0.0
167
+ ```
168
+
169
+ #### 2. 检查引入路径
170
+
171
+ 确保所有文件都使用 `/vue2`:
172
+
173
+ ```bash
174
+ # 搜索项目中的所有引入
175
+ grep -r "from 'meetfun-i18n'" src/
176
+
177
+ # 应该都是:
178
+ # from 'meetfun-i18n/vue2'
179
+ ```
180
+
181
+ #### 3. 检查 Webpack 配置
182
+
183
+ 如果项目有自定义的 `webpack.config.js` 或 `vue.config.js`,确保没有配置冲突:
184
+
185
+ ```javascript
186
+ // vue.config.js
187
+ module.exports = {
188
+ configureWebpack: {
189
+ resolve: {
190
+ // 确保这里没有关于 meetfun-i18n 的别名配置
191
+ }
192
+ }
193
+ }
194
+ ```
195
+
196
+ #### 4. 尝试直接路径
197
+
198
+ 作为临时测试,可以尝试直接引入:
199
+
200
+ ```javascript
201
+ // 测试:直接引入 dist/vue2
202
+ import { createMeetFunI18n } from 'meetfun-i18n/dist/vue2/index.esm.js'
203
+ ```
204
+
205
+ 如果这样能工作,说明是路径解析问题,请提供您的 Webpack 配置。
206
+
207
+ ## 📊 对比表
208
+
209
+ | 检查项 | Vue3 版本(错误) | Vue2 版本(正确) |
210
+ |--------|------------------|-------------------|
211
+ | **引入路径** | `meetfun-i18n` | `meetfun-i18n/vue2` |
212
+ | **加载文件** | `dist/index.esm.js` | `dist/vue2/index.esm.js` |
213
+ | **i18n 创建** | `createI18n()` | `new VueI18n()` |
214
+ | **实例类型** | `Composer` | `VueI18n` |
215
+ | **vue-i18n 版本** | 9.x | 8.x |
216
+
217
+ ## 🆘 获取帮助
218
+
219
+ 如果以上步骤都完成了还是不行,请提供以下信息:
220
+
221
+ 1. **包版本信息:**
222
+ ```bash
223
+ pnpm list meetfun-i18n vue vue-i18n
224
+ ```
225
+
226
+ 2. **文件是否存在:**
227
+ ```bash
228
+ ls -la node_modules/meetfun-i18n/vue2/
229
+ ```
230
+
231
+ 3. **引入代码:**
232
+ ```javascript
233
+ // 粘贴您的 src/locales/index.js 的引入部分
234
+ ```
235
+
236
+ 4. **完整错误信息:**
237
+ ```
238
+ // 粘贴完整的错误堆栈
239
+ ```
240
+
241
+ 5. **项目环境:**
242
+ - uni-app 版本
243
+ - 使用的打包工具(HBuilderX / CLI)
244
+ - Node.js 版本
245
+
246
+ ## 📚 相关文档
247
+
248
+ - [FIX_WEBPACK_RESOLUTION.md](./FIX_WEBPACK_RESOLUTION.md) - 技术细节
249
+ - [TROUBLESHOOTING.md](./TROUBLESHOOTING.md) - 故障排除
250
+ - [VUE2_USAGE.md](./VUE2_USAGE.md) - Vue2 使用指南
251
+
252
+ ## ✨ 成功案例
253
+
254
+ 更新到 1.2.1 后,以下场景都应该正常工作:
255
+
256
+ ```javascript
257
+ // ✅ ES Module 导入
258
+ import { createMeetFunI18n } from 'meetfun-i18n/vue2'
259
+
260
+ // ✅ CommonJS 导入
261
+ const { createMeetFunI18n } = require('meetfun-i18n/vue2')
262
+
263
+ // ✅ TypeScript 类型
264
+ import type { I18nConfig, ApiConfig } from 'meetfun-i18n/vue2'
265
+
266
+ // ✅ 动态导入
267
+ const module = await import('meetfun-i18n/vue2')
268
+
269
+ // ✅ 默认导出
270
+ import createMeetFunI18n from 'meetfun-i18n/vue2'
271
+ ```
272
+
package/VUE2_USAGE.md ADDED
@@ -0,0 +1,170 @@
1
+ # Vue2 使用指南
2
+
3
+ 本库现在同时支持 Vue2 + vue-i18n@8 和 Vue3 + vue-i18n@9。
4
+
5
+ ## 安装
6
+
7
+ ```bash
8
+ # 使用 pnpm
9
+ pnpm add meetfun-i18n
10
+
11
+ # Vue2 项目还需要安装
12
+ pnpm add vue@^2.7.0 vue-i18n@^8.0.0
13
+
14
+ # Vue3 项目需要安装
15
+ pnpm add vue@^3.0.0 vue-i18n@^9.0.0
16
+ ```
17
+
18
+ ## Vue2 使用方式
19
+
20
+ ### 1. 引入方式
21
+
22
+ Vue2 项目需要从 `meetfun-i18n/vue2` 引入:
23
+
24
+ ```javascript
25
+ // Vue2 项目
26
+ import { createMeetFunI18n } from 'meetfun-i18n/vue2'
27
+ ```
28
+
29
+ ### 2. 完整示例
30
+
31
+ ```javascript
32
+ // main.js
33
+ import Vue from 'vue'
34
+ import App from './App.vue'
35
+ import { createMeetFunI18n } from 'meetfun-i18n/vue2'
36
+
37
+ // 引入本地语言包
38
+ import zhHans from './locales/zh-Hans.json'
39
+ import zhHant from './locales/zh-Hant.json'
40
+ import en from './locales/en.json'
41
+
42
+ // 引入 API 函数
43
+ import { queryLangDictHotData, queryLangDictColdData } from './api/translate'
44
+
45
+ // 创建基础语言包
46
+ const baseMessages = {
47
+ 'zh-Hans': zhHans,
48
+ 'zh-Hant': zhHant,
49
+ en: en,
50
+ }
51
+
52
+ // 配置 API
53
+ const apiConfig = {
54
+ queryLangDictHotData,
55
+ queryLangDictColdData,
56
+ }
57
+
58
+ // 创建 i18n 实例
59
+ const i18nInstance = createMeetFunI18n(baseMessages, apiConfig, {
60
+ defaultLocale: 'zh-Hans',
61
+ defaultLangDictDomainCode: 'TALENTS',
62
+ systemCode: 'TALENTS_STUDENT',
63
+ debug: true,
64
+ onLocaleChanged: (payload) => {
65
+ console.log('语言已切换:', payload.targetLocale)
66
+ }
67
+ })
68
+
69
+ // 安装到 Vue
70
+ Vue.use(i18nInstance.getI18n())
71
+
72
+ // 挂载到 Vue 原型(可选,方便全局访问)
73
+ Vue.prototype.$i18nInstance = i18nInstance
74
+
75
+ new Vue({
76
+ i18n: i18nInstance.getI18n(),
77
+ render: h => h(App)
78
+ }).$mount('#app')
79
+ ```
80
+
81
+ ### 3. 在组件中使用
82
+
83
+ ```vue
84
+ <template>
85
+ <view>
86
+ <!-- 使用 vue-i18n 的 $t -->
87
+ <text>{{ $t('welcomeMessage') }}</text>
88
+
89
+ <!-- 使用实例的 $t -->
90
+ <text>{{ i18nInstance.$t('welcomeMessage') }}</text>
91
+
92
+ <!-- 切换语言 -->
93
+ <button @click="switchLanguage">切换语言</button>
94
+ </view>
95
+ </template>
96
+
97
+ <script>
98
+ export default {
99
+ computed: {
100
+ i18nInstance() {
101
+ return this.$i18nInstance
102
+ }
103
+ },
104
+ methods: {
105
+ switchLanguage() {
106
+ this.$i18nInstance.switchLocale('en')
107
+ }
108
+ }
109
+ }
110
+ </script>
111
+ ```
112
+
113
+ ### 4. API 函数示例
114
+
115
+ ```javascript
116
+ // api/translate.js
117
+ import request from './request'
118
+
119
+ /**
120
+ * 查询语言包热数据
121
+ */
122
+ export function queryLangDictHotData({ systemCode }) {
123
+ return request.post('/api/lang-dict/hot', { systemCode })
124
+ }
125
+
126
+ /**
127
+ * 查询语言包冷数据
128
+ */
129
+ export function queryLangDictColdData({ langDictColdDataCmdList }) {
130
+ return request.post('/api/lang-dict/cold', { langDictColdDataCmdList })
131
+ }
132
+ ```
133
+
134
+ ## Vue3 使用方式
135
+
136
+ Vue3 项目从主入口引入即可:
137
+
138
+ ```javascript
139
+ // Vue3 项目
140
+ import { createMeetFunI18n } from 'meetfun-i18n'
141
+ ```
142
+
143
+ 其他使用方式与 Vue2 相同。
144
+
145
+ ## 主要 API
146
+
147
+ 两个版本的 API 完全一致:
148
+
149
+ - `$t(key, params?)` - 翻译函数
150
+ - `switchLocale(locale)` - 切换语言
151
+ - `getCurrentLocale()` - 获取当前语言
152
+ - `fetchLangDictHotData()` - 获取热数据
153
+ - `updateI18nMessages(data, saveToCache?)` - 更新语言包
154
+ - `createI18nProxy(data, config?)` - 创建国际化代理对象
155
+ - `getI18n()` - 获取 i18n 实例
156
+
157
+ 更多 API 请参考 [USAGE_EXAMPLE.md](./USAGE_EXAMPLE.md)
158
+
159
+ ## 版本要求
160
+
161
+ - **Vue2**: Vue 2.7+ 和 vue-i18n 8.x
162
+ - **Vue3**: Vue 3.x 和 vue-i18n 9.x
163
+
164
+ ## 注意事项
165
+
166
+ 1. Vue2 和 Vue3 项目需要使用不同的引入路径
167
+ 2. 确保安装了正确版本的 `vue` 和 `vue-i18n`
168
+ 3. API 函数的实现需要根据项目的实际情况调整
169
+ 4. Vue2 版本使用的是 vue-i18n 8.x 的旧版 API(legacy mode)
170
+