Vue 加入多國語言 i18n 套件(Typescript)

閱讀時間約 5 分鐘

Vue 18n packge

I18n (Internationalization, i與n中間有18個字母) 是程式設計在開發過程時將軟體與特定或地區語言解耦和的過程,使軟體更能符合當地的地區文化語言。 網站製作的過程中加入i18n ,更能提升使用者的操作體驗減少使用者語言上的障礙,更能協助推廣網站。vue i18n可以協助在vue開發初期整合多國語言文字的管理, 在網站上架後更能提早觸及更多不同語言的使用者。


安裝vue-i18n

可參考自官方網站 https://vue-i18n.intlify.dev/guide/installation.html

以下使用npm 安裝

npm install vue-i18n@10


設定導入套件 main


以下範例(Typescript)是在安裝後,再main.ts導入I18n

main.ts

// Typescript 
// main.ts
import { createI18n } from "vue-i18n";
const i18n = createI18n({

});
// ...
const app = createApp(App).use(i18n);

// ...

後續再加入不同語言文字的字典檔

修改後的main.ts

import { createI18n } from "vue-i18n";

import { common_dict } from "./locale/dictionary";

const i18n = createI18n({
legacy: false,
locale: "zhTw", // 預設語言
fallbackLocale: "en", // 第二預設語言
messages: dict,
});

const app = createApp(App).use(i18n);

加入語言範例

這裡示範加入英文及中文的範本檔加客製檔

dictionary.ts(第一層視作共同主要的範本檔),在第二層可另外再加入視需求的客製檔

import {addtionDictionary} from 'customer/dictionary'
export const dict = {
en: {
settings:"Settings",
dark_theme:"Dark",
light_theme:"Bright",
theme_mode:"Theme",
loading:"Loading",
hometab:"Home",
... addtionDictionary.en,
},
zhTw: {
settings:"設定",
dark_theme:"暗色",
light_theme:"明亮",
theme_mode:"主題模式",
loading:"載入中",
hometab:" 主頁",
... addtionDictionary.zhTw,
}

}


元件引入字典

我們可以先開一個元件檔Test.vue, 讓不同語言環境更換Title的文字

<Title>{{$t("hometab")}}</Title>

加入文字索引

例如範例的"hometab" 已事先在在前一步驟的字典檔分別翻譯為home主頁。使用時將索引置入$t(...)中

或是想在<script setup>區域使用i18n:

<script setup lang="ts">
import { useI18n } from "vue-i18n";
const i18n = useI18n();
const defaultRoot = i18n.t("hometab");
<script>



以上即以簡單的方式完成加入I18n至Vue的專案中

