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' // 要切換的語言


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM