vue3中多语言切换vue-i18n@next

1.下载i81n插件
npm install vue-i18n@next 或者 yarn add vue-i18n@next
2.在src在创建language文件夹,并创建js/ts文件

在这里插入图片描述

3.在js/ts中写入对应的语言信息

在这里插入图片描述

4.创建index.js/index.ts文件,导出所有信息

在这里插入图片描述

5.在language下创建i18n.js/i18n.ts文件(名字随意取)(注意:messages不要写错)

在这里插入图片描述

6.在main.js/main.ts中注册
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import registerI18n from './language/register-i18n'

const app = createApp(App)
app.use(router)
app.use(store)
app.use(registerI18n)
app.mount('#app')
7.在template中使用
<template>
    <div>
    	{{$t('message.string_lang')}}
    </div>
</template>
8.在setup中使用和语言切换
<template>
    <div>
    	{{$t(lang)}}
        <span @click="changeLang">语言切换</span>
    </div>
</template>
<script lang="ts">//如果用js的兄弟就删除lang="ts"
    import { defineComponent, ref, reactive } from 'vue'
	import { useI18n } from 'vue-i18n'
	export default defineComponent({
        setup(){
             //下面这行代码要写在所有代码前面
        	 const { locale, t } = useI18n()
         	 //在setup中使用
        	 console.log(t('message.string_lang'))
            
            //如果在ref / reactive中使用
            //最好这样使用
            let lang = ref('message.string_lang')
            //let lang = ref(t('message.string_lang')) 这种方式目前我测试  在语言切换后页面上达不到响应式
            
            //语言切换
            const changeLang = ()=>{
                //切换语言 值要对应上面index中导出的名字  要一致  第四步
                locale.value = "cn"
                //缓存到localStorage中下次进来还是切换后的语言  如果不需要可以删除下面代码
    			localStorage.setItem('lang', "cn")
            }

            return {
                lang,
                changeLang
            }
        }
    })
<script>
  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: "peer vue@^3.0.0" from vue-i18n@9.1.9 是一个关于 Vue-i18n 的版本要求。 "peer vue@^3.0.0" 说明 Vue-i18n 需要使用 Vue 的版本为 3.0.0 或以上。这意味着如果你在项目中使用了 Vue-i18n 这个库,你应该确保你的 Vue 的版本符合这个要求,否则可能会出现兼容性问题。 "from vue-i18n@9.1.9" 表示这个版本要求是来自于 vue-i18n 库的 9.1.9 版本。这是一个固定的版本,如果你使用的是 vue-i18n 的其他版本,可能就不具备同样的 Vue 版本要求。 因此,为了避免潜在的兼容性问题,你需要确认你的 Vue 版本是否符合 "peer vue@^3.0.0" 的要求,以及你计划使用的 Vue-i18n 版本是否与 vue-i18n@9.1.9 相匹配。 ### 回答2: "peer vue@\"^3.0.0\" from vue-i18n@9.1.9" 表示 "vue-i18n@9.1.9" 这个插件需要使用 "vue@^3.0.0" 版本的 Vue.js 运行。 在 JavaScript 中,通过在 package.json 文件中定义依赖项,可以让指定的包或插件与其他包或插件进行协同工作。如果一个插件的版本与它所依赖的包的版本不兼容,那么在安装或使用该插件时会出现问题。 上述语句中的 "^3.0.0" 表示 Vue.js 的版本号可以在3.0.0及以上,但不包括4.0.0版本。这意味着可以使用3.x.x系列的 Vue.js 版本与该插件一起工作,但不能使用4.0.0及以上的版本。 这是为了确保插件与 Vue.js 的兼容性,以便在项目中无障碍地使用。因此,如果你想在使用 "vue-i18n@9.1.9" 插件时避免潜在的问题,你需要确保你安装或使用的 Vue.js 版本符合该插件的要求。 ### 回答3: "peer vue@\"^3.0.0\" from vue-i18n@9.1.9" 的意思是,vue-i18n@9.1.9 这个包需要依赖 vue 版本为 3.0.0 或者更高版本。 Peer dependencies(同级依赖)是指一个包对于另一个包存在依赖关系,但是需要同级别(或者更低版本)的另一个包来满足依赖关系。这意味着在安装 vue-i18n@9.1.9 之前,你需要确保已经安装了 vue@3.0.0 或者更高版本。 如果你想要安装 vue-i18n@9.1.9,但是没有安装满足 vue@3.0.0 或以上版本的 vue,你需要先安装 vue 版本为 3.0.0 或者更高版本,可以使用以下命令进行安装: ``` npm install vue@^3.0.0 ``` 安装完成后,你就可以安装 vue-i18n@9.1.9 了: ``` npm install vue-i18n@9.1.9 ``` 在这个过程中,npm 会自动管理依赖,并确保你安装的 vue-i18n 版本和 vue 版本相匹配。 总之,当你看到 "peer vue@\"^3.0.0\" from vue-i18n@9.1.9" 时,它是告诉你 vue-i18n@9.1.9 需要 vue 版本为 3.0.0 或者更高版本。你需要先安装满足这个要求的 vue 版本,然后再安装 vue-i18n

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值