致力于提供有竞争力的软件解决方案和服务,德尚网络欢迎您!
技术/产品咨询
技术/产品咨询
    • - 微信扫一扫 -

      QQ:181814630

      电话:15116362044

DSO2O演示
DSMall演示
DS多平台演示
  • DSPlatform(多平台系统)演示地址及账号
    支持普通店铺,外卖店铺,上门家政,上门服务,视频教育等,Thinkphp8.0+uniapp+mysql+Vue3,拓展性强,商户可开多个不同类型店铺,
    演示角色 演示地址 账号 密码
    后台PC端 点击进入 test 123456
    商户PC端(可开多个店铺) 点击进入 seller 123456
    店铺管理PC端 点击进入 seller 123456
    手机端 点击进入 test 123456
    骑手端 点击进入 test 123456
    师傅端 点击进入 test 123456
    短视频 点击进入 test 123456
    DSPlatform(多平台系统)uniapp移动端二维码演示地址
    • 用户端

    • 机构端

vue-i18n 多语言切换功能

1.安装vue-i18n    

npm install vue-i18n

可参考vue-i18n官网文档:http://kazupon.github.io/vue-i18n/


2.main.js中引入:

import Vue from 'vue'

import VueI18n from 'vue-i18n'

Vue.use(VueI18n)

const i18n = new VueI18n({
  locale: localStorage.getItem('locale') || 'zh-CN', // 通过切换locale的值来实现语言切换,this.$i18n.locale
  messages: {
    'zh-CN': require('./lang/zh'), // 中文语言包
    'en-US': require('./lang/en') // 英文语言包
  }
})
new Vue({
  el: '#app',
  i18n, //新增
  router,
  store,
  components: { App },
  template: ''
})


3.新增语言包

lang/zh.js

export const lang = {
  menu: [
    {name: '首页', path: ''},
    {name: '商品分类', path: ''},
    {name: '促销中心', path: ''},
    {name: '用户中心', path: ''},
    {name: '文章公告', path: ''}
  ],
  login: '登录',
  register: '注册',
  logout: '退出'
}


lang/en.js

export const lang = {
  menu: [
    {name: 'HomePage', path: ''},
    {name: 'HomeCategory', path: ''},
    {name: 'HomePro', path: ''},
    {name: 'HomeUser', path: ''},
    {name: 'HomeArticle', path: ''}
  ],
  login: 'login',
  register: 'register',
  logout: 'logout'
}


4.语言切换

this.$i18n.locale = 'en-US'// 切换成英文
this.$i18n.locale = 'zh-CN'// 切换成中文

实用中可以参考以下方法进行改进

@click="changeLang"

changeLang() {
       this.lang = localStorage.getItem('locale') || 'zh-CN';
       
       if ( this.lang === 'zh-CN' ) {
          this.lang = 'en-US';
          this.$i18n.locale = this.lang;
       } else {
          this.lang = 'zh-CN';
          this.$i18n.locale = this.lang;
       }
       localStorage.setItem('locale', this.lang);
    },


4.具体呈现


{{ $t('lang.welcome') }}

:title="$t('lang.new_arrivals')"

v-for="(item,index) in $t('lang.menu')"


例:




有不清楚请咨询客服

上一篇:DSMall Vue3.0安装

下一篇:暂时没有了