使用shiny.i18n在R Shiny中实现翻译时出现键匹配错误
解决Shiny i18n翻译初始化错误
问题原因分析
- 参数使用错误:调用
Translator$new()时误用了复数参数translation_csvs_path,该参数用于指定存放多个翻译CSV文件的目录,而非单个CSV文件路径,传入单个文件会触发解析错误。 - CSV格式不符合要求:shiny.i18n要求翻译CSV必须以
key列为首列,作为各语言翻译的对应键值,你的CSV缺少该列,导致系统无法识别翻译键。
修复步骤
1. 修正翻译CSV文件格式
将translation_no.csv内容修改为:
key,en,no Hello,Hello,Hei
2. 调整R代码参数
把translation_csvs_path改为单数形式translation_csv_path,明确指定单个CSV文件路径:
library(shiny) library(shiny.i18n) # 使用单数参数指定单个CSV文件 i18n <- Translator$new(translation_csv_path = "translation_no.csv") i18n$set_translation_language("en") ui <- fluidPage(p(i18n$t("Hello"))) server <- function(input, output) {} shinyApp(ui, server)
3. (可选)消除警告
若要移除关于yaml配置文件的警告,可在工作目录创建i18n.yml配置文件,内容如下:
default_lang: en languages: - en - no
随后在初始化Translator时指定该配置文件:
i18n <- Translator$new( translation_csv_path = "translation_no.csv", config_file = "i18n.yml" )
内容的提问来源于stack exchange,提问作者Hesam Salehi
相关产品推荐
相关产品推荐

