diff --git a/package.json b/package.json index c2dcedb..9a711e8 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "mavon-editor": "^2.6.17", "vue": "^2.5.21", "vue-cropperjs": "^3.0.0", + "vue-i18n": "^8.10.0", "vue-quill-editor": "^3.0.6", "vue-router": "^3.0.1", "vue-schart": "^1.0.0", diff --git a/src/components/common/Sidebar.vue b/src/components/common/Sidebar.vue index dadb2fc..713e95a 100644 --- a/src/components/common/Sidebar.vue +++ b/src/components/common/Sidebar.vue @@ -107,6 +107,11 @@ } ] }, + { + icon: 'el-icon-lx-global', + index: 'i18n', + title: '国际化功能' + }, { icon: 'el-icon-lx-warn', index: '7', diff --git a/src/components/common/i18n.js b/src/components/common/i18n.js new file mode 100644 index 0000000..299d2da --- /dev/null +++ b/src/components/common/i18n.js @@ -0,0 +1,30 @@ +export const messages = { + 'zh': { + i18n: { + breadcrumb: '国际化产品', + tips: '通过切换语言按钮,来改变当前内容的语言。', + btn: '切换英文', + title1: '常用用法', + p1: '要是你把你的秘密告诉了风,那就别怪风把它带给树。', + p2: '没有什么比信念更能支撑我们度过艰难的时光了。', + p3: '只要能把自己的事做好,并让自己快乐,你就领先于大多数人了。', + title2: '组件插值', + info: 'Element组件需要国际化,请参考 {action}。', + value: '文档' + } + }, + 'en': { + i18n: { + breadcrumb: 'International Products', + tips: 'Click on the button to change the current language. ', + btn: 'Switch Chinese', + title1: 'Common usage', + p1: "If you reveal your secrets to the wind you should not blame the wind for revealing them to the trees.", + p2: "Nothing can help us endure dark times better than our faith. ", + p3: "If you can do what you do best and be happy, you're further along in life than most people.", + title2: 'Component interpolation', + info: 'The default language of Element is Chinese. If you wish to use another language, please refer to the {action}.', + value: 'documentation' + } + } +} \ No newline at end of file diff --git a/src/components/page/I18n.vue b/src/components/page/I18n.vue new file mode 100644 index 0000000..ddb24f6 --- /dev/null +++ b/src/components/page/I18n.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/src/main.js b/src/main.js index 71f7fc4..0d782fb 100644 --- a/src/main.js +++ b/src/main.js @@ -3,6 +3,8 @@ import App from './App.vue' import router from './router' import axios from 'axios'; import ElementUI from 'element-ui'; +import VueI18n from 'vue-i18n'; +import { messages } from './components/common/i18n'; import 'element-ui/lib/theme-chalk/index.css'; // 默认主题 // import '../static/css/theme-green/index.css'; // 浅绿色主题 import './assets/css/icon.css'; @@ -10,11 +12,17 @@ import './components/common/directives'; import "babel-polyfill"; Vue.config.productionTip = false +Vue.use(VueI18n); Vue.use(ElementUI, { size: 'small' }); Vue.prototype.$axios = axios; +const i18n = new VueI18n({ + locale: 'zh', + messages +}) + //使用钩子函数对路由进行权限跳转 router.beforeEach((to, from, next) => { const role = localStorage.getItem('ms_username'); @@ -38,5 +46,6 @@ router.beforeEach((to, from, next) => { new Vue({ router, + i18n, render: h => h(App) }).$mount('#app') \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index 6db7263..c2f8454 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -75,6 +75,12 @@ export default new Router({ component: resolve => require(['../components/page/DragDialog.vue'], resolve), meta: { title: '拖拽弹框' } }, + { + // 国际化组件 + path: '/i18n', + component: resolve => require(['../components/page/I18n.vue'], resolve), + meta: { title: '国际化' } + }, { // 权限页面 path: '/permission',