vue3 i18n配置详细教学

一. 安装类库

npm install vue-i18n@next

@next 表示安装i18n 最新的 vue3的版本

二. 配置 i18n的 配置文件

// i18n.ts

import { createI18n } from 'vue-i18n'
import zh from './zh'
import en from './en'

const i18n = createI18n({
    legacy: false,  // 没有该参数可能会报错
    locale: 'zh',
    messages: {
        zh,
        en
    }
})

export default i18n

// zh.ts
export default {
    message: {
        homeText: '主页',
        mineText: '个人中心'
    }
}

三. 挂载到实例上

// main.ts
import i18n from './language/i18n'

const app = createApp(App)
...
app.use(i18n)

 四. 使用

// 使用的 xxx.vue
<script setup lang="ts">
    import { useI18n } from "vue-i18n";
    const { t } = useI18n()
</script>

<template>
     <p>{
   
   {t('message.homeText') }} </p>
</template>

点击按钮切换语言 

<script setup lang="ts">
import { useI18n } from 'vue-i18n'

// 核心思想就是改变 useI18n 解构出来的locale
// 笔者 这里为了和页面中的其他变量 区别  - 取别名 i18nLanguage。  
const { locale: i18nLanguage } = useI18n()

const toggle = (languageKey) => {
  i18nLanguage.value = languageKey  // zh en
}
</script>
<template>
<el-button @click="toggle('zh')">点击切换中文</el-button>
<el-button @click="toggle('en')">点击切换英文</el-button>
</template>

猜你喜欢

转载自blog.csdn.net/qq_39549013/article/details/128677003