位置: IT常识 - 正文

Vue 国际化之 vue-i18n 的使用(vue国际化占位符)

编辑:rootadmin
Vue 国际化之 vue-i18n 的使用

目录

一、安装

二、使用

1、准备语言包

2、准备翻译的语言环境

3、实现语言翻译

三、整合 ElementUI 语言包

1、扩展中文

2、扩展英文 

3、使用扩展语言翻译

四、问题记录

五、扩展

vue3 中使用 vue-i18n


一、安装npm install vue-i18n

推荐整理分享Vue 国际化之 vue-i18n 的使用(vue国际化占位符),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue项目国际化,vue 国际化方案,vue gui,ant design vue 国际化,vue国际化解决方案,vue i18n国际化,vue i18n国际化,vue 国际化方案,内容如对您有帮助,希望把文章链接给更多的朋友!

如果在一个模块系统中使用它,你必须通过 Vue.use() 明确地安装 vue-i18n: 

import Vue from 'vue'import VueI18n from 'vue-i18n'Vue.use(VueI18n)二、使用

在 src 下创建 lang 文件夹。

1、准备语言包

本例我准备了两种语言包,分别是中文和英文:zn、en。在 lang 下创建两个文件,zn.js 和 en.js。

// zn.jsexport default { main:{ message:"消息", display:"展示" }};// en.jsexport default { main:{ message:"message", display:"display" }}2、准备翻译的语言环境

在 lang 下创建 index.js,使用如上的两种语言包。

import Vue from "vue";import VueI18n from 'vue-i18n'import zn from "./zn"import en from "./en"Vue.use(VueI18n); // 全局注册国际化包// 准备翻译的语言环境信息const i18n = new VueI18n({ locale: "zn", // 初始化中文 messages: { "zn":zn, "en":en }}); export default i18n3、实现语言翻译

在 main.js 中将 i18n 注入 vue 中

