vue3中安裝使用vue-i18n實(shí)時(shí)切換語(yǔ)言且不用刷新
我使用的版本
"vue": "^3.2.31", "vue-i18n": "^9.2.0-beta.34",
安裝 npm install vue-i18n@next 這樣裝的最新版的才能在vue3.0使用
1、main.ts
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import { setupI18n } from '@/locales/setupI18n';
const app = createApp(App)
// 使用國(guó)際化i18n
app.use(setupI18n)
router.isReady().then(() => app.mount('#app'))2、locales
import { App } from 'vue';
import { createI18n } ?from 'vue-i18n'?? ??? ?//引入vue-i18n組件
import { messages } from './config';
import globalConfig from '@/config/index'
let {setting:{lang:defaultLang}} = globalConfig
//注冊(cè)i8n實(shí)例并引入語(yǔ)言文件
const localeData = {
? legacy: false, // 使用CompotitionAPI必須添加這條.
? locale: defaultLang,
? messages, // 一個(gè)語(yǔ)言包對(duì)象,簡(jiǎn)單
? globalInjection: true
?}
?
// setup i18n instance with glob
export const setupI18n = {
? install (app: App) {
? ? const i18n = createI18n(localeData)
? ? app.use(i18n);
? }
}config文件
import zh from './language/zh'
import en from './language/en'
// i18n本地語(yǔ)言包
export const messages = {
? 'zh-CN': zh,
? 'en-US': en
}
-------------------------
// zh文件,en同理
export default {
? menu: {
? ? home: '主頁(yè)'
? }
}3、國(guó)際化切換
<template>
? // select 國(guó)際化的一個(gè)下拉框
</template>
<script lang="ts" setup>
import { useI18n } from 'vue-i18n'
const { locale } = useI18n();
const handleChange = (value: Value) => {
?? ?// ...
?? ?// 這句話就是關(guān)鍵
? locale.value = value.value
};
</script>4、最后使用
<template>
?? ?{{t('menu.home')}}
</template>
<script lang ="ts" setup>
?? ?import { useI18n } from 'vue-i18n'
?? ?const { t } = useI18n();
</script>總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue3+ts+echarts實(shí)現(xiàn)按需引入和類型界定方式
這篇文章主要介紹了vue3+ts+echarts實(shí)現(xiàn)按需引入和類型界定方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
Element?plus中el-input框回車觸發(fā)頁(yè)面刷新問(wèn)題以及解決辦法
在el-form表單組件中el-input組件輸入內(nèi)容后按下Enter鍵刷新了整個(gè)頁(yè)面,下面這篇文章主要給大家介紹了關(guān)于Element?plus中el-input框回車觸發(fā)頁(yè)面刷新問(wèn)題以及解決辦法,需要的朋友可以參考下2024-03-03
vue+iview 兼容IE11瀏覽器的實(shí)現(xiàn)方法
這篇文章主要介紹了vue+iview 兼容IE11瀏覽器的實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
vue.js實(shí)現(xiàn)數(shù)據(jù)庫(kù)的JSON數(shù)據(jù)輸出渲染到html頁(yè)面功能示例
這篇文章主要介紹了vue.js實(shí)現(xiàn)數(shù)據(jù)庫(kù)的JSON數(shù)據(jù)輸出渲染到html頁(yè)面功能,結(jié)合實(shí)例形式分析了vue.js針對(duì)本地json數(shù)據(jù)的讀取、遍歷輸出相關(guān)操作技巧,需要的朋友可以參考下2019-08-08
Vue插件報(bào)錯(cuò):Vue.js is detected on this page.問(wèn)題解決
這篇文章主要介紹了Vue插件報(bào)錯(cuò):Vue.js is detected on this page.問(wèn)題解決,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
vue3?使用provide?inject父子組件傳值失敗且子組件不響應(yīng)
這篇文章主要介紹了vue3使用provide?inject父子組件傳值傳不過(guò)去且傳遞后子組件不具備響應(yīng)性問(wèn)題解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
vue3中的watch和watchEffect實(shí)例詳解
watch和watchEffect都是監(jiān)聽器,但在寫法和使用上有所區(qū)別,下面這篇文章主要給大家介紹了關(guān)于vue3中watch和watchEffect的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05

