浏览代码

Fix #376: Ability to validate initial/server files for max and min file count

Kartik Visweswaran 9 年之前
父节点
当前提交
69b6700303

+ 1 - 0
CHANGE.md

@@ -6,6 +6,7 @@ Change Log: `bootstrap-fileinput`
 **Date**: 27-Jul-2015
 
 1. (enh #373): Default delete ajax request type to POST (instead of DELETE).
+2. (enh #376): Ability to validate initial/server files for max and min file count.
 
 ## version 4.2.5
 

+ 3 - 0
README.md

@@ -806,6 +806,9 @@ _int_ the minimum number of files allowed for each multiple upload. If set to `0
 ### maxFileCount
 _int_ the maximum number of files allowed for each multiple upload. If set to `0`, it means number of files allowed is unlimited. Defaults to `0`.
 
+### validateInitialCount
+_boolean_ whether to include initial preview file count (server uploaded files) in validating `minFileCount` and `maxFileCount`. Defaults to `false`.
+
 ### msgSizeTooLarge
 _string_ the message to be displayed when the file size exceeds maximum size. Defaults to:
 

+ 32 - 8
js/fileinput.js

@@ -669,8 +669,8 @@
             });
         },
         submitForm: function () {
-            var self = this, $el = self.$element, files = $el.get(0).files;
-            if (files && files.length < self.minFileCount && self.minFileCount > 0) {
+            var self = this, $el = self.$element, files = $el.get(0).files, fileCount;
+            if (files && self.minFileCount > 0 && self.getFileCount(files.length) < self.minFileCount) {
                 self.noFilesError({});
                 return false;
             }
@@ -709,7 +709,7 @@
         upload: function () {
             var self = this, totLen = self.getFileStack().length, params = {},
                 i, outData, len, hasExtraData = !$.isEmptyObject(self.getExtraData());
-            if (totLen < self.minFileCount && self.minFileCount > 0) {
+            if (self.minFileCount > 0 && self.getFileCount(totLen) < self.minFileCount) {
                 self.noFilesError(params);
                 return;
             }
@@ -863,6 +863,9 @@
                 var $el = $(this), $frame = $el.closest('.file-preview-frame'),
                     ind = $frame.attr('data-fileindex'), n, cap;
                 handler($el, 'click', function () {
+                    if (!self.validateMinCount()) {
+                        return false;
+                    }
                     self.cleanMemory($frame);
                     $frame.fadeOut('slow', function () {
                         self.filestack[ind] = undefined;
@@ -990,7 +993,7 @@
                 };
 
             self.$preview.find('.kv-file-remove').each(function () {
-                var $el = $(this), vUrl = $el.data('url') || self.deleteUrl, vKey = $el.data('key');
+                var $el = $(this), vUrl = $el.data('url') || self.deleteUrl, vKey = $el.data('key'), len;
                 if (isEmpty(vUrl) || vKey === undefined) {
                     return;
                 }
@@ -1005,7 +1008,7 @@
                 params = {id: $el.attr('id'), key: vKey, extra: extraData};
                 settings = $.extend({
                     url: vUrl,
-                    type: 'POST',
+                    type: 'DELETE',
                     dataType: 'json',
                     data: $.extend({key: vKey}, extraData),
                     beforeSend: function (jqXHR) {
@@ -1056,6 +1059,9 @@
                     }
                 }, self.ajaxDeleteSettings);
                 handler($el, 'click', function () {
+                    if (!self.validateMinCount()) {
+                        return false;
+                    }
                     $.ajax(settings);
                 });
             });
@@ -1915,6 +1921,22 @@
                 self.initPreviewDeletes();
             }
         },
+        validateMinCount: function() {
+            var self = this, len = self.isUploadable ? self.getFileStack().length : self.$element.get(0).files.length;
+            if (self.validateInitialCount && self.minFileCount > 0 && self.getFileCount(len - 1) < self.minFileCount) {
+                self.noFilesError({});
+                return false;
+            }
+            return true;
+        },
+        getFileCount: function(fileCount) {
+            var self = this, addCount = 0;
+            if (self.validateInitialCount && !self.overwriteInitial) {
+                addCount = previewCache.count(self.id);
+                fileCount += addCount;
+            }
+            return fileCount;
+        },
         change: function (e) {
             var self = this, $el = self.$element;
             if (!self.isUploadable && isEmpty($el.val()) && self.fileInputCleared) { // IE 11 fix
@@ -1969,6 +1991,7 @@
             self.resetErrors();
             len = tfiles.length;
             total = self.isUploadable ? self.getFileStack().length + len : len;
+            total = self.getFileCount(total);
             if (self.maxFileCount > 0 && total > self.maxFileCount) {
                 if (!self.autoReplace || len > self.maxFileCount) {
                     n = (self.autoReplace && len > self.maxFileCount) ? len : total;
@@ -2230,6 +2253,7 @@
         maxFileSize: 0,
         minFileCount: 0,
         maxFileCount: 0,
+        validateInitialCount: false,
         msgValidationErrorClass: 'text-danger',
         msgValidationErrorIcon: '<i class="glyphicon glyphicon-exclamation-sign"></i> ',
         msgErrorClass: 'file-error-message',
@@ -2265,9 +2289,9 @@
         cancelTitle: 'Abort ongoing upload',
         uploadLabel: 'Upload',
         uploadTitle: 'Upload selected files',
-        msgSizeTooLarge: 'File "{name}" (<b>{size} KB</b>) exceeds maximum allowed upload size of <b>{maxSize} KB</b>. Please retry your upload!',
-        msgFilesTooLess: 'You must select at least <b>{n}</b> {files} to upload. Please retry your upload!',
-        msgFilesTooMany: 'Number of files selected for upload <b>({n})</b> exceeds maximum allowed limit of <b>{m}</b>. Please retry your upload!',
+        msgSizeTooLarge: 'File "{name}" (<b>{size} KB</b>) exceeds maximum allowed upload size of <b>{maxSize} KB</b>.',
+        msgFilesTooLess: 'You must select at least <b>{n}</b> {files} to upload.',
+        msgFilesTooMany: 'Number of files selected for upload <b>({n})</b> exceeds maximum allowed limit of <b>{m}</b>.',
         msgFileNotFound: 'File "{name}" not found!',
         msgFileSecured: 'Security restrictions prevent reading the file "{name}".',
         msgFileNotReadable: 'File "{name}" is not readable.',

文件差异内容过多而无法显示
+ 0 - 0
js/fileinput.min.js


+ 3 - 3
js/fileinput_locale_LANG.js

@@ -21,9 +21,9 @@
         cancelTitle: 'Abort ongoing upload',
         uploadLabel: 'Upload',
         uploadTitle: 'Upload selected files',
-        msgSizeTooLarge: 'File "{name}" (<b>{size} KB</b>) exceeds maximum allowed upload size of <b>{maxSize} KB</b>. Please retry your upload!',
-        msgFilesTooLess: 'You must select at least <b>{n}</b> {files} to upload. Please retry your upload!',
-        msgFilesTooMany: 'Number of files selected for upload <b>({n})</b> exceeds maximum allowed limit of <b>{m}</b>. Please retry your upload!',
+        msgSizeTooLarge: 'File "{name}" (<b>{size} KB</b>) exceeds maximum allowed upload size of <b>{maxSize} KB</b>.',
+        msgFilesTooLess: 'You must select at least <b>{n}</b> {files} to upload.',
+        msgFilesTooMany: 'Number of files selected for upload <b>({n})</b> exceeds maximum allowed limit of <b>{m}</b>.',
         msgFileNotFound: 'File "{name}" not found!',
         msgFileSecured: 'Security restrictions prevent reading the file "{name}".',
         msgFileNotReadable: 'File "{name}" is not readable.',

+ 3 - 3
js/fileinput_locale_bg.js

@@ -21,9 +21,9 @@
         cancelTitle: 'Откажи качването',
         uploadLabel: 'Качи',
         uploadTitle: 'Качи избраните файлове',
-        msgSizeTooLarge: 'Файла "{name}" (<b>{size} KB</b>) надвишава максималните разрешени <b>{maxSize} KB</b>. Моля опитайте отново!',
-        msgFilesTooLess: 'Трябва да изберете поне <b>{n}</b> {files} файла. Моля опитайте отново!',
-        msgFilesTooMany: 'Броя файлове избрани за качване <b>({n})</b> надвишава ограниченито от максимум <b>{m}</b>. Моля опитайте отново!',
+        msgSizeTooLarge: 'Файла "{name}" (<b>{size} KB</b>) надвишава максималните разрешени <b>{maxSize} KB</b>.',
+        msgFilesTooLess: 'Трябва да изберете поне <b>{n}</b> {files} файла.',
+        msgFilesTooMany: 'Броя файлове избрани за качване <b>({n})</b> надвишава ограниченито от максимум <b>{m}</b>.',
         msgFileNotFound: 'Файлът "{name}" не може да бъде намерен!',
         msgFileSecured: 'От съображения за сигурност не може да прочетем файла "{name}".',
         msgFileNotReadable: 'Файлът "{name}" не е четим.',

+ 3 - 3
js/fileinput_locale_cz.js

@@ -21,9 +21,9 @@
         cancelTitle: 'Přerušit  nahrávání',
         uploadLabel: 'Nahrát',
         uploadTitle: 'Nahrát vybrané soubory',
-        msgSizeTooLarge: 'Soubor "{name}" (<b>{size} KB</b>): překročení - maximální povolená velikost <b>{maxSize} KB</b>. Zkuste nahrát znova, prosím!',
-        msgFilesTooLess: 'Musíte vybrat nejméně <b>{n}</b> {files} pro nahrání. Zkuste nahrát znova, prosím!',
-        msgFilesTooMany: 'Počet vybraných souborů pro nahrání <b>({n})</b>: překročení - maximální povolený limit <b>{m}</b>. Zkuste nahrát znova, prosím!',
+        msgSizeTooLarge: 'Soubor "{name}" (<b>{size} KB</b>): překročení - maximální povolená velikost <b>{maxSize} KB</b>.',
+        msgFilesTooLess: 'Musíte vybrat nejméně <b>{n}</b> {files} pro nahrání.',
+        msgFilesTooMany: 'Počet vybraných souborů pro nahrání <b>({n})</b>: překročení - maximální povolený limit <b>{m}</b>.',
         msgFileNotFound: 'Soubor "{name}" nebyl nalezen!',
         msgFileSecured: 'Zabezpečení souboru znemožnilo číst soubor "{name}".',
         msgFileNotReadable: 'Soubor "{name}" není čitelný.',

+ 1 - 1
js/fileinput_locale_de.js

@@ -20,7 +20,7 @@
         uploadLabel: 'Hochladen',
         uploadTitle: 'Hochladen der ausgewählten Dateien',
         msgSizeTooLarge: 'Datei "{name}" (<b>{size} KB</b>) überschreitet maximal zulässige Upload-Größe von <b>{maxSize} KB</b>.',
-        msgFilesTooLess: 'Sie müssen mindestens <b>{n}</b> {files} zum Hochladen auswählen. Bitte versuchen es erneut!',
+        msgFilesTooLess: 'Sie müssen mindestens <b>{n}</b> {files} zum Hochladen auswählen.',
         msgFilesTooMany: 'Anzahl der Dateien für den Upload ausgewählt <b>({n})</b> überschreitet maximal zulässige Grenze von <b>{m}</b> Stück.',
         msgFileNotFound: 'Datei "{name}" wurde nicht gefunden!',
         msgFileSecured: 'Sicherheitseinstellungen verhindern das Lesen der Datei "{name}".',

+ 3 - 3
js/fileinput_locale_el.js

@@ -21,9 +21,9 @@
         cancelTitle: 'Ακύρωση μεταφόρτωσης',
         uploadLabel: 'Μεταφόρτωση',
         uploadTitle: 'Μεταφόρτωση επιλεγμένων αρχείων',
-        msgSizeTooLarge: 'Το αρχείο "{name}" (<b>{size} KB</b>) υπερβαίνει το μέγιστο επιτρεπόμενο μέγεθος μεταφόρτωσης <b>{maxSize} KB</b>. Παρακαλώ ξαναπροσπαθήστε!',
-        msgFilesTooLess: 'Πρέπει να επιλέξετε τουλάχιστον <b>{n}</b> {files} για να ξεκινήσει η μεταφόρτωση. Παρακαλώ ξαναπροσπαθήστε!',
-        msgFilesTooMany: 'Ο αριθμός των αρχείων που έχουν επιλεγεί για μεταφόρτωση <b>({n})</b> υπερβαίνει το μέγιστο επιτρεπόμενο αριθμό <b>{m}</b>. Παρακαλώ ξαναπροσπαθήστε!',
+        msgSizeTooLarge: 'Το αρχείο "{name}" (<b>{size} KB</b>) υπερβαίνει το μέγιστο επιτρεπόμενο μέγεθος μεταφόρτωσης <b>{maxSize} KB</b>.',
+        msgFilesTooLess: 'Πρέπει να επιλέξετε τουλάχιστον <b>{n}</b> {files} για να ξεκινήσει η μεταφόρτωση.',
+        msgFilesTooMany: 'Ο αριθμός των αρχείων που έχουν επιλεγεί για μεταφόρτωση <b>({n})</b> υπερβαίνει το μέγιστο επιτρεπόμενο αριθμό <b>{m}</b>.',
         msgFileNotFound: 'Το αρχείο με όνομα "{name}" δεν βρέθηκε!',
         msgFileSecured: 'Περιορισμοί ασφαλείας εμπόδισαν την ανάγνωση του αρχείου"{name}".',
         msgFileNotReadable: 'Το αρχείο με όνομα "{name}" δεν είναι αναγνώσιμο.',

+ 3 - 3
js/fileinput_locale_es.js

@@ -21,9 +21,9 @@
         cancelTitle: 'Abortar la subida en curso',
         uploadLabel: 'Subir archivo',
         uploadTitle: 'Subir archivos seleccionados',
-        msgSizeTooLarge: 'Archivo "{name}" (<b>{size} KB</b>) excede el tamaño máximo permitido de <b>{maxSize} KB</b>. Por favor, inténtelo de nuevo con archivos mas pequeños.',
-        msgFilesTooLess: 'Debe seleccionar al menos <b>{n}</b> {files} a cargar. Por favor, inténtelo de nuevo.',
-        msgFilesTooMany: 'El número de archivos seleccionados a cargar <b>({n})</b> excede el límite máximo permitido de <b>{m}</b>. Por favor, inténtelo de nuevo.',
+        msgSizeTooLarge: 'Archivo "{name}" (<b>{size} KB</b>) excede el tamaño máximo permitido de <b>{maxSize} KB</b>.',
+        msgFilesTooLess: 'Debe seleccionar al menos <b>{n}</b> {files} a cargar.',
+        msgFilesTooMany: 'El número de archivos seleccionados a cargar <b>({n})</b> excede el límite máximo permitido de <b>{m}</b>.',
         msgFileNotFound: 'Archivo "{name}" no encontrado.',
         msgFileSecured: 'No es posible acceder al archivo "{name}" porque estará siendo usado por otra aplicación o no tengamos permisos de lectura.',
         msgFileNotReadable: 'No es posible acceder al archivo "{name}".',

+ 3 - 3
js/fileinput_locale_fa.js

@@ -22,9 +22,9 @@
         cancelTitle: 'لغو بارگزاری جاری',
         uploadLabel: 'بارگذاری',
         uploadTitle: 'بارگذاری فایل‌های انتخاب شده',
-        msgSizeTooLarge: 'فایل "{name}" (<b>{size} کیلوبایت</b>) از حداکثر مجاز <b>{maxSize} کیلوبایت</b> عبور کرده است. لطفا مجددا برای بارگذاری سعی کنید!',
-        msgFilesTooLess: 'شما باید حداقل <b>{n}</b> {files} فایل برای بارگذاری انتخاب کنید. لطفا مجددا برای بارگذاری سعی کنید!',
-        msgFilesTooMany: 'تعداد فایل‌های انتخاب شده برای بارگذاری <b>({n})</b> از حداکثر مجاز عبور کرده است <b>{m}</b>. لطفا مجددا برای بارگذاری سعی کنید!',
+        msgSizeTooLarge: 'فایل "{name}" (<b>{size} کیلوبایت</b>) از حداکثر مجاز <b>{maxSize} کیلوبایت</b>.',
+        msgFilesTooLess: 'شما باید حداقل <b>{n}</b> {files} فایل برای بارگذاری انتخاب کنید.',
+        msgFilesTooMany: 'تعداد فایل‌های انتخاب شده برای بارگذاری <b>({n})</b> از حداکثر مجاز عبور کرده است <b>{m}</b>.',
         msgFileNotFound: 'فایل "{name}" یافت نشد!',
         msgFileSecured: 'محدودیت های امنیتی مانع خواندن فایل "{name}" است.',
         msgFileNotReadable: 'فایل "{name}" قابل نوشتن نیست.',

+ 3 - 3
js/fileinput_locale_fr.js

@@ -21,9 +21,9 @@
         cancelTitle: "Annuler l'envoi en cours",
         uploadLabel: 'Transférer',
         uploadTitle: 'Transférer les fichiers sélectionnés',
-        msgSizeTooLarge: 'Le fichier "{name}" (<b>{size} KB</b>) dépasse la taille maximale autorisée qui est de <b>{maxSize} KB</b>. Merci de recommencer !',
-        msgFilesTooLess: 'Vous devez sélectionner au moins <b>{n}</b> {files} à transmetter. Merci de recommencer !',
-        msgFilesTooMany: 'Le nombre de fichier sélectionné <b>({n})</b> dépasse la quantité maximale autorisée qui est de <b>{m}</b>. Merci de recommencer !',
+        msgSizeTooLarge: 'Le fichier "{name}" (<b>{size} KB</b>) dépasse la taille maximale autorisée qui est de <b>{maxSize} KB</b>.',
+        msgFilesTooLess: 'Vous devez sélectionner au moins <b>{n}</b> {files} à transmetter.',
+        msgFilesTooMany: 'Le nombre de fichier sélectionné <b>({n})</b> dépasse la quantité maximale autorisée qui est de <b>{m}</b>.',
         msgFileNotFound: 'Le fichier "{name}" est introuvable !',
         msgFileSecured: "Des restrictions de sécurité vous empêchent d'accéder au fichier \"{name}\".",
         msgFileNotReadable: 'Le fichier "{name}" est illisble.',

+ 3 - 3
js/fileinput_locale_hu.js

@@ -21,9 +21,9 @@
         cancelTitle: 'Feltöltés megszakítása',
         uploadLabel: 'Feltöltés',
         uploadTitle: 'Kijelölt fájlok feltöltése',
-        msgSizeTooLarge: '"{name}" fájl (<b>{size} KB</b>) mérete nagyobb a megengedettnél <b>{maxSize} KB</b>. Kérjük próbálja újra!',
-        msgFilesTooLess: 'Legalább <b>{n}</b> {files} ki kell választania a feltöltéshez. Kérjük próbálja újra!',
-        msgFilesTooMany: 'A feltölteni kívánt fájlok száma <b>({n})</b> elérte a megengedett maximumot <b>{m}</b>. Kérjük próbálja újra!',
+        msgSizeTooLarge: '"{name}" fájl (<b>{size} KB</b>) mérete nagyobb a megengedettnél <b>{maxSize} KB</b>.',
+        msgFilesTooLess: 'Legalább <b>{n}</b> {files} ki kell választania a feltöltéshez.',
+        msgFilesTooMany: 'A feltölteni kívánt fájlok száma <b>({n})</b> elérte a megengedett maximumot <b>{m}</b>.',
         msgFileNotFound: '"{name}" fájl nem található!',
         msgFileSecured: 'Biztonsági beállítások nem engedik olvasni a fájlt "{name}".',
         msgFileNotReadable: '"{name}" fájl nem olvasható',

+ 3 - 3
js/fileinput_locale_it.js

@@ -23,9 +23,9 @@
         cancelTitle: 'Annulla i caricamenti in corso',
         uploadLabel: 'Carica',
         uploadTitle: 'Carica i file selezionati',
-        msgSizeTooLarge: 'Il file "{name}" (<b>{size} KB</b>) eccede la dimensione massima di caricamento di <b>{maxSize} KB</b>. Per favore correggi il file e riprova!',
-        msgFilesTooLess: 'Devi selezionare almeno <b>{n}</b> {files} da caricare. Per favore correggi e riprova!',
-        msgFilesTooMany: 'Il numero di file selezionati per il caricamento <b>({n})</b> eccede il numero massimo di file accettati <b>{m}</b>. Per favore correggi e riprova!',
+        msgSizeTooLarge: 'Il file "{name}" (<b>{size} KB</b>) eccede la dimensione massima di caricamento di <b>{maxSize} KB</b>.',
+        msgFilesTooLess: 'Devi selezionare almeno <b>{n}</b> {files} da caricare.',
+        msgFilesTooMany: 'Il numero di file selezionati per il caricamento <b>({n})</b> eccede il numero massimo di file accettati <b>{m}</b>.',
         msgFileNotFound: 'File "{name}" non trovato!',
         msgFileSecured: 'Restrizioni di sicurezza impediscono la lettura del file "{name}".',
         msgFileNotReadable: 'Il file "{name}" non \xE8 leggibile.',

+ 3 - 3
js/fileinput_locale_nl.js

@@ -21,9 +21,9 @@
         cancelTitle: 'Annuleer gaande upload',
         uploadLabel: 'Upload',
         uploadTitle: 'Upload geselecteerde bestanden',
-        msgSizeTooLarge: 'Bestand "{name}" (<b>{size} KB</b>) is groter dan de toegestaande <b>{maxSize} KB</b>. Probeer opnieuw!',
-        msgFilesTooLess: 'U moet minstens <b>{n}</b> {files} selecteren om te uploaden. Probeer opnieuw!',
-        msgFilesTooMany: 'Aantal geselecteerde bestanden <b>({n})</b> is meer dan de toegestaande <b>{m}</b>. Probeer opnieuw!',
+        msgSizeTooLarge: 'Bestand "{name}" (<b>{size} KB</b>) is groter dan de toegestaande <b>{maxSize} KB</b>.',
+        msgFilesTooLess: 'U moet minstens <b>{n}</b> {files} selecteren om te uploaden.',
+        msgFilesTooMany: 'Aantal geselecteerde bestanden <b>({n})</b> is meer dan de toegestaande <b>{m}</b>.',
         msgFileNotFound: 'Bestand "{name}" niet gevonden!',
         msgFileSecured: 'Bestand kan niet gelezen worden in verband met beveiligings redenen "{name}".',
         msgFileNotReadable: 'Bestand "{name}" is niet leesbaar.',

+ 3 - 3
js/fileinput_locale_pl.js

@@ -21,9 +21,9 @@
         cancelTitle: 'Anuluj wysyłanie',
         uploadLabel: 'Wgraj',
         uploadTitle: 'Wgraj zaznaczone pliki',
-        msgSizeTooLarge: 'Plik o nazwie "{name}" (<b>{size} KB</b>) przekroczył maksymalną dopuszczalną wielkość pliku wynoszącą <b>{maxSize} KB</b>. Proszę ponowić próbę wysłania pliku!',
-        msgFilesTooLess: 'Musisz wybrać przynajmniej <b>{n}</b> {files} do wgrania. Proszę spróbować jeszcze raz wgrać pliki!',
-        msgFilesTooMany: 'Liczba plików wybranych do wgrania w liczbie <b>({n})</b>, przekracza maksymalny dozwolony limit wynoszący <b>{m}</b>. Proszę spróbować ponownie!',
+        msgSizeTooLarge: 'Plik o nazwie "{name}" (<b>{size} KB</b>) przekroczył maksymalną dopuszczalną wielkość pliku wynoszącą <b>{maxSize} KB</b>.',
+        msgFilesTooLess: 'Musisz wybrać przynajmniej <b>{n}</b> {files} do wgrania.',
+        msgFilesTooMany: 'Liczba plików wybranych do wgrania w liczbie <b>({n})</b>, przekracza maksymalny dozwolony limit wynoszący <b>{m}</b>.',
         msgFileNotFound: 'Plik "{name}" nie istnieje!',
         msgFileSecured: 'Ustawienia zabezpieczeń uniemożliwiają odczyt pliku "{name}".',
         msgFileNotReadable: 'Plik "{name}" nie jest plikiem do odczytu.',

+ 3 - 3
js/fileinput_locale_pt-BR.js

@@ -21,9 +21,9 @@
         cancelTitle: 'Interromper envio em andamento',
         uploadLabel: 'Enviar',
         uploadTitle: 'Enviar arquivos selecionados',
-        msgSizeTooLarge: 'O arquivo "{name}" (<b>{size} KB</b>) excede o tamanho máximo permitido de <b>{maxSize} KB</b>. Por favor, tente enviar novamente!',
-        msgFilesTooLess: 'Você deve selecionar pelo menos <b>{n}</b> {files} para enviar. Por favor, tente enviar novamente!',
-        msgFilesTooMany: 'O número de arquivos selecionados para o envio <b>({n})</b> excede o limite máximo permitido de <b>{m}</b>. Por favor, tente enviar novamente!',
+        msgSizeTooLarge: 'O arquivo "{name}" (<b>{size} KB</b>) excede o tamanho máximo permitido de <b>{maxSize} KB</b>.',
+        msgFilesTooLess: 'Você deve selecionar pelo menos <b>{n}</b> {files} para enviar.',
+        msgFilesTooMany: 'O número de arquivos selecionados para o envio <b>({n})</b> excede o limite máximo permitido de <b>{m}</b>.',
         msgFileNotFound: 'O arquivo "{name}" não foi encontrado!',
         msgFileSecured: 'Restrições de segurança impedem a leitura do arquivo "{name}".',
         msgFileNotReadable: 'O arquivo "{name}" não pode ser lido.',

+ 3 - 3
js/fileinput_locale_pt.js

@@ -21,9 +21,9 @@
         cancelTitle: 'Abortar carregamento ',
         uploadLabel: 'Carregar',
         uploadTitle: 'Carregar ficheiros seleccionados',
-        msgSizeTooLarge: 'Ficheiro "{name}" (<b>{size} KB</b>) excede o tamanho máximo permido de <b>{maxSize} KB</b>. Por favor carregue de novo!',
-        msgFilesTooLess: 'Deve seleccionar pelo menos <b>{n}</b> {files} para fazer upload. Por favor carregue de novo!',
-        msgFilesTooMany: 'Número máximo de ficheiros seleccionados <b>({n})</b> excede o limite máximo de <b>{m}</b>. Por favor carregue de novo!',
+        msgSizeTooLarge: 'Ficheiro "{name}" (<b>{size} KB</b>) excede o tamanho máximo permido de <b>{maxSize} KB</b>.',
+        msgFilesTooLess: 'Deve seleccionar pelo menos <b>{n}</b> {files} para fazer upload.',
+        msgFilesTooMany: 'Número máximo de ficheiros seleccionados <b>({n})</b> excede o limite máximo de <b>{m}</b>.',
         msgFileNotFound: 'Ficheiro "{name}" não encontrado!',
         msgFileSecured: 'Restrições de segurança preventem a leitura do ficheiro "{name}".',
         msgFileNotReadable: 'Ficheiro "{name}" não pode ser lido.',

+ 3 - 3
js/fileinput_locale_ro.js

@@ -22,9 +22,9 @@
         cancelTitle: 'Anulează încărcarea curentă',
         uploadLabel: 'Încarcă',
         uploadTitle: 'Încarcă fișierele selectate',
-        msgSizeTooLarge: 'Fișierul "{name}" (<b>{size} KB</b>) depășește limita maximă de încărcare de <b>{maxSize} KB</b>. Te rugăm reîncearcă!',
-        msgFilesTooLess: 'Trebuie să selectezi cel puțin <b>{n}</b> {files} pentru a încărca. Te rugăm reîncearcă!',
-        msgFilesTooMany: 'Numărul fișierelor pentru încărcare <b>({n})</b> depășește limita maximă de <b>{m}</b>. Te rugăm reîncearcă!',
+        msgSizeTooLarge: 'Fișierul "{name}" (<b>{size} KB</b>) depășește limita maximă de încărcare de <b>{maxSize} KB</b>.',
+        msgFilesTooLess: 'Trebuie să selectezi cel puțin <b>{n}</b> {files} pentru a încărca.',
+        msgFilesTooMany: 'Numărul fișierelor pentru încărcare <b>({n})</b> depășește limita maximă de <b>{m}</b>.',
         msgFileNotFound: 'Fișierul "{name}" nu a fost găsit!',
         msgFileSecured: 'Restricții de securitate previn citirea fișierului "{name}".',
         msgFileNotReadable: 'Fișierul "{name}" nu se poate citi.',

+ 3 - 3
js/fileinput_locale_ru.js

@@ -22,9 +22,9 @@
         cancelTitle: 'Отменить текущую загрузку',
         uploadLabel: 'Загрузить',
         uploadTitle: 'Загрузить выбранные файлы',
-        msgSizeTooLarge: 'Файл "{name}" (<b>{size} KB</b>) превышает максимальный размер <b>{maxSize} KB</b>',
-        msgFilesTooLess: 'Вы должны выбрать как минимум <b>{n}</b> {files} для загрузки',
-        msgFilesTooMany: 'Количество выбранных файлов <b>({n})</b> превышает максимально допустимое количество <b>{m}</b>',
+        msgSizeTooLarge: 'Файл "{name}" (<b>{size} KB</b>) превышает максимальный размер <b>{maxSize} KB</b>.',
+        msgFilesTooLess: 'Вы должны выбрать как минимум <b>{n}</b> {files} для загрузки.',
+        msgFilesTooMany: 'Количество выбранных файлов <b>({n})</b> превышает максимально допустимое количество <b>{m}</b>.',
         msgFileNotFound: 'Файл "{name}" не найден!',
         msgFileSecured: 'Ограничения безопасности запрещают читать файл "{name}".',
         msgFileNotReadable: 'Файл "{name}" невозможно прочитать.',

+ 3 - 3
js/fileinput_locale_sk.js

@@ -21,9 +21,9 @@
         cancelTitle: 'Prerušiť  nahrávanie',
         uploadLabel: 'Nahrať',
         uploadTitle: 'Nahrať vybraté súbory',
-        msgSizeTooLarge: 'Súbor "{name}" (<b>{size} KB</b>): prekročenie - maximálna povolená veľkosť <b>{maxSize} KB</b>. Skúste nahrať opäť, prosím!',
-        msgFilesTooLess: 'Musíte vybrať najmenej <b>{n}</b> {files} pre nahranie. Skúste nahrať opäť, prosím!',
-        msgFilesTooMany: 'Počet vybratých súborov pre nahranie <b>({n})</b>: prekročenie - maximálny povolený limit <b>{m}</b>. Skúste nahrať opäť, prosím!',
+        msgSizeTooLarge: 'Súbor "{name}" (<b>{size} KB</b>): prekročenie - maximálna povolená veľkosť <b>{maxSize} KB</b>.',
+        msgFilesTooLess: 'Musíte vybrať najmenej <b>{n}</b> {files} pre nahranie.',
+        msgFilesTooMany: 'Počet vybratých súborov pre nahranie <b>({n})</b>: prekročenie - maximálny povolený limit <b>{m}</b>.',
         msgFileNotFound: 'Súbor "{name}" nebol nájdený!',
         msgFileSecured: 'Zabezpečenie súboru znemožnilo čítať súbor "{name}".',
         msgFileNotReadable: 'Súbor "{name}" nie je čitateľný.',

+ 3 - 3
js/fileinput_locale_sr.js

@@ -22,9 +22,9 @@
         cancelTitle: 'Prekini trenutno otpremanje',
         uploadLabel: 'Otpremi',
         uploadTitle: 'Otpremi označene datoteke',
-        msgSizeTooLarge: 'Datoteka "{name}" (<b>{size} KB</b>) prekoračuje maksimalnu dozvoljenu veličinu datoteke od <b>{maxSize} KB</b>. Molimo pokušajte ponovo!',
-        msgFilesTooLess: 'Morate odabrati najmanje <b>{n}</b> {files} za otpremanje. Molimo pokušajte ponovo!',
-        msgFilesTooMany: 'Broj datoteka označenih za otpremanje <b>({n})</b> prekoračuje maksimalni dozvoljeni limit od <b>{m}</b>. Molimo pokušajte ponovo!',
+        msgSizeTooLarge: 'Datoteka "{name}" (<b>{size} KB</b>) prekoračuje maksimalnu dozvoljenu veličinu datoteke od <b>{maxSize} KB</b>.',
+        msgFilesTooLess: 'Morate odabrati najmanje <b>{n}</b> {files} za otpremanje.',
+        msgFilesTooMany: 'Broj datoteka označenih za otpremanje <b>({n})</b> prekoračuje maksimalni dozvoljeni limit od <b>{m}</b>.',
         msgFileNotFound: 'Datoteka "{name}" nije pronađena!',
         msgFileSecured: 'Datoteku "{name}" nije moguće pročitati zbog bezbednosnih ograničenja.',
         msgFileNotReadable: 'Datoteku "{name}" nije moguće pročitati.',

+ 3 - 3
js/fileinput_locale_tr.js

@@ -21,9 +21,9 @@
         cancelTitle: 'Devam eden yüklemeyi iptal et',
         uploadLabel: 'Yükle',
         uploadTitle: 'Seçilen dosyaları yükle',
-        msgSizeTooLarge: '"{name}" dosyasının boyutu (<b>{size} KB</b>) izin verilen azami dosya boyutu olan <b>{maxSize} KB</b>\'tan büyük. Lütfen tekrar deneyin!',
-        msgFilesTooLess: 'Yüklemek için en az <b>{n}</b> {files} dosya seçmelisiniz. Lütfen tekrar deneyin!',
-        msgFilesTooMany: 'Yüklemek için seçtiğiniz dosya sayısı <b>({n})</b> azami limitin <b>{m}</b> altında olmalıdır. Lütfen tekrar deneyin!',
+        msgSizeTooLarge: '"{name}" dosyasının boyutu (<b>{size} KB</b>) izin verilen azami dosya boyutu olan <b>{maxSize} KB</b>\'tan büyük.',
+        msgFilesTooLess: 'Yüklemek için en az <b>{n}</b> {files} dosya seçmelisiniz.',
+        msgFilesTooMany: 'Yüklemek için seçtiğiniz dosya sayısı <b>({n})</b> azami limitin <b>{m}</b> altında olmalıdır.',
         msgFileNotFound: '"{name}" dosyası bulunamadı!',
         msgFileSecured: 'Güvenlik kısıtlamaları "{name}" dosyasının okunmasını engelliyor.',
         msgFileNotReadable: '"{name}" dosyası okunabilir değil.',

+ 3 - 3
js/fileinput_locale_uk.js

@@ -22,9 +22,9 @@
         cancelTitle: 'Скасувати поточну загрузку',
         uploadLabel: 'Загрузити',
         uploadTitle: 'Загрузити вибрані файли',
-        msgSizeTooLarge: 'Файл "{name}" (<b>{size} KB</b>) перевищує максимальний розмір <b>{maxSize} KB</b>',
-        msgFilesTooLess: 'Ви повинні вибрати як мінімум <b>{n}</b> {files} для загрузки',
-        msgFilesTooMany: 'Кількість вибраних файлів <b>({n})</b> перевищує максимально допустиму кількість <b>{m}</b>',
+        msgSizeTooLarge: 'Файл "{name}" (<b>{size} KB</b>) перевищує максимальний розмір <b>{maxSize} KB</b>.',
+        msgFilesTooLess: 'Ви повинні вибрати як мінімум <b>{n}</b> {files} для загрузки.',
+        msgFilesTooMany: 'Кількість вибраних файлів <b>({n})</b> перевищує максимально допустиму кількість <b>{m}</b>.',
         msgFileNotFound: 'Файл "{name}" не знайдено!',
         msgFileSecured: 'Обмеження безпеки перешкоджають читанню файла "{name}".',
         msgFileNotReadable: 'Файл "{name}" неможливо прочитати.',

+ 3 - 3
js/fileinput_locale_zh.js

@@ -22,9 +22,9 @@
         cancelTitle: '取消进行中的上传',
         uploadLabel: '上传',
         uploadTitle: '上传选中文件',
-        msgSizeTooLarge: '文件 "{name}" (<b>{size} KB</b>) 超过了允许大小 <b>{maxSize} KB</b>. 请重新上传!',
-        msgFilesTooLess: '你必须选择最少 <b>{n}</b> {files} 来上传. 请重新上传!',
-        msgFilesTooMany: '选择的上传文件个数 <b>({n})</b> 超出最大文件的限制个数 <b>{m}</b>. 请重新上传!',
+        msgSizeTooLarge: '文件 "{name}" (<b>{size} KB</b>) 超过了允许大小 <b>{maxSize} KB</b>.',
+        msgFilesTooLess: '你必须选择最少 <b>{n}</b> {files} 来上传. ',
+        msgFilesTooMany: '选择的上传文件个数 <b>({n})</b> 超出最大文件的限制个数 <b>{m}</b>.',
         msgFileNotFound: '文件 "{name}" 未找到!',
         msgFileSecured: '安全限制,为了防止读取文件 "{name}".',
         msgFileNotReadable: '文件 "{name}" 不可读.',

部分文件因为文件数量过多而无法显示