Compare commits

...
Author SHA1 Message Date
Kurami32 c72723bb52 update es.json 2025-11-21 00:25:34 +00:00
Kurami32 d4b813d1f1 Update spanish translation 2025-11-20 23:49:24 +00:00
Graham Steffaniak 3298111560 Add exif tool (#1625) 2025-11-19 17:54:48 -06:00
Graham Steffaniak 3ca9f54de0 updated with compile safe i18n checks (#1623) 2025-11-19 16:48:44 -06:00
4 changed files with 237 additions and 210 deletions

No files matched your search

+5
View File
@@ -2,6 +2,11 @@
All notable changes to this project will be documented in this file. For commit guidelines, please refer to [Standard Version](https://github.com/conventional-changelog/standard-version).
## v1.1.1-beta
**BugFixes**:
- added missing exiftool to docker image for heic conversion orientation support
## v1.1.0-beta
**New Features**:
+2 -1
View File
@@ -28,7 +28,7 @@ COPY --from=ffmpeg [ "/ffmpeg", "/ffprobe", "/usr/local/bin/" ]
ENV FILEBROWSER_FFMPEG_PATH="/usr/local/bin/"
ENV FILEBROWSER_DATABASE="/home/filebrowser/data/database.db"
ENV PATH="$PATH:/home/filebrowser"
RUN apk --no-cache add ca-certificates mailcap tzdata curl
RUN apk --no-cache add ca-certificates mailcap tzdata curl exiftool
RUN adduser -D -s /bin/true -u 1000 filebrowser
USER filebrowser
WORKDIR /home/filebrowser
@@ -42,6 +42,7 @@ COPY --from=nbuild --chown=filebrowser:1000 [ "/app/dist/", "./http/dist/" ]
RUN [ "filebrowser", "version" ]
RUN [ "ffmpeg", "-version" ]
RUN [ "ffprobe", "-version" ]
RUN [ "exiftool", "-ver" ]
USER root
# exposing default port for auto discovery.
EXPOSE 80
+25 -4
View File
@@ -4,12 +4,10 @@
<div class="status-info">
<span v-if="selectedCount > 0">
<span class="button">{{ selectedCount }}</span>
<!-- eslint-disable-next-line @intlify/vue-i18n/no-raw-text -->
{{ $t(selectedCount === 1 ? 'files.itemSelected' : 'files.itemsSelected') }} ({{ displayTotalSize }})
{{ selectedItemsText }}
</span>
<span v-else class="directory-info">
<!-- eslint-disable-next-line @intlify/vue-i18n/no-raw-text -->
{{ numDirs }} {{ $t(numDirs === 1 ? 'buttons.folder' : 'general.folders') }} | {{ numFiles }} {{ $t(numFiles === 1 ? 'buttons.file' : 'general.files') }} ({{ displayTotalSize }})
{{ directoryInfoText }}
</span>
</div>
<div class="status-controls">
@@ -87,6 +85,29 @@ export default {
const size = this.selectedCount > 0 ? this.totalSelectedSize : this.totalDirectorySize;
return getHumanReadableFilesize(size);
},
// i18n labels with compile-time checked keys
itemsSelectedLabel() {
return this.selectedCount === 1
? this.$t("files.itemSelected")
: this.$t("files.itemsSelected");
},
foldersLabel() {
return this.numDirs === 1
? this.$t("general.folder")
: this.$t("general.folders");
},
filesLabel() {
return this.numFiles === 1
? this.$t("general.file")
: this.$t("general.files");
},
// Complete text with raw characters moved from template
selectedItemsText() {
return `${this.itemsSelectedLabel} (${this.displayTotalSize})`;
},
directoryInfoText() {
return `${this.numDirs} ${this.foldersLabel} | ${this.numFiles} ${this.filesLabel} (${this.displayTotalSize})`;
},
},
methods: {
updateGallerySize(event) {
+205 -205
View File
@@ -3,7 +3,7 @@
"copyFile": "Copiar archivo",
"copyToClipboard": "Copiar al portapapeles",
"moveFile": "Mover archivo",
"permalink": "Link sin expiración",
"permalink": "Enlace permanente",
"reportIssue": "Reportar problema",
"selectMultiple": "Selección múltiple",
"shell": "Presiona Enter para buscar...",
@@ -30,7 +30,7 @@
"saveAndExit": "Guardar y salir",
"keepEditing": "Seguir editando",
"closeAnyway": "Cerrar de todos modos",
"goToItem": "Ir al artículo"
"goToItem": "Ir al elemento"
},
"download": {
"downloadFile": "Descargar archivo",
@@ -42,8 +42,8 @@
"internal": "Error interno :(",
"notFound": "No se encontró el directorio",
"connection": "No se puede conectar al servidor.",
"shareNotFound": "No se encuentra lo que buscas, tal vez el enlace expiró.",
"failedToConnectToServer": "No se ha podido conectar con el servidor, ¿sigue funcionando?"
"shareNotFound": "No se encuentró lo que buscas, tal vez el enlace expiró.",
"failedToConnectToServer": "No se ha podido conectar con el servidor, ¿Sigue funcionando?"
},
"files": {
"closePreview": "Cerrar vista previa",
@@ -60,7 +60,7 @@
"myFiles": "Mis archivos{suffix}",
"newFile": "Nuevo archivo{suffix}",
"newFolder": "Nueva carpeta{suffix}",
"duration": "Duración{suffix}",
"duration": "Duración {suffix}",
"sortByDuration": "Ordenar por duración"
},
"help": {
@@ -71,7 +71,7 @@
"ctrl": {
"click": "Selecciona varios elementos (Selección multiple)",
"d": "Descargar elementos seleccionados",
"b": "Mostrar/ocultar la barra lateral",
"b": "Mostrar/ocultar el panel lateral",
"comma": "Ir a configuración",
"c": "Copiar elementos seleccionados",
"v": "Pegar elementos copiados o cortados",
@@ -81,10 +81,10 @@
"esc": "Cancela la selección o cierra la ventana actual",
"f2": "Cambiar nombre del archivo o carpeta",
"f1": "Abrir ventana de ayuda",
"description": "Aquí puedes ver todos los atajos de teclado básicos. Si quieres saber más, visita la",
"slash": "Activar búsqueda",
"description": "Aquí puedes ver todos los atajos de teclado básicos. Para saber más, visita la",
"slash": "Abrir panel de búsqueda",
"wiki": "documentación oficial de FileBrowser Quantum",
"marqueeSelect": "seleccionar varios archivos o directorios arrastrando sobre el espacio vacío"
"marqueeSelect": "Selecciona archivos o carpetas con el mouse arrastrando en un espacio vacio"
},
"languages": {
"he": "עברית",
@@ -139,17 +139,17 @@
"moveMessage": "Selecciona un nuevo destino:",
"newArchetype": "Crear una nueva publicación en base a una plantilla, tu archivo se creara en la misma carpeta",
"newDir": "Nueva carpeta",
"newDirMessage": "Nombre de la carpeta",
"newDirMessage": "Nombre de la carpeta:",
"newFile": "Nuevo archivo",
"newFileMessage": "Nombre del archivo",
"newFileMessage": "Nombre del archivo:",
"rename": "Cambiar nombre",
"replace": "Reemplazar",
"replaceMessage": "Un archivo con el mismo nombre ya existe. ¿Quieres cambiar el nombre?\n",
"schedule": "Programar",
"scheduleMessage": "Selecciona una fecha y hora para la publicacion:",
"show": "Mostrar",
"upload": "Subir",
"optionalPassword": "Contraseña (opcional)",
"upload": "Subir Archivos",
"optionalPassword": "Contraseña: (opcional)",
"deleteUserMessage": "¿Estas seguro que quieres eliminar este usuario?",
"filesSelected": "Archivos seleccionados",
"typeName": "Tipo:",
@@ -168,7 +168,7 @@
"optionalPasswordHelp": "Si eliges una contraseña, los usuarios deberán introducir esa misma contraseña para ver el contenido.",
"dragAndDrop": "Arrastra y suelta los archivos aquí",
"completed": "Completado",
"conflictsDetected": "Conflictos detectados",
"conflictsDetected": "Se detectaron conflictos",
"viewMode": "Cambiar modo de vista",
"renameMessage": "Introduce un nuevo nombre:",
"renameMessageInvalid": "El archivo no puede tener \"/\" o \"\\\"",
@@ -176,10 +176,10 @@
"deleteMessageShare": "¿Estás seguro que quieres borrar \"{path}\" de los recursos compartidos?",
"numberDirs": "Número de carpetas {suffix}",
"numberFiles": "Número de archivos {suffix}",
"renameMessageConflict": "Ya existe un archivo llamado \"{filename}\".",
"renameMessageConflict": "Ya existe un archivo llamado \"{filename}\"",
"uploadSettingsChunked": "Subidas simultáneas: {maxConcurrentUpload} - Tamaño de fragmento: {uploadChunkSizeMb} MB",
"uploadSettingsNoChunk": "Subidas simultáneas: {maxConcurrentUpload} - Subida fragmentada: Desactivada",
"quickJump": "Salta rápidamente a otros archivos",
"quickJump": "Navegación rápida",
"moveSuccess": "¡Archivos movidos con éxito!",
"copySuccess": "¡Archivos copiados correctamente!",
"lastModified": "Última modificación: {suffix}",
@@ -192,37 +192,37 @@
"moveItemQuestion": "¿Quieres mover este archivo a la nueva ubicación?",
"sourcePath": "Fuente:",
"destinationPath": "Nueva ubicación:",
"closeWithActiveUploadsMessage": "Si cierras este aviso, todas las subidas activas se interrumpirán, y puede que algunos archivos queden incompletos. ¿Que quieres hacer?",
"closeWithActiveUploadsMessage": "Si cierras esta ventana, todos los archivos que estés subiendo se interrumpirán, y puede que algunos queden incompletos. ¿Que quieres hacer?",
"closeWithActiveUploads": "Subida de archivos activa",
"basicInfo": "Información básica",
"directoryInfo": "Información del directorio",
"additionalInfo": "Información adicional",
"hidden": "Oculto",
"hasPreview": "Tiene Vista Previa",
"hasPreview": "Vista Previa",
"checksums": "Sumas de control",
"hashAlgorithm": "Algoritmo Hash",
"hashAlgorithm": "Algoritmo hash",
"hashValue": "Valor Hash",
"selectHashAlgorithm": "Seleccione un algoritmo hash",
"generate": "Genere",
"errorGeneratingHash": "Error al generar el hash",
"hashCopied": "Hash copiado en el portapapeles",
"errorCopyingHash": "Error al copiar el hash",
"token": "Ficha",
"selectHashAlgorithm": "Seleccione un algoritmo",
"generate": "Generar",
"errorGeneratingHash": "Hubo un error al generar el hash",
"hashCopied": "¡Se copio el hash al portapapeles!",
"errorCopyingHash": "Hubo un error al copiar el hash",
"token": "Token",
"onlyOfficeId": "OnlyOffice ID",
"firstLoadTitle": "¡Bienvenido a FileBrowser Quantum!",
"halloweenTitle": "¡Feliz Halloween!",
"halloweenBody": "Se ha aplicado el tema de Halloween. Puedes desactivarlo si no te gusta, o desactivarlo permanentemente en los ajustes del perfil seleccionando cualquier otro tema.",
"firstLoadBody": "Se ha creado una nueva base de datos al iniciar. Si esto no es lo que esperaba, por favor, compruebe su archivo de configuración para la ruta `server.database` y asegúrese de que existe. En docker, la ruta de la base de datos puede ser `./data/database.db` o `./database.db`.",
"firstLoadBody": "Se acabó de crear una nueva base de datos al iniciar. Si esto no es lo que esperabas, por favor, verifica si tu archivo de configuración tiene una entrada para la ruta de la base de datos: `server.database` y aseguráte de que existe. Si usas Docker, la ruta de la base de datos puede ser `./data/database.db` o `./database.db`.",
"selectPath": "Seleccionar ruta",
"renameSuccess": "El cambio de nombre se ha realizado correctamente.",
"newFileSuccess": "¡Fichero creado con éxito!",
"newDirSuccess": "¡Directorio creado con éxito!",
"copyToClipboardFailed": "No se puede copiar en el portapapeles"
"renameSuccess": "El cambio de nombre se ha realizado correctamente",
"newFileSuccess": "¡Archivo creado con éxito!",
"newDirSuccess": "¡Carpeta creada con éxito!",
"copyToClipboardFailed": "Hubo un error al copiar en el portapapeles"
},
"search": {
"smallerThan": "Menor que:",
"largerThan": "Mayor que:",
"helpText1": "La busqueda se realiza por cada letra introducida (empezando de 3)",
"helpText1": "La busqueda se realiza por cada letra introducida (empezando de {minSearchLength})",
"helpText2": "El índice se actualiza automáticamente cada 5 min por defecto. Si se interrumpe pueden haber errores",
"onlyFolders": "Solo carpetas",
"onlyFiles": "Solo archivos",
@@ -239,7 +239,7 @@
"allowEdit": "Editar, borrar y cambiar nombres de archivos o carpetas",
"allowNew": "Crear nuevos archivos y carpetas",
"allowPublish": "Publicar posts/páginas",
"allowSignup": "Permitir registro de nuevos usuarios",
"allowSignup": "Permitir el registro de nuevos usuarios",
"avoidChanges": "(dejar en blanco para evitar cambios)",
"brandingDirectoryPath": "Ruta del directorio con los archivos que usarás para personalizar FileBrowser Quantum",
"changePassword": "Cambiar contraseña",
@@ -284,10 +284,10 @@
"rulesHelp": "Puedes definir un conjunto de reglas para este usuario. Los archivos bloqueados no se mostrarán y no serán accesibles pora el usuario. Puedes utilizar regex y rutas relativas al alcance (Ruta base) del usuario.\n",
"settingsUpdated": "¡Ajustes actualizados!",
"shareManagement": "Gestión de recursos compartidos",
"shareDeleted": "¡Compartido eliminado!",
"shareDeleted": "¡Recurso compartido eliminado!",
"singleClick": "Abrir con un solo clic",
"userCommandsHelp": "Comandos permitidos (separados por espacios). Ejemplo:\n",
"userCreated": "¡Usuario creado!",
"userCreated": "¡Usuario creado con éxito!",
"userDefaults": "Configuración de usuario por defecto",
"userDeleted": "¡Usuario eliminado!",
"userManagement": "Gestión de usuarios",
@@ -299,8 +299,8 @@
"emptyGlobal": "Actualmente no hay configuracion global, edita el archivo YAML para establecer las configuraciones del sistema",
"UserManagement": "Gestión de usuarios",
"tusUploads": "Subida fragmentada",
"tusUploadsHelp": "File Browser Quantum permite subir archivos en fragmentos, lo que permite que sean subidos de manera eficiente, fiable, y que sea reanudable incluso si tu internet es inestable",
"tusUploadsChunkSize": "Tamaño máximo del \"fragmento\" del archivo a subir. Puedes escribir un número en bytes o una cadena como 10 MB, 1 GB, etc",
"tusUploadsHelp": "FileBrowser Quantum permite subir archivos en fragmentos, lo que permite que sean subidos de manera eficiente, fiable, y que sea reanudable incluso si tu internet es inestable",
"tusUploadsChunkSize": "Tamaño máximo del fragmento del archivo a subir. Puedes escribir un número en bytes o una cadena como 10 MB, 1 GB, etc",
"tusUploadsRetryCount": "Número de reintentos. Por si falla la subida de algún archivo",
"api": "Claves API",
"loginMethodDescription": "Método de inicio de sesión",
@@ -329,39 +329,39 @@
"siteSettings": "Ajustes del sitio",
"updateIsAvailable": "¡Actualización disponible!",
"fileActions": "Acciones de archivo",
"customizeLinks": "Personalizar los enlaces de la barra lateral",
"customizeLinksDescription": "Personaliza los enlaces que aparecen en tu barra lateral. Arrastre y suelte para reordenar.",
"currentLinks": "Enlaces actuales",
"addNewLink": "Añadir nuevo enlace",
"linkType": "Tipo de enlace",
"selectLinkType": "Seleccione un tipo de enlace",
"customLink": "Enlace personalizado",
"selectSource": "Seleccionar fuente",
"chooseSource": "Elija una fuente",
"selectTool": "Seleccionar herramienta",
"chooseTool": "Elija una herramienta",
"linkName": "Nombre del enlace",
"linkNamePlaceholder": "Introduzca el nombre del enlace",
"linkUrl": "Enlace URL",
"linkUrlPlaceholder": "Introduzca la URL o la ruta (por ejemplo, /archivos/ruta o https://example.com)",
"linkIcon": "Icono de enlace",
"linksUpdatedSuccess": "Los enlaces de la barra lateral se han actualizado correctamente.",
"linksUpdateFailed": "Error al actualizar los enlaces de la barra lateral",
"sourceNotAccessible": "Ya no puede acceder a esta fuente",
"noLinksYet": "Aún no hay enlaces configurados. Añada su primer enlace a continuación.",
"customizeShareLinks": "Personalizar los enlaces compartidos de la barra lateral",
"customizeShareLinksDescription": "Personalice los enlaces que aparecen en la barra lateral para esta acción. Arrastre y suelte para reordenar.",
"editLink": "Editar enlace",
"selectShare": "Seleccione Compartir",
"chooseShare": "Elija una acción",
"selectSharePath": "Ruta dentro del recurso compartido (opcional)",
"sharePathPlaceholder": "por ejemplo, /subcarpeta o dejar vacío para root",
"browseIcons": "Iconos de navegación",
"customizeLinks": "Personalizar accesos directos",
"customizeLinksDescription": "Personaliza los accesos directos que aparecen en el panel lateral - Puedes arrastrar y soltar para reordenarlos",
"currentLinks": "Accesos directos actuales",
"addNewLink": "Crear acceso directo",
"linkType": "Tipo:",
"selectLinkType": "Selecciona un tipo de acceso directo",
"customLink": "Acceso directo personalizado",
"selectSource": "Seleccionar Fuente",
"chooseSource": "Elije una fuente de archivos",
"selectTool": "Selecciona una herramienta",
"chooseTool": "Elije una herramienta",
"linkName": "Nombre del acceso directo",
"linkNamePlaceholder": "Introduzca el nombre del acceso directo",
"linkUrl": "Enlace",
"linkUrlPlaceholder": "Introduzca una ruta o URL (ej: /archivos/ruta o https://example.com)",
"linkIcon": "Icono del acceso directo:",
"linksUpdatedSuccess": "¡Se actualizaron los accesos directos!",
"linksUpdateFailed": "Hubo un error al actualizar los accesos directos",
"sourceNotAccessible": "No se pudo acceder a la fuente",
"noLinksYet": "Aún no configuraste ningún acceso directo, ¡Añade uno!",
"customizeShareLinks": "Accesos directos",
"customizeShareLinksDescription": "Aquí puedes personalizar los accesos directos del panel lateral para este recurso compartido.",
"editLink": "Editar acceso directo",
"selectShare": "Seleccionar recurso compartido",
"chooseShare": "Seleccionar recurso compartido",
"selectSharePath": "Ruta que se usará dentro del recurso compartido (opcional)",
"sharePathPlaceholder": "ej: /subcarpeta o en blanco para \"/\"",
"browseIcons": "Material Icons",
"pickIcon": "Elija un icono",
"pickIconDescription": "Busque y seleccione un icono de la biblioteca Material Icons",
"shareLinksUpdatedSuccess": "Los enlaces de la barra lateral compartida se han actualizado correctamente.",
"shareHome": "Compartir",
"linkIconPlaceholder": "Opcionalmente, especifique un nombre de icono de material"
"pickIconDescription": "Aquí puedes explorar los iconos más populates de la biblioteca \"Material Icons\"",
"shareLinksUpdatedSuccess": "¡Se actualizaron los accesos directos del recurso compartido!",
"shareHome": "Recurso compartido",
"linkIconPlaceholder": "Opcionalmente, puedes elegir un Material Icon que más te guste"
},
"success": {
"linkCopied": "¡Enlace copiado!"
@@ -374,16 +374,16 @@
"unit": "Unidad"
},
"upload": {
"abortUpload": "¿Cancelar subida?"
"abortUpload": "¿Cancelar subida de archivos?"
},
"share": {
"notice": "Nota: Cuando se crea un recurso compartido, este queda más expuesto al público y tendrá diferentes normas de acceso. Si el recurso compartido no está configurado de forma segura, cualquiera podrá acceder a él.",
"disableAnonymousDescription": "Cuando está activado, sólo los usuarios registrados podrán acceder al recurso compartido.",
"disableThumbnailsDescription": "Las miniaturas de archivos, fotos y videos no estarán activadas.",
"enableAllowedUsernamesDescription": "Cuando se activa, sólo los usuarios que especifique pueden acceder al recurso compartido. El usuario debe tener acceso al origen del recurso compartido.",
"downloadsLimitDescription": "Número máximo de veces que se puede descargar un archivo/carpeta del recurso compartido - Dejar vacío para ilimitado.",
"maxBandwidthDescription": "El ancho de banda máximo de descarga en kilobytes por segundo - Dejar vacío para ilimitado.",
"shareThemeDescription": "El tema que se utilizará para los usuarios que accedan al recurso compartidos",
"notice": "Cuando se crea un recurso compartido, este quedará más expuesto al público y tendrá diferentes reglas de acceso. Si no está configurado de forma forma segura, cualquiera podrá acceder a él.",
"disableAnonymousDescription": "Cuando está activado, solo los usuarios registrados podrán acceder al recurso compartido.",
"disableThumbnailsDescription": "Las miniaturas de archivos, fotos, audios y videos no estarán activadas.",
"enableAllowedUsernamesDescription": "Cuando está activado, sólo usuarios especificados podrán acceder al recurso compartido. El usuario deberá tener acceso al origen del recurso compartido para poder entrar",
"downloadsLimitDescription": "Número máximo de veces que se puede descargar un archivo/carpeta del recurso compartido - Dejar en blanco para ilimitado.",
"maxBandwidthDescription": "Velocidad máxima de descarga en kilobytes por segundo (kb/s) - Dejar en blanco para ilimitado.",
"shareThemeDescription": "El tema que se usará para los usuarios que accedan al recurso compartidos",
"disableAnonymous": "Desactivar el acceso anónimo",
"disableThumbnails": "Desactivar miniaturas",
"enableAllowedUsernames": "Compartir sólo con usuarios registrados",
@@ -404,25 +404,25 @@
"hideNavButtonsDescription": "Oculta los botones de navegación en la parte superior, es útil si quieres crear un aspecto minimalista.",
"viewModeDescription": "Diseño por defecto de la página compartida.",
"descriptionDefault": "Han compartido esto contigo.",
"disableShareCard": "Desactivar código QR",
"disableShareCardDescription": "Desactiva el código QR en el panel lateral o en la parte superior de la página en móvil",
"disableShareCard": "Desactivar tarjeta de compartir",
"disableShareCardDescription": "Desactiva la tarjeta de compartir y el código QR en el panel lateral o en la parte superior de la página en móvil",
"disableSidebar": "Desactivar el panel lateral",
"disableSidebarDescription": "Desactivar el panel lateral en la página compartida.",
"disableFileViewer": "Desactivar visor de archivos",
"enforceDarkLightMode": "Tema",
"enforceDarkLightModeDescription": "Forzar un modo de tema específico (oscuro o claro) para el recurso compartido, anulando las preferencias del usuario.",
"enforceDarkLightModeDescription": "Forzar un tema (claro u oscuro) para el recurso compartido, anulando las preferencias del usuario - Ocultará el botón de cambio de tema",
"default": "Por defecto",
"dark": "Oscuro",
"light": "Claro",
"enableOnlyOffice": "Activar el visor de OnlyOffice",
"enableOnlyOfficeDescription": "Permitir la visualización de archivos de oficina utilizando OnlyOffice en este recurso compartido.",
"enableOnlyOfficeDescription": "Permitir la visualización de archivos Office usando OnlyOffice en este recurso compartido.",
"titleDefault": "{title}",
"defaultViewMode": "Modo de visualización",
"defaultViewModeDescription": "Establece el modo de visualización predeterminado para los usuarios anónimos que vean esta acción. Los usuarios registrados pueden cambiar su preferencia de visualización.",
"shareType": "Tipo de compartido",
"defaultViewMode": "Modo de vista",
"defaultViewModeDescription": "Establece el modo de vista predeterminada para los que accedan a este recurso compartido. Los usuarios que estén registrados podrán cambiar su modo de vista si ellos quieren",
"shareType": "Tipo de recurso compartido:",
"shareTypeDescription": "El tipo de recurso compartido que se va a crear. Los recursos compartidos normales permiten ver y descargar archivos. Los recursos compartidos de subida permiten subir archivos al recurso compartido.",
"normalShare": "Normal",
"uploadShare": "Solo subidas",
"uploadShare": "Solo subir archivos",
"perUserDownloadLimit": "Límitar descargas para cada usuario",
"perUserDownloadLimitDescription": "Cuando se activa, el límite de descargas se aplicará a cada usuario. Los usuarios anónimos no podrán descargar ningún archivo de este recurso compartido.",
"descriptionUploadDefault": "Te han compartido un enlace para que subas archivos",
@@ -431,18 +431,18 @@
"disableDownload": "Desactivar la descarga de archivos",
"disableDownloadDescription": "Nadie podrá descargar archivos ni ver su contenido.",
"allowModify": "Permitir la edición de archivos",
"allowModifyDescription": "Cualquiera puede editar archivos en este recurso compartido.",
"allowModifyDescription": "Cualquiera podrá editar archivos en este recurso compartido.",
"allowDelete": "Permitir la eliminación de archivos",
"allowDeleteDescription": "Cualquiera puede borrar archivos y carpetas de este recurso compartido.",
"allowDeleteDescription": "Cualquiera podrá borrar archivos y carpetas de este recurso compartido.",
"allowReplacements": "Permitir la sustitución de archivos",
"allowReplacementsDescription": "Cualquiera podrá reemplazar archivos existentes al subir archivos con el mismo nombre.",
"allowReplacementsDescription": "Cualquiera podrá reemplazar archivos existentes al subir/crear archivos con el mismo nombre.",
"allowCreate": "Permitir crear/subir archivos y carpetas",
"allowCreateDescription": "Cualquiera puede crear/subir nuevos archivos y carpetas en este recurso compartido.",
"customizeSidebarLinks": "Personalizar los enlaces de la barra lateral",
"customizeSidebarLinksButton": "Personalizar enlaces",
"shareInfo": "Compartir código QR e información",
"shareInfoDescription": "Este enlace muestra la información de la acción, incluido el título, la descripción, el banner y el código QR en una ventana emergente.",
"downloadDescription": "Este enlace permite descargar todo el contenido compartido como archivo comprimido."
"allowCreateDescription": "Cualquiera podrá crear/subir nuevos archivos y carpetas en este recurso compartido.",
"customizeSidebarLinks": "Personalizar los accesos directos del panel lateral",
"customizeSidebarLinksButton": "Personalizar accesos directos",
"shareInfo": "Código QR e información del archivo",
"shareInfoDescription": "Al abrir este acceso directo, mostrará la información del recurso compartido junto con un código QR",
"downloadDescription": "Este acceso directo permite descargar todo el recurso compartido como archivo comprimido."
},
"api": {
"title": "Gestión de claves API",
@@ -462,12 +462,12 @@
"expires": "Expira el:",
"actions": "Acciones",
"enabled": "Habilitado",
"disabled": "Deshabilitado",
"permissionNote": "Elije al menos un permiso - Tu usuario también debe tener ese permiso.",
"disabled": "Desactivado",
"permissionNote": "Debes de elegir al menos un permiso - Tu usuario también debe tenerlo.",
"createKeyFailed": "Hubo un error al crear la API",
"createKeySuccess": "¡Clave API creada con exito!",
"description": "Las claves API solo podrán tener los permisos que tu usuario tenga. Para más info mira la",
"apiKeyDeleted": "Clave API eliminada"
"apiKeyDeleted": "Clave API borrada"
},
"index": {
"assessment": "Tipo",
@@ -478,34 +478,34 @@
"toggleClick": "Abrir con un solo clic",
"toggleDark": "Activar modo oscuro",
"toggleSticky": "Cambiar visibilidad del panel lateral",
"noSources": "No hay fuentes disponibles. Añada una o active \"defaultEnabled: true\" en el archivo de configuración.",
"noSources": "No se encontró ninguna fuente. Añade una, o usa \"defaultEnabled: true\" en el archivo de configuración.",
"unknown": "Desconocido",
"simple": "Simple",
"normal": "Normal",
"complex": "Complejo",
"highlyComplex": "Alta complejidad",
"highlyComplex": "Muy complejo",
"ready": "Listo",
"indexing": "Indexación",
"indexing": "Escaneando",
"unavailable": "No disponible",
"error": "Error"
},
"otp": {
"name": "Autenticación de dos factores (2FA)",
"verifyInstructions": "Ingresa el código de autenticación",
"generate": "Escanear el código QR con la app de autenticación",
"generate": "Escanear el código QR con tú app de autenticación",
"codeInputPlaceholder": "Código de 6 dígitos",
"invalidCodeType": "Código inválido: debe ser de 6 dígitos",
"invalidCodeType": "Código inválido",
"enabledSuccessfully": "¡2FA activado!",
"verificationFailed": "Verificación fallida",
"verificationSucceed": "Verificación exitosa",
"generationFailed": "La generación del código falló"
"verificationFailed": "No se pudo autenticar",
"verificationSucceed": "¡Verificación exitosa!",
"generationFailed": "Hubo un error al generar el código"
},
"general": {
"name": "Nombre",
"path": "Ruta",
"path": "Ruta:",
"user": "Usuario",
"group": "Grupo",
"signup": "Regístrarse",
"signup": "Crear cuenta",
"password": "Contraseña",
"username": "Nombre de usuario",
"files": "Archivos",
@@ -517,32 +517,32 @@
"source": "Fuente{suffix}",
"percentage": "{percentage}%",
"type": "Tipo{suffix}",
"size": "Talla{suffix}",
"size": "Tamaño{suffix}",
"body": "Cuerpo{suffix}",
"home": "Inicio{suffix}",
"clear": "Claro{suffix}",
"clear": "Limpiar{suffix}",
"help": "Ayuda{suffix}",
"login": "Inicio de sesión{suffix}",
"logout": "Cierre de sesión{suffix}",
"login": "Iniciar sesión{suffix}",
"logout": "Cerrar sesión{suffix}",
"preview": "Vista previa{suffix}",
"settings": "Ajustes{suffix}",
"sources": "Fuentes{suffix}",
"links": "Enlaces{suffix}",
"links": "Accesos directos{suffix}",
"tool": "Herramienta{suffix}",
"used": "usado{suffix}",
"status": "Estado{suffix}",
"analyze": "Analice{suffix}",
"analyze": "Analizar{suffix}",
"results": "Resultados{suffix}",
"users": "Usuarios{suffix}",
"photos": "Fotos",
"audio": "Audio{suffix}",
"videos": "Vídeos{suffix}",
"documents": "Documentos{suffix}",
"archives": "Archivos{suffix}",
"archives": "Archivos comprimidos{suffix}",
"images": "Imágenes{suffix}",
"music": "Música{suffix}",
"pdf": "PDF{suffix}",
"search": "Buscar en{suffix}",
"search": "Buscar{suffix}",
"number": "Número{suffix}",
"types": "Tipos{suffix}",
"video": "Vídeo{suffix}",
@@ -552,22 +552,22 @@
"documentation": "documentación{suffix}",
"examples": "Ejemplos{suffix}",
"dark": "Oscuro{suffix}",
"light": "Luz{suffix}",
"light": "Claro{suffix}",
"title": "Tema{suffix}",
"expires": "Expira en{suffix}",
"scope": "Alcance{suffix}",
"rules": "Reglas{suffix}",
"downloads": "Descargas{suffix}",
"submit": "Inicio de sesión{suffix}",
"submit": "Aceptar{suffix}",
"navigation": "Navegación{suffix}",
"metadata": "Metadatos{suffix}",
"loading": "Cargando{suffix}",
"metadata": "Metadata{suffix}",
"loading": "Cargando...{suffix}",
"add": "Añadir{suffix}",
"cancel": "Cancelar{suffix}",
"verify": "Verifique{suffix}",
"verify": "Verificar{suffix}",
"close": "Cerrar{suffix}",
"copy": "Copia{suffix}",
"create": "Cree{suffix}",
"copy": "Copiar{suffix}",
"create": "Crear{suffix}",
"delete": "Borrar{suffix}",
"download": "Descargar{suffix}",
"file": "Archivo{suffix}",
@@ -577,65 +577,65 @@
"move": "Mover{suffix}",
"new": "Nuevo{suffix}",
"next": "Siguiente{suffix}",
"ok": "OK{suffix}",
"ok": "ok{suffix}",
"previous": "Anterior{suffix}",
"publish": "Publique{suffix}",
"rename": "Cambie el nombre de{suffix}",
"replace": "Sustituir{suffix}",
"publish": "Publicar{suffix}",
"rename": "Cambiar nombre{suffix}",
"replace": "Reemplazar{suffix}",
"save": "Guardar{suffix}",
"schedule": "Horario{suffix}",
"select": "Seleccione{suffix}",
"select": "Seleccionar{suffix}",
"share": "Compartir{suffix}",
"update": "Actualización{suffix}",
"upload": "Cargar{suffix}",
"openFile": "Abrir expediente{suffix}",
"continue": "Continúe en{suffix}",
"update": "Actualizar{suffix}",
"upload": "Subir Archivos{suffix}",
"openFile": "Abrir Archivo{suffix}",
"continue": "Continuar{suffix}",
"edit": "Editar{suffix}",
"pause": "Pausa{suffix}",
"resume": "Currículum{suffix}",
"pause": "Pausar{suffix}",
"resume": "Reanudar{suffix}",
"retry": "Reintentar{suffix}",
"disable": "Desactivar{suffix}",
"confirm": "Confirme{suffix}",
"stay": "Permanezca en{suffix}",
"scopes": "Visores{suffix}",
"confirm": "Confirmar{suffix}",
"stay": "Quedarme{suffix}",
"scopes": "Alcances{suffix}",
"commands": "Comandos{suffix}",
"uploading": "Cargar{suffix}",
"uploading": "Subiendo{suffix}",
"paused": "En pausa{suffix}",
"conflict": "Conflicto{suffix}",
"change": "Cambia{suffix}"
"change": "Cambiar{suffix}"
},
"access": {
"rules": "Normas de acceso",
"deny": "Denegar",
"deniedUsers": "Usuarios denegados",
"deniedGroups": "Grupos denegados",
"rules": "Reglas de acceso",
"deny": "Bloquear",
"deniedUsers": "Usuarios bloqueados",
"deniedGroups": "Grupos bloqueados",
"allowedUsers": "Usuarios permitidos",
"allowedGroups": "Grupos permitidos",
"allow": "Permitir",
"allowDeny": "Permitir/Denegar",
"allowDeny": "Permitir/Bloquear",
"userGroup": "Usuario/Grupo",
"enterName": "Escribe el nombre del usuario, o del grupo",
"enterName": "Escribe el nombre del usuario o grupo",
"deleted": "Regla de acceso eliminada",
"added": "Regla de acceso añadida",
"accessManagement": "Gestión de accesos",
"totalDenied": "Denegado",
"totalAllowed": "Permitido",
"all": "Denegar todo",
"defaultBehaviorDescription": "Muestra lo que ocurre cuando un usuario intenta acceder a una ruta en la que no existen reglas de acceso específicas -- \"Permitir\" significa que los usuarios pueden acceder (por defecto), \"Denegar\" significa que los usuarios están bloqueados (por defecto) a menos que se les permita explícitamente.",
"defaultBehavior": "Acción por defecto {suffix}",
"deletedCascade": "Reglas de acceso eliminadas de la ruta y de todas las sub-rutas.",
"cascadeDelete": "Supresión recursiva",
"cascadeDeleteDescription": "Cuando está activada, la eliminación de una regla de acceso también la eliminará de todos los subdirectorios. Esto permite eliminar completamente un usuario o grupo de todo el árbol de directorios."
"totalDenied": "Bloqueados",
"totalAllowed": "Permitidos",
"all": "Bloquear todo",
"defaultBehaviorDescription": "La regla por defecto para todos los directorios es \"Permitir\": todos los usuarios tienen acceso a todo a menos que especifiques una regla -- \"Denegar\" significa que los usuarios estarán bloqueados: No podrán acceder a esa carpeta(s) a menos que lo permitas especifcamente",
"defaultBehavior": "Regla por defecto {suffix}",
"deletedCascade": "Reglas de acceso eliminadas",
"cascadeDelete": "Eliminación en cascada",
"cascadeDeleteDescription": "Si eliminas una regla de acceso con esta opción, también la eliminará para todo el contenido (archivos y carpetas), lo cual nos permite eliminar por completo un usuario o grupo de todo el árbol de directorios"
},
"fileLoading": {
"title": "Subir archivos",
"maxConcurrentUpload": "Subidas a la vez",
"maxConcurrentUploadHelp": "El número máximo de archivos a subir a la vez. Los valores más altos suelen dar mejores resultados, pero esto depende de muchos factores",
"title": "Subida y Descarga",
"maxConcurrentUpload": "Archivos a subir a la vez",
"maxConcurrentUploadHelp": "El número máximo de archivos a subir a la vez -- Por ejemplo si el valor es 5 y subes 10 archivos, subirá los archivos de 5 en 5. Los valores más altos suelen ser mejores, pero depende de varios factores",
"uploadChunkSizeMb": "Velocidad de subida (en MB)",
"uploadChunkSizeMbHelp": "Típicamente 5 a 50 MB, más pequeño es mejor para conexiones inestables.",
"clearAll": "Hacer que \"Limpiar completados\" borre todo (incluyendo error, pausa y en conflicto)",
"clearAllDescription": "El botón de borrado de \"subidas completadas\" borrará todas los archivos subidos en todos los estados: Finalizado, error, pausa y conflicto.",
"uploadSettings": "Configuracion de subidas"
"uploadChunkSizeMbHelp": "Subida de archivos fragmentada o \"Chunked uploads\" en inglés - Lo que está opción hace es controlar la velocidad de subida en la que los fragmentos de archivo se subirán.",
"clearAll": "\"Limpiar completados\" debe borrar todo",
"clearAllDescription": "Hará que el botón de \"Limpiar completados\" en la ventana de subir archivos borre todos los estados: Finalizado, error, pausa y conflicto.",
"uploadSettings": "Opciones de subida"
},
"colors": {
"red": "Rojo",
@@ -653,7 +653,7 @@
"editorQuickSave": "Botón de guardado rápido en el editor",
"editorQuickSaveDescription": "El editor de texto mostrará siempre el icono de guardar, ocultando cualquier otra acción",
"previewOffice": "Mostrar miniaturas para los archivos de Office",
"previewOfficeDescription": "Mostrar miniaturas de los tipos de archivos de Office en el tipo de vista: Lista",
"previewOfficeDescription": "Mostrar miniaturas para los archivos de Office",
"disableThumbnailPreviews": "Desactivar miniaturas para las siguientes extensiones:",
"disableThumbnailPreviewsDescription": "Una lista (separada por espacios) de extensiones de archivo para desactivar la vista previa en las miniaturas (por ejemplo, '.txt .html').",
"disableViewingFiles": "Desactivar el visor/editor de archivos para las siguientes extensiones:",
@@ -682,7 +682,7 @@
"editOffice": "Ver y editar archivos de ofimática con OnlyOffice",
"editOfficeDescription": "Cuando está activado, el visor/editor de archivos estará desactivado para todas las extensiones de archivo relacionadas con archivos office, en vez, las abrirá en OnlyOffice.",
"popupPreview": "Vista previa emergente",
"popupPreviewDescription": "Se mostrará una ventana emergente superpuesta sobre la interfaz de usuario al pasar el ratón por encima de los archivos que tengan una miniatura",
"popupPreviewDescription": "Se mostrará una ventana emergente superpuesta sobre la interfaz de usuario al pasar el mouse por encima de los archivos que tengan una miniatura",
"filePreviewOptions": "Opciones de previsualización de archivos",
"disableUpdateNotifications": "Desactivar las notificaciones de actualización",
"disableUpdateNotificationsDescription": "Desactivar el banner de notificación de actualización que aparece para los usuarios administradores en el panel lateral.",
@@ -691,7 +691,7 @@
"disableQuickToggles": "Desactivar ajustes rápidos",
"disableQuickTogglesDescription": "Desactiva los ajustes rápidos que aparecen en el panel lateral. (cambiar tema, visibilidad del panel y modo de un solo click)",
"disableSearchOptions": "Desactivar las opciones de busqueda",
"disableFileExtensions": "Escribe aquí las extensiones para deshabilitar",
"disableFileExtensions": "Escribe aquí las extensiones para desactivar",
"disableSearchOptionsDescription": "Desactivar las opciones de busqueda que aparecen en el panel.",
"hideSidebarFileActions": "Ocultar el botón de acciones de archivo en el panel",
"deleteWithoutConfirming": "Eliminar archivos sin mensaje de confirmación",
@@ -708,10 +708,10 @@
"editor": {
"uninitialized": "Hubo un error al iniciar el editor",
"saveFailed": "No se ha podido guardar el archivo. Por favor, inténtelo de nuevo.",
"saveAborted": "No se ha podido guardar el archivo. El nombre del archivo no coincide con el que estás editando.",
"saveAbortedMessage": "Operación de guardado abortada. El archivo activo ({activeFile}) no coincide con el que estas intentando guardar ({tryingToSave}).",
"syncFailed": "No se ha podido sincronizar el estado con la ruta para \"{filename}\" después de 5 intentos - Se abortará la configuración del editor para evitar la corrupción de datos.",
"fileSaved": "¡Fichero guardado!",
"saveAborted": "No se ha podido guardar el archivo.",
"saveAbortedMessage": "No se ha podido guardar el archivo. El nombre del archivo \"{activeFile}\" no coincide con el que estas intentando guardar ({tryingToSave}).",
"syncFailed": "No se ha podido encontrar la ruta para \"{filename}\" después de 5 intentos - Se cerrará el editor para evitar la corrupción de datos.",
"fileSaved": "!Se guardo el archivo correctamente!",
"errorSavingFile": "Error al guardar el archivo: {error}"
},
"player": {
@@ -727,20 +727,20 @@
"emptyQueue": "La cola de reproducción está vacia..."
},
"fileSizeAnalyzer": {
"title": "Analizador de tamaño de archivos",
"title": "Analizador de archivos",
"searchLocation": "Buscar ubicación",
"selectPath": "Seleccione el lugar de búsqueda",
"largerThan": "Mayor que (MB)",
"selectPath": "Selecciona el lugar de búsqueda",
"largerThan": "Mayor que (en MB)",
"includeFolders": "Incluir carpetas",
"includeFoldersDescription": "Incluir directorios en el análisis",
"includeFoldersDescription": "Incluir carpetas en el análisis",
"totalFiles": "Archivos totales{suffix}",
"totalSize": "Tamaño total{suffix}",
"emptyState": "Introduzca los criterios de búsqueda y haga clic en Analizar para visualizar el tamaño de los archivos",
"completeResults": "Resultados completos",
"incompleteResults": "Los resultados pueden ser incompletos",
"incompleteResultsDetails": "Mostrando resultados máximos (100). Intenta restringir la búsqueda para obtener más resultados por debajo de 100.",
"emptyState": "Introduce los criterios de búsqueda y haz clic en \"Analizar\" para visualizar el tamaño de los archivos",
"completeResults": "Análisis completo",
"incompleteResults": "Los resultados podrían estar incompletos",
"incompleteResultsDetails": "Solo se mostraran 100 resultados como máximo. Intenta restringir la búsqueda para obtener mejores resultados",
"relativePercentage": "Porcentaje relativo{suffix}",
"percentageOfResults": "{percentage}% de resultados"
"percentageOfResults": "{percentage}% de los resultados"
},
"fileTypes": {
"video": "Vídeo",
@@ -753,65 +753,65 @@
"other": "Otros"
},
"tools": {
"description": "Utilidades y herramientas de análisis para sus archivos",
"description": "Utilidades y herramientas que te seŕan de ayuda",
"sizeAnalyzer": {
"name": "Analizador de tamaño de archivos",
"description": "Visualice archivos y directorios de gran tamaño con un mapa de árbol interactivo"
"name": "Analizador de archivos",
"description": "Encuentra que archivos y carpetas están ocupando más espacio en tu disco."
},
"title": "Herramientas",
"duplicateFinder": {
"name": "Buscador de archivos duplicados",
"description": "Encuentre y gestione los archivos duplicados para recuperar espacio de almacenamiento"
"description": "Encuentra y gestiona archivos duplicados para recuperar espacio."
},
"materialIconPicker": {
"name": "Icono de selección de material",
"description": "Navega y busca Material Icons con vista previa en directo",
"name": "Material Icons",
"description": "¡Explora y descubre Iconos de la colección Material Icons!",
"searchPlaceholder": "Buscar iconos...",
"popularIcons": "Mostrar {count} iconos populares",
"showingResults": "Mostrando resultados de {count} ",
"noResults": "No se han encontrado iconos",
"tryDifferentSearch": "Pruebe con otro término de búsqueda",
"copiedToClipboard": "¡Copiado '{name}' al portapapeles!",
"copyFailed": "Error al copiar al portapapeles",
"custom": "A medida",
"popularIcons": "Mostrando {count} iconos populares",
"showingResults": "Se encontraron {count} iconos",
"noResults": "No se pudieorn encontrar iconos",
"tryDifferentSearch": "Prueba con otro nombre",
"copiedToClipboard": "¡Se copió '{name}' al portapapeles!",
"copyFailed": "Hubo un error al copiar al portapapeles",
"custom": "Personalizar",
"useCustomIcon": "Utilizar icono personalizado: {name}",
"iconLibraryUrl": "fonts.google.com/icons",
"browseFullLibrary": "Explorar la biblioteca completa de iconos"
"browseFullLibrary": "Mira la la colección completa aqui"
},
"toolNotFound": "Herramienta no encontrada",
"toolNotFound": "No se encontró la herramienta",
"backToTools": "Volver a Herramientas"
},
"messages": {
"pathNotFound": "La ruta no existe en el sistema de archivos",
"pathNotFoundMessage": "La ruta para esto ya no existe en el sistema de archivos. Puede que se haya movido o borrado.",
"pathNotFound": "La ruta no se encuentra en el sistema de archivos",
"pathNotFoundMessage": "La ruta ya no existe en el sistema de archivos. Quizá fue movida o borrada",
"reassignPath": "Reasignar ruta",
"pathReassigned": "¡Ruta actualizada correctamente!",
"pathReassignFailed": "No se ha podido actualizar la ruta. Inténtelo de nuevo."
"pathReassigned": "¡La ruta se actualizó correctamente!",
"pathReassignFailed": "No se ha podido actualizar la ruta. Inténtalo de nuevo"
},
"duplicateFinder": {
"title": "Buscador de archivos duplicados",
"minSize": "Tamaño mínimo (MB){suffix}",
"minSizeHint": "Analizar sólo archivos mayores que este tamaño (en megabytes)",
"minSize": "Tamaño mínimo (en MB){suffix}",
"minSizeHint": "Solo analizar archivos que sean mayores que ese tamaño",
"useChecksums": "Comparar el contenido de los archivos",
"useChecksumsDescription": "Incluya también el contenido del archivo en la comparación. Sin esto, los archivos se comparan por tamaño y similitud de nombre.",
"useChecksumsDescription": "También incluir el contenido de los archivos en la comparación. Si no, los archivos se compararán solamente nombre y tmanaño",
"findDuplicates": "Buscar duplicados",
"groupsFound": "Grupos duplicados encontrados{suffix}",
"totalWastedSpace": "Espacio total desperdiciado{suffix}",
"groupsFound": "Grupos de duplicados{suffix}",
"totalWastedSpace": "Espacio desperdiciado{suffix}",
"wasted": "Desperdiciado{suffix}",
"emptyState": "Introduzca los criterios de búsqueda y haga clic en Buscar duplicados para identificar los archivos duplicados."
"emptyState": "Introduce los criterios de búsqueda y haz clic en \"Buscar duplicados\" para encontrar que archivos pueden estar gastando espacio."
},
"notifications": {
"title": "Notificaciones",
"description": "Ver todas las notificaciones de la sesión actual",
"empty": "Aún no hay notificaciones",
"description": "Aquí verás todas las notificaciones de tu sesión actual",
"empty": "Aún no tienes notificaciones",
"clearAll": "Borrar todo",
"clearConfirm": "¿Estás seguro de que quieres borrar todo el historial de notificaciones?",
"total": "{count} notificaciones"
},
"events": {
"serverShutdown": "El servidor se ha apagado.",
"authenticationFailed": "Error de autenticación. Actualice la página para volver a iniciar sesión.",
"reconnected": "Reconectado al servidor.",
"connectionLost": "Se ha perdido la conexión con el servidor. Intentando reconectar..."
"serverShutdown": "El servidor fúe apagado",
"authenticationFailed": "Hubo un error de autenticación - Actualiza la página y vuelve a iniciar sesión",
"reconnected": "!Se reconecto con el servidor!",
"connectionLost": "Se perdió la conexión con el servidor. Intentando reconectar..."
}
}