From a8ed14aed25f6b18a5609b8b9eb1474a0e7ba18a Mon Sep 17 00:00:00 2001 From: "qingwei.li" Date: Sun, 6 Nov 2016 20:15:25 +0800 Subject: [PATCH] Locale: fallbaack default config --- .babelrc | 2 +- build/bin/build-entry.js | 1 + package.json | 1 + src/index.js | 1 + src/locale/index.js | 6 ++++++ 5 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.babelrc b/.babelrc index 508840fbd..bdb1a6b4d 100644 --- a/.babelrc +++ b/.babelrc @@ -7,7 +7,7 @@ ["module-resolver", { "root": ["element-ui"], "alias": { - "element-ui/src/locale": "element-ui/lib/locale" + "element-ui/src": "element-ui/lib" } }] ] diff --git a/build/bin/build-entry.js b/build/bin/build-entry.js index 45b9d5830..ad6d0d3a8 100644 --- a/build/bin/build-entry.js +++ b/build/bin/build-entry.js @@ -36,6 +36,7 @@ if (typeof window !== 'undefined' && window.Vue) { module.exports = { version: '{{version}}', + locale, install, {{list}} }; diff --git a/package.json b/package.json index 01c83cd5b..4f0aeb790 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ }, "dependencies": { "async-validator": "^1.6.6", + "deepmerge": "^1.2.0", "throttle-debounce": "^1.0.1", "vue-popup": "^0.2.9", "wind-dom": "0.0.3" diff --git a/src/index.js b/src/index.js index b49beae48..af42baca7 100644 --- a/src/index.js +++ b/src/index.js @@ -131,6 +131,7 @@ if (typeof window !== 'undefined' && window.Vue) { module.exports = { version: '1.0.0-rc.8', + locale, install, Pagination, Dialog, diff --git a/src/locale/index.js b/src/locale/index.js index 06b8a5e39..3cd640e5b 100644 --- a/src/locale/index.js +++ b/src/locale/index.js @@ -1,13 +1,19 @@ import defaultLang from 'element-ui/src/locale/lang/zh-cn'; import Vue from 'vue'; +import deepmerge from 'deepmerge'; import Format from './format'; const format = Format(Vue); let lang = defaultLang; +let merged = false; export const $t = function(path, options) { const vuei18n = Object.getPrototypeOf(this || Vue).$t; if (typeof vuei18n === 'function') { + if (!merged) { + merged = true; + Vue.locale(Vue.config.lang, deepmerge(lang, Vue.locale(Vue.config.lang), { clone: true })); + } return vuei18n.apply(this, [path, options]); } const array = path.split('.');