Skip to contents

The goal of this vignette is to show how you can have multilingual parts in your custom templates.

If you need a more advanced way of customizing you project, you can use Quarto’s custom templates. This allows you to have a more fine-grained control over the render of your pages.

In order to use the multilingual features of {babelquarto} in your custom templates, we provide a variable for each language rendered in the project. The variable is named lang-en for an English render, lang-fr for a French render and so on. This allows you to have different content for each language in your custom templates. You can use pandoc’s $if(lang-en)$ syntax to conditionally include content based on the language.

Example

If you want to have a specific metadata block on your webpage, you might want to use the medadata.html partial from Quarto.

You would configure your _quarto.yml file like this:

format:
  html:
    template-partials:
      - metadata.html

In your metadata.html file, you can use the lang-en variable to have a specific metadata block for the English render and the lang-fr variable for the French render. The end of the metadata.html template would be:

<!-- copy content from https://github.com/quarto-dev/quarto-cli/blob/main/src/resources/formats/html/pandoc/metadata.html -->
$if(lang-en)$
<meta name="publisher" content="Publisher for the English part">
$endif$
$if(lang-fr)$
<meta name="publisher" content="Publisher for the French part">
$endif$
</div>