Add language switcher and language detection

This commit is contained in:
2026-08-11 12:25:14 +02:00
parent 3e7c831dac
commit df489c6c79
11 changed files with 526 additions and 384 deletions
+226 -162
View File
@@ -3,26 +3,7 @@ baseURL = "/"
title = ""
theme = "chill-theme"
defaultContentLanguage = "fr"
disableLanguages = ["en", "nl"]
# Language configuration
[languages]
[languages.fr]
languageCode = "fr-fr"
languageName = "Français"
weight = 1
contentDir = "content"
[languages.en]
languageCode = "en-us"
languageName = "English"
weight = 2
contentDir = "content/en"
[languages.nl]
languageCode = "nl-nl"
languageName = "Nederlands"
weight = 3
contentDir = "content/nl"
defaultContentLanguageInSubdir = false
# Required Features
enableEmoji = true # Enable emoji support
@@ -69,14 +50,13 @@ pagination = { pagerSize = 6, path = "page" }
category = 'categories'
tag = 'tags'
# Theme Parameters
# Theme Parameters shared by every language.
# Anything language specific lives under [languages.<lang>.params] below.
[params]
description = "Logiciel libre d'accompagnement social"
author = "Champs-Libres"
logo = "/images/logo-darkmode.png" # Path to your logo
customCSS = ["css/custom.css"]
# Header Configuration
[params.header]
background = "header backdrop-blur-sm"
@@ -84,7 +64,6 @@ pagination = { pagerSize = 6, path = "page" }
menu.linkClass = "text-white hover:text-primary font-bold transition duration-200"
[params.header.buttons.demo]
text = "Démo"
url = "http://demo.chill.social/"
mobileClass = "block text-center px-6 py-3 rounded-lg font-bold transition duration-200 ease-in-out bg-primary-400 text-white hover:bg-primary-400 hover:scale-105"
open_tab = true
@@ -93,154 +72,239 @@ pagination = { pagerSize = 6, path = "page" }
[params.header.logo]
src = "/images/logo-darkmode.png"
[params.pdfFolder]
name = "Voir la brochure CHILL"
filename = "Brochure_Chill.pdf"
url = "/pdf/Brochure_Chill.pdf"
# Global CTA Configuration (optional)
[params.cta]
enable = true
title = "Prêt·e à commencer ?"
description = "Testez Chill dès aujourd'hui et découvrez comment il peut transformer votre gestion sociale."
enable = true
# Gradient background
gradient_from = "#0d242e" # Blue-600
gradient_to = "#23627e" # Purple-600
gradient_angle = 30
# Gradient background
gradient_from = "#0d242e" # Blue-600
gradient_to = "#23627e" # Purple-600
gradient_angle = 30
# Primary button
[params.cta.primary_button]
text = "Réserver une démo"
url = "/contact?subject=demo"
open_tab = false
# Secondary button
[params.cta.secondary_button]
text = "Essayer la démo"
url = "http://demo.chill.social/"
open_tab = true
# Social Media Links (optional)
[params.social]
gitlab = "https://gitlab.com/Chill-Projet/chill-bundles"
# Navigation Menu
[menu]
[[menu.main]]
name = "Fonctionnalités"
url = "/features"
weight = 1
[[menu.main]]
name = "Secteur d'activités"
weight = 2
url = "/sector"
[menu.main.params]
has_submenu = true
submenu = [
{ name = "Grandes Collectivités", url = "/sector/collectivities" },
{ name = "Services et associations", url = "/sector/associations" },
]
[[menu.main]]
name = "Tarification"
url = "/pricing"
weight = 3
[[menu.main]]
name = "Ressources"
weight = 4
[menu.main.params]
has_submenu = true
submenu = [
# { name = "Blog", url = "/resources/blog" },
{ name = "Manuels", url = "/resources/manuals" },
{ name = "Tutoriels", url = "/resources/tutorials" },
{ name = "Installation", url = "/resources/installation" },
{ name = "Documentation technique", url = "/resources/technical-documentation" },
{ name = "FAQ", url = "/resources/faq" }
]
[[menu.main]]
name = "Nous contacter"
url = "/contact"
weight = 5
[[menu.footer_column]]
name = "Champs-Libres"
url = "https://www.champs-libres.coop/"
weight = 1
# ---------------------------------------------------------------------------
# Languages
# French is the default language and is served from the site root ("/"),
# English lives under "/en/" and Dutch under "/nl/".
# ---------------------------------------------------------------------------
[languages]
# ------------------------------- Français ----------------------------------
[languages.fr]
languageCode = "fr-fr"
languageName = "Français"
weight = 1
contentDir = "content/fr"
[languages.fr.params]
description = "Logiciel libre d'accompagnement social"
[languages.fr.params.header.buttons.demo]
text = "Démo"
[languages.fr.params.pdfFolder]
name = "Voir la brochure CHILL"
filename = "Brochure_Chill.pdf"
url = "/pdf/Brochure_Chill.pdf"
[languages.fr.params.cta]
title = "Prêt·e à commencer ?"
description = "Testez Chill dès aujourd'hui et découvrez comment il peut transformer votre gestion sociale."
[languages.fr.params.cta.primary_button]
text = "Réserver une démo"
url = "/contact?subject=demo"
open_tab = false
[languages.fr.params.cta.secondary_button]
text = "Essayer la démo"
url = "http://demo.chill.social/"
open_tab = true
[languages.fr.menu]
[[languages.fr.menu.main]]
name = "Fonctionnalités"
url = "/features"
weight = 1
[[languages.fr.menu.main]]
name = "Secteur d'activités"
url = "/sector"
weight = 2
[languages.fr.menu.main.params]
has_submenu = true
submenu = [
{ name = "Grandes Collectivités", url = "/sector/collectivities" },
{ name = "Services et associations", url = "/sector/associations" },
]
[[languages.fr.menu.main]]
name = "Tarification"
url = "/pricing"
weight = 3
[[languages.fr.menu.main]]
name = "Ressources"
weight = 4
[languages.fr.menu.main.params]
has_submenu = true
submenu = [
# { name = "Blog", url = "/resources/blog" },
{ name = "Manuels", url = "/resources/manuals" },
{ name = "Tutoriels", url = "/resources/tutorials" },
{ name = "Installation", url = "/resources/installation" },
{ name = "Documentation technique", url = "/resources/technical-documentation" },
{ name = "FAQ", url = "/resources/faq" }
]
[[languages.fr.menu.main]]
name = "Nous contacter"
url = "/contact"
weight = 5
[[languages.fr.menu.footer_column]]
name = "Champs-Libres"
url = "https://www.champs-libres.coop/"
weight = 1
# ------------------------------- English -----------------------------------
[languages.en]
languageCode = "en-us"
languageName = "English"
weight = 2
contentDir = "content/en"
[languages.en.params]
description = "Free and open source software for social work"
[languages.en.params.header.buttons.demo]
text = "Demo"
[languages.en.params.pdfFolder]
name = "See the CHILL brochure"
filename = "Brochure_Chill.pdf"
url = "/pdf/Brochure_Chill.pdf"
[languages.en.params.cta]
title = "Ready to get started?"
description = "Try Chill today and discover how it can transform the way you manage social support."
[languages.en.params.cta.primary_button]
text = "Book a demo"
url = "/en/contact?subject=demo"
open_tab = false
[languages.en.params.cta.secondary_button]
text = "Try the demo"
url = "http://demo.chill.social/"
open_tab = true
[languages.en.menu]
[[languages.en.menu.main]]
name = "Features"
url = "/features"
weight = 1
[[languages.en.menu.main]]
name = "Installation"
weight = 2
[languages.en.menu.main.params]
has_submenu = true
submenu = [
{ name = "By Champs Libres", url = "/install/hosted" },
{ name = "Self-hosted", url = "/install/on-premise" }
]
[[languages.en.menu.main]]
name = "Pricing"
url = "/pricing"
weight = 3
[[languages.en.menu.main]]
name = "Resources"
weight = 4
[languages.en.menu.main.params]
has_submenu = true
submenu = [
# { name = "Blog", url = "/resources/blog" },
{ name = "Technical Documentation", url = "/resources/technical-documentation" },
{ name = "Manuals", url = "/resources/manuals" },
{ name = "Tutorials", url = "/resources/tutorials" },
{ name = "FAQ", url = "/resources/faq" }
]
[[languages.en.menu.main]]
name = "Contact Us"
url = "/contact"
weight = 5
[[languages.en.menu.main]]
name = "Features"
url = "/en/features"
weight = 1
[[languages.en.menu.main]]
name = "Sectors"
url = "/en/sector"
weight = 2
[languages.en.menu.main.params]
has_submenu = true
submenu = [
{ name = "Large local authorities", url = "/en/sector/collectivities" },
{ name = "Services and non-profits", url = "/en/sector/associations" },
]
[[languages.en.menu.main]]
name = "Pricing"
url = "/en/pricing"
weight = 3
[[languages.en.menu.main]]
name = "Resources"
weight = 4
[languages.en.menu.main.params]
has_submenu = true
submenu = [
# { name = "Blog", url = "/en/resources/blog" },
{ name = "Manuals", url = "/en/resources/manuals" },
{ name = "Tutorials", url = "/en/resources/tutorials" },
{ name = "Installation", url = "/en/resources/installation" },
{ name = "Technical documentation", url = "/en/resources/technical-documentation" },
{ name = "FAQ", url = "/en/resources/faq" }
]
[[languages.en.menu.main]]
name = "Contact us"
url = "/en/contact"
weight = 5
[[languages.en.menu.footer_column_1]]
name = "Download the CHILL brochure"
url = "/pdf/Brochure_Chill.pdf"
weight = 1
[[languages.en.menu.footer_column]]
name = "Champs-Libres"
url = "https://www.champs-libres.coop/"
weight = 1
# ------------------------------ Nederlands ---------------------------------
[languages.nl]
languageCode = "nl-nl"
languageName = "Nederlands"
weight = 3
contentDir = "content/nl"
[languages.nl.params]
description = "Vrije en opensource software voor maatschappelijk werk"
[languages.nl.params.header.buttons.demo]
text = "Demo"
[languages.nl.params.pdfFolder]
name = "Bekijk de CHILL-brochure"
filename = "Brochure_Chill.pdf"
url = "/pdf/Brochure_Chill.pdf"
[languages.nl.params.cta]
title = "Klaar om te starten?"
description = "Probeer Chill vandaag nog en ontdek hoe het uw sociale begeleiding kan transformeren."
[languages.nl.params.cta.primary_button]
text = "Een demo boeken"
url = "/nl/contact?subject=demo"
open_tab = false
[languages.nl.params.cta.secondary_button]
text = "De demo uitproberen"
url = "http://demo.chill.social/"
open_tab = true
[languages.nl.menu]
[[languages.nl.menu.main]]
name = "Functies"
url = "/features"
weight = 1
[[languages.nl.menu.main]]
name = "Installatie"
weight = 2
[languages.nl.menu.main.params]
has_submenu = true
submenu = [
{ name = "Door Champs Libres", url = "/install/hosted" },
{ name = "Zelf gehost", url = "/install/on-premise" }
]
[[languages.nl.menu.main]]
name = "Prijsstelling"
url = "/pricing"
weight = 3
[[languages.nl.menu.main]]
name = "Bronnen"
weight = 4
[languages.nl.menu.main.params]
has_submenu = true
submenu = [
{ name = "Technische Documentatie", url = "/resources/technical-documentation" },
{ name = "Handleidingen", url = "/resources/manuals" },
{ name = "Tutorials", url = "/resources/tutorials" },
{ name = "FAQ", url = "/resources/faq" },
# { name = "Blog", url = "/resources/blog" }
]
[[languages.nl.menu.main]]
name = "Contacteer Ons"
url = "/contact"
weight = 5
[[languages.nl.menu.main]]
name = "Functionaliteiten"
url = "/nl/features"
weight = 1
[[languages.nl.menu.main]]
name = "Sectoren"
url = "/nl/sector"
weight = 2
[languages.nl.menu.main.params]
has_submenu = true
submenu = [
{ name = "Grote lokale besturen", url = "/nl/sector/collectivities" },
{ name = "Diensten en verenigingen", url = "/nl/sector/associations" },
]
[[languages.nl.menu.main]]
name = "Tarieven"
url = "/nl/pricing"
weight = 3
[[languages.nl.menu.main]]
name = "Hulpbronnen"
weight = 4
[languages.nl.menu.main.params]
has_submenu = true
submenu = [
# { name = "Blog", url = "/nl/resources/blog" },
{ name = "Handleidingen", url = "/nl/resources/manuals" },
{ name = "Tutorials", url = "/nl/resources/tutorials" },
{ name = "Installatie", url = "/nl/resources/installation" },
{ name = "Technische documentatie", url = "/nl/resources/technical-documentation" },
{ name = "FAQ", url = "/nl/resources/faq" }
]
[[languages.nl.menu.main]]
name = "Contacteer ons"
url = "/nl/contact"
weight = 5
[[languages.nl.menu.footer_column_1]]
name = "Download de CHILL-brochure"
url = "/pdf/Brochure_Chill.pdf"
weight = 1
[[languages.nl.menu.footer_column]]
name = "Champs-Libres"
url = "https://www.champs-libres.coop/"
weight = 1