Skip to content

Multi‐language websites

David Carayon edited this page May 30, 2024 · 2 revisions

Auteur : Eric Quinton, Hilaire Drouineau

Configurer un projet quarto de site web pour supporter le multilangage

Par défaut, Quarto publie les sites web générés à partir de fichiers markdown dans un sous-dossier docs. Il est possible d'adapter la configuration pour créer, dans le dossier docs, un sous-dossier correspondant à une seconde langue.

Modifier la configuration yaml

Nous partons du principe que la première langue qui sera affichée est le français. Si vous voulez l'inverse, adaptez les configurations.

Créez deux nouveaux fichiers yaml, un pour chaque langue :

cp _quarto.yml _quarto-french.yml
cp _quarto.yml _quarto-english.yml
mv _quarto.yml _quarto_yml.ori

Créez un nouveau fichier _quarto.yml, contenant les instructions suivantes :

project:
  type: inrae-project-website
  
profile:
  default: french
  group: [french, english]

et modifiez les fichiers par langue ainsi :

_quarto-french.yml :

project:
  output-dir: docs
  resources: images
# Set language
lang: fr

# Set bibliography source
(...)
    right:
      - href: ./en
        text: En
(...)

_quarto-english.yml :

project:
  output-dir: docs/en
  resources: images

# Set language
lang: en

# Set bibliography source
(...)
    right:
      - href: ../
        text: fr
(...)

Intégrer les textes dans les deux langues dans les fichiers markdown

Modifiez votre texte ainsi :

::: {.content-visible when-profile="french"}

Texte en français

:::

::: {.content-visible when-profile="english"}

Text in English

:::

N'oubliez-pas de mettre des lignes blanches avant et après chaque ligne de commande, c'est un impératif de Markdown…

Compiler les textes pour créer le site

Vous devez indiquer le profil que vous souhaitez compiler :

quarto render --profile french
quarto render --profile english

Adapter le runner pour Gitlab

Si vous utilisez un runner gitlab, modifiez le fichier .gitlab-ci.yml :

#The Docker image that will be used to build your app
image: rocker/verse:4.4.0
variables:
  RENV_PATHS_CACHE: ${CI_PROJECT_DIR}/renv/cache

cache:
  key: ${CI_JOB_NAME}
  paths:
    - ${RENV_PATHS_CACHE}

before_script:
  - Rscript -e "if (!requireNamespace('renv', quietly = TRUE)) install.packages('renv')"
  - Rscript -e "renv::restore()"
  

pages:
  stage: deploy
  script:
    - quarto add --no-prompt quarto-ext/fontawesome
    - quarto render --profile french
    - quarto render --profile english
  publish: site
  artifacts:
    paths:
      - site
  rules:
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH

Clone this wiki locally