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.
App | versione |
---|---|
Hugo: | v0.133.0 |
PaperMod release: | 7.0 |
Breadcrumbs multilingua
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 " » " | 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" }}