私は光沢のあるアプリケーションを持っています。これは、いくつかのRenderTextとActionButtonを使って複数の言語間でテキストを翻訳する機能があり、言語を切り替えることができます。updateInputSliderでフォーマットを更新するための非標準評価:bug?
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
という別の構文を使用して翻訳にタグを追加しようとしましたが、実行する代わりにペーストの結果をテキストに印刷したり、エラーを表示したりします。 フォーマットをキープしながら翻訳するアイデアはありますか?おかげ
注:私は1つのテキストは、URLリンクを含むと同じ問題...それは本当にあなたがここにupdateSliderInput
にバグを発見した縫い目
'label = h3(tr(" titl3 "))'で試したことがありますか? –
私はちょうど、翻訳の代わりに "[object Object]"を表示しようとしました:-( – agenis
Ok 'label = h3(trads [[" titl3 "] [[input $ language %% 2 + 1]]) ' –