昨天(Day 12)才剛完成「網站會自動寄信提醒」的功能,我就突然想到一個問題,如果有人看不懂中文,這個網站要怎麼用?不是會很不方便嗎?所以我希望能讓我的小網站能夠支援「中英文切換」!至於為什麼要做多語言?以前寫程式時,所有畫面上的文字都是直接寫死在元件裡,例如:健康任務追蹤、新增等等,雖然這樣在中文環境下完全沒問題,但如果要改成英文版,就得一個一個檔案打開去手動改字,還要維護兩份程式碼,就會讓整個維護或運作超級麻煩。
而多語言(i18n)的好處,就是把「字」和「程式」分開,讓程式只負責邏輯,遇到要顯示的地方,用 $t('key') 去拿文字。把不同語言的文字,集中收納在翻譯字典(json 檔)裡。也就是說,程式碼像一本書的頁數,固定不變。而字典像翻譯員,則是負責決定用中文講還是英文講,不但支援多語言,也讓專案更有彈性,未來要加更多語言或改 UI,都不用擔心大改動。
想使用這項技術,只需要五步驟就可以搞定 i18n: