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>

全部评论

相关推荐

中电45所 测试开发岗 可以解决北京户口,提供员工宿舍,早 8 晚 5(不过一般会加班到7-8点,周六一般也会去,面试官说的) 硕士
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务