Skip to main content

I. WordPress多語言網站字體設定教學:最佳實踐建議

對於新手來說,設計多語言網站(例如包含英文、繁體中文、日文)時,字體設定可能讓人困惑。字體不僅影響網站的美觀,還關係到閱讀體驗和效能。以下是兩種常見的設定方法,以及一些實用的建議,幫助你做出最佳選擇。

II. 單語言網站的字體設定

一個單語言繁體中文網站,font-family CSS可能這樣設定:

繁體中文網頁字體設定CSS Demo

/* 繁體中文網頁字體設定CSS */
body {
    font-family:
        "Noto Sans TC",
        "Source Han Sans TC",
        "PingFang TC",
        "Microsoft JhengHei",
        sans-serif;
}


這會將字體應用到整個網站。但如果網站變成多語言,這種全局設定可能不夠靈活,因為其他語言(例如英文或日文)不一定適合這些字型。

III. WP網站多語言化後的調整

以我們的WP Misuzu網站( https://wpmisuzu.com )為例,它支援英文、繁體中文和日文。當使用大多數WordPress翻譯外掛(例如 Polylang 或 WPML)並啟用額外語言後,CSS 中的 :lang() 偽類會根據語言標記生效。例如,:lang(zh) 會對應中文頁面。

在多語言網站中,應該根據語言分別設定字體,讓每個語言使用最適合的字型。例如,在 wpmisuzu.com 上,我是這樣設定的:

中文、日文、英文三語言網頁字體設定CSS Demo

/* 中文、日文、英文三語言網頁字體設定 */
:lang(zh) {
    font-family:
        "Noto Sans TC",
        "Source Han Sans TC",
        "PingFang TC",
        "Microsoft JhengHei",
        sans-serif;
}

:lang(ja) {
    font-family:
        "IBM Plex Sans JP",
        "Hiragino Kaku Gothic Pro",
        "Meiryo",
        "Noto Sans JP",
        sans-serif;
}


  • 繁體中文 (zh):使用專為中文設計的字型。
  • 日文 (ja):使用專為日文設計的字型。
  • 英文 (en):建議不額外用 :lang(en) 設定,讓他繼承主題或外掛的預設字型。

IV. 為什麼不需用CSS設定英文lang(en)?

  • 英文預設字型已由主題或外掛設定中繼承:大多數WordPress主題或外掛已經為英文設定了合適的字型,例如Arial或Roboto。這些主題通常會強制從Google Fonts或本地伺服器下載字型檔案。因為英文字型檔案很小(通常只有 0.1-2MB),強制下載幾乎完全不會影響使用者體驗。
  • 中日文字型的效能挑戰:但如果是中文或日文字型,情況就不同了。例如 “Noto Sans TC”(繁體中文)或 “Noto Sans JP”(日文)這類字型的檔案大小通常在 10-30MB,比英文字型大 10-100 倍。如果強制訪客下載這些大檔案,網站載入速度是一種挑戰,特別是在網路條件不佳時,可能影響使用者體驗。

V. 兩種設定方式的選擇

1. 不強制下載中日文字型

如果你不想強制訪客下載大檔案的中日文字型,可以這樣設定(跟上方的CSS相同):

中文、日文、英文三語言網頁字體設定CSS Demo

/* 中文、日文、英文三語言網頁字體設定 */
:lang(zh) {
    font-family:
        "Noto Sans TC",
        "Source Han Sans TC",
        "PingFang TC",
        "Microsoft JhengHei",
        sans-serif;
}

:lang(ja) {
    font-family:
        "IBM Plex Sans JP",
        "Hiragino Kaku Gothic Pro",
        "Meiryo",
        "Noto Sans JP",
        sans-serif;
}


怎麼運作:

系統會按順序檢查訪客設備上的字型,從左到右或上到下檢測:

    • 如果訪客有 “Noto Sans TC”,就用這個。
    • 如果沒有,就試下一個(如 “Source Han Sans TC”),依此類推。
    • 最後的sans-serif是後備選項,當訪客系統沒有一個指定字型時,使用設備的預設無襯線字型,確保能正常顯示。
  • 優點:不增加載入負擔,適合重視效能的網站。
  • 缺點:顯示效果可能因訪客設備而異。

2. 強制從Google Fonts下載

如果你希望字體在所有訪客設備上顯示一致,可以從Google Fonts引入字型:

強制從Google Fonts下載字體與多語言設定CSS Demo

/* 強制從Google Fonts下載字體 */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;700&family=IBM+Plex+Sans+JP:wght@400;700&display=swap');

/* 多語言字體設定 */
:lang(zh) {
    font-family: "Noto Sans TC", sans-serif;
}

:lang(ja) {
    font-family: "IBM Plex Sans JP", sans-serif;
}


怎麼運作:

  1. Google Fonts 引入
    • @import 從 Google Fonts 載入兩種字型:
      1. “Noto Sans TC”:用於繁體中文 (:lang(zh))。
      2. “IBM Plex Sans JP”:用於日文 (:lang(ja))。
    • wght@400;700 表示載入字重 400(正常)和 700(粗體),display=swap 確保字型載入時不會阻塞頁面渲染。
  2. 語言標記觸發
    • 當頁面的 HTML 標記為 <html lang=”zh”>(或 zh_TW)時,:lang(zh) 會生效,訪客瀏覽器下載並應用 “Noto Sans TC”
    • 當標記為 <html lang=”ja”> 時,:lang(ja) 生效,應用 “IBM Plex Sans JP”
  3. 後備機制
    • 如果Google Fonts無法載入(例如因網路問題),系統會改用sans-serif(訪客系統的預設無襯線字型) 作為後備方案,確保文字仍能顯示。

注意事項

由於已強制從Google Fonts下載字體,因此只需設定一種字體即可。

VI. 總結: 個人的建議

  1. 英文用主題預設:由主題或外掛繼承,不必特別用CSS設定。
  2. 中日文按需選擇
    • 如果追求不影響效能,用第一種方法設定-不強制下載中日文字型。
    • 如果追求一致性,用第一種方法設定-Google Fonts強制下載字體,但只選必要字重(例如 400 和 700),以免把字體的全部字重都下載。
  3. 永遠加後備字型:在font-family最後加上sans-serifserif,確保文字顯示不出問題。
  4. 測試效能:用瀏覽器開發者工具檢查載入時間,平衡美觀與速度。

我個人更傾向於第一種方法,不影響效能。

靈活調整

不一定要用這篇文章所選的字型,大家可以根據自己喜好替換,例如把 “Noto Sans TC” 換成 “Source Han Sans TC”,隨時按需求調整喲。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。必填欄位標示為 *