avatar-img
0會員
5內容數
程式打工族。前端網頁至韌體程式之間。還有其它廣泛的興趣。 正在學習德語及法律課程。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
P工 的其他內容
有人在手機上打字飛快,而我就是一個打字不快的人自從開始用語音輸入之後很快就愛上這個功能。最近也試著想在Mac電腦裡,試著用語音輸入。 啟用語音設定 在設定頁裡輸Dictation 啟用語音輸入 在Language 的項目點選Editor 選擇辨識語言 在搜尋框裡搜尋辨識的語言。這裡我多選
有人在手機上打字飛快,而我就是一個打字不快的人自從開始用語音輸入之後很快就愛上這個功能。最近也試著想在Mac電腦裡,試著用語音輸入。 啟用語音設定 在設定頁裡輸Dictation 啟用語音輸入 在Language 的項目點選Editor 選擇辨識語言 在搜尋框裡搜尋辨識的語言。這裡我多選
你可能也想看
Google News 追蹤
Thumbnail
Hi 我是 VK~ 在 8 月底寫完〈探索 AI 時代的知識革命:NotebookLM 如何顛覆學習和創作流程?〉後,有機會在 INSIDE POSSIBE 分享兩次「和 NotebookLM 協作如何改變我學習和創作」的主題,剛好最近也有在許多地方聊到關於 NotebookLM 等 AI 工具
Thumbnail
國泰CUBE App 整合外幣換匯、基金、證券等服務,提供簡便、低成本的美股定期定額投資解決方案。 5分鐘開戶、低投資門檻,幫助新手輕鬆進軍國際股市;提供人氣排行榜,讓投資人能夠掌握市場趨勢。
Thumbnail
這是張老師的第三本書,我想前二本應該也有很多朋友們都有讀過,我想絕對是受益良多,而這次在書名上就直接點出,著重在從投資的角度來切入
Thumbnail
如何在 Vite 專案中安裝和設置 TypeScript 及路徑別名的步驟,包括安裝必要的依賴、配置 vite.config.js、tsconfig.json 的設置,及如何創建類型聲明文件來正確識別 .vue 文件。
Thumbnail
各位使用 Vue.js 開發的小夥伴們,你們都怎麼實作父子層組件資料的雙向綁定呢?如果你還在寫 prop + emit 的話,不妨進來看看吧。
Thumbnail
切換頁面卡卡有很多種原因,這裡舉的例子只針對元件太大的情境。 除了想辦法拆分外,還有一個方法就是利用 Vue 的 Async Component。
Thumbnail
一開始你先把你的專案push上去後,修改vite.config.ts ,要在裡面新增  base: "/Cart/" (/放自己的專案名稱/) build: {outDir: "docs"}, 接下來你要去你的github setting 裡面 -> Page ->選Deploy fro
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
理解一個全新的操作環境有時候可能是一個挑戰,尤其對於那些剛開始接觸VS Code的開發者來說,即便具備一定的英文閱讀能力,可能也會對這個陌生的操作環境感到徬徨和不安。不過,沒有必要擔心,我們接下來就來一起用短短的一分鐘時間,將VS Code轉換成最熟悉的中文環境吧! 安裝繁體中文語言包 由於VS
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
平常我們在 html 上常看到的例如 v-for、v-model 等等... 也是VUE已經幫我們定義好的指令,而這次我們可以依這自己的需求來建立。 此功能屬於較進階的功能,因此實戰中會比較少見,市面上還是有不少完善的套件能達到同樣效果,建議可以先往這方面察找
Thumbnail
Hi 我是 VK~ 在 8 月底寫完〈探索 AI 時代的知識革命:NotebookLM 如何顛覆學習和創作流程?〉後,有機會在 INSIDE POSSIBE 分享兩次「和 NotebookLM 協作如何改變我學習和創作」的主題,剛好最近也有在許多地方聊到關於 NotebookLM 等 AI 工具
Thumbnail
國泰CUBE App 整合外幣換匯、基金、證券等服務,提供簡便、低成本的美股定期定額投資解決方案。 5分鐘開戶、低投資門檻,幫助新手輕鬆進軍國際股市;提供人氣排行榜,讓投資人能夠掌握市場趨勢。
Thumbnail
這是張老師的第三本書,我想前二本應該也有很多朋友們都有讀過,我想絕對是受益良多,而這次在書名上就直接點出,著重在從投資的角度來切入
Thumbnail
如何在 Vite 專案中安裝和設置 TypeScript 及路徑別名的步驟,包括安裝必要的依賴、配置 vite.config.js、tsconfig.json 的設置,及如何創建類型聲明文件來正確識別 .vue 文件。
Thumbnail
各位使用 Vue.js 開發的小夥伴們,你們都怎麼實作父子層組件資料的雙向綁定呢?如果你還在寫 prop + emit 的話,不妨進來看看吧。
Thumbnail
切換頁面卡卡有很多種原因,這裡舉的例子只針對元件太大的情境。 除了想辦法拆分外,還有一個方法就是利用 Vue 的 Async Component。
Thumbnail
一開始你先把你的專案push上去後,修改vite.config.ts ,要在裡面新增  base: "/Cart/" (/放自己的專案名稱/) build: {outDir: "docs"}, 接下來你要去你的github setting 裡面 -> Page ->選Deploy fro
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
理解一個全新的操作環境有時候可能是一個挑戰,尤其對於那些剛開始接觸VS Code的開發者來說,即便具備一定的英文閱讀能力,可能也會對這個陌生的操作環境感到徬徨和不安。不過,沒有必要擔心,我們接下來就來一起用短短的一分鐘時間,將VS Code轉換成最熟悉的中文環境吧! 安裝繁體中文語言包 由於VS
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
平常我們在 html 上常看到的例如 v-for、v-model 等等... 也是VUE已經幫我們定義好的指令,而這次我們可以依這自己的需求來建立。 此功能屬於較進階的功能,因此實戰中會比較少見,市面上還是有不少完善的套件能達到同樣效果,建議可以先往這方面察找