今天來談談多國語系I18n
,能夠讓你輕鬆將網站的內容替換成其他語言。
那為什麼叫做I18n
這個奇怪的名字?
其實就是Internationalization
的,因為字實在太長了XD,故取頭尾一字來代替
要注意的是 Quasar
有自己元件的I18n
以及自定義的 Vue-I18n
先談談Quasar
裡面的,這邊的I18n指的是Quasar元件
的多國語系
像是Dialog
的ok
、cancel
或是 Datetime
的日期
/quasar.conf.js
原本已經幫你寫好了,只要拿掉註解,改成繁體中文(zh-hant)
或是簡體中文(zh-hans)
就好囉~
語系的列表可以參考 Quasar I18n on Github
framework: {
i18n: 'zh-hant'
}
let lang = this.$q.i18n.getLocale()
Quasar
的切換語系不像是傳統的vue-i18n
直接換就能用
必須重新載入新語系的語系檔
就看範例吧
<q-btn @click="setLang('zh-hant')">繁體中文</q-btn>
<script>
export default {
methods: {
setLang(lang) {
import(`quasar-framework/i18n/${lang}`).then(lang => {
this.$q.i18n.set(lang.default)
})
}
}
}
</script>
這個就是傳統的vue-i18n啦,用法也十分簡單哦
這邊先到 src/i18n/
底下,可以看到已經有一個叫做 en-us
的資料夾了,這裡我們再補上繁體中文的資料夾zh-tw
,並且在裡面創一個index.js
等等要來做語系檔
接著編輯外面的index.js
,把剛剛的zh-tw
加進來
import enUS from './en-us'
import zhTW from './zh-tw'
export default {
'en-us': enUS,
'zh-tw': zhTW
}
再來就開始做語系檔吧!! 記得兩邊都要一樣喔~
我們先簡單設個兩個就好
//en-us/index.js
export default {
apple: 'apple',
setting: 'setting'
}
//zh-tw/index.js
export default {
apple: '蘋果',
setting: '設定'
}
<p>{{ $t('apple') }}</p>
<q-btn @click="setLang()" :label="$t('setting')"></q-btn>
這邊就比Quasar簡單很多啦
直接指定剛剛的zh-tw
給他就好囉
<script>
export default {
methods: {
setLang() {
this.$i18n.locale = 'zh-tw'
}
}
}
</script>