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:
nvrl committed 2026-10-05 01:06:03 +02:00
1 parent 9dfe4c5450
commit a8ed6060af
25 files changed
+390 -251

No files matched your search

+1
View File
@@ -3554,6 +3554,7 @@ mod login_wait_tests {
shared_by_unverified: false,
trashed_at: 0,
trashed_from: None,
issue: None,
};
assert_eq!(shared_by_line(&entry), None, "no invitation, no line");
entry.shared_by = "alice@proton.me".into();
+4
View File
@@ -1296,6 +1296,10 @@ pub struct DirEntry {
/// not known, and for anything not in the trash.
#[serde(default)]
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
+20
View File
@@ -1371,6 +1371,26 @@ impl Db {
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
/// ([`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
+24
View File
@@ -6988,6 +6988,30 @@ fn an_op_with_an_issue_counts_as_failing_at_once() {
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]
fn retry_all_touches_only_ops_that_have_failed() {
let db = Db::open_in_memory().unwrap();
+15 -3
View File
@@ -9,7 +9,7 @@
//! through one place (the status, transfers, sync progress) and publishes them
//! when they differ.
use std::collections::BTreeSet;
use std::collections::{BTreeSet, HashMap};
use std::sync::Arc;
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
/// when it differs from the last look: the status (queue counts, cache use,
/// online, pause), the transfers snapshot, and the synced folders with their
/// live progress. Looks only while someone is subscribed.
/// online, pause), the transfers snapshot, the synced folders with their
/// 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) {
let mut transfers: Option<Arc<str>> = None;
let mut status: Option<String> = None;
let mut queue: Option<String> = None;
let mut locations: Option<String> = None;
let mut issues: Option<HashMap<i64, String>> = None;
let mut tick = 0u32;
while core.shutdown.sleep(SAMPLE_INTERVAL) {
if !core.events.has_subscribers() {
@@ -169,6 +171,7 @@ pub(crate) fn run_event_sampler(core: Core, username: String, mountpoint: std::p
status = None;
queue = None;
locations = None;
issues = None;
continue;
}
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);
// 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() {
let key = serde_json::to_string(&now).unwrap_or_default();
if locations.as_ref().is_some_and(|last| *last != key) {
+11 -5
View File
@@ -59,7 +59,7 @@ use pdfs_core::cache::{BLOCK_SIZE, Baseline, BlockGeometry, BlockSpan, ContentCa
use pdfs_core::config::{AppDirs, SweepMode};
use pdfs_core::control::{
ActivityEntry, ActivityKind, DirEntry, ErrorKind, LocalHit, PhotoKind, PublicLinkInfo,
SearchFilters, SearchHit, SearchSource, SyncFolderInfo, SyncPhase, SyncProgress,
SearchFilters, SearchHit, SearchSource, SyncFolderInfo, SyncIssue, SyncPhase, SyncProgress,
ThumbnailBuildStatus, Topic, TransferDirection,
};
use pdfs_core::db::{
@@ -4324,29 +4324,31 @@ impl Core {
self.settle_listing_sizes(ino);
// 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.
let rows: Vec<(String, bool, u64, i64, NodeUid)> = {
let rows: Vec<(String, bool, u64, i64, NodeUid, u64)> = {
let st = self.state();
st.children
.get(&ino)
.map(|kids| {
kids.iter()
.filter_map(|k| st.entries.get(k))
.map(|e| {
.filter_map(|&k| st.entries.get(&k).map(|e| (k, e)))
.map(|(k, e)| {
(
e.node.name.clone(),
e.node.is_folder(),
node_size(&e.node),
e.node.modification_time,
e.uid.clone(),
k,
)
})
.collect()
})
.unwrap_or_default()
};
let issues = self.db.node_issues().unwrap_or_default();
Ok(rows
.into_iter()
.map(|(name, is_dir, size, modified, uid)| DirEntry {
.map(|(name, is_dir, size, modified, uid, ino)| DirEntry {
name,
is_dir,
size,
@@ -4365,6 +4367,9 @@ impl Core {
shared_by_unverified: false,
trashed_at: 0,
trashed_from: None,
issue: state::ino_lid(ino)
.and_then(|lid| issues.get(&lid))
.map(|issue| SyncIssue::parse(issue)),
})
.collect())
}
@@ -5247,6 +5252,7 @@ impl Core {
shared_by: String::new(),
shared_at: 0,
shared_by_unverified: false,
issue: None,
})
.collect())
}
+1
View File
@@ -75,6 +75,7 @@ fn shared_entry_of(core: &Core, n: Node) -> DirEntry {
shared_by_unverified,
trashed_at: 0,
trashed_from: None,
issue: None,
}
}
+42 -1
View File
@@ -278,7 +278,7 @@ pub(crate) fn wait_until(limit: Duration, mut done: impl FnMut() -> bool) -> boo
mod tests {
use super::*;
use crate::sim::fake_drive::{Entry, FakeDrive, Faults};
use pdfs_core::control::RefreshScope;
use pdfs_core::control::{RefreshScope, SyncIssue};
use std::collections::BTreeMap;
#[test]
@@ -698,6 +698,47 @@ mod tests {
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]
#[ignore = "mounts FUSE: run with `cargo test -p pdfs-fuse sim:: -- --ignored`"]
fn a_folder_whose_mkdir_is_queued_lists_after_a_refresh() {
+1
View File
@@ -46,6 +46,7 @@
.badge-pinned { color: var(--success-color); }
.badge-cached { color: var(--success-color); }
.badge-cloud { color: color-mix(in srgb, currentColor 55%, transparent); }
.badge-issue { color: var(--error-color); }
.browser-statusbar { background-color: alpha(currentColor, 0.025); }
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); }
+26 -4
View File
@@ -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
/// (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.
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 {
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
/// prior colour class first, since list factories recycle cells.
pub(crate) fn apply_badge(badge: &gtk4::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);
}
let issue = entry.issue.map(super::locations::issue_text);
badge.set_tooltip_text(issue.as_deref());
match badge_for(entry) {
Some((icon, class)) => {
badge.set_icon_name(Some(icon));
@@ -2915,6 +2921,7 @@ pub(crate) fn repaint_search(ui: &Rc<Ui>, hits: &[SearchHit]) {
shared_by_unverified: false,
trashed_at: 0,
trashed_from: None,
issue: None,
})
.collect();
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)]
mod tests {
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,
};
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 {
DirEntry {
@@ -2974,6 +2981,7 @@ mod tests {
shared_by_unverified: false,
trashed_at: 0,
trashed_from: None,
issue: None,
}
}
@@ -2981,6 +2989,20 @@ mod tests {
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]
fn a_search_hit_location_is_its_parent_folder() {
assert_eq!(hit_location("Work/Old/a.txt"), "Work/Old");
+1 -1
View File
@@ -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
/// queued either way.
fn issue_text(issue: SyncIssue) -> String {
pub(crate) fn issue_text(issue: SyncIssue) -> String {
match issue {
SyncIssue::Quota => gettext(
"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,
trashed_at: 0,
trashed_from: None,
issue: None,
}
}
+1
View File
@@ -533,6 +533,7 @@ mod tests {
shared_by_unverified: false,
trashed_at,
trashed_from: from.map(str::to_string),
issue: None,
}
}
+2
View File
@@ -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
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.
- **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
- **Making, renaming and deleting through the mount no longer waits for Drive.** A new folder,
+4 -3
View File
@@ -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.
- **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
`pdfs sync discard`.
`pdfs sync discard`; a warning badge on the node in the file browser.
## 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
to what Drive has. Control request, `pdfs sync discard`, Discard button with a
confirmation; translated in every catalog.
- [ ] Show the issue on the node itself (file browser emblem or status). Not in the first
cut.
- [x] Show the issue on the node itself: a folder listing carries each node's issue, and
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`,
`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
+2
View File
@@ -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`.
- **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.
- A file or folder with a change Proton Drive refused carries a warning badge in **Files**; hover
it to see why.
## Photos
+26 -26
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-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"
"Last-Translator: Proton Drive for Linux contributors\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/browser.rs:385
#: 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:2639
#: crates/pdfs-gui/src/app/pages/browser.rs:2641
#: crates/pdfs-gui/src/app/pages/browser.rs:2645
#: 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:1123
@@ -535,8 +535,8 @@ msgid "Couldn't read activity"
msgstr "Aktivität konnte nicht gelesen werden"
#: 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:2853
#: crates/pdfs-gui/src/app/pages/browser.rs:2677
#: 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/photos.rs:3435
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
@@ -1546,7 +1546,7 @@ msgid "Cancel thumbnail build"
msgstr "Erstellen der Vorschaubilder abbrechen"
#: 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"
msgstr "Nur diesen Ordner durchsuchen"
@@ -1839,7 +1839,7 @@ msgstr ""
"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:2925
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
#, rust-format
msgid "{n} folder"
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:2331
#: crates/pdfs-gui/src/app/pages/browser.rs:2578
#: crates/pdfs-gui/src/app/pages/browser.rs:2584
msgid "Couldn't move"
msgstr "Verschieben fehlgeschlagen"
@@ -2010,51 +2010,51 @@ msgctxt "verb"
msgid "View"
msgstr "Anzeigen"
#: crates/pdfs-gui/src/app/pages/browser.rs:2570
#: crates/pdfs-gui/src/app/pages/browser.rs:2576
#, rust-format
msgid "Moved into “{name}”"
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
msgid "Reading this folder."
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"
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"
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/shared.rs:456
msgid "This folder is empty"
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."
msgstr ""
"Dateien hierher ziehen oder zum Einstieg eine Datei hochladen oder einen "
"Ordner erstellen."
#: crates/pdfs-gui/src/app/pages/browser.rs:2782
#: crates/pdfs-gui/src/app/pages/browser.rs:2788
msgid "Search everywhere"
msgstr "Überall suchen"
#: crates/pdfs-gui/src/app/pages/browser.rs:2818
#: crates/pdfs-gui/src/app/pages/browser.rs:2822
#: crates/pdfs-gui/src/app/pages/browser.rs:2824
#: crates/pdfs-gui/src/app/pages/browser.rs:2828
msgid "Searching…"
msgstr "Suche läuft …"
#: crates/pdfs-gui/src/app/pages/browser.rs:2823
#: crates/pdfs-gui/src/app/pages/browser.rs:2829
#, rust-format
msgid "Looking for “{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
msgid "{summary} — showing the first {n} search result"
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"
#. 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
msgid "{summary} — search results"
msgstr "{summary} – Suchergebnisse"
#: crates/pdfs-gui/src/app/pages/browser.rs:2892
#: crates/pdfs-gui/src/app/pages/browser.rs:2898
msgid "No matches"
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."
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
#, rust-format
msgid "{n} file"
@@ -2083,17 +2083,17 @@ msgid_plural "{n} files"
msgstr[0] "{n} Datei"
msgstr[1] "{n} Dateien"
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
#: crates/pdfs-gui/src/app/pages/browser.rs:2939
#, rust-format
msgid "{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
msgid "{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
msgid "{folders}, {files} ({size})"
msgstr "{folders}, {files} ({size})"
+26 -26
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-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"
"Last-Translator: Proton Drive for Linux contributors\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/browser.rs:385
#: 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:2639
#: crates/pdfs-gui/src/app/pages/browser.rs:2641
#: crates/pdfs-gui/src/app/pages/browser.rs:2645
#: 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:1123
@@ -529,8 +529,8 @@ msgid "Couldn't read activity"
msgstr "Couldn't read activity"
#: 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:2853
#: crates/pdfs-gui/src/app/pages/browser.rs:2677
#: 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/photos.rs:3435
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
@@ -1534,7 +1534,7 @@ msgid "Cancel thumbnail build"
msgstr "Cancel thumbnail build"
#: 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"
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."
#: 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
msgid "{n} folder"
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:2331
#: crates/pdfs-gui/src/app/pages/browser.rs:2578
#: crates/pdfs-gui/src/app/pages/browser.rs:2584
msgid "Couldn't move"
msgstr "Couldn't move"
@@ -1991,49 +1991,49 @@ msgctxt "verb"
msgid "View"
msgstr "View"
#: crates/pdfs-gui/src/app/pages/browser.rs:2570
#: crates/pdfs-gui/src/app/pages/browser.rs:2576
#, rust-format
msgid "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
msgid "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"
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"
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/shared.rs:456
msgid "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."
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"
msgstr "Search everywhere"
#: crates/pdfs-gui/src/app/pages/browser.rs:2818
#: crates/pdfs-gui/src/app/pages/browser.rs:2822
#: crates/pdfs-gui/src/app/pages/browser.rs:2824
#: crates/pdfs-gui/src/app/pages/browser.rs:2828
msgid "Searching…"
msgstr "Searching…"
#: crates/pdfs-gui/src/app/pages/browser.rs:2823
#: crates/pdfs-gui/src/app/pages/browser.rs:2829
#, rust-format
msgid "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
msgid "{summary} — showing the first {n} search result"
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"
#. 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
msgid "{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"
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."
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
#, rust-format
msgid "{n} file"
@@ -2062,17 +2062,17 @@ msgid_plural "{n} files"
msgstr[0] "{n} file"
msgstr[1] "{n} files"
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
#: crates/pdfs-gui/src/app/pages/browser.rs:2939
#, rust-format
msgid "{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
msgid "{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
msgid "{folders}, {files} ({size})"
msgstr "{folders}, {files} ({size})"
+26 -26
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-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"
"Last-Translator: Proton Drive for Linux contributors\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/browser.rs:385
#: 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:2639
#: crates/pdfs-gui/src/app/pages/browser.rs:2641
#: crates/pdfs-gui/src/app/pages/browser.rs:2645
#: 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:1123
@@ -532,8 +532,8 @@ msgid "Couldn't read activity"
msgstr "No se pudo leer la actividad"
#: 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:2853
#: crates/pdfs-gui/src/app/pages/browser.rs:2677
#: 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/photos.rs:3435
#: 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"
#: 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"
msgstr "Buscar solo en esta carpeta"
@@ -1831,7 +1831,7 @@ msgstr ""
"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:2925
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
#, rust-format
msgid "{n} folder"
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:2331
#: crates/pdfs-gui/src/app/pages/browser.rs:2578
#: crates/pdfs-gui/src/app/pages/browser.rs:2584
msgid "Couldn't move"
msgstr "No se pudo mover"
@@ -2002,50 +2002,50 @@ msgctxt "verb"
msgid "View"
msgstr "Ver"
#: crates/pdfs-gui/src/app/pages/browser.rs:2570
#: crates/pdfs-gui/src/app/pages/browser.rs:2576
#, rust-format
msgid "Moved into “{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
msgid "Reading this folder."
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"
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"
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/shared.rs:456
msgid "This folder is empty"
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."
msgstr ""
"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"
msgstr "Buscar en todas partes"
#: crates/pdfs-gui/src/app/pages/browser.rs:2818
#: crates/pdfs-gui/src/app/pages/browser.rs:2822
#: crates/pdfs-gui/src/app/pages/browser.rs:2824
#: crates/pdfs-gui/src/app/pages/browser.rs:2828
msgid "Searching…"
msgstr "Buscando…"
#: crates/pdfs-gui/src/app/pages/browser.rs:2823
#: crates/pdfs-gui/src/app/pages/browser.rs:2829
#, rust-format
msgid "Looking for “{query}”."
msgstr "Buscando “{query}”."
#: crates/pdfs-gui/src/app/pages/browser.rs:2879
#: crates/pdfs-gui/src/app/pages/browser.rs:2885
#, rust-format
msgid "{summary} — showing the first {n} search result"
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"
#. 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
msgid "{summary} — search results"
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"
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."
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
#, rust-format
msgid "{n} file"
@@ -2074,17 +2074,17 @@ msgid_plural "{n} files"
msgstr[0] "{n} archivo"
msgstr[1] "{n} archivos"
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
#: crates/pdfs-gui/src/app/pages/browser.rs:2939
#, rust-format
msgid "{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
msgid "{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
msgid "{folders}, {files} ({size})"
msgstr "{folders}, {files} ({size})"
+26 -26
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-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"
"Last-Translator: Proton Drive for Linux contributors\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/browser.rs:385
#: 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:2639
#: crates/pdfs-gui/src/app/pages/browser.rs:2641
#: crates/pdfs-gui/src/app/pages/browser.rs:2645
#: 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:1123
@@ -535,8 +535,8 @@ msgid "Couldn't read activity"
msgstr "Impossible de lire l’activité"
#: 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:2853
#: crates/pdfs-gui/src/app/pages/browser.rs:2677
#: 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/photos.rs:3435
#: 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"
#: 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"
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."
#: 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
msgid "{n} folder"
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:2331
#: crates/pdfs-gui/src/app/pages/browser.rs:2578
#: crates/pdfs-gui/src/app/pages/browser.rs:2584
msgid "Couldn't move"
msgstr "Impossible de déplacer"
@@ -2014,51 +2014,51 @@ msgctxt "verb"
msgid "View"
msgstr "Afficher"
#: crates/pdfs-gui/src/app/pages/browser.rs:2570
#: crates/pdfs-gui/src/app/pages/browser.rs:2576
#, rust-format
msgid "Moved into “{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
msgid "Reading this folder."
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"
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"
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/shared.rs:456
msgid "This folder is empty"
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."
msgstr ""
"Déposez des fichiers ici, ou téléversez un fichier ou créez un dossier pour "
"commencer."
#: crates/pdfs-gui/src/app/pages/browser.rs:2782
#: crates/pdfs-gui/src/app/pages/browser.rs:2788
msgid "Search everywhere"
msgstr "Rechercher partout"
#: crates/pdfs-gui/src/app/pages/browser.rs:2818
#: crates/pdfs-gui/src/app/pages/browser.rs:2822
#: crates/pdfs-gui/src/app/pages/browser.rs:2824
#: crates/pdfs-gui/src/app/pages/browser.rs:2828
msgid "Searching…"
msgstr "Recherche…"
#: crates/pdfs-gui/src/app/pages/browser.rs:2823
#: crates/pdfs-gui/src/app/pages/browser.rs:2829
#, rust-format
msgid "Looking for “{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
msgid "{summary} — showing the first {n} search result"
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"
#. 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
msgid "{summary} — search results"
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"
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."
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
#, rust-format
msgid "{n} file"
@@ -2087,17 +2087,17 @@ msgid_plural "{n} files"
msgstr[0] "{n} fichier"
msgstr[1] "{n} fichiers"
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
#: crates/pdfs-gui/src/app/pages/browser.rs:2939
#, rust-format
msgid "{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
msgid "{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
msgid "{folders}, {files} ({size})"
msgstr "{folders}, {files} ({size})"
+26 -26
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-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"
"Last-Translator: Proton Drive for Linux contributors\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/browser.rs:385
#: 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:2639
#: crates/pdfs-gui/src/app/pages/browser.rs:2641
#: crates/pdfs-gui/src/app/pages/browser.rs:2645
#: 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:1123
@@ -531,8 +531,8 @@ msgid "Couldn't read activity"
msgstr "Impossibile leggere le attività"
#: 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:2853
#: crates/pdfs-gui/src/app/pages/browser.rs:2677
#: 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/photos.rs:3435
#: 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"
#: 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"
msgstr "Cerca solo in questa cartella"
@@ -1837,7 +1837,7 @@ msgstr ""
"miniature."
#: 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
msgid "{n} folder"
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:2331
#: crates/pdfs-gui/src/app/pages/browser.rs:2578
#: crates/pdfs-gui/src/app/pages/browser.rs:2584
msgid "Couldn't move"
msgstr "Impossibile spostare"
@@ -2008,51 +2008,51 @@ msgctxt "verb"
msgid "View"
msgstr "Visualizza"
#: crates/pdfs-gui/src/app/pages/browser.rs:2570
#: crates/pdfs-gui/src/app/pages/browser.rs:2576
#, rust-format
msgid "Moved into “{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
msgid "Reading this folder."
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"
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"
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/shared.rs:456
msgid "This folder is empty"
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."
msgstr ""
"Trascina qui dei file, oppure carica un file o crea una cartella per "
"iniziare."
#: crates/pdfs-gui/src/app/pages/browser.rs:2782
#: crates/pdfs-gui/src/app/pages/browser.rs:2788
msgid "Search everywhere"
msgstr "Cerca ovunque"
#: crates/pdfs-gui/src/app/pages/browser.rs:2818
#: crates/pdfs-gui/src/app/pages/browser.rs:2822
#: crates/pdfs-gui/src/app/pages/browser.rs:2824
#: crates/pdfs-gui/src/app/pages/browser.rs:2828
msgid "Searching…"
msgstr "Ricerca…"
#: crates/pdfs-gui/src/app/pages/browser.rs:2823
#: crates/pdfs-gui/src/app/pages/browser.rs:2829
#, rust-format
msgid "Looking for “{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
msgid "{summary} — showing the first {n} search result"
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"
#. 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
msgid "{summary} — search results"
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"
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."
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
#, rust-format
msgid "{n} file"
@@ -2081,17 +2081,17 @@ msgid_plural "{n} files"
msgstr[0] "{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
msgid "{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
msgid "{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
msgid "{folders}, {files} ({size})"
msgstr "{folders}, {files} ({size})"
+26 -26
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-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"
"Last-Translator: Proton Drive for Linux contributors\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/browser.rs:385
#: 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:2639
#: crates/pdfs-gui/src/app/pages/browser.rs:2641
#: crates/pdfs-gui/src/app/pages/browser.rs:2645
#: 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:1123
@@ -532,8 +532,8 @@ msgid "Couldn't read activity"
msgstr "Kon activiteit niet lezen"
#: 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:2853
#: crates/pdfs-gui/src/app/pages/browser.rs:2677
#: 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/photos.rs:3435
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
@@ -1541,7 +1541,7 @@ msgid "Cancel thumbnail build"
msgstr "Aanmaken van miniaturen annuleren"
#: 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"
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."
#: 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
msgid "{n} folder"
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:2331
#: crates/pdfs-gui/src/app/pages/browser.rs:2578
#: crates/pdfs-gui/src/app/pages/browser.rs:2584
msgid "Couldn't move"
msgstr "Kon niet verplaatsen"
@@ -2002,51 +2002,51 @@ msgctxt "verb"
msgid "View"
msgstr "Bekijken"
#: crates/pdfs-gui/src/app/pages/browser.rs:2570
#: crates/pdfs-gui/src/app/pages/browser.rs:2576
#, rust-format
msgid "Moved into “{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
msgid "Reading this folder."
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"
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"
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/shared.rs:456
msgid "This folder is empty"
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."
msgstr ""
"Sleep bestanden hierheen, of upload een bestand of maak een map aan om te "
"beginnen."
#: crates/pdfs-gui/src/app/pages/browser.rs:2782
#: crates/pdfs-gui/src/app/pages/browser.rs:2788
msgid "Search everywhere"
msgstr "Overal zoeken"
#: crates/pdfs-gui/src/app/pages/browser.rs:2818
#: crates/pdfs-gui/src/app/pages/browser.rs:2822
#: crates/pdfs-gui/src/app/pages/browser.rs:2824
#: crates/pdfs-gui/src/app/pages/browser.rs:2828
msgid "Searching…"
msgstr "Zoeken…"
#: crates/pdfs-gui/src/app/pages/browser.rs:2823
#: crates/pdfs-gui/src/app/pages/browser.rs:2829
#, rust-format
msgid "Looking for “{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
msgid "{summary} — showing the first {n} search result"
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"
#. 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
msgid "{summary} — search results"
msgstr "{summary} — zoekresultaten"
#: crates/pdfs-gui/src/app/pages/browser.rs:2892
#: crates/pdfs-gui/src/app/pages/browser.rs:2898
msgid "No matches"
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."
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
#, rust-format
msgid "{n} file"
@@ -2075,17 +2075,17 @@ msgid_plural "{n} files"
msgstr[0] "{n} bestand"
msgstr[1] "{n} bestanden"
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
#: crates/pdfs-gui/src/app/pages/browser.rs:2939
#, rust-format
msgid "{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
msgid "{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
msgid "{folders}, {files} ({size})"
msgstr "{folders}, {files} ({size})"
+26 -26
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 2.10.0\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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/browser.rs:385
#: 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:2639
#: crates/pdfs-gui/src/app/pages/browser.rs:2641
#: crates/pdfs-gui/src/app/pages/browser.rs:2645
#: 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:1123
@@ -504,8 +504,8 @@ msgid "Couldn't read activity"
msgstr ""
#: 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:2853
#: crates/pdfs-gui/src/app/pages/browser.rs:2677
#: 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/photos.rs:3435
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
@@ -1499,7 +1499,7 @@ msgid "Cancel thumbnail build"
msgstr ""
#: 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"
msgstr ""
@@ -1787,7 +1787,7 @@ msgid "The Proton Drive service stopped reporting thumbnail progress."
msgstr ""
#: 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
msgid "{n} folder"
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:2331
#: crates/pdfs-gui/src/app/pages/browser.rs:2578
#: crates/pdfs-gui/src/app/pages/browser.rs:2584
msgid "Couldn't move"
msgstr ""
@@ -1956,49 +1956,49 @@ msgctxt "verb"
msgid "View"
msgstr ""
#: crates/pdfs-gui/src/app/pages/browser.rs:2570
#: crates/pdfs-gui/src/app/pages/browser.rs:2576
#, rust-format
msgid "Moved into “{name}”"
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
msgid "Reading this folder."
msgstr ""
#: crates/pdfs-gui/src/app/pages/browser.rs:2685
#: crates/pdfs-gui/src/app/pages/browser.rs:2691
msgid "Folder unavailable"
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"
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/shared.rs:456
msgid "This folder is empty"
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."
msgstr ""
#: crates/pdfs-gui/src/app/pages/browser.rs:2782
#: crates/pdfs-gui/src/app/pages/browser.rs:2788
msgid "Search everywhere"
msgstr ""
#: crates/pdfs-gui/src/app/pages/browser.rs:2818
#: crates/pdfs-gui/src/app/pages/browser.rs:2822
#: crates/pdfs-gui/src/app/pages/browser.rs:2824
#: crates/pdfs-gui/src/app/pages/browser.rs:2828
msgid "Searching…"
msgstr ""
#: crates/pdfs-gui/src/app/pages/browser.rs:2823
#: crates/pdfs-gui/src/app/pages/browser.rs:2829
#, rust-format
msgid "Looking for “{query}”."
msgstr ""
#: crates/pdfs-gui/src/app/pages/browser.rs:2879
#: crates/pdfs-gui/src/app/pages/browser.rs:2885
#, rust-format
msgid "{summary} — showing the first {n} search result"
msgid_plural "{summary} — showing the first {n} search results"
@@ -2006,20 +2006,20 @@ msgstr[0] ""
msgstr[1] ""
#. 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
msgid "{summary} — search results"
msgstr ""
#: crates/pdfs-gui/src/app/pages/browser.rs:2892
#: crates/pdfs-gui/src/app/pages/browser.rs:2898
msgid "No matches"
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."
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
#, rust-format
msgid "{n} file"
@@ -2027,17 +2027,17 @@ msgid_plural "{n} files"
msgstr[0] ""
msgstr[1] ""
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
#: crates/pdfs-gui/src/app/pages/browser.rs:2939
#, rust-format
msgid "{files} ({size})"
msgstr ""
#: crates/pdfs-gui/src/app/pages/browser.rs:2937
#: crates/pdfs-gui/src/app/pages/browser.rs:2944
#, rust-format
msgid "{folders}, {files}"
msgstr ""
#: crates/pdfs-gui/src/app/pages/browser.rs:2942
#: crates/pdfs-gui/src/app/pages/browser.rs:2949
#, rust-format
msgid "{folders}, {files} ({size})"
msgstr ""
+26 -26
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-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"
"Last-Translator: Proton Drive for Linux contributors\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/browser.rs:385
#: 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:2639
#: crates/pdfs-gui/src/app/pages/browser.rs:2641
#: crates/pdfs-gui/src/app/pages/browser.rs:2645
#: 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:1123
@@ -539,8 +539,8 @@ msgid "Couldn't read activity"
msgstr "Nie można odczytać aktywności"
#: 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:2853
#: crates/pdfs-gui/src/app/pages/browser.rs:2677
#: 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/photos.rs:3435
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:382
@@ -1577,7 +1577,7 @@ msgid "Cancel thumbnail build"
msgstr "Anuluj tworzenie miniatur"
#: 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"
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."
#: 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
msgid "{n} folder"
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:2331
#: crates/pdfs-gui/src/app/pages/browser.rs:2578
#: crates/pdfs-gui/src/app/pages/browser.rs:2584
msgid "Couldn't move"
msgstr "Nie można przenieść"
@@ -2052,50 +2052,50 @@ msgctxt "verb"
msgid "View"
msgstr "Wyświetl"
#: crates/pdfs-gui/src/app/pages/browser.rs:2570
#: crates/pdfs-gui/src/app/pages/browser.rs:2576
#, rust-format
msgid "Moved into “{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
msgid "Reading this folder."
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"
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"
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/shared.rs:456
msgid "This folder is empty"
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."
msgstr ""
"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"
msgstr "Szukaj wszędzie"
#: crates/pdfs-gui/src/app/pages/browser.rs:2818
#: crates/pdfs-gui/src/app/pages/browser.rs:2822
#: crates/pdfs-gui/src/app/pages/browser.rs:2824
#: crates/pdfs-gui/src/app/pages/browser.rs:2828
msgid "Searching…"
msgstr "Wyszukiwanie…"
#: crates/pdfs-gui/src/app/pages/browser.rs:2823
#: crates/pdfs-gui/src/app/pages/browser.rs:2829
#, rust-format
msgid "Looking for “{query}”."
msgstr "Wyszukiwanie „{query}”."
#: crates/pdfs-gui/src/app/pages/browser.rs:2879
#: crates/pdfs-gui/src/app/pages/browser.rs:2885
#, rust-format
msgid "{summary} — showing the first {n} search result"
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"
#. 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
msgid "{summary} — search results"
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"
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."
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
#, rust-format
msgid "{n} file"
@@ -2126,17 +2126,17 @@ msgstr[0] "{n} plik"
msgstr[1] "{n} pliki"
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
msgid "{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
msgid "{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
msgid "{folders}, {files} ({size})"
msgstr "{folders}, {files} ({size})"
+26 -26
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-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"
"Last-Translator: Proton Drive for Linux contributors\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/browser.rs:385
#: 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:2639
#: crates/pdfs-gui/src/app/pages/browser.rs:2641
#: crates/pdfs-gui/src/app/pages/browser.rs:2645
#: 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:1123
@@ -531,8 +531,8 @@ msgid "Couldn't read activity"
msgstr "Não foi possível ler a atividade"
#: 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:2853
#: crates/pdfs-gui/src/app/pages/browser.rs:2677
#: 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/photos.rs:3435
#: 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"
#: 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"
msgstr "Pesquisar somente nesta pasta"
@@ -1831,7 +1831,7 @@ msgstr ""
"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:2925
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
#, rust-format
msgid "{n} folder"
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:2331
#: crates/pdfs-gui/src/app/pages/browser.rs:2578
#: crates/pdfs-gui/src/app/pages/browser.rs:2584
msgid "Couldn't move"
msgstr "Não foi possível mover"
@@ -2002,50 +2002,50 @@ msgctxt "verb"
msgid "View"
msgstr "Ver"
#: crates/pdfs-gui/src/app/pages/browser.rs:2570
#: crates/pdfs-gui/src/app/pages/browser.rs:2576
#, rust-format
msgid "Moved into “{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
msgid "Reading this folder."
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"
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"
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/shared.rs:456
msgid "This folder is empty"
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."
msgstr ""
"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"
msgstr "Pesquisar em todos os lugares"
#: crates/pdfs-gui/src/app/pages/browser.rs:2818
#: crates/pdfs-gui/src/app/pages/browser.rs:2822
#: crates/pdfs-gui/src/app/pages/browser.rs:2824
#: crates/pdfs-gui/src/app/pages/browser.rs:2828
msgid "Searching…"
msgstr "Pesquisando…"
#: crates/pdfs-gui/src/app/pages/browser.rs:2823
#: crates/pdfs-gui/src/app/pages/browser.rs:2829
#, rust-format
msgid "Looking for “{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
msgid "{summary} — showing the first {n} search result"
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"
#. 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
msgid "{summary} — search results"
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"
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."
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
#, rust-format
msgid "{n} file"
@@ -2074,17 +2074,17 @@ msgid_plural "{n} files"
msgstr[0] "{n} arquivo"
msgstr[1] "{n} arquivos"
#: crates/pdfs-gui/src/app/pages/browser.rs:2932
#: crates/pdfs-gui/src/app/pages/browser.rs:2939
#, rust-format
msgid "{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
msgid "{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
msgid "{folders}, {files} ({size})"
msgstr "{folders}, {files} ({size})"