いくつかの 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リンクを含む1つのテキストで同じ問題があります..