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: Spanish\n"
@@ -247,13 +247,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
@@ -348,7 +348,7 @@ msgstr "Cuadrícula / lista"
#: 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 "Renombrar"
@@ -679,7 +679,7 @@ msgid "Couldn't add a sync folder"
msgstr "No se pudo añadir una carpeta sincronizada"
#: 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 "No se pudieron restaurar las carpetas"
@@ -1268,12 +1268,12 @@ msgstr "No se pudieron cargar los álbumes"
#: 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
@@ -1921,7 +1921,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 "Nombre nuevo"
@@ -1946,7 +1946,7 @@ msgstr "Elija la carpeta de destino."
#: 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 "Mover aquí"
@@ -2291,46 +2291,53 @@ msgstr "requiere atención"
msgid "up to date"
msgstr "actualizado"
#: crates/pdfs-gui/src/app/pages/devices.rs:634
#: crates/pdfs-gui/src/app/pages/devices.rs:632
msgid "checking for changes…"
msgstr "buscando cambios…"
#: 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] "buscando cambios: {n} elemento revisado"
msgstr[1] "buscando cambios: {n} elementos revisados"
#: crates/pdfs-gui/src/app/pages/devices.rs:645
#, rust-format
msgid "checking for changes — {done} of {total}"
msgstr "buscando cambios: {done} de {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 "sincronizando {done} de {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 "sincronizando {file}: {done} de {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 "Añadir carpeta para sincronizar"
#: 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 "Sincronizando la carpeta…"
#: 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 "No se pudo añadir la carpeta"
#: 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 "No se pudieron listar las carpetas para restaurar"
#: 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."
@@ -2338,19 +2345,19 @@ msgstr ""
"Marque las carpetas que sincronizar con esta máquina y ajuste dónde debe "
"estar cada una."
#: crates/pdfs-gui/src/app/pages/devices.rs:790
#: crates/pdfs-gui/src/app/pages/devices.rs:798
msgid "Restore Folders"
msgstr "Restaurar carpetas"
#: crates/pdfs-gui/src/app/pages/devices.rs:797
#: crates/pdfs-gui/src/app/pages/devices.rs:805
msgid "Restore"
msgstr "Restaurar"
#: crates/pdfs-gui/src/app/pages/devices.rs:830
#: crates/pdfs-gui/src/app/pages/devices.rs:838
msgid "Restoring folders…"
msgstr "Restaurando carpetas…"
#: 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 "
@@ -2359,36 +2366,36 @@ msgstr ""
"Estas carpetas tienen copia de seguridad desde “{name}”. Las carpetas "
"restauradas siguen sincronizándose con la copia de ese equipo."
#: 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 ""
"Estas carpetas tienen copia de seguridad bajo este equipo en 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 ""
"Nada que restaurar: todas las carpetas de “{name}” ya se sincronizan aquí."
#: 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 ""
"Nada que restaurar: todas las carpetas de este equipo ya se sincronizan aquí."
#: 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 "La carpeta pasará a solo en línea"
#: 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 "La carpeta se descargará y permanecerá sincronizada"
#: 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 "No se pudo cambiar el modo"
#: 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"
@@ -2405,7 +2412,7 @@ msgstr ""
"Para conservar una copia local, cancele, cambie la carpeta a Sincronizada y "
"espere a que termine la descarga antes de quitarla."
#: 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"
@@ -2418,68 +2425,68 @@ msgstr ""
"Los archivos locales permanecen en este disco y simplemente dejan de "
"sincronizarse. Elija si quiere eliminar también la copia en 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 "¿Dejar de sincronizar la carpeta?"
#: 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 "Eliminar también 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 "Elimina la única copia de estos archivos."
#: 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 copia local no se ve afectada."
#: crates/pdfs-gui/src/app/pages/devices.rs:950
#: crates/pdfs-gui/src/app/pages/devices.rs:958
msgid "Stop Syncing"
msgstr "Dejar de sincronizar"
#: crates/pdfs-gui/src/app/pages/devices.rs:963
#: crates/pdfs-gui/src/app/pages/devices.rs:971
msgid "Stopped syncing folder"
msgstr "Se dejó de sincronizar la carpeta"
#: 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 "No se pudo dejar de sincronizar la carpeta"
#: crates/pdfs-gui/src/app/pages/devices.rs:975
#: crates/pdfs-gui/src/app/pages/devices.rs:983
msgid "Rename Computer"
msgstr "Renombrar equipo"
#. 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 "Renombrar “{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 "No se pudo renombrar el equipo"
#: crates/pdfs-gui/src/app/pages/devices.rs:1003
#: crates/pdfs-gui/src/app/pages/devices.rs:1011
msgid "A name is required."
msgstr "Se necesita un nombre."
#: crates/pdfs-gui/src/app/pages/devices.rs:1013
#: crates/pdfs-gui/src/app/pages/devices.rs:1021
msgid "Computer renamed"
msgstr "Equipo renombrado"
#. 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 "Escriba “{name}” para confirmar"
#: crates/pdfs-gui/src/app/pages/devices.rs:1031
#: crates/pdfs-gui/src/app/pages/devices.rs:1039
msgid "Remove Computer?"
msgstr "¿Quitar el equipo?"
#: 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"
@@ -2493,26 +2500,26 @@ msgstr ""
"Todo lo que respaldó en Proton Drive se eliminará con él. Los archivos de "
"ese equipo no se tocan, pero esto no se puede deshacer desde aquí."
#: 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 "Quitar"
#: crates/pdfs-gui/src/app/pages/devices.rs:1057
#: crates/pdfs-gui/src/app/pages/devices.rs:1065
msgid "Computer removed"
msgstr "Equipo quitado"
#: 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 "No se pudo quitar el equipo"
#: crates/pdfs-gui/src/app/pages/devices.rs:1076
#: crates/pdfs-gui/src/app/pages/devices.rs:1084
msgid "Continue This Backup Here?"
msgstr "¿Continuar esta copia de seguridad aquí?"
#: 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 "
@@ -2531,25 +2538,25 @@ msgstr ""
"no se mueven. Después, use “Restaurar en este equipo” para recuperar lo que "
"“{name}” sincronizaba."
#: crates/pdfs-gui/src/app/pages/devices.rs:1084
#: crates/pdfs-gui/src/app/pages/devices.rs:1092
msgid "Continue Here"
msgstr "Continuar aquí"
#. 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 "Ahora se hace copia de seguridad como “{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 "No se pudo continuar esa copia de seguridad aquí"
#: crates/pdfs-gui/src/app/pages/devices.rs:1116
#: crates/pdfs-gui/src/app/pages/devices.rs:1124
msgid "Sync With This Computer?"
msgstr "¿Sincronizar con este equipo?"
#: 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 "
@@ -2566,25 +2573,25 @@ msgstr ""
"Proton Drive. Las carpetas ya sincronizadas aquí se quedan donde están. A "
"continuación, elija qué carpetas suyas sincronizar aquí."
#: crates/pdfs-gui/src/app/pages/devices.rs:1124
#: crates/pdfs-gui/src/app/pages/devices.rs:1132
msgid "Sync Here"
msgstr "Sincronizar aquí"
#. 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 "Ahora se sincroniza con “{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 "No se pudo sincronizar con ese equipo"
#: 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 "¿Mover la copia de seguridad a este equipo?"
#: 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 "
@@ -2601,12 +2608,12 @@ msgstr ""
"carpetas."
#. 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 "Se movió la copia de seguridad de “{name}”"
#: 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 "No se pudo mover esa copia de seguridad"
@@ -3245,7 +3252,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 "Este equipo olvida lo que sincronizó antes en {path} y vuelve a comparar la carpeta con Proton Drive. No se elimina nada: un archivo que solo está en un lado se copia al otro, y de un archivo que difiere se conservan ambas versiones."
msgstr ""
"Este equipo olvida lo que sincronizó antes en {path} y vuelve a comparar la "
"carpeta con Proton Drive. No se elimina nada: un archivo que solo está en un "
"lado se copia al otro, y de un archivo que difiere se conservan ambas "
"versiones."
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
msgid "Sync From Scratch"