工作中搜索和查閲的文檔以英文居多,於是便想着也改造一下自己博客。支持多語言的同時,順便也算是給新的一年開一個頭。
目標
這次改造的目標有兩個:
- 全局多語言(中-英)的支持。
- 不同語言之間可以互相切換。
探索
hexo 以及之前用的 NexT 主題雖然有 i18n 的支持,但都是對導航、菜單等偏固定內容的支持,並沒有全局支持。
在網上搜索相關文章後,大致有如下 3 種解決方案:
| 序號 | 方案 | 優點 | 缺點 |
|---|---|---|---|
| 1 | 在 _post 下新建 en 文件夾存放英文文章。 |
簡單明瞭,無額外改動。 | 博客首頁會展示所有文章。如果需要按語言顯示需另外做開發。 |
| 2 | 使用 hexo-generator-i18n 插件。 | 簡單,安裝 + 配置即可使用。 | 1. 插件較長時間沒有更新.<br/> 2. 安裝插件後還需要另做開發,如語言切換等。 |
| 3 | 創建兩套網站存放不同版本語言。 | 相對簡單,完全獨立。 | 兩套網站部分配置和代碼有冗餘。 |
考慮到操作和維護(主要還是懶,不想自己再開發),還是決定採用第 3 中方案。
同時在查找資料時發現了 Fluid 主題,感覺很舒服便趁此機會一同升級。
改造
在新博客的文件夾下,通過 hexo init 分別創建兩個語言的博客。目錄的結構如下:
.
├── blog-cn
├── blog-en
└── scripts
針對 Fluid 主題和多語言的配置可以參考:記一次 Hexo 博客遷移與多語言站點改造。寫的十分詳細,按部就班即可。
針對部署部分,參考:Hexo添加多語言支持「國際化i18n」。將部署流程彙總到了 shell 文件中,閲讀起來可以稍微輕鬆一些,也方便部署。
其本質就是在編譯後的文件中多了一個 en 文件夾,存放英文內容。因此可以通過 https://{your-blog}/en 來訪問。
#!/bin/bash
# Build CN blog
cd blog-cn && pnpm run build
# Build En blog
cd ../blog-en && pnpm run build
cd ../blog-cn
mkdir ./public/en &&mv ../blog-en/public/* ./public/en/
pnpm run deploy
遷移
hexo 的遷移一項是最輕鬆的事情。將 source 下需要的文件複製到新的地方即可。
其他
剩下的就只是翻譯工作了,看看是否可以藉助 Google 翻譯或者 GPT 的力量了。
最後歡迎來我更新過的博客玩耍。