使用 vue-i18n 实现 Vue 的国际化

20 篇文章 0 订阅
订阅专栏

安装

  1. vue2的安装方式
npm install vue-i18n
  1. vue3的安装方式
npm install vue-i18n@next -S

使用方法

首先在项目src目录下新建lang文件夹,然后文件夹里需要新建index.js文件去使用vue-i18n,需要注意的是,vue-i18n的版本如果是8版本,语言文件用json,如果是9版本,语言文件用js文件,这里vue2和vue3使用方法有区别

  1. vue2
//index.js
import Vue from 'vue'
import VueI18n from 'vue-i18n'

Vue.use(VueI18n)

// 注册i18n实例并引入语言文件
const i18n = new VueI18n({
    locale: 'zh_cn',
    messages: {
        'zh_cn': require('@/lang/zh_cn.json'),
        'en_us': require('@/lang/en_us.json')
    }
})

export default i18n

中英文语言文件json版参考:

//中文
{
	"header": {
		"item": ["地图导览", "园区介绍", "寻车指引", "海绵科普", "欢乐游玩", "交通地理", "园区环境"],
		"itemSub": [
			"MAP NAVIGATION",
			"INTRODUCTION INFO",
			"SEARCH GUIDE",
			"SPONGE SCIENCE",
			"HAPPY PLAY",
			"POSITIONING",
			"MEMBER SERVICES"
		]
	},
	"footer": {
		"back": "返回",
		"home": "首页"
	}
}
//英文
{
	"header": {
		"item": [
			"SHOPPING\nGUIDE",
			"PARKING\nSERVICE",
			"GRAND\nFEAST",
			"O' GARDEN\n ",
			"ACTIVITY\nREGISTRATION",
			"COUPONS\n ",
			"CUSTOMER\nSERVICE",
			"MEMBERSHIP\nSERVICE"
		],
		"itemSub": [
			"SHOPPING GUIDE",
			"PARKING SERVICE",
			"GOURMET PARADISE",
			"BOTANIC GARDEN",
			"ACTIVITY COURIER",
			"COUPON",
			"CUSTOMER SERVICE",
			"MEMBER SERVICES"
		]
	}
}

在main.js文件中使用import引入并且参考图片使用:

import i18n from '@/lang/';

在这里插入图片描述
引入完成以后就可以使用了,在vuex中新建state属性,以下操作参考图片
第一步:
在这里插入图片描述
第二步:
在这里插入图片描述
第三步:
在这里插入图片描述

//在页面中通过$t('值')的方式来获取语言文件中的值
格式:{{$t('值')}}
//最后通过点击页面中中英文切换的按钮去改变vuex中中英文的状态就可以了
  1. vue3
    在src目录下创建lang文件夹,再创建三个文件index.js、zh.js、en.js
    在这里插入图片描述
//index.js
import { createI18n } from 'vue-i18n';
import ZH from './zh.js';
import EN from './en.js';
const messages = {
  zh: { ...ZH  },
  en: { ...EN  },
};

const i18n = createI18n({
  legacy: false,
  globalInjection: true,
  locale: 'zh',
  messages
});

export default i18n;

中英文语言文件json版参考:

//使用export default导出
//zh.js
export default {
	person: {
		name: '测试',
		age: 30
	},
};
//en.js
export default {
	person: {
		name: 'test',
		age: 30
	},
};

然后在main.ts或main.js文件中引入
在这里插入图片描述

import i18n from  './lang/index'
app.use(i18n).mount("#app");

在需要使用的页面引入
在这里插入图片描述
在页面中使用,如下:
在这里插入图片描述

//页面代码
<template>
	<div class="item" @click="changeLang('zh')">
		中文
	</div>
	<div class="item" @click="changeLang('en')">
		英文
	</div>
	<div style="color: #fff;">{{$t('person.name')}}</div>
</template>
<script setup lang="ts">
	import { useI18n } from "vue-i18n";
	const { locale } = useI18n();
	const changeLang = (val) => {
	  locale.value = val;
	};
</script>

