diff options
author | Robert Jaros <rjaros@finn.pl> | 2019-01-19 00:18:58 +0100 |
---|---|---|
committer | Robert Jaros <rjaros@finn.pl> | 2019-01-19 00:18:58 +0100 |
commit | 76754fd65d195f418a8643a8e0213fc8b0b6ab31 (patch) | |
tree | b537707f6044a6598a9ef5bdfd514d72ad8d95d6 | |
parent | 69df5eb9d89f40d56ff7db0f7f30ead51ad0c2a1 (diff) | |
download | kvision-76754fd65d195f418a8643a8e0213fc8b0b6ab31.tar.gz kvision-76754fd65d195f418a8643a8e0213fc8b0b6ab31.tar.bz2 kvision-76754fd65d195f418a8643a8e0213fc8b0b6ab31.zip |
Upload component upgrade and enhancements.
17 files changed, 442 insertions, 233 deletions
diff --git a/kvision-modules/kvision-upload/build.gradle b/kvision-modules/kvision-upload/build.gradle index e45b9a3b..943bb927 100644 --- a/kvision-modules/kvision-upload/build.gradle +++ b/kvision-modules/kvision-upload/build.gradle @@ -3,7 +3,7 @@ apply from: "../shared.gradle" kotlinFrontend { npm { - dependency("bootstrap-fileinput", "4.4.7") + dependency("bootstrap-fileinput", "4.5.2") } } diff --git a/kvision-modules/kvision-upload/src/main/kotlin/pl/treksoft/kvision/form/upload/Upload.kt b/kvision-modules/kvision-upload/src/main/kotlin/pl/treksoft/kvision/form/upload/Upload.kt index 314c9904..971ce186 100644 --- a/kvision-modules/kvision-upload/src/main/kotlin/pl/treksoft/kvision/form/upload/Upload.kt +++ b/kvision-modules/kvision-upload/src/main/kotlin/pl/treksoft/kvision/form/upload/Upload.kt @@ -252,7 +252,7 @@ open class Upload( * @param kFile KFile object * @return File object */ - fun getNativeFile(kFile: KFile): File? { + override fun getNativeFile(kFile: KFile): File? { return input.getNativeFile(kFile) } diff --git a/kvision-modules/kvision-upload/src/main/kotlin/pl/treksoft/kvision/form/upload/UploadInput.kt b/kvision-modules/kvision-upload/src/main/kotlin/pl/treksoft/kvision/form/upload/UploadInput.kt index 2af7b3f7..ee17949e 100644 --- a/kvision-modules/kvision-upload/src/main/kotlin/pl/treksoft/kvision/form/upload/UploadInput.kt +++ b/kvision-modules/kvision-upload/src/main/kotlin/pl/treksoft/kvision/form/upload/UploadInput.kt @@ -173,23 +173,25 @@ open class UploadInput(uploadUrl: String? = null, multiple: Boolean = false, cla @Suppress("UnsafeCastFromDynamic") override fun afterInsert(node: VNode) { getElementJQueryD()?.fileinput(getSettingsObj()) - this.getElementJQuery()?.on("fileselect") { e, _ -> - this.dispatchEvent("fileSelectUpload", obj { detail = e }) - } - this.getElementJQuery()?.on("fileclear") { e, _ -> - this.dispatchEvent("fileClearUpload", obj { detail = e }) - } - this.getElementJQuery()?.on("filereset") { e, _ -> - this.dispatchEvent("fileResetUpload", obj { detail = e }) - } - this.getElementJQuery()?.on("filebrowse") { e, _ -> - this.dispatchEvent("fileBrowseUpload", obj { detail = e }) - } - this.getElementJQueryD()?.on("filepreupload") lambda@{ _, data, previewId, index -> - data["previewId"] = previewId - data["index"] = index - this.dispatchEvent("filePreUpload", obj { detail = data }) - return@lambda null + if (uploadUrl != null) { + this.getElementJQuery()?.on("fileselect") { e, _ -> + this.dispatchEvent("fileSelectUpload", obj { detail = e }) + } + this.getElementJQuery()?.on("fileclear") { e, _ -> + this.dispatchEvent("fileClearUpload", obj { detail = e }) + } + this.getElementJQuery()?.on("filereset") { e, _ -> + this.dispatchEvent("fileResetUpload", obj { detail = e }) + } + this.getElementJQuery()?.on("filebrowse") { e, _ -> + this.dispatchEvent("fileBrowseUpload", obj { detail = e }) + } + this.getElementJQueryD()?.on("filepreupload") lambda@{ _, data, previewId, index -> + data["previewId"] = previewId + data["index"] = index + this.dispatchEvent("filePreUpload", obj { detail = data }) + return@lambda null + } } } @@ -301,6 +303,10 @@ open class UploadInput(uploadUrl: String? = null, multiple: Boolean = false, cla this.allowedFileTypes = allowedFileTypes?.toTypedArray() this.allowedFileExtensions = allowedFileExtensions?.toTypedArray() this.dropZoneEnabled = dropZoneEnabled + this.fileActionSettings = obj { + this.showUpload = showUpload + this.showRemove = showRemove + } this.language = language } } diff --git a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/da.js b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/da.js index 613defec..11a13892 100644 --- a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/da.js +++ b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/da.js @@ -10,7 +10,7 @@ */ (function ($) { "use strict"; - + $.fn.fileinputLocales['da'] = { fileSingle: 'fil', filePlural: 'filer', @@ -24,19 +24,19 @@ msgNo: 'Ingen', msgNoFilesSelected: '', msgCancelled: 'aflyst', - msgPlaceholder: 'Select {files}...', + msgPlaceholder: 'Vælg {files}...', msgZoomModalHeading: 'Detaljeret visning', - msgFileRequired: 'You must select a file to upload.', - msgSizeTooSmall: 'File "{name}" (<b>{size} KB</b>) is too small and must be larger than <b>{minSize} KB</b>.', + msgFileRequired: 'Du skal vælge en fil at uploade.', + msgSizeTooSmall: 'Fil "{name}" (<b>{size} KB</b>) er for lille og skal være større end <b>{minSize} KB</b>.', msgSizeTooLarge: 'Fil "{name}" (<b>{size} KB</b>) er større end de tilladte <b>{maxSize} KB</b>.', msgFilesTooLess: 'Du skal mindst vælge <b>{n}</b> {files} til upload.', msgFilesTooMany: '<b>({n})</b> filer valgt til upload, men maks. <b>{m}</b> er tilladt.', msgFileNotFound: 'Filen "{name}" blev ikke fundet!', msgFileSecured: 'Sikkerhedsrestriktioner forhindrer læsning af "{name}".', msgFileNotReadable: 'Filen "{name}" kan ikke indlæses.', - msgFilePreviewAborted: 'Filpreview annulleret for "{name}".', + msgFilePreviewAborted: 'Filgennemsyn annulleret for "{name}".', msgFilePreviewError: 'Der skete en fejl under læsningen af filen "{name}".', - msgInvalidFileName: 'Invalid or unsupported characters in file name "{name}".', + msgInvalidFileName: 'Ugyldige eller ikke-understøttede tegn i filnavn "{name}".', msgInvalidFileType: 'Ukendt type for filen "{name}". Kun "{types}" kan bruges.', msgInvalidFileExtension: 'Ukendt filtype for filen "{name}". Kun "{extensions}" filer kan bruges.', msgFileTypes: { @@ -50,12 +50,12 @@ 'object': 'object' }, msgUploadAborted: 'Filupload annulleret', - msgUploadThreshold: 'Processing...', - msgUploadBegin: 'Initializing...', - msgUploadEnd: 'Done', - msgUploadEmpty: 'No valid data available for upload.', - msgUploadError: 'Error', - msgValidationError: 'Validering Fejl', + msgUploadThreshold: 'Arbejder...', + msgUploadBegin: 'Initialiserer...', + msgUploadEnd: 'Udført', + msgUploadEmpty: 'Ingen gyldig data tilgængelig til upload.', + msgUploadError: 'Fejl', + msgValidationError: 'Valideringsfejl', msgLoading: 'Henter fil {index} af {files} …', msgProgress: 'Henter fil {index} af {files} - {name} - {percent}% færdiggjort.', msgSelected: '{n} {files} valgt', @@ -64,37 +64,37 @@ msgImageHeightSmall: 'Højden af billedet "{name}" skal være på mindst {size} px.', msgImageWidthLarge: 'Bredden af billedet "{name}" må ikke være over {size} px.', msgImageHeightLarge: 'Højden af billedet "{name}" må ikke være over {size} px.', - msgImageResizeError: 'Kunne ikke få billedets dimensioner for at ændre størrelsen.', - msgImageResizeException: 'Fejl ved at ændre størrelsen på billedet.<pre>{errors}</pre>', - msgAjaxError: 'Something went wrong with the {operation} operation. Please try again later!', - msgAjaxProgressError: '{operation} failed', + msgImageResizeError: 'Kunne ikke få billedets dimensioner for at ændre størrelsen.', + msgImageResizeException: 'Fejl ved at ændre størrelsen på billedet.<pre>{errors}</pre>', + msgAjaxError: 'Noget gik galt med {operation} operationen. Forsøg venligst senere!', + msgAjaxProgressError: '{operation} fejlede', ajaxOperations: { - deleteThumb: 'file delete', - uploadThumb: 'file upload', - uploadBatch: 'batch file upload', + deleteThumb: 'fil slet', + uploadThumb: 'fil upload', + uploadBatch: 'batchfil upload', uploadExtra: 'form data upload' }, dropZoneTitle: 'Drag & drop filer her …', - dropZoneClickTitle: '<br>(or click to select {files})', + dropZoneClickTitle: '<br>(eller klik for at vælge {files})', fileActionSettings: { removeTitle: 'Fjern fil', uploadTitle: 'Upload fil', - uploadRetryTitle: 'Retry upload', - downloadTitle: 'Download file', + uploadRetryTitle: 'Forsåg upload igen', + downloadTitle: 'Download fil', zoomTitle: 'Se detaljer', - dragTitle: 'Move / Rearrange', + dragTitle: 'Flyt / Omarranger', indicatorNewTitle: 'Ikke uploadet endnu', indicatorSuccessTitle: 'Uploadet', indicatorErrorTitle: 'Upload fejl', indicatorLoadingTitle: 'Uploader ...' }, previewZoomButtonTitles: { - prev: 'View previous file', - next: 'View next file', - toggleheader: 'Toggle header', - fullscreen: 'Toggle full screen', - borderless: 'Toggle borderless mode', - close: 'Close detailed preview' + prev: 'Se forrige fil', + next: 'Se næste fil', + toggleheader: 'Skift header', + fullscreen: 'Skift fuld skærm', + borderless: 'Skift grænseløs mode', + close: 'Luk detaljeret visning' } }; -})(window.jQuery);
\ No newline at end of file +})(window.jQuery); diff --git a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/fa.js b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/fa.js index ca59bbb8..609099c4 100644 --- a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/fa.js +++ b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/fa.js @@ -25,9 +25,9 @@ msgNo: 'نه', msgNoFilesSelected: 'هیچ فایلی انتخاب نشده است', msgCancelled: 'لغو شد', - msgPlaceholder: 'Select {files}...', + msgPlaceholder: 'انتخاب {files}...', msgZoomModalHeading: 'نمایش با جزییات', - msgFileRequired: 'You must select a file to upload.', + msgFileRequired: 'شما باید یک فایل برای بارگذاری انتخاب نمایید.', msgSizeTooSmall: 'فایل "{name}" (<b>{size} کیلوبایت</b>) خیلی کوچک است و باید از <b>{minSize} کیلوبایت بزرگتر باشد</b>.', msgSizeTooLarge: 'فایل "{name}" (<b>{size} کیلوبایت</b>) از حداکثر مجاز <b>{maxSize} کیلوبایت</b> بزرگتر است.', msgFilesTooLess: 'شما باید حداقل <b>{n}</b> {files} فایل برای بارگذاری انتخاب کنید.', @@ -80,8 +80,8 @@ fileActionSettings: { removeTitle: 'حذف فایل', uploadTitle: 'آپلود فایل', - uploadRetryTitle: 'Retry upload', - downloadTitle: 'Download file', + uploadRetryTitle: 'بارگیری مجدد', + downloadTitle: 'دریافت فایل', zoomTitle: 'دیدن جزئیات', dragTitle: 'جابجایی / چیدمان', indicatorNewTitle: 'آپلود نشده است', diff --git a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/gl.js b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/gl.js index 6efc4f61..a2ba90be 100644 --- a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/gl.js +++ b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/gl.js @@ -24,21 +24,21 @@ msgNo: 'Non', msgNoFilesSelected: 'Non hay arquivos seleccionados', msgCancelled: 'Cancelado', - msgPlaceholder: 'Select {files}...', + msgPlaceholder: 'Seleccinar {files}...', msgZoomModalHeading: 'Vista previa detallada', - msgFileRequired: 'You must select a file to upload.', - msgSizeTooSmall: 'O arquivo "{name}" (<b>{size} KB</b>) é demasiado pequeño e debe ser maior de <b>{minSize} KB</b>.', - msgSizeTooLarge: 'El arquivo "{name}" (<b>{size} KB</b>) excede o tamaño máximo permitido de <b>{maxSize} KB</b>.', - msgFilesTooLess: 'Debe seleccionar al menos <b>{n}</b> {files} a cargar.', + msgFileRequired: 'Debes seleccionar un arquivo para subir.', + msgSizeTooSmall: 'O arquivo "{name}" (<b>{size} KB</b>) é demasiado pequeno e debe ser maior de <b>{minSize} KB</b>.', + msgSizeTooLarge: 'O arquivo "{name}" (<b>{size} KB</b>) excede o tamaño máximo permitido de <b>{maxSize} KB</b>.', + msgFilesTooLess: 'Debe seleccionar ao menos <b>{n}</b> {files} a cargar.', msgFilesTooMany: 'O número de arquivos seleccionados a cargar <b>({n})</b> excede do límite máximo permitido de <b>{m}</b>.', msgFileNotFound: 'Arquivo "{name}" non encontrado.', - msgFileSecured: 'Non é posible acceder o arquivo "{name}" porque estará sendo usado por outra aplicación ou non teñamos permisos de lectura.', - msgFileNotReadable: 'Non é posible acceder o archivo "{name}".', + msgFileSecured: 'Non é posible acceder ao arquivo "{name}" porque estará sendo usado por outra aplicación ou non teñamos permisos de lectura.', + msgFileNotReadable: 'Non é posible acceder ao arquivo "{name}".', msgFilePreviewAborted: 'Previsualización do arquivo "{name}" cancelada.', msgFilePreviewError: 'Ocurriu un erro mentras se lía o arquivo "{name}".', - msgInvalidFileName: 'Caracteres non válidos o no soportados no nome do arquivos "{name}".', - msgInvalidFileType: 'Tipo de archivo no válido para "{name}". Sólo se permiten arquivos do tipo "{types}".', - msgInvalidFileExtension: 'Extensión de arquivo non válido para "{name}". Só se permiten arquivos "{extensions}".', + msgInvalidFileName: 'Caracteres non válidos ou non soportados no nome do arquivo "{name}".', + msgInvalidFileType: 'Tipo de arquivo non válido para "{name}". Só se permiten arquivos do tipo "{types}".', + msgInvalidFileExtension: 'Extensión de arquivo non válida para "{name}". Só se permiten arquivos "{extensions}".', msgFileTypes: { 'image': 'imaxe', 'html': 'HTML', @@ -51,22 +51,22 @@ }, msgUploadAborted: 'A carga de arquivos cancelouse', msgUploadThreshold: 'Procesando...', - msgUploadBegin: 'Inicialicando...', + msgUploadBegin: 'Inicializando...', msgUploadEnd: 'Feito', msgUploadEmpty: 'Non existen datos válidos para o envío.', - msgUploadError: 'Error', + msgUploadError: 'Erro', msgValidationError: 'Erro de validación', msgLoading: 'Subindo arquivo {index} de {files} …', - msgProgress: 'Subiendo arquivo {index} de {files} - {name} - {percent}% completado.', + msgProgress: 'Subindo arquivo {index} de {files} - {name} - {percent}% completado.', msgSelected: '{n} {files} seleccionado(s)', - msgFoldersNotAllowed: 'Arrastra e solta únicamente arquivoa. Omitida(s) {n} carpeta(s).', - msgImageWidthSmall: 'O ancho da imaxe "{name}" debe ser de al menos {size} px.', - msgImageHeightSmall: 'A altura de la imaxe "{name}" debe ser de al menos {size} px.', - msgImageWidthLarge: 'El ancho de la imaxe "{name}" no puede exceder de {size} px.', - msgImageHeightLarge: 'La altura de la imaxe "{name}" no puede exceder de {size} px.', - msgImageResizeError: 'No se pudieron obtener las dimensiones de la imaxe para cambiar el tamaño.', - msgImageResizeException: 'Erro o cambiar o tamaño da imaxe.<pre>{errors}</pre>', - msgAjaxError: 'Algo foi mal ca operación {operation}. Por favor, intentao de novo mais tarde.', + msgFoldersNotAllowed: 'Arrastra e solta unicamente arquivos. Omitida(s) {n} carpeta(s).', + msgImageWidthSmall: 'O ancho da imaxe "{name}" debe ser de ao menos {size} px.', + msgImageHeightSmall: 'A altura da imaxe "{name}" debe ser de ao menos {size} px.', + msgImageWidthLarge: 'O ancho da imaxe "{name}" non pode exceder de {size} px.', + msgImageHeightLarge: 'A altura da imaxe "{name}" non pode exceder de {size} px.', + msgImageResizeError: 'Non se puideron obter as dimensións da imaxe para cambiar o tamaño.', + msgImageResizeException: 'Erro ao cambiar o tamaño da imaxe. <pre>{errors}</pre>', + msgAjaxError: 'Algo foi mal ca operación {operation}. Por favor, inténtao de novo máis tarde.', msgAjaxProgressError: 'A operación {operation} fallou', ajaxOperations: { deleteThumb: 'Arquivo borrado', @@ -74,23 +74,23 @@ uploadBatch: 'Datos subidos en lote', uploadExtra: 'Datos do formulario subidos' }, - dropZoneTitle: 'Arrasta e solte aquí os arquivos …', + dropZoneTitle: 'Arrasta e solta aquí os arquivos …', dropZoneClickTitle: '<br>(ou fai clic para seleccionar {files})', fileActionSettings: { removeTitle: 'Eliminar arquivo', uploadTitle: 'Subir arquivo', - uploadRetryTitle: 'Retry upload', - downloadTitle: 'Download file', + uploadRetryTitle: 'Reintentar a subida', + downloadTitle: 'Descargar arquivo', zoomTitle: 'Ver detalles', dragTitle: 'Mover / Reordenar', - indicatorNewTitle: 'Non subido todavía', + indicatorNewTitle: 'Non subido aínda', indicatorSuccessTitle: 'Subido', - indicatorErrorTitle: 'Erro o subir', - indicatorLoadingTitle: 'Subiendo...' + indicatorErrorTitle: 'Erro ao subir', + indicatorLoadingTitle: 'Subindo...' }, previewZoomButtonTitles: { prev: 'Ver arquivo anterior', - next: 'Ver arquivo siguinte', + next: 'Ver arquivo seguinte', toggleheader: 'Mostrar encabezado', fullscreen: 'Mostrar a pantalla completa', borderless: 'Activar o modo sen bordes', diff --git a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/he.js b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/he.js new file mode 100644 index 00000000..cea7de35 --- /dev/null +++ b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/he.js @@ -0,0 +1,97 @@ +/*! + * FileInput Hebrew Translations + * + * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or + * any HTML markup tags in the messages must not be converted or translated. + * + * @see http://github.com/kartik-v/bootstrap-fileinput + * @author Daniel Coryat <awq8002@gmail.com> + * + * NOTE: this file must be saved in UTF-8 encoding. + */ +(function ($) { + "use strict"; + + $.fn.fileinputLocales['he'] = { + fileSingle: 'קובץ', + filePlural: 'קבצים', + browseLabel: 'העלאה …', + removeLabel: 'הסרה', + removeTitle: 'נקה קבצים נבחרים', + cancelLabel: 'ביטול', + cancelTitle: 'ביטול העלאה מתמשכת', + uploadLabel: 'טעינה', + uploadTitle: 'טעינת קבצים נבחרים', + msgNo: 'לא', + msgNoFilesSelected: 'לא נבחרו קבצים', + msgCancelled: 'מבוטל', + msgPlaceholder: 'בחר {files}...', + msgZoomModalHeading: 'תצוגה מקדימה מפורטת', + msgSizeTooSmall: 'קובץ "{name}" (<b>{size} KB</b>) קטן מדי וחייב להיות גדול מ <b>{minSize} KB</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}" לא קריא.', + msgFilePreviewAborted: 'תצוגה מקדימה של הקובץ בוטלה עבור "{name}".', + msgFilePreviewError: 'אירעה שגיאה בעת קריאת הקובץ "{name}".', + msgInvalidFileName: 'תווים לא חוקיים או לא נתמכים בשם הקובץ "{name}".', + msgInvalidFileType: 'סוג קובץ לא חוקי "{name}". רק "{types}" קבצים נתמכים.', + msgInvalidFileExtension: 'תוסף לא חוקי עבור הקובץ "{name}". רק "{extensions}" קבצים נתמכים.', + msgFileTypes: { + 'image': 'תמונה', + 'html': 'HTML', + 'text': 'טקסט', + 'video': 'וידאו', + 'audio': 'שמע', + 'flash': 'פלאש', + 'pdf': 'PDF', + 'object': 'אובייקט' + }, + msgUploadAborted: 'העלאת הקובץ בוטלה', + msgUploadThreshold: 'מעבד...', + msgUploadBegin: 'מאתחל ...', + msgUploadEnd: 'בוצע', + msgUploadEmpty: 'אין נתונים זמינים להעלאה.', + msgValidationError: 'שגיאת אימות', + msgLoading: 'טוען קובץ {index} של {files} …', + msgProgress: 'טוען קובץ {index} של {files} - {name} - {percent}% הושלמה.', + msgSelected: '{n} {files} נבחרו', + msgFoldersNotAllowed: 'גרירת קבצים ושחרורם בלבד! דילוג {n} גרירת תיקיה(s).', + msgImageWidthSmall: 'רוחב קובץ התמונה "{name}" חייב להיות לפחות {size} px.', + msgImageHeightSmall: 'גובה קובץ התמונה "{name}" חייב להיות לפחות {size} px.', + msgImageWidthLarge: 'רוחב קובץ התמונה "{name}" לא יעלה על {size} px.', + msgImageHeightLarge: 'גובה קובץ התמונה "{name}" לא יעלה על {size} px.', + msgImageResizeError: 'לא ניתן לשנות את גודל מידות התמונה.', + msgImageResizeException: 'שגיאה בעת שינוי גודל התמונה.<pre>{errors}</pre>', + msgAjaxError: 'משהו השתבש עם {operation} המערכת. יש לנסות מאוחר יותר!', + msgAjaxProgressError: '{operation} נכשל', + ajaxOperations: { + deleteThumb: 'קובץ נמחק', + uploadThumb: 'קובץ הועלה', + uploadBatch: 'קובץ אצווה הועלה', + uploadExtra: 'העלאת נתונים בטופס' + }, + dropZoneTitle: 'גרירת קבצים ושחרורם כאן …', + dropZoneClickTitle: '<br>(או לחץ /י כדי לבחור {files})', + fileActionSettings: { + removeTitle: 'הסרת קובץ', + uploadTitle: 'טעינת קובץ', + zoomTitle: 'הצגת פרטים', + dragTitle: 'העברה / סידור מחדש', + indicatorNewTitle: 'עדיין לא הועלה', + indicatorSuccessTitle: 'הועלה', + indicatorErrorTitle: 'שגיאת העלאה', + indicatorLoadingTitle: 'מעלה...' + }, + previewZoomButtonTitles: { + prev: 'הצגת את הקובץ הקודם', + next: 'הצגת את הקובץ הבא', + toggleheader: 'שינוי כותרת', + fullscreen: 'מעבר למסך מלא', + borderless: 'שינוי המודל ללא שוליים', + close: 'סגירת תצוגה מקדימה מפורטת' + } + }; +})(window.jQuery); diff --git a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/hu.js b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/hu.js index f9ef93ae..534815fb 100644 --- a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/hu.js +++ b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/hu.js @@ -24,7 +24,7 @@ msgNo: 'Nem', msgNoFilesSelected: 'Nincs fájl kiválasztva', msgCancelled: 'Megszakítva', - msgPlaceholder: 'Select {files}...', + msgPlaceholder: 'Válasz {files}...', msgZoomModalHeading: 'Részletes Előnézet', msgFileRequired: 'Kötelező fájlt kiválasztani a feltöltéshez.', msgSizeTooSmall: 'A fájl: "{name}" (<b>{size} KB</b>) mérete túl kicsi, nagyobbnak kell lennie, mint <b>{minSize} KB</b>.', @@ -79,8 +79,8 @@ fileActionSettings: { removeTitle: 'A fájl eltávolítása', uploadTitle: 'fájl feltöltése', - uploadRetryTitle: 'Retry upload', - downloadTitle: 'Download file', + uploadRetryTitle: 'Feltöltés újból', + downloadTitle: 'Fájl letöltése', zoomTitle: 'Részletek megtekintése', dragTitle: 'Mozgatás / Átrendezés', indicatorNewTitle: 'Nem feltöltött', diff --git a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/id.js b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/id.js index 06c416b3..cc2bab23 100644 --- a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/id.js +++ b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/id.js @@ -15,7 +15,7 @@ $.fn.fileinputLocales['id'] = { fileSingle: 'berkas', filePlural: 'berkas', - browseLabel: 'Pilih File …', + browseLabel: 'Pilih berkas …', removeLabel: 'Hapus', removeTitle: 'Hapus berkas terpilih', cancelLabel: 'Batal', @@ -25,19 +25,19 @@ msgNo: 'Tidak', msgNoFilesSelected: '', msgCancelled: 'Dibatalkan', - msgPlaceholder: 'Select {files}...', + msgPlaceholder: 'Pilih {files}...', msgZoomModalHeading: 'Pratinjau terperinci', - msgFileRequired: 'You must select a file to upload.', - msgSizeTooSmall: 'File "{name}" (<b>{size} KB</b>) is too small and must be larger than <b>{minSize} KB</b>.', - msgSizeTooLarge: 'Berkas "{name}" (<b>{size} KB</b>) melebihi ukuran upload maksimal yaitu <b>{maxSize} KB</b>.', + msgFileRequired: 'Anda harus memilih berkas untuk diunggah.', + msgSizeTooSmall: 'Berkas "{name}" (<b>{size} KB</b>) terlalu kecil dan harus lebih besar dari <b>{minSize} KB</b>.', + msgSizeTooLarge: 'Berkas "{name}" (<b>{size} KB</b>) melebihi ukuran unggah maksimal yaitu <b>{maxSize} KB</b>.', msgFilesTooLess: 'Anda harus memilih setidaknya <b>{n}</b> {files} untuk diunggah.', - msgFilesTooMany: '<b>({n})</b> berkas yang dipilih untuk diunggah melebihi ukuran upload maksimal yaitu <b>{m}</b>.', + msgFilesTooMany: '<b>({n})</b> berkas yang dipilih untuk diunggah melebihi ukuran unggah maksimal yaitu <b>{m}</b>.', msgFileNotFound: 'Berkas "{name}" tak ditemukan!', msgFileSecured: 'Sistem keamanan mencegah untuk membaca berkas "{name}".', msgFileNotReadable: 'Berkas "{name}" tak dapat dibaca.', msgFilePreviewAborted: 'Pratinjau untuk berkas "{name}" dibatalkan.', msgFilePreviewError: 'Kesalahan saat membaca berkas "{name}".', - msgInvalidFileName: 'Invalid or unsupported characters in file name "{name}".', + msgInvalidFileName: 'Karakter tidak dikenali atau tidak didukung untuk nama berkas "{name}".', msgInvalidFileType: 'Jenis berkas "{name}" tidak sah. Hanya berkas "{types}" yang didukung.', msgInvalidFileExtension: 'Ekstensi berkas "{name}" tidak sah. Hanya ekstensi "{extensions}" yang didukung.', msgFileTypes: { @@ -50,13 +50,13 @@ 'pdf': 'PDF', 'object': 'object' }, - msgUploadAborted: 'Pengunggahan berkas dibatalkan', - msgUploadThreshold: 'Processing...', - msgUploadBegin: 'Initializing...', - msgUploadEnd: 'Done', - msgUploadEmpty: 'No valid data available for upload.', - msgUploadError: 'Error', - msgValidationError: 'Kesalahan validasi', + msgUploadAborted: 'Proses Unggah berkas dibatalkan', + msgUploadThreshold: 'Memproses...', + msgUploadBegin: 'Menyiapkan...', + msgUploadEnd: 'Selesai', + msgUploadEmpty: 'Tidak ada data valid yang tersedia untuk diunggah.', + msgUploadError: 'Kesalahan', + msgValidationError: 'Kesalahan saat memvalidasi', msgLoading: 'Memuat {index} dari {files} berkas …', msgProgress: 'Memuat {index} dari {files} berkas - {name} - {percent}% selesai.', msgSelected: '{n} {files} dipilih', @@ -65,37 +65,37 @@ msgImageHeightSmall: 'Tinggi dari gambar "{name}" harus sekurangnya {size} px.', msgImageWidthLarge: 'Lebar dari gambar "{name}" tak boleh melebihi {size} px.', msgImageHeightLarge: 'Tinggi dari gambar "{name}" tak boleh melebihi {size} px.', - msgImageResizeError: 'Tak dapat menentukan dimensi gambar untuk mengubah ukuran.', + msgImageResizeError: 'Tidak dapat menentukan dimensi gambar untuk mengubah ukuran.', msgImageResizeException: 'Kesalahan saat mengubah ukuran gambar.<pre>{errors}</pre>', - msgAjaxError: 'Something went wrong with the {operation} operation. Please try again later!', - msgAjaxProgressError: '{operation} failed', + msgAjaxError: 'Terjadi kesalahan ketika melakukan operasi {operation}. Silahkan coba lagi nanti!', + msgAjaxProgressError: '{operation} gagal', ajaxOperations: { - deleteThumb: 'file delete', - uploadThumb: 'file upload', - uploadBatch: 'batch file upload', - uploadExtra: 'form data upload' + deleteThumb: 'Hapus berkas', + uploadThumb: 'Unggah berkas', + uploadBatch: 'Unggah banyak berkas', + uploadExtra: 'Unggah form ekstra' }, dropZoneTitle: 'Tarik dan lepaskan berkas disini …', - dropZoneClickTitle: '<br>(or click to select {files})', + dropZoneClickTitle: '<br>(atau klik untuk memilih {files})', fileActionSettings: { - removeTitle: 'Hapus berkas', - uploadTitle: 'Unggah berkas', - uploadRetryTitle: 'Retry upload', - downloadTitle: 'Download file', + removeTitle: 'Hapus Berkas', + uploadTitle: 'Unggah Berkas', + uploadRetryTitle: 'Unggah Ulang', + downloadTitle: 'Unduh Berkas', zoomTitle: 'Tampilkan Rincian', - dragTitle: 'Move / Rearrange', + dragTitle: 'Pindah atau Atur Ulang', indicatorNewTitle: 'Belum diunggah', indicatorSuccessTitle: 'Sudah diunggah', - indicatorErrorTitle: 'Kesalahan pengunggahan', + indicatorErrorTitle: 'Kesalahan dalam mengungah', indicatorLoadingTitle: 'Mengunggah ...' }, previewZoomButtonTitles: { - prev: 'View previous file', - next: 'View next file', - toggleheader: 'Toggle header', - fullscreen: 'Toggle full screen', - borderless: 'Toggle borderless mode', - close: 'Close detailed preview' + prev: 'Lihat berkas sebelumnya', + next: 'Lihat berkas selanjutnya', + toggleheader: 'Beralih ke tajuk', + fullscreen: 'Beralih ke mode penuh', + borderless: 'Beralih ke mode tanpa tepi', + close: 'Tutup pratinjau terperinci' } }; })(window.jQuery); diff --git a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/ko.js b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/ko.js index 0236124e..0190dd73 100644 --- a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/ko.js +++ b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/ko.js @@ -11,34 +11,34 @@ (function ($) { "use strict"; - $.fn.fileinputLocales['ko'] = { + $.fn.fileinputLocales['kr'] = { fileSingle: '파일', filePlural: '파일들', - browseLabel: '찾기 …', + browseLabel: '찾아보기 …', removeLabel: '지우기', removeTitle: '선택한 파일들 지우기', cancelLabel: '취소', - cancelTitle: '업로드 중단하기', + cancelTitle: '진행중인 업로드 중단', uploadLabel: '업로드', - uploadTitle: '선택한 파일 업로드하기', + uploadTitle: '선택한 파일 업로드', msgNo: '아니요', - msgNoFilesSelected: '선택한 파일이 없습니다.', - msgCancelled: '취소되었습니다.', - msgPlaceholder: 'Select {files}...', - msgZoomModalHeading: '자세한 미리보기', - msgFileRequired: 'You must select a file to upload.', + msgNoFilesSelected: '선택한 파일이 없습니다', + msgCancelled: '취소되었습니다', + msgPlaceholder: '{files} 선택...', + msgZoomModalHeading: '세부 정보', + msgFileRequired: '업로드를 위해 반드시 파일을 선택해야 합니다.', msgSizeTooSmall: '파일 "{name}" (<b>{size} KB</b>)이 너무 작습니다. <b>{minSize} KB</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}"은/는 읽을 수 없습니다.', - msgFilePreviewAborted: '파일 "{name}"의 미리보기가 중단되었습니다.', - msgFilePreviewError: '파일 "{name}"을/를 읽다가 에러가 발생했습니다.', - msgInvalidFileName: '파일 "{name}" 중 지원 불가능한 문자가 포함되어 있습니다.', - msgInvalidFileType: '파일 "{name}"의 타입은 지원하지 않습니다. "{types}" 타입의 파일을 선택해 주십시요.', - msgInvalidFileExtension: '파일 "{name}"의 익스텐션은 지원하지 않습니다. "{extensions}" 타입의 익스텐션을 선택해 주십시요.', + msgFileSecured: '보안상의 이유로 "{name}"을/를 읽을 수 없습니다..', + msgFileNotReadable: '"{name}"은/는 읽을 수 없습니다.', + msgFilePreviewAborted: '"{name}"의 미리보기가 중단되었습니다.', + msgFilePreviewError: '"{name}"을/를 읽는 도중 에러가 발생했습니다.', + msgInvalidFileName: '파일 이름 "{name}" 중 지원 불가능한 문자가 포함되어 있습니다.', + msgInvalidFileType: '"{name}"의 타입은 지원하지 않습니다. "{types}" 타입의 파일을 선택해 주십시요.', + msgInvalidFileExtension: '"{name}"의 확장자는 지원하지 않습니다. "{extensions}" 확장자를 선택해 주십시요.', msgFileTypes: { 'image': 'image', 'html': 'HTML', @@ -49,24 +49,24 @@ 'pdf': 'PDF', 'object': 'object' }, - msgUploadAborted: '파일 업로드가 중단되었습니다.', - msgUploadThreshold: '업로드 중...', - msgUploadBegin: 'Initializing...', - msgUploadEnd: 'Done', - msgUploadEmpty: '업로드 가능 데이터가 존재하지 않습니다.', - msgUploadError: 'Error', + msgUploadAborted: '파일 업로드가 중단되었습니다', + msgUploadThreshold: '처리하는 중...', + msgUploadBegin: '초기화 중...', + msgUploadEnd: '완료', + msgUploadEmpty: '업로드 가능한 데이터가 존재하지 않습니다.', + msgUploadError: '오류', msgValidationError: '유효성 오류', - msgLoading: '파일 {files} 중 {index}번째를 로딩하고 있습니다. …', - msgProgress: '파일 {files}의 {name}이 {percent}% 로딩되었습니다. ', + msgLoading: '{index}/{files}번째 파일을 불러오는 중입니다. …', + msgProgress: '{index}/{files} - {name} - {percent}% 불러오기 완료.', msgSelected: '{n} {files}이 선택 되었습니다.', - msgFoldersNotAllowed: '드래그 앤 드랍 파일만 가능합니다! 드랍한 {n}번째 폴더를 건너 뛰었습니다.', - msgImageWidthSmall: '이미지 파일 "{name}"의 가로는 최소 {size} px가 되어야 합니다.', - msgImageHeightSmall: '이미지 파일 "{name}"의 세로는 최소 {size} px가 되어야 합니다.', - msgImageWidthLarge: '이미지 파일 "{name}"의 가로는 최대 {size} px를 넘을수 없습니다.', - msgImageHeightLarge: '이미지 파일 "{name}"의 세로는 최대 {size} px를 넘을수 없습니다.', - msgImageResizeError: '이미지의 사이즈를 재조정을 위한 이미지 사이즈를 가져올 수 없습니다.', + msgFoldersNotAllowed: '파일만 마우스로 끌어올 수 있습니다! 끌어온 폴더는 건너뜁니다.', + msgImageWidthSmall: '"{name}"의 가로는 {size} px 보다 넓어야 합니다.', + msgImageHeightSmall: '"{name}"의 세로는 {size} px 보다 높아야 합니다.', + msgImageWidthLarge: '"{name}"의 가로는 {size} px를 넘을 수 없습니다.', + msgImageHeightLarge: '"{name}"의 세로는 {size} px를 넘을 수 없습니다.', + msgImageResizeError: '이미지의 치수를 가져올 수 없습니다', msgImageResizeException: '이미지 사이즈 재조정이 다음 이유로 실패했습니다.<pre>{errors}</pre>', - msgAjaxError: 'Something went wrong with the {operation} operation. Please try again later!', + msgAjaxError: '{operation} 실행 도중 실패했습니다. 잠시 후 다시 시도해 주세요!', msgAjaxProgressError: '{operation} failed', ajaxOperations: { deleteThumb: 'file delete', @@ -74,27 +74,27 @@ uploadBatch: 'batch file upload', uploadExtra: 'form data upload' }, - dropZoneTitle: '파일을 여기에 드래그인 드랍을 하십시요 …', + dropZoneTitle: '마우스로 파일을 끌어오세요 …', dropZoneClickTitle: '<br>(또는 {files} 선택을 위해 클릭하십시요)', fileActionSettings: { removeTitle: '파일 지우기', - uploadTitle: '파일 업로드 하기', - uploadRetryTitle: 'Retry upload', - downloadTitle: 'Download file', + uploadTitle: '파일 업로드', + uploadRetryTitle: '업로드 재시도', + downloadTitle: '파일 다운로드', zoomTitle: '세부 정보 보기', - dragTitle: '옭기기 / 재배열하기', - indicatorNewTitle: '아직 업로드가 안되었습니다.', - indicatorSuccessTitle: '업로드가 성공하였습니다.', - indicatorErrorTitle: '업로드 중 에러가 발행했습니다.', + dragTitle: '옮기기 / 재배열하기', + indicatorNewTitle: '아직 업로드 되지 않았습니다', + indicatorSuccessTitle: '업로드 성공', + indicatorErrorTitle: '업로드 중 에러 발생', indicatorLoadingTitle: '업로드 중 ...' }, previewZoomButtonTitles: { - prev: '전 파일 보기', - next: '다음 파일 보기', - toggleheader: '머릿글 토글하기', - fullscreen: '전채화면 토글하기', - borderless: '무 테두리 토글하기', - close: '세부 정보 미리보기 토글하기' + prev: '이전 파일', + next: '다음 파일', + toggleheader: '머릿글 토글', + fullscreen: '전체화면 토글', + borderless: '창 테두리 토글', + close: '세부 정보 닫기' } }; })(window.jQuery); diff --git a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/nl.js b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/nl.js index eb83d50e..df3f3dc4 100644 --- a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/nl.js +++ b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/nl.js @@ -24,7 +24,7 @@ msgNo: 'Nee', msgNoFilesSelected: '', msgCancelled: 'Geannuleerd', - msgPlaceholder: 'Select {files}...', + msgPlaceholder: 'Selecteer {files}...', msgZoomModalHeading: 'Gedetailleerd voorbeeld', msgFileRequired: 'U moet een bestand kiezen om te uploaden.', msgSizeTooSmall: 'Bestand "{name}" (<b>{size} KB</b>) is te klein en moet groter zijn dan <b>{minSize} KB</b>.', @@ -79,10 +79,10 @@ fileActionSettings: { removeTitle: 'Verwijder bestand', uploadTitle: 'bestand uploaden', - uploadRetryTitle: 'Retry upload', + uploadRetryTitle: 'Opnieuw uploaden', downloadTitle: 'Download file', zoomTitle: 'Bekijk details', - dragTitle: 'Move / Rearrange', + dragTitle: 'Verplaatsen / herindelen', indicatorNewTitle: 'Nog niet geupload', indicatorSuccessTitle: 'geupload', indicatorErrorTitle: 'fout uploaden', @@ -92,9 +92,9 @@ prev: 'Toon vorig bestand', next: 'Toon volgend bestand', toggleheader: 'Toggle header', - fullscreen: 'Toggle full screen', - borderless: 'Toggle borderless mode', - close: 'Close detailed preview' + fullscreen: 'Toggle volledig scherm', + borderless: 'Toggle randloze modus', + close: 'Sluit gedetailleerde weergave' } }; })(window.jQuery); diff --git a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/tr.js b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/tr.js index ff4d9555..1fe6a383 100644 --- a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/tr.js +++ b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/tr.js @@ -24,7 +24,7 @@ msgNo: 'Hayır', msgNoFilesSelected: '', msgCancelled: 'İptal edildi', - msgPlaceholder: 'Select {files}...', + msgPlaceholder: 'Seçilen {files}...', msgZoomModalHeading: 'Detaylı Önizleme', msgFileRequired: 'Yüklemek için bir dosya seçmelisiniz.', msgSizeTooSmall: '"{name}"(<b>{size} KB</b>) dosyası çok küçük ve <b>{minSize} KB</b> boyutundan büyük olmalıdır.', @@ -54,7 +54,7 @@ msgUploadBegin: 'Başlıyor...', msgUploadEnd: 'Başarılı', msgUploadEmpty: 'Yüklemek için geçerli veri mevcut değil.', - msgUploadError: 'Error', + msgUploadError: 'Hata', msgValidationError: 'Doğrulama Hatası', msgLoading: 'Dosya yükleniyor {index} / {files} …', msgProgress: 'Dosya yükleniyor {index} / {files} - {name} - %{percent} tamamlandı.', diff --git a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/uk.js b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/uk.js index 99294f19..d1b7f3a1 100644 --- a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/uk.js +++ b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/uk.js @@ -19,25 +19,25 @@ removeLabel: 'Видалити', removeTitle: 'Видалити вибрані файли', cancelLabel: 'Скасувати', - cancelTitle: 'Скасувати поточну загрузку', - uploadLabel: 'Загрузити', - uploadTitle: 'Загрузити вибрані файли', + cancelTitle: 'Скасувати поточне відвантаження', + uploadLabel: 'Відвантажити', + uploadTitle: 'Відвантажити обрані файли', msgNo: 'Немає', msgNoFilesSelected: '', msgCancelled: 'Cкасовано', - msgPlaceholder: 'Select {files}...', + msgPlaceholder: 'Оберіть {files}...', msgZoomModalHeading: 'Детальний превью', - msgFileRequired: 'You must select a file to upload.', - msgSizeTooSmall: 'File "{name}" (<b>{size} KB</b>) is too small and must be larger than <b>{minSize} KB</b>.', + msgFileRequired: 'Ви повинні обрати файл для завантаження.', + msgSizeTooSmall: 'Файл "{name}" (<b>{size} KB</b>) занадто малий і повинен бути більший, ніж <b>{minSize} KB</b>.', msgSizeTooLarge: 'Файл "{name}" (<b>{size} KB</b>) перевищує максимальний розмір <b>{maxSize} KB</b>.', - msgFilesTooLess: 'Ви повинні вибрати як мінімум <b>{n}</b> {files} для загрузки.', - msgFilesTooMany: 'Кількість вибраних файлів <b>({n})</b> перевищує максимально допустиму кількість <b>{m}</b>.', + msgFilesTooLess: 'Ви повинні обрати як мінімум <b>{n}</b> {files} для відвантаження.', + msgFilesTooMany: 'Кількість обраних файлів <b>({n})</b> перевищує максимально допустиму кількість <b>{m}</b>.', msgFileNotFound: 'Файл "{name}" не знайдено!', msgFileSecured: 'Обмеження безпеки перешкоджають читанню файла "{name}".', msgFileNotReadable: 'Файл "{name}" неможливо прочитати.', msgFilePreviewAborted: 'Перегляд скасований для файла "{name}".', msgFilePreviewError: 'Сталася помилка під час читання файла "{name}".', - msgInvalidFileName: 'Invalid or unsupported characters in file name "{name}".', + msgInvalidFileName: 'Недійсні чи непідтримувані символи в імені файлу "{name}".', msgInvalidFileType: 'Заборонений тип файла для "{name}". Тільки "{types}" дозволені.', msgInvalidFileExtension: 'Заборонене розширення для файла "{name}". Тільки "{extensions}" дозволені.', msgFileTypes: { @@ -51,15 +51,15 @@ 'object': 'object' }, msgUploadAborted: 'Вивантаження файлу перервана', - msgUploadThreshold: 'Processing...', - msgUploadBegin: 'Initializing...', - msgUploadEnd: 'Done', - msgUploadEmpty: 'No valid data available for upload.', - msgUploadError: 'Error', + msgUploadThreshold: 'Обробка...', + msgUploadBegin: 'Ініціалізація...', + msgUploadEnd: 'Готово', + msgUploadEmpty: 'Немає доступних даних для відвантаження.', + msgUploadError: 'Помилка', msgValidationError: 'Помилка перевірки', - msgLoading: 'Загрузка файла {index} із {files} …', - msgProgress: 'Загрузка файла {index} із {files} - {name} - {percent}% завершено.', - msgSelected: '{n} {files} вибрано', + msgLoading: 'Відвантаження файла {index} із {files} …', + msgProgress: 'Відвантаження файла {index} із {files} - {name} - {percent}% завершено.', + msgSelected: '{n} {files} обрано', msgFoldersNotAllowed: 'Дозволено перетягувати тільки файли! Пропущено {n} папок.', msgImageWidthSmall: 'Ширина зображення "{name}" повинна бути не менше {size} px.', msgImageHeightSmall: 'Висота зображення "{name}" повинна бути не менше {size} px.', @@ -67,35 +67,35 @@ msgImageHeightLarge: 'Висота зображення "{name}" не може перевищувати {size} px.', msgImageResizeError: 'Не вдалося розміри зображення, щоб змінити розмір.', msgImageResizeException: 'Помилка при зміні розміру зображення.<pre>{errors}</pre>', - msgAjaxError: 'Something went wrong with the {operation} operation. Please try again later!', - msgAjaxProgressError: '{operation} failed', + msgAjaxError: 'Щось не так із операцією {operation}. Будь ласка, спробуйте пізніше!', + msgAjaxProgressError: 'помилка {operation}', ajaxOperations: { - deleteThumb: 'file delete', - uploadThumb: 'file upload', + deleteThumb: 'видалити файл', + uploadThumb: 'відвантажити файл', uploadBatch: 'batch file upload', uploadExtra: 'form data upload' }, dropZoneTitle: 'Перетягніть файли сюди …', - dropZoneClickTitle: '<br>(or click to select {files})', + dropZoneClickTitle: '<br>(або клацність та оберіть {files})', fileActionSettings: { removeTitle: 'Видалити файл', - uploadTitle: 'Загрузити файл', - uploadRetryTitle: 'Retry upload', - downloadTitle: 'Download file', + uploadTitle: 'Відвантажити файл', + uploadRetryTitle: 'Повторити відвантаження', + downloadTitle: 'Завантажити файл', zoomTitle: 'Подивитися деталі', - dragTitle: 'Move / Rearrange', - indicatorNewTitle: 'Ще не загружено', - indicatorSuccessTitle: 'Загружено', - indicatorErrorTitle: 'Помилка при загрузці', - indicatorLoadingTitle: 'Загрузка ...' + dragTitle: 'Перенести / Переставити', + indicatorNewTitle: 'Ще не відвантажено', + indicatorSuccessTitle: 'Відвантажено', + indicatorErrorTitle: 'Помилка при відвантаженні', + indicatorLoadingTitle: 'Завантаження ...' }, previewZoomButtonTitles: { - prev: 'View previous file', - next: 'View next file', - toggleheader: 'Toggle header', - fullscreen: 'Toggle full screen', - borderless: 'Toggle borderless mode', - close: 'Close detailed preview' + prev: 'Переглянути попередній файл', + next: 'Переглянути наступний файл', + toggleheader: 'Перемкнути заголовок', + fullscreen: 'Перемкнути повноекранний режим', + borderless: 'Перемкнути режим без полів', + close: 'Закрити детальний перегляд' } }; })(window.jQuery); diff --git a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/uz.js b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/uz.js new file mode 100644 index 00000000..c2c57168 --- /dev/null +++ b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/uz.js @@ -0,0 +1,101 @@ +/*! + * FileInput Uzbek Translations + * + * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or + * any HTML markup tags in the messages must not be converted or translated. + * + * @see http://github.com/kartik-v/bootstrap-fileinput + * @author CyanoFresh <cyanofresh@gmail.com> + * + * NOTE: this file must be saved in UTF-8 encoding. + */ +(function ($) { + "use strict"; + + $.fn.fileinputLocales.uz = { + fileSingle: 'fayl', + filePlural: 'fayllar', + browseLabel: 'Tanlash …', + removeLabel: 'O\'chirish', + removeTitle: 'Tanlangan fayllarni tozalash', + cancelLabel: 'Bekor qilish', + cancelTitle: 'Joriy yuklab olishni bekor qilish', + uploadLabel: 'Yuklab olish', + uploadTitle: 'Tanlangan fayllarni yuklash', + msgNo: 'No', + msgNoFilesSelected: 'No files selected', + msgCancelled: 'Cancelled', + msgPlaceholder: 'Select {files}...', + msgZoomModalHeading: 'Detailed Preview', + msgFileRequired: 'You must select a file to upload.', + msgSizeTooSmall: 'File "{name}" (<b>{size} KB</b>) is too small and must be larger than <b>{minSize} KB</b>.', + msgSizeTooLarge: '"{name}" fayl (<b>{size} KB</b>) ruxsat etilgan maksimal yuklash hajmidan <b>{maxSize} KB</b> ortiq. Yuklashni qayta urinib ko\'ring!', + msgFilesTooLess: 'Yuklash uchun kamida <b>{n}</b> {files} tanlashingiz kerak. Yuklashni qayta urinib ko\'ring!', + msgFilesTooMany: 'Tanlangan fayllar <b>({n})</b> ruxsat etilgan maksimal yuklash hajmidan <b>{m}</b> ortiq. Yuklashni qayta urinib ko\'ring!', + msgFileNotFound: '"{name}" fayl topilmaydi!', + msgFileSecured: 'Security restrictions prevent reading the file "{name}".', + msgFileNotReadable: '"{name}" fayl o\'qilmaydi.', + msgFilePreviewAborted: '"{name}" Ffylni oldindan ko\'rish jarayoni to\'xtatildi.', + msgFilePreviewError: '"{name}" faylni o\'qish paytida xatolik yuz berdi.', + msgInvalidFileName: 'Invalid or unsupported characters in file name "{name}".', + msgInvalidFileType: '"{name}" fayl uchun yaroqsiz tur. Faqat "{types}" fayllari qo\'llab-quvvatlanadi.', + msgInvalidFileExtension: '"{name}" fayl uchun noto\'g\'ri kengaytma. Faqat "{extensions}" fayllari qo\'llab-quvvatlanadi.', + msgFileTypes: { + 'image': 'image', + 'html': 'HTML', + 'text': 'text', + 'video': 'video', + 'audio': 'audio', + 'flash': 'flash', + 'pdf': 'PDF', + 'object': 'object' + }, + msgUploadAborted: 'The file upload was aborted', + msgUploadThreshold: 'Processing...', + msgUploadBegin: 'Initializing...', + msgUploadEnd: 'Done', + msgUploadEmpty: 'No valid data available for upload.', + msgUploadError: 'Error', + msgValidationError: 'Fayl yuklash xatosi', + msgLoading: '{Files} dan {index} faylini yuklash …', + msgProgress: '{Files} dan {index}{name} faylini yuklashi - {percent}% tugallandi.', + msgSelected: '{n} {files} tanlangan', + msgFoldersNotAllowed: 'Faqat tortib qo\'yiladon fayllar! {n} o\'tirilgan tashlangan papka(lar).', + msgImageWidthSmall: 'Width of image file "{name}" must be at least {size} px.', + msgImageHeightSmall: 'Height of image file "{name}" must be at least {size} px.', + msgImageWidthLarge: 'Width of image file "{name}" cannot exceed {size} px.', + msgImageHeightLarge: 'Height of image file "{name}" cannot exceed {size} px.', + msgImageResizeError: 'Could not get the image dimensions to resize.', + msgImageResizeException: 'Error while resizing the image.<pre>{errors}</pre>', + msgAjaxError: 'Something went wrong with the {operation} operation. Please try again later!', + msgAjaxProgressError: '{operation} failed', + ajaxOperations: { + deleteThumb: 'file delete', + uploadThumb: 'file upload', + uploadBatch: 'batch file upload', + uploadExtra: 'form data upload' + }, + dropZoneTitle: 'Fayllarni bu yerga tortib qo\'ying …', + dropZoneClickTitle: '<br>(or click to select {files})', + fileActionSettings: { + removeTitle: 'Remove file', + uploadTitle: 'Upload file', + uploadRetryTitle: 'Retry upload', + downloadTitle: 'Download file', + zoomTitle: 'View details', + dragTitle: 'Move / Rearrange', + indicatorNewTitle: 'Not uploaded yet', + indicatorSuccessTitle: 'Uploaded', + indicatorErrorTitle: 'Upload Error', + indicatorLoadingTitle: 'Uploading ...' + }, + previewZoomButtonTitles: { + prev: 'View previous file', + next: 'View next file', + toggleheader: 'Toggle header', + fullscreen: 'Toggle full screen', + borderless: 'Toggle borderless mode', + close: 'Close detailed preview' + } + }; +})(window.jQuery); diff --git a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/zh-TW.js b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/zh-TW.js index 3f7986a9..49f7710f 100644 --- a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/zh-TW.js +++ b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/zh-TW.js @@ -23,13 +23,13 @@ uploadLabel: '上傳', uploadTitle: '上傳選取檔案', msgNo: '沒有', - msgNoFilesSelected: '', + msgNoFilesSelected: '未選擇檔案', msgCancelled: '取消', zoomTitle: '詳細資料', - msgPlaceholder: 'Select {files}...', + msgPlaceholder: '選擇 {files}...', msgZoomModalHeading: '內容預覽', - msgFileRequired: 'You must select a file to upload.', - msgSizeTooSmall: 'File "{name}" (<b>{size} KB</b>) is too small and must be larger than <b>{minSize} KB</b>.', + msgFileRequired: '必須選擇壹個文件上傳.', + msgSizeTooSmall: '檔案 "{name}" (<b>{size} KB</b>) 必須大於限定大小 <b>{minSize} KB</b>.', msgSizeTooLarge: '檔案 "{name}" (<b>{size} KB</b>) 大小超過上限 <b>{maxSize} KB</b>.', msgFilesTooLess: '最少必須選擇 <b>{n}</b> {files} 來上傳. ', msgFilesTooMany: '上傳的檔案數量 <b>({n})</b> 超過最大檔案上傳限制 <b>{m}</b>.', @@ -38,7 +38,7 @@ msgFileNotReadable: '文件 "{name}" 不可讀取.', msgFilePreviewAborted: '檔案 "{name}" 預覽中止.', msgFilePreviewError: '讀取 "{name}" 發生錯誤.', - msgInvalidFileName: 'Invalid or unsupported characters in file name "{name}".', + msgInvalidFileName: '附檔名 "{name}" 包含非法字符.', msgInvalidFileType: '檔案類型錯誤 "{name}". 只能使用 "{types}" 類型的檔案.', msgInvalidFileExtension: '附檔名錯誤 "{name}". 只能使用 "{extensions}" 的檔案.', msgFileTypes: { @@ -52,11 +52,11 @@ 'object': 'object' }, msgUploadAborted: '該文件上傳被中止', - msgUploadThreshold: 'Processing...', - msgUploadBegin: 'Initializing...', - msgUploadEnd: 'Done', - msgUploadEmpty: 'No valid data available for upload.', - msgUploadError: 'Error', + msgUploadThreshold: '處理中...', + msgUploadBegin: '正在初始化...', + msgUploadEnd: '完成', + msgUploadEmpty: '無效的文件上傳.', + msgUploadError: '上傳錯誤', msgValidationError: '驗證錯誤', msgLoading: '載入第 {index} 個檔案,共 {files} …', msgProgress: '載入第 {index} 個檔案,共 {files} - {name} - {percent}% 成功.', @@ -68,8 +68,8 @@ msgImageHeightLarge: '圖檔高度"{name}"不能超過{size}像素(px).', msgImageResizeError: '無法獲取的圖像尺寸調整。', msgImageResizeException: '錯誤而調整圖像大小。<pre>{errors}</pre>', - msgAjaxError: 'Something went wrong with the {operation} operation. Please try again later!', - msgAjaxProgressError: '{operation} failed', + msgAjaxError: '{operation} 發生錯誤. 請重試!', + msgAjaxProgressError: '{operation} 失敗', ajaxOperations: { deleteThumb: 'file delete', uploadThumb: 'file upload', @@ -77,26 +77,26 @@ uploadExtra: 'form data upload' }, dropZoneTitle: '拖曳檔案至此 …', - dropZoneClickTitle: '<br>(or click to select {files})', + dropZoneClickTitle: '<br>(或點擊{files}按鈕選擇文件)', fileActionSettings: { removeTitle: '刪除檔案', uploadTitle: '上傳檔案', - uploadRetryTitle: 'Retry upload', - downloadTitle: 'Download file', + uploadRetryTitle: '重試', + downloadTitle: '下載檔案', zoomTitle: '詳細資料', - dragTitle: 'Move / Rearrange', + dragTitle: '移動 / 重置', indicatorNewTitle: '尚未上傳', indicatorSuccessTitle: '上傳成功', indicatorErrorTitle: '上傳失敗', indicatorLoadingTitle: '上傳中 ...' }, previewZoomButtonTitles: { - prev: 'View previous file', - next: 'View next file', - toggleheader: 'Toggle header', - fullscreen: 'Toggle full screen', - borderless: 'Toggle borderless mode', - close: 'Close detailed preview' + prev: '預覽上壹個文件', + next: '預覽下壹個文件', + toggleheader: '縮放', + fullscreen: '全屏', + borderless: '無邊界模式', + close: '關閉當前預覽' } }; })(window.jQuery); diff --git a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/zh.js b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/zh.js index 0e2ed3a5..469fa380 100644 --- a/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/zh.js +++ b/kvision-modules/kvision-upload/src/main/resources/js/locales/bootstrap-fileinput/zh.js @@ -23,9 +23,9 @@ uploadLabel: '上传', uploadTitle: '上传选中文件', msgNo: '没有', - msgNoFilesSelected: '', + msgNoFilesSelected: '未选择文件', msgCancelled: '取消', - msgPlaceholder: 'Select {files}...', + msgPlaceholder: '选择 {files}...', msgZoomModalHeading: '详细预览', msgFileRequired: '必须选择一个文件上传.', msgSizeTooSmall: '文件 "{name}" (<b>{size} KB</b>) 必须大于限定大小 <b>{minSize} KB</b>.', @@ -55,7 +55,7 @@ msgUploadBegin: '正在初始化...', msgUploadEnd: '完成', msgUploadEmpty: '无效的文件上传.', - msgUploadError: 'Error', + msgUploadError: '上传出错', msgValidationError: '验证错误', msgLoading: '加载第 {index} 文件 共 {files} …', msgProgress: '加载第 {index} 文件 共 {files} - {name} - {percent}% 完成.', @@ -80,7 +80,8 @@ fileActionSettings: { removeTitle: '删除文件', uploadTitle: '上传文件', - uploadRetryTitle: 'Retry upload', + downloadTitle: '下载文件', + uploadRetryTitle: '重试', zoomTitle: '查看详情', dragTitle: '移动 / 重置', indicatorNewTitle: '没有上传', diff --git a/src/main/resources/css/style.css b/src/main/resources/css/style.css index 691d252c..2435d188 100644 --- a/src/main/resources/css/style.css +++ b/src/main/resources/css/style.css @@ -140,3 +140,7 @@ ul.dropdown-menu li a { padding-left: 0; padding-right: 0; } + +.kv-preview-thumb .btn, .kv-zoom-actions .btn, .file-zoom-dialog .floating-buttons .btn { + padding: 5px 8px; +} |