import i18n from './lang'new Vue({ el: '#app', router, store, i18n, // 注入,不能缺少 components: { App }, template: '<App/>'})

使用方式

(1)直接使用

<template> <div style="width: 100%;"> <div> <div> <span>{{$t('main.message')}}</span> </div> </div> </div></template>

(2) 语言切换

<template> <div style="width: 100%;"> <div> <div> <span>{{$t('main.message')}}</span> <button @click="changeLang">切换语言</button> </div> </div> </div></template><script>export default { methods: { changeLang() { if(this.$i18n.locale === 'zn'){ // 判断当前语言 this.$i18n.locale = 'en' // 设置当前语言 } else { this.$i18n.locale = 'zn' } } }}</script>

(3)data 变量翻译

假如页面某个名称绑定了 data 中变量,即可能存在多个值,此时又该如何进行语言翻译?

Vue 国际化之 vue-i18n 的使用(vue国际化占位符)

如下,“msg”存在多个取值,我们希望在切换“msg”值同时根据当前语言环境进行翻译。

<template> <div style="width: 100%;"> <div> <div> <span>{{$t('main.message')}}</span> <button @click="changeLang">切换语言</button> </div> <p>{{msg}}</p> <button @click="changeWord">切换msg值</button> </div> </div></template><script>export default { data() { return { msg:'message' } }, methods: { changeLang() { if(this.$i18n.locale === 'zn'){ // 判断当前语言 this.$i18n.locale = 'en' // 设置当前语言 } else { this.$i18n.locale = 'zn' } }, changeWord() { if(this.msg === 'message'){ this.msg = 'display' } else { this.msg = 'message' } }, }}</script>

首先,明确“msg”的取值有两个,分别为“message”、“display”,此时确保语言包中都存在这两个词与对应的翻译值。

其次,在组件中不能直接 $t('main.message') 使用,该种方式确定了翻译对象,而“msg”的翻译对象不确定,有可能是“message”、“display”甚至更多,于是,我使用了模板字符串,实现了值动态变化自动翻译的效果。

<p>{{$t(`main.${msg}`)}}</p>// 当 msg 为 "message" 时,为 $t('main.message')// 当 msg 为 "display" 时,为 $t('main.display')

Tips:在使用的过程中,出现了报错情况,将在第四点记录。

三、整合 ElementUI 语言包

我们可以整合 ElementUI 中存在的语言包。

1、扩展中文// zn.jsimport zhLocale from 'element-ui/lib/locale/lang/zh-CN' //引入element语言包export default { main:{ message:"消息", display:"展示" }, ...zhLocale};2、扩展英文 // en.jsimport enLocale from 'element-ui/lib/locale/lang/en' //引入element语言包export default { main:{ message:"message", display:"display" }, ...enLocale}3、使用扩展语言翻译

根据上图(语言包)取可翻译字段。 

<p>{{$t('el.colorpicker.confirm')}}</p>// 中文“确定”,英文“OK”四、问题记录

在使用过程中,中间有如下报错信息。

报错的原因主要是因为当前使用的版本不匹配,解决方案入下。

npm install vue-i18n@8五、扩展vue3 中使用 vue-i18n

vue-i18n 在 vue3 中使用方式与 vue2 有些差异。

1、安装

npm install vue-i18n@next -S

2、准备语言环境

import { createI18n } from 'vue-i18n'; // 与vue2的VueI18n使用方式不同import zn from './zn';import en from './en';const i18n = createI18n({ locale: 'zn', messages: { 'zn': zn, 'en': en }});export default i18n;

3、实现语言翻译

// main.js 引入import i18n from './lang';App.use(i18n);// vue3使用方式import { useI18n } from 'vue-i18n';setup() { const { locale } = useI18n(); // 通过locale.value切换 const changeLang = (val) =>{ locale.value = val.value; } return { changeLang } }// 在标签中使用 通过 $t() 或者 t()<p>{{ $t('main.message') }}</p><p>{{ t('main.message') }}</p>
本文链接地址:https://www.jiuchutong.com/zhishi/300222.html 转载请保留说明!

上一篇:《网络安全入门到精通》- 3.1 - 数据库 - MySQL数据库(《网络安全从入门到精通》)

下一篇:解决在vue3中使用reactive响应式,赋值后造成页面不改变的问题?(vue3 $bus)

  • 怎样从消费数据看SEM账户的优化情况?(消费数据如何赚钱)

    怎样从消费数据看SEM账户的优化情况?(消费数据如何赚钱)

  • oppor15语音唤醒功能在哪里(0pp0r15语音唤醒在哪)

    oppor15语音唤醒功能在哪里(0pp0r15语音唤醒在哪)

  • 魅族 18 Pro的快充是多少W的(魅族18 pro操作)

    魅族 18 Pro的快充是多少W的(魅族18 pro操作)

  • 苹果11慢动作在哪(苹果慢动作在哪里加)

    苹果11慢动作在哪(苹果慢动作在哪里加)

  • OPPO手机设置里面有个google(oppo手机设置里的存储在哪)

    OPPO手机设置里面有个google(oppo手机设置里的存储在哪)

  • 微信视频老是通话中断

    微信视频老是通话中断

  • QQ自动回复在哪里设置(QQ自动回复在哪儿)

    QQ自动回复在哪里设置(QQ自动回复在哪儿)

  • 电信卡只能电信手机吗(电信卡只能电信卡用吗)

    电信卡只能电信手机吗(电信卡只能电信卡用吗)

  • 快手退款成功几天到账(快手退款成功几天能到账)

    快手退款成功几天到账(快手退款成功几天能到账)

  • 打印机不通电了是哪里的原因(惠普打印机打印不出来是什么原因)

    打印机不通电了是哪里的原因(惠普打印机打印不出来是什么原因)

  • 拼小圈怎么退出圈子(拼小圈怎样退出来)

    拼小圈怎么退出圈子(拼小圈怎样退出来)

  • e1230v2最高配什么显卡(e1230v2配什么主板稳)

    e1230v2最高配什么显卡(e1230v2配什么主板稳)

  • wps隐藏的行怎么全部显示出来(wps隐藏的行怎么取消隐藏)

    wps隐藏的行怎么全部显示出来(wps隐藏的行怎么取消隐藏)

  • qq是什么时候出来的(qq是什么时候开始)

    qq是什么时候出来的(qq是什么时候开始)

  • ipad可以连接u盘吗(ipad可以直接连u盘吗)

    ipad可以连接u盘吗(ipad可以直接连u盘吗)

  • 无线话筒被锁怎么解锁(无线话筒锁定怎么解锁)

    无线话筒被锁怎么解锁(无线话筒锁定怎么解锁)

  • 抖音手机号怎么查好友(抖音手机号怎么搜索用户)

    抖音手机号怎么查好友(抖音手机号怎么搜索用户)

  • 数据的存储结构包括哪四种(数据的存储结构分为哪两类)

    数据的存储结构包括哪四种(数据的存储结构分为哪两类)

  • l1154f和lr44通用吗(l1154和l1154f一样吗?)

    l1154f和lr44通用吗(l1154和l1154f一样吗?)

  • 地铁乘车码可以刷两个人吗(地铁乘车码可以坐公交吗)

    地铁乘车码可以刷两个人吗(地铁乘车码可以坐公交吗)

  • 苹果手机页面设置(苹果手机页面设置布局图片)

    苹果手机页面设置(苹果手机页面设置布局图片)

  • 歌华机顶盒可以投屏吗(歌华机顶盒可以在别人家用吗?)

    歌华机顶盒可以投屏吗(歌华机顶盒可以在别人家用吗?)

  • 华为鸿蒙系统怎么取消华为账号授权? 鸿蒙取消授权的应用技巧(华为鸿蒙系统怎么降级版本)

    华为鸿蒙系统怎么取消华为账号授权? 鸿蒙取消授权的应用技巧(华为鸿蒙系统怎么降级版本)

  • 浏览器播放视频卡顿、黑屏(浏览器播放视频加速怎么设置)

    浏览器播放视频卡顿、黑屏(浏览器播放视频加速怎么设置)

  • scardsvr32.exe - scardsvr32是什么进程 有什么用

    scardsvr32.exe - scardsvr32是什么进程 有什么用

  • 商贸流通企业出口退税的会计处理怎么做
  • 小微企业年度所得税优惠政策
  • 向农业生产者收购原木进项税怎么算
  • 员工意外险费用
  • 跨年度退货可以开红字发票吗
  • 跨月作废增值税专用发票
  • 外来建安企业的税收管理
  • 空调属于电子设备还是电气设备
  • 预收物业费如何填报申报表
  • 加工费发票可以不开数量吗
  • 发出库存商品没发货
  • 出口没有退税的发票
  • 工业企业哪些房子要交房产税
  • 个人交物业费开发票交税点吗
  • 国家税务总局2011年第25号公告
  • 存货跌价准备在报表什么项目列示
  • 原材料损失计入
  • 一般纳税人专票和普票有什么区别
  • 房地产土地增值税计税依据
  • 建筑行业营改增税率变化
  • 制造费用可以抵扣进项税吗
  • 网件R6400路由器怎么样?网件R6400上网与传输评测的教程
  • 银行 环保
  • hpcfont.dll
  • 上市公司发行股票是好还是坏
  • 找潜水员
  • 成品油批发和零售许可
  • 企业购买的土地出买后无法收回资金属国有资产流失吗?
  • 收到抵扣发票怎么做分录
  • 残疾人就业保障金会计分录怎么做
  • 适用5%征收率的范围
  • 公司贷款 利息
  • 项目差旅费可以直接入成本吗
  • 半成品可以计入企业产值吗
  • 知识产权申请如何申请
  • 银行存款支付业务招待费
  • 税务稽查补缴上年所得税分录
  • 企业固定电话费收费标准
  • 餐饮赠送的菜品需要缴税吗
  • 盘亏盘盈的会计处理
  • 利息支出应计入什么科目
  • 办公楼开始建造前专门借款的利息费用
  • 原材料当废品卖可以吗
  • 超市小票能作为证据用吗
  • 进项税转出补缴增值税 城建税及两费
  • mac80211源码分析
  • win2003进入安全模式
  • centos直接进入命令行
  • VMware虚拟机中安装MATE桌面环境
  • badcommandorfilename是什么意思
  • win7系统有wifi功能吗
  • win7系统管理在哪里
  • ebr.ahrcu
  • 蓝屏代码bad_system_config_info
  • mac 10.8.5升级
  • windows8怎么新建word文档
  • win7系统重装后u盘读不出来
  • 笔记本win7电源已接通未充电怎么办
  • django实现登录注册功能
  • cocos2dx视频教程
  • 样式默认有几种修改格式
  • 怎么在html中调用js的函数
  • python嵌套列表生成
  • js promises
  • jQuery tagsinput在h5邮件客户端中应用详解
  • jQuery基于muipicker实现仿ios时间选择
  • bootstrap日期控件背景为白
  • android中的webview
  • python multinomial
  • javascript面向对象编程指南第三版
  • 江苏省地方税务局网上办税
  • 酒类包装物押金的消费税处理规定
  • 大米可以抵扣增值税吗
  • 残疾人企业如何申请补贴
  • 锂电池缴纳消费增值税吗
  • 2022年企业所得税税率2.5% 10% 25%
  • 地方税务局投诉有用吗
  • 浙江摩托车上牌条件
  • 混凝土搅拌站如何结转成本
  • 2020北京国税局的待遇
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设