当前位置: 首页 > news >正文

vue+iview+i18n国际化

首先安装i18n 和 js-cookie

npm install vue-i18n
npm install js-cookie --save

第一步:

新建src/language文件夹 和src/language/config,在language下新建文件index.js,在language/config下新建zh.js(中文) en.js(英文) 文件。


image.png

第二步:

index.js文件

import Vue from 'vue/dist/vue.min.js';
import VueI18n from 'vue-i18n/dist/vue-i18n';
import Cookies from 'js-cookie';
import iviewEN from 'iview/dist/locale/en-US';
import iviewZH from 'iview/dist/locale/zh-CN';// 存储在本地,刷新后不会丢失
const language = Cookies.get('language') || 'zh';
Cookies.set( 'language' , language )Vue.use(VueI18n)
const messages = {'zh':{...require('./config/zh.js'),...iviewZH},'en':{...require('./config/en.js'),...iviewEN}
}
const getLanguage = function () {let lang = navigator.browerLanguage?navigator.browerLanguage:navigator.language||navigator.userLanguagelang = lang?lang:'zh'if(Cookies.get('language')){lang = Cookies.get('language')}return lang
}
const i18n = new VueI18n({locale:getLanguage(),messages
})
export default i18n;

en.js 英文翻译文件

module.exports = {navbar: {English: 'English',Chinese: 'chinese',Tc: 'traditional Chinese',homepage: 'home page',personal: 'personal',logout: 'logout',language: 'language'}
}

zh.js 英文翻译文件

module.exports = {//头部navbar:{English:'英文',Chinese:'中文',Tc:'繁体',homepage:'首页',personal:'个人中心',logout:'退出登录',language:'语言'   } 
}

第三步

在main.js引入,挂载

import VueI18n from "vue-i18n"
import i18n from "./language"
Vue.use(VueI18n)//注入到所有的子组件
const app = new Vue({el: '#app',router,store,i18n,//挂载components: { App },template: '<App/>'
})

第四步 使用

<Dropdown trigger="click" @on-click="handleClickDropdown2"><a href="javascript:void(0)" style="color:#ffffff"><div class="demo-avatar">{{lang}}</div></a><DropdownMenu slot="list"><DropdownItem name="ch">{{$t('navbar.Chinese')}}</DropdownItem><DropdownItem name="en">{{$t('navbar.English')}}</DropdownItem><DropdownItem name="tw">{{$t('navbar.Tc')}}</DropdownItem></DropdownMenu></Dropdown>export default{data(){return{lang:''}},methods:{//语言选择handleClickDropdown2(name){if(name === 'ch'){this.lang="中文"this.$i18n.locale = 'zh'//这是在locale里Index.js定义的中文变量}else if(name === 'en'){this.lang="English"this.$i18n.locale = 'en'}else if(name === 'tw'){this.lang='繁體'this.$i18n.locale = 'tw'}},}
}

第五步 在js中使用

在main.js里给vue对象赋值给一个变量

window.vm=new Vue({el: '#app',router,i18n,store,components: { App },template: '<App/>'
}).$mount('#app')

在js里使用

<div class="demo-avatar">{{lang}}</div>export default{data(){return{lang:window.vm.$t('navbar.language')//使用国际化}}
}
最后编辑于:2025-06-15 10:17:27


喜欢的朋友记得点赞、收藏、关注哦!!!

http://www.dtcms.com/a/297600.html

相关文章:

  • Day 3: 机器学习进阶算法与集成学习
  • 《Uniapp-Vue 3-TS 实战开发》自定义环形进度条组件
  • Zookeeper 3.6.3【详细技术讲解】整
  • Uniapp编写微信小程序,绘制动态圆环进度条
  • Welcome to the world of Go language
  • 鸿蒙端云一体化开发之创建和操作数据库
  • 内存 管理
  • 重读《人件》Peopleware -(22)Ⅲ 适当人选 Ⅵ 乐在其中(上)
  • 微服务架构中的资源调度与负载均衡实践
  • 股指期权可以随时平仓吗?
  • OSPF之多区域
  • cha的操作
  • 每日面试题14:CMS与G1垃圾回收器的区别
  • 2025.07.25【宏基因组】|PathoScope 安装与使用指南
  • Flink 自定义类加载器和子优先类加载策略
  • 编程与数学 03-002 计算机网络 04_数据链路层功能
  • 前端-html+CSS基础到高级(一)html基础
  • centos7安装docker命令
  • Kotlin 数据容器 - List(List 概述、创建 List、List 核心特性、List 元素访问、List 遍历)
  • 论文Review Registration TEASER | TRO | MIT出品,点云配准经典BenchMark | 硬核的数学长文
  • 一文读懂 Doris 冷热分离,优化存储与查询性能
  • Java 大视界 -- Java 大数据机器学习模型在金融衍生品市场波动特征挖掘与交易策略创新中的应用(363)
  • 初识决策树-理论部分
  • [python][flask]flask静态资源
  • OSPF 路由协议多区域
  • C++中new和delete的多重面孔:operator new、new operator与placement new解析
  • Qwen-MT:翻得快,译得巧
  • 【C#学习Day12笔记】抽象类、密封类与子类构造(继承)
  • 有关于k8s中的CSI和CRI的有关知识
  • 梳理一些 Docker 常用命令