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: French\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 "Grille / 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 "Renommer"
@@ -682,7 +682,7 @@ msgid "Couldn't add a sync folder"
msgstr "Impossible d’ajouter un dossier synchronisé"
#: 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 "Impossible de restaurer les dossiers"
@@ -1279,12 +1279,12 @@ msgstr "Impossible de charger les albums"
#: 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
@@ -1933,7 +1933,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 "Nouveau nom"
@@ -1958,7 +1958,7 @@ msgstr "Choisissez le dossier de destination."
#: 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 "Déplacer ici"
@@ -2304,46 +2304,53 @@ msgstr "attention requise"
msgid "up to date"
msgstr "à jour"
#: crates/pdfs-gui/src/app/pages/devices.rs:634
#: crates/pdfs-gui/src/app/pages/devices.rs:632
msgid "checking for changes…"
msgstr "recherche de modifications…"
#: 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] "recherche de modifications — {n} élément vérifié"
msgstr[1] "recherche de modifications — {n} éléments vérifiés"
#: crates/pdfs-gui/src/app/pages/devices.rs:645
#, rust-format
msgid "checking for changes — {done} of {total}"
msgstr "recherche de modifications — {done} sur {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 "synchronisation de {done} sur {total}"
#: 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 "synchronisation de {file} — {done} sur {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 "Ajouter un dossier à synchroniser"
#: 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 "Synchronisation du dossier…"
#: 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 "Impossible d’ajouter le dossier"
#: 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 "Impossible de lister les dossiers à restaurer"
#: 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."
@@ -2351,19 +2358,19 @@ msgstr ""
"Cochez les dossiers à synchroniser sur cette machine et ajustez "
"l’emplacement de chacun."
#: crates/pdfs-gui/src/app/pages/devices.rs:790
#: crates/pdfs-gui/src/app/pages/devices.rs:798
msgid "Restore Folders"
msgstr "Restaurer les dossiers"
#: crates/pdfs-gui/src/app/pages/devices.rs:797
#: crates/pdfs-gui/src/app/pages/devices.rs:805
msgid "Restore"
msgstr "Restaurer"
#: crates/pdfs-gui/src/app/pages/devices.rs:830
#: crates/pdfs-gui/src/app/pages/devices.rs:838
msgid "Restoring folders…"
msgstr "Restauration des dossiers…"
#: 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 "
@@ -2372,35 +2379,35 @@ msgstr ""
"Ces dossiers sont sauvegardés depuis « {name} ». Les dossiers restaurés "
"restent synchronisés avec la copie de cet ordinateur."
#: 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 "Ces dossiers sont sauvegardés sous cet ordinateur dans Proton Drive."
#: 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 ""
"Rien à restaurer — les dossiers de « {name} » sont tous synchronisés ici."
#: 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 ""
"Rien à restaurer — les dossiers de cet ordinateur sont tous synchronisés ici."
#: 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 "Le dossier passera en ligne uniquement"
#: 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 "Le dossier va être téléchargé et rester synchronisé"
#: 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 "Impossible de changer de mode"
#: 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"
@@ -2417,7 +2424,7 @@ msgstr ""
"arrêtée. Pour conserver une copie locale, annulez, passez le dossier en "
"« Synchronisé » et attendez la fin du téléchargement avant de le retirer."
#: 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"
@@ -2431,68 +2438,68 @@ msgstr ""
"synchronisés. Choisissez s’il faut aussi supprimer la copie dans Proton "
"Drive."
#: crates/pdfs-gui/src/app/pages/devices.rs:934
#: crates/pdfs-gui/src/app/pages/devices.rs:942
msgid "Stop Syncing Folder?"
msgstr "Arrêter la synchronisation du dossier ?"
#: 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 "Supprimer aussi de Proton Drive"
#: 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 "Supprime l’unique copie de ces fichiers."
#: 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 "La copie locale n’est pas affectée."
#: crates/pdfs-gui/src/app/pages/devices.rs:950
#: crates/pdfs-gui/src/app/pages/devices.rs:958
msgid "Stop Syncing"
msgstr "Arrêter la synchronisation"
#: crates/pdfs-gui/src/app/pages/devices.rs:963
#: crates/pdfs-gui/src/app/pages/devices.rs:971
msgid "Stopped syncing folder"
msgstr "Synchronisation du dossier arrêtée"
#: 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 "Impossible d’arrêter la synchronisation du dossier"
#: crates/pdfs-gui/src/app/pages/devices.rs:975
#: crates/pdfs-gui/src/app/pages/devices.rs:983
msgid "Rename Computer"
msgstr "Renommer l’ordinateur"
#. 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 "Renommer « {name} »."
#: 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 "Impossible de renommer l’ordinateur"
#: crates/pdfs-gui/src/app/pages/devices.rs:1003
#: crates/pdfs-gui/src/app/pages/devices.rs:1011
msgid "A name is required."
msgstr "Un nom est requis."
#: crates/pdfs-gui/src/app/pages/devices.rs:1013
#: crates/pdfs-gui/src/app/pages/devices.rs:1021
msgid "Computer renamed"
msgstr "Ordinateur renommé"
#. 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 "Saisissez « {name} » pour confirmer"
#: crates/pdfs-gui/src/app/pages/devices.rs:1031
#: crates/pdfs-gui/src/app/pages/devices.rs:1039
msgid "Remove Computer?"
msgstr "Retirer l’ordinateur ?"
#: 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"
@@ -2507,26 +2514,26 @@ msgstr ""
"fichiers présents sur cet ordinateur ne sont pas touchés — mais cette action "
"ne peut pas être annulée d’ici."
#: 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 "Retirer"
#: crates/pdfs-gui/src/app/pages/devices.rs:1057
#: crates/pdfs-gui/src/app/pages/devices.rs:1065
msgid "Computer removed"
msgstr "Ordinateur retiré"
#: 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 "Impossible de retirer l’ordinateur"
#: crates/pdfs-gui/src/app/pages/devices.rs:1076
#: crates/pdfs-gui/src/app/pages/devices.rs:1084
msgid "Continue This Backup Here?"
msgstr "Continuer cette sauvegarde ici ?"
#: 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 "
@@ -2545,25 +2552,25 @@ msgstr ""
"ne sont pas déplacés. Utilisez ensuite « Restaurer sur cet ordinateur » pour "
"récupérer ce que « {name} » synchronisait."
#: crates/pdfs-gui/src/app/pages/devices.rs:1084
#: crates/pdfs-gui/src/app/pages/devices.rs:1092
msgid "Continue Here"
msgstr "Continuer ici"
#. 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 "Sauvegarde désormais en tant que « {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 "Impossible de continuer cette sauvegarde ici"
#: crates/pdfs-gui/src/app/pages/devices.rs:1116
#: crates/pdfs-gui/src/app/pages/devices.rs:1124
msgid "Sync With This Computer?"
msgstr "Synchroniser avec cet ordinateur ?"
#: 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 "
@@ -2580,25 +2587,25 @@ msgstr ""
"dans Proton Drive. Les dossiers déjà synchronisés ici restent où ils sont. "
"Vous choisissez ensuite lesquels de ses dossiers synchroniser ici."
#: crates/pdfs-gui/src/app/pages/devices.rs:1124
#: crates/pdfs-gui/src/app/pages/devices.rs:1132
msgid "Sync Here"
msgstr "Synchroniser ici"
#. 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 "Synchronisé désormais avec « {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 "Impossible de synchroniser avec cet ordinateur"
#: 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 "Déplacer la sauvegarde vers cet ordinateur ?"
#: 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 "
@@ -2615,12 +2622,12 @@ msgstr ""
"disparaître."
#. 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 "Sauvegarde de « {name} » déplacée"
#: 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 "Impossible de déplacer cette sauvegarde"
@@ -3270,7 +3277,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 "Cet ordinateur oublie ce qu’il a synchronisé auparavant dans {path} et compare à nouveau le dossier avec Proton Drive. Rien n’est supprimé : un fichier présent d’un seul côté est copié de l’autre, et un fichier qui diffère garde ses deux versions."
msgstr ""
"Cet ordinateur oublie ce qu’il a synchronisé auparavant dans {path} et "
"compare à nouveau le dossier avec Proton Drive. Rien n’est supprimé : un "
"fichier présent d’un seul côté est copié de l’autre, et un fichier qui "
"diffère garde ses deux versions."
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
msgid "Sync From Scratch"