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/