R/mod_internationalization.R

Defines functions mod_internationalization_server mod_internationalization_ui

#' internationalization UI Function
#'
#' @description A shiny Module.
#'
#' @param id,input,output,session Internal parameters for {shiny}.
#'
#' @noRd 
#'
#' @importFrom shiny NS tagList
#' @importFrom dplyr %>% 
mod_internationalization_ui <- function(id){
  ns <- NS(id)
  tagList(
    shi18ny::useShi18ny(),
    shi18ny::langSelectorInput("lang", position = "fixed"),
  )
}
    
#' internationalization Server Function
#'
#' @noRd 
mod_internationalization_server <- function(id, r){
  
  moduleServer(id, function(input, output, session){
    ns <- session$ns
    
    r$i18n <- list(defaultLang = "en",
                   availableLangs = c("en", "de", "es", "pt"),
                   localeDir = system.file("app/locale", package = "DSAppTemplate"))
    
    observe({
      r$lang <- callModule(shi18ny::langSelector, "lang", i18n = r$i18n, showSelector = FALSE)
    })
    
    observeEvent(r$lang(),{
      shinyjs::delay(500, shi18ny::uiLangUpdate(r$uiClasses, lang = r$lang(), i18n = r$i18n))
    })
})
}
datasketch/DSAppTemplate documentation built on March 4, 2021, 12:49 a.m.