From 2f14c1688fa0598d1dc1debc3443c91844079127 Mon Sep 17 00:00:00 2001 From: Nils Pukropp Date: Mon, 28 Sep 2026 00:55:57 +0200 Subject: [PATCH] feat(core,fuse,gui): find and trash duplicate photos A "Find duplicates" button in the Photos header opens a review of every set of files that share a content hash. Each set shows its copies side by side with a Keep toggle; the copy in the most albums, then in the larger RAW+JPEG group, then the oldest, is kept by default, and a set can't lose its last kept copy. The copies not kept move to Trash one file at a time. - core: Db::photo_duplicates, Request::PhotoDuplicates, and a files_only flag on TrashNodes (defaults to false, so old clients still trash whole groups). - core: deleting a group's representative now clears the group key of its remaining files instead of leaving them pointing at a missing uid. - fuse: handlers for both requests. --- crates/pdfs-core/src/control.rs | 26 +- crates/pdfs-core/src/db/photos.rs | 61 ++- crates/pdfs-core/src/db/tests.rs | 58 +++ crates/pdfs-fuse/src/control.rs | 8 +- crates/pdfs-fuse/src/photos.rs | 27 +- crates/pdfs-gui/src/app/main.rs | 5 + crates/pdfs-gui/src/app/pages/duplicates.rs | 246 +++++++++++ crates/pdfs-gui/src/app/pages/mod.rs | 1 + crates/pdfs-gui/src/app/pages/photo_viewer.rs | 4 +- crates/pdfs-gui/src/app/pages/photos.rs | 24 +- po/POTFILES.in | 1 + po/de.po | 399 +++++++++-------- po/en_GB.po | 399 +++++++++-------- po/es.po | 399 +++++++++-------- po/fr.po | 399 +++++++++-------- po/it.po | 399 +++++++++-------- po/nl.po | 399 +++++++++-------- po/pdfs.pot | 399 +++++++++-------- po/pl.po | 401 ++++++++++-------- po/pt_BR.po | 399 +++++++++-------- 20 files changed, 2475 insertions(+), 1579 deletions(-) create mode 100644 crates/pdfs-gui/src/app/pages/duplicates.rs diff --git a/crates/pdfs-core/src/control.rs b/crates/pdfs-core/src/control.rs index 3e92f9f..61f9546 100644 --- a/crates/pdfs-core/src/control.rs +++ b/crates/pdfs-core/src/control.rs @@ -88,6 +88,9 @@ pub enum Request { /// `limit` of them — the "On this day" strip above the timeline. Replies /// with [`Response::Photos`]; a front-end groups them by year itself. PhotosOnThisDay { limit: usize }, + /// Sets of photos that are byte-identical copies of each other, going by + /// the server's content hash. Replies with [`Response::PhotoDuplicates`]. + PhotoDuplicates, /// List the account's photo albums, newest activity first, including the /// albums other people share with us. Metadata only — an album's cover /// thumbnail is fetched with [`Request::PhotoThumbs`] like any other photo. @@ -134,8 +137,14 @@ pub enum Request { /// /// A photo that belongs to a group takes the whole group with it: trashing /// the JPEG of a shot and leaving its RAW behind is not what anyone means by - /// deleting that photo. - TrashNodes { uids: Vec }, + /// deleting that photo. With `files_only` set, exactly the listed files + /// go and their groups stay: the duplicate finder removes one copy of a + /// shot, not the shot. Older front-ends omit it and trash whole groups. + TrashNodes { + uids: Vec, + #[serde(default)] + files_only: bool, + }, /// Fetch thumbnails for ordinary Drive image files shown outside the Photos /// timeline. The modification time is the cache validity tag, so replacing /// an image can never reuse its previous revision's thumbnail. @@ -1784,6 +1793,9 @@ pub enum Response { /// The months the timeline spans (reply to [`Request::PhotoMonths`]), /// newest first. PhotoMonths { months: Vec }, + /// The duplicate sets (reply to [`Request::PhotoDuplicates`]), newest + /// first. Each set lists the copy worth keeping first. + PhotoDuplicates { sets: Vec> }, /// Thumbnails for a [`Request::PhotoThumbs`] batch. Thumbs { items: Vec }, /// Per-node outcome of a [`Request::TrashNodes`] batch. Reported per uid @@ -2180,7 +2192,17 @@ mod tests { fn trash_requests_and_outcomes_roundtrip() { let request = Request::TrashNodes { uids: vec!["volume~first".into(), "volume~second".into()], + files_only: false, }; + // An older front-end's request trashes whole groups. + let old: Request = serde_json::from_str(r#"{"TrashNodes":{"uids":["v~a"]}}"#).unwrap(); + assert!(matches!( + old, + Request::TrashNodes { + files_only: false, + .. + } + )); let line = serde_json::to_string(&request).unwrap(); assert!(!line.contains('\n'), "wire form must be a single line"); let decoded: Request = serde_json::from_str(&line).unwrap(); diff --git a/crates/pdfs-core/src/db/photos.rs b/crates/pdfs-core/src/db/photos.rs index 82b21fd..114ff0c 100644 --- a/crates/pdfs-core/src/db/photos.rs +++ b/crates/pdfs-core/src/db/photos.rs @@ -3,7 +3,7 @@ use rusqlite::params; -use std::collections::HashMap; +use std::collections::{HashMap, HashSet}; use super::Db; use crate::Result; @@ -447,6 +447,14 @@ impl Db { albums.execute([uid])?; } } + // A group whose representative went is left pointing at nothing, which + // drops its other files off every page. Make them stand alone until the + // next refresh groups them again. + tx.execute( + "UPDATE photos SET group_key = NULL WHERE group_key IS NOT NULL \ + AND group_key NOT IN (SELECT uid FROM photos)", + [], + )?; tx.commit()?; Ok(removed) } @@ -609,6 +617,57 @@ impl Db { Ok(rows) } + /// Sets of photos with the same content hash, each set ordered with the + /// copy worth keeping first, and the sets newest first. + /// + /// The copy to keep is the one in the most albums, then the one that is part + /// of a larger group (the JPEG's RAW is filed with it, a stray re-upload is + /// not), then the earliest in server order. At most one file per group is + /// listed: the files of one RAW+JPEG shot are not copies of each other, and a + /// set left with one member is no set. + pub fn photo_duplicates(&self) -> Result>> { + let rows: Vec<(String, String, String)> = { + let conn = self.read(); + let mut stmt = conn.prepare( + "SELECT p.uid, p.content_hash, COALESCE(p.group_key, p.uid) AS k FROM photos p \ + WHERE p.content_hash IN (SELECT content_hash FROM photos \ + WHERE content_hash IS NOT NULL GROUP BY content_hash HAVING COUNT(*) > 1) \ + ORDER BY p.content_hash, \ + (SELECT COUNT(*) FROM album_photos a WHERE a.uid = p.uid) DESC, \ + (SELECT COUNT(*) FROM photos m WHERE COALESCE(m.group_key, m.uid) = COALESCE(p.group_key, p.uid)) DESC, \ + p.seq", + )?; + stmt.query_map([], |r| Ok((r.get(0)?, r.get(1)?, r.get(2)?)))? + .collect::>()? + }; + let uids: Vec = rows.iter().map(|(uid, _, _)| uid.clone()).collect(); + let mut stored: HashMap = self + .photos_by_uid(&uids)? + .into_iter() + .map(|photo| (photo.uid.clone(), photo)) + .collect(); + + let mut sets: Vec> = Vec::new(); + let mut hash_of_set: Option<&str> = None; + let mut groups_in_set: HashSet<&str> = HashSet::new(); + for (uid, hash, group) in &rows { + if hash_of_set != Some(hash.as_str()) { + hash_of_set = Some(hash); + groups_in_set.clear(); + sets.push(Vec::new()); + } + if !groups_in_set.insert(group) { + continue; + } + if let (Some(set), Some(photo)) = (sets.last_mut(), stored.remove(uid)) { + set.push(photo); + } + } + sets.retain(|set| set.len() > 1); + sets.sort_by_key(|set| std::cmp::Reverse(set.iter().map(|p| p.capture_time).max())); + Ok(sets) + } + /// Per-tab counts for the Photos page subtitle: `(photos, videos, raw)`. pub fn photos_counts(&self) -> Result<(usize, usize, usize)> { use crate::control::PhotoKind; diff --git a/crates/pdfs-core/src/db/tests.rs b/crates/pdfs-core/src/db/tests.rs index 2f56183..d1c34f1 100644 --- a/crates/pdfs-core/src/db/tests.rs +++ b/crates/pdfs-core/src/db/tests.rs @@ -285,6 +285,64 @@ fn on_this_day_finds_the_same_date_in_earlier_years() { ); } +fn hashed(uid: &str, capture_time: i64, name: &str, hash: &str) -> TimelineRow { + TimelineRow { + name: Some(name.into()), + content_hash: Some(hash.into()), + ..TimelineRow::new(uid, capture_time) + } +} + +/// A copy an album holds is the one kept; the files of one RAW+JPEG shot are +/// never copies of each other; a hash only one file carries is no set. +#[test] +fn duplicates_list_the_copy_to_keep_first() { + let db = Db::open_in_memory().unwrap(); + db.photos_replace(&[ + hashed("copy", 500, "IMG_2.JPG", "h2"), + hashed("filed", 400, "IMG_2(1).JPG", "h2"), + hashed("jpeg", 300, "IMG_1.JPG", "h1"), + hashed("raw", 300, "IMG_1.CR2", "h1"), + hashed("stray", 200, "IMG_1(1).CR2", "h1"), + hashed("alone", 100, "IMG_3.JPG", "h3"), + ]) + .unwrap(); + db.album_photos_replace("a1", &[("filed".into(), 400, None, None)]) + .unwrap(); + + let sets = db.photo_duplicates().unwrap(); + let uids: Vec> = sets + .iter() + .map(|set| set.iter().map(|p| p.uid.as_str()).collect()) + .collect(); + assert_eq!(uids, [vec!["filed", "copy"], vec!["jpeg", "stray"]]); +} + +/// Trashing the file a group is shown as leaves the rest of the group on the +/// timeline instead of pointing at a photo that is gone. +#[test] +fn deleting_a_group_representative_keeps_its_other_files() { + let db = Db::open_in_memory().unwrap(); + db.photos_replace(&[ + hashed("jpeg", 300, "IMG_1.JPG", "h1"), + hashed("raw", 300, "IMG_1.CR2", "h2"), + ]) + .unwrap(); + assert_eq!( + db.photos_page(0, 10, None, None, false, false) + .unwrap() + .len(), + 1 + ); + + db.photos_delete(&["jpeg".into()]).unwrap(); + let page = db.photos_page(0, 10, None, None, false, false).unwrap(); + assert_eq!( + page.iter().map(|p| p.uid.as_str()).collect::>(), + ["raw"] + ); +} + #[test] fn not_in_album_hides_photos_any_album_holds() { let db = Db::open_in_memory().unwrap(); diff --git a/crates/pdfs-fuse/src/control.rs b/crates/pdfs-fuse/src/control.rs index f21bac2..bf1d87a 100644 --- a/crates/pdfs-fuse/src/control.rs +++ b/crates/pdfs-fuse/src/control.rs @@ -461,6 +461,10 @@ fn handle_control_conn(core: &Core, username: &str, mountpoint: &Path, stream: U }, Err(e) => CtlResponse::error(e), }, + Ok(CtlRequest::PhotoDuplicates) => match core.photo_duplicates() { + Ok(sets) => CtlResponse::PhotoDuplicates { sets }, + Err(e) => CtlResponse::error(e), + }, Ok(CtlRequest::PhotosOnThisDay { limit }) => { match core.photos_on_this_day(clamp_limit(limit)) { Ok(items) => CtlResponse::Photos { @@ -564,8 +568,8 @@ fn handle_control_conn(core: &Core, username: &str, mountpoint: &Path, stream: U items: core.photo_thumbs(&parsed), } } - Ok(CtlRequest::TrashNodes { uids }) => match Core::parse_uids(&uids) { - Ok(parsed) => match core.trash_photos(&parsed) { + Ok(CtlRequest::TrashNodes { uids, files_only }) => match Core::parse_uids(&uids) { + Ok(parsed) => match core.trash_photos(&parsed, files_only) { Ok((trashed, failed)) => CtlResponse::Trashed { trashed, failed: failed diff --git a/crates/pdfs-fuse/src/photos.rs b/crates/pdfs-fuse/src/photos.rs index 9e65217..e4f8e79 100644 --- a/crates/pdfs-fuse/src/photos.rs +++ b/crates/pdfs-fuse/src/photos.rs @@ -729,6 +729,16 @@ impl Core { Ok(()) } + /// The timeline's duplicate sets, as wire items (see + /// [`db::Db::photo_duplicates`]). + pub(crate) fn photo_duplicates(&self) -> CoreResult>> { + let sets = self.db.photo_duplicates().map_err(CoreError::from)?; + Ok(sets + .into_iter() + .map(|set| set.into_iter().map(|p| self.photo_item(p)).collect()) + .collect()) + } + /// Photos taken on today's date in earlier years, as wire items. Served /// from the stored timeline only: the strip is a nicety, not worth a wait /// on the network, and the timeline's own load keeps that store fresh. @@ -822,12 +832,23 @@ impl Core { /// A photo that is one file of a group takes its whole group with it. The /// gallery shows a RAW+JPEG shot as one tile, so deleting that tile has to /// delete the shot — leaving the RAW behind would put the photo back on the - /// Raw tab and nowhere else. - pub(crate) fn trash_photos(&self, uids: &[NodeUid]) -> CoreResult { + /// Raw tab and nowhere else. `files_only` turns that off, for removing + /// one copy of a shot that is stored twice. + pub(crate) fn trash_photos( + &self, + uids: &[NodeUid], + files_only: bool, + ) -> CoreResult { if uids.is_empty() { return Ok((Vec::new(), Vec::new())); } - let uids = &self.expand_photo_groups(uids); + let expanded; + let uids = if files_only { + uids + } else { + expanded = self.expand_photo_groups(uids); + &expanded + }; for uid in uids { self.require_photo_writable(uid) .map_err(|errno| self.errno_error(errno, "trash access"))?; diff --git a/crates/pdfs-gui/src/app/main.rs b/crates/pdfs-gui/src/app/main.rs index a3b1f76..01f98cd 100644 --- a/crates/pdfs-gui/src/app/main.rs +++ b/crates/pdfs-gui/src/app/main.rs @@ -9,6 +9,7 @@ use pages::activity::*; use pages::albums::*; use pages::browser::*; use pages::devices::*; +use pages::duplicates::*; use pages::locations::*; use pages::login::*; use pages::photo_viewer::*; @@ -726,6 +727,10 @@ fn build_window(app: &adw::Application) { &gallery_widgets.empty_upload, &gallery_widgets.empty_import, ); + let ui_duplicates = ui.clone(); + gallery_widgets + .duplicates + .connect_clicked(move |_| show_duplicates(&ui_duplicates)); wire_albums(&ui); wire_trash(&ui, &trash_widgets); wire_shared(&ui, &shared_widgets.retry, &shared_widgets.add_bookmark); diff --git a/crates/pdfs-gui/src/app/pages/duplicates.rs b/crates/pdfs-gui/src/app/pages/duplicates.rs new file mode 100644 index 0000000..75eca68 --- /dev/null +++ b/crates/pdfs-gui/src/app/pages/duplicates.rs @@ -0,0 +1,246 @@ +use crate::*; + +/// Side of a copy's thumbnail in the duplicates dialog, in px. +const COPY_SIZE: i32 = 150; + +/// Each set's copies with their Keep toggles. +type SetToggles = Vec>; + +/// Open the duplicate finder: every set of photos stored more than once, side +/// by side, with the copy worth keeping ticked. The copies left unticked go to +/// Trash — one file each, never the rest of their shot. +pub(crate) fn show_duplicates(ui: &Rc) { + let status = adw::StatusPage::builder() + .icon_name("edit-copy-symbolic") + .title(gettext("Looking for duplicates…")) + .vexpand(true) + .build(); + status.add_css_class("compact"); + + let stack = gtk4::Stack::new(); + stack.add_named(&status, Some("status")); + + let trash = gtk4::Button::builder() + .label(gettext("Move to Trash")) + .halign(gtk4::Align::End) + .sensitive(false) + .build(); + trash.add_css_class("destructive-action"); + trash.add_css_class("pill"); + let bottom = gtk4::Box::new(gtk4::Orientation::Horizontal, 0); + bottom.add_css_class("toolbar"); + bottom.set_halign(gtk4::Align::End); + bottom.append(&trash); + + let toolbar = adw::ToolbarView::new(); + toolbar.add_top_bar(&adw::HeaderBar::new()); + toolbar.set_content(Some(&stack)); + toolbar.add_bottom_bar(&bottom); + toolbar.set_reveal_bottom_bars(false); + + let dialog = adw::Dialog::builder() + .title(gettext("Duplicates")) + .content_width(760) + .content_height(640) + .child(&toolbar) + .build(); + dialog.present(ui_window(ui).as_ref()); + + let rx = spawn_request(ui.dirs.control_socket(), Request::PhotoDuplicates); + let ui = ui.clone(); + glib::spawn_future_local(async move { + let sets = match rx.recv().await { + Ok(Ok(Response::PhotoDuplicates { sets })) => sets, + Ok(Ok(Response::Error { message, .. })) => { + status.set_icon_name(Some("dialog-warning-symbolic")); + status.set_title(&gettext("Couldn't look for duplicates")); + status.set_description(Some(&message)); + return; + } + _ => { + status.set_icon_name(Some("dialog-warning-symbolic")); + status.set_title(&gettext("Couldn't look for duplicates")); + status.set_description(Some(&gettext("The mount service didn't respond."))); + return; + } + }; + if sets.is_empty() { + status.set_icon_name(Some("emblem-ok-symbolic")); + status.set_title(&gettext("No duplicates")); + status.set_description(Some(&gettext( + "Every photo in your library is stored once.", + ))); + return; + } + let review = duplicate_review(&ui, sets, &trash); + stack.add_named(&review, Some("review")); + stack.set_visible_child_name("review"); + toolbar.set_reveal_bottom_bars(true); + schedule_thumbs(&ui); + }); +} + +/// The review list: one section per set, each copy a thumbnail with a Keep +/// toggle. Wires `trash` to move every copy not kept to Trash. +fn duplicate_review(ui: &Rc, sets: Vec>, trash: >k4::Button) -> gtk4::Widget { + let intro = gtk4::Label::builder() + .label(gettext( + "These photos are stored more than once. The copies you don't keep move to Trash, where you can restore them.", + )) + .wrap(true) + .xalign(0.0) + .build(); + intro.add_css_class("dim-label"); + + let content = gtk4::Box::new(gtk4::Orientation::Vertical, 18); + content.set_margin_top(12); + content.set_margin_bottom(12); + content.set_margin_start(18); + content.set_margin_end(18); + content.append(&intro); + + // Every copy's toggle, by set, so the button can count what goes. + let toggles: Rc> = Rc::new(RefCell::new(Vec::new())); + for set in sets { + let Some(first) = set.first() else { + continue; + }; + let date = section_heading(first.capture_time, Grouping::Day); + // Translators: heading of one set in the duplicates dialog; {date} is the day the photo was taken. + let title = ngettext_f( + "{date}, {n} copy", + "{date}, {n} copies", + set.len() as u64, + &[("date", &date)], + ); + let heading = gtk4::Label::builder().label(title).xalign(0.0).build(); + heading.add_css_class("heading"); + let row = gtk4::Box::new(gtk4::Orientation::Horizontal, 12); + let mut set_toggles = Vec::new(); + for (index, photo) in set.into_iter().enumerate() { + let (card, keep) = copy_card(ui, &photo, index == 0); + row.append(&card); + set_toggles.push((photo, keep)); + } + let row_scroll = gtk4::ScrolledWindow::builder() + .vscrollbar_policy(gtk4::PolicyType::Never) + .propagate_natural_height(true) + .child(&row) + .build(); + let section = gtk4::Box::new(gtk4::Orientation::Vertical, 6); + section.append(&heading); + section.append(&row_scroll); + content.append(§ion); + toggles.borrow_mut().push(set_toggles); + } + + let sync = { + let toggles = toggles.clone(); + let trash = trash.clone(); + move || { + let n = doomed(&toggles.borrow()).len(); + trash.set_label(&ngettext_f( + "Move {n} copy to Trash", + "Move {n} copies to Trash", + n as u64, + &[], + )); + trash.set_sensitive(n > 0); + } + }; + sync(); + for set in toggles.borrow().iter() { + for (_, keep) in set { + let toggles = toggles.clone(); + let sync = sync.clone(); + keep.connect_toggled(move |keep| { + // A set always keeps a copy: unticking the last one would trash + // the photo itself, which is not what removing duplicates means. + if !keep.is_active() + && toggles.borrow().iter().any(|set| { + set.iter().any(|(_, t)| t == keep) + && set.iter().all(|(_, t)| !t.is_active()) + }) + { + keep.set_active(true); + return; + } + sync(); + }); + } + } + + let ui_trash = ui.clone(); + trash.connect_clicked(move |button| { + let uids = doomed(&toggles.borrow()); + if uids.is_empty() { + return; + } + trash_photos(&ui_trash, uids, true); + if let Some(dialog) = button + .ancestor(adw::Dialog::static_type()) + .and_downcast::() + { + dialog.close(); + } + }); + + let scroll = gtk4::ScrolledWindow::builder() + .hscrollbar_policy(gtk4::PolicyType::Never) + .vexpand(true) + .child(&content) + .build(); + scroll.upcast() +} + +/// The uids of every copy not kept. +fn doomed(toggles: &SetToggles) -> Vec { + toggles + .iter() + .flatten() + .filter(|(_, keep)| !keep.is_active()) + .map(|(photo, _)| photo.uid.clone()) + .collect() +} + +/// One copy: its thumbnail, its file name, and whether to keep it. +fn copy_card(ui: &Rc, photo: &PhotoItem, keep: bool) -> (gtk4::Box, gtk4::ToggleButton) { + let picture = gtk4::Picture::builder() + .content_fit(gtk4::ContentFit::Cover) + .can_shrink(true) + .build(); + let placeholder = gtk4::Image::builder() + .icon_name("image-x-generic-symbolic") + .pixel_size(24) + .build(); + placeholder.add_css_class("photo-placeholder"); + let overlay = gtk4::Overlay::new(); + overlay.set_size_request(COPY_SIZE, COPY_SIZE); + overlay.set_child(Some(&placeholder)); + overlay.add_overlay(&picture); + overlay.set_overflow(gtk4::Overflow::Hidden); + overlay.add_css_class("memory-cover"); + want_thumb(ui, photo, &picture); + + let name = photo.name.clone().unwrap_or_default(); + let label = gtk4::Label::builder() + .label(&name) + .tooltip_text(&name) + .ellipsize(gtk4::pango::EllipsizeMode::Middle) + .max_width_chars(18) + .build(); + label.add_css_class("caption"); + + let toggle = gtk4::ToggleButton::builder() + .label(gettext("Keep")) + .active(keep) + .build(); + toggle.add_css_class("pill"); + + let card = gtk4::Box::new(gtk4::Orientation::Vertical, 6); + card.set_size_request(COPY_SIZE, -1); + card.append(&overlay); + card.append(&label); + card.append(&toggle); + (card, toggle) +} diff --git a/crates/pdfs-gui/src/app/pages/mod.rs b/crates/pdfs-gui/src/app/pages/mod.rs index bce4ae6..8f7d802 100644 --- a/crates/pdfs-gui/src/app/pages/mod.rs +++ b/crates/pdfs-gui/src/app/pages/mod.rs @@ -2,6 +2,7 @@ pub(crate) mod activity; pub(crate) mod albums; pub(crate) mod browser; pub(crate) mod devices; +pub(crate) mod duplicates; pub(crate) mod locations; pub(crate) mod login; pub(crate) mod photo_viewer; diff --git a/crates/pdfs-gui/src/app/pages/photo_viewer.rs b/crates/pdfs-gui/src/app/pages/photo_viewer.rs index 7e316a6..ea374b7 100644 --- a/crates/pdfs-gui/src/app/pages/photo_viewer.rs +++ b/crates/pdfs-gui/src/app/pages/photo_viewer.rs @@ -1447,7 +1447,7 @@ pub(crate) fn open_photo_viewer(ui: &Rc, initial_uid: String) { delete_btn.connect_clicked(move |_| { let uid = viewer_delete.uid.borrow().clone(); w_delete.close(); - trash_photos(&ui_delete, vec![uid]); + trash_photos(&ui_delete, vec![uid], false); }); let ui_group = ui.clone(); @@ -1573,7 +1573,7 @@ pub(crate) fn open_photo_viewer(ui: &Rc, initial_uid: String) { Some("Delete" | "KP_Delete") => { let uid = viewer_key.uid.borrow().clone(); w_key.close(); - trash_photos(&ui_key, vec![uid]); + trash_photos(&ui_key, vec![uid], false); } Some("Escape" | "q") => w_key.close(), Some("w") if ctrl => w_key.close(), diff --git a/crates/pdfs-gui/src/app/pages/photos.rs b/crates/pdfs-gui/src/app/pages/photos.rs index 529121e..a7f10dc 100644 --- a/crates/pdfs-gui/src/app/pages/photos.rs +++ b/crates/pdfs-gui/src/app/pages/photos.rs @@ -361,6 +361,7 @@ pub(crate) struct GalleryWidgets { pub(crate) empty_upload: gtk4::Button, pub(crate) empty_import: gtk4::Button, pub(crate) refresh: gtk4::Button, + pub(crate) duplicates: gtk4::Button, /// The Select toggle and the bar it reveals. pub(crate) select_btn: gtk4::ToggleButton, pub(crate) select_bar: gtk4::Revealer, @@ -520,6 +521,15 @@ pub(crate) fn build_gallery_page() -> (gtk4::Widget, GalleryWidgets) { import.add_css_class("circular"); let refresh = refresh_button(); + // The duplicate finder opens over the page: a review, not a view of it. + let duplicates = gtk4::Button::builder() + .icon_name("edit-copy-symbolic") + .tooltip_text(gettext("Find duplicates")) + .valign(gtk4::Align::Center) + .build(); + duplicates.add_css_class("flat"); + duplicates.add_css_class("circular"); + // Picking photos is a mode, so its control is a toggle rather than a button. let select_btn = gtk4::ToggleButton::builder() .icon_name("selection-mode-symbolic") @@ -749,6 +759,7 @@ pub(crate) fn build_gallery_page() -> (gtk4::Widget, GalleryWidgets) { header.pack_end(&refresh); header.pack_end(&select_btn); header.pack_end(&import); + header.pack_end(&duplicates); ( frame.upcast(), @@ -770,6 +781,7 @@ pub(crate) fn build_gallery_page() -> (gtk4::Widget, GalleryWidgets) { empty_upload, empty_import, refresh, + duplicates, select_btn, select_bar, select_label, @@ -1849,7 +1861,7 @@ pub(crate) fn confirm_trash_photos(ui: &Rc, uids: Vec) { let ui = ui.clone(); dialog.connect_response(None, move |_, response| { if response == "trash" { - trash_photos(&ui, uids.clone()); + trash_photos(&ui, uids.clone(), false); } }); dialog.present(win.as_ref()); @@ -1861,13 +1873,19 @@ pub(crate) fn confirm_trash_photos(ui: &Rc, uids: Vec) { /// photos the user just deleted until a refresh lands — reads as a failure. What /// the server refuses comes back, so the grid still ends up telling the truth, /// and what succeeded is one Undo away for as long as the toast is up. -pub(crate) fn trash_photos(ui: &Rc, uids: Vec) { +/// +/// `files_only` trashes exactly `uids` and leaves the rest of their groups, for +/// the duplicate finder; otherwise each photo takes its whole group along. +pub(crate) fn trash_photos(ui: &Rc, uids: Vec, files_only: bool) { let removed = remove_photos(ui, &uids); set_selection_mode(ui, false); ui.busy_begin(); let rx = spawn_request( ui.dirs.control_socket(), - Request::TrashNodes { uids: uids.clone() }, + Request::TrashNodes { + uids: uids.clone(), + files_only, + }, ); let ui = ui.clone(); glib::spawn_future_local(async move { diff --git a/po/POTFILES.in b/po/POTFILES.in index c8309cf..6f47ffc 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -4,6 +4,7 @@ crates/pdfs-gui/src/app/pages/activity.rs crates/pdfs-gui/src/app/pages/albums.rs crates/pdfs-gui/src/app/pages/browser.rs crates/pdfs-gui/src/app/pages/devices.rs +crates/pdfs-gui/src/app/pages/duplicates.rs crates/pdfs-gui/src/app/pages/locations.rs crates/pdfs-gui/src/app/pages/login.rs crates/pdfs-gui/src/app/pages/photo_viewer.rs diff --git a/po/de.po b/po/de.po index 86ff109..81f1b81 100644 --- a/po/de.po +++ b/po/de.po @@ -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-09-28 00:44+0200\n" +"POT-Creation-Date: 2026-09-28 00:50+0200\n" "PO-Revision-Date: 2026-09-23 12:00+0200\n" "Last-Translator: Proton Drive for Linux contributors\n" "Language-Team: German\n" @@ -15,99 +15,99 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: crates/pdfs-gui/src/app/main.rs:835 +#: crates/pdfs-gui/src/app/main.rs:840 #: crates/pdfs-gui/src/app/pages/locations.rs:1133 #: crates/pdfs-gui/src/prompt.rs:169 msgid "My files" msgstr "Meine Dateien" -#: crates/pdfs-gui/src/app/main.rs:838 crates/pdfs-gui/src/app/main.rs:1451 +#: crates/pdfs-gui/src/app/main.rs:843 crates/pdfs-gui/src/app/main.rs:1456 #: crates/pdfs-gui/src/app/pages/albums.rs:633 -#: crates/pdfs-gui/src/app/pages/photos.rs:746 +#: crates/pdfs-gui/src/app/pages/photos.rs:756 msgid "Photos" msgstr "Fotos" -#: crates/pdfs-gui/src/app/main.rs:843 +#: crates/pdfs-gui/src/app/main.rs:848 msgid "Shared with me" msgstr "Mit mir geteilt" -#: crates/pdfs-gui/src/app/main.rs:848 +#: crates/pdfs-gui/src/app/main.rs:853 msgid "Shared by me" msgstr "Von mir geteilt" -#: crates/pdfs-gui/src/app/main.rs:851 +#: crates/pdfs-gui/src/app/main.rs:856 #: crates/pdfs-gui/src/app/pages/devices.rs:109 msgid "Computers" msgstr "Computer" -#: crates/pdfs-gui/src/app/main.rs:852 +#: crates/pdfs-gui/src/app/main.rs:857 #: crates/pdfs-gui/src/app/pages/trash.rs:106 msgid "Trash" msgstr "Papierkorb" -#: crates/pdfs-gui/src/app/main.rs:856 +#: crates/pdfs-gui/src/app/main.rs:861 msgid "Sync" msgstr "Synchronisierung" -#: crates/pdfs-gui/src/app/main.rs:861 +#: crates/pdfs-gui/src/app/main.rs:866 #: crates/pdfs-gui/src/app/pages/activity.rs:153 msgid "Activity" msgstr "Aktivität" -#: crates/pdfs-gui/src/app/main.rs:1007 +#: crates/pdfs-gui/src/app/main.rs:1012 msgid "Refresh (F5)" msgstr "Aktualisieren (F5)" #. Translators: a failed action's toast. {what} says what failed, such as #. "Couldn't rename"; {detail} is the reason, usually untranslated text #. from the mount service. -#: crates/pdfs-gui/src/app/main.rs:1181 +#: crates/pdfs-gui/src/app/main.rs:1186 #, rust-format msgid "{what}: {detail}" msgstr "{what}: {detail}" -#: crates/pdfs-gui/src/app/main.rs:1200 +#: crates/pdfs-gui/src/app/main.rs:1205 msgid "You're offline" msgstr "Keine Internetverbindung" -#: crates/pdfs-gui/src/app/main.rs:1201 +#: crates/pdfs-gui/src/app/main.rs:1206 msgid "That's not there any more" msgstr "Das ist nicht mehr vorhanden" -#: crates/pdfs-gui/src/app/main.rs:1202 +#: crates/pdfs-gui/src/app/main.rs:1207 msgid "You don't have access to that" msgstr "Kein Zugriff darauf" -#: crates/pdfs-gui/src/app/main.rs:1203 +#: crates/pdfs-gui/src/app/main.rs:1208 msgid "Something changed this first" msgstr "Etwas anderes hat dies zuerst geändert" -#: crates/pdfs-gui/src/app/main.rs:1204 +#: crates/pdfs-gui/src/app/main.rs:1209 msgid "Your Proton Drive is full" msgstr "Das Proton Drive ist voll" -#: crates/pdfs-gui/src/app/main.rs:1245 crates/pdfs-gui/src/app/main.rs:1433 +#: crates/pdfs-gui/src/app/main.rs:1250 crates/pdfs-gui/src/app/main.rs:1438 #: crates/pdfs-gui/src/app/pages/status.rs:353 msgid "Preferences" msgstr "Einstellungen" -#: crates/pdfs-gui/src/app/main.rs:1246 crates/pdfs-gui/src/app/main.rs:1490 +#: crates/pdfs-gui/src/app/main.rs:1251 crates/pdfs-gui/src/app/main.rs:1495 msgid "Keyboard Shortcuts" msgstr "Tastenkürzel" -#: crates/pdfs-gui/src/app/main.rs:1248 +#: crates/pdfs-gui/src/app/main.rs:1253 msgid "About Proton Drive for Linux" msgstr "Info zu Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1253 +#: crates/pdfs-gui/src/app/main.rs:1258 msgid "Main menu" msgstr "Hauptmenü" -#: crates/pdfs-gui/src/app/main.rs:1299 +#: crates/pdfs-gui/src/app/main.rs:1304 msgid "Proton Drive for Linux" msgstr "Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1307 +#: crates/pdfs-gui/src/app/main.rs:1312 msgid "" "Files-on-demand Proton Drive for the Linux desktop.\n" "\n" @@ -119,23 +119,23 @@ msgstr "" "Inoffizieller Client – nicht mit Proton AG verbunden, von Proton AG " "unterstützt oder befürwortet." -#: crates/pdfs-gui/src/app/main.rs:1312 +#: crates/pdfs-gui/src/app/main.rs:1317 msgid "Source Code" msgstr "Quellcode" -#: crates/pdfs-gui/src/app/main.rs:1316 +#: crates/pdfs-gui/src/app/main.rs:1321 msgid "Proton Terms of Service" msgstr "Nutzungsbedingungen von Proton" -#: crates/pdfs-gui/src/app/main.rs:1320 +#: crates/pdfs-gui/src/app/main.rs:1325 msgid "Proton Privacy Policy" msgstr "Datenschutzerklärung von Proton" -#: crates/pdfs-gui/src/app/main.rs:1325 +#: crates/pdfs-gui/src/app/main.rs:1330 msgid "Disclaimer" msgstr "Haftungsausschluss" -#: crates/pdfs-gui/src/app/main.rs:1329 +#: crates/pdfs-gui/src/app/main.rs:1334 msgid "" "This is an unofficial, community-built client. It is not affiliated with, " "endorsed by, or supported by Proton AG.\n" @@ -162,15 +162,15 @@ msgstr "" #. Translators: replace with your name(s) and email address(es), one #. per line, to be credited in the About dialog. -#: crates/pdfs-gui/src/app/main.rs:1340 +#: crates/pdfs-gui/src/app/main.rs:1345 msgid "translator-credits" msgstr "Mitwirkende an Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1371 +#: crates/pdfs-gui/src/app/main.rs:1376 msgid "Stop Proton Drive?" msgstr "Proton Drive beenden?" -#: crates/pdfs-gui/src/app/main.rs:1372 +#: crates/pdfs-gui/src/app/main.rs:1377 msgid "" "The drive unmounts and nothing syncs until you connect again. Proton Drive " "starts again at your next login." @@ -179,7 +179,7 @@ msgstr "" "Verbindung hergestellt wird. Proton Drive startet bei der nächsten Anmeldung " "erneut." -#: crates/pdfs-gui/src/app/main.rs:1374 crates/pdfs-gui/src/app/main.rs:1647 +#: crates/pdfs-gui/src/app/main.rs:1379 crates/pdfs-gui/src/app/main.rs:1652 #: crates/pdfs-gui/src/app/pages/albums.rs:242 #: crates/pdfs-gui/src/app/pages/albums.rs:423 #: crates/pdfs-gui/src/app/pages/browser.rs:2273 @@ -193,7 +193,7 @@ msgstr "" #: crates/pdfs-gui/src/app/pages/locations.rs:670 #: crates/pdfs-gui/src/app/pages/locations.rs:1050 #: crates/pdfs-gui/src/app/pages/login.rs:312 -#: crates/pdfs-gui/src/app/pages/photos.rs:1842 +#: crates/pdfs-gui/src/app/pages/photos.rs:1854 #: crates/pdfs-gui/src/app/pages/shared.rs:717 #: crates/pdfs-gui/src/app/pages/shared.rs:748 #: crates/pdfs-gui/src/app/pages/shared.rs:789 @@ -207,67 +207,67 @@ msgstr "" msgid "Cancel" msgstr "Abbrechen" -#: crates/pdfs-gui/src/app/main.rs:1375 +#: crates/pdfs-gui/src/app/main.rs:1380 msgctxt "verb" msgid "Stop" msgstr "Beenden" -#: crates/pdfs-gui/src/app/main.rs:1392 +#: crates/pdfs-gui/src/app/main.rs:1397 msgid "Couldn't stop Proton Drive" msgstr "Proton Drive konnte nicht beendet werden" -#: crates/pdfs-gui/src/app/main.rs:1393 +#: crates/pdfs-gui/src/app/main.rs:1398 msgid "The mount service did not stop." msgstr "Der Einhängedienst wurde nicht beendet." -#: crates/pdfs-gui/src/app/main.rs:1429 +#: crates/pdfs-gui/src/app/main.rs:1434 #: crates/pdfs-gui/src/app/pages/status.rs:226 msgid "General" msgstr "Allgemein" -#: crates/pdfs-gui/src/app/main.rs:1431 +#: crates/pdfs-gui/src/app/main.rs:1436 #: crates/pdfs-gui/src/app/pages/browser.rs:270 msgid "Search Drive" msgstr "Drive durchsuchen" -#: crates/pdfs-gui/src/app/main.rs:1432 +#: crates/pdfs-gui/src/app/main.rs:1437 #: crates/pdfs-gui/src/app/pages/browser.rs:1363 msgid "Refresh" msgstr "Aktualisieren" -#: crates/pdfs-gui/src/app/main.rs:1434 +#: crates/pdfs-gui/src/app/main.rs:1439 msgid "Keyboard shortcuts" msgstr "Tastenkürzel" -#: crates/pdfs-gui/src/app/main.rs:1438 +#: crates/pdfs-gui/src/app/main.rs:1443 msgid "Files" msgstr "Dateien" -#: crates/pdfs-gui/src/app/main.rs:1440 +#: crates/pdfs-gui/src/app/main.rs:1445 #: crates/pdfs-gui/src/app/pages/browser.rs:319 #: crates/pdfs-gui/src/app/pages/browser.rs:2586 msgid "New folder" msgstr "Neuer Ordner" -#: crates/pdfs-gui/src/app/main.rs:1441 +#: crates/pdfs-gui/src/app/main.rs:1446 #: crates/pdfs-gui/src/app/pages/browser.rs:315 msgid "Upload files" msgstr "Dateien hochladen" -#: crates/pdfs-gui/src/app/main.rs:1442 +#: crates/pdfs-gui/src/app/main.rs:1447 msgid "Back / forward" msgstr "Zurück / Vor" -#: crates/pdfs-gui/src/app/main.rs:1443 +#: crates/pdfs-gui/src/app/main.rs:1448 #: crates/pdfs-gui/src/app/pages/browser.rs:2320 msgid "Parent folder" msgstr "Übergeordneter Ordner" -#: crates/pdfs-gui/src/app/main.rs:1444 +#: crates/pdfs-gui/src/app/main.rs:1449 msgid "Grid / list" msgstr "Raster / Liste" -#: crates/pdfs-gui/src/app/main.rs:1445 +#: crates/pdfs-gui/src/app/main.rs:1450 #: crates/pdfs-gui/src/app/pages/albums.rs:297 #: crates/pdfs-gui/src/app/pages/browser.rs:2252 #: crates/pdfs-gui/src/app/pages/browser.rs:2274 @@ -276,62 +276,63 @@ msgstr "Raster / Liste" msgid "Rename" msgstr "Umbenennen" -#: crates/pdfs-gui/src/app/main.rs:1446 crates/pdfs-gui/src/app/main.rs:1466 +#: crates/pdfs-gui/src/app/main.rs:1451 crates/pdfs-gui/src/app/main.rs:1471 #: crates/pdfs-gui/src/app/pages/browser.rs:414 #: crates/pdfs-gui/src/app/pages/browser.rs:1306 #: crates/pdfs-gui/src/app/pages/browser.rs:1338 -#: crates/pdfs-gui/src/app/pages/photos.rs:540 -#: crates/pdfs-gui/src/app/pages/photos.rs:1839 -#: crates/pdfs-gui/src/app/pages/photos.rs:1843 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:24 +#: crates/pdfs-gui/src/app/pages/photos.rs:550 +#: crates/pdfs-gui/src/app/pages/photos.rs:1851 +#: crates/pdfs-gui/src/app/pages/photos.rs:1855 #: crates/pdfs-gui/src/app/widgets/details.rs:162 msgid "Move to Trash" msgstr "In den Papierkorb verschieben" -#: crates/pdfs-gui/src/app/main.rs:1447 +#: crates/pdfs-gui/src/app/main.rs:1452 msgid "Clear the selection" msgstr "Auswahl aufheben" -#: crates/pdfs-gui/src/app/main.rs:1453 +#: crates/pdfs-gui/src/app/main.rs:1458 msgid "Larger thumbnails" msgstr "Größere Vorschaubilder" -#: crates/pdfs-gui/src/app/main.rs:1454 +#: crates/pdfs-gui/src/app/main.rs:1459 msgid "Smaller thumbnails" msgstr "Kleinere Vorschaubilder" -#: crates/pdfs-gui/src/app/main.rs:1455 +#: crates/pdfs-gui/src/app/main.rs:1460 msgid "Reset thumbnail size" msgstr "Vorschaubildgröße zurücksetzen" -#: crates/pdfs-gui/src/app/main.rs:1456 +#: crates/pdfs-gui/src/app/main.rs:1461 msgid "Select all" msgstr "Alles auswählen" -#: crates/pdfs-gui/src/app/main.rs:1460 +#: crates/pdfs-gui/src/app/main.rs:1465 msgid "Photo Viewer" msgstr "Fotobetrachter" -#: crates/pdfs-gui/src/app/main.rs:1462 +#: crates/pdfs-gui/src/app/main.rs:1467 msgid "Previous / next photo" msgstr "Vorheriges / nächstes Foto" -#: crates/pdfs-gui/src/app/main.rs:1463 +#: crates/pdfs-gui/src/app/main.rs:1468 msgid "First / last photo" msgstr "Erstes / letztes Foto" -#: crates/pdfs-gui/src/app/main.rs:1464 +#: crates/pdfs-gui/src/app/main.rs:1469 msgid "Show details" msgstr "Details anzeigen" -#: crates/pdfs-gui/src/app/main.rs:1465 +#: crates/pdfs-gui/src/app/main.rs:1470 msgid "Fullscreen" msgstr "Vollbild" -#: crates/pdfs-gui/src/app/main.rs:1467 +#: crates/pdfs-gui/src/app/main.rs:1472 msgid "Close" msgstr "Schließen" -#: crates/pdfs-gui/src/app/main.rs:1570 +#: crates/pdfs-gui/src/app/main.rs:1575 msgid "Select a single item to rename it" msgstr "Zum Umbenennen genau ein Element auswählen" @@ -368,7 +369,7 @@ msgstr "Erfordert Aufmerksamkeit" #: crates/pdfs-gui/src/app/pages/browser.rs:306 #: crates/pdfs-gui/src/app/pages/devices.rs:84 #: crates/pdfs-gui/src/app/pages/locations.rs:134 -#: crates/pdfs-gui/src/app/pages/photos.rs:417 +#: crates/pdfs-gui/src/app/pages/photos.rs:418 #: crates/pdfs-gui/src/app/pages/shared.rs:83 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:38 #: crates/pdfs-gui/src/app/pages/trash.rs:57 crates/pdfs-gui/src/prompt.rs:593 @@ -404,7 +405,7 @@ msgstr "Aktivität konnte nicht gelesen werden" #: crates/pdfs-gui/src/app/pages/browser.rs:2880 #: crates/pdfs-gui/src/app/pages/browser.rs:3066 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:310 -#: crates/pdfs-gui/src/app/pages/photos.rs:3217 +#: crates/pdfs-gui/src/app/pages/photos.rs:3235 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:139 #: crates/pdfs-gui/src/app/pages/trash.rs:320 msgid "Unexpected reply from the mount service." @@ -416,7 +417,7 @@ msgstr "Unerwartete Antwort vom Einhängedienst." #: crates/pdfs-gui/src/app/pages/browser.rs:2914 #: crates/pdfs-gui/src/app/pages/devices.rs:209 #: crates/pdfs-gui/src/app/pages/locations.rs:844 -#: crates/pdfs-gui/src/app/pages/photos.rs:3251 +#: crates/pdfs-gui/src/app/pages/photos.rs:3269 #: crates/pdfs-gui/src/app/pages/shared.rs:523 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:156 #: crates/pdfs-gui/src/app/pages/status.rs:1301 @@ -428,7 +429,7 @@ msgstr "Nicht verbunden" #: crates/pdfs-gui/src/app/pages/browser.rs:2915 #: crates/pdfs-gui/src/app/pages/devices.rs:210 #: crates/pdfs-gui/src/app/pages/locations.rs:845 -#: crates/pdfs-gui/src/app/pages/photos.rs:3252 +#: crates/pdfs-gui/src/app/pages/photos.rs:3270 #: crates/pdfs-gui/src/app/pages/shared.rs:524 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:157 #: crates/pdfs-gui/src/app/pages/trash.rs:336 @@ -440,7 +441,7 @@ msgstr "Der Proton-Drive-Einhängedienst läuft nicht." #: crates/pdfs-gui/src/app/pages/browser.rs:2924 #: crates/pdfs-gui/src/app/pages/devices.rs:218 #: crates/pdfs-gui/src/app/pages/locations.rs:853 -#: crates/pdfs-gui/src/app/pages/photos.rs:3260 +#: crates/pdfs-gui/src/app/pages/photos.rs:3278 #: crates/pdfs-gui/src/app/pages/shared.rs:532 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:165 #: crates/pdfs-gui/src/app/pages/status.rs:305 @@ -453,7 +454,7 @@ msgstr "Verbindung wird hergestellt …" #: crates/pdfs-gui/src/app/pages/browser.rs:2925 #: crates/pdfs-gui/src/app/pages/devices.rs:219 #: crates/pdfs-gui/src/app/pages/locations.rs:854 -#: crates/pdfs-gui/src/app/pages/photos.rs:3261 +#: crates/pdfs-gui/src/app/pages/photos.rs:3279 #: crates/pdfs-gui/src/app/pages/shared.rs:533 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:166 #: crates/pdfs-gui/src/app/pages/trash.rs:345 @@ -461,12 +462,12 @@ msgid "Waiting for the Proton Drive mount service to come up." msgstr "Warten auf den Start des Proton-Drive-Einhängedienstes." #: crates/pdfs-gui/src/app/pages/activity.rs:419 -#: crates/pdfs-gui/src/app/pages/photos.rs:2504 +#: crates/pdfs-gui/src/app/pages/photos.rs:2522 msgid "Today" msgstr "Heute" #: crates/pdfs-gui/src/app/pages/activity.rs:422 -#: crates/pdfs-gui/src/app/pages/photos.rs:2509 +#: crates/pdfs-gui/src/app/pages/photos.rs:2527 msgid "Yesterday" msgstr "Gestern" @@ -525,7 +526,7 @@ msgstr "Gelöst" #. Translators: strftime format for the time of day in the activity feed, such as "14:05". #. Translators: strftime format for the time a photo was taken, shown on its tile, such as "14:05". #: crates/pdfs-gui/src/app/pages/activity.rs:580 -#: crates/pdfs-gui/src/app/pages/photos.rs:2548 +#: crates/pdfs-gui/src/app/pages/photos.rs:2566 msgid "%H:%M" msgstr "%H:%M" @@ -631,12 +632,12 @@ msgid "Reading your Proton Drive albums." msgstr "Proton-Drive-Alben werden gelesen." #: crates/pdfs-gui/src/app/pages/albums.rs:59 -#: crates/pdfs-gui/src/app/pages/photos.rs:3130 +#: crates/pdfs-gui/src/app/pages/photos.rs:3148 msgid "No photo library" msgstr "Keine Fotobibliothek" #: crates/pdfs-gui/src/app/pages/albums.rs:60 -#: crates/pdfs-gui/src/app/pages/photos.rs:3131 +#: crates/pdfs-gui/src/app/pages/photos.rs:3149 msgid "This Proton account doesn't have Photos enabled." msgstr "Für dieses Proton-Konto ist Fotos nicht aktiviert." @@ -669,7 +670,7 @@ msgstr[1] "{n} Alben" #: crates/pdfs-gui/src/app/pages/albums.rs:205 #: crates/pdfs-gui/src/app/pages/browser.rs:1246 -#: crates/pdfs-gui/src/app/pages/photos.rs:2984 +#: crates/pdfs-gui/src/app/pages/photos.rs:3002 #: crates/pdfs-gui/src/app/pages/shared.rs:384 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:244 #: crates/pdfs-gui/src/app/widgets/details.rs:155 @@ -729,16 +730,17 @@ msgstr "Das Album konnte nicht erstellt werden" #: crates/pdfs-gui/src/app/pages/devices.rs:532 #: crates/pdfs-gui/src/app/pages/devices.rs:682 #: crates/pdfs-gui/src/app/pages/devices.rs:912 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:63 #: crates/pdfs-gui/src/app/pages/locations.rs:342 #: crates/pdfs-gui/src/app/pages/locations.rs:516 #: crates/pdfs-gui/src/app/pages/locations.rs:739 #: crates/pdfs-gui/src/app/pages/locations.rs:1090 #: crates/pdfs-gui/src/app/pages/locations.rs:1109 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1424 -#: crates/pdfs-gui/src/app/pages/photos.rs:1272 -#: crates/pdfs-gui/src/app/pages/photos.rs:1921 -#: crates/pdfs-gui/src/app/pages/photos.rs:3048 -#: crates/pdfs-gui/src/app/pages/photos.rs:3223 +#: crates/pdfs-gui/src/app/pages/photos.rs:1284 +#: crates/pdfs-gui/src/app/pages/photos.rs:1939 +#: crates/pdfs-gui/src/app/pages/photos.rs:3066 +#: crates/pdfs-gui/src/app/pages/photos.rs:3241 #: crates/pdfs-gui/src/app/pages/shared.rs:510 #: crates/pdfs-gui/src/app/pages/shared.rs:838 #: crates/pdfs-gui/src/app/pages/status.rs:672 @@ -802,7 +804,7 @@ msgstr[0] "Ein Album für {n} Foto auswählen." msgstr[1] "Ein Album für {n} Fotos auswählen." #: crates/pdfs-gui/src/app/pages/albums.rs:424 -#: crates/pdfs-gui/src/app/pages/photos.rs:712 +#: crates/pdfs-gui/src/app/pages/photos.rs:722 msgid "New Album…" msgstr "Neues Album …" @@ -993,7 +995,7 @@ msgstr "Meine Dateien" #. Translators: {n} is how many items are selected: files and folders in My Files, photos here. #: crates/pdfs-gui/src/app/pages/browser.rs:638 #: crates/pdfs-gui/src/app/pages/browser.rs:1331 -#: crates/pdfs-gui/src/app/pages/photos.rs:1775 +#: crates/pdfs-gui/src/app/pages/photos.rs:1787 #, rust-format msgid "{n} selected" msgid_plural "{n} selected" @@ -1002,8 +1004,8 @@ msgstr[1] "{n} ausgewählt" #: crates/pdfs-gui/src/app/pages/browser.rs:674 #: crates/pdfs-gui/src/app/pages/browser.rs:709 -#: crates/pdfs-gui/src/app/pages/photos.rs:1914 -#: crates/pdfs-gui/src/app/pages/photos.rs:1920 +#: crates/pdfs-gui/src/app/pages/photos.rs:1932 +#: crates/pdfs-gui/src/app/pages/photos.rs:1938 msgid "Couldn't move to Trash" msgstr "Verschieben in den Papierkorb fehlgeschlagen" @@ -1041,7 +1043,7 @@ msgstr[0] "{n} Element in den Papierkorb verschoben" msgstr[1] "{n} Elemente in den Papierkorb verschoben" #: crates/pdfs-gui/src/app/pages/browser.rs:727 -#: crates/pdfs-gui/src/app/pages/photos.rs:1907 +#: crates/pdfs-gui/src/app/pages/photos.rs:1925 msgid "Undo" msgstr "Rückgängig" @@ -1098,7 +1100,7 @@ msgid "Open With…" msgstr "Öffnen mit …" #: crates/pdfs-gui/src/app/pages/browser.rs:1263 -#: crates/pdfs-gui/src/app/pages/photos.rs:2982 +#: crates/pdfs-gui/src/app/pages/photos.rs:3000 msgctxt "verb" msgid "Play" msgstr "Abspielen" @@ -1393,7 +1395,7 @@ msgstr[0] "{n} Element wird hochgeladen …" msgstr[1] "{n} Elemente werden hochgeladen …" #: crates/pdfs-gui/src/app/pages/browser.rs:2696 -#: crates/pdfs-gui/src/app/pages/photos.rs:730 +#: crates/pdfs-gui/src/app/pages/photos.rs:740 msgctxt "verb" msgid "View" msgstr "Anzeigen" @@ -1866,6 +1868,51 @@ msgstr "Identität übernommen" msgid "Couldn't adopt that computer" msgstr "Der Computer konnte nicht übernommen werden" +#: crates/pdfs-gui/src/app/pages/duplicates.rs:15 +msgid "Looking for duplicates…" +msgstr "Duplikate werden gesucht …" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:42 +msgid "Duplicates" +msgstr "Duplikate" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:56 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:62 +msgid "Couldn't look for duplicates" +msgstr "Duplikate konnten nicht gesucht werden" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:69 +msgid "No duplicates" +msgstr "Keine Duplikate" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:71 +msgid "Every photo in your library is stored once." +msgstr "Jedes Foto in deiner Mediathek ist nur einmal gespeichert." + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:88 +msgid "" +"These photos are stored more than once. The copies you don't keep move to " +"Trash, where you can restore them." +msgstr "Diese Fotos sind mehrfach gespeichert. Die Kopien, die du nicht behältst, werden in den Papierkorb verschoben, wo du sie wiederherstellen kannst." + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:111 +#, rust-format +msgid "{date}, {n} copy" +msgid_plural "{date}, {n} copies" +msgstr[0] "{date}, {n} Kopie" +msgstr[1] "{date}, {n} Kopien" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:143 +#, rust-format +msgid "Move {n} copy to Trash" +msgid_plural "Move {n} copies to Trash" +msgstr[0] "{n} Kopie in den Papierkorb verschieben" +msgstr[1] "{n} Kopien in den Papierkorb verschieben" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:235 +msgid "Keep" +msgstr "Behalten" + #: crates/pdfs-gui/src/app/pages/locations.rs:89 msgid "Add Folder" msgstr "Ordner hinzufügen" @@ -2565,144 +2612,148 @@ msgid "Hide details" msgstr "Details ausblenden" #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1429 -#: crates/pdfs-gui/src/app/pages/photos.rs:3043 -#: crates/pdfs-gui/src/app/pages/photos.rs:3047 +#: crates/pdfs-gui/src/app/pages/photos.rs:3061 +#: crates/pdfs-gui/src/app/pages/photos.rs:3065 msgid "Couldn't change the favorite" msgstr "Favorit konnte nicht geändert werden" -#: crates/pdfs-gui/src/app/pages/photos.rs:427 -#: crates/pdfs-gui/src/app/pages/photos.rs:507 +#: crates/pdfs-gui/src/app/pages/photos.rs:428 +#: crates/pdfs-gui/src/app/pages/photos.rs:508 msgid "Upload photos" msgstr "Fotos hochladen" -#: crates/pdfs-gui/src/app/pages/photos.rs:432 +#: crates/pdfs-gui/src/app/pages/photos.rs:433 #: crates/pdfs-gui/src/app/pages/takeout.rs:287 msgid "Import from Google Photos" msgstr "Aus Google Photos importieren" -#: crates/pdfs-gui/src/app/pages/photos.rs:472 -#: crates/pdfs-gui/src/app/pages/photos.rs:612 +#: crates/pdfs-gui/src/app/pages/photos.rs:473 +#: crates/pdfs-gui/src/app/pages/photos.rs:622 msgid "Jump to a month" msgstr "Zu einem Monat springen" -#: crates/pdfs-gui/src/app/pages/photos.rs:491 +#: crates/pdfs-gui/src/app/pages/photos.rs:492 msgid "Back to albums" msgstr "Zurück zu den Alben" -#: crates/pdfs-gui/src/app/pages/photos.rs:503 +#: crates/pdfs-gui/src/app/pages/photos.rs:504 msgctxt "verb" msgid "Upload" msgstr "Hochladen" -#: crates/pdfs-gui/src/app/pages/photos.rs:516 +#: crates/pdfs-gui/src/app/pages/photos.rs:517 msgid "Import a Google Photos Takeout export" msgstr "Einen Google-Photos-Takeout-Export importieren" -#: crates/pdfs-gui/src/app/pages/photos.rs:526 -#: crates/pdfs-gui/src/app/pages/photos.rs:535 -#: crates/pdfs-gui/src/app/pages/photos.rs:1773 +#: crates/pdfs-gui/src/app/pages/photos.rs:527 +msgid "Find duplicates" +msgstr "Duplikate finden" + +#: crates/pdfs-gui/src/app/pages/photos.rs:536 +#: crates/pdfs-gui/src/app/pages/photos.rs:545 +#: crates/pdfs-gui/src/app/pages/photos.rs:1785 msgid "Select photos" msgstr "Fotos auswählen" -#: crates/pdfs-gui/src/app/pages/photos.rs:546 -#: crates/pdfs-gui/src/app/pages/photos.rs:3000 +#: crates/pdfs-gui/src/app/pages/photos.rs:556 +#: crates/pdfs-gui/src/app/pages/photos.rs:3018 msgid "Add to Album…" msgstr "Zum Album hinzufügen …" -#: crates/pdfs-gui/src/app/pages/photos.rs:552 +#: crates/pdfs-gui/src/app/pages/photos.rs:562 msgid "Leave selection (Esc)" msgstr "Auswahl verlassen (Esc)" -#: crates/pdfs-gui/src/app/pages/photos.rs:596 +#: crates/pdfs-gui/src/app/pages/photos.rs:606 msgid "Show only favorites" msgstr "Nur Favoriten anzeigen" -#: crates/pdfs-gui/src/app/pages/photos.rs:603 +#: crates/pdfs-gui/src/app/pages/photos.rs:613 msgid "Show only photos not in an album" msgstr "Nur Fotos ohne Album anzeigen" -#: crates/pdfs-gui/src/app/pages/photos.rs:610 -#: crates/pdfs-gui/src/app/pages/photos.rs:845 +#: crates/pdfs-gui/src/app/pages/photos.rs:620 +#: crates/pdfs-gui/src/app/pages/photos.rs:857 msgid "All dates" msgstr "Alle Zeiträume" -#: crates/pdfs-gui/src/app/pages/photos.rs:631 +#: crates/pdfs-gui/src/app/pages/photos.rs:641 msgid "Timeline" msgstr "Zeitleiste" -#: crates/pdfs-gui/src/app/pages/photos.rs:635 +#: crates/pdfs-gui/src/app/pages/photos.rs:645 msgid "Albums" msgstr "Alben" -#: crates/pdfs-gui/src/app/pages/photos.rs:654 +#: crates/pdfs-gui/src/app/pages/photos.rs:664 msgid "On this day" msgstr "An diesem Tag" -#: crates/pdfs-gui/src/app/pages/photos.rs:729 +#: crates/pdfs-gui/src/app/pages/photos.rs:739 msgid "Importing from Google Photos…" msgstr "Import aus Google Photos läuft …" #. Translators: strftime format for a month on its own, such as "June 2024". %OB is the month name in its standalone (nominative) form; use %B if your language has no separate form. -#: crates/pdfs-gui/src/app/pages/photos.rs:821 +#: crates/pdfs-gui/src/app/pages/photos.rs:833 msgid "%OB %Y" msgstr "%OB %Y" #. Translators: a row of the date jump; {month} is a month such as "June 2024", {count} how many photos it holds. -#: crates/pdfs-gui/src/app/pages/photos.rs:852 +#: crates/pdfs-gui/src/app/pages/photos.rs:864 #, rust-format msgid "{month} ({count})" msgstr "{month} ({count})" #. Translators: a Photos filter tab that shows photos, videos and raw files together. -#: crates/pdfs-gui/src/app/pages/photos.rs:889 +#: crates/pdfs-gui/src/app/pages/photos.rs:901 msgctxt "photo filter" msgid "All" msgstr "Alle" -#: crates/pdfs-gui/src/app/pages/photos.rs:890 +#: crates/pdfs-gui/src/app/pages/photos.rs:902 msgctxt "photo filter" msgid "Photos" msgstr "Fotos" -#: crates/pdfs-gui/src/app/pages/photos.rs:891 +#: crates/pdfs-gui/src/app/pages/photos.rs:903 msgctxt "photo filter" msgid "Videos" msgstr "Videos" #. Translators: a Photos filter tab for raw camera files. -#: crates/pdfs-gui/src/app/pages/photos.rs:893 +#: crates/pdfs-gui/src/app/pages/photos.rs:905 msgctxt "photo filter" msgid "Raw" msgstr "RAW" -#: crates/pdfs-gui/src/app/pages/photos.rs:1198 +#: crates/pdfs-gui/src/app/pages/photos.rs:1210 msgid "Select Photo to Upload" msgstr "Foto zum Hochladen auswählen" -#: crates/pdfs-gui/src/app/pages/photos.rs:1202 +#: crates/pdfs-gui/src/app/pages/photos.rs:1214 #: crates/pdfs-gui/src/prompt.rs:60 msgid "Images" msgstr "Bilder" -#: crates/pdfs-gui/src/app/pages/photos.rs:1258 +#: crates/pdfs-gui/src/app/pages/photos.rs:1270 msgid "Photo uploaded" msgstr "Foto hochgeladen" -#: crates/pdfs-gui/src/app/pages/photos.rs:1263 -#: crates/pdfs-gui/src/app/pages/photos.rs:1271 +#: crates/pdfs-gui/src/app/pages/photos.rs:1275 +#: crates/pdfs-gui/src/app/pages/photos.rs:1283 msgid "Couldn't upload photo" msgstr "Foto konnte nicht hochgeladen werden" #. Translators: badge on a photo tile whose shot includes a raw camera file. -#: crates/pdfs-gui/src/app/pages/photos.rs:1432 +#: crates/pdfs-gui/src/app/pages/photos.rs:1444 msgid "RAW" msgstr "RAW" -#: crates/pdfs-gui/src/app/pages/photos.rs:1817 +#: crates/pdfs-gui/src/app/pages/photos.rs:1829 msgid "Move this photo to Trash?" msgstr "Dieses Foto in den Papierkorb verschieben?" -#: crates/pdfs-gui/src/app/pages/photos.rs:1819 +#: crates/pdfs-gui/src/app/pages/photos.rs:1831 #, rust-format msgid "Move this photo to Trash? It is stored as {n} file." msgid_plural "Move this photo to Trash? It is stored as {n} files." @@ -2712,14 +2763,14 @@ msgstr[1] "" "Dieses Foto in den Papierkorb verschieben? Es ist als {n} Dateien " "gespeichert." -#: crates/pdfs-gui/src/app/pages/photos.rs:1825 +#: crates/pdfs-gui/src/app/pages/photos.rs:1837 #, rust-format msgid "Move {n} photo to Trash?" msgid_plural "Move {n} photos to Trash?" msgstr[0] "{n} Foto in den Papierkorb verschieben?" msgstr[1] "{n} Fotos in den Papierkorb verschieben?" -#: crates/pdfs-gui/src/app/pages/photos.rs:1832 +#: crates/pdfs-gui/src/app/pages/photos.rs:1844 #, rust-format msgid "Move {n} photo to Trash? They are stored as {files} files." msgid_plural "Move {n} photos to Trash? They are stored as {files} files." @@ -2730,15 +2781,15 @@ msgstr[1] "" "{n} Fotos in den Papierkorb verschieben? Sie sind als {files} Dateien " "gespeichert." -#: crates/pdfs-gui/src/app/pages/photos.rs:1890 +#: crates/pdfs-gui/src/app/pages/photos.rs:1908 msgid "The server refused." msgstr "Der Server hat abgelehnt." -#: crates/pdfs-gui/src/app/pages/photos.rs:1893 +#: crates/pdfs-gui/src/app/pages/photos.rs:1911 msgid "Some photos couldn't be moved to Trash" msgstr "Einige Fotos konnten nicht in den Papierkorb verschoben werden" -#: crates/pdfs-gui/src/app/pages/photos.rs:1902 +#: crates/pdfs-gui/src/app/pages/photos.rs:1920 #, rust-format msgid "Moved {n} photo to Trash" msgid_plural "Moved {n} photos to Trash" @@ -2746,7 +2797,7 @@ msgstr[0] "{n} Foto in den Papierkorb verschoben" msgstr[1] "{n} Fotos in den Papierkorb verschoben" #. Translators: the Photos page subtitle, such as "12 videos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2458 +#: crates/pdfs-gui/src/app/pages/photos.rs:2476 #, rust-format msgid "{count} video" msgid_plural "{count} videos" @@ -2754,7 +2805,7 @@ msgstr[0] "{count} Video" msgstr[1] "{count} Videos" #. Translators: the Photos page subtitle, such as "12 raw photos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2460 +#: crates/pdfs-gui/src/app/pages/photos.rs:2478 #, rust-format msgid "{count} raw photo" msgid_plural "{count} raw photos" @@ -2762,140 +2813,140 @@ msgstr[0] "{count} RAW-Foto" msgstr[1] "{count} RAW-Fotos" #. Translators: the Photos page subtitle, such as "1,204 photos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2462 +#: crates/pdfs-gui/src/app/pages/photos.rs:2480 #, rust-format msgid "{count} photo" msgid_plural "{count} photos" msgstr[0] "{count} Foto" msgstr[1] "{count} Fotos" -#: crates/pdfs-gui/src/app/pages/photos.rs:2490 -#: crates/pdfs-gui/src/app/pages/photos.rs:2516 +#: crates/pdfs-gui/src/app/pages/photos.rs:2508 +#: crates/pdfs-gui/src/app/pages/photos.rs:2534 msgid "Unknown date" msgstr "Unbekanntes Datum" #. Translators: strftime format for a day heading in the photo timeline, such as "3 June 2026". -#: crates/pdfs-gui/src/app/pages/photos.rs:2513 +#: crates/pdfs-gui/src/app/pages/photos.rs:2531 msgid "%-d %B %Y" msgstr "%-d. %B %Y" #. Translators: strftime format for a photo's capture date and time, such as "2026-06-03 14:05:09". -#: crates/pdfs-gui/src/app/pages/photos.rs:2534 +#: crates/pdfs-gui/src/app/pages/photos.rs:2552 msgid "%Y-%m-%d %H:%M:%S" msgstr "%d.%m.%Y %H:%M:%S" -#: crates/pdfs-gui/src/app/pages/photos.rs:2538 -#: crates/pdfs-gui/src/app/pages/photos.rs:2540 +#: crates/pdfs-gui/src/app/pages/photos.rs:2556 +#: crates/pdfs-gui/src/app/pages/photos.rs:2558 msgid "Unknown Date" msgstr "Unbekanntes Datum" #. Translators: strftime format for the day a photo was taken, shown on its tile when the timeline is grouped by month or year, such as "3 Jun". -#: crates/pdfs-gui/src/app/pages/photos.rs:2558 +#: crates/pdfs-gui/src/app/pages/photos.rs:2576 msgid "%-d %b" msgstr "%-d. %b" -#: crates/pdfs-gui/src/app/pages/photos.rs:2580 +#: crates/pdfs-gui/src/app/pages/photos.rs:2598 msgid "Every photo is in an album" msgstr "Jedes Foto ist in einem Album" -#: crates/pdfs-gui/src/app/pages/photos.rs:2581 +#: crates/pdfs-gui/src/app/pages/photos.rs:2599 msgid "Turn off the album filter to see everything." msgstr "Den Albumfilter ausschalten, um alles zu sehen." -#: crates/pdfs-gui/src/app/pages/photos.rs:2586 +#: crates/pdfs-gui/src/app/pages/photos.rs:2604 msgid "No photos yet" msgstr "Noch keine Fotos" -#: crates/pdfs-gui/src/app/pages/photos.rs:2587 +#: crates/pdfs-gui/src/app/pages/photos.rs:2605 msgid "Photos you upload to Proton Drive appear here." msgstr "Fotos, die zu Proton Drive hochgeladen werden, erscheinen hier." -#: crates/pdfs-gui/src/app/pages/photos.rs:2590 +#: crates/pdfs-gui/src/app/pages/photos.rs:2608 msgid "No favorites yet" msgstr "Noch keine Favoriten" -#: crates/pdfs-gui/src/app/pages/photos.rs:2591 +#: crates/pdfs-gui/src/app/pages/photos.rs:2609 msgid "Star a photo in the viewer or from its menu to find it here." msgstr "" "Ein Foto im Betrachter oder über sein Menü als Favorit markieren, um es hier " "zu finden." #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2596 +#: crates/pdfs-gui/src/app/pages/photos.rs:2614 #, rust-format msgid "No favorite videos in {month}" msgstr "Keine favorisierten Videos im {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2597 +#: crates/pdfs-gui/src/app/pages/photos.rs:2615 msgid "No favorite videos" msgstr "Keine favorisierten Videos" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2599 +#: crates/pdfs-gui/src/app/pages/photos.rs:2617 #, rust-format msgid "No favorite raw files in {month}" msgstr "Keine favorisierten RAW-Dateien im {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2600 +#: crates/pdfs-gui/src/app/pages/photos.rs:2618 msgid "No favorite raw files" msgstr "Keine favorisierten RAW-Dateien" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2602 +#: crates/pdfs-gui/src/app/pages/photos.rs:2620 #, rust-format msgid "No favorite photos in {month}" msgstr "Keine favorisierten Fotos im {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2603 +#: crates/pdfs-gui/src/app/pages/photos.rs:2621 msgid "No favorite photos" msgstr "Keine favorisierten Fotos" -#: crates/pdfs-gui/src/app/pages/photos.rs:2605 +#: crates/pdfs-gui/src/app/pages/photos.rs:2623 msgid "Turn off the favorites filter to see everything." msgstr "Den Favoritenfilter ausschalten, um alles zu sehen." #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2610 +#: crates/pdfs-gui/src/app/pages/photos.rs:2628 #, rust-format msgid "No videos in {month}" msgstr "Keine Videos im {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2611 +#: crates/pdfs-gui/src/app/pages/photos.rs:2629 msgid "No videos" msgstr "Keine Videos" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2613 +#: crates/pdfs-gui/src/app/pages/photos.rs:2631 #, rust-format msgid "No raw files in {month}" msgstr "Keine RAW-Dateien im {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2614 +#: crates/pdfs-gui/src/app/pages/photos.rs:2632 msgid "No raw files" msgstr "Keine RAW-Dateien" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2616 +#: crates/pdfs-gui/src/app/pages/photos.rs:2634 #, rust-format msgid "No photos in {month}" msgstr "Keine Fotos im {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2617 +#: crates/pdfs-gui/src/app/pages/photos.rs:2635 msgid "No photos" msgstr "Keine Fotos" -#: crates/pdfs-gui/src/app/pages/photos.rs:2619 +#: crates/pdfs-gui/src/app/pages/photos.rs:2637 msgid "Try another filter or month." msgstr "Einen anderen Filter oder Monat wählen." -#: crates/pdfs-gui/src/app/pages/photos.rs:2735 +#: crates/pdfs-gui/src/app/pages/photos.rs:2753 #, rust-format msgid "{n} year ago" msgid_plural "{n} years ago" msgstr[0] "vor {n} Jahr" msgstr[1] "vor {n} Jahren" -#: crates/pdfs-gui/src/app/pages/photos.rs:2760 +#: crates/pdfs-gui/src/app/pages/photos.rs:2778 #, rust-format msgid "{date}, {n} photo" msgid_plural "{date}, {n} photos" @@ -2903,55 +2954,55 @@ msgstr[0] "{date}, {n} Foto" msgstr[1] "{date}, {n} Fotos" #. Translators: a check item in a photo's menu, on while the photo is a favorite. -#: crates/pdfs-gui/src/app/pages/photos.rs:2989 +#: crates/pdfs-gui/src/app/pages/photos.rs:3007 msgctxt "state" msgid "Favorite" msgstr "Favorit" -#: crates/pdfs-gui/src/app/pages/photos.rs:2994 +#: crates/pdfs-gui/src/app/pages/photos.rs:3012 msgctxt "verb" msgid "Select" msgstr "Auswählen" -#: crates/pdfs-gui/src/app/pages/photos.rs:3006 +#: crates/pdfs-gui/src/app/pages/photos.rs:3024 msgid "Remove from Album" msgstr "Aus Album entfernen" -#: crates/pdfs-gui/src/app/pages/photos.rs:3012 +#: crates/pdfs-gui/src/app/pages/photos.rs:3030 msgid "Move to Trash…" msgstr "In den Papierkorb verschieben …" -#: crates/pdfs-gui/src/app/pages/photos.rs:3036 +#: crates/pdfs-gui/src/app/pages/photos.rs:3054 msgid "Added to Favorites" msgstr "Zu Favoriten hinzugefügt" -#: crates/pdfs-gui/src/app/pages/photos.rs:3038 +#: crates/pdfs-gui/src/app/pages/photos.rs:3056 msgid "Removed from Favorites" msgstr "Aus Favoriten entfernt" -#: crates/pdfs-gui/src/app/pages/photos.rs:3067 +#: crates/pdfs-gui/src/app/pages/photos.rs:3085 msgid "Loading photos…" msgstr "Fotos werden geladen …" -#: crates/pdfs-gui/src/app/pages/photos.rs:3068 +#: crates/pdfs-gui/src/app/pages/photos.rs:3086 msgid "Reading your Proton Drive timeline." msgstr "Proton-Drive-Zeitleiste wird gelesen." -#: crates/pdfs-gui/src/app/pages/photos.rs:3161 +#: crates/pdfs-gui/src/app/pages/photos.rs:3179 msgid "Empty album" msgstr "Leeres Album" -#: crates/pdfs-gui/src/app/pages/photos.rs:3162 +#: crates/pdfs-gui/src/app/pages/photos.rs:3180 msgid "This album has no photos in it." msgstr "Dieses Album enthält keine Fotos." -#: crates/pdfs-gui/src/app/pages/photos.rs:3204 #: crates/pdfs-gui/src/app/pages/photos.rs:3222 +#: crates/pdfs-gui/src/app/pages/photos.rs:3240 msgid "Couldn't load more photos" msgstr "Weitere Fotos konnten nicht geladen werden" -#: crates/pdfs-gui/src/app/pages/photos.rs:3209 -#: crates/pdfs-gui/src/app/pages/photos.rs:3216 +#: crates/pdfs-gui/src/app/pages/photos.rs:3227 +#: crates/pdfs-gui/src/app/pages/photos.rs:3234 msgid "Couldn't load photos" msgstr "Fotos konnten nicht geladen werden" diff --git a/po/en_GB.po b/po/en_GB.po index a051b05..854c477 100644 --- a/po/en_GB.po +++ b/po/en_GB.po @@ -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-09-28 00:44+0200\n" +"POT-Creation-Date: 2026-09-28 00:50+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" @@ -15,99 +15,99 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: crates/pdfs-gui/src/app/main.rs:835 +#: crates/pdfs-gui/src/app/main.rs:840 #: crates/pdfs-gui/src/app/pages/locations.rs:1133 #: crates/pdfs-gui/src/prompt.rs:169 msgid "My files" msgstr "My files" -#: crates/pdfs-gui/src/app/main.rs:838 crates/pdfs-gui/src/app/main.rs:1451 +#: crates/pdfs-gui/src/app/main.rs:843 crates/pdfs-gui/src/app/main.rs:1456 #: crates/pdfs-gui/src/app/pages/albums.rs:633 -#: crates/pdfs-gui/src/app/pages/photos.rs:746 +#: crates/pdfs-gui/src/app/pages/photos.rs:756 msgid "Photos" msgstr "Photos" -#: crates/pdfs-gui/src/app/main.rs:843 +#: crates/pdfs-gui/src/app/main.rs:848 msgid "Shared with me" msgstr "Shared with me" -#: crates/pdfs-gui/src/app/main.rs:848 +#: crates/pdfs-gui/src/app/main.rs:853 msgid "Shared by me" msgstr "Shared by me" -#: crates/pdfs-gui/src/app/main.rs:851 +#: crates/pdfs-gui/src/app/main.rs:856 #: crates/pdfs-gui/src/app/pages/devices.rs:109 msgid "Computers" msgstr "Computers" -#: crates/pdfs-gui/src/app/main.rs:852 +#: crates/pdfs-gui/src/app/main.rs:857 #: crates/pdfs-gui/src/app/pages/trash.rs:106 msgid "Trash" msgstr "Trash" -#: crates/pdfs-gui/src/app/main.rs:856 +#: crates/pdfs-gui/src/app/main.rs:861 msgid "Sync" msgstr "Sync" -#: crates/pdfs-gui/src/app/main.rs:861 +#: crates/pdfs-gui/src/app/main.rs:866 #: crates/pdfs-gui/src/app/pages/activity.rs:153 msgid "Activity" msgstr "Activity" -#: crates/pdfs-gui/src/app/main.rs:1007 +#: crates/pdfs-gui/src/app/main.rs:1012 msgid "Refresh (F5)" msgstr "Refresh (F5)" #. Translators: a failed action's toast. {what} says what failed, such as #. "Couldn't rename"; {detail} is the reason, usually untranslated text #. from the mount service. -#: crates/pdfs-gui/src/app/main.rs:1181 +#: crates/pdfs-gui/src/app/main.rs:1186 #, rust-format msgid "{what}: {detail}" msgstr "{what}: {detail}" -#: crates/pdfs-gui/src/app/main.rs:1200 +#: crates/pdfs-gui/src/app/main.rs:1205 msgid "You're offline" msgstr "You're offline" -#: crates/pdfs-gui/src/app/main.rs:1201 +#: crates/pdfs-gui/src/app/main.rs:1206 msgid "That's not there any more" msgstr "That's not there any more" -#: crates/pdfs-gui/src/app/main.rs:1202 +#: crates/pdfs-gui/src/app/main.rs:1207 msgid "You don't have access to that" msgstr "You don't have access to that" -#: crates/pdfs-gui/src/app/main.rs:1203 +#: crates/pdfs-gui/src/app/main.rs:1208 msgid "Something changed this first" msgstr "Something changed this first" -#: crates/pdfs-gui/src/app/main.rs:1204 +#: crates/pdfs-gui/src/app/main.rs:1209 msgid "Your Proton Drive is full" msgstr "Your Proton Drive is full" -#: crates/pdfs-gui/src/app/main.rs:1245 crates/pdfs-gui/src/app/main.rs:1433 +#: crates/pdfs-gui/src/app/main.rs:1250 crates/pdfs-gui/src/app/main.rs:1438 #: crates/pdfs-gui/src/app/pages/status.rs:353 msgid "Preferences" msgstr "Preferences" -#: crates/pdfs-gui/src/app/main.rs:1246 crates/pdfs-gui/src/app/main.rs:1490 +#: crates/pdfs-gui/src/app/main.rs:1251 crates/pdfs-gui/src/app/main.rs:1495 msgid "Keyboard Shortcuts" msgstr "Keyboard Shortcuts" -#: crates/pdfs-gui/src/app/main.rs:1248 +#: crates/pdfs-gui/src/app/main.rs:1253 msgid "About Proton Drive for Linux" msgstr "About Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1253 +#: crates/pdfs-gui/src/app/main.rs:1258 msgid "Main menu" msgstr "Main menu" -#: crates/pdfs-gui/src/app/main.rs:1299 +#: crates/pdfs-gui/src/app/main.rs:1304 msgid "Proton Drive for Linux" msgstr "Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1307 +#: crates/pdfs-gui/src/app/main.rs:1312 msgid "" "Files-on-demand Proton Drive for the Linux desktop.\n" "\n" @@ -119,23 +119,23 @@ msgstr "" "Unofficial client — not affiliated with, endorsed by, or supported by Proton " "AG." -#: crates/pdfs-gui/src/app/main.rs:1312 +#: crates/pdfs-gui/src/app/main.rs:1317 msgid "Source Code" msgstr "Source Code" -#: crates/pdfs-gui/src/app/main.rs:1316 +#: crates/pdfs-gui/src/app/main.rs:1321 msgid "Proton Terms of Service" msgstr "Proton Terms of Service" -#: crates/pdfs-gui/src/app/main.rs:1320 +#: crates/pdfs-gui/src/app/main.rs:1325 msgid "Proton Privacy Policy" msgstr "Proton Privacy Policy" -#: crates/pdfs-gui/src/app/main.rs:1325 +#: crates/pdfs-gui/src/app/main.rs:1330 msgid "Disclaimer" msgstr "Disclaimer" -#: crates/pdfs-gui/src/app/main.rs:1329 +#: crates/pdfs-gui/src/app/main.rs:1334 msgid "" "This is an unofficial, community-built client. It is not affiliated with, " "endorsed by, or supported by Proton AG.\n" @@ -159,15 +159,15 @@ msgstr "" #. Translators: replace with your name(s) and email address(es), one #. per line, to be credited in the About dialog. -#: crates/pdfs-gui/src/app/main.rs:1340 +#: crates/pdfs-gui/src/app/main.rs:1345 msgid "translator-credits" msgstr "Proton Drive for Linux contributors" -#: crates/pdfs-gui/src/app/main.rs:1371 +#: crates/pdfs-gui/src/app/main.rs:1376 msgid "Stop Proton Drive?" msgstr "Stop Proton Drive?" -#: crates/pdfs-gui/src/app/main.rs:1372 +#: crates/pdfs-gui/src/app/main.rs:1377 msgid "" "The drive unmounts and nothing syncs until you connect again. Proton Drive " "starts again at your next login." @@ -175,7 +175,7 @@ msgstr "" "The drive unmounts and nothing syncs until you connect again. Proton Drive " "starts again at your next login." -#: crates/pdfs-gui/src/app/main.rs:1374 crates/pdfs-gui/src/app/main.rs:1647 +#: crates/pdfs-gui/src/app/main.rs:1379 crates/pdfs-gui/src/app/main.rs:1652 #: crates/pdfs-gui/src/app/pages/albums.rs:242 #: crates/pdfs-gui/src/app/pages/albums.rs:423 #: crates/pdfs-gui/src/app/pages/browser.rs:2273 @@ -189,7 +189,7 @@ msgstr "" #: crates/pdfs-gui/src/app/pages/locations.rs:670 #: crates/pdfs-gui/src/app/pages/locations.rs:1050 #: crates/pdfs-gui/src/app/pages/login.rs:312 -#: crates/pdfs-gui/src/app/pages/photos.rs:1842 +#: crates/pdfs-gui/src/app/pages/photos.rs:1854 #: crates/pdfs-gui/src/app/pages/shared.rs:717 #: crates/pdfs-gui/src/app/pages/shared.rs:748 #: crates/pdfs-gui/src/app/pages/shared.rs:789 @@ -203,67 +203,67 @@ msgstr "" msgid "Cancel" msgstr "Cancel" -#: crates/pdfs-gui/src/app/main.rs:1375 +#: crates/pdfs-gui/src/app/main.rs:1380 msgctxt "verb" msgid "Stop" msgstr "Stop" -#: crates/pdfs-gui/src/app/main.rs:1392 +#: crates/pdfs-gui/src/app/main.rs:1397 msgid "Couldn't stop Proton Drive" msgstr "Couldn't stop Proton Drive" -#: crates/pdfs-gui/src/app/main.rs:1393 +#: crates/pdfs-gui/src/app/main.rs:1398 msgid "The mount service did not stop." msgstr "The mount service did not stop." -#: crates/pdfs-gui/src/app/main.rs:1429 +#: crates/pdfs-gui/src/app/main.rs:1434 #: crates/pdfs-gui/src/app/pages/status.rs:226 msgid "General" msgstr "General" -#: crates/pdfs-gui/src/app/main.rs:1431 +#: crates/pdfs-gui/src/app/main.rs:1436 #: crates/pdfs-gui/src/app/pages/browser.rs:270 msgid "Search Drive" msgstr "Search Drive" -#: crates/pdfs-gui/src/app/main.rs:1432 +#: crates/pdfs-gui/src/app/main.rs:1437 #: crates/pdfs-gui/src/app/pages/browser.rs:1363 msgid "Refresh" msgstr "Refresh" -#: crates/pdfs-gui/src/app/main.rs:1434 +#: crates/pdfs-gui/src/app/main.rs:1439 msgid "Keyboard shortcuts" msgstr "Keyboard shortcuts" -#: crates/pdfs-gui/src/app/main.rs:1438 +#: crates/pdfs-gui/src/app/main.rs:1443 msgid "Files" msgstr "Files" -#: crates/pdfs-gui/src/app/main.rs:1440 +#: crates/pdfs-gui/src/app/main.rs:1445 #: crates/pdfs-gui/src/app/pages/browser.rs:319 #: crates/pdfs-gui/src/app/pages/browser.rs:2586 msgid "New folder" msgstr "New folder" -#: crates/pdfs-gui/src/app/main.rs:1441 +#: crates/pdfs-gui/src/app/main.rs:1446 #: crates/pdfs-gui/src/app/pages/browser.rs:315 msgid "Upload files" msgstr "Upload files" -#: crates/pdfs-gui/src/app/main.rs:1442 +#: crates/pdfs-gui/src/app/main.rs:1447 msgid "Back / forward" msgstr "Back / forward" -#: crates/pdfs-gui/src/app/main.rs:1443 +#: crates/pdfs-gui/src/app/main.rs:1448 #: crates/pdfs-gui/src/app/pages/browser.rs:2320 msgid "Parent folder" msgstr "Parent folder" -#: crates/pdfs-gui/src/app/main.rs:1444 +#: crates/pdfs-gui/src/app/main.rs:1449 msgid "Grid / list" msgstr "Grid / list" -#: crates/pdfs-gui/src/app/main.rs:1445 +#: crates/pdfs-gui/src/app/main.rs:1450 #: crates/pdfs-gui/src/app/pages/albums.rs:297 #: crates/pdfs-gui/src/app/pages/browser.rs:2252 #: crates/pdfs-gui/src/app/pages/browser.rs:2274 @@ -272,62 +272,63 @@ msgstr "Grid / list" msgid "Rename" msgstr "Rename" -#: crates/pdfs-gui/src/app/main.rs:1446 crates/pdfs-gui/src/app/main.rs:1466 +#: crates/pdfs-gui/src/app/main.rs:1451 crates/pdfs-gui/src/app/main.rs:1471 #: crates/pdfs-gui/src/app/pages/browser.rs:414 #: crates/pdfs-gui/src/app/pages/browser.rs:1306 #: crates/pdfs-gui/src/app/pages/browser.rs:1338 -#: crates/pdfs-gui/src/app/pages/photos.rs:540 -#: crates/pdfs-gui/src/app/pages/photos.rs:1839 -#: crates/pdfs-gui/src/app/pages/photos.rs:1843 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:24 +#: crates/pdfs-gui/src/app/pages/photos.rs:550 +#: crates/pdfs-gui/src/app/pages/photos.rs:1851 +#: crates/pdfs-gui/src/app/pages/photos.rs:1855 #: crates/pdfs-gui/src/app/widgets/details.rs:162 msgid "Move to Trash" msgstr "Move to Trash" -#: crates/pdfs-gui/src/app/main.rs:1447 +#: crates/pdfs-gui/src/app/main.rs:1452 msgid "Clear the selection" msgstr "Clear the selection" -#: crates/pdfs-gui/src/app/main.rs:1453 +#: crates/pdfs-gui/src/app/main.rs:1458 msgid "Larger thumbnails" msgstr "Larger thumbnails" -#: crates/pdfs-gui/src/app/main.rs:1454 +#: crates/pdfs-gui/src/app/main.rs:1459 msgid "Smaller thumbnails" msgstr "Smaller thumbnails" -#: crates/pdfs-gui/src/app/main.rs:1455 +#: crates/pdfs-gui/src/app/main.rs:1460 msgid "Reset thumbnail size" msgstr "Reset thumbnail size" -#: crates/pdfs-gui/src/app/main.rs:1456 +#: crates/pdfs-gui/src/app/main.rs:1461 msgid "Select all" msgstr "Select all" -#: crates/pdfs-gui/src/app/main.rs:1460 +#: crates/pdfs-gui/src/app/main.rs:1465 msgid "Photo Viewer" msgstr "Photo Viewer" -#: crates/pdfs-gui/src/app/main.rs:1462 +#: crates/pdfs-gui/src/app/main.rs:1467 msgid "Previous / next photo" msgstr "Previous / next photo" -#: crates/pdfs-gui/src/app/main.rs:1463 +#: crates/pdfs-gui/src/app/main.rs:1468 msgid "First / last photo" msgstr "First / last photo" -#: crates/pdfs-gui/src/app/main.rs:1464 +#: crates/pdfs-gui/src/app/main.rs:1469 msgid "Show details" msgstr "Show details" -#: crates/pdfs-gui/src/app/main.rs:1465 +#: crates/pdfs-gui/src/app/main.rs:1470 msgid "Fullscreen" msgstr "Fullscreen" -#: crates/pdfs-gui/src/app/main.rs:1467 +#: crates/pdfs-gui/src/app/main.rs:1472 msgid "Close" msgstr "Close" -#: crates/pdfs-gui/src/app/main.rs:1570 +#: crates/pdfs-gui/src/app/main.rs:1575 msgid "Select a single item to rename it" msgstr "Select a single item to rename it" @@ -364,7 +365,7 @@ msgstr "Needs attention" #: crates/pdfs-gui/src/app/pages/browser.rs:306 #: crates/pdfs-gui/src/app/pages/devices.rs:84 #: crates/pdfs-gui/src/app/pages/locations.rs:134 -#: crates/pdfs-gui/src/app/pages/photos.rs:417 +#: crates/pdfs-gui/src/app/pages/photos.rs:418 #: crates/pdfs-gui/src/app/pages/shared.rs:83 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:38 #: crates/pdfs-gui/src/app/pages/trash.rs:57 crates/pdfs-gui/src/prompt.rs:593 @@ -400,7 +401,7 @@ msgstr "Couldn't read activity" #: crates/pdfs-gui/src/app/pages/browser.rs:2880 #: crates/pdfs-gui/src/app/pages/browser.rs:3066 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:310 -#: crates/pdfs-gui/src/app/pages/photos.rs:3217 +#: crates/pdfs-gui/src/app/pages/photos.rs:3235 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:139 #: crates/pdfs-gui/src/app/pages/trash.rs:320 msgid "Unexpected reply from the mount service." @@ -412,7 +413,7 @@ msgstr "Unexpected reply from the mount service." #: crates/pdfs-gui/src/app/pages/browser.rs:2914 #: crates/pdfs-gui/src/app/pages/devices.rs:209 #: crates/pdfs-gui/src/app/pages/locations.rs:844 -#: crates/pdfs-gui/src/app/pages/photos.rs:3251 +#: crates/pdfs-gui/src/app/pages/photos.rs:3269 #: crates/pdfs-gui/src/app/pages/shared.rs:523 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:156 #: crates/pdfs-gui/src/app/pages/status.rs:1301 @@ -424,7 +425,7 @@ msgstr "Not connected" #: crates/pdfs-gui/src/app/pages/browser.rs:2915 #: crates/pdfs-gui/src/app/pages/devices.rs:210 #: crates/pdfs-gui/src/app/pages/locations.rs:845 -#: crates/pdfs-gui/src/app/pages/photos.rs:3252 +#: crates/pdfs-gui/src/app/pages/photos.rs:3270 #: crates/pdfs-gui/src/app/pages/shared.rs:524 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:157 #: crates/pdfs-gui/src/app/pages/trash.rs:336 @@ -436,7 +437,7 @@ msgstr "The Proton Drive mount service isn't running." #: crates/pdfs-gui/src/app/pages/browser.rs:2924 #: crates/pdfs-gui/src/app/pages/devices.rs:218 #: crates/pdfs-gui/src/app/pages/locations.rs:853 -#: crates/pdfs-gui/src/app/pages/photos.rs:3260 +#: crates/pdfs-gui/src/app/pages/photos.rs:3278 #: crates/pdfs-gui/src/app/pages/shared.rs:532 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:165 #: crates/pdfs-gui/src/app/pages/status.rs:305 @@ -449,7 +450,7 @@ msgstr "Connecting…" #: crates/pdfs-gui/src/app/pages/browser.rs:2925 #: crates/pdfs-gui/src/app/pages/devices.rs:219 #: crates/pdfs-gui/src/app/pages/locations.rs:854 -#: crates/pdfs-gui/src/app/pages/photos.rs:3261 +#: crates/pdfs-gui/src/app/pages/photos.rs:3279 #: crates/pdfs-gui/src/app/pages/shared.rs:533 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:166 #: crates/pdfs-gui/src/app/pages/trash.rs:345 @@ -457,12 +458,12 @@ msgid "Waiting for the Proton Drive mount service to come up." msgstr "Waiting for the Proton Drive mount service to come up." #: crates/pdfs-gui/src/app/pages/activity.rs:419 -#: crates/pdfs-gui/src/app/pages/photos.rs:2504 +#: crates/pdfs-gui/src/app/pages/photos.rs:2522 msgid "Today" msgstr "Today" #: crates/pdfs-gui/src/app/pages/activity.rs:422 -#: crates/pdfs-gui/src/app/pages/photos.rs:2509 +#: crates/pdfs-gui/src/app/pages/photos.rs:2527 msgid "Yesterday" msgstr "Yesterday" @@ -517,7 +518,7 @@ msgstr "Resolved" #. Translators: strftime format for the time of day in the activity feed, such as "14:05". #. Translators: strftime format for the time a photo was taken, shown on its tile, such as "14:05". #: crates/pdfs-gui/src/app/pages/activity.rs:580 -#: crates/pdfs-gui/src/app/pages/photos.rs:2548 +#: crates/pdfs-gui/src/app/pages/photos.rs:2566 msgid "%H:%M" msgstr "%H:%M" @@ -623,12 +624,12 @@ msgid "Reading your Proton Drive albums." msgstr "Reading your Proton Drive albums." #: crates/pdfs-gui/src/app/pages/albums.rs:59 -#: crates/pdfs-gui/src/app/pages/photos.rs:3130 +#: crates/pdfs-gui/src/app/pages/photos.rs:3148 msgid "No photo library" msgstr "No photo library" #: crates/pdfs-gui/src/app/pages/albums.rs:60 -#: crates/pdfs-gui/src/app/pages/photos.rs:3131 +#: crates/pdfs-gui/src/app/pages/photos.rs:3149 msgid "This Proton account doesn't have Photos enabled." msgstr "This Proton account doesn't have Photos enabled." @@ -661,7 +662,7 @@ msgstr[1] "{n} albums" #: crates/pdfs-gui/src/app/pages/albums.rs:205 #: crates/pdfs-gui/src/app/pages/browser.rs:1246 -#: crates/pdfs-gui/src/app/pages/photos.rs:2984 +#: crates/pdfs-gui/src/app/pages/photos.rs:3002 #: crates/pdfs-gui/src/app/pages/shared.rs:384 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:244 #: crates/pdfs-gui/src/app/widgets/details.rs:155 @@ -721,16 +722,17 @@ msgstr "Couldn't create the album" #: crates/pdfs-gui/src/app/pages/devices.rs:532 #: crates/pdfs-gui/src/app/pages/devices.rs:682 #: crates/pdfs-gui/src/app/pages/devices.rs:912 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:63 #: crates/pdfs-gui/src/app/pages/locations.rs:342 #: crates/pdfs-gui/src/app/pages/locations.rs:516 #: crates/pdfs-gui/src/app/pages/locations.rs:739 #: crates/pdfs-gui/src/app/pages/locations.rs:1090 #: crates/pdfs-gui/src/app/pages/locations.rs:1109 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1424 -#: crates/pdfs-gui/src/app/pages/photos.rs:1272 -#: crates/pdfs-gui/src/app/pages/photos.rs:1921 -#: crates/pdfs-gui/src/app/pages/photos.rs:3048 -#: crates/pdfs-gui/src/app/pages/photos.rs:3223 +#: crates/pdfs-gui/src/app/pages/photos.rs:1284 +#: crates/pdfs-gui/src/app/pages/photos.rs:1939 +#: crates/pdfs-gui/src/app/pages/photos.rs:3066 +#: crates/pdfs-gui/src/app/pages/photos.rs:3241 #: crates/pdfs-gui/src/app/pages/shared.rs:510 #: crates/pdfs-gui/src/app/pages/shared.rs:838 #: crates/pdfs-gui/src/app/pages/status.rs:672 @@ -794,7 +796,7 @@ msgstr[0] "Choose an album for {n} photo." msgstr[1] "Choose an album for {n} photos." #: crates/pdfs-gui/src/app/pages/albums.rs:424 -#: crates/pdfs-gui/src/app/pages/photos.rs:712 +#: crates/pdfs-gui/src/app/pages/photos.rs:722 msgid "New Album…" msgstr "New Album…" @@ -985,7 +987,7 @@ msgstr "My Files" #. Translators: {n} is how many items are selected: files and folders in My Files, photos here. #: crates/pdfs-gui/src/app/pages/browser.rs:638 #: crates/pdfs-gui/src/app/pages/browser.rs:1331 -#: crates/pdfs-gui/src/app/pages/photos.rs:1775 +#: crates/pdfs-gui/src/app/pages/photos.rs:1787 #, rust-format msgid "{n} selected" msgid_plural "{n} selected" @@ -994,8 +996,8 @@ msgstr[1] "{n} selected" #: crates/pdfs-gui/src/app/pages/browser.rs:674 #: crates/pdfs-gui/src/app/pages/browser.rs:709 -#: crates/pdfs-gui/src/app/pages/photos.rs:1914 -#: crates/pdfs-gui/src/app/pages/photos.rs:1920 +#: crates/pdfs-gui/src/app/pages/photos.rs:1932 +#: crates/pdfs-gui/src/app/pages/photos.rs:1938 msgid "Couldn't move to Trash" msgstr "Couldn't move to Trash" @@ -1029,7 +1031,7 @@ msgstr[0] "Moved {n} item to Trash" msgstr[1] "Moved {n} items to Trash" #: crates/pdfs-gui/src/app/pages/browser.rs:727 -#: crates/pdfs-gui/src/app/pages/photos.rs:1907 +#: crates/pdfs-gui/src/app/pages/photos.rs:1925 msgid "Undo" msgstr "Undo" @@ -1086,7 +1088,7 @@ msgid "Open With…" msgstr "Open With…" #: crates/pdfs-gui/src/app/pages/browser.rs:1263 -#: crates/pdfs-gui/src/app/pages/photos.rs:2982 +#: crates/pdfs-gui/src/app/pages/photos.rs:3000 msgctxt "verb" msgid "Play" msgstr "Play" @@ -1379,7 +1381,7 @@ msgstr[0] "Uploading {n} item…" msgstr[1] "Uploading {n} items…" #: crates/pdfs-gui/src/app/pages/browser.rs:2696 -#: crates/pdfs-gui/src/app/pages/photos.rs:730 +#: crates/pdfs-gui/src/app/pages/photos.rs:740 msgctxt "verb" msgid "View" msgstr "View" @@ -1841,6 +1843,51 @@ msgstr "Identity adopted" msgid "Couldn't adopt that computer" msgstr "Couldn't adopt that computer" +#: crates/pdfs-gui/src/app/pages/duplicates.rs:15 +msgid "Looking for duplicates…" +msgstr "Looking for duplicates…" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:42 +msgid "Duplicates" +msgstr "Duplicates" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:56 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:62 +msgid "Couldn't look for duplicates" +msgstr "Couldn't look for duplicates" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:69 +msgid "No duplicates" +msgstr "No duplicates" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:71 +msgid "Every photo in your library is stored once." +msgstr "Every photo in your library is stored once." + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:88 +msgid "" +"These photos are stored more than once. The copies you don't keep move to " +"Trash, where you can restore them." +msgstr "These photos are stored more than once. The copies you don't keep move to Trash, where you can restore them." + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:111 +#, rust-format +msgid "{date}, {n} copy" +msgid_plural "{date}, {n} copies" +msgstr[0] "{date}, {n} copy" +msgstr[1] "{date}, {n} copies" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:143 +#, rust-format +msgid "Move {n} copy to Trash" +msgid_plural "Move {n} copies to Trash" +msgstr[0] "Move {n} copy to Trash" +msgstr[1] "Move {n} copies to Trash" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:235 +msgid "Keep" +msgstr "Keep" + #: crates/pdfs-gui/src/app/pages/locations.rs:89 msgid "Add Folder" msgstr "Add Folder" @@ -2528,173 +2575,177 @@ msgid "Hide details" msgstr "Hide details" #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1429 -#: crates/pdfs-gui/src/app/pages/photos.rs:3043 -#: crates/pdfs-gui/src/app/pages/photos.rs:3047 +#: crates/pdfs-gui/src/app/pages/photos.rs:3061 +#: crates/pdfs-gui/src/app/pages/photos.rs:3065 msgid "Couldn't change the favorite" msgstr "Couldn't change the favourite" -#: crates/pdfs-gui/src/app/pages/photos.rs:427 -#: crates/pdfs-gui/src/app/pages/photos.rs:507 +#: crates/pdfs-gui/src/app/pages/photos.rs:428 +#: crates/pdfs-gui/src/app/pages/photos.rs:508 msgid "Upload photos" msgstr "Upload photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:432 +#: crates/pdfs-gui/src/app/pages/photos.rs:433 #: crates/pdfs-gui/src/app/pages/takeout.rs:287 msgid "Import from Google Photos" msgstr "Import from Google Photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:472 -#: crates/pdfs-gui/src/app/pages/photos.rs:612 +#: crates/pdfs-gui/src/app/pages/photos.rs:473 +#: crates/pdfs-gui/src/app/pages/photos.rs:622 msgid "Jump to a month" msgstr "Jump to a month" -#: crates/pdfs-gui/src/app/pages/photos.rs:491 +#: crates/pdfs-gui/src/app/pages/photos.rs:492 msgid "Back to albums" msgstr "Back to albums" -#: crates/pdfs-gui/src/app/pages/photos.rs:503 +#: crates/pdfs-gui/src/app/pages/photos.rs:504 msgctxt "verb" msgid "Upload" msgstr "Upload" -#: crates/pdfs-gui/src/app/pages/photos.rs:516 +#: crates/pdfs-gui/src/app/pages/photos.rs:517 msgid "Import a Google Photos Takeout export" msgstr "Import a Google Photos Takeout export" -#: crates/pdfs-gui/src/app/pages/photos.rs:526 -#: crates/pdfs-gui/src/app/pages/photos.rs:535 -#: crates/pdfs-gui/src/app/pages/photos.rs:1773 +#: crates/pdfs-gui/src/app/pages/photos.rs:527 +msgid "Find duplicates" +msgstr "Find duplicates" + +#: crates/pdfs-gui/src/app/pages/photos.rs:536 +#: crates/pdfs-gui/src/app/pages/photos.rs:545 +#: crates/pdfs-gui/src/app/pages/photos.rs:1785 msgid "Select photos" msgstr "Select photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:546 -#: crates/pdfs-gui/src/app/pages/photos.rs:3000 +#: crates/pdfs-gui/src/app/pages/photos.rs:556 +#: crates/pdfs-gui/src/app/pages/photos.rs:3018 msgid "Add to Album…" msgstr "Add to Album…" -#: crates/pdfs-gui/src/app/pages/photos.rs:552 +#: crates/pdfs-gui/src/app/pages/photos.rs:562 msgid "Leave selection (Esc)" msgstr "Leave selection (Esc)" -#: crates/pdfs-gui/src/app/pages/photos.rs:596 +#: crates/pdfs-gui/src/app/pages/photos.rs:606 msgid "Show only favorites" msgstr "Show only favourites" -#: crates/pdfs-gui/src/app/pages/photos.rs:603 +#: crates/pdfs-gui/src/app/pages/photos.rs:613 msgid "Show only photos not in an album" msgstr "Show only photos not in an album" -#: crates/pdfs-gui/src/app/pages/photos.rs:610 -#: crates/pdfs-gui/src/app/pages/photos.rs:845 +#: crates/pdfs-gui/src/app/pages/photos.rs:620 +#: crates/pdfs-gui/src/app/pages/photos.rs:857 msgid "All dates" msgstr "All dates" -#: crates/pdfs-gui/src/app/pages/photos.rs:631 +#: crates/pdfs-gui/src/app/pages/photos.rs:641 msgid "Timeline" msgstr "Timeline" -#: crates/pdfs-gui/src/app/pages/photos.rs:635 +#: crates/pdfs-gui/src/app/pages/photos.rs:645 msgid "Albums" msgstr "Albums" -#: crates/pdfs-gui/src/app/pages/photos.rs:654 +#: crates/pdfs-gui/src/app/pages/photos.rs:664 msgid "On this day" msgstr "On this day" -#: crates/pdfs-gui/src/app/pages/photos.rs:729 +#: crates/pdfs-gui/src/app/pages/photos.rs:739 msgid "Importing from Google Photos…" msgstr "Importing from Google Photos…" #. Translators: strftime format for a month on its own, such as "June 2024". %OB is the month name in its standalone (nominative) form; use %B if your language has no separate form. -#: crates/pdfs-gui/src/app/pages/photos.rs:821 +#: crates/pdfs-gui/src/app/pages/photos.rs:833 msgid "%OB %Y" msgstr "%OB %Y" #. Translators: a row of the date jump; {month} is a month such as "June 2024", {count} how many photos it holds. -#: crates/pdfs-gui/src/app/pages/photos.rs:852 +#: crates/pdfs-gui/src/app/pages/photos.rs:864 #, rust-format msgid "{month} ({count})" msgstr "{month} ({count})" #. Translators: a Photos filter tab that shows photos, videos and raw files together. -#: crates/pdfs-gui/src/app/pages/photos.rs:889 +#: crates/pdfs-gui/src/app/pages/photos.rs:901 msgctxt "photo filter" msgid "All" msgstr "All" -#: crates/pdfs-gui/src/app/pages/photos.rs:890 +#: crates/pdfs-gui/src/app/pages/photos.rs:902 msgctxt "photo filter" msgid "Photos" msgstr "Photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:891 +#: crates/pdfs-gui/src/app/pages/photos.rs:903 msgctxt "photo filter" msgid "Videos" msgstr "Videos" #. Translators: a Photos filter tab for raw camera files. -#: crates/pdfs-gui/src/app/pages/photos.rs:893 +#: crates/pdfs-gui/src/app/pages/photos.rs:905 msgctxt "photo filter" msgid "Raw" msgstr "Raw" -#: crates/pdfs-gui/src/app/pages/photos.rs:1198 +#: crates/pdfs-gui/src/app/pages/photos.rs:1210 msgid "Select Photo to Upload" msgstr "Select Photo to Upload" -#: crates/pdfs-gui/src/app/pages/photos.rs:1202 +#: crates/pdfs-gui/src/app/pages/photos.rs:1214 #: crates/pdfs-gui/src/prompt.rs:60 msgid "Images" msgstr "Images" -#: crates/pdfs-gui/src/app/pages/photos.rs:1258 +#: crates/pdfs-gui/src/app/pages/photos.rs:1270 msgid "Photo uploaded" msgstr "Photo uploaded" -#: crates/pdfs-gui/src/app/pages/photos.rs:1263 -#: crates/pdfs-gui/src/app/pages/photos.rs:1271 +#: crates/pdfs-gui/src/app/pages/photos.rs:1275 +#: crates/pdfs-gui/src/app/pages/photos.rs:1283 msgid "Couldn't upload photo" msgstr "Couldn't upload photo" #. Translators: badge on a photo tile whose shot includes a raw camera file. -#: crates/pdfs-gui/src/app/pages/photos.rs:1432 +#: crates/pdfs-gui/src/app/pages/photos.rs:1444 msgid "RAW" msgstr "RAW" -#: crates/pdfs-gui/src/app/pages/photos.rs:1817 +#: crates/pdfs-gui/src/app/pages/photos.rs:1829 msgid "Move this photo to Trash?" msgstr "Move this photo to Trash?" -#: crates/pdfs-gui/src/app/pages/photos.rs:1819 +#: crates/pdfs-gui/src/app/pages/photos.rs:1831 #, rust-format msgid "Move this photo to Trash? It is stored as {n} file." msgid_plural "Move this photo to Trash? It is stored as {n} files." msgstr[0] "Move this photo to Trash? It is stored as {n} file." msgstr[1] "Move this photo to Trash? It is stored as {n} files." -#: crates/pdfs-gui/src/app/pages/photos.rs:1825 +#: crates/pdfs-gui/src/app/pages/photos.rs:1837 #, rust-format msgid "Move {n} photo to Trash?" msgid_plural "Move {n} photos to Trash?" msgstr[0] "Move {n} photo to Trash?" msgstr[1] "Move {n} photos to Trash?" -#: crates/pdfs-gui/src/app/pages/photos.rs:1832 +#: crates/pdfs-gui/src/app/pages/photos.rs:1844 #, rust-format msgid "Move {n} photo to Trash? They are stored as {files} files." msgid_plural "Move {n} photos to Trash? They are stored as {files} files." msgstr[0] "Move {n} photo to Trash? They are stored as {files} files." msgstr[1] "Move {n} photos to Trash? They are stored as {files} files." -#: crates/pdfs-gui/src/app/pages/photos.rs:1890 +#: crates/pdfs-gui/src/app/pages/photos.rs:1908 msgid "The server refused." msgstr "The server refused." -#: crates/pdfs-gui/src/app/pages/photos.rs:1893 +#: crates/pdfs-gui/src/app/pages/photos.rs:1911 msgid "Some photos couldn't be moved to Trash" msgstr "Some photos couldn't be moved to Trash" -#: crates/pdfs-gui/src/app/pages/photos.rs:1902 +#: crates/pdfs-gui/src/app/pages/photos.rs:1920 #, rust-format msgid "Moved {n} photo to Trash" msgid_plural "Moved {n} photos to Trash" @@ -2702,7 +2753,7 @@ msgstr[0] "Moved {n} photo to Trash" msgstr[1] "Moved {n} photos to Trash" #. Translators: the Photos page subtitle, such as "12 videos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2458 +#: crates/pdfs-gui/src/app/pages/photos.rs:2476 #, rust-format msgid "{count} video" msgid_plural "{count} videos" @@ -2710,7 +2761,7 @@ msgstr[0] "{count} video" msgstr[1] "{count} videos" #. Translators: the Photos page subtitle, such as "12 raw photos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2460 +#: crates/pdfs-gui/src/app/pages/photos.rs:2478 #, rust-format msgid "{count} raw photo" msgid_plural "{count} raw photos" @@ -2718,138 +2769,138 @@ msgstr[0] "{count} raw photo" msgstr[1] "{count} raw photos" #. Translators: the Photos page subtitle, such as "1,204 photos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2462 +#: crates/pdfs-gui/src/app/pages/photos.rs:2480 #, rust-format msgid "{count} photo" msgid_plural "{count} photos" msgstr[0] "{count} photo" msgstr[1] "{count} photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:2490 -#: crates/pdfs-gui/src/app/pages/photos.rs:2516 +#: crates/pdfs-gui/src/app/pages/photos.rs:2508 +#: crates/pdfs-gui/src/app/pages/photos.rs:2534 msgid "Unknown date" msgstr "Unknown date" #. Translators: strftime format for a day heading in the photo timeline, such as "3 June 2026". -#: crates/pdfs-gui/src/app/pages/photos.rs:2513 +#: crates/pdfs-gui/src/app/pages/photos.rs:2531 msgid "%-d %B %Y" msgstr "%-d %B %Y" #. Translators: strftime format for a photo's capture date and time, such as "2026-06-03 14:05:09". -#: crates/pdfs-gui/src/app/pages/photos.rs:2534 +#: crates/pdfs-gui/src/app/pages/photos.rs:2552 msgid "%Y-%m-%d %H:%M:%S" msgstr "%Y-%m-%d %H:%M:%S" -#: crates/pdfs-gui/src/app/pages/photos.rs:2538 -#: crates/pdfs-gui/src/app/pages/photos.rs:2540 +#: crates/pdfs-gui/src/app/pages/photos.rs:2556 +#: crates/pdfs-gui/src/app/pages/photos.rs:2558 msgid "Unknown Date" msgstr "Unknown Date" #. Translators: strftime format for the day a photo was taken, shown on its tile when the timeline is grouped by month or year, such as "3 Jun". -#: crates/pdfs-gui/src/app/pages/photos.rs:2558 +#: crates/pdfs-gui/src/app/pages/photos.rs:2576 msgid "%-d %b" msgstr "%-d %b" -#: crates/pdfs-gui/src/app/pages/photos.rs:2580 +#: crates/pdfs-gui/src/app/pages/photos.rs:2598 msgid "Every photo is in an album" msgstr "Every photo is in an album" -#: crates/pdfs-gui/src/app/pages/photos.rs:2581 +#: crates/pdfs-gui/src/app/pages/photos.rs:2599 msgid "Turn off the album filter to see everything." msgstr "Turn off the album filter to see everything." -#: crates/pdfs-gui/src/app/pages/photos.rs:2586 +#: crates/pdfs-gui/src/app/pages/photos.rs:2604 msgid "No photos yet" msgstr "No photos yet" -#: crates/pdfs-gui/src/app/pages/photos.rs:2587 +#: crates/pdfs-gui/src/app/pages/photos.rs:2605 msgid "Photos you upload to Proton Drive appear here." msgstr "Photos you upload to Proton Drive appear here." -#: crates/pdfs-gui/src/app/pages/photos.rs:2590 +#: crates/pdfs-gui/src/app/pages/photos.rs:2608 msgid "No favorites yet" msgstr "No favourites yet" -#: crates/pdfs-gui/src/app/pages/photos.rs:2591 +#: crates/pdfs-gui/src/app/pages/photos.rs:2609 msgid "Star a photo in the viewer or from its menu to find it here." msgstr "Star a photo in the viewer or from its menu to find it here." #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2596 +#: crates/pdfs-gui/src/app/pages/photos.rs:2614 #, rust-format msgid "No favorite videos in {month}" msgstr "No favourite videos in {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2597 +#: crates/pdfs-gui/src/app/pages/photos.rs:2615 msgid "No favorite videos" msgstr "No favourite videos" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2599 +#: crates/pdfs-gui/src/app/pages/photos.rs:2617 #, rust-format msgid "No favorite raw files in {month}" msgstr "No favourite raw files in {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2600 +#: crates/pdfs-gui/src/app/pages/photos.rs:2618 msgid "No favorite raw files" msgstr "No favourite raw files" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2602 +#: crates/pdfs-gui/src/app/pages/photos.rs:2620 #, rust-format msgid "No favorite photos in {month}" msgstr "No favourite photos in {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2603 +#: crates/pdfs-gui/src/app/pages/photos.rs:2621 msgid "No favorite photos" msgstr "No favourite photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:2605 +#: crates/pdfs-gui/src/app/pages/photos.rs:2623 msgid "Turn off the favorites filter to see everything." msgstr "Turn off the favourites filter to see everything." #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2610 +#: crates/pdfs-gui/src/app/pages/photos.rs:2628 #, rust-format msgid "No videos in {month}" msgstr "No videos in {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2611 +#: crates/pdfs-gui/src/app/pages/photos.rs:2629 msgid "No videos" msgstr "No videos" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2613 +#: crates/pdfs-gui/src/app/pages/photos.rs:2631 #, rust-format msgid "No raw files in {month}" msgstr "No raw files in {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2614 +#: crates/pdfs-gui/src/app/pages/photos.rs:2632 msgid "No raw files" msgstr "No raw files" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2616 +#: crates/pdfs-gui/src/app/pages/photos.rs:2634 #, rust-format msgid "No photos in {month}" msgstr "No photos in {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2617 +#: crates/pdfs-gui/src/app/pages/photos.rs:2635 msgid "No photos" msgstr "No photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:2619 +#: crates/pdfs-gui/src/app/pages/photos.rs:2637 msgid "Try another filter or month." msgstr "Try another filter or month." -#: crates/pdfs-gui/src/app/pages/photos.rs:2735 +#: crates/pdfs-gui/src/app/pages/photos.rs:2753 #, rust-format msgid "{n} year ago" msgid_plural "{n} years ago" msgstr[0] "{n} year ago" msgstr[1] "{n} years ago" -#: crates/pdfs-gui/src/app/pages/photos.rs:2760 +#: crates/pdfs-gui/src/app/pages/photos.rs:2778 #, rust-format msgid "{date}, {n} photo" msgid_plural "{date}, {n} photos" @@ -2857,55 +2908,55 @@ msgstr[0] "{date}, {n} photo" msgstr[1] "{date}, {n} photos" #. Translators: a check item in a photo's menu, on while the photo is a favorite. -#: crates/pdfs-gui/src/app/pages/photos.rs:2989 +#: crates/pdfs-gui/src/app/pages/photos.rs:3007 msgctxt "state" msgid "Favorite" msgstr "Favourite" -#: crates/pdfs-gui/src/app/pages/photos.rs:2994 +#: crates/pdfs-gui/src/app/pages/photos.rs:3012 msgctxt "verb" msgid "Select" msgstr "Select" -#: crates/pdfs-gui/src/app/pages/photos.rs:3006 +#: crates/pdfs-gui/src/app/pages/photos.rs:3024 msgid "Remove from Album" msgstr "Remove from Album" -#: crates/pdfs-gui/src/app/pages/photos.rs:3012 +#: crates/pdfs-gui/src/app/pages/photos.rs:3030 msgid "Move to Trash…" msgstr "Move to Trash…" -#: crates/pdfs-gui/src/app/pages/photos.rs:3036 +#: crates/pdfs-gui/src/app/pages/photos.rs:3054 msgid "Added to Favorites" msgstr "Added to Favourites" -#: crates/pdfs-gui/src/app/pages/photos.rs:3038 +#: crates/pdfs-gui/src/app/pages/photos.rs:3056 msgid "Removed from Favorites" msgstr "Removed from Favourites" -#: crates/pdfs-gui/src/app/pages/photos.rs:3067 +#: crates/pdfs-gui/src/app/pages/photos.rs:3085 msgid "Loading photos…" msgstr "Loading photos…" -#: crates/pdfs-gui/src/app/pages/photos.rs:3068 +#: crates/pdfs-gui/src/app/pages/photos.rs:3086 msgid "Reading your Proton Drive timeline." msgstr "Reading your Proton Drive timeline." -#: crates/pdfs-gui/src/app/pages/photos.rs:3161 +#: crates/pdfs-gui/src/app/pages/photos.rs:3179 msgid "Empty album" msgstr "Empty album" -#: crates/pdfs-gui/src/app/pages/photos.rs:3162 +#: crates/pdfs-gui/src/app/pages/photos.rs:3180 msgid "This album has no photos in it." msgstr "This album has no photos in it." -#: crates/pdfs-gui/src/app/pages/photos.rs:3204 #: crates/pdfs-gui/src/app/pages/photos.rs:3222 +#: crates/pdfs-gui/src/app/pages/photos.rs:3240 msgid "Couldn't load more photos" msgstr "Couldn't load more photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:3209 -#: crates/pdfs-gui/src/app/pages/photos.rs:3216 +#: crates/pdfs-gui/src/app/pages/photos.rs:3227 +#: crates/pdfs-gui/src/app/pages/photos.rs:3234 msgid "Couldn't load photos" msgstr "Couldn't load photos" diff --git a/po/es.po b/po/es.po index fa729fc..97bb065 100644 --- a/po/es.po +++ b/po/es.po @@ -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-09-28 00:44+0200\n" +"POT-Creation-Date: 2026-09-28 00:50+0200\n" "PO-Revision-Date: 2026-09-23 12:00+0200\n" "Last-Translator: Proton Drive for Linux contributors\n" "Language-Team: Spanish\n" @@ -15,99 +15,99 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: crates/pdfs-gui/src/app/main.rs:835 +#: crates/pdfs-gui/src/app/main.rs:840 #: crates/pdfs-gui/src/app/pages/locations.rs:1133 #: crates/pdfs-gui/src/prompt.rs:169 msgid "My files" msgstr "Mis archivos" -#: crates/pdfs-gui/src/app/main.rs:838 crates/pdfs-gui/src/app/main.rs:1451 +#: crates/pdfs-gui/src/app/main.rs:843 crates/pdfs-gui/src/app/main.rs:1456 #: crates/pdfs-gui/src/app/pages/albums.rs:633 -#: crates/pdfs-gui/src/app/pages/photos.rs:746 +#: crates/pdfs-gui/src/app/pages/photos.rs:756 msgid "Photos" msgstr "Fotos" -#: crates/pdfs-gui/src/app/main.rs:843 +#: crates/pdfs-gui/src/app/main.rs:848 msgid "Shared with me" msgstr "Compartido conmigo" -#: crates/pdfs-gui/src/app/main.rs:848 +#: crates/pdfs-gui/src/app/main.rs:853 msgid "Shared by me" msgstr "Compartido por mí" -#: crates/pdfs-gui/src/app/main.rs:851 +#: crates/pdfs-gui/src/app/main.rs:856 #: crates/pdfs-gui/src/app/pages/devices.rs:109 msgid "Computers" msgstr "Equipos" -#: crates/pdfs-gui/src/app/main.rs:852 +#: crates/pdfs-gui/src/app/main.rs:857 #: crates/pdfs-gui/src/app/pages/trash.rs:106 msgid "Trash" msgstr "Papelera" -#: crates/pdfs-gui/src/app/main.rs:856 +#: crates/pdfs-gui/src/app/main.rs:861 msgid "Sync" msgstr "Sincronización" -#: crates/pdfs-gui/src/app/main.rs:861 +#: crates/pdfs-gui/src/app/main.rs:866 #: crates/pdfs-gui/src/app/pages/activity.rs:153 msgid "Activity" msgstr "Actividad" -#: crates/pdfs-gui/src/app/main.rs:1007 +#: crates/pdfs-gui/src/app/main.rs:1012 msgid "Refresh (F5)" msgstr "Actualizar (F5)" #. Translators: a failed action's toast. {what} says what failed, such as #. "Couldn't rename"; {detail} is the reason, usually untranslated text #. from the mount service. -#: crates/pdfs-gui/src/app/main.rs:1181 +#: crates/pdfs-gui/src/app/main.rs:1186 #, rust-format msgid "{what}: {detail}" msgstr "{what}: {detail}" -#: crates/pdfs-gui/src/app/main.rs:1200 +#: crates/pdfs-gui/src/app/main.rs:1205 msgid "You're offline" msgstr "Está sin conexión" -#: crates/pdfs-gui/src/app/main.rs:1201 +#: crates/pdfs-gui/src/app/main.rs:1206 msgid "That's not there any more" msgstr "Eso ya no existe" -#: crates/pdfs-gui/src/app/main.rs:1202 +#: crates/pdfs-gui/src/app/main.rs:1207 msgid "You don't have access to that" msgstr "No tiene acceso a eso" -#: crates/pdfs-gui/src/app/main.rs:1203 +#: crates/pdfs-gui/src/app/main.rs:1208 msgid "Something changed this first" msgstr "Algo lo cambió antes" -#: crates/pdfs-gui/src/app/main.rs:1204 +#: crates/pdfs-gui/src/app/main.rs:1209 msgid "Your Proton Drive is full" msgstr "Su Proton Drive está lleno" -#: crates/pdfs-gui/src/app/main.rs:1245 crates/pdfs-gui/src/app/main.rs:1433 +#: crates/pdfs-gui/src/app/main.rs:1250 crates/pdfs-gui/src/app/main.rs:1438 #: crates/pdfs-gui/src/app/pages/status.rs:353 msgid "Preferences" msgstr "Preferencias" -#: crates/pdfs-gui/src/app/main.rs:1246 crates/pdfs-gui/src/app/main.rs:1490 +#: crates/pdfs-gui/src/app/main.rs:1251 crates/pdfs-gui/src/app/main.rs:1495 msgid "Keyboard Shortcuts" msgstr "Atajos del teclado" -#: crates/pdfs-gui/src/app/main.rs:1248 +#: crates/pdfs-gui/src/app/main.rs:1253 msgid "About Proton Drive for Linux" msgstr "Acerca de Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1253 +#: crates/pdfs-gui/src/app/main.rs:1258 msgid "Main menu" msgstr "Menú principal" -#: crates/pdfs-gui/src/app/main.rs:1299 +#: crates/pdfs-gui/src/app/main.rs:1304 msgid "Proton Drive for Linux" msgstr "Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1307 +#: crates/pdfs-gui/src/app/main.rs:1312 msgid "" "Files-on-demand Proton Drive for the Linux desktop.\n" "\n" @@ -119,23 +119,23 @@ msgstr "" "Cliente no oficial: no está afiliado a Proton AG, ni respaldado ni mantenido " "por esta." -#: crates/pdfs-gui/src/app/main.rs:1312 +#: crates/pdfs-gui/src/app/main.rs:1317 msgid "Source Code" msgstr "Código fuente" -#: crates/pdfs-gui/src/app/main.rs:1316 +#: crates/pdfs-gui/src/app/main.rs:1321 msgid "Proton Terms of Service" msgstr "Condiciones del servicio de Proton" -#: crates/pdfs-gui/src/app/main.rs:1320 +#: crates/pdfs-gui/src/app/main.rs:1325 msgid "Proton Privacy Policy" msgstr "Política de privacidad de Proton" -#: crates/pdfs-gui/src/app/main.rs:1325 +#: crates/pdfs-gui/src/app/main.rs:1330 msgid "Disclaimer" msgstr "Aviso legal" -#: crates/pdfs-gui/src/app/main.rs:1329 +#: crates/pdfs-gui/src/app/main.rs:1334 msgid "" "This is an unofficial, community-built client. It is not affiliated with, " "endorsed by, or supported by Proton AG.\n" @@ -160,15 +160,15 @@ msgstr "" #. Translators: replace with your name(s) and email address(es), one #. per line, to be credited in the About dialog. -#: crates/pdfs-gui/src/app/main.rs:1340 +#: crates/pdfs-gui/src/app/main.rs:1345 msgid "translator-credits" msgstr "Colaboradores de Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1371 +#: crates/pdfs-gui/src/app/main.rs:1376 msgid "Stop Proton Drive?" msgstr "¿Detener Proton Drive?" -#: crates/pdfs-gui/src/app/main.rs:1372 +#: crates/pdfs-gui/src/app/main.rs:1377 msgid "" "The drive unmounts and nothing syncs until you connect again. Proton Drive " "starts again at your next login." @@ -176,7 +176,7 @@ msgstr "" "La unidad se desmonta y no se sincroniza nada hasta que vuelva a conectarse. " "Proton Drive se iniciará de nuevo en su próximo inicio de sesión." -#: crates/pdfs-gui/src/app/main.rs:1374 crates/pdfs-gui/src/app/main.rs:1647 +#: crates/pdfs-gui/src/app/main.rs:1379 crates/pdfs-gui/src/app/main.rs:1652 #: crates/pdfs-gui/src/app/pages/albums.rs:242 #: crates/pdfs-gui/src/app/pages/albums.rs:423 #: crates/pdfs-gui/src/app/pages/browser.rs:2273 @@ -190,7 +190,7 @@ msgstr "" #: crates/pdfs-gui/src/app/pages/locations.rs:670 #: crates/pdfs-gui/src/app/pages/locations.rs:1050 #: crates/pdfs-gui/src/app/pages/login.rs:312 -#: crates/pdfs-gui/src/app/pages/photos.rs:1842 +#: crates/pdfs-gui/src/app/pages/photos.rs:1854 #: crates/pdfs-gui/src/app/pages/shared.rs:717 #: crates/pdfs-gui/src/app/pages/shared.rs:748 #: crates/pdfs-gui/src/app/pages/shared.rs:789 @@ -204,67 +204,67 @@ msgstr "" msgid "Cancel" msgstr "Cancelar" -#: crates/pdfs-gui/src/app/main.rs:1375 +#: crates/pdfs-gui/src/app/main.rs:1380 msgctxt "verb" msgid "Stop" msgstr "Detener" -#: crates/pdfs-gui/src/app/main.rs:1392 +#: crates/pdfs-gui/src/app/main.rs:1397 msgid "Couldn't stop Proton Drive" msgstr "No se pudo detener Proton Drive" -#: crates/pdfs-gui/src/app/main.rs:1393 +#: crates/pdfs-gui/src/app/main.rs:1398 msgid "The mount service did not stop." msgstr "El servicio de montaje no se detuvo." -#: crates/pdfs-gui/src/app/main.rs:1429 +#: crates/pdfs-gui/src/app/main.rs:1434 #: crates/pdfs-gui/src/app/pages/status.rs:226 msgid "General" msgstr "General" -#: crates/pdfs-gui/src/app/main.rs:1431 +#: crates/pdfs-gui/src/app/main.rs:1436 #: crates/pdfs-gui/src/app/pages/browser.rs:270 msgid "Search Drive" msgstr "Buscar en Drive" -#: crates/pdfs-gui/src/app/main.rs:1432 +#: crates/pdfs-gui/src/app/main.rs:1437 #: crates/pdfs-gui/src/app/pages/browser.rs:1363 msgid "Refresh" msgstr "Actualizar" -#: crates/pdfs-gui/src/app/main.rs:1434 +#: crates/pdfs-gui/src/app/main.rs:1439 msgid "Keyboard shortcuts" msgstr "Atajos del teclado" -#: crates/pdfs-gui/src/app/main.rs:1438 +#: crates/pdfs-gui/src/app/main.rs:1443 msgid "Files" msgstr "Archivos" -#: crates/pdfs-gui/src/app/main.rs:1440 +#: crates/pdfs-gui/src/app/main.rs:1445 #: crates/pdfs-gui/src/app/pages/browser.rs:319 #: crates/pdfs-gui/src/app/pages/browser.rs:2586 msgid "New folder" msgstr "Carpeta nueva" -#: crates/pdfs-gui/src/app/main.rs:1441 +#: crates/pdfs-gui/src/app/main.rs:1446 #: crates/pdfs-gui/src/app/pages/browser.rs:315 msgid "Upload files" msgstr "Subir archivos" -#: crates/pdfs-gui/src/app/main.rs:1442 +#: crates/pdfs-gui/src/app/main.rs:1447 msgid "Back / forward" msgstr "Atrás / adelante" -#: crates/pdfs-gui/src/app/main.rs:1443 +#: crates/pdfs-gui/src/app/main.rs:1448 #: crates/pdfs-gui/src/app/pages/browser.rs:2320 msgid "Parent folder" msgstr "Carpeta superior" -#: crates/pdfs-gui/src/app/main.rs:1444 +#: crates/pdfs-gui/src/app/main.rs:1449 msgid "Grid / list" msgstr "Cuadrícula / lista" -#: crates/pdfs-gui/src/app/main.rs:1445 +#: crates/pdfs-gui/src/app/main.rs:1450 #: crates/pdfs-gui/src/app/pages/albums.rs:297 #: crates/pdfs-gui/src/app/pages/browser.rs:2252 #: crates/pdfs-gui/src/app/pages/browser.rs:2274 @@ -273,62 +273,63 @@ msgstr "Cuadrícula / lista" msgid "Rename" msgstr "Renombrar" -#: crates/pdfs-gui/src/app/main.rs:1446 crates/pdfs-gui/src/app/main.rs:1466 +#: crates/pdfs-gui/src/app/main.rs:1451 crates/pdfs-gui/src/app/main.rs:1471 #: crates/pdfs-gui/src/app/pages/browser.rs:414 #: crates/pdfs-gui/src/app/pages/browser.rs:1306 #: crates/pdfs-gui/src/app/pages/browser.rs:1338 -#: crates/pdfs-gui/src/app/pages/photos.rs:540 -#: crates/pdfs-gui/src/app/pages/photos.rs:1839 -#: crates/pdfs-gui/src/app/pages/photos.rs:1843 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:24 +#: crates/pdfs-gui/src/app/pages/photos.rs:550 +#: crates/pdfs-gui/src/app/pages/photos.rs:1851 +#: crates/pdfs-gui/src/app/pages/photos.rs:1855 #: crates/pdfs-gui/src/app/widgets/details.rs:162 msgid "Move to Trash" msgstr "Mover a la papelera" -#: crates/pdfs-gui/src/app/main.rs:1447 +#: crates/pdfs-gui/src/app/main.rs:1452 msgid "Clear the selection" msgstr "Anular la selección" -#: crates/pdfs-gui/src/app/main.rs:1453 +#: crates/pdfs-gui/src/app/main.rs:1458 msgid "Larger thumbnails" msgstr "Miniaturas más grandes" -#: crates/pdfs-gui/src/app/main.rs:1454 +#: crates/pdfs-gui/src/app/main.rs:1459 msgid "Smaller thumbnails" msgstr "Miniaturas más pequeñas" -#: crates/pdfs-gui/src/app/main.rs:1455 +#: crates/pdfs-gui/src/app/main.rs:1460 msgid "Reset thumbnail size" msgstr "Restablecer el tamaño de las miniaturas" -#: crates/pdfs-gui/src/app/main.rs:1456 +#: crates/pdfs-gui/src/app/main.rs:1461 msgid "Select all" msgstr "Seleccionar todo" -#: crates/pdfs-gui/src/app/main.rs:1460 +#: crates/pdfs-gui/src/app/main.rs:1465 msgid "Photo Viewer" msgstr "Visor de fotos" -#: crates/pdfs-gui/src/app/main.rs:1462 +#: crates/pdfs-gui/src/app/main.rs:1467 msgid "Previous / next photo" msgstr "Foto anterior / siguiente" -#: crates/pdfs-gui/src/app/main.rs:1463 +#: crates/pdfs-gui/src/app/main.rs:1468 msgid "First / last photo" msgstr "Primera / última foto" -#: crates/pdfs-gui/src/app/main.rs:1464 +#: crates/pdfs-gui/src/app/main.rs:1469 msgid "Show details" msgstr "Mostrar detalles" -#: crates/pdfs-gui/src/app/main.rs:1465 +#: crates/pdfs-gui/src/app/main.rs:1470 msgid "Fullscreen" msgstr "Pantalla completa" -#: crates/pdfs-gui/src/app/main.rs:1467 +#: crates/pdfs-gui/src/app/main.rs:1472 msgid "Close" msgstr "Cerrar" -#: crates/pdfs-gui/src/app/main.rs:1570 +#: crates/pdfs-gui/src/app/main.rs:1575 msgid "Select a single item to rename it" msgstr "Seleccione un único elemento para renombrarlo" @@ -365,7 +366,7 @@ msgstr "Requiere atención" #: crates/pdfs-gui/src/app/pages/browser.rs:306 #: crates/pdfs-gui/src/app/pages/devices.rs:84 #: crates/pdfs-gui/src/app/pages/locations.rs:134 -#: crates/pdfs-gui/src/app/pages/photos.rs:417 +#: crates/pdfs-gui/src/app/pages/photos.rs:418 #: crates/pdfs-gui/src/app/pages/shared.rs:83 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:38 #: crates/pdfs-gui/src/app/pages/trash.rs:57 crates/pdfs-gui/src/prompt.rs:593 @@ -401,7 +402,7 @@ msgstr "No se pudo leer la actividad" #: crates/pdfs-gui/src/app/pages/browser.rs:2880 #: crates/pdfs-gui/src/app/pages/browser.rs:3066 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:310 -#: crates/pdfs-gui/src/app/pages/photos.rs:3217 +#: crates/pdfs-gui/src/app/pages/photos.rs:3235 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:139 #: crates/pdfs-gui/src/app/pages/trash.rs:320 msgid "Unexpected reply from the mount service." @@ -413,7 +414,7 @@ msgstr "Respuesta inesperada del servicio de montaje." #: crates/pdfs-gui/src/app/pages/browser.rs:2914 #: crates/pdfs-gui/src/app/pages/devices.rs:209 #: crates/pdfs-gui/src/app/pages/locations.rs:844 -#: crates/pdfs-gui/src/app/pages/photos.rs:3251 +#: crates/pdfs-gui/src/app/pages/photos.rs:3269 #: crates/pdfs-gui/src/app/pages/shared.rs:523 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:156 #: crates/pdfs-gui/src/app/pages/status.rs:1301 @@ -425,7 +426,7 @@ msgstr "Sin conexión" #: crates/pdfs-gui/src/app/pages/browser.rs:2915 #: crates/pdfs-gui/src/app/pages/devices.rs:210 #: crates/pdfs-gui/src/app/pages/locations.rs:845 -#: crates/pdfs-gui/src/app/pages/photos.rs:3252 +#: crates/pdfs-gui/src/app/pages/photos.rs:3270 #: crates/pdfs-gui/src/app/pages/shared.rs:524 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:157 #: crates/pdfs-gui/src/app/pages/trash.rs:336 @@ -437,7 +438,7 @@ msgstr "El servicio de montaje de Proton Drive no está en ejecución." #: crates/pdfs-gui/src/app/pages/browser.rs:2924 #: crates/pdfs-gui/src/app/pages/devices.rs:218 #: crates/pdfs-gui/src/app/pages/locations.rs:853 -#: crates/pdfs-gui/src/app/pages/photos.rs:3260 +#: crates/pdfs-gui/src/app/pages/photos.rs:3278 #: crates/pdfs-gui/src/app/pages/shared.rs:532 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:165 #: crates/pdfs-gui/src/app/pages/status.rs:305 @@ -450,7 +451,7 @@ msgstr "Conectando…" #: crates/pdfs-gui/src/app/pages/browser.rs:2925 #: crates/pdfs-gui/src/app/pages/devices.rs:219 #: crates/pdfs-gui/src/app/pages/locations.rs:854 -#: crates/pdfs-gui/src/app/pages/photos.rs:3261 +#: crates/pdfs-gui/src/app/pages/photos.rs:3279 #: crates/pdfs-gui/src/app/pages/shared.rs:533 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:166 #: crates/pdfs-gui/src/app/pages/trash.rs:345 @@ -458,12 +459,12 @@ msgid "Waiting for the Proton Drive mount service to come up." msgstr "Esperando a que se inicie el servicio de montaje de Proton Drive." #: crates/pdfs-gui/src/app/pages/activity.rs:419 -#: crates/pdfs-gui/src/app/pages/photos.rs:2504 +#: crates/pdfs-gui/src/app/pages/photos.rs:2522 msgid "Today" msgstr "Hoy" #: crates/pdfs-gui/src/app/pages/activity.rs:422 -#: crates/pdfs-gui/src/app/pages/photos.rs:2509 +#: crates/pdfs-gui/src/app/pages/photos.rs:2527 msgid "Yesterday" msgstr "Ayer" @@ -521,7 +522,7 @@ msgstr "Resuelto" #. Translators: strftime format for the time of day in the activity feed, such as "14:05". #. Translators: strftime format for the time a photo was taken, shown on its tile, such as "14:05". #: crates/pdfs-gui/src/app/pages/activity.rs:580 -#: crates/pdfs-gui/src/app/pages/photos.rs:2548 +#: crates/pdfs-gui/src/app/pages/photos.rs:2566 msgid "%H:%M" msgstr "%H:%M" @@ -627,12 +628,12 @@ msgid "Reading your Proton Drive albums." msgstr "Leyendo sus álbumes de Proton Drive." #: crates/pdfs-gui/src/app/pages/albums.rs:59 -#: crates/pdfs-gui/src/app/pages/photos.rs:3130 +#: crates/pdfs-gui/src/app/pages/photos.rs:3148 msgid "No photo library" msgstr "No hay fototeca" #: crates/pdfs-gui/src/app/pages/albums.rs:60 -#: crates/pdfs-gui/src/app/pages/photos.rs:3131 +#: crates/pdfs-gui/src/app/pages/photos.rs:3149 msgid "This Proton account doesn't have Photos enabled." msgstr "Esta cuenta de Proton no tiene Fotos activado." @@ -665,7 +666,7 @@ msgstr[1] "{n} álbumes" #: crates/pdfs-gui/src/app/pages/albums.rs:205 #: crates/pdfs-gui/src/app/pages/browser.rs:1246 -#: crates/pdfs-gui/src/app/pages/photos.rs:2984 +#: crates/pdfs-gui/src/app/pages/photos.rs:3002 #: crates/pdfs-gui/src/app/pages/shared.rs:384 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:244 #: crates/pdfs-gui/src/app/widgets/details.rs:155 @@ -725,16 +726,17 @@ msgstr "No se pudo crear el álbum" #: crates/pdfs-gui/src/app/pages/devices.rs:532 #: crates/pdfs-gui/src/app/pages/devices.rs:682 #: crates/pdfs-gui/src/app/pages/devices.rs:912 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:63 #: crates/pdfs-gui/src/app/pages/locations.rs:342 #: crates/pdfs-gui/src/app/pages/locations.rs:516 #: crates/pdfs-gui/src/app/pages/locations.rs:739 #: crates/pdfs-gui/src/app/pages/locations.rs:1090 #: crates/pdfs-gui/src/app/pages/locations.rs:1109 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1424 -#: crates/pdfs-gui/src/app/pages/photos.rs:1272 -#: crates/pdfs-gui/src/app/pages/photos.rs:1921 -#: crates/pdfs-gui/src/app/pages/photos.rs:3048 -#: crates/pdfs-gui/src/app/pages/photos.rs:3223 +#: crates/pdfs-gui/src/app/pages/photos.rs:1284 +#: crates/pdfs-gui/src/app/pages/photos.rs:1939 +#: crates/pdfs-gui/src/app/pages/photos.rs:3066 +#: crates/pdfs-gui/src/app/pages/photos.rs:3241 #: crates/pdfs-gui/src/app/pages/shared.rs:510 #: crates/pdfs-gui/src/app/pages/shared.rs:838 #: crates/pdfs-gui/src/app/pages/status.rs:672 @@ -798,7 +800,7 @@ msgstr[0] "Elija un álbum para {n} foto." msgstr[1] "Elija un álbum para {n} fotos." #: crates/pdfs-gui/src/app/pages/albums.rs:424 -#: crates/pdfs-gui/src/app/pages/photos.rs:712 +#: crates/pdfs-gui/src/app/pages/photos.rs:722 msgid "New Album…" msgstr "Álbum nuevo…" @@ -989,7 +991,7 @@ msgstr "Mis archivos" #. Translators: {n} is how many items are selected: files and folders in My Files, photos here. #: crates/pdfs-gui/src/app/pages/browser.rs:638 #: crates/pdfs-gui/src/app/pages/browser.rs:1331 -#: crates/pdfs-gui/src/app/pages/photos.rs:1775 +#: crates/pdfs-gui/src/app/pages/photos.rs:1787 #, rust-format msgid "{n} selected" msgid_plural "{n} selected" @@ -998,8 +1000,8 @@ msgstr[1] "{n} seleccionados" #: crates/pdfs-gui/src/app/pages/browser.rs:674 #: crates/pdfs-gui/src/app/pages/browser.rs:709 -#: crates/pdfs-gui/src/app/pages/photos.rs:1914 -#: crates/pdfs-gui/src/app/pages/photos.rs:1920 +#: crates/pdfs-gui/src/app/pages/photos.rs:1932 +#: crates/pdfs-gui/src/app/pages/photos.rs:1938 msgid "Couldn't move to Trash" msgstr "No se pudo mover a la papelera" @@ -1034,7 +1036,7 @@ msgstr[0] "Se movió {n} elemento a la papelera" msgstr[1] "Se movieron {n} elementos a la papelera" #: crates/pdfs-gui/src/app/pages/browser.rs:727 -#: crates/pdfs-gui/src/app/pages/photos.rs:1907 +#: crates/pdfs-gui/src/app/pages/photos.rs:1925 msgid "Undo" msgstr "Deshacer" @@ -1091,7 +1093,7 @@ msgid "Open With…" msgstr "Abrir con…" #: crates/pdfs-gui/src/app/pages/browser.rs:1263 -#: crates/pdfs-gui/src/app/pages/photos.rs:2982 +#: crates/pdfs-gui/src/app/pages/photos.rs:3000 msgctxt "verb" msgid "Play" msgstr "Reproducir" @@ -1387,7 +1389,7 @@ msgstr[0] "Subiendo {n} elemento…" msgstr[1] "Subiendo {n} elementos…" #: crates/pdfs-gui/src/app/pages/browser.rs:2696 -#: crates/pdfs-gui/src/app/pages/photos.rs:730 +#: crates/pdfs-gui/src/app/pages/photos.rs:740 msgctxt "verb" msgid "View" msgstr "Ver" @@ -1857,6 +1859,51 @@ msgstr "Identidad adoptada" msgid "Couldn't adopt that computer" msgstr "No se pudo adoptar ese equipo" +#: crates/pdfs-gui/src/app/pages/duplicates.rs:15 +msgid "Looking for duplicates…" +msgstr "Buscando duplicados…" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:42 +msgid "Duplicates" +msgstr "Duplicados" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:56 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:62 +msgid "Couldn't look for duplicates" +msgstr "No se pudieron buscar duplicados" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:69 +msgid "No duplicates" +msgstr "No hay duplicados" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:71 +msgid "Every photo in your library is stored once." +msgstr "Cada foto de su biblioteca está guardada una sola vez." + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:88 +msgid "" +"These photos are stored more than once. The copies you don't keep move to " +"Trash, where you can restore them." +msgstr "Estas fotos están guardadas más de una vez. Las copias que no conserve se moverán a la papelera, donde podrá restaurarlas." + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:111 +#, rust-format +msgid "{date}, {n} copy" +msgid_plural "{date}, {n} copies" +msgstr[0] "{date}, {n} copia" +msgstr[1] "{date}, {n} copias" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:143 +#, rust-format +msgid "Move {n} copy to Trash" +msgid_plural "Move {n} copies to Trash" +msgstr[0] "Mover {n} copia a la papelera" +msgstr[1] "Mover {n} copias a la papelera" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:235 +msgid "Keep" +msgstr "Conservar" + #: crates/pdfs-gui/src/app/pages/locations.rs:89 msgid "Add Folder" msgstr "Añadir carpeta" @@ -2557,158 +2604,162 @@ msgid "Hide details" msgstr "Ocultar detalles" #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1429 -#: crates/pdfs-gui/src/app/pages/photos.rs:3043 -#: crates/pdfs-gui/src/app/pages/photos.rs:3047 +#: crates/pdfs-gui/src/app/pages/photos.rs:3061 +#: crates/pdfs-gui/src/app/pages/photos.rs:3065 msgid "Couldn't change the favorite" msgstr "No se pudo cambiar el favorito" -#: crates/pdfs-gui/src/app/pages/photos.rs:427 -#: crates/pdfs-gui/src/app/pages/photos.rs:507 +#: crates/pdfs-gui/src/app/pages/photos.rs:428 +#: crates/pdfs-gui/src/app/pages/photos.rs:508 msgid "Upload photos" msgstr "Subir fotos" -#: crates/pdfs-gui/src/app/pages/photos.rs:432 +#: crates/pdfs-gui/src/app/pages/photos.rs:433 #: crates/pdfs-gui/src/app/pages/takeout.rs:287 msgid "Import from Google Photos" msgstr "Importar de Google Photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:472 -#: crates/pdfs-gui/src/app/pages/photos.rs:612 +#: crates/pdfs-gui/src/app/pages/photos.rs:473 +#: crates/pdfs-gui/src/app/pages/photos.rs:622 msgid "Jump to a month" msgstr "Saltar a un mes" -#: crates/pdfs-gui/src/app/pages/photos.rs:491 +#: crates/pdfs-gui/src/app/pages/photos.rs:492 msgid "Back to albums" msgstr "Volver a los álbumes" -#: crates/pdfs-gui/src/app/pages/photos.rs:503 +#: crates/pdfs-gui/src/app/pages/photos.rs:504 msgctxt "verb" msgid "Upload" msgstr "Subir" -#: crates/pdfs-gui/src/app/pages/photos.rs:516 +#: crates/pdfs-gui/src/app/pages/photos.rs:517 msgid "Import a Google Photos Takeout export" msgstr "Importar una exportación de Google Takeout de Google Photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:526 -#: crates/pdfs-gui/src/app/pages/photos.rs:535 -#: crates/pdfs-gui/src/app/pages/photos.rs:1773 +#: crates/pdfs-gui/src/app/pages/photos.rs:527 +msgid "Find duplicates" +msgstr "Buscar duplicados" + +#: crates/pdfs-gui/src/app/pages/photos.rs:536 +#: crates/pdfs-gui/src/app/pages/photos.rs:545 +#: crates/pdfs-gui/src/app/pages/photos.rs:1785 msgid "Select photos" msgstr "Seleccionar fotos" -#: crates/pdfs-gui/src/app/pages/photos.rs:546 -#: crates/pdfs-gui/src/app/pages/photos.rs:3000 +#: crates/pdfs-gui/src/app/pages/photos.rs:556 +#: crates/pdfs-gui/src/app/pages/photos.rs:3018 msgid "Add to Album…" msgstr "Añadir al álbum…" -#: crates/pdfs-gui/src/app/pages/photos.rs:552 +#: crates/pdfs-gui/src/app/pages/photos.rs:562 msgid "Leave selection (Esc)" msgstr "Salir de la selección (Esc)" -#: crates/pdfs-gui/src/app/pages/photos.rs:596 +#: crates/pdfs-gui/src/app/pages/photos.rs:606 msgid "Show only favorites" msgstr "Mostrar solo favoritas" -#: crates/pdfs-gui/src/app/pages/photos.rs:603 +#: crates/pdfs-gui/src/app/pages/photos.rs:613 msgid "Show only photos not in an album" msgstr "Mostrar solo fotos que no están en ningún álbum" -#: crates/pdfs-gui/src/app/pages/photos.rs:610 -#: crates/pdfs-gui/src/app/pages/photos.rs:845 +#: crates/pdfs-gui/src/app/pages/photos.rs:620 +#: crates/pdfs-gui/src/app/pages/photos.rs:857 msgid "All dates" msgstr "Todas las fechas" -#: crates/pdfs-gui/src/app/pages/photos.rs:631 +#: crates/pdfs-gui/src/app/pages/photos.rs:641 msgid "Timeline" msgstr "Cronología" -#: crates/pdfs-gui/src/app/pages/photos.rs:635 +#: crates/pdfs-gui/src/app/pages/photos.rs:645 msgid "Albums" msgstr "Álbumes" -#: crates/pdfs-gui/src/app/pages/photos.rs:654 +#: crates/pdfs-gui/src/app/pages/photos.rs:664 msgid "On this day" msgstr "Tal día como hoy" -#: crates/pdfs-gui/src/app/pages/photos.rs:729 +#: crates/pdfs-gui/src/app/pages/photos.rs:739 msgid "Importing from Google Photos…" msgstr "Importando de Google Photos…" #. Translators: strftime format for a month on its own, such as "June 2024". %OB is the month name in its standalone (nominative) form; use %B if your language has no separate form. -#: crates/pdfs-gui/src/app/pages/photos.rs:821 +#: crates/pdfs-gui/src/app/pages/photos.rs:833 msgid "%OB %Y" msgstr "%OB de %Y" #. Translators: a row of the date jump; {month} is a month such as "June 2024", {count} how many photos it holds. -#: crates/pdfs-gui/src/app/pages/photos.rs:852 +#: crates/pdfs-gui/src/app/pages/photos.rs:864 #, rust-format msgid "{month} ({count})" msgstr "{month} ({count})" #. Translators: a Photos filter tab that shows photos, videos and raw files together. -#: crates/pdfs-gui/src/app/pages/photos.rs:889 +#: crates/pdfs-gui/src/app/pages/photos.rs:901 msgctxt "photo filter" msgid "All" msgstr "Todo" -#: crates/pdfs-gui/src/app/pages/photos.rs:890 +#: crates/pdfs-gui/src/app/pages/photos.rs:902 msgctxt "photo filter" msgid "Photos" msgstr "Fotos" -#: crates/pdfs-gui/src/app/pages/photos.rs:891 +#: crates/pdfs-gui/src/app/pages/photos.rs:903 msgctxt "photo filter" msgid "Videos" msgstr "Vídeos" #. Translators: a Photos filter tab for raw camera files. -#: crates/pdfs-gui/src/app/pages/photos.rs:893 +#: crates/pdfs-gui/src/app/pages/photos.rs:905 msgctxt "photo filter" msgid "Raw" msgstr "RAW" -#: crates/pdfs-gui/src/app/pages/photos.rs:1198 +#: crates/pdfs-gui/src/app/pages/photos.rs:1210 msgid "Select Photo to Upload" msgstr "Seleccionar la foto que subir" -#: crates/pdfs-gui/src/app/pages/photos.rs:1202 +#: crates/pdfs-gui/src/app/pages/photos.rs:1214 #: crates/pdfs-gui/src/prompt.rs:60 msgid "Images" msgstr "Imágenes" -#: crates/pdfs-gui/src/app/pages/photos.rs:1258 +#: crates/pdfs-gui/src/app/pages/photos.rs:1270 msgid "Photo uploaded" msgstr "Foto subida" -#: crates/pdfs-gui/src/app/pages/photos.rs:1263 -#: crates/pdfs-gui/src/app/pages/photos.rs:1271 +#: crates/pdfs-gui/src/app/pages/photos.rs:1275 +#: crates/pdfs-gui/src/app/pages/photos.rs:1283 msgid "Couldn't upload photo" msgstr "No se pudo subir la foto" #. Translators: badge on a photo tile whose shot includes a raw camera file. -#: crates/pdfs-gui/src/app/pages/photos.rs:1432 +#: crates/pdfs-gui/src/app/pages/photos.rs:1444 msgid "RAW" msgstr "RAW" -#: crates/pdfs-gui/src/app/pages/photos.rs:1817 +#: crates/pdfs-gui/src/app/pages/photos.rs:1829 msgid "Move this photo to Trash?" msgstr "¿Mover esta foto a la papelera?" -#: crates/pdfs-gui/src/app/pages/photos.rs:1819 +#: crates/pdfs-gui/src/app/pages/photos.rs:1831 #, rust-format msgid "Move this photo to Trash? It is stored as {n} file." msgid_plural "Move this photo to Trash? It is stored as {n} files." msgstr[0] "¿Mover esta foto a la papelera? Está guardada como {n} archivo." msgstr[1] "¿Mover esta foto a la papelera? Está guardada como {n} archivos." -#: crates/pdfs-gui/src/app/pages/photos.rs:1825 +#: crates/pdfs-gui/src/app/pages/photos.rs:1837 #, rust-format msgid "Move {n} photo to Trash?" msgid_plural "Move {n} photos to Trash?" msgstr[0] "¿Mover {n} foto a la papelera?" msgstr[1] "¿Mover {n} fotos a la papelera?" -#: crates/pdfs-gui/src/app/pages/photos.rs:1832 +#: crates/pdfs-gui/src/app/pages/photos.rs:1844 #, rust-format msgid "Move {n} photo to Trash? They are stored as {files} files." msgid_plural "Move {n} photos to Trash? They are stored as {files} files." @@ -2716,15 +2767,15 @@ msgstr[0] "¿Mover {n} foto a la papelera? Está guardada como {files} archivos. msgstr[1] "" "¿Mover {n} fotos a la papelera? Están guardadas como {files} archivos." -#: crates/pdfs-gui/src/app/pages/photos.rs:1890 +#: crates/pdfs-gui/src/app/pages/photos.rs:1908 msgid "The server refused." msgstr "El servidor lo rechazó." -#: crates/pdfs-gui/src/app/pages/photos.rs:1893 +#: crates/pdfs-gui/src/app/pages/photos.rs:1911 msgid "Some photos couldn't be moved to Trash" msgstr "No se pudieron mover algunas fotos a la papelera" -#: crates/pdfs-gui/src/app/pages/photos.rs:1902 +#: crates/pdfs-gui/src/app/pages/photos.rs:1920 #, rust-format msgid "Moved {n} photo to Trash" msgid_plural "Moved {n} photos to Trash" @@ -2732,7 +2783,7 @@ msgstr[0] "Se movió {n} foto a la papelera" msgstr[1] "Se movieron {n} fotos a la papelera" #. Translators: the Photos page subtitle, such as "12 videos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2458 +#: crates/pdfs-gui/src/app/pages/photos.rs:2476 #, rust-format msgid "{count} video" msgid_plural "{count} videos" @@ -2740,7 +2791,7 @@ msgstr[0] "{count} vídeo" msgstr[1] "{count} vídeos" #. Translators: the Photos page subtitle, such as "12 raw photos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2460 +#: crates/pdfs-gui/src/app/pages/photos.rs:2478 #, rust-format msgid "{count} raw photo" msgid_plural "{count} raw photos" @@ -2748,140 +2799,140 @@ msgstr[0] "{count} foto RAW" msgstr[1] "{count} fotos RAW" #. Translators: the Photos page subtitle, such as "1,204 photos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2462 +#: crates/pdfs-gui/src/app/pages/photos.rs:2480 #, rust-format msgid "{count} photo" msgid_plural "{count} photos" msgstr[0] "{count} foto" msgstr[1] "{count} fotos" -#: crates/pdfs-gui/src/app/pages/photos.rs:2490 -#: crates/pdfs-gui/src/app/pages/photos.rs:2516 +#: crates/pdfs-gui/src/app/pages/photos.rs:2508 +#: crates/pdfs-gui/src/app/pages/photos.rs:2534 msgid "Unknown date" msgstr "Fecha desconocida" #. Translators: strftime format for a day heading in the photo timeline, such as "3 June 2026". -#: crates/pdfs-gui/src/app/pages/photos.rs:2513 +#: crates/pdfs-gui/src/app/pages/photos.rs:2531 msgid "%-d %B %Y" msgstr "%-d de %B de %Y" #. Translators: strftime format for a photo's capture date and time, such as "2026-06-03 14:05:09". -#: crates/pdfs-gui/src/app/pages/photos.rs:2534 +#: crates/pdfs-gui/src/app/pages/photos.rs:2552 msgid "%Y-%m-%d %H:%M:%S" msgstr "%d/%m/%Y %H:%M:%S" -#: crates/pdfs-gui/src/app/pages/photos.rs:2538 -#: crates/pdfs-gui/src/app/pages/photos.rs:2540 +#: crates/pdfs-gui/src/app/pages/photos.rs:2556 +#: crates/pdfs-gui/src/app/pages/photos.rs:2558 msgid "Unknown Date" msgstr "Fecha desconocida" #. Translators: strftime format for the day a photo was taken, shown on its tile when the timeline is grouped by month or year, such as "3 Jun". -#: crates/pdfs-gui/src/app/pages/photos.rs:2558 +#: crates/pdfs-gui/src/app/pages/photos.rs:2576 msgid "%-d %b" msgstr "%-d %b" -#: crates/pdfs-gui/src/app/pages/photos.rs:2580 +#: crates/pdfs-gui/src/app/pages/photos.rs:2598 msgid "Every photo is in an album" msgstr "Todas las fotos están en un álbum" -#: crates/pdfs-gui/src/app/pages/photos.rs:2581 +#: crates/pdfs-gui/src/app/pages/photos.rs:2599 msgid "Turn off the album filter to see everything." msgstr "Desactive el filtro de álbumes para verlo todo." -#: crates/pdfs-gui/src/app/pages/photos.rs:2586 +#: crates/pdfs-gui/src/app/pages/photos.rs:2604 msgid "No photos yet" msgstr "Todavía no hay fotos" -#: crates/pdfs-gui/src/app/pages/photos.rs:2587 +#: crates/pdfs-gui/src/app/pages/photos.rs:2605 msgid "Photos you upload to Proton Drive appear here." msgstr "Las fotos que suba a Proton Drive aparecerán aquí." -#: crates/pdfs-gui/src/app/pages/photos.rs:2590 +#: crates/pdfs-gui/src/app/pages/photos.rs:2608 msgid "No favorites yet" msgstr "Todavía no hay favoritas" -#: crates/pdfs-gui/src/app/pages/photos.rs:2591 +#: crates/pdfs-gui/src/app/pages/photos.rs:2609 msgid "Star a photo in the viewer or from its menu to find it here." msgstr "" "Marque una foto como favorita en el visor o desde su menú para encontrarla " "aquí." #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2596 +#: crates/pdfs-gui/src/app/pages/photos.rs:2614 #, rust-format msgid "No favorite videos in {month}" msgstr "No hay vídeos favoritos en {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2597 +#: crates/pdfs-gui/src/app/pages/photos.rs:2615 msgid "No favorite videos" msgstr "No hay vídeos favoritos" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2599 +#: crates/pdfs-gui/src/app/pages/photos.rs:2617 #, rust-format msgid "No favorite raw files in {month}" msgstr "No hay archivos RAW favoritos en {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2600 +#: crates/pdfs-gui/src/app/pages/photos.rs:2618 msgid "No favorite raw files" msgstr "No hay archivos RAW favoritos" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2602 +#: crates/pdfs-gui/src/app/pages/photos.rs:2620 #, rust-format msgid "No favorite photos in {month}" msgstr "No hay fotos favoritas en {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2603 +#: crates/pdfs-gui/src/app/pages/photos.rs:2621 msgid "No favorite photos" msgstr "No hay fotos favoritas" -#: crates/pdfs-gui/src/app/pages/photos.rs:2605 +#: crates/pdfs-gui/src/app/pages/photos.rs:2623 msgid "Turn off the favorites filter to see everything." msgstr "Desactive el filtro de favoritas para verlo todo." #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2610 +#: crates/pdfs-gui/src/app/pages/photos.rs:2628 #, rust-format msgid "No videos in {month}" msgstr "No hay vídeos en {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2611 +#: crates/pdfs-gui/src/app/pages/photos.rs:2629 msgid "No videos" msgstr "No hay vídeos" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2613 +#: crates/pdfs-gui/src/app/pages/photos.rs:2631 #, rust-format msgid "No raw files in {month}" msgstr "No hay archivos RAW en {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2614 +#: crates/pdfs-gui/src/app/pages/photos.rs:2632 msgid "No raw files" msgstr "No hay archivos RAW" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2616 +#: crates/pdfs-gui/src/app/pages/photos.rs:2634 #, rust-format msgid "No photos in {month}" msgstr "No hay fotos en {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2617 +#: crates/pdfs-gui/src/app/pages/photos.rs:2635 msgid "No photos" msgstr "No hay fotos" -#: crates/pdfs-gui/src/app/pages/photos.rs:2619 +#: crates/pdfs-gui/src/app/pages/photos.rs:2637 msgid "Try another filter or month." msgstr "Pruebe con otro filtro u otro mes." -#: crates/pdfs-gui/src/app/pages/photos.rs:2735 +#: crates/pdfs-gui/src/app/pages/photos.rs:2753 #, rust-format msgid "{n} year ago" msgid_plural "{n} years ago" msgstr[0] "hace {n} año" msgstr[1] "hace {n} años" -#: crates/pdfs-gui/src/app/pages/photos.rs:2760 +#: crates/pdfs-gui/src/app/pages/photos.rs:2778 #, rust-format msgid "{date}, {n} photo" msgid_plural "{date}, {n} photos" @@ -2889,55 +2940,55 @@ msgstr[0] "{date}, {n} foto" msgstr[1] "{date}, {n} fotos" #. Translators: a check item in a photo's menu, on while the photo is a favorite. -#: crates/pdfs-gui/src/app/pages/photos.rs:2989 +#: crates/pdfs-gui/src/app/pages/photos.rs:3007 msgctxt "state" msgid "Favorite" msgstr "Favorita" -#: crates/pdfs-gui/src/app/pages/photos.rs:2994 +#: crates/pdfs-gui/src/app/pages/photos.rs:3012 msgctxt "verb" msgid "Select" msgstr "Seleccionar" -#: crates/pdfs-gui/src/app/pages/photos.rs:3006 +#: crates/pdfs-gui/src/app/pages/photos.rs:3024 msgid "Remove from Album" msgstr "Quitar del álbum" -#: crates/pdfs-gui/src/app/pages/photos.rs:3012 +#: crates/pdfs-gui/src/app/pages/photos.rs:3030 msgid "Move to Trash…" msgstr "Mover a la papelera…" -#: crates/pdfs-gui/src/app/pages/photos.rs:3036 +#: crates/pdfs-gui/src/app/pages/photos.rs:3054 msgid "Added to Favorites" msgstr "Añadida a favoritas" -#: crates/pdfs-gui/src/app/pages/photos.rs:3038 +#: crates/pdfs-gui/src/app/pages/photos.rs:3056 msgid "Removed from Favorites" msgstr "Quitada de favoritas" -#: crates/pdfs-gui/src/app/pages/photos.rs:3067 +#: crates/pdfs-gui/src/app/pages/photos.rs:3085 msgid "Loading photos…" msgstr "Cargando fotos…" -#: crates/pdfs-gui/src/app/pages/photos.rs:3068 +#: crates/pdfs-gui/src/app/pages/photos.rs:3086 msgid "Reading your Proton Drive timeline." msgstr "Leyendo su cronología de Proton Drive." -#: crates/pdfs-gui/src/app/pages/photos.rs:3161 +#: crates/pdfs-gui/src/app/pages/photos.rs:3179 msgid "Empty album" msgstr "Álbum vacío" -#: crates/pdfs-gui/src/app/pages/photos.rs:3162 +#: crates/pdfs-gui/src/app/pages/photos.rs:3180 msgid "This album has no photos in it." msgstr "Este álbum no tiene fotos." -#: crates/pdfs-gui/src/app/pages/photos.rs:3204 #: crates/pdfs-gui/src/app/pages/photos.rs:3222 +#: crates/pdfs-gui/src/app/pages/photos.rs:3240 msgid "Couldn't load more photos" msgstr "No se pudieron cargar más fotos" -#: crates/pdfs-gui/src/app/pages/photos.rs:3209 -#: crates/pdfs-gui/src/app/pages/photos.rs:3216 +#: crates/pdfs-gui/src/app/pages/photos.rs:3227 +#: crates/pdfs-gui/src/app/pages/photos.rs:3234 msgid "Couldn't load photos" msgstr "No se pudieron cargar las fotos" diff --git a/po/fr.po b/po/fr.po index 594857b..5c833de 100644 --- a/po/fr.po +++ b/po/fr.po @@ -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-09-28 00:44+0200\n" +"POT-Creation-Date: 2026-09-28 00:50+0200\n" "PO-Revision-Date: 2026-09-23 12:00+0200\n" "Last-Translator: Proton Drive for Linux contributors\n" "Language-Team: French\n" @@ -15,99 +15,99 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: crates/pdfs-gui/src/app/main.rs:835 +#: crates/pdfs-gui/src/app/main.rs:840 #: crates/pdfs-gui/src/app/pages/locations.rs:1133 #: crates/pdfs-gui/src/prompt.rs:169 msgid "My files" msgstr "Mes fichiers" -#: crates/pdfs-gui/src/app/main.rs:838 crates/pdfs-gui/src/app/main.rs:1451 +#: crates/pdfs-gui/src/app/main.rs:843 crates/pdfs-gui/src/app/main.rs:1456 #: crates/pdfs-gui/src/app/pages/albums.rs:633 -#: crates/pdfs-gui/src/app/pages/photos.rs:746 +#: crates/pdfs-gui/src/app/pages/photos.rs:756 msgid "Photos" msgstr "Photos" -#: crates/pdfs-gui/src/app/main.rs:843 +#: crates/pdfs-gui/src/app/main.rs:848 msgid "Shared with me" msgstr "Partagés avec moi" -#: crates/pdfs-gui/src/app/main.rs:848 +#: crates/pdfs-gui/src/app/main.rs:853 msgid "Shared by me" msgstr "Partagés par moi" -#: crates/pdfs-gui/src/app/main.rs:851 +#: crates/pdfs-gui/src/app/main.rs:856 #: crates/pdfs-gui/src/app/pages/devices.rs:109 msgid "Computers" msgstr "Ordinateurs" -#: crates/pdfs-gui/src/app/main.rs:852 +#: crates/pdfs-gui/src/app/main.rs:857 #: crates/pdfs-gui/src/app/pages/trash.rs:106 msgid "Trash" msgstr "Corbeille" -#: crates/pdfs-gui/src/app/main.rs:856 +#: crates/pdfs-gui/src/app/main.rs:861 msgid "Sync" msgstr "Synchronisation" -#: crates/pdfs-gui/src/app/main.rs:861 +#: crates/pdfs-gui/src/app/main.rs:866 #: crates/pdfs-gui/src/app/pages/activity.rs:153 msgid "Activity" msgstr "Activité" -#: crates/pdfs-gui/src/app/main.rs:1007 +#: crates/pdfs-gui/src/app/main.rs:1012 msgid "Refresh (F5)" msgstr "Actualiser (F5)" #. Translators: a failed action's toast. {what} says what failed, such as #. "Couldn't rename"; {detail} is the reason, usually untranslated text #. from the mount service. -#: crates/pdfs-gui/src/app/main.rs:1181 +#: crates/pdfs-gui/src/app/main.rs:1186 #, rust-format msgid "{what}: {detail}" msgstr "{what} : {detail}" -#: crates/pdfs-gui/src/app/main.rs:1200 +#: crates/pdfs-gui/src/app/main.rs:1205 msgid "You're offline" msgstr "Vous êtes hors ligne" -#: crates/pdfs-gui/src/app/main.rs:1201 +#: crates/pdfs-gui/src/app/main.rs:1206 msgid "That's not there any more" msgstr "Cet élément n’existe plus" -#: crates/pdfs-gui/src/app/main.rs:1202 +#: crates/pdfs-gui/src/app/main.rs:1207 msgid "You don't have access to that" msgstr "Vous n’avez pas accès à cet élément" -#: crates/pdfs-gui/src/app/main.rs:1203 +#: crates/pdfs-gui/src/app/main.rs:1208 msgid "Something changed this first" msgstr "Quelque chose l’a modifié entre-temps" -#: crates/pdfs-gui/src/app/main.rs:1204 +#: crates/pdfs-gui/src/app/main.rs:1209 msgid "Your Proton Drive is full" msgstr "Votre Proton Drive est plein" -#: crates/pdfs-gui/src/app/main.rs:1245 crates/pdfs-gui/src/app/main.rs:1433 +#: crates/pdfs-gui/src/app/main.rs:1250 crates/pdfs-gui/src/app/main.rs:1438 #: crates/pdfs-gui/src/app/pages/status.rs:353 msgid "Preferences" msgstr "Préférences" -#: crates/pdfs-gui/src/app/main.rs:1246 crates/pdfs-gui/src/app/main.rs:1490 +#: crates/pdfs-gui/src/app/main.rs:1251 crates/pdfs-gui/src/app/main.rs:1495 msgid "Keyboard Shortcuts" msgstr "Raccourcis clavier" -#: crates/pdfs-gui/src/app/main.rs:1248 +#: crates/pdfs-gui/src/app/main.rs:1253 msgid "About Proton Drive for Linux" msgstr "À propos de Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1253 +#: crates/pdfs-gui/src/app/main.rs:1258 msgid "Main menu" msgstr "Menu principal" -#: crates/pdfs-gui/src/app/main.rs:1299 +#: crates/pdfs-gui/src/app/main.rs:1304 msgid "Proton Drive for Linux" msgstr "Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1307 +#: crates/pdfs-gui/src/app/main.rs:1312 msgid "" "Files-on-demand Proton Drive for the Linux desktop.\n" "\n" @@ -119,23 +119,23 @@ msgstr "" "Client non officiel — non affilié à Proton AG, ni approuvé ni pris en charge " "par Proton AG." -#: crates/pdfs-gui/src/app/main.rs:1312 +#: crates/pdfs-gui/src/app/main.rs:1317 msgid "Source Code" msgstr "Code source" -#: crates/pdfs-gui/src/app/main.rs:1316 +#: crates/pdfs-gui/src/app/main.rs:1321 msgid "Proton Terms of Service" msgstr "Conditions d’utilisation de Proton" -#: crates/pdfs-gui/src/app/main.rs:1320 +#: crates/pdfs-gui/src/app/main.rs:1325 msgid "Proton Privacy Policy" msgstr "Politique de confidentialité de Proton" -#: crates/pdfs-gui/src/app/main.rs:1325 +#: crates/pdfs-gui/src/app/main.rs:1330 msgid "Disclaimer" msgstr "Avertissement" -#: crates/pdfs-gui/src/app/main.rs:1329 +#: crates/pdfs-gui/src/app/main.rs:1334 msgid "" "This is an unofficial, community-built client. It is not affiliated with, " "endorsed by, or supported by Proton AG.\n" @@ -161,15 +161,15 @@ msgstr "" #. Translators: replace with your name(s) and email address(es), one #. per line, to be credited in the About dialog. -#: crates/pdfs-gui/src/app/main.rs:1340 +#: crates/pdfs-gui/src/app/main.rs:1345 msgid "translator-credits" msgstr "Les contributeurs de Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1371 +#: crates/pdfs-gui/src/app/main.rs:1376 msgid "Stop Proton Drive?" msgstr "Arrêter Proton Drive ?" -#: crates/pdfs-gui/src/app/main.rs:1372 +#: crates/pdfs-gui/src/app/main.rs:1377 msgid "" "The drive unmounts and nothing syncs until you connect again. Proton Drive " "starts again at your next login." @@ -178,7 +178,7 @@ msgstr "" "vous reconnectiez. Proton Drive redémarrera à votre prochaine ouverture de " "session." -#: crates/pdfs-gui/src/app/main.rs:1374 crates/pdfs-gui/src/app/main.rs:1647 +#: crates/pdfs-gui/src/app/main.rs:1379 crates/pdfs-gui/src/app/main.rs:1652 #: crates/pdfs-gui/src/app/pages/albums.rs:242 #: crates/pdfs-gui/src/app/pages/albums.rs:423 #: crates/pdfs-gui/src/app/pages/browser.rs:2273 @@ -192,7 +192,7 @@ msgstr "" #: crates/pdfs-gui/src/app/pages/locations.rs:670 #: crates/pdfs-gui/src/app/pages/locations.rs:1050 #: crates/pdfs-gui/src/app/pages/login.rs:312 -#: crates/pdfs-gui/src/app/pages/photos.rs:1842 +#: crates/pdfs-gui/src/app/pages/photos.rs:1854 #: crates/pdfs-gui/src/app/pages/shared.rs:717 #: crates/pdfs-gui/src/app/pages/shared.rs:748 #: crates/pdfs-gui/src/app/pages/shared.rs:789 @@ -206,67 +206,67 @@ msgstr "" msgid "Cancel" msgstr "Annuler" -#: crates/pdfs-gui/src/app/main.rs:1375 +#: crates/pdfs-gui/src/app/main.rs:1380 msgctxt "verb" msgid "Stop" msgstr "Arrêter" -#: crates/pdfs-gui/src/app/main.rs:1392 +#: crates/pdfs-gui/src/app/main.rs:1397 msgid "Couldn't stop Proton Drive" msgstr "Impossible d’arrêter Proton Drive" -#: crates/pdfs-gui/src/app/main.rs:1393 +#: crates/pdfs-gui/src/app/main.rs:1398 msgid "The mount service did not stop." msgstr "Le service de montage ne s’est pas arrêté." -#: crates/pdfs-gui/src/app/main.rs:1429 +#: crates/pdfs-gui/src/app/main.rs:1434 #: crates/pdfs-gui/src/app/pages/status.rs:226 msgid "General" msgstr "Général" -#: crates/pdfs-gui/src/app/main.rs:1431 +#: crates/pdfs-gui/src/app/main.rs:1436 #: crates/pdfs-gui/src/app/pages/browser.rs:270 msgid "Search Drive" msgstr "Rechercher dans Drive" -#: crates/pdfs-gui/src/app/main.rs:1432 +#: crates/pdfs-gui/src/app/main.rs:1437 #: crates/pdfs-gui/src/app/pages/browser.rs:1363 msgid "Refresh" msgstr "Actualiser" -#: crates/pdfs-gui/src/app/main.rs:1434 +#: crates/pdfs-gui/src/app/main.rs:1439 msgid "Keyboard shortcuts" msgstr "Raccourcis clavier" -#: crates/pdfs-gui/src/app/main.rs:1438 +#: crates/pdfs-gui/src/app/main.rs:1443 msgid "Files" msgstr "Fichiers" -#: crates/pdfs-gui/src/app/main.rs:1440 +#: crates/pdfs-gui/src/app/main.rs:1445 #: crates/pdfs-gui/src/app/pages/browser.rs:319 #: crates/pdfs-gui/src/app/pages/browser.rs:2586 msgid "New folder" msgstr "Nouveau dossier" -#: crates/pdfs-gui/src/app/main.rs:1441 +#: crates/pdfs-gui/src/app/main.rs:1446 #: crates/pdfs-gui/src/app/pages/browser.rs:315 msgid "Upload files" msgstr "Téléverser des fichiers" -#: crates/pdfs-gui/src/app/main.rs:1442 +#: crates/pdfs-gui/src/app/main.rs:1447 msgid "Back / forward" msgstr "Précédent / suivant" -#: crates/pdfs-gui/src/app/main.rs:1443 +#: crates/pdfs-gui/src/app/main.rs:1448 #: crates/pdfs-gui/src/app/pages/browser.rs:2320 msgid "Parent folder" msgstr "Dossier parent" -#: crates/pdfs-gui/src/app/main.rs:1444 +#: crates/pdfs-gui/src/app/main.rs:1449 msgid "Grid / list" msgstr "Grille / liste" -#: crates/pdfs-gui/src/app/main.rs:1445 +#: crates/pdfs-gui/src/app/main.rs:1450 #: crates/pdfs-gui/src/app/pages/albums.rs:297 #: crates/pdfs-gui/src/app/pages/browser.rs:2252 #: crates/pdfs-gui/src/app/pages/browser.rs:2274 @@ -275,62 +275,63 @@ msgstr "Grille / liste" msgid "Rename" msgstr "Renommer" -#: crates/pdfs-gui/src/app/main.rs:1446 crates/pdfs-gui/src/app/main.rs:1466 +#: crates/pdfs-gui/src/app/main.rs:1451 crates/pdfs-gui/src/app/main.rs:1471 #: crates/pdfs-gui/src/app/pages/browser.rs:414 #: crates/pdfs-gui/src/app/pages/browser.rs:1306 #: crates/pdfs-gui/src/app/pages/browser.rs:1338 -#: crates/pdfs-gui/src/app/pages/photos.rs:540 -#: crates/pdfs-gui/src/app/pages/photos.rs:1839 -#: crates/pdfs-gui/src/app/pages/photos.rs:1843 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:24 +#: crates/pdfs-gui/src/app/pages/photos.rs:550 +#: crates/pdfs-gui/src/app/pages/photos.rs:1851 +#: crates/pdfs-gui/src/app/pages/photos.rs:1855 #: crates/pdfs-gui/src/app/widgets/details.rs:162 msgid "Move to Trash" msgstr "Mettre à la corbeille" -#: crates/pdfs-gui/src/app/main.rs:1447 +#: crates/pdfs-gui/src/app/main.rs:1452 msgid "Clear the selection" msgstr "Effacer la sélection" -#: crates/pdfs-gui/src/app/main.rs:1453 +#: crates/pdfs-gui/src/app/main.rs:1458 msgid "Larger thumbnails" msgstr "Miniatures plus grandes" -#: crates/pdfs-gui/src/app/main.rs:1454 +#: crates/pdfs-gui/src/app/main.rs:1459 msgid "Smaller thumbnails" msgstr "Miniatures plus petites" -#: crates/pdfs-gui/src/app/main.rs:1455 +#: crates/pdfs-gui/src/app/main.rs:1460 msgid "Reset thumbnail size" msgstr "Réinitialiser la taille des miniatures" -#: crates/pdfs-gui/src/app/main.rs:1456 +#: crates/pdfs-gui/src/app/main.rs:1461 msgid "Select all" msgstr "Tout sélectionner" -#: crates/pdfs-gui/src/app/main.rs:1460 +#: crates/pdfs-gui/src/app/main.rs:1465 msgid "Photo Viewer" msgstr "Visionneuse de photos" -#: crates/pdfs-gui/src/app/main.rs:1462 +#: crates/pdfs-gui/src/app/main.rs:1467 msgid "Previous / next photo" msgstr "Photo précédente / suivante" -#: crates/pdfs-gui/src/app/main.rs:1463 +#: crates/pdfs-gui/src/app/main.rs:1468 msgid "First / last photo" msgstr "Première / dernière photo" -#: crates/pdfs-gui/src/app/main.rs:1464 +#: crates/pdfs-gui/src/app/main.rs:1469 msgid "Show details" msgstr "Afficher les détails" -#: crates/pdfs-gui/src/app/main.rs:1465 +#: crates/pdfs-gui/src/app/main.rs:1470 msgid "Fullscreen" msgstr "Plein écran" -#: crates/pdfs-gui/src/app/main.rs:1467 +#: crates/pdfs-gui/src/app/main.rs:1472 msgid "Close" msgstr "Fermer" -#: crates/pdfs-gui/src/app/main.rs:1570 +#: crates/pdfs-gui/src/app/main.rs:1575 msgid "Select a single item to rename it" msgstr "Sélectionnez un seul élément pour le renommer" @@ -367,7 +368,7 @@ msgstr "Attention requise" #: crates/pdfs-gui/src/app/pages/browser.rs:306 #: crates/pdfs-gui/src/app/pages/devices.rs:84 #: crates/pdfs-gui/src/app/pages/locations.rs:134 -#: crates/pdfs-gui/src/app/pages/photos.rs:417 +#: crates/pdfs-gui/src/app/pages/photos.rs:418 #: crates/pdfs-gui/src/app/pages/shared.rs:83 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:38 #: crates/pdfs-gui/src/app/pages/trash.rs:57 crates/pdfs-gui/src/prompt.rs:593 @@ -403,7 +404,7 @@ msgstr "Impossible de lire l’activité" #: crates/pdfs-gui/src/app/pages/browser.rs:2880 #: crates/pdfs-gui/src/app/pages/browser.rs:3066 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:310 -#: crates/pdfs-gui/src/app/pages/photos.rs:3217 +#: crates/pdfs-gui/src/app/pages/photos.rs:3235 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:139 #: crates/pdfs-gui/src/app/pages/trash.rs:320 msgid "Unexpected reply from the mount service." @@ -415,7 +416,7 @@ msgstr "Réponse inattendue du service de montage." #: crates/pdfs-gui/src/app/pages/browser.rs:2914 #: crates/pdfs-gui/src/app/pages/devices.rs:209 #: crates/pdfs-gui/src/app/pages/locations.rs:844 -#: crates/pdfs-gui/src/app/pages/photos.rs:3251 +#: crates/pdfs-gui/src/app/pages/photos.rs:3269 #: crates/pdfs-gui/src/app/pages/shared.rs:523 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:156 #: crates/pdfs-gui/src/app/pages/status.rs:1301 @@ -427,7 +428,7 @@ msgstr "Non connecté" #: crates/pdfs-gui/src/app/pages/browser.rs:2915 #: crates/pdfs-gui/src/app/pages/devices.rs:210 #: crates/pdfs-gui/src/app/pages/locations.rs:845 -#: crates/pdfs-gui/src/app/pages/photos.rs:3252 +#: crates/pdfs-gui/src/app/pages/photos.rs:3270 #: crates/pdfs-gui/src/app/pages/shared.rs:524 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:157 #: crates/pdfs-gui/src/app/pages/trash.rs:336 @@ -439,7 +440,7 @@ msgstr "Le service de montage de Proton Drive n’est pas en cours d’exécutio #: crates/pdfs-gui/src/app/pages/browser.rs:2924 #: crates/pdfs-gui/src/app/pages/devices.rs:218 #: crates/pdfs-gui/src/app/pages/locations.rs:853 -#: crates/pdfs-gui/src/app/pages/photos.rs:3260 +#: crates/pdfs-gui/src/app/pages/photos.rs:3278 #: crates/pdfs-gui/src/app/pages/shared.rs:532 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:165 #: crates/pdfs-gui/src/app/pages/status.rs:305 @@ -452,7 +453,7 @@ msgstr "Connexion…" #: crates/pdfs-gui/src/app/pages/browser.rs:2925 #: crates/pdfs-gui/src/app/pages/devices.rs:219 #: crates/pdfs-gui/src/app/pages/locations.rs:854 -#: crates/pdfs-gui/src/app/pages/photos.rs:3261 +#: crates/pdfs-gui/src/app/pages/photos.rs:3279 #: crates/pdfs-gui/src/app/pages/shared.rs:533 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:166 #: crates/pdfs-gui/src/app/pages/trash.rs:345 @@ -460,12 +461,12 @@ msgid "Waiting for the Proton Drive mount service to come up." msgstr "En attente du démarrage du service de montage de Proton Drive." #: crates/pdfs-gui/src/app/pages/activity.rs:419 -#: crates/pdfs-gui/src/app/pages/photos.rs:2504 +#: crates/pdfs-gui/src/app/pages/photos.rs:2522 msgid "Today" msgstr "Aujourd’hui" #: crates/pdfs-gui/src/app/pages/activity.rs:422 -#: crates/pdfs-gui/src/app/pages/photos.rs:2509 +#: crates/pdfs-gui/src/app/pages/photos.rs:2527 msgid "Yesterday" msgstr "Hier" @@ -524,7 +525,7 @@ msgstr "Résolu" #. Translators: strftime format for the time of day in the activity feed, such as "14:05". #. Translators: strftime format for the time a photo was taken, shown on its tile, such as "14:05". #: crates/pdfs-gui/src/app/pages/activity.rs:580 -#: crates/pdfs-gui/src/app/pages/photos.rs:2548 +#: crates/pdfs-gui/src/app/pages/photos.rs:2566 msgid "%H:%M" msgstr "%H:%M" @@ -630,12 +631,12 @@ msgid "Reading your Proton Drive albums." msgstr "Lecture de vos albums Proton Drive." #: crates/pdfs-gui/src/app/pages/albums.rs:59 -#: crates/pdfs-gui/src/app/pages/photos.rs:3130 +#: crates/pdfs-gui/src/app/pages/photos.rs:3148 msgid "No photo library" msgstr "Aucune photothèque" #: crates/pdfs-gui/src/app/pages/albums.rs:60 -#: crates/pdfs-gui/src/app/pages/photos.rs:3131 +#: crates/pdfs-gui/src/app/pages/photos.rs:3149 msgid "This Proton account doesn't have Photos enabled." msgstr "Photos n’est pas activé pour ce compte Proton." @@ -668,7 +669,7 @@ msgstr[1] "{n} albums" #: crates/pdfs-gui/src/app/pages/albums.rs:205 #: crates/pdfs-gui/src/app/pages/browser.rs:1246 -#: crates/pdfs-gui/src/app/pages/photos.rs:2984 +#: crates/pdfs-gui/src/app/pages/photos.rs:3002 #: crates/pdfs-gui/src/app/pages/shared.rs:384 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:244 #: crates/pdfs-gui/src/app/widgets/details.rs:155 @@ -728,16 +729,17 @@ msgstr "Impossible de créer l’album" #: crates/pdfs-gui/src/app/pages/devices.rs:532 #: crates/pdfs-gui/src/app/pages/devices.rs:682 #: crates/pdfs-gui/src/app/pages/devices.rs:912 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:63 #: crates/pdfs-gui/src/app/pages/locations.rs:342 #: crates/pdfs-gui/src/app/pages/locations.rs:516 #: crates/pdfs-gui/src/app/pages/locations.rs:739 #: crates/pdfs-gui/src/app/pages/locations.rs:1090 #: crates/pdfs-gui/src/app/pages/locations.rs:1109 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1424 -#: crates/pdfs-gui/src/app/pages/photos.rs:1272 -#: crates/pdfs-gui/src/app/pages/photos.rs:1921 -#: crates/pdfs-gui/src/app/pages/photos.rs:3048 -#: crates/pdfs-gui/src/app/pages/photos.rs:3223 +#: crates/pdfs-gui/src/app/pages/photos.rs:1284 +#: crates/pdfs-gui/src/app/pages/photos.rs:1939 +#: crates/pdfs-gui/src/app/pages/photos.rs:3066 +#: crates/pdfs-gui/src/app/pages/photos.rs:3241 #: crates/pdfs-gui/src/app/pages/shared.rs:510 #: crates/pdfs-gui/src/app/pages/shared.rs:838 #: crates/pdfs-gui/src/app/pages/status.rs:672 @@ -801,7 +803,7 @@ msgstr[0] "Choisissez un album pour {n} photo." msgstr[1] "Choisissez un album pour {n} photos." #: crates/pdfs-gui/src/app/pages/albums.rs:424 -#: crates/pdfs-gui/src/app/pages/photos.rs:712 +#: crates/pdfs-gui/src/app/pages/photos.rs:722 msgid "New Album…" msgstr "Nouvel album…" @@ -992,7 +994,7 @@ msgstr "Mes fichiers" #. Translators: {n} is how many items are selected: files and folders in My Files, photos here. #: crates/pdfs-gui/src/app/pages/browser.rs:638 #: crates/pdfs-gui/src/app/pages/browser.rs:1331 -#: crates/pdfs-gui/src/app/pages/photos.rs:1775 +#: crates/pdfs-gui/src/app/pages/photos.rs:1787 #, rust-format msgid "{n} selected" msgid_plural "{n} selected" @@ -1001,8 +1003,8 @@ msgstr[1] "{n} sélectionnés" #: crates/pdfs-gui/src/app/pages/browser.rs:674 #: crates/pdfs-gui/src/app/pages/browser.rs:709 -#: crates/pdfs-gui/src/app/pages/photos.rs:1914 -#: crates/pdfs-gui/src/app/pages/photos.rs:1920 +#: crates/pdfs-gui/src/app/pages/photos.rs:1932 +#: crates/pdfs-gui/src/app/pages/photos.rs:1938 msgid "Couldn't move to Trash" msgstr "Impossible de mettre à la corbeille" @@ -1038,7 +1040,7 @@ msgstr[0] "{n} élément mis à la corbeille" msgstr[1] "{n} éléments mis à la corbeille" #: crates/pdfs-gui/src/app/pages/browser.rs:727 -#: crates/pdfs-gui/src/app/pages/photos.rs:1907 +#: crates/pdfs-gui/src/app/pages/photos.rs:1925 msgid "Undo" msgstr "Annuler" @@ -1095,7 +1097,7 @@ msgid "Open With…" msgstr "Ouvrir avec…" #: crates/pdfs-gui/src/app/pages/browser.rs:1263 -#: crates/pdfs-gui/src/app/pages/photos.rs:2982 +#: crates/pdfs-gui/src/app/pages/photos.rs:3000 msgctxt "verb" msgid "Play" msgstr "Lire" @@ -1391,7 +1393,7 @@ msgstr[0] "Téléversement de {n} élément…" msgstr[1] "Téléversement de {n} éléments…" #: crates/pdfs-gui/src/app/pages/browser.rs:2696 -#: crates/pdfs-gui/src/app/pages/photos.rs:730 +#: crates/pdfs-gui/src/app/pages/photos.rs:740 msgctxt "verb" msgid "View" msgstr "Afficher" @@ -1863,6 +1865,51 @@ msgstr "Identité adoptée" msgid "Couldn't adopt that computer" msgstr "Impossible d’adopter cet ordinateur" +#: crates/pdfs-gui/src/app/pages/duplicates.rs:15 +msgid "Looking for duplicates…" +msgstr "Recherche des doublons…" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:42 +msgid "Duplicates" +msgstr "Doublons" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:56 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:62 +msgid "Couldn't look for duplicates" +msgstr "Impossible de rechercher les doublons" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:69 +msgid "No duplicates" +msgstr "Aucun doublon" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:71 +msgid "Every photo in your library is stored once." +msgstr "Chaque photo de votre bibliothèque n’est stockée qu’une fois." + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:88 +msgid "" +"These photos are stored more than once. The copies you don't keep move to " +"Trash, where you can restore them." +msgstr "Ces photos sont stockées plusieurs fois. Les copies que vous ne gardez pas sont mises à la corbeille, d’où vous pouvez les restaurer." + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:111 +#, rust-format +msgid "{date}, {n} copy" +msgid_plural "{date}, {n} copies" +msgstr[0] "{date}, {n} copie" +msgstr[1] "{date}, {n} copies" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:143 +#, rust-format +msgid "Move {n} copy to Trash" +msgid_plural "Move {n} copies to Trash" +msgstr[0] "Mettre {n} copie à la corbeille" +msgstr[1] "Mettre {n} copies à la corbeille" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:235 +msgid "Keep" +msgstr "Garder" + #: crates/pdfs-gui/src/app/pages/locations.rs:89 msgid "Add Folder" msgstr "Ajouter un dossier" @@ -2564,144 +2611,148 @@ msgid "Hide details" msgstr "Masquer les détails" #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1429 -#: crates/pdfs-gui/src/app/pages/photos.rs:3043 -#: crates/pdfs-gui/src/app/pages/photos.rs:3047 +#: crates/pdfs-gui/src/app/pages/photos.rs:3061 +#: crates/pdfs-gui/src/app/pages/photos.rs:3065 msgid "Couldn't change the favorite" msgstr "Impossible de modifier le favori" -#: crates/pdfs-gui/src/app/pages/photos.rs:427 -#: crates/pdfs-gui/src/app/pages/photos.rs:507 +#: crates/pdfs-gui/src/app/pages/photos.rs:428 +#: crates/pdfs-gui/src/app/pages/photos.rs:508 msgid "Upload photos" msgstr "Téléverser des photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:432 +#: crates/pdfs-gui/src/app/pages/photos.rs:433 #: crates/pdfs-gui/src/app/pages/takeout.rs:287 msgid "Import from Google Photos" msgstr "Importer depuis Google Photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:472 -#: crates/pdfs-gui/src/app/pages/photos.rs:612 +#: crates/pdfs-gui/src/app/pages/photos.rs:473 +#: crates/pdfs-gui/src/app/pages/photos.rs:622 msgid "Jump to a month" msgstr "Aller à un mois" -#: crates/pdfs-gui/src/app/pages/photos.rs:491 +#: crates/pdfs-gui/src/app/pages/photos.rs:492 msgid "Back to albums" msgstr "Retour aux albums" -#: crates/pdfs-gui/src/app/pages/photos.rs:503 +#: crates/pdfs-gui/src/app/pages/photos.rs:504 msgctxt "verb" msgid "Upload" msgstr "Téléverser" -#: crates/pdfs-gui/src/app/pages/photos.rs:516 +#: crates/pdfs-gui/src/app/pages/photos.rs:517 msgid "Import a Google Photos Takeout export" msgstr "Importer une archive Google Takeout de Google Photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:526 -#: crates/pdfs-gui/src/app/pages/photos.rs:535 -#: crates/pdfs-gui/src/app/pages/photos.rs:1773 +#: crates/pdfs-gui/src/app/pages/photos.rs:527 +msgid "Find duplicates" +msgstr "Rechercher les doublons" + +#: crates/pdfs-gui/src/app/pages/photos.rs:536 +#: crates/pdfs-gui/src/app/pages/photos.rs:545 +#: crates/pdfs-gui/src/app/pages/photos.rs:1785 msgid "Select photos" msgstr "Sélectionner des photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:546 -#: crates/pdfs-gui/src/app/pages/photos.rs:3000 +#: crates/pdfs-gui/src/app/pages/photos.rs:556 +#: crates/pdfs-gui/src/app/pages/photos.rs:3018 msgid "Add to Album…" msgstr "Ajouter à un album…" -#: crates/pdfs-gui/src/app/pages/photos.rs:552 +#: crates/pdfs-gui/src/app/pages/photos.rs:562 msgid "Leave selection (Esc)" msgstr "Quitter la sélection (Échap)" -#: crates/pdfs-gui/src/app/pages/photos.rs:596 +#: crates/pdfs-gui/src/app/pages/photos.rs:606 msgid "Show only favorites" msgstr "Afficher uniquement les favoris" -#: crates/pdfs-gui/src/app/pages/photos.rs:603 +#: crates/pdfs-gui/src/app/pages/photos.rs:613 msgid "Show only photos not in an album" msgstr "Afficher uniquement les photos hors album" -#: crates/pdfs-gui/src/app/pages/photos.rs:610 -#: crates/pdfs-gui/src/app/pages/photos.rs:845 +#: crates/pdfs-gui/src/app/pages/photos.rs:620 +#: crates/pdfs-gui/src/app/pages/photos.rs:857 msgid "All dates" msgstr "Toutes les dates" -#: crates/pdfs-gui/src/app/pages/photos.rs:631 +#: crates/pdfs-gui/src/app/pages/photos.rs:641 msgid "Timeline" msgstr "Chronologie" -#: crates/pdfs-gui/src/app/pages/photos.rs:635 +#: crates/pdfs-gui/src/app/pages/photos.rs:645 msgid "Albums" msgstr "Albums" -#: crates/pdfs-gui/src/app/pages/photos.rs:654 +#: crates/pdfs-gui/src/app/pages/photos.rs:664 msgid "On this day" msgstr "Ce jour-là" -#: crates/pdfs-gui/src/app/pages/photos.rs:729 +#: crates/pdfs-gui/src/app/pages/photos.rs:739 msgid "Importing from Google Photos…" msgstr "Importation depuis Google Photos…" #. Translators: strftime format for a month on its own, such as "June 2024". %OB is the month name in its standalone (nominative) form; use %B if your language has no separate form. -#: crates/pdfs-gui/src/app/pages/photos.rs:821 +#: crates/pdfs-gui/src/app/pages/photos.rs:833 msgid "%OB %Y" msgstr "%B %Y" #. Translators: a row of the date jump; {month} is a month such as "June 2024", {count} how many photos it holds. -#: crates/pdfs-gui/src/app/pages/photos.rs:852 +#: crates/pdfs-gui/src/app/pages/photos.rs:864 #, rust-format msgid "{month} ({count})" msgstr "{month} ({count})" #. Translators: a Photos filter tab that shows photos, videos and raw files together. -#: crates/pdfs-gui/src/app/pages/photos.rs:889 +#: crates/pdfs-gui/src/app/pages/photos.rs:901 msgctxt "photo filter" msgid "All" msgstr "Tout" -#: crates/pdfs-gui/src/app/pages/photos.rs:890 +#: crates/pdfs-gui/src/app/pages/photos.rs:902 msgctxt "photo filter" msgid "Photos" msgstr "Photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:891 +#: crates/pdfs-gui/src/app/pages/photos.rs:903 msgctxt "photo filter" msgid "Videos" msgstr "Vidéos" #. Translators: a Photos filter tab for raw camera files. -#: crates/pdfs-gui/src/app/pages/photos.rs:893 +#: crates/pdfs-gui/src/app/pages/photos.rs:905 msgctxt "photo filter" msgid "Raw" msgstr "RAW" -#: crates/pdfs-gui/src/app/pages/photos.rs:1198 +#: crates/pdfs-gui/src/app/pages/photos.rs:1210 msgid "Select Photo to Upload" msgstr "Sélectionner une photo à téléverser" -#: crates/pdfs-gui/src/app/pages/photos.rs:1202 +#: crates/pdfs-gui/src/app/pages/photos.rs:1214 #: crates/pdfs-gui/src/prompt.rs:60 msgid "Images" msgstr "Images" -#: crates/pdfs-gui/src/app/pages/photos.rs:1258 +#: crates/pdfs-gui/src/app/pages/photos.rs:1270 msgid "Photo uploaded" msgstr "Photo téléversée" -#: crates/pdfs-gui/src/app/pages/photos.rs:1263 -#: crates/pdfs-gui/src/app/pages/photos.rs:1271 +#: crates/pdfs-gui/src/app/pages/photos.rs:1275 +#: crates/pdfs-gui/src/app/pages/photos.rs:1283 msgid "Couldn't upload photo" msgstr "Impossible de téléverser la photo" #. Translators: badge on a photo tile whose shot includes a raw camera file. -#: crates/pdfs-gui/src/app/pages/photos.rs:1432 +#: crates/pdfs-gui/src/app/pages/photos.rs:1444 msgid "RAW" msgstr "RAW" -#: crates/pdfs-gui/src/app/pages/photos.rs:1817 +#: crates/pdfs-gui/src/app/pages/photos.rs:1829 msgid "Move this photo to Trash?" msgstr "Mettre cette photo à la corbeille ?" -#: crates/pdfs-gui/src/app/pages/photos.rs:1819 +#: crates/pdfs-gui/src/app/pages/photos.rs:1831 #, rust-format msgid "Move this photo to Trash? It is stored as {n} file." msgid_plural "Move this photo to Trash? It is stored as {n} files." @@ -2712,14 +2763,14 @@ msgstr[1] "" "Mettre cette photo à la corbeille ? Elle est stockée sous forme de {n} " "fichiers." -#: crates/pdfs-gui/src/app/pages/photos.rs:1825 +#: crates/pdfs-gui/src/app/pages/photos.rs:1837 #, rust-format msgid "Move {n} photo to Trash?" msgid_plural "Move {n} photos to Trash?" msgstr[0] "Mettre {n} photo à la corbeille ?" msgstr[1] "Mettre {n} photos à la corbeille ?" -#: crates/pdfs-gui/src/app/pages/photos.rs:1832 +#: crates/pdfs-gui/src/app/pages/photos.rs:1844 #, rust-format msgid "Move {n} photo to Trash? They are stored as {files} files." msgid_plural "Move {n} photos to Trash? They are stored as {files} files." @@ -2730,15 +2781,15 @@ msgstr[1] "" "Mettre {n} photos à la corbeille ? Elles sont stockées sous forme de {files} " "fichiers." -#: crates/pdfs-gui/src/app/pages/photos.rs:1890 +#: crates/pdfs-gui/src/app/pages/photos.rs:1908 msgid "The server refused." msgstr "Le serveur a refusé." -#: crates/pdfs-gui/src/app/pages/photos.rs:1893 +#: crates/pdfs-gui/src/app/pages/photos.rs:1911 msgid "Some photos couldn't be moved to Trash" msgstr "Certaines photos n’ont pas pu être mises à la corbeille" -#: crates/pdfs-gui/src/app/pages/photos.rs:1902 +#: crates/pdfs-gui/src/app/pages/photos.rs:1920 #, rust-format msgid "Moved {n} photo to Trash" msgid_plural "Moved {n} photos to Trash" @@ -2746,7 +2797,7 @@ msgstr[0] "{n} photo mise à la corbeille" msgstr[1] "{n} photos mises à la corbeille" #. Translators: the Photos page subtitle, such as "12 videos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2458 +#: crates/pdfs-gui/src/app/pages/photos.rs:2476 #, rust-format msgid "{count} video" msgid_plural "{count} videos" @@ -2754,7 +2805,7 @@ msgstr[0] "{count} vidéo" msgstr[1] "{count} vidéos" #. Translators: the Photos page subtitle, such as "12 raw photos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2460 +#: crates/pdfs-gui/src/app/pages/photos.rs:2478 #, rust-format msgid "{count} raw photo" msgid_plural "{count} raw photos" @@ -2762,140 +2813,140 @@ msgstr[0] "{count} photo RAW" msgstr[1] "{count} photos RAW" #. Translators: the Photos page subtitle, such as "1,204 photos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2462 +#: crates/pdfs-gui/src/app/pages/photos.rs:2480 #, rust-format msgid "{count} photo" msgid_plural "{count} photos" msgstr[0] "{count} photo" msgstr[1] "{count} photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:2490 -#: crates/pdfs-gui/src/app/pages/photos.rs:2516 +#: crates/pdfs-gui/src/app/pages/photos.rs:2508 +#: crates/pdfs-gui/src/app/pages/photos.rs:2534 msgid "Unknown date" msgstr "Date inconnue" #. Translators: strftime format for a day heading in the photo timeline, such as "3 June 2026". -#: crates/pdfs-gui/src/app/pages/photos.rs:2513 +#: crates/pdfs-gui/src/app/pages/photos.rs:2531 msgid "%-d %B %Y" msgstr "%-d %B %Y" #. Translators: strftime format for a photo's capture date and time, such as "2026-06-03 14:05:09". -#: crates/pdfs-gui/src/app/pages/photos.rs:2534 +#: crates/pdfs-gui/src/app/pages/photos.rs:2552 msgid "%Y-%m-%d %H:%M:%S" msgstr "%d/%m/%Y %H:%M:%S" -#: crates/pdfs-gui/src/app/pages/photos.rs:2538 -#: crates/pdfs-gui/src/app/pages/photos.rs:2540 +#: crates/pdfs-gui/src/app/pages/photos.rs:2556 +#: crates/pdfs-gui/src/app/pages/photos.rs:2558 msgid "Unknown Date" msgstr "Date inconnue" #. Translators: strftime format for the day a photo was taken, shown on its tile when the timeline is grouped by month or year, such as "3 Jun". -#: crates/pdfs-gui/src/app/pages/photos.rs:2558 +#: crates/pdfs-gui/src/app/pages/photos.rs:2576 msgid "%-d %b" msgstr "%-d %b" -#: crates/pdfs-gui/src/app/pages/photos.rs:2580 +#: crates/pdfs-gui/src/app/pages/photos.rs:2598 msgid "Every photo is in an album" msgstr "Toutes les photos sont dans un album" -#: crates/pdfs-gui/src/app/pages/photos.rs:2581 +#: crates/pdfs-gui/src/app/pages/photos.rs:2599 msgid "Turn off the album filter to see everything." msgstr "Désactivez le filtre des albums pour tout afficher." -#: crates/pdfs-gui/src/app/pages/photos.rs:2586 +#: crates/pdfs-gui/src/app/pages/photos.rs:2604 msgid "No photos yet" msgstr "Aucune photo pour l’instant" -#: crates/pdfs-gui/src/app/pages/photos.rs:2587 +#: crates/pdfs-gui/src/app/pages/photos.rs:2605 msgid "Photos you upload to Proton Drive appear here." msgstr "Les photos que vous téléversez sur Proton Drive apparaissent ici." -#: crates/pdfs-gui/src/app/pages/photos.rs:2590 +#: crates/pdfs-gui/src/app/pages/photos.rs:2608 msgid "No favorites yet" msgstr "Aucun favori pour l’instant" -#: crates/pdfs-gui/src/app/pages/photos.rs:2591 +#: crates/pdfs-gui/src/app/pages/photos.rs:2609 msgid "Star a photo in the viewer or from its menu to find it here." msgstr "" "Ajoutez une photo aux favoris dans la visionneuse ou depuis son menu pour la " "retrouver ici." #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2596 +#: crates/pdfs-gui/src/app/pages/photos.rs:2614 #, rust-format msgid "No favorite videos in {month}" msgstr "Aucune vidéo favorite en {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2597 +#: crates/pdfs-gui/src/app/pages/photos.rs:2615 msgid "No favorite videos" msgstr "Aucune vidéo favorite" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2599 +#: crates/pdfs-gui/src/app/pages/photos.rs:2617 #, rust-format msgid "No favorite raw files in {month}" msgstr "Aucun fichier RAW favori en {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2600 +#: crates/pdfs-gui/src/app/pages/photos.rs:2618 msgid "No favorite raw files" msgstr "Aucun fichier RAW favori" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2602 +#: crates/pdfs-gui/src/app/pages/photos.rs:2620 #, rust-format msgid "No favorite photos in {month}" msgstr "Aucune photo favorite en {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2603 +#: crates/pdfs-gui/src/app/pages/photos.rs:2621 msgid "No favorite photos" msgstr "Aucune photo favorite" -#: crates/pdfs-gui/src/app/pages/photos.rs:2605 +#: crates/pdfs-gui/src/app/pages/photos.rs:2623 msgid "Turn off the favorites filter to see everything." msgstr "Désactivez le filtre des favoris pour tout afficher." #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2610 +#: crates/pdfs-gui/src/app/pages/photos.rs:2628 #, rust-format msgid "No videos in {month}" msgstr "Aucune vidéo en {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2611 +#: crates/pdfs-gui/src/app/pages/photos.rs:2629 msgid "No videos" msgstr "Aucune vidéo" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2613 +#: crates/pdfs-gui/src/app/pages/photos.rs:2631 #, rust-format msgid "No raw files in {month}" msgstr "Aucun fichier RAW en {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2614 +#: crates/pdfs-gui/src/app/pages/photos.rs:2632 msgid "No raw files" msgstr "Aucun fichier RAW" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2616 +#: crates/pdfs-gui/src/app/pages/photos.rs:2634 #, rust-format msgid "No photos in {month}" msgstr "Aucune photo en {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2617 +#: crates/pdfs-gui/src/app/pages/photos.rs:2635 msgid "No photos" msgstr "Aucune photo" -#: crates/pdfs-gui/src/app/pages/photos.rs:2619 +#: crates/pdfs-gui/src/app/pages/photos.rs:2637 msgid "Try another filter or month." msgstr "Essayez un autre filtre ou un autre mois." -#: crates/pdfs-gui/src/app/pages/photos.rs:2735 +#: crates/pdfs-gui/src/app/pages/photos.rs:2753 #, rust-format msgid "{n} year ago" msgid_plural "{n} years ago" msgstr[0] "il y a {n} an" msgstr[1] "il y a {n} ans" -#: crates/pdfs-gui/src/app/pages/photos.rs:2760 +#: crates/pdfs-gui/src/app/pages/photos.rs:2778 #, rust-format msgid "{date}, {n} photo" msgid_plural "{date}, {n} photos" @@ -2903,55 +2954,55 @@ msgstr[0] "{date}, {n} photo" msgstr[1] "{date}, {n} photos" #. Translators: a check item in a photo's menu, on while the photo is a favorite. -#: crates/pdfs-gui/src/app/pages/photos.rs:2989 +#: crates/pdfs-gui/src/app/pages/photos.rs:3007 msgctxt "state" msgid "Favorite" msgstr "Favori" -#: crates/pdfs-gui/src/app/pages/photos.rs:2994 +#: crates/pdfs-gui/src/app/pages/photos.rs:3012 msgctxt "verb" msgid "Select" msgstr "Sélectionner" -#: crates/pdfs-gui/src/app/pages/photos.rs:3006 +#: crates/pdfs-gui/src/app/pages/photos.rs:3024 msgid "Remove from Album" msgstr "Retirer de l’album" -#: crates/pdfs-gui/src/app/pages/photos.rs:3012 +#: crates/pdfs-gui/src/app/pages/photos.rs:3030 msgid "Move to Trash…" msgstr "Mettre à la corbeille…" -#: crates/pdfs-gui/src/app/pages/photos.rs:3036 +#: crates/pdfs-gui/src/app/pages/photos.rs:3054 msgid "Added to Favorites" msgstr "Ajoutée aux favoris" -#: crates/pdfs-gui/src/app/pages/photos.rs:3038 +#: crates/pdfs-gui/src/app/pages/photos.rs:3056 msgid "Removed from Favorites" msgstr "Retirée des favoris" -#: crates/pdfs-gui/src/app/pages/photos.rs:3067 +#: crates/pdfs-gui/src/app/pages/photos.rs:3085 msgid "Loading photos…" msgstr "Chargement des photos…" -#: crates/pdfs-gui/src/app/pages/photos.rs:3068 +#: crates/pdfs-gui/src/app/pages/photos.rs:3086 msgid "Reading your Proton Drive timeline." msgstr "Lecture de votre chronologie Proton Drive." -#: crates/pdfs-gui/src/app/pages/photos.rs:3161 +#: crates/pdfs-gui/src/app/pages/photos.rs:3179 msgid "Empty album" msgstr "Album vide" -#: crates/pdfs-gui/src/app/pages/photos.rs:3162 +#: crates/pdfs-gui/src/app/pages/photos.rs:3180 msgid "This album has no photos in it." msgstr "Cet album ne contient aucune photo." -#: crates/pdfs-gui/src/app/pages/photos.rs:3204 #: crates/pdfs-gui/src/app/pages/photos.rs:3222 +#: crates/pdfs-gui/src/app/pages/photos.rs:3240 msgid "Couldn't load more photos" msgstr "Impossible de charger plus de photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:3209 -#: crates/pdfs-gui/src/app/pages/photos.rs:3216 +#: crates/pdfs-gui/src/app/pages/photos.rs:3227 +#: crates/pdfs-gui/src/app/pages/photos.rs:3234 msgid "Couldn't load photos" msgstr "Impossible de charger les photos" diff --git a/po/it.po b/po/it.po index a302aca..554931c 100644 --- a/po/it.po +++ b/po/it.po @@ -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-09-28 00:44+0200\n" +"POT-Creation-Date: 2026-09-28 00:50+0200\n" "PO-Revision-Date: 2026-09-23 12:00+0200\n" "Last-Translator: Proton Drive for Linux contributors\n" "Language-Team: Italian\n" @@ -15,99 +15,99 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: crates/pdfs-gui/src/app/main.rs:835 +#: crates/pdfs-gui/src/app/main.rs:840 #: crates/pdfs-gui/src/app/pages/locations.rs:1133 #: crates/pdfs-gui/src/prompt.rs:169 msgid "My files" msgstr "I miei file" -#: crates/pdfs-gui/src/app/main.rs:838 crates/pdfs-gui/src/app/main.rs:1451 +#: crates/pdfs-gui/src/app/main.rs:843 crates/pdfs-gui/src/app/main.rs:1456 #: crates/pdfs-gui/src/app/pages/albums.rs:633 -#: crates/pdfs-gui/src/app/pages/photos.rs:746 +#: crates/pdfs-gui/src/app/pages/photos.rs:756 msgid "Photos" msgstr "Foto" -#: crates/pdfs-gui/src/app/main.rs:843 +#: crates/pdfs-gui/src/app/main.rs:848 msgid "Shared with me" msgstr "Condivisi con me" -#: crates/pdfs-gui/src/app/main.rs:848 +#: crates/pdfs-gui/src/app/main.rs:853 msgid "Shared by me" msgstr "Condivisi da me" -#: crates/pdfs-gui/src/app/main.rs:851 +#: crates/pdfs-gui/src/app/main.rs:856 #: crates/pdfs-gui/src/app/pages/devices.rs:109 msgid "Computers" msgstr "Computer" -#: crates/pdfs-gui/src/app/main.rs:852 +#: crates/pdfs-gui/src/app/main.rs:857 #: crates/pdfs-gui/src/app/pages/trash.rs:106 msgid "Trash" msgstr "Cestino" -#: crates/pdfs-gui/src/app/main.rs:856 +#: crates/pdfs-gui/src/app/main.rs:861 msgid "Sync" msgstr "Sincronizzazione" -#: crates/pdfs-gui/src/app/main.rs:861 +#: crates/pdfs-gui/src/app/main.rs:866 #: crates/pdfs-gui/src/app/pages/activity.rs:153 msgid "Activity" msgstr "Attività" -#: crates/pdfs-gui/src/app/main.rs:1007 +#: crates/pdfs-gui/src/app/main.rs:1012 msgid "Refresh (F5)" msgstr "Aggiorna (F5)" #. Translators: a failed action's toast. {what} says what failed, such as #. "Couldn't rename"; {detail} is the reason, usually untranslated text #. from the mount service. -#: crates/pdfs-gui/src/app/main.rs:1181 +#: crates/pdfs-gui/src/app/main.rs:1186 #, rust-format msgid "{what}: {detail}" msgstr "{what}: {detail}" -#: crates/pdfs-gui/src/app/main.rs:1200 +#: crates/pdfs-gui/src/app/main.rs:1205 msgid "You're offline" msgstr "Sei offline" -#: crates/pdfs-gui/src/app/main.rs:1201 +#: crates/pdfs-gui/src/app/main.rs:1206 msgid "That's not there any more" msgstr "Non esiste più" -#: crates/pdfs-gui/src/app/main.rs:1202 +#: crates/pdfs-gui/src/app/main.rs:1207 msgid "You don't have access to that" msgstr "Non hai accesso a questo elemento" -#: crates/pdfs-gui/src/app/main.rs:1203 +#: crates/pdfs-gui/src/app/main.rs:1208 msgid "Something changed this first" msgstr "È stato modificato prima da qualcos'altro" -#: crates/pdfs-gui/src/app/main.rs:1204 +#: crates/pdfs-gui/src/app/main.rs:1209 msgid "Your Proton Drive is full" msgstr "Il tuo Proton Drive è pieno" -#: crates/pdfs-gui/src/app/main.rs:1245 crates/pdfs-gui/src/app/main.rs:1433 +#: crates/pdfs-gui/src/app/main.rs:1250 crates/pdfs-gui/src/app/main.rs:1438 #: crates/pdfs-gui/src/app/pages/status.rs:353 msgid "Preferences" msgstr "Preferenze" -#: crates/pdfs-gui/src/app/main.rs:1246 crates/pdfs-gui/src/app/main.rs:1490 +#: crates/pdfs-gui/src/app/main.rs:1251 crates/pdfs-gui/src/app/main.rs:1495 msgid "Keyboard Shortcuts" msgstr "Scorciatoie da tastiera" -#: crates/pdfs-gui/src/app/main.rs:1248 +#: crates/pdfs-gui/src/app/main.rs:1253 msgid "About Proton Drive for Linux" msgstr "Informazioni su Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1253 +#: crates/pdfs-gui/src/app/main.rs:1258 msgid "Main menu" msgstr "Menu principale" -#: crates/pdfs-gui/src/app/main.rs:1299 +#: crates/pdfs-gui/src/app/main.rs:1304 msgid "Proton Drive for Linux" msgstr "Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1307 +#: crates/pdfs-gui/src/app/main.rs:1312 msgid "" "Files-on-demand Proton Drive for the Linux desktop.\n" "\n" @@ -118,23 +118,23 @@ msgstr "" "\n" "Client non ufficiale: non affiliato, approvato né supportato da Proton AG." -#: crates/pdfs-gui/src/app/main.rs:1312 +#: crates/pdfs-gui/src/app/main.rs:1317 msgid "Source Code" msgstr "Codice sorgente" -#: crates/pdfs-gui/src/app/main.rs:1316 +#: crates/pdfs-gui/src/app/main.rs:1321 msgid "Proton Terms of Service" msgstr "Termini di servizio di Proton" -#: crates/pdfs-gui/src/app/main.rs:1320 +#: crates/pdfs-gui/src/app/main.rs:1325 msgid "Proton Privacy Policy" msgstr "Informativa sulla privacy di Proton" -#: crates/pdfs-gui/src/app/main.rs:1325 +#: crates/pdfs-gui/src/app/main.rs:1330 msgid "Disclaimer" msgstr "Esclusione di responsabilità" -#: crates/pdfs-gui/src/app/main.rs:1329 +#: crates/pdfs-gui/src/app/main.rs:1334 msgid "" "This is an unofficial, community-built client. It is not affiliated with, " "endorsed by, or supported by Proton AG.\n" @@ -159,15 +159,15 @@ msgstr "" #. Translators: replace with your name(s) and email address(es), one #. per line, to be credited in the About dialog. -#: crates/pdfs-gui/src/app/main.rs:1340 +#: crates/pdfs-gui/src/app/main.rs:1345 msgid "translator-credits" msgstr "Collaboratori di Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1371 +#: crates/pdfs-gui/src/app/main.rs:1376 msgid "Stop Proton Drive?" msgstr "Arrestare Proton Drive?" -#: crates/pdfs-gui/src/app/main.rs:1372 +#: crates/pdfs-gui/src/app/main.rs:1377 msgid "" "The drive unmounts and nothing syncs until you connect again. Proton Drive " "starts again at your next login." @@ -175,7 +175,7 @@ msgstr "" "Il disco viene smontato e nulla viene sincronizzato finché non ti " "riconnetti. Proton Drive si riavvierà al prossimo accesso." -#: crates/pdfs-gui/src/app/main.rs:1374 crates/pdfs-gui/src/app/main.rs:1647 +#: crates/pdfs-gui/src/app/main.rs:1379 crates/pdfs-gui/src/app/main.rs:1652 #: crates/pdfs-gui/src/app/pages/albums.rs:242 #: crates/pdfs-gui/src/app/pages/albums.rs:423 #: crates/pdfs-gui/src/app/pages/browser.rs:2273 @@ -189,7 +189,7 @@ msgstr "" #: crates/pdfs-gui/src/app/pages/locations.rs:670 #: crates/pdfs-gui/src/app/pages/locations.rs:1050 #: crates/pdfs-gui/src/app/pages/login.rs:312 -#: crates/pdfs-gui/src/app/pages/photos.rs:1842 +#: crates/pdfs-gui/src/app/pages/photos.rs:1854 #: crates/pdfs-gui/src/app/pages/shared.rs:717 #: crates/pdfs-gui/src/app/pages/shared.rs:748 #: crates/pdfs-gui/src/app/pages/shared.rs:789 @@ -203,67 +203,67 @@ msgstr "" msgid "Cancel" msgstr "Annulla" -#: crates/pdfs-gui/src/app/main.rs:1375 +#: crates/pdfs-gui/src/app/main.rs:1380 msgctxt "verb" msgid "Stop" msgstr "Arresta" -#: crates/pdfs-gui/src/app/main.rs:1392 +#: crates/pdfs-gui/src/app/main.rs:1397 msgid "Couldn't stop Proton Drive" msgstr "Impossibile arrestare Proton Drive" -#: crates/pdfs-gui/src/app/main.rs:1393 +#: crates/pdfs-gui/src/app/main.rs:1398 msgid "The mount service did not stop." msgstr "Il servizio di montaggio non si è arrestato." -#: crates/pdfs-gui/src/app/main.rs:1429 +#: crates/pdfs-gui/src/app/main.rs:1434 #: crates/pdfs-gui/src/app/pages/status.rs:226 msgid "General" msgstr "Generale" -#: crates/pdfs-gui/src/app/main.rs:1431 +#: crates/pdfs-gui/src/app/main.rs:1436 #: crates/pdfs-gui/src/app/pages/browser.rs:270 msgid "Search Drive" msgstr "Cerca in Drive" -#: crates/pdfs-gui/src/app/main.rs:1432 +#: crates/pdfs-gui/src/app/main.rs:1437 #: crates/pdfs-gui/src/app/pages/browser.rs:1363 msgid "Refresh" msgstr "Aggiorna" -#: crates/pdfs-gui/src/app/main.rs:1434 +#: crates/pdfs-gui/src/app/main.rs:1439 msgid "Keyboard shortcuts" msgstr "Scorciatoie da tastiera" -#: crates/pdfs-gui/src/app/main.rs:1438 +#: crates/pdfs-gui/src/app/main.rs:1443 msgid "Files" msgstr "File" -#: crates/pdfs-gui/src/app/main.rs:1440 +#: crates/pdfs-gui/src/app/main.rs:1445 #: crates/pdfs-gui/src/app/pages/browser.rs:319 #: crates/pdfs-gui/src/app/pages/browser.rs:2586 msgid "New folder" msgstr "Nuova cartella" -#: crates/pdfs-gui/src/app/main.rs:1441 +#: crates/pdfs-gui/src/app/main.rs:1446 #: crates/pdfs-gui/src/app/pages/browser.rs:315 msgid "Upload files" msgstr "Carica file" -#: crates/pdfs-gui/src/app/main.rs:1442 +#: crates/pdfs-gui/src/app/main.rs:1447 msgid "Back / forward" msgstr "Indietro / avanti" -#: crates/pdfs-gui/src/app/main.rs:1443 +#: crates/pdfs-gui/src/app/main.rs:1448 #: crates/pdfs-gui/src/app/pages/browser.rs:2320 msgid "Parent folder" msgstr "Cartella superiore" -#: crates/pdfs-gui/src/app/main.rs:1444 +#: crates/pdfs-gui/src/app/main.rs:1449 msgid "Grid / list" msgstr "Griglia / elenco" -#: crates/pdfs-gui/src/app/main.rs:1445 +#: crates/pdfs-gui/src/app/main.rs:1450 #: crates/pdfs-gui/src/app/pages/albums.rs:297 #: crates/pdfs-gui/src/app/pages/browser.rs:2252 #: crates/pdfs-gui/src/app/pages/browser.rs:2274 @@ -272,62 +272,63 @@ msgstr "Griglia / elenco" msgid "Rename" msgstr "Rinomina" -#: crates/pdfs-gui/src/app/main.rs:1446 crates/pdfs-gui/src/app/main.rs:1466 +#: crates/pdfs-gui/src/app/main.rs:1451 crates/pdfs-gui/src/app/main.rs:1471 #: crates/pdfs-gui/src/app/pages/browser.rs:414 #: crates/pdfs-gui/src/app/pages/browser.rs:1306 #: crates/pdfs-gui/src/app/pages/browser.rs:1338 -#: crates/pdfs-gui/src/app/pages/photos.rs:540 -#: crates/pdfs-gui/src/app/pages/photos.rs:1839 -#: crates/pdfs-gui/src/app/pages/photos.rs:1843 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:24 +#: crates/pdfs-gui/src/app/pages/photos.rs:550 +#: crates/pdfs-gui/src/app/pages/photos.rs:1851 +#: crates/pdfs-gui/src/app/pages/photos.rs:1855 #: crates/pdfs-gui/src/app/widgets/details.rs:162 msgid "Move to Trash" msgstr "Sposta nel cestino" -#: crates/pdfs-gui/src/app/main.rs:1447 +#: crates/pdfs-gui/src/app/main.rs:1452 msgid "Clear the selection" msgstr "Annulla la selezione" -#: crates/pdfs-gui/src/app/main.rs:1453 +#: crates/pdfs-gui/src/app/main.rs:1458 msgid "Larger thumbnails" msgstr "Miniature più grandi" -#: crates/pdfs-gui/src/app/main.rs:1454 +#: crates/pdfs-gui/src/app/main.rs:1459 msgid "Smaller thumbnails" msgstr "Miniature più piccole" -#: crates/pdfs-gui/src/app/main.rs:1455 +#: crates/pdfs-gui/src/app/main.rs:1460 msgid "Reset thumbnail size" msgstr "Ripristina la dimensione delle miniature" -#: crates/pdfs-gui/src/app/main.rs:1456 +#: crates/pdfs-gui/src/app/main.rs:1461 msgid "Select all" msgstr "Seleziona tutto" -#: crates/pdfs-gui/src/app/main.rs:1460 +#: crates/pdfs-gui/src/app/main.rs:1465 msgid "Photo Viewer" msgstr "Visualizzatore di foto" -#: crates/pdfs-gui/src/app/main.rs:1462 +#: crates/pdfs-gui/src/app/main.rs:1467 msgid "Previous / next photo" msgstr "Foto precedente / successiva" -#: crates/pdfs-gui/src/app/main.rs:1463 +#: crates/pdfs-gui/src/app/main.rs:1468 msgid "First / last photo" msgstr "Prima / ultima foto" -#: crates/pdfs-gui/src/app/main.rs:1464 +#: crates/pdfs-gui/src/app/main.rs:1469 msgid "Show details" msgstr "Mostra dettagli" -#: crates/pdfs-gui/src/app/main.rs:1465 +#: crates/pdfs-gui/src/app/main.rs:1470 msgid "Fullscreen" msgstr "Schermo intero" -#: crates/pdfs-gui/src/app/main.rs:1467 +#: crates/pdfs-gui/src/app/main.rs:1472 msgid "Close" msgstr "Chiudi" -#: crates/pdfs-gui/src/app/main.rs:1570 +#: crates/pdfs-gui/src/app/main.rs:1575 msgid "Select a single item to rename it" msgstr "Seleziona un solo elemento per rinominarlo" @@ -364,7 +365,7 @@ msgstr "Richiede attenzione" #: crates/pdfs-gui/src/app/pages/browser.rs:306 #: crates/pdfs-gui/src/app/pages/devices.rs:84 #: crates/pdfs-gui/src/app/pages/locations.rs:134 -#: crates/pdfs-gui/src/app/pages/photos.rs:417 +#: crates/pdfs-gui/src/app/pages/photos.rs:418 #: crates/pdfs-gui/src/app/pages/shared.rs:83 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:38 #: crates/pdfs-gui/src/app/pages/trash.rs:57 crates/pdfs-gui/src/prompt.rs:593 @@ -400,7 +401,7 @@ msgstr "Impossibile leggere le attività" #: crates/pdfs-gui/src/app/pages/browser.rs:2880 #: crates/pdfs-gui/src/app/pages/browser.rs:3066 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:310 -#: crates/pdfs-gui/src/app/pages/photos.rs:3217 +#: crates/pdfs-gui/src/app/pages/photos.rs:3235 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:139 #: crates/pdfs-gui/src/app/pages/trash.rs:320 msgid "Unexpected reply from the mount service." @@ -412,7 +413,7 @@ msgstr "Risposta inattesa dal servizio di montaggio." #: crates/pdfs-gui/src/app/pages/browser.rs:2914 #: crates/pdfs-gui/src/app/pages/devices.rs:209 #: crates/pdfs-gui/src/app/pages/locations.rs:844 -#: crates/pdfs-gui/src/app/pages/photos.rs:3251 +#: crates/pdfs-gui/src/app/pages/photos.rs:3269 #: crates/pdfs-gui/src/app/pages/shared.rs:523 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:156 #: crates/pdfs-gui/src/app/pages/status.rs:1301 @@ -424,7 +425,7 @@ msgstr "Non connesso" #: crates/pdfs-gui/src/app/pages/browser.rs:2915 #: crates/pdfs-gui/src/app/pages/devices.rs:210 #: crates/pdfs-gui/src/app/pages/locations.rs:845 -#: crates/pdfs-gui/src/app/pages/photos.rs:3252 +#: crates/pdfs-gui/src/app/pages/photos.rs:3270 #: crates/pdfs-gui/src/app/pages/shared.rs:524 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:157 #: crates/pdfs-gui/src/app/pages/trash.rs:336 @@ -436,7 +437,7 @@ msgstr "Il servizio di montaggio di Proton Drive non è in esecuzione." #: crates/pdfs-gui/src/app/pages/browser.rs:2924 #: crates/pdfs-gui/src/app/pages/devices.rs:218 #: crates/pdfs-gui/src/app/pages/locations.rs:853 -#: crates/pdfs-gui/src/app/pages/photos.rs:3260 +#: crates/pdfs-gui/src/app/pages/photos.rs:3278 #: crates/pdfs-gui/src/app/pages/shared.rs:532 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:165 #: crates/pdfs-gui/src/app/pages/status.rs:305 @@ -449,7 +450,7 @@ msgstr "Connessione…" #: crates/pdfs-gui/src/app/pages/browser.rs:2925 #: crates/pdfs-gui/src/app/pages/devices.rs:219 #: crates/pdfs-gui/src/app/pages/locations.rs:854 -#: crates/pdfs-gui/src/app/pages/photos.rs:3261 +#: crates/pdfs-gui/src/app/pages/photos.rs:3279 #: crates/pdfs-gui/src/app/pages/shared.rs:533 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:166 #: crates/pdfs-gui/src/app/pages/trash.rs:345 @@ -457,12 +458,12 @@ msgid "Waiting for the Proton Drive mount service to come up." msgstr "In attesa dell'avvio del servizio di montaggio di Proton Drive." #: crates/pdfs-gui/src/app/pages/activity.rs:419 -#: crates/pdfs-gui/src/app/pages/photos.rs:2504 +#: crates/pdfs-gui/src/app/pages/photos.rs:2522 msgid "Today" msgstr "Oggi" #: crates/pdfs-gui/src/app/pages/activity.rs:422 -#: crates/pdfs-gui/src/app/pages/photos.rs:2509 +#: crates/pdfs-gui/src/app/pages/photos.rs:2527 msgid "Yesterday" msgstr "Ieri" @@ -521,7 +522,7 @@ msgstr "Risolto" #. Translators: strftime format for the time of day in the activity feed, such as "14:05". #. Translators: strftime format for the time a photo was taken, shown on its tile, such as "14:05". #: crates/pdfs-gui/src/app/pages/activity.rs:580 -#: crates/pdfs-gui/src/app/pages/photos.rs:2548 +#: crates/pdfs-gui/src/app/pages/photos.rs:2566 msgid "%H:%M" msgstr "%H:%M" @@ -627,12 +628,12 @@ msgid "Reading your Proton Drive albums." msgstr "Lettura degli album di Proton Drive." #: crates/pdfs-gui/src/app/pages/albums.rs:59 -#: crates/pdfs-gui/src/app/pages/photos.rs:3130 +#: crates/pdfs-gui/src/app/pages/photos.rs:3148 msgid "No photo library" msgstr "Nessuna libreria di foto" #: crates/pdfs-gui/src/app/pages/albums.rs:60 -#: crates/pdfs-gui/src/app/pages/photos.rs:3131 +#: crates/pdfs-gui/src/app/pages/photos.rs:3149 msgid "This Proton account doesn't have Photos enabled." msgstr "Questo account Proton non ha Foto abilitato." @@ -665,7 +666,7 @@ msgstr[1] "{n} album" #: crates/pdfs-gui/src/app/pages/albums.rs:205 #: crates/pdfs-gui/src/app/pages/browser.rs:1246 -#: crates/pdfs-gui/src/app/pages/photos.rs:2984 +#: crates/pdfs-gui/src/app/pages/photos.rs:3002 #: crates/pdfs-gui/src/app/pages/shared.rs:384 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:244 #: crates/pdfs-gui/src/app/widgets/details.rs:155 @@ -725,16 +726,17 @@ msgstr "Impossibile creare l'album" #: crates/pdfs-gui/src/app/pages/devices.rs:532 #: crates/pdfs-gui/src/app/pages/devices.rs:682 #: crates/pdfs-gui/src/app/pages/devices.rs:912 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:63 #: crates/pdfs-gui/src/app/pages/locations.rs:342 #: crates/pdfs-gui/src/app/pages/locations.rs:516 #: crates/pdfs-gui/src/app/pages/locations.rs:739 #: crates/pdfs-gui/src/app/pages/locations.rs:1090 #: crates/pdfs-gui/src/app/pages/locations.rs:1109 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1424 -#: crates/pdfs-gui/src/app/pages/photos.rs:1272 -#: crates/pdfs-gui/src/app/pages/photos.rs:1921 -#: crates/pdfs-gui/src/app/pages/photos.rs:3048 -#: crates/pdfs-gui/src/app/pages/photos.rs:3223 +#: crates/pdfs-gui/src/app/pages/photos.rs:1284 +#: crates/pdfs-gui/src/app/pages/photos.rs:1939 +#: crates/pdfs-gui/src/app/pages/photos.rs:3066 +#: crates/pdfs-gui/src/app/pages/photos.rs:3241 #: crates/pdfs-gui/src/app/pages/shared.rs:510 #: crates/pdfs-gui/src/app/pages/shared.rs:838 #: crates/pdfs-gui/src/app/pages/status.rs:672 @@ -798,7 +800,7 @@ msgstr[0] "Scegli un album per {n} foto." msgstr[1] "Scegli un album per {n} foto." #: crates/pdfs-gui/src/app/pages/albums.rs:424 -#: crates/pdfs-gui/src/app/pages/photos.rs:712 +#: crates/pdfs-gui/src/app/pages/photos.rs:722 msgid "New Album…" msgstr "Nuovo album…" @@ -989,7 +991,7 @@ msgstr "I miei file" #. Translators: {n} is how many items are selected: files and folders in My Files, photos here. #: crates/pdfs-gui/src/app/pages/browser.rs:638 #: crates/pdfs-gui/src/app/pages/browser.rs:1331 -#: crates/pdfs-gui/src/app/pages/photos.rs:1775 +#: crates/pdfs-gui/src/app/pages/photos.rs:1787 #, rust-format msgid "{n} selected" msgid_plural "{n} selected" @@ -998,8 +1000,8 @@ msgstr[1] "{n} selezionati" #: crates/pdfs-gui/src/app/pages/browser.rs:674 #: crates/pdfs-gui/src/app/pages/browser.rs:709 -#: crates/pdfs-gui/src/app/pages/photos.rs:1914 -#: crates/pdfs-gui/src/app/pages/photos.rs:1920 +#: crates/pdfs-gui/src/app/pages/photos.rs:1932 +#: crates/pdfs-gui/src/app/pages/photos.rs:1938 msgid "Couldn't move to Trash" msgstr "Impossibile spostare nel cestino" @@ -1035,7 +1037,7 @@ msgstr[0] "{n} elemento spostato nel cestino" msgstr[1] "{n} elementi spostati nel cestino" #: crates/pdfs-gui/src/app/pages/browser.rs:727 -#: crates/pdfs-gui/src/app/pages/photos.rs:1907 +#: crates/pdfs-gui/src/app/pages/photos.rs:1925 msgid "Undo" msgstr "Annulla" @@ -1092,7 +1094,7 @@ msgid "Open With…" msgstr "Apri con…" #: crates/pdfs-gui/src/app/pages/browser.rs:1263 -#: crates/pdfs-gui/src/app/pages/photos.rs:2982 +#: crates/pdfs-gui/src/app/pages/photos.rs:3000 msgctxt "verb" msgid "Play" msgstr "Riproduci" @@ -1389,7 +1391,7 @@ msgstr[0] "Caricamento di {n} elemento…" msgstr[1] "Caricamento di {n} elementi…" #: crates/pdfs-gui/src/app/pages/browser.rs:2696 -#: crates/pdfs-gui/src/app/pages/photos.rs:730 +#: crates/pdfs-gui/src/app/pages/photos.rs:740 msgctxt "verb" msgid "View" msgstr "Visualizza" @@ -1862,6 +1864,51 @@ msgstr "Identità adottata" msgid "Couldn't adopt that computer" msgstr "Impossibile adottare quel computer" +#: crates/pdfs-gui/src/app/pages/duplicates.rs:15 +msgid "Looking for duplicates…" +msgstr "Ricerca dei duplicati…" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:42 +msgid "Duplicates" +msgstr "Duplicati" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:56 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:62 +msgid "Couldn't look for duplicates" +msgstr "Impossibile cercare i duplicati" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:69 +msgid "No duplicates" +msgstr "Nessun duplicato" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:71 +msgid "Every photo in your library is stored once." +msgstr "Ogni foto della libreria è salvata una sola volta." + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:88 +msgid "" +"These photos are stored more than once. The copies you don't keep move to " +"Trash, where you can restore them." +msgstr "Queste foto sono salvate più di una volta. Le copie che non tieni vengono spostate nel cestino, da dove puoi ripristinarle." + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:111 +#, rust-format +msgid "{date}, {n} copy" +msgid_plural "{date}, {n} copies" +msgstr[0] "{date}, {n} copia" +msgstr[1] "{date}, {n} copie" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:143 +#, rust-format +msgid "Move {n} copy to Trash" +msgid_plural "Move {n} copies to Trash" +msgstr[0] "Sposta {n} copia nel cestino" +msgstr[1] "Sposta {n} copie nel cestino" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:235 +msgid "Keep" +msgstr "Tieni" + #: crates/pdfs-gui/src/app/pages/locations.rs:89 msgid "Add Folder" msgstr "Aggiungi cartella" @@ -2562,173 +2609,177 @@ msgid "Hide details" msgstr "Nascondi dettagli" #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1429 -#: crates/pdfs-gui/src/app/pages/photos.rs:3043 -#: crates/pdfs-gui/src/app/pages/photos.rs:3047 +#: crates/pdfs-gui/src/app/pages/photos.rs:3061 +#: crates/pdfs-gui/src/app/pages/photos.rs:3065 msgid "Couldn't change the favorite" msgstr "Impossibile modificare il preferito" -#: crates/pdfs-gui/src/app/pages/photos.rs:427 -#: crates/pdfs-gui/src/app/pages/photos.rs:507 +#: crates/pdfs-gui/src/app/pages/photos.rs:428 +#: crates/pdfs-gui/src/app/pages/photos.rs:508 msgid "Upload photos" msgstr "Carica foto" -#: crates/pdfs-gui/src/app/pages/photos.rs:432 +#: crates/pdfs-gui/src/app/pages/photos.rs:433 #: crates/pdfs-gui/src/app/pages/takeout.rs:287 msgid "Import from Google Photos" msgstr "Importa da Google Photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:472 -#: crates/pdfs-gui/src/app/pages/photos.rs:612 +#: crates/pdfs-gui/src/app/pages/photos.rs:473 +#: crates/pdfs-gui/src/app/pages/photos.rs:622 msgid "Jump to a month" msgstr "Vai a un mese" -#: crates/pdfs-gui/src/app/pages/photos.rs:491 +#: crates/pdfs-gui/src/app/pages/photos.rs:492 msgid "Back to albums" msgstr "Torna agli album" -#: crates/pdfs-gui/src/app/pages/photos.rs:503 +#: crates/pdfs-gui/src/app/pages/photos.rs:504 msgctxt "verb" msgid "Upload" msgstr "Carica" -#: crates/pdfs-gui/src/app/pages/photos.rs:516 +#: crates/pdfs-gui/src/app/pages/photos.rs:517 msgid "Import a Google Photos Takeout export" msgstr "Importa un'esportazione Google Takeout di Google Photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:526 -#: crates/pdfs-gui/src/app/pages/photos.rs:535 -#: crates/pdfs-gui/src/app/pages/photos.rs:1773 +#: crates/pdfs-gui/src/app/pages/photos.rs:527 +msgid "Find duplicates" +msgstr "Trova duplicati" + +#: crates/pdfs-gui/src/app/pages/photos.rs:536 +#: crates/pdfs-gui/src/app/pages/photos.rs:545 +#: crates/pdfs-gui/src/app/pages/photos.rs:1785 msgid "Select photos" msgstr "Seleziona foto" -#: crates/pdfs-gui/src/app/pages/photos.rs:546 -#: crates/pdfs-gui/src/app/pages/photos.rs:3000 +#: crates/pdfs-gui/src/app/pages/photos.rs:556 +#: crates/pdfs-gui/src/app/pages/photos.rs:3018 msgid "Add to Album…" msgstr "Aggiungi all'album…" -#: crates/pdfs-gui/src/app/pages/photos.rs:552 +#: crates/pdfs-gui/src/app/pages/photos.rs:562 msgid "Leave selection (Esc)" msgstr "Esci dalla selezione (Esc)" -#: crates/pdfs-gui/src/app/pages/photos.rs:596 +#: crates/pdfs-gui/src/app/pages/photos.rs:606 msgid "Show only favorites" msgstr "Mostra solo i preferiti" -#: crates/pdfs-gui/src/app/pages/photos.rs:603 +#: crates/pdfs-gui/src/app/pages/photos.rs:613 msgid "Show only photos not in an album" msgstr "Mostra solo le foto non in un album" -#: crates/pdfs-gui/src/app/pages/photos.rs:610 -#: crates/pdfs-gui/src/app/pages/photos.rs:845 +#: crates/pdfs-gui/src/app/pages/photos.rs:620 +#: crates/pdfs-gui/src/app/pages/photos.rs:857 msgid "All dates" msgstr "Tutte le date" -#: crates/pdfs-gui/src/app/pages/photos.rs:631 +#: crates/pdfs-gui/src/app/pages/photos.rs:641 msgid "Timeline" msgstr "Cronologia" -#: crates/pdfs-gui/src/app/pages/photos.rs:635 +#: crates/pdfs-gui/src/app/pages/photos.rs:645 msgid "Albums" msgstr "Album" -#: crates/pdfs-gui/src/app/pages/photos.rs:654 +#: crates/pdfs-gui/src/app/pages/photos.rs:664 msgid "On this day" msgstr "Accadde oggi" -#: crates/pdfs-gui/src/app/pages/photos.rs:729 +#: crates/pdfs-gui/src/app/pages/photos.rs:739 msgid "Importing from Google Photos…" msgstr "Importazione da Google Photos…" #. Translators: strftime format for a month on its own, such as "June 2024". %OB is the month name in its standalone (nominative) form; use %B if your language has no separate form. -#: crates/pdfs-gui/src/app/pages/photos.rs:821 +#: crates/pdfs-gui/src/app/pages/photos.rs:833 msgid "%OB %Y" msgstr "%B %Y" #. Translators: a row of the date jump; {month} is a month such as "June 2024", {count} how many photos it holds. -#: crates/pdfs-gui/src/app/pages/photos.rs:852 +#: crates/pdfs-gui/src/app/pages/photos.rs:864 #, rust-format msgid "{month} ({count})" msgstr "{month} ({count})" #. Translators: a Photos filter tab that shows photos, videos and raw files together. -#: crates/pdfs-gui/src/app/pages/photos.rs:889 +#: crates/pdfs-gui/src/app/pages/photos.rs:901 msgctxt "photo filter" msgid "All" msgstr "Tutti" -#: crates/pdfs-gui/src/app/pages/photos.rs:890 +#: crates/pdfs-gui/src/app/pages/photos.rs:902 msgctxt "photo filter" msgid "Photos" msgstr "Foto" -#: crates/pdfs-gui/src/app/pages/photos.rs:891 +#: crates/pdfs-gui/src/app/pages/photos.rs:903 msgctxt "photo filter" msgid "Videos" msgstr "Video" #. Translators: a Photos filter tab for raw camera files. -#: crates/pdfs-gui/src/app/pages/photos.rs:893 +#: crates/pdfs-gui/src/app/pages/photos.rs:905 msgctxt "photo filter" msgid "Raw" msgstr "RAW" -#: crates/pdfs-gui/src/app/pages/photos.rs:1198 +#: crates/pdfs-gui/src/app/pages/photos.rs:1210 msgid "Select Photo to Upload" msgstr "Seleziona la foto da caricare" -#: crates/pdfs-gui/src/app/pages/photos.rs:1202 +#: crates/pdfs-gui/src/app/pages/photos.rs:1214 #: crates/pdfs-gui/src/prompt.rs:60 msgid "Images" msgstr "Immagini" -#: crates/pdfs-gui/src/app/pages/photos.rs:1258 +#: crates/pdfs-gui/src/app/pages/photos.rs:1270 msgid "Photo uploaded" msgstr "Foto caricata" -#: crates/pdfs-gui/src/app/pages/photos.rs:1263 -#: crates/pdfs-gui/src/app/pages/photos.rs:1271 +#: crates/pdfs-gui/src/app/pages/photos.rs:1275 +#: crates/pdfs-gui/src/app/pages/photos.rs:1283 msgid "Couldn't upload photo" msgstr "Impossibile caricare la foto" #. Translators: badge on a photo tile whose shot includes a raw camera file. -#: crates/pdfs-gui/src/app/pages/photos.rs:1432 +#: crates/pdfs-gui/src/app/pages/photos.rs:1444 msgid "RAW" msgstr "RAW" -#: crates/pdfs-gui/src/app/pages/photos.rs:1817 +#: crates/pdfs-gui/src/app/pages/photos.rs:1829 msgid "Move this photo to Trash?" msgstr "Spostare questa foto nel cestino?" -#: crates/pdfs-gui/src/app/pages/photos.rs:1819 +#: crates/pdfs-gui/src/app/pages/photos.rs:1831 #, rust-format msgid "Move this photo to Trash? It is stored as {n} file." msgid_plural "Move this photo to Trash? It is stored as {n} files." msgstr[0] "Spostare questa foto nel cestino? È memorizzata come {n} file." msgstr[1] "Spostare questa foto nel cestino? È memorizzata come {n} file." -#: crates/pdfs-gui/src/app/pages/photos.rs:1825 +#: crates/pdfs-gui/src/app/pages/photos.rs:1837 #, rust-format msgid "Move {n} photo to Trash?" msgid_plural "Move {n} photos to Trash?" msgstr[0] "Spostare {n} foto nel cestino?" msgstr[1] "Spostare {n} foto nel cestino?" -#: crates/pdfs-gui/src/app/pages/photos.rs:1832 +#: crates/pdfs-gui/src/app/pages/photos.rs:1844 #, rust-format msgid "Move {n} photo to Trash? They are stored as {files} files." msgid_plural "Move {n} photos to Trash? They are stored as {files} files." msgstr[0] "Spostare {n} foto nel cestino? Sono memorizzate come {files} file." msgstr[1] "Spostare {n} foto nel cestino? Sono memorizzate come {files} file." -#: crates/pdfs-gui/src/app/pages/photos.rs:1890 +#: crates/pdfs-gui/src/app/pages/photos.rs:1908 msgid "The server refused." msgstr "Il server ha rifiutato la richiesta." -#: crates/pdfs-gui/src/app/pages/photos.rs:1893 +#: crates/pdfs-gui/src/app/pages/photos.rs:1911 msgid "Some photos couldn't be moved to Trash" msgstr "Non è stato possibile spostare alcune foto nel cestino" -#: crates/pdfs-gui/src/app/pages/photos.rs:1902 +#: crates/pdfs-gui/src/app/pages/photos.rs:1920 #, rust-format msgid "Moved {n} photo to Trash" msgid_plural "Moved {n} photos to Trash" @@ -2736,7 +2787,7 @@ msgstr[0] "{n} foto spostata nel cestino" msgstr[1] "{n} foto spostate nel cestino" #. Translators: the Photos page subtitle, such as "12 videos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2458 +#: crates/pdfs-gui/src/app/pages/photos.rs:2476 #, rust-format msgid "{count} video" msgid_plural "{count} videos" @@ -2744,7 +2795,7 @@ msgstr[0] "{count} video" msgstr[1] "{count} video" #. Translators: the Photos page subtitle, such as "12 raw photos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2460 +#: crates/pdfs-gui/src/app/pages/photos.rs:2478 #, rust-format msgid "{count} raw photo" msgid_plural "{count} raw photos" @@ -2752,140 +2803,140 @@ msgstr[0] "{count} foto RAW" msgstr[1] "{count} foto RAW" #. Translators: the Photos page subtitle, such as "1,204 photos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2462 +#: crates/pdfs-gui/src/app/pages/photos.rs:2480 #, rust-format msgid "{count} photo" msgid_plural "{count} photos" msgstr[0] "{count} foto" msgstr[1] "{count} foto" -#: crates/pdfs-gui/src/app/pages/photos.rs:2490 -#: crates/pdfs-gui/src/app/pages/photos.rs:2516 +#: crates/pdfs-gui/src/app/pages/photos.rs:2508 +#: crates/pdfs-gui/src/app/pages/photos.rs:2534 msgid "Unknown date" msgstr "Data sconosciuta" #. Translators: strftime format for a day heading in the photo timeline, such as "3 June 2026". -#: crates/pdfs-gui/src/app/pages/photos.rs:2513 +#: crates/pdfs-gui/src/app/pages/photos.rs:2531 msgid "%-d %B %Y" msgstr "%-d %B %Y" #. Translators: strftime format for a photo's capture date and time, such as "2026-06-03 14:05:09". -#: crates/pdfs-gui/src/app/pages/photos.rs:2534 +#: crates/pdfs-gui/src/app/pages/photos.rs:2552 msgid "%Y-%m-%d %H:%M:%S" msgstr "%d/%m/%Y %H:%M:%S" -#: crates/pdfs-gui/src/app/pages/photos.rs:2538 -#: crates/pdfs-gui/src/app/pages/photos.rs:2540 +#: crates/pdfs-gui/src/app/pages/photos.rs:2556 +#: crates/pdfs-gui/src/app/pages/photos.rs:2558 msgid "Unknown Date" msgstr "Data sconosciuta" #. Translators: strftime format for the day a photo was taken, shown on its tile when the timeline is grouped by month or year, such as "3 Jun". -#: crates/pdfs-gui/src/app/pages/photos.rs:2558 +#: crates/pdfs-gui/src/app/pages/photos.rs:2576 msgid "%-d %b" msgstr "%-d %b" -#: crates/pdfs-gui/src/app/pages/photos.rs:2580 +#: crates/pdfs-gui/src/app/pages/photos.rs:2598 msgid "Every photo is in an album" msgstr "Ogni foto è in un album" -#: crates/pdfs-gui/src/app/pages/photos.rs:2581 +#: crates/pdfs-gui/src/app/pages/photos.rs:2599 msgid "Turn off the album filter to see everything." msgstr "Disattiva il filtro degli album per vedere tutto." -#: crates/pdfs-gui/src/app/pages/photos.rs:2586 +#: crates/pdfs-gui/src/app/pages/photos.rs:2604 msgid "No photos yet" msgstr "Ancora nessuna foto" -#: crates/pdfs-gui/src/app/pages/photos.rs:2587 +#: crates/pdfs-gui/src/app/pages/photos.rs:2605 msgid "Photos you upload to Proton Drive appear here." msgstr "Le foto caricate su Proton Drive appaiono qui." -#: crates/pdfs-gui/src/app/pages/photos.rs:2590 +#: crates/pdfs-gui/src/app/pages/photos.rs:2608 msgid "No favorites yet" msgstr "Ancora nessun preferito" -#: crates/pdfs-gui/src/app/pages/photos.rs:2591 +#: crates/pdfs-gui/src/app/pages/photos.rs:2609 msgid "Star a photo in the viewer or from its menu to find it here." msgstr "" "Aggiungi una foto ai preferiti nel visualizzatore o dal suo menu per " "trovarla qui." #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2596 +#: crates/pdfs-gui/src/app/pages/photos.rs:2614 #, rust-format msgid "No favorite videos in {month}" msgstr "Nessun video preferito a {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2597 +#: crates/pdfs-gui/src/app/pages/photos.rs:2615 msgid "No favorite videos" msgstr "Nessun video preferito" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2599 +#: crates/pdfs-gui/src/app/pages/photos.rs:2617 #, rust-format msgid "No favorite raw files in {month}" msgstr "Nessun file RAW preferito a {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2600 +#: crates/pdfs-gui/src/app/pages/photos.rs:2618 msgid "No favorite raw files" msgstr "Nessun file RAW preferito" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2602 +#: crates/pdfs-gui/src/app/pages/photos.rs:2620 #, rust-format msgid "No favorite photos in {month}" msgstr "Nessuna foto preferita a {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2603 +#: crates/pdfs-gui/src/app/pages/photos.rs:2621 msgid "No favorite photos" msgstr "Nessuna foto preferita" -#: crates/pdfs-gui/src/app/pages/photos.rs:2605 +#: crates/pdfs-gui/src/app/pages/photos.rs:2623 msgid "Turn off the favorites filter to see everything." msgstr "Disattiva il filtro dei preferiti per vedere tutto." #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2610 +#: crates/pdfs-gui/src/app/pages/photos.rs:2628 #, rust-format msgid "No videos in {month}" msgstr "Nessun video a {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2611 +#: crates/pdfs-gui/src/app/pages/photos.rs:2629 msgid "No videos" msgstr "Nessun video" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2613 +#: crates/pdfs-gui/src/app/pages/photos.rs:2631 #, rust-format msgid "No raw files in {month}" msgstr "Nessun file RAW a {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2614 +#: crates/pdfs-gui/src/app/pages/photos.rs:2632 msgid "No raw files" msgstr "Nessun file RAW" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2616 +#: crates/pdfs-gui/src/app/pages/photos.rs:2634 #, rust-format msgid "No photos in {month}" msgstr "Nessuna foto a {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2617 +#: crates/pdfs-gui/src/app/pages/photos.rs:2635 msgid "No photos" msgstr "Nessuna foto" -#: crates/pdfs-gui/src/app/pages/photos.rs:2619 +#: crates/pdfs-gui/src/app/pages/photos.rs:2637 msgid "Try another filter or month." msgstr "Prova un altro filtro o un altro mese." -#: crates/pdfs-gui/src/app/pages/photos.rs:2735 +#: crates/pdfs-gui/src/app/pages/photos.rs:2753 #, rust-format msgid "{n} year ago" msgid_plural "{n} years ago" msgstr[0] "{n} anno fa" msgstr[1] "{n} anni fa" -#: crates/pdfs-gui/src/app/pages/photos.rs:2760 +#: crates/pdfs-gui/src/app/pages/photos.rs:2778 #, rust-format msgid "{date}, {n} photo" msgid_plural "{date}, {n} photos" @@ -2893,55 +2944,55 @@ msgstr[0] "{date}, {n} foto" msgstr[1] "{date}, {n} foto" #. Translators: a check item in a photo's menu, on while the photo is a favorite. -#: crates/pdfs-gui/src/app/pages/photos.rs:2989 +#: crates/pdfs-gui/src/app/pages/photos.rs:3007 msgctxt "state" msgid "Favorite" msgstr "Preferito" -#: crates/pdfs-gui/src/app/pages/photos.rs:2994 +#: crates/pdfs-gui/src/app/pages/photos.rs:3012 msgctxt "verb" msgid "Select" msgstr "Seleziona" -#: crates/pdfs-gui/src/app/pages/photos.rs:3006 +#: crates/pdfs-gui/src/app/pages/photos.rs:3024 msgid "Remove from Album" msgstr "Rimuovi dall'album" -#: crates/pdfs-gui/src/app/pages/photos.rs:3012 +#: crates/pdfs-gui/src/app/pages/photos.rs:3030 msgid "Move to Trash…" msgstr "Sposta nel cestino…" -#: crates/pdfs-gui/src/app/pages/photos.rs:3036 +#: crates/pdfs-gui/src/app/pages/photos.rs:3054 msgid "Added to Favorites" msgstr "Aggiunto ai preferiti" -#: crates/pdfs-gui/src/app/pages/photos.rs:3038 +#: crates/pdfs-gui/src/app/pages/photos.rs:3056 msgid "Removed from Favorites" msgstr "Rimosso dai preferiti" -#: crates/pdfs-gui/src/app/pages/photos.rs:3067 +#: crates/pdfs-gui/src/app/pages/photos.rs:3085 msgid "Loading photos…" msgstr "Caricamento delle foto…" -#: crates/pdfs-gui/src/app/pages/photos.rs:3068 +#: crates/pdfs-gui/src/app/pages/photos.rs:3086 msgid "Reading your Proton Drive timeline." msgstr "Lettura della cronologia di Proton Drive." -#: crates/pdfs-gui/src/app/pages/photos.rs:3161 +#: crates/pdfs-gui/src/app/pages/photos.rs:3179 msgid "Empty album" msgstr "Album vuoto" -#: crates/pdfs-gui/src/app/pages/photos.rs:3162 +#: crates/pdfs-gui/src/app/pages/photos.rs:3180 msgid "This album has no photos in it." msgstr "Questo album non contiene foto." -#: crates/pdfs-gui/src/app/pages/photos.rs:3204 #: crates/pdfs-gui/src/app/pages/photos.rs:3222 +#: crates/pdfs-gui/src/app/pages/photos.rs:3240 msgid "Couldn't load more photos" msgstr "Impossibile caricare altre foto" -#: crates/pdfs-gui/src/app/pages/photos.rs:3209 -#: crates/pdfs-gui/src/app/pages/photos.rs:3216 +#: crates/pdfs-gui/src/app/pages/photos.rs:3227 +#: crates/pdfs-gui/src/app/pages/photos.rs:3234 msgid "Couldn't load photos" msgstr "Impossibile caricare le foto" diff --git a/po/nl.po b/po/nl.po index a84c99d..ab94426 100644 --- a/po/nl.po +++ b/po/nl.po @@ -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-09-28 00:44+0200\n" +"POT-Creation-Date: 2026-09-28 00:50+0200\n" "PO-Revision-Date: 2026-09-23 12:00+0200\n" "Last-Translator: Proton Drive for Linux contributors\n" "Language-Team: Dutch\n" @@ -15,99 +15,99 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: crates/pdfs-gui/src/app/main.rs:835 +#: crates/pdfs-gui/src/app/main.rs:840 #: crates/pdfs-gui/src/app/pages/locations.rs:1133 #: crates/pdfs-gui/src/prompt.rs:169 msgid "My files" msgstr "Mijn bestanden" -#: crates/pdfs-gui/src/app/main.rs:838 crates/pdfs-gui/src/app/main.rs:1451 +#: crates/pdfs-gui/src/app/main.rs:843 crates/pdfs-gui/src/app/main.rs:1456 #: crates/pdfs-gui/src/app/pages/albums.rs:633 -#: crates/pdfs-gui/src/app/pages/photos.rs:746 +#: crates/pdfs-gui/src/app/pages/photos.rs:756 msgid "Photos" msgstr "Foto's" -#: crates/pdfs-gui/src/app/main.rs:843 +#: crates/pdfs-gui/src/app/main.rs:848 msgid "Shared with me" msgstr "Gedeeld met mij" -#: crates/pdfs-gui/src/app/main.rs:848 +#: crates/pdfs-gui/src/app/main.rs:853 msgid "Shared by me" msgstr "Gedeeld door mij" -#: crates/pdfs-gui/src/app/main.rs:851 +#: crates/pdfs-gui/src/app/main.rs:856 #: crates/pdfs-gui/src/app/pages/devices.rs:109 msgid "Computers" msgstr "Computers" -#: crates/pdfs-gui/src/app/main.rs:852 +#: crates/pdfs-gui/src/app/main.rs:857 #: crates/pdfs-gui/src/app/pages/trash.rs:106 msgid "Trash" msgstr "Prullenbak" -#: crates/pdfs-gui/src/app/main.rs:856 +#: crates/pdfs-gui/src/app/main.rs:861 msgid "Sync" msgstr "Synchronisatie" -#: crates/pdfs-gui/src/app/main.rs:861 +#: crates/pdfs-gui/src/app/main.rs:866 #: crates/pdfs-gui/src/app/pages/activity.rs:153 msgid "Activity" msgstr "Activiteit" -#: crates/pdfs-gui/src/app/main.rs:1007 +#: crates/pdfs-gui/src/app/main.rs:1012 msgid "Refresh (F5)" msgstr "Verversen (F5)" #. Translators: a failed action's toast. {what} says what failed, such as #. "Couldn't rename"; {detail} is the reason, usually untranslated text #. from the mount service. -#: crates/pdfs-gui/src/app/main.rs:1181 +#: crates/pdfs-gui/src/app/main.rs:1186 #, rust-format msgid "{what}: {detail}" msgstr "{what}: {detail}" -#: crates/pdfs-gui/src/app/main.rs:1200 +#: crates/pdfs-gui/src/app/main.rs:1205 msgid "You're offline" msgstr "Je bent offline" -#: crates/pdfs-gui/src/app/main.rs:1201 +#: crates/pdfs-gui/src/app/main.rs:1206 msgid "That's not there any more" msgstr "Dat bestaat niet meer" -#: crates/pdfs-gui/src/app/main.rs:1202 +#: crates/pdfs-gui/src/app/main.rs:1207 msgid "You don't have access to that" msgstr "Je hebt daar geen toegang toe" -#: crates/pdfs-gui/src/app/main.rs:1203 +#: crates/pdfs-gui/src/app/main.rs:1208 msgid "Something changed this first" msgstr "Er is eerst iets anders gewijzigd" -#: crates/pdfs-gui/src/app/main.rs:1204 +#: crates/pdfs-gui/src/app/main.rs:1209 msgid "Your Proton Drive is full" msgstr "Je Proton Drive is vol" -#: crates/pdfs-gui/src/app/main.rs:1245 crates/pdfs-gui/src/app/main.rs:1433 +#: crates/pdfs-gui/src/app/main.rs:1250 crates/pdfs-gui/src/app/main.rs:1438 #: crates/pdfs-gui/src/app/pages/status.rs:353 msgid "Preferences" msgstr "Voorkeuren" -#: crates/pdfs-gui/src/app/main.rs:1246 crates/pdfs-gui/src/app/main.rs:1490 +#: crates/pdfs-gui/src/app/main.rs:1251 crates/pdfs-gui/src/app/main.rs:1495 msgid "Keyboard Shortcuts" msgstr "Sneltoetsen" -#: crates/pdfs-gui/src/app/main.rs:1248 +#: crates/pdfs-gui/src/app/main.rs:1253 msgid "About Proton Drive for Linux" msgstr "Over Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1253 +#: crates/pdfs-gui/src/app/main.rs:1258 msgid "Main menu" msgstr "Hoofdmenu" -#: crates/pdfs-gui/src/app/main.rs:1299 +#: crates/pdfs-gui/src/app/main.rs:1304 msgid "Proton Drive for Linux" msgstr "Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1307 +#: crates/pdfs-gui/src/app/main.rs:1312 msgid "" "Files-on-demand Proton Drive for the Linux desktop.\n" "\n" @@ -119,23 +119,23 @@ msgstr "" "Onofficiële client — niet gelieerd aan, onderschreven door of ondersteund " "door Proton AG." -#: crates/pdfs-gui/src/app/main.rs:1312 +#: crates/pdfs-gui/src/app/main.rs:1317 msgid "Source Code" msgstr "Broncode" -#: crates/pdfs-gui/src/app/main.rs:1316 +#: crates/pdfs-gui/src/app/main.rs:1321 msgid "Proton Terms of Service" msgstr "Servicevoorwaarden van Proton" -#: crates/pdfs-gui/src/app/main.rs:1320 +#: crates/pdfs-gui/src/app/main.rs:1325 msgid "Proton Privacy Policy" msgstr "Privacybeleid van Proton" -#: crates/pdfs-gui/src/app/main.rs:1325 +#: crates/pdfs-gui/src/app/main.rs:1330 msgid "Disclaimer" msgstr "Disclaimer" -#: crates/pdfs-gui/src/app/main.rs:1329 +#: crates/pdfs-gui/src/app/main.rs:1334 msgid "" "This is an unofficial, community-built client. It is not affiliated with, " "endorsed by, or supported by Proton AG.\n" @@ -160,15 +160,15 @@ msgstr "" #. Translators: replace with your name(s) and email address(es), one #. per line, to be credited in the About dialog. -#: crates/pdfs-gui/src/app/main.rs:1340 +#: crates/pdfs-gui/src/app/main.rs:1345 msgid "translator-credits" msgstr "Bijdragers aan Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1371 +#: crates/pdfs-gui/src/app/main.rs:1376 msgid "Stop Proton Drive?" msgstr "Proton Drive stoppen?" -#: crates/pdfs-gui/src/app/main.rs:1372 +#: crates/pdfs-gui/src/app/main.rs:1377 msgid "" "The drive unmounts and nothing syncs until you connect again. Proton Drive " "starts again at your next login." @@ -176,7 +176,7 @@ msgstr "" "De schijf wordt ontkoppeld en er wordt niets gesynchroniseerd totdat je " "opnieuw verbinding maakt. Proton Drive start weer bij je volgende aanmelding." -#: crates/pdfs-gui/src/app/main.rs:1374 crates/pdfs-gui/src/app/main.rs:1647 +#: crates/pdfs-gui/src/app/main.rs:1379 crates/pdfs-gui/src/app/main.rs:1652 #: crates/pdfs-gui/src/app/pages/albums.rs:242 #: crates/pdfs-gui/src/app/pages/albums.rs:423 #: crates/pdfs-gui/src/app/pages/browser.rs:2273 @@ -190,7 +190,7 @@ msgstr "" #: crates/pdfs-gui/src/app/pages/locations.rs:670 #: crates/pdfs-gui/src/app/pages/locations.rs:1050 #: crates/pdfs-gui/src/app/pages/login.rs:312 -#: crates/pdfs-gui/src/app/pages/photos.rs:1842 +#: crates/pdfs-gui/src/app/pages/photos.rs:1854 #: crates/pdfs-gui/src/app/pages/shared.rs:717 #: crates/pdfs-gui/src/app/pages/shared.rs:748 #: crates/pdfs-gui/src/app/pages/shared.rs:789 @@ -204,67 +204,67 @@ msgstr "" msgid "Cancel" msgstr "Annuleren" -#: crates/pdfs-gui/src/app/main.rs:1375 +#: crates/pdfs-gui/src/app/main.rs:1380 msgctxt "verb" msgid "Stop" msgstr "Stoppen" -#: crates/pdfs-gui/src/app/main.rs:1392 +#: crates/pdfs-gui/src/app/main.rs:1397 msgid "Couldn't stop Proton Drive" msgstr "Kon Proton Drive niet stoppen" -#: crates/pdfs-gui/src/app/main.rs:1393 +#: crates/pdfs-gui/src/app/main.rs:1398 msgid "The mount service did not stop." msgstr "De koppeldienst is niet gestopt." -#: crates/pdfs-gui/src/app/main.rs:1429 +#: crates/pdfs-gui/src/app/main.rs:1434 #: crates/pdfs-gui/src/app/pages/status.rs:226 msgid "General" msgstr "Algemeen" -#: crates/pdfs-gui/src/app/main.rs:1431 +#: crates/pdfs-gui/src/app/main.rs:1436 #: crates/pdfs-gui/src/app/pages/browser.rs:270 msgid "Search Drive" msgstr "Drive doorzoeken" -#: crates/pdfs-gui/src/app/main.rs:1432 +#: crates/pdfs-gui/src/app/main.rs:1437 #: crates/pdfs-gui/src/app/pages/browser.rs:1363 msgid "Refresh" msgstr "Verversen" -#: crates/pdfs-gui/src/app/main.rs:1434 +#: crates/pdfs-gui/src/app/main.rs:1439 msgid "Keyboard shortcuts" msgstr "Sneltoetsen" -#: crates/pdfs-gui/src/app/main.rs:1438 +#: crates/pdfs-gui/src/app/main.rs:1443 msgid "Files" msgstr "Bestanden" -#: crates/pdfs-gui/src/app/main.rs:1440 +#: crates/pdfs-gui/src/app/main.rs:1445 #: crates/pdfs-gui/src/app/pages/browser.rs:319 #: crates/pdfs-gui/src/app/pages/browser.rs:2586 msgid "New folder" msgstr "Nieuwe map" -#: crates/pdfs-gui/src/app/main.rs:1441 +#: crates/pdfs-gui/src/app/main.rs:1446 #: crates/pdfs-gui/src/app/pages/browser.rs:315 msgid "Upload files" msgstr "Bestanden uploaden" -#: crates/pdfs-gui/src/app/main.rs:1442 +#: crates/pdfs-gui/src/app/main.rs:1447 msgid "Back / forward" msgstr "Terug / vooruit" -#: crates/pdfs-gui/src/app/main.rs:1443 +#: crates/pdfs-gui/src/app/main.rs:1448 #: crates/pdfs-gui/src/app/pages/browser.rs:2320 msgid "Parent folder" msgstr "Bovenliggende map" -#: crates/pdfs-gui/src/app/main.rs:1444 +#: crates/pdfs-gui/src/app/main.rs:1449 msgid "Grid / list" msgstr "Raster / lijst" -#: crates/pdfs-gui/src/app/main.rs:1445 +#: crates/pdfs-gui/src/app/main.rs:1450 #: crates/pdfs-gui/src/app/pages/albums.rs:297 #: crates/pdfs-gui/src/app/pages/browser.rs:2252 #: crates/pdfs-gui/src/app/pages/browser.rs:2274 @@ -273,62 +273,63 @@ msgstr "Raster / lijst" msgid "Rename" msgstr "Hernoemen" -#: crates/pdfs-gui/src/app/main.rs:1446 crates/pdfs-gui/src/app/main.rs:1466 +#: crates/pdfs-gui/src/app/main.rs:1451 crates/pdfs-gui/src/app/main.rs:1471 #: crates/pdfs-gui/src/app/pages/browser.rs:414 #: crates/pdfs-gui/src/app/pages/browser.rs:1306 #: crates/pdfs-gui/src/app/pages/browser.rs:1338 -#: crates/pdfs-gui/src/app/pages/photos.rs:540 -#: crates/pdfs-gui/src/app/pages/photos.rs:1839 -#: crates/pdfs-gui/src/app/pages/photos.rs:1843 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:24 +#: crates/pdfs-gui/src/app/pages/photos.rs:550 +#: crates/pdfs-gui/src/app/pages/photos.rs:1851 +#: crates/pdfs-gui/src/app/pages/photos.rs:1855 #: crates/pdfs-gui/src/app/widgets/details.rs:162 msgid "Move to Trash" msgstr "Naar prullenbak verplaatsen" -#: crates/pdfs-gui/src/app/main.rs:1447 +#: crates/pdfs-gui/src/app/main.rs:1452 msgid "Clear the selection" msgstr "Selectie wissen" -#: crates/pdfs-gui/src/app/main.rs:1453 +#: crates/pdfs-gui/src/app/main.rs:1458 msgid "Larger thumbnails" msgstr "Grotere miniaturen" -#: crates/pdfs-gui/src/app/main.rs:1454 +#: crates/pdfs-gui/src/app/main.rs:1459 msgid "Smaller thumbnails" msgstr "Kleinere miniaturen" -#: crates/pdfs-gui/src/app/main.rs:1455 +#: crates/pdfs-gui/src/app/main.rs:1460 msgid "Reset thumbnail size" msgstr "Miniatuurgrootte herstellen" -#: crates/pdfs-gui/src/app/main.rs:1456 +#: crates/pdfs-gui/src/app/main.rs:1461 msgid "Select all" msgstr "Alles selecteren" -#: crates/pdfs-gui/src/app/main.rs:1460 +#: crates/pdfs-gui/src/app/main.rs:1465 msgid "Photo Viewer" msgstr "Fotoweergave" -#: crates/pdfs-gui/src/app/main.rs:1462 +#: crates/pdfs-gui/src/app/main.rs:1467 msgid "Previous / next photo" msgstr "Vorige / volgende foto" -#: crates/pdfs-gui/src/app/main.rs:1463 +#: crates/pdfs-gui/src/app/main.rs:1468 msgid "First / last photo" msgstr "Eerste / laatste foto" -#: crates/pdfs-gui/src/app/main.rs:1464 +#: crates/pdfs-gui/src/app/main.rs:1469 msgid "Show details" msgstr "Details tonen" -#: crates/pdfs-gui/src/app/main.rs:1465 +#: crates/pdfs-gui/src/app/main.rs:1470 msgid "Fullscreen" msgstr "Volledig scherm" -#: crates/pdfs-gui/src/app/main.rs:1467 +#: crates/pdfs-gui/src/app/main.rs:1472 msgid "Close" msgstr "Sluiten" -#: crates/pdfs-gui/src/app/main.rs:1570 +#: crates/pdfs-gui/src/app/main.rs:1575 msgid "Select a single item to rename it" msgstr "Selecteer één item om het te hernoemen" @@ -365,7 +366,7 @@ msgstr "Vereist aandacht" #: crates/pdfs-gui/src/app/pages/browser.rs:306 #: crates/pdfs-gui/src/app/pages/devices.rs:84 #: crates/pdfs-gui/src/app/pages/locations.rs:134 -#: crates/pdfs-gui/src/app/pages/photos.rs:417 +#: crates/pdfs-gui/src/app/pages/photos.rs:418 #: crates/pdfs-gui/src/app/pages/shared.rs:83 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:38 #: crates/pdfs-gui/src/app/pages/trash.rs:57 crates/pdfs-gui/src/prompt.rs:593 @@ -401,7 +402,7 @@ msgstr "Kon activiteit niet lezen" #: crates/pdfs-gui/src/app/pages/browser.rs:2880 #: crates/pdfs-gui/src/app/pages/browser.rs:3066 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:310 -#: crates/pdfs-gui/src/app/pages/photos.rs:3217 +#: crates/pdfs-gui/src/app/pages/photos.rs:3235 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:139 #: crates/pdfs-gui/src/app/pages/trash.rs:320 msgid "Unexpected reply from the mount service." @@ -413,7 +414,7 @@ msgstr "Onverwacht antwoord van de koppeldienst." #: crates/pdfs-gui/src/app/pages/browser.rs:2914 #: crates/pdfs-gui/src/app/pages/devices.rs:209 #: crates/pdfs-gui/src/app/pages/locations.rs:844 -#: crates/pdfs-gui/src/app/pages/photos.rs:3251 +#: crates/pdfs-gui/src/app/pages/photos.rs:3269 #: crates/pdfs-gui/src/app/pages/shared.rs:523 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:156 #: crates/pdfs-gui/src/app/pages/status.rs:1301 @@ -425,7 +426,7 @@ msgstr "Niet verbonden" #: crates/pdfs-gui/src/app/pages/browser.rs:2915 #: crates/pdfs-gui/src/app/pages/devices.rs:210 #: crates/pdfs-gui/src/app/pages/locations.rs:845 -#: crates/pdfs-gui/src/app/pages/photos.rs:3252 +#: crates/pdfs-gui/src/app/pages/photos.rs:3270 #: crates/pdfs-gui/src/app/pages/shared.rs:524 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:157 #: crates/pdfs-gui/src/app/pages/trash.rs:336 @@ -437,7 +438,7 @@ msgstr "De koppeldienst van Proton Drive draait niet." #: crates/pdfs-gui/src/app/pages/browser.rs:2924 #: crates/pdfs-gui/src/app/pages/devices.rs:218 #: crates/pdfs-gui/src/app/pages/locations.rs:853 -#: crates/pdfs-gui/src/app/pages/photos.rs:3260 +#: crates/pdfs-gui/src/app/pages/photos.rs:3278 #: crates/pdfs-gui/src/app/pages/shared.rs:532 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:165 #: crates/pdfs-gui/src/app/pages/status.rs:305 @@ -450,7 +451,7 @@ msgstr "Verbinden…" #: crates/pdfs-gui/src/app/pages/browser.rs:2925 #: crates/pdfs-gui/src/app/pages/devices.rs:219 #: crates/pdfs-gui/src/app/pages/locations.rs:854 -#: crates/pdfs-gui/src/app/pages/photos.rs:3261 +#: crates/pdfs-gui/src/app/pages/photos.rs:3279 #: crates/pdfs-gui/src/app/pages/shared.rs:533 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:166 #: crates/pdfs-gui/src/app/pages/trash.rs:345 @@ -458,12 +459,12 @@ msgid "Waiting for the Proton Drive mount service to come up." msgstr "Wachten tot de koppeldienst van Proton Drive gestart is." #: crates/pdfs-gui/src/app/pages/activity.rs:419 -#: crates/pdfs-gui/src/app/pages/photos.rs:2504 +#: crates/pdfs-gui/src/app/pages/photos.rs:2522 msgid "Today" msgstr "Vandaag" #: crates/pdfs-gui/src/app/pages/activity.rs:422 -#: crates/pdfs-gui/src/app/pages/photos.rs:2509 +#: crates/pdfs-gui/src/app/pages/photos.rs:2527 msgid "Yesterday" msgstr "Gisteren" @@ -522,7 +523,7 @@ msgstr "Opgelost" #. Translators: strftime format for the time of day in the activity feed, such as "14:05". #. Translators: strftime format for the time a photo was taken, shown on its tile, such as "14:05". #: crates/pdfs-gui/src/app/pages/activity.rs:580 -#: crates/pdfs-gui/src/app/pages/photos.rs:2548 +#: crates/pdfs-gui/src/app/pages/photos.rs:2566 msgid "%H:%M" msgstr "%H:%M" @@ -628,12 +629,12 @@ msgid "Reading your Proton Drive albums." msgstr "Je Proton Drive-albums worden gelezen." #: crates/pdfs-gui/src/app/pages/albums.rs:59 -#: crates/pdfs-gui/src/app/pages/photos.rs:3130 +#: crates/pdfs-gui/src/app/pages/photos.rs:3148 msgid "No photo library" msgstr "Geen fotobibliotheek" #: crates/pdfs-gui/src/app/pages/albums.rs:60 -#: crates/pdfs-gui/src/app/pages/photos.rs:3131 +#: crates/pdfs-gui/src/app/pages/photos.rs:3149 msgid "This Proton account doesn't have Photos enabled." msgstr "Dit Proton-account heeft Foto's niet ingeschakeld." @@ -666,7 +667,7 @@ msgstr[1] "{n} albums" #: crates/pdfs-gui/src/app/pages/albums.rs:205 #: crates/pdfs-gui/src/app/pages/browser.rs:1246 -#: crates/pdfs-gui/src/app/pages/photos.rs:2984 +#: crates/pdfs-gui/src/app/pages/photos.rs:3002 #: crates/pdfs-gui/src/app/pages/shared.rs:384 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:244 #: crates/pdfs-gui/src/app/widgets/details.rs:155 @@ -726,16 +727,17 @@ msgstr "Kon het album niet aanmaken" #: crates/pdfs-gui/src/app/pages/devices.rs:532 #: crates/pdfs-gui/src/app/pages/devices.rs:682 #: crates/pdfs-gui/src/app/pages/devices.rs:912 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:63 #: crates/pdfs-gui/src/app/pages/locations.rs:342 #: crates/pdfs-gui/src/app/pages/locations.rs:516 #: crates/pdfs-gui/src/app/pages/locations.rs:739 #: crates/pdfs-gui/src/app/pages/locations.rs:1090 #: crates/pdfs-gui/src/app/pages/locations.rs:1109 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1424 -#: crates/pdfs-gui/src/app/pages/photos.rs:1272 -#: crates/pdfs-gui/src/app/pages/photos.rs:1921 -#: crates/pdfs-gui/src/app/pages/photos.rs:3048 -#: crates/pdfs-gui/src/app/pages/photos.rs:3223 +#: crates/pdfs-gui/src/app/pages/photos.rs:1284 +#: crates/pdfs-gui/src/app/pages/photos.rs:1939 +#: crates/pdfs-gui/src/app/pages/photos.rs:3066 +#: crates/pdfs-gui/src/app/pages/photos.rs:3241 #: crates/pdfs-gui/src/app/pages/shared.rs:510 #: crates/pdfs-gui/src/app/pages/shared.rs:838 #: crates/pdfs-gui/src/app/pages/status.rs:672 @@ -799,7 +801,7 @@ msgstr[0] "Kies een album voor {n} foto." msgstr[1] "Kies een album voor {n} foto's." #: crates/pdfs-gui/src/app/pages/albums.rs:424 -#: crates/pdfs-gui/src/app/pages/photos.rs:712 +#: crates/pdfs-gui/src/app/pages/photos.rs:722 msgid "New Album…" msgstr "Nieuw album…" @@ -990,7 +992,7 @@ msgstr "Mijn bestanden" #. Translators: {n} is how many items are selected: files and folders in My Files, photos here. #: crates/pdfs-gui/src/app/pages/browser.rs:638 #: crates/pdfs-gui/src/app/pages/browser.rs:1331 -#: crates/pdfs-gui/src/app/pages/photos.rs:1775 +#: crates/pdfs-gui/src/app/pages/photos.rs:1787 #, rust-format msgid "{n} selected" msgid_plural "{n} selected" @@ -999,8 +1001,8 @@ msgstr[1] "{n} geselecteerd" #: crates/pdfs-gui/src/app/pages/browser.rs:674 #: crates/pdfs-gui/src/app/pages/browser.rs:709 -#: crates/pdfs-gui/src/app/pages/photos.rs:1914 -#: crates/pdfs-gui/src/app/pages/photos.rs:1920 +#: crates/pdfs-gui/src/app/pages/photos.rs:1932 +#: crates/pdfs-gui/src/app/pages/photos.rs:1938 msgid "Couldn't move to Trash" msgstr "Kon niet naar prullenbak verplaatsen" @@ -1036,7 +1038,7 @@ msgstr[0] "{n} item naar prullenbak verplaatst" msgstr[1] "{n} items naar prullenbak verplaatst" #: crates/pdfs-gui/src/app/pages/browser.rs:727 -#: crates/pdfs-gui/src/app/pages/photos.rs:1907 +#: crates/pdfs-gui/src/app/pages/photos.rs:1925 msgid "Undo" msgstr "Ongedaan maken" @@ -1093,7 +1095,7 @@ msgid "Open With…" msgstr "Openen met…" #: crates/pdfs-gui/src/app/pages/browser.rs:1263 -#: crates/pdfs-gui/src/app/pages/photos.rs:2982 +#: crates/pdfs-gui/src/app/pages/photos.rs:3000 msgctxt "verb" msgid "Play" msgstr "Afspelen" @@ -1388,7 +1390,7 @@ msgstr[0] "{n} item uploaden…" msgstr[1] "{n} items uploaden…" #: crates/pdfs-gui/src/app/pages/browser.rs:2696 -#: crates/pdfs-gui/src/app/pages/photos.rs:730 +#: crates/pdfs-gui/src/app/pages/photos.rs:740 msgctxt "verb" msgid "View" msgstr "Bekijken" @@ -1860,6 +1862,51 @@ msgstr "Identiteit overgenomen" msgid "Couldn't adopt that computer" msgstr "Kon die computer niet overnemen" +#: crates/pdfs-gui/src/app/pages/duplicates.rs:15 +msgid "Looking for duplicates…" +msgstr "Duplicaten zoeken…" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:42 +msgid "Duplicates" +msgstr "Duplicaten" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:56 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:62 +msgid "Couldn't look for duplicates" +msgstr "Kon niet naar duplicaten zoeken" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:69 +msgid "No duplicates" +msgstr "Geen duplicaten" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:71 +msgid "Every photo in your library is stored once." +msgstr "Elke foto in je bibliotheek is maar één keer opgeslagen." + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:88 +msgid "" +"These photos are stored more than once. The copies you don't keep move to " +"Trash, where you can restore them." +msgstr "Deze foto's zijn meer dan eens opgeslagen. De kopieën die je niet houdt, gaan naar de prullenbak, waar je ze kunt terugzetten." + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:111 +#, rust-format +msgid "{date}, {n} copy" +msgid_plural "{date}, {n} copies" +msgstr[0] "{date}, {n} kopie" +msgstr[1] "{date}, {n} kopieën" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:143 +#, rust-format +msgid "Move {n} copy to Trash" +msgid_plural "Move {n} copies to Trash" +msgstr[0] "{n} kopie naar prullenbak verplaatsen" +msgstr[1] "{n} kopieën naar prullenbak verplaatsen" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:235 +msgid "Keep" +msgstr "Houden" + #: crates/pdfs-gui/src/app/pages/locations.rs:89 msgid "Add Folder" msgstr "Map toevoegen" @@ -2556,144 +2603,148 @@ msgid "Hide details" msgstr "Details verbergen" #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1429 -#: crates/pdfs-gui/src/app/pages/photos.rs:3043 -#: crates/pdfs-gui/src/app/pages/photos.rs:3047 +#: crates/pdfs-gui/src/app/pages/photos.rs:3061 +#: crates/pdfs-gui/src/app/pages/photos.rs:3065 msgid "Couldn't change the favorite" msgstr "Kon de favoriet niet wijzigen" -#: crates/pdfs-gui/src/app/pages/photos.rs:427 -#: crates/pdfs-gui/src/app/pages/photos.rs:507 +#: crates/pdfs-gui/src/app/pages/photos.rs:428 +#: crates/pdfs-gui/src/app/pages/photos.rs:508 msgid "Upload photos" msgstr "Foto's uploaden" -#: crates/pdfs-gui/src/app/pages/photos.rs:432 +#: crates/pdfs-gui/src/app/pages/photos.rs:433 #: crates/pdfs-gui/src/app/pages/takeout.rs:287 msgid "Import from Google Photos" msgstr "Importeren uit Google Photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:472 -#: crates/pdfs-gui/src/app/pages/photos.rs:612 +#: crates/pdfs-gui/src/app/pages/photos.rs:473 +#: crates/pdfs-gui/src/app/pages/photos.rs:622 msgid "Jump to a month" msgstr "Naar een maand springen" -#: crates/pdfs-gui/src/app/pages/photos.rs:491 +#: crates/pdfs-gui/src/app/pages/photos.rs:492 msgid "Back to albums" msgstr "Terug naar albums" -#: crates/pdfs-gui/src/app/pages/photos.rs:503 +#: crates/pdfs-gui/src/app/pages/photos.rs:504 msgctxt "verb" msgid "Upload" msgstr "Uploaden" -#: crates/pdfs-gui/src/app/pages/photos.rs:516 +#: crates/pdfs-gui/src/app/pages/photos.rs:517 msgid "Import a Google Photos Takeout export" msgstr "Een Google Photos Takeout-export importeren" -#: crates/pdfs-gui/src/app/pages/photos.rs:526 -#: crates/pdfs-gui/src/app/pages/photos.rs:535 -#: crates/pdfs-gui/src/app/pages/photos.rs:1773 +#: crates/pdfs-gui/src/app/pages/photos.rs:527 +msgid "Find duplicates" +msgstr "Duplicaten zoeken" + +#: crates/pdfs-gui/src/app/pages/photos.rs:536 +#: crates/pdfs-gui/src/app/pages/photos.rs:545 +#: crates/pdfs-gui/src/app/pages/photos.rs:1785 msgid "Select photos" msgstr "Foto's selecteren" -#: crates/pdfs-gui/src/app/pages/photos.rs:546 -#: crates/pdfs-gui/src/app/pages/photos.rs:3000 +#: crates/pdfs-gui/src/app/pages/photos.rs:556 +#: crates/pdfs-gui/src/app/pages/photos.rs:3018 msgid "Add to Album…" msgstr "Aan album toevoegen…" -#: crates/pdfs-gui/src/app/pages/photos.rs:552 +#: crates/pdfs-gui/src/app/pages/photos.rs:562 msgid "Leave selection (Esc)" msgstr "Selectie verlaten (Esc)" -#: crates/pdfs-gui/src/app/pages/photos.rs:596 +#: crates/pdfs-gui/src/app/pages/photos.rs:606 msgid "Show only favorites" msgstr "Alleen favorieten tonen" -#: crates/pdfs-gui/src/app/pages/photos.rs:603 +#: crates/pdfs-gui/src/app/pages/photos.rs:613 msgid "Show only photos not in an album" msgstr "Alleen foto's zonder album tonen" -#: crates/pdfs-gui/src/app/pages/photos.rs:610 -#: crates/pdfs-gui/src/app/pages/photos.rs:845 +#: crates/pdfs-gui/src/app/pages/photos.rs:620 +#: crates/pdfs-gui/src/app/pages/photos.rs:857 msgid "All dates" msgstr "Alle datums" -#: crates/pdfs-gui/src/app/pages/photos.rs:631 +#: crates/pdfs-gui/src/app/pages/photos.rs:641 msgid "Timeline" msgstr "Tijdlijn" -#: crates/pdfs-gui/src/app/pages/photos.rs:635 +#: crates/pdfs-gui/src/app/pages/photos.rs:645 msgid "Albums" msgstr "Albums" -#: crates/pdfs-gui/src/app/pages/photos.rs:654 +#: crates/pdfs-gui/src/app/pages/photos.rs:664 msgid "On this day" msgstr "Op deze dag" -#: crates/pdfs-gui/src/app/pages/photos.rs:729 +#: crates/pdfs-gui/src/app/pages/photos.rs:739 msgid "Importing from Google Photos…" msgstr "Importeren uit Google Photos…" #. Translators: strftime format for a month on its own, such as "June 2024". %OB is the month name in its standalone (nominative) form; use %B if your language has no separate form. -#: crates/pdfs-gui/src/app/pages/photos.rs:821 +#: crates/pdfs-gui/src/app/pages/photos.rs:833 msgid "%OB %Y" msgstr "%B %Y" #. Translators: a row of the date jump; {month} is a month such as "June 2024", {count} how many photos it holds. -#: crates/pdfs-gui/src/app/pages/photos.rs:852 +#: crates/pdfs-gui/src/app/pages/photos.rs:864 #, rust-format msgid "{month} ({count})" msgstr "{month} ({count})" #. Translators: a Photos filter tab that shows photos, videos and raw files together. -#: crates/pdfs-gui/src/app/pages/photos.rs:889 +#: crates/pdfs-gui/src/app/pages/photos.rs:901 msgctxt "photo filter" msgid "All" msgstr "Alles" -#: crates/pdfs-gui/src/app/pages/photos.rs:890 +#: crates/pdfs-gui/src/app/pages/photos.rs:902 msgctxt "photo filter" msgid "Photos" msgstr "Foto's" -#: crates/pdfs-gui/src/app/pages/photos.rs:891 +#: crates/pdfs-gui/src/app/pages/photos.rs:903 msgctxt "photo filter" msgid "Videos" msgstr "Video's" #. Translators: a Photos filter tab for raw camera files. -#: crates/pdfs-gui/src/app/pages/photos.rs:893 +#: crates/pdfs-gui/src/app/pages/photos.rs:905 msgctxt "photo filter" msgid "Raw" msgstr "RAW" -#: crates/pdfs-gui/src/app/pages/photos.rs:1198 +#: crates/pdfs-gui/src/app/pages/photos.rs:1210 msgid "Select Photo to Upload" msgstr "Foto selecteren om te uploaden" -#: crates/pdfs-gui/src/app/pages/photos.rs:1202 +#: crates/pdfs-gui/src/app/pages/photos.rs:1214 #: crates/pdfs-gui/src/prompt.rs:60 msgid "Images" msgstr "Afbeeldingen" -#: crates/pdfs-gui/src/app/pages/photos.rs:1258 +#: crates/pdfs-gui/src/app/pages/photos.rs:1270 msgid "Photo uploaded" msgstr "Foto geüpload" -#: crates/pdfs-gui/src/app/pages/photos.rs:1263 -#: crates/pdfs-gui/src/app/pages/photos.rs:1271 +#: crates/pdfs-gui/src/app/pages/photos.rs:1275 +#: crates/pdfs-gui/src/app/pages/photos.rs:1283 msgid "Couldn't upload photo" msgstr "Kon foto niet uploaden" #. Translators: badge on a photo tile whose shot includes a raw camera file. -#: crates/pdfs-gui/src/app/pages/photos.rs:1432 +#: crates/pdfs-gui/src/app/pages/photos.rs:1444 msgid "RAW" msgstr "RAW" -#: crates/pdfs-gui/src/app/pages/photos.rs:1817 +#: crates/pdfs-gui/src/app/pages/photos.rs:1829 msgid "Move this photo to Trash?" msgstr "Deze foto naar de prullenbak verplaatsen?" -#: crates/pdfs-gui/src/app/pages/photos.rs:1819 +#: crates/pdfs-gui/src/app/pages/photos.rs:1831 #, rust-format msgid "Move this photo to Trash? It is stored as {n} file." msgid_plural "Move this photo to Trash? It is stored as {n} files." @@ -2703,14 +2754,14 @@ msgstr[1] "" "Deze foto naar de prullenbak verplaatsen? Hij is opgeslagen als {n} " "bestanden." -#: crates/pdfs-gui/src/app/pages/photos.rs:1825 +#: crates/pdfs-gui/src/app/pages/photos.rs:1837 #, rust-format msgid "Move {n} photo to Trash?" msgid_plural "Move {n} photos to Trash?" msgstr[0] "{n} foto naar de prullenbak verplaatsen?" msgstr[1] "{n} foto's naar de prullenbak verplaatsen?" -#: crates/pdfs-gui/src/app/pages/photos.rs:1832 +#: crates/pdfs-gui/src/app/pages/photos.rs:1844 #, rust-format msgid "Move {n} photo to Trash? They are stored as {files} files." msgid_plural "Move {n} photos to Trash? They are stored as {files} files." @@ -2721,15 +2772,15 @@ msgstr[1] "" "{n} foto's naar de prullenbak verplaatsen? Ze zijn opgeslagen als {files} " "bestanden." -#: crates/pdfs-gui/src/app/pages/photos.rs:1890 +#: crates/pdfs-gui/src/app/pages/photos.rs:1908 msgid "The server refused." msgstr "De server weigerde." -#: crates/pdfs-gui/src/app/pages/photos.rs:1893 +#: crates/pdfs-gui/src/app/pages/photos.rs:1911 msgid "Some photos couldn't be moved to Trash" msgstr "Sommige foto's konden niet naar de prullenbak worden verplaatst" -#: crates/pdfs-gui/src/app/pages/photos.rs:1902 +#: crates/pdfs-gui/src/app/pages/photos.rs:1920 #, rust-format msgid "Moved {n} photo to Trash" msgid_plural "Moved {n} photos to Trash" @@ -2737,7 +2788,7 @@ msgstr[0] "{n} foto naar prullenbak verplaatst" msgstr[1] "{n} foto's naar prullenbak verplaatst" #. Translators: the Photos page subtitle, such as "12 videos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2458 +#: crates/pdfs-gui/src/app/pages/photos.rs:2476 #, rust-format msgid "{count} video" msgid_plural "{count} videos" @@ -2745,7 +2796,7 @@ msgstr[0] "{count} video" msgstr[1] "{count} video's" #. Translators: the Photos page subtitle, such as "12 raw photos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2460 +#: crates/pdfs-gui/src/app/pages/photos.rs:2478 #, rust-format msgid "{count} raw photo" msgid_plural "{count} raw photos" @@ -2753,139 +2804,139 @@ msgstr[0] "{count} RAW-foto" msgstr[1] "{count} RAW-foto's" #. Translators: the Photos page subtitle, such as "1,204 photos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2462 +#: crates/pdfs-gui/src/app/pages/photos.rs:2480 #, rust-format msgid "{count} photo" msgid_plural "{count} photos" msgstr[0] "{count} foto" msgstr[1] "{count} foto's" -#: crates/pdfs-gui/src/app/pages/photos.rs:2490 -#: crates/pdfs-gui/src/app/pages/photos.rs:2516 +#: crates/pdfs-gui/src/app/pages/photos.rs:2508 +#: crates/pdfs-gui/src/app/pages/photos.rs:2534 msgid "Unknown date" msgstr "Onbekende datum" #. Translators: strftime format for a day heading in the photo timeline, such as "3 June 2026". -#: crates/pdfs-gui/src/app/pages/photos.rs:2513 +#: crates/pdfs-gui/src/app/pages/photos.rs:2531 msgid "%-d %B %Y" msgstr "%-d %B %Y" #. Translators: strftime format for a photo's capture date and time, such as "2026-06-03 14:05:09". -#: crates/pdfs-gui/src/app/pages/photos.rs:2534 +#: crates/pdfs-gui/src/app/pages/photos.rs:2552 msgid "%Y-%m-%d %H:%M:%S" msgstr "%d-%m-%Y %H:%M:%S" -#: crates/pdfs-gui/src/app/pages/photos.rs:2538 -#: crates/pdfs-gui/src/app/pages/photos.rs:2540 +#: crates/pdfs-gui/src/app/pages/photos.rs:2556 +#: crates/pdfs-gui/src/app/pages/photos.rs:2558 msgid "Unknown Date" msgstr "Onbekende datum" #. Translators: strftime format for the day a photo was taken, shown on its tile when the timeline is grouped by month or year, such as "3 Jun". -#: crates/pdfs-gui/src/app/pages/photos.rs:2558 +#: crates/pdfs-gui/src/app/pages/photos.rs:2576 msgid "%-d %b" msgstr "%-d %b" -#: crates/pdfs-gui/src/app/pages/photos.rs:2580 +#: crates/pdfs-gui/src/app/pages/photos.rs:2598 msgid "Every photo is in an album" msgstr "Elke foto staat in een album" -#: crates/pdfs-gui/src/app/pages/photos.rs:2581 +#: crates/pdfs-gui/src/app/pages/photos.rs:2599 msgid "Turn off the album filter to see everything." msgstr "Zet het albumfilter uit om alles te zien." -#: crates/pdfs-gui/src/app/pages/photos.rs:2586 +#: crates/pdfs-gui/src/app/pages/photos.rs:2604 msgid "No photos yet" msgstr "Nog geen foto’s" -#: crates/pdfs-gui/src/app/pages/photos.rs:2587 +#: crates/pdfs-gui/src/app/pages/photos.rs:2605 msgid "Photos you upload to Proton Drive appear here." msgstr "Foto’s die je naar Proton Drive uploadt, verschijnen hier." -#: crates/pdfs-gui/src/app/pages/photos.rs:2590 +#: crates/pdfs-gui/src/app/pages/photos.rs:2608 msgid "No favorites yet" msgstr "Nog geen favorieten" -#: crates/pdfs-gui/src/app/pages/photos.rs:2591 +#: crates/pdfs-gui/src/app/pages/photos.rs:2609 msgid "Star a photo in the viewer or from its menu to find it here." msgstr "" "Maak een foto favoriet in de viewer of via het menu om hem hier te vinden." #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2596 +#: crates/pdfs-gui/src/app/pages/photos.rs:2614 #, rust-format msgid "No favorite videos in {month}" msgstr "Geen favoriete video’s in {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2597 +#: crates/pdfs-gui/src/app/pages/photos.rs:2615 msgid "No favorite videos" msgstr "Geen favoriete video’s" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2599 +#: crates/pdfs-gui/src/app/pages/photos.rs:2617 #, rust-format msgid "No favorite raw files in {month}" msgstr "Geen favoriete RAW-bestanden in {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2600 +#: crates/pdfs-gui/src/app/pages/photos.rs:2618 msgid "No favorite raw files" msgstr "Geen favoriete RAW-bestanden" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2602 +#: crates/pdfs-gui/src/app/pages/photos.rs:2620 #, rust-format msgid "No favorite photos in {month}" msgstr "Geen favoriete foto’s in {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2603 +#: crates/pdfs-gui/src/app/pages/photos.rs:2621 msgid "No favorite photos" msgstr "Geen favoriete foto’s" -#: crates/pdfs-gui/src/app/pages/photos.rs:2605 +#: crates/pdfs-gui/src/app/pages/photos.rs:2623 msgid "Turn off the favorites filter to see everything." msgstr "Zet het favorietenfilter uit om alles te zien." #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2610 +#: crates/pdfs-gui/src/app/pages/photos.rs:2628 #, rust-format msgid "No videos in {month}" msgstr "Geen video’s in {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2611 +#: crates/pdfs-gui/src/app/pages/photos.rs:2629 msgid "No videos" msgstr "Geen video’s" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2613 +#: crates/pdfs-gui/src/app/pages/photos.rs:2631 #, rust-format msgid "No raw files in {month}" msgstr "Geen RAW-bestanden in {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2614 +#: crates/pdfs-gui/src/app/pages/photos.rs:2632 msgid "No raw files" msgstr "Geen RAW-bestanden" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2616 +#: crates/pdfs-gui/src/app/pages/photos.rs:2634 #, rust-format msgid "No photos in {month}" msgstr "Geen foto’s in {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2617 +#: crates/pdfs-gui/src/app/pages/photos.rs:2635 msgid "No photos" msgstr "Geen foto’s" -#: crates/pdfs-gui/src/app/pages/photos.rs:2619 +#: crates/pdfs-gui/src/app/pages/photos.rs:2637 msgid "Try another filter or month." msgstr "Probeer een ander filter of een andere maand." -#: crates/pdfs-gui/src/app/pages/photos.rs:2735 +#: crates/pdfs-gui/src/app/pages/photos.rs:2753 #, rust-format msgid "{n} year ago" msgid_plural "{n} years ago" msgstr[0] "{n} jaar geleden" msgstr[1] "{n} jaar geleden" -#: crates/pdfs-gui/src/app/pages/photos.rs:2760 +#: crates/pdfs-gui/src/app/pages/photos.rs:2778 #, rust-format msgid "{date}, {n} photo" msgid_plural "{date}, {n} photos" @@ -2893,55 +2944,55 @@ msgstr[0] "{date}, {n} foto" msgstr[1] "{date}, {n} foto's" #. Translators: a check item in a photo's menu, on while the photo is a favorite. -#: crates/pdfs-gui/src/app/pages/photos.rs:2989 +#: crates/pdfs-gui/src/app/pages/photos.rs:3007 msgctxt "state" msgid "Favorite" msgstr "Favoriet" -#: crates/pdfs-gui/src/app/pages/photos.rs:2994 +#: crates/pdfs-gui/src/app/pages/photos.rs:3012 msgctxt "verb" msgid "Select" msgstr "Selecteren" -#: crates/pdfs-gui/src/app/pages/photos.rs:3006 +#: crates/pdfs-gui/src/app/pages/photos.rs:3024 msgid "Remove from Album" msgstr "Uit album verwijderen" -#: crates/pdfs-gui/src/app/pages/photos.rs:3012 +#: crates/pdfs-gui/src/app/pages/photos.rs:3030 msgid "Move to Trash…" msgstr "Naar prullenbak verplaatsen…" -#: crates/pdfs-gui/src/app/pages/photos.rs:3036 +#: crates/pdfs-gui/src/app/pages/photos.rs:3054 msgid "Added to Favorites" msgstr "Aan favorieten toegevoegd" -#: crates/pdfs-gui/src/app/pages/photos.rs:3038 +#: crates/pdfs-gui/src/app/pages/photos.rs:3056 msgid "Removed from Favorites" msgstr "Uit favorieten verwijderd" -#: crates/pdfs-gui/src/app/pages/photos.rs:3067 +#: crates/pdfs-gui/src/app/pages/photos.rs:3085 msgid "Loading photos…" msgstr "Foto's laden…" -#: crates/pdfs-gui/src/app/pages/photos.rs:3068 +#: crates/pdfs-gui/src/app/pages/photos.rs:3086 msgid "Reading your Proton Drive timeline." msgstr "Je Proton Drive-tijdlijn wordt gelezen." -#: crates/pdfs-gui/src/app/pages/photos.rs:3161 +#: crates/pdfs-gui/src/app/pages/photos.rs:3179 msgid "Empty album" msgstr "Leeg album" -#: crates/pdfs-gui/src/app/pages/photos.rs:3162 +#: crates/pdfs-gui/src/app/pages/photos.rs:3180 msgid "This album has no photos in it." msgstr "Dit album bevat geen foto's." -#: crates/pdfs-gui/src/app/pages/photos.rs:3204 #: crates/pdfs-gui/src/app/pages/photos.rs:3222 +#: crates/pdfs-gui/src/app/pages/photos.rs:3240 msgid "Couldn't load more photos" msgstr "Kon niet meer foto's laden" -#: crates/pdfs-gui/src/app/pages/photos.rs:3209 -#: crates/pdfs-gui/src/app/pages/photos.rs:3216 +#: crates/pdfs-gui/src/app/pages/photos.rs:3227 +#: crates/pdfs-gui/src/app/pages/photos.rs:3234 msgid "Couldn't load photos" msgstr "Kon foto's niet laden" diff --git a/po/pdfs.pot b/po/pdfs.pot index abb1477..c67b55d 100644 --- a/po/pdfs.pot +++ b/po/pdfs.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: proton-drive-linux 2.2.2\n" "Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n" -"POT-Creation-Date: 2026-09-28 00:44+0200\n" +"POT-Creation-Date: 2026-09-28 00:50+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,99 +18,99 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: crates/pdfs-gui/src/app/main.rs:835 +#: crates/pdfs-gui/src/app/main.rs:840 #: crates/pdfs-gui/src/app/pages/locations.rs:1133 #: crates/pdfs-gui/src/prompt.rs:169 msgid "My files" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:838 crates/pdfs-gui/src/app/main.rs:1451 +#: crates/pdfs-gui/src/app/main.rs:843 crates/pdfs-gui/src/app/main.rs:1456 #: crates/pdfs-gui/src/app/pages/albums.rs:633 -#: crates/pdfs-gui/src/app/pages/photos.rs:746 +#: crates/pdfs-gui/src/app/pages/photos.rs:756 msgid "Photos" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:843 +#: crates/pdfs-gui/src/app/main.rs:848 msgid "Shared with me" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:848 +#: crates/pdfs-gui/src/app/main.rs:853 msgid "Shared by me" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:851 +#: crates/pdfs-gui/src/app/main.rs:856 #: crates/pdfs-gui/src/app/pages/devices.rs:109 msgid "Computers" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:852 +#: crates/pdfs-gui/src/app/main.rs:857 #: crates/pdfs-gui/src/app/pages/trash.rs:106 msgid "Trash" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:856 +#: crates/pdfs-gui/src/app/main.rs:861 msgid "Sync" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:861 +#: crates/pdfs-gui/src/app/main.rs:866 #: crates/pdfs-gui/src/app/pages/activity.rs:153 msgid "Activity" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1007 +#: crates/pdfs-gui/src/app/main.rs:1012 msgid "Refresh (F5)" msgstr "" #. Translators: a failed action's toast. {what} says what failed, such as #. "Couldn't rename"; {detail} is the reason, usually untranslated text #. from the mount service. -#: crates/pdfs-gui/src/app/main.rs:1181 +#: crates/pdfs-gui/src/app/main.rs:1186 #, rust-format msgid "{what}: {detail}" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1200 +#: crates/pdfs-gui/src/app/main.rs:1205 msgid "You're offline" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1201 +#: crates/pdfs-gui/src/app/main.rs:1206 msgid "That's not there any more" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1202 +#: crates/pdfs-gui/src/app/main.rs:1207 msgid "You don't have access to that" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1203 +#: crates/pdfs-gui/src/app/main.rs:1208 msgid "Something changed this first" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1204 +#: crates/pdfs-gui/src/app/main.rs:1209 msgid "Your Proton Drive is full" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1245 crates/pdfs-gui/src/app/main.rs:1433 +#: crates/pdfs-gui/src/app/main.rs:1250 crates/pdfs-gui/src/app/main.rs:1438 #: crates/pdfs-gui/src/app/pages/status.rs:353 msgid "Preferences" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1246 crates/pdfs-gui/src/app/main.rs:1490 +#: crates/pdfs-gui/src/app/main.rs:1251 crates/pdfs-gui/src/app/main.rs:1495 msgid "Keyboard Shortcuts" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1248 +#: crates/pdfs-gui/src/app/main.rs:1253 msgid "About Proton Drive for Linux" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1253 +#: crates/pdfs-gui/src/app/main.rs:1258 msgid "Main menu" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1299 +#: crates/pdfs-gui/src/app/main.rs:1304 msgid "Proton Drive for Linux" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1307 +#: crates/pdfs-gui/src/app/main.rs:1312 msgid "" "Files-on-demand Proton Drive for the Linux desktop.\n" "\n" @@ -118,23 +118,23 @@ msgid "" "AG." msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1312 +#: crates/pdfs-gui/src/app/main.rs:1317 msgid "Source Code" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1316 +#: crates/pdfs-gui/src/app/main.rs:1321 msgid "Proton Terms of Service" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1320 +#: crates/pdfs-gui/src/app/main.rs:1325 msgid "Proton Privacy Policy" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1325 +#: crates/pdfs-gui/src/app/main.rs:1330 msgid "Disclaimer" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1329 +#: crates/pdfs-gui/src/app/main.rs:1334 msgid "" "This is an unofficial, community-built client. It is not affiliated with, " "endorsed by, or supported by Proton AG.\n" @@ -149,21 +149,21 @@ msgstr "" #. Translators: replace with your name(s) and email address(es), one #. per line, to be credited in the About dialog. -#: crates/pdfs-gui/src/app/main.rs:1340 +#: crates/pdfs-gui/src/app/main.rs:1345 msgid "translator-credits" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1371 +#: crates/pdfs-gui/src/app/main.rs:1376 msgid "Stop Proton Drive?" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1372 +#: crates/pdfs-gui/src/app/main.rs:1377 msgid "" "The drive unmounts and nothing syncs until you connect again. Proton Drive " "starts again at your next login." msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1374 crates/pdfs-gui/src/app/main.rs:1647 +#: crates/pdfs-gui/src/app/main.rs:1379 crates/pdfs-gui/src/app/main.rs:1652 #: crates/pdfs-gui/src/app/pages/albums.rs:242 #: crates/pdfs-gui/src/app/pages/albums.rs:423 #: crates/pdfs-gui/src/app/pages/browser.rs:2273 @@ -177,7 +177,7 @@ msgstr "" #: crates/pdfs-gui/src/app/pages/locations.rs:670 #: crates/pdfs-gui/src/app/pages/locations.rs:1050 #: crates/pdfs-gui/src/app/pages/login.rs:312 -#: crates/pdfs-gui/src/app/pages/photos.rs:1842 +#: crates/pdfs-gui/src/app/pages/photos.rs:1854 #: crates/pdfs-gui/src/app/pages/shared.rs:717 #: crates/pdfs-gui/src/app/pages/shared.rs:748 #: crates/pdfs-gui/src/app/pages/shared.rs:789 @@ -191,67 +191,67 @@ msgstr "" msgid "Cancel" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1375 +#: crates/pdfs-gui/src/app/main.rs:1380 msgctxt "verb" msgid "Stop" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1392 +#: crates/pdfs-gui/src/app/main.rs:1397 msgid "Couldn't stop Proton Drive" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1393 +#: crates/pdfs-gui/src/app/main.rs:1398 msgid "The mount service did not stop." msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1429 +#: crates/pdfs-gui/src/app/main.rs:1434 #: crates/pdfs-gui/src/app/pages/status.rs:226 msgid "General" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1431 +#: crates/pdfs-gui/src/app/main.rs:1436 #: crates/pdfs-gui/src/app/pages/browser.rs:270 msgid "Search Drive" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1432 +#: crates/pdfs-gui/src/app/main.rs:1437 #: crates/pdfs-gui/src/app/pages/browser.rs:1363 msgid "Refresh" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1434 +#: crates/pdfs-gui/src/app/main.rs:1439 msgid "Keyboard shortcuts" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1438 +#: crates/pdfs-gui/src/app/main.rs:1443 msgid "Files" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1440 +#: crates/pdfs-gui/src/app/main.rs:1445 #: crates/pdfs-gui/src/app/pages/browser.rs:319 #: crates/pdfs-gui/src/app/pages/browser.rs:2586 msgid "New folder" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1441 +#: crates/pdfs-gui/src/app/main.rs:1446 #: crates/pdfs-gui/src/app/pages/browser.rs:315 msgid "Upload files" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1442 +#: crates/pdfs-gui/src/app/main.rs:1447 msgid "Back / forward" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1443 +#: crates/pdfs-gui/src/app/main.rs:1448 #: crates/pdfs-gui/src/app/pages/browser.rs:2320 msgid "Parent folder" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1444 +#: crates/pdfs-gui/src/app/main.rs:1449 msgid "Grid / list" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1445 +#: crates/pdfs-gui/src/app/main.rs:1450 #: crates/pdfs-gui/src/app/pages/albums.rs:297 #: crates/pdfs-gui/src/app/pages/browser.rs:2252 #: crates/pdfs-gui/src/app/pages/browser.rs:2274 @@ -260,62 +260,63 @@ msgstr "" msgid "Rename" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1446 crates/pdfs-gui/src/app/main.rs:1466 +#: crates/pdfs-gui/src/app/main.rs:1451 crates/pdfs-gui/src/app/main.rs:1471 #: crates/pdfs-gui/src/app/pages/browser.rs:414 #: crates/pdfs-gui/src/app/pages/browser.rs:1306 #: crates/pdfs-gui/src/app/pages/browser.rs:1338 -#: crates/pdfs-gui/src/app/pages/photos.rs:540 -#: crates/pdfs-gui/src/app/pages/photos.rs:1839 -#: crates/pdfs-gui/src/app/pages/photos.rs:1843 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:24 +#: crates/pdfs-gui/src/app/pages/photos.rs:550 +#: crates/pdfs-gui/src/app/pages/photos.rs:1851 +#: crates/pdfs-gui/src/app/pages/photos.rs:1855 #: crates/pdfs-gui/src/app/widgets/details.rs:162 msgid "Move to Trash" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1447 +#: crates/pdfs-gui/src/app/main.rs:1452 msgid "Clear the selection" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1453 +#: crates/pdfs-gui/src/app/main.rs:1458 msgid "Larger thumbnails" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1454 +#: crates/pdfs-gui/src/app/main.rs:1459 msgid "Smaller thumbnails" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1455 +#: crates/pdfs-gui/src/app/main.rs:1460 msgid "Reset thumbnail size" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1456 +#: crates/pdfs-gui/src/app/main.rs:1461 msgid "Select all" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1460 +#: crates/pdfs-gui/src/app/main.rs:1465 msgid "Photo Viewer" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1462 +#: crates/pdfs-gui/src/app/main.rs:1467 msgid "Previous / next photo" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1463 +#: crates/pdfs-gui/src/app/main.rs:1468 msgid "First / last photo" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1464 +#: crates/pdfs-gui/src/app/main.rs:1469 msgid "Show details" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1465 +#: crates/pdfs-gui/src/app/main.rs:1470 msgid "Fullscreen" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1467 +#: crates/pdfs-gui/src/app/main.rs:1472 msgid "Close" msgstr "" -#: crates/pdfs-gui/src/app/main.rs:1570 +#: crates/pdfs-gui/src/app/main.rs:1575 msgid "Select a single item to rename it" msgstr "" @@ -352,7 +353,7 @@ msgstr "" #: crates/pdfs-gui/src/app/pages/browser.rs:306 #: crates/pdfs-gui/src/app/pages/devices.rs:84 #: crates/pdfs-gui/src/app/pages/locations.rs:134 -#: crates/pdfs-gui/src/app/pages/photos.rs:417 +#: crates/pdfs-gui/src/app/pages/photos.rs:418 #: crates/pdfs-gui/src/app/pages/shared.rs:83 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:38 #: crates/pdfs-gui/src/app/pages/trash.rs:57 crates/pdfs-gui/src/prompt.rs:593 @@ -388,7 +389,7 @@ msgstr "" #: crates/pdfs-gui/src/app/pages/browser.rs:2880 #: crates/pdfs-gui/src/app/pages/browser.rs:3066 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:310 -#: crates/pdfs-gui/src/app/pages/photos.rs:3217 +#: crates/pdfs-gui/src/app/pages/photos.rs:3235 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:139 #: crates/pdfs-gui/src/app/pages/trash.rs:320 msgid "Unexpected reply from the mount service." @@ -400,7 +401,7 @@ msgstr "" #: crates/pdfs-gui/src/app/pages/browser.rs:2914 #: crates/pdfs-gui/src/app/pages/devices.rs:209 #: crates/pdfs-gui/src/app/pages/locations.rs:844 -#: crates/pdfs-gui/src/app/pages/photos.rs:3251 +#: crates/pdfs-gui/src/app/pages/photos.rs:3269 #: crates/pdfs-gui/src/app/pages/shared.rs:523 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:156 #: crates/pdfs-gui/src/app/pages/status.rs:1301 @@ -412,7 +413,7 @@ msgstr "" #: crates/pdfs-gui/src/app/pages/browser.rs:2915 #: crates/pdfs-gui/src/app/pages/devices.rs:210 #: crates/pdfs-gui/src/app/pages/locations.rs:845 -#: crates/pdfs-gui/src/app/pages/photos.rs:3252 +#: crates/pdfs-gui/src/app/pages/photos.rs:3270 #: crates/pdfs-gui/src/app/pages/shared.rs:524 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:157 #: crates/pdfs-gui/src/app/pages/trash.rs:336 @@ -424,7 +425,7 @@ msgstr "" #: crates/pdfs-gui/src/app/pages/browser.rs:2924 #: crates/pdfs-gui/src/app/pages/devices.rs:218 #: crates/pdfs-gui/src/app/pages/locations.rs:853 -#: crates/pdfs-gui/src/app/pages/photos.rs:3260 +#: crates/pdfs-gui/src/app/pages/photos.rs:3278 #: crates/pdfs-gui/src/app/pages/shared.rs:532 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:165 #: crates/pdfs-gui/src/app/pages/status.rs:305 @@ -437,7 +438,7 @@ msgstr "" #: crates/pdfs-gui/src/app/pages/browser.rs:2925 #: crates/pdfs-gui/src/app/pages/devices.rs:219 #: crates/pdfs-gui/src/app/pages/locations.rs:854 -#: crates/pdfs-gui/src/app/pages/photos.rs:3261 +#: crates/pdfs-gui/src/app/pages/photos.rs:3279 #: crates/pdfs-gui/src/app/pages/shared.rs:533 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:166 #: crates/pdfs-gui/src/app/pages/trash.rs:345 @@ -445,12 +446,12 @@ msgid "Waiting for the Proton Drive mount service to come up." msgstr "" #: crates/pdfs-gui/src/app/pages/activity.rs:419 -#: crates/pdfs-gui/src/app/pages/photos.rs:2504 +#: crates/pdfs-gui/src/app/pages/photos.rs:2522 msgid "Today" msgstr "" #: crates/pdfs-gui/src/app/pages/activity.rs:422 -#: crates/pdfs-gui/src/app/pages/photos.rs:2509 +#: crates/pdfs-gui/src/app/pages/photos.rs:2527 msgid "Yesterday" msgstr "" @@ -503,7 +504,7 @@ msgstr "" #. Translators: strftime format for the time of day in the activity feed, such as "14:05". #. Translators: strftime format for the time a photo was taken, shown on its tile, such as "14:05". #: crates/pdfs-gui/src/app/pages/activity.rs:580 -#: crates/pdfs-gui/src/app/pages/photos.rs:2548 +#: crates/pdfs-gui/src/app/pages/photos.rs:2566 msgid "%H:%M" msgstr "" @@ -609,12 +610,12 @@ msgid "Reading your Proton Drive albums." msgstr "" #: crates/pdfs-gui/src/app/pages/albums.rs:59 -#: crates/pdfs-gui/src/app/pages/photos.rs:3130 +#: crates/pdfs-gui/src/app/pages/photos.rs:3148 msgid "No photo library" msgstr "" #: crates/pdfs-gui/src/app/pages/albums.rs:60 -#: crates/pdfs-gui/src/app/pages/photos.rs:3131 +#: crates/pdfs-gui/src/app/pages/photos.rs:3149 msgid "This Proton account doesn't have Photos enabled." msgstr "" @@ -647,7 +648,7 @@ msgstr[1] "" #: crates/pdfs-gui/src/app/pages/albums.rs:205 #: crates/pdfs-gui/src/app/pages/browser.rs:1246 -#: crates/pdfs-gui/src/app/pages/photos.rs:2984 +#: crates/pdfs-gui/src/app/pages/photos.rs:3002 #: crates/pdfs-gui/src/app/pages/shared.rs:384 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:244 #: crates/pdfs-gui/src/app/widgets/details.rs:155 @@ -707,16 +708,17 @@ msgstr "" #: crates/pdfs-gui/src/app/pages/devices.rs:532 #: crates/pdfs-gui/src/app/pages/devices.rs:682 #: crates/pdfs-gui/src/app/pages/devices.rs:912 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:63 #: crates/pdfs-gui/src/app/pages/locations.rs:342 #: crates/pdfs-gui/src/app/pages/locations.rs:516 #: crates/pdfs-gui/src/app/pages/locations.rs:739 #: crates/pdfs-gui/src/app/pages/locations.rs:1090 #: crates/pdfs-gui/src/app/pages/locations.rs:1109 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1424 -#: crates/pdfs-gui/src/app/pages/photos.rs:1272 -#: crates/pdfs-gui/src/app/pages/photos.rs:1921 -#: crates/pdfs-gui/src/app/pages/photos.rs:3048 -#: crates/pdfs-gui/src/app/pages/photos.rs:3223 +#: crates/pdfs-gui/src/app/pages/photos.rs:1284 +#: crates/pdfs-gui/src/app/pages/photos.rs:1939 +#: crates/pdfs-gui/src/app/pages/photos.rs:3066 +#: crates/pdfs-gui/src/app/pages/photos.rs:3241 #: crates/pdfs-gui/src/app/pages/shared.rs:510 #: crates/pdfs-gui/src/app/pages/shared.rs:838 #: crates/pdfs-gui/src/app/pages/status.rs:672 @@ -780,7 +782,7 @@ msgstr[0] "" msgstr[1] "" #: crates/pdfs-gui/src/app/pages/albums.rs:424 -#: crates/pdfs-gui/src/app/pages/photos.rs:712 +#: crates/pdfs-gui/src/app/pages/photos.rs:722 msgid "New Album…" msgstr "" @@ -971,7 +973,7 @@ msgstr "" #. Translators: {n} is how many items are selected: files and folders in My Files, photos here. #: crates/pdfs-gui/src/app/pages/browser.rs:638 #: crates/pdfs-gui/src/app/pages/browser.rs:1331 -#: crates/pdfs-gui/src/app/pages/photos.rs:1775 +#: crates/pdfs-gui/src/app/pages/photos.rs:1787 #, rust-format msgid "{n} selected" msgid_plural "{n} selected" @@ -980,8 +982,8 @@ msgstr[1] "" #: crates/pdfs-gui/src/app/pages/browser.rs:674 #: crates/pdfs-gui/src/app/pages/browser.rs:709 -#: crates/pdfs-gui/src/app/pages/photos.rs:1914 -#: crates/pdfs-gui/src/app/pages/photos.rs:1920 +#: crates/pdfs-gui/src/app/pages/photos.rs:1932 +#: crates/pdfs-gui/src/app/pages/photos.rs:1938 msgid "Couldn't move to Trash" msgstr "" @@ -1015,7 +1017,7 @@ msgstr[0] "" msgstr[1] "" #: crates/pdfs-gui/src/app/pages/browser.rs:727 -#: crates/pdfs-gui/src/app/pages/photos.rs:1907 +#: crates/pdfs-gui/src/app/pages/photos.rs:1925 msgid "Undo" msgstr "" @@ -1072,7 +1074,7 @@ msgid "Open With…" msgstr "" #: crates/pdfs-gui/src/app/pages/browser.rs:1263 -#: crates/pdfs-gui/src/app/pages/photos.rs:2982 +#: crates/pdfs-gui/src/app/pages/photos.rs:3000 msgctxt "verb" msgid "Play" msgstr "" @@ -1365,7 +1367,7 @@ msgstr[0] "" msgstr[1] "" #: crates/pdfs-gui/src/app/pages/browser.rs:2696 -#: crates/pdfs-gui/src/app/pages/photos.rs:730 +#: crates/pdfs-gui/src/app/pages/photos.rs:740 msgctxt "verb" msgid "View" msgstr "" @@ -1801,6 +1803,51 @@ msgstr "" msgid "Couldn't adopt that computer" msgstr "" +#: crates/pdfs-gui/src/app/pages/duplicates.rs:15 +msgid "Looking for duplicates…" +msgstr "" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:42 +msgid "Duplicates" +msgstr "" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:56 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:62 +msgid "Couldn't look for duplicates" +msgstr "" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:69 +msgid "No duplicates" +msgstr "" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:71 +msgid "Every photo in your library is stored once." +msgstr "" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:88 +msgid "" +"These photos are stored more than once. The copies you don't keep move to " +"Trash, where you can restore them." +msgstr "" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:111 +#, rust-format +msgid "{date}, {n} copy" +msgid_plural "{date}, {n} copies" +msgstr[0] "" +msgstr[1] "" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:143 +#, rust-format +msgid "Move {n} copy to Trash" +msgid_plural "Move {n} copies to Trash" +msgstr[0] "" +msgstr[1] "" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:235 +msgid "Keep" +msgstr "" + #: crates/pdfs-gui/src/app/pages/locations.rs:89 msgid "Add Folder" msgstr "" @@ -2458,173 +2505,177 @@ msgid "Hide details" msgstr "" #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1429 -#: crates/pdfs-gui/src/app/pages/photos.rs:3043 -#: crates/pdfs-gui/src/app/pages/photos.rs:3047 +#: crates/pdfs-gui/src/app/pages/photos.rs:3061 +#: crates/pdfs-gui/src/app/pages/photos.rs:3065 msgid "Couldn't change the favorite" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:427 -#: crates/pdfs-gui/src/app/pages/photos.rs:507 +#: crates/pdfs-gui/src/app/pages/photos.rs:428 +#: crates/pdfs-gui/src/app/pages/photos.rs:508 msgid "Upload photos" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:432 +#: crates/pdfs-gui/src/app/pages/photos.rs:433 #: crates/pdfs-gui/src/app/pages/takeout.rs:287 msgid "Import from Google Photos" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:472 -#: crates/pdfs-gui/src/app/pages/photos.rs:612 +#: crates/pdfs-gui/src/app/pages/photos.rs:473 +#: crates/pdfs-gui/src/app/pages/photos.rs:622 msgid "Jump to a month" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:491 +#: crates/pdfs-gui/src/app/pages/photos.rs:492 msgid "Back to albums" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:503 +#: crates/pdfs-gui/src/app/pages/photos.rs:504 msgctxt "verb" msgid "Upload" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:516 +#: crates/pdfs-gui/src/app/pages/photos.rs:517 msgid "Import a Google Photos Takeout export" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:526 -#: crates/pdfs-gui/src/app/pages/photos.rs:535 -#: crates/pdfs-gui/src/app/pages/photos.rs:1773 +#: crates/pdfs-gui/src/app/pages/photos.rs:527 +msgid "Find duplicates" +msgstr "" + +#: crates/pdfs-gui/src/app/pages/photos.rs:536 +#: crates/pdfs-gui/src/app/pages/photos.rs:545 +#: crates/pdfs-gui/src/app/pages/photos.rs:1785 msgid "Select photos" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:546 -#: crates/pdfs-gui/src/app/pages/photos.rs:3000 +#: crates/pdfs-gui/src/app/pages/photos.rs:556 +#: crates/pdfs-gui/src/app/pages/photos.rs:3018 msgid "Add to Album…" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:552 +#: crates/pdfs-gui/src/app/pages/photos.rs:562 msgid "Leave selection (Esc)" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:596 +#: crates/pdfs-gui/src/app/pages/photos.rs:606 msgid "Show only favorites" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:603 +#: crates/pdfs-gui/src/app/pages/photos.rs:613 msgid "Show only photos not in an album" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:610 -#: crates/pdfs-gui/src/app/pages/photos.rs:845 +#: crates/pdfs-gui/src/app/pages/photos.rs:620 +#: crates/pdfs-gui/src/app/pages/photos.rs:857 msgid "All dates" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:631 +#: crates/pdfs-gui/src/app/pages/photos.rs:641 msgid "Timeline" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:635 +#: crates/pdfs-gui/src/app/pages/photos.rs:645 msgid "Albums" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:654 +#: crates/pdfs-gui/src/app/pages/photos.rs:664 msgid "On this day" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:729 +#: crates/pdfs-gui/src/app/pages/photos.rs:739 msgid "Importing from Google Photos…" msgstr "" #. Translators: strftime format for a month on its own, such as "June 2024". %OB is the month name in its standalone (nominative) form; use %B if your language has no separate form. -#: crates/pdfs-gui/src/app/pages/photos.rs:821 +#: crates/pdfs-gui/src/app/pages/photos.rs:833 msgid "%OB %Y" msgstr "" #. Translators: a row of the date jump; {month} is a month such as "June 2024", {count} how many photos it holds. -#: crates/pdfs-gui/src/app/pages/photos.rs:852 +#: crates/pdfs-gui/src/app/pages/photos.rs:864 #, rust-format msgid "{month} ({count})" msgstr "" #. Translators: a Photos filter tab that shows photos, videos and raw files together. -#: crates/pdfs-gui/src/app/pages/photos.rs:889 +#: crates/pdfs-gui/src/app/pages/photos.rs:901 msgctxt "photo filter" msgid "All" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:890 +#: crates/pdfs-gui/src/app/pages/photos.rs:902 msgctxt "photo filter" msgid "Photos" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:891 +#: crates/pdfs-gui/src/app/pages/photos.rs:903 msgctxt "photo filter" msgid "Videos" msgstr "" #. Translators: a Photos filter tab for raw camera files. -#: crates/pdfs-gui/src/app/pages/photos.rs:893 +#: crates/pdfs-gui/src/app/pages/photos.rs:905 msgctxt "photo filter" msgid "Raw" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:1198 +#: crates/pdfs-gui/src/app/pages/photos.rs:1210 msgid "Select Photo to Upload" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:1202 +#: crates/pdfs-gui/src/app/pages/photos.rs:1214 #: crates/pdfs-gui/src/prompt.rs:60 msgid "Images" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:1258 +#: crates/pdfs-gui/src/app/pages/photos.rs:1270 msgid "Photo uploaded" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:1263 -#: crates/pdfs-gui/src/app/pages/photos.rs:1271 +#: crates/pdfs-gui/src/app/pages/photos.rs:1275 +#: crates/pdfs-gui/src/app/pages/photos.rs:1283 msgid "Couldn't upload photo" msgstr "" #. Translators: badge on a photo tile whose shot includes a raw camera file. -#: crates/pdfs-gui/src/app/pages/photos.rs:1432 +#: crates/pdfs-gui/src/app/pages/photos.rs:1444 msgid "RAW" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:1817 +#: crates/pdfs-gui/src/app/pages/photos.rs:1829 msgid "Move this photo to Trash?" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:1819 +#: crates/pdfs-gui/src/app/pages/photos.rs:1831 #, rust-format msgid "Move this photo to Trash? It is stored as {n} file." msgid_plural "Move this photo to Trash? It is stored as {n} files." msgstr[0] "" msgstr[1] "" -#: crates/pdfs-gui/src/app/pages/photos.rs:1825 +#: crates/pdfs-gui/src/app/pages/photos.rs:1837 #, rust-format msgid "Move {n} photo to Trash?" msgid_plural "Move {n} photos to Trash?" msgstr[0] "" msgstr[1] "" -#: crates/pdfs-gui/src/app/pages/photos.rs:1832 +#: crates/pdfs-gui/src/app/pages/photos.rs:1844 #, rust-format msgid "Move {n} photo to Trash? They are stored as {files} files." msgid_plural "Move {n} photos to Trash? They are stored as {files} files." msgstr[0] "" msgstr[1] "" -#: crates/pdfs-gui/src/app/pages/photos.rs:1890 +#: crates/pdfs-gui/src/app/pages/photos.rs:1908 msgid "The server refused." msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:1893 +#: crates/pdfs-gui/src/app/pages/photos.rs:1911 msgid "Some photos couldn't be moved to Trash" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:1902 +#: crates/pdfs-gui/src/app/pages/photos.rs:1920 #, rust-format msgid "Moved {n} photo to Trash" msgid_plural "Moved {n} photos to Trash" @@ -2632,7 +2683,7 @@ msgstr[0] "" msgstr[1] "" #. Translators: the Photos page subtitle, such as "12 videos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2458 +#: crates/pdfs-gui/src/app/pages/photos.rs:2476 #, rust-format msgid "{count} video" msgid_plural "{count} videos" @@ -2640,7 +2691,7 @@ msgstr[0] "" msgstr[1] "" #. Translators: the Photos page subtitle, such as "12 raw photos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2460 +#: crates/pdfs-gui/src/app/pages/photos.rs:2478 #, rust-format msgid "{count} raw photo" msgid_plural "{count} raw photos" @@ -2648,138 +2699,138 @@ msgstr[0] "" msgstr[1] "" #. Translators: the Photos page subtitle, such as "1,204 photos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2462 +#: crates/pdfs-gui/src/app/pages/photos.rs:2480 #, rust-format msgid "{count} photo" msgid_plural "{count} photos" msgstr[0] "" msgstr[1] "" -#: crates/pdfs-gui/src/app/pages/photos.rs:2490 -#: crates/pdfs-gui/src/app/pages/photos.rs:2516 +#: crates/pdfs-gui/src/app/pages/photos.rs:2508 +#: crates/pdfs-gui/src/app/pages/photos.rs:2534 msgid "Unknown date" msgstr "" #. Translators: strftime format for a day heading in the photo timeline, such as "3 June 2026". -#: crates/pdfs-gui/src/app/pages/photos.rs:2513 +#: crates/pdfs-gui/src/app/pages/photos.rs:2531 msgid "%-d %B %Y" msgstr "" #. Translators: strftime format for a photo's capture date and time, such as "2026-06-03 14:05:09". -#: crates/pdfs-gui/src/app/pages/photos.rs:2534 +#: crates/pdfs-gui/src/app/pages/photos.rs:2552 msgid "%Y-%m-%d %H:%M:%S" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:2538 -#: crates/pdfs-gui/src/app/pages/photos.rs:2540 +#: crates/pdfs-gui/src/app/pages/photos.rs:2556 +#: crates/pdfs-gui/src/app/pages/photos.rs:2558 msgid "Unknown Date" msgstr "" #. Translators: strftime format for the day a photo was taken, shown on its tile when the timeline is grouped by month or year, such as "3 Jun". -#: crates/pdfs-gui/src/app/pages/photos.rs:2558 +#: crates/pdfs-gui/src/app/pages/photos.rs:2576 msgid "%-d %b" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:2580 +#: crates/pdfs-gui/src/app/pages/photos.rs:2598 msgid "Every photo is in an album" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:2581 +#: crates/pdfs-gui/src/app/pages/photos.rs:2599 msgid "Turn off the album filter to see everything." msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:2586 +#: crates/pdfs-gui/src/app/pages/photos.rs:2604 msgid "No photos yet" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:2587 +#: crates/pdfs-gui/src/app/pages/photos.rs:2605 msgid "Photos you upload to Proton Drive appear here." msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:2590 +#: crates/pdfs-gui/src/app/pages/photos.rs:2608 msgid "No favorites yet" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:2591 +#: crates/pdfs-gui/src/app/pages/photos.rs:2609 msgid "Star a photo in the viewer or from its menu to find it here." msgstr "" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2596 +#: crates/pdfs-gui/src/app/pages/photos.rs:2614 #, rust-format msgid "No favorite videos in {month}" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:2597 +#: crates/pdfs-gui/src/app/pages/photos.rs:2615 msgid "No favorite videos" msgstr "" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2599 +#: crates/pdfs-gui/src/app/pages/photos.rs:2617 #, rust-format msgid "No favorite raw files in {month}" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:2600 +#: crates/pdfs-gui/src/app/pages/photos.rs:2618 msgid "No favorite raw files" msgstr "" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2602 +#: crates/pdfs-gui/src/app/pages/photos.rs:2620 #, rust-format msgid "No favorite photos in {month}" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:2603 +#: crates/pdfs-gui/src/app/pages/photos.rs:2621 msgid "No favorite photos" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:2605 +#: crates/pdfs-gui/src/app/pages/photos.rs:2623 msgid "Turn off the favorites filter to see everything." msgstr "" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2610 +#: crates/pdfs-gui/src/app/pages/photos.rs:2628 #, rust-format msgid "No videos in {month}" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:2611 +#: crates/pdfs-gui/src/app/pages/photos.rs:2629 msgid "No videos" msgstr "" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2613 +#: crates/pdfs-gui/src/app/pages/photos.rs:2631 #, rust-format msgid "No raw files in {month}" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:2614 +#: crates/pdfs-gui/src/app/pages/photos.rs:2632 msgid "No raw files" msgstr "" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2616 +#: crates/pdfs-gui/src/app/pages/photos.rs:2634 #, rust-format msgid "No photos in {month}" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:2617 +#: crates/pdfs-gui/src/app/pages/photos.rs:2635 msgid "No photos" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:2619 +#: crates/pdfs-gui/src/app/pages/photos.rs:2637 msgid "Try another filter or month." msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:2735 +#: crates/pdfs-gui/src/app/pages/photos.rs:2753 #, rust-format msgid "{n} year ago" msgid_plural "{n} years ago" msgstr[0] "" msgstr[1] "" -#: crates/pdfs-gui/src/app/pages/photos.rs:2760 +#: crates/pdfs-gui/src/app/pages/photos.rs:2778 #, rust-format msgid "{date}, {n} photo" msgid_plural "{date}, {n} photos" @@ -2787,55 +2838,55 @@ msgstr[0] "" msgstr[1] "" #. Translators: a check item in a photo's menu, on while the photo is a favorite. -#: crates/pdfs-gui/src/app/pages/photos.rs:2989 +#: crates/pdfs-gui/src/app/pages/photos.rs:3007 msgctxt "state" msgid "Favorite" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:2994 +#: crates/pdfs-gui/src/app/pages/photos.rs:3012 msgctxt "verb" msgid "Select" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:3006 +#: crates/pdfs-gui/src/app/pages/photos.rs:3024 msgid "Remove from Album" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:3012 +#: crates/pdfs-gui/src/app/pages/photos.rs:3030 msgid "Move to Trash…" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:3036 +#: crates/pdfs-gui/src/app/pages/photos.rs:3054 msgid "Added to Favorites" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:3038 +#: crates/pdfs-gui/src/app/pages/photos.rs:3056 msgid "Removed from Favorites" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:3067 +#: crates/pdfs-gui/src/app/pages/photos.rs:3085 msgid "Loading photos…" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:3068 +#: crates/pdfs-gui/src/app/pages/photos.rs:3086 msgid "Reading your Proton Drive timeline." msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:3161 +#: crates/pdfs-gui/src/app/pages/photos.rs:3179 msgid "Empty album" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:3162 +#: crates/pdfs-gui/src/app/pages/photos.rs:3180 msgid "This album has no photos in it." msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:3204 #: crates/pdfs-gui/src/app/pages/photos.rs:3222 +#: crates/pdfs-gui/src/app/pages/photos.rs:3240 msgid "Couldn't load more photos" msgstr "" -#: crates/pdfs-gui/src/app/pages/photos.rs:3209 -#: crates/pdfs-gui/src/app/pages/photos.rs:3216 +#: crates/pdfs-gui/src/app/pages/photos.rs:3227 +#: crates/pdfs-gui/src/app/pages/photos.rs:3234 msgid "Couldn't load photos" msgstr "" diff --git a/po/pl.po b/po/pl.po index 8865c33..9c93add 100644 --- a/po/pl.po +++ b/po/pl.po @@ -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-09-28 00:44+0200\n" +"POT-Creation-Date: 2026-09-28 00:50+0200\n" "PO-Revision-Date: 2026-09-23 12:00+0200\n" "Last-Translator: Proton Drive for Linux contributors\n" "Language-Team: Polish\n" @@ -16,99 +16,99 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -#: crates/pdfs-gui/src/app/main.rs:835 +#: crates/pdfs-gui/src/app/main.rs:840 #: crates/pdfs-gui/src/app/pages/locations.rs:1133 #: crates/pdfs-gui/src/prompt.rs:169 msgid "My files" msgstr "Moje pliki" -#: crates/pdfs-gui/src/app/main.rs:838 crates/pdfs-gui/src/app/main.rs:1451 +#: crates/pdfs-gui/src/app/main.rs:843 crates/pdfs-gui/src/app/main.rs:1456 #: crates/pdfs-gui/src/app/pages/albums.rs:633 -#: crates/pdfs-gui/src/app/pages/photos.rs:746 +#: crates/pdfs-gui/src/app/pages/photos.rs:756 msgid "Photos" msgstr "Zdjęcia" -#: crates/pdfs-gui/src/app/main.rs:843 +#: crates/pdfs-gui/src/app/main.rs:848 msgid "Shared with me" msgstr "Udostępnione mi" -#: crates/pdfs-gui/src/app/main.rs:848 +#: crates/pdfs-gui/src/app/main.rs:853 msgid "Shared by me" msgstr "Udostępnione przeze mnie" -#: crates/pdfs-gui/src/app/main.rs:851 +#: crates/pdfs-gui/src/app/main.rs:856 #: crates/pdfs-gui/src/app/pages/devices.rs:109 msgid "Computers" msgstr "Komputery" -#: crates/pdfs-gui/src/app/main.rs:852 +#: crates/pdfs-gui/src/app/main.rs:857 #: crates/pdfs-gui/src/app/pages/trash.rs:106 msgid "Trash" msgstr "Kosz" -#: crates/pdfs-gui/src/app/main.rs:856 +#: crates/pdfs-gui/src/app/main.rs:861 msgid "Sync" msgstr "Synchronizacja" -#: crates/pdfs-gui/src/app/main.rs:861 +#: crates/pdfs-gui/src/app/main.rs:866 #: crates/pdfs-gui/src/app/pages/activity.rs:153 msgid "Activity" msgstr "Aktywność" -#: crates/pdfs-gui/src/app/main.rs:1007 +#: crates/pdfs-gui/src/app/main.rs:1012 msgid "Refresh (F5)" msgstr "Odśwież (F5)" #. Translators: a failed action's toast. {what} says what failed, such as #. "Couldn't rename"; {detail} is the reason, usually untranslated text #. from the mount service. -#: crates/pdfs-gui/src/app/main.rs:1181 +#: crates/pdfs-gui/src/app/main.rs:1186 #, rust-format msgid "{what}: {detail}" msgstr "{what}: {detail}" -#: crates/pdfs-gui/src/app/main.rs:1200 +#: crates/pdfs-gui/src/app/main.rs:1205 msgid "You're offline" msgstr "Brak połączenia z siecią" -#: crates/pdfs-gui/src/app/main.rs:1201 +#: crates/pdfs-gui/src/app/main.rs:1206 msgid "That's not there any more" msgstr "Ten element już nie istnieje" -#: crates/pdfs-gui/src/app/main.rs:1202 +#: crates/pdfs-gui/src/app/main.rs:1207 msgid "You don't have access to that" msgstr "Brak dostępu do tego elementu" -#: crates/pdfs-gui/src/app/main.rs:1203 +#: crates/pdfs-gui/src/app/main.rs:1208 msgid "Something changed this first" msgstr "Coś zmieniło ten element wcześniej" -#: crates/pdfs-gui/src/app/main.rs:1204 +#: crates/pdfs-gui/src/app/main.rs:1209 msgid "Your Proton Drive is full" msgstr "Proton Drive jest pełny" -#: crates/pdfs-gui/src/app/main.rs:1245 crates/pdfs-gui/src/app/main.rs:1433 +#: crates/pdfs-gui/src/app/main.rs:1250 crates/pdfs-gui/src/app/main.rs:1438 #: crates/pdfs-gui/src/app/pages/status.rs:353 msgid "Preferences" msgstr "Preferencje" -#: crates/pdfs-gui/src/app/main.rs:1246 crates/pdfs-gui/src/app/main.rs:1490 +#: crates/pdfs-gui/src/app/main.rs:1251 crates/pdfs-gui/src/app/main.rs:1495 msgid "Keyboard Shortcuts" msgstr "Skróty klawiszowe" -#: crates/pdfs-gui/src/app/main.rs:1248 +#: crates/pdfs-gui/src/app/main.rs:1253 msgid "About Proton Drive for Linux" msgstr "O programie Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1253 +#: crates/pdfs-gui/src/app/main.rs:1258 msgid "Main menu" msgstr "Menu główne" -#: crates/pdfs-gui/src/app/main.rs:1299 +#: crates/pdfs-gui/src/app/main.rs:1304 msgid "Proton Drive for Linux" msgstr "Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1307 +#: crates/pdfs-gui/src/app/main.rs:1312 msgid "" "Files-on-demand Proton Drive for the Linux desktop.\n" "\n" @@ -120,23 +120,23 @@ msgstr "" "Nieoficjalny klient — niepowiązany z Proton AG, niepopierany ani " "niewspierany przez tę firmę." -#: crates/pdfs-gui/src/app/main.rs:1312 +#: crates/pdfs-gui/src/app/main.rs:1317 msgid "Source Code" msgstr "Kod źródłowy" -#: crates/pdfs-gui/src/app/main.rs:1316 +#: crates/pdfs-gui/src/app/main.rs:1321 msgid "Proton Terms of Service" msgstr "Warunki korzystania z usług Proton" -#: crates/pdfs-gui/src/app/main.rs:1320 +#: crates/pdfs-gui/src/app/main.rs:1325 msgid "Proton Privacy Policy" msgstr "Polityka prywatności Proton" -#: crates/pdfs-gui/src/app/main.rs:1325 +#: crates/pdfs-gui/src/app/main.rs:1330 msgid "Disclaimer" msgstr "Zastrzeżenia" -#: crates/pdfs-gui/src/app/main.rs:1329 +#: crates/pdfs-gui/src/app/main.rs:1334 msgid "" "This is an unofficial, community-built client. It is not affiliated with, " "endorsed by, or supported by Proton AG.\n" @@ -162,15 +162,15 @@ msgstr "" #. Translators: replace with your name(s) and email address(es), one #. per line, to be credited in the About dialog. -#: crates/pdfs-gui/src/app/main.rs:1340 +#: crates/pdfs-gui/src/app/main.rs:1345 msgid "translator-credits" msgstr "Współtwórcy programu Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1371 +#: crates/pdfs-gui/src/app/main.rs:1376 msgid "Stop Proton Drive?" msgstr "Zatrzymać Proton Drive?" -#: crates/pdfs-gui/src/app/main.rs:1372 +#: crates/pdfs-gui/src/app/main.rs:1377 msgid "" "The drive unmounts and nothing syncs until you connect again. Proton Drive " "starts again at your next login." @@ -178,7 +178,7 @@ msgstr "" "Dysk zostanie odmontowany, a synchronizacja wstrzymana do czasu ponownego " "połączenia. Proton Drive uruchomi się ponownie przy następnym zalogowaniu." -#: crates/pdfs-gui/src/app/main.rs:1374 crates/pdfs-gui/src/app/main.rs:1647 +#: crates/pdfs-gui/src/app/main.rs:1379 crates/pdfs-gui/src/app/main.rs:1652 #: crates/pdfs-gui/src/app/pages/albums.rs:242 #: crates/pdfs-gui/src/app/pages/albums.rs:423 #: crates/pdfs-gui/src/app/pages/browser.rs:2273 @@ -192,7 +192,7 @@ msgstr "" #: crates/pdfs-gui/src/app/pages/locations.rs:670 #: crates/pdfs-gui/src/app/pages/locations.rs:1050 #: crates/pdfs-gui/src/app/pages/login.rs:312 -#: crates/pdfs-gui/src/app/pages/photos.rs:1842 +#: crates/pdfs-gui/src/app/pages/photos.rs:1854 #: crates/pdfs-gui/src/app/pages/shared.rs:717 #: crates/pdfs-gui/src/app/pages/shared.rs:748 #: crates/pdfs-gui/src/app/pages/shared.rs:789 @@ -206,67 +206,67 @@ msgstr "" msgid "Cancel" msgstr "Anuluj" -#: crates/pdfs-gui/src/app/main.rs:1375 +#: crates/pdfs-gui/src/app/main.rs:1380 msgctxt "verb" msgid "Stop" msgstr "Zatrzymaj" -#: crates/pdfs-gui/src/app/main.rs:1392 +#: crates/pdfs-gui/src/app/main.rs:1397 msgid "Couldn't stop Proton Drive" msgstr "Nie można zatrzymać Proton Drive" -#: crates/pdfs-gui/src/app/main.rs:1393 +#: crates/pdfs-gui/src/app/main.rs:1398 msgid "The mount service did not stop." msgstr "Usługa montowania nie została zatrzymana." -#: crates/pdfs-gui/src/app/main.rs:1429 +#: crates/pdfs-gui/src/app/main.rs:1434 #: crates/pdfs-gui/src/app/pages/status.rs:226 msgid "General" msgstr "Ogólne" -#: crates/pdfs-gui/src/app/main.rs:1431 +#: crates/pdfs-gui/src/app/main.rs:1436 #: crates/pdfs-gui/src/app/pages/browser.rs:270 msgid "Search Drive" msgstr "Przeszukaj Drive" -#: crates/pdfs-gui/src/app/main.rs:1432 +#: crates/pdfs-gui/src/app/main.rs:1437 #: crates/pdfs-gui/src/app/pages/browser.rs:1363 msgid "Refresh" msgstr "Odśwież" -#: crates/pdfs-gui/src/app/main.rs:1434 +#: crates/pdfs-gui/src/app/main.rs:1439 msgid "Keyboard shortcuts" msgstr "Skróty klawiszowe" -#: crates/pdfs-gui/src/app/main.rs:1438 +#: crates/pdfs-gui/src/app/main.rs:1443 msgid "Files" msgstr "Pliki" -#: crates/pdfs-gui/src/app/main.rs:1440 +#: crates/pdfs-gui/src/app/main.rs:1445 #: crates/pdfs-gui/src/app/pages/browser.rs:319 #: crates/pdfs-gui/src/app/pages/browser.rs:2586 msgid "New folder" msgstr "Nowy katalog" -#: crates/pdfs-gui/src/app/main.rs:1441 +#: crates/pdfs-gui/src/app/main.rs:1446 #: crates/pdfs-gui/src/app/pages/browser.rs:315 msgid "Upload files" msgstr "Wyślij pliki" -#: crates/pdfs-gui/src/app/main.rs:1442 +#: crates/pdfs-gui/src/app/main.rs:1447 msgid "Back / forward" msgstr "Wstecz/dalej" -#: crates/pdfs-gui/src/app/main.rs:1443 +#: crates/pdfs-gui/src/app/main.rs:1448 #: crates/pdfs-gui/src/app/pages/browser.rs:2320 msgid "Parent folder" msgstr "Katalog nadrzędny" -#: crates/pdfs-gui/src/app/main.rs:1444 +#: crates/pdfs-gui/src/app/main.rs:1449 msgid "Grid / list" msgstr "Siatka/lista" -#: crates/pdfs-gui/src/app/main.rs:1445 +#: crates/pdfs-gui/src/app/main.rs:1450 #: crates/pdfs-gui/src/app/pages/albums.rs:297 #: crates/pdfs-gui/src/app/pages/browser.rs:2252 #: crates/pdfs-gui/src/app/pages/browser.rs:2274 @@ -275,62 +275,63 @@ msgstr "Siatka/lista" msgid "Rename" msgstr "Zmień nazwę" -#: crates/pdfs-gui/src/app/main.rs:1446 crates/pdfs-gui/src/app/main.rs:1466 +#: crates/pdfs-gui/src/app/main.rs:1451 crates/pdfs-gui/src/app/main.rs:1471 #: crates/pdfs-gui/src/app/pages/browser.rs:414 #: crates/pdfs-gui/src/app/pages/browser.rs:1306 #: crates/pdfs-gui/src/app/pages/browser.rs:1338 -#: crates/pdfs-gui/src/app/pages/photos.rs:540 -#: crates/pdfs-gui/src/app/pages/photos.rs:1839 -#: crates/pdfs-gui/src/app/pages/photos.rs:1843 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:24 +#: crates/pdfs-gui/src/app/pages/photos.rs:550 +#: crates/pdfs-gui/src/app/pages/photos.rs:1851 +#: crates/pdfs-gui/src/app/pages/photos.rs:1855 #: crates/pdfs-gui/src/app/widgets/details.rs:162 msgid "Move to Trash" msgstr "Przenieś do kosza" -#: crates/pdfs-gui/src/app/main.rs:1447 +#: crates/pdfs-gui/src/app/main.rs:1452 msgid "Clear the selection" msgstr "Wyczyść zaznaczenie" -#: crates/pdfs-gui/src/app/main.rs:1453 +#: crates/pdfs-gui/src/app/main.rs:1458 msgid "Larger thumbnails" msgstr "Większe miniatury" -#: crates/pdfs-gui/src/app/main.rs:1454 +#: crates/pdfs-gui/src/app/main.rs:1459 msgid "Smaller thumbnails" msgstr "Mniejsze miniatury" -#: crates/pdfs-gui/src/app/main.rs:1455 +#: crates/pdfs-gui/src/app/main.rs:1460 msgid "Reset thumbnail size" msgstr "Przywróć rozmiar miniatur" -#: crates/pdfs-gui/src/app/main.rs:1456 +#: crates/pdfs-gui/src/app/main.rs:1461 msgid "Select all" msgstr "Zaznacz wszystko" -#: crates/pdfs-gui/src/app/main.rs:1460 +#: crates/pdfs-gui/src/app/main.rs:1465 msgid "Photo Viewer" msgstr "Przeglądarka zdjęć" -#: crates/pdfs-gui/src/app/main.rs:1462 +#: crates/pdfs-gui/src/app/main.rs:1467 msgid "Previous / next photo" msgstr "Poprzednie/następne zdjęcie" -#: crates/pdfs-gui/src/app/main.rs:1463 +#: crates/pdfs-gui/src/app/main.rs:1468 msgid "First / last photo" msgstr "Pierwsze/ostatnie zdjęcie" -#: crates/pdfs-gui/src/app/main.rs:1464 +#: crates/pdfs-gui/src/app/main.rs:1469 msgid "Show details" msgstr "Wyświetl szczegóły" -#: crates/pdfs-gui/src/app/main.rs:1465 +#: crates/pdfs-gui/src/app/main.rs:1470 msgid "Fullscreen" msgstr "Pełny ekran" -#: crates/pdfs-gui/src/app/main.rs:1467 +#: crates/pdfs-gui/src/app/main.rs:1472 msgid "Close" msgstr "Zamknij" -#: crates/pdfs-gui/src/app/main.rs:1570 +#: crates/pdfs-gui/src/app/main.rs:1575 msgid "Select a single item to rename it" msgstr "Należy zaznaczyć jeden element, aby zmienić jego nazwę" @@ -367,7 +368,7 @@ msgstr "Wymaga uwagi" #: crates/pdfs-gui/src/app/pages/browser.rs:306 #: crates/pdfs-gui/src/app/pages/devices.rs:84 #: crates/pdfs-gui/src/app/pages/locations.rs:134 -#: crates/pdfs-gui/src/app/pages/photos.rs:417 +#: crates/pdfs-gui/src/app/pages/photos.rs:418 #: crates/pdfs-gui/src/app/pages/shared.rs:83 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:38 #: crates/pdfs-gui/src/app/pages/trash.rs:57 crates/pdfs-gui/src/prompt.rs:593 @@ -403,7 +404,7 @@ msgstr "Nie można odczytać aktywności" #: crates/pdfs-gui/src/app/pages/browser.rs:2880 #: crates/pdfs-gui/src/app/pages/browser.rs:3066 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:310 -#: crates/pdfs-gui/src/app/pages/photos.rs:3217 +#: crates/pdfs-gui/src/app/pages/photos.rs:3235 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:139 #: crates/pdfs-gui/src/app/pages/trash.rs:320 msgid "Unexpected reply from the mount service." @@ -415,7 +416,7 @@ msgstr "Nieoczekiwana odpowiedź od usługi montowania." #: crates/pdfs-gui/src/app/pages/browser.rs:2914 #: crates/pdfs-gui/src/app/pages/devices.rs:209 #: crates/pdfs-gui/src/app/pages/locations.rs:844 -#: crates/pdfs-gui/src/app/pages/photos.rs:3251 +#: crates/pdfs-gui/src/app/pages/photos.rs:3269 #: crates/pdfs-gui/src/app/pages/shared.rs:523 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:156 #: crates/pdfs-gui/src/app/pages/status.rs:1301 @@ -427,7 +428,7 @@ msgstr "Brak połączenia" #: crates/pdfs-gui/src/app/pages/browser.rs:2915 #: crates/pdfs-gui/src/app/pages/devices.rs:210 #: crates/pdfs-gui/src/app/pages/locations.rs:845 -#: crates/pdfs-gui/src/app/pages/photos.rs:3252 +#: crates/pdfs-gui/src/app/pages/photos.rs:3270 #: crates/pdfs-gui/src/app/pages/shared.rs:524 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:157 #: crates/pdfs-gui/src/app/pages/trash.rs:336 @@ -439,7 +440,7 @@ msgstr "Usługa montowania Proton Drive nie jest uruchomiona." #: crates/pdfs-gui/src/app/pages/browser.rs:2924 #: crates/pdfs-gui/src/app/pages/devices.rs:218 #: crates/pdfs-gui/src/app/pages/locations.rs:853 -#: crates/pdfs-gui/src/app/pages/photos.rs:3260 +#: crates/pdfs-gui/src/app/pages/photos.rs:3278 #: crates/pdfs-gui/src/app/pages/shared.rs:532 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:165 #: crates/pdfs-gui/src/app/pages/status.rs:305 @@ -452,7 +453,7 @@ msgstr "Łączenie…" #: crates/pdfs-gui/src/app/pages/browser.rs:2925 #: crates/pdfs-gui/src/app/pages/devices.rs:219 #: crates/pdfs-gui/src/app/pages/locations.rs:854 -#: crates/pdfs-gui/src/app/pages/photos.rs:3261 +#: crates/pdfs-gui/src/app/pages/photos.rs:3279 #: crates/pdfs-gui/src/app/pages/shared.rs:533 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:166 #: crates/pdfs-gui/src/app/pages/trash.rs:345 @@ -460,12 +461,12 @@ msgid "Waiting for the Proton Drive mount service to come up." msgstr "Oczekiwanie na uruchomienie usługi montowania Proton Drive." #: crates/pdfs-gui/src/app/pages/activity.rs:419 -#: crates/pdfs-gui/src/app/pages/photos.rs:2504 +#: crates/pdfs-gui/src/app/pages/photos.rs:2522 msgid "Today" msgstr "Dzisiaj" #: crates/pdfs-gui/src/app/pages/activity.rs:422 -#: crates/pdfs-gui/src/app/pages/photos.rs:2509 +#: crates/pdfs-gui/src/app/pages/photos.rs:2527 msgid "Yesterday" msgstr "Wczoraj" @@ -528,7 +529,7 @@ msgstr "Rozwiązane" #. Translators: strftime format for the time of day in the activity feed, such as "14:05". #. Translators: strftime format for the time a photo was taken, shown on its tile, such as "14:05". #: crates/pdfs-gui/src/app/pages/activity.rs:580 -#: crates/pdfs-gui/src/app/pages/photos.rs:2548 +#: crates/pdfs-gui/src/app/pages/photos.rs:2566 msgid "%H:%M" msgstr "%H:%M" @@ -634,12 +635,12 @@ msgid "Reading your Proton Drive albums." msgstr "Odczytywanie albumów w Proton Drive." #: crates/pdfs-gui/src/app/pages/albums.rs:59 -#: crates/pdfs-gui/src/app/pages/photos.rs:3130 +#: crates/pdfs-gui/src/app/pages/photos.rs:3148 msgid "No photo library" msgstr "Brak biblioteki zdjęć" #: crates/pdfs-gui/src/app/pages/albums.rs:60 -#: crates/pdfs-gui/src/app/pages/photos.rs:3131 +#: crates/pdfs-gui/src/app/pages/photos.rs:3149 msgid "This Proton account doesn't have Photos enabled." msgstr "To konto Proton nie ma włączonych Zdjęć." @@ -673,7 +674,7 @@ msgstr[2] "{n} albumów" #: crates/pdfs-gui/src/app/pages/albums.rs:205 #: crates/pdfs-gui/src/app/pages/browser.rs:1246 -#: crates/pdfs-gui/src/app/pages/photos.rs:2984 +#: crates/pdfs-gui/src/app/pages/photos.rs:3002 #: crates/pdfs-gui/src/app/pages/shared.rs:384 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:244 #: crates/pdfs-gui/src/app/widgets/details.rs:155 @@ -733,16 +734,17 @@ msgstr "Nie można utworzyć albumu" #: crates/pdfs-gui/src/app/pages/devices.rs:532 #: crates/pdfs-gui/src/app/pages/devices.rs:682 #: crates/pdfs-gui/src/app/pages/devices.rs:912 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:63 #: crates/pdfs-gui/src/app/pages/locations.rs:342 #: crates/pdfs-gui/src/app/pages/locations.rs:516 #: crates/pdfs-gui/src/app/pages/locations.rs:739 #: crates/pdfs-gui/src/app/pages/locations.rs:1090 #: crates/pdfs-gui/src/app/pages/locations.rs:1109 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1424 -#: crates/pdfs-gui/src/app/pages/photos.rs:1272 -#: crates/pdfs-gui/src/app/pages/photos.rs:1921 -#: crates/pdfs-gui/src/app/pages/photos.rs:3048 -#: crates/pdfs-gui/src/app/pages/photos.rs:3223 +#: crates/pdfs-gui/src/app/pages/photos.rs:1284 +#: crates/pdfs-gui/src/app/pages/photos.rs:1939 +#: crates/pdfs-gui/src/app/pages/photos.rs:3066 +#: crates/pdfs-gui/src/app/pages/photos.rs:3241 #: crates/pdfs-gui/src/app/pages/shared.rs:510 #: crates/pdfs-gui/src/app/pages/shared.rs:838 #: crates/pdfs-gui/src/app/pages/status.rs:672 @@ -807,7 +809,7 @@ msgstr[1] "Proszę wybrać album dla {n} zdjęć." msgstr[2] "Proszę wybrać album dla {n} zdjęć." #: crates/pdfs-gui/src/app/pages/albums.rs:424 -#: crates/pdfs-gui/src/app/pages/photos.rs:712 +#: crates/pdfs-gui/src/app/pages/photos.rs:722 msgid "New Album…" msgstr "Nowy album…" @@ -1003,7 +1005,7 @@ msgstr "Moje pliki" #. Translators: {n} is how many items are selected: files and folders in My Files, photos here. #: crates/pdfs-gui/src/app/pages/browser.rs:638 #: crates/pdfs-gui/src/app/pages/browser.rs:1331 -#: crates/pdfs-gui/src/app/pages/photos.rs:1775 +#: crates/pdfs-gui/src/app/pages/photos.rs:1787 #, rust-format msgid "{n} selected" msgid_plural "{n} selected" @@ -1013,8 +1015,8 @@ msgstr[2] "Zaznaczono: {n}" #: crates/pdfs-gui/src/app/pages/browser.rs:674 #: crates/pdfs-gui/src/app/pages/browser.rs:709 -#: crates/pdfs-gui/src/app/pages/photos.rs:1914 -#: crates/pdfs-gui/src/app/pages/photos.rs:1920 +#: crates/pdfs-gui/src/app/pages/photos.rs:1932 +#: crates/pdfs-gui/src/app/pages/photos.rs:1938 msgid "Couldn't move to Trash" msgstr "Nie można przenieść do kosza" @@ -1053,7 +1055,7 @@ msgstr[1] "Przeniesiono {n} elementy do kosza" msgstr[2] "Przeniesiono {n} elementów do kosza" #: crates/pdfs-gui/src/app/pages/browser.rs:727 -#: crates/pdfs-gui/src/app/pages/photos.rs:1907 +#: crates/pdfs-gui/src/app/pages/photos.rs:1925 msgid "Undo" msgstr "Cofnij" @@ -1113,7 +1115,7 @@ msgid "Open With…" msgstr "Otwórz za pomocą…" #: crates/pdfs-gui/src/app/pages/browser.rs:1263 -#: crates/pdfs-gui/src/app/pages/photos.rs:2982 +#: crates/pdfs-gui/src/app/pages/photos.rs:3000 msgctxt "verb" msgid "Play" msgstr "Odtwórz" @@ -1414,7 +1416,7 @@ msgstr[1] "Wysyłanie {n} elementów…" msgstr[2] "Wysyłanie {n} elementów…" #: crates/pdfs-gui/src/app/pages/browser.rs:2696 -#: crates/pdfs-gui/src/app/pages/photos.rs:730 +#: crates/pdfs-gui/src/app/pages/photos.rs:740 msgctxt "verb" msgid "View" msgstr "Wyświetl" @@ -1888,6 +1890,53 @@ msgstr "Przejęto tożsamość" msgid "Couldn't adopt that computer" msgstr "Nie można przejąć tożsamości tego komputera" +#: crates/pdfs-gui/src/app/pages/duplicates.rs:15 +msgid "Looking for duplicates…" +msgstr "Wyszukiwanie duplikatów…" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:42 +msgid "Duplicates" +msgstr "Duplikaty" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:56 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:62 +msgid "Couldn't look for duplicates" +msgstr "Nie można wyszukać duplikatów" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:69 +msgid "No duplicates" +msgstr "Brak duplikatów" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:71 +msgid "Every photo in your library is stored once." +msgstr "Każde zdjęcie w bibliotece jest zapisane tylko raz." + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:88 +msgid "" +"These photos are stored more than once. The copies you don't keep move to " +"Trash, where you can restore them." +msgstr "Te zdjęcia są zapisane więcej niż raz. Kopie, których nie zachowasz, trafią do kosza, skąd można je przywrócić." + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:111 +#, rust-format +msgid "{date}, {n} copy" +msgid_plural "{date}, {n} copies" +msgstr[0] "{date}, {n} kopia" +msgstr[1] "{date}, {n} kopie" +msgstr[2] "{date}, {n} kopii" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:143 +#, rust-format +msgid "Move {n} copy to Trash" +msgid_plural "Move {n} copies to Trash" +msgstr[0] "Przenieś {n} kopię do kosza" +msgstr[1] "Przenieś {n} kopie do kosza" +msgstr[2] "Przenieś {n} kopii do kosza" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:235 +msgid "Keep" +msgstr "Zachowaj" + #: crates/pdfs-gui/src/app/pages/locations.rs:89 msgid "Add Folder" msgstr "Dodaj katalog" @@ -2588,144 +2637,148 @@ msgid "Hide details" msgstr "Ukryj szczegóły" #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1429 -#: crates/pdfs-gui/src/app/pages/photos.rs:3043 -#: crates/pdfs-gui/src/app/pages/photos.rs:3047 +#: crates/pdfs-gui/src/app/pages/photos.rs:3061 +#: crates/pdfs-gui/src/app/pages/photos.rs:3065 msgid "Couldn't change the favorite" msgstr "Nie można zmienić stanu ulubionego" -#: crates/pdfs-gui/src/app/pages/photos.rs:427 -#: crates/pdfs-gui/src/app/pages/photos.rs:507 +#: crates/pdfs-gui/src/app/pages/photos.rs:428 +#: crates/pdfs-gui/src/app/pages/photos.rs:508 msgid "Upload photos" msgstr "Wyślij zdjęcia" -#: crates/pdfs-gui/src/app/pages/photos.rs:432 +#: crates/pdfs-gui/src/app/pages/photos.rs:433 #: crates/pdfs-gui/src/app/pages/takeout.rs:287 msgid "Import from Google Photos" msgstr "Importuj z Google Photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:472 -#: crates/pdfs-gui/src/app/pages/photos.rs:612 +#: crates/pdfs-gui/src/app/pages/photos.rs:473 +#: crates/pdfs-gui/src/app/pages/photos.rs:622 msgid "Jump to a month" msgstr "Przejdź do miesiąca" -#: crates/pdfs-gui/src/app/pages/photos.rs:491 +#: crates/pdfs-gui/src/app/pages/photos.rs:492 msgid "Back to albums" msgstr "Wróć do albumów" -#: crates/pdfs-gui/src/app/pages/photos.rs:503 +#: crates/pdfs-gui/src/app/pages/photos.rs:504 msgctxt "verb" msgid "Upload" msgstr "Wyślij" -#: crates/pdfs-gui/src/app/pages/photos.rs:516 +#: crates/pdfs-gui/src/app/pages/photos.rs:517 msgid "Import a Google Photos Takeout export" msgstr "Importuj eksport Google Takeout z Google Photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:526 -#: crates/pdfs-gui/src/app/pages/photos.rs:535 -#: crates/pdfs-gui/src/app/pages/photos.rs:1773 +#: crates/pdfs-gui/src/app/pages/photos.rs:527 +msgid "Find duplicates" +msgstr "Znajdź duplikaty" + +#: crates/pdfs-gui/src/app/pages/photos.rs:536 +#: crates/pdfs-gui/src/app/pages/photos.rs:545 +#: crates/pdfs-gui/src/app/pages/photos.rs:1785 msgid "Select photos" msgstr "Zaznacz zdjęcia" -#: crates/pdfs-gui/src/app/pages/photos.rs:546 -#: crates/pdfs-gui/src/app/pages/photos.rs:3000 +#: crates/pdfs-gui/src/app/pages/photos.rs:556 +#: crates/pdfs-gui/src/app/pages/photos.rs:3018 msgid "Add to Album…" msgstr "Dodaj do albumu…" -#: crates/pdfs-gui/src/app/pages/photos.rs:552 +#: crates/pdfs-gui/src/app/pages/photos.rs:562 msgid "Leave selection (Esc)" msgstr "Zakończ zaznaczanie (Esc)" -#: crates/pdfs-gui/src/app/pages/photos.rs:596 +#: crates/pdfs-gui/src/app/pages/photos.rs:606 msgid "Show only favorites" msgstr "Wyświetlaj tylko ulubione" -#: crates/pdfs-gui/src/app/pages/photos.rs:603 +#: crates/pdfs-gui/src/app/pages/photos.rs:613 msgid "Show only photos not in an album" msgstr "Wyświetlaj tylko zdjęcia spoza albumów" -#: crates/pdfs-gui/src/app/pages/photos.rs:610 -#: crates/pdfs-gui/src/app/pages/photos.rs:845 +#: crates/pdfs-gui/src/app/pages/photos.rs:620 +#: crates/pdfs-gui/src/app/pages/photos.rs:857 msgid "All dates" msgstr "Wszystkie daty" -#: crates/pdfs-gui/src/app/pages/photos.rs:631 +#: crates/pdfs-gui/src/app/pages/photos.rs:641 msgid "Timeline" msgstr "Oś czasu" -#: crates/pdfs-gui/src/app/pages/photos.rs:635 +#: crates/pdfs-gui/src/app/pages/photos.rs:645 msgid "Albums" msgstr "Albumy" -#: crates/pdfs-gui/src/app/pages/photos.rs:654 +#: crates/pdfs-gui/src/app/pages/photos.rs:664 msgid "On this day" msgstr "Tego dnia" -#: crates/pdfs-gui/src/app/pages/photos.rs:729 +#: crates/pdfs-gui/src/app/pages/photos.rs:739 msgid "Importing from Google Photos…" msgstr "Importowanie z Google Photos…" #. Translators: strftime format for a month on its own, such as "June 2024". %OB is the month name in its standalone (nominative) form; use %B if your language has no separate form. -#: crates/pdfs-gui/src/app/pages/photos.rs:821 +#: crates/pdfs-gui/src/app/pages/photos.rs:833 msgid "%OB %Y" msgstr "%OB %Y" #. Translators: a row of the date jump; {month} is a month such as "June 2024", {count} how many photos it holds. -#: crates/pdfs-gui/src/app/pages/photos.rs:852 +#: crates/pdfs-gui/src/app/pages/photos.rs:864 #, rust-format msgid "{month} ({count})" msgstr "{month} ({count})" #. Translators: a Photos filter tab that shows photos, videos and raw files together. -#: crates/pdfs-gui/src/app/pages/photos.rs:889 +#: crates/pdfs-gui/src/app/pages/photos.rs:901 msgctxt "photo filter" msgid "All" msgstr "Wszystko" -#: crates/pdfs-gui/src/app/pages/photos.rs:890 +#: crates/pdfs-gui/src/app/pages/photos.rs:902 msgctxt "photo filter" msgid "Photos" msgstr "Zdjęcia" -#: crates/pdfs-gui/src/app/pages/photos.rs:891 +#: crates/pdfs-gui/src/app/pages/photos.rs:903 msgctxt "photo filter" msgid "Videos" msgstr "Filmy" #. Translators: a Photos filter tab for raw camera files. -#: crates/pdfs-gui/src/app/pages/photos.rs:893 +#: crates/pdfs-gui/src/app/pages/photos.rs:905 msgctxt "photo filter" msgid "Raw" msgstr "RAW" -#: crates/pdfs-gui/src/app/pages/photos.rs:1198 +#: crates/pdfs-gui/src/app/pages/photos.rs:1210 msgid "Select Photo to Upload" msgstr "Wybór zdjęcia do wysłania" -#: crates/pdfs-gui/src/app/pages/photos.rs:1202 +#: crates/pdfs-gui/src/app/pages/photos.rs:1214 #: crates/pdfs-gui/src/prompt.rs:60 msgid "Images" msgstr "Obrazy" -#: crates/pdfs-gui/src/app/pages/photos.rs:1258 +#: crates/pdfs-gui/src/app/pages/photos.rs:1270 msgid "Photo uploaded" msgstr "Wysłano zdjęcie" -#: crates/pdfs-gui/src/app/pages/photos.rs:1263 -#: crates/pdfs-gui/src/app/pages/photos.rs:1271 +#: crates/pdfs-gui/src/app/pages/photos.rs:1275 +#: crates/pdfs-gui/src/app/pages/photos.rs:1283 msgid "Couldn't upload photo" msgstr "Nie można wysłać zdjęcia" #. Translators: badge on a photo tile whose shot includes a raw camera file. -#: crates/pdfs-gui/src/app/pages/photos.rs:1432 +#: crates/pdfs-gui/src/app/pages/photos.rs:1444 msgid "RAW" msgstr "RAW" -#: crates/pdfs-gui/src/app/pages/photos.rs:1817 +#: crates/pdfs-gui/src/app/pages/photos.rs:1829 msgid "Move this photo to Trash?" msgstr "Przenieść to zdjęcie do kosza?" -#: crates/pdfs-gui/src/app/pages/photos.rs:1819 +#: crates/pdfs-gui/src/app/pages/photos.rs:1831 #, rust-format msgid "Move this photo to Trash? It is stored as {n} file." msgid_plural "Move this photo to Trash? It is stored as {n} files." @@ -2733,7 +2786,7 @@ msgstr[0] "Przenieść to zdjęcie do kosza? Jest przechowywane w {n} pliku." msgstr[1] "Przenieść to zdjęcie do kosza? Jest przechowywane w {n} plikach." msgstr[2] "Przenieść to zdjęcie do kosza? Jest przechowywane w {n} plikach." -#: crates/pdfs-gui/src/app/pages/photos.rs:1825 +#: crates/pdfs-gui/src/app/pages/photos.rs:1837 #, rust-format msgid "Move {n} photo to Trash?" msgid_plural "Move {n} photos to Trash?" @@ -2741,7 +2794,7 @@ msgstr[0] "Przenieść {n} zdjęcie do kosza?" msgstr[1] "Przenieść {n} zdjęcia do kosza?" msgstr[2] "Przenieść {n} zdjęć do kosza?" -#: crates/pdfs-gui/src/app/pages/photos.rs:1832 +#: crates/pdfs-gui/src/app/pages/photos.rs:1844 #, rust-format msgid "Move {n} photo to Trash? They are stored as {files} files." msgid_plural "Move {n} photos to Trash? They are stored as {files} files." @@ -2750,15 +2803,15 @@ msgstr[0] "" msgstr[1] "Przenieść {n} zdjęcia do kosza? Są przechowywane w {files} plikach." msgstr[2] "Przenieść {n} zdjęć do kosza? Są przechowywane w {files} plikach." -#: crates/pdfs-gui/src/app/pages/photos.rs:1890 +#: crates/pdfs-gui/src/app/pages/photos.rs:1908 msgid "The server refused." msgstr "Serwer odmówił." -#: crates/pdfs-gui/src/app/pages/photos.rs:1893 +#: crates/pdfs-gui/src/app/pages/photos.rs:1911 msgid "Some photos couldn't be moved to Trash" msgstr "Nie można przenieść niektórych zdjęć do kosza" -#: crates/pdfs-gui/src/app/pages/photos.rs:1902 +#: crates/pdfs-gui/src/app/pages/photos.rs:1920 #, rust-format msgid "Moved {n} photo to Trash" msgid_plural "Moved {n} photos to Trash" @@ -2767,7 +2820,7 @@ msgstr[1] "Przeniesiono {n} zdjęcia do kosza" msgstr[2] "Przeniesiono {n} zdjęć do kosza" #. Translators: the Photos page subtitle, such as "12 videos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2458 +#: crates/pdfs-gui/src/app/pages/photos.rs:2476 #, rust-format msgid "{count} video" msgid_plural "{count} videos" @@ -2776,7 +2829,7 @@ msgstr[1] "{count} filmy" msgstr[2] "{count} filmów" #. Translators: the Photos page subtitle, such as "12 raw photos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2460 +#: crates/pdfs-gui/src/app/pages/photos.rs:2478 #, rust-format msgid "{count} raw photo" msgid_plural "{count} raw photos" @@ -2785,7 +2838,7 @@ msgstr[1] "{count} zdjęcia RAW" msgstr[2] "{count} zdjęć RAW" #. Translators: the Photos page subtitle, such as "1,204 photos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2462 +#: crates/pdfs-gui/src/app/pages/photos.rs:2480 #, rust-format msgid "{count} photo" msgid_plural "{count} photos" @@ -2793,125 +2846,125 @@ msgstr[0] "{count} zdjęcie" msgstr[1] "{count} zdjęcia" msgstr[2] "{count} zdjęć" -#: crates/pdfs-gui/src/app/pages/photos.rs:2490 -#: crates/pdfs-gui/src/app/pages/photos.rs:2516 +#: crates/pdfs-gui/src/app/pages/photos.rs:2508 +#: crates/pdfs-gui/src/app/pages/photos.rs:2534 msgid "Unknown date" msgstr "Nieznana data" #. Translators: strftime format for a day heading in the photo timeline, such as "3 June 2026". -#: crates/pdfs-gui/src/app/pages/photos.rs:2513 +#: crates/pdfs-gui/src/app/pages/photos.rs:2531 msgid "%-d %B %Y" msgstr "%-d %B %Y" #. Translators: strftime format for a photo's capture date and time, such as "2026-06-03 14:05:09". -#: crates/pdfs-gui/src/app/pages/photos.rs:2534 +#: crates/pdfs-gui/src/app/pages/photos.rs:2552 msgid "%Y-%m-%d %H:%M:%S" msgstr "%Y-%m-%d %H:%M:%S" -#: crates/pdfs-gui/src/app/pages/photos.rs:2538 -#: crates/pdfs-gui/src/app/pages/photos.rs:2540 +#: crates/pdfs-gui/src/app/pages/photos.rs:2556 +#: crates/pdfs-gui/src/app/pages/photos.rs:2558 msgid "Unknown Date" msgstr "Nieznana data" #. Translators: strftime format for the day a photo was taken, shown on its tile when the timeline is grouped by month or year, such as "3 Jun". -#: crates/pdfs-gui/src/app/pages/photos.rs:2558 +#: crates/pdfs-gui/src/app/pages/photos.rs:2576 msgid "%-d %b" msgstr "%-d %b" -#: crates/pdfs-gui/src/app/pages/photos.rs:2580 +#: crates/pdfs-gui/src/app/pages/photos.rs:2598 msgid "Every photo is in an album" msgstr "Każde zdjęcie jest w albumie" -#: crates/pdfs-gui/src/app/pages/photos.rs:2581 +#: crates/pdfs-gui/src/app/pages/photos.rs:2599 msgid "Turn off the album filter to see everything." msgstr "Wyłącz filtr albumów, aby zobaczyć wszystko." -#: crates/pdfs-gui/src/app/pages/photos.rs:2586 +#: crates/pdfs-gui/src/app/pages/photos.rs:2604 msgid "No photos yet" msgstr "Brak zdjęć" -#: crates/pdfs-gui/src/app/pages/photos.rs:2587 +#: crates/pdfs-gui/src/app/pages/photos.rs:2605 msgid "Photos you upload to Proton Drive appear here." msgstr "Tutaj pojawią się zdjęcia wysłane do Proton Drive." -#: crates/pdfs-gui/src/app/pages/photos.rs:2590 +#: crates/pdfs-gui/src/app/pages/photos.rs:2608 msgid "No favorites yet" msgstr "Brak ulubionych" -#: crates/pdfs-gui/src/app/pages/photos.rs:2591 +#: crates/pdfs-gui/src/app/pages/photos.rs:2609 msgid "Star a photo in the viewer or from its menu to find it here." msgstr "" "Oznacz zdjęcie gwiazdką w przeglądarce lub z jego menu, aby znaleźć je tutaj." #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2596 +#: crates/pdfs-gui/src/app/pages/photos.rs:2614 #, rust-format msgid "No favorite videos in {month}" msgstr "Brak ulubionych filmów – {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2597 +#: crates/pdfs-gui/src/app/pages/photos.rs:2615 msgid "No favorite videos" msgstr "Brak ulubionych filmów" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2599 +#: crates/pdfs-gui/src/app/pages/photos.rs:2617 #, rust-format msgid "No favorite raw files in {month}" msgstr "Brak ulubionych plików RAW – {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2600 +#: crates/pdfs-gui/src/app/pages/photos.rs:2618 msgid "No favorite raw files" msgstr "Brak ulubionych plików RAW" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2602 +#: crates/pdfs-gui/src/app/pages/photos.rs:2620 #, rust-format msgid "No favorite photos in {month}" msgstr "Brak ulubionych zdjęć – {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2603 +#: crates/pdfs-gui/src/app/pages/photos.rs:2621 msgid "No favorite photos" msgstr "Brak ulubionych zdjęć" -#: crates/pdfs-gui/src/app/pages/photos.rs:2605 +#: crates/pdfs-gui/src/app/pages/photos.rs:2623 msgid "Turn off the favorites filter to see everything." msgstr "Wyłącz filtr ulubionych, aby zobaczyć wszystko." #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2610 +#: crates/pdfs-gui/src/app/pages/photos.rs:2628 #, rust-format msgid "No videos in {month}" msgstr "Brak filmów – {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2611 +#: crates/pdfs-gui/src/app/pages/photos.rs:2629 msgid "No videos" msgstr "Brak filmów" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2613 +#: crates/pdfs-gui/src/app/pages/photos.rs:2631 #, rust-format msgid "No raw files in {month}" msgstr "Brak plików RAW – {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2614 +#: crates/pdfs-gui/src/app/pages/photos.rs:2632 msgid "No raw files" msgstr "Brak plików RAW" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2616 +#: crates/pdfs-gui/src/app/pages/photos.rs:2634 #, rust-format msgid "No photos in {month}" msgstr "Brak zdjęć – {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2617 +#: crates/pdfs-gui/src/app/pages/photos.rs:2635 msgid "No photos" msgstr "Brak zdjęć" -#: crates/pdfs-gui/src/app/pages/photos.rs:2619 +#: crates/pdfs-gui/src/app/pages/photos.rs:2637 msgid "Try another filter or month." msgstr "Wybierz inny filtr lub miesiąc." -#: crates/pdfs-gui/src/app/pages/photos.rs:2735 +#: crates/pdfs-gui/src/app/pages/photos.rs:2753 #, rust-format msgid "{n} year ago" msgid_plural "{n} years ago" @@ -2919,7 +2972,7 @@ msgstr[0] "{n} rok temu" msgstr[1] "{n} lata temu" msgstr[2] "{n} lat temu" -#: crates/pdfs-gui/src/app/pages/photos.rs:2760 +#: crates/pdfs-gui/src/app/pages/photos.rs:2778 #, rust-format msgid "{date}, {n} photo" msgid_plural "{date}, {n} photos" @@ -2928,55 +2981,55 @@ msgstr[1] "{date}, {n} zdjęcia" msgstr[2] "{date}, {n} zdjęć" #. Translators: a check item in a photo's menu, on while the photo is a favorite. -#: crates/pdfs-gui/src/app/pages/photos.rs:2989 +#: crates/pdfs-gui/src/app/pages/photos.rs:3007 msgctxt "state" msgid "Favorite" msgstr "Ulubione" -#: crates/pdfs-gui/src/app/pages/photos.rs:2994 +#: crates/pdfs-gui/src/app/pages/photos.rs:3012 msgctxt "verb" msgid "Select" msgstr "Zaznacz" -#: crates/pdfs-gui/src/app/pages/photos.rs:3006 +#: crates/pdfs-gui/src/app/pages/photos.rs:3024 msgid "Remove from Album" msgstr "Usuń z albumu" -#: crates/pdfs-gui/src/app/pages/photos.rs:3012 +#: crates/pdfs-gui/src/app/pages/photos.rs:3030 msgid "Move to Trash…" msgstr "Przenieś do kosza…" -#: crates/pdfs-gui/src/app/pages/photos.rs:3036 +#: crates/pdfs-gui/src/app/pages/photos.rs:3054 msgid "Added to Favorites" msgstr "Dodano do ulubionych" -#: crates/pdfs-gui/src/app/pages/photos.rs:3038 +#: crates/pdfs-gui/src/app/pages/photos.rs:3056 msgid "Removed from Favorites" msgstr "Usunięto z ulubionych" -#: crates/pdfs-gui/src/app/pages/photos.rs:3067 +#: crates/pdfs-gui/src/app/pages/photos.rs:3085 msgid "Loading photos…" msgstr "Wczytywanie zdjęć…" -#: crates/pdfs-gui/src/app/pages/photos.rs:3068 +#: crates/pdfs-gui/src/app/pages/photos.rs:3086 msgid "Reading your Proton Drive timeline." msgstr "Odczytywanie osi czasu Proton Drive." -#: crates/pdfs-gui/src/app/pages/photos.rs:3161 +#: crates/pdfs-gui/src/app/pages/photos.rs:3179 msgid "Empty album" msgstr "Pusty album" -#: crates/pdfs-gui/src/app/pages/photos.rs:3162 +#: crates/pdfs-gui/src/app/pages/photos.rs:3180 msgid "This album has no photos in it." msgstr "Ten album nie zawiera żadnych zdjęć." -#: crates/pdfs-gui/src/app/pages/photos.rs:3204 #: crates/pdfs-gui/src/app/pages/photos.rs:3222 +#: crates/pdfs-gui/src/app/pages/photos.rs:3240 msgid "Couldn't load more photos" msgstr "Nie można wczytać więcej zdjęć" -#: crates/pdfs-gui/src/app/pages/photos.rs:3209 -#: crates/pdfs-gui/src/app/pages/photos.rs:3216 +#: crates/pdfs-gui/src/app/pages/photos.rs:3227 +#: crates/pdfs-gui/src/app/pages/photos.rs:3234 msgid "Couldn't load photos" msgstr "Nie można wczytać zdjęć" diff --git a/po/pt_BR.po b/po/pt_BR.po index 0b9a92d..d77e53e 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -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-09-28 00:44+0200\n" +"POT-Creation-Date: 2026-09-28 00:50+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" @@ -15,99 +15,99 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: crates/pdfs-gui/src/app/main.rs:835 +#: crates/pdfs-gui/src/app/main.rs:840 #: crates/pdfs-gui/src/app/pages/locations.rs:1133 #: crates/pdfs-gui/src/prompt.rs:169 msgid "My files" msgstr "Meus arquivos" -#: crates/pdfs-gui/src/app/main.rs:838 crates/pdfs-gui/src/app/main.rs:1451 +#: crates/pdfs-gui/src/app/main.rs:843 crates/pdfs-gui/src/app/main.rs:1456 #: crates/pdfs-gui/src/app/pages/albums.rs:633 -#: crates/pdfs-gui/src/app/pages/photos.rs:746 +#: crates/pdfs-gui/src/app/pages/photos.rs:756 msgid "Photos" msgstr "Fotos" -#: crates/pdfs-gui/src/app/main.rs:843 +#: crates/pdfs-gui/src/app/main.rs:848 msgid "Shared with me" msgstr "Compartilhados comigo" -#: crates/pdfs-gui/src/app/main.rs:848 +#: crates/pdfs-gui/src/app/main.rs:853 msgid "Shared by me" msgstr "Compartilhados por mim" -#: crates/pdfs-gui/src/app/main.rs:851 +#: crates/pdfs-gui/src/app/main.rs:856 #: crates/pdfs-gui/src/app/pages/devices.rs:109 msgid "Computers" msgstr "Computadores" -#: crates/pdfs-gui/src/app/main.rs:852 +#: crates/pdfs-gui/src/app/main.rs:857 #: crates/pdfs-gui/src/app/pages/trash.rs:106 msgid "Trash" msgstr "Lixeira" -#: crates/pdfs-gui/src/app/main.rs:856 +#: crates/pdfs-gui/src/app/main.rs:861 msgid "Sync" msgstr "Sincronização" -#: crates/pdfs-gui/src/app/main.rs:861 +#: crates/pdfs-gui/src/app/main.rs:866 #: crates/pdfs-gui/src/app/pages/activity.rs:153 msgid "Activity" msgstr "Atividade" -#: crates/pdfs-gui/src/app/main.rs:1007 +#: crates/pdfs-gui/src/app/main.rs:1012 msgid "Refresh (F5)" msgstr "Atualizar (F5)" #. Translators: a failed action's toast. {what} says what failed, such as #. "Couldn't rename"; {detail} is the reason, usually untranslated text #. from the mount service. -#: crates/pdfs-gui/src/app/main.rs:1181 +#: crates/pdfs-gui/src/app/main.rs:1186 #, rust-format msgid "{what}: {detail}" msgstr "{what}: {detail}" -#: crates/pdfs-gui/src/app/main.rs:1200 +#: crates/pdfs-gui/src/app/main.rs:1205 msgid "You're offline" msgstr "Você está offline" -#: crates/pdfs-gui/src/app/main.rs:1201 +#: crates/pdfs-gui/src/app/main.rs:1206 msgid "That's not there any more" msgstr "Isso não existe mais" -#: crates/pdfs-gui/src/app/main.rs:1202 +#: crates/pdfs-gui/src/app/main.rs:1207 msgid "You don't have access to that" msgstr "Você não tem acesso a isso" -#: crates/pdfs-gui/src/app/main.rs:1203 +#: crates/pdfs-gui/src/app/main.rs:1208 msgid "Something changed this first" msgstr "Algo alterou isso antes" -#: crates/pdfs-gui/src/app/main.rs:1204 +#: crates/pdfs-gui/src/app/main.rs:1209 msgid "Your Proton Drive is full" msgstr "Seu Proton Drive está cheio" -#: crates/pdfs-gui/src/app/main.rs:1245 crates/pdfs-gui/src/app/main.rs:1433 +#: crates/pdfs-gui/src/app/main.rs:1250 crates/pdfs-gui/src/app/main.rs:1438 #: crates/pdfs-gui/src/app/pages/status.rs:353 msgid "Preferences" msgstr "Preferências" -#: crates/pdfs-gui/src/app/main.rs:1246 crates/pdfs-gui/src/app/main.rs:1490 +#: crates/pdfs-gui/src/app/main.rs:1251 crates/pdfs-gui/src/app/main.rs:1495 msgid "Keyboard Shortcuts" msgstr "Atalhos de teclado" -#: crates/pdfs-gui/src/app/main.rs:1248 +#: crates/pdfs-gui/src/app/main.rs:1253 msgid "About Proton Drive for Linux" msgstr "Sobre o Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1253 +#: crates/pdfs-gui/src/app/main.rs:1258 msgid "Main menu" msgstr "Menu principal" -#: crates/pdfs-gui/src/app/main.rs:1299 +#: crates/pdfs-gui/src/app/main.rs:1304 msgid "Proton Drive for Linux" msgstr "Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1307 +#: crates/pdfs-gui/src/app/main.rs:1312 msgid "" "Files-on-demand Proton Drive for the Linux desktop.\n" "\n" @@ -118,23 +118,23 @@ msgstr "" "\n" "Cliente não oficial — sem afiliação, endosso ou suporte da Proton AG." -#: crates/pdfs-gui/src/app/main.rs:1312 +#: crates/pdfs-gui/src/app/main.rs:1317 msgid "Source Code" msgstr "Código-fonte" -#: crates/pdfs-gui/src/app/main.rs:1316 +#: crates/pdfs-gui/src/app/main.rs:1321 msgid "Proton Terms of Service" msgstr "Termos de Serviço da Proton" -#: crates/pdfs-gui/src/app/main.rs:1320 +#: crates/pdfs-gui/src/app/main.rs:1325 msgid "Proton Privacy Policy" msgstr "Política de Privacidade da Proton" -#: crates/pdfs-gui/src/app/main.rs:1325 +#: crates/pdfs-gui/src/app/main.rs:1330 msgid "Disclaimer" msgstr "Aviso legal" -#: crates/pdfs-gui/src/app/main.rs:1329 +#: crates/pdfs-gui/src/app/main.rs:1334 msgid "" "This is an unofficial, community-built client. It is not affiliated with, " "endorsed by, or supported by Proton AG.\n" @@ -159,15 +159,15 @@ msgstr "" #. Translators: replace with your name(s) and email address(es), one #. per line, to be credited in the About dialog. -#: crates/pdfs-gui/src/app/main.rs:1340 +#: crates/pdfs-gui/src/app/main.rs:1345 msgid "translator-credits" msgstr "Colaboradores do Proton Drive for Linux" -#: crates/pdfs-gui/src/app/main.rs:1371 +#: crates/pdfs-gui/src/app/main.rs:1376 msgid "Stop Proton Drive?" msgstr "Parar o Proton Drive?" -#: crates/pdfs-gui/src/app/main.rs:1372 +#: crates/pdfs-gui/src/app/main.rs:1377 msgid "" "The drive unmounts and nothing syncs until you connect again. Proton Drive " "starts again at your next login." @@ -175,7 +175,7 @@ msgstr "" "A unidade é desmontada e nada é sincronizado até você se conectar novamente. " "O Proton Drive inicia novamente no seu próximo login." -#: crates/pdfs-gui/src/app/main.rs:1374 crates/pdfs-gui/src/app/main.rs:1647 +#: crates/pdfs-gui/src/app/main.rs:1379 crates/pdfs-gui/src/app/main.rs:1652 #: crates/pdfs-gui/src/app/pages/albums.rs:242 #: crates/pdfs-gui/src/app/pages/albums.rs:423 #: crates/pdfs-gui/src/app/pages/browser.rs:2273 @@ -189,7 +189,7 @@ msgstr "" #: crates/pdfs-gui/src/app/pages/locations.rs:670 #: crates/pdfs-gui/src/app/pages/locations.rs:1050 #: crates/pdfs-gui/src/app/pages/login.rs:312 -#: crates/pdfs-gui/src/app/pages/photos.rs:1842 +#: crates/pdfs-gui/src/app/pages/photos.rs:1854 #: crates/pdfs-gui/src/app/pages/shared.rs:717 #: crates/pdfs-gui/src/app/pages/shared.rs:748 #: crates/pdfs-gui/src/app/pages/shared.rs:789 @@ -203,67 +203,67 @@ msgstr "" msgid "Cancel" msgstr "Cancelar" -#: crates/pdfs-gui/src/app/main.rs:1375 +#: crates/pdfs-gui/src/app/main.rs:1380 msgctxt "verb" msgid "Stop" msgstr "Parar" -#: crates/pdfs-gui/src/app/main.rs:1392 +#: crates/pdfs-gui/src/app/main.rs:1397 msgid "Couldn't stop Proton Drive" msgstr "Não foi possível parar o Proton Drive" -#: crates/pdfs-gui/src/app/main.rs:1393 +#: crates/pdfs-gui/src/app/main.rs:1398 msgid "The mount service did not stop." msgstr "O serviço de montagem não parou." -#: crates/pdfs-gui/src/app/main.rs:1429 +#: crates/pdfs-gui/src/app/main.rs:1434 #: crates/pdfs-gui/src/app/pages/status.rs:226 msgid "General" msgstr "Geral" -#: crates/pdfs-gui/src/app/main.rs:1431 +#: crates/pdfs-gui/src/app/main.rs:1436 #: crates/pdfs-gui/src/app/pages/browser.rs:270 msgid "Search Drive" msgstr "Pesquisar no Drive" -#: crates/pdfs-gui/src/app/main.rs:1432 +#: crates/pdfs-gui/src/app/main.rs:1437 #: crates/pdfs-gui/src/app/pages/browser.rs:1363 msgid "Refresh" msgstr "Atualizar" -#: crates/pdfs-gui/src/app/main.rs:1434 +#: crates/pdfs-gui/src/app/main.rs:1439 msgid "Keyboard shortcuts" msgstr "Atalhos de teclado" -#: crates/pdfs-gui/src/app/main.rs:1438 +#: crates/pdfs-gui/src/app/main.rs:1443 msgid "Files" msgstr "Arquivos" -#: crates/pdfs-gui/src/app/main.rs:1440 +#: crates/pdfs-gui/src/app/main.rs:1445 #: crates/pdfs-gui/src/app/pages/browser.rs:319 #: crates/pdfs-gui/src/app/pages/browser.rs:2586 msgid "New folder" msgstr "Nova pasta" -#: crates/pdfs-gui/src/app/main.rs:1441 +#: crates/pdfs-gui/src/app/main.rs:1446 #: crates/pdfs-gui/src/app/pages/browser.rs:315 msgid "Upload files" msgstr "Enviar arquivos" -#: crates/pdfs-gui/src/app/main.rs:1442 +#: crates/pdfs-gui/src/app/main.rs:1447 msgid "Back / forward" msgstr "Voltar / avançar" -#: crates/pdfs-gui/src/app/main.rs:1443 +#: crates/pdfs-gui/src/app/main.rs:1448 #: crates/pdfs-gui/src/app/pages/browser.rs:2320 msgid "Parent folder" msgstr "Pasta superior" -#: crates/pdfs-gui/src/app/main.rs:1444 +#: crates/pdfs-gui/src/app/main.rs:1449 msgid "Grid / list" msgstr "Grade / lista" -#: crates/pdfs-gui/src/app/main.rs:1445 +#: crates/pdfs-gui/src/app/main.rs:1450 #: crates/pdfs-gui/src/app/pages/albums.rs:297 #: crates/pdfs-gui/src/app/pages/browser.rs:2252 #: crates/pdfs-gui/src/app/pages/browser.rs:2274 @@ -272,62 +272,63 @@ msgstr "Grade / lista" msgid "Rename" msgstr "Renomear" -#: crates/pdfs-gui/src/app/main.rs:1446 crates/pdfs-gui/src/app/main.rs:1466 +#: crates/pdfs-gui/src/app/main.rs:1451 crates/pdfs-gui/src/app/main.rs:1471 #: crates/pdfs-gui/src/app/pages/browser.rs:414 #: crates/pdfs-gui/src/app/pages/browser.rs:1306 #: crates/pdfs-gui/src/app/pages/browser.rs:1338 -#: crates/pdfs-gui/src/app/pages/photos.rs:540 -#: crates/pdfs-gui/src/app/pages/photos.rs:1839 -#: crates/pdfs-gui/src/app/pages/photos.rs:1843 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:24 +#: crates/pdfs-gui/src/app/pages/photos.rs:550 +#: crates/pdfs-gui/src/app/pages/photos.rs:1851 +#: crates/pdfs-gui/src/app/pages/photos.rs:1855 #: crates/pdfs-gui/src/app/widgets/details.rs:162 msgid "Move to Trash" msgstr "Mover para a lixeira" -#: crates/pdfs-gui/src/app/main.rs:1447 +#: crates/pdfs-gui/src/app/main.rs:1452 msgid "Clear the selection" msgstr "Limpar a seleção" -#: crates/pdfs-gui/src/app/main.rs:1453 +#: crates/pdfs-gui/src/app/main.rs:1458 msgid "Larger thumbnails" msgstr "Miniaturas maiores" -#: crates/pdfs-gui/src/app/main.rs:1454 +#: crates/pdfs-gui/src/app/main.rs:1459 msgid "Smaller thumbnails" msgstr "Miniaturas menores" -#: crates/pdfs-gui/src/app/main.rs:1455 +#: crates/pdfs-gui/src/app/main.rs:1460 msgid "Reset thumbnail size" msgstr "Redefinir tamanho das miniaturas" -#: crates/pdfs-gui/src/app/main.rs:1456 +#: crates/pdfs-gui/src/app/main.rs:1461 msgid "Select all" msgstr "Selecionar tudo" -#: crates/pdfs-gui/src/app/main.rs:1460 +#: crates/pdfs-gui/src/app/main.rs:1465 msgid "Photo Viewer" msgstr "Visualizador de fotos" -#: crates/pdfs-gui/src/app/main.rs:1462 +#: crates/pdfs-gui/src/app/main.rs:1467 msgid "Previous / next photo" msgstr "Foto anterior / próxima" -#: crates/pdfs-gui/src/app/main.rs:1463 +#: crates/pdfs-gui/src/app/main.rs:1468 msgid "First / last photo" msgstr "Primeira / última foto" -#: crates/pdfs-gui/src/app/main.rs:1464 +#: crates/pdfs-gui/src/app/main.rs:1469 msgid "Show details" msgstr "Mostrar detalhes" -#: crates/pdfs-gui/src/app/main.rs:1465 +#: crates/pdfs-gui/src/app/main.rs:1470 msgid "Fullscreen" msgstr "Tela cheia" -#: crates/pdfs-gui/src/app/main.rs:1467 +#: crates/pdfs-gui/src/app/main.rs:1472 msgid "Close" msgstr "Fechar" -#: crates/pdfs-gui/src/app/main.rs:1570 +#: crates/pdfs-gui/src/app/main.rs:1575 msgid "Select a single item to rename it" msgstr "Selecione um único item para renomeá-lo" @@ -364,7 +365,7 @@ msgstr "Requer atenção" #: crates/pdfs-gui/src/app/pages/browser.rs:306 #: crates/pdfs-gui/src/app/pages/devices.rs:84 #: crates/pdfs-gui/src/app/pages/locations.rs:134 -#: crates/pdfs-gui/src/app/pages/photos.rs:417 +#: crates/pdfs-gui/src/app/pages/photos.rs:418 #: crates/pdfs-gui/src/app/pages/shared.rs:83 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:38 #: crates/pdfs-gui/src/app/pages/trash.rs:57 crates/pdfs-gui/src/prompt.rs:593 @@ -400,7 +401,7 @@ msgstr "Não foi possível ler a atividade" #: crates/pdfs-gui/src/app/pages/browser.rs:2880 #: crates/pdfs-gui/src/app/pages/browser.rs:3066 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:310 -#: crates/pdfs-gui/src/app/pages/photos.rs:3217 +#: crates/pdfs-gui/src/app/pages/photos.rs:3235 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:139 #: crates/pdfs-gui/src/app/pages/trash.rs:320 msgid "Unexpected reply from the mount service." @@ -412,7 +413,7 @@ msgstr "Resposta inesperada do serviço de montagem." #: crates/pdfs-gui/src/app/pages/browser.rs:2914 #: crates/pdfs-gui/src/app/pages/devices.rs:209 #: crates/pdfs-gui/src/app/pages/locations.rs:844 -#: crates/pdfs-gui/src/app/pages/photos.rs:3251 +#: crates/pdfs-gui/src/app/pages/photos.rs:3269 #: crates/pdfs-gui/src/app/pages/shared.rs:523 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:156 #: crates/pdfs-gui/src/app/pages/status.rs:1301 @@ -424,7 +425,7 @@ msgstr "Não conectado" #: crates/pdfs-gui/src/app/pages/browser.rs:2915 #: crates/pdfs-gui/src/app/pages/devices.rs:210 #: crates/pdfs-gui/src/app/pages/locations.rs:845 -#: crates/pdfs-gui/src/app/pages/photos.rs:3252 +#: crates/pdfs-gui/src/app/pages/photos.rs:3270 #: crates/pdfs-gui/src/app/pages/shared.rs:524 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:157 #: crates/pdfs-gui/src/app/pages/trash.rs:336 @@ -436,7 +437,7 @@ msgstr "O serviço de montagem do Proton Drive não está em execução." #: crates/pdfs-gui/src/app/pages/browser.rs:2924 #: crates/pdfs-gui/src/app/pages/devices.rs:218 #: crates/pdfs-gui/src/app/pages/locations.rs:853 -#: crates/pdfs-gui/src/app/pages/photos.rs:3260 +#: crates/pdfs-gui/src/app/pages/photos.rs:3278 #: crates/pdfs-gui/src/app/pages/shared.rs:532 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:165 #: crates/pdfs-gui/src/app/pages/status.rs:305 @@ -449,7 +450,7 @@ msgstr "Conectando…" #: crates/pdfs-gui/src/app/pages/browser.rs:2925 #: crates/pdfs-gui/src/app/pages/devices.rs:219 #: crates/pdfs-gui/src/app/pages/locations.rs:854 -#: crates/pdfs-gui/src/app/pages/photos.rs:3261 +#: crates/pdfs-gui/src/app/pages/photos.rs:3279 #: crates/pdfs-gui/src/app/pages/shared.rs:533 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:166 #: crates/pdfs-gui/src/app/pages/trash.rs:345 @@ -457,12 +458,12 @@ msgid "Waiting for the Proton Drive mount service to come up." msgstr "Aguardando o serviço de montagem do Proton Drive iniciar." #: crates/pdfs-gui/src/app/pages/activity.rs:419 -#: crates/pdfs-gui/src/app/pages/photos.rs:2504 +#: crates/pdfs-gui/src/app/pages/photos.rs:2522 msgid "Today" msgstr "Hoje" #: crates/pdfs-gui/src/app/pages/activity.rs:422 -#: crates/pdfs-gui/src/app/pages/photos.rs:2509 +#: crates/pdfs-gui/src/app/pages/photos.rs:2527 msgid "Yesterday" msgstr "Ontem" @@ -521,7 +522,7 @@ msgstr "Resolvido" #. Translators: strftime format for the time of day in the activity feed, such as "14:05". #. Translators: strftime format for the time a photo was taken, shown on its tile, such as "14:05". #: crates/pdfs-gui/src/app/pages/activity.rs:580 -#: crates/pdfs-gui/src/app/pages/photos.rs:2548 +#: crates/pdfs-gui/src/app/pages/photos.rs:2566 msgid "%H:%M" msgstr "%H:%M" @@ -627,12 +628,12 @@ msgid "Reading your Proton Drive albums." msgstr "Lendo seus álbuns do Proton Drive." #: crates/pdfs-gui/src/app/pages/albums.rs:59 -#: crates/pdfs-gui/src/app/pages/photos.rs:3130 +#: crates/pdfs-gui/src/app/pages/photos.rs:3148 msgid "No photo library" msgstr "Nenhuma biblioteca de fotos" #: crates/pdfs-gui/src/app/pages/albums.rs:60 -#: crates/pdfs-gui/src/app/pages/photos.rs:3131 +#: crates/pdfs-gui/src/app/pages/photos.rs:3149 msgid "This Proton account doesn't have Photos enabled." msgstr "Esta conta Proton não tem o Fotos ativado." @@ -665,7 +666,7 @@ msgstr[1] "{n} álbuns" #: crates/pdfs-gui/src/app/pages/albums.rs:205 #: crates/pdfs-gui/src/app/pages/browser.rs:1246 -#: crates/pdfs-gui/src/app/pages/photos.rs:2984 +#: crates/pdfs-gui/src/app/pages/photos.rs:3002 #: crates/pdfs-gui/src/app/pages/shared.rs:384 #: crates/pdfs-gui/src/app/pages/shared_by_me.rs:244 #: crates/pdfs-gui/src/app/widgets/details.rs:155 @@ -725,16 +726,17 @@ msgstr "Não foi possível criar o álbum" #: crates/pdfs-gui/src/app/pages/devices.rs:532 #: crates/pdfs-gui/src/app/pages/devices.rs:682 #: crates/pdfs-gui/src/app/pages/devices.rs:912 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:63 #: crates/pdfs-gui/src/app/pages/locations.rs:342 #: crates/pdfs-gui/src/app/pages/locations.rs:516 #: crates/pdfs-gui/src/app/pages/locations.rs:739 #: crates/pdfs-gui/src/app/pages/locations.rs:1090 #: crates/pdfs-gui/src/app/pages/locations.rs:1109 #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1424 -#: crates/pdfs-gui/src/app/pages/photos.rs:1272 -#: crates/pdfs-gui/src/app/pages/photos.rs:1921 -#: crates/pdfs-gui/src/app/pages/photos.rs:3048 -#: crates/pdfs-gui/src/app/pages/photos.rs:3223 +#: crates/pdfs-gui/src/app/pages/photos.rs:1284 +#: crates/pdfs-gui/src/app/pages/photos.rs:1939 +#: crates/pdfs-gui/src/app/pages/photos.rs:3066 +#: crates/pdfs-gui/src/app/pages/photos.rs:3241 #: crates/pdfs-gui/src/app/pages/shared.rs:510 #: crates/pdfs-gui/src/app/pages/shared.rs:838 #: crates/pdfs-gui/src/app/pages/status.rs:672 @@ -798,7 +800,7 @@ msgstr[0] "Escolha um álbum para {n} foto." msgstr[1] "Escolha um álbum para {n} fotos." #: crates/pdfs-gui/src/app/pages/albums.rs:424 -#: crates/pdfs-gui/src/app/pages/photos.rs:712 +#: crates/pdfs-gui/src/app/pages/photos.rs:722 msgid "New Album…" msgstr "Novo álbum…" @@ -989,7 +991,7 @@ msgstr "Meus arquivos" #. Translators: {n} is how many items are selected: files and folders in My Files, photos here. #: crates/pdfs-gui/src/app/pages/browser.rs:638 #: crates/pdfs-gui/src/app/pages/browser.rs:1331 -#: crates/pdfs-gui/src/app/pages/photos.rs:1775 +#: crates/pdfs-gui/src/app/pages/photos.rs:1787 #, rust-format msgid "{n} selected" msgid_plural "{n} selected" @@ -998,8 +1000,8 @@ msgstr[1] "{n} selecionados" #: crates/pdfs-gui/src/app/pages/browser.rs:674 #: crates/pdfs-gui/src/app/pages/browser.rs:709 -#: crates/pdfs-gui/src/app/pages/photos.rs:1914 -#: crates/pdfs-gui/src/app/pages/photos.rs:1920 +#: crates/pdfs-gui/src/app/pages/photos.rs:1932 +#: crates/pdfs-gui/src/app/pages/photos.rs:1938 msgid "Couldn't move to Trash" msgstr "Não foi possível mover para a lixeira" @@ -1033,7 +1035,7 @@ msgstr[0] "{n} item movido para a lixeira" msgstr[1] "{n} itens movidos para a lixeira" #: crates/pdfs-gui/src/app/pages/browser.rs:727 -#: crates/pdfs-gui/src/app/pages/photos.rs:1907 +#: crates/pdfs-gui/src/app/pages/photos.rs:1925 msgid "Undo" msgstr "Desfazer" @@ -1090,7 +1092,7 @@ msgid "Open With…" msgstr "Abrir com…" #: crates/pdfs-gui/src/app/pages/browser.rs:1263 -#: crates/pdfs-gui/src/app/pages/photos.rs:2982 +#: crates/pdfs-gui/src/app/pages/photos.rs:3000 msgctxt "verb" msgid "Play" msgstr "Reproduzir" @@ -1385,7 +1387,7 @@ msgstr[0] "Enviando {n} item…" msgstr[1] "Enviando {n} itens…" #: crates/pdfs-gui/src/app/pages/browser.rs:2696 -#: crates/pdfs-gui/src/app/pages/photos.rs:730 +#: crates/pdfs-gui/src/app/pages/photos.rs:740 msgctxt "verb" msgid "View" msgstr "Ver" @@ -1852,6 +1854,51 @@ msgstr "Identidade adotada" msgid "Couldn't adopt that computer" msgstr "Não foi possível adotar aquele computador" +#: crates/pdfs-gui/src/app/pages/duplicates.rs:15 +msgid "Looking for duplicates…" +msgstr "Procurando duplicatas…" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:42 +msgid "Duplicates" +msgstr "Duplicatas" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:56 +#: crates/pdfs-gui/src/app/pages/duplicates.rs:62 +msgid "Couldn't look for duplicates" +msgstr "Não foi possível procurar duplicatas" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:69 +msgid "No duplicates" +msgstr "Nenhuma duplicata" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:71 +msgid "Every photo in your library is stored once." +msgstr "Cada foto da sua biblioteca está armazenada uma única vez." + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:88 +msgid "" +"These photos are stored more than once. The copies you don't keep move to " +"Trash, where you can restore them." +msgstr "Estas fotos estão armazenadas mais de uma vez. As cópias que você não mantiver vão para a lixeira, de onde podem ser restauradas." + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:111 +#, rust-format +msgid "{date}, {n} copy" +msgid_plural "{date}, {n} copies" +msgstr[0] "{date}, {n} cópia" +msgstr[1] "{date}, {n} cópias" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:143 +#, rust-format +msgid "Move {n} copy to Trash" +msgid_plural "Move {n} copies to Trash" +msgstr[0] "Mover {n} cópia para a lixeira" +msgstr[1] "Mover {n} cópias para a lixeira" + +#: crates/pdfs-gui/src/app/pages/duplicates.rs:235 +msgid "Keep" +msgstr "Manter" + #: crates/pdfs-gui/src/app/pages/locations.rs:89 msgid "Add Folder" msgstr "Adicionar pasta" @@ -2547,144 +2594,148 @@ msgid "Hide details" msgstr "Ocultar detalhes" #: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1429 -#: crates/pdfs-gui/src/app/pages/photos.rs:3043 -#: crates/pdfs-gui/src/app/pages/photos.rs:3047 +#: crates/pdfs-gui/src/app/pages/photos.rs:3061 +#: crates/pdfs-gui/src/app/pages/photos.rs:3065 msgid "Couldn't change the favorite" msgstr "Não foi possível alterar o favorito" -#: crates/pdfs-gui/src/app/pages/photos.rs:427 -#: crates/pdfs-gui/src/app/pages/photos.rs:507 +#: crates/pdfs-gui/src/app/pages/photos.rs:428 +#: crates/pdfs-gui/src/app/pages/photos.rs:508 msgid "Upload photos" msgstr "Enviar fotos" -#: crates/pdfs-gui/src/app/pages/photos.rs:432 +#: crates/pdfs-gui/src/app/pages/photos.rs:433 #: crates/pdfs-gui/src/app/pages/takeout.rs:287 msgid "Import from Google Photos" msgstr "Importar do Google Photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:472 -#: crates/pdfs-gui/src/app/pages/photos.rs:612 +#: crates/pdfs-gui/src/app/pages/photos.rs:473 +#: crates/pdfs-gui/src/app/pages/photos.rs:622 msgid "Jump to a month" msgstr "Ir para um mês" -#: crates/pdfs-gui/src/app/pages/photos.rs:491 +#: crates/pdfs-gui/src/app/pages/photos.rs:492 msgid "Back to albums" msgstr "Voltar aos álbuns" -#: crates/pdfs-gui/src/app/pages/photos.rs:503 +#: crates/pdfs-gui/src/app/pages/photos.rs:504 msgctxt "verb" msgid "Upload" msgstr "Enviar" -#: crates/pdfs-gui/src/app/pages/photos.rs:516 +#: crates/pdfs-gui/src/app/pages/photos.rs:517 msgid "Import a Google Photos Takeout export" msgstr "Importar uma exportação do Google Takeout do Google Photos" -#: crates/pdfs-gui/src/app/pages/photos.rs:526 -#: crates/pdfs-gui/src/app/pages/photos.rs:535 -#: crates/pdfs-gui/src/app/pages/photos.rs:1773 +#: crates/pdfs-gui/src/app/pages/photos.rs:527 +msgid "Find duplicates" +msgstr "Encontrar duplicatas" + +#: crates/pdfs-gui/src/app/pages/photos.rs:536 +#: crates/pdfs-gui/src/app/pages/photos.rs:545 +#: crates/pdfs-gui/src/app/pages/photos.rs:1785 msgid "Select photos" msgstr "Selecionar fotos" -#: crates/pdfs-gui/src/app/pages/photos.rs:546 -#: crates/pdfs-gui/src/app/pages/photos.rs:3000 +#: crates/pdfs-gui/src/app/pages/photos.rs:556 +#: crates/pdfs-gui/src/app/pages/photos.rs:3018 msgid "Add to Album…" msgstr "Adicionar ao álbum…" -#: crates/pdfs-gui/src/app/pages/photos.rs:552 +#: crates/pdfs-gui/src/app/pages/photos.rs:562 msgid "Leave selection (Esc)" msgstr "Sair da seleção (Esc)" -#: crates/pdfs-gui/src/app/pages/photos.rs:596 +#: crates/pdfs-gui/src/app/pages/photos.rs:606 msgid "Show only favorites" msgstr "Mostrar somente favoritos" -#: crates/pdfs-gui/src/app/pages/photos.rs:603 +#: crates/pdfs-gui/src/app/pages/photos.rs:613 msgid "Show only photos not in an album" msgstr "Mostrar somente fotos fora de álbuns" -#: crates/pdfs-gui/src/app/pages/photos.rs:610 -#: crates/pdfs-gui/src/app/pages/photos.rs:845 +#: crates/pdfs-gui/src/app/pages/photos.rs:620 +#: crates/pdfs-gui/src/app/pages/photos.rs:857 msgid "All dates" msgstr "Todas as datas" -#: crates/pdfs-gui/src/app/pages/photos.rs:631 +#: crates/pdfs-gui/src/app/pages/photos.rs:641 msgid "Timeline" msgstr "Linha do tempo" -#: crates/pdfs-gui/src/app/pages/photos.rs:635 +#: crates/pdfs-gui/src/app/pages/photos.rs:645 msgid "Albums" msgstr "Álbuns" -#: crates/pdfs-gui/src/app/pages/photos.rs:654 +#: crates/pdfs-gui/src/app/pages/photos.rs:664 msgid "On this day" msgstr "Neste dia" -#: crates/pdfs-gui/src/app/pages/photos.rs:729 +#: crates/pdfs-gui/src/app/pages/photos.rs:739 msgid "Importing from Google Photos…" msgstr "Importando do Google Photos…" #. Translators: strftime format for a month on its own, such as "June 2024". %OB is the month name in its standalone (nominative) form; use %B if your language has no separate form. -#: crates/pdfs-gui/src/app/pages/photos.rs:821 +#: crates/pdfs-gui/src/app/pages/photos.rs:833 msgid "%OB %Y" msgstr "%B de %Y" #. Translators: a row of the date jump; {month} is a month such as "June 2024", {count} how many photos it holds. -#: crates/pdfs-gui/src/app/pages/photos.rs:852 +#: crates/pdfs-gui/src/app/pages/photos.rs:864 #, rust-format msgid "{month} ({count})" msgstr "{month} ({count})" #. Translators: a Photos filter tab that shows photos, videos and raw files together. -#: crates/pdfs-gui/src/app/pages/photos.rs:889 +#: crates/pdfs-gui/src/app/pages/photos.rs:901 msgctxt "photo filter" msgid "All" msgstr "Tudo" -#: crates/pdfs-gui/src/app/pages/photos.rs:890 +#: crates/pdfs-gui/src/app/pages/photos.rs:902 msgctxt "photo filter" msgid "Photos" msgstr "Fotos" -#: crates/pdfs-gui/src/app/pages/photos.rs:891 +#: crates/pdfs-gui/src/app/pages/photos.rs:903 msgctxt "photo filter" msgid "Videos" msgstr "Vídeos" #. Translators: a Photos filter tab for raw camera files. -#: crates/pdfs-gui/src/app/pages/photos.rs:893 +#: crates/pdfs-gui/src/app/pages/photos.rs:905 msgctxt "photo filter" msgid "Raw" msgstr "RAW" -#: crates/pdfs-gui/src/app/pages/photos.rs:1198 +#: crates/pdfs-gui/src/app/pages/photos.rs:1210 msgid "Select Photo to Upload" msgstr "Selecione a foto a enviar" -#: crates/pdfs-gui/src/app/pages/photos.rs:1202 +#: crates/pdfs-gui/src/app/pages/photos.rs:1214 #: crates/pdfs-gui/src/prompt.rs:60 msgid "Images" msgstr "Imagens" -#: crates/pdfs-gui/src/app/pages/photos.rs:1258 +#: crates/pdfs-gui/src/app/pages/photos.rs:1270 msgid "Photo uploaded" msgstr "Foto enviada" -#: crates/pdfs-gui/src/app/pages/photos.rs:1263 -#: crates/pdfs-gui/src/app/pages/photos.rs:1271 +#: crates/pdfs-gui/src/app/pages/photos.rs:1275 +#: crates/pdfs-gui/src/app/pages/photos.rs:1283 msgid "Couldn't upload photo" msgstr "Não foi possível enviar a foto" #. Translators: badge on a photo tile whose shot includes a raw camera file. -#: crates/pdfs-gui/src/app/pages/photos.rs:1432 +#: crates/pdfs-gui/src/app/pages/photos.rs:1444 msgid "RAW" msgstr "RAW" -#: crates/pdfs-gui/src/app/pages/photos.rs:1817 +#: crates/pdfs-gui/src/app/pages/photos.rs:1829 msgid "Move this photo to Trash?" msgstr "Mover esta foto para a lixeira?" -#: crates/pdfs-gui/src/app/pages/photos.rs:1819 +#: crates/pdfs-gui/src/app/pages/photos.rs:1831 #, rust-format msgid "Move this photo to Trash? It is stored as {n} file." msgid_plural "Move this photo to Trash? It is stored as {n} files." @@ -2692,14 +2743,14 @@ msgstr[0] "Mover esta foto para a lixeira? Ela está armazenada em {n} arquivo." msgstr[1] "" "Mover esta foto para a lixeira? Ela está armazenada em {n} arquivos." -#: crates/pdfs-gui/src/app/pages/photos.rs:1825 +#: crates/pdfs-gui/src/app/pages/photos.rs:1837 #, rust-format msgid "Move {n} photo to Trash?" msgid_plural "Move {n} photos to Trash?" msgstr[0] "Mover {n} foto para a lixeira?" msgstr[1] "Mover {n} fotos para a lixeira?" -#: crates/pdfs-gui/src/app/pages/photos.rs:1832 +#: crates/pdfs-gui/src/app/pages/photos.rs:1844 #, rust-format msgid "Move {n} photo to Trash? They are stored as {files} files." msgid_plural "Move {n} photos to Trash? They are stored as {files} files." @@ -2708,15 +2759,15 @@ msgstr[0] "" msgstr[1] "" "Mover {n} fotos para a lixeira? Elas estão armazenadas em {files} arquivos." -#: crates/pdfs-gui/src/app/pages/photos.rs:1890 +#: crates/pdfs-gui/src/app/pages/photos.rs:1908 msgid "The server refused." msgstr "O servidor recusou." -#: crates/pdfs-gui/src/app/pages/photos.rs:1893 +#: crates/pdfs-gui/src/app/pages/photos.rs:1911 msgid "Some photos couldn't be moved to Trash" msgstr "Algumas fotos não puderam ser movidas para a lixeira" -#: crates/pdfs-gui/src/app/pages/photos.rs:1902 +#: crates/pdfs-gui/src/app/pages/photos.rs:1920 #, rust-format msgid "Moved {n} photo to Trash" msgid_plural "Moved {n} photos to Trash" @@ -2724,7 +2775,7 @@ msgstr[0] "{n} foto movida para a lixeira" msgstr[1] "{n} fotos movidas para a lixeira" #. Translators: the Photos page subtitle, such as "12 videos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2458 +#: crates/pdfs-gui/src/app/pages/photos.rs:2476 #, rust-format msgid "{count} video" msgid_plural "{count} videos" @@ -2732,7 +2783,7 @@ msgstr[0] "{count} vídeo" msgstr[1] "{count} vídeos" #. Translators: the Photos page subtitle, such as "12 raw photos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2460 +#: crates/pdfs-gui/src/app/pages/photos.rs:2478 #, rust-format msgid "{count} raw photo" msgid_plural "{count} raw photos" @@ -2740,140 +2791,140 @@ msgstr[0] "{count} foto RAW" msgstr[1] "{count} fotos RAW" #. Translators: the Photos page subtitle, such as "1,204 photos". -#: crates/pdfs-gui/src/app/pages/photos.rs:2462 +#: crates/pdfs-gui/src/app/pages/photos.rs:2480 #, rust-format msgid "{count} photo" msgid_plural "{count} photos" msgstr[0] "{count} foto" msgstr[1] "{count} fotos" -#: crates/pdfs-gui/src/app/pages/photos.rs:2490 -#: crates/pdfs-gui/src/app/pages/photos.rs:2516 +#: crates/pdfs-gui/src/app/pages/photos.rs:2508 +#: crates/pdfs-gui/src/app/pages/photos.rs:2534 msgid "Unknown date" msgstr "Data desconhecida" #. Translators: strftime format for a day heading in the photo timeline, such as "3 June 2026". -#: crates/pdfs-gui/src/app/pages/photos.rs:2513 +#: crates/pdfs-gui/src/app/pages/photos.rs:2531 msgid "%-d %B %Y" msgstr "%-d de %B de %Y" #. Translators: strftime format for a photo's capture date and time, such as "2026-06-03 14:05:09". -#: crates/pdfs-gui/src/app/pages/photos.rs:2534 +#: crates/pdfs-gui/src/app/pages/photos.rs:2552 msgid "%Y-%m-%d %H:%M:%S" msgstr "%d/%m/%Y %H:%M:%S" -#: crates/pdfs-gui/src/app/pages/photos.rs:2538 -#: crates/pdfs-gui/src/app/pages/photos.rs:2540 +#: crates/pdfs-gui/src/app/pages/photos.rs:2556 +#: crates/pdfs-gui/src/app/pages/photos.rs:2558 msgid "Unknown Date" msgstr "Data desconhecida" #. Translators: strftime format for the day a photo was taken, shown on its tile when the timeline is grouped by month or year, such as "3 Jun". -#: crates/pdfs-gui/src/app/pages/photos.rs:2558 +#: crates/pdfs-gui/src/app/pages/photos.rs:2576 msgid "%-d %b" msgstr "%-d de %b" -#: crates/pdfs-gui/src/app/pages/photos.rs:2580 +#: crates/pdfs-gui/src/app/pages/photos.rs:2598 msgid "Every photo is in an album" msgstr "Todas as fotos estão em um álbum" -#: crates/pdfs-gui/src/app/pages/photos.rs:2581 +#: crates/pdfs-gui/src/app/pages/photos.rs:2599 msgid "Turn off the album filter to see everything." msgstr "Desative o filtro de álbuns para ver tudo." -#: crates/pdfs-gui/src/app/pages/photos.rs:2586 +#: crates/pdfs-gui/src/app/pages/photos.rs:2604 msgid "No photos yet" msgstr "Nenhuma foto ainda" -#: crates/pdfs-gui/src/app/pages/photos.rs:2587 +#: crates/pdfs-gui/src/app/pages/photos.rs:2605 msgid "Photos you upload to Proton Drive appear here." msgstr "As fotos enviadas para o Proton Drive aparecem aqui." -#: crates/pdfs-gui/src/app/pages/photos.rs:2590 +#: crates/pdfs-gui/src/app/pages/photos.rs:2608 msgid "No favorites yet" msgstr "Nenhuma favorita ainda" -#: crates/pdfs-gui/src/app/pages/photos.rs:2591 +#: crates/pdfs-gui/src/app/pages/photos.rs:2609 msgid "Star a photo in the viewer or from its menu to find it here." msgstr "" "Marque uma foto como favorita no visualizador ou pelo menu dela para " "encontrá-la aqui." #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2596 +#: crates/pdfs-gui/src/app/pages/photos.rs:2614 #, rust-format msgid "No favorite videos in {month}" msgstr "Nenhum vídeo favorito em {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2597 +#: crates/pdfs-gui/src/app/pages/photos.rs:2615 msgid "No favorite videos" msgstr "Nenhum vídeo favorito" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2599 +#: crates/pdfs-gui/src/app/pages/photos.rs:2617 #, rust-format msgid "No favorite raw files in {month}" msgstr "Nenhum arquivo RAW favorito em {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2600 +#: crates/pdfs-gui/src/app/pages/photos.rs:2618 msgid "No favorite raw files" msgstr "Nenhum arquivo RAW favorito" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2602 +#: crates/pdfs-gui/src/app/pages/photos.rs:2620 #, rust-format msgid "No favorite photos in {month}" msgstr "Nenhuma foto favorita em {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2603 +#: crates/pdfs-gui/src/app/pages/photos.rs:2621 msgid "No favorite photos" msgstr "Nenhuma foto favorita" -#: crates/pdfs-gui/src/app/pages/photos.rs:2605 +#: crates/pdfs-gui/src/app/pages/photos.rs:2623 msgid "Turn off the favorites filter to see everything." msgstr "Desative o filtro de favoritas para ver tudo." #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2610 +#: crates/pdfs-gui/src/app/pages/photos.rs:2628 #, rust-format msgid "No videos in {month}" msgstr "Nenhum vídeo em {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2611 +#: crates/pdfs-gui/src/app/pages/photos.rs:2629 msgid "No videos" msgstr "Nenhum vídeo" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2613 +#: crates/pdfs-gui/src/app/pages/photos.rs:2631 #, rust-format msgid "No raw files in {month}" msgstr "Nenhum arquivo RAW em {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2614 +#: crates/pdfs-gui/src/app/pages/photos.rs:2632 msgid "No raw files" msgstr "Nenhum arquivo RAW" #. Translators: {month} is a month and year, such as "June 2024". -#: crates/pdfs-gui/src/app/pages/photos.rs:2616 +#: crates/pdfs-gui/src/app/pages/photos.rs:2634 #, rust-format msgid "No photos in {month}" msgstr "Nenhuma foto em {month}" -#: crates/pdfs-gui/src/app/pages/photos.rs:2617 +#: crates/pdfs-gui/src/app/pages/photos.rs:2635 msgid "No photos" msgstr "Nenhuma foto" -#: crates/pdfs-gui/src/app/pages/photos.rs:2619 +#: crates/pdfs-gui/src/app/pages/photos.rs:2637 msgid "Try another filter or month." msgstr "Tente outro filtro ou outro mês." -#: crates/pdfs-gui/src/app/pages/photos.rs:2735 +#: crates/pdfs-gui/src/app/pages/photos.rs:2753 #, rust-format msgid "{n} year ago" msgid_plural "{n} years ago" msgstr[0] "há {n} ano" msgstr[1] "há {n} anos" -#: crates/pdfs-gui/src/app/pages/photos.rs:2760 +#: crates/pdfs-gui/src/app/pages/photos.rs:2778 #, rust-format msgid "{date}, {n} photo" msgid_plural "{date}, {n} photos" @@ -2881,55 +2932,55 @@ msgstr[0] "{date}, {n} foto" msgstr[1] "{date}, {n} fotos" #. Translators: a check item in a photo's menu, on while the photo is a favorite. -#: crates/pdfs-gui/src/app/pages/photos.rs:2989 +#: crates/pdfs-gui/src/app/pages/photos.rs:3007 msgctxt "state" msgid "Favorite" msgstr "Favorita" -#: crates/pdfs-gui/src/app/pages/photos.rs:2994 +#: crates/pdfs-gui/src/app/pages/photos.rs:3012 msgctxt "verb" msgid "Select" msgstr "Selecionar" -#: crates/pdfs-gui/src/app/pages/photos.rs:3006 +#: crates/pdfs-gui/src/app/pages/photos.rs:3024 msgid "Remove from Album" msgstr "Remover do álbum" -#: crates/pdfs-gui/src/app/pages/photos.rs:3012 +#: crates/pdfs-gui/src/app/pages/photos.rs:3030 msgid "Move to Trash…" msgstr "Mover para a lixeira…" -#: crates/pdfs-gui/src/app/pages/photos.rs:3036 +#: crates/pdfs-gui/src/app/pages/photos.rs:3054 msgid "Added to Favorites" msgstr "Adicionada aos favoritos" -#: crates/pdfs-gui/src/app/pages/photos.rs:3038 +#: crates/pdfs-gui/src/app/pages/photos.rs:3056 msgid "Removed from Favorites" msgstr "Removida dos favoritos" -#: crates/pdfs-gui/src/app/pages/photos.rs:3067 +#: crates/pdfs-gui/src/app/pages/photos.rs:3085 msgid "Loading photos…" msgstr "Carregando fotos…" -#: crates/pdfs-gui/src/app/pages/photos.rs:3068 +#: crates/pdfs-gui/src/app/pages/photos.rs:3086 msgid "Reading your Proton Drive timeline." msgstr "Lendo sua linha do tempo do Proton Drive." -#: crates/pdfs-gui/src/app/pages/photos.rs:3161 +#: crates/pdfs-gui/src/app/pages/photos.rs:3179 msgid "Empty album" msgstr "Álbum vazio" -#: crates/pdfs-gui/src/app/pages/photos.rs:3162 +#: crates/pdfs-gui/src/app/pages/photos.rs:3180 msgid "This album has no photos in it." msgstr "Este álbum não tem fotos." -#: crates/pdfs-gui/src/app/pages/photos.rs:3204 #: crates/pdfs-gui/src/app/pages/photos.rs:3222 +#: crates/pdfs-gui/src/app/pages/photos.rs:3240 msgid "Couldn't load more photos" msgstr "Não foi possível carregar mais fotos" -#: crates/pdfs-gui/src/app/pages/photos.rs:3209 -#: crates/pdfs-gui/src/app/pages/photos.rs:3216 +#: crates/pdfs-gui/src/app/pages/photos.rs:3227 +#: crates/pdfs-gui/src/app/pages/photos.rs:3234 msgid "Couldn't load photos" msgstr "Não foi possível carregar as fotos"