gpt4 book ai didi

r - 在模块中使用 shiny.i18n 翻译 Shiny 的应用程序?

转载 作者:行者123 更新时间:2023-12-04 10:22:55 27 4
gpt4 key购买 nike

问题:我想将模块化 Shiny 应用程序的部分翻译成德语或英语。我要使用的包是shiny.i18n这似乎在非模块化应用程序中工作,并且似乎很容易处理。但是,在下面的模块化 Shiny 玩具示例中,翻译不起作用。有什么建议为什么会发生这种情况?

服务器/用户界面:

library(shiny)
library(shinydashboard)
library(DT)
library(data.table)
library(shiny.i18n)

i18n <- Translator$new(translation_json_path = "translation.json")
i18n$set_translation_language("en")

source("displayTable_module.R")

ui <- fluidPage(
table_UI("display_table")
)

server <- function(input, output) {

callModule(table_server,
"display_table"
)
}

shinyApp(ui = ui, server = server)

displayTable_module模块:
## displayTable_module.R
table_UI <- function(id){
ns <- NS(id)

shinydashboard::box(i18n$t("Daten Visualisieren"),
# "Test header",
DTOutput(ns("table"))
)
}

table_server <- function(input, output, session){

output$table <- renderDT(datatable(mtcars))

}

JSON-翻译映射文件(translation.json):
{
"languages": ["en", "ger"],
"translation": [
{
"en": "Daten Visualisieren",
"ger": "Visualize your data"
}
]
}

最佳答案

您可以通过i18n来自 ui/server 函数的对象作为附加参数:
displayTable_module.R

table_UI <- function(id, i18n){
ns <- NS(id)

shinydashboard::box(i18n$t("Daten Visualisieren"),
# "Test header",
DTOutput(ns("table"))
)
}
app.r
ui <- fluidPage(
table_UI("display_table", i18n = i18n)
)

关于r - 在模块中使用 shiny.i18n 翻译 Shiny 的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60756339/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com