Statamic multisite : traduire un site Laravel (multilingue & multi-sites)
Un seul projet Statamic peut servir plusieurs langues ou plusieurs sites : URLs dédiées (/fr, /es, sous-domaines…), contenus traduits dans le Control Panel, champs partagés ou localisables.
Guide pratique pour un site multilingue (ex. agent immobilier FR/EN/ES) ou un SaaS multi-clients — avec la doc officielle Multi-Site et la démo vidéo.
Statamic multisite : gérer plusieurs langues (et plusieurs sites) avec un seul CMS
Après le choix flat file / base de données, on aborde le multisite Statamic : une installation Laravel, plusieurs versions du contenu (langues, marchés, marques) ou plusieurs sites clients dans un même back-office.
Cas d’usage fréquents :
- Site multilingue : français, anglais, espagnol… avec URLs et SEO par locale ;
- SaaS : une instance Statamic, N sites (ex. une église = un site), rôles par client (voir prochain volet permissions).
Référence : Multi-Site — documentation Statamic.
Multisite Statamic : de quoi parle-t-on ?
Chaque site (handle unique) définit notamment :
- un nom affiché dans le CP ;
- une URL de base (racine, sous-dossier ou domaine) ;
- une locale / lang (formats dates, langue du CP, attribut
langHTML).
Exemples d’URL pour le SEO international :
| Stratégie | Exemple |
|---|---|
| Sous-dossiers | monsite.com/ (EN), monsite.com/fr/, monsite.com/es/ |
| Sous-domaines | fr.monsite.com, es.monsite.com |
| Domaines séparés | monsite.fr, monsite.es |
Le choix impacte le référencement (hreflang, structure d’URL) ; Statamic gère la technique côté contenu et génération d’URLs.
Activer le multisite sur un projet Laravel
-
Dans
config/statamic/system.php:'multisite' => true. -
Déclarer les sites dans
resources/sites.yaml(ou via le CP, menu Sites) :
default:
name: Français
url: /
locale: fr_FR
lang: fr
en:
name: English
url: /en/
locale: en_US
lang: en
es:
name: Español
url: /es/
locale: es_ES
lang: es
- Pour migrer un site mono-langue existant :
php please multisite(commande documentée sur Multi-Site).
Anciennes versions utilisaient parfois config/statamic/sites.php ; en Statamic 6, la config vit surtout dans resources/sites.yaml.
Collections, entrées et traduction dans le Control Panel
Par collection, vous indiquez quels sites sont concernés (ex. la collection pages en FR, EN et ES).
À l’édition d’une entrée (page d’accueil, etc.), le CP affiche des onglets par site : vous remplissez le contenu français, puis basculez sur anglais ou espagnol pour adapter textes et métadonnées.
Vous pouvez aussi changer de site dans le CP pour voir uniquement le contenu d’une locale — pratique pour les équipes ou les clients limités à leur site.
Tout ce qui est géré par Statamic peut suivre la même logique : pages, collections, navigations, globales (footer, réglages), etc.
Blueprints : champs traduisibles ou partagés
Dans un blueprint, chaque champ peut être localisable (icône globe dans le CP) ou non :
- Titre, texte, SEO → en général localisable (traduction par langue).
- Image d’illustration identique partout → souvent non localisable : toutes les locales réutilisent la valeur de l’origine.
Création typique : rédiger la page en français, puis publier la variante anglaise en reprenant les données d’origine et en ne modifiant que ce qui change — gain de temps énorme pour un site multilingue.
Exemple métier : site immobilier trilingue
Cas réel (agent immobilier vers Toulouse) : contenu ES / FR / EN, switch de langue côté front, même structure de pages.
Côté Statamic : trois sites dans sites.yaml, collection pages liée aux trois handles, blueprints avec titres localisables et visuels partagés si besoin.
Côté template : boucle {{ sites }} pour un sélecteur de langue (lien vers chaque url de site) — voir Building a site switcher.
SaaS : plusieurs clients, une seule instance Statamic
Pour un produit type générateur de sites (ex. une église = un mini-site) :
- Un dépôt Laravel + Statamic, plusieurs sites dans
sites.yaml(site_eglise_a, site_eglise_b…) ; - contenu et URLs isolés par site ;
- utilisateurs, rôles et permissions pour qu’un client ne modifie que son site (sujet de la vidéo suivante de la série).
Ce n’est pas le même besoin qu’un simple site bilingue, mais le même moteur multisite — avec la doc qui précise que pour des sites totalement indépendants sans lien de contenu, d’autres modèles (hébergement / offre plateforme) peuvent être envisagés.
Statamic Pro et multisite
Certaines capacités avancées relèvent de Statamic Pro (mention « Pro » dans le CP). La configuration multisite de base reste accessible pour structurer langues et sites ; les fonctionnalités Pro (permissions fines, révisions, etc.) feront l’objet d’un autre épisode.
Vidéo : multisite et multilingue en pratique
FAQ rapide (SEO & technique)
Peut-on gérer plusieurs langues avec un seul Statamic ?
Oui : plusieurs sites (handles) dans une installation, contenus liés par entrée d’origine et traductions par onglet.
Où configurer les URLs par langue ?
Dans resources/sites.yaml, champ url par site (/fr/, sous-domaine, etc.).
Faut-il dupliquer toutes les images par langue ?
Non : désactivez « localisable » sur les champs Asset à partager.
Comment passer du mono au multisite ?
php please multisite puis configuration des collections et champs localisables.
Conclusion
Statamic multisite permet de traduire un site Laravel proprement (URLs, CP, champs ciblés) ou d’héberger plusieurs sites dans un même CMS — jusqu’au SaaS multi-tenant avec permissions par client.
Prochaine étape logique de la série : utilisateurs, rôles et permissions Statamic (Pro).