# Internationalization

Element UI X provides a fully compatible internationalization solution with Element UI, supporting [email protected], [email protected]+ and other i18n plugins.

# Supported Languages

  • Simplified Chinese (zh-CN)
  • Traditional Chinese (zh-TW)
  • English (en)
  • Japanese (ja-JP)
  • Korean (ko-KR)
  • French (fr-FR)
  • German (de-DE)
  • Spanish (es-ES)
  • Russian (ru-RU)
  • Portuguese (pt-BR)
  • Italian (it-IT)
  • Arabic (ar-SA)
  • French (fr-FR)
  • German (de-DE)
  • Spanish (es-ES)
  • Russian (ru-RU)
  • Portuguese (pt-BR)
  • Italian (it-IT)
  • Arabic (ar-SA)
  • Traditional Chinese (zh-TW)

# Usage

# 1. Full Import + Default Language Setting

import Vue from 'vue';
import ElementUIX from 'vue-element-ui-x';
import enLang from 'vue-element-ui-x/lib/locale/lang/en';

Vue.use(ElementUIX, { locale: enLang });

// Other language examples
import jaLang from 'vue-element-ui-x/lib/locale/lang/ja';
import frLang from 'vue-element-ui-x/lib/locale/lang/fr';
import deLang from 'vue-element-ui-x/lib/locale/lang/de';

// Vue.use(ElementUIX, { locale: jaLang }); // Japanese
// Vue.use(ElementUIX, { locale: frLang }); // French
// Vue.use(ElementUIX, { locale: deLang }); // German

# 2. On-demand Import + Manual Language Setting

import Vue from 'vue';
import { ElXThinking, ElXSender, locale } from 'vue-element-ui-x';
import enLang from 'vue-element-ui-x/lib/locale/lang/en';

// Set language
locale.use(enLang);

// Register components
Vue.component(ElXThinking.name, ElXThinking);
Vue.component(ElXSender.name, ElXSender);

# 3. Compatible with [email protected]

import Vue from 'vue';
import VueI18n from 'vue-i18n';
import ElementUIX, { locale } from 'vue-element-ui-x';

Vue.use(VueI18n);
Vue.use(ElementUIX);

// Configure [email protected]
Vue.config.lang = 'en';
Vue.locale('en', {
  // Your application translations
  message: 'Hello',
  // Element UI X translations
  ...locale.lang.en,
});
Vue.locale('zh-cn', {
  // Your application translations
  message: '你好',
  // Element UI X translations
  ...locale.lang['zh-CN'],
});

# 4. Compatible with [email protected]+

import Vue from 'vue';
import VueI18n from 'vue-i18n';
import ElementUIX, { locale } from 'vue-element-ui-x';

Vue.use(VueI18n);

const i18n = new VueI18n({
  locale: 'en',
  messages: {
    en: {
      message: 'Hello',
      ...locale.lang.en,
    },
    'zh-CN': {
      message: '你好',
      ...locale.lang['zh-CN'],
    },
  },
});

// Configure Element UI X to use vue-i18n
locale.i18n((key, value) => i18n.t(key, value));

Vue.use(ElementUIX);

new Vue({
  i18n,
  // ...
}).$mount('#app');

# 5. Compatible with Other i18n Plugins

import Vue from 'vue';
import ElementUIX, { locale } from 'vue-element-ui-x';
import myI18n from 'my-i18n-plugin';

// Configure custom translation function
locale.i18n((key, value) => {
  // Your custom translation logic
  return myI18n.translate(key, value);
});

Vue.use(ElementUIX);