2017-12-19 37 views
2

私は複数の言語を扱うShinyアプリケーションを開発中です。 selectInputに応じて、アプリのほぼすべての要素を動的に翻訳して言語を選択できました。しかし、「ハードなもの」はnavbarPageのタブと、tabPanelsのページに残ります。私は彼らの名前を変更することはできません。私はこれを試してみましたが、それは動作しません:shiny:タブ名を動的に変更する

library(shiny) 
ui <- navbarPage("App Title", 
       tabPanel("tab1", 
          selectInput("language", "language", c("EN", "FR"), width = '300px'), 
          textOutput("text")), 
       uiOutput("render_tab2")) 
server <- function(input, output, session) { 
    output$text = renderText({ switch(input$language, "EN"="hello world", "FR"="bonjour monde") }) 
    output$render_tab2 = renderUI({ 
    tabPanel(title=switch(input$language, "EN"="tab2", "FR"="onglet2"))})} 
shinyApp(ui, server) 

をそしてない可能性があれば機能のupdatenavbarpanel()家族はただ、それを実行する方法があります...その特性を変更しないで、アクティブなタブを設定するためにしていますすべての私のアプリの構造を変更しない...たくさんあります。

+0

で動作しますが、[renderUI](https://shiny.rstudio.com/articles/dynamicをチェック-ui.html)を使用して異なる名前のタブを動的にレンダリングする – blondeclover

答えて

2

コードのこの作品は、動的にタイトルを設定します。

library(shiny) 
ui <- navbarPage("App Title", 
       tabPanel(title = uiOutput("title_panel"), 
          selectInput("language", "language", c("EN", "FR"), width = '300px') 
       ) 
    ) 

server <- function(input, output, session) { 

    output$title_panel = renderText({ 
     switch(input$language, "EN"="hello world", "FR"="bonjour monde") 
    }) 
} 

shinyApp(ui, server) 

編集:両方uiOutput("title_panel") & textOutput("title_panel")

+0

ありがとう!それは私が考えていない素晴らしい解決策です! – agenis

関連する問題