阿珏的部落格的國際化之路
最近,我給個人部落格來了次「大動作」—— 從單語言版本升級到了 多語言站點(簡體中文、繁體中文、英語、日語), 並且全流程實現了自動化。💪 主要包括: 自動同步主站文章 自動 AI 翻譯內容 自動建構與部署多語言站點 為何選擇 Hugo? 因為它那句自信的口號: 「The world’s fastest framework for building websites.」 —— 就這句話,我就決定是它了 😆。 不過我沒有採用「一套主題多語言切換」的傳統做法, 而是讓 每種語言都有獨立主題。 這樣每個語言版本都能保留自己的美學與排版風格, 真正做到「文化層面的在地化」。 設計目標與約束 🎯 語言:支援簡中、繁中、英文、日文,未來還可擴展。 主題:每種語言使用最合適的 Hugo 主題,而非強行複用。 內容同步:所有語言共用一份內容儲存庫,按需翻譯。 部署策略:各語言獨立建構與發布,可部署到不同分支或網域。 客製化頁面:像「友鏈」、「書房」、「歸檔」等頁面要在多語言下保持一致體驗。 多語言配置策略 🧩 我為每個語言單獨準備了一個設定檔: config/<lang>.toml,它們主要負責: 指定主題(例如 theme = "PaperMod")。 定義該語言特有的 title / description / keywords。 重寫選單設定 [[params.menu]],以匹配不同主題的導航結構。 注入客製化樣式,確保整體視覺一致。 這種結構非常清晰,也方便未來擴展更多語言版本。 GitHub Actions 自動部署矩陣 ⚙️ CI/CD 部分完全交給 GitHub Actions 來處理。 在 .github/workflows/hugo.yml 中,我使用了 矩陣建構, 為每種語言獨立建構、發布: matrix: include: - lang: en config: config/en.toml publish_branch: dist-en - lang: zh-cn config: config/zh.toml publish_branch: dist-zh - lang: ja config: config/ja.toml publish_branch: dist-ja - lang: zh-hant config: config/zh-hant.toml publish_branch: dist-zh-hant 建構階段 👇 ...