vue+iView国际化翻译

国际化翻译

1.安装vue-i18n库

cnpm install vue vue-i18n --save

2.新建language文件夹,先将index.js创建,并且创建zh和en两个包分别放项目中英文的json文件,再使用en-US.js和zh-CN.js将各自的分类好的语言集合起来
在这里插入图片描述

3.json文件

//英文
{
    "用户管理":"User management",
    "账号信息":	"Account Info",
    "企业认证":	"Certification"
 }
 
 //中文
 {
    "用户管理":"用户",
    "账号信息":	"账号信息",
    "企业认证":	"企业认证"
 }

4.整合语言包 en-Us.js和zh-CN.js的代码

import dataStatistics from './zh/dataStatistics.json';
import home from './zh/home.json';
const zh = Object.assign(dataStatistics,home);
export default zh;

5.index.js代码

import Vue from 'vue';
import VueI18n from 'vue-i18n';

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

/**
 * 导入iview通用语言包
 */
import en from 'iview/dist/locale/en-US';
import zh from 'iview/dist/locale/zh-CN';

/**
 * 导入自己整理的 Json语言包
 */
import app_zh from './zh-CN';
import app_en from './en-US';

/**
 * 多语言配置  
 * 整合iview和自己整理的语言包
//  */
const messages = {
    en: Object.assign(app_en, en),
    zh: Object.assign(app_zh, zh)
};

// 自动设置语言
//获取本机系统语言
const navLang = navigator.language;  

const localLang = navLang === 'zh' || navLang === 'en' ? navLang : false;

const lang = window.localStorage.getItem('language') || localLang || 'zh';

//导出
export default new VueI18n({
    locale: lang,  // set locale
    messages  // set locale messages
});

6.在main.js里倒入语言包

import iView from 'iview'
import i18n from "./language" //整理好的国际化语言包

Vue.use(iView,{
    i18n:(key,value)=>i18n.t(key,value), //记得添加,不然在会导致组件报错
});

//挂载在vue上
new Vue({
	el: '#app',
    i18n,
	components: {
		App
	},
	template: '<App/>'
})
  1. 在界面中使用
//在html中
<label class="left-title" for="appPublickKey">{{$t('嘻嘻嘻)}}</label>

//在js中
this.$t('嘻嘻');

//如果使用了iview框架的弹出框,弹出框里的组件拿不到$t的属性,所以需要将该方法传给子级
//父级点击弹出框
this.$Modal.confirm({
    render: h => {
        return h(keyModel, {
            props: {
                title: 'App Secret',
                content: val,
                $t:_this.$t    //一定要传
            },
        })
    }
})

//子级接受该属性,然后就可以正常使用了
      props: {
            $t:{
                type:Function
            }
        },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值