Comment traduire vos documents efficacement dans R

Maëlle Salmon, Yanina Bellini Saibene, Paola Corrales, Elio Campitelli, Pascal Burkhard

rOpenSci

https://rr2025.netlify.app

Maisons colorées à Mons

Notre motivation, à rOpenSci

La publication de ressources multilingues peut réduire la barrière d’accès à la connaissance, contribuer à démocratiser l’accès à des ressources de qualité et à augmenter les chances de contribuer à des projets de science ouverte et de logiciel libre.

https://ropensci.org/multilingual-publishing

Nos objectifs

Traduire le contenu de rOpenSci au-delà de la langue anglaise : espagnol, portugais. Les meilleures pratiques pour

  • le développement de logiciels,
  • la revue de code,
  • la contribution à des projets de logiciel libre.

Développer les outils nécessaires et documenter nos processus.

Ce que nous avions au début

  • Un guide sous forme de livre Quarto ;

  • Intérêt pour l’utilisation de DeepL API ;

  • Utilisation de Git et de GitHub pour collaborer.

Ce qui nous manquait

  • Comment publier un livre Quarto multilingue ;

  • Comment utiliser l’API de DeepL pour traduire du contenu Markdown.

Livre Quarto multilingue : {babelquarto}

Pas dans la feuille de route de Quarto à court terme : https://github.com/quarto-dev/quarto-cli/issues/275

Notre premier livre Quarto multilingue

https://devguide.ropensci.org

Capture d’écran du guide de développement rOpenSci

Livres multilingues avec {babelquarto}

Chaque chapitre : filepath.qmd et filepath.es.qmd.

  • babelquarto::register_main_language("en")

  • babelquarto::register_further_languages(c("es", "pt"))

  • babelquarto::render_book()

_quarto.yml

Avec l’aide de babelquarto::register_,

babelquarto:
  languagelinks: sidebar
  languagecodes:
  - name: es
    text: "Version in es"
  - name: en
    text: "Version in en"
  mainlanguage: 'en'
  languages: ['es']
title-es: title in es
description-es: description in es
author-es: author in es
lang: en

Sites web multilingues avec {babelquarto}

https://www.joelnitta.com/

Capture d’écran du site Web de Joel Nitta en japonais

Comment fonctionne {babelquarto}?

  • Construit les deux sites.

  • Ajoute les liens avec {xml2} + XPath pour modifier le HTML.

En savoir plus sur {babelquarto}

https://docs.ropensci.org/babelquarto/

Merci au co-auteur Pascal Burkhard ! Merci également aux autres contributeur·rice·s.

Comment traduire du contenu Markdown

  • Traduire à partir de zéro ? 😭

  • Copier-coller dans DeepL ou Google Translate ? 😭

  • Utilise babeldown et ensuite une revue par des humains ! 🎉

Traduire du contenu Markdown avec {babeldown}

  • Respecte le format Markdown.

  • Envoie du texte à l’API DeepL.

Utiliser {babeldown}

  • S’inscrire sur DeepL.

Utiliser {babeldown}

  • Hello World (pardon, bonjour le monde).
Sys.setenv(DEEPL_API_KEY = keyring::key_get("deepl"))
babeldown::deepl_translate_markdown_string(
  "Je suis *ravie* de participer aux **Rencontres R**. Vive la Belgique !",
  source_lang = "fr",
  target_lang = "nl",
  formality = "less"
)
[1] "Ik ben *verheugd* deel te nemen aan **Rencontres R**. Lang leve België!"

Comment fonctionne {babeldown} ?

  • Transforme le Markdown en XML en utilisant {tinkr} ({commonmark} + {xml2} + {xslt}).
  • Protège certaines choses (Hugo shortcodes).
  • Envoie du XML à l’API DeepL.
  • Il envoie également des extraits YAML à l’API DeepL.
  • Crée à nouveau du Markdown.

Utiliser babeldown, avec git et GitHub (1/3)

Diagrama de dos partes. A la izquierda una carpeta de hojas de Hugo en la rama new-post con el artículo en español con el texto 'Hola' y una imagen; a la derecha la carpeta de hojas de Hugo en la misma rama con el post en español con el texto 'Hola', el post con el nombre de archivo de destino en inglés con el texto 'Hola', y la imagen.

Utiliser babeldown, avec git et GitHub (2/3)

Diagrama con dos partes. A la izquierda la carpeta de hojas de Hugo en la rama de auto-translate con el artículo en español con el texto 'Hola', el post con el nombre de archivo de destino en inglés con el texto 'Hola', y la imagen; a la derecha lo único que cambió es que el contenido del post con el nombre de archivo de destino en inglés es ahora 'Hello'.

Utiliser babeldown, avec git et GitHub (3/3)

Dibujo del pull request de la rama auto-translate a la rama new-post donde la diferencia es que ahora se ha traducido al inglés el contenido de la entrada con el nombre de archivo de destino en inglés.

En savoir plus sur nos outils

Merci ! Contributions aux paquets bienvenues !

https://rr2025.netlify.app