Shiny - Изменить текст «Загрузка завершена» и «… файлы» в fileInput

1

Как только несколько файлов (скажем, 6) загружаются через fileInput, я получаю текст "6 файлов" рядом с кнопкой и "Загрузить полную" в строке выполнения. Кроме того, я полагаю, что в случае чрезвычайной ситуации (ошибочная загрузка или smth.) В строке состояния отображается некоторый текст. Пользовательский интерфейс приложения, который я пишу, написан на русском языке, поэтому все ярлыки должны быть на русском языке. Согласно документации, я могу установить только buttonLabel и метки-заполнители в fileInput, ничего о тексте, о котором я упоминал выше. Любые идеи, как я могу его изменить?

Теги:
shiny
shinydashboard

3 ответа

3

Это не полное решение, так как оно не решает проблему, с которой вы сталкиваетесь с несколькими файлами, но это, возможно, начало. Это изменяет текст в строке выполнения:


Вы можете сделать это, используя пользовательскую функцию javascript, хранящуюся в файле, который вы добавляете с tags$script(). Файл 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 (в этом случае uploaded) И изменит его с "Upload complete" на то, что вы его установили:

Изображение 174551

  • 0
    Благодарю. Хотя ответ является частичным, это, кажется, хороший путь.
1

В сообщении Shiny версии 1.0.5 "Загрузка завершена" жестко закодирована в исходных файлах javascript. Вам нужно будет изменить исходные файлы или добавить javascript-хак в приложение для изменения текста. Кроме того, вы можете скрыть сообщение с помощью CSS. Это не то же самое, что перевод, но в некоторых ситуациях он может быть достаточно хорош.

  1. Создайте файл app.css в той же папке ui.R и добавьте в него .progress-bar {color: transparent!important}
  2. Добавьте includeCSS("app.css") в пользовательский интерфейс, например: # Define UI for data upload app ---- ui <- fluidPage( includeCSS("app.css"), # The rest of your page...

Он работает, делая цвет шрифта прозрачным в индикаторе выполнения. Текст все еще присутствует, но он невидим.

  • 0
    Спасибо. Я редактировал (взломанный :)) код JS. Хотя это работает, ваш вариант кажется более элегантным.
0

vim/usr/lib64/R/library/shiny/www/shared/shiny.min.js и найдите слово "Загрузка завершена", а затем замените его. внимание кодировка.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню