動態

詳情 返回 返回

hexo 多語言站點改造 - 動態 詳情

工作中搜索和查閲的文檔以英文居多,於是便想着也改造一下自己博客。支持多語言的同時,順便也算是給新的一年開一個頭。

Screenshot 2024-02-12 at 14.46.39.png

目標

這次改造的目標有兩個:

  1. 全局多語言(中-英)的支持。
  2. 不同語言之間可以互相切換。

探索

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 的力量了。

最後歡迎來我更新過的博客玩耍。

Add a new 評論

Some HTML is okay.