只要通过fileInput上传多个文件(例如6个),我就会在按钮旁边收到文本“6个文件”,并在进度条中收到“上传完成”。另外,我认为在紧急情况下(上传错误或smth)会在进度条中提供一些文本。我写的应用程序的UI是俄语,因此所有标签都是俄语。根据文档,我可以在fileInput中设置buttonLabel和占位符标签,而不是我上面提到的文本。任何想法我怎样才能改变它?
答案 0 :(得分:3)
这不是一个完整的解决方案,因为它无法解决您使用多个文件时遇到的问题,但它可能是一个开始。这会更改进度条中的文本:
您可以使用存储在tags$script()
附带的文件中的自定义javascript函数来执行此操作。 javascript文件需要位于www文件夹
app.r
www
|__ fileInput_text.js
<强> app.r 强>
ui <- fluidPage(
tags$script(src="fileInput_text.js"),
fileInput('uploaded', 'Data Upload')
)
shinyApp(ui = ui, server = function(input, output) {})
自定义javascript功能: fileInput_text.js
$(document).ready(function(){
$('#uploaded_progress').on("DOMSubtreeModified",function(){
var target = $('#uploaded_progress').children()[0];
if(target.innerHTML === "Upload complete"){
console.log('Change')
target.innerHTML = 'YOUR TEXT HERE';
}
});
});
此函数将查找fileInput的ID(在本例中为uploaded
)并将其从“上传完成”更改为您将其设置为:
答案 1 :(得分:1)
在Shiny版本1.0.5消息&#34;上传完成&#34;在javascript源文件中硬编码。您需要修改源文件或向您的应用程序添加javascript hack以更改文本。或者,您可以使用某些CSS隐藏消息。它与翻译不同,但在某些情况下它可能足够好。
.progress-bar {color: transparent!important}
includeCSS("app.css")
添加到用户界面,例如:
# Define UI for data upload app ----
ui <- fluidPage(
includeCSS("app.css"),
# The rest of your page...
它的工作原理是在进度条中使字体颜色透明。文本仍在那里,但它是不可见的。
答案 2 :(得分:0)
vim /usr/lib64/R/library/shiny/www/shared/shiny.min.js 并搜索“上传完成”一词,然后将其替换。 注意编码。