Hugo で言語ごとに設定ファイルを分ける

Hitoshi Arakawa | 2024/05/20 Mon 03:10
環境:
・macOS Ventura 13.5(英語環境)
・Hugo v0.119.0
・Hugo テーマ:Hugo Profile

Hugo の Hugo Profile テーマでは設定ファイルの config.yaml 内でトップページの表示を設定する。

問題はサイトを多言語化した場合だ。

通常は Hugo を多言語化した場合は、config.yaml の languages: の項目で言語ごとに設定を記入すればいい。しかし、Hugo Profile テーマでは params: の項目がやたら長い。languages: 内に言語ごとに分けて記入するのは非常に分かりにくい。

僕はデフォルト言語を日本語にしているが、languages: の en: の部分に英語の params: だけを書き、それ以外は launguages: 外に書けば自動的にそれが日本語の設定になる。このやり方であってもやはり params: の項目が多いのでわかりにくくなるので避けたい。

そこで config.yaml 内の params: 部分を別ファイルにし、config.yaml から呼び出すことにした。今回は日本語と英語で prams を変えたいので config.yaml の他に日本語と英語の計2つの設定ファイルを作成することになる。

(1)Hugo のプロジェクトのルートディレクトリに config/_default というディレクトリを作成する。

(2)1の中に config.yaml を移動する。

(3)1の中に params.en.yaml と params.ja.yaml を作成する。ファイル名の params の部分は今回 config.yaml で外部化したい項目が params: だからだ。だから menus: を外部化したいなら menus.en.yaml と menus.ja.yaml を作成することになる。

(4)config.yaml の params: の部分を削除する。

(5)4で削除した部分を params.en.yaml と params.ja.yaml にそれぞれペーストする。ただし、1行目の params: は削除する。

あとは params.en.yaml と params.ja.yaml でそれぞれ英語と日本語で設定内容をそれぞれ記述すると、言語を切り替えるたびにそれぞれの言語用の params: の設定が呼び出される。

この方法を知って、Hugo はなんてエレガントなツールなんだろうと思った。

参考:
Multilingual mode | Hugo
https://gohugo.io/content-management/multilingual/

バスカヴィル家の犬 【新訳版】 シャーロック・ホームズ・シリーズ (創元推理文庫) | アーサー・コナン・ドイル, 深町 眞理子 | 英米の小説・文芸 | Kindleストア | Amazon
https://amzn.to/4bsGeVU