大功告成,点个赞吧!!!

vue实现前端语言国际化i18n
weixin_46382293的博客
11-23 453
报错的原因主要是因为当前使用的版本不匹配,在这里提供一个可行的其中一种方法。
vue-i18n国际化使用
weixin_45144296的博客
11-01 150
(一)vue-i18n国际化使用 安装 vue-i18n npm install vue-i18n 注入 vue 实例中,项目中实现调用 api 和 模板语法 import VueI18n from 'vue-i18n' Vue.use(VueI18n) // 通过插件的形式挂载 const i18n = new VueI18n({ locale: 'zh-CN', // 语言标识 //this.$i18n.locale // 通过切换locale的值来实现语言切换
使用uniapp开发国际化nvue编译对象
qq_42396791的博客
07-20 225
使用uniapp开发国际化nvue编译对象
nvue 页面引用i18n
qq_43024468的博客
01-18 852
在app.vue里面 globalData: { $t: '' }, onLaunch(){ this.globalData.$t = val => { return this.$t(val); }; }, 在nvue页面使用 <view>{{ $t('conn.phone') }}</view> let app = getApp().globalData; methods:{ $t(text) { return app.$t(text);
前端Vue实现国际化
不知名人士的博客
06-07 1902
i18n 下新建 lang 文件夹,下面有 en.js 和 zh.js 两个语言包,在 i18n 下的 index.js 中引入import {en : {msg : {msg : {legacy : false , // 使用Vue3 composition API的话这项一定要为false globalInjection : true , // 全局使用 t 函数 locale , messages }) export default i18n
使用uniapp开发国际化---app,vue,nvue
m0_51534164的博客
05-25 1613
使用uniapp开发国际化,语言全局切换,app中vue,nvue国际化
vue项目国际化方案vue-i18n,i18n-all使用
逆水行舟,不进则退
06-26 717
这个库也是比较多管理后台使用国际化方案。用它就对了,详情看下官网。配置文件,需要自定义语言文件目录的项目,需要配置相关参数,才能生效。vscode 插件,使用 i18n-ally ,可以多语言开发。注意:需要配置 vue-i18n 工具使用预览才生效。vue国际化一般使用
Vue使用插件 vue-i18n 实现国际化处理(中英文切换)
weixin_42947516的博客
07-15 814
Vue使用插件插件 vue-i18n 实现国际化处理安装组件创建对应目录具体文件内容main.js配置创建组件实现语音切换功能表单校验提示信息的中英文切换说明 安装组件 npm install vue-i18n 创建对应目录 在src目录下创建对应文件 具体文件内容 i18n.js import Vue from 'vue' import locale from 'element-ui/lib/locale' import VueI18n from 'vue-i18n' import messages
vue-i18n提取-使用静态分析管理vue-i18n本地化。 报告丢失和未使用i18n条目。-Vue.js开发
05-27
vue-i18n-extract vue-i18n-extract用于与使用vue-i18nVue.js项目一起使用。 运行vue-18n-extract时,将分析您的Vue.js源代码。vue-i18n-extract vue-i18n-extract是为与使用vue-i18nVue.js项目一起使用而构建的...
vue-cli-plugin-i18n:Vue CLI插件可将vue-i18n添加到您的Vue项目
05-11
使用vue-i18n-loader的单个文件组件中的区域设置消息 区域设置消息丢失和未使用的报告(实验性) 环境变量 :rocket: 入门 如果yon没有使用Vue CLI创建的项目: vue create my-vue-app 将插件安装到您的项目中: ...
vite-plugin-vue-i18n:Vue I18n的快速插件
04-09
:globe_with_meridians: @ intlify / vite-plugin-vue-i18n Vue I18n的Vite插件 :handshake: 支持新项目 Intlify Project是一个开源项目,其中包括Vue I18ni18n工具和自由软件,其持续的开发完全依靠赞助商的...
vue-i18n-loader:用于自定义块的vue-i18n-loader
02-06
@ intlify / vue-i18n-loader 用于自定义块的vue-i18n加载程序 注意: :warning: next分支是Vue 3的开发分支! 稳定版现已在分支中! 状态:测试版 :star: 产品特点 i18n资源预编译 i18n自定义块 i18n资源定义 i18...
利用vue-i18n实现多语言切换效果的方法
12-13
vue-i18n是一个vue插件,主要作用就是让项目支持国际化多语言,使用方便快捷,能很轻松的将我们的项目国际化。本文主要介绍使用vue-i18n实现切换中英文效果。 安装vue-i18n 我们使用npm安装vue-i18n。 npm ...
Vue国际化多语言处理 i18n使用,如何减轻工作量?
qq_36995773的博客
05-12 468
最近一个比较大的项目需要添加国际化的功能,每个页面都得单独的去处理,再加上翻译文件,一整个难受啊...都是些复制粘贴费眼睛的辛苦活, 页面只能挨个的去改了,那就在翻译文件上偷点懒吧
前端项目经验 —— i18n 国际化插件
weixin_52872413的博客
11-11 1179
在写一些全球化的项目时,不可避免的就是翻译问题,我们可以使用 i18n 来解决,下面还是使用 vue3 来做演示。
Vue3中,国际化插件vue-i18n使用记录,配合VSCode自动化翻译插件i18n Ally
热门推荐
qq_51532249的博客
06-28 1万+
记录了国际化插件vue-i18nVue3中的使用,以及VSCode自动化翻译插件i18n Ally的使用
vue3中使用vue-i18n国际化
qq_42966709的博客
03-30 2285
【代码】vue3中使用vue-i18n国际化
vue3中通过vue-i18n实现国际化
imsopoor的博客
07-13 1248
vue3中使用vue-i18n实现国际化
关于element-plus中el-select自定义标签及样式的问题
最新发布
x_XDGS的博客
06-14 445
element-plus, el-select,自定义标签,动态更改颜色样式,更该样式

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • token是什么?token的作用以及运用场景? 1862
  • echarts自适应字体大小 1482
  • 标准UTC时间格式转化字符串年月日时分秒日期 1421
  • canvas根据坐标点位画图形-canvas画矩形 1243
  • Element ui中table分页时多选缓存 1136

分类专栏

  • uniapp实战 1篇
  • echarts实践 1篇
  • canvas绘画实战 7篇
  • JavaScript基础及实战 8篇
  • react
  • ElementUi 3篇
  • three.js实战 1篇
  • vue基础 20篇
  • Html和Css 5篇
  • vue3基础

最新评论

  • vue中div滚动的内容默认滚动到最新的内容(默认滚动到底部)

    人间世无双: 太强了。找了那么多还是您的管用

  • echarts自适应字体大小

    weixin_60992402: 屏幕放大缩小 字体没有 自适应改变大小

  • vue中div滚动的内容默认滚动到最新的内容(默认滚动到底部)

    素人猕猴涛: dom节点

  • vue中div滚动的内容默认滚动到最新的内容(默认滚动到底部)

    undefined_zzk: $el是什么?

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • uniapp小程序定位指定地址
  • echarts自适应字体大小
  • canvas根据坐标点位画图形-canvas拖拽编辑单个图形形状
2023年16篇
2022年29篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司梅州SEO按天计费哪家好德宏网站排名优化推荐玉树关键词按天计费推荐迪庆百度竞价包年推广报价大同百度网站优化排名报价盘锦百搜标王多少钱镇江推广网站报价温州建站多少钱秦皇岛网站推广方案公司松原网站搜索优化报价横岗百姓网标王推广公司邢台seo价格本溪seo多少钱绵阳建站报价坑梓建站张家口seo网站优化推荐厦门SEO按天收费价格白山建站哪家好亳州网站推广工具公司淮安关键词按天收费价格襄樊网站搜索优化价格德州营销型网站建设价格阜新百度竞价包年推广公司石家庄设计公司网站普洱网站seo优化吉祥关键词按天收费推荐黄冈SEO按效果付费报价布吉网站优化按天计费价格潍坊百度seo公司许昌百姓网标王推广歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化