Rendre son site ParoiCMS multilingue

Pour créer un site multilingue avec ParoiCMS, il suffit de lancer la CLI en précisant la liste des langues concernées. Par exemple :

npx @paroicms/cli --create mywebsite --language "en,fr"

Dans le cas où vous avez déjà un site en une seule langue, les étapes ci-dessous vous aiderons à le transformer en un site multilingue.

Étape 1 - Ajouter la langue dans le schéma du site

Éditez le fichier site-schema.json et modifiez le contenu de la clé languages pour ajouter la nouvelle langue.

  "languages": ["en", "fr"],

Étape 2 - Traduire le schéma du site

Dupliquez le fichier d'une traduction existante (par exemple site-schema.l10n.en.json) pour créer la traduction dans la nouvelle langue (par exemple site-schema.l10n.fr.json). Puis, éditez le fichier dupliqué et traduisez son contenu en conservant les mêmes clés.

Ces traductions sont utilisées essentiellement dans l'espace d'administration.

Étape 3 - Ajouter un template index.liquid

Un site multilingue doit avoir un template en plus pour le rendu de la page racine du site. Cette page contient les liens vers les différentes pages d'accueil localisées du site.

Créez le fichier theme/templates/index.liquid s'il n'existe pas. Voici un exemple de code Liquid à utiliser dans ce template :

<p>
  {% for translation in doc.translations %}
    <a href="{{ translation.url }}">{{ translation.languageLabel }}</a>
  {% endfor %}
</p>

Étape 4 - Traductions des templates

Créez un dossier theme/locales/. Dans ce dossier, ajoutez un fichier JSON nommé avec le code à deux lettres de la nouvelle langue et l'extension .json.

Par exemple, le fichier fr.json pourrait contenir :

{
  "About us": "Qui sommes-nous",
  "Contact us": "Nous contacter"
}

Ensuite, dans les templates Liquid, vous pouvez accéder à une traduction en utilisant le filtre t :

{{ "Contact us" | t }}

Ce filtre retourne la traduction lorsqu'elle existe, ou à défaut la clé à traduire. Il n'est donc pas nécessaire de créer un fichier de traduction pour la première langue du site.

Votre site est multilingue

C'est terminé. Votre site multilingue est prêt. ParoiCMS se chargera d'insérer la langue dans les URLs de votre site.