工作中搜索和查阅的文档以英文居多,于是便想着也改造一下自己博客。支持多语言的同时,顺便也算是给新的一年开一个头。
目标
这次改造的目标有两个:
- 全局多语言(中-英)的支持。
- 不同语言之间可以互相切换。
探索
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 的力量了。
最后欢迎来我更新过的博客玩耍。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。