我有一个闪亮的应用程序,它具有在多种语言之间翻译其文本的功能,方法是使用一些 RenderText 和一个 ActionButton 在语言之间切换。这是我的应用程序:
library(shiny)
trads = list(text3=list("text3 in language 1", "text in other language"),
titl3=list("widget label in language 1", "widget label in other language"))
ui <- fluidPage(
actionButton("language",label="language", icon=icon("flag")),
htmlOutput("text3", container = tags$h3),
sliderInput("slider1", label=h2("slider1"), 0, 10, 5)
)
server <- function(input, output, session) {
tr <- function(text){sapply(text, function(s) trads[[s]][[input$language%%2+1]], USE.NAMES=FALSE)}
output$text3 = renderText({tr("text3")})
observeEvent(input$language, {
updateSliderInput(session, "slider1", label=tr("titl3"))
})
}
shinyApp(ui, server)
它工作正常,除了我的滑块标签最初是用 html 标签格式化的h3()
,当我使用时,updatesliderinput
我松开了这个标签,它返回到纯文本。我尝试在翻译中添加标签paste0
,或使用不同的语法,eval
但它以文本形式打印粘贴的结果,而不是运行它或给出错误。在保持格式的同时翻译有什么想法吗?谢谢
注意:我对包含 URL 链接的文本也有同样的问题。