diff --git a/src/i18n/ca-ES/index.js b/src/i18n/ca-ES/index.js index 19e20f7c..83b73524 100644 --- a/src/i18n/ca-ES/index.js +++ b/src/i18n/ca-ES/index.js @@ -84,5 +84,34 @@ export default { delete: 'Esborrar', emptyList: 'Llista buida', modify: 'Modificar', - confirmDelete: 'Estàs segur que vols esborrar la línia?' + confirmDelete: 'Estàs segur que vols esborrar la línia?', + // Image related translations + 'Cant lock cache': 'No es pot bloquejar la memòria cau', + 'Bad file format': 'Format de fitxer no reconegut', + 'File not choosed': 'No has seleccionat cap fitxer', + 'Permission denied': 'No tens permís per pujar el fitxer', + 'File upload error': + "No s'ha pogut pujar el fitxer, comprova que la mida no sigui massa gran", + 'File save error': "No s'ha pogut desar el fitxer: %s", + 'File size error': 'El fitxer no ha de superar %.2f MB', + 'Bad file name': + "El nom del fitxer només ha de contenir lletres minúscules, dígits o el caràcter '_'", + 'Bad collection name': 'Nom de col·lecció no vàlid', + 'Collection not exists': 'La col·lecció no existeix', + 'Unreferenced file': 'El fitxer no està referenciat per la base de dades', + 'Cannot update matching id': "No es pot actualitzar l'id coincident", + 'Com error': 'Error de comunicació amb el servidor', + 'Image open error': "Error en obrir el fitxer d'imatge", + 'Operation disabled': 'Operació deshabilitada per seguretat', + 'Image added': 'Imatge afegida correctament', + ErrIniSize: 'El fitxer supera la directiva upload_max_filesize a php.ini', + ErrFormSize: + 'El fitxer supera el MAX_FILE_SIZE especificat al formulari HTML', + ErrPartial: "El fitxer s'ha pujat parcialment", + ErrNoFile: "No s'ha pujat cap fitxer", + ErrNoTmpDir: 'Falta una carpeta temporal', + ErrCantWrite: "No s'ha pogut escriure el fitxer al disc", + ErrExtension: "La pujada del fitxer s'ha aturat per una extensió", + ErrDefault: 'Error de pujada desconegut', + 'Sync complete': 'Sincronització completa' }; diff --git a/src/i18n/en-US/index.js b/src/i18n/en-US/index.js index 2e62021d..130125d5 100644 --- a/src/i18n/en-US/index.js +++ b/src/i18n/en-US/index.js @@ -118,5 +118,33 @@ export default { save: 'Save', cancel: 'Cancel', of: 'of', - modify: 'Modify' + modify: 'Modify', + // Image related translations + 'Cant lock cache': 'The cache could not be blocked', + 'Bad file format': 'Unrecognized file format', + 'File not choosed': 'You have not selected any file', + 'Permission denied': 'You are not allowed to upload the file', + 'File upload error': + 'Failed to upload the file, check that size is not too large', + 'File save error': 'Failed to save the file: %s', + 'File size error': 'The file must be no longer than %.2f MB', + 'Bad file name': + "The file name must contain only lowercase letters, digits or the '_' character", + 'Bad collection name': 'Invalid collection name', + 'Collection not exists': 'Collection does not exist', + 'Unreferenced file': 'The file is not referenced by the database', + 'Cannot update matching id': 'Cannot update matching id', + 'Com error': 'Error communicating with the server', + 'Image open error': 'Error opening the image file', + 'Operation disabled': 'Operation disabled for security', + 'Image added': 'Image added correctly', + ErrIniSize: 'File exceeds the upload_max_filesize directive in php.ini', + ErrFormSize: 'File exceeds the MAX_FILE_SIZE specified in the HTML form', + ErrPartial: 'File was partially uploaded', + ErrNoFile: 'No file was uploaded', + ErrNoTmpDir: 'Missing a temporary folder', + ErrCantWrite: 'Failed to write file to disk', + ErrExtension: 'File upload stopped by extension', + ErrDefault: 'Unknown upload error', + 'Sync complete': 'Synchronization complete' }; diff --git a/src/i18n/es-ES/index.js b/src/i18n/es-ES/index.js index da0143c1..cafc2e7c 100644 --- a/src/i18n/es-ES/index.js +++ b/src/i18n/es-ES/index.js @@ -134,5 +134,34 @@ export default { save: 'Guardar', cancel: 'Cancelar', of: 'de', - modify: 'Modificar' + modify: 'Modificar', + // Image related translations + 'Cant lock cache': 'La caché no pudo ser bloqueada', + 'Bad file format': 'Formato de archivo no reconocido', + 'File not choosed': 'No has seleccionado ningún archivo', + 'Permission denied': 'No tienes permiso para subir el fichero', + 'File upload error': + 'Error al subir el fichero, comprueba que su tamaño no sea demasiado grande', + 'File save error': 'Error al guardar el fichero: %s', + 'File size error': 'El fichero no debe ocupar más de %.2f MB', + 'Bad file name': + "El nombre del archivo solo debe contener letras minúsculas, dígitos o el carácter '_'", + 'Bad collection name': 'Nombre de colección no válido', + 'Collection not exists': 'La colección no existe', + 'Unreferenced file': 'El archivo no está referenciado por la base de datos', + 'Cannot update matching id': + 'No es posible actualizar los ítems con id coincidente', + 'Com error': 'Error en la comunicación con el servidor', + 'Image open error': 'Error al abrir el archivo de imagen', + 'Operation disabled': 'Operación deshabilitada por seguridad', + 'Image added': 'Imagen añadida correctamente', + ErrIniSize: 'File exceeds the upload_max_filesize directive in php.ini', + ErrFormSize: 'File exceeds the MAX_FILE_SIZE specified in the HTML form', + ErrPartial: 'File was partially uploaded', + ErrNoFile: 'No file was uploaded', + ErrNoTmpDir: 'Missing a temporary folder', + ErrCantWrite: 'Failed to write file to disk', + ErrExtension: 'File upload stopped by extension', + ErrDefault: 'Unknown upload error', + 'Sync complete': 'Sincronización completada' }; diff --git a/src/i18n/fr-FR/index.js b/src/i18n/fr-FR/index.js index ffb43923..ee87cc3a 100644 --- a/src/i18n/fr-FR/index.js +++ b/src/i18n/fr-FR/index.js @@ -84,5 +84,37 @@ export default { delete: 'Effacer', emptyList: 'Vider la liste', modify: 'Modifier', - confirmDelete: 'Voulez-vous vraiment supprimer la ligne?' + confirmDelete: 'Voulez-vous vraiment supprimer la ligne?', + // Image related translations + 'Cant lock cache': "Le cache n'a pas pu être verrouillé", + 'Bad file format': 'Format de fichier non reconnu', + 'File not choosed': "Vous n'avez sélectionné aucun fichier", + 'Permission denied': "Vous n'êtes pas autorisé à télécharger le fichier", + 'File upload error': + "Échec du téléchargement du fichier, vérifiez que la taille n'est pas trop grande", + 'File save error': "Échec de l'enregistrement du fichier : %s", + 'File size error': 'Le fichier ne doit pas dépasser %.2f MB', + 'Bad file name': + "Le nom du fichier ne doit contenir que des lettres minuscules, des chiffres ou le caractère '_'", + 'Bad collection name': 'Nom de collection invalide', + 'Collection not exists': "La collection n'existe pas", + 'Unreferenced file': + "Le fichier n'est pas référencé par la base de données", + 'Cannot update matching id': + "Impossible de mettre à jour l'ID correspondant", + 'Com error': 'Erreur de communication avec le serveur', + 'Image open error': "Erreur lors de l'ouverture du fichier image", + 'Operation disabled': 'Opération désactivée pour des raisons de sécurité', + 'Image added': 'Image ajoutée correctement', + ErrIniSize: + 'Le fichier dépasse la directive upload_max_filesize dans php.ini', + ErrFormSize: + 'Le fichier dépasse la taille maximale spécifiée dans le formulaire HTML', + ErrPartial: 'Le fichier a été partiellement téléchargé', + ErrNoFile: "Aucun fichier n'a été téléchargé", + ErrNoTmpDir: 'Il manque un dossier temporaire', + ErrCantWrite: "Échec de l'écriture du fichier sur le disque", + ErrExtension: 'Téléchargement du fichier arrêté par extension', + ErrDefault: 'Erreur de téléchargement inconnue', + 'Sync complete': 'Synchronisation terminée' }; diff --git a/src/i18n/pt-PT/index.js b/src/i18n/pt-PT/index.js index 61e14e2b..e0fbcc8e 100644 --- a/src/i18n/pt-PT/index.js +++ b/src/i18n/pt-PT/index.js @@ -82,5 +82,33 @@ export default { delete: 'Eliminar', emptyList: 'Lista vazia', modify: 'Modificar', - confirmDelete: 'Tens certeza que queres eliminar esta linha?' + confirmDelete: 'Tens certeza que queres eliminar esta linha?', + // Image related translations + 'Cant lock cache': 'O cache não pôde ser bloqueado', + 'Bad file format': 'Formato de arquivo inválido', + 'File not choosed': 'Não selecionastes nenhum arquivo', + 'Permission denied': 'Não estas autorizado a subir o arquivo', + 'File upload error': 'Erro ao subir o arquivo, verifique o tamanho', + 'File save error': 'Erro ao salvar o arquivo: %s', + 'File size error': 'O arquivo não deve ser maior que %.2f MB', + 'Bad file name': + "O nome do arquivo deve conter somente letras minusculas, numeros ou '_'", + 'Bad collection name': 'Nome de coleção inválido', + 'Collection not exists': 'Coleção não existe', + 'Unreferenced file': 'O arquivo não é referenciado pelo banco de dados', + 'Cannot update matching id': + 'Não é possível atualizar os itens com id coincidente', + 'Com error': 'Erro de comunicação com o servidor', + 'Image open error': 'Erro ao abrir a imagem', + 'Operation disabled': 'Operação desativada por segurança', + 'Image added': 'Imagem adicionada corretamente', + ErrIniSize: 'Arquivo supera o tamanho maximo de protocolo em php.ini', + ErrFormSize: 'Arquivo supera o tamanho maximo de protocolo em HTML form', + ErrPartial: 'Arquivo subido parcialmente', + ErrNoFile: 'Nenhum arquivo subido', + ErrNoTmpDir: 'Falta a pasta de arquivo temporal', + ErrCantWrite: 'Erro ao gravar arquivo no disco', + ErrExtension: 'Erro de extensão do arquivo', + ErrDefault: 'Erro desconhecido ao subir arquivo', + 'Sync complete': 'Sincronização completa' }; diff --git a/src/pages/Admin/PhotosView.vue b/src/pages/Admin/PhotosView.vue index 570568cb..c8b44d81 100644 --- a/src/pages/Admin/PhotosView.vue +++ b/src/pages/Admin/PhotosView.vue @@ -13,11 +13,24 @@ const { t } = useI18n(); const { notify } = useNotify(); const fileUploaderRef = ref(null); + const statusIcons = { - uploading: 'cloud_upload', - fulfilled: 'cloud_done', - rejected: 'error', - pending: 'add' + uploading: { + icon: 'cloud_upload', + tooltip: 'Uploading' + }, + fulfilled: { + icon: 'cloud_done', + tooltip: 'imageUploaded' + }, + rejected: { + icon: 'error', + tooltip: 'Error' + }, + pending: { + icon: 'add', + tooltip: 'pendingUpload' + } }; const formInitialData = reactive({ schema: 'catalog', @@ -72,6 +85,12 @@ const onSubmit = async data => { results.forEach((result, index) => { const fileIndex = filteredFiles[index].index; addedFiles.value[fileIndex].uploadStatus = result.status; + + if (result.status === 'rejected') { + addedFiles.value[fileIndex].errorMessage = t( + result.reason?.response?.data?.data?.message + ); + } }); const allSuccessful = results.every( @@ -122,10 +141,10 @@ onMounted(async () => getImageCollections());