mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-04 08:56:59 +01:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
96c77e96cb | ||
|
|
90e110e893 | ||
|
|
0b7236bd4a | ||
|
|
2fa5eaa75b | ||
|
|
dc9ea9f541 | ||
|
|
b13d9d9f38 | ||
|
|
b696adefc2 | ||
|
|
519ec1af07 | ||
|
|
4820ea1236 | ||
|
|
a9d6e0280d |
No files matched your search
@@ -0,0 +1,101 @@
|
||||
name: AUR
|
||||
|
||||
on:
|
||||
# The -git package computes its pkgver from git at build time, so a new commit
|
||||
# upstream needs no AUR push. Only a changed -git recipe is published.
|
||||
push:
|
||||
branches: [main]
|
||||
paths:
|
||||
- 'packaging/aur/proton-drive-for-linux-git/**'
|
||||
# Called by release.yml once the GitHub release and its assets exist.
|
||||
workflow_call:
|
||||
inputs:
|
||||
version:
|
||||
required: true
|
||||
type: string
|
||||
secrets:
|
||||
AUR_SSH_PRIVATE_KEY:
|
||||
required: true
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
version:
|
||||
description: 'Release to publish, such as 2.1.0. Leave empty to publish only the -git package.'
|
||||
required: false
|
||||
type: string
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
concurrency:
|
||||
group: aur
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
name: Publish AUR packages
|
||||
runs-on: ubuntu-24.04
|
||||
container: archlinux:base-devel
|
||||
env:
|
||||
# makepkg refuses to run as root, so the packaging steps run as `builder`.
|
||||
HOME: /home/builder
|
||||
VERSION: ${{ inputs.version }}
|
||||
|
||||
steps:
|
||||
- name: Install packaging tools
|
||||
run: pacman -Syu --noconfirm --needed git openssh pacman-contrib
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
# The updated recipes are committed back to main, not to the tag.
|
||||
ref: main
|
||||
|
||||
- name: Create build user
|
||||
run: |
|
||||
useradd --create-home builder
|
||||
chown -R builder: "$GITHUB_WORKSPACE"
|
||||
|
||||
- name: Configure AUR access
|
||||
env:
|
||||
AUR_SSH_PRIVATE_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
|
||||
run: |
|
||||
install -d -m700 -o builder -g builder "$HOME/.ssh"
|
||||
printf '%s\n' "$AUR_SSH_PRIVATE_KEY" > "$HOME/.ssh/aur"
|
||||
cat > "$HOME/.ssh/config" <<'EOF'
|
||||
Host aur.archlinux.org
|
||||
IdentityFile ~/.ssh/aur
|
||||
User aur
|
||||
EOF
|
||||
# Pin the host key to the fingerprint published on aur.archlinux.org.
|
||||
ssh-keyscan -t ed25519 aur.archlinux.org > "$HOME/.ssh/known_hosts"
|
||||
ssh-keygen -lf "$HOME/.ssh/known_hosts" | grep -q 'SHA256:RFzBCUItH9LZS0cKB5UE6ceAYhBD5C8GeOBip8Z11+4'
|
||||
chown -R builder: "$HOME/.ssh"
|
||||
chmod 600 "$HOME/.ssh/aur"
|
||||
runuser -u builder -- git config --global user.name 'Nils Pukropp'
|
||||
runuser -u builder -- git config --global user.email 'contact@narl.io'
|
||||
|
||||
- name: Update release packages
|
||||
if: env.VERSION != ''
|
||||
run: runuser -u builder -- packaging/aur/update.sh "${VERSION#v}"
|
||||
|
||||
- name: Refresh the -git metadata
|
||||
if: env.VERSION == ''
|
||||
working-directory: packaging/aur/proton-drive-for-linux-git
|
||||
run: runuser -u builder -- sh -c 'makepkg --printsrcinfo > .SRCINFO'
|
||||
|
||||
- name: Publish to the AUR
|
||||
run: |
|
||||
if [ -n "$VERSION" ]; then
|
||||
runuser -u builder -- packaging/aur/push.sh
|
||||
else
|
||||
runuser -u builder -- packaging/aur/push.sh proton-drive-for-linux-git
|
||||
fi
|
||||
|
||||
- name: Commit the updated recipes to main
|
||||
if: env.VERSION != ''
|
||||
run: |
|
||||
runuser -u builder -- git add packaging/aur
|
||||
if ! runuser -u builder -- git diff --cached --quiet; then
|
||||
runuser -u builder -- git commit -m "chore(aur): update packages to ${VERSION#v}"
|
||||
runuser -u builder -- git push origin HEAD:main
|
||||
fi
|
||||
@@ -202,3 +202,13 @@ jobs:
|
||||
prerelease: false
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
aur:
|
||||
name: Publish AUR packages
|
||||
needs: build-release
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
uses: ./.github/workflows/aur.yml
|
||||
with:
|
||||
version: ${{ github.ref_name }}
|
||||
secrets:
|
||||
AUR_SSH_PRIVATE_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
|
||||
Generated
+4
-4
@@ -3449,7 +3449,7 @@ checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4"
|
||||
|
||||
[[package]]
|
||||
name = "pdfs-cli"
|
||||
version = "2.1.0"
|
||||
version = "2.2.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"clap",
|
||||
@@ -3464,7 +3464,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "pdfs-core"
|
||||
version = "2.1.0"
|
||||
version = "2.2.0"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"dbus-secret-service-keyring-store",
|
||||
@@ -3488,7 +3488,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "pdfs-fuse"
|
||||
version = "2.1.0"
|
||||
version = "2.2.0"
|
||||
dependencies = [
|
||||
"base64 0.23.1",
|
||||
"fuser",
|
||||
@@ -3508,7 +3508,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "pdfs-gui"
|
||||
version = "2.1.0"
|
||||
version = "2.2.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-channel",
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ resolver = "2"
|
||||
members = ["crates/pdfs-core", "crates/pdfs-fuse", "crates/pdfs-cli", "crates/pdfs-gui"]
|
||||
|
||||
[workspace.package]
|
||||
version = "2.1.0"
|
||||
version = "2.2.0"
|
||||
edition = "2024"
|
||||
license = "MIT"
|
||||
authors = ["Nils Pukropp <contact@narl.io>"]
|
||||
|
||||
@@ -9,7 +9,7 @@ use super::Db;
|
||||
use crate::Result;
|
||||
|
||||
/// Current schema version. Bump on every forward migration added below.
|
||||
pub(super) const SCHEMA_VERSION: i64 = 31;
|
||||
pub(super) const SCHEMA_VERSION: i64 = 32;
|
||||
|
||||
impl Db {
|
||||
pub(super) fn migrate(&self) -> Result<()> {
|
||||
@@ -270,6 +270,20 @@ impl Db {
|
||||
tx.execute_batch(MIGRATION_V31)?;
|
||||
}
|
||||
}
|
||||
if current < 32 {
|
||||
// Data only, so safe to repeat; each table is guarded for a very
|
||||
// old fixture that never had it.
|
||||
for table in ["photos", "album_photos"] {
|
||||
let has_table: bool = tx.query_row(
|
||||
"SELECT COUNT(*) FROM sqlite_master WHERE type = 'table' AND name = ?1",
|
||||
[table],
|
||||
|row| row.get::<_, i64>(0),
|
||||
)? > 0;
|
||||
if has_table {
|
||||
tx.execute(&MIGRATION_V32.replace("{table}", table), [])?;
|
||||
}
|
||||
}
|
||||
}
|
||||
tx.execute(
|
||||
"INSERT INTO sync_state (key, value) VALUES ('schema_version', ?1)
|
||||
ON CONFLICT(key) DO UPDATE SET value = excluded.value",
|
||||
@@ -952,3 +966,10 @@ ALTER TABLE photos ADD COLUMN resolved_at INTEGER;
|
||||
CREATE INDEX IF NOT EXISTS idx_photos_unresolved ON photos(resolved_at);
|
||||
UPDATE photos SET resolved_at = strftime('%s','now') WHERE name IS NOT NULL;
|
||||
";
|
||||
|
||||
/// V32: give videos written off as un-thumbnailable another chance.
|
||||
///
|
||||
/// Before local video thumbnails, the fallback fed a video's bytes to the image
|
||||
/// decoder, which could only fail, and that failure was recorded as the
|
||||
/// permanent "no thumbnail" verdict. Run once per table in `{table}`.
|
||||
const MIGRATION_V32: &str = "UPDATE {table} SET thumb_state = 0 WHERE kind = 1 AND thumb_state = 2";
|
||||
@@ -4235,6 +4235,48 @@ fn the_servers_photo_relation_groups_a_live_photo() {
|
||||
/// A database written before grouping existed opens, keeps its timeline, and
|
||||
/// shows every photo — a row with no `group_key` is its own group, which is how
|
||||
/// the gallery behaved before the column.
|
||||
#[test]
|
||||
fn migration_v32_retries_videos_written_off_as_unthumbnailable() {
|
||||
let path = std::env::temp_dir().join(format!(
|
||||
"pdfs-db-v31-fixture-{}-{}.db",
|
||||
std::process::id(),
|
||||
std::time::SystemTime::now()
|
||||
.duration_since(std::time::UNIX_EPOCH)
|
||||
.unwrap()
|
||||
.as_nanos()
|
||||
));
|
||||
{
|
||||
let db = Db::open(&path).unwrap();
|
||||
db.photos_replace(&[
|
||||
TimelineRow {
|
||||
name: Some("VID-20260804-WA0023.mp4".into()),
|
||||
..TimelineRow::new("video", 300)
|
||||
},
|
||||
TimelineRow {
|
||||
name: Some("broken.jpg".into()),
|
||||
..TimelineRow::new("photo", 200)
|
||||
},
|
||||
])
|
||||
.unwrap();
|
||||
db.photo_set_thumb("video", THUMB_NONE, None).unwrap();
|
||||
db.photo_set_thumb("photo", THUMB_NONE, None).unwrap();
|
||||
let conn = rusqlite::Connection::open(&path).unwrap();
|
||||
conn.execute_batch("UPDATE sync_state SET value = '31' WHERE key = 'schema_version';")
|
||||
.unwrap();
|
||||
}
|
||||
|
||||
let db = Db::open(&path).unwrap();
|
||||
let state = |uid: &str| db.photos_by_uid(&[uid.into()]).unwrap()[0].thumb_state;
|
||||
assert_eq!(state("video"), THUMB_UNKNOWN, "the video is tried again");
|
||||
assert_eq!(
|
||||
state("photo"),
|
||||
THUMB_NONE,
|
||||
"an undecodable photo stays written off"
|
||||
);
|
||||
drop(db);
|
||||
let _ = std::fs::remove_file(&path);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn migration_v30_leaves_a_v29_timeline_intact() {
|
||||
let path = std::env::temp_dir().join(format!(
|
||||
|
||||
@@ -945,6 +945,7 @@ impl Core {
|
||||
if !meta.complete {
|
||||
return Err("queued create holds an incomplete blob".into());
|
||||
}
|
||||
let thumbnails = self.upload_thumbnails(Path::new(blob), name);
|
||||
let guard = self
|
||||
.transfers
|
||||
.begin(name, op.uid.clone(), TransferDirection::Upload, meta.len);
|
||||
@@ -955,7 +956,7 @@ impl Core {
|
||||
media_type_for(name),
|
||||
reader,
|
||||
meta.len as i64,
|
||||
Vec::new(),
|
||||
thumbnails,
|
||||
None,
|
||||
false,
|
||||
))?;
|
||||
@@ -1145,6 +1146,7 @@ impl Core {
|
||||
}
|
||||
|
||||
let alt = conflict_name(&name, now_secs());
|
||||
let thumbnails = self.upload_thumbnails(blob, &alt);
|
||||
let guard =
|
||||
self.transfers
|
||||
.begin(&alt, meta.uid.clone(), TransferDirection::Upload, meta.len);
|
||||
@@ -1155,7 +1157,7 @@ impl Core {
|
||||
media_type_for(&alt),
|
||||
reader,
|
||||
meta.len as i64,
|
||||
Vec::new(),
|
||||
thumbnails,
|
||||
None,
|
||||
false,
|
||||
))?;
|
||||
@@ -1438,6 +1440,7 @@ impl Core {
|
||||
}
|
||||
|
||||
let name = self.node_name(&uid);
|
||||
let thumbnails = self.upload_thumbnails(&blob, &name);
|
||||
let guard =
|
||||
self.transfers
|
||||
.begin(&name, meta.uid.clone(), TransferDirection::Upload, meta.len);
|
||||
@@ -1451,7 +1454,7 @@ impl Core {
|
||||
&uid,
|
||||
reader,
|
||||
meta.len as i64,
|
||||
Vec::new(),
|
||||
thumbnails,
|
||||
None,
|
||||
));
|
||||
let took = started.elapsed();
|
||||
|
||||
+484
-58
@@ -12,8 +12,8 @@ use std::io::{Read as _, Write as _};
|
||||
use std::os::unix::fs::OpenOptionsExt as _;
|
||||
use std::path::{Path, PathBuf};
|
||||
use std::process::{Command, Stdio};
|
||||
use std::sync::Once;
|
||||
use std::sync::atomic::{AtomicU64, Ordering};
|
||||
use std::sync::{Once, OnceLock};
|
||||
use std::time::{Duration, Instant};
|
||||
|
||||
use base64::Engine as _;
|
||||
@@ -25,8 +25,8 @@ use pdfs_core::db::{self, StoredPhoto};
|
||||
use pdfs_core::{CoreError, CoreResult};
|
||||
|
||||
use proton_drive_rs::proton_sdk::ids::NodeUid;
|
||||
use proton_drive_rs::{NodeKind, PhotoTag, PhotoTagsUpdate, ThumbnailType};
|
||||
use tracing::{info, warn};
|
||||
use proton_drive_rs::{NodeKind, PhotoTag, PhotoTagsUpdate, Thumbnail, ThumbnailType};
|
||||
use tracing::{debug, info, warn};
|
||||
|
||||
use super::{
|
||||
Core, PHOTOS_AVAILABLE, PHOTOS_SYNCED_MS, TIMELINE_ENRICH_CHUNK, TIMELINE_TTL, WriteAuthority,
|
||||
@@ -55,6 +55,20 @@ const THUMB_CANCEL_POLL: Duration = Duration::from_millis(100);
|
||||
const EXIFTOOL_TIMEOUT: Duration = Duration::from_secs(20);
|
||||
static RAW_TEMP_NONCE: AtomicU64 = AtomicU64::new(0);
|
||||
static EXIFTOOL_MISSING_WARNING: Once = Once::new();
|
||||
static FFMPEG_MISSING_WARNING: Once = Once::new();
|
||||
/// Largest video downloaded whole to grab one frame for its thumbnail. The
|
||||
/// download lands in memory, so a long 4K recording is left without one.
|
||||
const VIDEO_THUMB_MAX_BYTES: u64 = 256 * 1024 * 1024;
|
||||
/// A single frame is seconds of work even for 4K; this only stops a wedged
|
||||
/// ffmpeg from holding a thumbnail permit.
|
||||
const FFMPEG_TIMEOUT: Duration = Duration::from_secs(30);
|
||||
/// Largest thumbnail attached to an upload. Proton's own clients hold theirs to
|
||||
/// this, stepping the JPEG quality down until it fits.
|
||||
const UPLOAD_THUMB_MAX_BYTES: usize = 60 * 1024;
|
||||
/// JPEG qualities tried, in order, for an upload thumbnail over that size.
|
||||
const UPLOAD_THUMB_QUALITIES: [u8; 4] = [65, 50, 35, 20];
|
||||
/// Largest still image read whole to render the thumbnail its upload carries.
|
||||
const UPLOAD_IMAGE_MAX_BYTES: u64 = 256 * 1024 * 1024;
|
||||
|
||||
/// The aspect ratio (w/h) of an encoded image, read from its header alone — no
|
||||
/// pixels are decoded. `None` when the format is unknown or the header is torn.
|
||||
@@ -90,7 +104,8 @@ struct RawPreviewUnavailable;
|
||||
/// the photo will never have a thumbnail, and only that verdict is persisted.
|
||||
enum ThumbAttempt {
|
||||
Made(GeneratedThumb),
|
||||
/// Decoded nothing — a format this build has no decoder for. Permanent.
|
||||
/// Decoded nothing — a format this build has no decoder for, or a video
|
||||
/// too large to fetch for one frame. Permanent.
|
||||
Undecodable,
|
||||
/// The photo couldn't be downloaded. Transient: try again next time.
|
||||
Unavailable,
|
||||
@@ -196,6 +211,11 @@ fn scale_thumbnail_with_exiftool(
|
||||
}
|
||||
None => return ScaleAttempt::Undecodable,
|
||||
};
|
||||
encode_thumb(&image)
|
||||
}
|
||||
|
||||
/// Shrink a decoded image to a [`THUMB_EDGE`] JPEG, keeping its aspect ratio.
|
||||
fn encode_thumb(image: &image::DynamicImage) -> ScaleAttempt {
|
||||
let (width, height) = (image.width(), image.height());
|
||||
if width == 0 || height == 0 {
|
||||
return ScaleAttempt::Undecodable;
|
||||
@@ -268,9 +288,69 @@ impl Drop for RawTempFile {
|
||||
}
|
||||
}
|
||||
|
||||
/// Run one bounded exiftool JSON query while draining stdout concurrently. The
|
||||
/// latter matters for full-size `JpgFromRaw` fallbacks, whose base64 can exceed a
|
||||
/// pipe buffer long before the child exits.
|
||||
/// How a bounded helper run failed.
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
enum ToolError {
|
||||
/// The helper isn't installed.
|
||||
Missing,
|
||||
/// It couldn't be started or read, or overran its budget and was killed.
|
||||
Unavailable,
|
||||
/// It ran and exited non-zero.
|
||||
Failed,
|
||||
}
|
||||
|
||||
/// Run a helper to completion within `timeout` and return its stdout, drained
|
||||
/// concurrently. The latter matters for exiftool's full-size `JpgFromRaw`
|
||||
/// fallbacks and for ffmpeg's frames, either of which can exceed a pipe buffer
|
||||
/// long before the child exits.
|
||||
fn run_bounded(mut command: Command, timeout: Duration) -> Result<Vec<u8>, ToolError> {
|
||||
command
|
||||
.stdin(Stdio::null())
|
||||
.stdout(Stdio::piped())
|
||||
.stderr(Stdio::null());
|
||||
let mut child = command.spawn().map_err(|error| {
|
||||
if error.kind() == std::io::ErrorKind::NotFound {
|
||||
ToolError::Missing
|
||||
} else {
|
||||
ToolError::Unavailable
|
||||
}
|
||||
})?;
|
||||
let Some(mut stdout) = child.stdout.take() else {
|
||||
let _ = child.kill();
|
||||
let _ = child.wait();
|
||||
return Err(ToolError::Unavailable);
|
||||
};
|
||||
let reader = std::thread::spawn(move || {
|
||||
let mut output = Vec::new();
|
||||
stdout.read_to_end(&mut output).map(|_| output)
|
||||
});
|
||||
let started = Instant::now();
|
||||
let status = loop {
|
||||
match child.try_wait() {
|
||||
Ok(Some(status)) => break Some(status.success()),
|
||||
Ok(None) if started.elapsed() < timeout => {
|
||||
std::thread::sleep(Duration::from_millis(10));
|
||||
}
|
||||
Ok(None) | Err(_) => {
|
||||
let _ = child.kill();
|
||||
let _ = child.wait();
|
||||
break None;
|
||||
}
|
||||
}
|
||||
};
|
||||
let output = reader
|
||||
.join()
|
||||
.ok()
|
||||
.and_then(Result::ok)
|
||||
.ok_or(ToolError::Unavailable)?;
|
||||
match status {
|
||||
Some(true) => Ok(output),
|
||||
Some(false) => Err(ToolError::Failed),
|
||||
None => Err(ToolError::Unavailable),
|
||||
}
|
||||
}
|
||||
|
||||
/// Run one bounded exiftool JSON query.
|
||||
fn exiftool_query(
|
||||
exiftool: &OsStr,
|
||||
path: &Path,
|
||||
@@ -280,58 +360,172 @@ fn exiftool_query(
|
||||
let mut command = Command::new(exiftool);
|
||||
command.args(["-j", "-b", "-n"]);
|
||||
command.args(tags);
|
||||
command
|
||||
.arg(path)
|
||||
.stdout(Stdio::piped())
|
||||
.stderr(Stdio::null());
|
||||
let mut child = match command.spawn() {
|
||||
Ok(child) => child,
|
||||
Err(error) => {
|
||||
if error.kind() == std::io::ErrorKind::NotFound {
|
||||
EXIFTOOL_MISSING_WARNING.call_once(|| {
|
||||
warn!(
|
||||
"exiftool is not installed; camera RAW thumbnails are unavailable \
|
||||
(Debian/Ubuntu: libimage-exiftool-perl)"
|
||||
);
|
||||
});
|
||||
}
|
||||
return Err(RawPreviewUnavailable);
|
||||
command.arg(path);
|
||||
let output = run_bounded(command, timeout).map_err(|error| {
|
||||
if error == ToolError::Missing {
|
||||
EXIFTOOL_MISSING_WARNING.call_once(|| {
|
||||
warn!(
|
||||
"exiftool is not installed; camera RAW thumbnails are unavailable \
|
||||
(Debian/Ubuntu: libimage-exiftool-perl)"
|
||||
);
|
||||
});
|
||||
}
|
||||
};
|
||||
let Some(mut stdout) = child.stdout.take() else {
|
||||
let _ = child.kill();
|
||||
let _ = child.wait();
|
||||
return Err(RawPreviewUnavailable);
|
||||
};
|
||||
let reader = std::thread::spawn(move || {
|
||||
let mut output = Vec::new();
|
||||
stdout.read_to_end(&mut output).map(|_| output)
|
||||
});
|
||||
let started = Instant::now();
|
||||
let success = loop {
|
||||
match child.try_wait() {
|
||||
Ok(Some(status)) => break status.success(),
|
||||
Ok(None) if started.elapsed() < timeout => {
|
||||
std::thread::sleep(Duration::from_millis(10));
|
||||
}
|
||||
Ok(None) | Err(_) => {
|
||||
let _ = child.kill();
|
||||
let _ = child.wait();
|
||||
break false;
|
||||
}
|
||||
}
|
||||
};
|
||||
let output = reader
|
||||
.join()
|
||||
.ok()
|
||||
.and_then(Result::ok)
|
||||
.ok_or(RawPreviewUnavailable)?;
|
||||
if !success {
|
||||
return Err(RawPreviewUnavailable);
|
||||
}
|
||||
RawPreviewUnavailable
|
||||
})?;
|
||||
serde_json::from_slice(&output).map_err(|_| RawPreviewUnavailable)
|
||||
}
|
||||
|
||||
/// Whether `name` is a video, whose thumbnail is a frame ffmpeg grabs rather
|
||||
/// than a picture the image decoder can scale.
|
||||
fn is_video_name(name: &str) -> bool {
|
||||
PhotoKind::classify(Some(name), None) == PhotoKind::Video
|
||||
}
|
||||
|
||||
/// Whether ffmpeg can be run at all. Asked once, before a video is downloaded:
|
||||
/// without ffmpeg every scroll past a video would fetch it whole for nothing.
|
||||
fn ffmpeg_available() -> bool {
|
||||
static AVAILABLE: OnceLock<bool> = OnceLock::new();
|
||||
*AVAILABLE.get_or_init(|| {
|
||||
let mut command = Command::new("ffmpeg");
|
||||
command.arg("-version");
|
||||
let available = run_bounded(command, Duration::from_secs(5)).is_ok();
|
||||
if !available {
|
||||
warn_ffmpeg_missing();
|
||||
}
|
||||
available
|
||||
})
|
||||
}
|
||||
|
||||
fn warn_ffmpeg_missing() {
|
||||
FFMPEG_MISSING_WARNING.call_once(|| {
|
||||
warn!("ffmpeg is not installed; video thumbnails are unavailable");
|
||||
});
|
||||
}
|
||||
|
||||
/// A thumbnail from one frame of a downloaded video, which ffmpeg reads from a
|
||||
/// staging copy. See [`video_file_thumbnail`].
|
||||
fn video_thumbnail(
|
||||
bytes: &[u8],
|
||||
name: &str,
|
||||
staging_dir: &Path,
|
||||
ffmpeg: &OsStr,
|
||||
timeout: Duration,
|
||||
) -> ScaleAttempt {
|
||||
let Some(file) = RawTempFile::create_in(staging_dir, bytes, name) else {
|
||||
return ScaleAttempt::Unavailable;
|
||||
};
|
||||
video_file_thumbnail(&file.0, ffmpeg, timeout)
|
||||
}
|
||||
|
||||
/// A thumbnail from one frame of the video at `path`. A second in, past the
|
||||
/// black lead-in most clips open on, and the first frame for a clip shorter than
|
||||
/// that. ffmpeg applies the clip's rotation, so a portrait phone video comes out
|
||||
/// upright.
|
||||
///
|
||||
/// Missing or wedged ffmpeg is retryable; a file ffmpeg can take no frame from
|
||||
/// is the permanent verdict.
|
||||
fn video_file_thumbnail(path: &Path, ffmpeg: &OsStr, timeout: Duration) -> ScaleAttempt {
|
||||
for seek in ["1", "0"] {
|
||||
let mut command = Command::new(ffmpeg);
|
||||
command.args(["-nostdin", "-loglevel", "error", "-ss", seek, "-i"]);
|
||||
command.arg(path);
|
||||
command.args(["-frames:v", "1", "-f", "image2pipe", "-c:v", "mjpeg", "-"]);
|
||||
match run_bounded(command, timeout) {
|
||||
Ok(frame) if !frame.is_empty() => {
|
||||
return match image::load_from_memory(&frame) {
|
||||
Ok(image) => encode_thumb(&image),
|
||||
Err(_) => ScaleAttempt::Undecodable,
|
||||
};
|
||||
}
|
||||
// No frame that far in: try from the start.
|
||||
Ok(_) | Err(ToolError::Failed) => continue,
|
||||
Err(ToolError::Missing) => {
|
||||
warn_ffmpeg_missing();
|
||||
return ScaleAttempt::Unavailable;
|
||||
}
|
||||
Err(ToolError::Unavailable) => return ScaleAttempt::Unavailable,
|
||||
}
|
||||
}
|
||||
ScaleAttempt::Undecodable
|
||||
}
|
||||
|
||||
/// The thumbnail to attach to an upload of the local file at `path`, which is
|
||||
/// named `name` in Drive. Without one, Drive's own apps show a generic icon and
|
||||
/// the gallery has to download the whole file to make its own.
|
||||
///
|
||||
/// Best effort: a file that isn't an image or a video, is too large to read, or
|
||||
/// can't be decoded uploads without a thumbnail, as it always did. Blocking and
|
||||
/// CPU-bound, so async callers run it on the blocking pool.
|
||||
pub(crate) fn upload_thumbnails(path: &Path, name: &str, staging_dir: &Path) -> Vec<Thumbnail> {
|
||||
if is_video_name(name) && !ffmpeg_available() {
|
||||
return Vec::new();
|
||||
}
|
||||
upload_thumbnails_with(path, name, staging_dir, OsStr::new("ffmpeg"))
|
||||
}
|
||||
|
||||
fn upload_thumbnails_with(
|
||||
path: &Path,
|
||||
name: &str,
|
||||
staging_dir: &Path,
|
||||
ffmpeg: &OsStr,
|
||||
) -> Vec<Thumbnail> {
|
||||
let attempt = if is_video_name(name) {
|
||||
if !is_video_file(path, name) {
|
||||
return Vec::new();
|
||||
}
|
||||
video_file_thumbnail(path, ffmpeg, FFMPEG_TIMEOUT)
|
||||
} else if is_thumbnail_image_name(name) {
|
||||
let fits = std::fs::metadata(path).is_ok_and(|meta| meta.len() <= UPLOAD_IMAGE_MAX_BYTES);
|
||||
let Some(bytes) = fits.then(|| std::fs::read(path).ok()).flatten() else {
|
||||
return Vec::new();
|
||||
};
|
||||
scale_thumbnail(&bytes, name, staging_dir)
|
||||
} else {
|
||||
return Vec::new();
|
||||
};
|
||||
let ScaleAttempt::Made(thumb) = attempt else {
|
||||
debug!(name, "uploading without a thumbnail; none could be made");
|
||||
return Vec::new();
|
||||
};
|
||||
fit_upload_thumb(thumb.bytes)
|
||||
.and_then(|bytes| Thumbnail::new(ThumbnailType::Thumbnail, bytes).ok())
|
||||
.into_iter()
|
||||
.collect()
|
||||
}
|
||||
|
||||
/// `.ts` is TypeScript as often as it is an MPEG transport stream, so a source
|
||||
/// tree must not cost an ffmpeg run per file. A transport stream opens on its
|
||||
/// 0x47 sync byte; every other video extension is taken at its word.
|
||||
fn is_video_file(path: &Path, name: &str) -> bool {
|
||||
if !name.to_ascii_lowercase().ends_with(".ts") {
|
||||
return true;
|
||||
}
|
||||
let mut first = [0u8; 1];
|
||||
std::fs::File::open(path)
|
||||
.and_then(|mut file| file.read_exact(&mut first))
|
||||
.is_ok_and(|()| first[0] == 0x47)
|
||||
}
|
||||
|
||||
/// Re-encode a thumbnail at falling quality until it fits
|
||||
/// [`UPLOAD_THUMB_MAX_BYTES`], and at half the size if even the lowest quality
|
||||
/// doesn't. `None` if nothing fits.
|
||||
fn fit_upload_thumb(bytes: Vec<u8>) -> Option<Vec<u8>> {
|
||||
if bytes.len() <= UPLOAD_THUMB_MAX_BYTES {
|
||||
return Some(bytes);
|
||||
}
|
||||
let image = image::load_from_memory(&bytes).ok()?;
|
||||
let half = image.thumbnail(image.width() / 2, image.height() / 2);
|
||||
[image.to_rgb8(), half.to_rgb8()].iter().find_map(|image| {
|
||||
UPLOAD_THUMB_QUALITIES.iter().find_map(|&quality| {
|
||||
let mut smaller = Vec::new();
|
||||
image::codecs::jpeg::JpegEncoder::new_with_quality(&mut smaller, quality)
|
||||
.encode_image(image)
|
||||
.ok()?;
|
||||
(smaller.len() <= UPLOAD_THUMB_MAX_BYTES).then_some(smaller)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
fn exiftool_object(
|
||||
value: &serde_json::Value,
|
||||
) -> Option<&serde_json::Map<String, serde_json::Value>> {
|
||||
@@ -418,6 +612,24 @@ struct PhotoMeta {
|
||||
}
|
||||
|
||||
impl Core {
|
||||
/// [`upload_thumbnails`] for a file about to upload, staging any RAW copy
|
||||
/// under this cache. Blocking.
|
||||
pub(crate) fn upload_thumbnails(&self, path: &Path, name: &str) -> Vec<Thumbnail> {
|
||||
upload_thumbnails(path, name, self.cache.raw_thumbnail_staging_dir())
|
||||
}
|
||||
|
||||
/// [`Core::upload_thumbnails`] on the blocking pool, for async callers.
|
||||
pub(crate) async fn upload_thumbnails_async(
|
||||
&self,
|
||||
path: PathBuf,
|
||||
name: String,
|
||||
) -> Vec<Thumbnail> {
|
||||
let staging_dir = self.cache.raw_thumbnail_staging_dir().to_path_buf();
|
||||
tokio::task::spawn_blocking(move || upload_thumbnails(&path, &name, &staging_dir))
|
||||
.await
|
||||
.unwrap_or_default()
|
||||
}
|
||||
|
||||
pub(crate) fn photos_timeline(
|
||||
&self,
|
||||
offset: usize,
|
||||
@@ -973,6 +1185,10 @@ impl Core {
|
||||
if !core.thumb_job_current(job) {
|
||||
return (uid, ThumbAttempt::Cancelled);
|
||||
}
|
||||
let video = is_video_name(&name);
|
||||
if video && !ffmpeg_available() {
|
||||
return (uid, ThumbAttempt::Unavailable);
|
||||
}
|
||||
|
||||
// One shared permit pool bounds all thumbnail batches,
|
||||
// rather than multiplying the limit by every control
|
||||
@@ -1019,6 +1235,19 @@ impl Core {
|
||||
return (uid, ThumbAttempt::Cancelled);
|
||||
}
|
||||
|
||||
// A video is downloaded whole for one frame, so a long
|
||||
// recording is not worth it — and would not fit in memory.
|
||||
if video {
|
||||
match core.photos().get_node(&uid).await {
|
||||
Ok(Some(node)) if node_size(&node) > VIDEO_THUMB_MAX_BYTES => {
|
||||
info!(%uid, size = node_size(&node), "video too large for a local thumbnail");
|
||||
return (uid, ThumbAttempt::Undecodable);
|
||||
}
|
||||
Ok(Some(_)) => {}
|
||||
Ok(None) | Err(_) => return (uid, ThumbAttempt::Unavailable),
|
||||
}
|
||||
}
|
||||
|
||||
let download_uid = uid.clone();
|
||||
let download = async move { client.download_file(&download_uid).await };
|
||||
tokio::pin!(download);
|
||||
@@ -1072,7 +1301,17 @@ impl Core {
|
||||
// stall the runtime's worker; hand it to the blocking pool.
|
||||
let staging_dir = core.cache.raw_thumbnail_staging_dir().to_path_buf();
|
||||
let made = tokio::task::spawn_blocking(move || {
|
||||
scale_thumbnail(&bytes, &name, &staging_dir)
|
||||
if video {
|
||||
video_thumbnail(
|
||||
&bytes,
|
||||
&name,
|
||||
&staging_dir,
|
||||
OsStr::new("ffmpeg"),
|
||||
FFMPEG_TIMEOUT,
|
||||
)
|
||||
} else {
|
||||
scale_thumbnail(&bytes, &name, &staging_dir)
|
||||
}
|
||||
})
|
||||
.await
|
||||
.unwrap_or(ScaleAttempt::Unavailable);
|
||||
@@ -1592,10 +1831,12 @@ impl Core {
|
||||
#[cfg(test)]
|
||||
mod thumb_tests {
|
||||
use super::{
|
||||
RawTempFile, ScaleAttempt, THUMB_EDGE, exiftool_binary, ratio_of, scale_thumbnail,
|
||||
scale_thumbnail_with_exiftool, thumbnail_build_may_start,
|
||||
RawTempFile, ScaleAttempt, THUMB_EDGE, UPLOAD_THUMB_MAX_BYTES, exiftool_binary,
|
||||
fit_upload_thumb, is_video_name, ratio_of, scale_thumbnail, scale_thumbnail_with_exiftool,
|
||||
thumbnail_build_may_start, upload_thumbnails_with, video_thumbnail,
|
||||
};
|
||||
use pdfs_core::control::{ThumbnailBuildStatus, is_thumbnail_image_name};
|
||||
use proton_drive_rs::ThumbnailType;
|
||||
use std::ffi::OsStr;
|
||||
use std::os::unix::fs::PermissionsExt as _;
|
||||
use std::time::Duration;
|
||||
@@ -1758,6 +1999,103 @@ mod thumb_tests {
|
||||
assert!(matches!(attempt, ScaleAttempt::Unavailable));
|
||||
}
|
||||
|
||||
/// An executable shell script standing in for ffmpeg, in its own directory
|
||||
/// under `tmp` so parallel tests never share one.
|
||||
fn fake_ffmpeg(tmp: &std::path::Path, body: &str) -> std::path::PathBuf {
|
||||
std::fs::create_dir_all(tmp).unwrap();
|
||||
let path = tmp.join("ffmpeg");
|
||||
std::fs::write(&path, format!("#!/bin/sh\n{body}\n")).unwrap();
|
||||
std::fs::set_permissions(&path, std::fs::Permissions::from_mode(0o755)).unwrap();
|
||||
path
|
||||
}
|
||||
|
||||
fn scratch(test: &str) -> std::path::PathBuf {
|
||||
std::env::temp_dir().join(format!("pdfs-{test}-{}", std::process::id()))
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn a_video_frame_becomes_a_thumbnail() {
|
||||
let tmp = scratch("video-frame");
|
||||
let frame = tmp.join("frame.jpg");
|
||||
std::fs::create_dir_all(&tmp).unwrap();
|
||||
std::fs::write(&frame, jpeg(1080, 1920)).unwrap();
|
||||
let ffmpeg = fake_ffmpeg(&tmp, &format!("cat '{}'", frame.display()));
|
||||
|
||||
let ScaleAttempt::Made(thumb) = video_thumbnail(
|
||||
b"video bytes",
|
||||
"clip.mp4",
|
||||
&tmp,
|
||||
ffmpeg.as_os_str(),
|
||||
Duration::from_secs(10),
|
||||
) else {
|
||||
panic!("a frame scales");
|
||||
};
|
||||
assert!((thumb.ratio - 1080.0 / 1920.0).abs() < 1e-6);
|
||||
std::fs::remove_dir_all(&tmp).unwrap();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn a_video_ffmpeg_cannot_read_is_a_permanent_miss() {
|
||||
let tmp = scratch("video-broken");
|
||||
let ffmpeg = fake_ffmpeg(&tmp, "exit 1");
|
||||
let attempt = video_thumbnail(
|
||||
b"not a video",
|
||||
"clip.mp4",
|
||||
&tmp,
|
||||
ffmpeg.as_os_str(),
|
||||
Duration::from_secs(10),
|
||||
);
|
||||
assert!(matches!(attempt, ScaleAttempt::Undecodable));
|
||||
std::fs::remove_dir_all(&tmp).unwrap();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn missing_ffmpeg_is_retryable() {
|
||||
let attempt = video_thumbnail(
|
||||
b"video bytes",
|
||||
"clip.mp4",
|
||||
&std::env::temp_dir(),
|
||||
OsStr::new("pdfs-ffmpeg-deliberately-absent"),
|
||||
Duration::from_millis(10),
|
||||
);
|
||||
assert!(matches!(attempt, ScaleAttempt::Unavailable));
|
||||
}
|
||||
|
||||
/// Optional real-ffmpeg check, like the RAW fixture harness above.
|
||||
#[test]
|
||||
#[ignore = "set PDFS_VIDEO_FIXTURE to a video file; needs ffmpeg"]
|
||||
fn real_video_fixture_yields_a_frame() {
|
||||
let path = std::env::var_os("PDFS_VIDEO_FIXTURE").expect("PDFS_VIDEO_FIXTURE");
|
||||
let path = std::path::PathBuf::from(path);
|
||||
let name = path.file_name().unwrap().to_string_lossy();
|
||||
let bytes = std::fs::read(&path).unwrap();
|
||||
let ScaleAttempt::Made(thumb) = video_thumbnail(
|
||||
&bytes,
|
||||
&name,
|
||||
&std::env::temp_dir(),
|
||||
OsStr::new("ffmpeg"),
|
||||
Duration::from_secs(30),
|
||||
) else {
|
||||
panic!("a frame from the video");
|
||||
};
|
||||
assert!(thumb.ratio > 0.0);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn videos_are_told_apart_by_name() {
|
||||
for name in [
|
||||
"VID-20260804-WA0023.mp4",
|
||||
"PXL_1.TS.mp4",
|
||||
"clip.MOV",
|
||||
"a.webm",
|
||||
] {
|
||||
assert!(is_video_name(name), "{name}");
|
||||
}
|
||||
for name in ["photo.jpg", "shot.NEF", "notes.txt", "mp4"] {
|
||||
assert!(!is_video_name(name), "{name}");
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn a_running_build_only_accepts_the_same_root() {
|
||||
let status = ThumbnailBuildStatus {
|
||||
@@ -1771,4 +2109,92 @@ mod thumb_tests {
|
||||
let idle = ThumbnailBuildStatus::default();
|
||||
assert!(thumbnail_build_may_start(&idle, "pictures/second").unwrap());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn an_uploaded_photo_carries_its_thumbnail() {
|
||||
let tmp = scratch("upload-photo");
|
||||
std::fs::create_dir_all(&tmp).unwrap();
|
||||
let photo = tmp.join("staged-blob");
|
||||
std::fs::write(&photo, jpeg(4000, 3000)).unwrap();
|
||||
|
||||
let thumbnails = upload_thumbnails_with(&photo, "IMG_0001.jpg", &tmp, OsStr::new("ffmpeg"));
|
||||
let _ = std::fs::remove_dir_all(&tmp);
|
||||
let [thumbnail] = thumbnails.as_slice() else {
|
||||
panic!("one thumbnail, got {}", thumbnails.len());
|
||||
};
|
||||
assert!(matches!(thumbnail.thumbnail_type, ThumbnailType::Thumbnail));
|
||||
assert!(thumbnail.content.len() <= UPLOAD_THUMB_MAX_BYTES);
|
||||
assert_eq!(ratio_of(&thumbnail.content), Some(4.0 / 3.0));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn an_uploaded_video_carries_a_frame() {
|
||||
let tmp = scratch("upload-video");
|
||||
let frame = tmp.join("frame.jpg");
|
||||
std::fs::create_dir_all(&tmp).unwrap();
|
||||
std::fs::write(&frame, jpeg(1080, 1920)).unwrap();
|
||||
std::fs::write(tmp.join("clip"), b"video bytes").unwrap();
|
||||
let ffmpeg = fake_ffmpeg(&tmp, &format!("cat '{}'", frame.display()));
|
||||
|
||||
let thumbnails = upload_thumbnails_with(
|
||||
&tmp.join("clip"),
|
||||
"VID-WA0001.mp4",
|
||||
&tmp,
|
||||
ffmpeg.as_os_str(),
|
||||
);
|
||||
let _ = std::fs::remove_dir_all(&tmp);
|
||||
assert_eq!(thumbnails.len(), 1);
|
||||
assert!(ratio_of(&thumbnails[0].content).is_some_and(|ratio| ratio < 1.0));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn other_files_upload_without_a_thumbnail() {
|
||||
let tmp = scratch("upload-other");
|
||||
std::fs::create_dir_all(&tmp).unwrap();
|
||||
std::fs::write(tmp.join("file"), b"export const answer = 42;\n").unwrap();
|
||||
// An ffmpeg that would hand back a frame, to prove it is never asked.
|
||||
std::fs::write(tmp.join("frame.jpg"), jpeg(64, 64)).unwrap();
|
||||
let ffmpeg = fake_ffmpeg(&tmp, &format!("cat '{}'", tmp.join("frame.jpg").display()));
|
||||
|
||||
for name in ["notes.txt", "answer.ts", "broken.jpg"] {
|
||||
assert!(
|
||||
upload_thumbnails_with(&tmp.join("file"), name, &tmp, ffmpeg.as_os_str())
|
||||
.is_empty(),
|
||||
"{name} uploads bare"
|
||||
);
|
||||
}
|
||||
let _ = std::fs::remove_dir_all(&tmp);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn an_oversized_thumbnail_is_squeezed_under_the_upload_limit() {
|
||||
// Noise is the worst case for JPEG: at the gallery's quality a 512 px
|
||||
// square of it lands far over the limit.
|
||||
let mut seed = 0x2545_f491_u32;
|
||||
let noise = image::RgbImage::from_fn(THUMB_EDGE, THUMB_EDGE, |_, _| {
|
||||
seed ^= seed << 13;
|
||||
seed ^= seed >> 17;
|
||||
seed ^= seed << 5;
|
||||
let [r, g, b, _] = seed.to_le_bytes();
|
||||
image::Rgb([r, g, b])
|
||||
});
|
||||
let mut bytes = Vec::new();
|
||||
image::codecs::jpeg::JpegEncoder::new_with_quality(&mut bytes, super::THUMB_QUALITY)
|
||||
.encode_image(&noise)
|
||||
.unwrap();
|
||||
assert!(
|
||||
bytes.len() > UPLOAD_THUMB_MAX_BYTES,
|
||||
"the fixture is oversized"
|
||||
);
|
||||
|
||||
let fitted = fit_upload_thumb(bytes).expect("noise fits at half size");
|
||||
assert!(fitted.len() <= UPLOAD_THUMB_MAX_BYTES);
|
||||
assert_eq!(ratio_of(&fitted), Some(1.0), "shrinking keeps the shape");
|
||||
let small = jpeg(64, 64);
|
||||
assert_eq!(
|
||||
fit_upload_thumb(small.clone()),
|
||||
Some(small),
|
||||
"a small one is untouched"
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1226,6 +1226,9 @@ impl Core {
|
||||
// Taken from the descriptor being streamed, so it names the content that
|
||||
// actually goes up rather than whatever is at the path when we finish.
|
||||
let streamed = LocalSig::from(&meta);
|
||||
let thumbnails = self
|
||||
.upload_thumbnails_async(path.clone(), name.to_string())
|
||||
.await;
|
||||
// Count the bytes as they are read, so this upload shows up in
|
||||
// `GetQueueStatus` next to a manual one. The uid isn't known until the
|
||||
// draft is sealed, so the transfer registers without one.
|
||||
@@ -1246,7 +1249,7 @@ impl Core {
|
||||
crate::media_type_for(name),
|
||||
reader,
|
||||
meta.len() as i64,
|
||||
Vec::new(),
|
||||
thumbnails,
|
||||
Some(mtime),
|
||||
false,
|
||||
)
|
||||
@@ -1274,6 +1277,9 @@ impl Core {
|
||||
let meta = file.metadata().map_err(|e| format!("stat {rel}: {e}"))?;
|
||||
let mtime = system_mtime(&meta);
|
||||
let streamed = LocalSig::from(&meta);
|
||||
let thumbnails = self
|
||||
.upload_thumbnails_async(path.clone(), base_name(rel).to_string())
|
||||
.await;
|
||||
let reader = OwnedCountingReader::new(
|
||||
file,
|
||||
self.transfers.begin(
|
||||
@@ -1284,7 +1290,7 @@ impl Core {
|
||||
),
|
||||
);
|
||||
self.client
|
||||
.upload_new_revision_from(uid, reader, meta.len() as i64, Vec::new(), Some(mtime))
|
||||
.upload_new_revision_from(uid, reader, meta.len() as i64, thumbnails, Some(mtime))
|
||||
.await
|
||||
.map_err(|e| format!("upload revision {rel}: {e}"))?;
|
||||
warn_if_torn(rel, &path, streamed);
|
||||
|
||||
@@ -389,11 +389,11 @@ impl<R: Read> Read for CountingReader<'_, R> {
|
||||
&& cancel.load(Ordering::Relaxed)
|
||||
{
|
||||
// Not `Ok(0)`: a short read is how this reader says "end of file",
|
||||
// and the SDK would seal a truncated revision from it.
|
||||
return Err(std::io::Error::new(
|
||||
std::io::ErrorKind::Interrupted,
|
||||
"upload superseded by a newer write",
|
||||
));
|
||||
// and the SDK would seal a truncated revision from it. Not
|
||||
// `Interrupted` either: every reader loop, the SDK's included,
|
||||
// retries that kind, and this flag never clears, so the drain
|
||||
// thread spun forever with the transfer stuck at 0 bytes (B98).
|
||||
return Err(std::io::Error::other("upload superseded by a newer write"));
|
||||
}
|
||||
let n = self.inner.read(buf)?;
|
||||
self.guard.add(n as u64);
|
||||
@@ -433,4 +433,17 @@ mod tests {
|
||||
assert_eq!(limit.charge(1500, now), Duration::from_millis(500));
|
||||
assert_eq!(limit.charge(1500, now), Duration::from_secs(2));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn a_cancelled_upload_fails_its_read_instead_of_asking_for_a_retry() {
|
||||
let reg = TransferRegistry::new();
|
||||
let guard = reg.begin("f", "", TransferDirection::Upload, 4);
|
||||
let cancel = Arc::new(AtomicBool::new(true));
|
||||
let mut reader = CountingReader::new(&b"data"[..], &guard).with_cancel(cancel);
|
||||
// `read_exact` retries `Interrupted` the way the SDK's block loop does,
|
||||
// so this hangs rather than fails if the cancel asks for a retry.
|
||||
let err = reader.read_exact(&mut [0; 4]).unwrap_err();
|
||||
assert_ne!(err.kind(), std::io::ErrorKind::Interrupted);
|
||||
assert_eq!(guard.entry.done.load(Ordering::Relaxed), 0);
|
||||
}
|
||||
}
|
||||
@@ -69,6 +69,9 @@ async fn run_uploads(
|
||||
format!("destination access denied: errno {}", error.code()),
|
||||
));
|
||||
}
|
||||
let thumbnails = core
|
||||
.upload_thumbnails_async(t.path.clone(), t.name.clone())
|
||||
.await;
|
||||
match core
|
||||
.client
|
||||
.upload_file_from(
|
||||
@@ -77,7 +80,7 @@ async fn run_uploads(
|
||||
media_type_for(&t.name),
|
||||
reader,
|
||||
t.size as i64,
|
||||
Vec::new(),
|
||||
thumbnails,
|
||||
mtime,
|
||||
false,
|
||||
)
|
||||
|
||||
@@ -419,6 +419,21 @@ pub(crate) fn read_exif(path: &str) -> ExifInfo {
|
||||
.get_field(tag, exif::In::PRIMARY)
|
||||
.map(|f| f.display_value().with_unit(&reader).to_string())
|
||||
};
|
||||
// Text tags, without the quotes `display_value` wraps each string in and
|
||||
// the NUL padding some cameras leave behind.
|
||||
let ascii = |tag: exif::Tag| {
|
||||
let field = reader.get_field(tag, exif::In::PRIMARY)?;
|
||||
let exif::Value::Ascii(parts) = &field.value else {
|
||||
return None;
|
||||
};
|
||||
let text = parts
|
||||
.iter()
|
||||
.map(|part| String::from_utf8_lossy(part).into_owned())
|
||||
.collect::<Vec<_>>()
|
||||
.join(" ");
|
||||
let text = text.trim_matches(|c: char| c == '\0' || c.is_whitespace());
|
||||
(!text.is_empty()).then(|| text.to_string())
|
||||
};
|
||||
|
||||
if let Some(size) = field(exif::Tag::PixelXDimension)
|
||||
.zip(field(exif::Tag::PixelYDimension))
|
||||
@@ -428,33 +443,41 @@ pub(crate) fn read_exif(path: &str) -> ExifInfo {
|
||||
// Translators: label of a photo's pixel dimensions in the details panel.
|
||||
fields.push((gettext("Dimensions"), size));
|
||||
}
|
||||
if let Some(taken) = field(exif::Tag::DateTimeOriginal) {
|
||||
if let Some(taken) = ascii(exif::Tag::DateTimeOriginal) {
|
||||
// Translators: label of when a photo was taken, in the details panel.
|
||||
fields.push((pgettext("photo property", "Taken"), taken));
|
||||
}
|
||||
|
||||
let camera = [exif::Tag::Make, exif::Tag::Model]
|
||||
.iter()
|
||||
.filter_map(|tag| field(*tag))
|
||||
.collect::<Vec<_>>()
|
||||
.join(" ");
|
||||
if !camera.is_empty() {
|
||||
if let Some(camera) = camera_name(ascii(exif::Tag::Make), ascii(exif::Tag::Model)) {
|
||||
// Translators: label of the camera model in a photo's details panel.
|
||||
fields.push((gettext("Camera"), camera));
|
||||
}
|
||||
if let Some(lens) = field(exif::Tag::LensModel) {
|
||||
if let Some(lens) = ascii(exif::Tag::LensModel) {
|
||||
// Translators: label of the lens model in a photo's details panel.
|
||||
fields.push((gettext("Lens"), lens));
|
||||
}
|
||||
|
||||
let shutter = reader
|
||||
.get_field(exif::Tag::ExposureTime, exif::In::PRIMARY)
|
||||
.and_then(|f| match &f.value {
|
||||
exif::Value::Rational(r) => r.first().map(|r| r.to_f64()),
|
||||
_ => None,
|
||||
})
|
||||
.filter(|seconds| seconds.is_finite() && *seconds > 0.0)
|
||||
.map(format_shutter);
|
||||
let iso = reader
|
||||
.get_field(exif::Tag::PhotographicSensitivity, exif::In::PRIMARY)
|
||||
.and_then(|f| f.value.get_uint(0))
|
||||
// Translators: a photo's ISO sensitivity, such as "ISO 400".
|
||||
.map(|n| gettext_f("ISO {value}", &[("value", &n.to_string())]));
|
||||
let exposure: Vec<String> = [
|
||||
exif::Tag::FNumber,
|
||||
exif::Tag::ExposureTime,
|
||||
exif::Tag::PhotographicSensitivity,
|
||||
exif::Tag::FocalLength,
|
||||
field(exif::Tag::FNumber),
|
||||
shutter,
|
||||
iso,
|
||||
field(exif::Tag::FocalLength),
|
||||
]
|
||||
.iter()
|
||||
.filter_map(|tag| field(*tag))
|
||||
.into_iter()
|
||||
.flatten()
|
||||
.collect();
|
||||
if !exposure.is_empty() {
|
||||
// Translators: label of aperture, shutter speed, ISO and focal length in a photo's details panel.
|
||||
@@ -479,6 +502,29 @@ pub(crate) fn read_exif(path: &str) -> ExifInfo {
|
||||
ExifInfo { fields, coords }
|
||||
}
|
||||
|
||||
/// "Google Pixel 6" from Make "Google" and Model "Pixel 6", but just "Canon EOS
|
||||
/// R5" where the model already names the maker.
|
||||
fn camera_name(make: Option<String>, model: Option<String>) -> Option<String> {
|
||||
match (make, model) {
|
||||
(Some(make), Some(model)) if model.to_lowercase().starts_with(&make.to_lowercase()) => {
|
||||
Some(model)
|
||||
}
|
||||
(Some(make), Some(model)) => Some(format!("{make} {model}")),
|
||||
(make, model) => make.or(model),
|
||||
}
|
||||
}
|
||||
|
||||
/// A shutter speed the way cameras print it: "1/250 s" below a second, "2.5 s"
|
||||
/// from one up.
|
||||
fn format_shutter(seconds: f64) -> String {
|
||||
if seconds >= 0.95 {
|
||||
let text = format!("{seconds:.1}");
|
||||
format!("{} s", text.strip_suffix(".0").unwrap_or(&text))
|
||||
} else {
|
||||
format!("1/{} s", (1.0 / seconds).round())
|
||||
}
|
||||
}
|
||||
|
||||
/// Convert one GPS coordinate from EXIF's degrees/minutes/seconds rationals to
|
||||
/// decimal degrees, negating for the S/W hemispheres.
|
||||
pub(crate) fn gps_degrees(reader: &exif::Exif, tag: exif::Tag, ref_tag: exif::Tag) -> Option<f64> {
|
||||
@@ -1019,8 +1065,11 @@ pub(crate) fn open_photo_viewer(ui: &Rc<Ui>, initial_uid: String) {
|
||||
info_panel.set_width_request(320);
|
||||
info_panel.append(&info_scroll);
|
||||
|
||||
// Set explicitly: the title's hexpand would otherwise propagate up and have
|
||||
// the revealer take half the window even while it is closed.
|
||||
let info_revealer = gtk4::Revealer::builder()
|
||||
.transition_type(gtk4::RevealerTransitionType::SlideLeft)
|
||||
.hexpand(false)
|
||||
.child(&info_panel)
|
||||
.build();
|
||||
|
||||
@@ -1425,7 +1474,27 @@ pub(crate) fn over_photo(picture: >k4::Picture, x: f64, y: f64) -> bool {
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::{named_link, position_label};
|
||||
use super::{camera_name, format_shutter, named_link, position_label};
|
||||
|
||||
#[test]
|
||||
fn shutter_speeds_read_like_a_camera() {
|
||||
assert_eq!(format_shutter(1.0 / 18.869_704_689_121_615), "1/19 s");
|
||||
assert_eq!(format_shutter(0.001), "1/1000 s");
|
||||
assert_eq!(format_shutter(2.5), "2.5 s");
|
||||
assert_eq!(format_shutter(1.0), "1 s");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn camera_name_does_not_repeat_the_maker() {
|
||||
let s = |v: &str| Some(v.to_string());
|
||||
assert_eq!(camera_name(s("Google"), s("Pixel 6")), s("Google Pixel 6"));
|
||||
assert_eq!(
|
||||
camera_name(s("Canon"), s("Canon EOS R5")),
|
||||
s("Canon EOS R5")
|
||||
);
|
||||
assert_eq!(camera_name(None, s("iPhone 15")), s("iPhone 15"));
|
||||
assert_eq!(camera_name(None, None), None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn the_counter_counts_the_library_while_pages_are_left() {
|
||||
|
||||
@@ -157,10 +157,12 @@ pub(crate) struct GalleryState {
|
||||
pub(crate) thumb_source: RefCell<Option<glib::SourceId>>,
|
||||
pub(crate) relayout_source: RefCell<Option<glib::SourceId>>,
|
||||
/// The rows currently realised by the ListView, as row index -> the uid of
|
||||
/// its first photo (absent for a heading row). A resize or a zoom step
|
||||
/// changes how many tiles fit per row, so the row model has to be rebuilt —
|
||||
/// this is what lets the rebuild put the user back where they were.
|
||||
pub(crate) bound: RefCell<BTreeMap<u32, Option<String>>>,
|
||||
/// its first photo (absent for a heading row) and the row's widget. A
|
||||
/// resize or a zoom step changes how many tiles fit per row, so the row
|
||||
/// model has to be rebuilt — this is what lets the rebuild put the user
|
||||
/// back where they were. The ListView realises rows beyond both edges of
|
||||
/// the viewport, so the widget is what tells which of them is on screen.
|
||||
pub(crate) bound: RefCell<BTreeMap<u32, (Option<String>, gtk4::Box)>>,
|
||||
/// The ListView itself, so a rebuild can scroll back to the row the user was
|
||||
/// looking at.
|
||||
pub(crate) list: gtk4::ListView,
|
||||
@@ -434,7 +436,8 @@ pub(crate) fn build_gallery_page() -> (gtk4::Widget, GalleryWidgets) {
|
||||
.halign(gtk4::Align::End)
|
||||
.margin_top(12)
|
||||
.margin_bottom(12)
|
||||
.margin_end(4)
|
||||
// Clear of the overlay scrollbar, which widens under the pointer.
|
||||
.margin_end(18)
|
||||
.tooltip_text(gettext("Jump to a month"))
|
||||
.visible(false)
|
||||
.build();
|
||||
@@ -900,7 +903,7 @@ pub(crate) fn wire_gallery(
|
||||
.gallery
|
||||
.bound
|
||||
.borrow_mut()
|
||||
.insert(item.position(), row.anchor());
|
||||
.insert(item.position(), (row.anchor(), row_box.clone()));
|
||||
});
|
||||
|
||||
// ListView recycles row widgets, so a scrolled-away row must give up its
|
||||
@@ -2004,7 +2007,7 @@ pub(crate) fn schedule_relayout(ui: &Rc<Ui>) {
|
||||
/// rebuilt. What that would cost the user is their scroll position, so the
|
||||
/// topmost realised row's first photo is remembered and scrolled back to.
|
||||
pub(crate) fn relayout_gallery(ui: &Rc<Ui>) {
|
||||
let anchor: Option<String> = ui.gallery.bound.borrow().values().flatten().next().cloned();
|
||||
let anchor = top_anchor(ui);
|
||||
repaint_gallery(ui);
|
||||
let Some(anchor) = anchor else { return };
|
||||
let Some(row) = row_of_photo(&ui.gallery.groups, &anchor) else {
|
||||
@@ -2015,6 +2018,30 @@ pub(crate) fn relayout_gallery(ui: &Rc<Ui>) {
|
||||
.scroll_to(row, gtk4::ListScrollFlags::empty(), None);
|
||||
}
|
||||
|
||||
/// The first photo of the topmost photo row that reaches into the viewport.
|
||||
///
|
||||
/// Not simply the first bound row: the ListView keeps rows bound well outside
|
||||
/// the viewport (unmapped, with their last allocation), and scrolling one of
|
||||
/// those "back" to the top is a jump. Falls back to the first bound photo row
|
||||
/// while the list isn't on screen.
|
||||
fn top_anchor(ui: &Rc<Ui>) -> Option<String> {
|
||||
let list = &ui.gallery.list;
|
||||
let bound = ui.gallery.bound.borrow();
|
||||
let mut photo_rows = bound
|
||||
.values()
|
||||
.filter_map(|(uid, row)| uid.as_ref().map(|uid| (uid, row)));
|
||||
let first = photo_rows.clone().next().map(|(uid, _)| uid.clone());
|
||||
photo_rows
|
||||
.find(|(_, row)| {
|
||||
row.is_mapped()
|
||||
&& row
|
||||
.compute_bounds(list)
|
||||
.is_some_and(|rect| rect.y() + rect.height() > 0.0)
|
||||
})
|
||||
.map(|(uid, _)| uid.clone())
|
||||
.or(first)
|
||||
}
|
||||
|
||||
/// Which row of the rendered model holds `uid`, if any.
|
||||
fn row_of_photo(store: &gio::ListStore, uid: &str) -> Option<u32> {
|
||||
(0..store.n_items()).find(|i| {
|
||||
@@ -2329,7 +2356,7 @@ fn sync_scrubber_position(ui: &Rc<Ui>) {
|
||||
if ui.gallery.scrubbing.get() || !ui.gallery.scrubber.is_visible() {
|
||||
return;
|
||||
}
|
||||
let Some(uid) = ui.gallery.bound.borrow().values().flatten().next().cloned() else {
|
||||
let Some(uid) = top_anchor(ui) else {
|
||||
return;
|
||||
};
|
||||
let Some(capture_time) = find_photo_index(&ui.gallery.model, &uid)
|
||||
|
||||
@@ -12,6 +12,31 @@ Conventions:
|
||||
|
||||
---
|
||||
|
||||
## B98 — A superseded upload spins its drain thread forever and shows as "Uploading" at 0 bytes
|
||||
|
||||
**Status:** Fixed (unverified) — the daemon carrying the change has not been driven against a
|
||||
superseded upload yet.
|
||||
**Found:** 2026-09-23. The Sync page showed `Unconfirmed 654050.crdownload — 0 bytes of 23.8 MiB`
|
||||
for hours after Brave had finished and renamed the download. `pdfs transfers` listed the same
|
||||
entry, `pdfs diagnostics` showed every worker idle, and `/proc/<pid>/task` showed `pdfs-drain-1`
|
||||
in state `R` at 100% CPU, holding a deleted staging blob open.
|
||||
|
||||
**Where:** `crates/pdfs-fuse/src/transfers.rs` (`CountingReader::read`).
|
||||
|
||||
**Cause.** A write that lands while a revision is on the wire cancels that upload through the
|
||||
flag `CountingReader` checks before every read. The reader reported the cancel as
|
||||
`ErrorKind::Interrupted`. Every read loop treats that kind as "try again", including the SDK's
|
||||
`read_full_block`, and the flag never clears, so the loop never ended. The `TransferGuard` was
|
||||
never dropped, so the transfer stayed in the registry, and the drain thread was lost until the
|
||||
daemon restarted. A browser download is the natural trigger: the `.crdownload` file keeps growing,
|
||||
so each new write supersedes the upload of the previous one.
|
||||
|
||||
**Fix.** The cancel is reported as `ErrorKind::Other`, which the SDK turns into an error.
|
||||
`drain_revision` already recognises a cancelled upload and returns without counting a failure.
|
||||
Regression test: `a_cancelled_upload_fails_its_read_instead_of_asking_for_a_retry`.
|
||||
|
||||
---
|
||||
|
||||
## B97 — Photo refreshes stack up on the control socket, and shutdown turns the resolve pass into a burst of "undecryptable photo" warnings
|
||||
|
||||
**Status:** Fixed (unverified) — the daemon carrying the change has not been driven against a real
|
||||
|
||||
@@ -11,6 +11,34 @@ scratch (user data in `staging/` and `recovery/` is never touched by this).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [2.2.0] — 2026-09-23
|
||||
|
||||
Schema: **32**. Videos that earlier got no thumbnail are tried again.
|
||||
|
||||
### Added
|
||||
- **Video thumbnails.** Videos without a thumbnail from Drive now show a frame from the clip in
|
||||
Photos. This needs `ffmpeg`, a new optional dependency.
|
||||
- **Uploads carry a thumbnail.** Photos and videos uploaded from this client now include one, so
|
||||
they show a preview in Proton's own apps as well, without downloading the whole file.
|
||||
|
||||
### Fixed
|
||||
- **The Photos gallery no longer jumps** while thumbnails load, when zooming, or when switching
|
||||
tabs and back.
|
||||
- **The month scrubber no longer collides with the scrollbar.**
|
||||
- **The photo details panel is no longer empty.**
|
||||
- **Photo details read like a camera's:** "Google Pixel 6" instead of quoted EXIF values, shutter
|
||||
speeds such as 1/19 s, and a labelled ISO.
|
||||
|
||||
## [2.1.1] — 2026-09-23
|
||||
|
||||
Schema: **31** (unchanged).
|
||||
|
||||
### Fixed
|
||||
- **Uploads no longer get stuck at 0 bytes.** When a file changed again while its previous
|
||||
version was uploading, such as a browser download that is still growing, the old upload could
|
||||
hang forever. It kept one background thread busy at full CPU and showed as "Uploading" in the
|
||||
Transfers list until the daemon restarted.
|
||||
|
||||
## [2.1.0] — 2026-09-23
|
||||
|
||||
The desktop app, the tray and the search prompt speak German, British English, Spanish, French,
|
||||
|
||||
+2
-1
@@ -9,7 +9,7 @@
|
||||
# Build + install: cd packaging && makepkg -fi
|
||||
|
||||
pkgname=proton-drive-linux
|
||||
pkgver=2.1.0
|
||||
pkgver=2.2.0
|
||||
pkgrel=1
|
||||
pkgdesc="Unofficial Proton Drive client for Linux: files-on-demand FUSE mount, CLI, GTK4 app + tray"
|
||||
arch=('x86_64')
|
||||
@@ -20,6 +20,7 @@ makedepends=('cargo' 'git' 'gettext')
|
||||
provides=('pdfs')
|
||||
# Files-on-demand mount + keyring need these at runtime.
|
||||
optdepends=('gnome-keyring: credential storage via Secret Service'
|
||||
'ffmpeg: video thumbnails'
|
||||
'xdg-utils: "Open folder" action from the tray'
|
||||
'fzf: live search-as-you-type launcher (pdfs-prompt --fzf)'
|
||||
'foot: terminal for pdfs-prompt --fzf started from a keybinding')
|
||||
|
||||
+18
-1
@@ -21,6 +21,22 @@ built packages never reach the AUR.
|
||||
|
||||
## Releasing a new version
|
||||
|
||||
`.github/workflows/aur.yml` does this automatically:
|
||||
|
||||
- **On a release tag**, `release.yml` calls it after the GitHub release is
|
||||
published. It runs `./update.sh <version>`, pushes all three packages with
|
||||
`./push.sh`, and commits the updated recipes back to `main` as
|
||||
`chore(aur): update packages to <version>`.
|
||||
- **On a push to `main` that changes `proton-drive-for-linux-git/`**, it
|
||||
regenerates that package's `.SRCINFO` and pushes only the -git package.
|
||||
- **By hand**, run the workflow from the Actions tab. Give a version to publish
|
||||
a release, or leave it empty to publish only the -git package.
|
||||
|
||||
It needs the `AUR_SSH_PRIVATE_KEY` repository secret: a private key whose public
|
||||
half is registered with the AUR account.
|
||||
|
||||
To do the same by hand:
|
||||
|
||||
1. Tag and publish the upstream release, so the source tarball and the
|
||||
`proton-drive-linux-<version>-x86_64.tar.gz` release asset exist.
|
||||
2. Run `./update.sh <version>` — it rewrites `pkgver`, resets `pkgrel=1`,
|
||||
@@ -32,7 +48,8 @@ built packages never reach the AUR.
|
||||
for a single package).
|
||||
|
||||
`proton-drive-for-linux-git` carries a `pkgver()` function, so its `pkgver` is
|
||||
computed at build time; do not push a commit that only bumps it.
|
||||
computed at build time; do not push a commit that only bumps it. This is why new
|
||||
commits on `main` do not trigger an AUR push.
|
||||
|
||||
## Requirements for pushing
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
pkgbase = proton-drive-for-linux-bin
|
||||
pkgdesc = Unofficial Proton Drive client: FUSE files-on-demand mount, CLI, GTK4 app, tray (binaries)
|
||||
pkgver = 2.0.0
|
||||
pkgver = 2.1.1
|
||||
pkgrel = 1
|
||||
url = https://github.com/narrrl/proton-drive-linux
|
||||
arch = x86_64
|
||||
@@ -14,28 +14,29 @@ pkgbase = proton-drive-for-linux-bin
|
||||
depends = glibc
|
||||
depends = hicolor-icon-theme
|
||||
optdepends = perl-image-exiftool: thumbnails for camera RAW files
|
||||
optdepends = ffmpeg: video thumbnails
|
||||
optdepends = gnome-keyring: credential storage over the Secret Service API
|
||||
optdepends = kwallet: credential storage over the Secret Service API
|
||||
optdepends = xdg-utils: "Open folder" action in the tray menu
|
||||
optdepends = fzf: search-as-you-type launcher (pdfs-prompt --fzf)
|
||||
optdepends = foot: terminal that hosts pdfs-prompt --fzf when started from a keybinding
|
||||
provides = proton-drive-for-linux=2.0.0
|
||||
provides = proton-drive-linux=2.0.0
|
||||
provides = proton-drive-for-linux=2.1.1
|
||||
provides = proton-drive-linux=2.1.1
|
||||
provides = pdfs
|
||||
conflicts = proton-drive-linux
|
||||
conflicts = proton-drive-for-linux
|
||||
conflicts = proton-drive-for-linux-git
|
||||
options = !strip
|
||||
options = !debug
|
||||
source = proton-drive-linux-2.0.0-x86_64.tar.gz::https://github.com/narrrl/proton-drive-linux/releases/download/v2.0.0/proton-drive-linux-2.0.0-x86_64.tar.gz
|
||||
source = io.narl.proton-drive-linux.desktop::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v2.0.0/packaging/io.narl.proton-drive-linux.desktop
|
||||
source = io.narl.proton-drive-linux-tray.desktop::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v2.0.0/packaging/io.narl.proton-drive-linux-tray.desktop
|
||||
source = io.narl.proton-drive-linux.svg::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v2.0.0/packaging/io.narl.proton-drive-linux.svg
|
||||
source = proton-drive.service::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v2.0.0/packaging/proton-drive.service
|
||||
source = LICENSE-2.0.0::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v2.0.0/LICENSE
|
||||
sha256sums = 78d3bda3810964383cc0917cf8af276f1dc3776dcd4fe725754f5dafb371dfe6
|
||||
sha256sums = 034083fd2f77b0b69ae638fdaba2bd772209ca325a78ca17d050f221cab9650b
|
||||
sha256sums = 5c369d689926cbbd64803b55a9a6010ad59aded6c7bcfb3e8bd005c95ac10cc8
|
||||
source = proton-drive-linux-2.1.1-x86_64.tar.gz::https://github.com/narrrl/proton-drive-linux/releases/download/v2.1.1/proton-drive-linux-2.1.1-x86_64.tar.gz
|
||||
source = io.narl.proton-drive-linux.desktop::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v2.1.1/packaging/io.narl.proton-drive-linux.desktop
|
||||
source = io.narl.proton-drive-linux-tray.desktop::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v2.1.1/packaging/io.narl.proton-drive-linux-tray.desktop
|
||||
source = io.narl.proton-drive-linux.svg::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v2.1.1/packaging/io.narl.proton-drive-linux.svg
|
||||
source = proton-drive.service::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v2.1.1/packaging/proton-drive.service
|
||||
source = LICENSE-2.1.1::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v2.1.1/LICENSE
|
||||
sha256sums = 3eb9d6787a0dfa66e2f942e9b2dd4a362cc93b50d1f37d176fe931ea1d22d53c
|
||||
sha256sums = d190d6771fff0b975271fb62fd3fb0fa8bbf17d7278c10853c18557855b0c123
|
||||
sha256sums = 1d95e250370220e3bb6aead6ce34d1d6cc759f42c4803b75f1667e78ff47c6c0
|
||||
sha256sums = e598a93c2715c3a9fdc7fb937902083d4a1135e8fbdfe6fe7e37f0383ebbd828
|
||||
sha256sums = 25fa3bd9ba52df534be9d8bc66f77d7502fe1423177237d0d14b673dedeb1b60
|
||||
sha256sums = 02c419e7f9af08dda720e4f852f3e57cf5a69e192605440f750e9d244fa2817c
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Maintainer: Nils Pukropp <contact@narl.io>
|
||||
|
||||
pkgname=proton-drive-for-linux-bin
|
||||
pkgver=2.0.0
|
||||
pkgver=2.1.1
|
||||
pkgrel=1
|
||||
pkgdesc="Unofficial Proton Drive client: FUSE files-on-demand mount, CLI, GTK4 app, tray (binaries)"
|
||||
arch=('x86_64')
|
||||
@@ -10,6 +10,7 @@ license=('MIT')
|
||||
depends=('fuse3' 'gtk4' 'libadwaita' 'webkitgtk-6.0' 'dbus' 'gcc-libs' 'glibc'
|
||||
'hicolor-icon-theme')
|
||||
optdepends=('perl-image-exiftool: thumbnails for camera RAW files'
|
||||
'ffmpeg: video thumbnails'
|
||||
'gnome-keyring: credential storage over the Secret Service API'
|
||||
'kwallet: credential storage over the Secret Service API'
|
||||
'xdg-utils: "Open folder" action in the tray menu'
|
||||
@@ -29,9 +30,9 @@ source=("proton-drive-linux-$pkgver-x86_64.tar.gz::$url/releases/download/$_tag/
|
||||
"io.narl.proton-drive-linux.svg::$_raw/packaging/io.narl.proton-drive-linux.svg"
|
||||
"proton-drive.service::$_raw/packaging/proton-drive.service"
|
||||
"LICENSE-$pkgver::$_raw/LICENSE")
|
||||
sha256sums=('78d3bda3810964383cc0917cf8af276f1dc3776dcd4fe725754f5dafb371dfe6'
|
||||
'034083fd2f77b0b69ae638fdaba2bd772209ca325a78ca17d050f221cab9650b'
|
||||
'5c369d689926cbbd64803b55a9a6010ad59aded6c7bcfb3e8bd005c95ac10cc8'
|
||||
sha256sums=('3eb9d6787a0dfa66e2f942e9b2dd4a362cc93b50d1f37d176fe931ea1d22d53c'
|
||||
'd190d6771fff0b975271fb62fd3fb0fa8bbf17d7278c10853c18557855b0c123'
|
||||
'1d95e250370220e3bb6aead6ce34d1d6cc759f42c4803b75f1667e78ff47c6c0'
|
||||
'e598a93c2715c3a9fdc7fb937902083d4a1135e8fbdfe6fe7e37f0383ebbd828'
|
||||
'25fa3bd9ba52df534be9d8bc66f77d7502fe1423177237d0d14b673dedeb1b60'
|
||||
'02c419e7f9af08dda720e4f852f3e57cf5a69e192605440f750e9d244fa2817c')
|
||||
|
||||
@@ -7,6 +7,7 @@ pkgbase = proton-drive-for-linux-git
|
||||
license = MIT
|
||||
makedepends = cargo
|
||||
makedepends = git
|
||||
makedepends = gettext
|
||||
depends = fuse3
|
||||
depends = gtk4
|
||||
depends = libadwaita
|
||||
@@ -16,6 +17,7 @@ pkgbase = proton-drive-for-linux-git
|
||||
depends = glibc
|
||||
depends = hicolor-icon-theme
|
||||
optdepends = perl-image-exiftool: thumbnails for camera RAW files
|
||||
optdepends = ffmpeg: video thumbnails
|
||||
optdepends = gnome-keyring: credential storage over the Secret Service API
|
||||
optdepends = kwallet: credential storage over the Secret Service API
|
||||
optdepends = xdg-utils: "Open folder" action in the tray menu
|
||||
|
||||
@@ -11,6 +11,7 @@ depends=('fuse3' 'gtk4' 'libadwaita' 'webkitgtk-6.0' 'dbus' 'gcc-libs' 'glibc'
|
||||
'hicolor-icon-theme')
|
||||
makedepends=('cargo' 'git' 'gettext')
|
||||
optdepends=('perl-image-exiftool: thumbnails for camera RAW files'
|
||||
'ffmpeg: video thumbnails'
|
||||
'gnome-keyring: credential storage over the Secret Service API'
|
||||
'kwallet: credential storage over the Secret Service API'
|
||||
'xdg-utils: "Open folder" action in the tray menu'
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
pkgbase = proton-drive-for-linux
|
||||
pkgdesc = Unofficial Proton Drive client: files-on-demand FUSE mount, CLI, GTK4 app and tray
|
||||
pkgver = 2.0.0
|
||||
pkgver = 2.1.1
|
||||
pkgrel = 1
|
||||
url = https://github.com/narrrl/proton-drive-linux
|
||||
arch = x86_64
|
||||
license = MIT
|
||||
makedepends = cargo
|
||||
makedepends = gettext
|
||||
depends = fuse3
|
||||
depends = gtk4
|
||||
depends = libadwaita
|
||||
@@ -15,18 +16,19 @@ pkgbase = proton-drive-for-linux
|
||||
depends = glibc
|
||||
depends = hicolor-icon-theme
|
||||
optdepends = perl-image-exiftool: thumbnails for camera RAW files
|
||||
optdepends = ffmpeg: video thumbnails
|
||||
optdepends = gnome-keyring: credential storage over the Secret Service API
|
||||
optdepends = kwallet: credential storage over the Secret Service API
|
||||
optdepends = xdg-utils: "Open folder" action in the tray menu
|
||||
optdepends = fzf: search-as-you-type launcher (pdfs-prompt --fzf)
|
||||
optdepends = foot: terminal that hosts pdfs-prompt --fzf when started from a keybinding
|
||||
provides = proton-drive-linux=2.0.0
|
||||
provides = proton-drive-linux=2.1.1
|
||||
provides = pdfs
|
||||
conflicts = proton-drive-linux
|
||||
conflicts = proton-drive-for-linux-bin
|
||||
conflicts = proton-drive-for-linux-git
|
||||
options = !lto
|
||||
source = proton-drive-for-linux-2.0.0.tar.gz::https://github.com/narrrl/proton-drive-linux/archive/refs/tags/v2.0.0.tar.gz
|
||||
sha256sums = 4476aafe405cb91d81cec8cffcef345696f3169ac3fbde0121233913c8777eea
|
||||
source = proton-drive-for-linux-2.1.1.tar.gz::https://github.com/narrrl/proton-drive-linux/archive/refs/tags/v2.1.1.tar.gz
|
||||
sha256sums = 205b19e0cc34ed26bccc5218df7c530a2b2b2755f6a36e2b39b1c29ae9fcb655
|
||||
|
||||
pkgname = proton-drive-for-linux
|
||||
@@ -1,7 +1,7 @@
|
||||
# Maintainer: Nils Pukropp <contact@narl.io>
|
||||
|
||||
pkgname=proton-drive-for-linux
|
||||
pkgver=2.0.0
|
||||
pkgver=2.1.1
|
||||
pkgrel=1
|
||||
pkgdesc="Unofficial Proton Drive client: files-on-demand FUSE mount, CLI, GTK4 app and tray"
|
||||
arch=('x86_64')
|
||||
@@ -11,6 +11,7 @@ depends=('fuse3' 'gtk4' 'libadwaita' 'webkitgtk-6.0' 'dbus' 'gcc-libs' 'glibc'
|
||||
'hicolor-icon-theme')
|
||||
makedepends=('cargo' 'gettext')
|
||||
optdepends=('perl-image-exiftool: thumbnails for camera RAW files'
|
||||
'ffmpeg: video thumbnails'
|
||||
'gnome-keyring: credential storage over the Secret Service API'
|
||||
'kwallet: credential storage over the Secret Service API'
|
||||
'xdg-utils: "Open folder" action in the tray menu'
|
||||
@@ -21,7 +22,7 @@ conflicts=('proton-drive-linux' 'proton-drive-for-linux-bin' 'proton-drive-for-l
|
||||
# LTO has broken GTK/Rust links for this workspace; the release profile keeps it off.
|
||||
options=('!lto')
|
||||
source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz")
|
||||
sha256sums=('4476aafe405cb91d81cec8cffcef345696f3169ac3fbde0121233913c8777eea')
|
||||
sha256sums=('205b19e0cc34ed26bccc5218df7c530a2b2b2755f6a36e2b39b1c29ae9fcb655')
|
||||
|
||||
_srcname="proton-drive-linux-$pkgver"
|
||||
|
||||
|
||||
@@ -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-23 10:39+0200\n"
|
||||
"POT-Creation-Date: 2026-09-23 20:16+0200\n"
|
||||
"PO-Revision-Date: 2026-09-23 12:00+0200\n"
|
||||
"Last-Translator: Proton Drive for Linux contributors\n"
|
||||
"Language-Team: German\n"
|
||||
@@ -23,7 +23,7 @@ msgstr "Meine Dateien"
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:830 crates/pdfs-gui/src/app/main.rs:1415
|
||||
#: crates/pdfs-gui/src/app/pages/albums.rs:623
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:674
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:677
|
||||
msgid "Photos"
|
||||
msgstr "Fotos"
|
||||
|
||||
@@ -152,7 +152,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:313
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1581
|
||||
#: 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
|
||||
@@ -239,9 +239,9 @@ msgstr "Umbenennen"
|
||||
#: 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:504
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1575
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1579
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:507
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1582
|
||||
#: crates/pdfs-gui/src/app/widgets/details.rs:162
|
||||
msgid "Move to Trash"
|
||||
msgstr "In den Papierkorb verschieben"
|
||||
@@ -327,7 +327,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:383
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:385
|
||||
#: 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
|
||||
@@ -363,7 +363,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:292
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2731
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2758
|
||||
#: 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."
|
||||
@@ -375,7 +375,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:2765
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2792
|
||||
#: 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
|
||||
@@ -387,7 +387,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:2766
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2793
|
||||
#: 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
|
||||
@@ -399,7 +399,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:2774
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2801
|
||||
#: 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
|
||||
@@ -412,7 +412,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:2775
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2802
|
||||
#: 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
|
||||
@@ -420,12 +420,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:2184
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2211
|
||||
msgid "Today"
|
||||
msgstr "Heute"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/activity.rs:422
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2189
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2216
|
||||
msgid "Yesterday"
|
||||
msgstr "Gestern"
|
||||
|
||||
@@ -484,7 +484,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:2228
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2255
|
||||
msgid "%H:%M"
|
||||
msgstr "%H:%M"
|
||||
|
||||
@@ -590,12 +590,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:2646
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2673
|
||||
msgid "No photo library"
|
||||
msgstr "Keine Fotobibliothek"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/albums.rs:60
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2647
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2674
|
||||
msgid "This Proton account doesn't have Photos enabled."
|
||||
msgstr "Für dieses Proton-Konto ist Fotos nicht aktiviert."
|
||||
|
||||
@@ -628,7 +628,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:2505
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2532
|
||||
#: 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
|
||||
@@ -693,11 +693,11 @@ msgstr "Das Album konnte nicht erstellt werden"
|
||||
#: 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:1245
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1165
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1657
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2569
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2737
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1294
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1168
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1660
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2596
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2764
|
||||
#: 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
|
||||
@@ -761,7 +761,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:640
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:643
|
||||
msgid "New Album…"
|
||||
msgstr "Neues Album …"
|
||||
|
||||
@@ -952,7 +952,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:1511
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1514
|
||||
#, rust-format
|
||||
msgid "{n} selected"
|
||||
msgid_plural "{n} selected"
|
||||
@@ -961,8 +961,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:1650
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1656
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1653
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1659
|
||||
msgid "Couldn't move to Trash"
|
||||
msgstr "Verschieben in den Papierkorb fehlgeschlagen"
|
||||
|
||||
@@ -1000,7 +1000,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:1643
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1646
|
||||
msgid "Undo"
|
||||
msgstr "Rückgängig"
|
||||
|
||||
@@ -1052,12 +1052,12 @@ msgid "Location"
|
||||
msgstr "Ort"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1256
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:949
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:995
|
||||
msgid "Open With…"
|
||||
msgstr "Öffnen mit …"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1263
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2503
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2530
|
||||
msgctxt "verb"
|
||||
msgid "Play"
|
||||
msgstr "Abspielen"
|
||||
@@ -1090,7 +1090,7 @@ msgid "Versions…"
|
||||
msgstr "Versionen …"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1302
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:983
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1029
|
||||
msgid "Details"
|
||||
msgstr "Details"
|
||||
|
||||
@@ -1352,7 +1352,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:658
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:661
|
||||
msgctxt "verb"
|
||||
msgid "View"
|
||||
msgstr "Anzeigen"
|
||||
@@ -2395,255 +2395,261 @@ msgid "This photo carries no metadata."
|
||||
msgstr "Dieses Foto enthält keine Metadaten."
|
||||
|
||||
#. Translators: a photo's pixel dimensions, such as "4032 × 3024".
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:426
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:441
|
||||
#, rust-format
|
||||
msgid "{width} × {height}"
|
||||
msgstr "{width} × {height}"
|
||||
|
||||
#. Translators: label of a photo's pixel dimensions in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:429
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:444
|
||||
msgid "Dimensions"
|
||||
msgstr "Abmessungen"
|
||||
|
||||
#. Translators: label of when a photo was taken, in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:433
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:448
|
||||
msgctxt "photo property"
|
||||
msgid "Taken"
|
||||
msgstr "Aufgenommen"
|
||||
|
||||
#. Translators: label of the camera model in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:443
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:453
|
||||
msgid "Camera"
|
||||
msgstr "Kamera"
|
||||
|
||||
#. Translators: label of the lens model in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:447
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:457
|
||||
msgid "Lens"
|
||||
msgstr "Objektiv"
|
||||
|
||||
#. Translators: a photo's ISO sensitivity, such as "ISO 400".
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:472
|
||||
#, rust-format
|
||||
msgid "ISO {value}"
|
||||
msgstr "ISO {value}"
|
||||
|
||||
#. Translators: label of aperture, shutter speed, ISO and focal length in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:461
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:484
|
||||
msgid "Exposure"
|
||||
msgstr "Belichtung"
|
||||
|
||||
#. Translators: label of where a photo was taken, in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:469
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:492
|
||||
msgctxt "photo property"
|
||||
msgid "Location"
|
||||
msgstr "Ort"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:472
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:495
|
||||
#, rust-format
|
||||
msgid "{latitude}, {longitude}"
|
||||
msgstr "{latitude}, {longitude}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:639
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:685
|
||||
msgid "Save a Copy"
|
||||
msgstr "Kopie speichern"
|
||||
|
||||
#. Translators: {name} is the saved file's name.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:660
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:706
|
||||
#, rust-format
|
||||
msgid "Saved “{name}”"
|
||||
msgstr "„{name}“ gespeichert"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:662
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:665
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:708
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:711
|
||||
msgid "Couldn't save the copy"
|
||||
msgstr "Die Kopie konnte nicht gespeichert werden"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:666
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:712
|
||||
msgid "The copy was interrupted."
|
||||
msgstr "Das Kopieren wurde unterbrochen."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:790
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:795
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:836
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:841
|
||||
#, rust-format
|
||||
msgid "{position} of {total}"
|
||||
msgstr "{position} von {total}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:800
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:846
|
||||
#, rust-format
|
||||
msgid "{position} of {loaded}+"
|
||||
msgstr "{position} von {loaded}+"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:828
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:874
|
||||
msgid "Photo"
|
||||
msgstr "Foto"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:875
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:921
|
||||
msgid "Previous (←)"
|
||||
msgstr "Zurück (←)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:889
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:935
|
||||
msgid "Next (→)"
|
||||
msgstr "Weiter (→)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:927
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:973
|
||||
msgid "Details (i)"
|
||||
msgstr "Details (i)"
|
||||
|
||||
#. Translators: tooltip of the star button that marks a photo as a favorite.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:936
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:982
|
||||
msgctxt "verb"
|
||||
msgid "Favorite"
|
||||
msgstr "Als Favorit markieren"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:944
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:990
|
||||
msgid "Other files of this photo"
|
||||
msgstr "Andere Dateien dieses Fotos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:947
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:993
|
||||
msgid "Save a Copy…"
|
||||
msgstr "Kopie speichern …"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:948
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:994
|
||||
msgid "Move to Trash (Delete)"
|
||||
msgstr "In den Papierkorb verschieben (Entf)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:950
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:996
|
||||
msgid "Close (Esc)"
|
||||
msgstr "Schließen (Esc)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:973
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1019
|
||||
msgid "Show on map"
|
||||
msgstr "Auf Karte anzeigen"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:991
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1037
|
||||
msgid "Hide details"
|
||||
msgstr "Details ausblenden"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1250
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2564
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2568
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1299
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2591
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2595
|
||||
msgid "Couldn't change the favorite"
|
||||
msgstr "Favorit konnte nicht geändert werden"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:393
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:471
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:395
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:474
|
||||
msgid "Upload photos"
|
||||
msgstr "Fotos hochladen"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:398
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:400
|
||||
#: 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:438
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:569
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:441
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:572
|
||||
msgid "Jump to a month"
|
||||
msgstr "Zu einem Monat springen"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:455
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:458
|
||||
msgid "Back to albums"
|
||||
msgstr "Zurück zu den Alben"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:467
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:470
|
||||
msgctxt "verb"
|
||||
msgid "Upload"
|
||||
msgstr "Hochladen"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:480
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:483
|
||||
msgid "Import a Google Photos Takeout export"
|
||||
msgstr "Einen Google-Photos-Takeout-Export importieren"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:490
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:499
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1509
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:493
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:502
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1512
|
||||
msgid "Select photos"
|
||||
msgstr "Fotos auswählen"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:510
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2521
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:513
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2548
|
||||
msgid "Add to Album…"
|
||||
msgstr "Zum Album hinzufügen …"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:516
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:519
|
||||
msgid "Leave selection (Esc)"
|
||||
msgstr "Auswahl verlassen (Esc)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:560
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:563
|
||||
msgid "Show only favorites"
|
||||
msgstr "Nur Favoriten anzeigen"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:567
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:770
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:570
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:773
|
||||
msgid "All dates"
|
||||
msgstr "Alle Zeiträume"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:587
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:590
|
||||
msgid "Timeline"
|
||||
msgstr "Zeitleiste"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:591
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:594
|
||||
msgid "Albums"
|
||||
msgstr "Alben"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:657
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:660
|
||||
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:746
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:749
|
||||
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:777
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:780
|
||||
#, 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:814
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:817
|
||||
msgctxt "photo filter"
|
||||
msgid "All"
|
||||
msgstr "Alle"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:815
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:818
|
||||
msgctxt "photo filter"
|
||||
msgid "Photos"
|
||||
msgstr "Fotos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:816
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:819
|
||||
msgctxt "photo filter"
|
||||
msgid "Videos"
|
||||
msgstr "Videos"
|
||||
|
||||
#. Translators: a Photos filter tab for raw camera files.
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:818
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:821
|
||||
msgctxt "photo filter"
|
||||
msgid "Raw"
|
||||
msgstr "RAW"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1091
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1094
|
||||
msgid "Select Photo to Upload"
|
||||
msgstr "Foto zum Hochladen auswählen"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1095
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1098
|
||||
#: crates/pdfs-gui/src/prompt.rs:60
|
||||
msgid "Images"
|
||||
msgstr "Bilder"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1151
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1154
|
||||
msgid "Photo uploaded"
|
||||
msgstr "Foto hochgeladen"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1156
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1164
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1159
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1167
|
||||
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:1379
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1382
|
||||
msgid "RAW"
|
||||
msgstr "RAW"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1553
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1556
|
||||
msgid "Move this photo to Trash?"
|
||||
msgstr "Dieses Foto in den Papierkorb verschieben?"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1555
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1558
|
||||
#, 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."
|
||||
@@ -2653,14 +2659,14 @@ msgstr[1] ""
|
||||
"Dieses Foto in den Papierkorb verschieben? Es ist als {n} Dateien "
|
||||
"gespeichert."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1561
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1564
|
||||
#, 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:1568
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1571
|
||||
#, 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."
|
||||
@@ -2671,15 +2677,15 @@ msgstr[1] ""
|
||||
"{n} Fotos in den Papierkorb verschieben? Sie sind als {files} Dateien "
|
||||
"gespeichert."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1626
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1629
|
||||
msgid "The server refused."
|
||||
msgstr "Der Server hat abgelehnt."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1629
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1632
|
||||
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:1638
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1641
|
||||
#, rust-format
|
||||
msgid "Moved {n} photo to Trash"
|
||||
msgid_plural "Moved {n} photos to Trash"
|
||||
@@ -2687,7 +2693,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:2144
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2171
|
||||
#, rust-format
|
||||
msgid "{count} video"
|
||||
msgid_plural "{count} videos"
|
||||
@@ -2695,7 +2701,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:2146
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2173
|
||||
#, rust-format
|
||||
msgid "{count} raw photo"
|
||||
msgid_plural "{count} raw photos"
|
||||
@@ -2703,169 +2709,169 @@ 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:2148
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2175
|
||||
#, 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:2175
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2196
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2202
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2223
|
||||
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:2193
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2220
|
||||
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:2214
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2241
|
||||
msgid "%Y-%m-%d %H:%M:%S"
|
||||
msgstr "%d.%m.%Y %H:%M:%S"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2218
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2220
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2245
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2247
|
||||
msgid "Unknown Date"
|
||||
msgstr "Unbekanntes Datum"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2249
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2276
|
||||
msgid "No photos yet"
|
||||
msgstr "Noch keine Fotos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2250
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2277
|
||||
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:2253
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2280
|
||||
msgid "No favorites yet"
|
||||
msgstr "Noch keine Favoriten"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2254
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2281
|
||||
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:2259
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2286
|
||||
#, rust-format
|
||||
msgid "No favorite videos in {month}"
|
||||
msgstr "Keine favorisierten Videos im {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2260
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2287
|
||||
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:2262
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2289
|
||||
#, rust-format
|
||||
msgid "No favorite raw files in {month}"
|
||||
msgstr "Keine favorisierten RAW-Dateien im {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2263
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2290
|
||||
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:2265
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2292
|
||||
#, rust-format
|
||||
msgid "No favorite photos in {month}"
|
||||
msgstr "Keine favorisierten Fotos im {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2266
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2293
|
||||
msgid "No favorite photos"
|
||||
msgstr "Keine favorisierten Fotos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2268
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2295
|
||||
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:2273
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2300
|
||||
#, rust-format
|
||||
msgid "No videos in {month}"
|
||||
msgstr "Keine Videos im {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2274
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2301
|
||||
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:2276
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2303
|
||||
#, rust-format
|
||||
msgid "No raw files in {month}"
|
||||
msgstr "Keine RAW-Dateien im {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2277
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2304
|
||||
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:2279
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2306
|
||||
#, rust-format
|
||||
msgid "No photos in {month}"
|
||||
msgstr "Keine Fotos im {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2280
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2307
|
||||
msgid "No photos"
|
||||
msgstr "Keine Fotos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2282
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2309
|
||||
msgid "Try another filter or month."
|
||||
msgstr "Einen anderen Filter oder Monat wählen."
|
||||
|
||||
#. Translators: a check item in a photo's menu, on while the photo is a favorite.
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2510
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2537
|
||||
msgctxt "state"
|
||||
msgid "Favorite"
|
||||
msgstr "Favorit"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2515
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2542
|
||||
msgctxt "verb"
|
||||
msgid "Select"
|
||||
msgstr "Auswählen"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2527
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2554
|
||||
msgid "Remove from Album"
|
||||
msgstr "Aus Album entfernen"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2533
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2560
|
||||
msgid "Move to Trash…"
|
||||
msgstr "In den Papierkorb verschieben …"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2557
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2584
|
||||
msgid "Added to Favorites"
|
||||
msgstr "Zu Favoriten hinzugefügt"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2559
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2586
|
||||
msgid "Removed from Favorites"
|
||||
msgstr "Aus Favoriten entfernt"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2588
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2615
|
||||
msgid "Loading photos…"
|
||||
msgstr "Fotos werden geladen …"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2589
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2616
|
||||
msgid "Reading your Proton Drive timeline."
|
||||
msgstr "Proton-Drive-Zeitleiste wird gelesen."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2676
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2703
|
||||
msgid "Empty album"
|
||||
msgstr "Leeres Album"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2677
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2704
|
||||
msgid "This album has no photos in it."
|
||||
msgstr "Dieses Album enthält keine Fotos."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2718
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2736
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2745
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2763
|
||||
msgid "Couldn't load more photos"
|
||||
msgstr "Weitere Fotos konnten nicht geladen werden"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2723
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2730
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2750
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2757
|
||||
msgid "Couldn't load photos"
|
||||
msgstr "Fotos konnten nicht geladen werden"
|
||||
|
||||
|
||||
+148
-142
@@ -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-23 10:39+0200\n"
|
||||
"POT-Creation-Date: 2026-09-23 20:16+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"
|
||||
@@ -23,7 +23,7 @@ msgstr "My files"
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:830 crates/pdfs-gui/src/app/main.rs:1415
|
||||
#: crates/pdfs-gui/src/app/pages/albums.rs:623
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:674
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:677
|
||||
msgid "Photos"
|
||||
msgstr "Photos"
|
||||
|
||||
@@ -151,7 +151,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:313
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1581
|
||||
#: 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
|
||||
@@ -238,9 +238,9 @@ msgstr "Rename"
|
||||
#: 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:504
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1575
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1579
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:507
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1582
|
||||
#: crates/pdfs-gui/src/app/widgets/details.rs:162
|
||||
msgid "Move to Trash"
|
||||
msgstr "Move to Trash"
|
||||
@@ -326,7 +326,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:383
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:385
|
||||
#: 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
|
||||
@@ -362,7 +362,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:292
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2731
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2758
|
||||
#: 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."
|
||||
@@ -374,7 +374,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:2765
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2792
|
||||
#: 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
|
||||
@@ -386,7 +386,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:2766
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2793
|
||||
#: 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
|
||||
@@ -398,7 +398,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:2774
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2801
|
||||
#: 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
|
||||
@@ -411,7 +411,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:2775
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2802
|
||||
#: 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
|
||||
@@ -419,12 +419,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:2184
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2211
|
||||
msgid "Today"
|
||||
msgstr "Today"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/activity.rs:422
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2189
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2216
|
||||
msgid "Yesterday"
|
||||
msgstr "Yesterday"
|
||||
|
||||
@@ -479,7 +479,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:2228
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2255
|
||||
msgid "%H:%M"
|
||||
msgstr "%H:%M"
|
||||
|
||||
@@ -585,12 +585,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:2646
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2673
|
||||
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:2647
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2674
|
||||
msgid "This Proton account doesn't have Photos enabled."
|
||||
msgstr "This Proton account doesn't have Photos enabled."
|
||||
|
||||
@@ -623,7 +623,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:2505
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2532
|
||||
#: 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
|
||||
@@ -688,11 +688,11 @@ msgstr "Couldn't create the album"
|
||||
#: 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:1245
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1165
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1657
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2569
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2737
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1294
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1168
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1660
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2596
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2764
|
||||
#: 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
|
||||
@@ -756,7 +756,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:640
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:643
|
||||
msgid "New Album…"
|
||||
msgstr "New Album…"
|
||||
|
||||
@@ -947,7 +947,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:1511
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1514
|
||||
#, rust-format
|
||||
msgid "{n} selected"
|
||||
msgid_plural "{n} selected"
|
||||
@@ -956,8 +956,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:1650
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1656
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1653
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1659
|
||||
msgid "Couldn't move to Trash"
|
||||
msgstr "Couldn't move to Trash"
|
||||
|
||||
@@ -991,7 +991,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:1643
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1646
|
||||
msgid "Undo"
|
||||
msgstr "Undo"
|
||||
|
||||
@@ -1043,12 +1043,12 @@ msgid "Location"
|
||||
msgstr "Location"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1256
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:949
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:995
|
||||
msgid "Open With…"
|
||||
msgstr "Open With…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1263
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2503
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2530
|
||||
msgctxt "verb"
|
||||
msgid "Play"
|
||||
msgstr "Play"
|
||||
@@ -1081,7 +1081,7 @@ msgid "Versions…"
|
||||
msgstr "Versions…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1302
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:983
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1029
|
||||
msgid "Details"
|
||||
msgstr "Details"
|
||||
|
||||
@@ -1341,7 +1341,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:658
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:661
|
||||
msgctxt "verb"
|
||||
msgid "View"
|
||||
msgstr "View"
|
||||
@@ -2361,284 +2361,290 @@ msgid "This photo carries no metadata."
|
||||
msgstr "This photo carries no metadata."
|
||||
|
||||
#. Translators: a photo's pixel dimensions, such as "4032 × 3024".
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:426
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:441
|
||||
#, rust-format
|
||||
msgid "{width} × {height}"
|
||||
msgstr "{width} × {height}"
|
||||
|
||||
#. Translators: label of a photo's pixel dimensions in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:429
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:444
|
||||
msgid "Dimensions"
|
||||
msgstr "Dimensions"
|
||||
|
||||
#. Translators: label of when a photo was taken, in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:433
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:448
|
||||
msgctxt "photo property"
|
||||
msgid "Taken"
|
||||
msgstr "Taken"
|
||||
|
||||
#. Translators: label of the camera model in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:443
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:453
|
||||
msgid "Camera"
|
||||
msgstr "Camera"
|
||||
|
||||
#. Translators: label of the lens model in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:447
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:457
|
||||
msgid "Lens"
|
||||
msgstr "Lens"
|
||||
|
||||
#. Translators: a photo's ISO sensitivity, such as "ISO 400".
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:472
|
||||
#, rust-format
|
||||
msgid "ISO {value}"
|
||||
msgstr "ISO {value}"
|
||||
|
||||
#. Translators: label of aperture, shutter speed, ISO and focal length in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:461
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:484
|
||||
msgid "Exposure"
|
||||
msgstr "Exposure"
|
||||
|
||||
#. Translators: label of where a photo was taken, in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:469
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:492
|
||||
msgctxt "photo property"
|
||||
msgid "Location"
|
||||
msgstr "Location"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:472
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:495
|
||||
#, rust-format
|
||||
msgid "{latitude}, {longitude}"
|
||||
msgstr "{latitude}, {longitude}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:639
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:685
|
||||
msgid "Save a Copy"
|
||||
msgstr "Save a Copy"
|
||||
|
||||
#. Translators: {name} is the saved file's name.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:660
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:706
|
||||
#, rust-format
|
||||
msgid "Saved “{name}”"
|
||||
msgstr "Saved “{name}”"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:662
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:665
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:708
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:711
|
||||
msgid "Couldn't save the copy"
|
||||
msgstr "Couldn't save the copy"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:666
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:712
|
||||
msgid "The copy was interrupted."
|
||||
msgstr "The copy was interrupted."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:790
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:795
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:836
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:841
|
||||
#, rust-format
|
||||
msgid "{position} of {total}"
|
||||
msgstr "{position} of {total}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:800
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:846
|
||||
#, rust-format
|
||||
msgid "{position} of {loaded}+"
|
||||
msgstr "{position} of {loaded}+"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:828
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:874
|
||||
msgid "Photo"
|
||||
msgstr "Photo"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:875
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:921
|
||||
msgid "Previous (←)"
|
||||
msgstr "Previous (←)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:889
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:935
|
||||
msgid "Next (→)"
|
||||
msgstr "Next (→)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:927
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:973
|
||||
msgid "Details (i)"
|
||||
msgstr "Details (i)"
|
||||
|
||||
#. Translators: tooltip of the star button that marks a photo as a favorite.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:936
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:982
|
||||
msgctxt "verb"
|
||||
msgid "Favorite"
|
||||
msgstr "Favourite"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:944
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:990
|
||||
msgid "Other files of this photo"
|
||||
msgstr "Other files of this photo"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:947
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:993
|
||||
msgid "Save a Copy…"
|
||||
msgstr "Save a Copy…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:948
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:994
|
||||
msgid "Move to Trash (Delete)"
|
||||
msgstr "Move to Trash (Delete)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:950
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:996
|
||||
msgid "Close (Esc)"
|
||||
msgstr "Close (Esc)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:973
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1019
|
||||
msgid "Show on map"
|
||||
msgstr "Show on map"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:991
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1037
|
||||
msgid "Hide details"
|
||||
msgstr "Hide details"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1250
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2564
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2568
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1299
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2591
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2595
|
||||
msgid "Couldn't change the favorite"
|
||||
msgstr "Couldn't change the favourite"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:393
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:471
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:395
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:474
|
||||
msgid "Upload photos"
|
||||
msgstr "Upload photos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:398
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:400
|
||||
#: 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:438
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:569
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:441
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:572
|
||||
msgid "Jump to a month"
|
||||
msgstr "Jump to a month"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:455
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:458
|
||||
msgid "Back to albums"
|
||||
msgstr "Back to albums"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:467
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:470
|
||||
msgctxt "verb"
|
||||
msgid "Upload"
|
||||
msgstr "Upload"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:480
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:483
|
||||
msgid "Import a Google Photos Takeout export"
|
||||
msgstr "Import a Google Photos Takeout export"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:490
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:499
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1509
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:493
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:502
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1512
|
||||
msgid "Select photos"
|
||||
msgstr "Select photos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:510
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2521
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:513
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2548
|
||||
msgid "Add to Album…"
|
||||
msgstr "Add to Album…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:516
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:519
|
||||
msgid "Leave selection (Esc)"
|
||||
msgstr "Leave selection (Esc)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:560
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:563
|
||||
msgid "Show only favorites"
|
||||
msgstr "Show only favourites"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:567
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:770
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:570
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:773
|
||||
msgid "All dates"
|
||||
msgstr "All dates"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:587
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:590
|
||||
msgid "Timeline"
|
||||
msgstr "Timeline"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:591
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:594
|
||||
msgid "Albums"
|
||||
msgstr "Albums"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:657
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:660
|
||||
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:746
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:749
|
||||
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:777
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:780
|
||||
#, 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:814
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:817
|
||||
msgctxt "photo filter"
|
||||
msgid "All"
|
||||
msgstr "All"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:815
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:818
|
||||
msgctxt "photo filter"
|
||||
msgid "Photos"
|
||||
msgstr "Photos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:816
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:819
|
||||
msgctxt "photo filter"
|
||||
msgid "Videos"
|
||||
msgstr "Videos"
|
||||
|
||||
#. Translators: a Photos filter tab for raw camera files.
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:818
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:821
|
||||
msgctxt "photo filter"
|
||||
msgid "Raw"
|
||||
msgstr "Raw"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1091
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1094
|
||||
msgid "Select Photo to Upload"
|
||||
msgstr "Select Photo to Upload"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1095
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1098
|
||||
#: crates/pdfs-gui/src/prompt.rs:60
|
||||
msgid "Images"
|
||||
msgstr "Images"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1151
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1154
|
||||
msgid "Photo uploaded"
|
||||
msgstr "Photo uploaded"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1156
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1164
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1159
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1167
|
||||
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:1379
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1382
|
||||
msgid "RAW"
|
||||
msgstr "RAW"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1553
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1556
|
||||
msgid "Move this photo to Trash?"
|
||||
msgstr "Move this photo to Trash?"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1555
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1558
|
||||
#, 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:1561
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1564
|
||||
#, 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:1568
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1571
|
||||
#, 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:1626
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1629
|
||||
msgid "The server refused."
|
||||
msgstr "The server refused."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1629
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1632
|
||||
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:1638
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1641
|
||||
#, rust-format
|
||||
msgid "Moved {n} photo to Trash"
|
||||
msgid_plural "Moved {n} photos to Trash"
|
||||
@@ -2646,7 +2652,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:2144
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2171
|
||||
#, rust-format
|
||||
msgid "{count} video"
|
||||
msgid_plural "{count} videos"
|
||||
@@ -2654,7 +2660,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:2146
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2173
|
||||
#, rust-format
|
||||
msgid "{count} raw photo"
|
||||
msgid_plural "{count} raw photos"
|
||||
@@ -2662,167 +2668,167 @@ 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:2148
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2175
|
||||
#, 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:2175
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2196
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2202
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2223
|
||||
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:2193
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2220
|
||||
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:2214
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2241
|
||||
msgid "%Y-%m-%d %H:%M:%S"
|
||||
msgstr "%Y-%m-%d %H:%M:%S"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2218
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2220
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2245
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2247
|
||||
msgid "Unknown Date"
|
||||
msgstr "Unknown Date"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2249
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2276
|
||||
msgid "No photos yet"
|
||||
msgstr "No photos yet"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2250
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2277
|
||||
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:2253
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2280
|
||||
msgid "No favorites yet"
|
||||
msgstr "No favourites yet"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2254
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2281
|
||||
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:2259
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2286
|
||||
#, rust-format
|
||||
msgid "No favorite videos in {month}"
|
||||
msgstr "No favourite videos in {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2260
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2287
|
||||
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:2262
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2289
|
||||
#, rust-format
|
||||
msgid "No favorite raw files in {month}"
|
||||
msgstr "No favourite raw files in {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2263
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2290
|
||||
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:2265
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2292
|
||||
#, rust-format
|
||||
msgid "No favorite photos in {month}"
|
||||
msgstr "No favourite photos in {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2266
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2293
|
||||
msgid "No favorite photos"
|
||||
msgstr "No favourite photos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2268
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2295
|
||||
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:2273
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2300
|
||||
#, rust-format
|
||||
msgid "No videos in {month}"
|
||||
msgstr "No videos in {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2274
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2301
|
||||
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:2276
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2303
|
||||
#, rust-format
|
||||
msgid "No raw files in {month}"
|
||||
msgstr "No raw files in {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2277
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2304
|
||||
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:2279
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2306
|
||||
#, rust-format
|
||||
msgid "No photos in {month}"
|
||||
msgstr "No photos in {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2280
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2307
|
||||
msgid "No photos"
|
||||
msgstr "No photos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2282
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2309
|
||||
msgid "Try another filter or month."
|
||||
msgstr "Try another filter or month."
|
||||
|
||||
#. Translators: a check item in a photo's menu, on while the photo is a favorite.
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2510
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2537
|
||||
msgctxt "state"
|
||||
msgid "Favorite"
|
||||
msgstr "Favourite"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2515
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2542
|
||||
msgctxt "verb"
|
||||
msgid "Select"
|
||||
msgstr "Select"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2527
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2554
|
||||
msgid "Remove from Album"
|
||||
msgstr "Remove from Album"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2533
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2560
|
||||
msgid "Move to Trash…"
|
||||
msgstr "Move to Trash…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2557
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2584
|
||||
msgid "Added to Favorites"
|
||||
msgstr "Added to Favourites"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2559
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2586
|
||||
msgid "Removed from Favorites"
|
||||
msgstr "Removed from Favourites"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2588
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2615
|
||||
msgid "Loading photos…"
|
||||
msgstr "Loading photos…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2589
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2616
|
||||
msgid "Reading your Proton Drive timeline."
|
||||
msgstr "Reading your Proton Drive timeline."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2676
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2703
|
||||
msgid "Empty album"
|
||||
msgstr "Empty album"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2677
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2704
|
||||
msgid "This album has no photos in it."
|
||||
msgstr "This album has no photos in it."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2718
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2736
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2745
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2763
|
||||
msgid "Couldn't load more photos"
|
||||
msgstr "Couldn't load more photos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2723
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2730
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2750
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2757
|
||||
msgid "Couldn't load photos"
|
||||
msgstr "Couldn't load photos"
|
||||
|
||||
|
||||
@@ -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-23 10:39+0200\n"
|
||||
"POT-Creation-Date: 2026-09-23 20:16+0200\n"
|
||||
"PO-Revision-Date: 2026-09-23 12:00+0200\n"
|
||||
"Last-Translator: Proton Drive for Linux contributors\n"
|
||||
"Language-Team: Spanish\n"
|
||||
@@ -23,7 +23,7 @@ msgstr "Mis archivos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:830 crates/pdfs-gui/src/app/main.rs:1415
|
||||
#: crates/pdfs-gui/src/app/pages/albums.rs:623
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:674
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:677
|
||||
msgid "Photos"
|
||||
msgstr "Fotos"
|
||||
|
||||
@@ -151,7 +151,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:313
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1581
|
||||
#: 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
|
||||
@@ -238,9 +238,9 @@ msgstr "Renombrar"
|
||||
#: 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:504
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1575
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1579
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:507
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1582
|
||||
#: crates/pdfs-gui/src/app/widgets/details.rs:162
|
||||
msgid "Move to Trash"
|
||||
msgstr "Mover a la papelera"
|
||||
@@ -326,7 +326,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:383
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:385
|
||||
#: 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
|
||||
@@ -362,7 +362,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:292
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2731
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2758
|
||||
#: 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."
|
||||
@@ -374,7 +374,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:2765
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2792
|
||||
#: 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
|
||||
@@ -386,7 +386,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:2766
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2793
|
||||
#: 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
|
||||
@@ -398,7 +398,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:2774
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2801
|
||||
#: 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
|
||||
@@ -411,7 +411,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:2775
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2802
|
||||
#: 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
|
||||
@@ -419,12 +419,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:2184
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2211
|
||||
msgid "Today"
|
||||
msgstr "Hoy"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/activity.rs:422
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2189
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2216
|
||||
msgid "Yesterday"
|
||||
msgstr "Ayer"
|
||||
|
||||
@@ -482,7 +482,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:2228
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2255
|
||||
msgid "%H:%M"
|
||||
msgstr "%H:%M"
|
||||
|
||||
@@ -588,12 +588,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:2646
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2673
|
||||
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:2647
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2674
|
||||
msgid "This Proton account doesn't have Photos enabled."
|
||||
msgstr "Esta cuenta de Proton no tiene Fotos activado."
|
||||
|
||||
@@ -626,7 +626,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:2505
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2532
|
||||
#: 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
|
||||
@@ -691,11 +691,11 @@ msgstr "No se pudo crear el álbum"
|
||||
#: 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:1245
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1165
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1657
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2569
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2737
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1294
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1168
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1660
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2596
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2764
|
||||
#: 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
|
||||
@@ -759,7 +759,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:640
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:643
|
||||
msgid "New Album…"
|
||||
msgstr "Álbum nuevo…"
|
||||
|
||||
@@ -950,7 +950,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:1511
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1514
|
||||
#, rust-format
|
||||
msgid "{n} selected"
|
||||
msgid_plural "{n} selected"
|
||||
@@ -959,8 +959,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:1650
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1656
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1653
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1659
|
||||
msgid "Couldn't move to Trash"
|
||||
msgstr "No se pudo mover a la papelera"
|
||||
|
||||
@@ -995,7 +995,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:1643
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1646
|
||||
msgid "Undo"
|
||||
msgstr "Deshacer"
|
||||
|
||||
@@ -1047,12 +1047,12 @@ msgid "Location"
|
||||
msgstr "Ubicación"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1256
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:949
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:995
|
||||
msgid "Open With…"
|
||||
msgstr "Abrir con…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1263
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2503
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2530
|
||||
msgctxt "verb"
|
||||
msgid "Play"
|
||||
msgstr "Reproducir"
|
||||
@@ -1085,7 +1085,7 @@ msgid "Versions…"
|
||||
msgstr "Versiones…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1302
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:983
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1029
|
||||
msgid "Details"
|
||||
msgstr "Detalles"
|
||||
|
||||
@@ -1348,7 +1348,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:658
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:661
|
||||
msgctxt "verb"
|
||||
msgid "View"
|
||||
msgstr "Ver"
|
||||
@@ -2389,269 +2389,275 @@ msgid "This photo carries no metadata."
|
||||
msgstr "Esta foto no contiene metadatos."
|
||||
|
||||
#. Translators: a photo's pixel dimensions, such as "4032 × 3024".
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:426
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:441
|
||||
#, rust-format
|
||||
msgid "{width} × {height}"
|
||||
msgstr "{width} × {height}"
|
||||
|
||||
#. Translators: label of a photo's pixel dimensions in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:429
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:444
|
||||
msgid "Dimensions"
|
||||
msgstr "Dimensiones"
|
||||
|
||||
#. Translators: label of when a photo was taken, in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:433
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:448
|
||||
msgctxt "photo property"
|
||||
msgid "Taken"
|
||||
msgstr "Tomada"
|
||||
|
||||
#. Translators: label of the camera model in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:443
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:453
|
||||
msgid "Camera"
|
||||
msgstr "Cámara"
|
||||
|
||||
#. Translators: label of the lens model in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:447
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:457
|
||||
msgid "Lens"
|
||||
msgstr "Objetivo"
|
||||
|
||||
#. Translators: a photo's ISO sensitivity, such as "ISO 400".
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:472
|
||||
#, rust-format
|
||||
msgid "ISO {value}"
|
||||
msgstr "ISO {value}"
|
||||
|
||||
#. Translators: label of aperture, shutter speed, ISO and focal length in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:461
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:484
|
||||
msgid "Exposure"
|
||||
msgstr "Exposición"
|
||||
|
||||
#. Translators: label of where a photo was taken, in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:469
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:492
|
||||
msgctxt "photo property"
|
||||
msgid "Location"
|
||||
msgstr "Ubicación"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:472
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:495
|
||||
#, rust-format
|
||||
msgid "{latitude}, {longitude}"
|
||||
msgstr "{latitude}, {longitude}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:639
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:685
|
||||
msgid "Save a Copy"
|
||||
msgstr "Guardar una copia"
|
||||
|
||||
#. Translators: {name} is the saved file's name.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:660
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:706
|
||||
#, rust-format
|
||||
msgid "Saved “{name}”"
|
||||
msgstr "Se guardó “{name}”"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:662
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:665
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:708
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:711
|
||||
msgid "Couldn't save the copy"
|
||||
msgstr "No se pudo guardar la copia"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:666
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:712
|
||||
msgid "The copy was interrupted."
|
||||
msgstr "Se interrumpió la copia."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:790
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:795
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:836
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:841
|
||||
#, rust-format
|
||||
msgid "{position} of {total}"
|
||||
msgstr "{position} de {total}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:800
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:846
|
||||
#, rust-format
|
||||
msgid "{position} of {loaded}+"
|
||||
msgstr "{position} de {loaded}+"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:828
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:874
|
||||
msgid "Photo"
|
||||
msgstr "Foto"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:875
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:921
|
||||
msgid "Previous (←)"
|
||||
msgstr "Anterior (←)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:889
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:935
|
||||
msgid "Next (→)"
|
||||
msgstr "Siguiente (→)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:927
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:973
|
||||
msgid "Details (i)"
|
||||
msgstr "Detalles (i)"
|
||||
|
||||
#. Translators: tooltip of the star button that marks a photo as a favorite.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:936
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:982
|
||||
msgctxt "verb"
|
||||
msgid "Favorite"
|
||||
msgstr "Marcar como favorita"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:944
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:990
|
||||
msgid "Other files of this photo"
|
||||
msgstr "Otros archivos de esta foto"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:947
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:993
|
||||
msgid "Save a Copy…"
|
||||
msgstr "Guardar una copia…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:948
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:994
|
||||
msgid "Move to Trash (Delete)"
|
||||
msgstr "Mover a la papelera (Supr)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:950
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:996
|
||||
msgid "Close (Esc)"
|
||||
msgstr "Cerrar (Esc)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:973
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1019
|
||||
msgid "Show on map"
|
||||
msgstr "Mostrar en el mapa"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:991
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1037
|
||||
msgid "Hide details"
|
||||
msgstr "Ocultar detalles"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1250
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2564
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2568
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1299
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2591
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2595
|
||||
msgid "Couldn't change the favorite"
|
||||
msgstr "No se pudo cambiar el favorito"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:393
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:471
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:395
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:474
|
||||
msgid "Upload photos"
|
||||
msgstr "Subir fotos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:398
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:400
|
||||
#: 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:438
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:569
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:441
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:572
|
||||
msgid "Jump to a month"
|
||||
msgstr "Saltar a un mes"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:455
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:458
|
||||
msgid "Back to albums"
|
||||
msgstr "Volver a los álbumes"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:467
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:470
|
||||
msgctxt "verb"
|
||||
msgid "Upload"
|
||||
msgstr "Subir"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:480
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:483
|
||||
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:490
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:499
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1509
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:493
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:502
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1512
|
||||
msgid "Select photos"
|
||||
msgstr "Seleccionar fotos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:510
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2521
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:513
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2548
|
||||
msgid "Add to Album…"
|
||||
msgstr "Añadir al álbum…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:516
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:519
|
||||
msgid "Leave selection (Esc)"
|
||||
msgstr "Salir de la selección (Esc)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:560
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:563
|
||||
msgid "Show only favorites"
|
||||
msgstr "Mostrar solo favoritas"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:567
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:770
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:570
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:773
|
||||
msgid "All dates"
|
||||
msgstr "Todas las fechas"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:587
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:590
|
||||
msgid "Timeline"
|
||||
msgstr "Cronología"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:591
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:594
|
||||
msgid "Albums"
|
||||
msgstr "Álbumes"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:657
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:660
|
||||
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:746
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:749
|
||||
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:777
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:780
|
||||
#, 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:814
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:817
|
||||
msgctxt "photo filter"
|
||||
msgid "All"
|
||||
msgstr "Todo"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:815
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:818
|
||||
msgctxt "photo filter"
|
||||
msgid "Photos"
|
||||
msgstr "Fotos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:816
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:819
|
||||
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:818
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:821
|
||||
msgctxt "photo filter"
|
||||
msgid "Raw"
|
||||
msgstr "RAW"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1091
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1094
|
||||
msgid "Select Photo to Upload"
|
||||
msgstr "Seleccionar la foto que subir"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1095
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1098
|
||||
#: crates/pdfs-gui/src/prompt.rs:60
|
||||
msgid "Images"
|
||||
msgstr "Imágenes"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1151
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1154
|
||||
msgid "Photo uploaded"
|
||||
msgstr "Foto subida"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1156
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1164
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1159
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1167
|
||||
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:1379
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1382
|
||||
msgid "RAW"
|
||||
msgstr "RAW"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1553
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1556
|
||||
msgid "Move this photo to Trash?"
|
||||
msgstr "¿Mover esta foto a la papelera?"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1555
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1558
|
||||
#, 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:1561
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1564
|
||||
#, 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:1568
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1571
|
||||
#, 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."
|
||||
@@ -2659,15 +2665,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:1626
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1629
|
||||
msgid "The server refused."
|
||||
msgstr "El servidor lo rechazó."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1629
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1632
|
||||
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:1638
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1641
|
||||
#, rust-format
|
||||
msgid "Moved {n} photo to Trash"
|
||||
msgid_plural "Moved {n} photos to Trash"
|
||||
@@ -2675,7 +2681,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:2144
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2171
|
||||
#, rust-format
|
||||
msgid "{count} video"
|
||||
msgid_plural "{count} videos"
|
||||
@@ -2683,7 +2689,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:2146
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2173
|
||||
#, rust-format
|
||||
msgid "{count} raw photo"
|
||||
msgid_plural "{count} raw photos"
|
||||
@@ -2691,169 +2697,169 @@ 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:2148
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2175
|
||||
#, 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:2175
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2196
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2202
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2223
|
||||
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:2193
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2220
|
||||
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:2214
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2241
|
||||
msgid "%Y-%m-%d %H:%M:%S"
|
||||
msgstr "%d/%m/%Y %H:%M:%S"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2218
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2220
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2245
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2247
|
||||
msgid "Unknown Date"
|
||||
msgstr "Fecha desconocida"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2249
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2276
|
||||
msgid "No photos yet"
|
||||
msgstr "Todavía no hay fotos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2250
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2277
|
||||
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:2253
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2280
|
||||
msgid "No favorites yet"
|
||||
msgstr "Todavía no hay favoritas"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2254
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2281
|
||||
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:2259
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2286
|
||||
#, rust-format
|
||||
msgid "No favorite videos in {month}"
|
||||
msgstr "No hay vídeos favoritos en {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2260
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2287
|
||||
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:2262
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2289
|
||||
#, 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:2263
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2290
|
||||
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:2265
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2292
|
||||
#, rust-format
|
||||
msgid "No favorite photos in {month}"
|
||||
msgstr "No hay fotos favoritas en {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2266
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2293
|
||||
msgid "No favorite photos"
|
||||
msgstr "No hay fotos favoritas"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2268
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2295
|
||||
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:2273
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2300
|
||||
#, rust-format
|
||||
msgid "No videos in {month}"
|
||||
msgstr "No hay vídeos en {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2274
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2301
|
||||
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:2276
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2303
|
||||
#, rust-format
|
||||
msgid "No raw files in {month}"
|
||||
msgstr "No hay archivos RAW en {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2277
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2304
|
||||
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:2279
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2306
|
||||
#, rust-format
|
||||
msgid "No photos in {month}"
|
||||
msgstr "No hay fotos en {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2280
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2307
|
||||
msgid "No photos"
|
||||
msgstr "No hay fotos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2282
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2309
|
||||
msgid "Try another filter or month."
|
||||
msgstr "Pruebe con otro filtro u otro mes."
|
||||
|
||||
#. Translators: a check item in a photo's menu, on while the photo is a favorite.
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2510
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2537
|
||||
msgctxt "state"
|
||||
msgid "Favorite"
|
||||
msgstr "Favorita"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2515
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2542
|
||||
msgctxt "verb"
|
||||
msgid "Select"
|
||||
msgstr "Seleccionar"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2527
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2554
|
||||
msgid "Remove from Album"
|
||||
msgstr "Quitar del álbum"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2533
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2560
|
||||
msgid "Move to Trash…"
|
||||
msgstr "Mover a la papelera…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2557
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2584
|
||||
msgid "Added to Favorites"
|
||||
msgstr "Añadida a favoritas"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2559
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2586
|
||||
msgid "Removed from Favorites"
|
||||
msgstr "Quitada de favoritas"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2588
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2615
|
||||
msgid "Loading photos…"
|
||||
msgstr "Cargando fotos…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2589
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2616
|
||||
msgid "Reading your Proton Drive timeline."
|
||||
msgstr "Leyendo su cronología de Proton Drive."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2676
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2703
|
||||
msgid "Empty album"
|
||||
msgstr "Álbum vacío"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2677
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2704
|
||||
msgid "This album has no photos in it."
|
||||
msgstr "Este álbum no tiene fotos."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2718
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2736
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2745
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2763
|
||||
msgid "Couldn't load more photos"
|
||||
msgstr "No se pudieron cargar más fotos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2723
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2730
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2750
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2757
|
||||
msgid "Couldn't load photos"
|
||||
msgstr "No se pudieron cargar las fotos"
|
||||
|
||||
|
||||
@@ -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-23 10:39+0200\n"
|
||||
"POT-Creation-Date: 2026-09-23 20:16+0200\n"
|
||||
"PO-Revision-Date: 2026-09-23 12:00+0200\n"
|
||||
"Last-Translator: Proton Drive for Linux contributors\n"
|
||||
"Language-Team: French\n"
|
||||
@@ -23,7 +23,7 @@ msgstr "Mes fichiers"
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:830 crates/pdfs-gui/src/app/main.rs:1415
|
||||
#: crates/pdfs-gui/src/app/pages/albums.rs:623
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:674
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:677
|
||||
msgid "Photos"
|
||||
msgstr "Photos"
|
||||
|
||||
@@ -152,7 +152,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:313
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1581
|
||||
#: 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
|
||||
@@ -239,9 +239,9 @@ msgstr "Renommer"
|
||||
#: 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:504
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1575
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1579
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:507
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1582
|
||||
#: crates/pdfs-gui/src/app/widgets/details.rs:162
|
||||
msgid "Move to Trash"
|
||||
msgstr "Mettre à la corbeille"
|
||||
@@ -327,7 +327,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:383
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:385
|
||||
#: 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
|
||||
@@ -363,7 +363,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:292
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2731
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2758
|
||||
#: 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."
|
||||
@@ -375,7 +375,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:2765
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2792
|
||||
#: 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
|
||||
@@ -387,7 +387,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:2766
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2793
|
||||
#: 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
|
||||
@@ -399,7 +399,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:2774
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2801
|
||||
#: 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
|
||||
@@ -412,7 +412,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:2775
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2802
|
||||
#: 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
|
||||
@@ -420,12 +420,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:2184
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2211
|
||||
msgid "Today"
|
||||
msgstr "Aujourd’hui"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/activity.rs:422
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2189
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2216
|
||||
msgid "Yesterday"
|
||||
msgstr "Hier"
|
||||
|
||||
@@ -484,7 +484,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:2228
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2255
|
||||
msgid "%H:%M"
|
||||
msgstr "%H:%M"
|
||||
|
||||
@@ -590,12 +590,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:2646
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2673
|
||||
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:2647
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2674
|
||||
msgid "This Proton account doesn't have Photos enabled."
|
||||
msgstr "Photos n’est pas activé pour ce compte Proton."
|
||||
|
||||
@@ -628,7 +628,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:2505
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2532
|
||||
#: 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
|
||||
@@ -693,11 +693,11 @@ msgstr "Impossible de créer l’album"
|
||||
#: 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:1245
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1165
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1657
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2569
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2737
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1294
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1168
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1660
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2596
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2764
|
||||
#: 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
|
||||
@@ -761,7 +761,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:640
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:643
|
||||
msgid "New Album…"
|
||||
msgstr "Nouvel album…"
|
||||
|
||||
@@ -952,7 +952,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:1511
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1514
|
||||
#, rust-format
|
||||
msgid "{n} selected"
|
||||
msgid_plural "{n} selected"
|
||||
@@ -961,8 +961,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:1650
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1656
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1653
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1659
|
||||
msgid "Couldn't move to Trash"
|
||||
msgstr "Impossible de mettre à la corbeille"
|
||||
|
||||
@@ -998,7 +998,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:1643
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1646
|
||||
msgid "Undo"
|
||||
msgstr "Annuler"
|
||||
|
||||
@@ -1050,12 +1050,12 @@ msgid "Location"
|
||||
msgstr "Emplacement"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1256
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:949
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:995
|
||||
msgid "Open With…"
|
||||
msgstr "Ouvrir avec…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1263
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2503
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2530
|
||||
msgctxt "verb"
|
||||
msgid "Play"
|
||||
msgstr "Lire"
|
||||
@@ -1088,7 +1088,7 @@ msgid "Versions…"
|
||||
msgstr "Versions…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1302
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:983
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1029
|
||||
msgid "Details"
|
||||
msgstr "Détails"
|
||||
|
||||
@@ -1351,7 +1351,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:658
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:661
|
||||
msgctxt "verb"
|
||||
msgid "View"
|
||||
msgstr "Afficher"
|
||||
@@ -2395,255 +2395,261 @@ msgid "This photo carries no metadata."
|
||||
msgstr "Cette photo ne contient aucune métadonnée."
|
||||
|
||||
#. Translators: a photo's pixel dimensions, such as "4032 × 3024".
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:426
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:441
|
||||
#, rust-format
|
||||
msgid "{width} × {height}"
|
||||
msgstr "{width} × {height}"
|
||||
|
||||
#. Translators: label of a photo's pixel dimensions in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:429
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:444
|
||||
msgid "Dimensions"
|
||||
msgstr "Dimensions"
|
||||
|
||||
#. Translators: label of when a photo was taken, in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:433
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:448
|
||||
msgctxt "photo property"
|
||||
msgid "Taken"
|
||||
msgstr "Prise de vue"
|
||||
|
||||
#. Translators: label of the camera model in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:443
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:453
|
||||
msgid "Camera"
|
||||
msgstr "Appareil photo"
|
||||
|
||||
#. Translators: label of the lens model in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:447
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:457
|
||||
msgid "Lens"
|
||||
msgstr "Objectif"
|
||||
|
||||
#. Translators: a photo's ISO sensitivity, such as "ISO 400".
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:472
|
||||
#, rust-format
|
||||
msgid "ISO {value}"
|
||||
msgstr "ISO {value}"
|
||||
|
||||
#. Translators: label of aperture, shutter speed, ISO and focal length in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:461
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:484
|
||||
msgid "Exposure"
|
||||
msgstr "Exposition"
|
||||
|
||||
#. Translators: label of where a photo was taken, in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:469
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:492
|
||||
msgctxt "photo property"
|
||||
msgid "Location"
|
||||
msgstr "Lieu"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:472
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:495
|
||||
#, rust-format
|
||||
msgid "{latitude}, {longitude}"
|
||||
msgstr "{latitude}, {longitude}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:639
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:685
|
||||
msgid "Save a Copy"
|
||||
msgstr "Enregistrer une copie"
|
||||
|
||||
#. Translators: {name} is the saved file's name.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:660
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:706
|
||||
#, rust-format
|
||||
msgid "Saved “{name}”"
|
||||
msgstr "« {name} » enregistré"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:662
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:665
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:708
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:711
|
||||
msgid "Couldn't save the copy"
|
||||
msgstr "Impossible d’enregistrer la copie"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:666
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:712
|
||||
msgid "The copy was interrupted."
|
||||
msgstr "La copie a été interrompue."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:790
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:795
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:836
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:841
|
||||
#, rust-format
|
||||
msgid "{position} of {total}"
|
||||
msgstr "{position} sur {total}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:800
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:846
|
||||
#, rust-format
|
||||
msgid "{position} of {loaded}+"
|
||||
msgstr "{position} sur {loaded}+"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:828
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:874
|
||||
msgid "Photo"
|
||||
msgstr "Photo"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:875
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:921
|
||||
msgid "Previous (←)"
|
||||
msgstr "Précédente (←)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:889
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:935
|
||||
msgid "Next (→)"
|
||||
msgstr "Suivante (→)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:927
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:973
|
||||
msgid "Details (i)"
|
||||
msgstr "Détails (i)"
|
||||
|
||||
#. Translators: tooltip of the star button that marks a photo as a favorite.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:936
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:982
|
||||
msgctxt "verb"
|
||||
msgid "Favorite"
|
||||
msgstr "Ajouter aux favoris"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:944
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:990
|
||||
msgid "Other files of this photo"
|
||||
msgstr "Autres fichiers de cette photo"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:947
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:993
|
||||
msgid "Save a Copy…"
|
||||
msgstr "Enregistrer une copie…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:948
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:994
|
||||
msgid "Move to Trash (Delete)"
|
||||
msgstr "Mettre à la corbeille (Suppr)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:950
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:996
|
||||
msgid "Close (Esc)"
|
||||
msgstr "Fermer (Échap)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:973
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1019
|
||||
msgid "Show on map"
|
||||
msgstr "Afficher sur la carte"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:991
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1037
|
||||
msgid "Hide details"
|
||||
msgstr "Masquer les détails"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1250
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2564
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2568
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1299
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2591
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2595
|
||||
msgid "Couldn't change the favorite"
|
||||
msgstr "Impossible de modifier le favori"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:393
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:471
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:395
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:474
|
||||
msgid "Upload photos"
|
||||
msgstr "Téléverser des photos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:398
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:400
|
||||
#: 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:438
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:569
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:441
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:572
|
||||
msgid "Jump to a month"
|
||||
msgstr "Aller à un mois"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:455
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:458
|
||||
msgid "Back to albums"
|
||||
msgstr "Retour aux albums"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:467
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:470
|
||||
msgctxt "verb"
|
||||
msgid "Upload"
|
||||
msgstr "Téléverser"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:480
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:483
|
||||
msgid "Import a Google Photos Takeout export"
|
||||
msgstr "Importer une archive Google Takeout de Google Photos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:490
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:499
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1509
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:493
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:502
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1512
|
||||
msgid "Select photos"
|
||||
msgstr "Sélectionner des photos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:510
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2521
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:513
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2548
|
||||
msgid "Add to Album…"
|
||||
msgstr "Ajouter à un album…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:516
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:519
|
||||
msgid "Leave selection (Esc)"
|
||||
msgstr "Quitter la sélection (Échap)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:560
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:563
|
||||
msgid "Show only favorites"
|
||||
msgstr "Afficher uniquement les favoris"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:567
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:770
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:570
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:773
|
||||
msgid "All dates"
|
||||
msgstr "Toutes les dates"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:587
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:590
|
||||
msgid "Timeline"
|
||||
msgstr "Chronologie"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:591
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:594
|
||||
msgid "Albums"
|
||||
msgstr "Albums"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:657
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:660
|
||||
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:746
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:749
|
||||
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:777
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:780
|
||||
#, 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:814
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:817
|
||||
msgctxt "photo filter"
|
||||
msgid "All"
|
||||
msgstr "Tout"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:815
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:818
|
||||
msgctxt "photo filter"
|
||||
msgid "Photos"
|
||||
msgstr "Photos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:816
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:819
|
||||
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:818
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:821
|
||||
msgctxt "photo filter"
|
||||
msgid "Raw"
|
||||
msgstr "RAW"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1091
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1094
|
||||
msgid "Select Photo to Upload"
|
||||
msgstr "Sélectionner une photo à téléverser"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1095
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1098
|
||||
#: crates/pdfs-gui/src/prompt.rs:60
|
||||
msgid "Images"
|
||||
msgstr "Images"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1151
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1154
|
||||
msgid "Photo uploaded"
|
||||
msgstr "Photo téléversée"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1156
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1164
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1159
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1167
|
||||
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:1379
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1382
|
||||
msgid "RAW"
|
||||
msgstr "RAW"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1553
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1556
|
||||
msgid "Move this photo to Trash?"
|
||||
msgstr "Mettre cette photo à la corbeille ?"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1555
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1558
|
||||
#, 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."
|
||||
@@ -2654,14 +2660,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:1561
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1564
|
||||
#, 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:1568
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1571
|
||||
#, 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."
|
||||
@@ -2672,15 +2678,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:1626
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1629
|
||||
msgid "The server refused."
|
||||
msgstr "Le serveur a refusé."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1629
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1632
|
||||
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:1638
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1641
|
||||
#, rust-format
|
||||
msgid "Moved {n} photo to Trash"
|
||||
msgid_plural "Moved {n} photos to Trash"
|
||||
@@ -2688,7 +2694,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:2144
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2171
|
||||
#, rust-format
|
||||
msgid "{count} video"
|
||||
msgid_plural "{count} videos"
|
||||
@@ -2696,7 +2702,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:2146
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2173
|
||||
#, rust-format
|
||||
msgid "{count} raw photo"
|
||||
msgid_plural "{count} raw photos"
|
||||
@@ -2704,169 +2710,169 @@ 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:2148
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2175
|
||||
#, 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:2175
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2196
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2202
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2223
|
||||
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:2193
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2220
|
||||
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:2214
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2241
|
||||
msgid "%Y-%m-%d %H:%M:%S"
|
||||
msgstr "%d/%m/%Y %H:%M:%S"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2218
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2220
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2245
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2247
|
||||
msgid "Unknown Date"
|
||||
msgstr "Date inconnue"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2249
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2276
|
||||
msgid "No photos yet"
|
||||
msgstr "Aucune photo pour l’instant"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2250
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2277
|
||||
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:2253
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2280
|
||||
msgid "No favorites yet"
|
||||
msgstr "Aucun favori pour l’instant"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2254
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2281
|
||||
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:2259
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2286
|
||||
#, rust-format
|
||||
msgid "No favorite videos in {month}"
|
||||
msgstr "Aucune vidéo favorite en {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2260
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2287
|
||||
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:2262
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2289
|
||||
#, rust-format
|
||||
msgid "No favorite raw files in {month}"
|
||||
msgstr "Aucun fichier RAW favori en {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2263
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2290
|
||||
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:2265
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2292
|
||||
#, rust-format
|
||||
msgid "No favorite photos in {month}"
|
||||
msgstr "Aucune photo favorite en {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2266
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2293
|
||||
msgid "No favorite photos"
|
||||
msgstr "Aucune photo favorite"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2268
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2295
|
||||
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:2273
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2300
|
||||
#, rust-format
|
||||
msgid "No videos in {month}"
|
||||
msgstr "Aucune vidéo en {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2274
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2301
|
||||
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:2276
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2303
|
||||
#, rust-format
|
||||
msgid "No raw files in {month}"
|
||||
msgstr "Aucun fichier RAW en {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2277
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2304
|
||||
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:2279
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2306
|
||||
#, rust-format
|
||||
msgid "No photos in {month}"
|
||||
msgstr "Aucune photo en {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2280
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2307
|
||||
msgid "No photos"
|
||||
msgstr "Aucune photo"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2282
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2309
|
||||
msgid "Try another filter or month."
|
||||
msgstr "Essayez un autre filtre ou un autre mois."
|
||||
|
||||
#. Translators: a check item in a photo's menu, on while the photo is a favorite.
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2510
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2537
|
||||
msgctxt "state"
|
||||
msgid "Favorite"
|
||||
msgstr "Favori"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2515
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2542
|
||||
msgctxt "verb"
|
||||
msgid "Select"
|
||||
msgstr "Sélectionner"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2527
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2554
|
||||
msgid "Remove from Album"
|
||||
msgstr "Retirer de l’album"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2533
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2560
|
||||
msgid "Move to Trash…"
|
||||
msgstr "Mettre à la corbeille…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2557
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2584
|
||||
msgid "Added to Favorites"
|
||||
msgstr "Ajoutée aux favoris"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2559
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2586
|
||||
msgid "Removed from Favorites"
|
||||
msgstr "Retirée des favoris"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2588
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2615
|
||||
msgid "Loading photos…"
|
||||
msgstr "Chargement des photos…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2589
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2616
|
||||
msgid "Reading your Proton Drive timeline."
|
||||
msgstr "Lecture de votre chronologie Proton Drive."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2676
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2703
|
||||
msgid "Empty album"
|
||||
msgstr "Album vide"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2677
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2704
|
||||
msgid "This album has no photos in it."
|
||||
msgstr "Cet album ne contient aucune photo."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2718
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2736
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2745
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2763
|
||||
msgid "Couldn't load more photos"
|
||||
msgstr "Impossible de charger plus de photos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2723
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2730
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2750
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2757
|
||||
msgid "Couldn't load photos"
|
||||
msgstr "Impossible de charger les photos"
|
||||
|
||||
|
||||
@@ -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-23 10:39+0200\n"
|
||||
"POT-Creation-Date: 2026-09-23 20:16+0200\n"
|
||||
"PO-Revision-Date: 2026-09-23 12:00+0200\n"
|
||||
"Last-Translator: Proton Drive for Linux contributors\n"
|
||||
"Language-Team: Italian\n"
|
||||
@@ -23,7 +23,7 @@ msgstr "I miei file"
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:830 crates/pdfs-gui/src/app/main.rs:1415
|
||||
#: crates/pdfs-gui/src/app/pages/albums.rs:623
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:674
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:677
|
||||
msgid "Photos"
|
||||
msgstr "Foto"
|
||||
|
||||
@@ -150,7 +150,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:313
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1581
|
||||
#: 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
|
||||
@@ -237,9 +237,9 @@ msgstr "Rinomina"
|
||||
#: 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:504
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1575
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1579
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:507
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1582
|
||||
#: crates/pdfs-gui/src/app/widgets/details.rs:162
|
||||
msgid "Move to Trash"
|
||||
msgstr "Sposta nel cestino"
|
||||
@@ -325,7 +325,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:383
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:385
|
||||
#: 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
|
||||
@@ -361,7 +361,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:292
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2731
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2758
|
||||
#: 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."
|
||||
@@ -373,7 +373,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:2765
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2792
|
||||
#: 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
|
||||
@@ -385,7 +385,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:2766
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2793
|
||||
#: 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
|
||||
@@ -397,7 +397,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:2774
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2801
|
||||
#: 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
|
||||
@@ -410,7 +410,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:2775
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2802
|
||||
#: 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
|
||||
@@ -418,12 +418,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:2184
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2211
|
||||
msgid "Today"
|
||||
msgstr "Oggi"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/activity.rs:422
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2189
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2216
|
||||
msgid "Yesterday"
|
||||
msgstr "Ieri"
|
||||
|
||||
@@ -482,7 +482,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:2228
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2255
|
||||
msgid "%H:%M"
|
||||
msgstr "%H:%M"
|
||||
|
||||
@@ -588,12 +588,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:2646
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2673
|
||||
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:2647
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2674
|
||||
msgid "This Proton account doesn't have Photos enabled."
|
||||
msgstr "Questo account Proton non ha Foto abilitato."
|
||||
|
||||
@@ -626,7 +626,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:2505
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2532
|
||||
#: 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
|
||||
@@ -691,11 +691,11 @@ msgstr "Impossibile creare l'album"
|
||||
#: 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:1245
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1165
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1657
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2569
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2737
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1294
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1168
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1660
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2596
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2764
|
||||
#: 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
|
||||
@@ -759,7 +759,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:640
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:643
|
||||
msgid "New Album…"
|
||||
msgstr "Nuovo album…"
|
||||
|
||||
@@ -950,7 +950,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:1511
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1514
|
||||
#, rust-format
|
||||
msgid "{n} selected"
|
||||
msgid_plural "{n} selected"
|
||||
@@ -959,8 +959,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:1650
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1656
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1653
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1659
|
||||
msgid "Couldn't move to Trash"
|
||||
msgstr "Impossibile spostare nel cestino"
|
||||
|
||||
@@ -996,7 +996,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:1643
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1646
|
||||
msgid "Undo"
|
||||
msgstr "Annulla"
|
||||
|
||||
@@ -1048,12 +1048,12 @@ msgid "Location"
|
||||
msgstr "Posizione"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1256
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:949
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:995
|
||||
msgid "Open With…"
|
||||
msgstr "Apri con…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1263
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2503
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2530
|
||||
msgctxt "verb"
|
||||
msgid "Play"
|
||||
msgstr "Riproduci"
|
||||
@@ -1086,7 +1086,7 @@ msgid "Versions…"
|
||||
msgstr "Versioni…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1302
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:983
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1029
|
||||
msgid "Details"
|
||||
msgstr "Dettagli"
|
||||
|
||||
@@ -1350,7 +1350,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:658
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:661
|
||||
msgctxt "verb"
|
||||
msgid "View"
|
||||
msgstr "Visualizza"
|
||||
@@ -2394,284 +2394,290 @@ msgid "This photo carries no metadata."
|
||||
msgstr "Questa foto non contiene metadati."
|
||||
|
||||
#. Translators: a photo's pixel dimensions, such as "4032 × 3024".
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:426
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:441
|
||||
#, rust-format
|
||||
msgid "{width} × {height}"
|
||||
msgstr "{width} × {height}"
|
||||
|
||||
#. Translators: label of a photo's pixel dimensions in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:429
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:444
|
||||
msgid "Dimensions"
|
||||
msgstr "Dimensioni"
|
||||
|
||||
#. Translators: label of when a photo was taken, in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:433
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:448
|
||||
msgctxt "photo property"
|
||||
msgid "Taken"
|
||||
msgstr "Scattata"
|
||||
|
||||
#. Translators: label of the camera model in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:443
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:453
|
||||
msgid "Camera"
|
||||
msgstr "Fotocamera"
|
||||
|
||||
#. Translators: label of the lens model in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:447
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:457
|
||||
msgid "Lens"
|
||||
msgstr "Obiettivo"
|
||||
|
||||
#. Translators: a photo's ISO sensitivity, such as "ISO 400".
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:472
|
||||
#, rust-format
|
||||
msgid "ISO {value}"
|
||||
msgstr "ISO {value}"
|
||||
|
||||
#. Translators: label of aperture, shutter speed, ISO and focal length in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:461
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:484
|
||||
msgid "Exposure"
|
||||
msgstr "Esposizione"
|
||||
|
||||
#. Translators: label of where a photo was taken, in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:469
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:492
|
||||
msgctxt "photo property"
|
||||
msgid "Location"
|
||||
msgstr "Luogo"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:472
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:495
|
||||
#, rust-format
|
||||
msgid "{latitude}, {longitude}"
|
||||
msgstr "{latitude}, {longitude}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:639
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:685
|
||||
msgid "Save a Copy"
|
||||
msgstr "Salva una copia"
|
||||
|
||||
#. Translators: {name} is the saved file's name.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:660
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:706
|
||||
#, rust-format
|
||||
msgid "Saved “{name}”"
|
||||
msgstr "“{name}” salvato"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:662
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:665
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:708
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:711
|
||||
msgid "Couldn't save the copy"
|
||||
msgstr "Impossibile salvare la copia"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:666
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:712
|
||||
msgid "The copy was interrupted."
|
||||
msgstr "La copia è stata interrotta."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:790
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:795
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:836
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:841
|
||||
#, rust-format
|
||||
msgid "{position} of {total}"
|
||||
msgstr "{position} di {total}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:800
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:846
|
||||
#, rust-format
|
||||
msgid "{position} of {loaded}+"
|
||||
msgstr "{position} di {loaded}+"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:828
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:874
|
||||
msgid "Photo"
|
||||
msgstr "Foto"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:875
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:921
|
||||
msgid "Previous (←)"
|
||||
msgstr "Precedente (←)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:889
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:935
|
||||
msgid "Next (→)"
|
||||
msgstr "Successiva (→)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:927
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:973
|
||||
msgid "Details (i)"
|
||||
msgstr "Dettagli (i)"
|
||||
|
||||
#. Translators: tooltip of the star button that marks a photo as a favorite.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:936
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:982
|
||||
msgctxt "verb"
|
||||
msgid "Favorite"
|
||||
msgstr "Aggiungi ai preferiti"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:944
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:990
|
||||
msgid "Other files of this photo"
|
||||
msgstr "Altri file di questa foto"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:947
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:993
|
||||
msgid "Save a Copy…"
|
||||
msgstr "Salva una copia…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:948
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:994
|
||||
msgid "Move to Trash (Delete)"
|
||||
msgstr "Sposta nel cestino (Canc)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:950
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:996
|
||||
msgid "Close (Esc)"
|
||||
msgstr "Chiudi (Esc)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:973
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1019
|
||||
msgid "Show on map"
|
||||
msgstr "Mostra sulla mappa"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:991
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1037
|
||||
msgid "Hide details"
|
||||
msgstr "Nascondi dettagli"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1250
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2564
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2568
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1299
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2591
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2595
|
||||
msgid "Couldn't change the favorite"
|
||||
msgstr "Impossibile modificare il preferito"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:393
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:471
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:395
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:474
|
||||
msgid "Upload photos"
|
||||
msgstr "Carica foto"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:398
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:400
|
||||
#: 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:438
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:569
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:441
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:572
|
||||
msgid "Jump to a month"
|
||||
msgstr "Vai a un mese"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:455
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:458
|
||||
msgid "Back to albums"
|
||||
msgstr "Torna agli album"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:467
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:470
|
||||
msgctxt "verb"
|
||||
msgid "Upload"
|
||||
msgstr "Carica"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:480
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:483
|
||||
msgid "Import a Google Photos Takeout export"
|
||||
msgstr "Importa un'esportazione Google Takeout di Google Photos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:490
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:499
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1509
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:493
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:502
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1512
|
||||
msgid "Select photos"
|
||||
msgstr "Seleziona foto"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:510
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2521
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:513
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2548
|
||||
msgid "Add to Album…"
|
||||
msgstr "Aggiungi all'album…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:516
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:519
|
||||
msgid "Leave selection (Esc)"
|
||||
msgstr "Esci dalla selezione (Esc)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:560
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:563
|
||||
msgid "Show only favorites"
|
||||
msgstr "Mostra solo i preferiti"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:567
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:770
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:570
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:773
|
||||
msgid "All dates"
|
||||
msgstr "Tutte le date"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:587
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:590
|
||||
msgid "Timeline"
|
||||
msgstr "Cronologia"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:591
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:594
|
||||
msgid "Albums"
|
||||
msgstr "Album"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:657
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:660
|
||||
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:746
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:749
|
||||
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:777
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:780
|
||||
#, 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:814
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:817
|
||||
msgctxt "photo filter"
|
||||
msgid "All"
|
||||
msgstr "Tutti"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:815
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:818
|
||||
msgctxt "photo filter"
|
||||
msgid "Photos"
|
||||
msgstr "Foto"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:816
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:819
|
||||
msgctxt "photo filter"
|
||||
msgid "Videos"
|
||||
msgstr "Video"
|
||||
|
||||
#. Translators: a Photos filter tab for raw camera files.
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:818
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:821
|
||||
msgctxt "photo filter"
|
||||
msgid "Raw"
|
||||
msgstr "RAW"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1091
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1094
|
||||
msgid "Select Photo to Upload"
|
||||
msgstr "Seleziona la foto da caricare"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1095
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1098
|
||||
#: crates/pdfs-gui/src/prompt.rs:60
|
||||
msgid "Images"
|
||||
msgstr "Immagini"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1151
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1154
|
||||
msgid "Photo uploaded"
|
||||
msgstr "Foto caricata"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1156
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1164
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1159
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1167
|
||||
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:1379
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1382
|
||||
msgid "RAW"
|
||||
msgstr "RAW"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1553
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1556
|
||||
msgid "Move this photo to Trash?"
|
||||
msgstr "Spostare questa foto nel cestino?"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1555
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1558
|
||||
#, 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:1561
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1564
|
||||
#, 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:1568
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1571
|
||||
#, 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:1626
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1629
|
||||
msgid "The server refused."
|
||||
msgstr "Il server ha rifiutato la richiesta."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1629
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1632
|
||||
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:1638
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1641
|
||||
#, rust-format
|
||||
msgid "Moved {n} photo to Trash"
|
||||
msgid_plural "Moved {n} photos to Trash"
|
||||
@@ -2679,7 +2685,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:2144
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2171
|
||||
#, rust-format
|
||||
msgid "{count} video"
|
||||
msgid_plural "{count} videos"
|
||||
@@ -2687,7 +2693,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:2146
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2173
|
||||
#, rust-format
|
||||
msgid "{count} raw photo"
|
||||
msgid_plural "{count} raw photos"
|
||||
@@ -2695,169 +2701,169 @@ 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:2148
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2175
|
||||
#, 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:2175
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2196
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2202
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2223
|
||||
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:2193
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2220
|
||||
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:2214
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2241
|
||||
msgid "%Y-%m-%d %H:%M:%S"
|
||||
msgstr "%d/%m/%Y %H:%M:%S"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2218
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2220
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2245
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2247
|
||||
msgid "Unknown Date"
|
||||
msgstr "Data sconosciuta"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2249
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2276
|
||||
msgid "No photos yet"
|
||||
msgstr "Ancora nessuna foto"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2250
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2277
|
||||
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:2253
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2280
|
||||
msgid "No favorites yet"
|
||||
msgstr "Ancora nessun preferito"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2254
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2281
|
||||
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:2259
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2286
|
||||
#, rust-format
|
||||
msgid "No favorite videos in {month}"
|
||||
msgstr "Nessun video preferito a {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2260
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2287
|
||||
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:2262
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2289
|
||||
#, rust-format
|
||||
msgid "No favorite raw files in {month}"
|
||||
msgstr "Nessun file RAW preferito a {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2263
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2290
|
||||
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:2265
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2292
|
||||
#, rust-format
|
||||
msgid "No favorite photos in {month}"
|
||||
msgstr "Nessuna foto preferita a {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2266
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2293
|
||||
msgid "No favorite photos"
|
||||
msgstr "Nessuna foto preferita"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2268
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2295
|
||||
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:2273
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2300
|
||||
#, rust-format
|
||||
msgid "No videos in {month}"
|
||||
msgstr "Nessun video a {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2274
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2301
|
||||
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:2276
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2303
|
||||
#, rust-format
|
||||
msgid "No raw files in {month}"
|
||||
msgstr "Nessun file RAW a {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2277
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2304
|
||||
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:2279
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2306
|
||||
#, rust-format
|
||||
msgid "No photos in {month}"
|
||||
msgstr "Nessuna foto a {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2280
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2307
|
||||
msgid "No photos"
|
||||
msgstr "Nessuna foto"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2282
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2309
|
||||
msgid "Try another filter or month."
|
||||
msgstr "Prova un altro filtro o un altro mese."
|
||||
|
||||
#. Translators: a check item in a photo's menu, on while the photo is a favorite.
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2510
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2537
|
||||
msgctxt "state"
|
||||
msgid "Favorite"
|
||||
msgstr "Preferito"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2515
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2542
|
||||
msgctxt "verb"
|
||||
msgid "Select"
|
||||
msgstr "Seleziona"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2527
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2554
|
||||
msgid "Remove from Album"
|
||||
msgstr "Rimuovi dall'album"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2533
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2560
|
||||
msgid "Move to Trash…"
|
||||
msgstr "Sposta nel cestino…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2557
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2584
|
||||
msgid "Added to Favorites"
|
||||
msgstr "Aggiunto ai preferiti"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2559
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2586
|
||||
msgid "Removed from Favorites"
|
||||
msgstr "Rimosso dai preferiti"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2588
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2615
|
||||
msgid "Loading photos…"
|
||||
msgstr "Caricamento delle foto…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2589
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2616
|
||||
msgid "Reading your Proton Drive timeline."
|
||||
msgstr "Lettura della cronologia di Proton Drive."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2676
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2703
|
||||
msgid "Empty album"
|
||||
msgstr "Album vuoto"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2677
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2704
|
||||
msgid "This album has no photos in it."
|
||||
msgstr "Questo album non contiene foto."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2718
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2736
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2745
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2763
|
||||
msgid "Couldn't load more photos"
|
||||
msgstr "Impossibile caricare altre foto"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2723
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2730
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2750
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2757
|
||||
msgid "Couldn't load photos"
|
||||
msgstr "Impossibile caricare le foto"
|
||||
|
||||
|
||||
@@ -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-23 10:39+0200\n"
|
||||
"POT-Creation-Date: 2026-09-23 20:16+0200\n"
|
||||
"PO-Revision-Date: 2026-09-23 12:00+0200\n"
|
||||
"Last-Translator: Proton Drive for Linux contributors\n"
|
||||
"Language-Team: Dutch\n"
|
||||
@@ -23,7 +23,7 @@ msgstr "Mijn bestanden"
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:830 crates/pdfs-gui/src/app/main.rs:1415
|
||||
#: crates/pdfs-gui/src/app/pages/albums.rs:623
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:674
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:677
|
||||
msgid "Photos"
|
||||
msgstr "Foto's"
|
||||
|
||||
@@ -151,7 +151,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:313
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1581
|
||||
#: 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
|
||||
@@ -238,9 +238,9 @@ msgstr "Hernoemen"
|
||||
#: 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:504
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1575
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1579
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:507
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1582
|
||||
#: crates/pdfs-gui/src/app/widgets/details.rs:162
|
||||
msgid "Move to Trash"
|
||||
msgstr "Naar prullenbak verplaatsen"
|
||||
@@ -326,7 +326,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:383
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:385
|
||||
#: 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
|
||||
@@ -362,7 +362,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:292
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2731
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2758
|
||||
#: 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."
|
||||
@@ -374,7 +374,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:2765
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2792
|
||||
#: 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
|
||||
@@ -386,7 +386,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:2766
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2793
|
||||
#: 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
|
||||
@@ -398,7 +398,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:2774
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2801
|
||||
#: 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
|
||||
@@ -411,7 +411,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:2775
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2802
|
||||
#: 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
|
||||
@@ -419,12 +419,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:2184
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2211
|
||||
msgid "Today"
|
||||
msgstr "Vandaag"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/activity.rs:422
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2189
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2216
|
||||
msgid "Yesterday"
|
||||
msgstr "Gisteren"
|
||||
|
||||
@@ -483,7 +483,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:2228
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2255
|
||||
msgid "%H:%M"
|
||||
msgstr "%H:%M"
|
||||
|
||||
@@ -589,12 +589,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:2646
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2673
|
||||
msgid "No photo library"
|
||||
msgstr "Geen fotobibliotheek"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/albums.rs:60
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2647
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2674
|
||||
msgid "This Proton account doesn't have Photos enabled."
|
||||
msgstr "Dit Proton-account heeft Foto's niet ingeschakeld."
|
||||
|
||||
@@ -627,7 +627,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:2505
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2532
|
||||
#: 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
|
||||
@@ -692,11 +692,11 @@ msgstr "Kon het album niet aanmaken"
|
||||
#: 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:1245
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1165
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1657
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2569
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2737
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1294
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1168
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1660
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2596
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2764
|
||||
#: 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
|
||||
@@ -760,7 +760,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:640
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:643
|
||||
msgid "New Album…"
|
||||
msgstr "Nieuw album…"
|
||||
|
||||
@@ -951,7 +951,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:1511
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1514
|
||||
#, rust-format
|
||||
msgid "{n} selected"
|
||||
msgid_plural "{n} selected"
|
||||
@@ -960,8 +960,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:1650
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1656
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1653
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1659
|
||||
msgid "Couldn't move to Trash"
|
||||
msgstr "Kon niet naar prullenbak verplaatsen"
|
||||
|
||||
@@ -997,7 +997,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:1643
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1646
|
||||
msgid "Undo"
|
||||
msgstr "Ongedaan maken"
|
||||
|
||||
@@ -1049,12 +1049,12 @@ msgid "Location"
|
||||
msgstr "Locatie"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1256
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:949
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:995
|
||||
msgid "Open With…"
|
||||
msgstr "Openen met…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1263
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2503
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2530
|
||||
msgctxt "verb"
|
||||
msgid "Play"
|
||||
msgstr "Afspelen"
|
||||
@@ -1087,7 +1087,7 @@ msgid "Versions…"
|
||||
msgstr "Versies…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1302
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:983
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1029
|
||||
msgid "Details"
|
||||
msgstr "Details"
|
||||
|
||||
@@ -1349,7 +1349,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:658
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:661
|
||||
msgctxt "verb"
|
||||
msgid "View"
|
||||
msgstr "Bekijken"
|
||||
@@ -2388,255 +2388,261 @@ msgid "This photo carries no metadata."
|
||||
msgstr "Deze foto bevat geen metadata."
|
||||
|
||||
#. Translators: a photo's pixel dimensions, such as "4032 × 3024".
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:426
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:441
|
||||
#, rust-format
|
||||
msgid "{width} × {height}"
|
||||
msgstr "{width} × {height}"
|
||||
|
||||
#. Translators: label of a photo's pixel dimensions in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:429
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:444
|
||||
msgid "Dimensions"
|
||||
msgstr "Afmetingen"
|
||||
|
||||
#. Translators: label of when a photo was taken, in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:433
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:448
|
||||
msgctxt "photo property"
|
||||
msgid "Taken"
|
||||
msgstr "Genomen"
|
||||
|
||||
#. Translators: label of the camera model in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:443
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:453
|
||||
msgid "Camera"
|
||||
msgstr "Camera"
|
||||
|
||||
#. Translators: label of the lens model in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:447
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:457
|
||||
msgid "Lens"
|
||||
msgstr "Lens"
|
||||
|
||||
#. Translators: a photo's ISO sensitivity, such as "ISO 400".
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:472
|
||||
#, rust-format
|
||||
msgid "ISO {value}"
|
||||
msgstr "ISO {value}"
|
||||
|
||||
#. Translators: label of aperture, shutter speed, ISO and focal length in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:461
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:484
|
||||
msgid "Exposure"
|
||||
msgstr "Belichting"
|
||||
|
||||
#. Translators: label of where a photo was taken, in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:469
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:492
|
||||
msgctxt "photo property"
|
||||
msgid "Location"
|
||||
msgstr "Locatie"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:472
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:495
|
||||
#, rust-format
|
||||
msgid "{latitude}, {longitude}"
|
||||
msgstr "{latitude}, {longitude}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:639
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:685
|
||||
msgid "Save a Copy"
|
||||
msgstr "Een kopie opslaan"
|
||||
|
||||
#. Translators: {name} is the saved file's name.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:660
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:706
|
||||
#, rust-format
|
||||
msgid "Saved “{name}”"
|
||||
msgstr "“{name}” opgeslagen"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:662
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:665
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:708
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:711
|
||||
msgid "Couldn't save the copy"
|
||||
msgstr "Kon de kopie niet opslaan"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:666
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:712
|
||||
msgid "The copy was interrupted."
|
||||
msgstr "Het kopiëren is onderbroken."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:790
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:795
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:836
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:841
|
||||
#, rust-format
|
||||
msgid "{position} of {total}"
|
||||
msgstr "{position} van {total}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:800
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:846
|
||||
#, rust-format
|
||||
msgid "{position} of {loaded}+"
|
||||
msgstr "{position} van {loaded}+"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:828
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:874
|
||||
msgid "Photo"
|
||||
msgstr "Foto"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:875
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:921
|
||||
msgid "Previous (←)"
|
||||
msgstr "Vorige (←)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:889
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:935
|
||||
msgid "Next (→)"
|
||||
msgstr "Volgende (→)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:927
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:973
|
||||
msgid "Details (i)"
|
||||
msgstr "Details (i)"
|
||||
|
||||
#. Translators: tooltip of the star button that marks a photo as a favorite.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:936
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:982
|
||||
msgctxt "verb"
|
||||
msgid "Favorite"
|
||||
msgstr "Favoriet maken"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:944
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:990
|
||||
msgid "Other files of this photo"
|
||||
msgstr "Andere bestanden van deze foto"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:947
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:993
|
||||
msgid "Save a Copy…"
|
||||
msgstr "Een kopie opslaan…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:948
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:994
|
||||
msgid "Move to Trash (Delete)"
|
||||
msgstr "Naar prullenbak verplaatsen (Delete)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:950
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:996
|
||||
msgid "Close (Esc)"
|
||||
msgstr "Sluiten (Esc)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:973
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1019
|
||||
msgid "Show on map"
|
||||
msgstr "Tonen op kaart"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:991
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1037
|
||||
msgid "Hide details"
|
||||
msgstr "Details verbergen"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1250
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2564
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2568
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1299
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2591
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2595
|
||||
msgid "Couldn't change the favorite"
|
||||
msgstr "Kon de favoriet niet wijzigen"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:393
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:471
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:395
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:474
|
||||
msgid "Upload photos"
|
||||
msgstr "Foto's uploaden"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:398
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:400
|
||||
#: 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:438
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:569
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:441
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:572
|
||||
msgid "Jump to a month"
|
||||
msgstr "Naar een maand springen"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:455
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:458
|
||||
msgid "Back to albums"
|
||||
msgstr "Terug naar albums"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:467
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:470
|
||||
msgctxt "verb"
|
||||
msgid "Upload"
|
||||
msgstr "Uploaden"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:480
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:483
|
||||
msgid "Import a Google Photos Takeout export"
|
||||
msgstr "Een Google Photos Takeout-export importeren"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:490
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:499
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1509
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:493
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:502
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1512
|
||||
msgid "Select photos"
|
||||
msgstr "Foto's selecteren"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:510
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2521
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:513
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2548
|
||||
msgid "Add to Album…"
|
||||
msgstr "Aan album toevoegen…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:516
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:519
|
||||
msgid "Leave selection (Esc)"
|
||||
msgstr "Selectie verlaten (Esc)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:560
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:563
|
||||
msgid "Show only favorites"
|
||||
msgstr "Alleen favorieten tonen"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:567
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:770
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:570
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:773
|
||||
msgid "All dates"
|
||||
msgstr "Alle datums"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:587
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:590
|
||||
msgid "Timeline"
|
||||
msgstr "Tijdlijn"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:591
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:594
|
||||
msgid "Albums"
|
||||
msgstr "Albums"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:657
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:660
|
||||
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:746
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:749
|
||||
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:777
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:780
|
||||
#, 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:814
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:817
|
||||
msgctxt "photo filter"
|
||||
msgid "All"
|
||||
msgstr "Alles"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:815
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:818
|
||||
msgctxt "photo filter"
|
||||
msgid "Photos"
|
||||
msgstr "Foto's"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:816
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:819
|
||||
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:818
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:821
|
||||
msgctxt "photo filter"
|
||||
msgid "Raw"
|
||||
msgstr "RAW"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1091
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1094
|
||||
msgid "Select Photo to Upload"
|
||||
msgstr "Foto selecteren om te uploaden"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1095
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1098
|
||||
#: crates/pdfs-gui/src/prompt.rs:60
|
||||
msgid "Images"
|
||||
msgstr "Afbeeldingen"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1151
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1154
|
||||
msgid "Photo uploaded"
|
||||
msgstr "Foto geüpload"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1156
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1164
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1159
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1167
|
||||
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:1379
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1382
|
||||
msgid "RAW"
|
||||
msgstr "RAW"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1553
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1556
|
||||
msgid "Move this photo to Trash?"
|
||||
msgstr "Deze foto naar de prullenbak verplaatsen?"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1555
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1558
|
||||
#, 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."
|
||||
@@ -2646,14 +2652,14 @@ msgstr[1] ""
|
||||
"Deze foto naar de prullenbak verplaatsen? Hij is opgeslagen als {n} "
|
||||
"bestanden."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1561
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1564
|
||||
#, 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:1568
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1571
|
||||
#, 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."
|
||||
@@ -2664,15 +2670,15 @@ msgstr[1] ""
|
||||
"{n} foto's naar de prullenbak verplaatsen? Ze zijn opgeslagen als {files} "
|
||||
"bestanden."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1626
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1629
|
||||
msgid "The server refused."
|
||||
msgstr "De server weigerde."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1629
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1632
|
||||
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:1638
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1641
|
||||
#, rust-format
|
||||
msgid "Moved {n} photo to Trash"
|
||||
msgid_plural "Moved {n} photos to Trash"
|
||||
@@ -2680,7 +2686,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:2144
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2171
|
||||
#, rust-format
|
||||
msgid "{count} video"
|
||||
msgid_plural "{count} videos"
|
||||
@@ -2688,7 +2694,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:2146
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2173
|
||||
#, rust-format
|
||||
msgid "{count} raw photo"
|
||||
msgid_plural "{count} raw photos"
|
||||
@@ -2696,168 +2702,168 @@ 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:2148
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2175
|
||||
#, 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:2175
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2196
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2202
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2223
|
||||
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:2193
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2220
|
||||
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:2214
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2241
|
||||
msgid "%Y-%m-%d %H:%M:%S"
|
||||
msgstr "%d-%m-%Y %H:%M:%S"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2218
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2220
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2245
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2247
|
||||
msgid "Unknown Date"
|
||||
msgstr "Onbekende datum"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2249
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2276
|
||||
msgid "No photos yet"
|
||||
msgstr "Nog geen foto’s"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2250
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2277
|
||||
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:2253
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2280
|
||||
msgid "No favorites yet"
|
||||
msgstr "Nog geen favorieten"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2254
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2281
|
||||
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:2259
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2286
|
||||
#, rust-format
|
||||
msgid "No favorite videos in {month}"
|
||||
msgstr "Geen favoriete video’s in {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2260
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2287
|
||||
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:2262
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2289
|
||||
#, rust-format
|
||||
msgid "No favorite raw files in {month}"
|
||||
msgstr "Geen favoriete RAW-bestanden in {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2263
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2290
|
||||
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:2265
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2292
|
||||
#, rust-format
|
||||
msgid "No favorite photos in {month}"
|
||||
msgstr "Geen favoriete foto’s in {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2266
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2293
|
||||
msgid "No favorite photos"
|
||||
msgstr "Geen favoriete foto’s"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2268
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2295
|
||||
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:2273
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2300
|
||||
#, rust-format
|
||||
msgid "No videos in {month}"
|
||||
msgstr "Geen video’s in {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2274
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2301
|
||||
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:2276
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2303
|
||||
#, rust-format
|
||||
msgid "No raw files in {month}"
|
||||
msgstr "Geen RAW-bestanden in {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2277
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2304
|
||||
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:2279
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2306
|
||||
#, rust-format
|
||||
msgid "No photos in {month}"
|
||||
msgstr "Geen foto’s in {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2280
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2307
|
||||
msgid "No photos"
|
||||
msgstr "Geen foto’s"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2282
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2309
|
||||
msgid "Try another filter or month."
|
||||
msgstr "Probeer een ander filter of een andere maand."
|
||||
|
||||
#. Translators: a check item in a photo's menu, on while the photo is a favorite.
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2510
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2537
|
||||
msgctxt "state"
|
||||
msgid "Favorite"
|
||||
msgstr "Favoriet"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2515
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2542
|
||||
msgctxt "verb"
|
||||
msgid "Select"
|
||||
msgstr "Selecteren"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2527
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2554
|
||||
msgid "Remove from Album"
|
||||
msgstr "Uit album verwijderen"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2533
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2560
|
||||
msgid "Move to Trash…"
|
||||
msgstr "Naar prullenbak verplaatsen…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2557
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2584
|
||||
msgid "Added to Favorites"
|
||||
msgstr "Aan favorieten toegevoegd"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2559
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2586
|
||||
msgid "Removed from Favorites"
|
||||
msgstr "Uit favorieten verwijderd"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2588
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2615
|
||||
msgid "Loading photos…"
|
||||
msgstr "Foto's laden…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2589
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2616
|
||||
msgid "Reading your Proton Drive timeline."
|
||||
msgstr "Je Proton Drive-tijdlijn wordt gelezen."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2676
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2703
|
||||
msgid "Empty album"
|
||||
msgstr "Leeg album"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2677
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2704
|
||||
msgid "This album has no photos in it."
|
||||
msgstr "Dit album bevat geen foto's."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2718
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2736
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2745
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2763
|
||||
msgid "Couldn't load more photos"
|
||||
msgstr "Kon niet meer foto's laden"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2723
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2730
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2750
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2757
|
||||
msgid "Couldn't load photos"
|
||||
msgstr "Kon foto's niet laden"
|
||||
|
||||
|
||||
+149
-143
@@ -6,9 +6,9 @@
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: proton-drive-linux 2.1.0\n"
|
||||
"Project-Id-Version: proton-drive-linux 2.1.1\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
|
||||
"POT-Creation-Date: 2026-09-23 10:39+0200\n"
|
||||
"POT-Creation-Date: 2026-09-23 20:16+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -26,7 +26,7 @@ msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:830 crates/pdfs-gui/src/app/main.rs:1415
|
||||
#: crates/pdfs-gui/src/app/pages/albums.rs:623
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:674
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:677
|
||||
msgid "Photos"
|
||||
msgstr ""
|
||||
|
||||
@@ -148,7 +148,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:313
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1581
|
||||
#: 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
|
||||
@@ -235,9 +235,9 @@ msgstr ""
|
||||
#: 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:504
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1575
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1579
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:507
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1582
|
||||
#: crates/pdfs-gui/src/app/widgets/details.rs:162
|
||||
msgid "Move to Trash"
|
||||
msgstr ""
|
||||
@@ -323,7 +323,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:383
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:385
|
||||
#: 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
|
||||
@@ -359,7 +359,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:292
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2731
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2758
|
||||
#: 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."
|
||||
@@ -371,7 +371,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:2765
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2792
|
||||
#: 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
|
||||
@@ -383,7 +383,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:2766
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2793
|
||||
#: 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
|
||||
@@ -395,7 +395,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:2774
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2801
|
||||
#: 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
|
||||
@@ -408,7 +408,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:2775
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2802
|
||||
#: 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
|
||||
@@ -416,12 +416,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:2184
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2211
|
||||
msgid "Today"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/activity.rs:422
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2189
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2216
|
||||
msgid "Yesterday"
|
||||
msgstr ""
|
||||
|
||||
@@ -474,7 +474,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:2228
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2255
|
||||
msgid "%H:%M"
|
||||
msgstr ""
|
||||
|
||||
@@ -580,12 +580,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:2646
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2673
|
||||
msgid "No photo library"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/albums.rs:60
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2647
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2674
|
||||
msgid "This Proton account doesn't have Photos enabled."
|
||||
msgstr ""
|
||||
|
||||
@@ -618,7 +618,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:2505
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2532
|
||||
#: 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
|
||||
@@ -683,11 +683,11 @@ msgstr ""
|
||||
#: 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:1245
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1165
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1657
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2569
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2737
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1294
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1168
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1660
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2596
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2764
|
||||
#: 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
|
||||
@@ -751,7 +751,7 @@ msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/albums.rs:424
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:640
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:643
|
||||
msgid "New Album…"
|
||||
msgstr ""
|
||||
|
||||
@@ -942,7 +942,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:1511
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1514
|
||||
#, rust-format
|
||||
msgid "{n} selected"
|
||||
msgid_plural "{n} selected"
|
||||
@@ -951,8 +951,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:1650
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1656
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1653
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1659
|
||||
msgid "Couldn't move to Trash"
|
||||
msgstr ""
|
||||
|
||||
@@ -986,7 +986,7 @@ msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:727
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1643
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1646
|
||||
msgid "Undo"
|
||||
msgstr ""
|
||||
|
||||
@@ -1038,12 +1038,12 @@ msgid "Location"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1256
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:949
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:995
|
||||
msgid "Open With…"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1263
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2503
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2530
|
||||
msgctxt "verb"
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
@@ -1076,7 +1076,7 @@ msgid "Versions…"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1302
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:983
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1029
|
||||
msgid "Details"
|
||||
msgstr ""
|
||||
|
||||
@@ -1336,7 +1336,7 @@ msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:2696
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:658
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:661
|
||||
msgctxt "verb"
|
||||
msgid "View"
|
||||
msgstr ""
|
||||
@@ -2300,284 +2300,290 @@ msgid "This photo carries no metadata."
|
||||
msgstr ""
|
||||
|
||||
#. Translators: a photo's pixel dimensions, such as "4032 × 3024".
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:426
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:441
|
||||
#, rust-format
|
||||
msgid "{width} × {height}"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: label of a photo's pixel dimensions in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:429
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:444
|
||||
msgid "Dimensions"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: label of when a photo was taken, in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:433
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:448
|
||||
msgctxt "photo property"
|
||||
msgid "Taken"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: label of the camera model in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:443
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:453
|
||||
msgid "Camera"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: label of the lens model in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:447
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:457
|
||||
msgid "Lens"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: a photo's ISO sensitivity, such as "ISO 400".
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:472
|
||||
#, rust-format
|
||||
msgid "ISO {value}"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: label of aperture, shutter speed, ISO and focal length in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:461
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:484
|
||||
msgid "Exposure"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: label of where a photo was taken, in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:469
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:492
|
||||
msgctxt "photo property"
|
||||
msgid "Location"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:472
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:495
|
||||
#, rust-format
|
||||
msgid "{latitude}, {longitude}"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:639
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:685
|
||||
msgid "Save a Copy"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: {name} is the saved file's name.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:660
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:706
|
||||
#, rust-format
|
||||
msgid "Saved “{name}”"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:662
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:665
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:708
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:711
|
||||
msgid "Couldn't save the copy"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:666
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:712
|
||||
msgid "The copy was interrupted."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:790
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:795
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:836
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:841
|
||||
#, rust-format
|
||||
msgid "{position} of {total}"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:800
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:846
|
||||
#, rust-format
|
||||
msgid "{position} of {loaded}+"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:828
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:874
|
||||
msgid "Photo"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:875
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:921
|
||||
msgid "Previous (←)"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:889
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:935
|
||||
msgid "Next (→)"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:927
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:973
|
||||
msgid "Details (i)"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: tooltip of the star button that marks a photo as a favorite.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:936
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:982
|
||||
msgctxt "verb"
|
||||
msgid "Favorite"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:944
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:990
|
||||
msgid "Other files of this photo"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:947
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:993
|
||||
msgid "Save a Copy…"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:948
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:994
|
||||
msgid "Move to Trash (Delete)"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:950
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:996
|
||||
msgid "Close (Esc)"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:973
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1019
|
||||
msgid "Show on map"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:991
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1037
|
||||
msgid "Hide details"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1250
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2564
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2568
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1299
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2591
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2595
|
||||
msgid "Couldn't change the favorite"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:393
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:471
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:395
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:474
|
||||
msgid "Upload photos"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:398
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:400
|
||||
#: crates/pdfs-gui/src/app/pages/takeout.rs:287
|
||||
msgid "Import from Google Photos"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:438
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:569
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:441
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:572
|
||||
msgid "Jump to a month"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:455
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:458
|
||||
msgid "Back to albums"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:467
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:470
|
||||
msgctxt "verb"
|
||||
msgid "Upload"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:480
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:483
|
||||
msgid "Import a Google Photos Takeout export"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:490
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:499
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1509
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:493
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:502
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1512
|
||||
msgid "Select photos"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:510
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2521
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:513
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2548
|
||||
msgid "Add to Album…"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:516
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:519
|
||||
msgid "Leave selection (Esc)"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:560
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:563
|
||||
msgid "Show only favorites"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:567
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:770
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:570
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:773
|
||||
msgid "All dates"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:587
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:590
|
||||
msgid "Timeline"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:591
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:594
|
||||
msgid "Albums"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:657
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:660
|
||||
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:746
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:749
|
||||
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:777
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:780
|
||||
#, 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:814
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:817
|
||||
msgctxt "photo filter"
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:815
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:818
|
||||
msgctxt "photo filter"
|
||||
msgid "Photos"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:816
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:819
|
||||
msgctxt "photo filter"
|
||||
msgid "Videos"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: a Photos filter tab for raw camera files.
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:818
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:821
|
||||
msgctxt "photo filter"
|
||||
msgid "Raw"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1091
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1094
|
||||
msgid "Select Photo to Upload"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1095
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1098
|
||||
#: crates/pdfs-gui/src/prompt.rs:60
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1151
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1154
|
||||
msgid "Photo uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1156
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1164
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1159
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1167
|
||||
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:1379
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1382
|
||||
msgid "RAW"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1553
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1556
|
||||
msgid "Move this photo to Trash?"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1555
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1558
|
||||
#, 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:1561
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1564
|
||||
#, 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:1568
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1571
|
||||
#, 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:1626
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1629
|
||||
msgid "The server refused."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1629
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1632
|
||||
msgid "Some photos couldn't be moved to Trash"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1638
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1641
|
||||
#, rust-format
|
||||
msgid "Moved {n} photo to Trash"
|
||||
msgid_plural "Moved {n} photos to Trash"
|
||||
@@ -2585,7 +2591,7 @@ msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#. Translators: the Photos page subtitle, such as "12 videos".
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2144
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2171
|
||||
#, rust-format
|
||||
msgid "{count} video"
|
||||
msgid_plural "{count} videos"
|
||||
@@ -2593,7 +2599,7 @@ msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#. Translators: the Photos page subtitle, such as "12 raw photos".
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2146
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2173
|
||||
#, rust-format
|
||||
msgid "{count} raw photo"
|
||||
msgid_plural "{count} raw photos"
|
||||
@@ -2601,167 +2607,167 @@ msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#. Translators: the Photos page subtitle, such as "1,204 photos".
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2148
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2175
|
||||
#, rust-format
|
||||
msgid "{count} photo"
|
||||
msgid_plural "{count} photos"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2175
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2196
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2202
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2223
|
||||
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:2193
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2220
|
||||
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:2214
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2241
|
||||
msgid "%Y-%m-%d %H:%M:%S"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2218
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2220
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2245
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2247
|
||||
msgid "Unknown Date"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2249
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2276
|
||||
msgid "No photos yet"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2250
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2277
|
||||
msgid "Photos you upload to Proton Drive appear here."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2253
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2280
|
||||
msgid "No favorites yet"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2254
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2281
|
||||
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:2259
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2286
|
||||
#, rust-format
|
||||
msgid "No favorite videos in {month}"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2260
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2287
|
||||
msgid "No favorite videos"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: {month} is a month and year, such as "June 2024".
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2262
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2289
|
||||
#, rust-format
|
||||
msgid "No favorite raw files in {month}"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2263
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2290
|
||||
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:2265
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2292
|
||||
#, rust-format
|
||||
msgid "No favorite photos in {month}"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2266
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2293
|
||||
msgid "No favorite photos"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2268
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2295
|
||||
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:2273
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2300
|
||||
#, rust-format
|
||||
msgid "No videos in {month}"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2274
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2301
|
||||
msgid "No videos"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: {month} is a month and year, such as "June 2024".
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2276
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2303
|
||||
#, rust-format
|
||||
msgid "No raw files in {month}"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2277
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2304
|
||||
msgid "No raw files"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: {month} is a month and year, such as "June 2024".
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2279
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2306
|
||||
#, rust-format
|
||||
msgid "No photos in {month}"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2280
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2307
|
||||
msgid "No photos"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2282
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2309
|
||||
msgid "Try another filter or month."
|
||||
msgstr ""
|
||||
|
||||
#. Translators: a check item in a photo's menu, on while the photo is a favorite.
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2510
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2537
|
||||
msgctxt "state"
|
||||
msgid "Favorite"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2515
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2542
|
||||
msgctxt "verb"
|
||||
msgid "Select"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2527
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2554
|
||||
msgid "Remove from Album"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2533
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2560
|
||||
msgid "Move to Trash…"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2557
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2584
|
||||
msgid "Added to Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2559
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2586
|
||||
msgid "Removed from Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2588
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2615
|
||||
msgid "Loading photos…"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2589
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2616
|
||||
msgid "Reading your Proton Drive timeline."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2676
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2703
|
||||
msgid "Empty album"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2677
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2704
|
||||
msgid "This album has no photos in it."
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2718
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2736
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2745
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2763
|
||||
msgid "Couldn't load more photos"
|
||||
msgstr ""
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2723
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2730
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2750
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2757
|
||||
msgid "Couldn't load photos"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: proton-drive-linux 2.1.0\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
|
||||
"POT-Creation-Date: 2026-09-23 10:39+0200\n"
|
||||
"POT-Creation-Date: 2026-09-23 20:16+0200\n"
|
||||
"PO-Revision-Date: 2026-09-23 12:00+0200\n"
|
||||
"Last-Translator: Proton Drive for Linux contributors\n"
|
||||
"Language-Team: Polish\n"
|
||||
@@ -24,7 +24,7 @@ msgstr "Moje pliki"
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:830 crates/pdfs-gui/src/app/main.rs:1415
|
||||
#: crates/pdfs-gui/src/app/pages/albums.rs:623
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:674
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:677
|
||||
msgid "Photos"
|
||||
msgstr "Zdjęcia"
|
||||
|
||||
@@ -152,7 +152,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:313
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1581
|
||||
#: 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
|
||||
@@ -239,9 +239,9 @@ msgstr "Zmień nazwę"
|
||||
#: 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:504
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1575
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1579
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:507
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1582
|
||||
#: crates/pdfs-gui/src/app/widgets/details.rs:162
|
||||
msgid "Move to Trash"
|
||||
msgstr "Przenieś do kosza"
|
||||
@@ -327,7 +327,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:383
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:385
|
||||
#: 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
|
||||
@@ -363,7 +363,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:292
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2731
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2758
|
||||
#: 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."
|
||||
@@ -375,7 +375,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:2765
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2792
|
||||
#: 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
|
||||
@@ -387,7 +387,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:2766
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2793
|
||||
#: 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
|
||||
@@ -399,7 +399,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:2774
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2801
|
||||
#: 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
|
||||
@@ -412,7 +412,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:2775
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2802
|
||||
#: 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
|
||||
@@ -420,12 +420,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:2184
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2211
|
||||
msgid "Today"
|
||||
msgstr "Dzisiaj"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/activity.rs:422
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2189
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2216
|
||||
msgid "Yesterday"
|
||||
msgstr "Wczoraj"
|
||||
|
||||
@@ -488,7 +488,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:2228
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2255
|
||||
msgid "%H:%M"
|
||||
msgstr "%H:%M"
|
||||
|
||||
@@ -594,12 +594,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:2646
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2673
|
||||
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:2647
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2674
|
||||
msgid "This Proton account doesn't have Photos enabled."
|
||||
msgstr "To konto Proton nie ma włączonych Zdjęć."
|
||||
|
||||
@@ -633,7 +633,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:2505
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2532
|
||||
#: 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
|
||||
@@ -698,11 +698,11 @@ msgstr "Nie można utworzyć albumu"
|
||||
#: 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:1245
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1165
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1657
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2569
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2737
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1294
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1168
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1660
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2596
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2764
|
||||
#: 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
|
||||
@@ -767,7 +767,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:640
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:643
|
||||
msgid "New Album…"
|
||||
msgstr "Nowy album…"
|
||||
|
||||
@@ -963,7 +963,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:1511
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1514
|
||||
#, rust-format
|
||||
msgid "{n} selected"
|
||||
msgid_plural "{n} selected"
|
||||
@@ -973,8 +973,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:1650
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1656
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1653
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1659
|
||||
msgid "Couldn't move to Trash"
|
||||
msgstr "Nie można przenieść do kosza"
|
||||
|
||||
@@ -1013,7 +1013,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:1643
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1646
|
||||
msgid "Undo"
|
||||
msgstr "Cofnij"
|
||||
|
||||
@@ -1068,12 +1068,12 @@ msgid "Location"
|
||||
msgstr "Położenie"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1256
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:949
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:995
|
||||
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:2503
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2530
|
||||
msgctxt "verb"
|
||||
msgid "Play"
|
||||
msgstr "Odtwórz"
|
||||
@@ -1106,7 +1106,7 @@ msgid "Versions…"
|
||||
msgstr "Wersje…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1302
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:983
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1029
|
||||
msgid "Details"
|
||||
msgstr "Szczegóły"
|
||||
|
||||
@@ -1374,7 +1374,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:658
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:661
|
||||
msgctxt "verb"
|
||||
msgid "View"
|
||||
msgstr "Wyświetl"
|
||||
@@ -2419,255 +2419,261 @@ msgid "This photo carries no metadata."
|
||||
msgstr "To zdjęcie nie zawiera metadanych."
|
||||
|
||||
#. Translators: a photo's pixel dimensions, such as "4032 × 3024".
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:426
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:441
|
||||
#, rust-format
|
||||
msgid "{width} × {height}"
|
||||
msgstr "{width} × {height}"
|
||||
|
||||
#. Translators: label of a photo's pixel dimensions in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:429
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:444
|
||||
msgid "Dimensions"
|
||||
msgstr "Wymiary"
|
||||
|
||||
#. Translators: label of when a photo was taken, in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:433
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:448
|
||||
msgctxt "photo property"
|
||||
msgid "Taken"
|
||||
msgstr "Data wykonania"
|
||||
|
||||
#. Translators: label of the camera model in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:443
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:453
|
||||
msgid "Camera"
|
||||
msgstr "Aparat"
|
||||
|
||||
#. Translators: label of the lens model in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:447
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:457
|
||||
msgid "Lens"
|
||||
msgstr "Obiektyw"
|
||||
|
||||
#. Translators: a photo's ISO sensitivity, such as "ISO 400".
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:472
|
||||
#, rust-format
|
||||
msgid "ISO {value}"
|
||||
msgstr "ISO {value}"
|
||||
|
||||
#. Translators: label of aperture, shutter speed, ISO and focal length in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:461
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:484
|
||||
msgid "Exposure"
|
||||
msgstr "Ekspozycja"
|
||||
|
||||
#. Translators: label of where a photo was taken, in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:469
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:492
|
||||
msgctxt "photo property"
|
||||
msgid "Location"
|
||||
msgstr "Miejsce"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:472
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:495
|
||||
#, rust-format
|
||||
msgid "{latitude}, {longitude}"
|
||||
msgstr "{latitude}, {longitude}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:639
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:685
|
||||
msgid "Save a Copy"
|
||||
msgstr "Zapisz kopię"
|
||||
|
||||
#. Translators: {name} is the saved file's name.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:660
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:706
|
||||
#, rust-format
|
||||
msgid "Saved “{name}”"
|
||||
msgstr "Zapisano „{name}”"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:662
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:665
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:708
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:711
|
||||
msgid "Couldn't save the copy"
|
||||
msgstr "Nie można zapisać kopii"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:666
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:712
|
||||
msgid "The copy was interrupted."
|
||||
msgstr "Przerwano kopiowanie."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:790
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:795
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:836
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:841
|
||||
#, rust-format
|
||||
msgid "{position} of {total}"
|
||||
msgstr "{position} z {total}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:800
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:846
|
||||
#, rust-format
|
||||
msgid "{position} of {loaded}+"
|
||||
msgstr "{position} z {loaded}+"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:828
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:874
|
||||
msgid "Photo"
|
||||
msgstr "Zdjęcie"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:875
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:921
|
||||
msgid "Previous (←)"
|
||||
msgstr "Poprzednie (←)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:889
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:935
|
||||
msgid "Next (→)"
|
||||
msgstr "Następne (→)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:927
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:973
|
||||
msgid "Details (i)"
|
||||
msgstr "Szczegóły (i)"
|
||||
|
||||
#. Translators: tooltip of the star button that marks a photo as a favorite.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:936
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:982
|
||||
msgctxt "verb"
|
||||
msgid "Favorite"
|
||||
msgstr "Dodaj do ulubionych"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:944
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:990
|
||||
msgid "Other files of this photo"
|
||||
msgstr "Inne pliki tego zdjęcia"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:947
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:993
|
||||
msgid "Save a Copy…"
|
||||
msgstr "Zapisz kopię…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:948
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:994
|
||||
msgid "Move to Trash (Delete)"
|
||||
msgstr "Przenieś do kosza (Delete)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:950
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:996
|
||||
msgid "Close (Esc)"
|
||||
msgstr "Zamknij (Esc)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:973
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1019
|
||||
msgid "Show on map"
|
||||
msgstr "Wyświetl na mapie"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:991
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1037
|
||||
msgid "Hide details"
|
||||
msgstr "Ukryj szczegóły"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1250
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2564
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2568
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1299
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2591
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2595
|
||||
msgid "Couldn't change the favorite"
|
||||
msgstr "Nie można zmienić stanu ulubionego"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:393
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:471
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:395
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:474
|
||||
msgid "Upload photos"
|
||||
msgstr "Wyślij zdjęcia"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:398
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:400
|
||||
#: 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:438
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:569
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:441
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:572
|
||||
msgid "Jump to a month"
|
||||
msgstr "Przejdź do miesiąca"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:455
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:458
|
||||
msgid "Back to albums"
|
||||
msgstr "Wróć do albumów"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:467
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:470
|
||||
msgctxt "verb"
|
||||
msgid "Upload"
|
||||
msgstr "Wyślij"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:480
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:483
|
||||
msgid "Import a Google Photos Takeout export"
|
||||
msgstr "Importuj eksport Google Takeout z Google Photos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:490
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:499
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1509
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:493
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:502
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1512
|
||||
msgid "Select photos"
|
||||
msgstr "Zaznacz zdjęcia"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:510
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2521
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:513
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2548
|
||||
msgid "Add to Album…"
|
||||
msgstr "Dodaj do albumu…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:516
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:519
|
||||
msgid "Leave selection (Esc)"
|
||||
msgstr "Zakończ zaznaczanie (Esc)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:560
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:563
|
||||
msgid "Show only favorites"
|
||||
msgstr "Wyświetlaj tylko ulubione"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:567
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:770
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:570
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:773
|
||||
msgid "All dates"
|
||||
msgstr "Wszystkie daty"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:587
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:590
|
||||
msgid "Timeline"
|
||||
msgstr "Oś czasu"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:591
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:594
|
||||
msgid "Albums"
|
||||
msgstr "Albumy"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:657
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:660
|
||||
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:746
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:749
|
||||
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:777
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:780
|
||||
#, 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:814
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:817
|
||||
msgctxt "photo filter"
|
||||
msgid "All"
|
||||
msgstr "Wszystko"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:815
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:818
|
||||
msgctxt "photo filter"
|
||||
msgid "Photos"
|
||||
msgstr "Zdjęcia"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:816
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:819
|
||||
msgctxt "photo filter"
|
||||
msgid "Videos"
|
||||
msgstr "Filmy"
|
||||
|
||||
#. Translators: a Photos filter tab for raw camera files.
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:818
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:821
|
||||
msgctxt "photo filter"
|
||||
msgid "Raw"
|
||||
msgstr "RAW"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1091
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1094
|
||||
msgid "Select Photo to Upload"
|
||||
msgstr "Wybór zdjęcia do wysłania"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1095
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1098
|
||||
#: crates/pdfs-gui/src/prompt.rs:60
|
||||
msgid "Images"
|
||||
msgstr "Obrazy"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1151
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1154
|
||||
msgid "Photo uploaded"
|
||||
msgstr "Wysłano zdjęcie"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1156
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1164
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1159
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1167
|
||||
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:1379
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1382
|
||||
msgid "RAW"
|
||||
msgstr "RAW"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1553
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1556
|
||||
msgid "Move this photo to Trash?"
|
||||
msgstr "Przenieść to zdjęcie do kosza?"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1555
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1558
|
||||
#, 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."
|
||||
@@ -2675,7 +2681,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:1561
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1564
|
||||
#, rust-format
|
||||
msgid "Move {n} photo to Trash?"
|
||||
msgid_plural "Move {n} photos to Trash?"
|
||||
@@ -2683,7 +2689,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:1568
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1571
|
||||
#, 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."
|
||||
@@ -2692,15 +2698,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:1626
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1629
|
||||
msgid "The server refused."
|
||||
msgstr "Serwer odmówił."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1629
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1632
|
||||
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:1638
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1641
|
||||
#, rust-format
|
||||
msgid "Moved {n} photo to Trash"
|
||||
msgid_plural "Moved {n} photos to Trash"
|
||||
@@ -2709,7 +2715,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:2144
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2171
|
||||
#, rust-format
|
||||
msgid "{count} video"
|
||||
msgid_plural "{count} videos"
|
||||
@@ -2718,7 +2724,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:2146
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2173
|
||||
#, rust-format
|
||||
msgid "{count} raw photo"
|
||||
msgid_plural "{count} raw photos"
|
||||
@@ -2727,7 +2733,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:2148
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2175
|
||||
#, rust-format
|
||||
msgid "{count} photo"
|
||||
msgid_plural "{count} photos"
|
||||
@@ -2735,161 +2741,161 @@ msgstr[0] "{count} zdjęcie"
|
||||
msgstr[1] "{count} zdjęcia"
|
||||
msgstr[2] "{count} zdjęć"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2175
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2196
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2202
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2223
|
||||
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:2193
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2220
|
||||
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:2214
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2241
|
||||
msgid "%Y-%m-%d %H:%M:%S"
|
||||
msgstr "%Y-%m-%d %H:%M:%S"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2218
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2220
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2245
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2247
|
||||
msgid "Unknown Date"
|
||||
msgstr "Nieznana data"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2249
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2276
|
||||
msgid "No photos yet"
|
||||
msgstr "Brak zdjęć"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2250
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2277
|
||||
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:2253
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2280
|
||||
msgid "No favorites yet"
|
||||
msgstr "Brak ulubionych"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2254
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2281
|
||||
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:2259
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2286
|
||||
#, rust-format
|
||||
msgid "No favorite videos in {month}"
|
||||
msgstr "Brak ulubionych filmów – {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2260
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2287
|
||||
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:2262
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2289
|
||||
#, rust-format
|
||||
msgid "No favorite raw files in {month}"
|
||||
msgstr "Brak ulubionych plików RAW – {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2263
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2290
|
||||
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:2265
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2292
|
||||
#, rust-format
|
||||
msgid "No favorite photos in {month}"
|
||||
msgstr "Brak ulubionych zdjęć – {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2266
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2293
|
||||
msgid "No favorite photos"
|
||||
msgstr "Brak ulubionych zdjęć"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2268
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2295
|
||||
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:2273
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2300
|
||||
#, rust-format
|
||||
msgid "No videos in {month}"
|
||||
msgstr "Brak filmów – {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2274
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2301
|
||||
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:2276
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2303
|
||||
#, rust-format
|
||||
msgid "No raw files in {month}"
|
||||
msgstr "Brak plików RAW – {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2277
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2304
|
||||
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:2279
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2306
|
||||
#, rust-format
|
||||
msgid "No photos in {month}"
|
||||
msgstr "Brak zdjęć – {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2280
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2307
|
||||
msgid "No photos"
|
||||
msgstr "Brak zdjęć"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2282
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2309
|
||||
msgid "Try another filter or month."
|
||||
msgstr "Wybierz inny filtr lub miesiąc."
|
||||
|
||||
#. Translators: a check item in a photo's menu, on while the photo is a favorite.
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2510
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2537
|
||||
msgctxt "state"
|
||||
msgid "Favorite"
|
||||
msgstr "Ulubione"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2515
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2542
|
||||
msgctxt "verb"
|
||||
msgid "Select"
|
||||
msgstr "Zaznacz"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2527
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2554
|
||||
msgid "Remove from Album"
|
||||
msgstr "Usuń z albumu"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2533
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2560
|
||||
msgid "Move to Trash…"
|
||||
msgstr "Przenieś do kosza…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2557
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2584
|
||||
msgid "Added to Favorites"
|
||||
msgstr "Dodano do ulubionych"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2559
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2586
|
||||
msgid "Removed from Favorites"
|
||||
msgstr "Usunięto z ulubionych"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2588
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2615
|
||||
msgid "Loading photos…"
|
||||
msgstr "Wczytywanie zdjęć…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2589
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2616
|
||||
msgid "Reading your Proton Drive timeline."
|
||||
msgstr "Odczytywanie osi czasu Proton Drive."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2676
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2703
|
||||
msgid "Empty album"
|
||||
msgstr "Pusty album"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2677
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2704
|
||||
msgid "This album has no photos in it."
|
||||
msgstr "Ten album nie zawiera żadnych zdjęć."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2718
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2736
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2745
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2763
|
||||
msgid "Couldn't load more photos"
|
||||
msgstr "Nie można wczytać więcej zdjęć"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2723
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2730
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2750
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2757
|
||||
msgid "Couldn't load photos"
|
||||
msgstr "Nie można wczytać zdjęć"
|
||||
|
||||
|
||||
+148
-142
@@ -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-23 10:39+0200\n"
|
||||
"POT-Creation-Date: 2026-09-23 20:16+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"
|
||||
@@ -23,7 +23,7 @@ msgstr "Meus arquivos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/main.rs:830 crates/pdfs-gui/src/app/main.rs:1415
|
||||
#: crates/pdfs-gui/src/app/pages/albums.rs:623
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:674
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:677
|
||||
msgid "Photos"
|
||||
msgstr "Fotos"
|
||||
|
||||
@@ -150,7 +150,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:313
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1581
|
||||
#: 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
|
||||
@@ -237,9 +237,9 @@ msgstr "Renomear"
|
||||
#: 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:504
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1575
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1579
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:507
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1578
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1582
|
||||
#: crates/pdfs-gui/src/app/widgets/details.rs:162
|
||||
msgid "Move to Trash"
|
||||
msgstr "Mover para a lixeira"
|
||||
@@ -325,7 +325,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:383
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:385
|
||||
#: 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
|
||||
@@ -361,7 +361,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:292
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2731
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2758
|
||||
#: 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."
|
||||
@@ -373,7 +373,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:2765
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2792
|
||||
#: 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
|
||||
@@ -385,7 +385,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:2766
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2793
|
||||
#: 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
|
||||
@@ -397,7 +397,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:2774
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2801
|
||||
#: 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
|
||||
@@ -410,7 +410,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:2775
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2802
|
||||
#: 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
|
||||
@@ -418,12 +418,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:2184
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2211
|
||||
msgid "Today"
|
||||
msgstr "Hoje"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/activity.rs:422
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2189
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2216
|
||||
msgid "Yesterday"
|
||||
msgstr "Ontem"
|
||||
|
||||
@@ -482,7 +482,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:2228
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2255
|
||||
msgid "%H:%M"
|
||||
msgstr "%H:%M"
|
||||
|
||||
@@ -588,12 +588,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:2646
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2673
|
||||
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:2647
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2674
|
||||
msgid "This Proton account doesn't have Photos enabled."
|
||||
msgstr "Esta conta Proton não tem o Fotos ativado."
|
||||
|
||||
@@ -626,7 +626,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:2505
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2532
|
||||
#: 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
|
||||
@@ -691,11 +691,11 @@ msgstr "Não foi possível criar o álbum"
|
||||
#: 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:1245
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1165
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1657
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2569
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2737
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1294
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1168
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1660
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2596
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2764
|
||||
#: 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
|
||||
@@ -759,7 +759,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:640
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:643
|
||||
msgid "New Album…"
|
||||
msgstr "Novo álbum…"
|
||||
|
||||
@@ -950,7 +950,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:1511
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1514
|
||||
#, rust-format
|
||||
msgid "{n} selected"
|
||||
msgid_plural "{n} selected"
|
||||
@@ -959,8 +959,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:1650
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1656
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1653
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1659
|
||||
msgid "Couldn't move to Trash"
|
||||
msgstr "Não foi possível mover para a lixeira"
|
||||
|
||||
@@ -994,7 +994,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:1643
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1646
|
||||
msgid "Undo"
|
||||
msgstr "Desfazer"
|
||||
|
||||
@@ -1046,12 +1046,12 @@ msgid "Location"
|
||||
msgstr "Local"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1256
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:949
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:995
|
||||
msgid "Open With…"
|
||||
msgstr "Abrir com…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1263
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2503
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2530
|
||||
msgctxt "verb"
|
||||
msgid "Play"
|
||||
msgstr "Reproduzir"
|
||||
@@ -1084,7 +1084,7 @@ msgid "Versions…"
|
||||
msgstr "Versões…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/browser.rs:1302
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:983
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1029
|
||||
msgid "Details"
|
||||
msgstr "Detalhes"
|
||||
|
||||
@@ -1346,7 +1346,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:658
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:661
|
||||
msgctxt "verb"
|
||||
msgid "View"
|
||||
msgstr "Ver"
|
||||
@@ -2379,255 +2379,261 @@ msgid "This photo carries no metadata."
|
||||
msgstr "Esta foto não contém metadados."
|
||||
|
||||
#. Translators: a photo's pixel dimensions, such as "4032 × 3024".
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:426
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:441
|
||||
#, rust-format
|
||||
msgid "{width} × {height}"
|
||||
msgstr "{width} × {height}"
|
||||
|
||||
#. Translators: label of a photo's pixel dimensions in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:429
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:444
|
||||
msgid "Dimensions"
|
||||
msgstr "Dimensões"
|
||||
|
||||
#. Translators: label of when a photo was taken, in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:433
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:448
|
||||
msgctxt "photo property"
|
||||
msgid "Taken"
|
||||
msgstr "Tirada em"
|
||||
|
||||
#. Translators: label of the camera model in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:443
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:453
|
||||
msgid "Camera"
|
||||
msgstr "Câmera"
|
||||
|
||||
#. Translators: label of the lens model in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:447
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:457
|
||||
msgid "Lens"
|
||||
msgstr "Lente"
|
||||
|
||||
#. Translators: a photo's ISO sensitivity, such as "ISO 400".
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:472
|
||||
#, rust-format
|
||||
msgid "ISO {value}"
|
||||
msgstr "ISO {value}"
|
||||
|
||||
#. Translators: label of aperture, shutter speed, ISO and focal length in a photo's details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:461
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:484
|
||||
msgid "Exposure"
|
||||
msgstr "Exposição"
|
||||
|
||||
#. Translators: label of where a photo was taken, in the details panel.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:469
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:492
|
||||
msgctxt "photo property"
|
||||
msgid "Location"
|
||||
msgstr "Local"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:472
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:495
|
||||
#, rust-format
|
||||
msgid "{latitude}, {longitude}"
|
||||
msgstr "{latitude}, {longitude}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:639
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:685
|
||||
msgid "Save a Copy"
|
||||
msgstr "Salvar uma cópia"
|
||||
|
||||
#. Translators: {name} is the saved file's name.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:660
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:706
|
||||
#, rust-format
|
||||
msgid "Saved “{name}”"
|
||||
msgstr "“{name}” salvo"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:662
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:665
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:708
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:711
|
||||
msgid "Couldn't save the copy"
|
||||
msgstr "Não foi possível salvar a cópia"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:666
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:712
|
||||
msgid "The copy was interrupted."
|
||||
msgstr "A cópia foi interrompida."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:790
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:795
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:836
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:841
|
||||
#, rust-format
|
||||
msgid "{position} of {total}"
|
||||
msgstr "{position} de {total}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:800
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:846
|
||||
#, rust-format
|
||||
msgid "{position} of {loaded}+"
|
||||
msgstr "{position} de {loaded}+"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:828
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:874
|
||||
msgid "Photo"
|
||||
msgstr "Foto"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:875
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:921
|
||||
msgid "Previous (←)"
|
||||
msgstr "Anterior (←)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:889
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:935
|
||||
msgid "Next (→)"
|
||||
msgstr "Próxima (→)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:927
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:973
|
||||
msgid "Details (i)"
|
||||
msgstr "Detalhes (i)"
|
||||
|
||||
#. Translators: tooltip of the star button that marks a photo as a favorite.
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:936
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:982
|
||||
msgctxt "verb"
|
||||
msgid "Favorite"
|
||||
msgstr "Favoritar"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:944
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:990
|
||||
msgid "Other files of this photo"
|
||||
msgstr "Outros arquivos desta foto"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:947
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:993
|
||||
msgid "Save a Copy…"
|
||||
msgstr "Salvar uma cópia…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:948
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:994
|
||||
msgid "Move to Trash (Delete)"
|
||||
msgstr "Mover para a lixeira (Delete)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:950
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:996
|
||||
msgid "Close (Esc)"
|
||||
msgstr "Fechar (Esc)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:973
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1019
|
||||
msgid "Show on map"
|
||||
msgstr "Mostrar no mapa"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:991
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1037
|
||||
msgid "Hide details"
|
||||
msgstr "Ocultar detalhes"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1250
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2564
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2568
|
||||
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1299
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2591
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2595
|
||||
msgid "Couldn't change the favorite"
|
||||
msgstr "Não foi possível alterar o favorito"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:393
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:471
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:395
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:474
|
||||
msgid "Upload photos"
|
||||
msgstr "Enviar fotos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:398
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:400
|
||||
#: 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:438
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:569
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:441
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:572
|
||||
msgid "Jump to a month"
|
||||
msgstr "Ir para um mês"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:455
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:458
|
||||
msgid "Back to albums"
|
||||
msgstr "Voltar aos álbuns"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:467
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:470
|
||||
msgctxt "verb"
|
||||
msgid "Upload"
|
||||
msgstr "Enviar"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:480
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:483
|
||||
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:490
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:499
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1509
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:493
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:502
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1512
|
||||
msgid "Select photos"
|
||||
msgstr "Selecionar fotos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:510
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2521
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:513
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2548
|
||||
msgid "Add to Album…"
|
||||
msgstr "Adicionar ao álbum…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:516
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:519
|
||||
msgid "Leave selection (Esc)"
|
||||
msgstr "Sair da seleção (Esc)"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:560
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:563
|
||||
msgid "Show only favorites"
|
||||
msgstr "Mostrar somente favoritos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:567
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:770
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:570
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:773
|
||||
msgid "All dates"
|
||||
msgstr "Todas as datas"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:587
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:590
|
||||
msgid "Timeline"
|
||||
msgstr "Linha do tempo"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:591
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:594
|
||||
msgid "Albums"
|
||||
msgstr "Álbuns"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:657
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:660
|
||||
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:746
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:749
|
||||
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:777
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:780
|
||||
#, 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:814
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:817
|
||||
msgctxt "photo filter"
|
||||
msgid "All"
|
||||
msgstr "Tudo"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:815
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:818
|
||||
msgctxt "photo filter"
|
||||
msgid "Photos"
|
||||
msgstr "Fotos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:816
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:819
|
||||
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:818
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:821
|
||||
msgctxt "photo filter"
|
||||
msgid "Raw"
|
||||
msgstr "RAW"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1091
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1094
|
||||
msgid "Select Photo to Upload"
|
||||
msgstr "Selecione a foto a enviar"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1095
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1098
|
||||
#: crates/pdfs-gui/src/prompt.rs:60
|
||||
msgid "Images"
|
||||
msgstr "Imagens"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1151
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1154
|
||||
msgid "Photo uploaded"
|
||||
msgstr "Foto enviada"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1156
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1164
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1159
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1167
|
||||
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:1379
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1382
|
||||
msgid "RAW"
|
||||
msgstr "RAW"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1553
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1556
|
||||
msgid "Move this photo to Trash?"
|
||||
msgstr "Mover esta foto para a lixeira?"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1555
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1558
|
||||
#, 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."
|
||||
@@ -2635,14 +2641,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:1561
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1564
|
||||
#, 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:1568
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1571
|
||||
#, 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."
|
||||
@@ -2651,15 +2657,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:1626
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1629
|
||||
msgid "The server refused."
|
||||
msgstr "O servidor recusou."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1629
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1632
|
||||
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:1638
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:1641
|
||||
#, rust-format
|
||||
msgid "Moved {n} photo to Trash"
|
||||
msgid_plural "Moved {n} photos to Trash"
|
||||
@@ -2667,7 +2673,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:2144
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2171
|
||||
#, rust-format
|
||||
msgid "{count} video"
|
||||
msgid_plural "{count} videos"
|
||||
@@ -2675,7 +2681,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:2146
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2173
|
||||
#, rust-format
|
||||
msgid "{count} raw photo"
|
||||
msgid_plural "{count} raw photos"
|
||||
@@ -2683,169 +2689,169 @@ 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:2148
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2175
|
||||
#, 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:2175
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2196
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2202
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2223
|
||||
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:2193
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2220
|
||||
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:2214
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2241
|
||||
msgid "%Y-%m-%d %H:%M:%S"
|
||||
msgstr "%d/%m/%Y %H:%M:%S"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2218
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2220
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2245
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2247
|
||||
msgid "Unknown Date"
|
||||
msgstr "Data desconhecida"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2249
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2276
|
||||
msgid "No photos yet"
|
||||
msgstr "Nenhuma foto ainda"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2250
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2277
|
||||
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:2253
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2280
|
||||
msgid "No favorites yet"
|
||||
msgstr "Nenhuma favorita ainda"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2254
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2281
|
||||
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:2259
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2286
|
||||
#, rust-format
|
||||
msgid "No favorite videos in {month}"
|
||||
msgstr "Nenhum vídeo favorito em {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2260
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2287
|
||||
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:2262
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2289
|
||||
#, rust-format
|
||||
msgid "No favorite raw files in {month}"
|
||||
msgstr "Nenhum arquivo RAW favorito em {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2263
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2290
|
||||
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:2265
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2292
|
||||
#, rust-format
|
||||
msgid "No favorite photos in {month}"
|
||||
msgstr "Nenhuma foto favorita em {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2266
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2293
|
||||
msgid "No favorite photos"
|
||||
msgstr "Nenhuma foto favorita"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2268
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2295
|
||||
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:2273
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2300
|
||||
#, rust-format
|
||||
msgid "No videos in {month}"
|
||||
msgstr "Nenhum vídeo em {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2274
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2301
|
||||
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:2276
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2303
|
||||
#, rust-format
|
||||
msgid "No raw files in {month}"
|
||||
msgstr "Nenhum arquivo RAW em {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2277
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2304
|
||||
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:2279
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2306
|
||||
#, rust-format
|
||||
msgid "No photos in {month}"
|
||||
msgstr "Nenhuma foto em {month}"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2280
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2307
|
||||
msgid "No photos"
|
||||
msgstr "Nenhuma foto"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2282
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2309
|
||||
msgid "Try another filter or month."
|
||||
msgstr "Tente outro filtro ou outro mê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:2510
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2537
|
||||
msgctxt "state"
|
||||
msgid "Favorite"
|
||||
msgstr "Favorita"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2515
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2542
|
||||
msgctxt "verb"
|
||||
msgid "Select"
|
||||
msgstr "Selecionar"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2527
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2554
|
||||
msgid "Remove from Album"
|
||||
msgstr "Remover do álbum"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2533
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2560
|
||||
msgid "Move to Trash…"
|
||||
msgstr "Mover para a lixeira…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2557
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2584
|
||||
msgid "Added to Favorites"
|
||||
msgstr "Adicionada aos favoritos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2559
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2586
|
||||
msgid "Removed from Favorites"
|
||||
msgstr "Removida dos favoritos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2588
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2615
|
||||
msgid "Loading photos…"
|
||||
msgstr "Carregando fotos…"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2589
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2616
|
||||
msgid "Reading your Proton Drive timeline."
|
||||
msgstr "Lendo sua linha do tempo do Proton Drive."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2676
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2703
|
||||
msgid "Empty album"
|
||||
msgstr "Álbum vazio"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2677
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2704
|
||||
msgid "This album has no photos in it."
|
||||
msgstr "Este álbum não tem fotos."
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2718
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2736
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2745
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2763
|
||||
msgid "Couldn't load more photos"
|
||||
msgstr "Não foi possível carregar mais fotos"
|
||||
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2723
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2730
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2750
|
||||
#: crates/pdfs-gui/src/app/pages/photos.rs:2757
|
||||
msgid "Couldn't load photos"
|
||||
msgstr "Não foi possível carregar as fotos"
|
||||
|
||||
|
||||
Reference in new issue
Block a user