i18n (Internationalization, 國際化) 是一個可以讓前端可以支援不同語言、時區的概念。而這次會使用到 i18next,這個套件可以讓我們更加快速的維護不同語系的內容,更有效地做到 i18n。 顯示這些內容的方式會從直接寫死在程式碼中,改為透過額外的設定檔處理不同語系的文字,在讀取這些檔案後才顯示對應的文字。
Introduction | i18next documentation
當一個專案逐漸龐大起來的時候,通常就會需要設想使用者的體驗,而語言就是對於使用者體驗上最大的提升,而透過 i18n 可以讓「切換語言」變得更加好維護。而 i18n 可以滿足底下幾件事:
同一個產品要給不同地區的人用:
例如台灣用繁體中文、日本用日文、海外用英文。
改文案不需要動到程式碼:
可以直接透過修改文檔,而不須用懂程式碼的邏輯就可以維護。
方便維護與擴充:
元件可以重複使用,只需要換「語系檔」就能在不同專案或國家共用。
原先畫面上呈現文字的方式都是透過直接撰寫在 tag 之中的內容決定,例如:
<div>這是一個 div</div>
而 i18n 則會以標籤(key)替換這些內容,並透過 i18n 提供的函式替換成的不同語系的內容,例如: