Hello! 欢迎来到阿珏酱のBlog!

阿珏のBlog 的国际化之路


avatar
阿珏 2025-11-02 9

最近,我给个人博客来了次“大动作”——
从单语言版本升级到了 多语言站点(简体中文、繁体中文、英语、日语),
并且全流程实现了自动化。💪

主要包括:

  • 自动同步主站文章
  • 自动 AI 翻译内容
  • 自动构建与部署多语言站点

为什么选择 Hugo?

因为它那句自信的口号:

“The world’s fastest framework for building websites.”

—— 就这句话,我就决定是它了 😆。

不过我没有采用“一套主题多语言切换”的传统做法,
而是让 每种语言都有独立主题
这样每个语言版本都能保留自己的美学与排版风格,
真正做到“文化层面的本地化”。


设计目标与约束 🎯

  • 语言:支持简中、繁中、英文、日文,未来还可扩展。
  • 主题:每种语言使用最合适的 Hugo 主题,而非强行复用。
  • 内容同步:所有语言共用一份内容仓库,按需翻译。
  • 部署策略:各语言独立构建与发布,可部署到不同分支或域名。
  • 定制页面:像“友链”、“书房”、“归档”等页面要在多语言下保持一致体验。

多语言配置策略 🧩

我为每个语言单独准备了一个配置文件:
config/<lang>.toml,它们主要负责:

  1. 指定主题(例如 theme = "PaperMod")。
  2. 定义该语言特有的 title / description / keywords
  3. 重写菜单配置 [[params.menu]],以匹配不同主题的导航结构。
  4. 注入自定义样式,保证整体视觉一致。

这种结构非常清晰,也方便未来扩展更多语言版本。


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

构建阶段 👇

- name: Build ${{ matrix.lang }}
  working-directory: hugo-site
  run: |
    hugo \
      --config "${{ matrix.config }}" \
      --destination "public/${{ matrix.lang }}"

发布阶段 👇

- name: Publish
  uses: peaceiris/actions-gh-pages@v3
  with:
    publish_branch: ${{ matrix.publish_branch }}
    publish_dir: hugo-site/public/${{ matrix.lang }}

最终效果 🌐

部署完成后,我得到了以下结构:

语言 分支 域名
英语 dist-en en.moejue.cn
简体中文 dist-zh zh.moejue.cn
日语 dist-ja ja.moejue.cn
繁体中文 dist-zh-hant tw.moejue.cn

整个流程实现了从内容同步 → 自动翻译 → 独立构建 → 自动部署的完整闭环。
接下来只要写文章,剩下的都交给脚本去跑就好。✨

图 0

后记 🪶

在此之前包括 MoeKoe Music WebMoeKoe Music 都开始做国际化方案了.
博客始终没能跟上,这次总算补上了。😄

最大的收获不是多语言网站本身,而是:
我重新审视了“如何让内容更容易被世界看到”这件事。

或许这就是折腾博客的意义吧。😉
图 1

暂无评论

发表评论
OωO表情

相关阅读

最新文章

最新评论

恰饭