跳过正文
  1. Posts/

博客双语发布不再麻烦:GitHub Actions + Gemini API 实践

·760 字·2 分钟· ·
沈显鹏
作者
沈显鹏
目录

最近翻看 Google Analytics 时,我发现了一个有趣的现象:
我的博客(shenxianpeng.github.io)在 Google 搜索里的流量还不错,但访问者的主要语言居然是 英文,中文反而排在第二。

语言

仔细想想,其实也不奇怪——我之前写过几篇质量还不错的英文文章,比如 使用 Gcov 和 LCOV 做 C/C++ 项目的代码覆盖率,吸引了不少海外读者。

但问题是:我平时主要写中文,偶尔才写英文。如果读者想看另一种语言的版本,我就得自己手动翻译、复制、粘贴、预览、提交……整个流程又繁琐又耗时。

于是我想:把这件事交给 AI + 自动化


我的解决方案
#

用 GitHub Actions + Gemini API,实现博客的自动双语发布。

整体思路其实很简单:

  1. 每当我写好一篇新文章并提交到仓库时,GitHub Actions 会自动触发;
  2. 工作流调用 Gemini API,把中文翻译成英文;
  3. 翻译后的文章会提交到新分支,并自动创建一个 PR;
  4. Netlify 部署预览,我在 GitHub 上 Review 后就能一键合并;
  5. 合并后,英文版文章就会随后上线。

效果

这样一来,我只需要专注写中文,英文版就能自动生成。


核心配置
#

下面是 GitHub Actions 的核心配置(精简版):

on:
  push:
    paths:
      - 'content/posts/**/*.md'
      - 'content/misc/**/*.md'
  schedule:
    - cron: '0 2 * * *' # 防止漏翻译,顺便控制 API 调用频率
  workflow_dispatch:

jobs:
  check-and-translate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: actions/setup-python@v5
        with:
          python-version: '3.13'
      - run: make install-deps
      - run: make translate
        env:
          GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

依赖和翻译逻辑我放在了 Makefile 里:

install-deps:
	pip3 install -r requirements.txt

translate:
	python3 .github/auto_translate.py

效果与启发
#

最终效果很不错:

省心:不需要手动翻译、复制粘贴; 高效:写一篇中文文章,英文版几乎同步生成; 省钱:借助 Gemini API + Netlify,几乎零成本。

更重要的是:其实很多“看似麻烦的小事”,都可以通过 AI + 自动化 解决。 写博客只是一个例子,把思路延展出去,还能应用在很多场景里: 比如技术文档的双语支持、团队知识库的国际化,甚至公司内部 wiki 的翻译。

最后
#

别把时间浪费在“重复劳动”上,交给工具和自动化去做;把精力留给更有创造力的事情。

如果你也有写博客、写文档的习惯,希望这篇文章能给你一些启发。

完整代码在这里 👉 GitHub 仓库

相关文章

做开源四年,我得到了 3 个意想不到的收获
有人说开源没用,既赚不到钱,又浪费时间。但我在四年的坚持中,发现了 3 个意想不到的收获:让工作被真正看到、接触更优秀的人和项目、以及一份长期的价值积累。这些收获,其实每个开发者都能借鉴。
八年之后,我终于翻新了我的博客
·935 字·2 分钟
本文记录了我在八年后对博客进行翻新的过程,从 Hexo 到 Hugo 的迁移,以及新博客的功能和设计改进。
为什么我选择参与 EuroPython 2025 评审?
·1153 字·3 分钟
最近工作之余没怎么贡献代码,主要把时间都用在了评审 EuroPython 2025 (欧洲 Python 2025 大会)的提案上了。
你的团队 DevOps 到底“几分熟”?这个开源工具告诉你
·932 字·2 分钟
如何评估并提升团队的 DevOps 实践水平?我正式发布了开源项目 DevOps Maturity —— 提供评估工具与实践指南。基于业界模型 + 开源工具,几分钟即可快速测出团队的 DevOps 成熟度。
被 Airflow Maintainer 一顿夸:Rust 重写版 pre-commit 项目 prek 的崛起
·1242 字·3 分钟
昨天在网上冲浪,突然看到了一个仓库叫 prek,一看介绍是 —— ⚡ Better pre-commit, re-engineered in Rust。这就引起了我的兴趣,毕竟 pre-commit 作为非常广泛的预提交的工具,如果能改进,尤其是性能方面的改进,肯定是好事。
Jenkins Explain Error Plugin 支持 Google Gemini 了!🤖
·528 字·2 分钟
本文介绍了 Jenkins Explain Error Plugin 的新功能,支持 Google Gemini 模型进行错误分析,并提供了配置方法和示例视频。