feat(nextcloud-files): Dateiansicht mit Ablage-Kacheln, Ziehen und Ablegen und Übertragungsleiste

- Liste als echte Dateitabelle und Raster mit Vorschaubildern; Typkacheln je Dateifamilie (OKLCH-Tokens, Kontrast hell und dunkel per Test geprüft), Ordner im gedämpften Mosaik-Gelb
- Ordnerpfad mit Ablagezielen, Auswahlleiste (klebt beim Scrollen), Tastatur (Enter, Rücktaste/Alt+Pfeil hoch, Entf, F2, Strg+A, Escape), Zeilen- und Rechtsklickmenü
- Dialoge für neuen Ordner, Umbenennen, Verschieben (eigene Ordnerwahl) und Löschen in den Papierkorb
- Ziehen und Ablegen mit Streifen-Markierung und Ordnerzeilen als Ziel, auch ganze Ordner; Übertragungsleiste mit Fortschritt, Abbrechen, Klartextfehlern und Rückfrage bei vergebenem Namen
- Speicheranzeige zählt im Unterordner den Speicher des ganzen Kontos; Ansicht je Benutzer gemerkt

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-10-08 21:43:46 +02:00
parent 4d4a0b31cb
commit 86fbe8f396
35 changed files with 5575 additions and 11 deletions
+163 -3
View File
@@ -2334,9 +2334,6 @@
"userHint": "Please contact an administrator or someone with the Manage permission level.",
"goToSettings": "Go to settings"
},
"main": {
"server": "Nextcloud: {host}"
},
"connect": {
"title": "Connect to Nextcloud",
"expiredNotice": "Your connection to Nextcloud has expired or was revoked in Nextcloud. Please sign in again.",
@@ -2407,6 +2404,169 @@
"trustedDomains": "The host name of the address has to be listed in the trusted domains (trusted_domains) of Nextcloud.",
"twoFactor": "Users with two-factor authentication connect through the browser; signing in with a password is not enough for them."
}
},
"browser": {
"rootName": "All files",
"regionLabel": "Files",
"breadcrumb": {
"label": "Folder path",
"more": "More folders"
},
"toolbar": {
"newFolder": "New folder",
"upload": "Upload",
"view": "View",
"viewList": "List",
"viewGrid": "Grid",
"sortBy": "Sort by",
"sortAscending": "Ascending",
"sortDescending": "Descending",
"reload": "Reload"
},
"sort": {
"name": "Name",
"size": "Size",
"modified": "Modified"
},
"columns": {
"name": "Name",
"size": "Size",
"modified": "Modified",
"actions": "Actions",
"selectAll": "Select all",
"select": "Select “{name}”"
},
"selection": {
"count": "{count} selected",
"download": "Download",
"move": "Move",
"delete": "Delete",
"clear": "Clear selection"
},
"menu": {
"label": "Actions for “{name}”",
"open": "Open",
"download": "Download",
"downloadZip": "Download as ZIP",
"rename": "Rename",
"move": "Move",
"openInNextcloud": "Open in Nextcloud",
"delete": "Delete"
},
"empty": {
"title": "This folder is empty.",
"hint": "Drag files here or upload them."
},
"loading": "Loading folder …",
"folderSize": "Folder",
"unreachable": "Nextcloud cannot be reached right now.",
"unreachableHint": "Check that Nextcloud is running, then try again.",
"retry": "Try again",
"folderGone": "The folder no longer exists. You are back at all files.",
"locked": "Nextcloud is temporarily blocking requests from the Tessera server. Please try again in {minutes, plural, one {# minute} other {# minutes}}.",
"truncated": "Showing the first 5000 entries.",
"count": "{count, plural, =0 {No items} one {# item} other {# items}}",
"quota": {
"label": "Storage",
"ofTotal": "{used} of {total} used",
"usedOnly": "{used} used"
},
"drop": {
"target": "Drop into “{name}”",
"hint": "Folders are uploaded with their contents.",
"tooMany": "Too many files at once. Drop at most 2000 files in one go.",
"tooDeep": "The folders are nested too deeply. More than 20 levels cannot be dropped.",
"unreadable": "The dropped files could not be read. Please try again."
},
"status": {
"deleted": "{count, plural, one {“{name}” is in the trash.} other {# items moved to the trash.}}",
"moved": "{count, plural, one {“{name}” moved to “{target}”.} other {# items moved to “{target}”.}}",
"renamed": "Renamed to “{name}”.",
"folderCreated": "Folder “{name}” created.",
"failed": "{failed, plural, one {One item could not be processed} other {# items could not be processed}}: {reason}"
}
},
"dialogs": {
"cancel": "Cancel",
"close": "Close",
"newFolder": {
"title": "New folder",
"label": "Folder name",
"submit": "Create",
"defaultName": "New folder"
},
"rename": {
"title": "Rename",
"label": "New name",
"submit": "Rename"
},
"busy": "One moment …",
"nameProblems": {
"empty": "Please enter a name.",
"dots": "“.” and “..” are not allowed as a name.",
"slash": "The name must not contain a slash.",
"part": "Nextcloud uses names ending in “.part” itself. Please choose another one.",
"tooLong": "The name is too long. At most 250 characters are allowed."
},
"move": {
"title": "{count, plural, one {Move “{name}”} other {Move # items}}",
"hint": "Choose the folder to move to.",
"submit": "Move here",
"noFolders": "There are no subfolders here.",
"sameFolder": "The selection is already in this folder.",
"intoItself": "A folder cannot be moved into itself.",
"openFolder": "Open folder “{name}”"
},
"delete": {
"titleOne": "Delete “{name}”?",
"titleMany": "Delete {count} items?",
"body": "The items go to the trash of your Nextcloud and can be restored there.",
"confirm": "Move to trash"
}
},
"transfers": {
"title": "Transfers",
"active": "{count, plural, one {# running} other {# running}}",
"allDone": "All done",
"waiting": "{count, plural, one {# question open} other {# questions open}}",
"failed": "{count, plural, one {# failed} other {# failed}}",
"collapse": "Collapse transfers",
"expand": "Expand transfers",
"clearFinished": "Remove finished",
"progress": "{loaded} of {total}",
"queued": "Waiting",
"assembling": "Nextcloud is assembling the file …",
"done": "Uploaded",
"skipped": "Skipped",
"cancel": "Cancel",
"cancelLabel": "Cancel uploading “{name}”",
"retry": "Try again",
"target": "Destination: {folder}",
"conflict": {
"text": "“{name}” already exists in the folder.",
"replace": "Replace",
"keepBoth": "Keep both",
"skip": "Skip"
}
},
"codes": {
"lengthRequired": "The size of the file could not be determined. Please try again.",
"chunkTooLarge": "A part of the file was too large. Please reload the page and try again.",
"fileTooLarge": "The file is larger than Nextcloud accepts.",
"changedMeanwhile": "The file was changed in Nextcloud in the meantime. Try again to decide anew.",
"nameTaken": "An item with this name already exists.",
"quotaExceeded": "Not enough storage in your Nextcloud.",
"quotaExceededFree": "Not enough storage in your Nextcloud. {free} are still free.",
"nextcloudLocked": "Nextcloud is temporarily blocking requests from the Tessera server. Please try again in {minutes, plural, one {# minute} other {# minutes}}.",
"connectionExpired": "The connection to Nextcloud has expired. Please sign in again.",
"aborted": "Cancelled.",
"network": "The connection was interrupted. Please check your network and try again.",
"notFound": "The item no longer exists.",
"moveIntoItself": "A folder cannot be moved into itself.",
"invalidName": "This name is not allowed.",
"invalidPath": "This name is not allowed.",
"nextcloudUnavailable": "Nextcloud cannot be reached or does not respond in time.",
"generic": "That did not work. Please try again."
}
}
}