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": "Bitte wenden Sie sich an einen Administrator oder an jemanden mit der Freigabestufe Verwalten.",
"goToSettings": "Zu den Einstellungen"
},
"main": {
"server": "Nextcloud: {host}"
},
"connect": {
"title": "Mit Nextcloud verbinden",
"expiredNotice": "Ihre Verbindung zu Nextcloud ist abgelaufen oder wurde in Nextcloud widerrufen. Bitte melden Sie sich neu an.",
@@ -2407,6 +2404,169 @@
"trustedDomains": "Der Rechnername der Adresse muss in den vertrauenswürdigen Domains (trusted_domains) der Nextcloud stehen.",
"twoFactor": "Benutzer mit Zwei-Faktor-Anmeldung verbinden sich über den Browser, die Anmeldung mit Passwort genügt für sie nicht."
}
},
"browser": {
"rootName": "Alle Dateien",
"regionLabel": "Dateien",
"breadcrumb": {
"label": "Ordnerpfad",
"more": "Weitere Ordner"
},
"toolbar": {
"newFolder": "Neuer Ordner",
"upload": "Hochladen",
"view": "Ansicht",
"viewList": "Liste",
"viewGrid": "Raster",
"sortBy": "Sortieren nach",
"sortAscending": "Aufsteigend",
"sortDescending": "Absteigend",
"reload": "Neu laden"
},
"sort": {
"name": "Name",
"size": "Größe",
"modified": "Geändert"
},
"columns": {
"name": "Name",
"size": "Größe",
"modified": "Geändert",
"actions": "Aktionen",
"selectAll": "Alle auswählen",
"select": "„{name}“ auswählen"
},
"selection": {
"count": "{count} ausgewählt",
"download": "Herunterladen",
"move": "Verschieben",
"delete": "Löschen",
"clear": "Auswahl aufheben"
},
"menu": {
"label": "Aktionen für „{name}“",
"open": "Öffnen",
"download": "Herunterladen",
"downloadZip": "Als ZIP herunterladen",
"rename": "Umbenennen",
"move": "Verschieben",
"openInNextcloud": "In Nextcloud öffnen",
"delete": "Löschen"
},
"empty": {
"title": "Dieser Ordner ist leer.",
"hint": "Dateien hierher ziehen oder hochladen."
},
"loading": "Ordner wird geladen …",
"folderSize": "Ordner",
"unreachable": "Nextcloud ist gerade nicht erreichbar.",
"unreachableHint": "Prüfen Sie, ob die Nextcloud läuft, und versuchen Sie es dann erneut.",
"retry": "Erneut versuchen",
"folderGone": "Der Ordner existiert nicht mehr. Sie sehen wieder alle Dateien.",
"locked": "Nextcloud sperrt Anfragen vom Tessera-Server vorübergehend. Bitte versuchen Sie es in {minutes, plural, one {# Minute} other {# Minuten}} erneut.",
"truncated": "Es werden die ersten 5000 Einträge angezeigt.",
"count": "{count, plural, =0 {Keine Elemente} one {# Element} other {# Elemente}}",
"quota": {
"label": "Speicherplatz",
"ofTotal": "{used} von {total} belegt",
"usedOnly": "{used} belegt"
},
"drop": {
"target": "In „{name}“ ablegen",
"hint": "Ordner werden mit ihrem Inhalt übernommen.",
"tooMany": "Zu viele Dateien auf einmal. Legen Sie höchstens 2000 Dateien in einem Schritt ab.",
"tooDeep": "Die Ordner sind zu tief verschachtelt. Mehr als 20 Ebenen lassen sich nicht ablegen.",
"unreadable": "Die abgelegten Dateien ließen sich nicht lesen. Bitte versuchen Sie es erneut."
},
"status": {
"deleted": "{count, plural, one {„{name}“ ist im Papierkorb.} other {# Elemente in den Papierkorb verschoben.}}",
"moved": "{count, plural, one {„{name}“ nach „{target}“ verschoben.} other {# Elemente nach „{target}“ verschoben.}}",
"renamed": "Umbenannt in „{name}“.",
"folderCreated": "Ordner „{name}“ angelegt.",
"failed": "{failed, plural, one {Ein Element ließ sich nicht verarbeiten} other {# Elemente ließen sich nicht verarbeiten}}: {reason}"
}
},
"dialogs": {
"cancel": "Abbrechen",
"close": "Schließen",
"newFolder": {
"title": "Neuer Ordner",
"label": "Name des Ordners",
"submit": "Anlegen",
"defaultName": "Neuer Ordner"
},
"rename": {
"title": "Umbenennen",
"label": "Neuer Name",
"submit": "Umbenennen"
},
"busy": "Einen Moment …",
"nameProblems": {
"empty": "Bitte geben Sie einen Namen ein.",
"dots": "„.“ und „..“ sind als Name nicht erlaubt.",
"slash": "Der Name darf keinen Schrägstrich enthalten.",
"part": "Namen mit der Endung „.part“ verwendet Nextcloud selbst. Bitte wählen Sie einen anderen.",
"tooLong": "Der Name ist zu lang. Erlaubt sind höchstens 250 Zeichen."
},
"move": {
"title": "{count, plural, one {„{name}“ verschieben} other {# Elemente verschieben}}",
"hint": "Wählen Sie den Ordner, in den verschoben werden soll.",
"submit": "Hierher verschieben",
"noFolders": "Hier gibt es keine Unterordner.",
"sameFolder": "Die Auswahl liegt bereits in diesem Ordner.",
"intoItself": "Ein Ordner lässt sich nicht in sich selbst verschieben.",
"openFolder": "Ordner „{name}“ öffnen"
},
"delete": {
"titleOne": "„{name}“ löschen?",
"titleMany": "{count} Elemente löschen?",
"body": "Die Einträge kommen in den Papierkorb Ihrer Nextcloud und lassen sich dort wiederherstellen.",
"confirm": "In den Papierkorb verschieben"
}
},
"transfers": {
"title": "Übertragungen",
"active": "{count, plural, one {# läuft} other {# laufen}}",
"allDone": "Alles erledigt",
"waiting": "{count, plural, one {# Rückfrage offen} other {# Rückfragen offen}}",
"failed": "{count, plural, one {# fehlgeschlagen} other {# fehlgeschlagen}}",
"collapse": "Übertragungen einklappen",
"expand": "Übertragungen ausklappen",
"clearFinished": "Erledigte entfernen",
"progress": "{loaded} von {total}",
"queued": "Wartet",
"assembling": "Nextcloud setzt die Datei zusammen …",
"done": "Hochgeladen",
"skipped": "Übersprungen",
"cancel": "Abbrechen",
"cancelLabel": "Hochladen von „{name}“ abbrechen",
"retry": "Erneut versuchen",
"target": "Ziel: {folder}",
"conflict": {
"text": "Im Ordner gibt es „{name}“ schon.",
"replace": "Ersetzen",
"keepBoth": "Beide behalten",
"skip": "Überspringen"
}
},
"codes": {
"lengthRequired": "Die Größe der Datei ließ sich nicht bestimmen. Bitte versuchen Sie es erneut.",
"chunkTooLarge": "Ein Teilstück der Datei war zu groß. Bitte laden Sie die Seite neu und versuchen Sie es erneut.",
"fileTooLarge": "Die Datei ist größer, als die Nextcloud annimmt.",
"changedMeanwhile": "Die Datei wurde inzwischen in der Nextcloud geändert. Versuchen Sie es erneut, um neu zu entscheiden.",
"nameTaken": "Ein Eintrag mit diesem Namen existiert bereits.",
"quotaExceeded": "Nicht genug Speicherplatz in Ihrer Nextcloud.",
"quotaExceededFree": "Nicht genug Speicherplatz in Ihrer Nextcloud. Frei sind noch {free}.",
"nextcloudLocked": "Nextcloud sperrt Anfragen vom Tessera-Server vorübergehend. Bitte versuchen Sie es in {minutes, plural, one {# Minute} other {# Minuten}} erneut.",
"connectionExpired": "Die Verbindung zu Nextcloud ist abgelaufen. Bitte melden Sie sich neu an.",
"aborted": "Abgebrochen.",
"network": "Die Verbindung wurde unterbrochen. Bitte prüfen Sie Ihr Netzwerk und versuchen Sie es erneut.",
"notFound": "Der Eintrag existiert nicht mehr.",
"moveIntoItself": "Ein Ordner lässt sich nicht in sich selbst verschieben.",
"invalidName": "Dieser Name ist nicht erlaubt.",
"invalidPath": "Dieser Name ist nicht erlaubt.",
"nextcloudUnavailable": "Nextcloud ist nicht erreichbar oder antwortet nicht rechtzeitig.",
"generic": "Das hat nicht geklappt. Bitte versuchen Sie es erneut."
}
}
}