闪亮:动态更改选项卡名称

9
我正在开发一个Shiny应用程序,该应用程序应支持多种语言。我成功地实现了几乎所有元素的动态翻译,具体取决于选择语言的selectInput。但是,“硬骨头”仍然是navbarPage选项卡以及页面内部的tabPanels。我无法更改它们的名称。我尝试过这个方法,但它不起作用:
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()函数族仅用于设置活动选项卡,而不是更改它们的特性...如果可能的话,有没有一种方法可以做到这一点,而不改变我整个应用程序的结构...非常感谢。


请查看renderUI以动态呈现具有不同名称的选项卡。 - Hallie Swan
1个回答

21

这段代码可以动态设置标题:

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")


谢谢!那是一个我没有想到的好解决方案! - agenis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接