Multilingue
L’aspect back-office du multilingue est documenté dans la partie admin.
Nous partons du multilingue tel qu’il fonctionne dans les sites Hugo pour générer des fichiers corrects depuis Osuny.
La configuration
Nous utilisons un fichier languages.yml
ar:
title: مدونتي
contentDir: content/ar
languagedirection: rtl
languageCode: ar
languageName: العربية
en:
title: My blog
contentDir: content/en
languageCode: en
languageName: English
fr:
title: Mon blogue
contentDir: content/fr
languageCode: fr
languageName: Français
pt-pt:
title: O meu blog
contentDir: content/pt-pt
languageCode: pt-PT
languageName: Portugues
Il faut aussi d’autres options de configuration qui sont regroupées dans les fichiers production/config.yaml
et development/config.yaml
.
## LANGUAGE
defaultContentLanguage: fr
defaultContentLanguageInSubdir: true
Ça permet de rediriger la racine du site “/” vers la langue par défaut “/fr/”.
Si on est sur un site avec une seule langue le paramètre defaultContentLanguageInSubdir
est simplement ignoré par Hugo (du moins actuellement en version 0.108).
Traduction du thème
Le thème est traduit en français, anglais et portugais. Les fichiers se trouvent dans osuny/i18n/
.
Vous pouvez modifier les clés en override en ajoutant un dossier dans votre site /i18n/
. Hugo fusionne les clés, vous pouvez alors ajouter ou modifier uniquement les clés souhaitées (sans copier-coller tout le fichier de traduction).
Recherche d’une préférence de langue et redirection automatique
On redirige automatiquement les utilisateurices vers la langue de leur navigateur si le site est traduit dans cette même langue.
Dans le fichier alias.html
:
- on récupère la langue préférée du navigateur
- on vérifie qu’on est sur la page d’accueil
- on cherche une correspondance dans les langues disponibles du site avec la langue du navigateur
- si il y a une correspondance, on redirige sur la page d’accueil dans la bonne langue
- sinon, on redirige sur la langue par défaut (la master du site)
Merci à nanmu42 ! https://nanmu.me/en/posts/2020/hugo-i18n-automatic-language-redirection/