本記事で行うこと

PaperMod テーマを適用した Hugo サイトの日本語化を行います。

設定方法

hugo.toml に以下の設定を追加します。解散。

defaultContentLanguage = 'ja'

- Multilingual mode | Hugo

きっかけ

PaperMod テーマを適用した本サイトを確認した時に、 Chrome の翻訳パネルが表示されました。languageCode で日本語に設定したはずと思いながら、ちゃんと日本語に対応しておきたいと感じたことがきっかけでした。

挙動の調査

ソースコードを確認すると、HTML の言語属性が <html lang="en" dir="auto"> になっていました。hugo new theme で作成したテーマでは <html lang="ja" dir="ltr"> でした。これをどのように設定したら ja に設定できるかを調査しました。

languageCode が効かない

PaperMod テーマは hugo.toml のトップレベルで設定した languageCode によって HTML の言語属性 lang 属性が変わらないテンプレートでした。

PaperMod テーマの layouts/_default/baseof.html を確認してみると、該当行は以下のようになっていました。

<html lang="{{ site.Language }}" dir="{{ .Language.LanguageDirection | default "auto" }}">

それに対し、 hugo new theme で生成した layouts/_default/baseof.html は以下のようになっていました。 site.Languagesite.Language.LanguageCode では参照する設定値が違うようです。

<html lang="{{ or site.Language.LanguageCode site.Language.Lang }}" dir="{{ or site.Language.LanguageDirection `ltr` }}">

defaultContentLanguage にたどり着く

PaperMod 側の表記を検索してみると Languages | Hugo にたどり着きました。このドキュメントを参考に日本語の設定を行うと、 HTML の言語属性が <html lang="ja" dir="ltr"> に代わりました。

defaultContentLanguage = 'ja'
[languages]
  [languages.ja]
    languageCode = 'ja-JP'
    languageDirection = 'ltr'
    languageName = 'Japanese'
    weight = 1

defaultContentLanguage について検索してみると Configure Hugo | Hugo のドキュメントにたどり着きました。この設定のデフォルト値は en でした。 [languages] と併用するとも書かれていないため、以下のように書き換えたところ、エラーが出力されずにサイトの生成ができました。[languages]多言語モードでサイトを運用する時に使用する設定値のようです。

defaultContentLanguage = 'ja'

適用されてから気付いたことなのですが、PaperMod テーマには日本語用の設定ファイルがあり、それらが読み込まれた結果、記事の頭にあるの「Table of Contents」が「目次」に置き換わっていました。

おまけ:執筆時の PaperMod 用の config

構築時の記事では新規に作成したテーマで本ブログサイトの構築を行いました。早速、完成されたテーマに抗えなくなったので PaperMod テーマを適用しました。

執筆時の config.toml は以下のようになっています。

baseURL = 'https://yomashishi.info/'
languageCode = 'ja'
title = 'よましし情報'
hasCJKLanguage = true
theme = 'PaperMod'

defaultContentLanguage = 'ja'

[params]
UseHugoToc = true
showtoc = true
DateFormat = '2006-01-02'
ShowCodeCopyButtons = true
ShowBreadCrumbs = true
disableSpecial1stPost = true
ShowPostNavLinks = true

[[menu.main]]
identifier = "archives"
name = "Archive"
url = "/archives/"
weight = 10

[[menu.main]]
identifier = "tags"
name = "Tags"
url = "/tags/"
weight = 20

設定値については Installation · adityatelange/hugo-PaperMod Wiki を参考にしました。 TOML の設定ファイルで運用してみたかったため、サンプルの YAML を YAML to TOML で変換して設定しています。

最後に

本記事では PaperMod テーマを適用した Hugo サイトの日本語化についてまとめてみました。

本記事が誰かの役に立てられたら幸いです。最後まで読んでいただきありがとうございました。