hexo 多语言站点改造

工作中搜索和查阅的文档以英文居多,于是便想着也改造一下自己博客。支持多语言的同时,顺便也算是给新的一年开一个头。

目标

这次改造的目标有两个:

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

探索

hexo 以及之前用的 NexT 主题虽然有 i18n 的支持,但都是对导航、菜单等偏固定内容的支持,并没有全局支持。

在网上搜索相关文章后,大致有如下 3 种解决方案:

序号 方案 优点 缺点
1 _post 下新建 en 文件夹存放英文文章。 简单明了,无额外改动。 博客首页会展示所有文章。如果需要按语言显示需另外做开发。
2 使用 hexo-generator-i18n 插件。 简单,安装 + 配置即可使用。 1. 插件较长时间没有更新.
2. 安装插件后还需要另做开发,如语言切换等。
3 创建两套网站存放不同版本语言。 相对简单,完全独立。 两套网站部分配置和代码有冗余。

考虑到操作和维护(主要还是懒,不想自己再开发),还是决定采用第 3 中方案。

同时在查找资料时发现了 Fluid 主题,感觉很舒服便趁此机会一同升级。

改造

在新博客的文件夹下,通过 hexo init 分别创建两个语言的博客。目录的结构如下:

1
2
3
4
.
├── blog-cn
├── blog-en
└── scripts

针对 Fluid 主题和多语言的配置可以参考:记一次 Hexo 博客迁移与多语言站点改造。写的十分详细,按部就班即可。

针对部署部分,参考:Hexo添加多语言支持「国际化i18n」。将部署流程汇总到了 shell 文件中,阅读起来可以稍微轻松一些,也方便部署。

其本质就是在编译后的文件中多了一个 en 文件夹,存放英文内容。因此可以通过 https://{your-blog}/en 来访问。

1
2
3
4
5
6
7
8
9
10
11
12
#!/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 的力量了。

最后欢迎来我更新过的博客玩耍。


hexo 多语言站点改造
https://konta9.github.io/2024/01/17/2024/update-hexo-i18n/
作者
Konata
发布于
2024年1月17日
许可协议