Il pacchetto rkwarddev è in grado di produrre estensioni esterne con pieno supporto i18n. Ad esempio, tutte le funzioni rilevanti che generano oggetti XML offrono un parametro facoltativo per specificare i18n_context o noi18n_label:
varComment <- rk.XML.varselector(id.name="vars", i18n=list(comment="Selettore variabile principale"))
varContext <- rk.XML.varselector(id.name="vars", i18n=list(context="Selettore variabile principale"))
cboxNoi18n <- rk.XML.cbox(label="Potenza", id.name="power", i18n=FALSE)
Gli esempi sopra generano risultato in questo modo:
# varComment
<!-- i18n: Selettore variabile principale -->
<varselector id="vars" />
# varContext
<varselector id="vars" i18n_context="Selettore variabile principale" />
# cboxNoi18n
<checkbox id="power" noi18n_label="Potenza" value="true" />
C'è anche il supporto per il codice JS traducibile. In effetti, il pacchetto prova ad aggiungere chiamate i18n() in modo predefinito nei punti in cui di solito è utile. La funzione rk.JS.header() è un buon esempio:
jsHeader <- rk.JS.header("Risultati del test")
Questo produce il seguente codice JS:
new Header(i18n("Test dei risultati")).print();
Ma è possibile anche contrassegnare manualmente le stringhe nel proprio codice JS come traducibili, utilizzando la funzione i18n() proprio come si farebbe scrivendo direttamente il file JS.