最近、個人ブログに「大改修」を施しました。 単一言語バージョンから多言語サイト(簡体字中国語、繁体字中国語、英語、日本語)にアップグレードし、 その全プロセスを自動化しました。💪

主な内容は以下の通りです。


なぜ Hugo を選んだのか?

それは、その自信に満ちたスローガンがあったからです。

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

—— この一言で、これに決めました 😆。

しかし、私は「一つのテーマで多言語を切り替える」という伝統的な方法ではなく、 各言語に独立したテーマを持たせることにしました。 これにより、各言語バージョンが独自のデザインとレイアウトスタイルを保持し、 真に「文化的なローカライゼーション」を実現できます。


設計目標と制約 🎯


多言語設定戦略 🧩

各言語用に個別の設定ファイルを用意しました。 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

このプロセス全体で、コンテンツ同期 → 自動翻訳 → 独立構築 → 自動デプロイの完全な閉ループが実現しました。 これからは記事を書くだけで、残りはスクリプトに任せればOKです。✨

图 0

後書き 🪶

これ以前に、MoeKoe Music Web MoeKoe Music も国際化対応を始めていましたが、 ブログはなかなか追いつけずにいました。今回ようやく対応できました。😄

最大の収穫は多言語サイトそのものではなく、 「コンテンツを世界にどうすればもっと見てもらえるか」ということを再考できたことです。

これこそがブログをいじる意味なのかもしれませんね。😉

图 1

著作権表示

著者: MoeJue

リンク: https://ja.moejue.cn/posts/291/

ライセンス: クリエイティブ・コモンズ表示-非営利-継承4.0国際ライセンス

この作品は、クリエイティブ・コモンズ表示-非営利-継承4.0国際ライセンスに基づいてライセンスされています。

検索を開始

キーワードを入力して記事を検索

↑↓
ESC
⌘K ショートカット