mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-03 16:41:26 +01:00
feat(core,fuse,gui): show a sync issue on its node in the file browser
A refused change was only on the Sync page. A folder listing now carries each node's issue (by local id, so a file not yet on Drive has it too), and the browser's badge ranks it first, folders included, with the issue's explanation as its tooltip. The event sampler publishes Files when the set of issues changes, so the badge comes and goes with it.
This commit is contained in:
1 parent
9dfe4c5450
commit
a8ed6060af
25 files changed
+390
-251
No files matched your search
@@ -3554,6 +3554,7 @@ mod login_wait_tests {
|
|||||||
shared_by_unverified: false,
|
shared_by_unverified: false,
|
||||||
trashed_at: 0,
|
trashed_at: 0,
|
||||||
trashed_from: None,
|
trashed_from: None,
|
||||||
|
issue: None,
|
||||||
};
|
};
|
||||||
assert_eq!(shared_by_line(&entry), None, "no invitation, no line");
|
assert_eq!(shared_by_line(&entry), None, "no invitation, no line");
|
||||||
entry.shared_by = "alice@proton.me".into();
|
entry.shared_by = "alice@proton.me".into();
|
||||||
|
|||||||
@@ -1296,6 +1296,10 @@ pub struct DirEntry {
|
|||||||
/// not known, and for anything not in the trash.
|
/// not known, and for anything not in the trash.
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
pub trashed_from: Option<String>,
|
pub trashed_from: Option<String>,
|
||||||
|
/// Why Drive refused a change queued on the node, for a [`Request::ListDir`]
|
||||||
|
/// entry; `None` otherwise.
|
||||||
|
#[serde(default)]
|
||||||
|
pub issue: Option<SyncIssue>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// One hit in a [`Request::Search`] result. Like [`DirEntry`] but carries the
|
/// One hit in a [`Request::Search`] result. Like [`DirEntry`] but carries the
|
||||||
|
|||||||
@@ -1371,6 +1371,26 @@ impl Db {
|
|||||||
Ok(rows)
|
Ok(rows)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// The issue each node with a refused change has, by local id: what the
|
||||||
|
/// file browser shows on the node itself.
|
||||||
|
pub fn node_issues(&self) -> Result<HashMap<i64, String>> {
|
||||||
|
let conn = self.read();
|
||||||
|
let mut stmt = conn.prepare(
|
||||||
|
"SELECT COALESCE(o.lid, n.lid), o.issue FROM pending_op o
|
||||||
|
LEFT JOIN nodes n ON o.lid IS NULL AND n.uid = o.uid
|
||||||
|
WHERE o.issue IS NOT NULL",
|
||||||
|
)?;
|
||||||
|
let rows = stmt
|
||||||
|
.query_map([], |r| Ok((r.get::<_, Option<i64>>(0)?, r.get(1)?)))?
|
||||||
|
.filter_map(|row| match row {
|
||||||
|
Ok((Some(lid), issue)) => Some(Ok((lid, issue))),
|
||||||
|
Ok((None, _)) => None,
|
||||||
|
Err(e) => Some(Err(e)),
|
||||||
|
})
|
||||||
|
.collect::<rusqlite::Result<_>>()?;
|
||||||
|
Ok(rows)
|
||||||
|
}
|
||||||
|
|
||||||
/// Make a create due again if it was renamed or moved
|
/// Make a create due again if it was renamed or moved
|
||||||
/// ([`Db::rewrite_op_target`]) while the attempt that just failed was on
|
/// ([`Db::rewrite_op_target`]) while the attempt that just failed was on
|
||||||
/// the wire, `parent_uid` and `name` being what that attempt sent. What it
|
/// the wire, `parent_uid` and `name` being what that attempt sent. What it
|
||||||
|
|||||||
@@ -6988,6 +6988,30 @@ fn an_op_with_an_issue_counts_as_failing_at_once() {
|
|||||||
assert_eq!(db.pending_ops().unwrap().len(), 2);
|
assert_eq!(db.pending_ops().unwrap().len(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// The browser shows an issue on the node it is about, which it knows by
|
||||||
|
/// local id, under either uid.
|
||||||
|
#[test]
|
||||||
|
fn a_refused_change_names_its_node_by_local_id() {
|
||||||
|
let db = Db::open_in_memory().unwrap();
|
||||||
|
db.upsert_nodes(&[
|
||||||
|
folder("root", None, "My Files"),
|
||||||
|
file("a", "root", "a.bin", 1),
|
||||||
|
file("b", "root", "b.bin", 1),
|
||||||
|
])
|
||||||
|
.unwrap();
|
||||||
|
let refused = queued_op(&db, &uid("a").to_string(), 1, 90_000);
|
||||||
|
queued_op(&db, &uid("b").to_string(), 1, 90_000);
|
||||||
|
let gone = queued_op(&db, "vol~nowhere", 1, 90_000);
|
||||||
|
db.set_op_issue(refused, Some("quota")).unwrap();
|
||||||
|
db.set_op_issue(gone, Some("missing")).unwrap();
|
||||||
|
|
||||||
|
let lid = db.lid_of(&uid("a").to_string()).unwrap().unwrap();
|
||||||
|
assert_eq!(
|
||||||
|
db.node_issues().unwrap(),
|
||||||
|
std::collections::HashMap::from([(lid, "quota".to_string())])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn retry_all_touches_only_ops_that_have_failed() {
|
fn retry_all_touches_only_ops_that_have_failed() {
|
||||||
let db = Db::open_in_memory().unwrap();
|
let db = Db::open_in_memory().unwrap();
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
//! through one place (the status, transfers, sync progress) and publishes them
|
//! through one place (the status, transfers, sync progress) and publishes them
|
||||||
//! when they differ.
|
//! when they differ.
|
||||||
|
|
||||||
use std::collections::BTreeSet;
|
use std::collections::{BTreeSet, HashMap};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
@@ -153,13 +153,15 @@ pub(crate) fn transfers_line(items: Vec<TransferItem>, jobs: Vec<JobItem>) -> Op
|
|||||||
|
|
||||||
/// Watch what changes without a single place to publish it from, and publish it
|
/// Watch what changes without a single place to publish it from, and publish it
|
||||||
/// when it differs from the last look: the status (queue counts, cache use,
|
/// when it differs from the last look: the status (queue counts, cache use,
|
||||||
/// online, pause), the transfers snapshot, and the synced folders with their
|
/// online, pause), the transfers snapshot, the synced folders with their
|
||||||
/// live progress. Looks only while someone is subscribed.
|
/// live progress, and which nodes have a sync issue. Looks only while someone
|
||||||
|
/// is subscribed.
|
||||||
pub(crate) fn run_event_sampler(core: Core, username: String, mountpoint: std::path::PathBuf) {
|
pub(crate) fn run_event_sampler(core: Core, username: String, mountpoint: std::path::PathBuf) {
|
||||||
let mut transfers: Option<Arc<str>> = None;
|
let mut transfers: Option<Arc<str>> = None;
|
||||||
let mut status: Option<String> = None;
|
let mut status: Option<String> = None;
|
||||||
let mut queue: Option<String> = None;
|
let mut queue: Option<String> = None;
|
||||||
let mut locations: Option<String> = None;
|
let mut locations: Option<String> = None;
|
||||||
|
let mut issues: Option<HashMap<i64, String>> = None;
|
||||||
let mut tick = 0u32;
|
let mut tick = 0u32;
|
||||||
while core.shutdown.sleep(SAMPLE_INTERVAL) {
|
while core.shutdown.sleep(SAMPLE_INTERVAL) {
|
||||||
if !core.events.has_subscribers() {
|
if !core.events.has_subscribers() {
|
||||||
@@ -169,6 +171,7 @@ pub(crate) fn run_event_sampler(core: Core, username: String, mountpoint: std::p
|
|||||||
status = None;
|
status = None;
|
||||||
queue = None;
|
queue = None;
|
||||||
locations = None;
|
locations = None;
|
||||||
|
issues = None;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
let line = transfers_line(core.transfers.snapshot(), core.jobs_snapshot());
|
let line = transfers_line(core.transfers.snapshot(), core.jobs_snapshot());
|
||||||
@@ -196,6 +199,15 @@ pub(crate) fn run_event_sampler(core: Core, username: String, mountpoint: std::p
|
|||||||
}
|
}
|
||||||
queue = Some(queue_key);
|
queue = Some(queue_key);
|
||||||
|
|
||||||
|
// An issue shows on its node in the file browser: raised, cleared,
|
||||||
|
// landed or discarded, the listing is out of date.
|
||||||
|
if let Ok(now) = core.db.node_issues() {
|
||||||
|
if issues.as_ref().is_some_and(|last| *last != now) {
|
||||||
|
core.events.publish(&[Topic::Files]);
|
||||||
|
}
|
||||||
|
issues = Some(now);
|
||||||
|
}
|
||||||
|
|
||||||
if let Ok(now) = core.list_locations() {
|
if let Ok(now) = core.list_locations() {
|
||||||
let key = serde_json::to_string(&now).unwrap_or_default();
|
let key = serde_json::to_string(&now).unwrap_or_default();
|
||||||
if locations.as_ref().is_some_and(|last| *last != key) {
|
if locations.as_ref().is_some_and(|last| *last != key) {
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ use pdfs_core::cache::{BLOCK_SIZE, Baseline, BlockGeometry, BlockSpan, ContentCa
|
|||||||
use pdfs_core::config::{AppDirs, SweepMode};
|
use pdfs_core::config::{AppDirs, SweepMode};
|
||||||
use pdfs_core::control::{
|
use pdfs_core::control::{
|
||||||
ActivityEntry, ActivityKind, DirEntry, ErrorKind, LocalHit, PhotoKind, PublicLinkInfo,
|
ActivityEntry, ActivityKind, DirEntry, ErrorKind, LocalHit, PhotoKind, PublicLinkInfo,
|
||||||
SearchFilters, SearchHit, SearchSource, SyncFolderInfo, SyncPhase, SyncProgress,
|
SearchFilters, SearchHit, SearchSource, SyncFolderInfo, SyncIssue, SyncPhase, SyncProgress,
|
||||||
ThumbnailBuildStatus, Topic, TransferDirection,
|
ThumbnailBuildStatus, Topic, TransferDirection,
|
||||||
};
|
};
|
||||||
use pdfs_core::db::{
|
use pdfs_core::db::{
|
||||||
@@ -4324,29 +4324,31 @@ impl Core {
|
|||||||
self.settle_listing_sizes(ino);
|
self.settle_listing_sizes(ino);
|
||||||
// Snapshot the listing, then drop the lock before touching the on-disk
|
// Snapshot the listing, then drop the lock before touching the on-disk
|
||||||
// pin registry so a slow disk read doesn't block FUSE metadata ops.
|
// pin registry so a slow disk read doesn't block FUSE metadata ops.
|
||||||
let rows: Vec<(String, bool, u64, i64, NodeUid)> = {
|
let rows: Vec<(String, bool, u64, i64, NodeUid, u64)> = {
|
||||||
let st = self.state();
|
let st = self.state();
|
||||||
st.children
|
st.children
|
||||||
.get(&ino)
|
.get(&ino)
|
||||||
.map(|kids| {
|
.map(|kids| {
|
||||||
kids.iter()
|
kids.iter()
|
||||||
.filter_map(|k| st.entries.get(k))
|
.filter_map(|&k| st.entries.get(&k).map(|e| (k, e)))
|
||||||
.map(|e| {
|
.map(|(k, e)| {
|
||||||
(
|
(
|
||||||
e.node.name.clone(),
|
e.node.name.clone(),
|
||||||
e.node.is_folder(),
|
e.node.is_folder(),
|
||||||
node_size(&e.node),
|
node_size(&e.node),
|
||||||
e.node.modification_time,
|
e.node.modification_time,
|
||||||
e.uid.clone(),
|
e.uid.clone(),
|
||||||
|
k,
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
.collect()
|
.collect()
|
||||||
})
|
})
|
||||||
.unwrap_or_default()
|
.unwrap_or_default()
|
||||||
};
|
};
|
||||||
|
let issues = self.db.node_issues().unwrap_or_default();
|
||||||
Ok(rows
|
Ok(rows
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|(name, is_dir, size, modified, uid)| DirEntry {
|
.map(|(name, is_dir, size, modified, uid, ino)| DirEntry {
|
||||||
name,
|
name,
|
||||||
is_dir,
|
is_dir,
|
||||||
size,
|
size,
|
||||||
@@ -4365,6 +4367,9 @@ impl Core {
|
|||||||
shared_by_unverified: false,
|
shared_by_unverified: false,
|
||||||
trashed_at: 0,
|
trashed_at: 0,
|
||||||
trashed_from: None,
|
trashed_from: None,
|
||||||
|
issue: state::ino_lid(ino)
|
||||||
|
.and_then(|lid| issues.get(&lid))
|
||||||
|
.map(|issue| SyncIssue::parse(issue)),
|
||||||
})
|
})
|
||||||
.collect())
|
.collect())
|
||||||
}
|
}
|
||||||
@@ -5247,6 +5252,7 @@ impl Core {
|
|||||||
shared_by: String::new(),
|
shared_by: String::new(),
|
||||||
shared_at: 0,
|
shared_at: 0,
|
||||||
shared_by_unverified: false,
|
shared_by_unverified: false,
|
||||||
|
issue: None,
|
||||||
})
|
})
|
||||||
.collect())
|
.collect())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ fn shared_entry_of(core: &Core, n: Node) -> DirEntry {
|
|||||||
shared_by_unverified,
|
shared_by_unverified,
|
||||||
trashed_at: 0,
|
trashed_at: 0,
|
||||||
trashed_from: None,
|
trashed_from: None,
|
||||||
|
issue: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -278,7 +278,7 @@ pub(crate) fn wait_until(limit: Duration, mut done: impl FnMut() -> bool) -> boo
|
|||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::sim::fake_drive::{Entry, FakeDrive, Faults};
|
use crate::sim::fake_drive::{Entry, FakeDrive, Faults};
|
||||||
use pdfs_core::control::RefreshScope;
|
use pdfs_core::control::{RefreshScope, SyncIssue};
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@@ -698,6 +698,47 @@ mod tests {
|
|||||||
let _ = std::fs::remove_dir_all(&dir);
|
let _ = std::fs::remove_dir_all(&dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
#[ignore = "mounts FUSE: run with `cargo test -p pdfs-fuse sim:: -- --ignored`"]
|
||||||
|
fn a_refused_change_shows_on_its_node_until_it_is_discarded() {
|
||||||
|
let drive = FakeDrive::new();
|
||||||
|
let dir = scratch("issue-on-node");
|
||||||
|
let daemon = Daemon::start(&dir, drive.client(1, Faults::lan())).unwrap();
|
||||||
|
let mnt = daemon.mountpoint.clone();
|
||||||
|
drive.set_quota(10);
|
||||||
|
std::fs::write(mnt.join("big.bin"), [0u8; 64]).unwrap();
|
||||||
|
std::fs::write(mnt.join("small.txt"), b"ok").unwrap();
|
||||||
|
let list = || {
|
||||||
|
let path = mnt.to_string_lossy().into_owned();
|
||||||
|
match daemon.request(&Request::ListDir { path }) {
|
||||||
|
Ok(Response::Entries { entries }) => entries
|
||||||
|
.into_iter()
|
||||||
|
.filter(|entry| entry.name.contains('.'))
|
||||||
|
.map(|entry| (entry.name, entry.issue))
|
||||||
|
.collect::<BTreeMap<_, _>>(),
|
||||||
|
other => panic!("the daemon did not list the root: {other:?}"),
|
||||||
|
}
|
||||||
|
};
|
||||||
|
let refused = BTreeMap::from([
|
||||||
|
("big.bin".to_string(), Some(SyncIssue::Quota)),
|
||||||
|
("small.txt".to_string(), None),
|
||||||
|
]);
|
||||||
|
assert!(
|
||||||
|
wait_until(Duration::from_secs(30), || list() == refused),
|
||||||
|
"{:?} {:?}",
|
||||||
|
list(),
|
||||||
|
daemon.pending()
|
||||||
|
);
|
||||||
|
|
||||||
|
let op = daemon.pending().unwrap().remove(0);
|
||||||
|
let reply = daemon.request(&Request::DiscardPendingOp { id: op.id });
|
||||||
|
assert!(matches!(reply, Ok(Response::Ok { .. })), "{reply:?}");
|
||||||
|
assert_eq!(list(), BTreeMap::from([("small.txt".to_string(), None)]));
|
||||||
|
|
||||||
|
assert!(matches!(daemon.stop(), Ok(MountOutcome::Shutdown)));
|
||||||
|
let _ = std::fs::remove_dir_all(&dir);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore = "mounts FUSE: run with `cargo test -p pdfs-fuse sim:: -- --ignored`"]
|
#[ignore = "mounts FUSE: run with `cargo test -p pdfs-fuse sim:: -- --ignored`"]
|
||||||
fn a_folder_whose_mkdir_is_queued_lists_after_a_refresh() {
|
fn a_folder_whose_mkdir_is_queued_lists_after_a_refresh() {
|
||||||
|
|||||||
@@ -46,6 +46,7 @@
|
|||||||
.badge-pinned { color: var(--success-color); }
|
.badge-pinned { color: var(--success-color); }
|
||||||
.badge-cached { color: var(--success-color); }
|
.badge-cached { color: var(--success-color); }
|
||||||
.badge-cloud { color: color-mix(in srgb, currentColor 55%, transparent); }
|
.badge-cloud { color: color-mix(in srgb, currentColor 55%, transparent); }
|
||||||
|
.badge-issue { color: var(--error-color); }
|
||||||
.browser-statusbar { background-color: alpha(currentColor, 0.025); }
|
.browser-statusbar { background-color: alpha(currentColor, 0.025); }
|
||||||
scale.browser-status-meter trough { min-width: 104px; min-height: 6px; }
|
scale.browser-status-meter trough { min-width: 104px; min-height: 6px; }
|
||||||
.bulk-bar { padding: 6px 8px; border-radius: 12px; background: color-mix(in srgb, var(--accent-bg-color) 12%, transparent); }
|
.bulk-bar { padding: 6px 8px; border-radius: 12px; background: color-mix(in srgb, var(--accent-bg-color) 12%, transparent); }
|
||||||
|
|||||||
@@ -2495,9 +2495,13 @@ pub(crate) fn start_upload(ui: &Rc<Ui>, sources: Vec<String>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// The sync-state badge for an entry: `(icon, css-class)`, or `None` for folders
|
/// The sync-state badge for an entry: `(icon, css-class)`, or `None` for folders
|
||||||
/// (which carry no per-file cache state). Pinned (kept offline) ranks above merely
|
/// (which carry no per-file cache state). A sync issue ranks first, on folders
|
||||||
|
/// too: the change waits for the user. Pinned (kept offline) ranks above merely
|
||||||
/// cached (downloaded, evictable); everything else is online-only.
|
/// cached (downloaded, evictable); everything else is online-only.
|
||||||
pub(crate) fn badge_for(entry: &DirEntry) -> Option<(&'static str, &'static str)> {
|
pub(crate) fn badge_for(entry: &DirEntry) -> Option<(&'static str, &'static str)> {
|
||||||
|
if entry.issue.is_some() {
|
||||||
|
return Some(("dialog-warning-symbolic", "badge-issue"));
|
||||||
|
}
|
||||||
if entry.is_dir {
|
if entry.is_dir {
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
@@ -2513,9 +2517,11 @@ pub(crate) fn badge_for(entry: &DirEntry) -> Option<(&'static str, &'static str)
|
|||||||
/// Paint `badge` to reflect the entry's sync state (see [`badge_for`]). Clears any
|
/// Paint `badge` to reflect the entry's sync state (see [`badge_for`]). Clears any
|
||||||
/// prior colour class first, since list factories recycle cells.
|
/// prior colour class first, since list factories recycle cells.
|
||||||
pub(crate) fn apply_badge(badge: >k4::Image, entry: &DirEntry) {
|
pub(crate) fn apply_badge(badge: >k4::Image, entry: &DirEntry) {
|
||||||
for class in ["badge-pinned", "badge-cached", "badge-cloud"] {
|
for class in ["badge-pinned", "badge-cached", "badge-cloud", "badge-issue"] {
|
||||||
badge.remove_css_class(class);
|
badge.remove_css_class(class);
|
||||||
}
|
}
|
||||||
|
let issue = entry.issue.map(super::locations::issue_text);
|
||||||
|
badge.set_tooltip_text(issue.as_deref());
|
||||||
match badge_for(entry) {
|
match badge_for(entry) {
|
||||||
Some((icon, class)) => {
|
Some((icon, class)) => {
|
||||||
badge.set_icon_name(Some(icon));
|
badge.set_icon_name(Some(icon));
|
||||||
@@ -2915,6 +2921,7 @@ pub(crate) fn repaint_search(ui: &Rc<Ui>, hits: &[SearchHit]) {
|
|||||||
shared_by_unverified: false,
|
shared_by_unverified: false,
|
||||||
trashed_at: 0,
|
trashed_at: 0,
|
||||||
trashed_from: None,
|
trashed_from: None,
|
||||||
|
issue: None,
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
sort_entries(&mut entries, ui.browser.view.get());
|
sort_entries(&mut entries, ui.browser.view.get());
|
||||||
@@ -2952,11 +2959,11 @@ fn listing_summary(files: usize, folders: usize, file_bytes: u64) -> String {
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::{
|
use super::{
|
||||||
MoveTarget, hit_location, listing_summary, move_target_allowed,
|
MoveTarget, badge_for, hit_location, listing_summary, move_target_allowed,
|
||||||
show_thumbnail_build_progress, sort_entries,
|
show_thumbnail_build_progress, sort_entries,
|
||||||
};
|
};
|
||||||
use pdfs_core::config::{FileSort, FilesView};
|
use pdfs_core::config::{FileSort, FilesView};
|
||||||
use pdfs_core::control::{DirEntry, ThumbnailBuildStatus};
|
use pdfs_core::control::{DirEntry, SyncIssue, ThumbnailBuildStatus};
|
||||||
|
|
||||||
fn entry(name: &str, is_dir: bool, size: u64, modified: i64) -> DirEntry {
|
fn entry(name: &str, is_dir: bool, size: u64, modified: i64) -> DirEntry {
|
||||||
DirEntry {
|
DirEntry {
|
||||||
@@ -2974,6 +2981,7 @@ mod tests {
|
|||||||
shared_by_unverified: false,
|
shared_by_unverified: false,
|
||||||
trashed_at: 0,
|
trashed_at: 0,
|
||||||
trashed_from: None,
|
trashed_from: None,
|
||||||
|
issue: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2981,6 +2989,20 @@ mod tests {
|
|||||||
entries.iter().map(|e| e.name.as_str()).collect()
|
entries.iter().map(|e| e.name.as_str()).collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn a_sync_issue_shows_on_the_node_before_its_cache_state() {
|
||||||
|
let mut file = entry("a.txt", false, 1, 0);
|
||||||
|
file.pinned = true;
|
||||||
|
assert_eq!(badge_for(&file).unwrap().1, "badge-pinned");
|
||||||
|
file.issue = Some(SyncIssue::Quota);
|
||||||
|
assert_eq!(badge_for(&file).unwrap().1, "badge-issue");
|
||||||
|
|
||||||
|
let mut folder = entry("d", true, 0, 0);
|
||||||
|
assert_eq!(badge_for(&folder), None);
|
||||||
|
folder.issue = Some(SyncIssue::Missing);
|
||||||
|
assert_eq!(badge_for(&folder).unwrap().1, "badge-issue");
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn a_search_hit_location_is_its_parent_folder() {
|
fn a_search_hit_location_is_its_parent_folder() {
|
||||||
assert_eq!(hit_location("Work/Old/a.txt"), "Work/Old");
|
assert_eq!(hit_location("Work/Old/a.txt"), "Work/Old");
|
||||||
|
|||||||
@@ -727,7 +727,7 @@ fn queue_row(ui: &Rc<Ui>, op: &PendingOpInfo, now: i64) -> adw::ActionRow {
|
|||||||
|
|
||||||
/// What a sync issue means and what the user can do about it. The change stays
|
/// What a sync issue means and what the user can do about it. The change stays
|
||||||
/// queued either way.
|
/// queued either way.
|
||||||
fn issue_text(issue: SyncIssue) -> String {
|
pub(crate) fn issue_text(issue: SyncIssue) -> String {
|
||||||
match issue {
|
match issue {
|
||||||
SyncIssue::Quota => gettext(
|
SyncIssue::Quota => gettext(
|
||||||
"Your Proton Drive storage is full. Free up space or upgrade your plan, and this change uploads on its own.",
|
"Your Proton Drive storage is full. Free up space or upgrade your plan, and this change uploads on its own.",
|
||||||
|
|||||||
@@ -618,6 +618,7 @@ pub(crate) fn shared_item_as_entry(item: &SharedItem) -> DirEntry {
|
|||||||
shared_by_unverified: false,
|
shared_by_unverified: false,
|
||||||
trashed_at: 0,
|
trashed_at: 0,
|
||||||
trashed_from: None,
|
trashed_from: None,
|
||||||
|
issue: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -533,6 +533,7 @@ mod tests {
|
|||||||
shared_by_unverified: false,
|
shared_by_unverified: false,
|
||||||
trashed_at,
|
trashed_at,
|
||||||
trashed_from: from.map(str::to_string),
|
trashed_from: from.map(str::to_string),
|
||||||
|
issue: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,8 @@ by its local id, in the queue, the stored tree and pins alike.
|
|||||||
- **Discard a queued change.** The Sync page's Discard button and `pdfs sync discard <id>` drop
|
- **Discard a queued change.** The Sync page's Discard button and `pdfs sync discard <id>` drop
|
||||||
a change Drive will not take and undo it here: a new file or folder goes, anything else goes
|
a change Drive will not take and undo it here: a new file or folder goes, anything else goes
|
||||||
back to what Drive has. Export a file first to keep its content.
|
back to what Drive has. Export a file first to keep its content.
|
||||||
|
- **Sync issues show on the file.** A file or folder with a change Drive refused carries a
|
||||||
|
warning badge in the file browser, and its tooltip says what it means and what to do.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- **Making, renaming and deleting through the mount no longer waits for Drive.** A new folder,
|
- **Making, renaming and deleting through the mount no longer waits for Drive.** A new folder,
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ Tracks `docs/MILESTONE-3.0.0.md`. Update it with every commit that moves a phase
|
|||||||
- Fixes from the simulation and account runs since then: B125, B127, B130 and B141 to B181.
|
- Fixes from the simulation and account runs since then: B125, B127, B130 and B141 to B181.
|
||||||
- **Sync issues, first cut** (§6.2): refusals sorted into issues, shown at once in the app,
|
- **Sync issues, first cut** (§6.2): refusals sorted into issues, shown at once in the app,
|
||||||
tray and CLI; Export button and `pdfs sync export`; `pdfs sync issues`; Discard button and
|
tray and CLI; Export button and `pdfs sync export`; `pdfs sync issues`; Discard button and
|
||||||
`pdfs sync discard`.
|
`pdfs sync discard`; a warning badge on the node in the file browser.
|
||||||
|
|
||||||
## Phase 3: left for 3.0.0
|
## Phase 3: left for 3.0.0
|
||||||
|
|
||||||
@@ -32,8 +32,9 @@ Tracks `docs/MILESTONE-3.0.0.md`. Update it with every commit that moves a phase
|
|||||||
undo the local change it stood for: a node made here goes, a node Drive has goes back
|
undo the local change it stood for: a node made here goes, a node Drive has goes back
|
||||||
to what Drive has. Control request, `pdfs sync discard`, Discard button with a
|
to what Drive has. Control request, `pdfs sync discard`, Discard button with a
|
||||||
confirmation; translated in every catalog.
|
confirmation; translated in every catalog.
|
||||||
- [ ] Show the issue on the node itself (file browser emblem or status). Not in the first
|
- [x] Show the issue on the node itself: a folder listing carries each node's issue, and
|
||||||
cut.
|
the file browser shows a warning badge with what it means. The listing is published
|
||||||
|
again when the set of issues changes.
|
||||||
2. **Planner and executor (§5.4, §5.5)**: ops keyed by local id; remove `mint_local_uid`,
|
2. **Planner and executor (§5.4, §5.5)**: ops keyed by local id; remove `mint_local_uid`,
|
||||||
`finish_create` and `adopt_real_uid`; a landing create sets `remote_uid` on its row.
|
`finish_create` and `adopt_real_uid`; a landing create sets `remote_uid` on its row.
|
||||||
- [x] Queued ops carry `lid` and `parent_lid` (schema 39). The claim reads the parent's uid
|
- [x] Queued ops carry `lid` and `parent_lid` (schema 39). The claim reads the parent's uid
|
||||||
|
|||||||
@@ -169,6 +169,8 @@ The version you do not keep goes to the Trash, so a wrong choice can be undone.
|
|||||||
- **Retry** a failed upload from **Sync → Overview**, or with `pdfs sync retry`.
|
- **Retry** a failed upload from **Sync → Overview**, or with `pdfs sync retry`.
|
||||||
- **Discard** a change Proton Drive refused from the same list, or with `pdfs sync discard`: it is
|
- **Discard** a change Proton Drive refused from the same list, or with `pdfs sync discard`: it is
|
||||||
undone here and never sent. Export a file first to keep your version.
|
undone here and never sent. Export a file first to keep your version.
|
||||||
|
- A file or folder with a change Proton Drive refused carries a warning badge in **Files**; hover
|
||||||
|
it to see why.
|
||||||
|
|
||||||
## Photos
|
## Photos
|
||||||
|
|
||||||
|
|||||||
@@ -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-05 00:50+0200\n"
|
"POT-Creation-Date: 2026-10-05 01:01+0200\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"
|
||||||
@@ -514,8 +514,8 @@ msgstr "Ansichtsoptionen"
|
|||||||
#: crates/pdfs-gui/src/app/pages/activity.rs:439
|
#: crates/pdfs-gui/src/app/pages/activity.rs:439
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:385
|
#: crates/pdfs-gui/src/app/pages/browser.rs:385
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2109
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2109
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2635
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2641
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2639
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2645
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:325
|
#: crates/pdfs-gui/src/app/pages/devices.rs:325
|
||||||
#: crates/pdfs-gui/src/app/pages/locations.rs:192
|
#: crates/pdfs-gui/src/app/pages/locations.rs:192
|
||||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1123
|
#: crates/pdfs-gui/src/app/pages/locations.rs:1123
|
||||||
@@ -535,8 +535,8 @@ msgid "Couldn't read activity"
|
|||||||
msgstr "Aktivität konnte nicht gelesen werden"
|
msgstr "Aktivität konnte nicht gelesen werden"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/activity.rs:470
|
#: crates/pdfs-gui/src/app/pages/activity.rs:470
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2671
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2677
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2853
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2859
|
||||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:308
|
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:308
|
||||||
#: crates/pdfs-gui/src/app/pages/photos.rs:3435
|
#: crates/pdfs-gui/src/app/pages/photos.rs:3435
|
||||||
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
|
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
|
||||||
@@ -1546,7 +1546,7 @@ msgid "Cancel thumbnail build"
|
|||||||
msgstr "Erstellen der Vorschaubilder abbrechen"
|
msgstr "Erstellen der Vorschaubilder abbrechen"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:255
|
#: crates/pdfs-gui/src/app/pages/browser.rs:255
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2784
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2790
|
||||||
msgid "Search this folder only"
|
msgid "Search this folder only"
|
||||||
msgstr "Nur diesen Ordner durchsuchen"
|
msgstr "Nur diesen Ordner durchsuchen"
|
||||||
|
|
||||||
@@ -1839,7 +1839,7 @@ msgstr ""
|
|||||||
"Der Proton-Drive-Dienst meldet keinen Fortschritt der Vorschaubilder mehr."
|
"Der Proton-Drive-Dienst meldet keinen Fortschritt der Vorschaubilder mehr."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1705
|
#: crates/pdfs-gui/src/app/pages/browser.rs:1705
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2925
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{n} folder"
|
msgid "{n} folder"
|
||||||
msgid_plural "{n} folders"
|
msgid_plural "{n} folders"
|
||||||
@@ -1932,7 +1932,7 @@ msgstr "Hier gibt es keine Ordner."
|
|||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2287
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2287
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2331
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2331
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2578
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2584
|
||||||
msgid "Couldn't move"
|
msgid "Couldn't move"
|
||||||
msgstr "Verschieben fehlgeschlagen"
|
msgstr "Verschieben fehlgeschlagen"
|
||||||
|
|
||||||
@@ -2010,51 +2010,51 @@ msgctxt "verb"
|
|||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Anzeigen"
|
msgstr "Anzeigen"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2570
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2576
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "Moved into “{name}”"
|
msgid "Moved into “{name}”"
|
||||||
msgstr "Nach „{name}“ verschoben"
|
msgstr "Nach „{name}“ verschoben"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2640
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2646
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:261
|
#: crates/pdfs-gui/src/app/pages/devices.rs:261
|
||||||
msgid "Reading this folder."
|
msgid "Reading this folder."
|
||||||
msgstr "Dieser Ordner wird gelesen."
|
msgstr "Dieser Ordner wird gelesen."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2685
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2691
|
||||||
msgid "Folder unavailable"
|
msgid "Folder unavailable"
|
||||||
msgstr "Ordner nicht verfügbar"
|
msgstr "Ordner nicht verfügbar"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2689
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2695
|
||||||
msgid "Couldn't open this folder"
|
msgid "Couldn't open this folder"
|
||||||
msgstr "Dieser Ordner konnte nicht geöffnet werden"
|
msgstr "Dieser Ordner konnte nicht geöffnet werden"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2731
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2737
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:101
|
#: crates/pdfs-gui/src/app/pages/devices.rs:101
|
||||||
#: crates/pdfs-gui/src/app/pages/shared.rs:456
|
#: crates/pdfs-gui/src/app/pages/shared.rs:456
|
||||||
msgid "This folder is empty"
|
msgid "This folder is empty"
|
||||||
msgstr "Dieser Ordner ist leer"
|
msgstr "Dieser Ordner ist leer"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2732
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2738
|
||||||
msgid "Drop files here, or upload a file or create a folder to get started."
|
msgid "Drop files here, or upload a file or create a folder to get started."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Dateien hierher ziehen oder zum Einstieg eine Datei hochladen oder einen "
|
"Dateien hierher ziehen oder zum Einstieg eine Datei hochladen oder einen "
|
||||||
"Ordner erstellen."
|
"Ordner erstellen."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2782
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2788
|
||||||
msgid "Search everywhere"
|
msgid "Search everywhere"
|
||||||
msgstr "Überall suchen"
|
msgstr "Überall suchen"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2818
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2824
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2822
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2828
|
||||||
msgid "Searching…"
|
msgid "Searching…"
|
||||||
msgstr "Suche läuft …"
|
msgstr "Suche läuft …"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2823
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2829
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "Looking for “{query}”."
|
msgid "Looking for “{query}”."
|
||||||
msgstr "Suche nach „{query}“."
|
msgstr "Suche nach „{query}“."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2879
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2885
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{summary} — showing the first {n} search result"
|
msgid "{summary} — showing the first {n} search result"
|
||||||
msgid_plural "{summary} — showing the first {n} search results"
|
msgid_plural "{summary} — showing the first {n} search results"
|
||||||
@@ -2062,20 +2062,20 @@ msgstr[0] "{summary} – das erste Suchergebnis wird angezeigt"
|
|||||||
msgstr[1] "{summary} – die ersten {n} Suchergebnisse werden angezeigt"
|
msgstr[1] "{summary} – die ersten {n} Suchergebnisse werden angezeigt"
|
||||||
|
|
||||||
#. Translators: {summary} counts the hits, such as "2 folders, 5 files (3.0 MB)".
|
#. Translators: {summary} counts the hits, such as "2 folders, 5 files (3.0 MB)".
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2886
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2892
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{summary} — search results"
|
msgid "{summary} — search results"
|
||||||
msgstr "{summary} – Suchergebnisse"
|
msgstr "{summary} – Suchergebnisse"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2892
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2898
|
||||||
msgid "No matches"
|
msgid "No matches"
|
||||||
msgstr "Keine Treffer"
|
msgstr "Keine Treffer"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2893
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2899
|
||||||
msgid "No files or folders match that search."
|
msgid "No files or folders match that search."
|
||||||
msgstr "Keine Dateien oder Ordner entsprechen dieser Suche."
|
msgstr "Keine Dateien oder Ordner entsprechen dieser Suche."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2926
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2933
|
||||||
#: crates/pdfs-gui/src/i18n.rs:248
|
#: crates/pdfs-gui/src/i18n.rs:248
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{n} file"
|
msgid "{n} file"
|
||||||
@@ -2083,17 +2083,17 @@ msgid_plural "{n} files"
|
|||||||
msgstr[0] "{n} Datei"
|
msgstr[0] "{n} Datei"
|
||||||
msgstr[1] "{n} Dateien"
|
msgstr[1] "{n} Dateien"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2939
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{files} ({size})"
|
msgid "{files} ({size})"
|
||||||
msgstr "{files} ({size})"
|
msgstr "{files} ({size})"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2937
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2944
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{folders}, {files}"
|
msgid "{folders}, {files}"
|
||||||
msgstr "{folders}, {files}"
|
msgstr "{folders}, {files}"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2942
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2949
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{folders}, {files} ({size})"
|
msgid "{folders}, {files} ({size})"
|
||||||
msgstr "{folders}, {files} ({size})"
|
msgstr "{folders}, {files} ({size})"
|
||||||
|
|||||||
+26
-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-05 00:50+0200\n"
|
"POT-Creation-Date: 2026-10-05 01:01+0200\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"
|
||||||
@@ -508,8 +508,8 @@ msgstr "View Options"
|
|||||||
#: crates/pdfs-gui/src/app/pages/activity.rs:439
|
#: crates/pdfs-gui/src/app/pages/activity.rs:439
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:385
|
#: crates/pdfs-gui/src/app/pages/browser.rs:385
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2109
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2109
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2635
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2641
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2639
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2645
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:325
|
#: crates/pdfs-gui/src/app/pages/devices.rs:325
|
||||||
#: crates/pdfs-gui/src/app/pages/locations.rs:192
|
#: crates/pdfs-gui/src/app/pages/locations.rs:192
|
||||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1123
|
#: crates/pdfs-gui/src/app/pages/locations.rs:1123
|
||||||
@@ -529,8 +529,8 @@ msgid "Couldn't read activity"
|
|||||||
msgstr "Couldn't read activity"
|
msgstr "Couldn't read activity"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/activity.rs:470
|
#: crates/pdfs-gui/src/app/pages/activity.rs:470
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2671
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2677
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2853
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2859
|
||||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:308
|
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:308
|
||||||
#: crates/pdfs-gui/src/app/pages/photos.rs:3435
|
#: crates/pdfs-gui/src/app/pages/photos.rs:3435
|
||||||
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
|
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
|
||||||
@@ -1534,7 +1534,7 @@ msgid "Cancel thumbnail build"
|
|||||||
msgstr "Cancel thumbnail build"
|
msgstr "Cancel thumbnail build"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:255
|
#: crates/pdfs-gui/src/app/pages/browser.rs:255
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2784
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2790
|
||||||
msgid "Search this folder only"
|
msgid "Search this folder only"
|
||||||
msgstr "Search this folder only"
|
msgstr "Search this folder only"
|
||||||
|
|
||||||
@@ -1822,7 +1822,7 @@ msgid "The Proton Drive service stopped reporting thumbnail progress."
|
|||||||
msgstr "The Proton Drive service stopped reporting thumbnail progress."
|
msgstr "The Proton Drive service stopped reporting thumbnail progress."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1705
|
#: crates/pdfs-gui/src/app/pages/browser.rs:1705
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2925
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{n} folder"
|
msgid "{n} folder"
|
||||||
msgid_plural "{n} folders"
|
msgid_plural "{n} folders"
|
||||||
@@ -1913,7 +1913,7 @@ msgstr "No folders here."
|
|||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2287
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2287
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2331
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2331
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2578
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2584
|
||||||
msgid "Couldn't move"
|
msgid "Couldn't move"
|
||||||
msgstr "Couldn't move"
|
msgstr "Couldn't move"
|
||||||
|
|
||||||
@@ -1991,49 +1991,49 @@ msgctxt "verb"
|
|||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "View"
|
msgstr "View"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2570
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2576
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "Moved into “{name}”"
|
msgid "Moved into “{name}”"
|
||||||
msgstr "Moved into “{name}”"
|
msgstr "Moved into “{name}”"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2640
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2646
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:261
|
#: crates/pdfs-gui/src/app/pages/devices.rs:261
|
||||||
msgid "Reading this folder."
|
msgid "Reading this folder."
|
||||||
msgstr "Reading this folder."
|
msgstr "Reading this folder."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2685
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2691
|
||||||
msgid "Folder unavailable"
|
msgid "Folder unavailable"
|
||||||
msgstr "Folder unavailable"
|
msgstr "Folder unavailable"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2689
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2695
|
||||||
msgid "Couldn't open this folder"
|
msgid "Couldn't open this folder"
|
||||||
msgstr "Couldn't open this folder"
|
msgstr "Couldn't open this folder"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2731
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2737
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:101
|
#: crates/pdfs-gui/src/app/pages/devices.rs:101
|
||||||
#: crates/pdfs-gui/src/app/pages/shared.rs:456
|
#: crates/pdfs-gui/src/app/pages/shared.rs:456
|
||||||
msgid "This folder is empty"
|
msgid "This folder is empty"
|
||||||
msgstr "This folder is empty"
|
msgstr "This folder is empty"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2732
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2738
|
||||||
msgid "Drop files here, or upload a file or create a folder to get started."
|
msgid "Drop files here, or upload a file or create a folder to get started."
|
||||||
msgstr "Drop files here, or upload a file or create a folder to get started."
|
msgstr "Drop files here, or upload a file or create a folder to get started."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2782
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2788
|
||||||
msgid "Search everywhere"
|
msgid "Search everywhere"
|
||||||
msgstr "Search everywhere"
|
msgstr "Search everywhere"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2818
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2824
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2822
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2828
|
||||||
msgid "Searching…"
|
msgid "Searching…"
|
||||||
msgstr "Searching…"
|
msgstr "Searching…"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2823
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2829
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "Looking for “{query}”."
|
msgid "Looking for “{query}”."
|
||||||
msgstr "Looking for “{query}”."
|
msgstr "Looking for “{query}”."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2879
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2885
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{summary} — showing the first {n} search result"
|
msgid "{summary} — showing the first {n} search result"
|
||||||
msgid_plural "{summary} — showing the first {n} search results"
|
msgid_plural "{summary} — showing the first {n} search results"
|
||||||
@@ -2041,20 +2041,20 @@ msgstr[0] "{summary} — showing the first {n} search result"
|
|||||||
msgstr[1] "{summary} — showing the first {n} search results"
|
msgstr[1] "{summary} — showing the first {n} search results"
|
||||||
|
|
||||||
#. Translators: {summary} counts the hits, such as "2 folders, 5 files (3.0 MB)".
|
#. Translators: {summary} counts the hits, such as "2 folders, 5 files (3.0 MB)".
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2886
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2892
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{summary} — search results"
|
msgid "{summary} — search results"
|
||||||
msgstr "{summary} — search results"
|
msgstr "{summary} — search results"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2892
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2898
|
||||||
msgid "No matches"
|
msgid "No matches"
|
||||||
msgstr "No matches"
|
msgstr "No matches"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2893
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2899
|
||||||
msgid "No files or folders match that search."
|
msgid "No files or folders match that search."
|
||||||
msgstr "No files or folders match that search."
|
msgstr "No files or folders match that search."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2926
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2933
|
||||||
#: crates/pdfs-gui/src/i18n.rs:248
|
#: crates/pdfs-gui/src/i18n.rs:248
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{n} file"
|
msgid "{n} file"
|
||||||
@@ -2062,17 +2062,17 @@ msgid_plural "{n} files"
|
|||||||
msgstr[0] "{n} file"
|
msgstr[0] "{n} file"
|
||||||
msgstr[1] "{n} files"
|
msgstr[1] "{n} files"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2939
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{files} ({size})"
|
msgid "{files} ({size})"
|
||||||
msgstr "{files} ({size})"
|
msgstr "{files} ({size})"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2937
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2944
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{folders}, {files}"
|
msgid "{folders}, {files}"
|
||||||
msgstr "{folders}, {files}"
|
msgstr "{folders}, {files}"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2942
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2949
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{folders}, {files} ({size})"
|
msgid "{folders}, {files} ({size})"
|
||||||
msgstr "{folders}, {files} ({size})"
|
msgstr "{folders}, {files} ({size})"
|
||||||
|
|||||||
@@ -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-05 00:50+0200\n"
|
"POT-Creation-Date: 2026-10-05 01:01+0200\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"
|
||||||
@@ -511,8 +511,8 @@ msgstr "Opciones de vista"
|
|||||||
#: crates/pdfs-gui/src/app/pages/activity.rs:439
|
#: crates/pdfs-gui/src/app/pages/activity.rs:439
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:385
|
#: crates/pdfs-gui/src/app/pages/browser.rs:385
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2109
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2109
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2635
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2641
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2639
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2645
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:325
|
#: crates/pdfs-gui/src/app/pages/devices.rs:325
|
||||||
#: crates/pdfs-gui/src/app/pages/locations.rs:192
|
#: crates/pdfs-gui/src/app/pages/locations.rs:192
|
||||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1123
|
#: crates/pdfs-gui/src/app/pages/locations.rs:1123
|
||||||
@@ -532,8 +532,8 @@ msgid "Couldn't read activity"
|
|||||||
msgstr "No se pudo leer la actividad"
|
msgstr "No se pudo leer la actividad"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/activity.rs:470
|
#: crates/pdfs-gui/src/app/pages/activity.rs:470
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2671
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2677
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2853
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2859
|
||||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:308
|
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:308
|
||||||
#: crates/pdfs-gui/src/app/pages/photos.rs:3435
|
#: crates/pdfs-gui/src/app/pages/photos.rs:3435
|
||||||
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
|
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
|
||||||
@@ -1540,7 +1540,7 @@ msgid "Cancel thumbnail build"
|
|||||||
msgstr "Cancelar la generación de miniaturas"
|
msgstr "Cancelar la generación de miniaturas"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:255
|
#: crates/pdfs-gui/src/app/pages/browser.rs:255
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2784
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2790
|
||||||
msgid "Search this folder only"
|
msgid "Search this folder only"
|
||||||
msgstr "Buscar solo en esta carpeta"
|
msgstr "Buscar solo en esta carpeta"
|
||||||
|
|
||||||
@@ -1831,7 +1831,7 @@ msgstr ""
|
|||||||
"El servicio de Proton Drive dejó de informar del progreso de las miniaturas."
|
"El servicio de Proton Drive dejó de informar del progreso de las miniaturas."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1705
|
#: crates/pdfs-gui/src/app/pages/browser.rs:1705
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2925
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{n} folder"
|
msgid "{n} folder"
|
||||||
msgid_plural "{n} folders"
|
msgid_plural "{n} folders"
|
||||||
@@ -1924,7 +1924,7 @@ msgstr "No hay carpetas aquí."
|
|||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2287
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2287
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2331
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2331
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2578
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2584
|
||||||
msgid "Couldn't move"
|
msgid "Couldn't move"
|
||||||
msgstr "No se pudo mover"
|
msgstr "No se pudo mover"
|
||||||
|
|
||||||
@@ -2002,50 +2002,50 @@ msgctxt "verb"
|
|||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Ver"
|
msgstr "Ver"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2570
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2576
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "Moved into “{name}”"
|
msgid "Moved into “{name}”"
|
||||||
msgstr "Movido a “{name}”"
|
msgstr "Movido a “{name}”"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2640
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2646
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:261
|
#: crates/pdfs-gui/src/app/pages/devices.rs:261
|
||||||
msgid "Reading this folder."
|
msgid "Reading this folder."
|
||||||
msgstr "Leyendo esta carpeta."
|
msgstr "Leyendo esta carpeta."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2685
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2691
|
||||||
msgid "Folder unavailable"
|
msgid "Folder unavailable"
|
||||||
msgstr "Carpeta no disponible"
|
msgstr "Carpeta no disponible"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2689
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2695
|
||||||
msgid "Couldn't open this folder"
|
msgid "Couldn't open this folder"
|
||||||
msgstr "No se pudo abrir esta carpeta"
|
msgstr "No se pudo abrir esta carpeta"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2731
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2737
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:101
|
#: crates/pdfs-gui/src/app/pages/devices.rs:101
|
||||||
#: crates/pdfs-gui/src/app/pages/shared.rs:456
|
#: crates/pdfs-gui/src/app/pages/shared.rs:456
|
||||||
msgid "This folder is empty"
|
msgid "This folder is empty"
|
||||||
msgstr "Esta carpeta está vacía"
|
msgstr "Esta carpeta está vacía"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2732
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2738
|
||||||
msgid "Drop files here, or upload a file or create a folder to get started."
|
msgid "Drop files here, or upload a file or create a folder to get started."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Suelte archivos aquí, o suba un archivo o cree una carpeta para empezar."
|
"Suelte archivos aquí, o suba un archivo o cree una carpeta para empezar."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2782
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2788
|
||||||
msgid "Search everywhere"
|
msgid "Search everywhere"
|
||||||
msgstr "Buscar en todas partes"
|
msgstr "Buscar en todas partes"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2818
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2824
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2822
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2828
|
||||||
msgid "Searching…"
|
msgid "Searching…"
|
||||||
msgstr "Buscando…"
|
msgstr "Buscando…"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2823
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2829
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "Looking for “{query}”."
|
msgid "Looking for “{query}”."
|
||||||
msgstr "Buscando “{query}”."
|
msgstr "Buscando “{query}”."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2879
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2885
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{summary} — showing the first {n} search result"
|
msgid "{summary} — showing the first {n} search result"
|
||||||
msgid_plural "{summary} — showing the first {n} search results"
|
msgid_plural "{summary} — showing the first {n} search results"
|
||||||
@@ -2053,20 +2053,20 @@ msgstr[0] "{summary}: se muestra el primer resultado de búsqueda"
|
|||||||
msgstr[1] "{summary}: se muestran los primeros {n} resultados de búsqueda"
|
msgstr[1] "{summary}: se muestran los primeros {n} resultados de búsqueda"
|
||||||
|
|
||||||
#. Translators: {summary} counts the hits, such as "2 folders, 5 files (3.0 MB)".
|
#. Translators: {summary} counts the hits, such as "2 folders, 5 files (3.0 MB)".
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2886
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2892
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{summary} — search results"
|
msgid "{summary} — search results"
|
||||||
msgstr "{summary}: resultados de búsqueda"
|
msgstr "{summary}: resultados de búsqueda"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2892
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2898
|
||||||
msgid "No matches"
|
msgid "No matches"
|
||||||
msgstr "Sin coincidencias"
|
msgstr "Sin coincidencias"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2893
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2899
|
||||||
msgid "No files or folders match that search."
|
msgid "No files or folders match that search."
|
||||||
msgstr "Ningún archivo ni carpeta coincide con esa búsqueda."
|
msgstr "Ningún archivo ni carpeta coincide con esa búsqueda."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2926
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2933
|
||||||
#: crates/pdfs-gui/src/i18n.rs:248
|
#: crates/pdfs-gui/src/i18n.rs:248
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{n} file"
|
msgid "{n} file"
|
||||||
@@ -2074,17 +2074,17 @@ msgid_plural "{n} files"
|
|||||||
msgstr[0] "{n} archivo"
|
msgstr[0] "{n} archivo"
|
||||||
msgstr[1] "{n} archivos"
|
msgstr[1] "{n} archivos"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2939
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{files} ({size})"
|
msgid "{files} ({size})"
|
||||||
msgstr "{files} ({size})"
|
msgstr "{files} ({size})"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2937
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2944
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{folders}, {files}"
|
msgid "{folders}, {files}"
|
||||||
msgstr "{folders}, {files}"
|
msgstr "{folders}, {files}"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2942
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2949
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{folders}, {files} ({size})"
|
msgid "{folders}, {files} ({size})"
|
||||||
msgstr "{folders}, {files} ({size})"
|
msgstr "{folders}, {files} ({size})"
|
||||||
|
|||||||
@@ -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-05 00:50+0200\n"
|
"POT-Creation-Date: 2026-10-05 01:01+0200\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"
|
||||||
@@ -514,8 +514,8 @@ msgstr "Options d’affichage"
|
|||||||
#: crates/pdfs-gui/src/app/pages/activity.rs:439
|
#: crates/pdfs-gui/src/app/pages/activity.rs:439
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:385
|
#: crates/pdfs-gui/src/app/pages/browser.rs:385
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2109
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2109
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2635
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2641
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2639
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2645
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:325
|
#: crates/pdfs-gui/src/app/pages/devices.rs:325
|
||||||
#: crates/pdfs-gui/src/app/pages/locations.rs:192
|
#: crates/pdfs-gui/src/app/pages/locations.rs:192
|
||||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1123
|
#: crates/pdfs-gui/src/app/pages/locations.rs:1123
|
||||||
@@ -535,8 +535,8 @@ msgid "Couldn't read activity"
|
|||||||
msgstr "Impossible de lire l’activité"
|
msgstr "Impossible de lire l’activité"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/activity.rs:470
|
#: crates/pdfs-gui/src/app/pages/activity.rs:470
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2671
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2677
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2853
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2859
|
||||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:308
|
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:308
|
||||||
#: crates/pdfs-gui/src/app/pages/photos.rs:3435
|
#: crates/pdfs-gui/src/app/pages/photos.rs:3435
|
||||||
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
|
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
|
||||||
@@ -1551,7 +1551,7 @@ msgid "Cancel thumbnail build"
|
|||||||
msgstr "Annuler la génération des miniatures"
|
msgstr "Annuler la génération des miniatures"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:255
|
#: crates/pdfs-gui/src/app/pages/browser.rs:255
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2784
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2790
|
||||||
msgid "Search this folder only"
|
msgid "Search this folder only"
|
||||||
msgstr "Rechercher uniquement dans ce dossier"
|
msgstr "Rechercher uniquement dans ce dossier"
|
||||||
|
|
||||||
@@ -1843,7 +1843,7 @@ msgid "The Proton Drive service stopped reporting thumbnail progress."
|
|||||||
msgstr "Le service Proton Drive ne signale plus la progression des miniatures."
|
msgstr "Le service Proton Drive ne signale plus la progression des miniatures."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1705
|
#: crates/pdfs-gui/src/app/pages/browser.rs:1705
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2925
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{n} folder"
|
msgid "{n} folder"
|
||||||
msgid_plural "{n} folders"
|
msgid_plural "{n} folders"
|
||||||
@@ -1936,7 +1936,7 @@ msgstr "Aucun dossier ici."
|
|||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2287
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2287
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2331
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2331
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2578
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2584
|
||||||
msgid "Couldn't move"
|
msgid "Couldn't move"
|
||||||
msgstr "Impossible de déplacer"
|
msgstr "Impossible de déplacer"
|
||||||
|
|
||||||
@@ -2014,51 +2014,51 @@ msgctxt "verb"
|
|||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Afficher"
|
msgstr "Afficher"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2570
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2576
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "Moved into “{name}”"
|
msgid "Moved into “{name}”"
|
||||||
msgstr "Déplacé dans « {name} »"
|
msgstr "Déplacé dans « {name} »"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2640
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2646
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:261
|
#: crates/pdfs-gui/src/app/pages/devices.rs:261
|
||||||
msgid "Reading this folder."
|
msgid "Reading this folder."
|
||||||
msgstr "Lecture de ce dossier."
|
msgstr "Lecture de ce dossier."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2685
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2691
|
||||||
msgid "Folder unavailable"
|
msgid "Folder unavailable"
|
||||||
msgstr "Dossier indisponible"
|
msgstr "Dossier indisponible"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2689
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2695
|
||||||
msgid "Couldn't open this folder"
|
msgid "Couldn't open this folder"
|
||||||
msgstr "Impossible d’ouvrir ce dossier"
|
msgstr "Impossible d’ouvrir ce dossier"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2731
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2737
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:101
|
#: crates/pdfs-gui/src/app/pages/devices.rs:101
|
||||||
#: crates/pdfs-gui/src/app/pages/shared.rs:456
|
#: crates/pdfs-gui/src/app/pages/shared.rs:456
|
||||||
msgid "This folder is empty"
|
msgid "This folder is empty"
|
||||||
msgstr "Ce dossier est vide"
|
msgstr "Ce dossier est vide"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2732
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2738
|
||||||
msgid "Drop files here, or upload a file or create a folder to get started."
|
msgid "Drop files here, or upload a file or create a folder to get started."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Déposez des fichiers ici, ou téléversez un fichier ou créez un dossier pour "
|
"Déposez des fichiers ici, ou téléversez un fichier ou créez un dossier pour "
|
||||||
"commencer."
|
"commencer."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2782
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2788
|
||||||
msgid "Search everywhere"
|
msgid "Search everywhere"
|
||||||
msgstr "Rechercher partout"
|
msgstr "Rechercher partout"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2818
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2824
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2822
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2828
|
||||||
msgid "Searching…"
|
msgid "Searching…"
|
||||||
msgstr "Recherche…"
|
msgstr "Recherche…"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2823
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2829
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "Looking for “{query}”."
|
msgid "Looking for “{query}”."
|
||||||
msgstr "Recherche de « {query} »."
|
msgstr "Recherche de « {query} »."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2879
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2885
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{summary} — showing the first {n} search result"
|
msgid "{summary} — showing the first {n} search result"
|
||||||
msgid_plural "{summary} — showing the first {n} search results"
|
msgid_plural "{summary} — showing the first {n} search results"
|
||||||
@@ -2066,20 +2066,20 @@ msgstr[0] "{summary} — affichage de {n} premier résultat de recherche"
|
|||||||
msgstr[1] "{summary} — affichage des {n} premiers résultats de recherche"
|
msgstr[1] "{summary} — affichage des {n} premiers résultats de recherche"
|
||||||
|
|
||||||
#. Translators: {summary} counts the hits, such as "2 folders, 5 files (3.0 MB)".
|
#. Translators: {summary} counts the hits, such as "2 folders, 5 files (3.0 MB)".
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2886
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2892
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{summary} — search results"
|
msgid "{summary} — search results"
|
||||||
msgstr "{summary} — résultats de recherche"
|
msgstr "{summary} — résultats de recherche"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2892
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2898
|
||||||
msgid "No matches"
|
msgid "No matches"
|
||||||
msgstr "Aucun résultat"
|
msgstr "Aucun résultat"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2893
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2899
|
||||||
msgid "No files or folders match that search."
|
msgid "No files or folders match that search."
|
||||||
msgstr "Aucun fichier ni dossier ne correspond à cette recherche."
|
msgstr "Aucun fichier ni dossier ne correspond à cette recherche."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2926
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2933
|
||||||
#: crates/pdfs-gui/src/i18n.rs:248
|
#: crates/pdfs-gui/src/i18n.rs:248
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{n} file"
|
msgid "{n} file"
|
||||||
@@ -2087,17 +2087,17 @@ msgid_plural "{n} files"
|
|||||||
msgstr[0] "{n} fichier"
|
msgstr[0] "{n} fichier"
|
||||||
msgstr[1] "{n} fichiers"
|
msgstr[1] "{n} fichiers"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2939
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{files} ({size})"
|
msgid "{files} ({size})"
|
||||||
msgstr "{files} ({size})"
|
msgstr "{files} ({size})"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2937
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2944
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{folders}, {files}"
|
msgid "{folders}, {files}"
|
||||||
msgstr "{folders}, {files}"
|
msgstr "{folders}, {files}"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2942
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2949
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{folders}, {files} ({size})"
|
msgid "{folders}, {files} ({size})"
|
||||||
msgstr "{folders}, {files} ({size})"
|
msgstr "{folders}, {files} ({size})"
|
||||||
|
|||||||
@@ -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-05 00:50+0200\n"
|
"POT-Creation-Date: 2026-10-05 01:01+0200\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"
|
||||||
@@ -510,8 +510,8 @@ msgstr "Opzioni di visualizzazione"
|
|||||||
#: crates/pdfs-gui/src/app/pages/activity.rs:439
|
#: crates/pdfs-gui/src/app/pages/activity.rs:439
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:385
|
#: crates/pdfs-gui/src/app/pages/browser.rs:385
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2109
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2109
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2635
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2641
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2639
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2645
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:325
|
#: crates/pdfs-gui/src/app/pages/devices.rs:325
|
||||||
#: crates/pdfs-gui/src/app/pages/locations.rs:192
|
#: crates/pdfs-gui/src/app/pages/locations.rs:192
|
||||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1123
|
#: crates/pdfs-gui/src/app/pages/locations.rs:1123
|
||||||
@@ -531,8 +531,8 @@ msgid "Couldn't read activity"
|
|||||||
msgstr "Impossibile leggere le attività"
|
msgstr "Impossibile leggere le attività"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/activity.rs:470
|
#: crates/pdfs-gui/src/app/pages/activity.rs:470
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2671
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2677
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2853
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2859
|
||||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:308
|
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:308
|
||||||
#: crates/pdfs-gui/src/app/pages/photos.rs:3435
|
#: crates/pdfs-gui/src/app/pages/photos.rs:3435
|
||||||
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
|
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
|
||||||
@@ -1545,7 +1545,7 @@ msgid "Cancel thumbnail build"
|
|||||||
msgstr "Annulla la generazione delle miniature"
|
msgstr "Annulla la generazione delle miniature"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:255
|
#: crates/pdfs-gui/src/app/pages/browser.rs:255
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2784
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2790
|
||||||
msgid "Search this folder only"
|
msgid "Search this folder only"
|
||||||
msgstr "Cerca solo in questa cartella"
|
msgstr "Cerca solo in questa cartella"
|
||||||
|
|
||||||
@@ -1837,7 +1837,7 @@ msgstr ""
|
|||||||
"miniature."
|
"miniature."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1705
|
#: crates/pdfs-gui/src/app/pages/browser.rs:1705
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2925
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{n} folder"
|
msgid "{n} folder"
|
||||||
msgid_plural "{n} folders"
|
msgid_plural "{n} folders"
|
||||||
@@ -1930,7 +1930,7 @@ msgstr "Nessuna cartella qui."
|
|||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2287
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2287
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2331
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2331
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2578
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2584
|
||||||
msgid "Couldn't move"
|
msgid "Couldn't move"
|
||||||
msgstr "Impossibile spostare"
|
msgstr "Impossibile spostare"
|
||||||
|
|
||||||
@@ -2008,51 +2008,51 @@ msgctxt "verb"
|
|||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Visualizza"
|
msgstr "Visualizza"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2570
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2576
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "Moved into “{name}”"
|
msgid "Moved into “{name}”"
|
||||||
msgstr "Spostato in “{name}”"
|
msgstr "Spostato in “{name}”"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2640
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2646
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:261
|
#: crates/pdfs-gui/src/app/pages/devices.rs:261
|
||||||
msgid "Reading this folder."
|
msgid "Reading this folder."
|
||||||
msgstr "Lettura di questa cartella."
|
msgstr "Lettura di questa cartella."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2685
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2691
|
||||||
msgid "Folder unavailable"
|
msgid "Folder unavailable"
|
||||||
msgstr "Cartella non disponibile"
|
msgstr "Cartella non disponibile"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2689
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2695
|
||||||
msgid "Couldn't open this folder"
|
msgid "Couldn't open this folder"
|
||||||
msgstr "Impossibile aprire questa cartella"
|
msgstr "Impossibile aprire questa cartella"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2731
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2737
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:101
|
#: crates/pdfs-gui/src/app/pages/devices.rs:101
|
||||||
#: crates/pdfs-gui/src/app/pages/shared.rs:456
|
#: crates/pdfs-gui/src/app/pages/shared.rs:456
|
||||||
msgid "This folder is empty"
|
msgid "This folder is empty"
|
||||||
msgstr "Questa cartella è vuota"
|
msgstr "Questa cartella è vuota"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2732
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2738
|
||||||
msgid "Drop files here, or upload a file or create a folder to get started."
|
msgid "Drop files here, or upload a file or create a folder to get started."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Trascina qui dei file, oppure carica un file o crea una cartella per "
|
"Trascina qui dei file, oppure carica un file o crea una cartella per "
|
||||||
"iniziare."
|
"iniziare."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2782
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2788
|
||||||
msgid "Search everywhere"
|
msgid "Search everywhere"
|
||||||
msgstr "Cerca ovunque"
|
msgstr "Cerca ovunque"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2818
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2824
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2822
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2828
|
||||||
msgid "Searching…"
|
msgid "Searching…"
|
||||||
msgstr "Ricerca…"
|
msgstr "Ricerca…"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2823
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2829
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "Looking for “{query}”."
|
msgid "Looking for “{query}”."
|
||||||
msgstr "Ricerca di “{query}”."
|
msgstr "Ricerca di “{query}”."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2879
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2885
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{summary} — showing the first {n} search result"
|
msgid "{summary} — showing the first {n} search result"
|
||||||
msgid_plural "{summary} — showing the first {n} search results"
|
msgid_plural "{summary} — showing the first {n} search results"
|
||||||
@@ -2060,20 +2060,20 @@ msgstr[0] "{summary}: visualizzato il primo {n} risultato della ricerca"
|
|||||||
msgstr[1] "{summary}: visualizzati i primi {n} risultati della ricerca"
|
msgstr[1] "{summary}: visualizzati i primi {n} risultati della ricerca"
|
||||||
|
|
||||||
#. Translators: {summary} counts the hits, such as "2 folders, 5 files (3.0 MB)".
|
#. Translators: {summary} counts the hits, such as "2 folders, 5 files (3.0 MB)".
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2886
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2892
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{summary} — search results"
|
msgid "{summary} — search results"
|
||||||
msgstr "{summary}: risultati della ricerca"
|
msgstr "{summary}: risultati della ricerca"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2892
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2898
|
||||||
msgid "No matches"
|
msgid "No matches"
|
||||||
msgstr "Nessuna corrispondenza"
|
msgstr "Nessuna corrispondenza"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2893
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2899
|
||||||
msgid "No files or folders match that search."
|
msgid "No files or folders match that search."
|
||||||
msgstr "Nessun file o cartella corrisponde alla ricerca."
|
msgstr "Nessun file o cartella corrisponde alla ricerca."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2926
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2933
|
||||||
#: crates/pdfs-gui/src/i18n.rs:248
|
#: crates/pdfs-gui/src/i18n.rs:248
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{n} file"
|
msgid "{n} file"
|
||||||
@@ -2081,17 +2081,17 @@ msgid_plural "{n} files"
|
|||||||
msgstr[0] "{n} file"
|
msgstr[0] "{n} file"
|
||||||
msgstr[1] "{n} file"
|
msgstr[1] "{n} file"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2939
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{files} ({size})"
|
msgid "{files} ({size})"
|
||||||
msgstr "{files} ({size})"
|
msgstr "{files} ({size})"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2937
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2944
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{folders}, {files}"
|
msgid "{folders}, {files}"
|
||||||
msgstr "{folders}, {files}"
|
msgstr "{folders}, {files}"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2942
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2949
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{folders}, {files} ({size})"
|
msgid "{folders}, {files} ({size})"
|
||||||
msgstr "{folders}, {files} ({size})"
|
msgstr "{folders}, {files} ({size})"
|
||||||
|
|||||||
@@ -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-05 00:50+0200\n"
|
"POT-Creation-Date: 2026-10-05 01:01+0200\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"
|
||||||
@@ -511,8 +511,8 @@ msgstr "Weergaveopties"
|
|||||||
#: crates/pdfs-gui/src/app/pages/activity.rs:439
|
#: crates/pdfs-gui/src/app/pages/activity.rs:439
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:385
|
#: crates/pdfs-gui/src/app/pages/browser.rs:385
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2109
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2109
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2635
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2641
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2639
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2645
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:325
|
#: crates/pdfs-gui/src/app/pages/devices.rs:325
|
||||||
#: crates/pdfs-gui/src/app/pages/locations.rs:192
|
#: crates/pdfs-gui/src/app/pages/locations.rs:192
|
||||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1123
|
#: crates/pdfs-gui/src/app/pages/locations.rs:1123
|
||||||
@@ -532,8 +532,8 @@ msgid "Couldn't read activity"
|
|||||||
msgstr "Kon activiteit niet lezen"
|
msgstr "Kon activiteit niet lezen"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/activity.rs:470
|
#: crates/pdfs-gui/src/app/pages/activity.rs:470
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2671
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2677
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2853
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2859
|
||||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:308
|
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:308
|
||||||
#: crates/pdfs-gui/src/app/pages/photos.rs:3435
|
#: crates/pdfs-gui/src/app/pages/photos.rs:3435
|
||||||
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
|
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
|
||||||
@@ -1541,7 +1541,7 @@ msgid "Cancel thumbnail build"
|
|||||||
msgstr "Aanmaken van miniaturen annuleren"
|
msgstr "Aanmaken van miniaturen annuleren"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:255
|
#: crates/pdfs-gui/src/app/pages/browser.rs:255
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2784
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2790
|
||||||
msgid "Search this folder only"
|
msgid "Search this folder only"
|
||||||
msgstr "Alleen in deze map zoeken"
|
msgstr "Alleen in deze map zoeken"
|
||||||
|
|
||||||
@@ -1831,7 +1831,7 @@ msgid "The Proton Drive service stopped reporting thumbnail progress."
|
|||||||
msgstr "De Proton Drive-service meldt geen voortgang van miniaturen meer."
|
msgstr "De Proton Drive-service meldt geen voortgang van miniaturen meer."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1705
|
#: crates/pdfs-gui/src/app/pages/browser.rs:1705
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2925
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{n} folder"
|
msgid "{n} folder"
|
||||||
msgid_plural "{n} folders"
|
msgid_plural "{n} folders"
|
||||||
@@ -1924,7 +1924,7 @@ msgstr "Geen mappen hier."
|
|||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2287
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2287
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2331
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2331
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2578
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2584
|
||||||
msgid "Couldn't move"
|
msgid "Couldn't move"
|
||||||
msgstr "Kon niet verplaatsen"
|
msgstr "Kon niet verplaatsen"
|
||||||
|
|
||||||
@@ -2002,51 +2002,51 @@ msgctxt "verb"
|
|||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Bekijken"
|
msgstr "Bekijken"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2570
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2576
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "Moved into “{name}”"
|
msgid "Moved into “{name}”"
|
||||||
msgstr "Verplaatst naar “{name}”"
|
msgstr "Verplaatst naar “{name}”"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2640
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2646
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:261
|
#: crates/pdfs-gui/src/app/pages/devices.rs:261
|
||||||
msgid "Reading this folder."
|
msgid "Reading this folder."
|
||||||
msgstr "Deze map wordt gelezen."
|
msgstr "Deze map wordt gelezen."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2685
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2691
|
||||||
msgid "Folder unavailable"
|
msgid "Folder unavailable"
|
||||||
msgstr "Map niet beschikbaar"
|
msgstr "Map niet beschikbaar"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2689
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2695
|
||||||
msgid "Couldn't open this folder"
|
msgid "Couldn't open this folder"
|
||||||
msgstr "Kon deze map niet openen"
|
msgstr "Kon deze map niet openen"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2731
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2737
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:101
|
#: crates/pdfs-gui/src/app/pages/devices.rs:101
|
||||||
#: crates/pdfs-gui/src/app/pages/shared.rs:456
|
#: crates/pdfs-gui/src/app/pages/shared.rs:456
|
||||||
msgid "This folder is empty"
|
msgid "This folder is empty"
|
||||||
msgstr "Deze map is leeg"
|
msgstr "Deze map is leeg"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2732
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2738
|
||||||
msgid "Drop files here, or upload a file or create a folder to get started."
|
msgid "Drop files here, or upload a file or create a folder to get started."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Sleep bestanden hierheen, of upload een bestand of maak een map aan om te "
|
"Sleep bestanden hierheen, of upload een bestand of maak een map aan om te "
|
||||||
"beginnen."
|
"beginnen."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2782
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2788
|
||||||
msgid "Search everywhere"
|
msgid "Search everywhere"
|
||||||
msgstr "Overal zoeken"
|
msgstr "Overal zoeken"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2818
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2824
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2822
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2828
|
||||||
msgid "Searching…"
|
msgid "Searching…"
|
||||||
msgstr "Zoeken…"
|
msgstr "Zoeken…"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2823
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2829
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "Looking for “{query}”."
|
msgid "Looking for “{query}”."
|
||||||
msgstr "Zoeken naar “{query}”."
|
msgstr "Zoeken naar “{query}”."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2879
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2885
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{summary} — showing the first {n} search result"
|
msgid "{summary} — showing the first {n} search result"
|
||||||
msgid_plural "{summary} — showing the first {n} search results"
|
msgid_plural "{summary} — showing the first {n} search results"
|
||||||
@@ -2054,20 +2054,20 @@ msgstr[0] "{summary} — eerste {n} zoekresultaat wordt getoond"
|
|||||||
msgstr[1] "{summary} — eerste {n} zoekresultaten worden getoond"
|
msgstr[1] "{summary} — eerste {n} zoekresultaten worden getoond"
|
||||||
|
|
||||||
#. Translators: {summary} counts the hits, such as "2 folders, 5 files (3.0 MB)".
|
#. Translators: {summary} counts the hits, such as "2 folders, 5 files (3.0 MB)".
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2886
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2892
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{summary} — search results"
|
msgid "{summary} — search results"
|
||||||
msgstr "{summary} — zoekresultaten"
|
msgstr "{summary} — zoekresultaten"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2892
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2898
|
||||||
msgid "No matches"
|
msgid "No matches"
|
||||||
msgstr "Geen overeenkomsten"
|
msgstr "Geen overeenkomsten"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2893
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2899
|
||||||
msgid "No files or folders match that search."
|
msgid "No files or folders match that search."
|
||||||
msgstr "Geen bestanden of mappen komen overeen met deze zoekopdracht."
|
msgstr "Geen bestanden of mappen komen overeen met deze zoekopdracht."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2926
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2933
|
||||||
#: crates/pdfs-gui/src/i18n.rs:248
|
#: crates/pdfs-gui/src/i18n.rs:248
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{n} file"
|
msgid "{n} file"
|
||||||
@@ -2075,17 +2075,17 @@ msgid_plural "{n} files"
|
|||||||
msgstr[0] "{n} bestand"
|
msgstr[0] "{n} bestand"
|
||||||
msgstr[1] "{n} bestanden"
|
msgstr[1] "{n} bestanden"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2939
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{files} ({size})"
|
msgid "{files} ({size})"
|
||||||
msgstr "{files} ({size})"
|
msgstr "{files} ({size})"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2937
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2944
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{folders}, {files}"
|
msgid "{folders}, {files}"
|
||||||
msgstr "{folders}, {files}"
|
msgstr "{folders}, {files}"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2942
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2949
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{folders}, {files} ({size})"
|
msgid "{folders}, {files} ({size})"
|
||||||
msgstr "{folders}, {files} ({size})"
|
msgstr "{folders}, {files} ({size})"
|
||||||
|
|||||||
+26
-26
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: proton-drive-linux 2.10.0\n"
|
"Project-Id-Version: proton-drive-linux 2.10.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-05 00:50+0200\n"
|
"POT-Creation-Date: 2026-10-05 01:01+0200\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"
|
||||||
@@ -483,8 +483,8 @@ msgstr ""
|
|||||||
#: crates/pdfs-gui/src/app/pages/activity.rs:439
|
#: crates/pdfs-gui/src/app/pages/activity.rs:439
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:385
|
#: crates/pdfs-gui/src/app/pages/browser.rs:385
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2109
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2109
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2635
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2641
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2639
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2645
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:325
|
#: crates/pdfs-gui/src/app/pages/devices.rs:325
|
||||||
#: crates/pdfs-gui/src/app/pages/locations.rs:192
|
#: crates/pdfs-gui/src/app/pages/locations.rs:192
|
||||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1123
|
#: crates/pdfs-gui/src/app/pages/locations.rs:1123
|
||||||
@@ -504,8 +504,8 @@ msgid "Couldn't read activity"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/activity.rs:470
|
#: crates/pdfs-gui/src/app/pages/activity.rs:470
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2671
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2677
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2853
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2859
|
||||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:308
|
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:308
|
||||||
#: crates/pdfs-gui/src/app/pages/photos.rs:3435
|
#: crates/pdfs-gui/src/app/pages/photos.rs:3435
|
||||||
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
|
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
|
||||||
@@ -1499,7 +1499,7 @@ msgid "Cancel thumbnail build"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:255
|
#: crates/pdfs-gui/src/app/pages/browser.rs:255
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2784
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2790
|
||||||
msgid "Search this folder only"
|
msgid "Search this folder only"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1787,7 +1787,7 @@ msgid "The Proton Drive service stopped reporting thumbnail progress."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1705
|
#: crates/pdfs-gui/src/app/pages/browser.rs:1705
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2925
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{n} folder"
|
msgid "{n} folder"
|
||||||
msgid_plural "{n} folders"
|
msgid_plural "{n} folders"
|
||||||
@@ -1878,7 +1878,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2287
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2287
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2331
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2331
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2578
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2584
|
||||||
msgid "Couldn't move"
|
msgid "Couldn't move"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1956,49 +1956,49 @@ msgctxt "verb"
|
|||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2570
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2576
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "Moved into “{name}”"
|
msgid "Moved into “{name}”"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2640
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2646
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:261
|
#: crates/pdfs-gui/src/app/pages/devices.rs:261
|
||||||
msgid "Reading this folder."
|
msgid "Reading this folder."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2685
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2691
|
||||||
msgid "Folder unavailable"
|
msgid "Folder unavailable"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2689
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2695
|
||||||
msgid "Couldn't open this folder"
|
msgid "Couldn't open this folder"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2731
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2737
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:101
|
#: crates/pdfs-gui/src/app/pages/devices.rs:101
|
||||||
#: crates/pdfs-gui/src/app/pages/shared.rs:456
|
#: crates/pdfs-gui/src/app/pages/shared.rs:456
|
||||||
msgid "This folder is empty"
|
msgid "This folder is empty"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2732
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2738
|
||||||
msgid "Drop files here, or upload a file or create a folder to get started."
|
msgid "Drop files here, or upload a file or create a folder to get started."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2782
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2788
|
||||||
msgid "Search everywhere"
|
msgid "Search everywhere"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2818
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2824
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2822
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2828
|
||||||
msgid "Searching…"
|
msgid "Searching…"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2823
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2829
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "Looking for “{query}”."
|
msgid "Looking for “{query}”."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2879
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2885
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{summary} — showing the first {n} search result"
|
msgid "{summary} — showing the first {n} search result"
|
||||||
msgid_plural "{summary} — showing the first {n} search results"
|
msgid_plural "{summary} — showing the first {n} search results"
|
||||||
@@ -2006,20 +2006,20 @@ msgstr[0] ""
|
|||||||
msgstr[1] ""
|
msgstr[1] ""
|
||||||
|
|
||||||
#. Translators: {summary} counts the hits, such as "2 folders, 5 files (3.0 MB)".
|
#. Translators: {summary} counts the hits, such as "2 folders, 5 files (3.0 MB)".
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2886
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2892
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{summary} — search results"
|
msgid "{summary} — search results"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2892
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2898
|
||||||
msgid "No matches"
|
msgid "No matches"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2893
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2899
|
||||||
msgid "No files or folders match that search."
|
msgid "No files or folders match that search."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2926
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2933
|
||||||
#: crates/pdfs-gui/src/i18n.rs:248
|
#: crates/pdfs-gui/src/i18n.rs:248
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{n} file"
|
msgid "{n} file"
|
||||||
@@ -2027,17 +2027,17 @@ msgid_plural "{n} files"
|
|||||||
msgstr[0] ""
|
msgstr[0] ""
|
||||||
msgstr[1] ""
|
msgstr[1] ""
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2939
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{files} ({size})"
|
msgid "{files} ({size})"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2937
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2944
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{folders}, {files}"
|
msgid "{folders}, {files}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2942
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2949
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{folders}, {files} ({size})"
|
msgid "{folders}, {files} ({size})"
|
||||||
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-05 00:50+0200\n"
|
"POT-Creation-Date: 2026-10-05 01:01+0200\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"
|
||||||
@@ -518,8 +518,8 @@ msgstr "Opcje widoku"
|
|||||||
#: crates/pdfs-gui/src/app/pages/activity.rs:439
|
#: crates/pdfs-gui/src/app/pages/activity.rs:439
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:385
|
#: crates/pdfs-gui/src/app/pages/browser.rs:385
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2109
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2109
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2635
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2641
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2639
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2645
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:325
|
#: crates/pdfs-gui/src/app/pages/devices.rs:325
|
||||||
#: crates/pdfs-gui/src/app/pages/locations.rs:192
|
#: crates/pdfs-gui/src/app/pages/locations.rs:192
|
||||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1123
|
#: crates/pdfs-gui/src/app/pages/locations.rs:1123
|
||||||
@@ -539,8 +539,8 @@ msgid "Couldn't read activity"
|
|||||||
msgstr "Nie można odczytać aktywności"
|
msgstr "Nie można odczytać aktywności"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/activity.rs:470
|
#: crates/pdfs-gui/src/app/pages/activity.rs:470
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2671
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2677
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2853
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2859
|
||||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:308
|
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:308
|
||||||
#: crates/pdfs-gui/src/app/pages/photos.rs:3435
|
#: crates/pdfs-gui/src/app/pages/photos.rs:3435
|
||||||
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
|
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
|
||||||
@@ -1577,7 +1577,7 @@ msgid "Cancel thumbnail build"
|
|||||||
msgstr "Anuluj tworzenie miniatur"
|
msgstr "Anuluj tworzenie miniatur"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:255
|
#: crates/pdfs-gui/src/app/pages/browser.rs:255
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2784
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2790
|
||||||
msgid "Search this folder only"
|
msgid "Search this folder only"
|
||||||
msgstr "Przeszukaj tylko ten katalog"
|
msgstr "Przeszukaj tylko ten katalog"
|
||||||
|
|
||||||
@@ -1875,7 +1875,7 @@ msgid "The Proton Drive service stopped reporting thumbnail progress."
|
|||||||
msgstr "Usługa Proton Drive przestała zgłaszać postęp miniatur."
|
msgstr "Usługa Proton Drive przestała zgłaszać postęp miniatur."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1705
|
#: crates/pdfs-gui/src/app/pages/browser.rs:1705
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2925
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{n} folder"
|
msgid "{n} folder"
|
||||||
msgid_plural "{n} folders"
|
msgid_plural "{n} folders"
|
||||||
@@ -1971,7 +1971,7 @@ msgstr "Brak katalogów."
|
|||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2287
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2287
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2331
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2331
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2578
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2584
|
||||||
msgid "Couldn't move"
|
msgid "Couldn't move"
|
||||||
msgstr "Nie można przenieść"
|
msgstr "Nie można przenieść"
|
||||||
|
|
||||||
@@ -2052,50 +2052,50 @@ msgctxt "verb"
|
|||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Wyświetl"
|
msgstr "Wyświetl"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2570
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2576
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "Moved into “{name}”"
|
msgid "Moved into “{name}”"
|
||||||
msgstr "Przeniesiono do „{name}”"
|
msgstr "Przeniesiono do „{name}”"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2640
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2646
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:261
|
#: crates/pdfs-gui/src/app/pages/devices.rs:261
|
||||||
msgid "Reading this folder."
|
msgid "Reading this folder."
|
||||||
msgstr "Odczytywanie tego katalogu."
|
msgstr "Odczytywanie tego katalogu."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2685
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2691
|
||||||
msgid "Folder unavailable"
|
msgid "Folder unavailable"
|
||||||
msgstr "Katalog jest niedostępny"
|
msgstr "Katalog jest niedostępny"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2689
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2695
|
||||||
msgid "Couldn't open this folder"
|
msgid "Couldn't open this folder"
|
||||||
msgstr "Nie można otworzyć tego katalogu"
|
msgstr "Nie można otworzyć tego katalogu"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2731
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2737
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:101
|
#: crates/pdfs-gui/src/app/pages/devices.rs:101
|
||||||
#: crates/pdfs-gui/src/app/pages/shared.rs:456
|
#: crates/pdfs-gui/src/app/pages/shared.rs:456
|
||||||
msgid "This folder is empty"
|
msgid "This folder is empty"
|
||||||
msgstr "Ten katalog jest pusty"
|
msgstr "Ten katalog jest pusty"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2732
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2738
|
||||||
msgid "Drop files here, or upload a file or create a folder to get started."
|
msgid "Drop files here, or upload a file or create a folder to get started."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Można upuścić tutaj pliki, wysłać plik lub utworzyć katalog, aby zacząć."
|
"Można upuścić tutaj pliki, wysłać plik lub utworzyć katalog, aby zacząć."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2782
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2788
|
||||||
msgid "Search everywhere"
|
msgid "Search everywhere"
|
||||||
msgstr "Szukaj wszędzie"
|
msgstr "Szukaj wszędzie"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2818
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2824
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2822
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2828
|
||||||
msgid "Searching…"
|
msgid "Searching…"
|
||||||
msgstr "Wyszukiwanie…"
|
msgstr "Wyszukiwanie…"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2823
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2829
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "Looking for “{query}”."
|
msgid "Looking for “{query}”."
|
||||||
msgstr "Wyszukiwanie „{query}”."
|
msgstr "Wyszukiwanie „{query}”."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2879
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2885
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{summary} — showing the first {n} search result"
|
msgid "{summary} — showing the first {n} search result"
|
||||||
msgid_plural "{summary} — showing the first {n} search results"
|
msgid_plural "{summary} — showing the first {n} search results"
|
||||||
@@ -2104,20 +2104,20 @@ msgstr[1] "{summary} — wyświetlanie pierwszych {n} wyników wyszukiwania"
|
|||||||
msgstr[2] "{summary} — wyświetlanie pierwszych {n} wyników wyszukiwania"
|
msgstr[2] "{summary} — wyświetlanie pierwszych {n} wyników wyszukiwania"
|
||||||
|
|
||||||
#. Translators: {summary} counts the hits, such as "2 folders, 5 files (3.0 MB)".
|
#. Translators: {summary} counts the hits, such as "2 folders, 5 files (3.0 MB)".
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2886
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2892
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{summary} — search results"
|
msgid "{summary} — search results"
|
||||||
msgstr "{summary} — wyniki wyszukiwania"
|
msgstr "{summary} — wyniki wyszukiwania"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2892
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2898
|
||||||
msgid "No matches"
|
msgid "No matches"
|
||||||
msgstr "Brak wyników"
|
msgstr "Brak wyników"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2893
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2899
|
||||||
msgid "No files or folders match that search."
|
msgid "No files or folders match that search."
|
||||||
msgstr "Żadne pliki ani katalogi nie pasują do wyszukiwania."
|
msgstr "Żadne pliki ani katalogi nie pasują do wyszukiwania."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2926
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2933
|
||||||
#: crates/pdfs-gui/src/i18n.rs:248
|
#: crates/pdfs-gui/src/i18n.rs:248
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{n} file"
|
msgid "{n} file"
|
||||||
@@ -2126,17 +2126,17 @@ msgstr[0] "{n} plik"
|
|||||||
msgstr[1] "{n} pliki"
|
msgstr[1] "{n} pliki"
|
||||||
msgstr[2] "{n} plików"
|
msgstr[2] "{n} plików"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2939
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{files} ({size})"
|
msgid "{files} ({size})"
|
||||||
msgstr "{files} ({size})"
|
msgstr "{files} ({size})"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2937
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2944
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{folders}, {files}"
|
msgid "{folders}, {files}"
|
||||||
msgstr "{folders}, {files}"
|
msgstr "{folders}, {files}"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2942
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2949
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{folders}, {files} ({size})"
|
msgid "{folders}, {files} ({size})"
|
||||||
msgstr "{folders}, {files} ({size})"
|
msgstr "{folders}, {files} ({size})"
|
||||||
|
|||||||
+26
-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-05 00:50+0200\n"
|
"POT-Creation-Date: 2026-10-05 01:01+0200\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"
|
||||||
@@ -510,8 +510,8 @@ msgstr "Opções de exibição"
|
|||||||
#: crates/pdfs-gui/src/app/pages/activity.rs:439
|
#: crates/pdfs-gui/src/app/pages/activity.rs:439
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:385
|
#: crates/pdfs-gui/src/app/pages/browser.rs:385
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2109
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2109
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2635
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2641
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2639
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2645
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:325
|
#: crates/pdfs-gui/src/app/pages/devices.rs:325
|
||||||
#: crates/pdfs-gui/src/app/pages/locations.rs:192
|
#: crates/pdfs-gui/src/app/pages/locations.rs:192
|
||||||
#: crates/pdfs-gui/src/app/pages/locations.rs:1123
|
#: crates/pdfs-gui/src/app/pages/locations.rs:1123
|
||||||
@@ -531,8 +531,8 @@ msgid "Couldn't read activity"
|
|||||||
msgstr "Não foi possível ler a atividade"
|
msgstr "Não foi possível ler a atividade"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/activity.rs:470
|
#: crates/pdfs-gui/src/app/pages/activity.rs:470
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2671
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2677
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2853
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2859
|
||||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:308
|
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:308
|
||||||
#: crates/pdfs-gui/src/app/pages/photos.rs:3435
|
#: crates/pdfs-gui/src/app/pages/photos.rs:3435
|
||||||
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
|
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
|
||||||
@@ -1542,7 +1542,7 @@ msgid "Cancel thumbnail build"
|
|||||||
msgstr "Cancelar geração de miniaturas"
|
msgstr "Cancelar geração de miniaturas"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:255
|
#: crates/pdfs-gui/src/app/pages/browser.rs:255
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2784
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2790
|
||||||
msgid "Search this folder only"
|
msgid "Search this folder only"
|
||||||
msgstr "Pesquisar somente nesta pasta"
|
msgstr "Pesquisar somente nesta pasta"
|
||||||
|
|
||||||
@@ -1831,7 +1831,7 @@ msgstr ""
|
|||||||
"O serviço do Proton Drive parou de informar o progresso das miniaturas."
|
"O serviço do Proton Drive parou de informar o progresso das miniaturas."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1705
|
#: crates/pdfs-gui/src/app/pages/browser.rs:1705
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2925
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{n} folder"
|
msgid "{n} folder"
|
||||||
msgid_plural "{n} folders"
|
msgid_plural "{n} folders"
|
||||||
@@ -1924,7 +1924,7 @@ msgstr "Nenhuma pasta aqui."
|
|||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2287
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2287
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2331
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2331
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2578
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2584
|
||||||
msgid "Couldn't move"
|
msgid "Couldn't move"
|
||||||
msgstr "Não foi possível mover"
|
msgstr "Não foi possível mover"
|
||||||
|
|
||||||
@@ -2002,50 +2002,50 @@ msgctxt "verb"
|
|||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Ver"
|
msgstr "Ver"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2570
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2576
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "Moved into “{name}”"
|
msgid "Moved into “{name}”"
|
||||||
msgstr "Movido para “{name}”"
|
msgstr "Movido para “{name}”"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2640
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2646
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:261
|
#: crates/pdfs-gui/src/app/pages/devices.rs:261
|
||||||
msgid "Reading this folder."
|
msgid "Reading this folder."
|
||||||
msgstr "Lendo esta pasta."
|
msgstr "Lendo esta pasta."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2685
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2691
|
||||||
msgid "Folder unavailable"
|
msgid "Folder unavailable"
|
||||||
msgstr "Pasta indisponível"
|
msgstr "Pasta indisponível"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2689
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2695
|
||||||
msgid "Couldn't open this folder"
|
msgid "Couldn't open this folder"
|
||||||
msgstr "Não foi possível abrir esta pasta"
|
msgstr "Não foi possível abrir esta pasta"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2731
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2737
|
||||||
#: crates/pdfs-gui/src/app/pages/devices.rs:101
|
#: crates/pdfs-gui/src/app/pages/devices.rs:101
|
||||||
#: crates/pdfs-gui/src/app/pages/shared.rs:456
|
#: crates/pdfs-gui/src/app/pages/shared.rs:456
|
||||||
msgid "This folder is empty"
|
msgid "This folder is empty"
|
||||||
msgstr "Esta pasta está vazia"
|
msgstr "Esta pasta está vazia"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2732
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2738
|
||||||
msgid "Drop files here, or upload a file or create a folder to get started."
|
msgid "Drop files here, or upload a file or create a folder to get started."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Solte arquivos aqui, ou envie um arquivo ou crie uma pasta para começar."
|
"Solte arquivos aqui, ou envie um arquivo ou crie uma pasta para começar."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2782
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2788
|
||||||
msgid "Search everywhere"
|
msgid "Search everywhere"
|
||||||
msgstr "Pesquisar em todos os lugares"
|
msgstr "Pesquisar em todos os lugares"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2818
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2824
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2822
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2828
|
||||||
msgid "Searching…"
|
msgid "Searching…"
|
||||||
msgstr "Pesquisando…"
|
msgstr "Pesquisando…"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2823
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2829
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "Looking for “{query}”."
|
msgid "Looking for “{query}”."
|
||||||
msgstr "Procurando por “{query}”."
|
msgstr "Procurando por “{query}”."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2879
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2885
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{summary} — showing the first {n} search result"
|
msgid "{summary} — showing the first {n} search result"
|
||||||
msgid_plural "{summary} — showing the first {n} search results"
|
msgid_plural "{summary} — showing the first {n} search results"
|
||||||
@@ -2053,20 +2053,20 @@ msgstr[0] "{summary} — mostrando o primeiro resultado da pesquisa"
|
|||||||
msgstr[1] "{summary} — mostrando os primeiros {n} resultados da pesquisa"
|
msgstr[1] "{summary} — mostrando os primeiros {n} resultados da pesquisa"
|
||||||
|
|
||||||
#. Translators: {summary} counts the hits, such as "2 folders, 5 files (3.0 MB)".
|
#. Translators: {summary} counts the hits, such as "2 folders, 5 files (3.0 MB)".
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2886
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2892
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{summary} — search results"
|
msgid "{summary} — search results"
|
||||||
msgstr "{summary} — resultados da pesquisa"
|
msgstr "{summary} — resultados da pesquisa"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2892
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2898
|
||||||
msgid "No matches"
|
msgid "No matches"
|
||||||
msgstr "Nenhuma correspondência"
|
msgstr "Nenhuma correspondência"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2893
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2899
|
||||||
msgid "No files or folders match that search."
|
msgid "No files or folders match that search."
|
||||||
msgstr "Nenhum arquivo ou pasta corresponde a essa pesquisa."
|
msgstr "Nenhum arquivo ou pasta corresponde a essa pesquisa."
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2926
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2933
|
||||||
#: crates/pdfs-gui/src/i18n.rs:248
|
#: crates/pdfs-gui/src/i18n.rs:248
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{n} file"
|
msgid "{n} file"
|
||||||
@@ -2074,17 +2074,17 @@ msgid_plural "{n} files"
|
|||||||
msgstr[0] "{n} arquivo"
|
msgstr[0] "{n} arquivo"
|
||||||
msgstr[1] "{n} arquivos"
|
msgstr[1] "{n} arquivos"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2939
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{files} ({size})"
|
msgid "{files} ({size})"
|
||||||
msgstr "{files} ({size})"
|
msgstr "{files} ({size})"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2937
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2944
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{folders}, {files}"
|
msgid "{folders}, {files}"
|
||||||
msgstr "{folders}, {files}"
|
msgstr "{folders}, {files}"
|
||||||
|
|
||||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2942
|
#: crates/pdfs-gui/src/app/pages/browser.rs:2949
|
||||||
#, rust-format
|
#, rust-format
|
||||||
msgid "{folders}, {files} ({size})"
|
msgid "{folders}, {files} ({size})"
|
||||||
msgstr "{folders}, {files} ({size})"
|
msgstr "{folders}, {files} ({size})"
|
||||||
|
|||||||
Reference in new issue
Block a user