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