vue3国际化如何使用vue-i18n以及解决切换语言不刷新的问题

时间:2021-09-01
本文章向大家介绍vue3国际化如何使用vue-i18n以及解决切换语言不刷新的问题,主要包括vue3国际化如何使用vue-i18n以及解决切换语言不刷新的问题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

记录在vue3中如何使用vue-i18n,以及解决切换语言不刷新的问题

下载

vue-i18n的v9.x版本开始支持vu3,注意下载的版本号

初始化

  • 创建单独的语言模块 zh_CN.js
// ./zh_CN.js
export default {
  message: {
    test:'测试'
  },
}


  • 创建 i18n实例
import { createI18n } from 'vue-i18n'

import zh_CN from './zh-CN' 
import en from './en'

const i18n = createI18n({
  // legacy: false, // Composition API 模式
  globalInjection: true, // 全局注册 $t方法
  locale: localStorage.getItem('language') || 'zh_CN',
  messages: {
    zh_CN,
    en,
  },
})

export default i18n

  • 在vue中注册
import i18n from '@/i18n'

app.use(i18n)

使用

不需要任何操作,直接在模板中使用即可

<p>{{ $t('message.test') }}</p>

问题

切换语言时如何刷新?

vue-i18n提供了一个钩子函数 useI18n(),暴露出locale属性用于切换语言

import { useI18n } from 'vue-i18n'
const { locale } = useI18n()

locale.value = 'en' // 要切换的语言

原文地址:https://www.cnblogs.com/baifangzi/p/15213522.html