1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| const { createI18n, useI18n } = VueI18n;
| // 通过选项创建 VueI18n 实例
| const i18n = createI18n({
| locale: localStorage.getItem('changjiang-park-lang') || 'zh-cn',
| messages,
| fallbackLocale: 'zh-cn',
| legacy: false,
| })
| const sharedMixin = {
| data() {
| return {
| languageList: [
| { id: 1, name_loc: '简体中文', symbol: 'zh-cn' },
| { id: 2, name_loc: 'English', symbol: 'en-us' },
| // { id: 3, name_loc: 'ar', symbol: 'ar' },
| ],
| currentLang: '',
| i18n: i18n.global, // 引入i18n实例
| }
| },
|
| // 生命周期 - 创建完成(可以访问当前this实例)
| mounted() {
| },
|
| // 创建生命周期
| created() {
| this.currentLang = this.i18n.locale || 'zh-cn';
| },
|
| // 方法
| methods: {
| ///// 切换语言 /////
| changeLanguage(newLang) {
| this.i18n.locale = newLang;
| this.i18n.currentLocale = newLang;
| localStorage.setItem('changjiang-park-lang', newLang);
| },
| }
| }
|
|