feat(fuse,core,cli,gui): move another computer's backup to this one

A user switching from a Windows PC to Linux had two half answers:
adopting the old device makes this machine back up as it, and restoring
its folders keeps them in the old device's tree. Neither puts the data
under this machine's own device.

Device roots are separate shares on the main volume, so each top-level
folder of the other device can move under this device's root in one
server-side move. Nothing is uploaded again, and the other device stays
registered, without those folders.

- core: `Request::MigrateDevice { uid }` and
  `Db::sync_folder_set_share`
- fuse: `Core::migrate_device` moves every folder, suffixes a name
  already taken here with the other device's name, keeps going past a
  failed folder, and re-points sync folders that already tracked a
  moved folder at the new share
- cli: `pdfs devices migrate UID [--yes]` confirms, moves, then runs
  the ordinary restore picker
- gui: "Move to This Computer…" on another computer's row, followed by
  the restore picker
- i18n: translate the new strings in every catalog
- docs: CLI.md, USER_GUIDE.md, RECOVERY.md, ARCHITECTURE.md, changelog
This commit is contained in:
nvrl committed 2026-10-08 13:34:28 +02:00
1 parent 8d0351124c
commit 3e3dd7db41
21 files changed
+1349 -694

No files matched your search

+113 -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-08 10:15+0200\n"
"POT-Creation-Date: 2026-10-08 13:23+0200\n"
"PO-Revision-Date: 2026-09-23 12:00+0200\n"
"Last-Translator: Proton Drive for Linux contributors\n"
"Language-Team: Portuguese (Brazil)\n"
@@ -90,7 +90,7 @@ msgstr "Compartilhados por mim"
#: crates/pdfs-gui/src/app/main.rs:776
#: crates/pdfs-gui/src/app/pages/devices.rs:140
#: crates/pdfs-gui/src/app/pages/devices.rs:481
#: crates/pdfs-gui/src/app/pages/devices.rs:485
msgid "Computers"
msgstr "Computadores"
@@ -262,11 +262,12 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/browser.rs:1892
#: crates/pdfs-gui/src/app/pages/browser.rs:1968
#: crates/pdfs-gui/src/app/pages/browser.rs:2381
#: crates/pdfs-gui/src/app/pages/devices.rs:788
#: crates/pdfs-gui/src/app/pages/devices.rs:941
#: crates/pdfs-gui/src/app/pages/devices.rs:979
#: crates/pdfs-gui/src/app/pages/devices.rs:1031
#: crates/pdfs-gui/src/app/pages/devices.rs:1075
#: crates/pdfs-gui/src/app/pages/devices.rs:792
#: crates/pdfs-gui/src/app/pages/devices.rs:945
#: crates/pdfs-gui/src/app/pages/devices.rs:983
#: crates/pdfs-gui/src/app/pages/devices.rs:1035
#: crates/pdfs-gui/src/app/pages/devices.rs:1079
#: crates/pdfs-gui/src/app/pages/devices.rs:1119
#: crates/pdfs-gui/src/app/pages/locations.rs:809
#: crates/pdfs-gui/src/app/pages/locations.rs:1013
#: crates/pdfs-gui/src/app/pages/locations.rs:1488
@@ -312,7 +313,7 @@ msgstr "Pesquisar no Drive"
#: crates/pdfs-gui/src/app/main.rs:1388
#: crates/pdfs-gui/src/app/pages/browser.rs:957
#: crates/pdfs-gui/src/app/pages/devices.rs:554
#: crates/pdfs-gui/src/app/pages/devices.rs:558
#: crates/pdfs-gui/src/app/pages/shared.rs:586
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:526
#: crates/pdfs-gui/src/app/pages/trash.rs:246
@@ -354,7 +355,7 @@ msgstr "Grade / lista"
#: 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
#: crates/pdfs-gui/src/app/pages/devices.rs:980
#: crates/pdfs-gui/src/app/pages/devices.rs:984
#: crates/pdfs-gui/src/app/widgets/details.rs:159
msgid "Rename"
msgstr "Renomear"
@@ -682,7 +683,7 @@ msgid "Couldn't add a sync folder"
msgstr "Não foi possível adicionar uma pasta sincronizada"
#: crates/pdfs-gui/src/app/pages/activity_text.rs:58
#: crates/pdfs-gui/src/app/pages/devices.rs:823
#: crates/pdfs-gui/src/app/pages/devices.rs:827
msgid "Couldn't restore folders"
msgstr "Não foi possível restaurar as pastas"
@@ -1262,10 +1263,11 @@ msgstr "Não foi possível carregar os álbuns"
#: crates/pdfs-gui/src/app/pages/browser.rs:1848
#: crates/pdfs-gui/src/app/pages/browser.rs:2315
#: crates/pdfs-gui/src/app/pages/browser.rs:2491
#: crates/pdfs-gui/src/app/pages/devices.rs:694
#: crates/pdfs-gui/src/app/pages/devices.rs:734
#: crates/pdfs-gui/src/app/pages/devices.rs:884
#: crates/pdfs-gui/src/app/pages/devices.rs:1120
#: crates/pdfs-gui/src/app/pages/devices.rs:698
#: crates/pdfs-gui/src/app/pages/devices.rs:738
#: crates/pdfs-gui/src/app/pages/devices.rs:888
#: crates/pdfs-gui/src/app/pages/devices.rs:1156
#: crates/pdfs-gui/src/app/pages/devices.rs:1185
#: crates/pdfs-gui/src/app/pages/duplicates.rs:220
#: crates/pdfs-gui/src/app/pages/locations.rs:536
#: crates/pdfs-gui/src/app/pages/locations.rs:783
@@ -1297,7 +1299,7 @@ msgstr "O serviço do Proton Drive não respondeu."
#: crates/pdfs-gui/src/app/pages/albums.rs:206
#: crates/pdfs-gui/src/app/pages/browser.rs:840
#: crates/pdfs-gui/src/app/pages/devices.rs:530
#: crates/pdfs-gui/src/app/pages/devices.rs:534
#: crates/pdfs-gui/src/app/pages/photos.rs:3190
#: crates/pdfs-gui/src/app/pages/shared.rs:541
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:474
@@ -1311,7 +1313,7 @@ msgstr "Abrir"
#: crates/pdfs-gui/src/app/pages/albums.rs:212
#: crates/pdfs-gui/src/app/pages/browser.rs:882
#: crates/pdfs-gui/src/app/pages/devices.rs:406
#: crates/pdfs-gui/src/app/pages/devices.rs:444
#: crates/pdfs-gui/src/app/pages/devices.rs:448
msgid "Rename…"
msgstr "Renomear…"
@@ -1579,7 +1581,7 @@ msgstr "Tamanho dos ícones"
#. Translators: {n} is how many items are selected: files and folders in My Files, photos here.
#: crates/pdfs-gui/src/app/pages/browser.rs:538
#: crates/pdfs-gui/src/app/pages/browser.rs:925
#: crates/pdfs-gui/src/app/pages/devices.rs:539
#: crates/pdfs-gui/src/app/pages/devices.rs:543
#: crates/pdfs-gui/src/app/pages/photos.rs:1988
#: crates/pdfs-gui/src/app/pages/shared.rs:565
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:507
@@ -1733,7 +1735,7 @@ msgid "New Folder…"
msgstr "Nova pasta…"
#: crates/pdfs-gui/src/app/pages/browser.rs:953
#: crates/pdfs-gui/src/app/pages/devices.rs:550
#: crates/pdfs-gui/src/app/pages/devices.rs:554
#: crates/pdfs-gui/src/app/pages/shared.rs:582
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:522
#: crates/pdfs-gui/src/app/pages/trash.rs:242
@@ -1878,7 +1880,7 @@ msgid "{status}. {message}"
msgstr "{status}. {message}"
#: crates/pdfs-gui/src/app/pages/browser.rs:1875
#: crates/pdfs-gui/src/app/pages/devices.rs:973
#: crates/pdfs-gui/src/app/pages/devices.rs:977
msgid "New name"
msgstr "Novo nome"
@@ -1908,6 +1910,7 @@ msgid "Choose the folder to move into."
msgstr "Escolha a pasta de destino."
#: crates/pdfs-gui/src/app/pages/browser.rs:1969
#: crates/pdfs-gui/src/app/pages/devices.rs:1120
msgid "Move Here"
msgstr "Mover para cá"
@@ -2136,99 +2139,103 @@ msgstr "Navegar pelos arquivos"
msgid "Restore to This Computer…"
msgstr "Restaurar neste computador…"
#: crates/pdfs-gui/src/app/pages/devices.rs:451
#: crates/pdfs-gui/src/app/pages/devices.rs:443
msgid "Move to This Computer…"
msgstr "Mover para este computador…"
#: crates/pdfs-gui/src/app/pages/devices.rs:455
msgid "Continue This Backup Here…"
msgstr "Continuar este backup aqui…"
#: crates/pdfs-gui/src/app/pages/devices.rs:456
#: crates/pdfs-gui/src/app/pages/devices.rs:460
#: crates/pdfs-gui/src/app/pages/shared.rs:895
msgid "Remove…"
msgstr "Remover…"
#: crates/pdfs-gui/src/app/pages/devices.rs:567
#: crates/pdfs-gui/src/app/pages/devices.rs:571
#, rust-format
msgid "{platform} · last backup {time}"
msgstr "{platform} · último backup {time}"
#. Translators: {platform} is the device's platform, such as "Linux".
#: crates/pdfs-gui/src/app/pages/devices.rs:571
#: crates/pdfs-gui/src/app/pages/devices.rs:575
#, rust-format
msgid "{platform} · no backups yet"
msgstr "{platform} · nenhum backup ainda"
#: crates/pdfs-gui/src/app/pages/devices.rs:587
#: crates/pdfs-gui/src/app/pages/devices.rs:591
msgid "No folders backed up yet"
msgstr "Nenhuma pasta com backup ainda"
#: crates/pdfs-gui/src/app/pages/devices.rs:590
#: crates/pdfs-gui/src/app/pages/devices.rs:594
#, rust-format
msgid "{n} folder backed up"
msgid_plural "{n} folders backed up"
msgstr[0] "{n} pasta com backup"
msgstr[1] "{n} pastas com backup"
#: crates/pdfs-gui/src/app/pages/devices.rs:603
#: crates/pdfs-gui/src/app/pages/devices.rs:607
#, rust-format
msgid "{folders} · {n} needs attention"
msgid_plural "{folders} · {n} need attention"
msgstr[0] "{folders} · {n} requer atenção"
msgstr[1] "{folders} · {n} requerem atenção"
#: crates/pdfs-gui/src/app/pages/devices.rs:614
#: crates/pdfs-gui/src/app/pages/devices.rs:618
msgid "syncing…"
msgstr "sincronizando…"
#: crates/pdfs-gui/src/app/pages/devices.rs:615
#: crates/pdfs-gui/src/app/pages/devices.rs:619
msgid "sync error"
msgstr "erro de sincronização"
#: crates/pdfs-gui/src/app/pages/devices.rs:616
#: crates/pdfs-gui/src/app/pages/devices.rs:620
msgid "needs attention"
msgstr "requer atenção"
#: crates/pdfs-gui/src/app/pages/devices.rs:617
#: crates/pdfs-gui/src/app/pages/devices.rs:621
msgid "up to date"
msgstr "atualizado"
#: crates/pdfs-gui/src/app/pages/devices.rs:629
#: crates/pdfs-gui/src/app/pages/devices.rs:633
msgid "checking for changes…"
msgstr "verificando alterações…"
#: crates/pdfs-gui/src/app/pages/devices.rs:632
#: crates/pdfs-gui/src/app/pages/devices.rs:636
#, rust-format
msgid "checking for changes — {done} of {total}"
msgstr "verificando alterações — {done} de {total}"
#: crates/pdfs-gui/src/app/pages/devices.rs:644
#: crates/pdfs-gui/src/app/pages/devices.rs:648
#, rust-format
msgid "syncing {done} of {total}"
msgstr "sincronizando {done} de {total}"
#: crates/pdfs-gui/src/app/pages/devices.rs:650
#: crates/pdfs-gui/src/app/pages/devices.rs:654
#, rust-format
msgid "syncing {file} — {done} of {total}"
msgstr "sincronizando {file} — {done} de {total}"
#: crates/pdfs-gui/src/app/pages/devices.rs:662
#: crates/pdfs-gui/src/app/pages/devices.rs:666
msgid "Add Folder to Sync"
msgstr "Adicionar pasta à sincronização"
#: crates/pdfs-gui/src/app/pages/devices.rs:686
#: crates/pdfs-gui/src/app/pages/devices.rs:690
#: crates/pdfs-gui/src/app/pages/locations.rs:1593
msgid "Syncing folder…"
msgstr "Sincronizando pasta…"
#: crates/pdfs-gui/src/app/pages/devices.rs:689
#: crates/pdfs-gui/src/app/pages/devices.rs:693
#: crates/pdfs-gui/src/app/pages/devices.rs:697
msgid "Couldn't add folder"
msgstr "Não foi possível adicionar a pasta"
#: crates/pdfs-gui/src/app/pages/devices.rs:727
#: crates/pdfs-gui/src/app/pages/devices.rs:733
#: crates/pdfs-gui/src/app/pages/devices.rs:731
#: crates/pdfs-gui/src/app/pages/devices.rs:737
msgid "Couldn't list folders to restore"
msgstr "Não foi possível listar as pastas para restaurar"
#: crates/pdfs-gui/src/app/pages/devices.rs:759
#: crates/pdfs-gui/src/app/pages/devices.rs:763
msgid ""
"Tick the folders to sync to this machine, and adjust where each one should "
"live."
@@ -2236,19 +2243,19 @@ msgstr ""
"Marque as pastas a sincronizar com esta máquina e ajuste onde cada uma deve "
"ficar."
#: crates/pdfs-gui/src/app/pages/devices.rs:782
#: crates/pdfs-gui/src/app/pages/devices.rs:786
msgid "Restore Folders"
msgstr "Restaurar pastas"
#: crates/pdfs-gui/src/app/pages/devices.rs:789
#: crates/pdfs-gui/src/app/pages/devices.rs:793
msgid "Restore"
msgstr "Restaurar"
#: crates/pdfs-gui/src/app/pages/devices.rs:822
#: crates/pdfs-gui/src/app/pages/devices.rs:826
msgid "Restoring folders…"
msgstr "Restaurando pastas…"
#: crates/pdfs-gui/src/app/pages/devices.rs:834
#: crates/pdfs-gui/src/app/pages/devices.rs:838
#, rust-format
msgid ""
"These folders are backed up from “{name}”. Restored folders keep syncing "
@@ -2257,36 +2264,36 @@ msgstr ""
"Estas pastas têm backup a partir de “{name}”. As pastas restauradas "
"continuam sincronizando com a cópia daquele computador."
#: crates/pdfs-gui/src/app/pages/devices.rs:837
#: crates/pdfs-gui/src/app/pages/devices.rs:841
msgid "These folders are backed up under this computer in Proton Drive."
msgstr "Estas pastas têm backup sob este computador no Proton Drive."
#: crates/pdfs-gui/src/app/pages/devices.rs:846
#: crates/pdfs-gui/src/app/pages/devices.rs:850
#, rust-format
msgid "Nothing to restore — “{name}”'s folders are all synced here."
msgstr ""
"Nada a restaurar — as pastas de “{name}” já estão todas sincronizadas aqui."
#: crates/pdfs-gui/src/app/pages/devices.rs:849
#: crates/pdfs-gui/src/app/pages/devices.rs:853
msgid "Nothing to restore — this computer's folders are all synced here."
msgstr ""
"Nada a restaurar — as pastas deste computador já estão todas sincronizadas "
"aqui."
#: crates/pdfs-gui/src/app/pages/devices.rs:873
#: crates/pdfs-gui/src/app/pages/devices.rs:877
msgid "Folder will switch to online only"
msgstr "A pasta passará a ser somente online"
#: crates/pdfs-gui/src/app/pages/devices.rs:875
#: crates/pdfs-gui/src/app/pages/devices.rs:879
msgid "Folder will download and stay synced"
msgstr "A pasta será baixada e permanecerá sincronizada"
#: crates/pdfs-gui/src/app/pages/devices.rs:879
#: crates/pdfs-gui/src/app/pages/devices.rs:883
#: crates/pdfs-gui/src/app/pages/devices.rs:887
msgid "Couldn't change mode"
msgstr "Não foi possível alterar o modo"
#: crates/pdfs-gui/src/app/pages/devices.rs:915
#: crates/pdfs-gui/src/app/pages/devices.rs:919
#, rust-format
msgid ""
"Stop syncing “{path}”?\n"
@@ -2303,7 +2310,7 @@ msgstr ""
"uma cópia local, cancele, mude a pasta para Sincronizada e aguarde o "
"download terminar antes de removê-la."
#: crates/pdfs-gui/src/app/pages/devices.rs:921
#: crates/pdfs-gui/src/app/pages/devices.rs:925
#, rust-format
msgid ""
"Stop syncing “{path}”?\n"
@@ -2316,68 +2323,68 @@ msgstr ""
"Os arquivos locais permanecem neste disco e simplesmente deixam de ser "
"sincronizados. Escolha se também deseja excluir a cópia no Proton Drive."
#: crates/pdfs-gui/src/app/pages/devices.rs:926
#: crates/pdfs-gui/src/app/pages/devices.rs:930
msgid "Stop Syncing Folder?"
msgstr "Parar de sincronizar a pasta?"
#: crates/pdfs-gui/src/app/pages/devices.rs:931
#: crates/pdfs-gui/src/app/pages/devices.rs:935
msgid "Also delete from Proton Drive"
msgstr "Também excluir do Proton Drive"
#: crates/pdfs-gui/src/app/pages/devices.rs:933
#: crates/pdfs-gui/src/app/pages/devices.rs:937
msgid "Deletes the only copy of these files."
msgstr "Exclui a única cópia destes arquivos."
#: crates/pdfs-gui/src/app/pages/devices.rs:935
#: crates/pdfs-gui/src/app/pages/devices.rs:939
msgid "The local copy is unaffected."
msgstr "A cópia local não é afetada."
#: crates/pdfs-gui/src/app/pages/devices.rs:942
#: crates/pdfs-gui/src/app/pages/devices.rs:946
msgid "Stop Syncing"
msgstr "Parar de sincronizar"
#: crates/pdfs-gui/src/app/pages/devices.rs:955
#: crates/pdfs-gui/src/app/pages/devices.rs:959
msgid "Stopped syncing folder"
msgstr "A pasta deixou de ser sincronizada"
#: crates/pdfs-gui/src/app/pages/devices.rs:956
#: crates/pdfs-gui/src/app/pages/devices.rs:960
msgid "Couldn't stop syncing the folder"
msgstr "Não foi possível parar de sincronizar a pasta"
#: crates/pdfs-gui/src/app/pages/devices.rs:967
#: crates/pdfs-gui/src/app/pages/devices.rs:971
msgid "Rename Computer"
msgstr "Renomear computador"
#. Translators: {name} is the computer's current name.
#: crates/pdfs-gui/src/app/pages/devices.rs:969
#: crates/pdfs-gui/src/app/pages/devices.rs:973
#, rust-format
msgid "Rename “{name}”."
msgstr "Renomear “{name}”."
#: crates/pdfs-gui/src/app/pages/devices.rs:994
#: crates/pdfs-gui/src/app/pages/devices.rs:1006
#: crates/pdfs-gui/src/app/pages/devices.rs:998
#: crates/pdfs-gui/src/app/pages/devices.rs:1010
msgid "Couldn't rename the computer"
msgstr "Não foi possível renomear o computador"
#: crates/pdfs-gui/src/app/pages/devices.rs:995
#: crates/pdfs-gui/src/app/pages/devices.rs:999
msgid "A name is required."
msgstr "Um nome é obrigatório."
#: crates/pdfs-gui/src/app/pages/devices.rs:1005
#: crates/pdfs-gui/src/app/pages/devices.rs:1009
msgid "Computer renamed"
msgstr "Computador renomeado"
#. Translators: {name} is the computer's name, which the user must type.
#: crates/pdfs-gui/src/app/pages/devices.rs:1018
#: crates/pdfs-gui/src/app/pages/devices.rs:1022
#, rust-format
msgid "Type “{name}” to confirm"
msgstr "Digite “{name}” para confirmar"
#: crates/pdfs-gui/src/app/pages/devices.rs:1023
#: crates/pdfs-gui/src/app/pages/devices.rs:1027
msgid "Remove Computer?"
msgstr "Remover computador?"
#: crates/pdfs-gui/src/app/pages/devices.rs:1026
#: crates/pdfs-gui/src/app/pages/devices.rs:1030
#, rust-format
msgid ""
"Remove “{name}” from this account?\n"
@@ -2392,25 +2399,25 @@ msgstr ""
"naquele próprio computador não são tocados — mas isso não pode ser desfeito "
"daqui."
#: crates/pdfs-gui/src/app/pages/devices.rs:1032
#: crates/pdfs-gui/src/app/pages/devices.rs:1036
#: crates/pdfs-gui/src/app/pages/shared.rs:1028
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:529
msgid "Remove"
msgstr "Remover"
#: crates/pdfs-gui/src/app/pages/devices.rs:1049
#: crates/pdfs-gui/src/app/pages/devices.rs:1053
msgid "Computer removed"
msgstr "Computador removido"
#: crates/pdfs-gui/src/app/pages/devices.rs:1050
#: crates/pdfs-gui/src/app/pages/devices.rs:1054
msgid "Couldn't remove the computer"
msgstr "Não foi possível remover o computador"
#: crates/pdfs-gui/src/app/pages/devices.rs:1068
#: crates/pdfs-gui/src/app/pages/devices.rs:1072
msgid "Continue This Backup Here?"
msgstr "Continuar este backup aqui?"
#: crates/pdfs-gui/src/app/pages/devices.rs:1071
#: crates/pdfs-gui/src/app/pages/devices.rs:1075
#, rust-format
msgid ""
"This computer takes over the backup of “{name}”, for example after a "
@@ -2429,20 +2436,50 @@ msgstr ""
"movidas. Depois, use “Restaurar neste computador” para recuperar o que "
"“{name}” sincronizava."
#: crates/pdfs-gui/src/app/pages/devices.rs:1076
#: crates/pdfs-gui/src/app/pages/devices.rs:1080
msgid "Continue Here"
msgstr "Continuar aqui"
#. Translators: {name} is the name of the computer whose backup this one took over.
#: crates/pdfs-gui/src/app/pages/devices.rs:1083
#: crates/pdfs-gui/src/app/pages/devices.rs:1087
#, rust-format
msgid "Now backing up as “{name}”"
msgstr "Agora fazendo backup como “{name}”"
#: crates/pdfs-gui/src/app/pages/devices.rs:1092
#: crates/pdfs-gui/src/app/pages/devices.rs:1096
msgid "Couldn't continue that backup here"
msgstr "Não foi possível continuar esse backup aqui"
#: crates/pdfs-gui/src/app/pages/devices.rs:1112
msgid "Move Backup to This Computer?"
msgstr "Mover o backup para este computador?"
#: crates/pdfs-gui/src/app/pages/devices.rs:1115
#, rust-format
msgid ""
"The folders backed up by “{name}” move into this computer's backup in Proton "
"Drive, and you choose where they go on this computer. “{name}” stays in your "
"account, without those folders.\n"
"\n"
"Stop Proton Drive on “{name}” first. Otherwise it sees its folders disappear."
msgstr ""
"As pastas cujo backup é feito por “{name}” passam para o backup deste "
"computador no Proton Drive, e você escolhe onde ficam neste computador. "
"“{name}” continua na sua conta, sem essas pastas.\n"
"\n"
"Feche primeiro o Proton Drive em “{name}”. Caso contrário, ele verá as "
"pastas sumirem."
#. Translators: {name} is the name of the computer whose folders moved to this one.
#: crates/pdfs-gui/src/app/pages/devices.rs:1127
#, rust-format
msgid "Moved the backup of “{name}”"
msgstr "Backup de “{name}” movido"
#: crates/pdfs-gui/src/app/pages/devices.rs:1141
msgid "Couldn't move that backup"
msgstr "Não foi possível mover esse backup"
#: crates/pdfs-gui/src/app/pages/duplicates.rs:81
msgctxt "duplicates"
msgid "Exact"