La scelta tecnica

Per la realizzazione del sito web BalziBox si è utilizzato HUGO come generatore di pagine web statiche con prestazioni fulminee. Sono state apportate delle piccole correzioni al tema PaperMod su difficoltà riscontrate nella gestione multilingua.

Su github sono state pubblicate le modifiche suggerite.

Appversione
Hugo:v0.133.0
PaperMod release:7.0

Esempio di content creato in questo caso articoli: /content/articles

Configurazione hugo.yaml

...
languages:
    en:  
        permalinks:
        page:
            articles: /articles/:slug/
        section:
            articles: /articles/
        menu:
            main:
                - name: Articles
                url: articles/
    it:
        permalinks:
        page:
            articles: /articoli/:slug/
        section:
            articles: /articoli/
        menu:
            main:
                - name: Articoli
                url: articoli/
...

Il problema risiede nei breadcrumbs, che non vengono letti correttamente nella lingua italiana. La modifica al file /layouts/partials/breadcrumbs.html rappresenta la soluzione.

{{- if (.Param "ShowBreadCrumbs") -}}
<div class="breadcrumbs">
    {{- range .Ancestors.Reverse }}
    <a href="{{ .RelPermalink }}">{{ if .IsHome }}{{ i18n "home" }}{{ else }}{{ print "&nbsp;»&nbsp;" | safeHTML }}{{ .Title }}{{ end }}</a>    
    {{- end -}}
</div>
{{- end -}}

Traduzione della pagina tags

Configurazione hugo.yaml

...
languages:
    en:
        taxonomies:
        tag: tags
    it:
        taxonomies:
        tag: etichette
...

Per tags il problema si presenta solo nella lingua italiana, non vengono mostrate le etichette.

La soluzione:

# i18n/en.yaml
- id: tag
  translation: "tags"

# i18n/it.yaml  
- id: tag
  translation: "etichette"

Per risolvere bisogna cambiare il codice della pagina /layouts/_default/single.html

    <!-- codice originale -->
    {{- $tags := .Language.Params.Taxonomies.tag | default "tags" }}
    <!-- codice modificato -->
    {{- $tags := .Language.Params.Taxonomies.tag | default | i18n "tag" }}