【问题标题】:DataTables internationalization with local language file in Shiny在 Shiny 中使用本地语言文件进行 DataTables 国际化
【发布时间】:2019-06-08 10:21:33
【问题描述】:

我想在提供的国际化文件的帮助下将我的数据表翻译成闪亮的,但我不需要链接到网站,而是需要在我的计算机上链接文件(没有互联网连接的虚拟机) 我怎样才能做到这一点?

我尝试按照https://rstudio.github.io/DT/004-i18n.html 此处的步骤操作,但没有使用“http://cdn.datatables.net/plug-ins/1.10.19/i18n/French.json”,而是尝试使用“file:///www/French.json”但没有成功

这是我的代码

library(DT)

ui <- basicPage(
  DT::dataTableOutput("mytable")
)

server <- function(input, output) {
  output$mytable = DT::renderDataTable(
    mtcars,
  options = list(
    language = list(url = "file:///www/French.json")
  ))
}

shinyApp(ui, server)

编辑:我试过这个没有运气

language = list({
  "language": {
    "sProcessing": "Traitement en cours ...",
    "sLengthMenu": "Afficher _MENU_ lignes",
    "sZeroRecords": "Aucun résultat trouvé",
    "sEmptyTable": "Aucune donnée disponible",
    "sInfo": "Lignes _START_ à _END_ sur _TOTAL_",
    "sInfoEmpty": "Aucune ligne affichée",
    "sInfoFiltered": "(Filtrer un maximum de_MAX_)",
    "sInfoPostFix": "",
    "sSearch": "Chercher:",
    "sUrl": "",
    "sInfoThousands": ",",
    "sLoadingRecords": "Chargement...",
    "oPaginate": {
      "sFirst": "Premier", "sLast": "Dernier", "sNext": "Suivant", "sPrevious": "Précédent"
    },
    "oAria": {
      "sSortAscending": ": Trier par ordre croissant", "sSortDescending": ": Trier par ordre décroissant"
    }
  }
})

【问题讨论】:

  • 在我的 Shiny 应用程序中,我只是在我的 R 脚本中有本地化文件的内容。或者,您可以使用 jsonlite 之类的包单独加载文件。如果您的 R 环境中有一个名为 language_FR 的列表对象,您可以在您的 renderDataTable 调用中简单地替换 language = language_FR
  • @A.Stam 我不知道如何直接放置内容,我尝试使用 language = "{"sProcessing": "Traitement en cours", [...] }" 没有运气,你能发布你的解决方案吗?谢谢
  • 可以访问www 目录中的任何内容,但不包括www
  • @Serk 我像其他任何列表对象一样定义它:language_NL &lt;- list(sProcessing = "Bezig...", ...)

标签: jquery r shiny dt


【解决方案1】:

在 R 中,您可以直接使用 list

fr <- list(
  sProcessing = "Traitement en cours...", sSearch = "Rechercher&nbsp;:", 
  sLengthMenu = "Afficher _MENU_ &eacute;l&eacute;ments", 
  sInfo = "Affichage de l'&eacute;l&eacute;ment _START_ &agrave; _END_ sur _TOTAL_ &eacute;l&eacute;ments", 
  sInfoEmpty = "Affichage de l'&eacute;l&eacute;ment 0 &agrave; 0 sur 0 &eacute;l&eacute;ment", 
  sInfoFiltered = "(filtr&eacute; de _MAX_ &eacute;l&eacute;ments au total)", 
  sInfoPostFix = "", sLoadingRecords = "Chargement en cours...", 
  sZeroRecords = "Aucun &eacute;l&eacute;ment &agrave; afficher", 
  sEmptyTable = "Aucune donn&eacute;e disponible dans le tableau", 
  oPaginate = list(
    sFirst = "Premier", sPrevious = "Pr&eacute;c&eacute;dent", 
    sNext = "Suivant", sLast = "Dernier"
  ), 
  oAria = list(
    sSortAscending = ": activer pour trier la colonne par ordre croissant", 
    sSortDescending = ": activer pour trier la colonne par ordre d&eacute;croissant"
  )
)

library(DT)
library(shiny)

ui <- basicPage(
  DT::DTOutput("mytable")
)

server <- function(input, output) {
  output$mytable = DT::renderDT({
    mtcars
  },
  options = list(
    language = fr
  ))
}

shinyApp(ui, server)

如果您想使用here 提供的 JSON,请将其下载到您的 www 文件夹并使用:

language = list(url = "French.json") # without www/

【讨论】:

  • 谢谢,这成功了!内联使用时忘记修改 JSON
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多