# 国际化

HUI 的所有组件文案默认使用的是中文,通过设置可以使用其它语言,以英文为例,在 main.js 中:

# 在 Webpack 中使用

完整引入h_ui

import Vue from 'vue';
import hui from 'h_ui';
import locale from 'h_ui/dist/locale/en-US';

Vue.use(hui, { locale });

按需引入h_ui

// 按需引入 h_ui
import Vue from 'vue';
import { Input,Select } from 'h_ui';
import locale from 'h_ui/src/locale'
import lang from 'h_ui/dist/locale/en-US';

// 设置语言
locale.use(lang)

Vue.component('Input', Input);
Vue.component('hSelect',Select)
Vue.component('hOption',Select.Option)
Vue.component('hOptionGroup',Select.OptionGroup)

# 兼容 vue-i18n

HUI 兼容 vue-i18n (opens new window),搭配使用能更方便地实现多语言切换。

兼容vue-i18n@6.x+

import Vue from 'vue';
import VueI18n from 'vue-i18n';
import hui from 'h_ui';
import zhLocale from 'h_ui/dist/locale/zh-CN';
import enLocale from 'h_ui/dist/locale/en-US';

Vue.use(VueI18n);
Vue.use(h_ui);
Vue.locale = () => {};

const messages = {
    en: Object.assign({ message: 'hello' }, en),
    zh: Object.assign({ message: '你好' }, zh)
};

// 创建VueI18n选项实例
const i18n = new VueI18n({
    locale: 'en',  //设置locale
    messages  // 设置 locale messages
});

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

兼容vue-i18n@5.x

import Vue from 'vue';
import VueI18n from 'vue-i18n';
import hui from 'h_ui';
import zhLocale from 'h_ui/dist/locale/zh-CN';
import enLocale from 'h_ui/dist/locale/en-US';

Vue.use(VueI18n);
Vue.use(h_ui);

Vue.config.lang = 'en-US';
Vue.locale('en-US', en);
Vue.locale('zh-CN', zh);

TIP

使用 vue-i18n 时,也可以按需引入 h_ui 组件,用法与上面的示例类似。

# 通过 CDN 使用

<!-- 引入Vue -->
<script src="//vuejs.org/js/vue.min.js"></script>
<link rel="stylesheet" href="h_ui/dist/h_ui.min.css">
<script src="h_ui/dist/h_ui.min.js"></script>
<script src="h_ui/dist/locale/en-US.js"></script>

<script>
    hui.lang('en-US');
</script>

结合 vue-i18n 使用

<!-- 引入Vue -->
<script src="//vuejs.org/js/vue.min.js"></script>
<link rel="stylesheet" href="h_ui/dist/h_ui.min.css">
<script src="h_ui/dist/h_ui.min.js"></script>
<script src="h_ui/dist/locale/en-US.js"></script>
<script src="h_ui/dist/locale/zh-US.js"></script>

<script>
    // you need to add Polyfill if your browser doesn't support ES2015
    Vue.locale = () => {};
    const messages = {
        en: Object.assign({ message: 'hello' }, iview.langs['en-US']),
        zh: Object.assign({ message: '你好' }, iview.langs['zh-CN'])
    };

    const i18n = new VueI18n({
        locale: 'en', // set locale
        messages // set locale messages
    })

    new Vue({
        el: '#app',
        i18n: i18n
    })
</script>

# 支持的语言

HUI 目前已支持以下语言:

  • 简体中文( zh-CN )
  • 繁体中文( zh-TW )
  • 英文( en-US )

欢迎贡献代码,以支持更多语言:查看 (opens new window)