Element 組件內部默認使用中文,若但願使用其餘語言,則須要進行多語言設置。以英文爲例,在 main.js 中:javascript
// 完整引入 Element import Vue from 'vue' import ElementUI from 'element-ui' import locale from 'element-ui/lib/locale/lang/en' Vue.use(ElementUI, { locale })
或html
// 按需引入 Element import Vue from 'vue' import { Button, Select } from 'element-ui' import lang from 'element-ui/lib/locale/lang/en' import locale from 'element-ui/lib/locale' // 設置語言 locale.use(lang) // 引入組件 Vue.component(Button.name, Button) Vue.component(Select.name, Select)
若是使用其它語言,默認狀況下中文語言包依舊是被引入的,能夠使用 webpack 的 NormalModuleReplacementPlugin 替換默認語言包。vue
webpack.config.jsjava
{
plugins: [ new webpack.NormalModuleReplacementPlugin(/element-ui[\/\\]lib[\/\\]locale[\/\\]lang[\/\\]zh-CN/, 'element-ui/lib/locale/lang/en') ] }
vue-i18n@5.x
Element 兼容 vue-i18n@5.x,搭配使用能更方便地實現多語言切換。webpack
import Vue from 'vue' import VueI18n from 'vue-i18n' import Element from 'element-ui' import enLocale from 'element-ui/lib/locale/lang/en' import zhLocale from 'element-ui/lib/locale/lang/zh-CN' Vue.use(VueI18n) Vue.use(Element) Vue.config.lang = 'zh-cn' Vue.locale('zh-cn', zhLocale) Vue.locale('en', enLocale)
若是不使用 vue-i18n@5.x
,而是用其餘的 i18n 插件,Element 將沒法兼容,可是能夠自定義 Element 的 i18n 的處理方法。git
import Vue from 'vue' import Element from 'element-ui' import enLocale from 'element-ui/lib/locale/lang/en' import zhLocale from 'element-ui/lib/locale/lang/zh-CN' Vue.use(Element, { i18n: function (path, options) { // ... } })
vue-i18n@6.x
默認不支持 6.x 的 vue-i18n
,你須要手動處理。github
import Vue from 'vue' import Element from 'element-ui' import VueI18n from 'vue-i18n' import enLocale from 'element-ui/lib/locale/lang/en' import zhLocale from 'element-ui/lib/locale/lang/zh-CN' Vue.use(VueI18n) const messages = { en: { message: 'hello', ...enLocale // 或者用 Object.assign({ message: 'hello' }, enLocale) }, zh: { message: '你好', ...zhLocale // 或者用 Object.assign({ message: '你好' }, zhLocale) } } // Create VueI18n instance with options const i18n = new VueI18n({ locale: 'en', // set locale messages, // set locale messages }) Vue.use(Element, { i18n: (key, value) => i18n.t(key, value) }) new Vue({ i18n }).$mount('#app')
import Vue from 'vue' import DatePicker from 'element/lib/date-picker' import VueI18n from 'vue-i18n' import enLocale from 'element-ui/lib/locale/lang/en' import zhLocale from 'element-ui/lib/locale/lang/zh-CN' import ElementLocale from 'element-ui/lib/locale' Vue.use(VueI18n) Vue.use(DatePicker) const messages = { en: { message: 'hello', ...enLocale }, zh: { message: '你好', ...zhLocale } } // Create VueI18n instance with options const i18n = new VueI18n({ locale: 'en', // set locale messages, // set locale messages }) ElementLocale.i18n((key, value) => i18n.t(key, value))
<script src="//unpkg.com/vue"></script> <script src="//unpkg.com/element-ui"></script> <script src="//unpkg.com/element-ui/lib/umd/locale/en.js"></script> <script> ELEMENT.locale(ELEMENT.lang.en) </script>
搭配 vue-i18n
使用web
<script src="//unpkg.com/vue"></script> <script src="//unpkg.com/vue-i18n/dist/vue-i18n.js"></script> <script src="//unpkg.com/element-ui"></script> <script src="//unpkg.com/element-ui/lib/umd/locale/zh-CN.js"></script> <script src="//unpkg.com/element-ui/lib/umd/locale/en.js"></script> <script> Vue.locale('en', ELEMENT.lang.en) Vue.locale('zh-cn', ELEMENT.lang.zhCN) </script>
目前 Element 內置瞭如下語言:element-ui
若是你須要使用其餘的語言,歡迎貢獻 PR:只需在 這裏 添加一個語言配置文件便可。app