Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 35 additions & 20 deletions vignettes/_translation_links.R
Original file line number Diff line number Diff line change
@@ -1,23 +1,38 @@
# 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 = normalizePath(litedown::get_context("input"))
i18n_msg = litedown::reactor("i18n_msg")
}
rmdfile = basename(path)
rmddir = dirname(path)
if (basename(rmddir) == "vignettes") {
lang = "en"
main_dir = rmddir
} else {
lang = basename(rmddir)
main_dir = dirname(rmddir) # should be "vignettes"
}
# 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)) {
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 = ""
}
cat(block)
}
.write.translation.links()
5 changes: 2 additions & 3 deletions vignettes/datatable-benchmarking.Rmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Benchmarking data.table"
date: "`{r} Sys.Date()`"
date: !r Sys.Date()
output:
litedown::html_format:
options:
Expand Down Expand Up @@ -30,9 +30,8 @@ h2 {
}
</style>

```{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.

Expand Down
5 changes: 2 additions & 3 deletions vignettes/datatable-faq.Rmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Frequently Asked Questions about data.table"
date: "`{r} Sys.Date()`"
date: !r Sys.Date()
output:
litedown::html_format:
options:
Expand All @@ -26,9 +26,8 @@ h2 {
}
</style>

```{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)
Expand Down
3 changes: 1 addition & 2 deletions vignettes/datatable-fread-and-fwrite.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
5 changes: 2 additions & 3 deletions vignettes/datatable-importing.Rmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Importing data.table"
date: "`{r} Sys.Date()`"
date: !r Sys.Date()
output:
litedown::html_format
vignette: >
Expand All @@ -20,9 +20,8 @@ h2 {
}
</style>

```{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.

Expand Down
5 changes: 2 additions & 3 deletions vignettes/datatable-intro.Rmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Introduction to data.table"
date: "`{r} Sys.Date()`"
date: !r Sys.Date()
output:
litedown::html_format
vignette: >
Expand All @@ -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)
Expand Down
5 changes: 2 additions & 3 deletions vignettes/datatable-joins.Rmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Joins in data.table"
date: "`{r} Sys.Date()`"
date: !r Sys.Date()
output:
litedown::html_format
vignette: >
Expand All @@ -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.

Expand Down
5 changes: 2 additions & 3 deletions vignettes/datatable-keys-fast-subset.Rmd
Original file line number Diff line number Diff line change
@@ -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: >
Expand All @@ -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)
Expand Down
5 changes: 2 additions & 3 deletions vignettes/datatable-programming.Rmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Programming on data.table"
date: "`{r} Sys.Date()`"
date: !r Sys.Date()
output:
litedown::html_format
vignette: >
Expand All @@ -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)
Expand Down
5 changes: 2 additions & 3 deletions vignettes/datatable-reference-semantics.Rmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Reference semantics"
date: "`{r} Sys.Date()`"
date: !r Sys.Date()
output:
litedown::html_format
vignette: >
Expand All @@ -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)
Expand Down
5 changes: 2 additions & 3 deletions vignettes/datatable-reshape.Rmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Efficient reshaping using data.tables"
date: "`{r} Sys.Date()`"
date: !r Sys.Date()
output:
litedown::html_format
vignette: >
Expand All @@ -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)
Expand Down
5 changes: 2 additions & 3 deletions vignettes/datatable-sd-usage.Rmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Using .SD for Data Analysis"
date: "`{r} Sys.Date()`"
date: !r Sys.Date()
output:
litedown::html_format:
options:
Expand All @@ -21,9 +21,8 @@ vignette: >
}
</style>

```{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)
Expand Down
5 changes: 2 additions & 3 deletions vignettes/datatable-secondary-indices-and-auto-indexing.Rmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Secondary indices and auto indexing"
date: "`{r} Sys.Date()`"
date: !r Sys.Date()
output:
litedown::html_format
vignette: >
Expand All @@ -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)
Expand Down
5 changes: 2 additions & 3 deletions vignettes/fr/datatable-benchmarking.Rmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Analyse comparative (benchmark) de data.table"
date: "`{r} Sys.Date()`"
date: !r Sys.Date()
output:
markdown::html_format:
options:
Expand All @@ -18,9 +18,8 @@ h2 {
}
</style>

```{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.

Expand Down
5 changes: 2 additions & 3 deletions vignettes/fr/datatable-faq.Rmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Foire aux questions de data.table"
date: "`{r} Sys.Date()`"
date: !r Sys.Date()
output:
markdown::html_format:
options:
Expand All @@ -26,9 +26,8 @@ h2 {
}
</style>

```{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)
Expand Down
3 changes: 1 addition & 2 deletions vignettes/fr/datatable-fread-and-fwrite.Rmd
Copy link
Contributor

@ChristianWia ChristianWia Oct 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rikivillalba ? you do not change the date with date: !r Sys.Date()
Same remark applies to the EN vignette.

Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
5 changes: 2 additions & 3 deletions vignettes/fr/datatable-importing.Rmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Importation dans data.table"
date: "`{r} Sys.Date()`"
date: !r Sys.Date()
output:
litedown::html_format
vignette: >
Expand All @@ -20,9 +20,8 @@ h2 {
}
</style>

```{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.

Expand Down
5 changes: 2 additions & 3 deletions vignettes/fr/datatable-intro.Rmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Introduction à data.table"
date: "`{r} Sys.Date()`"
date: !r Sys.Date()
output:
markdown::html_format
vignette: >
Expand All @@ -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)
Expand Down
5 changes: 2 additions & 3 deletions vignettes/fr/datatable-joins.Rmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Jointures avec data.table"
date: "`{r} Sys.Date()`"
date: !r Sys.Date()
output:
litedown::html_format
vignette: >
Expand All @@ -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`.

Expand Down
Loading
Loading