2017-12-19 5 views
2

여러 언어를 처리해야하는 Shiny 응용 프로그램에서 작업하고 있습니다. 언어를 선택하려면 selectInput에 따라 앱의 거의 모든 요소를 ​​동적으로 변환 할 수있었습니다. 그러나 "단단한 물건"은 내 페이지에 탭과 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

관련 문제