iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 29
0

今天來談談多國語系I18n,能夠讓你輕鬆將網站的內容替換成其他語言。

那為什麼叫做I18n這個奇怪的名字?

其實就是Internationalization的,因為字實在太長了XD,故取頭尾一字來代替

要注意的是 Quasar有自己元件的I18n 以及自定義的 Vue-I18n

Quasar的I18n

Quasar I18n

先談談Quasar裡面的,這邊的I18n指的是Quasar元件的多國語系

像是Dialogokcancel 或是 Datetime 的日期

https://ithelp.ithome.com.tw/upload/images/20181112/20111805Oo1ayFyFuj.png

https://ithelp.ithome.com.tw/upload/images/20181112/20111805PyUO8neFzX.png

https://ithelp.ithome.com.tw/upload/images/20181112/20111805GFzOtDaYWV.png

https://ithelp.ithome.com.tw/upload/images/20181112/20111805toAY5L9aFD.png

設定

/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

這個就是傳統的vue-i18n啦,用法也十分簡單哦

官方文件

設定

這邊先到 src/i18n/ 底下,可以看到已經有一個叫做 en-us 的資料夾了,這裡我們再補上繁體中文的資料夾zh-tw,並且在裡面創一個index.js等等要來做語系檔

https://ithelp.ithome.com.tw/upload/images/20181112/20111805Y44HOUNIdt.png
接著編輯外面的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: '設定'
}

基礎應用

應用在html上

<p>{{ $t('apple') }}</p>

應用在變數上

<q-btn @click="setLang()" :label="$t('setting')"></q-btn>

https://ithelp.ithome.com.tw/upload/images/20181112/201118055xydvuD4HC.pnghttps://ithelp.ithome.com.tw/upload/images/20181112/20111805dUPWK08dHu.png

動態切換語系

這邊就比Quasar簡單很多啦

直接指定剛剛的zh-tw給他就好囉

<script>
export default {
  methods: {
    setLang() {
      this.$i18n.locale = 'zh-tw'
    }
  }
}
</script>

上一篇
[Day 28] Vue Quasar 自訂顏色
下一篇
[Day 30] Vue Quasar 一些小心得
系列文
[Vue] 使用 Quasar 輕鬆打造 Material 及 iOS 風格的響應式網站30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言