vue 中使用 国际化(i18n)

效果图

第一步

  • 安装插件
  • npm install vue-i18n --save
  • 打开package.json 文件查看 vue-i18n

第二步

  • 在assets文件下新建文件夹language
  • 包含 index.js,language-CN.js, language.EN.js 三个文件

第三步 - 编写代码

  • index.js 文件如下
import Vue from 'vue';
import VueI18n from 'vue-i18n';
import enLocale from './language-EN'
import usLocal from './language-CN'
Vue.use(VueI18n);
const messages = {
    en: {
        ...enLocale
    },
    cn: {
        ...usLocal
    }
}
const i18n = new VueI18n({
    locale: localStorage.getItem('lang') || 'cn',
    messages,
});

export default i18n;
  • language-cn.js 代码如下
export default {
    message: {
        'hello': '你好 世界',
        'desc': 'Ant Design 是西湖区最具影响力的 Web 设计规范',
        'loginAccount': '账户密码登录',
        'loginByPhone': '手机号登录',
        'account': '账户',
        'password': '密码',
        'autoLofin': '自动登录',
        'forgetPassword': '忘记密码',
        'loginBtn': '登录',
        'otherLoginWay': '其他方式登录',
        'register': '注册',
        'help': '帮助',
        'privacy': '隐私',
        'clause': '条款',
        'phone': '手机号',
        'code': '验证码',
        'getCode': '获取验证码',
    }
};
  • language-en.js 代码如下

export default {
    message: {
        'hello': 'hello world',
        'desc': 'Ant Design is the most influential web design specification in Xihu district',
        'loginAccount': 'Credentials',
        'loginByPhone': 'Mobile number',
        'account': 'Account',
        'password': 'password',
        'autoLofin': 'Remember me',
        'forgetPassword': 'Forgot your password?',
        'loginBtn': 'Login',
        'otherLoginWay': 'Sign in with',
        'register': 'Sign up',
        'help': 'help',
        'privacy': 'privacy',
        'clause': 'clause',
        'phone': 'Mobile Number',
        'code': 'Verification code',
        'getCode': 'Get code',
    }
}

第四步

  • 在main.js 中使用
import i18n from './assets/language/index';
new Vue({
    router,
    i18n,
    render: h => h(App),
}).$mount('#app')

第五步 - 在页面中使用

// 文本描述
{{$t('message.desc')}}

// 输入框默认填充字符
:placeholder="$t('message.phone')"

本文只是简述使用方法(登录页面的内容),没有对所有页面进行结构划分,

posted @ 2021-07-26 20:39  可乐雪碧芬达  阅读(2994)  评论(0编辑  收藏  举报