Vue3使用 i18n 实现国际化

  1. 通过 npm i vue-i18n@next 安装

  2. 在 plugin 文件夹下新建 i18n.ts 文件:

import {createI18n} from 'vue-i18n'

const messages = {
    en: {
        message: {
            hello: 'hello world'
        },
        changeText:'change text'
    },
    ru: {
        message: {
            hello: 'Китай'
        },
        changeText:'переключить текст'
    }
}
const i18n = createI18n({
    legacy: false,
    globalInjection: true,

    locale: 'en',
    messages
})

export default i18n
  1. 将 i18n.ts 引入到 main.ts

  2. 在 SFC 内部使用:

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

const { locale } = useI18n()
const changeLanguage = () => {
  locale.value=locale.value=== 'en' ? 'ru' : 'en'
}
</script>

<template>
  {{ $t("message.hello") }}
  <button @click="changeLanguage">{{ $t('changeText') }}</button>
</template>

<style scoped>

</style>

全部评论

相关推荐

10-30 22:18
已编辑
毛坦厂中学 C++
点赞 评论 收藏
分享
10-18 13:01
已编辑
西安理工大学 C++
小米内推大使:建议技能还是放上面吧,hr和技术面试官第一眼想看的应该是技能点和他们岗位是否匹配
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务