mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-03 16:41:26 +01:00
feat(core,cli,gui): support two-password accounts without storing the mailbox password
A two-password account signed in with its login password as the mailbox password, so the key chain never unlocked and the daemon retried forever. Login now asks for the mailbox password and checks it against the account (proton-sdk 0.8 `unlock`), so a typo is a retry. The password is never stored: the keyring blob keeps the per-key passphrases instead, and for a two-password account only when the user opts in (`--remember`, or the "Keep unlocked on this computer" switch). By default they live in the kernel keyring for the login session and the account is locked after a reboot until `pdfs unlock` or the app supplies them again. - core: kernelkey module, Error::Locked / WrongMailboxPassword, unlock, lock, key_state, ready; blobs written by 3.0.x are migrated on first start; token refresh updates only the tokens in the stored blob - cli: `pdfs unlock [--remember]`, `pdfs lock [--forget]`; status and diagnose report the key state; the daemon waits while locked and is marked non-dumpable - gui: mailbox password dialog at sign-in and on open, locked tray state - po: all catalogs translated - bump to 3.1.0, depend on proton-sdk and proton-drive-rs 0.8.0 Refs #26.
This commit is contained in:
1 parent
f105159186
commit
9fa88ff397
24 files changed
+2871
-1417
No files matched your search
+199
-141
@@ -6,9 +6,9 @@
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: proton-drive-linux 2.10.0\n"
|
||||
"Project-Id-Version: proton-drive-linux 3.1.0\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
|
||||
"POT-Creation-Date: 2026-10-05 01:01+0200\n"
|
||||
"POT-Creation-Date: 2026-10-07 02:39+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -60,7 +60,7 @@ msgstr ""
|
||||
msgid "%A, %B %-d, %Y, %H:%M"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:743
|
||||
#: crates/pdfs-gui/src/app/main.rs:747
|
||||
#: crates/pdfs-gui/src/app/pages/activity_text.rs:539
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:454
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:819
|
||||
@@ -73,91 +73,91 @@ msgstr ""
|
||||
msgid "My files"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:746 crates/pdfs-gui/src/app/main.rs:1390
|
||||
#: crates/pdfs-gui/src/app/main.rs:750 crates/pdfs-gui/src/app/main.rs:1394
|
||||
#: crates/pdfs-gui/src/app/pages/albums.rs:638
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:842
|
||||
#: crates/pdfs-gui/src/app/pages/places.rs:441
|
||||
msgid "Photos"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:751
|
||||
#: crates/pdfs-gui/src/app/main.rs:755
|
||||
#: crates/pdfs-gui/src/app/pages/shared.rs:168
|
||||
#: crates/pdfs-gui/src/app/pages/shared.rs:482
|
||||
msgid "Shared with me"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:756
|
||||
#: crates/pdfs-gui/src/app/main.rs:760
|
||||
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:120
|
||||
msgid "Shared by me"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:759
|
||||
#: crates/pdfs-gui/src/app/main.rs:763
|
||||
#: crates/pdfs-gui/src/app/pages/devices.rs:140
|
||||
#: crates/pdfs-gui/src/app/pages/devices.rs:481
|
||||
msgid "Computers"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:760
|
||||
#: crates/pdfs-gui/src/app/main.rs:764
|
||||
#: crates/pdfs-gui/src/app/pages/trash.rs:101
|
||||
msgid "Trash"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: sidebar entry for the page listing this computer's synced folders.
|
||||
#: crates/pdfs-gui/src/app/main.rs:762
|
||||
#: crates/pdfs-gui/src/app/main.rs:766
|
||||
msgid "Sync"
|
||||
msgstr ""
|
||||
|
||||
#. 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:1079
|
||||
#: crates/pdfs-gui/src/app/main.rs:1083
|
||||
#, rust-format
|
||||
msgid "{what}: {detail}"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1098
|
||||
#: crates/pdfs-gui/src/app/main.rs:1102
|
||||
msgid "You're offline"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1099
|
||||
#: crates/pdfs-gui/src/app/main.rs:1103
|
||||
msgid "That's not there any more"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1100
|
||||
#: crates/pdfs-gui/src/app/main.rs:1104
|
||||
msgid "You don't have access to that"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1101
|
||||
#: crates/pdfs-gui/src/app/main.rs:1105
|
||||
msgid "Something changed this first"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1102
|
||||
#: crates/pdfs-gui/src/app/main.rs:1106
|
||||
msgid "Your Proton Drive is full"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1143 crates/pdfs-gui/src/app/main.rs:1372
|
||||
#: crates/pdfs-gui/src/app/main.rs:1147 crates/pdfs-gui/src/app/main.rs:1376
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:385
|
||||
msgid "Preferences"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1144
|
||||
#: crates/pdfs-gui/src/app/main.rs:1148
|
||||
#: crates/pdfs-gui/src/app/widgets/compat.rs:262
|
||||
msgid "Keyboard Shortcuts"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1146
|
||||
#: crates/pdfs-gui/src/app/main.rs:1150
|
||||
msgid "About Proton Drive for Linux"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1151
|
||||
#: crates/pdfs-gui/src/app/main.rs:1155
|
||||
msgid "Main menu"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1207
|
||||
#: crates/pdfs-gui/src/app/main.rs:1211
|
||||
msgid "Proton Drive for Linux"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1215
|
||||
#: crates/pdfs-gui/src/app/main.rs:1219
|
||||
msgid ""
|
||||
"Files-on-demand Proton Drive for the Linux desktop.\n"
|
||||
"\n"
|
||||
@@ -165,23 +165,23 @@ msgid ""
|
||||
"AG."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1220
|
||||
#: crates/pdfs-gui/src/app/main.rs:1224
|
||||
msgid "Source Code"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1224
|
||||
#: crates/pdfs-gui/src/app/main.rs:1228
|
||||
msgid "Proton Terms of Service"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1228
|
||||
#: crates/pdfs-gui/src/app/main.rs:1232
|
||||
msgid "Proton Privacy Policy"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1233
|
||||
#: crates/pdfs-gui/src/app/main.rs:1237
|
||||
msgid "Disclaimer"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1237
|
||||
#: crates/pdfs-gui/src/app/main.rs:1241
|
||||
msgid ""
|
||||
"This is an unofficial, community-built client. It is not affiliated with, "
|
||||
"endorsed by, or supported by Proton AG.\n"
|
||||
@@ -194,21 +194,21 @@ msgid ""
|
||||
"of any data you cannot afford to lose."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1245
|
||||
#: crates/pdfs-gui/src/app/main.rs:1249
|
||||
msgid ""
|
||||
"Places are named with data from <a href=\"https://www.geonames.org/"
|
||||
"\">GeoNames</a>, licensed under <a href=\"https://creativecommons.org/"
|
||||
"licenses/by/4.0/\">CC BY 4.0</a>."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1253
|
||||
#: crates/pdfs-gui/src/app/main.rs:1257
|
||||
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 "
|
||||
"public domain."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1261
|
||||
#: crates/pdfs-gui/src/app/main.rs:1265
|
||||
msgid ""
|
||||
"The street map, when turned on, comes from <a href=\"https://openfreemap.org/"
|
||||
"\">OpenFreeMap</a> in the <a href=\"https://www.openmaptiles.org/"
|
||||
@@ -219,21 +219,21 @@ 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:1272
|
||||
#: crates/pdfs-gui/src/app/main.rs:1276
|
||||
msgid "translator-credits"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1310
|
||||
#: crates/pdfs-gui/src/app/main.rs:1314
|
||||
msgid "Stop Proton Drive?"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1311
|
||||
#: crates/pdfs-gui/src/app/main.rs:1315
|
||||
msgid ""
|
||||
"My files goes offline and nothing syncs until you connect again. Proton "
|
||||
"Drive starts again at your next login."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1313 crates/pdfs-gui/src/app/main.rs:1588
|
||||
#: crates/pdfs-gui/src/app/main.rs:1317 crates/pdfs-gui/src/app/main.rs:1592
|
||||
#: 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:1892
|
||||
@@ -248,7 +248,8 @@ msgstr ""
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1013
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1488
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:312
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:378
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:492
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2055
|
||||
#: crates/pdfs-gui/src/app/pages/shared.rs:946
|
||||
#: crates/pdfs-gui/src/app/pages/shared.rs:1027
|
||||
@@ -263,30 +264,30 @@ msgstr ""
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1314
|
||||
#: crates/pdfs-gui/src/app/main.rs:1318
|
||||
msgctxt "verb"
|
||||
msgid "Stop"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1331
|
||||
#: crates/pdfs-gui/src/app/main.rs:1335
|
||||
msgid "Couldn't stop Proton Drive"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1332
|
||||
#: crates/pdfs-gui/src/app/main.rs:1336
|
||||
msgid "The Proton Drive service did not stop."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1368
|
||||
#: crates/pdfs-gui/src/app/main.rs:1372
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:254
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1370
|
||||
#: crates/pdfs-gui/src/app/main.rs:1374
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:247
|
||||
msgid "Search Drive"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1371
|
||||
#: crates/pdfs-gui/src/app/main.rs:1375
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:957
|
||||
#: crates/pdfs-gui/src/app/pages/devices.rs:554
|
||||
#: crates/pdfs-gui/src/app/pages/shared.rs:586
|
||||
@@ -295,38 +296,38 @@ msgstr ""
|
||||
msgid "Refresh"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1373
|
||||
#: crates/pdfs-gui/src/app/main.rs:1377
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1377
|
||||
#: crates/pdfs-gui/src/app/main.rs:1381
|
||||
msgid "Files"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1379
|
||||
#: crates/pdfs-gui/src/app/main.rs:1383
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:294
|
||||
msgid "New folder"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1380
|
||||
#: crates/pdfs-gui/src/app/main.rs:1384
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:290
|
||||
msgid "Upload files"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1381
|
||||
#: crates/pdfs-gui/src/app/main.rs:1385
|
||||
msgid "Back / forward"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1382
|
||||
#: crates/pdfs-gui/src/app/main.rs:1386
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1943
|
||||
msgid "Parent folder"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1383
|
||||
#: crates/pdfs-gui/src/app/main.rs:1387
|
||||
msgid "Grid / list"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1384
|
||||
#: crates/pdfs-gui/src/app/main.rs:1388
|
||||
#: crates/pdfs-gui/src/app/pages/albums.rs:298
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1871
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1893
|
||||
@@ -335,7 +336,7 @@ msgstr ""
|
||||
msgid "Rename"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1385 crates/pdfs-gui/src/app/main.rs:1405
|
||||
#: crates/pdfs-gui/src/app/main.rs:1389 crates/pdfs-gui/src/app/main.rs:1409
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:357
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:900
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:932
|
||||
@@ -345,73 +346,73 @@ msgstr ""
|
||||
msgid "Move to Trash"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1386
|
||||
#: crates/pdfs-gui/src/app/main.rs:1390
|
||||
msgid "Clear the selection"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1392
|
||||
#: crates/pdfs-gui/src/app/main.rs:1396
|
||||
msgid "Larger thumbnails"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1393
|
||||
#: crates/pdfs-gui/src/app/main.rs:1397
|
||||
msgid "Smaller thumbnails"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1394
|
||||
#: crates/pdfs-gui/src/app/main.rs:1398
|
||||
msgid "Reset thumbnail size"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1395
|
||||
#: crates/pdfs-gui/src/app/main.rs:1399
|
||||
msgid "Select all"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1399
|
||||
#: crates/pdfs-gui/src/app/main.rs:1403
|
||||
msgid "Photo Viewer"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1401
|
||||
#: crates/pdfs-gui/src/app/main.rs:1405
|
||||
msgid "Previous / next photo"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1402
|
||||
#: crates/pdfs-gui/src/app/main.rs:1406
|
||||
msgid "First / last photo"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1403
|
||||
#: crates/pdfs-gui/src/app/main.rs:1407
|
||||
msgid "Show details"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1404
|
||||
#: crates/pdfs-gui/src/app/main.rs:1408
|
||||
msgid "Fullscreen"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1406
|
||||
#: crates/pdfs-gui/src/app/main.rs:1410
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1496
|
||||
#: crates/pdfs-gui/src/app/main.rs:1500
|
||||
msgid "Select a single item to rename it"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1656
|
||||
#: crates/pdfs-gui/src/app/main.rs:1660
|
||||
#: 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:1370
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1371
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1657
|
||||
#: crates/pdfs-gui/src/app/main.rs:1661
|
||||
msgid "The Proton Drive service isn't running."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1665
|
||||
#: crates/pdfs-gui/src/app/main.rs:1669
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:336
|
||||
#: crates/pdfs-gui/src/hud/mod.rs:274 crates/pdfs-gui/src/hud/mod.rs:595
|
||||
#: crates/pdfs-gui/src/main.rs:444
|
||||
#: crates/pdfs-gui/src/main.rs:453
|
||||
msgid "Connecting…"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:1666
|
||||
#: crates/pdfs-gui/src/app/main.rs:1670
|
||||
msgid "Waiting for the Proton Drive service to start."
|
||||
msgstr ""
|
||||
|
||||
@@ -1240,7 +1241,7 @@ msgstr ""
|
||||
#: crates/pdfs-gui/src/app/pages/shared.rs:1006
|
||||
#: crates/pdfs-gui/src/app/pages/shared.rs:1122
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:750
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1517
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1518
|
||||
#: crates/pdfs-gui/src/app/pages/takeout.rs:424
|
||||
#: crates/pdfs-gui/src/app/pages/takeout.rs:617
|
||||
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:438
|
||||
@@ -1508,7 +1509,7 @@ msgid "Make available offline"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:347
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1493
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1494
|
||||
msgid "Make online only"
|
||||
msgstr ""
|
||||
|
||||
@@ -2616,7 +2617,7 @@ msgid "Sync paused until you resume"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:529
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1323 crates/pdfs-gui/src/main.rs:237
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1324 crates/pdfs-gui/src/main.rs:246
|
||||
msgid "Sync paused"
|
||||
msgstr ""
|
||||
|
||||
@@ -3052,72 +3053,124 @@ msgstr ""
|
||||
msgid "Signing in…"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:155
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:160
|
||||
msgid "Complete the verification to continue…"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:165
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:185
|
||||
msgid "login cancelled"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:198
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:218
|
||||
msgid "Too many sign-in attempts. Wait a few minutes and try again."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:204
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:224
|
||||
msgid "Couldn't reach Proton. Check your internet connection and try again."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:207
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:227
|
||||
msgid ""
|
||||
"Signed in, but the session couldn't be saved to the system keyring. Make "
|
||||
"sure a keyring (GNOME Keyring or KWallet) is running and unlocked."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:210
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:230
|
||||
msgid "Sign-in cancelled: no two-factor code was entered."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:213
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:233
|
||||
msgid "Sign-in cancelled: no mailbox password was entered."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:236
|
||||
msgid "That mailbox password didn't unlock your account."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:239
|
||||
msgid ""
|
||||
"Sign-in cancelled: the verification wasn't completed. Sign in again to get a "
|
||||
"new one."
|
||||
msgstr ""
|
||||
|
||||
#. Translators: {error} is an error message, usually in English.
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:218
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:244
|
||||
#, rust-format
|
||||
msgid "Sign-in failed: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:298
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:354
|
||||
msgid "That mailbox password didn't unlock your account. Try again."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:356
|
||||
msgid ""
|
||||
"This account has a separate mailbox password. Enter it to unlock your files."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:359
|
||||
msgid "Mailbox Password"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:365
|
||||
msgid "Mailbox password"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:369
|
||||
msgid "Keep unlocked on this computer"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:371
|
||||
msgid ""
|
||||
"Stores the unlock in the system keyring, so Proton Drive opens without "
|
||||
"asking after every login. Otherwise you enter the password once per session."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:379
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:432
|
||||
msgid "Unlock"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:431
|
||||
msgid "Proton Drive is locked. Enter your mailbox password to unlock it."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:460
|
||||
msgid "Unlocked."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:465
|
||||
msgid "Couldn't unlock"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:478
|
||||
msgid "Two-Factor Authentication"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:300
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:480
|
||||
msgid ""
|
||||
"Enter the code from your authenticator app, or one of your recovery codes."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:306
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:486
|
||||
msgid "Authentication code"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:313
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:493
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:341
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:521
|
||||
msgid "Sign Out?"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:343
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:523
|
||||
msgid ""
|
||||
"Proton Drive will disconnect and stop syncing until you sign in again. Files "
|
||||
"already on this computer stay where they are."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:345
|
||||
#: crates/pdfs-gui/src/app/pages/login.rs:525
|
||||
msgid "Sign Out"
|
||||
msgstr ""
|
||||
|
||||
@@ -4433,38 +4486,38 @@ msgid "Restart Now"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: {size} is an amount of storage, such as "1.2 GiB".
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:912
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:913
|
||||
#, rust-format
|
||||
msgid "{size} used"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:923
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:924
|
||||
#, rust-format
|
||||
msgid "{used} of {total} used ({percent}%)"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:961
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:962
|
||||
msgid "Proton Drive connected"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:962
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:963
|
||||
msgid "Your files are available."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:967
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:968
|
||||
msgid "Proton Drive disconnected"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:968
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:969
|
||||
msgid ""
|
||||
"The Proton Drive service stopped. Files aren't available until it restarts."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1037
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1038
|
||||
msgid "Sync complete"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1039
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1040
|
||||
#, rust-format
|
||||
msgid "{n} file finished transferring."
|
||||
msgid_plural "{n} files finished transferring."
|
||||
@@ -4473,27 +4526,27 @@ msgstr[1] ""
|
||||
|
||||
#. 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:1117
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1118
|
||||
#, rust-format
|
||||
msgid "{title} — {done} of {total}"
|
||||
msgstr ""
|
||||
|
||||
#. 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:1120
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1121
|
||||
#, rust-format
|
||||
msgid "{title} — {detail} ({done} of {total})"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: a background job still running. {title} is the job.
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1122
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1123
|
||||
#, rust-format
|
||||
msgid "{title}…"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: a background job still running. {title} is the job,
|
||||
#. {detail} what it is working on.
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1125
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1126
|
||||
#, rust-format
|
||||
msgid "{title} — {detail}…"
|
||||
msgstr ""
|
||||
@@ -4501,7 +4554,7 @@ msgstr ""
|
||||
#. 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:1154
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1155
|
||||
#, rust-format
|
||||
msgid "{arrow} {name} — {done} ({speed}/s)"
|
||||
msgstr ""
|
||||
@@ -4509,117 +4562,117 @@ msgstr ""
|
||||
#. 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:1162
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1163
|
||||
#, rust-format
|
||||
msgid "{arrow} {name} — {done} of {total} ({speed}/s)"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1254
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1255
|
||||
#, rust-format
|
||||
msgid "{used} cached — no limit set"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1260
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1261
|
||||
#, rust-format
|
||||
msgid "{used} of {limit} used"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1328
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1329
|
||||
#, rust-format
|
||||
msgid "{queued} · resumes {time}"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: {time} is when syncing resumes, such as "at 14:30"
|
||||
#. or "Tue 09:00".
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1333
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1334
|
||||
#, rust-format
|
||||
msgid "Resumes {time}"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1335
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1336
|
||||
msgid "Until you resume"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1342 crates/pdfs-gui/src/main.rs:239
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1343 crates/pdfs-gui/src/main.rs:248
|
||||
#, rust-format
|
||||
msgid "{n} change needs attention"
|
||||
msgid_plural "{n} changes need attention"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1352
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1353
|
||||
#: crates/pdfs-gui/src/app/widgets/details.rs:108
|
||||
msgctxt "state"
|
||||
msgid "Offline"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1353
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1354
|
||||
msgid "Cached files only"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1358
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1359
|
||||
msgctxt "state"
|
||||
msgid "Syncing"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1364
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1365
|
||||
msgid "Up to date"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1371
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1372
|
||||
#: crates/pdfs-gui/src/hud/mod.rs:608 crates/pdfs-gui/src/hud/mod.rs:622
|
||||
msgid "Proton Drive isn't running"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1376
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1377
|
||||
msgid "Not responding"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1377
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1378
|
||||
msgid "Proton Drive is taking too long to answer"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: stands in for a time that could not be read, as in
|
||||
#. "Resumes later".
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1415
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1430
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1416
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1431
|
||||
msgid "later"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: strftime format for a time later today, such as "at 14:30".
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1419
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1420
|
||||
msgid "at %H:%M"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: strftime format for a time within the next week, such as
|
||||
#. "Tue 09:00".
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1423
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1424
|
||||
msgid "%a %H:%M"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: strftime format for a date further ahead, such as "23 Sep".
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1426
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1427
|
||||
msgid "%e %b"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1456
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1457
|
||||
msgid "No files kept offline"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1458
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1459
|
||||
msgid "Right-click a file and choose “Make available offline”."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1509
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1516
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1510
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1517
|
||||
msgid "Couldn't make it online only"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1533
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1534
|
||||
msgid "Show fewer"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1536
|
||||
#: crates/pdfs-gui/src/app/pages/status.rs:1537
|
||||
#, rust-format
|
||||
msgid "Show all {n} file"
|
||||
msgid_plural "Show all {n} files"
|
||||
@@ -5644,40 +5697,45 @@ msgstr[1] ""
|
||||
msgid "Proton Drive isn't responding"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/main.rs:172
|
||||
#: crates/pdfs-gui/src/main.rs:173
|
||||
#, rust-format
|
||||
msgid "Signed in as {username} — locked"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/main.rs:181
|
||||
#, rust-format
|
||||
msgid "Signed in as {username} — not connected"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/main.rs:177
|
||||
#: crates/pdfs-gui/src/main.rs:186
|
||||
msgid "Not signed in"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: {error} is an error message, in English.
|
||||
#: crates/pdfs-gui/src/main.rs:180
|
||||
#: crates/pdfs-gui/src/main.rs:189
|
||||
#, rust-format
|
||||
msgid "Error: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/main.rs:201
|
||||
#: crates/pdfs-gui/src/main.rs:210
|
||||
msgid "Proton Drive sent an unexpected reply"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/main.rs:246
|
||||
#: crates/pdfs-gui/src/main.rs:255
|
||||
#, rust-format
|
||||
msgid "Up to date in {mountpoint} ({n} pinned)"
|
||||
msgid_plural "Up to date in {mountpoint} ({n} pinned)"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: crates/pdfs-gui/src/main.rs:253
|
||||
#: crates/pdfs-gui/src/main.rs:262
|
||||
#, rust-format
|
||||
msgid "Syncing — {queued} ({n} pinned)"
|
||||
msgid_plural "Syncing — {queued} ({n} pinned)"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: crates/pdfs-gui/src/main.rs:260
|
||||
#: crates/pdfs-gui/src/main.rs:269
|
||||
#, rust-format
|
||||
msgid "Offline — cached files only ({n} pinned)"
|
||||
msgid_plural "Offline — cached files only ({n} pinned)"
|
||||
@@ -5685,52 +5743,52 @@ msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#. Translators: {queued} is a queue summary such as "3 uploads queued".
|
||||
#: crates/pdfs-gui/src/main.rs:266
|
||||
#: crates/pdfs-gui/src/main.rs:275
|
||||
#, rust-format
|
||||
msgid "Offline — {queued}"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: a menu item that opens the list of failing changes.
|
||||
#: crates/pdfs-gui/src/main.rs:296
|
||||
#: crates/pdfs-gui/src/main.rs:305
|
||||
#, rust-format
|
||||
msgid "{n} issue — View"
|
||||
msgid_plural "{n} issues — View"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: crates/pdfs-gui/src/main.rs:402
|
||||
#: crates/pdfs-gui/src/main.rs:411
|
||||
msgid "Sign In…"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/main.rs:403
|
||||
#: crates/pdfs-gui/src/main.rs:412
|
||||
msgid "Open Proton Drive"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/main.rs:409
|
||||
#: crates/pdfs-gui/src/main.rs:418
|
||||
msgid "Open Folder"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/main.rs:421
|
||||
#: crates/pdfs-gui/src/main.rs:430
|
||||
msgid "Resume Sync"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/main.rs:423
|
||||
#: crates/pdfs-gui/src/main.rs:432
|
||||
msgid "Pause Sync"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/main.rs:442
|
||||
#: crates/pdfs-gui/src/main.rs:451
|
||||
msgid "Connect"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/main.rs:449
|
||||
#: crates/pdfs-gui/src/main.rs:458
|
||||
msgid "Hide Tray Icon"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/main.rs:453
|
||||
#: crates/pdfs-gui/src/main.rs:462
|
||||
msgid "Stop Proton Drive…"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/main.rs:457
|
||||
#: crates/pdfs-gui/src/main.rs:466
|
||||
msgid "Quit"
|
||||
msgstr ""
|
||||
|
||||
|
||||
Reference in new issue
Block a user