Vue Cli 3 使用 Vue I18n 實作多國語言網站和多語系切換功能

Vue Cli 3 使用 Vue I18n 國際化插件,搭配 Window.localStorage 讓瀏覽器儲存使用者選用的語言資訊,並結合 Vuex 即可在使用者切換語系時,於網頁即時呈現對應的語言。
Vue Cli 3 建置請參考 Vue CLI 3 安裝與使用教學
安裝 Vue I18n
先切換至 Vue Cli 專案目錄:
npm 安裝 Vue.js 的國際化插件 vue-i18n:
各語系檔案
新增 /專案目錄/src/i18n 目錄,用來存放各語系的檔案。本文使用 en、zh 兩種語言,Vue Cli 專案目錄的檔案結構如下:
src/ # Vue Cli 專案目錄 ... ├── i18n # 各語系目錄 │ ├── en.json # 中文語系 │ └── zh.json # 英文語系 ├── store # Vuex 狀態管理 │ └── index.js ├── App.vue # 項目入口 └── main.js # 項目的核心
英文語系 .json 檔:
中文語系 .json 檔:
記錄使用者選用的語系
為了讓選用語系資訊可運用在 Vue Cli,需依賴 Vuex 狀態儲存使用者選用的語系,編輯 src/store/index.js:
多語系切換功能
使用 v-on:change
事件,在切換語系時即時呈現使用者選擇的語言,並將選用的語系資訊使用三種方式保存:
- Vuex 使用
this.$store.commit()
,讓語系資訊可運用在 Vue Cli。 - Vue I18n 使用
this.$i18n.locale
,立即呈現當前選用語系。 - Window.localStorage 使用
localStorage.setItem()
,將資訊保存在瀏覽器。
編輯 src/App.vue:
Vue I18n 設定
引入 Vue I18n 並設定在各語系檔案建立的語系檔,編輯 src/main.js:
執行程式並測試結果
執行程式:
瀏覽器測試結果:


參考

本著作係採用創用 CC 姓名標示-相同方式分享 3.0 台灣 授權條款授權.
感謝分享,不過這裡的vuex沒用到,應該要改成i18n.locale = store.state.lang,當語言變動時只需要去commit就可以了
很高興對您有幫助,也非常感謝您的建議。