中英文切换~~防止以后用

首先先介绍一下想要的功能,就是页面英文和简体中文的切换,就像现在这样.但是最终决定是发布上线后在开发这个功能,为了不影响现在的项目,所以我选择自建了一个项目来专门做这个功能。。。

 

首先先下载依赖,因为是自己一手做的项目,所以对于node版本一般都是用的比较高的版本,所以直接下载i18n的依赖:-----------  npm install vue-i18n@6

然后项目配置,首先是main.js的

import i18n from "./language/index";  //引入i18n

new Vue({

  i18n,

  render: h => h(App),

}).$mount('#app')  //挂载

很多人好奇我这个为什么写的这么简单,因为我也是第一次做,然后也是照着网上的方法做的,在新建文件下定义汉化版和英化包的

然后新建一个文件夹,只要等会找到就好,没有什么强制要求,然后在新建三个js文件,没有强制命名。我的分别是index.js(配置文件),en.js(英化包),zh.js(汉化包),如下图:

下面来着重介绍一下index.js配置文件:

import Vue from 'vue'  //引入vue

import locale from 'element-ui/lib/locale' //引入elemUI中的locale实现切换

import VueI18n from 'vue-i18n'   //引入i18n

// 引入各个语言配置文件

import en from './en'  //英化

import ch from './zh'  //汉化版

Vue.use(VueI18n)  //vue内使用i18n

// 创建vue-i18n实例i18n

const i18n = new VueI18n({

  // 设置默认语言

  locale: localStorage.getItem('locale') || 'en', // 语言标识  默认使用en(英化)

  // 添加多语言(每一个语言标示对应一个语言文件)

  messages: {

    en,

    ch

  }

})

locale.i18n((key, value) => i18n.t(key, value)) //重点:为了实现element插件的多语言切换

// 暴露i18n

export default i18n

下面的话就是要定义的数据了,我这边随便定义的,只是为了学习,大家可以看看

//zh.js 汉化

// Element中文样式

import zhLocale from 'element-ui/lib/locale/lang/zh-CN'

const ch = {

    // 登录页

    login: {

        username: '账号',

        password: '密码',

        title: '访客系统管理端',

        signIn: '登录',

        userTip: '请填写账号名称',

        passTip: '请填写密码',

    },

    ...zhLocale

}

export default ch

//英文  en

// Element英文样式

import enLocale from 'element-ui/lib/locale/lang/en'

const en = {

  // 登录页

  login: {

    username: 'Username',

    password: 'Password',

    title: 'Visitor Booking Portal',

    login: 'Sign in',

    userTip: 'Please enter username',

    passTip: 'Please enter password',

  },

    ...enLocale

}

export default en

最重要的使用来了,小本本记好,全是干货~~~

因为我是为了学习,所以比较简略,大家见笑了

这个是我们在英化内定义的

 login: {

    username: 'Username',

    password: 'Password',

    title: 'Visitor Booking Portal',

    login: 'Sign in',

    userTip: 'Please enter username',

    passTip: 'Please enter password',

  },

所以现在打印出来了,效果先给你们,看看是否需要

在页面内使用:转发其他博主的

 

转发其他博主的....因为beautiful

我的是这样使用的::

我的是这样的,我喜欢直接CV代码,抱歉,确实不美观

   <span>{{ $t("login.username") }}</span>

$t的话是element ui支持的一种方法,具体什么我也不知道会什么要用这个,作为一名CV工程师需要知道那么多干嘛~~~~

切换的话用的比较简单,仅仅是一个效果而已.

 <el-button type="primary" @click="huan">换</el-button>

    huan(){

      console.log('loo',this.$i18n.locale)  //查看当前是什么语言

      if(this.$i18n.locale=='en'){   //如果是英的话

        this.$i18n.locale='ch'    //点击按钮让它换汉

      }else{  //如果是汉的话

        this.$i18n.locale='en' //变英

      }

    }

好了,时间到了,要去摸鱼了,有什么好的功能会更新,增删改查肯定不更新...

发现好多都是页面和路由一起中英文的,所以现在来更新了。。。。

前面说的是页面更新,现在来补充路由

在页面渲染的字段写好定义的变量名

login就是哪个对象,ddgl变量的首字母

然后在页面渲染的地方$t('.menuname'),这样就ok了...

用了好几个github上的项目亲测了一下才敢发出来,用到自己的项目里面,老板也不给涨工资🐕

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值