fix(sync,gui,cli): get a synced folder unstuck when its local copy is gone (#46)

A mirror folder whose files were all gone from this computer stayed in
error for good. The wipe guard rightly refuses to trash the whole folder
on Drive, but nothing got the folder out of that state: a queued switch
to on-demand waits for a pass that ends idle, and its push pass hit the
same guard. Only removing the folder from sync cleared the baseline that
made the empty folder read as "delete everything".

- The push pass for a switch to on-demand forgets the baseline rows of a
  local copy that is gone in full instead of trashing them, so the
  switch goes ahead and the mount shows what Drive has.
- New Request::ResetSyncFolder, `pdfs sync reset ID` and "Sync From
  Scratch…" in a synced folder's menu clear a mirror folder's baseline
  (and a queued switch to on-demand, whose push pass would upload a
  duplicate of every file). The next pass compares both sides as on the
  first sync: one-sided files are copied across, files that differ keep
  both versions, nothing is deleted.
- The wipe guards' messages name the reset; restore logs why it skipped
  a folder.

Two simulations cover it. The on-demand one failed in exactly the
reported state (mirror, pending ondemand, error) before the fix.
All 8 catalogs translated.
This commit is contained in:
nvrl committed 2026-10-26 17:45:22 +01:00
1 parent ea10a43216
commit a5acae41b3
23 files changed
+832 -238

No files matched your search

+8
View File
@@ -709,6 +709,13 @@ enum SyncCmd {
/// Optional synced-folder id; omit to reconcile every folder. /// Optional synced-folder id; omit to reconcile every folder.
id: Option<i64>, id: Option<i64>,
}, },
/// Forget what a synced folder synced before and compare it with Proton
/// Drive afresh: what one side has alone is copied to the other, and a file
/// that differs keeps both versions. Nothing is deleted.
Reset {
/// Synced-folder id (from `sync list`).
id: i64,
},
/// Pause syncing: queued uploads and mirror folders wait, reads keep working. /// Pause syncing: queued uploads and mirror folders wait, reads keep working.
Pause { Pause {
/// End the pause by itself after this long, e.g. `30m`, `1h`, `2d`. /// End the pause by itself after this long, e.g. `30m`, `1h`, `2d`.
@@ -1165,6 +1172,7 @@ fn cmd_sync(action: SyncCmd) -> Result<()> {
})?)? })?)?
} }
SyncCmd::Now { id } => ok_or_bail(control_request(CtlRequest::SyncNow { id })?)?, SyncCmd::Now { id } => ok_or_bail(control_request(CtlRequest::SyncNow { id })?)?,
SyncCmd::Reset { id } => ok_or_bail(control_request(CtlRequest::ResetSyncFolder { id })?)?,
SyncCmd::Pause { SyncCmd::Pause {
folder: Some(id), .. folder: Some(id), ..
} => ok_or_bail(control_request(CtlRequest::SetSyncFolderPaused { } => ok_or_bail(control_request(CtlRequest::SetSyncFolderPaused {
+6
View File
@@ -480,6 +480,11 @@ pub enum Request {
/// Pause or resume one mirror folder's reconcile, independent of the /// Pause or resume one mirror folder's reconcile, independent of the
/// global pause. Persisted until resumed. Replies with [`Response::Ok`]. /// global pause. Persisted until resumed. Replies with [`Response::Ok`].
SetSyncFolderPaused { id: i64, paused: bool }, SetSyncFolderPaused { id: i64, paused: bool },
/// Forget what a mirror folder synced before, so its next pass compares
/// both sides afresh: what is on one side only is copied to the other, and
/// a file that differs keeps both versions. Nothing is deleted. Replies
/// with [`Response::Ok`].
ResetSyncFolder { id: i64 },
/// Force a reconcile pass: one folder by id, or all when `id` is `None`. /// Force a reconcile pass: one folder by id, or all when `id` is `None`.
/// Replies with [`Response::Ok`]. /// Replies with [`Response::Ok`].
SyncNow { id: Option<i64> }, SyncNow { id: Option<i64> },
@@ -3209,6 +3214,7 @@ mod tests {
id: 3, id: 3,
paused: true, paused: true,
}, },
Request::ResetSyncFolder { id: 3 },
Request::SetBandwidthLimits { Request::SetBandwidthLimits {
upload: 1_000_000, upload: 1_000_000,
download: 0, download: 0,
+8
View File
@@ -388,6 +388,7 @@ fn touched_topics(request: &CtlRequest) -> &'static [Topic] {
| R::RemoveSyncFolder { .. } | R::RemoveSyncFolder { .. }
| R::SetSyncFolderMode { .. } | R::SetSyncFolderMode { .. }
| R::SetSyncFolderPaused { .. } | R::SetSyncFolderPaused { .. }
| R::ResetSyncFolder { .. }
| R::RestoreSyncFolders { .. } | R::RestoreSyncFolders { .. }
| R::RestoreDeviceFolders { .. } => &[Topic::Locations, Topic::Devices], | R::RestoreDeviceFolders { .. } => &[Topic::Locations, Topic::Devices],
R::RetryPendingOp { .. } => &[Topic::Queue], R::RetryPendingOp { .. } => &[Topic::Queue],
@@ -1432,6 +1433,13 @@ fn handle_control_conn(core: &Core, username: &str, mountpoint: &Path, stream: U
Err(e) => CtlResponse::error(e), Err(e) => CtlResponse::error(e),
} }
} }
Ok(CtlRequest::ResetSyncFolder { id }) => match core.reset_sync_folder(id) {
Ok(message) => {
core.log_activity(ActivityKind::Sync, &message, "", true);
CtlResponse::Ok { message }
}
Err(e) => CtlResponse::error(e),
},
Ok(CtlRequest::SyncNow { id }) => { Ok(CtlRequest::SyncNow { id }) => {
core.sync_now(id); core.sync_now(id);
CtlResponse::Ok { CtlResponse::Ok {
+44
View File
@@ -1080,6 +1080,50 @@ impl Core {
} }
} }
/// Forget what a mirror folder synced before, so its next pass compares the
/// two sides as on the first sync: what one side has alone is copied to the
/// other, and a file that differs is kept twice as a conflict. Nothing is
/// deleted on either side.
///
/// This is the way out for a folder whose passes refuse to run because its
/// whole local copy, or its whole copy on Drive, is gone (#46). The baseline
/// is what makes that read as "delete everything", and it is what this
/// drops. A queued switch to on-demand is dropped with it: the push pass
/// that switch runs reads an unrecorded local file as new and would upload
/// a second copy of every file Drive already has.
pub(crate) fn reset_sync_folder(&self, id: i64) -> CoreResult<String> {
let lock = self.sync_lock(id);
let Some(_guard) = lock.try_lock() else {
return Err(CoreError::conflict(
"this folder is syncing; try again when the pass ends",
));
};
let folder = self
.db
.sync_folder_get(id)
.map_err(|e| CoreError::internal(format!("db: {e:?}")))?
.ok_or_else(|| CoreError::not_found(format!("no synced folder with id {id}")))?;
if folder.mode != "mirror" {
return Err(CoreError::invalid(
"an online-only folder keeps nothing on this computer to sync from scratch",
));
}
self.db
.sync_entries_clear(id)
.map_err(|e| CoreError::internal(format!("db: {e:?}")))?;
if folder.pending_mode.as_deref() == Some("ondemand") {
self.db
.sync_folder_set_pending_mode(id, None)
.map_err(|e| CoreError::internal(format!("db: {e:?}")))?;
}
let _ = self.sync_tx.send(sync::SyncMsg::Reconcile(id));
info!(id, path = %folder.local_path, "sync folder reset");
Ok(format!(
"{} will sync from scratch",
base_name(&folder.local_path)
))
}
/// Spawn a secondary FUSE session rooted at `root` over `local` from a /// Spawn a secondary FUSE session rooted at `root` over `local` from a
/// [`Core::fork_state`] sibling. Clears any stale kernel mount first (a crashed run can leave /// [`Core::fork_state`] sibling. Clears any stale kernel mount first (a crashed run can leave
/// one, which would fail the fresh mount with EBUSY). /// one, which would fail the fresh mount with EBUSY).
+4
View File
@@ -450,6 +450,10 @@ impl Core {
} }
let _ = self.sync_tx.send(sync::SyncMsg::Rewatch); let _ = self.sync_tx.send(sync::SyncMsg::Rewatch);
// The reply is gone once the app has shown it; the log keeps why.
for reason in &skipped {
info!(reason, "restore skipped a folder");
}
let mut message = format!("restored {restored} folder(s)"); let mut message = format!("restored {restored} folder(s)");
if !skipped.is_empty() { if !skipped.is_empty() {
message.push_str(&format!("; skipped: {}", skipped.join(", "))); message.push_str(&format!("; skipped: {}", skipped.join(", ")));
+108
View File
@@ -2873,4 +2873,112 @@ mod tests {
assert!(matches!(daemon.stop(), Ok(MountOutcome::Shutdown))); assert!(matches!(daemon.stop(), Ok(MountOutcome::Shutdown)));
let _ = std::fs::remove_dir_all(&dir); let _ = std::fs::remove_dir_all(&dir);
} }
/// The synced folder `id` as the daemon lists it.
fn listed_folder(daemon: &Daemon, id: i64) -> Option<control::SyncFolderInfo> {
match daemon.request(&Request::ListSyncFolders) {
Ok(Response::SyncFolders { items }) => items.into_iter().find(|f| f.id == id),
_ => None,
}
}
/// A mirror folder holding `a.txt` and `sub/b.txt`, synced to Drive, whose
/// local copy is then deleted in full while the folder is paused, so no
/// pass sees half of it. Waits for the pass that refuses to run (#46).
fn folder_whose_local_copy_is_gone(daemon: &Daemon, drive: &FakeDrive, local: &Path) -> i64 {
let id = sync_folder(daemon, local, "mirror");
std::fs::write(local.join("a.txt"), b"alpha").unwrap();
std::fs::create_dir(local.join("sub")).unwrap();
std::fs::write(local.join("sub/b.txt"), b"beta").unwrap();
daemon.request(&Request::SyncNow { id: Some(id) }).unwrap();
let on_drive = |name: &str, content: &[u8]| {
drive.tree().iter().any(|(path, entry)| {
path.ends_with(name) && *entry == Entry::File(Arc::new(content.to_vec()))
})
};
assert!(
wait_until(Duration::from_secs(30), || on_drive("a.txt", b"alpha")
&& on_drive("sub/b.txt", b"beta")
&& listed_folder(daemon, id).is_some_and(|f| f.state == "idle")),
"the folder synced: {:?} {:?}",
listed_folder(daemon, id),
drive.tree().keys().collect::<Vec<_>>()
);
daemon
.request(&Request::SetSyncFolderPaused { id, paused: true })
.unwrap();
std::fs::remove_file(local.join("a.txt")).unwrap();
std::fs::remove_dir_all(local.join("sub")).unwrap();
daemon
.request(&Request::SetSyncFolderPaused { id, paused: false })
.unwrap();
daemon.request(&Request::SyncNow { id: Some(id) }).unwrap();
assert!(
wait_until(Duration::from_secs(30), || listed_folder(daemon, id)
.is_some_and(|f| f.state == "error")),
"the pass refused to trash everything: {:?}",
listed_folder(daemon, id)
);
assert!(
on_drive("a.txt", b"alpha") && on_drive("sub/b.txt", b"beta"),
"nothing was trashed on Drive: {:?}",
drive.tree().keys().collect::<Vec<_>>()
);
id
}
#[test]
#[ignore = "mounts FUSE: run with `cargo test -p pdfs-fuse sim:: -- --ignored`"]
fn a_folder_whose_local_copy_is_gone_downloads_again_after_a_reset() {
let drive = FakeDrive::new();
let dir = scratch("reset-gone-local-copy");
let daemon = Daemon::start(&dir, drive.client(1, Faults::lan())).unwrap();
let local = dir.join("docs");
let id = folder_whose_local_copy_is_gone(&daemon, &drive, &local);
daemon.request(&Request::ResetSyncFolder { id }).unwrap();
let has = |rel: &str, content: &[u8]| {
std::fs::read(local.join(rel)).is_ok_and(|bytes| bytes == content)
};
assert!(
wait_until(Duration::from_secs(30), || has("a.txt", b"alpha")
&& has("sub/b.txt", b"beta")
&& listed_folder(&daemon, id).is_some_and(|f| f.state == "idle")),
"the reset downloaded the folder again: {:?}",
listed_folder(&daemon, id)
);
assert!(matches!(daemon.stop(), Ok(MountOutcome::Shutdown)));
let _ = std::fs::remove_dir_all(&dir);
}
#[test]
#[ignore = "mounts FUSE: run with `cargo test -p pdfs-fuse sim:: -- --ignored`"]
fn a_folder_whose_local_copy_is_gone_still_goes_on_demand() {
let drive = FakeDrive::new();
let dir = scratch("ondemand-gone-local-copy");
let daemon = Daemon::start(&dir, drive.client(1, Faults::lan())).unwrap();
let local = dir.join("docs");
let id = folder_whose_local_copy_is_gone(&daemon, &drive, &local);
daemon
.request(&Request::SetSyncFolderMode {
id,
mode: "ondemand".into(),
})
.unwrap();
assert!(
wait_until(Duration::from_secs(30), || listed_folder(&daemon, id)
.is_some_and(|f| f.mode == "ondemand" && f.pending_mode.is_none())
&& is_mounted(&local)),
"the queued switch landed: {:?}",
listed_folder(&daemon, id)
);
assert_eq!(std::fs::read(local.join("a.txt")).unwrap(), b"alpha");
assert_eq!(std::fs::read(local.join("sub/b.txt")).unwrap(), b"beta");
assert!(matches!(daemon.stop(), Ok(MountOutcome::Shutdown)));
let _ = std::fs::remove_dir_all(&dir);
}
} }
+34 -2
View File
@@ -369,7 +369,20 @@ impl Core {
// guard on every pass — wedging the folder's sync permanently — the // guard on every pass — wedging the folder's sync permanently — the
// moment a rule covers the whole tree. // moment a rule covers the whole tree.
let tracked = tracked_baseline(&baseline, rules, &unscanned); let tracked = tracked_baseline(&baseline, rules, &unscanned);
guard_local_wipe(&tracked, &local)?; // A local copy that is gone in its entirety is not trashed on Drive,
// for the reason `guard_local_wipe` gives. A full pass stops there, but
// this one exists for a switch to on-demand, which needs nothing local
// and leaves Drive as it is: refusing the pass would only keep the
// folder out of `idle`, wedging the switch for good (#46). So the pass
// forgets those paths instead of trashing them, and the mount then
// shows everything Drive still has.
let local_gone = match guard_local_wipe(&tracked, &local) {
Ok(()) => false,
Err(reason) => {
warn!(id = folder_id, %reason, "sync: going on-demand without trashing anything on Drive");
true
}
};
// The remote folder uids come from the baseline instead of a walk: every // The remote folder uids come from the baseline instead of a walk: every
// directory this device has synced recorded its uid there when it was // directory this device has synced recorded its uid there when it was
@@ -579,8 +592,27 @@ impl Core {
// showing the folder's remote contents — otherwise everything they deleted // showing the folder's remote contents — otherwise everything they deleted
// comes back the moment the switch lands. Shallowest first, skipping anything // comes back the moment the switch lands. Shallowest first, skipping anything
// under a folder already trashed (its children went with it). // under a folder already trashed (its children went with it).
let deletions = local_deletions(&tracked, &local);
if local_gone {
// Forgotten instead of trashed. A row left behind would read to
// the switch as a deletion not on Drive yet and withdraw it, and
// to a later full pass as a reason to stop again. Forgotten, a full
// pass downloads the paths again.
let mut forgotten: HashSet<&str> = HashSet::new();
for rel in &deletions {
let mut parent = parent_rel(rel);
while !parent.is_empty() && !forgotten.contains(parent) {
parent = parent_rel(parent);
}
if parent.is_empty() {
let _ = self.db.sync_entries_remove_subtree(folder_id, rel);
forgotten.insert(rel);
}
}
return Ok(outcome);
}
let mut trashed: Vec<String> = Vec::new(); let mut trashed: Vec<String> = Vec::new();
for rel in &local_deletions(&tracked, &local) { for rel in &deletions {
if trashed if trashed
.iter() .iter()
.any(|dir| rel.starts_with(&format!("{dir}/"))) .any(|dir| rel.starts_with(&format!("{dir}/")))
+4 -2
View File
@@ -192,7 +192,8 @@ pub(super) fn guard_local_wipe<B, L>(
if !baseline.is_empty() && baseline.keys().all(|rel| !local.contains_key(rel)) { if !baseline.is_empty() && baseline.keys().all(|rel| !local.contains_key(rel)) {
return Err(format!( return Err(format!(
"every one of the {} synced paths is missing locally; refusing to trash \ "every one of the {} synced paths is missing locally; refusing to trash \
them on Drive. Check that the folder is mounted and readable.", them on Drive. Check that the folder is mounted and readable; to download \
them again, sync the folder from scratch.",
baseline.len() baseline.len()
)); ));
} }
@@ -213,7 +214,8 @@ pub(super) fn guard_remote_wipe<B, R>(
if !baseline.is_empty() && baseline.keys().all(|rel| !remote.contains_key(rel)) { if !baseline.is_empty() && baseline.keys().all(|rel| !remote.contains_key(rel)) {
return Err(format!( return Err(format!(
"every one of the {} synced paths is missing on Proton Drive; refusing to \ "every one of the {} synced paths is missing on Proton Drive; refusing to \
delete them here. If they were deleted on purpose, remove the folder from sync.", delete them here. If they were deleted on purpose, remove the folder from sync; \
to upload them again, sync the folder from scratch.",
baseline.len() baseline.len()
)); ));
} }
+51 -1
View File
@@ -1506,8 +1506,13 @@ fn add_device_items(ui: &Rc<Ui>, menu: &mut ActionMenu, spec: &MountSpec, id: i6
} else { } else {
gettext("Pause Syncing") gettext("Pause Syncing")
}; };
let ui_pause = ui.clone();
menu.item(&label, move || set_folder_paused(&ui_pause, id, !paused));
let ui = ui.clone(); let ui = ui.clone();
menu.item(&label, move || set_folder_paused(&ui, id, !paused)); let path = spec.local_path.clone();
menu.item(&gettext("Sync From Scratch…"), move || {
confirm_reset_sync_folder(&ui, id, &path)
});
menu.section(); menu.section();
} }
let ui = ui.clone(); let ui = ui.clone();
@@ -1520,6 +1525,51 @@ fn add_device_items(ui: &Rc<Ui>, menu: &mut ActionMenu, spec: &MountSpec, id: i6
}); });
} }
/// Ask before syncing a folder from scratch. Nothing is deleted, but files
/// that differ come back as conflict copies, so it is not a click to make by
/// accident.
fn confirm_reset_sync_folder(ui: &Rc<Ui>, id: i64, path: &str) {
let dialog = adw::AlertDialog::builder()
.heading(gettext("Sync From Scratch?"))
// Translators: {path} is a local folder path.
.body(gettext_f("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.", &[("path", path)]))
.build();
dialog.add_response("cancel", &gettext("Cancel"));
dialog.add_response("reset", &gettext("Sync From Scratch"));
dialog.set_response_appearance("reset", adw::ResponseAppearance::Suggested);
dialog.set_default_response(Some("cancel"));
dialog.set_close_response("cancel");
let win = ui_window(ui);
let ui = ui.clone();
dialog.connect_response(None, move |_, response| {
if response == "reset" {
reset_sync_folder(&ui, id);
}
});
dialog.present(win.as_ref());
}
/// Forget a folder's sync records, then repaint so its row shows the new pass.
fn reset_sync_folder(ui: &Rc<Ui>, id: i64) {
let rx = spawn_request(ui.dirs.control_socket(), Request::ResetSyncFolder { id });
let ui = ui.clone();
glib::spawn_future_local(async move {
let failed = gettext("Couldn't sync the folder from scratch");
match rx.recv().await {
Ok(Ok(Response::Ok { .. })) => toast(&ui, &gettext("Syncing folder…")),
Ok(Ok(Response::Error { message, kind })) => {
toast_failure(&ui, &failed, &message, kind)
}
_ => toast_error(
&ui,
&failed,
&gettext("The Proton Drive service didn't respond."),
),
}
refresh_locations(&ui);
});
}
/// Ask before making a synced folder online only: the switch frees disk space /// Ask before making a synced folder online only: the switch frees disk space
/// by removing the local copies, which is not something to do by accident. /// by removing the local copies, which is not something to do by accident.
fn confirm_online_only(ui: &Rc<Ui>, id: i64, path: &str) { fn confirm_online_only(ui: &Rc<Ui>, id: i64, path: &str) {
+31
View File
@@ -101,6 +101,7 @@ a live account since.
| Entry | Title | | Entry | Title |
|---|---| |---|---|
| [B256](#b256--pdfs-copy-right-after-a-save-copies-the-old-version) | `pdfs copy` right after a save copies the old version | | [B256](#b256--pdfs-copy-right-after-a-save-copies-the-old-version) | `pdfs copy` right after a save copies the old version |
| [B255](#b255--a-synced-folder-whose-files-are-all-gone-here-is-stuck-for-good) | A synced folder whose files are all gone here is stuck for good |
| [B254](#b254--an-edit-in-the-same-second-as-a-new-upload-never-arrives) | An edit in the same second as a new upload never arrives | | [B254](#b254--an-edit-in-the-same-second-as-a-new-upload-never-arrives) | An edit in the same second as a new upload never arrives |
| [B253](#b253--the-app-shows-the-sign-in-page-when-the-keyring-is-locked) | The app shows the sign-in page when the keyring is locked | | [B253](#b253--the-app-shows-the-sign-in-page-when-the-keyring-is-locked) | The app shows the sign-in page when the keyring is locked |
| [B252](#b252--computers-sharing-a-device-overwrite-each-others-profile) | Computers sharing a device overwrite each other's profile | | [B252](#b252--computers-sharing-a-device-overwrite-each-others-profile) | Computers sharing a device overwrite each other's profile |
@@ -382,6 +383,36 @@ A move checks the same set.
--- ---
### B255 — A synced folder whose files are all gone here is stuck for good
**Status:** Fixed, not verified live
**Found:** 2026-10-26, issue #46: a folder restored from another computer never downloaded.
**Where:** `push_pass` in `crates/pdfs-fuse/src/sync.rs`; `reset_sync_folder` in
`crates/pdfs-fuse/src/devices.rs`
**Repro:** Sync a folder in mirror mode, then delete all of its files on this computer while
the folder is paused. Resume it. Every pass stops with `every one of the N synced paths is
missing locally`, the folder stays in error, and a switch to online only waits for good.
**Cause.** The wipe guard is right to stop a pass that would trash the whole folder on Drive.
But nothing got the folder out of that state. A switch to on-demand waits for a pass that ends
`idle`, and its push pass hit the same guard. The baseline that made the empty folder read as
"delete everything" could only be cleared by removing the folder from sync. How the reporter's
folder lost its files is not known yet.
**Fix.** The push pass for a switch to on-demand forgets the baseline rows of a local copy that
is gone in full, instead of trashing them on Drive, so the switch goes ahead and the mount shows
what Drive has. **Sync From Scratch…** in the app and `pdfs sync reset ID` clear a mirror
folder's baseline, so the next pass compares both sides as on the first sync: one-sided files
are copied across, files that differ keep both versions, and nothing is deleted. Restore now
logs why it skipped a folder.
**Test:** The simulations `a_folder_whose_local_copy_is_gone_still_goes_on_demand` (which
failed in exactly the reported state before the fix) and
`a_folder_whose_local_copy_is_gone_downloads_again_after_a_reset`.
---
### B254 — An edit in the same second as a new upload never arrives ### B254 — An edit in the same second as a new upload never arrives
**Status:** Fixed, not verified live **Status:** Fixed, not verified live
+11
View File
@@ -33,6 +33,11 @@ scratch (user data in `staging/` and `recovery/` is never touched by this).
- **Folder sizes.** **Details** shows how much a folder holds and how many items are in it, as - **Folder sizes.** **Details** shows how much a folder holds and how many items are in it, as
Proton Drive counts it, including items in the trash. From a terminal: `pdfs du PATH`. Proton Drive counts it, including items in the trash. From a terminal: `pdfs du PATH`.
- **Sync a folder from scratch.** In a synced folder's menu on **Sync → Folders**, **Sync From
Scratch…** forgets what was synced before and compares the folder with Proton Drive again. A
file on one side only is copied to the other, and a file that differs keeps both versions.
Nothing is deleted. From the terminal: `pdfs sync reset ID`.
### Changed ### Changed
- **Copying a file inside the mount is faster** when the computer already has the file, for - **Copying a file inside the mount is faster** when the computer already has the file, for
example with `cp` or a file manager: the copy is made on this computer, about four times example with `cp` or a file manager: the copy is made on this computer, about four times
@@ -48,6 +53,12 @@ scratch (user data in `staging/` and `recovery/` is never touched by this).
### Fixed ### Fixed
- **A synced folder whose files were all gone from this computer no longer gets stuck** (#46).
The sync still refuses to delete everything on Proton Drive, but a switch to online only now
goes ahead and shows what Proton Drive has, instead of waiting for good. To download the
files again instead, sync the folder from scratch. Restoring folders also logs why it
skipped a folder.
- **Saved public links show the name of what they point at**, in the app and in `pdfs bookmarks`, - **Saved public links show the name of what they point at**, in the app and in `pdfs bookmarks`,
instead of "Shared link". For a link with a custom password, the address no longer has the custom instead of "Shared link". For a link with a custom password, the address no longer has the custom
password stuck to its end, so it matches the link the web shows and the page asks for the password stuck to its end, so it matches the link the web shows and the page asks for the
+1
View File
@@ -84,6 +84,7 @@ commands are for scripts and for cases where the mount is not available.
| `pdfs sync rm ID [--delete-remote]` | Stop syncing. Local files stay; `--delete-remote` also removes the copy on Proton Drive. | | `pdfs sync rm ID [--delete-remote]` | Stop syncing. Local files stay; `--delete-remote` also removes the copy on Proton Drive. |
| `pdfs sync mode ID mirror\|ondemand` | Switch between a full local copy (`mirror`) and online only (`ondemand`). | | `pdfs sync mode ID mirror\|ondemand` | Switch between a full local copy (`mirror`) and online only (`ondemand`). |
| `pdfs sync now [ID]` | Start a sync pass now, for all folders or one. | | `pdfs sync now [ID]` | Start a sync pass now, for all folders or one. |
| `pdfs sync reset ID` | Forget what a synced folder synced before and compare it with Proton Drive again. A file on one side only is copied to the other, and a file that differs keeps both versions. Nothing is deleted. |
| `pdfs sync pause [--for 1h] [--folder ID]` | Pause uploads and synced folders. Reading files keeps working. `--for` ends the pause by itself (`30m`, `1h`, `2d`). | | `pdfs sync pause [--for 1h] [--folder ID]` | Pause uploads and synced folders. Reading files keeps working. `--for` ends the pause by itself (`30m`, `1h`, `2d`). |
| `pdfs sync resume [--folder ID]` | Resume after a pause. | | `pdfs sync resume [--folder ID]` | Resume after a pause. |
| `pdfs sync limit [--up RATE] [--down RATE]` | Cap bandwidth, for example `500K` or `2M` per second. `0` removes a cap. Without options, prints the current caps. | | `pdfs sync limit [--up RATE] [--down RATE]` | Cap bandwidth, for example `500K` or `2M` per second. `0` removes a cap. Without options, prints the current caps. |
+8
View File
@@ -76,6 +76,14 @@ again when they move into a synced one.
Proton Drive. To delete the copy on Proton Drive as well, tick **Also delete from Proton Drive**, Proton Drive. To delete the copy on Proton Drive as well, tick **Also delete from Proton Drive**,
or add `--delete-remote`. or add `--delete-remote`.
## Sync a folder from scratch
**Sync From Scratch…** in the folder's menu, or `pdfs sync reset ID`, makes this computer forget
what it synced in the folder before and compare it with Proton Drive again, as on the first sync.
A file on one side only is copied to the other, and a file that differs keeps both versions.
Nothing is deleted. Use it when a folder's files went missing on this computer and the sync
refuses to go on (see [Troubleshooting](TROUBLESHOOTING.md#a-synced-folder-stays-in-error-and-nothing-downloads)).
## Excluding files with `.pdfsignore` ## Excluding files with `.pdfsignore`
Synced folders skip build output, dependency folders and editor leftovers. Two sets of rules Synced folders skip build output, dependency folders and editor leftovers. Two sets of rules
+16
View File
@@ -226,6 +226,22 @@ Check that:
`pdfs sync now` starts a sync pass at once. `pdfs sync now` starts a sync pass at once.
### A synced folder stays in error and nothing downloads
The log says `every one of the N synced paths is missing locally; refusing to trash them on
Drive`. The folder synced before, and now none of its files are on this computer. The sync
stops so that it does not delete them on Proton Drive too. Check that the folder is the right
one and that its disk is mounted. To get the files back, choose **Sync From Scratch…** in the
folder's menu on **Sync → Folders**, or run:
```bash
pdfs sync list # find the folder's ID
pdfs sync reset 1
```
This downloads what Proton Drive has and uploads what only this computer has. Nothing is deleted.
If you deleted the files on purpose, delete them on Proton Drive too, or stop syncing the folder.
### Files named `(sync-conflict …)` appeared ### Files named `(sync-conflict …)` appeared
The file changed in two places at once. Nothing was lost. See The file changed in two places at once. Nothing was lost. See
+56 -26
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n" "Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n" "Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-25 22:10+0100\n" "POT-Creation-Date: 2026-10-26 17:16+0100\n"
"PO-Revision-Date: 2026-09-23 12:00+0200\n" "PO-Revision-Date: 2026-09-23 12:00+0200\n"
"Last-Translator: Proton Drive for Linux contributors\n" "Last-Translator: Proton Drive for Linux contributors\n"
"Language-Team: German\n" "Language-Team: German\n"
@@ -64,7 +64,7 @@ msgstr "%A, %-d. %B %Y, %H:%M"
#: crates/pdfs-gui/src/app/pages/browser.rs:1249 #: crates/pdfs-gui/src/app/pages/browser.rs:1249
#: crates/pdfs-gui/src/app/pages/browser.rs:2167 #: crates/pdfs-gui/src/app/pages/browser.rs:2167
#: crates/pdfs-gui/src/app/pages/browser.rs:2246 #: crates/pdfs-gui/src/app/pages/browser.rs:2246
#: crates/pdfs-gui/src/app/pages/locations.rs:1667 #: crates/pdfs-gui/src/app/pages/locations.rs:1717
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:252 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:252
#: crates/pdfs-gui/src/app/pages/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171 #: crates/pdfs-gui/src/app/pages/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171
msgid "My files" msgid "My files"
@@ -258,8 +258,9 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/devices.rs:1186 #: crates/pdfs-gui/src/app/pages/devices.rs:1186
#: crates/pdfs-gui/src/app/pages/locations.rs:850 #: 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:1054
#: crates/pdfs-gui/src/app/pages/locations.rs:1531 #: crates/pdfs-gui/src/app/pages/locations.rs:1537
#: crates/pdfs-gui/src/app/pages/locations.rs:1581 #: crates/pdfs-gui/src/app/pages/locations.rs:1581
#: crates/pdfs-gui/src/app/pages/locations.rs:1631
#: crates/pdfs-gui/src/app/pages/login.rs:480 #: crates/pdfs-gui/src/app/pages/login.rs:480
#: crates/pdfs-gui/src/app/pages/login.rs:594 #: crates/pdfs-gui/src/app/pages/login.rs:594
#: crates/pdfs-gui/src/app/pages/login.rs:640 #: crates/pdfs-gui/src/app/pages/login.rs:640
@@ -1285,8 +1286,9 @@ msgstr "Alben konnten nicht geladen werden"
#: crates/pdfs-gui/src/app/pages/locations.rs:881 #: crates/pdfs-gui/src/app/pages/locations.rs:881
#: crates/pdfs-gui/src/app/pages/locations.rs:904 #: crates/pdfs-gui/src/app/pages/locations.rs:904
#: crates/pdfs-gui/src/app/pages/locations.rs:1123 #: crates/pdfs-gui/src/app/pages/locations.rs:1123
#: crates/pdfs-gui/src/app/pages/locations.rs:1623 #: crates/pdfs-gui/src/app/pages/locations.rs:1566
#: crates/pdfs-gui/src/app/pages/locations.rs:1643 #: crates/pdfs-gui/src/app/pages/locations.rs:1673
#: crates/pdfs-gui/src/app/pages/locations.rs:1693
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1504 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1504
#: crates/pdfs-gui/src/app/pages/photos.rs:1421 #: crates/pdfs-gui/src/app/pages/photos.rs:1421
#: crates/pdfs-gui/src/app/pages/photos.rs:2141 #: crates/pdfs-gui/src/app/pages/photos.rs:2141
@@ -2324,7 +2326,8 @@ msgid "Add Folder to Sync"
msgstr "Ordner zur Synchronisierung hinzufügen" msgstr "Ordner zur Synchronisierung hinzufügen"
#: crates/pdfs-gui/src/app/pages/devices.rs:691 #: crates/pdfs-gui/src/app/pages/devices.rs:691
#: crates/pdfs-gui/src/app/pages/locations.rs:1636 #: crates/pdfs-gui/src/app/pages/locations.rs:1559
#: crates/pdfs-gui/src/app/pages/locations.rs:1686
msgid "Syncing folder…" msgid "Syncing folder…"
msgstr "Ordner wird synchronisiert …" msgstr "Ordner wird synchronisiert …"
@@ -3249,16 +3252,41 @@ msgstr "Synchronisierung fortsetzen"
msgid "Pause Syncing" msgid "Pause Syncing"
msgstr "Synchronisierung pausieren" msgstr "Synchronisierung pausieren"
#: crates/pdfs-gui/src/app/pages/locations.rs:1518 #: crates/pdfs-gui/src/app/pages/locations.rs:1513
msgid "Sync From Scratch…"
msgstr "Neu synchronisieren …"
#: crates/pdfs-gui/src/app/pages/locations.rs:1523
msgid "Stop Syncing…" msgid "Stop Syncing…"
msgstr "Synchronisierung beenden …" msgstr "Synchronisierung beenden …"
#: crates/pdfs-gui/src/app/pages/locations.rs:1527 #: crates/pdfs-gui/src/app/pages/locations.rs:1533
msgid "Sync From Scratch?"
msgstr "Neu synchronisieren?"
#. Translators: {path} is a local folder path.
#: crates/pdfs-gui/src/app/pages/locations.rs:1535
#, rust-format
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 "Dieser Computer vergisst, was er in {path} bisher synchronisiert hat, und vergleicht den Ordner erneut mit Proton Drive. Es wird nichts gelöscht: Eine Datei, die nur auf einer Seite liegt, wird auf die andere kopiert, und von einer Datei, die sich unterscheidet, bleiben beide Versionen erhalten."
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
msgid "Sync From Scratch"
msgstr "Neu synchronisieren"
#: crates/pdfs-gui/src/app/pages/locations.rs:1557
msgid "Couldn't sync the folder from scratch"
msgstr "Der Ordner konnte nicht neu synchronisiert werden"
#: crates/pdfs-gui/src/app/pages/locations.rs:1577
msgid "Make Folder Online Only?" msgid "Make Folder Online Only?"
msgstr "Ordner auf „Nur online“ umstellen?" msgstr "Ordner auf „Nur online“ umstellen?"
#. Translators: {path} is a local folder path. #. Translators: {path} is a local folder path.
#: crates/pdfs-gui/src/app/pages/locations.rs:1529 #: crates/pdfs-gui/src/app/pages/locations.rs:1579
#, rust-format #, rust-format
msgid "" msgid ""
"Files in {path} will be removed from this computer and kept in Proton Drive " "Files in {path} will be removed from this computer and kept in Proton Drive "
@@ -3267,11 +3295,11 @@ msgstr ""
"Dateien in {path} werden von diesem Computer entfernt und nur in Proton " "Dateien in {path} werden von diesem Computer entfernt und nur in Proton "
"Drive behalten. Jede Datei wird beim Öffnen erneut heruntergeladen." "Drive behalten. Jede Datei wird beim Öffnen erneut heruntergeladen."
#: crates/pdfs-gui/src/app/pages/locations.rs:1532 #: crates/pdfs-gui/src/app/pages/locations.rs:1582
msgid "Make Online Only" msgid "Make Online Only"
msgstr "Nur online verfügbar machen" msgstr "Nur online verfügbar machen"
#: crates/pdfs-gui/src/app/pages/locations.rs:1568 #: crates/pdfs-gui/src/app/pages/locations.rs:1618
#, rust-format #, rust-format
msgid "" msgid ""
"Every file in {path} will download to this computer and stay synced. {free} " "Every file in {path} will download to this computer and stay synced. {free} "
@@ -3280,62 +3308,62 @@ msgstr ""
"Jede Datei in {path} wird auf diesen Computer heruntergeladen und bleibt " "Jede Datei in {path} wird auf diesen Computer heruntergeladen und bleibt "
"synchronisiert. Auf diesem Datenträger sind {free} frei." "synchronisiert. Auf diesem Datenträger sind {free} frei."
#: crates/pdfs-gui/src/app/pages/locations.rs:1573 #: crates/pdfs-gui/src/app/pages/locations.rs:1623
#, rust-format #, rust-format
msgid "Every file in {path} will download to this computer and stay synced." msgid "Every file in {path} will download to this computer and stay synced."
msgstr "" msgstr ""
"Jede Datei in {path} wird auf diesen Computer heruntergeladen und bleibt " "Jede Datei in {path} wird auf diesen Computer heruntergeladen und bleibt "
"synchronisiert." "synchronisiert."
#: crates/pdfs-gui/src/app/pages/locations.rs:1578 #: crates/pdfs-gui/src/app/pages/locations.rs:1628
msgid "Download Folder?" msgid "Download Folder?"
msgstr "Ordner herunterladen?" msgstr "Ordner herunterladen?"
#: crates/pdfs-gui/src/app/pages/locations.rs:1582 #: crates/pdfs-gui/src/app/pages/locations.rs:1632
#: crates/pdfs-gui/src/app/update.rs:34 #: crates/pdfs-gui/src/app/update.rs:34
msgid "Download" msgid "Download"
msgstr "Herunterladen" msgstr "Herunterladen"
#: crates/pdfs-gui/src/app/pages/locations.rs:1606 #: crates/pdfs-gui/src/app/pages/locations.rs:1656
msgid "Couldn't pause the folder" msgid "Couldn't pause the folder"
msgstr "Der Ordner konnte nicht pausiert werden" msgstr "Der Ordner konnte nicht pausiert werden"
#: crates/pdfs-gui/src/app/pages/locations.rs:1607 #: crates/pdfs-gui/src/app/pages/locations.rs:1657
msgid "Couldn't resume the folder" msgid "Couldn't resume the folder"
msgstr "Der Ordner konnte nicht fortgesetzt werden" msgstr "Der Ordner konnte nicht fortgesetzt werden"
#: crates/pdfs-gui/src/app/pages/locations.rs:1613 #: crates/pdfs-gui/src/app/pages/locations.rs:1663
msgid "Folder paused" msgid "Folder paused"
msgstr "Ordner pausiert" msgstr "Ordner pausiert"
#: crates/pdfs-gui/src/app/pages/locations.rs:1614 #: crates/pdfs-gui/src/app/pages/locations.rs:1664
msgid "Folder resumed" msgid "Folder resumed"
msgstr "Ordner fortgesetzt" msgstr "Ordner fortgesetzt"
#: crates/pdfs-gui/src/app/pages/locations.rs:1638 #: crates/pdfs-gui/src/app/pages/locations.rs:1688
#: crates/pdfs-gui/src/app/pages/locations.rs:1642 #: crates/pdfs-gui/src/app/pages/locations.rs:1692
msgid "Couldn't sync" msgid "Couldn't sync"
msgstr "Synchronisieren fehlgeschlagen" msgstr "Synchronisieren fehlgeschlagen"
#: crates/pdfs-gui/src/app/pages/locations.rs:1668 #: crates/pdfs-gui/src/app/pages/locations.rs:1718
msgid "Shared folder" msgid "Shared folder"
msgstr "Geteilter Ordner" msgstr "Geteilter Ordner"
#: crates/pdfs-gui/src/app/pages/locations.rs:1670 #: crates/pdfs-gui/src/app/pages/locations.rs:1720
msgid "Going online only" msgid "Going online only"
msgstr "Wird auf „Nur online“ umgestellt" msgstr "Wird auf „Nur online“ umgestellt"
#: crates/pdfs-gui/src/app/pages/locations.rs:1671 #: crates/pdfs-gui/src/app/pages/locations.rs:1721
msgid "Switching to synced" msgid "Switching to synced"
msgstr "Wird auf synchronisiert umgestellt" msgstr "Wird auf synchronisiert umgestellt"
#: crates/pdfs-gui/src/app/pages/locations.rs:1681 #: crates/pdfs-gui/src/app/pages/locations.rs:1731
msgctxt "state" msgctxt "state"
msgid "paused" msgid "paused"
msgstr "pausiert" msgstr "pausiert"
#. Translators: a folder's files can't be opened right now. #. Translators: a folder's files can't be opened right now.
#: crates/pdfs-gui/src/app/pages/locations.rs:1692 #: crates/pdfs-gui/src/app/pages/locations.rs:1742
msgid "not available" msgid "not available"
msgstr "nicht verfügbar" msgstr "nicht verfügbar"
@@ -5939,7 +5967,9 @@ msgstr "Link-Einstellungen"
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802 #: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802
msgid "" msgid ""
"Change who can edit, the password or the expiry. The link stays the same." "Change who can edit, the password or the expiry. The link stays the same."
msgstr "Ändern, wer bearbeiten darf, das Passwort oder den Ablauf. Der Link bleibt derselbe." msgstr ""
"Ändern, wer bearbeiten darf, das Passwort oder den Ablauf. Der Link bleibt "
"derselbe."
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:849 #: crates/pdfs-gui/src/app/widgets/share_dialog.rs:849
msgid "New password" msgid "New password"
+55 -26
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n" "Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n" "Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-25 22:10+0100\n" "POT-Creation-Date: 2026-10-26 17:16+0100\n"
"PO-Revision-Date: 2026-09-23 12:00+0200\n" "PO-Revision-Date: 2026-09-23 12:00+0200\n"
"Last-Translator: Proton Drive for Linux contributors\n" "Last-Translator: Proton Drive for Linux contributors\n"
"Language-Team: English (United Kingdom)\n" "Language-Team: English (United Kingdom)\n"
@@ -64,7 +64,7 @@ msgstr "%A %-d %B %Y, %H:%M"
#: crates/pdfs-gui/src/app/pages/browser.rs:1249 #: crates/pdfs-gui/src/app/pages/browser.rs:1249
#: crates/pdfs-gui/src/app/pages/browser.rs:2167 #: crates/pdfs-gui/src/app/pages/browser.rs:2167
#: crates/pdfs-gui/src/app/pages/browser.rs:2246 #: crates/pdfs-gui/src/app/pages/browser.rs:2246
#: crates/pdfs-gui/src/app/pages/locations.rs:1667 #: crates/pdfs-gui/src/app/pages/locations.rs:1717
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:252 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:252
#: crates/pdfs-gui/src/app/pages/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171 #: crates/pdfs-gui/src/app/pages/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171
msgid "My files" msgid "My files"
@@ -254,8 +254,9 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/devices.rs:1186 #: crates/pdfs-gui/src/app/pages/devices.rs:1186
#: crates/pdfs-gui/src/app/pages/locations.rs:850 #: 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:1054
#: crates/pdfs-gui/src/app/pages/locations.rs:1531 #: crates/pdfs-gui/src/app/pages/locations.rs:1537
#: crates/pdfs-gui/src/app/pages/locations.rs:1581 #: crates/pdfs-gui/src/app/pages/locations.rs:1581
#: crates/pdfs-gui/src/app/pages/locations.rs:1631
#: crates/pdfs-gui/src/app/pages/login.rs:480 #: crates/pdfs-gui/src/app/pages/login.rs:480
#: crates/pdfs-gui/src/app/pages/login.rs:594 #: crates/pdfs-gui/src/app/pages/login.rs:594
#: crates/pdfs-gui/src/app/pages/login.rs:640 #: crates/pdfs-gui/src/app/pages/login.rs:640
@@ -1273,8 +1274,9 @@ msgstr "Couldn't load albums"
#: crates/pdfs-gui/src/app/pages/locations.rs:881 #: crates/pdfs-gui/src/app/pages/locations.rs:881
#: crates/pdfs-gui/src/app/pages/locations.rs:904 #: crates/pdfs-gui/src/app/pages/locations.rs:904
#: crates/pdfs-gui/src/app/pages/locations.rs:1123 #: crates/pdfs-gui/src/app/pages/locations.rs:1123
#: crates/pdfs-gui/src/app/pages/locations.rs:1623 #: crates/pdfs-gui/src/app/pages/locations.rs:1566
#: crates/pdfs-gui/src/app/pages/locations.rs:1643 #: crates/pdfs-gui/src/app/pages/locations.rs:1673
#: crates/pdfs-gui/src/app/pages/locations.rs:1693
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1504 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1504
#: crates/pdfs-gui/src/app/pages/photos.rs:1421 #: crates/pdfs-gui/src/app/pages/photos.rs:1421
#: crates/pdfs-gui/src/app/pages/photos.rs:2141 #: crates/pdfs-gui/src/app/pages/photos.rs:2141
@@ -2301,7 +2303,8 @@ msgid "Add Folder to Sync"
msgstr "Add Folder to Sync" msgstr "Add Folder to Sync"
#: crates/pdfs-gui/src/app/pages/devices.rs:691 #: crates/pdfs-gui/src/app/pages/devices.rs:691
#: crates/pdfs-gui/src/app/pages/locations.rs:1636 #: crates/pdfs-gui/src/app/pages/locations.rs:1559
#: crates/pdfs-gui/src/app/pages/locations.rs:1686
msgid "Syncing folder…" msgid "Syncing folder…"
msgstr "Syncing folder…" msgstr "Syncing folder…"
@@ -3199,16 +3202,41 @@ msgstr "Resume Syncing"
msgid "Pause Syncing" msgid "Pause Syncing"
msgstr "Pause Syncing" msgstr "Pause Syncing"
#: crates/pdfs-gui/src/app/pages/locations.rs:1518 #: crates/pdfs-gui/src/app/pages/locations.rs:1513
msgid "Sync From Scratch…"
msgstr "Sync From Scratch…"
#: crates/pdfs-gui/src/app/pages/locations.rs:1523
msgid "Stop Syncing…" msgid "Stop Syncing…"
msgstr "Stop Syncing…" msgstr "Stop Syncing…"
#: crates/pdfs-gui/src/app/pages/locations.rs:1527 #: crates/pdfs-gui/src/app/pages/locations.rs:1533
msgid "Sync From Scratch?"
msgstr "Sync From Scratch?"
#. Translators: {path} is a local folder path.
#: crates/pdfs-gui/src/app/pages/locations.rs:1535
#, rust-format
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 "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."
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
msgid "Sync From Scratch"
msgstr "Sync From Scratch"
#: crates/pdfs-gui/src/app/pages/locations.rs:1557
msgid "Couldn't sync the folder from scratch"
msgstr "Couldn't sync the folder from scratch"
#: crates/pdfs-gui/src/app/pages/locations.rs:1577
msgid "Make Folder Online Only?" msgid "Make Folder Online Only?"
msgstr "Make Folder Online Only?" msgstr "Make Folder Online Only?"
#. Translators: {path} is a local folder path. #. Translators: {path} is a local folder path.
#: crates/pdfs-gui/src/app/pages/locations.rs:1529 #: crates/pdfs-gui/src/app/pages/locations.rs:1579
#, rust-format #, rust-format
msgid "" msgid ""
"Files in {path} will be removed from this computer and kept in Proton Drive " "Files in {path} will be removed from this computer and kept in Proton Drive "
@@ -3217,11 +3245,11 @@ msgstr ""
"Files in {path} will be removed from this computer and kept in Proton Drive " "Files in {path} will be removed from this computer and kept in Proton Drive "
"only. Each file downloads again when you open it." "only. Each file downloads again when you open it."
#: crates/pdfs-gui/src/app/pages/locations.rs:1532 #: crates/pdfs-gui/src/app/pages/locations.rs:1582
msgid "Make Online Only" msgid "Make Online Only"
msgstr "Make Online Only" msgstr "Make Online Only"
#: crates/pdfs-gui/src/app/pages/locations.rs:1568 #: crates/pdfs-gui/src/app/pages/locations.rs:1618
#, rust-format #, rust-format
msgid "" msgid ""
"Every file in {path} will download to this computer and stay synced. {free} " "Every file in {path} will download to this computer and stay synced. {free} "
@@ -3230,60 +3258,60 @@ msgstr ""
"Every file in {path} will download to this computer and stay synced. {free} " "Every file in {path} will download to this computer and stay synced. {free} "
"is free on this disk." "is free on this disk."
#: crates/pdfs-gui/src/app/pages/locations.rs:1573 #: crates/pdfs-gui/src/app/pages/locations.rs:1623
#, rust-format #, rust-format
msgid "Every file in {path} will download to this computer and stay synced." msgid "Every file in {path} will download to this computer and stay synced."
msgstr "Every file in {path} will download to this computer and stay synced." msgstr "Every file in {path} will download to this computer and stay synced."
#: crates/pdfs-gui/src/app/pages/locations.rs:1578 #: crates/pdfs-gui/src/app/pages/locations.rs:1628
msgid "Download Folder?" msgid "Download Folder?"
msgstr "Download Folder?" msgstr "Download Folder?"
#: crates/pdfs-gui/src/app/pages/locations.rs:1582 #: crates/pdfs-gui/src/app/pages/locations.rs:1632
#: crates/pdfs-gui/src/app/update.rs:34 #: crates/pdfs-gui/src/app/update.rs:34
msgid "Download" msgid "Download"
msgstr "Download" msgstr "Download"
#: crates/pdfs-gui/src/app/pages/locations.rs:1606 #: crates/pdfs-gui/src/app/pages/locations.rs:1656
msgid "Couldn't pause the folder" msgid "Couldn't pause the folder"
msgstr "Couldn't pause the folder" msgstr "Couldn't pause the folder"
#: crates/pdfs-gui/src/app/pages/locations.rs:1607 #: crates/pdfs-gui/src/app/pages/locations.rs:1657
msgid "Couldn't resume the folder" msgid "Couldn't resume the folder"
msgstr "Couldn't resume the folder" msgstr "Couldn't resume the folder"
#: crates/pdfs-gui/src/app/pages/locations.rs:1613 #: crates/pdfs-gui/src/app/pages/locations.rs:1663
msgid "Folder paused" msgid "Folder paused"
msgstr "Folder paused" msgstr "Folder paused"
#: crates/pdfs-gui/src/app/pages/locations.rs:1614 #: crates/pdfs-gui/src/app/pages/locations.rs:1664
msgid "Folder resumed" msgid "Folder resumed"
msgstr "Folder resumed" msgstr "Folder resumed"
#: crates/pdfs-gui/src/app/pages/locations.rs:1638 #: crates/pdfs-gui/src/app/pages/locations.rs:1688
#: crates/pdfs-gui/src/app/pages/locations.rs:1642 #: crates/pdfs-gui/src/app/pages/locations.rs:1692
msgid "Couldn't sync" msgid "Couldn't sync"
msgstr "Couldn't sync" msgstr "Couldn't sync"
#: crates/pdfs-gui/src/app/pages/locations.rs:1668 #: crates/pdfs-gui/src/app/pages/locations.rs:1718
msgid "Shared folder" msgid "Shared folder"
msgstr "Shared folder" msgstr "Shared folder"
#: crates/pdfs-gui/src/app/pages/locations.rs:1670 #: crates/pdfs-gui/src/app/pages/locations.rs:1720
msgid "Going online only" msgid "Going online only"
msgstr "Going online only" msgstr "Going online only"
#: crates/pdfs-gui/src/app/pages/locations.rs:1671 #: crates/pdfs-gui/src/app/pages/locations.rs:1721
msgid "Switching to synced" msgid "Switching to synced"
msgstr "Switching to synced" msgstr "Switching to synced"
#: crates/pdfs-gui/src/app/pages/locations.rs:1681 #: crates/pdfs-gui/src/app/pages/locations.rs:1731
msgctxt "state" msgctxt "state"
msgid "paused" msgid "paused"
msgstr "paused" msgstr "paused"
#. Translators: a folder's files can't be opened right now. #. Translators: a folder's files can't be opened right now.
#: crates/pdfs-gui/src/app/pages/locations.rs:1692 #: crates/pdfs-gui/src/app/pages/locations.rs:1742
msgid "not available" msgid "not available"
msgstr "not available" msgstr "not available"
@@ -5822,7 +5850,8 @@ msgstr "Link settings"
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802 #: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802
msgid "" msgid ""
"Change who can edit, the password or the expiry. The link stays the same." "Change who can edit, the password or the expiry. The link stays the same."
msgstr "Change who can edit, the password or the expiry. The link stays the same." msgstr ""
"Change who can edit, the password or the expiry. The link stays the same."
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:849 #: crates/pdfs-gui/src/app/widgets/share_dialog.rs:849
msgid "New password" msgid "New password"
+55 -26
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n" "Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n" "Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-25 22:10+0100\n" "POT-Creation-Date: 2026-10-26 17:16+0100\n"
"PO-Revision-Date: 2026-09-23 12:00+0200\n" "PO-Revision-Date: 2026-09-23 12:00+0200\n"
"Last-Translator: Proton Drive for Linux contributors\n" "Last-Translator: Proton Drive for Linux contributors\n"
"Language-Team: Spanish\n" "Language-Team: Spanish\n"
@@ -64,7 +64,7 @@ msgstr "%A, %-d de %B de %Y, %H:%M"
#: crates/pdfs-gui/src/app/pages/browser.rs:1249 #: crates/pdfs-gui/src/app/pages/browser.rs:1249
#: crates/pdfs-gui/src/app/pages/browser.rs:2167 #: crates/pdfs-gui/src/app/pages/browser.rs:2167
#: crates/pdfs-gui/src/app/pages/browser.rs:2246 #: crates/pdfs-gui/src/app/pages/browser.rs:2246
#: crates/pdfs-gui/src/app/pages/locations.rs:1667 #: crates/pdfs-gui/src/app/pages/locations.rs:1717
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:252 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:252
#: crates/pdfs-gui/src/app/pages/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171 #: crates/pdfs-gui/src/app/pages/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171
msgid "My files" msgid "My files"
@@ -256,8 +256,9 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/devices.rs:1186 #: crates/pdfs-gui/src/app/pages/devices.rs:1186
#: crates/pdfs-gui/src/app/pages/locations.rs:850 #: 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:1054
#: crates/pdfs-gui/src/app/pages/locations.rs:1531 #: crates/pdfs-gui/src/app/pages/locations.rs:1537
#: crates/pdfs-gui/src/app/pages/locations.rs:1581 #: crates/pdfs-gui/src/app/pages/locations.rs:1581
#: crates/pdfs-gui/src/app/pages/locations.rs:1631
#: crates/pdfs-gui/src/app/pages/login.rs:480 #: crates/pdfs-gui/src/app/pages/login.rs:480
#: crates/pdfs-gui/src/app/pages/login.rs:594 #: crates/pdfs-gui/src/app/pages/login.rs:594
#: crates/pdfs-gui/src/app/pages/login.rs:640 #: crates/pdfs-gui/src/app/pages/login.rs:640
@@ -1279,8 +1280,9 @@ msgstr "No se pudieron cargar los álbumes"
#: crates/pdfs-gui/src/app/pages/locations.rs:881 #: crates/pdfs-gui/src/app/pages/locations.rs:881
#: crates/pdfs-gui/src/app/pages/locations.rs:904 #: crates/pdfs-gui/src/app/pages/locations.rs:904
#: crates/pdfs-gui/src/app/pages/locations.rs:1123 #: crates/pdfs-gui/src/app/pages/locations.rs:1123
#: crates/pdfs-gui/src/app/pages/locations.rs:1623 #: crates/pdfs-gui/src/app/pages/locations.rs:1566
#: crates/pdfs-gui/src/app/pages/locations.rs:1643 #: crates/pdfs-gui/src/app/pages/locations.rs:1673
#: crates/pdfs-gui/src/app/pages/locations.rs:1693
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1504 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1504
#: crates/pdfs-gui/src/app/pages/photos.rs:1421 #: crates/pdfs-gui/src/app/pages/photos.rs:1421
#: crates/pdfs-gui/src/app/pages/photos.rs:2141 #: crates/pdfs-gui/src/app/pages/photos.rs:2141
@@ -2313,7 +2315,8 @@ msgid "Add Folder to Sync"
msgstr "Añadir carpeta para sincronizar" msgstr "Añadir carpeta para sincronizar"
#: crates/pdfs-gui/src/app/pages/devices.rs:691 #: crates/pdfs-gui/src/app/pages/devices.rs:691
#: crates/pdfs-gui/src/app/pages/locations.rs:1636 #: crates/pdfs-gui/src/app/pages/locations.rs:1559
#: crates/pdfs-gui/src/app/pages/locations.rs:1686
msgid "Syncing folder…" msgid "Syncing folder…"
msgstr "Sincronizando la carpeta…" msgstr "Sincronizando la carpeta…"
@@ -3223,16 +3226,41 @@ msgstr "Reanudar la sincronización"
msgid "Pause Syncing" msgid "Pause Syncing"
msgstr "Pausar la sincronización" msgstr "Pausar la sincronización"
#: crates/pdfs-gui/src/app/pages/locations.rs:1518 #: crates/pdfs-gui/src/app/pages/locations.rs:1513
msgid "Sync From Scratch…"
msgstr "Sincronizar desde cero…"
#: crates/pdfs-gui/src/app/pages/locations.rs:1523
msgid "Stop Syncing…" msgid "Stop Syncing…"
msgstr "Dejar de sincronizar…" msgstr "Dejar de sincronizar…"
#: crates/pdfs-gui/src/app/pages/locations.rs:1527 #: crates/pdfs-gui/src/app/pages/locations.rs:1533
msgid "Sync From Scratch?"
msgstr "¿Sincronizar desde cero?"
#. Translators: {path} is a local folder path.
#: crates/pdfs-gui/src/app/pages/locations.rs:1535
#, rust-format
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."
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
msgid "Sync From Scratch"
msgstr "Sincronizar desde cero"
#: crates/pdfs-gui/src/app/pages/locations.rs:1557
msgid "Couldn't sync the folder from scratch"
msgstr "No se pudo sincronizar la carpeta desde cero"
#: crates/pdfs-gui/src/app/pages/locations.rs:1577
msgid "Make Folder Online Only?" msgid "Make Folder Online Only?"
msgstr "¿Hacer la carpeta solo en línea?" msgstr "¿Hacer la carpeta solo en línea?"
#. Translators: {path} is a local folder path. #. Translators: {path} is a local folder path.
#: crates/pdfs-gui/src/app/pages/locations.rs:1529 #: crates/pdfs-gui/src/app/pages/locations.rs:1579
#, rust-format #, rust-format
msgid "" msgid ""
"Files in {path} will be removed from this computer and kept in Proton Drive " "Files in {path} will be removed from this computer and kept in Proton Drive "
@@ -3241,11 +3269,11 @@ msgstr ""
"Los archivos de {path} se quitarán de este equipo y se conservarán solo en " "Los archivos de {path} se quitarán de este equipo y se conservarán solo en "
"Proton Drive. Cada archivo se vuelve a descargar al abrirlo." "Proton Drive. Cada archivo se vuelve a descargar al abrirlo."
#: crates/pdfs-gui/src/app/pages/locations.rs:1532 #: crates/pdfs-gui/src/app/pages/locations.rs:1582
msgid "Make Online Only" msgid "Make Online Only"
msgstr "Hacer solo en línea" msgstr "Hacer solo en línea"
#: crates/pdfs-gui/src/app/pages/locations.rs:1568 #: crates/pdfs-gui/src/app/pages/locations.rs:1618
#, rust-format #, rust-format
msgid "" msgid ""
"Every file in {path} will download to this computer and stay synced. {free} " "Every file in {path} will download to this computer and stay synced. {free} "
@@ -3254,62 +3282,62 @@ msgstr ""
"Todos los archivos de {path} se descargarán en este equipo y se mantendrán " "Todos los archivos de {path} se descargarán en este equipo y se mantendrán "
"sincronizados. Hay {free} libres en este disco." "sincronizados. Hay {free} libres en este disco."
#: crates/pdfs-gui/src/app/pages/locations.rs:1573 #: crates/pdfs-gui/src/app/pages/locations.rs:1623
#, rust-format #, rust-format
msgid "Every file in {path} will download to this computer and stay synced." msgid "Every file in {path} will download to this computer and stay synced."
msgstr "" msgstr ""
"Todos los archivos de {path} se descargarán en este equipo y se mantendrán " "Todos los archivos de {path} se descargarán en este equipo y se mantendrán "
"sincronizados." "sincronizados."
#: crates/pdfs-gui/src/app/pages/locations.rs:1578 #: crates/pdfs-gui/src/app/pages/locations.rs:1628
msgid "Download Folder?" msgid "Download Folder?"
msgstr "¿Descargar la carpeta?" msgstr "¿Descargar la carpeta?"
#: crates/pdfs-gui/src/app/pages/locations.rs:1582 #: crates/pdfs-gui/src/app/pages/locations.rs:1632
#: crates/pdfs-gui/src/app/update.rs:34 #: crates/pdfs-gui/src/app/update.rs:34
msgid "Download" msgid "Download"
msgstr "Descargar" msgstr "Descargar"
#: crates/pdfs-gui/src/app/pages/locations.rs:1606 #: crates/pdfs-gui/src/app/pages/locations.rs:1656
msgid "Couldn't pause the folder" msgid "Couldn't pause the folder"
msgstr "No se pudo pausar la carpeta" msgstr "No se pudo pausar la carpeta"
#: crates/pdfs-gui/src/app/pages/locations.rs:1607 #: crates/pdfs-gui/src/app/pages/locations.rs:1657
msgid "Couldn't resume the folder" msgid "Couldn't resume the folder"
msgstr "No se pudo reanudar la carpeta" msgstr "No se pudo reanudar la carpeta"
#: crates/pdfs-gui/src/app/pages/locations.rs:1613 #: crates/pdfs-gui/src/app/pages/locations.rs:1663
msgid "Folder paused" msgid "Folder paused"
msgstr "Carpeta en pausa" msgstr "Carpeta en pausa"
#: crates/pdfs-gui/src/app/pages/locations.rs:1614 #: crates/pdfs-gui/src/app/pages/locations.rs:1664
msgid "Folder resumed" msgid "Folder resumed"
msgstr "Carpeta reanudada" msgstr "Carpeta reanudada"
#: crates/pdfs-gui/src/app/pages/locations.rs:1638 #: crates/pdfs-gui/src/app/pages/locations.rs:1688
#: crates/pdfs-gui/src/app/pages/locations.rs:1642 #: crates/pdfs-gui/src/app/pages/locations.rs:1692
msgid "Couldn't sync" msgid "Couldn't sync"
msgstr "No se pudo sincronizar" msgstr "No se pudo sincronizar"
#: crates/pdfs-gui/src/app/pages/locations.rs:1668 #: crates/pdfs-gui/src/app/pages/locations.rs:1718
msgid "Shared folder" msgid "Shared folder"
msgstr "Carpeta compartida" msgstr "Carpeta compartida"
#: crates/pdfs-gui/src/app/pages/locations.rs:1670 #: crates/pdfs-gui/src/app/pages/locations.rs:1720
msgid "Going online only" msgid "Going online only"
msgstr "Pasando a solo en línea" msgstr "Pasando a solo en línea"
#: crates/pdfs-gui/src/app/pages/locations.rs:1671 #: crates/pdfs-gui/src/app/pages/locations.rs:1721
msgid "Switching to synced" msgid "Switching to synced"
msgstr "Pasando a sincronizada" msgstr "Pasando a sincronizada"
#: crates/pdfs-gui/src/app/pages/locations.rs:1681 #: crates/pdfs-gui/src/app/pages/locations.rs:1731
msgctxt "state" msgctxt "state"
msgid "paused" msgid "paused"
msgstr "en pausa" msgstr "en pausa"
#. Translators: a folder's files can't be opened right now. #. Translators: a folder's files can't be opened right now.
#: crates/pdfs-gui/src/app/pages/locations.rs:1692 #: crates/pdfs-gui/src/app/pages/locations.rs:1742
msgid "not available" msgid "not available"
msgstr "no disponible" msgstr "no disponible"
@@ -5895,7 +5923,8 @@ msgstr "Ajustes del enlace"
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802 #: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802
msgid "" msgid ""
"Change who can edit, the password or the expiry. The link stays the same." "Change who can edit, the password or the expiry. The link stays the same."
msgstr "Cambie quién puede editar, la contraseña o la caducidad. El enlace no cambia." msgstr ""
"Cambie quién puede editar, la contraseña o la caducidad. El enlace no cambia."
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:849 #: crates/pdfs-gui/src/app/widgets/share_dialog.rs:849
msgid "New password" msgid "New password"
+56 -26
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n" "Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n" "Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-25 22:10+0100\n" "POT-Creation-Date: 2026-10-26 17:16+0100\n"
"PO-Revision-Date: 2026-09-23 12:00+0200\n" "PO-Revision-Date: 2026-09-23 12:00+0200\n"
"Last-Translator: Proton Drive for Linux contributors\n" "Last-Translator: Proton Drive for Linux contributors\n"
"Language-Team: French\n" "Language-Team: French\n"
@@ -64,7 +64,7 @@ msgstr "%A %-d %B %Y à %H:%M"
#: crates/pdfs-gui/src/app/pages/browser.rs:1249 #: crates/pdfs-gui/src/app/pages/browser.rs:1249
#: crates/pdfs-gui/src/app/pages/browser.rs:2167 #: crates/pdfs-gui/src/app/pages/browser.rs:2167
#: crates/pdfs-gui/src/app/pages/browser.rs:2246 #: crates/pdfs-gui/src/app/pages/browser.rs:2246
#: crates/pdfs-gui/src/app/pages/locations.rs:1667 #: crates/pdfs-gui/src/app/pages/locations.rs:1717
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:252 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:252
#: crates/pdfs-gui/src/app/pages/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171 #: crates/pdfs-gui/src/app/pages/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171
msgid "My files" msgid "My files"
@@ -258,8 +258,9 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/devices.rs:1186 #: crates/pdfs-gui/src/app/pages/devices.rs:1186
#: crates/pdfs-gui/src/app/pages/locations.rs:850 #: 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:1054
#: crates/pdfs-gui/src/app/pages/locations.rs:1531 #: crates/pdfs-gui/src/app/pages/locations.rs:1537
#: crates/pdfs-gui/src/app/pages/locations.rs:1581 #: crates/pdfs-gui/src/app/pages/locations.rs:1581
#: crates/pdfs-gui/src/app/pages/locations.rs:1631
#: crates/pdfs-gui/src/app/pages/login.rs:480 #: crates/pdfs-gui/src/app/pages/login.rs:480
#: crates/pdfs-gui/src/app/pages/login.rs:594 #: crates/pdfs-gui/src/app/pages/login.rs:594
#: crates/pdfs-gui/src/app/pages/login.rs:640 #: crates/pdfs-gui/src/app/pages/login.rs:640
@@ -1290,8 +1291,9 @@ msgstr "Impossible de charger les albums"
#: crates/pdfs-gui/src/app/pages/locations.rs:881 #: crates/pdfs-gui/src/app/pages/locations.rs:881
#: crates/pdfs-gui/src/app/pages/locations.rs:904 #: crates/pdfs-gui/src/app/pages/locations.rs:904
#: crates/pdfs-gui/src/app/pages/locations.rs:1123 #: crates/pdfs-gui/src/app/pages/locations.rs:1123
#: crates/pdfs-gui/src/app/pages/locations.rs:1623 #: crates/pdfs-gui/src/app/pages/locations.rs:1566
#: crates/pdfs-gui/src/app/pages/locations.rs:1643 #: crates/pdfs-gui/src/app/pages/locations.rs:1673
#: crates/pdfs-gui/src/app/pages/locations.rs:1693
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1504 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1504
#: crates/pdfs-gui/src/app/pages/photos.rs:1421 #: crates/pdfs-gui/src/app/pages/photos.rs:1421
#: crates/pdfs-gui/src/app/pages/photos.rs:2141 #: crates/pdfs-gui/src/app/pages/photos.rs:2141
@@ -2326,7 +2328,8 @@ msgid "Add Folder to Sync"
msgstr "Ajouter un dossier à synchroniser" msgstr "Ajouter un dossier à synchroniser"
#: crates/pdfs-gui/src/app/pages/devices.rs:691 #: crates/pdfs-gui/src/app/pages/devices.rs:691
#: crates/pdfs-gui/src/app/pages/locations.rs:1636 #: crates/pdfs-gui/src/app/pages/locations.rs:1559
#: crates/pdfs-gui/src/app/pages/locations.rs:1686
msgid "Syncing folder…" msgid "Syncing folder…"
msgstr "Synchronisation du dossier…" msgstr "Synchronisation du dossier…"
@@ -3248,16 +3251,41 @@ msgstr "Reprendre la synchronisation"
msgid "Pause Syncing" msgid "Pause Syncing"
msgstr "Mettre en pause la synchronisation" msgstr "Mettre en pause la synchronisation"
#: crates/pdfs-gui/src/app/pages/locations.rs:1518 #: crates/pdfs-gui/src/app/pages/locations.rs:1513
msgid "Sync From Scratch…"
msgstr "Resynchroniser depuis le début…"
#: crates/pdfs-gui/src/app/pages/locations.rs:1523
msgid "Stop Syncing…" msgid "Stop Syncing…"
msgstr "Arrêter la synchronisation…" msgstr "Arrêter la synchronisation…"
#: crates/pdfs-gui/src/app/pages/locations.rs:1527 #: crates/pdfs-gui/src/app/pages/locations.rs:1533
msgid "Sync From Scratch?"
msgstr "Resynchroniser depuis le début ?"
#. Translators: {path} is a local folder path.
#: crates/pdfs-gui/src/app/pages/locations.rs:1535
#, rust-format
msgid ""
"This computer forgets what it synced in {path} before and compares the "
"folder with Proton Drive again. Nothing is deleted: a file on one side only "
"is copied to the other, and a file that differs keeps both versions."
msgstr "Cet ordinateur oublie ce qu’il a synchronisé auparavant dans {path} et compare à nouveau le dossier avec Proton Drive. Rien n’est supprimé : un fichier présent d’un seul côté est copié de l’autre, et un fichier qui diffère garde ses deux versions."
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
msgid "Sync From Scratch"
msgstr "Resynchroniser depuis le début"
#: crates/pdfs-gui/src/app/pages/locations.rs:1557
msgid "Couldn't sync the folder from scratch"
msgstr "Impossible de resynchroniser le dossier depuis le début"
#: crates/pdfs-gui/src/app/pages/locations.rs:1577
msgid "Make Folder Online Only?" msgid "Make Folder Online Only?"
msgstr "Garder le dossier en ligne uniquement ?" msgstr "Garder le dossier en ligne uniquement ?"
#. Translators: {path} is a local folder path. #. Translators: {path} is a local folder path.
#: crates/pdfs-gui/src/app/pages/locations.rs:1529 #: crates/pdfs-gui/src/app/pages/locations.rs:1579
#, rust-format #, rust-format
msgid "" msgid ""
"Files in {path} will be removed from this computer and kept in Proton Drive " "Files in {path} will be removed from this computer and kept in Proton Drive "
@@ -3267,11 +3295,11 @@ msgstr ""
"uniquement dans Proton Drive. Chaque fichier sera à nouveau téléchargé à son " "uniquement dans Proton Drive. Chaque fichier sera à nouveau téléchargé à son "
"ouverture." "ouverture."
#: crates/pdfs-gui/src/app/pages/locations.rs:1532 #: crates/pdfs-gui/src/app/pages/locations.rs:1582
msgid "Make Online Only" msgid "Make Online Only"
msgstr "Garder en ligne uniquement" msgstr "Garder en ligne uniquement"
#: crates/pdfs-gui/src/app/pages/locations.rs:1568 #: crates/pdfs-gui/src/app/pages/locations.rs:1618
#, rust-format #, rust-format
msgid "" msgid ""
"Every file in {path} will download to this computer and stay synced. {free} " "Every file in {path} will download to this computer and stay synced. {free} "
@@ -3280,62 +3308,62 @@ msgstr ""
"Chaque fichier de {path} sera téléchargé sur cet ordinateur et restera " "Chaque fichier de {path} sera téléchargé sur cet ordinateur et restera "
"synchronisé. {free} sont libres sur ce disque." "synchronisé. {free} sont libres sur ce disque."
#: crates/pdfs-gui/src/app/pages/locations.rs:1573 #: crates/pdfs-gui/src/app/pages/locations.rs:1623
#, rust-format #, rust-format
msgid "Every file in {path} will download to this computer and stay synced." msgid "Every file in {path} will download to this computer and stay synced."
msgstr "" msgstr ""
"Chaque fichier de {path} sera téléchargé sur cet ordinateur et restera " "Chaque fichier de {path} sera téléchargé sur cet ordinateur et restera "
"synchronisé." "synchronisé."
#: crates/pdfs-gui/src/app/pages/locations.rs:1578 #: crates/pdfs-gui/src/app/pages/locations.rs:1628
msgid "Download Folder?" msgid "Download Folder?"
msgstr "Télécharger le dossier ?" msgstr "Télécharger le dossier ?"
#: crates/pdfs-gui/src/app/pages/locations.rs:1582 #: crates/pdfs-gui/src/app/pages/locations.rs:1632
#: crates/pdfs-gui/src/app/update.rs:34 #: crates/pdfs-gui/src/app/update.rs:34
msgid "Download" msgid "Download"
msgstr "Télécharger" msgstr "Télécharger"
#: crates/pdfs-gui/src/app/pages/locations.rs:1606 #: crates/pdfs-gui/src/app/pages/locations.rs:1656
msgid "Couldn't pause the folder" msgid "Couldn't pause the folder"
msgstr "Impossible de mettre en pause le dossier" msgstr "Impossible de mettre en pause le dossier"
#: crates/pdfs-gui/src/app/pages/locations.rs:1607 #: crates/pdfs-gui/src/app/pages/locations.rs:1657
msgid "Couldn't resume the folder" msgid "Couldn't resume the folder"
msgstr "Impossible de reprendre le dossier" msgstr "Impossible de reprendre le dossier"
#: crates/pdfs-gui/src/app/pages/locations.rs:1613 #: crates/pdfs-gui/src/app/pages/locations.rs:1663
msgid "Folder paused" msgid "Folder paused"
msgstr "Dossier en pause" msgstr "Dossier en pause"
#: crates/pdfs-gui/src/app/pages/locations.rs:1614 #: crates/pdfs-gui/src/app/pages/locations.rs:1664
msgid "Folder resumed" msgid "Folder resumed"
msgstr "Dossier repris" msgstr "Dossier repris"
#: crates/pdfs-gui/src/app/pages/locations.rs:1638 #: crates/pdfs-gui/src/app/pages/locations.rs:1688
#: crates/pdfs-gui/src/app/pages/locations.rs:1642 #: crates/pdfs-gui/src/app/pages/locations.rs:1692
msgid "Couldn't sync" msgid "Couldn't sync"
msgstr "Impossible de synchroniser" msgstr "Impossible de synchroniser"
#: crates/pdfs-gui/src/app/pages/locations.rs:1668 #: crates/pdfs-gui/src/app/pages/locations.rs:1718
msgid "Shared folder" msgid "Shared folder"
msgstr "Dossier partagé" msgstr "Dossier partagé"
#: crates/pdfs-gui/src/app/pages/locations.rs:1670 #: crates/pdfs-gui/src/app/pages/locations.rs:1720
msgid "Going online only" msgid "Going online only"
msgstr "Passage en ligne uniquement" msgstr "Passage en ligne uniquement"
#: crates/pdfs-gui/src/app/pages/locations.rs:1671 #: crates/pdfs-gui/src/app/pages/locations.rs:1721
msgid "Switching to synced" msgid "Switching to synced"
msgstr "Passage en mode synchronisé" msgstr "Passage en mode synchronisé"
#: crates/pdfs-gui/src/app/pages/locations.rs:1681 #: crates/pdfs-gui/src/app/pages/locations.rs:1731
msgctxt "state" msgctxt "state"
msgid "paused" msgid "paused"
msgstr "en pause" msgstr "en pause"
#. Translators: a folder's files can't be opened right now. #. Translators: a folder's files can't be opened right now.
#: crates/pdfs-gui/src/app/pages/locations.rs:1692 #: crates/pdfs-gui/src/app/pages/locations.rs:1742
msgid "not available" msgid "not available"
msgstr "non disponible" msgstr "non disponible"
@@ -5941,7 +5969,9 @@ msgstr "Paramètres du lien"
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802 #: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802
msgid "" msgid ""
"Change who can edit, the password or the expiry. The link stays the same." "Change who can edit, the password or the expiry. The link stays the same."
msgstr "Modifiez qui peut modifier, le mot de passe ou l’expiration. Le lien reste le même." msgstr ""
"Modifiez qui peut modifier, le mot de passe ou l’expiration. Le lien reste "
"le même."
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:849 #: crates/pdfs-gui/src/app/widgets/share_dialog.rs:849
msgid "New password" msgid "New password"
+56 -26
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n" "Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n" "Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-25 22:10+0100\n" "POT-Creation-Date: 2026-10-26 17:16+0100\n"
"PO-Revision-Date: 2026-09-23 12:00+0200\n" "PO-Revision-Date: 2026-09-23 12:00+0200\n"
"Last-Translator: Proton Drive for Linux contributors\n" "Last-Translator: Proton Drive for Linux contributors\n"
"Language-Team: Italian\n" "Language-Team: Italian\n"
@@ -64,7 +64,7 @@ msgstr "%A %-d %B %Y, %H:%M"
#: crates/pdfs-gui/src/app/pages/browser.rs:1249 #: crates/pdfs-gui/src/app/pages/browser.rs:1249
#: crates/pdfs-gui/src/app/pages/browser.rs:2167 #: crates/pdfs-gui/src/app/pages/browser.rs:2167
#: crates/pdfs-gui/src/app/pages/browser.rs:2246 #: crates/pdfs-gui/src/app/pages/browser.rs:2246
#: crates/pdfs-gui/src/app/pages/locations.rs:1667 #: crates/pdfs-gui/src/app/pages/locations.rs:1717
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:252 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:252
#: crates/pdfs-gui/src/app/pages/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171 #: crates/pdfs-gui/src/app/pages/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171
msgid "My files" msgid "My files"
@@ -254,8 +254,9 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/devices.rs:1186 #: crates/pdfs-gui/src/app/pages/devices.rs:1186
#: crates/pdfs-gui/src/app/pages/locations.rs:850 #: 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:1054
#: crates/pdfs-gui/src/app/pages/locations.rs:1531 #: crates/pdfs-gui/src/app/pages/locations.rs:1537
#: crates/pdfs-gui/src/app/pages/locations.rs:1581 #: crates/pdfs-gui/src/app/pages/locations.rs:1581
#: crates/pdfs-gui/src/app/pages/locations.rs:1631
#: crates/pdfs-gui/src/app/pages/login.rs:480 #: crates/pdfs-gui/src/app/pages/login.rs:480
#: crates/pdfs-gui/src/app/pages/login.rs:594 #: crates/pdfs-gui/src/app/pages/login.rs:594
#: crates/pdfs-gui/src/app/pages/login.rs:640 #: crates/pdfs-gui/src/app/pages/login.rs:640
@@ -1284,8 +1285,9 @@ msgstr "Impossibile caricare gli album"
#: crates/pdfs-gui/src/app/pages/locations.rs:881 #: crates/pdfs-gui/src/app/pages/locations.rs:881
#: crates/pdfs-gui/src/app/pages/locations.rs:904 #: crates/pdfs-gui/src/app/pages/locations.rs:904
#: crates/pdfs-gui/src/app/pages/locations.rs:1123 #: crates/pdfs-gui/src/app/pages/locations.rs:1123
#: crates/pdfs-gui/src/app/pages/locations.rs:1623 #: crates/pdfs-gui/src/app/pages/locations.rs:1566
#: crates/pdfs-gui/src/app/pages/locations.rs:1643 #: crates/pdfs-gui/src/app/pages/locations.rs:1673
#: crates/pdfs-gui/src/app/pages/locations.rs:1693
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1504 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1504
#: crates/pdfs-gui/src/app/pages/photos.rs:1421 #: crates/pdfs-gui/src/app/pages/photos.rs:1421
#: crates/pdfs-gui/src/app/pages/photos.rs:2141 #: crates/pdfs-gui/src/app/pages/photos.rs:2141
@@ -2320,7 +2322,8 @@ msgid "Add Folder to Sync"
msgstr "Aggiungi cartella da sincronizzare" msgstr "Aggiungi cartella da sincronizzare"
#: crates/pdfs-gui/src/app/pages/devices.rs:691 #: crates/pdfs-gui/src/app/pages/devices.rs:691
#: crates/pdfs-gui/src/app/pages/locations.rs:1636 #: crates/pdfs-gui/src/app/pages/locations.rs:1559
#: crates/pdfs-gui/src/app/pages/locations.rs:1686
msgid "Syncing folder…" msgid "Syncing folder…"
msgstr "Sincronizzazione della cartella…" msgstr "Sincronizzazione della cartella…"
@@ -3241,16 +3244,41 @@ msgstr "Riprendi sincronizzazione"
msgid "Pause Syncing" msgid "Pause Syncing"
msgstr "Metti in pausa sincronizzazione" msgstr "Metti in pausa sincronizzazione"
#: crates/pdfs-gui/src/app/pages/locations.rs:1518 #: crates/pdfs-gui/src/app/pages/locations.rs:1513
msgid "Sync From Scratch…"
msgstr "Sincronizza da zero…"
#: crates/pdfs-gui/src/app/pages/locations.rs:1523
msgid "Stop Syncing…" msgid "Stop Syncing…"
msgstr "Interrompi sincronizzazione…" msgstr "Interrompi sincronizzazione…"
#: crates/pdfs-gui/src/app/pages/locations.rs:1527 #: crates/pdfs-gui/src/app/pages/locations.rs:1533
msgid "Sync From Scratch?"
msgstr "Sincronizzare da zero?"
#. Translators: {path} is a local folder path.
#: crates/pdfs-gui/src/app/pages/locations.rs:1535
#, rust-format
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 "Questo computer dimentica ciò che ha sincronizzato finora in {path} e confronta di nuovo la cartella con Proton Drive. Non viene eliminato nulla: un file presente su un solo lato viene copiato sull’altro e di un file diverso vengono mantenute entrambe le versioni."
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
msgid "Sync From Scratch"
msgstr "Sincronizza da zero"
#: crates/pdfs-gui/src/app/pages/locations.rs:1557
msgid "Couldn't sync the folder from scratch"
msgstr "Impossibile sincronizzare la cartella da zero"
#: crates/pdfs-gui/src/app/pages/locations.rs:1577
msgid "Make Folder Online Only?" msgid "Make Folder Online Only?"
msgstr "Rendere la cartella solo online?" msgstr "Rendere la cartella solo online?"
#. Translators: {path} is a local folder path. #. Translators: {path} is a local folder path.
#: crates/pdfs-gui/src/app/pages/locations.rs:1529 #: crates/pdfs-gui/src/app/pages/locations.rs:1579
#, rust-format #, rust-format
msgid "" msgid ""
"Files in {path} will be removed from this computer and kept in Proton Drive " "Files in {path} will be removed from this computer and kept in Proton Drive "
@@ -3259,11 +3287,11 @@ msgstr ""
"I file in {path} verranno rimossi da questo computer e mantenuti solo in " "I file in {path} verranno rimossi da questo computer e mantenuti solo in "
"Proton Drive. Ogni file viene scaricato di nuovo quando lo apri." "Proton Drive. Ogni file viene scaricato di nuovo quando lo apri."
#: crates/pdfs-gui/src/app/pages/locations.rs:1532 #: crates/pdfs-gui/src/app/pages/locations.rs:1582
msgid "Make Online Only" msgid "Make Online Only"
msgstr "Rendi solo online" msgstr "Rendi solo online"
#: crates/pdfs-gui/src/app/pages/locations.rs:1568 #: crates/pdfs-gui/src/app/pages/locations.rs:1618
#, rust-format #, rust-format
msgid "" msgid ""
"Every file in {path} will download to this computer and stay synced. {free} " "Every file in {path} will download to this computer and stay synced. {free} "
@@ -3272,62 +3300,62 @@ msgstr ""
"Ogni file in {path} verrà scaricato su questo computer e resterà " "Ogni file in {path} verrà scaricato su questo computer e resterà "
"sincronizzato. Su questo disco sono liberi {free}." "sincronizzato. Su questo disco sono liberi {free}."
#: crates/pdfs-gui/src/app/pages/locations.rs:1573 #: crates/pdfs-gui/src/app/pages/locations.rs:1623
#, rust-format #, rust-format
msgid "Every file in {path} will download to this computer and stay synced." msgid "Every file in {path} will download to this computer and stay synced."
msgstr "" msgstr ""
"Ogni file in {path} verrà scaricato su questo computer e resterà " "Ogni file in {path} verrà scaricato su questo computer e resterà "
"sincronizzato." "sincronizzato."
#: crates/pdfs-gui/src/app/pages/locations.rs:1578 #: crates/pdfs-gui/src/app/pages/locations.rs:1628
msgid "Download Folder?" msgid "Download Folder?"
msgstr "Scaricare la cartella?" msgstr "Scaricare la cartella?"
#: crates/pdfs-gui/src/app/pages/locations.rs:1582 #: crates/pdfs-gui/src/app/pages/locations.rs:1632
#: crates/pdfs-gui/src/app/update.rs:34 #: crates/pdfs-gui/src/app/update.rs:34
msgid "Download" msgid "Download"
msgstr "Scarica" msgstr "Scarica"
#: crates/pdfs-gui/src/app/pages/locations.rs:1606 #: crates/pdfs-gui/src/app/pages/locations.rs:1656
msgid "Couldn't pause the folder" msgid "Couldn't pause the folder"
msgstr "Impossibile mettere in pausa la cartella" msgstr "Impossibile mettere in pausa la cartella"
#: crates/pdfs-gui/src/app/pages/locations.rs:1607 #: crates/pdfs-gui/src/app/pages/locations.rs:1657
msgid "Couldn't resume the folder" msgid "Couldn't resume the folder"
msgstr "Impossibile riprendere la cartella" msgstr "Impossibile riprendere la cartella"
#: crates/pdfs-gui/src/app/pages/locations.rs:1613 #: crates/pdfs-gui/src/app/pages/locations.rs:1663
msgid "Folder paused" msgid "Folder paused"
msgstr "Cartella in pausa" msgstr "Cartella in pausa"
#: crates/pdfs-gui/src/app/pages/locations.rs:1614 #: crates/pdfs-gui/src/app/pages/locations.rs:1664
msgid "Folder resumed" msgid "Folder resumed"
msgstr "Cartella ripresa" msgstr "Cartella ripresa"
#: crates/pdfs-gui/src/app/pages/locations.rs:1638 #: crates/pdfs-gui/src/app/pages/locations.rs:1688
#: crates/pdfs-gui/src/app/pages/locations.rs:1642 #: crates/pdfs-gui/src/app/pages/locations.rs:1692
msgid "Couldn't sync" msgid "Couldn't sync"
msgstr "Impossibile sincronizzare" msgstr "Impossibile sincronizzare"
#: crates/pdfs-gui/src/app/pages/locations.rs:1668 #: crates/pdfs-gui/src/app/pages/locations.rs:1718
msgid "Shared folder" msgid "Shared folder"
msgstr "Cartella condivisa" msgstr "Cartella condivisa"
#: crates/pdfs-gui/src/app/pages/locations.rs:1670 #: crates/pdfs-gui/src/app/pages/locations.rs:1720
msgid "Going online only" msgid "Going online only"
msgstr "Passaggio a solo online" msgstr "Passaggio a solo online"
#: crates/pdfs-gui/src/app/pages/locations.rs:1671 #: crates/pdfs-gui/src/app/pages/locations.rs:1721
msgid "Switching to synced" msgid "Switching to synced"
msgstr "Passaggio a sincronizzata" msgstr "Passaggio a sincronizzata"
#: crates/pdfs-gui/src/app/pages/locations.rs:1681 #: crates/pdfs-gui/src/app/pages/locations.rs:1731
msgctxt "state" msgctxt "state"
msgid "paused" msgid "paused"
msgstr "in pausa" msgstr "in pausa"
#. Translators: a folder's files can't be opened right now. #. Translators: a folder's files can't be opened right now.
#: crates/pdfs-gui/src/app/pages/locations.rs:1692 #: crates/pdfs-gui/src/app/pages/locations.rs:1742
msgid "not available" msgid "not available"
msgstr "non disponibile" msgstr "non disponibile"
@@ -5918,7 +5946,9 @@ msgstr "Impostazioni del collegamento"
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802 #: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802
msgid "" msgid ""
"Change who can edit, the password or the expiry. The link stays the same." "Change who can edit, the password or the expiry. The link stays the same."
msgstr "Cambia chi può modificare, la password o la scadenza. Il collegamento resta lo stesso." msgstr ""
"Cambia chi può modificare, la password o la scadenza. Il collegamento resta "
"lo stesso."
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:849 #: crates/pdfs-gui/src/app/widgets/share_dialog.rs:849
msgid "New password" msgid "New password"
+56 -26
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n" "Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n" "Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-25 22:10+0100\n" "POT-Creation-Date: 2026-10-26 17:16+0100\n"
"PO-Revision-Date: 2026-09-23 12:00+0200\n" "PO-Revision-Date: 2026-09-23 12:00+0200\n"
"Last-Translator: Proton Drive for Linux contributors\n" "Last-Translator: Proton Drive for Linux contributors\n"
"Language-Team: Dutch\n" "Language-Team: Dutch\n"
@@ -64,7 +64,7 @@ msgstr "%A %-d %B %Y, %H:%M"
#: crates/pdfs-gui/src/app/pages/browser.rs:1249 #: crates/pdfs-gui/src/app/pages/browser.rs:1249
#: crates/pdfs-gui/src/app/pages/browser.rs:2167 #: crates/pdfs-gui/src/app/pages/browser.rs:2167
#: crates/pdfs-gui/src/app/pages/browser.rs:2246 #: crates/pdfs-gui/src/app/pages/browser.rs:2246
#: crates/pdfs-gui/src/app/pages/locations.rs:1667 #: crates/pdfs-gui/src/app/pages/locations.rs:1717
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:252 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:252
#: crates/pdfs-gui/src/app/pages/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171 #: crates/pdfs-gui/src/app/pages/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171
msgid "My files" msgid "My files"
@@ -255,8 +255,9 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/devices.rs:1186 #: crates/pdfs-gui/src/app/pages/devices.rs:1186
#: crates/pdfs-gui/src/app/pages/locations.rs:850 #: 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:1054
#: crates/pdfs-gui/src/app/pages/locations.rs:1531 #: crates/pdfs-gui/src/app/pages/locations.rs:1537
#: crates/pdfs-gui/src/app/pages/locations.rs:1581 #: crates/pdfs-gui/src/app/pages/locations.rs:1581
#: crates/pdfs-gui/src/app/pages/locations.rs:1631
#: crates/pdfs-gui/src/app/pages/login.rs:480 #: crates/pdfs-gui/src/app/pages/login.rs:480
#: crates/pdfs-gui/src/app/pages/login.rs:594 #: crates/pdfs-gui/src/app/pages/login.rs:594
#: crates/pdfs-gui/src/app/pages/login.rs:640 #: crates/pdfs-gui/src/app/pages/login.rs:640
@@ -1280,8 +1281,9 @@ msgstr "Kon albums niet laden"
#: crates/pdfs-gui/src/app/pages/locations.rs:881 #: crates/pdfs-gui/src/app/pages/locations.rs:881
#: crates/pdfs-gui/src/app/pages/locations.rs:904 #: crates/pdfs-gui/src/app/pages/locations.rs:904
#: crates/pdfs-gui/src/app/pages/locations.rs:1123 #: crates/pdfs-gui/src/app/pages/locations.rs:1123
#: crates/pdfs-gui/src/app/pages/locations.rs:1623 #: crates/pdfs-gui/src/app/pages/locations.rs:1566
#: crates/pdfs-gui/src/app/pages/locations.rs:1643 #: crates/pdfs-gui/src/app/pages/locations.rs:1673
#: crates/pdfs-gui/src/app/pages/locations.rs:1693
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1504 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1504
#: crates/pdfs-gui/src/app/pages/photos.rs:1421 #: crates/pdfs-gui/src/app/pages/photos.rs:1421
#: crates/pdfs-gui/src/app/pages/photos.rs:2141 #: crates/pdfs-gui/src/app/pages/photos.rs:2141
@@ -2314,7 +2316,8 @@ msgid "Add Folder to Sync"
msgstr "Map toevoegen aan synchronisatie" msgstr "Map toevoegen aan synchronisatie"
#: crates/pdfs-gui/src/app/pages/devices.rs:691 #: crates/pdfs-gui/src/app/pages/devices.rs:691
#: crates/pdfs-gui/src/app/pages/locations.rs:1636 #: crates/pdfs-gui/src/app/pages/locations.rs:1559
#: crates/pdfs-gui/src/app/pages/locations.rs:1686
msgid "Syncing folder…" msgid "Syncing folder…"
msgstr "Map synchroniseren…" msgstr "Map synchroniseren…"
@@ -3233,16 +3236,41 @@ msgstr "Synchronisatie hervatten"
msgid "Pause Syncing" msgid "Pause Syncing"
msgstr "Synchronisatie pauzeren" msgstr "Synchronisatie pauzeren"
#: crates/pdfs-gui/src/app/pages/locations.rs:1518 #: crates/pdfs-gui/src/app/pages/locations.rs:1513
msgid "Sync From Scratch…"
msgstr "Opnieuw synchroniseren…"
#: crates/pdfs-gui/src/app/pages/locations.rs:1523
msgid "Stop Syncing…" msgid "Stop Syncing…"
msgstr "Synchroniseren stoppen…" msgstr "Synchroniseren stoppen…"
#: crates/pdfs-gui/src/app/pages/locations.rs:1527 #: crates/pdfs-gui/src/app/pages/locations.rs:1533
msgid "Sync From Scratch?"
msgstr "Opnieuw synchroniseren?"
#. Translators: {path} is a local folder path.
#: crates/pdfs-gui/src/app/pages/locations.rs:1535
#, rust-format
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 "Deze computer vergeet wat hij eerder in {path} heeft gesynchroniseerd en vergelijkt de map opnieuw met Proton Drive. Er wordt niets verwijderd: een bestand dat maar aan één kant staat, wordt naar de andere kant gekopieerd, en van een bestand dat verschilt blijven beide versies bewaard."
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
msgid "Sync From Scratch"
msgstr "Opnieuw synchroniseren"
#: crates/pdfs-gui/src/app/pages/locations.rs:1557
msgid "Couldn't sync the folder from scratch"
msgstr "Kon de map niet opnieuw synchroniseren"
#: crates/pdfs-gui/src/app/pages/locations.rs:1577
msgid "Make Folder Online Only?" msgid "Make Folder Online Only?"
msgstr "Map alleen online maken?" msgstr "Map alleen online maken?"
#. Translators: {path} is a local folder path. #. Translators: {path} is a local folder path.
#: crates/pdfs-gui/src/app/pages/locations.rs:1529 #: crates/pdfs-gui/src/app/pages/locations.rs:1579
#, rust-format #, rust-format
msgid "" msgid ""
"Files in {path} will be removed from this computer and kept in Proton Drive " "Files in {path} will be removed from this computer and kept in Proton Drive "
@@ -3251,11 +3279,11 @@ msgstr ""
"Bestanden in {path} worden van deze computer verwijderd en alleen in Proton " "Bestanden in {path} worden van deze computer verwijderd en alleen in Proton "
"Drive bewaard. Elk bestand wordt opnieuw gedownload wanneer je het opent." "Drive bewaard. Elk bestand wordt opnieuw gedownload wanneer je het opent."
#: crates/pdfs-gui/src/app/pages/locations.rs:1532 #: crates/pdfs-gui/src/app/pages/locations.rs:1582
msgid "Make Online Only" msgid "Make Online Only"
msgstr "Alleen online maken" msgstr "Alleen online maken"
#: crates/pdfs-gui/src/app/pages/locations.rs:1568 #: crates/pdfs-gui/src/app/pages/locations.rs:1618
#, rust-format #, rust-format
msgid "" msgid ""
"Every file in {path} will download to this computer and stay synced. {free} " "Every file in {path} will download to this computer and stay synced. {free} "
@@ -3264,62 +3292,62 @@ msgstr ""
"Elk bestand in {path} wordt naar deze computer gedownload en blijft " "Elk bestand in {path} wordt naar deze computer gedownload en blijft "
"gesynchroniseerd. Er is {free} vrij op deze schijf." "gesynchroniseerd. Er is {free} vrij op deze schijf."
#: crates/pdfs-gui/src/app/pages/locations.rs:1573 #: crates/pdfs-gui/src/app/pages/locations.rs:1623
#, rust-format #, rust-format
msgid "Every file in {path} will download to this computer and stay synced." msgid "Every file in {path} will download to this computer and stay synced."
msgstr "" msgstr ""
"Elk bestand in {path} wordt naar deze computer gedownload en blijft " "Elk bestand in {path} wordt naar deze computer gedownload en blijft "
"gesynchroniseerd." "gesynchroniseerd."
#: crates/pdfs-gui/src/app/pages/locations.rs:1578 #: crates/pdfs-gui/src/app/pages/locations.rs:1628
msgid "Download Folder?" msgid "Download Folder?"
msgstr "Map downloaden?" msgstr "Map downloaden?"
#: crates/pdfs-gui/src/app/pages/locations.rs:1582 #: crates/pdfs-gui/src/app/pages/locations.rs:1632
#: crates/pdfs-gui/src/app/update.rs:34 #: crates/pdfs-gui/src/app/update.rs:34
msgid "Download" msgid "Download"
msgstr "Downloaden" msgstr "Downloaden"
#: crates/pdfs-gui/src/app/pages/locations.rs:1606 #: crates/pdfs-gui/src/app/pages/locations.rs:1656
msgid "Couldn't pause the folder" msgid "Couldn't pause the folder"
msgstr "Kon de map niet pauzeren" msgstr "Kon de map niet pauzeren"
#: crates/pdfs-gui/src/app/pages/locations.rs:1607 #: crates/pdfs-gui/src/app/pages/locations.rs:1657
msgid "Couldn't resume the folder" msgid "Couldn't resume the folder"
msgstr "Kon de map niet hervatten" msgstr "Kon de map niet hervatten"
#: crates/pdfs-gui/src/app/pages/locations.rs:1613 #: crates/pdfs-gui/src/app/pages/locations.rs:1663
msgid "Folder paused" msgid "Folder paused"
msgstr "Map gepauzeerd" msgstr "Map gepauzeerd"
#: crates/pdfs-gui/src/app/pages/locations.rs:1614 #: crates/pdfs-gui/src/app/pages/locations.rs:1664
msgid "Folder resumed" msgid "Folder resumed"
msgstr "Map hervat" msgstr "Map hervat"
#: crates/pdfs-gui/src/app/pages/locations.rs:1638 #: crates/pdfs-gui/src/app/pages/locations.rs:1688
#: crates/pdfs-gui/src/app/pages/locations.rs:1642 #: crates/pdfs-gui/src/app/pages/locations.rs:1692
msgid "Couldn't sync" msgid "Couldn't sync"
msgstr "Kon niet synchroniseren" msgstr "Kon niet synchroniseren"
#: crates/pdfs-gui/src/app/pages/locations.rs:1668 #: crates/pdfs-gui/src/app/pages/locations.rs:1718
msgid "Shared folder" msgid "Shared folder"
msgstr "Gedeelde map" msgstr "Gedeelde map"
#: crates/pdfs-gui/src/app/pages/locations.rs:1670 #: crates/pdfs-gui/src/app/pages/locations.rs:1720
msgid "Going online only" msgid "Going online only"
msgstr "Wordt alleen online" msgstr "Wordt alleen online"
#: crates/pdfs-gui/src/app/pages/locations.rs:1671 #: crates/pdfs-gui/src/app/pages/locations.rs:1721
msgid "Switching to synced" msgid "Switching to synced"
msgstr "Overschakelen naar gesynchroniseerd" msgstr "Overschakelen naar gesynchroniseerd"
#: crates/pdfs-gui/src/app/pages/locations.rs:1681 #: crates/pdfs-gui/src/app/pages/locations.rs:1731
msgctxt "state" msgctxt "state"
msgid "paused" msgid "paused"
msgstr "gepauzeerd" msgstr "gepauzeerd"
#. Translators: a folder's files can't be opened right now. #. Translators: a folder's files can't be opened right now.
#: crates/pdfs-gui/src/app/pages/locations.rs:1692 #: crates/pdfs-gui/src/app/pages/locations.rs:1742
msgid "not available" msgid "not available"
msgstr "niet beschikbaar" msgstr "niet beschikbaar"
@@ -5906,7 +5934,9 @@ msgstr "Linkinstellingen"
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802 #: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802
msgid "" msgid ""
"Change who can edit, the password or the expiry. The link stays the same." "Change who can edit, the password or the expiry. The link stays the same."
msgstr "Wijzig wie mag bewerken, het wachtwoord of de vervaldatum. De link blijft hetzelfde." msgstr ""
"Wijzig wie mag bewerken, het wachtwoord of de vervaldatum. De link blijft "
"hetzelfde."
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:849 #: crates/pdfs-gui/src/app/widgets/share_dialog.rs:849
msgid "New password" msgid "New password"
+53 -25
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: proton-drive-linux 3.5.0\n" "Project-Id-Version: proton-drive-linux 3.5.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n" "Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-25 22:10+0100\n" "POT-Creation-Date: 2026-10-26 17:16+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -67,7 +67,7 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/browser.rs:1249 #: crates/pdfs-gui/src/app/pages/browser.rs:1249
#: crates/pdfs-gui/src/app/pages/browser.rs:2167 #: crates/pdfs-gui/src/app/pages/browser.rs:2167
#: crates/pdfs-gui/src/app/pages/browser.rs:2246 #: crates/pdfs-gui/src/app/pages/browser.rs:2246
#: crates/pdfs-gui/src/app/pages/locations.rs:1667 #: crates/pdfs-gui/src/app/pages/locations.rs:1717
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:252 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:252
#: crates/pdfs-gui/src/app/pages/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171 #: crates/pdfs-gui/src/app/pages/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171
msgid "My files" msgid "My files"
@@ -231,8 +231,9 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/devices.rs:1186 #: crates/pdfs-gui/src/app/pages/devices.rs:1186
#: crates/pdfs-gui/src/app/pages/locations.rs:850 #: 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:1054
#: crates/pdfs-gui/src/app/pages/locations.rs:1531 #: crates/pdfs-gui/src/app/pages/locations.rs:1537
#: crates/pdfs-gui/src/app/pages/locations.rs:1581 #: crates/pdfs-gui/src/app/pages/locations.rs:1581
#: crates/pdfs-gui/src/app/pages/locations.rs:1631
#: crates/pdfs-gui/src/app/pages/login.rs:480 #: crates/pdfs-gui/src/app/pages/login.rs:480
#: crates/pdfs-gui/src/app/pages/login.rs:594 #: crates/pdfs-gui/src/app/pages/login.rs:594
#: crates/pdfs-gui/src/app/pages/login.rs:640 #: crates/pdfs-gui/src/app/pages/login.rs:640
@@ -1238,8 +1239,9 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:881 #: crates/pdfs-gui/src/app/pages/locations.rs:881
#: crates/pdfs-gui/src/app/pages/locations.rs:904 #: crates/pdfs-gui/src/app/pages/locations.rs:904
#: crates/pdfs-gui/src/app/pages/locations.rs:1123 #: crates/pdfs-gui/src/app/pages/locations.rs:1123
#: crates/pdfs-gui/src/app/pages/locations.rs:1623 #: crates/pdfs-gui/src/app/pages/locations.rs:1566
#: crates/pdfs-gui/src/app/pages/locations.rs:1643 #: crates/pdfs-gui/src/app/pages/locations.rs:1673
#: crates/pdfs-gui/src/app/pages/locations.rs:1693
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1504 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1504
#: crates/pdfs-gui/src/app/pages/photos.rs:1421 #: crates/pdfs-gui/src/app/pages/photos.rs:1421
#: crates/pdfs-gui/src/app/pages/photos.rs:2141 #: crates/pdfs-gui/src/app/pages/photos.rs:2141
@@ -2266,7 +2268,8 @@ msgid "Add Folder to Sync"
msgstr "" msgstr ""
#: crates/pdfs-gui/src/app/pages/devices.rs:691 #: crates/pdfs-gui/src/app/pages/devices.rs:691
#: crates/pdfs-gui/src/app/pages/locations.rs:1636 #: crates/pdfs-gui/src/app/pages/locations.rs:1559
#: crates/pdfs-gui/src/app/pages/locations.rs:1686
msgid "Syncing folder…" msgid "Syncing folder…"
msgstr "" msgstr ""
@@ -3095,87 +3098,112 @@ msgstr ""
msgid "Pause Syncing" msgid "Pause Syncing"
msgstr "" msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1518 #: crates/pdfs-gui/src/app/pages/locations.rs:1513
msgid "Sync From Scratch…"
msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1523
msgid "Stop Syncing…" msgid "Stop Syncing…"
msgstr "" msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1527 #: crates/pdfs-gui/src/app/pages/locations.rs:1533
msgid "Sync From Scratch?"
msgstr ""
#. Translators: {path} is a local folder path.
#: crates/pdfs-gui/src/app/pages/locations.rs:1535
#, rust-format
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 ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
msgid "Sync From Scratch"
msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1557
msgid "Couldn't sync the folder from scratch"
msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1577
msgid "Make Folder Online Only?" msgid "Make Folder Online Only?"
msgstr "" msgstr ""
#. Translators: {path} is a local folder path. #. Translators: {path} is a local folder path.
#: crates/pdfs-gui/src/app/pages/locations.rs:1529 #: crates/pdfs-gui/src/app/pages/locations.rs:1579
#, rust-format #, rust-format
msgid "" msgid ""
"Files in {path} will be removed from this computer and kept in Proton Drive " "Files in {path} will be removed from this computer and kept in Proton Drive "
"only. Each file downloads again when you open it." "only. Each file downloads again when you open it."
msgstr "" msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1532 #: crates/pdfs-gui/src/app/pages/locations.rs:1582
msgid "Make Online Only" msgid "Make Online Only"
msgstr "" msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1568 #: crates/pdfs-gui/src/app/pages/locations.rs:1618
#, rust-format #, rust-format
msgid "" msgid ""
"Every file in {path} will download to this computer and stay synced. {free} " "Every file in {path} will download to this computer and stay synced. {free} "
"is free on this disk." "is free on this disk."
msgstr "" msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1573 #: crates/pdfs-gui/src/app/pages/locations.rs:1623
#, rust-format #, rust-format
msgid "Every file in {path} will download to this computer and stay synced." msgid "Every file in {path} will download to this computer and stay synced."
msgstr "" msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1578 #: crates/pdfs-gui/src/app/pages/locations.rs:1628
msgid "Download Folder?" msgid "Download Folder?"
msgstr "" msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1582 #: crates/pdfs-gui/src/app/pages/locations.rs:1632
#: crates/pdfs-gui/src/app/update.rs:34 #: crates/pdfs-gui/src/app/update.rs:34
msgid "Download" msgid "Download"
msgstr "" msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1606 #: crates/pdfs-gui/src/app/pages/locations.rs:1656
msgid "Couldn't pause the folder" msgid "Couldn't pause the folder"
msgstr "" msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1607 #: crates/pdfs-gui/src/app/pages/locations.rs:1657
msgid "Couldn't resume the folder" msgid "Couldn't resume the folder"
msgstr "" msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1613 #: crates/pdfs-gui/src/app/pages/locations.rs:1663
msgid "Folder paused" msgid "Folder paused"
msgstr "" msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1614 #: crates/pdfs-gui/src/app/pages/locations.rs:1664
msgid "Folder resumed" msgid "Folder resumed"
msgstr "" msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1638 #: crates/pdfs-gui/src/app/pages/locations.rs:1688
#: crates/pdfs-gui/src/app/pages/locations.rs:1642 #: crates/pdfs-gui/src/app/pages/locations.rs:1692
msgid "Couldn't sync" msgid "Couldn't sync"
msgstr "" msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1668 #: crates/pdfs-gui/src/app/pages/locations.rs:1718
msgid "Shared folder" msgid "Shared folder"
msgstr "" msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1670 #: crates/pdfs-gui/src/app/pages/locations.rs:1720
msgid "Going online only" msgid "Going online only"
msgstr "" msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1671 #: crates/pdfs-gui/src/app/pages/locations.rs:1721
msgid "Switching to synced" msgid "Switching to synced"
msgstr "" msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1681 #: crates/pdfs-gui/src/app/pages/locations.rs:1731
msgctxt "state" msgctxt "state"
msgid "paused" msgid "paused"
msgstr "" msgstr ""
#. Translators: a folder's files can't be opened right now. #. Translators: a folder's files can't be opened right now.
#: crates/pdfs-gui/src/app/pages/locations.rs:1692 #: crates/pdfs-gui/src/app/pages/locations.rs:1742
msgid "not available" msgid "not available"
msgstr "" msgstr ""
+56 -26
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n" "Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n" "Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-25 22:10+0100\n" "POT-Creation-Date: 2026-10-26 17:16+0100\n"
"PO-Revision-Date: 2026-09-23 12:00+0200\n" "PO-Revision-Date: 2026-09-23 12:00+0200\n"
"Last-Translator: Proton Drive for Linux contributors\n" "Last-Translator: Proton Drive for Linux contributors\n"
"Language-Team: Polish\n" "Language-Team: Polish\n"
@@ -66,7 +66,7 @@ msgstr "%A, %-d %B %Y, %H:%M"
#: crates/pdfs-gui/src/app/pages/browser.rs:1249 #: crates/pdfs-gui/src/app/pages/browser.rs:1249
#: crates/pdfs-gui/src/app/pages/browser.rs:2167 #: crates/pdfs-gui/src/app/pages/browser.rs:2167
#: crates/pdfs-gui/src/app/pages/browser.rs:2246 #: crates/pdfs-gui/src/app/pages/browser.rs:2246
#: crates/pdfs-gui/src/app/pages/locations.rs:1667 #: crates/pdfs-gui/src/app/pages/locations.rs:1717
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:252 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:252
#: crates/pdfs-gui/src/app/pages/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171 #: crates/pdfs-gui/src/app/pages/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171
msgid "My files" msgid "My files"
@@ -259,8 +259,9 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/devices.rs:1186 #: crates/pdfs-gui/src/app/pages/devices.rs:1186
#: crates/pdfs-gui/src/app/pages/locations.rs:850 #: 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:1054
#: crates/pdfs-gui/src/app/pages/locations.rs:1531 #: crates/pdfs-gui/src/app/pages/locations.rs:1537
#: crates/pdfs-gui/src/app/pages/locations.rs:1581 #: crates/pdfs-gui/src/app/pages/locations.rs:1581
#: crates/pdfs-gui/src/app/pages/locations.rs:1631
#: crates/pdfs-gui/src/app/pages/login.rs:480 #: crates/pdfs-gui/src/app/pages/login.rs:480
#: crates/pdfs-gui/src/app/pages/login.rs:594 #: crates/pdfs-gui/src/app/pages/login.rs:594
#: crates/pdfs-gui/src/app/pages/login.rs:640 #: crates/pdfs-gui/src/app/pages/login.rs:640
@@ -1311,8 +1312,9 @@ msgstr "Nie można wczytać albumów"
#: crates/pdfs-gui/src/app/pages/locations.rs:881 #: crates/pdfs-gui/src/app/pages/locations.rs:881
#: crates/pdfs-gui/src/app/pages/locations.rs:904 #: crates/pdfs-gui/src/app/pages/locations.rs:904
#: crates/pdfs-gui/src/app/pages/locations.rs:1123 #: crates/pdfs-gui/src/app/pages/locations.rs:1123
#: crates/pdfs-gui/src/app/pages/locations.rs:1623 #: crates/pdfs-gui/src/app/pages/locations.rs:1566
#: crates/pdfs-gui/src/app/pages/locations.rs:1643 #: crates/pdfs-gui/src/app/pages/locations.rs:1673
#: crates/pdfs-gui/src/app/pages/locations.rs:1693
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1504 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1504
#: crates/pdfs-gui/src/app/pages/photos.rs:1421 #: crates/pdfs-gui/src/app/pages/photos.rs:1421
#: crates/pdfs-gui/src/app/pages/photos.rs:2141 #: crates/pdfs-gui/src/app/pages/photos.rs:2141
@@ -2373,7 +2375,8 @@ msgid "Add Folder to Sync"
msgstr "Dodaj katalog do synchronizacji" msgstr "Dodaj katalog do synchronizacji"
#: crates/pdfs-gui/src/app/pages/devices.rs:691 #: crates/pdfs-gui/src/app/pages/devices.rs:691
#: crates/pdfs-gui/src/app/pages/locations.rs:1636 #: crates/pdfs-gui/src/app/pages/locations.rs:1559
#: crates/pdfs-gui/src/app/pages/locations.rs:1686
msgid "Syncing folder…" msgid "Syncing folder…"
msgstr "Synchronizowanie katalogu…" msgstr "Synchronizowanie katalogu…"
@@ -3297,16 +3300,41 @@ msgstr "Wznów synchronizację"
msgid "Pause Syncing" msgid "Pause Syncing"
msgstr "Wstrzymaj synchronizację" msgstr "Wstrzymaj synchronizację"
#: crates/pdfs-gui/src/app/pages/locations.rs:1518 #: crates/pdfs-gui/src/app/pages/locations.rs:1513
msgid "Sync From Scratch…"
msgstr "Synchronizuj od nowa…"
#: crates/pdfs-gui/src/app/pages/locations.rs:1523
msgid "Stop Syncing…" msgid "Stop Syncing…"
msgstr "Zatrzymaj synchronizację…" msgstr "Zatrzymaj synchronizację…"
#: crates/pdfs-gui/src/app/pages/locations.rs:1527 #: crates/pdfs-gui/src/app/pages/locations.rs:1533
msgid "Sync From Scratch?"
msgstr "Synchronizować od nowa?"
#. Translators: {path} is a local folder path.
#: crates/pdfs-gui/src/app/pages/locations.rs:1535
#, rust-format
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 "Ten komputer zapomina, co wcześniej zsynchronizował w {path}, i ponownie porównuje katalog z Proton Drive. Nic nie zostanie usunięte: plik, który jest tylko po jednej stronie, zostanie skopiowany na drugą, a z pliku, który się różni, zostaną zachowane obie wersje."
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
msgid "Sync From Scratch"
msgstr "Synchronizuj od nowa"
#: crates/pdfs-gui/src/app/pages/locations.rs:1557
msgid "Couldn't sync the folder from scratch"
msgstr "Nie można zsynchronizować katalogu od nowa"
#: crates/pdfs-gui/src/app/pages/locations.rs:1577
msgid "Make Folder Online Only?" msgid "Make Folder Online Only?"
msgstr "Oznaczyć katalog jako tylko online?" msgstr "Oznaczyć katalog jako tylko online?"
#. Translators: {path} is a local folder path. #. Translators: {path} is a local folder path.
#: crates/pdfs-gui/src/app/pages/locations.rs:1529 #: crates/pdfs-gui/src/app/pages/locations.rs:1579
#, rust-format #, rust-format
msgid "" msgid ""
"Files in {path} will be removed from this computer and kept in Proton Drive " "Files in {path} will be removed from this computer and kept in Proton Drive "
@@ -3315,11 +3343,11 @@ msgstr ""
"Pliki w {path} zostaną usunięte z tego komputera i będą przechowywane tylko " "Pliki w {path} zostaną usunięte z tego komputera i będą przechowywane tylko "
"w Proton Drive. Każdy plik zostanie ponownie pobrany przy otwarciu." "w Proton Drive. Każdy plik zostanie ponownie pobrany przy otwarciu."
#: crates/pdfs-gui/src/app/pages/locations.rs:1532 #: crates/pdfs-gui/src/app/pages/locations.rs:1582
msgid "Make Online Only" msgid "Make Online Only"
msgstr "Oznacz jako tylko online" msgstr "Oznacz jako tylko online"
#: crates/pdfs-gui/src/app/pages/locations.rs:1568 #: crates/pdfs-gui/src/app/pages/locations.rs:1618
#, rust-format #, rust-format
msgid "" msgid ""
"Every file in {path} will download to this computer and stay synced. {free} " "Every file in {path} will download to this computer and stay synced. {free} "
@@ -3328,62 +3356,62 @@ msgstr ""
"Każdy plik w {path} zostanie pobrany na ten komputer i pozostanie " "Każdy plik w {path} zostanie pobrany na ten komputer i pozostanie "
"synchronizowany. Wolne miejsce na tym dysku: {free}." "synchronizowany. Wolne miejsce na tym dysku: {free}."
#: crates/pdfs-gui/src/app/pages/locations.rs:1573 #: crates/pdfs-gui/src/app/pages/locations.rs:1623
#, rust-format #, rust-format
msgid "Every file in {path} will download to this computer and stay synced." msgid "Every file in {path} will download to this computer and stay synced."
msgstr "" msgstr ""
"Każdy plik w {path} zostanie pobrany na ten komputer i pozostanie " "Każdy plik w {path} zostanie pobrany na ten komputer i pozostanie "
"synchronizowany." "synchronizowany."
#: crates/pdfs-gui/src/app/pages/locations.rs:1578 #: crates/pdfs-gui/src/app/pages/locations.rs:1628
msgid "Download Folder?" msgid "Download Folder?"
msgstr "Pobrać katalog?" msgstr "Pobrać katalog?"
#: crates/pdfs-gui/src/app/pages/locations.rs:1582 #: crates/pdfs-gui/src/app/pages/locations.rs:1632
#: crates/pdfs-gui/src/app/update.rs:34 #: crates/pdfs-gui/src/app/update.rs:34
msgid "Download" msgid "Download"
msgstr "Pobierz" msgstr "Pobierz"
#: crates/pdfs-gui/src/app/pages/locations.rs:1606 #: crates/pdfs-gui/src/app/pages/locations.rs:1656
msgid "Couldn't pause the folder" msgid "Couldn't pause the folder"
msgstr "Nie można wstrzymać katalogu" msgstr "Nie można wstrzymać katalogu"
#: crates/pdfs-gui/src/app/pages/locations.rs:1607 #: crates/pdfs-gui/src/app/pages/locations.rs:1657
msgid "Couldn't resume the folder" msgid "Couldn't resume the folder"
msgstr "Nie można wznowić katalogu" msgstr "Nie można wznowić katalogu"
#: crates/pdfs-gui/src/app/pages/locations.rs:1613 #: crates/pdfs-gui/src/app/pages/locations.rs:1663
msgid "Folder paused" msgid "Folder paused"
msgstr "Wstrzymano katalog" msgstr "Wstrzymano katalog"
#: crates/pdfs-gui/src/app/pages/locations.rs:1614 #: crates/pdfs-gui/src/app/pages/locations.rs:1664
msgid "Folder resumed" msgid "Folder resumed"
msgstr "Wznowiono katalog" msgstr "Wznowiono katalog"
#: crates/pdfs-gui/src/app/pages/locations.rs:1638 #: crates/pdfs-gui/src/app/pages/locations.rs:1688
#: crates/pdfs-gui/src/app/pages/locations.rs:1642 #: crates/pdfs-gui/src/app/pages/locations.rs:1692
msgid "Couldn't sync" msgid "Couldn't sync"
msgstr "Nie można zsynchronizować" msgstr "Nie można zsynchronizować"
#: crates/pdfs-gui/src/app/pages/locations.rs:1668 #: crates/pdfs-gui/src/app/pages/locations.rs:1718
msgid "Shared folder" msgid "Shared folder"
msgstr "Udostępniony katalog" msgstr "Udostępniony katalog"
#: crates/pdfs-gui/src/app/pages/locations.rs:1670 #: crates/pdfs-gui/src/app/pages/locations.rs:1720
msgid "Going online only" msgid "Going online only"
msgstr "Przechodzenie w tryb tylko online" msgstr "Przechodzenie w tryb tylko online"
#: crates/pdfs-gui/src/app/pages/locations.rs:1671 #: crates/pdfs-gui/src/app/pages/locations.rs:1721
msgid "Switching to synced" msgid "Switching to synced"
msgstr "Przełączanie na synchronizację" msgstr "Przełączanie na synchronizację"
#: crates/pdfs-gui/src/app/pages/locations.rs:1681 #: crates/pdfs-gui/src/app/pages/locations.rs:1731
msgctxt "state" msgctxt "state"
msgid "paused" msgid "paused"
msgstr "wstrzymany" msgstr "wstrzymany"
#. Translators: a folder's files can't be opened right now. #. Translators: a folder's files can't be opened right now.
#: crates/pdfs-gui/src/app/pages/locations.rs:1692 #: crates/pdfs-gui/src/app/pages/locations.rs:1742
msgid "not available" msgid "not available"
msgstr "niedostępne" msgstr "niedostępne"
@@ -6003,7 +6031,9 @@ msgstr "Ustawienia odnośnika"
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802 #: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802
msgid "" msgid ""
"Change who can edit, the password or the expiry. The link stays the same." "Change who can edit, the password or the expiry. The link stays the same."
msgstr "Proszę zmienić, kto może edytować, hasło lub datę wygaśnięcia. Odnośnik pozostaje ten sam." msgstr ""
"Proszę zmienić, kto może edytować, hasło lub datę wygaśnięcia. Odnośnik "
"pozostaje ten sam."
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:849 #: crates/pdfs-gui/src/app/widgets/share_dialog.rs:849
msgid "New password" msgid "New password"
+55 -26
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n" "Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n" "Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-25 22:10+0100\n" "POT-Creation-Date: 2026-10-26 17:16+0100\n"
"PO-Revision-Date: 2026-09-23 12:00+0200\n" "PO-Revision-Date: 2026-09-23 12:00+0200\n"
"Last-Translator: Proton Drive for Linux contributors\n" "Last-Translator: Proton Drive for Linux contributors\n"
"Language-Team: Portuguese (Brazil)\n" "Language-Team: Portuguese (Brazil)\n"
@@ -64,7 +64,7 @@ msgstr "%A, %-d de %B de %Y, %H:%M"
#: crates/pdfs-gui/src/app/pages/browser.rs:1249 #: crates/pdfs-gui/src/app/pages/browser.rs:1249
#: crates/pdfs-gui/src/app/pages/browser.rs:2167 #: crates/pdfs-gui/src/app/pages/browser.rs:2167
#: crates/pdfs-gui/src/app/pages/browser.rs:2246 #: crates/pdfs-gui/src/app/pages/browser.rs:2246
#: crates/pdfs-gui/src/app/pages/locations.rs:1667 #: crates/pdfs-gui/src/app/pages/locations.rs:1717
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:252 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:252
#: crates/pdfs-gui/src/app/pages/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171 #: crates/pdfs-gui/src/app/pages/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171
msgid "My files" msgid "My files"
@@ -254,8 +254,9 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/devices.rs:1186 #: crates/pdfs-gui/src/app/pages/devices.rs:1186
#: crates/pdfs-gui/src/app/pages/locations.rs:850 #: 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:1054
#: crates/pdfs-gui/src/app/pages/locations.rs:1531 #: crates/pdfs-gui/src/app/pages/locations.rs:1537
#: crates/pdfs-gui/src/app/pages/locations.rs:1581 #: crates/pdfs-gui/src/app/pages/locations.rs:1581
#: crates/pdfs-gui/src/app/pages/locations.rs:1631
#: crates/pdfs-gui/src/app/pages/login.rs:480 #: crates/pdfs-gui/src/app/pages/login.rs:480
#: crates/pdfs-gui/src/app/pages/login.rs:594 #: crates/pdfs-gui/src/app/pages/login.rs:594
#: crates/pdfs-gui/src/app/pages/login.rs:640 #: crates/pdfs-gui/src/app/pages/login.rs:640
@@ -1281,8 +1282,9 @@ msgstr "Não foi possível carregar os álbuns"
#: crates/pdfs-gui/src/app/pages/locations.rs:881 #: crates/pdfs-gui/src/app/pages/locations.rs:881
#: crates/pdfs-gui/src/app/pages/locations.rs:904 #: crates/pdfs-gui/src/app/pages/locations.rs:904
#: crates/pdfs-gui/src/app/pages/locations.rs:1123 #: crates/pdfs-gui/src/app/pages/locations.rs:1123
#: crates/pdfs-gui/src/app/pages/locations.rs:1623 #: crates/pdfs-gui/src/app/pages/locations.rs:1566
#: crates/pdfs-gui/src/app/pages/locations.rs:1643 #: crates/pdfs-gui/src/app/pages/locations.rs:1673
#: crates/pdfs-gui/src/app/pages/locations.rs:1693
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1504 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1504
#: crates/pdfs-gui/src/app/pages/photos.rs:1421 #: crates/pdfs-gui/src/app/pages/photos.rs:1421
#: crates/pdfs-gui/src/app/pages/photos.rs:2141 #: crates/pdfs-gui/src/app/pages/photos.rs:2141
@@ -2313,7 +2315,8 @@ msgid "Add Folder to Sync"
msgstr "Adicionar pasta à sincronização" msgstr "Adicionar pasta à sincronização"
#: crates/pdfs-gui/src/app/pages/devices.rs:691 #: crates/pdfs-gui/src/app/pages/devices.rs:691
#: crates/pdfs-gui/src/app/pages/locations.rs:1636 #: crates/pdfs-gui/src/app/pages/locations.rs:1559
#: crates/pdfs-gui/src/app/pages/locations.rs:1686
msgid "Syncing folder…" msgid "Syncing folder…"
msgstr "Sincronizando pasta…" msgstr "Sincronizando pasta…"
@@ -3226,16 +3229,41 @@ msgstr "Retomar sincronização"
msgid "Pause Syncing" msgid "Pause Syncing"
msgstr "Pausar sincronização" msgstr "Pausar sincronização"
#: crates/pdfs-gui/src/app/pages/locations.rs:1518 #: crates/pdfs-gui/src/app/pages/locations.rs:1513
msgid "Sync From Scratch…"
msgstr "Sincronizar do zero…"
#: crates/pdfs-gui/src/app/pages/locations.rs:1523
msgid "Stop Syncing…" msgid "Stop Syncing…"
msgstr "Parar de sincronizar…" msgstr "Parar de sincronizar…"
#: crates/pdfs-gui/src/app/pages/locations.rs:1527 #: crates/pdfs-gui/src/app/pages/locations.rs:1533
msgid "Sync From Scratch?"
msgstr "Sincronizar do zero?"
#. Translators: {path} is a local folder path.
#: crates/pdfs-gui/src/app/pages/locations.rs:1535
#, rust-format
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 computador esquece o que sincronizou antes em {path} e compara a pasta com o Proton Drive novamente. Nada é excluído: um arquivo que está em um lado só é copiado para o outro, e de um arquivo diferente as duas versões são mantidas."
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
msgid "Sync From Scratch"
msgstr "Sincronizar do zero"
#: crates/pdfs-gui/src/app/pages/locations.rs:1557
msgid "Couldn't sync the folder from scratch"
msgstr "Não foi possível sincronizar a pasta do zero"
#: crates/pdfs-gui/src/app/pages/locations.rs:1577
msgid "Make Folder Online Only?" msgid "Make Folder Online Only?"
msgstr "Tornar a pasta somente online?" msgstr "Tornar a pasta somente online?"
#. Translators: {path} is a local folder path. #. Translators: {path} is a local folder path.
#: crates/pdfs-gui/src/app/pages/locations.rs:1529 #: crates/pdfs-gui/src/app/pages/locations.rs:1579
#, rust-format #, rust-format
msgid "" msgid ""
"Files in {path} will be removed from this computer and kept in Proton Drive " "Files in {path} will be removed from this computer and kept in Proton Drive "
@@ -3244,11 +3272,11 @@ msgstr ""
"Os arquivos em {path} serão removidos deste computador e mantidos somente no " "Os arquivos em {path} serão removidos deste computador e mantidos somente no "
"Proton Drive. Cada arquivo é baixado novamente quando você o abre." "Proton Drive. Cada arquivo é baixado novamente quando você o abre."
#: crates/pdfs-gui/src/app/pages/locations.rs:1532 #: crates/pdfs-gui/src/app/pages/locations.rs:1582
msgid "Make Online Only" msgid "Make Online Only"
msgstr "Tornar somente online" msgstr "Tornar somente online"
#: crates/pdfs-gui/src/app/pages/locations.rs:1568 #: crates/pdfs-gui/src/app/pages/locations.rs:1618
#, rust-format #, rust-format
msgid "" msgid ""
"Every file in {path} will download to this computer and stay synced. {free} " "Every file in {path} will download to this computer and stay synced. {free} "
@@ -3257,62 +3285,62 @@ msgstr ""
"Todos os arquivos em {path} serão baixados para este computador e " "Todos os arquivos em {path} serão baixados para este computador e "
"continuarão sincronizados. Há {free} livres neste disco." "continuarão sincronizados. Há {free} livres neste disco."
#: crates/pdfs-gui/src/app/pages/locations.rs:1573 #: crates/pdfs-gui/src/app/pages/locations.rs:1623
#, rust-format #, rust-format
msgid "Every file in {path} will download to this computer and stay synced." msgid "Every file in {path} will download to this computer and stay synced."
msgstr "" msgstr ""
"Todos os arquivos em {path} serão baixados para este computador e " "Todos os arquivos em {path} serão baixados para este computador e "
"continuarão sincronizados." "continuarão sincronizados."
#: crates/pdfs-gui/src/app/pages/locations.rs:1578 #: crates/pdfs-gui/src/app/pages/locations.rs:1628
msgid "Download Folder?" msgid "Download Folder?"
msgstr "Baixar a pasta?" msgstr "Baixar a pasta?"
#: crates/pdfs-gui/src/app/pages/locations.rs:1582 #: crates/pdfs-gui/src/app/pages/locations.rs:1632
#: crates/pdfs-gui/src/app/update.rs:34 #: crates/pdfs-gui/src/app/update.rs:34
msgid "Download" msgid "Download"
msgstr "Baixar" msgstr "Baixar"
#: crates/pdfs-gui/src/app/pages/locations.rs:1606 #: crates/pdfs-gui/src/app/pages/locations.rs:1656
msgid "Couldn't pause the folder" msgid "Couldn't pause the folder"
msgstr "Não foi possível pausar a pasta" msgstr "Não foi possível pausar a pasta"
#: crates/pdfs-gui/src/app/pages/locations.rs:1607 #: crates/pdfs-gui/src/app/pages/locations.rs:1657
msgid "Couldn't resume the folder" msgid "Couldn't resume the folder"
msgstr "Não foi possível retomar a pasta" msgstr "Não foi possível retomar a pasta"
#: crates/pdfs-gui/src/app/pages/locations.rs:1613 #: crates/pdfs-gui/src/app/pages/locations.rs:1663
msgid "Folder paused" msgid "Folder paused"
msgstr "Pasta pausada" msgstr "Pasta pausada"
#: crates/pdfs-gui/src/app/pages/locations.rs:1614 #: crates/pdfs-gui/src/app/pages/locations.rs:1664
msgid "Folder resumed" msgid "Folder resumed"
msgstr "Pasta retomada" msgstr "Pasta retomada"
#: crates/pdfs-gui/src/app/pages/locations.rs:1638 #: crates/pdfs-gui/src/app/pages/locations.rs:1688
#: crates/pdfs-gui/src/app/pages/locations.rs:1642 #: crates/pdfs-gui/src/app/pages/locations.rs:1692
msgid "Couldn't sync" msgid "Couldn't sync"
msgstr "Não foi possível sincronizar" msgstr "Não foi possível sincronizar"
#: crates/pdfs-gui/src/app/pages/locations.rs:1668 #: crates/pdfs-gui/src/app/pages/locations.rs:1718
msgid "Shared folder" msgid "Shared folder"
msgstr "Pasta compartilhada" msgstr "Pasta compartilhada"
#: crates/pdfs-gui/src/app/pages/locations.rs:1670 #: crates/pdfs-gui/src/app/pages/locations.rs:1720
msgid "Going online only" msgid "Going online only"
msgstr "Tornando somente online" msgstr "Tornando somente online"
#: crates/pdfs-gui/src/app/pages/locations.rs:1671 #: crates/pdfs-gui/src/app/pages/locations.rs:1721
msgid "Switching to synced" msgid "Switching to synced"
msgstr "Passando para sincronizada" msgstr "Passando para sincronizada"
#: crates/pdfs-gui/src/app/pages/locations.rs:1681 #: crates/pdfs-gui/src/app/pages/locations.rs:1731
msgctxt "state" msgctxt "state"
msgid "paused" msgid "paused"
msgstr "pausada" msgstr "pausada"
#. Translators: a folder's files can't be opened right now. #. Translators: a folder's files can't be opened right now.
#: crates/pdfs-gui/src/app/pages/locations.rs:1692 #: crates/pdfs-gui/src/app/pages/locations.rs:1742
msgid "not available" msgid "not available"
msgstr "indisponível" msgstr "indisponível"
@@ -5893,7 +5921,8 @@ msgstr "Configurações do link"
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802 #: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802
msgid "" msgid ""
"Change who can edit, the password or the expiry. The link stays the same." "Change who can edit, the password or the expiry. The link stays the same."
msgstr "Altere quem pode editar, a senha ou a expiração. O link continua o mesmo." msgstr ""
"Altere quem pode editar, a senha ou a expiração. O link continua o mesmo."
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:849 #: crates/pdfs-gui/src/app/widgets/share_dialog.rs:849
msgid "New password" msgid "New password"