From 3d62dc367f590b460be2cda1ce47b6dfbfb0f869 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Demi=C3=A1n=20Villalba?= Date: Mon, 27 Oct 2025 15:55:32 -0300 Subject: [PATCH 1/4] translation links knitr compatible --- vignettes/_translation_links.R | 53 +++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 20 deletions(-) diff --git a/vignettes/_translation_links.R b/vignettes/_translation_links.R index d384f43e39..6aecacb6a5 100644 --- a/vignettes/_translation_links.R +++ b/vignettes/_translation_links.R @@ -1,23 +1,36 @@ # build a link list of alternative languages (may be character(0)) # idea is to look like 'Other languages: en | fr | de' -.write.translation.links <- function(fmt) { - url = "https://rdatatable.gitlab.io/data.table/articles" - path = dirname(litedown::get_context("input")) - if (basename(path) == "vignettes") { - lang = "en" - } else { - lang = basename(path) - path = dirname(path) - } - translation = dir(path, - recursive = TRUE, - pattern = glob2rx(litedown::get_context("input")) - ) - transl_lang = ifelse(dirname(translation) == ".", "en", dirname(translation)) - block = if (!all(transl_lang == lang)) { - linked_transl = sprintf("[%s](%s)", transl_lang, file.path(url, sub("(?i)\\.Rmd$", ".html", translation))) - linked_transl[transl_lang == lang] = lang - sprintf(fmt, paste(linked_transl, collapse = " | ")) - } else "" - litedown::raw_text(block) +.write.translation.links <- function() { + url = "https://rdatatable.gitlab.io/data.table/articles" + # this guard is needed because pkgdown::build_article does not use litedown + # https://github.com/yihui/knitr/issues/926#issuecomment-68503962 + knitr = isTRUE(getOption('knitr.in.progress')) + if (knitr) { + path = knitr::current_input(TRUE) + i18n_msg = knitr::opts_current$get("i18n_msg") + } else { + path = litedown::get_context("input") + i18n_msg = litedown::reactor("i18n_msg") + } + path_dir = dirname(path) + if (basename(path_dir) == "vignettes") { + lang = "en" + } else { + lang = basename(path_dir) + path_dir = dirname(path_dir) # might be "vignettes" + } + translation = dir(path_dir, recursive = TRUE, pattern = glob2rx(path)) + transl_lang = dirname(translation) + transl_lang[transl_lang == "."] = "en" + if (any(transl_lang != lang)) { + link_path = file.path(url, sub("(?i)\\.Rmd$", ".html", translation)) + linked_transl = sprintf("[%s](%s)", transl_lang, link_path) + linked_transl[transl_lang == lang] = lang + block = sprintf(i18n_msg, paste(linked_transl, collapse = " | ")) + } else { + block = "" + } + #if (knitr) block else litedown::raw_text(block) + cat(block) } +.write.translation.links() From 55227bc3cf4a6d304f99c665f49380cf39efbaa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Demi=C3=A1n=20Villalba?= Date: Mon, 27 Oct 2025 19:07:34 -0300 Subject: [PATCH 2/4] code block for automatic translation links --- vignettes/datatable-benchmarking.Rmd | 3 +-- vignettes/datatable-faq.Rmd | 3 +-- vignettes/datatable-fread-and-fwrite.Rmd | 3 +-- vignettes/datatable-importing.Rmd | 3 +-- vignettes/datatable-intro.Rmd | 3 +-- vignettes/datatable-joins.Rmd | 3 +-- vignettes/datatable-keys-fast-subset.Rmd | 3 +-- vignettes/datatable-programming.Rmd | 3 +-- vignettes/datatable-reference-semantics.Rmd | 3 +-- vignettes/datatable-reshape.Rmd | 3 +-- vignettes/datatable-sd-usage.Rmd | 3 +-- vignettes/datatable-secondary-indices-and-auto-indexing.Rmd | 3 +-- vignettes/fr/datatable-benchmarking.Rmd | 3 +-- vignettes/fr/datatable-faq.Rmd | 3 +-- vignettes/fr/datatable-fread-and-fwrite.Rmd | 3 +-- vignettes/fr/datatable-importing.Rmd | 3 +-- vignettes/fr/datatable-intro.Rmd | 3 +-- vignettes/fr/datatable-joins.Rmd | 3 +-- vignettes/fr/datatable-keys-fast-subset.Rmd | 3 +-- vignettes/fr/datatable-programming.Rmd | 3 +-- vignettes/fr/datatable-reference-semantics.Rmd | 3 +-- vignettes/fr/datatable-reshape.Rmd | 3 +-- vignettes/fr/datatable-sd-usage.Rmd | 3 +-- vignettes/fr/datatable-secondary-indices-and-auto-indexing.Rmd | 3 +-- vignettes/ru/datatable-importing.Rmd | 3 +-- vignettes/ru/datatable-intro.Rmd | 3 +-- vignettes/ru/datatable-reshape.Rmd | 3 +-- 27 files changed, 27 insertions(+), 54 deletions(-) diff --git a/vignettes/datatable-benchmarking.Rmd b/vignettes/datatable-benchmarking.Rmd index ce13108ec1..c3ba16971f 100644 --- a/vignettes/datatable-benchmarking.Rmd +++ b/vignettes/datatable-benchmarking.Rmd @@ -30,9 +30,8 @@ h2 { } -```{r, echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`{r} .write.translation.links("Translations of this document are available in: %s")` This document is meant to guide on measuring performance of `data.table`. Single place to document best practices and traps to avoid. diff --git a/vignettes/datatable-faq.Rmd b/vignettes/datatable-faq.Rmd index 46b72ffe72..77acb9b692 100644 --- a/vignettes/datatable-faq.Rmd +++ b/vignettes/datatable-faq.Rmd @@ -26,9 +26,8 @@ h2 { } -```{r, echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`{r} .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} library(data.table) diff --git a/vignettes/datatable-fread-and-fwrite.Rmd b/vignettes/datatable-fread-and-fwrite.Rmd index 15a5f85571..5d2f8c8982 100644 --- a/vignettes/datatable-fread-and-fwrite.Rmd +++ b/vignettes/datatable-fread-and-fwrite.Rmd @@ -9,9 +9,8 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`r .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} require(data.table) diff --git a/vignettes/datatable-importing.Rmd b/vignettes/datatable-importing.Rmd index 6b93a38ade..f43aee4114 100644 --- a/vignettes/datatable-importing.Rmd +++ b/vignettes/datatable-importing.Rmd @@ -20,9 +20,8 @@ h2 { } -```{r, echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`{r} .write.translation.links("Translations of this document are available in: %s")` This document is focused on using `data.table` as a dependency in other R packages. If you are interested in using `data.table` C code from a non-R application, or in calling its C functions directly, jump to the [last section](#non-r-api) of this vignette. diff --git a/vignettes/datatable-intro.Rmd b/vignettes/datatable-intro.Rmd index 5fb3cdad48..d432fcffc2 100644 --- a/vignettes/datatable-intro.Rmd +++ b/vignettes/datatable-intro.Rmd @@ -9,9 +9,8 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r, echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`{r} .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} library(data.table) diff --git a/vignettes/datatable-joins.Rmd b/vignettes/datatable-joins.Rmd index 94167655b4..ad1b8bd558 100644 --- a/vignettes/datatable-joins.Rmd +++ b/vignettes/datatable-joins.Rmd @@ -16,9 +16,8 @@ library(data.table) litedown::reactor(comment = "# ") ``` -```{r, echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`{r} .write.translation.links("Translations of this document are available in: %s")` In this vignette you will learn how to perform any join operation using resources available in the `data.table` syntax. diff --git a/vignettes/datatable-keys-fast-subset.Rmd b/vignettes/datatable-keys-fast-subset.Rmd index 6eee37e585..d38a6416ee 100644 --- a/vignettes/datatable-keys-fast-subset.Rmd +++ b/vignettes/datatable-keys-fast-subset.Rmd @@ -9,9 +9,8 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r, echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`{r} .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} library(data.table) diff --git a/vignettes/datatable-programming.Rmd b/vignettes/datatable-programming.Rmd index c64f191f70..2347463baf 100644 --- a/vignettes/datatable-programming.Rmd +++ b/vignettes/datatable-programming.Rmd @@ -9,9 +9,8 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r, echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`{r} .write.translation.links("Translations of this document are available in: %s")` ```{r init, include = FALSE} require(data.table) diff --git a/vignettes/datatable-reference-semantics.Rmd b/vignettes/datatable-reference-semantics.Rmd index fc394ff2e1..9c55e558ad 100644 --- a/vignettes/datatable-reference-semantics.Rmd +++ b/vignettes/datatable-reference-semantics.Rmd @@ -9,9 +9,8 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r, echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`{r} .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} library(data.table) diff --git a/vignettes/datatable-reshape.Rmd b/vignettes/datatable-reshape.Rmd index b8e53ffb6d..d96126a4d4 100644 --- a/vignettes/datatable-reshape.Rmd +++ b/vignettes/datatable-reshape.Rmd @@ -9,9 +9,8 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r, echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`{r} .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} library(data.table) diff --git a/vignettes/datatable-sd-usage.Rmd b/vignettes/datatable-sd-usage.Rmd index 6b21b51178..0284abeb7f 100644 --- a/vignettes/datatable-sd-usage.Rmd +++ b/vignettes/datatable-sd-usage.Rmd @@ -21,9 +21,8 @@ vignette: > } -```{r, echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`{r} .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} library(data.table) diff --git a/vignettes/datatable-secondary-indices-and-auto-indexing.Rmd b/vignettes/datatable-secondary-indices-and-auto-indexing.Rmd index 9cb7f1cabd..269cdf0603 100644 --- a/vignettes/datatable-secondary-indices-and-auto-indexing.Rmd +++ b/vignettes/datatable-secondary-indices-and-auto-indexing.Rmd @@ -9,9 +9,8 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r, echo=FALSE, file='_translation_links.R'} +```{r, echo=FALSE, results='asis', file='_translation_links.R', i18n_msg='Translations of this document are available in: %s'} ``` -`{r} .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} library(data.table) diff --git a/vignettes/fr/datatable-benchmarking.Rmd b/vignettes/fr/datatable-benchmarking.Rmd index 2221b709d1..717acc149a 100644 --- a/vignettes/fr/datatable-benchmarking.Rmd +++ b/vignettes/fr/datatable-benchmarking.Rmd @@ -18,9 +18,8 @@ h2 { } -```{r, echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`{r} .write.translation.links("Translations of this document are available in: %s")` Ce document a pour but de guider la mesure de la performance de `data.table`. Il centralise la documentation des meilleures pratiques et des pièges à éviter. diff --git a/vignettes/fr/datatable-faq.Rmd b/vignettes/fr/datatable-faq.Rmd index 2c4548267c..f04866d212 100644 --- a/vignettes/fr/datatable-faq.Rmd +++ b/vignettes/fr/datatable-faq.Rmd @@ -26,9 +26,8 @@ h2 { } -```{r, echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`{r} .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} library(data.table) diff --git a/vignettes/fr/datatable-fread-and-fwrite.Rmd b/vignettes/fr/datatable-fread-and-fwrite.Rmd index e8f86c40ea..110e488337 100644 --- a/vignettes/fr/datatable-fread-and-fwrite.Rmd +++ b/vignettes/fr/datatable-fread-and-fwrite.Rmd @@ -9,9 +9,8 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`r .write.translation.links("Une traduction de ce document est disponible en : %s")` ```{r, echo = FALSE, message = FALSE} require(data.table) diff --git a/vignettes/fr/datatable-importing.Rmd b/vignettes/fr/datatable-importing.Rmd index 5a98482954..e4d8504401 100644 --- a/vignettes/fr/datatable-importing.Rmd +++ b/vignettes/fr/datatable-importing.Rmd @@ -20,9 +20,8 @@ h2 { } -```{r, echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`{r} .write.translation.links("Translations of this document are available in: %s")` Ce document se concentre sur l'utilisation de `data.table` comme dépendance dans d'autres packages R. Si vous souhaitez utiliser le code C de `data.table` à partir d'une application non-R, ou appeler directement ses fonctions C, passez à la [dernière section](#non-r-API) de cette vignette. diff --git a/vignettes/fr/datatable-intro.Rmd b/vignettes/fr/datatable-intro.Rmd index 65e782eacd..40a2f0ec57 100644 --- a/vignettes/fr/datatable-intro.Rmd +++ b/vignettes/fr/datatable-intro.Rmd @@ -9,9 +9,8 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r, echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`{r} .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} require(data.table) diff --git a/vignettes/fr/datatable-joins.Rmd b/vignettes/fr/datatable-joins.Rmd index 19883112a2..678c43175b 100644 --- a/vignettes/fr/datatable-joins.Rmd +++ b/vignettes/fr/datatable-joins.Rmd @@ -16,9 +16,8 @@ require(data.table) litedown::reactor(comment = "# ") ``` -```{r, echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`r .write.translation.links("Une traduction de ce document est disponible en : %s")` Dans cette vignette nous apprendrons à réaliser les opérations de jointure en utilisant les ressources de la syntaxe `data.table`. diff --git a/vignettes/fr/datatable-keys-fast-subset.Rmd b/vignettes/fr/datatable-keys-fast-subset.Rmd index 7465ec74a4..f14079b51e 100644 --- a/vignettes/fr/datatable-keys-fast-subset.Rmd +++ b/vignettes/fr/datatable-keys-fast-subset.Rmd @@ -9,9 +9,8 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r, echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`{r} .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} require(data.table) diff --git a/vignettes/fr/datatable-programming.Rmd b/vignettes/fr/datatable-programming.Rmd index f8ca951863..709cd68913 100644 --- a/vignettes/fr/datatable-programming.Rmd +++ b/vignettes/fr/datatable-programming.Rmd @@ -9,9 +9,8 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r, echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`{r} .write.translation.links("Translations of this document are available in: %s")` ```{r init, include = FALSE} require(data.table) diff --git a/vignettes/fr/datatable-reference-semantics.Rmd b/vignettes/fr/datatable-reference-semantics.Rmd index 33063ad8d3..fd64e9f9f2 100644 --- a/vignettes/fr/datatable-reference-semantics.Rmd +++ b/vignettes/fr/datatable-reference-semantics.Rmd @@ -9,9 +9,8 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r, echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`{r} .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} require(data.table) diff --git a/vignettes/fr/datatable-reshape.Rmd b/vignettes/fr/datatable-reshape.Rmd index d6dece3184..04a2ec4694 100644 --- a/vignettes/fr/datatable-reshape.Rmd +++ b/vignettes/fr/datatable-reshape.Rmd @@ -9,9 +9,8 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r, echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`{r} .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} require(data.table) diff --git a/vignettes/fr/datatable-sd-usage.Rmd b/vignettes/fr/datatable-sd-usage.Rmd index da3f4794bf..722f9964f3 100644 --- a/vignettes/fr/datatable-sd-usage.Rmd +++ b/vignettes/fr/datatable-sd-usage.Rmd @@ -21,9 +21,8 @@ vignette: > } -```{r, echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`{r} .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} require(data.table) diff --git a/vignettes/fr/datatable-secondary-indices-and-auto-indexing.Rmd b/vignettes/fr/datatable-secondary-indices-and-auto-indexing.Rmd index 470c5571e3..abefbb585a 100644 --- a/vignettes/fr/datatable-secondary-indices-and-auto-indexing.Rmd +++ b/vignettes/fr/datatable-secondary-indices-and-auto-indexing.Rmd @@ -9,9 +9,8 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r, echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Une traduction de ce document est disponible en : %s'} ``` -`{r} .write.translation.links("Translations of this document are available in: %s")` ```{r, echo = FALSE, message = FALSE} require(data.table) diff --git a/vignettes/ru/datatable-importing.Rmd b/vignettes/ru/datatable-importing.Rmd index 5b2489cba1..e01cf615cb 100644 --- a/vignettes/ru/datatable-importing.Rmd +++ b/vignettes/ru/datatable-importing.Rmd @@ -20,9 +20,8 @@ h2 { } -```{r, echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Данное руководство также доступно на следующих языках: %s'} ``` -`{r} .write.translation.links("Данное руководство также доступно на следующих языках: %s")` Этот документ рассказывает об использовании `data.table` в качестве зависимости в других R-пакетах. Если вас интересует использование C-кода diff --git a/vignettes/ru/datatable-intro.Rmd b/vignettes/ru/datatable-intro.Rmd index ef429cf8b6..2e0471a060 100644 --- a/vignettes/ru/datatable-intro.Rmd +++ b/vignettes/ru/datatable-intro.Rmd @@ -9,9 +9,8 @@ vignette: > \usepackage[utf8]{inputenc} --- -```{r, echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Данное руководство также доступно на следующих языках: %s'} ``` -`{r} .write.translation.links("Данное руководство также доступно на следующих языках: %s")` ```{r, echo = FALSE, message = FALSE} require(data.table) diff --git a/vignettes/ru/datatable-reshape.Rmd b/vignettes/ru/datatable-reshape.Rmd index 96fdeb12c3..642f71a521 100644 --- a/vignettes/ru/datatable-reshape.Rmd +++ b/vignettes/ru/datatable-reshape.Rmd @@ -15,9 +15,8 @@ litedown::reactor(comment = "# ") .old.th = setDTthreads(1) ``` -```{r, echo=FALSE, file='../_translation_links.R'} +```{r, echo=FALSE, results='asis', file='../_translation_links.R', i18n_msg='Данное руководство также доступно на следующих языках: %s'} ``` -`{r} .write.translation.links("Данное руководство также доступно на следующих языках: %s")` В этом руководстве рассматривается стандартное использование функций изменения формы данных `melt` (из широкой в длинную) и `dcast` (из длинной в From be197d9bb94a56b3f7c4678b78b4e2c0b3982d36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Demi=C3=A1n=20Villalba?= Date: Tue, 28 Oct 2025 17:02:36 -0300 Subject: [PATCH 3/4] change `{r} Sys.date()` by !r Sys.date() in YAML header --- vignettes/datatable-benchmarking.Rmd | 2 +- vignettes/datatable-faq.Rmd | 2 +- vignettes/datatable-importing.Rmd | 2 +- vignettes/datatable-intro.Rmd | 2 +- vignettes/datatable-joins.Rmd | 2 +- vignettes/datatable-keys-fast-subset.Rmd | 2 +- vignettes/datatable-programming.Rmd | 2 +- vignettes/datatable-reference-semantics.Rmd | 2 +- vignettes/datatable-reshape.Rmd | 2 +- vignettes/datatable-sd-usage.Rmd | 2 +- vignettes/datatable-secondary-indices-and-auto-indexing.Rmd | 2 +- vignettes/fr/datatable-benchmarking.Rmd | 2 +- vignettes/fr/datatable-faq.Rmd | 2 +- vignettes/fr/datatable-importing.Rmd | 2 +- vignettes/fr/datatable-intro.Rmd | 2 +- vignettes/fr/datatable-joins.Rmd | 2 +- vignettes/fr/datatable-keys-fast-subset.Rmd | 2 +- vignettes/fr/datatable-programming.Rmd | 2 +- vignettes/fr/datatable-reference-semantics.Rmd | 2 +- vignettes/fr/datatable-reshape.Rmd | 2 +- vignettes/fr/datatable-sd-usage.Rmd | 2 +- vignettes/fr/datatable-secondary-indices-and-auto-indexing.Rmd | 2 +- vignettes/ru/datatable-importing.Rmd | 2 +- vignettes/ru/datatable-intro.Rmd | 2 +- vignettes/ru/datatable-reshape.Rmd | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/vignettes/datatable-benchmarking.Rmd b/vignettes/datatable-benchmarking.Rmd index c3ba16971f..a997505e05 100644 --- a/vignettes/datatable-benchmarking.Rmd +++ b/vignettes/datatable-benchmarking.Rmd @@ -1,6 +1,6 @@ --- title: "Benchmarking data.table" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: litedown::html_format: options: diff --git a/vignettes/datatable-faq.Rmd b/vignettes/datatable-faq.Rmd index 77acb9b692..0f4ae0b254 100644 --- a/vignettes/datatable-faq.Rmd +++ b/vignettes/datatable-faq.Rmd @@ -1,6 +1,6 @@ --- title: "Frequently Asked Questions about data.table" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: litedown::html_format: options: diff --git a/vignettes/datatable-importing.Rmd b/vignettes/datatable-importing.Rmd index f43aee4114..a49bec9e54 100644 --- a/vignettes/datatable-importing.Rmd +++ b/vignettes/datatable-importing.Rmd @@ -1,6 +1,6 @@ --- title: "Importing data.table" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: litedown::html_format vignette: > diff --git a/vignettes/datatable-intro.Rmd b/vignettes/datatable-intro.Rmd index d432fcffc2..d0ad7d3a28 100644 --- a/vignettes/datatable-intro.Rmd +++ b/vignettes/datatable-intro.Rmd @@ -1,6 +1,6 @@ --- title: "Introduction to data.table" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: litedown::html_format vignette: > diff --git a/vignettes/datatable-joins.Rmd b/vignettes/datatable-joins.Rmd index ad1b8bd558..a63e2df0ff 100644 --- a/vignettes/datatable-joins.Rmd +++ b/vignettes/datatable-joins.Rmd @@ -1,6 +1,6 @@ --- title: "Joins in data.table" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: litedown::html_format vignette: > diff --git a/vignettes/datatable-keys-fast-subset.Rmd b/vignettes/datatable-keys-fast-subset.Rmd index d38a6416ee..d14257d74c 100644 --- a/vignettes/datatable-keys-fast-subset.Rmd +++ b/vignettes/datatable-keys-fast-subset.Rmd @@ -1,6 +1,6 @@ --- title: "Keys and fast binary search based subset" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: litedown::html_format vignette: > diff --git a/vignettes/datatable-programming.Rmd b/vignettes/datatable-programming.Rmd index 2347463baf..262439e5df 100644 --- a/vignettes/datatable-programming.Rmd +++ b/vignettes/datatable-programming.Rmd @@ -1,6 +1,6 @@ --- title: "Programming on data.table" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: litedown::html_format vignette: > diff --git a/vignettes/datatable-reference-semantics.Rmd b/vignettes/datatable-reference-semantics.Rmd index 9c55e558ad..44bfd5cf06 100644 --- a/vignettes/datatable-reference-semantics.Rmd +++ b/vignettes/datatable-reference-semantics.Rmd @@ -1,6 +1,6 @@ --- title: "Reference semantics" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: litedown::html_format vignette: > diff --git a/vignettes/datatable-reshape.Rmd b/vignettes/datatable-reshape.Rmd index d96126a4d4..1df9ef8e53 100644 --- a/vignettes/datatable-reshape.Rmd +++ b/vignettes/datatable-reshape.Rmd @@ -1,6 +1,6 @@ --- title: "Efficient reshaping using data.tables" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: litedown::html_format vignette: > diff --git a/vignettes/datatable-sd-usage.Rmd b/vignettes/datatable-sd-usage.Rmd index 0284abeb7f..0b388f0e0f 100644 --- a/vignettes/datatable-sd-usage.Rmd +++ b/vignettes/datatable-sd-usage.Rmd @@ -1,6 +1,6 @@ --- title: "Using .SD for Data Analysis" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: litedown::html_format: options: diff --git a/vignettes/datatable-secondary-indices-and-auto-indexing.Rmd b/vignettes/datatable-secondary-indices-and-auto-indexing.Rmd index 269cdf0603..4af8959199 100644 --- a/vignettes/datatable-secondary-indices-and-auto-indexing.Rmd +++ b/vignettes/datatable-secondary-indices-and-auto-indexing.Rmd @@ -1,6 +1,6 @@ --- title: "Secondary indices and auto indexing" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: litedown::html_format vignette: > diff --git a/vignettes/fr/datatable-benchmarking.Rmd b/vignettes/fr/datatable-benchmarking.Rmd index 717acc149a..4a89473393 100644 --- a/vignettes/fr/datatable-benchmarking.Rmd +++ b/vignettes/fr/datatable-benchmarking.Rmd @@ -1,6 +1,6 @@ --- title: "Analyse comparative (benchmark) de data.table" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format: options: diff --git a/vignettes/fr/datatable-faq.Rmd b/vignettes/fr/datatable-faq.Rmd index f04866d212..2dc5364228 100644 --- a/vignettes/fr/datatable-faq.Rmd +++ b/vignettes/fr/datatable-faq.Rmd @@ -1,6 +1,6 @@ --- title: "Foire aux questions de data.table" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format: options: diff --git a/vignettes/fr/datatable-importing.Rmd b/vignettes/fr/datatable-importing.Rmd index e4d8504401..863a7f5984 100644 --- a/vignettes/fr/datatable-importing.Rmd +++ b/vignettes/fr/datatable-importing.Rmd @@ -1,6 +1,6 @@ --- title: "Importation dans data.table" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: litedown::html_format vignette: > diff --git a/vignettes/fr/datatable-intro.Rmd b/vignettes/fr/datatable-intro.Rmd index 40a2f0ec57..ebebfb4efd 100644 --- a/vignettes/fr/datatable-intro.Rmd +++ b/vignettes/fr/datatable-intro.Rmd @@ -1,6 +1,6 @@ --- title: "Introduction à data.table" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format vignette: > diff --git a/vignettes/fr/datatable-joins.Rmd b/vignettes/fr/datatable-joins.Rmd index 678c43175b..8d9acb95bb 100644 --- a/vignettes/fr/datatable-joins.Rmd +++ b/vignettes/fr/datatable-joins.Rmd @@ -1,6 +1,6 @@ --- title: "Jointures avec data.table" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: litedown::html_format vignette: > diff --git a/vignettes/fr/datatable-keys-fast-subset.Rmd b/vignettes/fr/datatable-keys-fast-subset.Rmd index f14079b51e..5a5b61e120 100644 --- a/vignettes/fr/datatable-keys-fast-subset.Rmd +++ b/vignettes/fr/datatable-keys-fast-subset.Rmd @@ -1,6 +1,6 @@ --- title: "Extraire des sous-ensemble avec les clés et la recherche binaire rapide" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format vignette: > diff --git a/vignettes/fr/datatable-programming.Rmd b/vignettes/fr/datatable-programming.Rmd index 709cd68913..99259b3d20 100644 --- a/vignettes/fr/datatable-programming.Rmd +++ b/vignettes/fr/datatable-programming.Rmd @@ -1,6 +1,6 @@ --- title: "Programmation avec data.table" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format vignette: > diff --git a/vignettes/fr/datatable-reference-semantics.Rmd b/vignettes/fr/datatable-reference-semantics.Rmd index fd64e9f9f2..142079617a 100644 --- a/vignettes/fr/datatable-reference-semantics.Rmd +++ b/vignettes/fr/datatable-reference-semantics.Rmd @@ -1,6 +1,6 @@ --- title: "Sémantique de référence" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format vignette: > diff --git a/vignettes/fr/datatable-reshape.Rmd b/vignettes/fr/datatable-reshape.Rmd index 04a2ec4694..58c3024068 100644 --- a/vignettes/fr/datatable-reshape.Rmd +++ b/vignettes/fr/datatable-reshape.Rmd @@ -1,6 +1,6 @@ --- title: "Restructurer efficacement avec les data.tables" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format vignette: > diff --git a/vignettes/fr/datatable-sd-usage.Rmd b/vignettes/fr/datatable-sd-usage.Rmd index 722f9964f3..26d458a999 100644 --- a/vignettes/fr/datatable-sd-usage.Rmd +++ b/vignettes/fr/datatable-sd-usage.Rmd @@ -1,6 +1,6 @@ --- title: "Utiliser .SD pour l’analyse de données" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format: options: diff --git a/vignettes/fr/datatable-secondary-indices-and-auto-indexing.Rmd b/vignettes/fr/datatable-secondary-indices-and-auto-indexing.Rmd index abefbb585a..3875df5820 100644 --- a/vignettes/fr/datatable-secondary-indices-and-auto-indexing.Rmd +++ b/vignettes/fr/datatable-secondary-indices-and-auto-indexing.Rmd @@ -1,6 +1,6 @@ --- title: "Indices secondaires et auto-indexation" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format vignette: > diff --git a/vignettes/ru/datatable-importing.Rmd b/vignettes/ru/datatable-importing.Rmd index e01cf615cb..4c26c7bf70 100644 --- a/vignettes/ru/datatable-importing.Rmd +++ b/vignettes/ru/datatable-importing.Rmd @@ -1,6 +1,6 @@ --- title: "Использование data.table в других пакетах" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format vignette: > diff --git a/vignettes/ru/datatable-intro.Rmd b/vignettes/ru/datatable-intro.Rmd index 2e0471a060..0c53382965 100644 --- a/vignettes/ru/datatable-intro.Rmd +++ b/vignettes/ru/datatable-intro.Rmd @@ -1,6 +1,6 @@ --- title: "Введение в data.table" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format vignette: > diff --git a/vignettes/ru/datatable-reshape.Rmd b/vignettes/ru/datatable-reshape.Rmd index 642f71a521..4a16c550c1 100644 --- a/vignettes/ru/datatable-reshape.Rmd +++ b/vignettes/ru/datatable-reshape.Rmd @@ -1,6 +1,6 @@ --- title: "Быстрое изменение формы данных с помощью data.table" -date: "`{r} Sys.Date()`" +date: !r Sys.Date() output: markdown::html_format vignette: > From 1285908f3065349013d000852e5fd5ef6abbbcd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Demi=C3=A1n=20Villalba?= Date: Tue, 28 Oct 2025 17:52:02 -0300 Subject: [PATCH 4/4] translation script tweaks --- vignettes/_translation_links.R | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/vignettes/_translation_links.R b/vignettes/_translation_links.R index 6aecacb6a5..cd0c1e611f 100644 --- a/vignettes/_translation_links.R +++ b/vignettes/_translation_links.R @@ -9,17 +9,20 @@ path = knitr::current_input(TRUE) i18n_msg = knitr::opts_current$get("i18n_msg") } else { - path = litedown::get_context("input") + path = normalizePath(litedown::get_context("input")) i18n_msg = litedown::reactor("i18n_msg") } - path_dir = dirname(path) - if (basename(path_dir) == "vignettes") { + rmdfile = basename(path) + rmddir = dirname(path) + if (basename(rmddir) == "vignettes") { lang = "en" + main_dir = rmddir } else { - lang = basename(path_dir) - path_dir = dirname(path_dir) # might be "vignettes" + lang = basename(rmddir) + main_dir = dirname(rmddir) # should be "vignettes" } - translation = dir(path_dir, recursive = TRUE, pattern = glob2rx(path)) + # search for translated rmd's with same name in subfolders + translation = dir(main_dir, recursive = TRUE, pattern = glob2rx(rmdfile)) transl_lang = dirname(translation) transl_lang[transl_lang == "."] = "en" if (any(transl_lang != lang)) { @@ -30,7 +33,6 @@ } else { block = "" } - #if (knitr) block else litedown::raw_text(block) cat(block) } .write.translation.links()