fix(gui,cli): count what a folder's first scan has checked (#46)

The first pass over a synced folder has no baseline to estimate from, so
its scan showed only "checking for changes…" in the app and "scanning…"
in `pdfs sync list`. For a large folder that scan reads every item on
Proton Drive before anything downloads, which takes many minutes and
looked stuck. Both now show how many items the scan has checked so far.
This commit is contained in:
nvrl committed 2026-10-26 22:28:46 +01:00
1 parent a5acae41b3
commit 0e7ffe1261
12 files changed
+833 -687

No files matched your search

+87 -76
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-26 17:16+0100\n"
"POT-Creation-Date: 2026-10-26 22:26+0100\n"
"PO-Revision-Date: 2026-09-23 12:00+0200\n"
"Last-Translator: Proton Drive for Linux contributors\n"
"Language-Team: German\n"
@@ -249,13 +249,13 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/browser.rs:1917
#: crates/pdfs-gui/src/app/pages/browser.rs:2039
#: crates/pdfs-gui/src/app/pages/browser.rs:2540
#: crates/pdfs-gui/src/app/pages/devices.rs:796
#: crates/pdfs-gui/src/app/pages/devices.rs:949
#: crates/pdfs-gui/src/app/pages/devices.rs:987
#: crates/pdfs-gui/src/app/pages/devices.rs:1039
#: crates/pdfs-gui/src/app/pages/devices.rs:1083
#: crates/pdfs-gui/src/app/pages/devices.rs:1123
#: crates/pdfs-gui/src/app/pages/devices.rs:1186
#: crates/pdfs-gui/src/app/pages/devices.rs:804
#: crates/pdfs-gui/src/app/pages/devices.rs:957
#: crates/pdfs-gui/src/app/pages/devices.rs:995
#: crates/pdfs-gui/src/app/pages/devices.rs:1047
#: crates/pdfs-gui/src/app/pages/devices.rs:1091
#: crates/pdfs-gui/src/app/pages/devices.rs:1131
#: crates/pdfs-gui/src/app/pages/devices.rs:1194
#: crates/pdfs-gui/src/app/pages/locations.rs:850
#: crates/pdfs-gui/src/app/pages/locations.rs:1054
#: crates/pdfs-gui/src/app/pages/locations.rs:1537
@@ -350,7 +350,7 @@ msgstr "Raster / Liste"
#: crates/pdfs-gui/src/app/pages/albums.rs:298
#: crates/pdfs-gui/src/app/pages/browser.rs:1896
#: crates/pdfs-gui/src/app/pages/browser.rs:1918
#: crates/pdfs-gui/src/app/pages/devices.rs:988
#: crates/pdfs-gui/src/app/pages/devices.rs:996
#: crates/pdfs-gui/src/app/widgets/details.rs:161
msgid "Rename"
msgstr "Umbenennen"
@@ -682,7 +682,7 @@ msgid "Couldn't add a sync folder"
msgstr "Synchronisierungsordner konnte nicht hinzugefügt werden"
#: crates/pdfs-gui/src/app/pages/activity_text.rs:58
#: crates/pdfs-gui/src/app/pages/devices.rs:831
#: crates/pdfs-gui/src/app/pages/devices.rs:839
msgid "Couldn't restore folders"
msgstr "Ordner konnten nicht wiederhergestellt werden"
@@ -1274,12 +1274,12 @@ msgstr "Alben konnten nicht geladen werden"
#: crates/pdfs-gui/src/app/pages/browser.rs:1873
#: crates/pdfs-gui/src/app/pages/browser.rs:2500
#: crates/pdfs-gui/src/app/pages/browser.rs:2650
#: crates/pdfs-gui/src/app/pages/devices.rs:699
#: crates/pdfs-gui/src/app/pages/devices.rs:739
#: crates/pdfs-gui/src/app/pages/devices.rs:892
#: crates/pdfs-gui/src/app/pages/devices.rs:1162
#: crates/pdfs-gui/src/app/pages/devices.rs:1223
#: crates/pdfs-gui/src/app/pages/devices.rs:1252
#: crates/pdfs-gui/src/app/pages/devices.rs:707
#: crates/pdfs-gui/src/app/pages/devices.rs:747
#: crates/pdfs-gui/src/app/pages/devices.rs:900
#: crates/pdfs-gui/src/app/pages/devices.rs:1170
#: crates/pdfs-gui/src/app/pages/devices.rs:1231
#: crates/pdfs-gui/src/app/pages/devices.rs:1260
#: crates/pdfs-gui/src/app/pages/duplicates.rs:221
#: crates/pdfs-gui/src/app/pages/locations.rs:577
#: crates/pdfs-gui/src/app/pages/locations.rs:824
@@ -1929,7 +1929,7 @@ msgid "{status}. {message}"
msgstr "{status}. {message}"
#: crates/pdfs-gui/src/app/pages/browser.rs:1900
#: crates/pdfs-gui/src/app/pages/devices.rs:981
#: crates/pdfs-gui/src/app/pages/devices.rs:989
msgid "New name"
msgstr "Neuer Name"
@@ -1954,7 +1954,7 @@ msgstr "Den Zielordner auswählen."
#: crates/pdfs-gui/src/app/pages/browser.rs:1989
#: crates/pdfs-gui/src/app/pages/browser.rs:1994
#: crates/pdfs-gui/src/app/pages/devices.rs:1187
#: crates/pdfs-gui/src/app/pages/devices.rs:1195
msgid "Move Here"
msgstr "Hierher verschieben"
@@ -2302,46 +2302,53 @@ msgstr "erfordert Aufmerksamkeit"
msgid "up to date"
msgstr "aktuell"
#: crates/pdfs-gui/src/app/pages/devices.rs:634
#: crates/pdfs-gui/src/app/pages/devices.rs:632
msgid "checking for changes…"
msgstr "wird auf Änderungen geprüft …"
#: crates/pdfs-gui/src/app/pages/devices.rs:637
#: crates/pdfs-gui/src/app/pages/devices.rs:638
#, rust-format
msgid "checking for changes — {n} item checked"
msgid_plural "checking for changes — {n} items checked"
msgstr[0] "wird auf Änderungen geprüft – {n} Element geprüft"
msgstr[1] "wird auf Änderungen geprüft – {n} Elemente geprüft"
#: crates/pdfs-gui/src/app/pages/devices.rs:645
#, rust-format
msgid "checking for changes — {done} of {total}"
msgstr "wird auf Änderungen geprüft – {done} von {total}"
#: crates/pdfs-gui/src/app/pages/devices.rs:649
#: crates/pdfs-gui/src/app/pages/devices.rs:657
#, rust-format
msgid "syncing {done} of {total}"
msgstr "{done} von {total} wird synchronisiert"
#: crates/pdfs-gui/src/app/pages/devices.rs:655
#: crates/pdfs-gui/src/app/pages/devices.rs:663
#, rust-format
msgid "syncing {file} — {done} of {total}"
msgstr "{file} wird synchronisiert – {done} von {total}"
#: crates/pdfs-gui/src/app/pages/devices.rs:667
#: crates/pdfs-gui/src/app/pages/devices.rs:675
msgid "Add Folder to Sync"
msgstr "Ordner zur Synchronisierung hinzufügen"
#: crates/pdfs-gui/src/app/pages/devices.rs:691
#: crates/pdfs-gui/src/app/pages/devices.rs:699
#: crates/pdfs-gui/src/app/pages/locations.rs:1559
#: crates/pdfs-gui/src/app/pages/locations.rs:1686
msgid "Syncing folder…"
msgstr "Ordner wird synchronisiert …"
#: crates/pdfs-gui/src/app/pages/devices.rs:694
#: crates/pdfs-gui/src/app/pages/devices.rs:698
#: crates/pdfs-gui/src/app/pages/devices.rs:702
#: crates/pdfs-gui/src/app/pages/devices.rs:706
msgid "Couldn't add folder"
msgstr "Ordner konnte nicht hinzugefügt werden"
#: crates/pdfs-gui/src/app/pages/devices.rs:732
#: crates/pdfs-gui/src/app/pages/devices.rs:738
#: crates/pdfs-gui/src/app/pages/devices.rs:740
#: crates/pdfs-gui/src/app/pages/devices.rs:746
msgid "Couldn't list folders to restore"
msgstr "Wiederherstellbare Ordner konnten nicht aufgelistet werden"
#: crates/pdfs-gui/src/app/pages/devices.rs:764
#: crates/pdfs-gui/src/app/pages/devices.rs:772
msgid ""
"Tick the folders to sync to this machine, and adjust where each one should "
"live."
@@ -2349,19 +2356,19 @@ msgstr ""
"Die Ordner ankreuzen, die mit diesem Rechner synchronisiert werden sollen, "
"und für jeden den Speicherort anpassen."
#: crates/pdfs-gui/src/app/pages/devices.rs:790
#: crates/pdfs-gui/src/app/pages/devices.rs:798
msgid "Restore Folders"
msgstr "Ordner wiederherstellen"
#: crates/pdfs-gui/src/app/pages/devices.rs:797
#: crates/pdfs-gui/src/app/pages/devices.rs:805
msgid "Restore"
msgstr "Wiederherstellen"
#: crates/pdfs-gui/src/app/pages/devices.rs:830
#: crates/pdfs-gui/src/app/pages/devices.rs:838
msgid "Restoring folders…"
msgstr "Ordner werden wiederhergestellt …"
#: crates/pdfs-gui/src/app/pages/devices.rs:842
#: crates/pdfs-gui/src/app/pages/devices.rs:850
#, rust-format
msgid ""
"These folders are backed up from “{name}”. Restored folders keep syncing "
@@ -2370,37 +2377,37 @@ msgstr ""
"Diese Ordner werden von „{name}“ gesichert. Wiederhergestellte Ordner werden "
"weiterhin mit der Kopie dieses Computers synchronisiert."
#: crates/pdfs-gui/src/app/pages/devices.rs:845
#: crates/pdfs-gui/src/app/pages/devices.rs:853
msgid "These folders are backed up under this computer in Proton Drive."
msgstr "Diese Ordner werden in Proton Drive unter diesem Computer gesichert."
#: crates/pdfs-gui/src/app/pages/devices.rs:854
#: crates/pdfs-gui/src/app/pages/devices.rs:862
#, rust-format
msgid "Nothing to restore — “{name}”'s folders are all synced here."
msgstr ""
"Nichts wiederherzustellen – alle Ordner von „{name}“ werden bereits hier "
"synchronisiert."
#: crates/pdfs-gui/src/app/pages/devices.rs:857
#: crates/pdfs-gui/src/app/pages/devices.rs:865
msgid "Nothing to restore — this computer's folders are all synced here."
msgstr ""
"Nichts wiederherzustellen – alle Ordner dieses Computers werden bereits hier "
"synchronisiert."
#: crates/pdfs-gui/src/app/pages/devices.rs:881
#: crates/pdfs-gui/src/app/pages/devices.rs:889
msgid "Folder will switch to online only"
msgstr "Ordner wird auf „Nur online“ umgestellt"
#: crates/pdfs-gui/src/app/pages/devices.rs:883
#: crates/pdfs-gui/src/app/pages/devices.rs:891
msgid "Folder will download and stay synced"
msgstr "Ordner wird heruntergeladen und bleibt synchronisiert"
#: crates/pdfs-gui/src/app/pages/devices.rs:887
#: crates/pdfs-gui/src/app/pages/devices.rs:891
#: crates/pdfs-gui/src/app/pages/devices.rs:895
#: crates/pdfs-gui/src/app/pages/devices.rs:899
msgid "Couldn't change mode"
msgstr "Modus konnte nicht geändert werden"
#: crates/pdfs-gui/src/app/pages/devices.rs:923
#: crates/pdfs-gui/src/app/pages/devices.rs:931
#, rust-format
msgid ""
"Stop syncing “{path}”?\n"
@@ -2418,7 +2425,7 @@ msgstr ""
"Ordner auf „Synchronisiert“ umstellen und vor dem Entfernen warten, bis der "
"Download abgeschlossen ist."
#: crates/pdfs-gui/src/app/pages/devices.rs:929
#: crates/pdfs-gui/src/app/pages/devices.rs:937
#, rust-format
msgid ""
"Stop syncing “{path}”?\n"
@@ -2432,68 +2439,68 @@ msgstr ""
"mehr synchronisiert. Es kann zusätzlich ausgewählt werden, die Kopie in "
"Proton Drive zu löschen."
#: crates/pdfs-gui/src/app/pages/devices.rs:934
#: crates/pdfs-gui/src/app/pages/devices.rs:942
msgid "Stop Syncing Folder?"
msgstr "Synchronisierung des Ordners beenden?"
#: crates/pdfs-gui/src/app/pages/devices.rs:939
#: crates/pdfs-gui/src/app/pages/devices.rs:947
msgid "Also delete from Proton Drive"
msgstr "Auch aus Proton Drive löschen"
#: crates/pdfs-gui/src/app/pages/devices.rs:941
#: crates/pdfs-gui/src/app/pages/devices.rs:949
msgid "Deletes the only copy of these files."
msgstr "Löscht die einzige Kopie dieser Dateien."
#: crates/pdfs-gui/src/app/pages/devices.rs:943
#: crates/pdfs-gui/src/app/pages/devices.rs:951
msgid "The local copy is unaffected."
msgstr "Die lokale Kopie bleibt unverändert."
#: crates/pdfs-gui/src/app/pages/devices.rs:950
#: crates/pdfs-gui/src/app/pages/devices.rs:958
msgid "Stop Syncing"
msgstr "Synchronisierung beenden"
#: crates/pdfs-gui/src/app/pages/devices.rs:963
#: crates/pdfs-gui/src/app/pages/devices.rs:971
msgid "Stopped syncing folder"
msgstr "Synchronisierung des Ordners beendet"
#: crates/pdfs-gui/src/app/pages/devices.rs:964
#: crates/pdfs-gui/src/app/pages/devices.rs:972
msgid "Couldn't stop syncing the folder"
msgstr "Synchronisierung des Ordners konnte nicht beendet werden"
#: crates/pdfs-gui/src/app/pages/devices.rs:975
#: crates/pdfs-gui/src/app/pages/devices.rs:983
msgid "Rename Computer"
msgstr "Computer umbenennen"
#. Translators: {name} is the computer's current name.
#: crates/pdfs-gui/src/app/pages/devices.rs:977
#: crates/pdfs-gui/src/app/pages/devices.rs:985
#, rust-format
msgid "Rename “{name}”."
msgstr "„{name}“ umbenennen."
#: crates/pdfs-gui/src/app/pages/devices.rs:1002
#: crates/pdfs-gui/src/app/pages/devices.rs:1014
#: crates/pdfs-gui/src/app/pages/devices.rs:1010
#: crates/pdfs-gui/src/app/pages/devices.rs:1022
msgid "Couldn't rename the computer"
msgstr "Der Computer konnte nicht umbenannt werden"
#: crates/pdfs-gui/src/app/pages/devices.rs:1003
#: crates/pdfs-gui/src/app/pages/devices.rs:1011
msgid "A name is required."
msgstr "Ein Name ist erforderlich."
#: crates/pdfs-gui/src/app/pages/devices.rs:1013
#: crates/pdfs-gui/src/app/pages/devices.rs:1021
msgid "Computer renamed"
msgstr "Computer umbenannt"
#. Translators: {name} is the computer's name, which the user must type.
#: crates/pdfs-gui/src/app/pages/devices.rs:1026
#: crates/pdfs-gui/src/app/pages/devices.rs:1034
#, rust-format
msgid "Type “{name}” to confirm"
msgstr "Zur Bestätigung „{name}“ eingeben"
#: crates/pdfs-gui/src/app/pages/devices.rs:1031
#: crates/pdfs-gui/src/app/pages/devices.rs:1039
msgid "Remove Computer?"
msgstr "Computer entfernen?"
#: crates/pdfs-gui/src/app/pages/devices.rs:1034
#: crates/pdfs-gui/src/app/pages/devices.rs:1042
#, rust-format
msgid ""
"Remove “{name}” from this account?\n"
@@ -2508,26 +2515,26 @@ msgstr ""
"gelöscht. Die Dateien auf dem Computer selbst bleiben unberührt – dies kann "
"jedoch von hier aus nicht rückgängig gemacht werden."
#: crates/pdfs-gui/src/app/pages/devices.rs:1040
#: crates/pdfs-gui/src/app/pages/devices.rs:1048
#: crates/pdfs-gui/src/app/pages/shared.rs:1025
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:634
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:876
msgid "Remove"
msgstr "Entfernen"
#: crates/pdfs-gui/src/app/pages/devices.rs:1057
#: crates/pdfs-gui/src/app/pages/devices.rs:1065
msgid "Computer removed"
msgstr "Computer entfernt"
#: crates/pdfs-gui/src/app/pages/devices.rs:1058
#: crates/pdfs-gui/src/app/pages/devices.rs:1066
msgid "Couldn't remove the computer"
msgstr "Der Computer konnte nicht entfernt werden"
#: crates/pdfs-gui/src/app/pages/devices.rs:1076
#: crates/pdfs-gui/src/app/pages/devices.rs:1084
msgid "Continue This Backup Here?"
msgstr "Diese Sicherung hier fortsetzen?"
#: crates/pdfs-gui/src/app/pages/devices.rs:1079
#: crates/pdfs-gui/src/app/pages/devices.rs:1087
#, rust-format
msgid ""
"This computer takes over the backup of “{name}”, for example after a "
@@ -2546,25 +2553,25 @@ msgstr ""
"werden nicht verschoben. Mit „Auf diesem Computer wiederherstellen“ lässt "
"sich danach zurückholen, was „{name}“ synchronisiert hat."
#: crates/pdfs-gui/src/app/pages/devices.rs:1084
#: crates/pdfs-gui/src/app/pages/devices.rs:1092
msgid "Continue Here"
msgstr "Hier fortsetzen"
#. Translators: {name} is the name of the computer whose backup this one took over.
#: crates/pdfs-gui/src/app/pages/devices.rs:1091
#: crates/pdfs-gui/src/app/pages/devices.rs:1099
#, rust-format
msgid "Now backing up as “{name}”"
msgstr "Sicherung jetzt als „{name}“"
#: crates/pdfs-gui/src/app/pages/devices.rs:1100
#: crates/pdfs-gui/src/app/pages/devices.rs:1108
msgid "Couldn't continue that backup here"
msgstr "Diese Sicherung konnte hier nicht fortgesetzt werden"
#: crates/pdfs-gui/src/app/pages/devices.rs:1116
#: crates/pdfs-gui/src/app/pages/devices.rs:1124
msgid "Sync With This Computer?"
msgstr "Mit diesem Computer synchronisieren?"
#: crates/pdfs-gui/src/app/pages/devices.rs:1119
#: crates/pdfs-gui/src/app/pages/devices.rs:1127
#, rust-format
msgid ""
"This computer and “{name}” keep the same folders in step. A change or a "
@@ -2581,25 +2588,25 @@ msgstr ""
"„{name}“. Bereits hier synchronisierte Ordner bleiben, wo sie sind. Als "
"Nächstes wählen Sie, welche seiner Ordner hier synchronisiert werden."
#: crates/pdfs-gui/src/app/pages/devices.rs:1124
#: crates/pdfs-gui/src/app/pages/devices.rs:1132
msgid "Sync Here"
msgstr "Hier synchronisieren"
#. Translators: {name} is the name of the other computer this one now syncs with.
#: crates/pdfs-gui/src/app/pages/devices.rs:1131
#: crates/pdfs-gui/src/app/pages/devices.rs:1139
#, rust-format
msgid "Now syncing with “{name}”"
msgstr "Jetzt synchron mit „{name}“"
#: crates/pdfs-gui/src/app/pages/devices.rs:1147
#: crates/pdfs-gui/src/app/pages/devices.rs:1155
msgid "Couldn't sync with that computer"
msgstr "Synchronisierung mit diesem Computer nicht möglich"
#: crates/pdfs-gui/src/app/pages/devices.rs:1179
#: crates/pdfs-gui/src/app/pages/devices.rs:1187
msgid "Move Backup to This Computer?"
msgstr "Sicherung auf diesen Computer verschieben?"
#: crates/pdfs-gui/src/app/pages/devices.rs:1182
#: crates/pdfs-gui/src/app/pages/devices.rs:1190
#, rust-format
msgid ""
"The folders backed up by “{name}” move into this computer's backup in Proton "
@@ -2616,12 +2623,12 @@ msgstr ""
"verschwinden."
#. Translators: {name} is the name of the computer whose folders moved to this one.
#: crates/pdfs-gui/src/app/pages/devices.rs:1194
#: crates/pdfs-gui/src/app/pages/devices.rs:1202
#, rust-format
msgid "Moved the backup of “{name}”"
msgstr "Sicherung von „{name}“ verschoben"
#: crates/pdfs-gui/src/app/pages/devices.rs:1208
#: crates/pdfs-gui/src/app/pages/devices.rs:1216
msgid "Couldn't move that backup"
msgstr "Diese Sicherung konnte nicht verschoben werden"
@@ -3271,7 +3278,11 @@ msgid ""
"This computer forgets what it synced in {path} before and compares the "
"folder with Proton Drive again. Nothing is deleted: a file on one side only "
"is copied to the other, and a file that differs keeps both versions."
msgstr "Dieser Computer vergisst, was er in {path} bisher synchronisiert hat, und vergleicht den Ordner erneut mit Proton Drive. Es wird nichts gelöscht: Eine Datei, die nur auf einer Seite liegt, wird auf die andere kopiert, und von einer Datei, die sich unterscheidet, bleiben beide Versionen erhalten."
msgstr ""
"Dieser Computer vergisst, was er in {path} bisher synchronisiert hat, und "
"vergleicht den Ordner erneut mit Proton Drive. Es wird nichts gelöscht: Eine "
"Datei, die nur auf einer Seite liegt, wird auf die andere kopiert, und von "
"einer Datei, die sich unterscheidet, bleiben beide Versionen erhalten."
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
msgid "Sync From Scratch"