【发布时间】:2022-06-11 23:34:54
【问题描述】:
我正在使用 Shiny.i18n 翻译我的 Shiny 应用程序中的所有文本,使用实时方法。 我的应用中有一个真实的长文本,我希望能够翻译它,但同时还要将该文本中的单个单词加粗。
我知道理论上我可以单独编写和翻译每个单词,然后将其加粗。但我想找到一个更优雅的选项,让我在更大的上下文中将单词加粗。
这是我的问题的重复。
闪亮的应用程序
library(shiny)
library(shiny.i18n)
library(ggplot2)
i18n <- Translator$new(translation_json_path='translation.json')
i18n$set_translation_language('de')
ui <- fluidPage(
shiny.i18n::usei18n(i18n),
h1(i18n$t("Welt")),
tags$div(
style='float: right;',
selectInput(
inputId='selected_language',
label=i18n$t('Change language'),
choices = i18n$get_languages(),
selected = i18n$get_key_translation()
)
),
h1(i18n$t("<strong>Hallo</strong> Welt"), windowTitle=NULL),
)
server <- function(input, output, session) {
observeEvent(input$selected_language, {
update_lang(session, input$selected_language)
})
}
# Run the application
shinyApp(ui = ui, server = server)
我的翻译保存在 json 中,例如
"languages":[
"de",
"en"
],
"translation":[
{
"de":"<strong>Hallo</strong> Welt",
"en":"<strong>Hello</strong> World"
},
{
"de":"Sprache Aendern:",
"en":"Change language:"
},
{
"de":"Welt",
"en":"World"
}
]
}
如果我现在尝试更改语言,则只有 "World" 会被翻译。 “你好 Welt”根本没有翻译。我不明白为什么。
如果我添加h1(i18n$t(**HTML(**"<strong>Hallo</strong> Welt"))。 “Hallo” 确实变粗了,但句子仍未翻译。
我也尝试过h1(HTML(i18n$t("<strong>Hallo</strong> Welt")),但这会引发以下错误消息:
FUN(X[[i]], ...) 中的错误:参数不是字符向量
非常感谢您的任何建议或想法
【问题讨论】:
标签: shiny internationalization translation