Learn R Programming

⚠️There's a newer version (0.3.0) of this package.Take me there.

shiny.i18n

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: https://github.com/Appsilon/shiny.i18n/

How to install?

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

devtools::install_github("Appsilon/shiny.i18n")

To install previous version you can run:

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

Examples

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:

  • csv - where each translation is in separate file translation_<LANGUAGE-CODE>.csv containing two columns: key translation, language to which it needs to be translated. Example of translation_pl.csv for Polish language you may find here: inst/examples/data/translation_pl.csv. You load the data by passing the path to folder containing all the csv files:
Translator$new(translation_csvs_path = "...")
  • json - single json file translation.json with mandatory fields: "languages" with list of all language codes and "translation" with list of dictionaries assigning each translation to a language code. Example of such a json file for Polish language you may find here: inst/examples/data/translation.json. You load the data by passing the path to json file.
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 README.md.

Troubleshooting

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

Future enhacements

  • Format numeric data
  • Support plural forms

Appsilon Data Science

Get in touch dev@appsilon.com.

Copy Link

Version

Install

install.packages('shiny.i18n')

Monthly Downloads

1,709

Version

0.2.0

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Dominik Krzemi<c5><84>ski

Last Published

October 2nd, 2020

Functions in shiny.i18n (0.2.0)

.translator_options

Translator options
column_to_row

Column to row
create_translation_addin

Create translation file addin
Translator

Translator R6 Class
create_translation_file

Create translation file
.onLoad

onLoad
extract_key_expressions

Extract key expressions
check_value_presence

Check for value presence
.i18_config

Global i18n config list.
i18n_state

Create i18n state div
read_and_merge_csvs

Read and merge CSVs
get_i18n_config

Get i18n config
translate_with_google_cloud

This provides functions for automatic translations with online APIs Translate with Google cloud
save_to_json

Save example i18n file to json
validate_names

Validate Column Names
multmerge

Mulitple Merge
load_local_config

Load Local YAML Config
init_i18n

Creates new i18n Translator object
usei18n

Use i18n in UI
update_lang

Update language (i18n) in UI
save_to_csv

Save example i18n file to CSV