diff --git a/src/App.vue b/src/App.vue
index 00ddb11..f77ecbf 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,15 +1,21 @@
-
+
diff --git a/src/components/menu/menu.js b/src/components/menu/menu.js
index 9bed16e..e0dc9b7 100644
--- a/src/components/menu/menu.js
+++ b/src/components/menu/menu.js
@@ -87,6 +87,7 @@ export default {
this.$i18n.mergeLocaleMessage(key, this.i18n[key])
})
}
+ this.$emit('i18nComplete', this.$i18n._getMessages())
},
created () {
this.updateMenu()
diff --git a/src/components/page/PageHeader.vue b/src/components/page/PageHeader.vue
index bf4a873..59d4aea 100644
--- a/src/components/page/PageHeader.vue
+++ b/src/components/page/PageHeader.vue
@@ -4,8 +4,8 @@
@@ -46,7 +46,14 @@ export default {
avatar: {
type: String,
required: false
- }
+ },
+ i18n: Object
+ },
+ created() {
+ let i18n = this.i18n
+ Object.keys(i18n).forEach(key => {
+ this.$i18n.mergeLocaleMessage(key, i18n[key])
+ })
},
computed: {
layout () {
diff --git a/src/layouts/GlobalHeader.vue b/src/layouts/GlobalHeader.vue
index 0d2f1c6..200a60e 100644
--- a/src/layouts/GlobalHeader.vue
+++ b/src/layouts/GlobalHeader.vue
@@ -8,7 +8,7 @@
@@ -23,7 +23,7 @@
-
+ setLang(value.key)" :selected-keys="[lang]" slot="overlay">
cn 简体中文
hk 繁体中文
us English
@@ -39,7 +39,7 @@ import HeaderSearch from './HeaderSearch'
import HeaderNotice from './HeaderNotice'
import HeaderAvatar from './HeaderlAvatar'
import IMenu from '../components/menu/menu'
-import {mapState} from 'vuex'
+import {mapState, mapMutations} from 'vuex'
export default {
name: 'GlobalHeader',
@@ -64,9 +64,7 @@ export default {
onSelect (obj) {
this.$emit('menuSelect', obj)
},
- changeLang(lang) {
- this.$store.commit('setting/setLang', lang.key)
- }
+ ...mapMutations('setting', ['setLang', 'setRoutesI18n'])
}
}
diff --git a/src/layouts/PageLayout.vue b/src/layouts/PageLayout.vue
index ef09922..ad5df11 100644
--- a/src/layouts/PageLayout.vue
+++ b/src/layouts/PageLayout.vue
@@ -1,10 +1,10 @@
-
+
-
{{desc}}
+
{{desc}}
{{link.title}}
@@ -21,6 +21,7 @@
diff --git a/src/layouts/PageView.vue b/src/layouts/PageView.vue
index 47df41e..0bb5d79 100644
--- a/src/layouts/PageView.vue
+++ b/src/layouts/PageView.vue
@@ -22,14 +22,24 @@ export default {
components: {PageToggleTransition, PageLayout},
data () {
return {
- title: '',
+ path: '',
desc: '',
linkList: [],
extraImage: ''
}
},
computed: {
- ...mapState('setting', ['multiPage', 'animate'])
+ title() {
+ let key = this.path.substring(1).replace(new RegExp('/', 'g'), '.') + '.name'
+ return this.$t(key)
+ },
+ ...mapState('setting', ['multiPage', 'animate', 'routesI18n'])
+ },
+ created() {
+ let i18n = this.routesI18n
+ Object.keys(i18n).forEach(key => {
+ this.$i18n.mergeLocaleMessage(key, i18n[key])
+ })
},
mounted () {
this.getPageHeaderInfo()
@@ -39,7 +49,7 @@ export default {
},
methods: {
getPageHeaderInfo () {
- this.title = this.$route.name
+ this.path = this.$route.path
const page = this.$refs.page
if (page) {
this.desc = page.desc
diff --git a/src/router/i18n.js b/src/router/i18n.js
index 8966e9e..fab8771 100644
--- a/src/router/i18n.js
+++ b/src/router/i18n.js
@@ -1,5 +1,12 @@
export default {
+ CN: {
+ home: {name: '首页'},
+ },
+ US: {
+ home: {name: 'home'},
+ },
HK: {
+ home: {name: '首頁'},
dashboard: {
name: 'Dashboard',
workplace: {name: '工作台'},
diff --git a/src/store/modules/setting.js b/src/store/modules/setting.js
index c9cea06..4f66afa 100644
--- a/src/store/modules/setting.js
+++ b/src/store/modules/setting.js
@@ -4,7 +4,8 @@ export default {
state: {
isMobile: false,
animates: require('@/config/animates'),
- ...config
+ ...config,
+ routesI18n: {}
},
mutations: {
setDevice (state, isMobile) {
@@ -36,6 +37,9 @@ export default {
},
setLang(state, lang) {
state.lang = lang
+ },
+ setRoutesI18n(state, i18n) {
+ state.routesI18n = i18n
}
}
}