npm i vue-i18n
html
//1. 引入 vue-i18n import Vue from 'vue' import VueI18n from 'vue-i18n' Vue.use(VueI18n) //2. 定義messages const messages = { en: { text: { hello: 'hello world' } }, zh: { text: { hello: '你好、世界' } } } //若是messages字段不少,能夠寫成文件,而後引入,例: import En from './en' import Zh from './zh' const messages = { en: En, zh: Zh } 其中en.js與 zh.js文件 //en.js export default{ text: { hello: 'hello world' } } //zh.js export default{ text: { hello: '你好、世界' } } //3. new VueI18n() const i18n = new VueI18n({ locale: 'en', // 默認語言 messages }) export default i18n //4. 在main.js中掛載i18n new Vue({ el: '#app', router, i18n, render: h => h(App) }) //5. 在html中使用 <h3 class=title> {{$t('text.hello')}} </h3>
const messages = {} const i18n = new VueI18n({ locale: 'en', messages })
這兩處變量必定要是 messages啊,不要寫成message 或其餘本身定義的什麼變量名。
若是不是messages會無效,顯示text.hello,但不會報錯。
我在這兒掙扎了一上午,挨個跟源文檔檢查才找出的緣由。。。
vue