位置: 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)

  • 漫步者tws1蓝牙耳机怎么恢复出厂设置(漫步者TWS1蓝牙耳机配对不了)

    漫步者tws1蓝牙耳机怎么恢复出厂设置(漫步者TWS1蓝牙耳机配对不了)

  • vivoz5x怎么关闭hd高清通话(vivoz5x怎么关闭变形器)

    vivoz5x怎么关闭hd高清通话(vivoz5x怎么关闭变形器)

  • 抖音怎么看昨天的直播(抖音怎么看昨天的观看记录)

    抖音怎么看昨天的直播(抖音怎么看昨天的观看记录)

  • win7 蓝屏(win7蓝屏怎么解决)

    win7 蓝屏(win7蓝屏怎么解决)

  • 微信怎么禁言群成员(微信怎么禁言群成员单人)

    微信怎么禁言群成员(微信怎么禁言群成员单人)

  • mt6873v相当于骁龙多少(mt6875相当于骁龙多少)

    mt6873v相当于骁龙多少(mt6875相当于骁龙多少)

  • qq的隐藏功能有哪些(qq隐藏功能在哪里打开)

    qq的隐藏功能有哪些(qq隐藏功能在哪里打开)

  • 苹果手机使用不久为什么就发热(苹果手机使用不了无线网怎么回事)

    苹果手机使用不久为什么就发热(苹果手机使用不了无线网怎么回事)

  • 电脑连不上网黄叹号无internet访问(电脑连不上网黄叹号)

    电脑连不上网黄叹号无internet访问(电脑连不上网黄叹号)

  • 第四代程序设计语言是什么程序语言(四代程序设计语言有哪些)

    第四代程序设计语言是什么程序语言(四代程序设计语言有哪些)

  • windows手机有哪些(有windows的手机吗)

    windows手机有哪些(有windows的手机吗)

  • 三星手机lte什么意思(三星网络lte)

    三星手机lte什么意思(三星网络lte)

  • 信息网主要划分为(信息网主要划分为什么)

    信息网主要划分为(信息网主要划分为什么)

  • 华为p20微信视频可以美颜吗(华为P20微信视频美颜在哪里?)

    华为p20微信视频可以美颜吗(华为P20微信视频美颜在哪里?)

  • 手机充电不支持配件怎么回事(手机充电不支持此配件是怎么回事)

    手机充电不支持配件怎么回事(手机充电不支持此配件是怎么回事)

  • 华为手机杂志锁屏图片在哪里找(华为手机杂志锁屏怎么设置)

    华为手机杂志锁屏图片在哪里找(华为手机杂志锁屏怎么设置)

  • 为什么苹果手机不能打电话了(为什么苹果手机天气预报不准)

    为什么苹果手机不能打电话了(为什么苹果手机天气预报不准)

  • 苹果手机怎么在手机上面下载铃声到手机里(苹果手机怎么在图片上编辑文字)

    苹果手机怎么在手机上面下载铃声到手机里(苹果手机怎么在图片上编辑文字)

  • 新苹果11怎么使用(新买的苹果11怎么弄)

    新苹果11怎么使用(新买的苹果11怎么弄)

  • 手机闲鱼怎么发链接(手机闲鱼怎么发图片给买家)

    手机闲鱼怎么发链接(手机闲鱼怎么发图片给买家)

  • 爱奇艺怎么上传视频(爱奇艺怎么上传自己的视频)

    爱奇艺怎么上传视频(爱奇艺怎么上传自己的视频)

  • oppo计算器在哪里找到(oppo手机计算器在哪里找到)

    oppo计算器在哪里找到(oppo手机计算器在哪里找到)

  • 该设备无法启动 代码10(该设备无法启动代码43)

    该设备无法启动 代码10(该设备无法启动代码43)

  • 苹果键盘特殊符号在哪(苹果键盘特殊符号怎么弄)

    苹果键盘特殊符号在哪(苹果键盘特殊符号怎么弄)

  • 个人微信能用扫码枪吗(微信可以扫自己的二维码吗)

    个人微信能用扫码枪吗(微信可以扫自己的二维码吗)

  • 苹果xs max通话录音怎么设置

    苹果xs max通话录音怎么设置

  • 显示器响应时间(显示器响应时间开不开)

    显示器响应时间(显示器响应时间开不开)

  • Python列表中有哪些索引(python中列表的作用)

    Python列表中有哪些索引(python中列表的作用)

  • 税盘服务费抵扣增值税
  • 增值税销项进项什么意思
  • 减去税率怎么算
  • 以前年度损益调整
  • 土增税预缴是按不含税收入算
  • 印花税申报了什么时候扣款
  • 其他收益科目账务处理
  • 客户未付关税是否可以申请晚交
  • 收到物业费普通发票做账
  • 税务评估补税如何入账处理合适?
  • 捐款怎样抵扣个税
  • 给客户现金回款怎么写
  • 持有至到期投资核算内容
  • 出租无形资产的收入
  • 应交税金明细账余额怎么算
  • 什么时候编制原始凭证分割单?
  • 自制发票和增值税发票的区别是什么?
  • 营改增后房地产企业增值税如何核算
  • 不动产所占份额
  • 公司认缴增资需要什么流程呢
  • 国外企业提供国际运输服务税率
  • 进料加工料件需补税的情况
  • 母子公司之间转让房产
  • 固定资产清理账户结构
  • 1697508560
  • 用友软件怎么反记账凭证
  • 4s店贷款服务费是什么
  • 修理厂年收入
  • win11任务管理器怎么没有了
  • 交城建税的滞纳金是多少
  • win11 zen2
  • Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
  • 小程序嵌入h5页面可以不写安全地址吗为什么
  • 票据贴现办法
  • 蕨菜的功效与作用及营养价值
  • wordpress采集教程
  • php stristr函数
  • 卡洛里山脉
  • 鸳鸯小鸟
  • 处置固定资产的增值税怎么处理
  • 长期应付款核算范围有哪些
  • vue2和vue3的区别大么
  • 电子回单是什么样子
  • 固定资产折完了怎么办
  • 企业接受捐赠怎么入账
  • 财政收入的收缴具体包括
  • dedecms使用教程
  • 适用5%征收率的范围
  • 纳税人按照月度或者季度的实际利润额预缴有困难的
  • 应付利息的账务处理
  • 财产转让按什么计征
  • 新企业购买税控盘,没收入,怎么抵扣
  • 外购的商品赠送客人是否销售吗
  • 谈一谈企业应如何做才能更好地、有效地激励员工
  • 招标公司的成本控制
  • 退货回去需要把原包装保留吗
  • 以原材料投入资本
  • 购买需要安装的生产设备会计分录
  • 开公司如何选择行业
  • 在企业中的应用
  • 会计账簿按用途分类分为什么
  • MySQL去除重复数据
  • mysql 5.7.32
  • uphclean.exe - uphclean进程是什么意思
  • win8安装出现了一些问题
  • awk统计nginx日志
  • win7系统鼠标右键没有压缩文件功能
  • 安卓十游戏怎么玩
  • 如何进行js 的测试
  • 批处理修改hosts 加一行
  • 插入排序_Python与PHP的实现版(推荐)
  • python django事务transaction源码分析详解
  • javascript 数字类型
  • android解析
  • android进度条对话框
  • 湖南历年社保缴费
  • 阿尔及利亚关税起征点查询
  • 2020年民主生活会主题是什么?
  • 非税控发票是什么
  • 华数tv业务认证账号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设