mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-03 16:41:26 +01:00
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:
1 parent
ea10a43216
commit
a5acae41b3
23 files changed
+832
-238
No files matched your search
@@ -709,6 +709,13 @@ enum SyncCmd {
|
||||
/// Optional synced-folder id; omit to reconcile every folder.
|
||||
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 {
|
||||
/// 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::Reset { id } => ok_or_bail(control_request(CtlRequest::ResetSyncFolder { id })?)?,
|
||||
SyncCmd::Pause {
|
||||
folder: Some(id), ..
|
||||
} => ok_or_bail(control_request(CtlRequest::SetSyncFolderPaused {
|
||||
|
||||
@@ -480,6 +480,11 @@ pub enum Request {
|
||||
/// Pause or resume one mirror folder's reconcile, independent of the
|
||||
/// global pause. Persisted until resumed. Replies with [`Response::Ok`].
|
||||
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`.
|
||||
/// Replies with [`Response::Ok`].
|
||||
SyncNow { id: Option<i64> },
|
||||
@@ -3209,6 +3214,7 @@ mod tests {
|
||||
id: 3,
|
||||
paused: true,
|
||||
},
|
||||
Request::ResetSyncFolder { id: 3 },
|
||||
Request::SetBandwidthLimits {
|
||||
upload: 1_000_000,
|
||||
download: 0,
|
||||
|
||||
@@ -388,6 +388,7 @@ fn touched_topics(request: &CtlRequest) -> &'static [Topic] {
|
||||
| R::RemoveSyncFolder { .. }
|
||||
| R::SetSyncFolderMode { .. }
|
||||
| R::SetSyncFolderPaused { .. }
|
||||
| R::ResetSyncFolder { .. }
|
||||
| R::RestoreSyncFolders { .. }
|
||||
| R::RestoreDeviceFolders { .. } => &[Topic::Locations, Topic::Devices],
|
||||
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),
|
||||
}
|
||||
}
|
||||
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 }) => {
|
||||
core.sync_now(id);
|
||||
CtlResponse::Ok {
|
||||
|
||||
@@ -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
|
||||
/// [`Core::fork_state`] sibling. Clears any stale kernel mount first (a crashed run can leave
|
||||
/// one, which would fail the fresh mount with EBUSY).
|
||||
|
||||
@@ -450,6 +450,10 @@ impl Core {
|
||||
}
|
||||
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)");
|
||||
if !skipped.is_empty() {
|
||||
message.push_str(&format!("; skipped: {}", skipped.join(", ")));
|
||||
|
||||
@@ -2873,4 +2873,112 @@ mod tests {
|
||||
assert!(matches!(daemon.stop(), Ok(MountOutcome::Shutdown)));
|
||||
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);
|
||||
}
|
||||
}
|
||||
@@ -369,7 +369,20 @@ impl Core {
|
||||
// guard on every pass — wedging the folder's sync permanently — the
|
||||
// moment a rule covers the whole tree.
|
||||
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
|
||||
// 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
|
||||
// comes back the moment the switch lands. Shallowest first, skipping anything
|
||||
// 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();
|
||||
for rel in &local_deletions(&tracked, &local) {
|
||||
for rel in &deletions {
|
||||
if trashed
|
||||
.iter()
|
||||
.any(|dir| rel.starts_with(&format!("{dir}/")))
|
||||
|
||||
@@ -192,7 +192,8 @@ pub(super) fn guard_local_wipe<B, L>(
|
||||
if !baseline.is_empty() && baseline.keys().all(|rel| !local.contains_key(rel)) {
|
||||
return Err(format!(
|
||||
"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()
|
||||
));
|
||||
}
|
||||
@@ -213,7 +214,8 @@ pub(super) fn guard_remote_wipe<B, R>(
|
||||
if !baseline.is_empty() && baseline.keys().all(|rel| !remote.contains_key(rel)) {
|
||||
return Err(format!(
|
||||
"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()
|
||||
));
|
||||
}
|
||||
|
||||
@@ -1506,8 +1506,13 @@ fn add_device_items(ui: &Rc<Ui>, menu: &mut ActionMenu, spec: &MountSpec, id: i6
|
||||
} else {
|
||||
gettext("Pause Syncing")
|
||||
};
|
||||
let ui_pause = ui.clone();
|
||||
menu.item(&label, move || set_folder_paused(&ui_pause, id, !paused));
|
||||
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();
|
||||
}
|
||||
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
|
||||
/// by removing the local copies, which is not something to do by accident.
|
||||
fn confirm_online_only(ui: &Rc<Ui>, id: i64, path: &str) {
|
||||
|
||||
@@ -101,6 +101,7 @@ a live account since.
|
||||
| Entry | Title |
|
||||
|---|---|
|
||||
| [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 |
|
||||
| [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 |
|
||||
@@ -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
|
||||
|
||||
**Status:** Fixed, not verified live
|
||||
|
||||
@@ -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
|
||||
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
|
||||
- **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
|
||||
@@ -48,6 +53,12 @@ scratch (user data in `staging/` and `recovery/` is never touched by this).
|
||||
|
||||
### 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`,
|
||||
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
|
||||
|
||||
@@ -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 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 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 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. |
|
||||
|
||||
@@ -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**,
|
||||
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`
|
||||
|
||||
Synced folders skip build output, dependency folders and editor leftovers. Two sets of rules
|
||||
|
||||
@@ -226,6 +226,22 @@ Check that:
|
||||
|
||||
`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
|
||||
|
||||
The file changed in two places at once. Nothing was lost. See
|
||||
|
||||
@@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: proton-drive-linux 2.1.0\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
|
||||
"POT-Creation-Date: 2026-10-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"
|
||||
"Last-Translator: Proton Drive for Linux contributors\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:2167
|
||||
#: 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/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171
|
||||
msgid "My files"
|
||||
@@ -258,8 +258,9 @@ msgstr ""
|
||||
#: 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: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:1631
|
||||
#: 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: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:904
|
||||
#: 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:1643
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1566
|
||||
#: 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/photos.rs:1421
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2141
|
||||
@@ -2324,7 +2326,8 @@ msgid "Add Folder to Sync"
|
||||
msgstr "Ordner zur Synchronisierung hinzufügen"
|
||||
|
||||
#: 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…"
|
||||
msgstr "Ordner wird synchronisiert …"
|
||||
|
||||
@@ -3249,16 +3252,41 @@ msgstr "Synchronisierung fortsetzen"
|
||||
msgid "Pause Syncing"
|
||||
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…"
|
||||
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?"
|
||||
msgstr "Ordner auf „Nur online“ umstellen?"
|
||||
|
||||
#. 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
|
||||
msgid ""
|
||||
"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 "
|
||||
"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"
|
||||
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
|
||||
msgid ""
|
||||
"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 "
|
||||
"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
|
||||
msgid "Every file in {path} will download to this computer and stay synced."
|
||||
msgstr ""
|
||||
"Jede Datei in {path} wird auf diesen Computer heruntergeladen und bleibt "
|
||||
"synchronisiert."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1628
|
||||
msgid "Download Folder?"
|
||||
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
|
||||
msgid "Download"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Ordner pausiert"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1614
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1664
|
||||
msgid "Folder resumed"
|
||||
msgstr "Ordner fortgesetzt"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1638
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1642
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1688
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1692
|
||||
msgid "Couldn't sync"
|
||||
msgstr "Synchronisieren fehlgeschlagen"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1668
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1718
|
||||
msgid "Shared folder"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgid "paused"
|
||||
msgstr "pausiert"
|
||||
|
||||
#. 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"
|
||||
msgstr "nicht verfügbar"
|
||||
|
||||
@@ -5939,7 +5967,9 @@ msgstr "Link-Einstellungen"
|
||||
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802
|
||||
msgid ""
|
||||
"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
|
||||
msgid "New password"
|
||||
|
||||
+55
-26
@@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: proton-drive-linux 2.1.0\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
|
||||
"POT-Creation-Date: 2026-10-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"
|
||||
"Last-Translator: Proton Drive for Linux contributors\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:2167
|
||||
#: 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/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171
|
||||
msgid "My files"
|
||||
@@ -254,8 +254,9 @@ msgstr ""
|
||||
#: 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: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:1631
|
||||
#: 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: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:904
|
||||
#: 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:1643
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1566
|
||||
#: 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/photos.rs:1421
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2141
|
||||
@@ -2301,7 +2303,8 @@ msgid "Add Folder to Sync"
|
||||
msgstr "Add Folder to Sync"
|
||||
|
||||
#: 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…"
|
||||
msgstr "Syncing folder…"
|
||||
|
||||
@@ -3199,16 +3202,41 @@ msgstr "Resume Syncing"
|
||||
msgid "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…"
|
||||
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?"
|
||||
msgstr "Make Folder Online Only?"
|
||||
|
||||
#. 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
|
||||
msgid ""
|
||||
"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 "
|
||||
"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"
|
||||
msgstr "Make Online Only"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1568
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1618
|
||||
#, rust-format
|
||||
msgid ""
|
||||
"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} "
|
||||
"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
|
||||
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."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1628
|
||||
msgid "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
|
||||
msgid "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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Folder paused"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1614
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1664
|
||||
msgid "Folder resumed"
|
||||
msgstr "Folder resumed"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1638
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1642
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1688
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1692
|
||||
msgid "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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Switching to synced"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1681
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1731
|
||||
msgctxt "state"
|
||||
msgid "paused"
|
||||
msgstr "paused"
|
||||
|
||||
#. 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"
|
||||
msgstr "not available"
|
||||
|
||||
@@ -5822,7 +5850,8 @@ msgstr "Link settings"
|
||||
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802
|
||||
msgid ""
|
||||
"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
|
||||
msgid "New password"
|
||||
|
||||
@@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: proton-drive-linux 2.1.0\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
|
||||
"POT-Creation-Date: 2026-10-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"
|
||||
"Last-Translator: Proton Drive for Linux contributors\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:2167
|
||||
#: 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/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171
|
||||
msgid "My files"
|
||||
@@ -256,8 +256,9 @@ msgstr ""
|
||||
#: 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: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:1631
|
||||
#: 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: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:904
|
||||
#: 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:1643
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1566
|
||||
#: 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/photos.rs:1421
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2141
|
||||
@@ -2313,7 +2315,8 @@ msgid "Add Folder to Sync"
|
||||
msgstr "Añadir carpeta para sincronizar"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/devices.rs:691
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1636
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1559
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1686
|
||||
msgid "Syncing folder…"
|
||||
msgstr "Sincronizando la carpeta…"
|
||||
|
||||
@@ -3223,16 +3226,41 @@ msgstr "Reanudar la sincronización"
|
||||
msgid "Pause Syncing"
|
||||
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…"
|
||||
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?"
|
||||
msgstr "¿Hacer la carpeta solo en línea?"
|
||||
|
||||
#. 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
|
||||
msgid ""
|
||||
"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 "
|
||||
"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"
|
||||
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
|
||||
msgid ""
|
||||
"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 "
|
||||
"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
|
||||
msgid "Every file in {path} will download to this computer and stay synced."
|
||||
msgstr ""
|
||||
"Todos los archivos de {path} se descargarán en este equipo y se mantendrán "
|
||||
"sincronizados."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1628
|
||||
msgid "Download Folder?"
|
||||
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
|
||||
msgid "Download"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Carpeta reanudada"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1638
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1642
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1688
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1692
|
||||
msgid "Couldn't sync"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Pasando a sincronizada"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1681
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1731
|
||||
msgctxt "state"
|
||||
msgid "paused"
|
||||
msgstr "en pausa"
|
||||
|
||||
#. 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"
|
||||
msgstr "no disponible"
|
||||
|
||||
@@ -5895,7 +5923,8 @@ msgstr "Ajustes del enlace"
|
||||
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802
|
||||
msgid ""
|
||||
"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
|
||||
msgid "New password"
|
||||
|
||||
@@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: proton-drive-linux 2.1.0\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
|
||||
"POT-Creation-Date: 2026-10-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"
|
||||
"Last-Translator: Proton Drive for Linux contributors\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:2167
|
||||
#: 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/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171
|
||||
msgid "My files"
|
||||
@@ -258,8 +258,9 @@ msgstr ""
|
||||
#: 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: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:1631
|
||||
#: 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: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:904
|
||||
#: 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:1643
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1566
|
||||
#: 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/photos.rs:1421
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2141
|
||||
@@ -2326,7 +2328,8 @@ msgid "Add Folder to Sync"
|
||||
msgstr "Ajouter un dossier à synchroniser"
|
||||
|
||||
#: 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…"
|
||||
msgstr "Synchronisation du dossier…"
|
||||
|
||||
@@ -3248,16 +3251,41 @@ msgstr "Reprendre la synchronisation"
|
||||
msgid "Pause Syncing"
|
||||
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…"
|
||||
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?"
|
||||
msgstr "Garder le dossier en ligne uniquement ?"
|
||||
|
||||
#. 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
|
||||
msgid ""
|
||||
"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 "
|
||||
"ouverture."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1532
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1582
|
||||
msgid "Make Online Only"
|
||||
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
|
||||
msgid ""
|
||||
"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 "
|
||||
"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
|
||||
msgid "Every file in {path} will download to this computer and stay synced."
|
||||
msgstr ""
|
||||
"Chaque fichier de {path} sera téléchargé sur cet ordinateur et restera "
|
||||
"synchronisé."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1628
|
||||
msgid "Download Folder?"
|
||||
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
|
||||
msgid "Download"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Dossier repris"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1638
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1642
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1688
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1692
|
||||
msgid "Couldn't sync"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgid "paused"
|
||||
msgstr "en pause"
|
||||
|
||||
#. 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"
|
||||
msgstr "non disponible"
|
||||
|
||||
@@ -5941,7 +5969,9 @@ msgstr "Paramètres du lien"
|
||||
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802
|
||||
msgid ""
|
||||
"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
|
||||
msgid "New password"
|
||||
|
||||
@@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: proton-drive-linux 2.1.0\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
|
||||
"POT-Creation-Date: 2026-10-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"
|
||||
"Last-Translator: Proton Drive for Linux contributors\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:2167
|
||||
#: 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/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171
|
||||
msgid "My files"
|
||||
@@ -254,8 +254,9 @@ msgstr ""
|
||||
#: 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: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:1631
|
||||
#: 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: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:904
|
||||
#: 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:1643
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1566
|
||||
#: 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/photos.rs:1421
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2141
|
||||
@@ -2320,7 +2322,8 @@ msgid "Add Folder to Sync"
|
||||
msgstr "Aggiungi cartella da sincronizzare"
|
||||
|
||||
#: 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…"
|
||||
msgstr "Sincronizzazione della cartella…"
|
||||
|
||||
@@ -3241,16 +3244,41 @@ msgstr "Riprendi sincronizzazione"
|
||||
msgid "Pause Syncing"
|
||||
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…"
|
||||
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?"
|
||||
msgstr "Rendere la cartella solo online?"
|
||||
|
||||
#. 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
|
||||
msgid ""
|
||||
"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 "
|
||||
"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"
|
||||
msgstr "Rendi solo online"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1568
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1618
|
||||
#, rust-format
|
||||
msgid ""
|
||||
"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à "
|
||||
"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
|
||||
msgid "Every file in {path} will download to this computer and stay synced."
|
||||
msgstr ""
|
||||
"Ogni file in {path} verrà scaricato su questo computer e resterà "
|
||||
"sincronizzato."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1628
|
||||
msgid "Download Folder?"
|
||||
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
|
||||
msgid "Download"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Cartella ripresa"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1638
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1642
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1688
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1692
|
||||
msgid "Couldn't sync"
|
||||
msgstr "Impossibile sincronizzare"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1668
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1718
|
||||
msgid "Shared folder"
|
||||
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"
|
||||
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"
|
||||
msgstr "Passaggio a sincronizzata"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1681
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1731
|
||||
msgctxt "state"
|
||||
msgid "paused"
|
||||
msgstr "in pausa"
|
||||
|
||||
#. 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"
|
||||
msgstr "non disponibile"
|
||||
|
||||
@@ -5918,7 +5946,9 @@ msgstr "Impostazioni del collegamento"
|
||||
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802
|
||||
msgid ""
|
||||
"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
|
||||
msgid "New password"
|
||||
|
||||
@@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: proton-drive-linux 2.1.0\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
|
||||
"POT-Creation-Date: 2026-10-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"
|
||||
"Last-Translator: Proton Drive for Linux contributors\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:2167
|
||||
#: 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/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171
|
||||
msgid "My files"
|
||||
@@ -255,8 +255,9 @@ msgstr ""
|
||||
#: 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: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:1631
|
||||
#: 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: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:904
|
||||
#: 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:1643
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1566
|
||||
#: 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/photos.rs:1421
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2141
|
||||
@@ -2314,7 +2316,8 @@ msgid "Add Folder to Sync"
|
||||
msgstr "Map toevoegen aan synchronisatie"
|
||||
|
||||
#: 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…"
|
||||
msgstr "Map synchroniseren…"
|
||||
|
||||
@@ -3233,16 +3236,41 @@ msgstr "Synchronisatie hervatten"
|
||||
msgid "Pause Syncing"
|
||||
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…"
|
||||
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?"
|
||||
msgstr "Map alleen online maken?"
|
||||
|
||||
#. 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
|
||||
msgid ""
|
||||
"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 "
|
||||
"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"
|
||||
msgstr "Alleen online maken"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1568
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1618
|
||||
#, rust-format
|
||||
msgid ""
|
||||
"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 "
|
||||
"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
|
||||
msgid "Every file in {path} will download to this computer and stay synced."
|
||||
msgstr ""
|
||||
"Elk bestand in {path} wordt naar deze computer gedownload en blijft "
|
||||
"gesynchroniseerd."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1628
|
||||
msgid "Download Folder?"
|
||||
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
|
||||
msgid "Download"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Map gepauzeerd"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1614
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1664
|
||||
msgid "Folder resumed"
|
||||
msgstr "Map hervat"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1638
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1642
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1688
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1692
|
||||
msgid "Couldn't sync"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Overschakelen naar gesynchroniseerd"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1681
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1731
|
||||
msgctxt "state"
|
||||
msgid "paused"
|
||||
msgstr "gepauzeerd"
|
||||
|
||||
#. 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"
|
||||
msgstr "niet beschikbaar"
|
||||
|
||||
@@ -5906,7 +5934,9 @@ msgstr "Linkinstellingen"
|
||||
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802
|
||||
msgid ""
|
||||
"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
|
||||
msgid "New password"
|
||||
|
||||
+53
-25
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: proton-drive-linux 3.5.0\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"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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:2167
|
||||
#: 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/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171
|
||||
msgid "My files"
|
||||
@@ -231,8 +231,9 @@ msgstr ""
|
||||
#: 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: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:1631
|
||||
#: 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:640
|
||||
@@ -1238,8 +1239,9 @@ msgstr ""
|
||||
#: 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:1123
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1623
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1643
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1566
|
||||
#: 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/photos.rs:1421
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2141
|
||||
@@ -2266,7 +2268,8 @@ msgid "Add Folder to Sync"
|
||||
msgstr ""
|
||||
|
||||
#: 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…"
|
||||
msgstr ""
|
||||
|
||||
@@ -3095,87 +3098,112 @@ msgstr ""
|
||||
msgid "Pause Syncing"
|
||||
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…"
|
||||
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?"
|
||||
msgstr ""
|
||||
|
||||
#. 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
|
||||
msgid ""
|
||||
"Files in {path} will be removed from this computer and kept in Proton Drive "
|
||||
"only. Each file downloads again when you open it."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1532
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1582
|
||||
msgid "Make Online Only"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1568
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1618
|
||||
#, rust-format
|
||||
msgid ""
|
||||
"Every file in {path} will download to this computer and stay synced. {free} "
|
||||
"is free on this disk."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1573
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1623
|
||||
#, rust-format
|
||||
msgid "Every file in {path} will download to this computer and stay synced."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1628
|
||||
msgid "Download Folder?"
|
||||
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
|
||||
msgid "Download"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1613
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1663
|
||||
msgid "Folder paused"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1614
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1664
|
||||
msgid "Folder resumed"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1638
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1642
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1688
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1692
|
||||
msgid "Couldn't sync"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1668
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1718
|
||||
msgid "Shared folder"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1670
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1720
|
||||
msgid "Going online only"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1671
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1721
|
||||
msgid "Switching to synced"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1681
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1731
|
||||
msgctxt "state"
|
||||
msgid "paused"
|
||||
msgstr ""
|
||||
|
||||
#. 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"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: proton-drive-linux 2.1.0\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
|
||||
"POT-Creation-Date: 2026-10-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"
|
||||
"Last-Translator: Proton Drive for Linux contributors\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:2167
|
||||
#: 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/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171
|
||||
msgid "My files"
|
||||
@@ -259,8 +259,9 @@ msgstr ""
|
||||
#: 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: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:1631
|
||||
#: 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: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:904
|
||||
#: 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:1643
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1566
|
||||
#: 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/photos.rs:1421
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2141
|
||||
@@ -2373,7 +2375,8 @@ msgid "Add Folder to Sync"
|
||||
msgstr "Dodaj katalog do synchronizacji"
|
||||
|
||||
#: 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…"
|
||||
msgstr "Synchronizowanie katalogu…"
|
||||
|
||||
@@ -3297,16 +3300,41 @@ msgstr "Wznów synchronizację"
|
||||
msgid "Pause Syncing"
|
||||
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…"
|
||||
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?"
|
||||
msgstr "Oznaczyć katalog jako tylko online?"
|
||||
|
||||
#. 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
|
||||
msgid ""
|
||||
"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 "
|
||||
"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"
|
||||
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
|
||||
msgid ""
|
||||
"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 "
|
||||
"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
|
||||
msgid "Every file in {path} will download to this computer and stay synced."
|
||||
msgstr ""
|
||||
"Każdy plik w {path} zostanie pobrany na ten komputer i pozostanie "
|
||||
"synchronizowany."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1628
|
||||
msgid "Download Folder?"
|
||||
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
|
||||
msgid "Download"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Wstrzymano katalog"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1614
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1664
|
||||
msgid "Folder resumed"
|
||||
msgstr "Wznowiono katalog"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1638
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1642
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1688
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1692
|
||||
msgid "Couldn't sync"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgid "paused"
|
||||
msgstr "wstrzymany"
|
||||
|
||||
#. 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"
|
||||
msgstr "niedostępne"
|
||||
|
||||
@@ -6003,7 +6031,9 @@ msgstr "Ustawienia odnośnika"
|
||||
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802
|
||||
msgid ""
|
||||
"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
|
||||
msgid "New password"
|
||||
|
||||
+55
-26
@@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: proton-drive-linux 2.1.0\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
|
||||
"POT-Creation-Date: 2026-10-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"
|
||||
"Last-Translator: Proton Drive for Linux contributors\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:2167
|
||||
#: 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/trash.rs:191 crates/pdfs-gui/src/prompt.rs:171
|
||||
msgid "My files"
|
||||
@@ -254,8 +254,9 @@ msgstr ""
|
||||
#: 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: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:1631
|
||||
#: 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: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:904
|
||||
#: 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:1643
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1566
|
||||
#: 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/photos.rs:1421
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2141
|
||||
@@ -2313,7 +2315,8 @@ msgid "Add Folder to Sync"
|
||||
msgstr "Adicionar pasta à sincronização"
|
||||
|
||||
#: 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…"
|
||||
msgstr "Sincronizando pasta…"
|
||||
|
||||
@@ -3226,16 +3229,41 @@ msgstr "Retomar sincronização"
|
||||
msgid "Pause Syncing"
|
||||
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…"
|
||||
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?"
|
||||
msgstr "Tornar a pasta somente online?"
|
||||
|
||||
#. 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
|
||||
msgid ""
|
||||
"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 "
|
||||
"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"
|
||||
msgstr "Tornar somente online"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1568
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1618
|
||||
#, rust-format
|
||||
msgid ""
|
||||
"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 "
|
||||
"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
|
||||
msgid "Every file in {path} will download to this computer and stay synced."
|
||||
msgstr ""
|
||||
"Todos os arquivos em {path} serão baixados para este computador e "
|
||||
"continuarão sincronizados."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1628
|
||||
msgid "Download Folder?"
|
||||
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
|
||||
msgid "Download"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Pasta pausada"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1614
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1664
|
||||
msgid "Folder resumed"
|
||||
msgstr "Pasta retomada"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1638
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1642
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1688
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1692
|
||||
msgid "Couldn't sync"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Passando para sincronizada"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1681
|
||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1731
|
||||
msgctxt "state"
|
||||
msgid "paused"
|
||||
msgstr "pausada"
|
||||
|
||||
#. 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"
|
||||
msgstr "indisponível"
|
||||
|
||||
@@ -5893,7 +5921,8 @@ msgstr "Configurações do link"
|
||||
#: crates/pdfs-gui/src/app/widgets/share_dialog.rs:802
|
||||
msgid ""
|
||||
"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
|
||||
msgid "New password"
|
||||
|
||||
Reference in new issue
Block a user