vue3國際化如何使用vue-i18n以及解決切換語言不重新整理的問題
阿新 • • 發佈:2021-09-01
記錄在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' // 要切換的語言