Shiny applications internationalisation made easy!

Using it is very simple: just prepare your translation files in one of the supported formats, read them into your app using user-friendly shiny.i18n interface and surround your expressions to translate by a translator tag. Thanks to that your app will remain neat and readible.

Actually, you can use shiny.i18n as a standalone R package - shiny app is just a perfect usecase example.

Change languages and formats easy with shiny.i18n.

Source code

This library source code can be found on Appsilon Data Science’s Github:

How to install?

At the moment it’s possible to install this library with devtools.


To install previous version you can run:

devtools::install_github("Appsilon/shiny.i18n", ref = "0.1.0")


See shiny.i18n in action live

You can find some basic examples in examples folder:

  1. Using i18n object with CSV translation files or JSON translation files.

  2. Live language change on the browser side or with the server function renderUI.

  3. RMarkdown translations.

  4. Example of translation data format.

Translation file format

Currently shiny.i18n supports two translation formats:

Translator$new(translation_csvs_path = "...")
Translator$new(translation_json_path = "...")

How to contribute?

If you want to contribute to this project please submit a regular PR, once you’re done with new feature or bug fix. Reporting a bug is also helpful - please use github issues and describe your problem as detailed as possible.

Changes in documentation

Documentation is rendered with pkgdown. Just run pkgdown::build_site() after editing documentation or


We used the latest versions of dependencies for this library, so please update your R environment before installation.

Future enhacements

Appsilon Data Science

Get in touch