fix(core,fuse,cli,gui): refuse to mount My files over a folder with files in it

FUSE mounts over a non-empty folder without complaint, so files already
in the My files folder were hidden under the mount: not uploaded, and
back only once the service stopped, so they looked deleted (#67, B277).

- pdfs-core: new `mountpoint` module. `not_empty` lists what is in a
  folder (hidden entries count); `mounted_fs_type` moves here from the
  CLI so the daemon can use it. `MountFailure` gains an optional
  `not_empty` field, which older readers ignore.
- pdfs-fuse: `mount_with` checks the folder before the root fetch and
  before any worker starts. A dead mount is cleared first; one of our
  own live mounts is left to `spawn_session`, as before.
- pdfs-cli: `cmd_daemon` records the folder in the failure record. The
  refusal backs off and retries like any mount failure, so emptying the
  folder is enough.
- pdfs-gui: the status pages explain the refusal, and a dialog offers
  to open the folder or choose another one, once per run of failures.
  The folder picker refuses a folder with files in it.

Translated in all catalogs. Docs: BUGS (B277), CHANGELOG, FAQ,
TROUBLESHOOTING, CONFIGURATION.
This commit is contained in:
nvrl committed 2026-11-01 15:30:28 +01:00
1 parent 321547fb77
commit 5048492a83
22 files changed
+2105 -1251

No files matched your search

+183 -133
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-31 19:26+0100\n"
"POT-Creation-Date: 2026-11-01 15:25+0100\n"
"PO-Revision-Date: 2026-09-23 12:00+0200\n"
"Last-Translator: Proton Drive for Linux contributors\n"
"Language-Team: French\n"
@@ -57,7 +57,7 @@ msgstr "%-d %b %Y"
msgid "%A, %B %-d, %Y, %H:%M"
msgstr "%A %-d %B %Y à %H:%M"
#: crates/pdfs-gui/src/app/main.rs:856
#: crates/pdfs-gui/src/app/main.rs:860
#: crates/pdfs-gui/src/app/pages/activity_text.rs:543
#: crates/pdfs-gui/src/app/pages/browser.rs:454
#: crates/pdfs-gui/src/app/pages/browser.rs:833
@@ -70,74 +70,74 @@ msgstr "%A %-d %B %Y à %H:%M"
msgid "My files"
msgstr "Mes fichiers"
#: crates/pdfs-gui/src/app/main.rs:859 crates/pdfs-gui/src/app/main.rs:1528
#: crates/pdfs-gui/src/app/main.rs:863 crates/pdfs-gui/src/app/main.rs:1532
#: crates/pdfs-gui/src/app/pages/albums.rs:638
#: crates/pdfs-gui/src/app/pages/photos.rs:845
#: crates/pdfs-gui/src/app/pages/places.rs:441
msgid "Photos"
msgstr "Photos"
#: crates/pdfs-gui/src/app/main.rs:864
#: crates/pdfs-gui/src/app/main.rs:868
#: crates/pdfs-gui/src/app/pages/shared.rs:168
#: crates/pdfs-gui/src/app/pages/shared.rs:484
msgid "Shared with me"
msgstr "Partagés avec moi"
#: crates/pdfs-gui/src/app/main.rs:869
#: crates/pdfs-gui/src/app/main.rs:873
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:120
msgid "Shared by me"
msgstr "Partagés par moi"
#: crates/pdfs-gui/src/app/main.rs:872
#: crates/pdfs-gui/src/app/main.rs:876
#: crates/pdfs-gui/src/app/pages/devices.rs:140
#: crates/pdfs-gui/src/app/pages/devices.rs:493
msgid "Computers"
msgstr "Ordinateurs"
#: crates/pdfs-gui/src/app/main.rs:873
#: crates/pdfs-gui/src/app/main.rs:877
#: crates/pdfs-gui/src/app/pages/trash.rs:101
msgid "Trash"
msgstr "Corbeille"
#. Translators: sidebar entry for the page listing this computer's synced folders.
#: crates/pdfs-gui/src/app/main.rs:875
#: crates/pdfs-gui/src/app/main.rs:879
msgid "Sync"
msgstr "Synchronisation"
#. Translators: a failed action's toast. {what} says what failed, such as
#. "Couldn't rename"; {detail} is the reason, usually untranslated text
#. from the mount service.
#: crates/pdfs-gui/src/app/main.rs:1225
#: crates/pdfs-gui/src/app/main.rs:1229
#: crates/pdfs-gui/src/app/pages/takeout.rs:714
#, rust-format
msgid "{what}: {detail}"
msgstr "{what} : {detail}"
#: crates/pdfs-gui/src/app/main.rs:1248
#: crates/pdfs-gui/src/app/main.rs:1252
msgid "You're offline"
msgstr "Vous êtes hors ligne"
#: crates/pdfs-gui/src/app/main.rs:1249
#: crates/pdfs-gui/src/app/main.rs:1253
msgid "That's not there any more"
msgstr "Cet élément n’existe plus"
#: crates/pdfs-gui/src/app/main.rs:1250
#: crates/pdfs-gui/src/app/main.rs:1254
msgid "You don't have access to that"
msgstr "Vous n’avez pas accès à cet élément"
#: crates/pdfs-gui/src/app/main.rs:1251
#: crates/pdfs-gui/src/app/main.rs:1255
msgid "Something changed this first"
msgstr "Quelque chose l’a modifié entre-temps"
#: crates/pdfs-gui/src/app/main.rs:1252
#: crates/pdfs-gui/src/app/main.rs:1256
msgid "Your Proton Drive is full"
msgstr "Votre Proton Drive est plein"
#: crates/pdfs-gui/src/app/main.rs:1339
#: crates/pdfs-gui/src/app/main.rs:1343
msgid "Proton Drive for Linux"
msgstr "Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1347
#: crates/pdfs-gui/src/app/main.rs:1351
msgid ""
"Files-on-demand Proton Drive for the Linux desktop.\n"
"\n"
@@ -149,23 +149,23 @@ msgstr ""
"Client non officiel — non affilié à Proton AG, ni approuvé ni pris en charge "
"par Proton AG."
#: crates/pdfs-gui/src/app/main.rs:1352
#: crates/pdfs-gui/src/app/main.rs:1356
msgid "Source Code"
msgstr "Code source"
#: crates/pdfs-gui/src/app/main.rs:1356
#: crates/pdfs-gui/src/app/main.rs:1360
msgid "Proton Terms of Service"
msgstr "Conditions d’utilisation de Proton"
#: crates/pdfs-gui/src/app/main.rs:1360
#: crates/pdfs-gui/src/app/main.rs:1364
msgid "Proton Privacy Policy"
msgstr "Politique de confidentialité de Proton"
#: crates/pdfs-gui/src/app/main.rs:1365
#: crates/pdfs-gui/src/app/main.rs:1369
msgid "Disclaimer"
msgstr "Avertissement"
#: crates/pdfs-gui/src/app/main.rs:1369
#: crates/pdfs-gui/src/app/main.rs:1373
msgid ""
"This is an unofficial, community-built client. It is not affiliated with, "
"endorsed by, or supported by Proton AG.\n"
@@ -189,7 +189,7 @@ msgstr ""
"une copie de toutes les données que vous ne pouvez pas vous permettre de "
"perdre."
#: crates/pdfs-gui/src/app/main.rs:1377
#: crates/pdfs-gui/src/app/main.rs:1381
msgid ""
"Places are named with data from <a href=\"https://www.geonames.org/"
"\">GeoNames</a>, licensed under <a href=\"https://creativecommons.org/"
@@ -199,7 +199,7 @@ msgstr ""
"www.geonames.org/\">GeoNames</a>, sous licence <a href=\"https://"
"creativecommons.org/licenses/by/4.0/\">CC BY 4.0</a>."
#: crates/pdfs-gui/src/app/main.rs:1385
#: crates/pdfs-gui/src/app/main.rs:1389
msgid ""
"The places map is drawn from <a href=\"https://www.naturalearthdata.com/"
"\">Natural Earth</a> land outlines and country borders, which are in the "
@@ -209,7 +209,7 @@ msgstr ""
"frontières des pays de <a href=\"https://www.naturalearthdata.com/\">Natural "
"Earth</a>, qui sont dans le domaine public."
#: crates/pdfs-gui/src/app/main.rs:1393
#: crates/pdfs-gui/src/app/main.rs:1397
msgid ""
"The street map, when turned on, comes from <a href=\"https://openfreemap.org/"
"\">OpenFreeMap</a> in the <a href=\"https://www.openmaptiles.org/"
@@ -226,15 +226,15 @@ msgstr ""
#. Translators: replace with your name(s) and email address(es), one
#. per line, to be credited in the About dialog.
#: crates/pdfs-gui/src/app/main.rs:1404
#: crates/pdfs-gui/src/app/main.rs:1408
msgid "translator-credits"
msgstr "Les contributeurs de Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1448
#: crates/pdfs-gui/src/app/main.rs:1452
msgid "Stop Proton Drive?"
msgstr "Arrêter Proton Drive ?"
#: crates/pdfs-gui/src/app/main.rs:1449
#: crates/pdfs-gui/src/app/main.rs:1453
msgid ""
"My files goes offline and nothing syncs until you connect again. Proton "
"Drive starts again at your next login."
@@ -243,7 +243,7 @@ msgstr ""
"vous reconnectez pas. Proton Drive redémarrera à votre prochaine ouverture "
"de session."
#: crates/pdfs-gui/src/app/main.rs:1451 crates/pdfs-gui/src/app/main.rs:1726
#: crates/pdfs-gui/src/app/main.rs:1455 crates/pdfs-gui/src/app/main.rs:1730
#: crates/pdfs-gui/src/app/pages/albums.rs:243
#: crates/pdfs-gui/src/app/pages/albums.rs:428
#: crates/pdfs-gui/src/app/pages/browser.rs:1917
@@ -278,30 +278,30 @@ msgstr ""
msgid "Cancel"
msgstr "Annuler"
#: crates/pdfs-gui/src/app/main.rs:1452
#: crates/pdfs-gui/src/app/main.rs:1456
msgctxt "verb"
msgid "Stop"
msgstr "Arrêter"
#: crates/pdfs-gui/src/app/main.rs:1469
#: crates/pdfs-gui/src/app/main.rs:1473
msgid "Couldn't stop Proton Drive"
msgstr "Impossible d’arrêter Proton Drive"
#: crates/pdfs-gui/src/app/main.rs:1470
#: crates/pdfs-gui/src/app/main.rs:1474
msgid "The Proton Drive service did not stop."
msgstr "Le service Proton Drive ne s’est pas arrêté."
#: crates/pdfs-gui/src/app/main.rs:1506
#: crates/pdfs-gui/src/app/main.rs:1510
#: crates/pdfs-gui/src/app/pages/status.rs:269
msgid "General"
msgstr "Général"
#: crates/pdfs-gui/src/app/main.rs:1508
#: crates/pdfs-gui/src/app/main.rs:1512
#: crates/pdfs-gui/src/app/pages/browser.rs:247
msgid "Search Drive"
msgstr "Rechercher dans Drive"
#: crates/pdfs-gui/src/app/main.rs:1509
#: crates/pdfs-gui/src/app/main.rs:1513
#: crates/pdfs-gui/src/app/pages/browser.rs:984
#: crates/pdfs-gui/src/app/pages/devices.rs:559
#: crates/pdfs-gui/src/app/pages/shared.rs:581
@@ -310,43 +310,43 @@ msgstr "Rechercher dans Drive"
msgid "Refresh"
msgstr "Actualiser"
#: crates/pdfs-gui/src/app/main.rs:1510
#: crates/pdfs-gui/src/app/main.rs:1514
#: crates/pdfs-gui/src/app/pages/status.rs:407
msgid "Preferences"
msgstr "Préférences"
#: crates/pdfs-gui/src/app/main.rs:1511
#: crates/pdfs-gui/src/app/main.rs:1515
msgid "Keyboard shortcuts"
msgstr "Raccourcis clavier"
#: crates/pdfs-gui/src/app/main.rs:1515
#: crates/pdfs-gui/src/app/main.rs:1519
msgid "Files"
msgstr "Fichiers"
#: crates/pdfs-gui/src/app/main.rs:1517
#: crates/pdfs-gui/src/app/main.rs:1521
#: crates/pdfs-gui/src/app/pages/browser.rs:294
msgid "New folder"
msgstr "Nouveau dossier"
#: crates/pdfs-gui/src/app/main.rs:1518
#: crates/pdfs-gui/src/app/main.rs:1522
#: crates/pdfs-gui/src/app/pages/browser.rs:290
msgid "Upload files"
msgstr "Téléverser des fichiers"
#: crates/pdfs-gui/src/app/main.rs:1519
#: crates/pdfs-gui/src/app/main.rs:1523
msgid "Back / forward"
msgstr "Précédent / suivant"
#: crates/pdfs-gui/src/app/main.rs:1520
#: crates/pdfs-gui/src/app/main.rs:1524
#: crates/pdfs-gui/src/app/pages/browser.rs:2014
msgid "Parent folder"
msgstr "Dossier parent"
#: crates/pdfs-gui/src/app/main.rs:1521
#: crates/pdfs-gui/src/app/main.rs:1525
msgid "Grid / list"
msgstr "Grille / liste"
#: crates/pdfs-gui/src/app/main.rs:1522
#: crates/pdfs-gui/src/app/main.rs:1526
#: 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
@@ -355,7 +355,7 @@ msgstr "Grille / liste"
msgid "Rename"
msgstr "Renommer"
#: crates/pdfs-gui/src/app/main.rs:1523 crates/pdfs-gui/src/app/main.rs:1543
#: crates/pdfs-gui/src/app/main.rs:1527 crates/pdfs-gui/src/app/main.rs:1547
#: crates/pdfs-gui/src/app/pages/browser.rs:357
#: crates/pdfs-gui/src/app/pages/browser.rs:924
#: crates/pdfs-gui/src/app/pages/browser.rs:959
@@ -365,70 +365,79 @@ msgstr "Renommer"
msgid "Move to Trash"
msgstr "Mettre à la corbeille"
#: crates/pdfs-gui/src/app/main.rs:1524
#: crates/pdfs-gui/src/app/main.rs:1528
msgid "Clear the selection"
msgstr "Effacer la sélection"
#: crates/pdfs-gui/src/app/main.rs:1530
#: crates/pdfs-gui/src/app/main.rs:1534
msgid "Larger thumbnails"
msgstr "Miniatures plus grandes"
#: crates/pdfs-gui/src/app/main.rs:1531
#: crates/pdfs-gui/src/app/main.rs:1535
msgid "Smaller thumbnails"
msgstr "Miniatures plus petites"
#: crates/pdfs-gui/src/app/main.rs:1532
#: crates/pdfs-gui/src/app/main.rs:1536
msgid "Reset thumbnail size"
msgstr "Réinitialiser la taille des miniatures"
#: crates/pdfs-gui/src/app/main.rs:1533
#: crates/pdfs-gui/src/app/main.rs:1537
msgid "Select all"
msgstr "Tout sélectionner"
#: crates/pdfs-gui/src/app/main.rs:1537
#: crates/pdfs-gui/src/app/main.rs:1541
msgid "Photo Viewer"
msgstr "Visionneuse de photos"
#: crates/pdfs-gui/src/app/main.rs:1539
#: crates/pdfs-gui/src/app/main.rs:1543
msgid "Previous / next photo"
msgstr "Photo précédente / suivante"
#: crates/pdfs-gui/src/app/main.rs:1540
#: crates/pdfs-gui/src/app/main.rs:1544
msgid "First / last photo"
msgstr "Première / dernière photo"
#: crates/pdfs-gui/src/app/main.rs:1541
#: crates/pdfs-gui/src/app/main.rs:1545
msgid "Show details"
msgstr "Afficher les détails"
#: crates/pdfs-gui/src/app/main.rs:1542
#: crates/pdfs-gui/src/app/main.rs:1546
msgid "Fullscreen"
msgstr "Plein écran"
#: crates/pdfs-gui/src/app/main.rs:1544
#: crates/pdfs-gui/src/app/main.rs:1548
#: crates/pdfs-gui/src/app/pages/status.rs:855
msgid "Close"
msgstr "Fermer"
#: crates/pdfs-gui/src/app/main.rs:1634
#: crates/pdfs-gui/src/app/main.rs:1638
msgid "Select a single item to rename it"
msgstr "Sélectionnez un seul élément pour le renommer"
#: crates/pdfs-gui/src/app/main.rs:1794
#: crates/pdfs-gui/src/app/main.rs:1798
#: crates/pdfs-gui/src/app/pages/albums.rs:85
#: crates/pdfs-gui/src/app/pages/places.rs:104
#: crates/pdfs-gui/src/app/pages/status.rs:1492
#: crates/pdfs-gui/src/app/pages/status.rs:1536
msgid "Not connected"
msgstr "Non connecté"
#: crates/pdfs-gui/src/app/main.rs:1795
#: crates/pdfs-gui/src/app/main.rs:1799
msgid "The Proton Drive service isn't running."
msgstr "Le service Proton Drive n’est pas en cours d’exécution."
#: crates/pdfs-gui/src/app/main.rs:1813
#: crates/pdfs-gui/src/app/main.rs:1819 crates/pdfs-gui/src/app/main.rs:1834
msgid "Can't open your Drive"
msgstr "Impossible d’ouvrir Proton Drive"
#: crates/pdfs-gui/src/app/main.rs:1816
#: crates/pdfs-gui/src/app/main.rs:1822
#, rust-format
msgid ""
"“{path}” already has files in it, and My files would hide them. Proton Drive "
"tries again on its own once the folder is empty. You can also choose another "
"folder for My files in Preferences."
msgstr "« {path} » contient déjà des fichiers, que « Mes fichiers » masquerait. Proton Drive réessaie de lui-même dès que le dossier est vide. Vous pouvez aussi choisir un autre dossier pour « Mes fichiers » dans les Préférences."
#: crates/pdfs-gui/src/app/main.rs:1837
#, rust-format
msgid ""
"The Proton Drive service keeps failing to start and tries again on its own. "
@@ -437,17 +446,46 @@ msgstr ""
"Le service Proton Drive n’arrive pas à démarrer et réessaie de lui-même. "
"Dernière erreur : {error}"
#: crates/pdfs-gui/src/app/main.rs:1824
#: crates/pdfs-gui/src/app/main.rs:1845
#: crates/pdfs-gui/src/app/pages/status.rs:355
#: crates/pdfs-gui/src/hud/mod.rs:269 crates/pdfs-gui/src/hud/mod.rs:579
#: crates/pdfs-gui/src/main.rs:493 crates/pdfs-gui/src/main.rs:535
msgid "Connecting…"
msgstr "Connexion…"
#: crates/pdfs-gui/src/app/main.rs:1825
#: crates/pdfs-gui/src/app/main.rs:1846
msgid "Waiting for the Proton Drive service to start."
msgstr "En attente du démarrage du service Proton Drive."
#: crates/pdfs-gui/src/app/main.rs:1864
msgid "Your Proton Drive Folder Isn't Empty"
msgstr "Votre dossier Proton Drive n’est pas vide"
#: crates/pdfs-gui/src/app/main.rs:1868
#, rust-format
msgid ""
"“{path}” already has {n} item in it. My files would hide it, so Proton Drive "
"does not open there. Move the item to another folder, or choose another "
"folder for My files."
msgid_plural ""
"“{path}” already has {n} items in it. My files would hide them, so Proton "
"Drive does not open there. Move the items to another folder, or choose "
"another folder for My files."
msgstr[0] "« {path} » contient déjà {n} élément. « Mes fichiers » le masquerait, c’est pourquoi Proton Drive ne s’y ouvre pas. Déplacez l’élément dans un autre dossier, ou choisissez un autre dossier pour « Mes fichiers »."
msgstr[1] "« {path} » contient déjà {n} éléments. « Mes fichiers » les masquerait, c’est pourquoi Proton Drive ne s’y ouvre pas. Déplacez les éléments dans un autre dossier, ou choisissez un autre dossier pour « Mes fichiers »."
#: crates/pdfs-gui/src/app/main.rs:1874
msgid "Not Now"
msgstr "Pas maintenant"
#: crates/pdfs-gui/src/app/main.rs:1875 crates/pdfs-gui/src/main.rs:500
msgid "Open Folder"
msgstr "Ouvrir le dossier"
#: crates/pdfs-gui/src/app/main.rs:1876
msgid "Choose Another Folder…"
msgstr "Choisir un autre dossier…"
#: crates/pdfs-gui/src/app/pages/activity.rs:87
msgctxt "activity filter"
msgid "All"
@@ -658,7 +696,7 @@ msgstr[0] "{n} dossier créé"
msgstr[1] "{n} dossiers créés"
#: crates/pdfs-gui/src/app/pages/activity.rs:983
#: crates/pdfs-gui/src/i18n.rs:191
#: crates/pdfs-gui/src/i18n.rs:195
#, rust-format
msgid "{n} change"
msgid_plural "{n} changes"
@@ -1317,7 +1355,7 @@ msgstr "Impossible de charger les albums"
#: crates/pdfs-gui/src/app/pages/shared.rs:1003
#: crates/pdfs-gui/src/app/pages/shared.rs:1119
#: crates/pdfs-gui/src/app/pages/status.rs:802
#: crates/pdfs-gui/src/app/pages/status.rs:1642
#: crates/pdfs-gui/src/app/pages/status.rs:1686
#: crates/pdfs-gui/src/app/pages/takeout.rs:424
#: crates/pdfs-gui/src/app/pages/takeout.rs:618
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:516
@@ -1587,7 +1625,7 @@ msgid "Make available offline"
msgstr "Rendre disponible hors ligne"
#: crates/pdfs-gui/src/app/pages/browser.rs:347
#: crates/pdfs-gui/src/app/pages/status.rs:1618
#: crates/pdfs-gui/src/app/pages/status.rs:1662
msgid "Make online only"
msgstr "Garder en ligne uniquement"
@@ -2187,7 +2225,7 @@ msgid "No files or folders match that search."
msgstr "Aucun fichier ni dossier ne correspond à cette recherche."
#: crates/pdfs-gui/src/app/pages/browser.rs:3096
#: crates/pdfs-gui/src/i18n.rs:248
#: crates/pdfs-gui/src/i18n.rs:252
#, rust-format
msgid "{n} file"
msgid_plural "{n} files"
@@ -2932,7 +2970,7 @@ msgid "Sync paused until you resume"
msgstr "Synchronisation en pause jusqu’à la reprise"
#: crates/pdfs-gui/src/app/pages/locations.rs:570
#: crates/pdfs-gui/src/app/pages/status.rs:1445 crates/pdfs-gui/src/main.rs:308
#: crates/pdfs-gui/src/app/pages/status.rs:1489 crates/pdfs-gui/src/main.rs:308
msgid "Sync paused"
msgstr "Synchronisation en pause"
@@ -4987,68 +5025,87 @@ msgstr "Impossible d’enregistrer la langue"
msgid "Restart Proton Drive to use the new language"
msgstr "Redémarrez Proton Drive pour utiliser la nouvelle langue"
#: crates/pdfs-gui/src/app/pages/status.rs:813
#: crates/pdfs-gui/src/app/pages/status.rs:814
msgid "Choose Proton Drive Folder"
msgstr "Choisir le dossier Proton Drive"
#: crates/pdfs-gui/src/app/pages/status.rs:825
#: crates/pdfs-gui/src/app/pages/status.rs:835
msgid "Couldn't read the folder"
msgstr "Impossible de lire le dossier"
#: crates/pdfs-gui/src/app/pages/status.rs:845
msgid "Choose an Empty Folder"
msgstr "Choisissez un dossier vide"
#: crates/pdfs-gui/src/app/pages/status.rs:849
#, rust-format
msgid ""
"“{path}” already has {n} item in it. My files would hide it while Proton "
"Drive runs, and it would not be uploaded."
msgid_plural ""
"“{path}” already has {n} items in it. My files would hide them while Proton "
"Drive runs, and they would not be uploaded."
msgstr[0] "« {path} » contient déjà {n} élément. « Mes fichiers » le masquerait tant que Proton Drive fonctionne, et il ne serait pas téléversé."
msgstr[1] "« {path} » contient déjà {n} éléments. « Mes fichiers » les masquerait tant que Proton Drive fonctionne, et ils ne seraient pas téléversés."
#: crates/pdfs-gui/src/app/pages/status.rs:870
msgid "Couldn't save the folder"
msgstr "Impossible d’enregistrer le dossier"
#: crates/pdfs-gui/src/app/pages/status.rs:837
#: crates/pdfs-gui/src/app/pages/status.rs:882
msgid "Restart Proton Drive?"
msgstr "Redémarrer Proton Drive ?"
#: crates/pdfs-gui/src/app/pages/status.rs:840
#: crates/pdfs-gui/src/app/pages/status.rs:885
#, rust-format
msgid "My files now appears in “{path}” after Proton Drive restarts."
msgstr ""
"« Mes fichiers » apparaîtra dans « {path} » après le redémarrage de Proton "
"Drive."
#: crates/pdfs-gui/src/app/pages/status.rs:844
#: crates/pdfs-gui/src/app/pages/status.rs:889
msgid "Later"
msgstr "Plus tard"
#: crates/pdfs-gui/src/app/pages/status.rs:845
#: crates/pdfs-gui/src/app/pages/status.rs:890
msgid "Restart Now"
msgstr "Redémarrer maintenant"
#. Translators: {size} is an amount of storage, such as "1.2 GiB".
#: crates/pdfs-gui/src/app/pages/status.rs:972
#: crates/pdfs-gui/src/app/pages/status.rs:1016
#, rust-format
msgid "{size} used"
msgstr "{size} utilisés"
#: crates/pdfs-gui/src/app/pages/status.rs:983
#: crates/pdfs-gui/src/app/pages/status.rs:1027
#, rust-format
msgid "{used} of {total} used ({percent}%)"
msgstr "{used} utilisés sur {total} ({percent} %)"
#: crates/pdfs-gui/src/app/pages/status.rs:1023
#: crates/pdfs-gui/src/app/pages/status.rs:1067
msgid "Proton Drive connected"
msgstr "Proton Drive connecté"
#: crates/pdfs-gui/src/app/pages/status.rs:1024
#: crates/pdfs-gui/src/app/pages/status.rs:1068
msgid "Your files are available."
msgstr "Vos fichiers sont disponibles."
#: crates/pdfs-gui/src/app/pages/status.rs:1029
#: crates/pdfs-gui/src/app/pages/status.rs:1073
msgid "Proton Drive disconnected"
msgstr "Proton Drive déconnecté"
#: crates/pdfs-gui/src/app/pages/status.rs:1030
#: crates/pdfs-gui/src/app/pages/status.rs:1074
msgid ""
"The Proton Drive service stopped. Files aren't available until it restarts."
msgstr ""
"Le service Proton Drive s’est arrêté. Les fichiers ne sont pas disponibles "
"tant qu’il n’a pas redémarré."
#: crates/pdfs-gui/src/app/pages/status.rs:1099
#: crates/pdfs-gui/src/app/pages/status.rs:1143
msgid "Sync complete"
msgstr "Synchronisation terminée"
#: crates/pdfs-gui/src/app/pages/status.rs:1101
#: crates/pdfs-gui/src/app/pages/status.rs:1145
#, rust-format
msgid "{n} file finished transferring."
msgid_plural "{n} files finished transferring."
@@ -5057,28 +5114,28 @@ msgstr[1] "Le transfert de {n} fichiers est terminé."
#. Translators: a background job's progress. {title} is the job, such as
#. "Scanning Photos"; {done} and {total} are counts.
#: crates/pdfs-gui/src/app/pages/status.rs:1179
#: crates/pdfs-gui/src/app/pages/status.rs:1223
#, rust-format
msgid "{title} — {done} of {total}"
msgstr "{title} — {done} sur {total}"
#. Translators: a background job's progress. {title} is the job, {detail}
#. what it is working on; {done} and {total} are counts.
#: crates/pdfs-gui/src/app/pages/status.rs:1182
#: crates/pdfs-gui/src/app/pages/status.rs:1226
#, rust-format
msgid "{title} — {detail} ({done} of {total})"
msgstr "{title} — {detail} ({done} sur {total})"
#. Translators: a background job still running. {title} is the job.
#. Translators: {title} names a running job whose size is not known yet.
#: crates/pdfs-gui/src/app/pages/status.rs:1184 crates/pdfs-gui/src/main.rs:113
#: crates/pdfs-gui/src/app/pages/status.rs:1228 crates/pdfs-gui/src/main.rs:113
#, rust-format
msgid "{title}…"
msgstr "{title}…"
#. Translators: a background job still running. {title} is the job,
#. {detail} what it is working on.
#: crates/pdfs-gui/src/app/pages/status.rs:1187
#: crates/pdfs-gui/src/app/pages/status.rs:1231
#, rust-format
msgid "{title} — {detail}…"
msgstr "{title} — {detail}…"
@@ -5086,7 +5143,7 @@ msgstr "{title} — {detail}…"
#. Translators: a file being transferred. {arrow} is ↑ or ↓, {name} the
#. file name, {done} the size moved so far and {speed} a size such as
#. "1.2 MiB"; "/s" means per second.
#: crates/pdfs-gui/src/app/pages/status.rs:1216
#: crates/pdfs-gui/src/app/pages/status.rs:1260
#, rust-format
msgid "{arrow} {name} — {done} ({speed}/s)"
msgstr "{arrow} {name} — {done} ({speed}/s)"
@@ -5094,156 +5151,156 @@ msgstr "{arrow} {name} — {done} ({speed}/s)"
#. Translators: a file being transferred. {arrow} is ↑ or ↓, {name} the
#. file name, {done} and {total} sizes and {speed} a size such as
#. "1.2 MiB"; "/s" means per second.
#: crates/pdfs-gui/src/app/pages/status.rs:1224
#: crates/pdfs-gui/src/app/pages/status.rs:1268
#, rust-format
msgid "{arrow} {name} — {done} of {total} ({speed}/s)"
msgstr "{arrow} {name} — {done} sur {total} ({speed}/s)"
#: crates/pdfs-gui/src/app/pages/status.rs:1325
#: crates/pdfs-gui/src/app/pages/status.rs:1369
#, rust-format
msgid "{used} cached — no limit set"
msgstr "{used} en cache — aucune limite définie"
#: crates/pdfs-gui/src/app/pages/status.rs:1331
#: crates/pdfs-gui/src/app/pages/status.rs:1375
#, rust-format
msgid "{used} of {limit} used"
msgstr "{used} utilisés sur {limit}"
#: crates/pdfs-gui/src/app/pages/status.rs:1410
#: crates/pdfs-gui/src/app/pages/status.rs:1454
msgid "Session expired"
msgstr "Session expirée"
#: crates/pdfs-gui/src/app/pages/status.rs:1415
#: crates/pdfs-gui/src/app/pages/status.rs:1459
#, rust-format
msgid "{queued} · sign in again to sync"
msgstr "{queued} · reconnectez-vous pour synchroniser"
#: crates/pdfs-gui/src/app/pages/status.rs:1417
#: crates/pdfs-gui/src/app/pages/status.rs:1461
msgid "Sign in again to sync"
msgstr "Reconnectez-vous pour synchroniser"
#: crates/pdfs-gui/src/app/pages/status.rs:1423
#: crates/pdfs-gui/src/app/pages/status.rs:1467
msgid "Sign-in not saved"
msgstr "Connexion non enregistrée"
#: crates/pdfs-gui/src/app/pages/status.rs:1425
#: crates/pdfs-gui/src/app/pages/status.rs:1469
msgid "Unlock your keyring, or the next reboot signs you out"
msgstr ""
"Déverrouillez votre trousseau, sinon le prochain redémarrage vous "
"déconnectera"
#: crates/pdfs-gui/src/app/pages/status.rs:1431
#: crates/pdfs-gui/src/app/pages/status.rs:1475
msgid "Restart to finish updating"
msgstr "Redémarrez pour terminer la mise à jour"
#: crates/pdfs-gui/src/app/pages/status.rs:1433
#: crates/pdfs-gui/src/app/pages/status.rs:1477
msgid "An older version of Proton Drive is still running"
msgstr ""
"Une version plus ancienne de Proton Drive est toujours en cours d’exécution"
#: crates/pdfs-gui/src/app/pages/status.rs:1437
#: crates/pdfs-gui/src/app/pages/status.rs:1481
#, rust-format
msgid "Proton Drive {version} is still running"
msgstr "Proton Drive {version} est toujours en cours d’exécution"
#: crates/pdfs-gui/src/app/pages/status.rs:1450
#: crates/pdfs-gui/src/app/pages/status.rs:1494
#, rust-format
msgid "{queued} · resumes {time}"
msgstr "{queued} · reprise {time}"
#. Translators: {time} is when syncing resumes, such as "at 14:30"
#. or "Tue 09:00".
#: crates/pdfs-gui/src/app/pages/status.rs:1455
#: crates/pdfs-gui/src/app/pages/status.rs:1499
#, rust-format
msgid "Resumes {time}"
msgstr "Reprise {time}"
#: crates/pdfs-gui/src/app/pages/status.rs:1457
#: crates/pdfs-gui/src/app/pages/status.rs:1501
msgid "Until you resume"
msgstr "Jusqu’à la reprise"
#: crates/pdfs-gui/src/app/pages/status.rs:1464 crates/pdfs-gui/src/main.rs:310
#: crates/pdfs-gui/src/app/pages/status.rs:1508 crates/pdfs-gui/src/main.rs:310
#, rust-format
msgid "{n} change needs attention"
msgid_plural "{n} changes need attention"
msgstr[0] "{n} modification requiert votre attention"
msgstr[1] "{n} modifications requièrent votre attention"
#: crates/pdfs-gui/src/app/pages/status.rs:1474
#: crates/pdfs-gui/src/app/pages/status.rs:1518
#: crates/pdfs-gui/src/app/widgets/details.rs:110
msgctxt "state"
msgid "Offline"
msgstr "Hors ligne"
#: crates/pdfs-gui/src/app/pages/status.rs:1475
#: crates/pdfs-gui/src/app/pages/status.rs:1519
msgid "Cached files only"
msgstr "Fichiers en cache uniquement"
#: crates/pdfs-gui/src/app/pages/status.rs:1480
#: crates/pdfs-gui/src/app/pages/status.rs:1524
msgctxt "state"
msgid "Syncing"
msgstr "Synchronisation"
#: crates/pdfs-gui/src/app/pages/status.rs:1486
#: crates/pdfs-gui/src/app/pages/status.rs:1530
msgid "Up to date"
msgstr "À jour"
#: crates/pdfs-gui/src/app/pages/status.rs:1493
#: crates/pdfs-gui/src/app/pages/status.rs:1537
#: crates/pdfs-gui/src/hud/mod.rs:592 crates/pdfs-gui/src/hud/mod.rs:606
msgid "Proton Drive isn't running"
msgstr "Proton Drive n’est pas en cours d’exécution"
#: crates/pdfs-gui/src/app/pages/status.rs:1498
#: crates/pdfs-gui/src/app/pages/status.rs:1542
msgid "Not responding"
msgstr "Ne répond pas"
#: crates/pdfs-gui/src/app/pages/status.rs:1499
#: crates/pdfs-gui/src/app/pages/status.rs:1543
msgid "Proton Drive is taking too long to answer"
msgstr "Proton Drive met trop de temps à répondre"
#. Translators: stands in for a time that could not be read, as in
#. "Resumes later".
#: crates/pdfs-gui/src/app/pages/status.rs:1539
#: crates/pdfs-gui/src/app/pages/status.rs:1554
#: crates/pdfs-gui/src/app/pages/status.rs:1583
#: crates/pdfs-gui/src/app/pages/status.rs:1598
msgid "later"
msgstr "plus tard"
#. Translators: strftime format for a time later today, such as "at 14:30".
#: crates/pdfs-gui/src/app/pages/status.rs:1543
#: crates/pdfs-gui/src/app/pages/status.rs:1587
msgid "at %H:%M"
msgstr "à %H:%M"
#. Translators: strftime format for a time within the next week, such as
#. "Tue 09:00".
#: crates/pdfs-gui/src/app/pages/status.rs:1547
#: crates/pdfs-gui/src/app/pages/status.rs:1591
msgid "%a %H:%M"
msgstr "%a %H:%M"
#. Translators: strftime format for a date further ahead, such as "23 Sep".
#: crates/pdfs-gui/src/app/pages/status.rs:1550
#: crates/pdfs-gui/src/app/pages/status.rs:1594
msgid "%e %b"
msgstr "%e %b"
#: crates/pdfs-gui/src/app/pages/status.rs:1580
#: crates/pdfs-gui/src/app/pages/status.rs:1624
msgid "No files kept offline"
msgstr "Aucun fichier disponible hors ligne"
#: crates/pdfs-gui/src/app/pages/status.rs:1582
#: crates/pdfs-gui/src/app/pages/status.rs:1626
msgid "Right-click a file or folder and choose “Available offline”."
msgstr ""
"Faites un clic droit sur un fichier ou un dossier et choisissez « Disponible "
"hors ligne »."
#: crates/pdfs-gui/src/app/pages/status.rs:1634
#: crates/pdfs-gui/src/app/pages/status.rs:1641
#: crates/pdfs-gui/src/app/pages/status.rs:1678
#: crates/pdfs-gui/src/app/pages/status.rs:1685
msgid "Couldn't make it online only"
msgstr "Impossible de le garder en ligne uniquement"
#: crates/pdfs-gui/src/app/pages/status.rs:1658
#: crates/pdfs-gui/src/app/pages/status.rs:1702
msgid "Show fewer"
msgstr "Afficher moins"
#: crates/pdfs-gui/src/app/pages/status.rs:1661
#: crates/pdfs-gui/src/app/pages/status.rs:1705
#, rust-format
msgid "Show all {n} file"
msgid_plural "Show all {n} files"
@@ -6321,37 +6378,37 @@ msgctxt "file state"
msgid "Online only"
msgstr "En ligne uniquement"
#: crates/pdfs-gui/src/i18n.rs:84
#: crates/pdfs-gui/src/i18n.rs:85
msgid "Kosovo"
msgstr "Kosovo"
#: crates/pdfs-gui/src/i18n.rs:178
#: crates/pdfs-gui/src/i18n.rs:182
#, rust-format
msgid "{n} upload queued"
msgid_plural "{n} uploads queued"
msgstr[0] "{n} téléversement en attente"
msgstr[1] "{n} téléversements en attente"
#: crates/pdfs-gui/src/i18n.rs:184
#: crates/pdfs-gui/src/i18n.rs:188
#, rust-format
msgid "{n} change queued"
msgid_plural "{n} changes queued"
msgstr[0] "{n} modification en attente"
msgstr[1] "{n} modifications en attente"
#: crates/pdfs-gui/src/i18n.rs:190
#: crates/pdfs-gui/src/i18n.rs:194
#, rust-format
msgid "{n} upload"
msgid_plural "{n} uploads"
msgstr[0] "{n} téléversement"
msgstr[1] "{n} téléversements"
#: crates/pdfs-gui/src/i18n.rs:194
#: crates/pdfs-gui/src/i18n.rs:198
#, rust-format
msgid "{uploads}, {changes} queued"
msgstr "{uploads} et {changes} en attente"
#: crates/pdfs-gui/src/i18n.rs:251
#: crates/pdfs-gui/src/i18n.rs:255
#, rust-format
msgid "{n} file in {dir}"
msgid_plural "{n} files in {dir}"
@@ -6486,10 +6543,6 @@ msgstr "Ouvrir Proton Drive"
msgid "Restart Proton Drive"
msgstr "Redémarrer Proton Drive"
#: crates/pdfs-gui/src/main.rs:500
msgid "Open Folder"
msgstr "Ouvrir le dossier"
#: crates/pdfs-gui/src/main.rs:512
msgid "Resume Sync"
msgstr "Reprendre la synchronisation"
@@ -6823,9 +6876,6 @@ msgstr "impossible de joindre le démon Proton Drive : {error}"
#~ msgid "Stop sharing?"
#~ msgstr "Arrêter le partage ?"
#~ msgid "Choose mountpoint folder"
#~ msgstr "Choisir le dossier du point de montage"
#~ msgid "Couldn't save mountpoint"
#~ msgstr "Impossible d’enregistrer le point de montage"