Compare commits

...
Author SHA1 Message Date
nvrl d13e74fc12 fix(gui,cli,core): offer the CAPTCHA in the browser when the web view cannot start (B195)
The verification window now runs in its own process, so the app survives
when WebKit cannot start its sandbox on secureblue, but the CAPTCHA still
could not be solved there (#29). WebKit binds the journal socket with
`--ro-bind-try`, bubblewrap only skips a missing path, not an unreadable
one, and WebKit has no switch to leave the socket out.

Proton Mail Bridge never uses a web view: it opens verify.proton.me in the
system browser and retries with the original challenge token, typed with
the offered methods. Do the same as a fallback.

- core: `browser_verification_url` and `browser_verified` build the page
  URL and the retry credential from the challenge
- gui: when the verification window fails, a dialog opens the page in the
  browser and continues the sign-in once the user is done
- cli: `pdfs login` handles a CAPTCHA the same way instead of failing
- i18n: translate the new dialog in every catalog
- docs: B195, TROUBLESHOOTING.md, ARCHITECTURE.md, changelog

Fixes #29
2026-10-08 19:02:29 +02:00
nvrl 07c9b675d3 chore(deps) updated sdk to 0.8.1 2026-10-08 15:25:44 +02:00
nvrl f82343b844 Merge pull request #30 from narrrl/fix/secureblue-captcha
Fix/secureblue captcha
2026-10-08 15:25:05 +02:00
Nils Pukropp d09e10dc7d chore(aur): update packages to 3.1.1 2026-10-08 09:49:25 +00:00
nvrl 8d0351124c chore(release): 3.1.2 2026-10-08 11:31:18 +02:00
nvrl a888e0bb28 fix(gui): run the CAPTCHA page in its own process (B195)
On secureblue, WebKit cannot start the sandbox for the verification page:
bubblewrap is kept from the journal socket, xdg-dbus-proxy fails, and
WebKit ends its process with g_error. The webview lived in pdfs-app, so
the whole app crashed after the sign-in (#29).

- gui: `pdfs-app --human-verification` shows the page in its own window,
  reads the URL on stdin and prints the token on stdout; its logs go to
  stderr
- gui: a child that dies or fails without a token ends the sign-in with a
  message that the page could not be opened, instead of "cancelled"
- i18n: translate the new message in every catalog
- docs: B195 in the bug ledger, the cause and a one-time workaround in
  TROUBLESHOOTING.md, the child process in ARCHITECTURE.md, changelog
2026-10-08 10:25:14 +02:00
nvrl c7fc85e943 fix(gui): create the state dir before the tray and app use it (B194)
On a fresh install only the daemon and the CLI created
~/.local/state/proton-drive-linux. The app starts the tray before the
first sign-in, so the tray failed to bind its single-instance socket and
exited, and the Takeout page could not remember staged archives (#29).

- gui: pdfs-tray and pdfs-app call AppDirs::ensure at start, which also
  makes the directories owner-only
- docs: B194 in the bug ledger, changelog entry
2026-10-08 10:25:04 +02:00
nvrl 5bfae0fee1 docs(changelog): add the 3.1.1 entry
3.1.1 shipped the client identity change without a changelog entry. Also
add the missing release links for 3.1.0 and 3.1.1.
2026-10-08 10:24:07 +02:00
nvrl edd62c5f7a chore(release): 3.1.1 2026-10-07 17:01:32 +02:00
nvrl 5c1530b4b9 fix(core,gui): send the release version as the client identity
Every release sent the fixed `external-drive-linux@0.1.0-alpha`. If Proton
ever retires that version, every release fails sign-in at once and no update
can fix it.

- core: APP_VERSION and USER_AGENT follow CARGO_PKG_VERSION
  (`external-drive-linux@<version>-stable`, `proton-drive-linux/<version>`)
- core: `app_version` and `user_agent` in config.json are optional overrides;
  the fixed values older releases stored there read as unset and leave the
  file on the next save, a hand-set value is kept
- gui: the About dialog shows the release, its debug info the identity
  actually sent
- docs: describe the new default and the migration
2026-10-07 17:01:32 +02:00
Nils Pukropp ce324510de chore(aur): update packages to 3.1.0 2026-10-07 10:53:15 +00:00
30 changed files with 1870 additions and 1042 deletions

No files matched your search

Generated
+22 -22
View File
@@ -166,7 +166,7 @@ version = "1.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
dependencies = [
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -177,7 +177,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
dependencies = [
"anstyle",
"once_cell_polyfill",
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -1254,7 +1254,7 @@ dependencies = [
"libc",
"option-ext",
"redox_users",
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -1433,7 +1433,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
dependencies = [
"libc",
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -1896,7 +1896,7 @@ dependencies = [
"gobject-sys",
"libc",
"system-deps 9.0.0",
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -3100,7 +3100,7 @@ version = "0.50.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
dependencies = [
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -3474,7 +3474,7 @@ checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4"
[[package]]
name = "pdfs-cli"
version = "3.1.0"
version = "3.1.2"
dependencies = [
"anyhow",
"clap",
@@ -3490,7 +3490,7 @@ dependencies = [
[[package]]
name = "pdfs-core"
version = "3.1.0"
version = "3.1.2"
dependencies = [
"async-trait",
"base64 0.23.1",
@@ -3516,7 +3516,7 @@ dependencies = [
[[package]]
name = "pdfs-fuse"
version = "3.1.0"
version = "3.1.2"
dependencies = [
"async-trait",
"base64 0.23.1",
@@ -3538,7 +3538,7 @@ dependencies = [
[[package]]
name = "pdfs-gui"
version = "3.1.0"
version = "3.1.2"
dependencies = [
"anyhow",
"async-channel",
@@ -3778,9 +3778,9 @@ dependencies = [
[[package]]
name = "proton-drive-rs"
version = "0.8.0"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5bde475139afb5fc2649621e1d283e243f9df2bb412f08802cdf3f4ffaf97c44"
checksum = "014165ed0f2d3847a4b8956ca94a82ba16c82f2d5c7fa139c3541c15150dba21"
dependencies = [
"async-trait",
"base64 0.23.1",
@@ -3805,9 +3805,9 @@ dependencies = [
[[package]]
name = "proton-sdk"
version = "0.8.0"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "faf32d0a03f7d13bd9bdcc8c9503e35e9df9318ca9f2a100dcf06cf50cb7ac8c"
checksum = "9e16bf5592b7947708dd754defeaee7a58e9fa35988a6ea345b5b9a93765fd81"
dependencies = [
"aes-gcm 0.11.1",
"async-trait",
@@ -3926,7 +3926,7 @@ dependencies = [
"once_cell",
"socket2",
"tracing",
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -4374,7 +4374,7 @@ dependencies = [
"errno",
"libc",
"linux-raw-sys",
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -4431,7 +4431,7 @@ dependencies = [
"security-framework",
"security-framework-sys",
"webpki-root-certs",
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -4764,7 +4764,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4"
dependencies = [
"libc",
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -4932,10 +4932,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
dependencies = [
"fastrand",
"getrandom 0.4.3",
"getrandom 0.3.4",
"once_cell",
"rustix",
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -5266,7 +5266,7 @@ checksum = "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e"
dependencies = [
"memoffset",
"tempfile",
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -5590,7 +5590,7 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
dependencies = [
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
+3 -3
View File
@@ -3,7 +3,7 @@ resolver = "2"
members = ["crates/pdfs-core", "crates/pdfs-fuse", "crates/pdfs-cli", "crates/pdfs-gui"]
[workspace.package]
version = "3.1.0"
version = "3.1.2"
edition = "2024"
license = "MIT"
authors = ["Nils Pukropp <contact@narl.io>"]
@@ -15,8 +15,8 @@ keywords = ["proton", "drive", "fuse", "sync", "linux"]
categories = ["filesystem", "command-line-utilities"]
[workspace.dependencies]
proton-sdk = { version = "0.8.0" }
proton-drive-rs = { version = "0.8.0" }
proton-sdk = { version = "0.8.1" }
proton-drive-rs = { version = "0.8.1" }
# Internal crates.
pdfs-core = { path = "crates/pdfs-core" }
+22 -13
View File
@@ -1816,20 +1816,29 @@ fn cmd_login(username: Option<String>, remember: bool) -> Result<()> {
// Only a two-password account is ever asked for this.
let get_mailbox = |attempt: u32| prompt_mailbox(attempt, remember);
// Proton may ask for a CAPTCHA first, usually on a VPN. The CLI has no
// browser engine, so the user solves the page in their own browser and says
// when they are done; the retry then carries the challenge token.
let get_hv = |hv: pdfs_core::proton_sdk::api::HumanVerification| {
println!(
"Proton is asking for a CAPTCHA before it will accept this sign-in.\n\
Open this page in your browser and complete it:\n\n {}\n",
auth::browser_verification_url(&hv)
);
prompt_line("Press Enter once the page says you are verified")
.map_err(|e| pdfs_core::Error::Other(format!("read verification answer: {e}")))?;
Ok(auth::browser_verified(&hv))
};
let rt = tokio::runtime::Runtime::new()?;
// Solving a CAPTCHA needs a browser engine, which the CLI has no business
// carrying. Point at the app that does rather than failing with the raw API
// message, which reads as "your login is broken".
rt.block_on(auth::login(&username, &password, get_totp, get_mailbox))
.map_err(|e| match e {
pdfs_core::Error::HumanVerificationRequired(_) => anyhow::anyhow!(
"Proton is asking for a CAPTCHA before it will accept this sign-in.\n\
Run `pdfs-app` and sign in there — it can show the verification page.\n\
(This is usually triggered by a VPN or an unfamiliar IP; signing in from \
your usual network often avoids it.)"
),
other => anyhow::Error::new(other).context("login failed"),
})?;
rt.block_on(auth::login_interactive(
&username,
&password,
get_totp,
get_mailbox,
get_hv,
))
.context("login failed")?;
// A daemon that is already up is parked in `wait_for_session`, sleeping
// between keyring checks; restart it so the mount appears now instead of
+66 -1
View File
@@ -109,7 +109,10 @@ fn client_config() -> ProtonClientConfiguration {
let (app_version, user_agent) = match AppDirs::new() {
Ok(dirs) => {
let config = dirs.load_config();
(config.app_version, config.user_agent)
(
config.resolved_app_version().to_string(),
config.resolved_user_agent().to_string(),
)
}
Err(_) => (APP_VERSION.to_string(), USER_AGENT.to_string()),
};
@@ -203,6 +206,44 @@ pub async fn login_interactive(
}
}
/// Proton's verification page for the user's own browser, for a front-end that
/// cannot host it in a webview.
///
/// Unlike [`HumanVerification::verification_url`] this asks for the full page,
/// not the embedded one: a browser tab has no host to post the token to, so the
/// page has to tell the user they are done instead. Proton Mail Bridge opens the
/// same URL.
pub fn browser_verification_url(hv: &HumanVerification) -> String {
let token: String = hv
.token
.bytes()
.map(|b| match b {
b'A'..=b'Z' | b'a'..=b'z' | b'0'..=b'9' | b'-' | b'_' | b'.' | b'~' => {
(b as char).to_string()
}
_ => format!("%{b:02X}"),
})
.collect();
format!(
"https://verify.proton.me/?methods={}&token={token}",
hv.methods.join(","),
)
}
/// The credential to retry with once the user has solved the challenge in
/// their browser.
///
/// The browser keeps the page's own token, so the retry carries the challenge
/// token instead: solving the page marks that token as verified on Proton's
/// side. The type is every offered method, as Proton Mail Bridge sends it, since
/// the user may have picked any of them on the page.
pub fn browser_verified(hv: &HumanVerification) -> HumanVerificationCredential {
HumanVerificationCredential {
token: hv.token.clone(),
method: hv.methods.join(","),
}
}
/// [`login`], replaying a human-verification token the user has already earned.
///
/// A gated login fails with [`Error::HumanVerificationRequired`] carrying the
@@ -671,6 +712,30 @@ mod tests {
)
}
fn challenge() -> HumanVerification {
serde_json::from_str(
r#"{"HumanVerificationToken":"ab+c/d=","HumanVerificationMethods":["captcha","email"]}"#,
)
.unwrap()
}
#[test]
fn the_browser_gets_the_full_verification_page() {
assert_eq!(
browser_verification_url(&challenge()),
"https://verify.proton.me/?methods=captcha,email&token=ab%2Bc%2Fd%3D"
);
}
/// The browser keeps the page's token, so the retry replays the challenge
/// itself, typed with every method the page offered.
#[test]
fn a_browser_verification_retries_with_the_challenge_token() {
let credential = browser_verified(&challenge());
assert_eq!(credential.token, "ab+c/d=");
assert_eq!(credential.method, "captcha,email");
}
#[test]
fn passphrases_survive_the_blob_encoding() {
let decoded = decode(&encode(&passphrases())).expect("decodes");
+106 -34
View File
@@ -3,7 +3,7 @@
use std::path::{Path, PathBuf};
use directories::ProjectDirs;
use serde::{Deserialize, Serialize};
use serde::{Deserialize, Deserializer, Serialize};
use crate::error::{Error, Result};
use crate::menu::PromptConfig;
@@ -12,8 +12,19 @@ use crate::syncignore::DEFAULT_IGNORE_PATTERNS;
/// Proton requires `external-drive-{name}@{semver}-{channel}` (channel ∈
/// stable/beta/alpha); a malformed value trips the 422 anti-abuse path.
pub const APP_VERSION: &str = "external-drive-linux@0.1.0-alpha";
pub const USER_AGENT: &str = "proton-drive-linux/0.1.0";
/// Follows the release so Proton can tell releases apart and retire old ones
/// without retiring every one.
pub const APP_VERSION: &str = concat!(
"external-drive-linux@",
env!("CARGO_PKG_VERSION"),
"-stable"
);
pub const USER_AGENT: &str = concat!("proton-drive-linux/", env!("CARGO_PKG_VERSION"));
/// The fixed identity every release up to 3.1.0 wrote into `config.json`. Read
/// back as "unset" so those configs follow the release instead of pinning it.
const LEGACY_APP_VERSION: &str = "external-drive-linux@0.1.0-alpha";
const LEGACY_USER_AGENT: &str = "proton-drive-linux/0.1.0";
/// Keyring service name; one entry per credential kind keyed by username.
pub const KEYRING_SERVICE: &str = "proton-drive-linux";
@@ -76,10 +87,24 @@ fn resolve_sweep_mode(env: Option<&str>, stored: Option<SweepMode>) -> SweepMode
}
/// Configuration structure allowing the user to customize client identification headers.
#[derive(Serialize, Deserialize, Debug, Clone)]
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
pub struct AppConfig {
pub app_version: String,
pub user_agent: String,
/// Override for [`APP_VERSION`]. `None` means "use the release's own";
/// the old fixed default reads as `None`, so it leaves the file on the
/// next save.
#[serde(
default,
deserialize_with = "identity_override",
skip_serializing_if = "Option::is_none"
)]
pub app_version: Option<String>,
/// Override for [`USER_AGENT`], handled like `app_version`.
#[serde(
default,
deserialize_with = "identity_override",
skip_serializing_if = "Option::is_none"
)]
pub user_agent: Option<String>,
/// Soft cap on the on-disk content cache, in bytes (`0` = unlimited).
/// `None` means "use [`DEFAULT_CACHE_BUDGET_BYTES`]"; the Settings page
/// writes an explicit value here. Defaulted for configs predating the field.
@@ -216,31 +241,28 @@ impl FileSort {
}
}
impl Default for AppConfig {
fn default() -> Self {
Self {
app_version: APP_VERSION.to_string(),
user_agent: USER_AGENT.to_string(),
cache_budget: None,
upload_limit: None,
download_limit: None,
mountpoint: None,
ignore_patterns: None,
device_uid: None,
conflict_sweep: None,
open_with: None,
prompt: None,
proton_theme: None,
files_view: FilesView::default(),
tray_hidden: false,
language: None,
online_map: false,
local_first: None,
}
}
/// Reads an `app_version` or `user_agent` override, dropping the fixed
/// identity older releases stored as the default.
fn identity_override<'de, D: Deserializer<'de>>(
deserializer: D,
) -> std::result::Result<Option<String>, D::Error> {
let value = Option::<String>::deserialize(deserializer)?;
Ok(value.filter(|v| v != LEGACY_APP_VERSION && v != LEGACY_USER_AGENT))
}
impl AppConfig {
/// The `x-pm-appversion` sent to Proton: the user's override, or
/// [`APP_VERSION`].
pub fn resolved_app_version(&self) -> &str {
self.app_version.as_deref().unwrap_or(APP_VERSION)
}
/// The `User-Agent` sent to Proton: the user's override, or
/// [`USER_AGENT`].
pub fn resolved_user_agent(&self) -> &str {
self.user_agent.as_deref().unwrap_or(USER_AGENT)
}
/// The effective cache budget in bytes: the user's explicit choice, or
/// [`DEFAULT_CACHE_BUDGET_BYTES`] when unset.
pub fn resolved_cache_budget(&self) -> u64 {
@@ -571,8 +593,8 @@ mod tests {
#[test]
fn test_app_config_serialization() {
let config = AppConfig {
app_version: "external-drive-test-client@1.0.0".to_string(),
user_agent: "test-agent/1.0".to_string(),
app_version: Some("external-drive-test-client@1.0.0".to_string()),
user_agent: Some("test-agent/1.0".to_string()),
cache_budget: Some(1234),
upload_limit: Some(500_000),
download_limit: None,
@@ -596,8 +618,11 @@ mod tests {
};
let json = serde_json::to_string(&config).unwrap();
let decoded: AppConfig = serde_json::from_str(&json).unwrap();
assert_eq!(decoded.app_version, "external-drive-test-client@1.0.0");
assert_eq!(decoded.user_agent, "test-agent/1.0");
assert_eq!(
decoded.resolved_app_version(),
"external-drive-test-client@1.0.0"
);
assert_eq!(decoded.resolved_user_agent(), "test-agent/1.0");
assert_eq!(decoded.proton_theme, Some(true));
assert!(decoded.tray_hidden);
assert!(decoded.online_map);
@@ -628,8 +653,55 @@ mod tests {
#[test]
fn test_default_app_config() {
let default_config = AppConfig::default();
assert_eq!(default_config.app_version, APP_VERSION);
assert_eq!(default_config.user_agent, USER_AGENT);
assert_eq!(default_config.resolved_app_version(), APP_VERSION);
assert_eq!(default_config.resolved_user_agent(), USER_AGENT);
}
#[test]
fn the_client_identity_follows_the_release() {
let version = env!("CARGO_PKG_VERSION");
assert_eq!(
APP_VERSION,
format!("external-drive-linux@{version}-stable")
);
assert_eq!(USER_AGENT, format!("proton-drive-linux/{version}"));
}
#[test]
fn an_old_config_with_the_fixed_identity_follows_the_release() {
// Every config written up to 3.1.0 holds these two values, so they must
// not pin the identity once Proton retires 0.1.0.
let json = format!(
r#"{{"app_version":"{LEGACY_APP_VERSION}","user_agent":"{LEGACY_USER_AGENT}","tray_hidden":true}}"#
);
let decoded: AppConfig = serde_json::from_str(&json).unwrap();
assert_eq!(decoded.resolved_app_version(), APP_VERSION);
assert_eq!(decoded.resolved_user_agent(), USER_AGENT);
assert!(decoded.tray_hidden, "the rest of the config survives");
let saved = serde_json::to_string(&decoded).unwrap();
assert!(!saved.contains("app_version"), "{saved}");
assert!(!saved.contains("user_agent"), "{saved}");
}
#[test]
fn a_hand_set_client_identity_is_kept() {
let json = r#"{"app_version":"external-drive-linux@9.9.9-beta","user_agent":"custom/1"}"#;
let decoded: AppConfig = serde_json::from_str(json).unwrap();
assert_eq!(
decoded.resolved_app_version(),
"external-drive-linux@9.9.9-beta"
);
assert_eq!(decoded.resolved_user_agent(), "custom/1");
let saved = serde_json::to_string(&decoded).unwrap();
assert!(saved.contains("external-drive-linux@9.9.9-beta"), "{saved}");
}
#[test]
fn a_config_without_a_client_identity_loads() {
let decoded: AppConfig = serde_json::from_str("{}").unwrap();
assert_eq!(decoded.resolved_app_version(), APP_VERSION);
assert_eq!(decoded.resolved_user_agent(), USER_AGENT);
}
#[test]
+21 -8
View File
@@ -202,12 +202,20 @@ impl Ui {
}
fn main() -> glib::ExitCode {
tracing_subscriber::fmt()
.with_env_filter(
tracing_subscriber::EnvFilter::try_from_default_env().unwrap_or_else(|_| "info".into()),
)
.init();
let verify = std::env::args().nth(1).as_deref() == Some(VERIFY_ARG);
let logs = tracing_subscriber::fmt().with_env_filter(
tracing_subscriber::EnvFilter::try_from_default_env().unwrap_or_else(|_| "info".into()),
);
// The verification window's stdout carries its token back to the app.
if verify {
logs.with_writer(std::io::stderr).init();
} else {
logs.init();
}
i18n::init();
if verify {
return run_verification_window();
}
// The tray launches the app with arguments ("--page locations",
// "--confirm-stop"), which a running instance must receive too.
@@ -303,6 +311,11 @@ fn build_window(app: &adw::Application) {
return;
}
};
// On a fresh install the daemon has not run yet to make these, and the
// Takeout page keeps its staged archives in the state dir (B194).
if let Err(e) = dirs.ensure() {
tracing::warn!("cannot create the app's directories: {e}");
}
let stack = adw::ViewStack::new();
let (login_page, login_widgets) = build_login_page();
@@ -1210,7 +1223,7 @@ fn install_window_actions(ui: &Rc<Ui>, window: &adw::ApplicationWindow) {
let dialog = adw::AboutDialog::builder()
.application_name(gettext("Proton Drive for Linux"))
.application_icon("io.narl.proton-drive-linux")
.version(pdfs_core::config::APP_VERSION)
.version(env!("CARGO_PKG_VERSION"))
.developer_name("Nils Pukropp")
.website("https://proton-drive.narl.io")
.issue_url("https://github.com/narrrl/proton-drive-linux/issues")
@@ -1350,8 +1363,8 @@ fn debug_info(ui: &Rc<Ui>) -> String {
format!(
"App version: {}\nUser agent: {}\nlibadwaita: {}.{}.{}\nGTK: {}.{}.{}\n\
Mountpoint: {}\nControl socket: {}\nMount service running: {}\n",
pdfs_core::config::APP_VERSION,
pdfs_core::config::USER_AGENT,
config.resolved_app_version(),
config.resolved_user_agent(),
adw::major_version(),
adw::minor_version(),
adw::micro_version(),
+86 -18
View File
@@ -1,5 +1,5 @@
use crate::*;
use pdfs_core::proton_sdk::api::HumanVerificationCredential;
use pdfs_core::proton_sdk::api::{HumanVerification, HumanVerificationCredential};
pub(crate) struct LoginState {
// Login page.
@@ -150,15 +150,25 @@ pub(crate) fn wire_login(ui: &Rc<Ui>) {
});
// Same shape for human verification: only fires when the API gates the
// sign-in, and the worker is blocked on the token until it does.
// sign-in, and the worker is blocked on the credential until it does.
let ui_hv = ui.clone();
glib::spawn_future_local(async move {
if let Ok((url, token_tx)) = hv_req_rx.recv().await {
if let Ok((hv, credential_tx)) = hv_req_rx.recv().await {
ui_hv
.login
.login_status
.set_text(&gettext("Complete the verification to continue…"));
prompt_human_verification(&ui_hv, &url, token_tx);
// Anything but a credential drops the sender, which the worker
// reads as a cancelled sign-in.
match verify_human(hv.verification_url()).await {
Verification::Solved(token) => {
let _ = credential_tx.send(HumanVerificationCredential::captcha(token));
}
Verification::Cancelled => {}
// The web view could not start, most likely its sandbox
// (B195): the user's browser can show the page instead.
Verification::Failed => verify_in_browser(&ui_hv, &hv, credential_tx),
}
}
});
@@ -252,9 +262,12 @@ pub(crate) struct LoginChannels {
pub(crate) result: async_channel::Receiver<Result<(), String>>,
/// Fires only if the account needs a 2FA code; carries the sender for it.
pub(crate) totp: async_channel::Receiver<std::sync::mpsc::Sender<String>>,
/// Fires only if the sign-in is gated: the page to show, and the sender for
/// the token the user earns on it.
pub(crate) hv: async_channel::Receiver<(String, std::sync::mpsc::Sender<String>)>,
/// Fires only if the sign-in is gated: the challenge, and the sender for the
/// credential the user earns by solving it.
pub(crate) hv: async_channel::Receiver<(
HumanVerification,
std::sync::mpsc::Sender<HumanVerificationCredential>,
)>,
/// Fires only for a two-password account: how many answers were already
/// wrong, and the sender for the password and the "remember" choice.
pub(crate) mailbox: async_channel::Receiver<(u32, std::sync::mpsc::Sender<(String, bool)>)>,
@@ -312,18 +325,16 @@ pub(crate) fn spawn_login(username: String, password: String) -> LoginChannels {
})
},
|hv| {
// Gated: hand the UI the page to show, block on the token the
// user earns by solving it.
let (token_tx, token_rx) = std::sync::mpsc::channel::<String>();
hv_req_tx
.send_blocking((hv.verification_url(), token_tx))
.map_err(|_| {
pdfs_core::Error::Other("verification prompt closed".into())
})?;
let token = token_rx
// Gated: hand the UI the challenge, block on the credential
// the user earns by solving it.
let (credential_tx, credential_rx) =
std::sync::mpsc::channel::<HumanVerificationCredential>();
hv_req_tx.send_blocking((hv, credential_tx)).map_err(|_| {
pdfs_core::Error::Other("verification prompt closed".into())
})?;
credential_rx
.recv()
.map_err(|_| pdfs_core::Error::Other("verification cancelled".into()))?;
Ok(HumanVerificationCredential::captcha(token))
.map_err(|_| pdfs_core::Error::Other("verification cancelled".into()))
},
)
.await
@@ -510,6 +521,63 @@ pub(crate) fn prompt_2fa(ui: &Rc<Ui>, code_tx: std::sync::mpsc::Sender<String>)
dialog.present(parent.as_ref());
}
/// Let the user solve the challenge in their own browser, for when the
/// verification window could not come up. The page cannot hand its token back
/// to us, so the user says when they are done, and the retry carries the
/// challenge token, which the solved page made good (see
/// [`auth::browser_verified`]).
fn verify_in_browser(
ui: &Rc<Ui>,
hv: &HumanVerification,
credential_tx: std::sync::mpsc::Sender<HumanVerificationCredential>,
) {
let dialog = adw::AlertDialog::builder()
.heading(gettext("Verify in Your Browser"))
.body(gettext(
"The verification page can't be shown in the app on this system. Open it in your browser, complete it there, then come back and choose Continue.",
))
.build();
let url = auth::browser_verification_url(hv);
let open = gtk4::Button::builder()
.label(gettext("Open Verification Page"))
.halign(gtk4::Align::Center)
.build();
open.add_css_class("pill");
dialog.set_extra_child(Some(&open));
dialog.add_response("cancel", &gettext("Cancel"));
dialog.add_response("continue", &gettext("Continue"));
dialog.set_response_appearance("continue", adw::ResponseAppearance::Suggested);
// Continuing before the page was even opened would only fail the retry.
dialog.set_response_enabled("continue", false);
dialog.set_default_response(Some("continue"));
dialog.set_close_response("cancel");
let dialog_weak = dialog.downgrade();
open.connect_clicked(move |_| {
open_uri(&url);
if let Some(dialog) = dialog_weak.upgrade() {
dialog.set_response_enabled("continue", true);
}
});
let credential = auth::browser_verified(hv);
let credential_tx = RefCell::new(Some(credential_tx));
dialog.connect_response(None, move |_, resp| {
// On cancel/close we take + drop `tx` without sending, so the worker's
// recv errors out and the login is reported as cancelled.
if let Some(tx) = credential_tx.borrow_mut().take()
&& resp == "continue"
{
let _ = tx.send(credential.clone());
}
});
let parent = ui.login.login_button.root().and_downcast::<gtk4::Window>();
dialog.present(parent.as_ref());
}
/// Sign out, after a confirmation: disable+stop the mount service (so the
/// daemon isn't left running without credentials), forget the stored session,
/// and drop back to the login page.
+168 -40
View File
@@ -1,4 +1,4 @@
//! The human-verification (CAPTCHA) dialog.
//! The human-verification (CAPTCHA) window.
//!
//! Proton gates logins it does not recognise — a new IP, a VPN exit — behind a
//! CAPTCHA. The API answers the login with a challenge instead of a session, and
@@ -8,10 +8,26 @@
//! The page is hosted in a `WebKitWebView` rather than handed to the system
//! browser because it reports completion by posting a message to its host, not
//! by redirecting: a browser has nowhere to post it back to.
//!
//! The webview runs in a child `pdfs-app` started with [`VERIFY_ARG`], not in the
//! app itself. WebKit aborts its whole process when its sandbox cannot start, as
//! on hardened systems that keep bubblewrap from the journal socket
//! (`docs/BUGS.md` B195); in a child that costs the verification, not the app.
//! The URL goes to the child on stdin, so it never shows in a process list, and
//! the token comes back on stdout.
use crate::*;
use std::io::{BufRead, BufReader, Write as _};
use std::process::{ExitStatus, Stdio};
use webkit6::prelude::*;
/// The argument that makes `pdfs-app` the verification window instead of the app.
pub(crate) const VERIFY_ARG: &str = "--human-verification";
/// Marks the token among whatever else lands on the child's stdout: GLib and
/// WebKit write debug output there.
const TOKEN_PREFIX: &str = "hv-token ";
/// Bridge the verification page's `postMessage` to a handler this side can read.
///
/// The page targets its embedding host (`window.parent`), which in a webview is
@@ -26,15 +42,100 @@ window.addEventListener('message', function (event) {
});
"#;
/// Present the challenge and hand the solved token back through `token_tx`.
///
/// Closing the dialog without solving drops the sender, which the waiting login
/// worker reads as a cancelled sign-in — the same contract as the 2FA prompt.
pub(crate) fn prompt_human_verification(
ui: &Rc<Ui>,
url: &str,
token_tx: std::sync::mpsc::Sender<String>,
) {
/// How the verification window ended.
#[derive(Debug, PartialEq, Eq)]
pub(crate) enum Verification {
Solved(String),
/// Closed without solving.
Cancelled,
/// Never came up, or died: most likely WebKit could not start its sandbox.
Failed,
}
/// Show the challenge in the verification window and wait until it closes.
pub(crate) async fn verify_human(url: String) -> Verification {
match gio::spawn_blocking(move || run_verification_child(&url)).await {
Ok(Ok(verification)) => verification,
Ok(Err(e)) => {
tracing::error!("cannot run the verification window: {e}");
Verification::Failed
}
Err(_) => Verification::Failed,
}
}
fn run_verification_child(url: &str) -> std::io::Result<Verification> {
let mut child = Command::new(own_exe())
.arg(VERIFY_ARG)
.stdin(Stdio::piped())
.stdout(Stdio::piped())
.spawn()?;
if let Some(mut stdin) = child.stdin.take() {
// A failed write means the child is already gone; its exit status says
// how. Dropping `stdin` closes it.
let _ = writeln!(stdin, "{url}");
}
// Stops reading at the token rather than at EOF: WebKit's helper processes
// inherit the pipe and may hold it open a moment after the child quits.
let token = child
.stdout
.take()
.and_then(|out| find_token(BufReader::new(out)));
let status = child.wait()?;
Ok(outcome(token, status))
}
/// This very binary, so a development build opens its own window. After an
/// upgrade replaced the file, `current_exe` names a deleted path, and the
/// installed `pdfs-app` is the next best.
fn own_exe() -> PathBuf {
std::env::current_exe()
.ok()
.filter(|path| path.is_file())
.unwrap_or_else(|| PathBuf::from("pdfs-app"))
}
fn find_token(out: impl BufRead) -> Option<String> {
out.lines()
.map_while(Result::ok)
.find_map(|line| line.strip_prefix(TOKEN_PREFIX).map(str::to_owned))
}
/// A token wins over the exit status: the user solved the page, even if
/// WebKit's teardown crashed after it.
fn outcome(token: Option<String>, status: ExitStatus) -> Verification {
match token {
Some(token) => Verification::Solved(token),
None if status.success() => Verification::Cancelled,
None => {
tracing::error!(%status, "the verification window failed");
Verification::Failed
}
}
}
/// Run as the verification window: read the page's URL from stdin, show it, and
/// print the token once the user has solved it. Closing the window exits
/// without a token, which the app reads as a cancelled sign-in.
pub(crate) fn run_verification_window() -> glib::ExitCode {
let mut url = String::new();
if std::io::stdin().lock().read_line(&mut url).is_err() || url.trim().is_empty() {
tracing::error!("{VERIFY_ARG} expects the verification URL on stdin");
return glib::ExitCode::FAILURE;
}
let url = url.trim().to_owned();
// Not unique: the app that started it already holds APP_ID.
let app = adw::Application::builder()
.flags(gio::ApplicationFlags::NON_UNIQUE)
.build();
app.connect_activate(move |app| build_verification_window(app, &url));
// GApplication would refuse VERIFY_ARG as an unknown option.
let argv0 = std::env::args().next().unwrap_or_default();
app.run_with_args(&[argv0])
}
fn build_verification_window(app: &adw::Application, url: &str) {
let content = webkit6::UserContentManager::new();
content.add_script(&webkit6::UserScript::new(
BRIDGE,
@@ -53,24 +154,19 @@ pub(crate) fn prompt_human_verification(
.hexpand(true)
.build();
let dialog = adw::Dialog::builder()
let body = gtk4::Box::new(gtk4::Orientation::Vertical, 0);
body.append(&adw::HeaderBar::new());
body.append(&webview);
let window = adw::ApplicationWindow::builder()
.application(app)
.title(gettext("Verification"))
.content_width(420)
.content_height(560)
.icon_name(APP_ID)
.default_width(420)
.default_height(560)
.content(&body)
.build();
let header = adw::HeaderBar::new();
let body = gtk4::Box::new(gtk4::Orientation::Vertical, 0);
body.append(&header);
body.append(&webview);
dialog.set_child(Some(&body));
// Taken on the first success *or* on close, so the token is sent at most
// once and a cancelled dialog always drops the sender.
let token_tx = Rc::new(RefCell::new(Some(token_tx)));
let tx = token_tx.clone();
let dlg_weak = dialog.downgrade();
let app = app.downgrade();
content.connect_script_message_received(Some("hv"), move |_, value| {
let Some(token) = extract_token(&value.to_str()) else {
// Every `postMessage` on the page reaches here, most of them the
@@ -78,25 +174,17 @@ pub(crate) fn prompt_human_verification(
// is simply not ours.
return;
};
if let Some(tx) = tx.borrow_mut().take() {
let _ = tx.send(token);
let mut stdout = std::io::stdout().lock();
if let Err(e) = writeln!(stdout, "{TOKEN_PREFIX}{token}").and_then(|()| stdout.flush()) {
tracing::error!("cannot hand the verification token back: {e}");
}
if let Some(dlg) = dlg_weak.upgrade() {
dlg.close();
if let Some(app) = app.upgrade() {
app.quit();
}
});
// Covers the close button, Escape, and the user giving up.
dialog.connect_closed(move |_| {
token_tx.borrow_mut().take();
});
webview.load_uri(url);
let parent = ui.login.login_button.root().and_downcast::<gtk4::Window>();
// Returns immediately; the login worker stays blocked on the channel until
// the handler above sends, or the dialog closes and drops the sender.
dialog.present(parent.as_ref());
window.present();
}
/// Pull the verification token out of a message posted by the verification page.
@@ -133,7 +221,12 @@ fn extract_token(raw: &str) -> Option<String> {
#[cfg(test)]
mod tests {
use super::extract_token;
use super::{Verification, extract_token, find_token, outcome};
use std::os::unix::process::ExitStatusExt as _;
use std::process::ExitStatus;
/// The wait status of a process killed by SIGABRT.
const ABORTED: i32 = 6;
#[test]
fn a_completion_message_yields_its_token() {
@@ -163,4 +256,39 @@ mod tests {
assert!(extract_token(raw).is_none(), "accepted: {raw}");
}
}
#[test]
fn the_token_is_found_among_other_output() {
let out = "Gtk-Message: something\nhv-token tok-1\nmore\n";
assert_eq!(find_token(out.as_bytes()).as_deref(), Some("tok-1"));
assert_eq!(find_token("only chatter\n".as_bytes()), None);
}
#[test]
fn a_window_closed_without_a_token_cancels() {
assert_eq!(
outcome(None, ExitStatus::from_raw(0)),
Verification::Cancelled
);
}
/// WebKit aborts when its sandbox cannot start (B195). That must read as a
/// failure the app explains, not as the user giving up.
#[test]
fn a_window_that_died_fails() {
assert_eq!(
outcome(None, ExitStatus::from_raw(ABORTED)),
Verification::Failed
);
let exited_1 = ExitStatus::from_raw(1 << 8);
assert_eq!(outcome(None, exited_1), Verification::Failed);
}
#[test]
fn a_token_counts_even_if_the_window_died_after_it() {
assert_eq!(
outcome(Some("tok-1".into()), ExitStatus::from_raw(ABORTED)),
Verification::Solved("tok-1".into())
);
}
}
+4
View File
@@ -485,6 +485,10 @@ fn main() -> Result<()> {
return Ok(());
}
// The socket lives in the state dir, which nothing has made yet when the app
// starts the tray on a fresh install (B194).
dirs.ensure().context("create the app's directories")?;
// Ensure only one instance of the tray runs.
let tray_sock = dirs.tray_socket();
if std::os::unix::net::UnixStream::connect(&tray_sock).is_ok() {
+12 -5
View File
@@ -542,7 +542,7 @@ sequenceDiagram
actor User
participant UI as pdfs-app
participant Auth as pdfs-core auth
participant Web as WebKitGTK dialog
participant Web as pdfs-app --human-verification
participant API as Proton API
User->>UI: email and password
@@ -550,9 +550,9 @@ sequenceDiagram
Auth->>API: SRP handshake
API-->>Auth: 9001, challenge URL
Auth-->>UI: HumanVerificationRequired
UI->>Web: load challenge
UI->>Web: challenge URL (stdin)
User->>Web: solve it
Web-->>UI: token (postMessage)
Web-->>UI: token (stdout)
UI->>Auth: login_verified(token)
Auth->>API: new SRP handshake with the token
API-->>Auth: session
@@ -561,8 +561,15 @@ sequenceDiagram
- The challenge used up the first SRP handshake, so the retry starts a new one with the token
attached.
- The page may post the token as an object or as a JSON string; both are accepted.
- The CLI has no web view. It fails with a message to sign in once with `pdfs-app`; the stored
session then works for the CLI and the service.
- The page runs in a WebKitGTK view inside a child `pdfs-app`. WebKit aborts its process when its
sandbox cannot start, as on hardened systems such as secureblue (B195). In the child, that ends
the web view, not the app.
- When the child fails, the app offers the page in the user's own browser instead, as Proton Mail
Bridge does. A browser tab cannot post the token back, so the user says when they are done, and
the retry carries the challenge token itself, which the solved page made good. Its type header
lists every offered method (`auth::browser_verified`).
- The CLI has no web view, so it always takes the browser path: it prints the page's URL and waits
for Enter.
---
+66 -1
View File
@@ -47,7 +47,7 @@ original wording.
it in the index in the same change.
```markdown
### B194 — What the user sees, in one line
### B196 — What the user sees, in one line
**Status:** Open
**Found:** 2026-10-06, how it was found
@@ -100,6 +100,7 @@ a live account since.
| Entry | Title |
|---|---|
| [B195](#b195--the-app-crashes-when-proton-asks-for-a-captcha-on-secureblue) | The app crashes when Proton asks for a CAPTCHA on secureblue |
| [B193](#b193--deleting-a-file-whose-create-failed-can-trash-a-file-of-the-users-on-drive) | Deleting a file whose create failed can trash a file of the user's on Drive |
| [B191](#b191--a-file-deleted-after-its-create-failed-and-was-written-again-can-stay-on-drive) | A file deleted after its create failed and was written again can stay on Drive |
| [B190](#b190--a-file-saved-just-before-the-daemon-stops-can-keep-its-old-content-on-drive) | A file saved just before the daemon stops can keep its old content on Drive |
@@ -214,6 +215,7 @@ a live account since.
| Entry | Title |
|---|---|
| [B194](#b194--on-a-fresh-install-the-tray-exits-and-the-takeout-page-cannot-remember-its-archives) | On a fresh install the tray exits and the Takeout page cannot remember its archives |
| [B192](#b192--a-new-file-closed-empty-reaches-drive-only-half-a-minute-later) | A new file closed empty reaches Drive only half a minute later |
| [B181](#b181--the-app-shows-a-queued-edit-kept-as-a-conflict-copy-in-english) | The app shows a queued edit kept as a conflict copy in English |
| [B180](#b180--a-stop-waits-10-s-for-a-drain-worker-that-slept-through-it) | A stop waits 10 s for a drain worker that slept through it |
@@ -296,6 +298,69 @@ a live account since.
Newest first.
### B195 — The app crashes when Proton asks for a CAPTCHA on secureblue
**Status:** Fixed (unverified). On 2026-10-08 the reporter confirmed that the app survives, but
the CAPTCHA still could not be solved; the browser fallback below has not run on secureblue yet.
**Found:** 2026-10-07, [#29](https://github.com/narrrl/proton-drive-linux/issues/29). On
secureblue 44 (a hardened Fedora Atomic), `pdfs-app` aborted a few seconds after the sign-in, with
`bwrap: Can't get type of source /run/systemd/journal/socket: Permission denied` and
`Failed to fully launch dbus-proxy`.
**Where:** `crates/pdfs-gui/src/app/pages/verify.rs`, `crates/pdfs-gui/src/app/pages/login.rs`,
`crates/pdfs-core/src/auth.rs`, `crates/pdfs-cli/src/main.rs`
**Repro:** Sign in on secureblue from a network Proton asks a CAPTCHA for, such as a VPN.
**Cause.** The CAPTCHA page runs in a WebKitGTK view (B8). Before it loads anything, WebKit starts
its sandbox: bubblewrap, with the journal socket bound in, and `xdg-dbus-proxy`. secureblue keeps
bubblewrap from the socket, the proxy does not start, and WebKit ends its process with `g_error`.
WebKit binds the socket with `--ro-bind-try`, but bubblewrap skips only a missing path, not one it
may not read, and WebKit has no switch to leave the socket out.
The view was in the app's own process, so the whole app went down, and nothing in our code can
catch that.
**Fix.** The view runs in a child, `pdfs-app --human-verification`, that reads the URL on stdin
and prints the token on stdout. A child that exits without a token after a crash or a non-zero
status no longer ends the sign-in: the app offers the page in the user's own browser, as Proton
Mail Bridge does. The tab cannot post the token back, so the user says when they are done, and the
retry carries the challenge token, typed with every offered method. `pdfs login` takes the same
path. The sandbox is not switched off by the app: users choose a hardened system for that
isolation. TROUBLESHOOTING.md keeps the one-time workaround as a last resort.
**Test:** unit tests `a_window_that_died_fails`, `a_window_closed_without_a_token_cancels`,
`a_token_counts_even_if_the_window_died_after_it`, `the_token_is_found_among_other_output`,
`the_browser_gets_the_full_verification_page` and
`a_browser_verification_retries_with_the_challenge_token`. The browser retry has not run against a
live challenge: Proton only asks for one from a network it distrusts.
On 2026-10-08 the child ran under real WebKit on Arch against a local page that posts a completion,
and handed back its token.
---
### B194 — On a fresh install the tray exits and the Takeout page cannot remember its archives
**Status:** Fixed.
**Found:** 2026-10-07, in the log of [#29](https://github.com/narrrl/proton-drive-linux/issues/29):
`failed to bind tray single-instance socket: No such file or directory` and
`cannot remember staged Takeout archives: No such file or directory`.
**Where:** `crates/pdfs-gui/src/main.rs`, `build_window` in `crates/pdfs-gui/src/app/main.rs`
**Repro:** Start `pdfs-app` with no `~/.local/state/proton-drive-linux`, as on a fresh install. The
tray is gone, and staging a Takeout archive logs the warning.
**Cause.** Both write to the state directory, and only the daemon and the CLI made it
(`AppDirs::ensure`). The app starts the tray before the first sign-in, so before the daemon has
ever run.
**Fix.** `pdfs-tray` and `pdfs-app` call `AppDirs::ensure` at start, which also makes the
directories owner-only (B6).
**Verified:** 2026-10-08, `pdfs-tray` with `XDG_STATE_HOME`, `XDG_CONFIG_HOME` and
`XDG_CACHE_HOME` pointing at an empty directory. It exited with the error before the fix, and
afterwards ran with `tray.sock` in a `0700` state directory.
---
### B193 — Deleting a file whose create failed can trash a file of the user's on Drive
**Status:** Fixed (unverified).
+42
View File
@@ -11,6 +11,42 @@ scratch (user data in `staging/` and `recovery/` is never touched by this).
## [Unreleased]
### Fixed
- **A CAPTCHA could not be solved on hardened systems.** When the verification page cannot open in
the app, as on secureblue, the app now offers it in your browser and continues the sign-in
once you are done. `pdfs login` now handles a CAPTCHA the same way instead of failing.
([#29](https://github.com/narrrl/proton-drive-linux/issues/29))
## [3.1.2] — 2026-10-08
Schema: **42**, unchanged.
### Fixed
- **The app crashed when Proton asked for a CAPTCHA on hardened systems.** On secureblue, WebKit
cannot start the sandbox for the verification page and ends its process, which took the app
down with it. The page now opens in a separate window process: if that process fails, the
sign-in stops with a message that says why, and TROUBLESHOOTING.md has a workaround.
([#29](https://github.com/narrrl/proton-drive-linux/issues/29))
- **On a fresh install the tray icon did not start.** The tray and the app now create their state
directory themselves instead of waiting for the service to do it. This also lets the Takeout
page remember staged archives before the first mount.
([#29](https://github.com/narrrl/proton-drive-linux/issues/29))
## [3.1.1] — 2026-10-07
Schema: **42**, unchanged.
### Changed
- **The client identifies itself with its release.** Sign-in and every API call used to send the
fixed `external-drive-linux@0.1.0-alpha` and `proton-drive-linux/0.1.0`. If Proton retired that
version, every release would fail to sign in at once and no update could fix it. The client now
sends `external-drive-linux@<version>-stable` and `proton-drive-linux/<version>`. `app_version`
and `user_agent` in `config.json` are optional overrides now. The fixed values that releases up
to 3.1.0 wrote there count as unset and are removed on the next save. A value you set by hand is
kept.
- The About dialog shows the release version, and its debug info shows the identity that is
actually sent.
## [3.1.0] — 2026-10-07
Schema: **42**, unchanged.
@@ -1635,6 +1671,12 @@ First stable release: FUSE files-on-demand mount, sync daemon under `proton-driv
- The outstanding FUSE defects tracked in `docs/BUGS.md`, plus a truncate defect, validated
by a new POSIX compliance suite for the filesystem.
[3.1.2]: https://github.com/narrrl/proton-drive-linux/releases/tag/v3.1.2
[3.1.1]: https://github.com/narrrl/proton-drive-linux/releases/tag/v3.1.1
[3.1.0]: https://github.com/narrrl/proton-drive-linux/releases/tag/v3.1.0
[3.0.0]: https://github.com/narrrl/proton-drive-linux/releases/tag/v3.0.0
[2.10.0]: https://github.com/narrrl/proton-drive-linux/releases/tag/v2.10.0
+5 -1
View File
@@ -89,7 +89,11 @@ fix it.
| `open_with` | object | `xdg-open` | — | See [`open_with`](#open_with) |
| `prompt` | object | built-in window | — | See [`prompt`](#prompt) |
`app_version` and `user_agent` identify the client to Proton. Leave them alone.
`app_version` and `user_agent` identify the client to Proton. When the keys are absent, the
client sends its own release (`external-drive-linux@<version>-stable`, `proton-drive-linux/<version>`).
Leave them out unless a support case asks for a different value. The fixed
`external-drive-linux@0.1.0-alpha` and `proton-drive-linux/0.1.0` that releases up to 3.1.0 wrote
here are treated as absent and removed on the next save.
### `ignore_patterns`
+18 -2
View File
@@ -69,8 +69,24 @@ pdfs status
## Signing in
**"Proton is asking for a CAPTCHA"** — Proton wants human verification, usually on a VPN or an
unfamiliar network. The CLI cannot show it. Sign in with `pdfs-app`, which displays the challenge;
the stored session then works for the CLI too.
unfamiliar network. `pdfs login` prints the verification page's address: open it in your browser,
complete it, then press Enter. The app shows the page in its own window.
**"Verify in Your Browser"** — WebKit, which shows the CAPTCHA page in the app, could not start
its sandbox. Hardened systems such as secureblue keep its bubblewrap from the journal socket, and
the log then shows `bwrap: Can't get type of source /run/systemd/journal/socket: Permission
denied` and `Failed to fully launch dbus-proxy`. Choose **Open Verification Page**, complete the
page in your browser, then choose **Continue**. If that sign-in is refused too, check that `bwrap`
and `xdg-dbus-proxy` are installed. As a last resort, sign in once with the sandbox switched off
for this one run:
```bash
WEBKIT_DISABLE_SANDBOX_THIS_IS_DANGEROUS=1 pdfs-app
```
Quit the app first, so this starts a new instance. The page then runs without WebKit's isolation,
so use this only for the sign-in. The stored session keeps working without it. Signing in from
your usual network, without a VPN, often avoids the CAPTCHA in the first place.
**Sign-in works but is forgotten after a restart** — no Secret Service provider is running, or its
keyring is locked. Install and unlock GNOME Keyring, KWallet or KeePassXC (with Secret Service
+1 -1
View File
@@ -9,7 +9,7 @@
# Build + install: cd packaging && makepkg -fi
pkgname=proton-drive-linux
pkgver=3.1.0
pkgver=3.1.2
pkgrel=1
pkgdesc="Unofficial Proton Drive client for Linux: files-on-demand FUSE mount, CLI, GTK4 app + tray"
arch=('x86_64')
@@ -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 = 3.0.0
pkgver = 3.1.1
pkgrel = 1
url = https://proton-drive.narl.io
arch = x86_64
@@ -21,21 +21,21 @@ pkgbase = proton-drive-for-linux-bin
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=3.0.0
provides = proton-drive-linux=3.0.0
provides = proton-drive-for-linux=3.1.1
provides = proton-drive-linux=3.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-3.0.0-x86_64.tar.gz::https://github.com/narrrl/proton-drive-linux/releases/download/v3.0.0/proton-drive-linux-3.0.0-x86_64.tar.gz
source = io.narl.proton-drive-linux-3.0.0.desktop::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v3.0.0/packaging/io.narl.proton-drive-linux.desktop
source = io.narl.proton-drive-linux-tray-3.0.0.desktop::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v3.0.0/packaging/io.narl.proton-drive-linux-tray.desktop
source = io.narl.proton-drive-linux-3.0.0.svg::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v3.0.0/packaging/io.narl.proton-drive-linux.svg
source = proton-drive-3.0.0.service::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v3.0.0/packaging/proton-drive.service
source = LICENSE-3.0.0::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v3.0.0/LICENSE
sha256sums = 4d72420f287e0a9b1d65dfc2954779b2df1bf367cb41ffe28519b2791451b6ed
source = proton-drive-linux-3.1.1-x86_64.tar.gz::https://github.com/narrrl/proton-drive-linux/releases/download/v3.1.1/proton-drive-linux-3.1.1-x86_64.tar.gz
source = io.narl.proton-drive-linux-3.1.1.desktop::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v3.1.1/packaging/io.narl.proton-drive-linux.desktop
source = io.narl.proton-drive-linux-tray-3.1.1.desktop::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v3.1.1/packaging/io.narl.proton-drive-linux-tray.desktop
source = io.narl.proton-drive-linux-3.1.1.svg::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v3.1.1/packaging/io.narl.proton-drive-linux.svg
source = proton-drive-3.1.1.service::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v3.1.1/packaging/proton-drive.service
source = LICENSE-3.1.1::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v3.1.1/LICENSE
sha256sums = e8a2ca20dc5a4b050a85056196eb7f3f4a428db2a8d41aa09b813e007609c0b6
sha256sums = d190d6771fff0b975271fb62fd3fb0fa8bbf17d7278c10853c18557855b0c123
sha256sums = 1d95e250370220e3bb6aead6ce34d1d6cc759f42c4803b75f1667e78ff47c6c0
sha256sums = e598a93c2715c3a9fdc7fb937902083d4a1135e8fbdfe6fe7e37f0383ebbd828
@@ -1,7 +1,7 @@
# Maintainer: Nils Pukropp <contact@narl.io>
pkgname=proton-drive-for-linux-bin
pkgver=3.0.0
pkgver=3.1.1
pkgrel=1
pkgdesc="Unofficial Proton Drive client: FUSE files-on-demand mount, CLI, GTK4 app, tray (binaries)"
arch=('x86_64')
@@ -34,7 +34,7 @@ source=("proton-drive-linux-$pkgver-x86_64.tar.gz::$_repo/releases/download/$_ta
"io.narl.proton-drive-linux-$pkgver.svg::$_raw/packaging/io.narl.proton-drive-linux.svg"
"proton-drive-$pkgver.service::$_raw/packaging/proton-drive.service"
"LICENSE-$pkgver::$_raw/LICENSE")
sha256sums=('4d72420f287e0a9b1d65dfc2954779b2df1bf367cb41ffe28519b2791451b6ed'
sha256sums=('e8a2ca20dc5a4b050a85056196eb7f3f4a428db2a8d41aa09b813e007609c0b6'
'd190d6771fff0b975271fb62fd3fb0fa8bbf17d7278c10853c18557855b0c123'
'1d95e250370220e3bb6aead6ce34d1d6cc759f42c4803b75f1667e78ff47c6c0'
'e598a93c2715c3a9fdc7fb937902083d4a1135e8fbdfe6fe7e37f0383ebbd828'
@@ -1,6 +1,6 @@
pkgbase = proton-drive-for-linux-git
pkgdesc = Unofficial Proton Drive client: FUSE files-on-demand mount, CLI, GTK4 app, tray (git)
pkgver = 3.0.0.r0.g2177383
pkgver = 3.1.1.r0.gedd62c5
pkgrel = 1
url = https://proton-drive.narl.io
arch = x86_64
@@ -24,8 +24,8 @@ pkgbase = proton-drive-for-linux-git
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=3.0.0.r0.g2177383
provides = proton-drive-linux=3.0.0.r0.g2177383
provides = proton-drive-for-linux=3.1.1.r0.gedd62c5
provides = proton-drive-linux=3.1.1.r0.gedd62c5
provides = pdfs
conflicts = proton-drive-linux
conflicts = proton-drive-for-linux
@@ -1,7 +1,7 @@
# Maintainer: Nils Pukropp <contact@narl.io>
pkgname=proton-drive-for-linux-git
pkgver=3.0.0.r0.g2177383
pkgver=3.1.1.r0.gedd62c5
pkgrel=1
pkgdesc="Unofficial Proton Drive client: FUSE files-on-demand mount, CLI, GTK4 app, tray (git)"
arch=('x86_64')
@@ -1,6 +1,6 @@
pkgbase = proton-drive-for-linux
pkgdesc = Unofficial Proton Drive client: files-on-demand FUSE mount, CLI, GTK4 app and tray
pkgver = 3.0.0
pkgver = 3.1.1
pkgrel = 1
url = https://proton-drive.narl.io
arch = x86_64
@@ -23,13 +23,13 @@ pkgbase = proton-drive-for-linux
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=3.0.0
provides = proton-drive-linux=3.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-3.0.0.tar.gz::https://github.com/narrrl/proton-drive-linux/archive/refs/tags/v3.0.0.tar.gz
sha256sums = 3a9ca82adae6b03e2b33af520ec49f702a3b4c83151ccc70ae3c21645b719ab5
source = proton-drive-for-linux-3.1.1.tar.gz::https://github.com/narrrl/proton-drive-linux/archive/refs/tags/v3.1.1.tar.gz
sha256sums = c16019c75959d5056c8ae486e0a4dc1f6346828ea93f346dfeae7da717629256
pkgname = proton-drive-for-linux
@@ -1,7 +1,7 @@
# Maintainer: Nils Pukropp <contact@narl.io>
pkgname=proton-drive-for-linux
pkgver=3.0.0
pkgver=3.1.1
pkgrel=1
pkgdesc="Unofficial Proton Drive client: files-on-demand FUSE mount, CLI, GTK4 app and tray"
arch=('x86_64')
@@ -24,7 +24,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::$_repo/archive/refs/tags/v$pkgver.tar.gz")
sha256sums=('3a9ca82adae6b03e2b33af520ec49f702a3b4c83151ccc70ae3c21645b719ab5')
sha256sums=('c16019c75959d5056c8ae486e0a4dc1f6346828ea93f346dfeae7da717629256')
_srcname="proton-drive-linux-$pkgver"
+137 -97
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-07 02:39+0200\n"
"POT-Creation-Date: 2026-10-08 18:47+0200\n"
"PO-Revision-Date: 2026-09-23 12:00+0200\n"
"Last-Translator: Proton Drive for Linux contributors\n"
"Language-Team: German\n"
@@ -57,7 +57,7 @@ msgstr "%-d. %b %Y"
msgid "%A, %B %-d, %Y, %H:%M"
msgstr "%A, %-d. %B %Y, %H:%M"
#: crates/pdfs-gui/src/app/main.rs:747
#: crates/pdfs-gui/src/app/main.rs:760
#: crates/pdfs-gui/src/app/pages/activity_text.rs:539
#: crates/pdfs-gui/src/app/pages/browser.rs:454
#: crates/pdfs-gui/src/app/pages/browser.rs:819
@@ -70,91 +70,91 @@ msgstr "%A, %-d. %B %Y, %H:%M"
msgid "My files"
msgstr "Meine Dateien"
#: crates/pdfs-gui/src/app/main.rs:750 crates/pdfs-gui/src/app/main.rs:1394
#: crates/pdfs-gui/src/app/main.rs:763 crates/pdfs-gui/src/app/main.rs:1407
#: crates/pdfs-gui/src/app/pages/albums.rs:638
#: crates/pdfs-gui/src/app/pages/photos.rs:842
#: crates/pdfs-gui/src/app/pages/places.rs:441
msgid "Photos"
msgstr "Fotos"
#: crates/pdfs-gui/src/app/main.rs:755
#: crates/pdfs-gui/src/app/main.rs:768
#: crates/pdfs-gui/src/app/pages/shared.rs:168
#: crates/pdfs-gui/src/app/pages/shared.rs:482
msgid "Shared with me"
msgstr "Mit mir geteilt"
#: crates/pdfs-gui/src/app/main.rs:760
#: crates/pdfs-gui/src/app/main.rs:773
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:120
msgid "Shared by me"
msgstr "Von mir geteilt"
#: crates/pdfs-gui/src/app/main.rs:763
#: crates/pdfs-gui/src/app/main.rs:776
#: crates/pdfs-gui/src/app/pages/devices.rs:140
#: crates/pdfs-gui/src/app/pages/devices.rs:481
msgid "Computers"
msgstr "Computer"
#: crates/pdfs-gui/src/app/main.rs:764
#: crates/pdfs-gui/src/app/main.rs:777
#: crates/pdfs-gui/src/app/pages/trash.rs:101
msgid "Trash"
msgstr "Papierkorb"
#. Translators: sidebar entry for the page listing this computer's synced folders.
#: crates/pdfs-gui/src/app/main.rs:766
#: crates/pdfs-gui/src/app/main.rs:779
msgid "Sync"
msgstr "Synchronisierung"
#. Translators: a failed action's toast. {what} says what failed, such as
#. "Couldn't rename"; {detail} is the reason, usually untranslated text
#. from the mount service.
#: crates/pdfs-gui/src/app/main.rs:1083
#: crates/pdfs-gui/src/app/main.rs:1096
#, rust-format
msgid "{what}: {detail}"
msgstr "{what}: {detail}"
#: crates/pdfs-gui/src/app/main.rs:1102
#: crates/pdfs-gui/src/app/main.rs:1115
msgid "You're offline"
msgstr "Keine Internetverbindung"
#: crates/pdfs-gui/src/app/main.rs:1103
#: crates/pdfs-gui/src/app/main.rs:1116
msgid "That's not there any more"
msgstr "Das ist nicht mehr vorhanden"
#: crates/pdfs-gui/src/app/main.rs:1104
#: crates/pdfs-gui/src/app/main.rs:1117
msgid "You don't have access to that"
msgstr "Kein Zugriff darauf"
#: crates/pdfs-gui/src/app/main.rs:1105
#: crates/pdfs-gui/src/app/main.rs:1118
msgid "Something changed this first"
msgstr "Etwas anderes hat dies zuerst geändert"
#: crates/pdfs-gui/src/app/main.rs:1106
#: crates/pdfs-gui/src/app/main.rs:1119
msgid "Your Proton Drive is full"
msgstr "Das Proton Drive ist voll"
#: crates/pdfs-gui/src/app/main.rs:1147 crates/pdfs-gui/src/app/main.rs:1376
#: crates/pdfs-gui/src/app/main.rs:1160 crates/pdfs-gui/src/app/main.rs:1389
#: crates/pdfs-gui/src/app/pages/status.rs:385
msgid "Preferences"
msgstr "Einstellungen"
#: crates/pdfs-gui/src/app/main.rs:1148
#: crates/pdfs-gui/src/app/main.rs:1161
#: crates/pdfs-gui/src/app/widgets/compat.rs:262
msgid "Keyboard Shortcuts"
msgstr "Tastenkürzel"
#: crates/pdfs-gui/src/app/main.rs:1150
#: crates/pdfs-gui/src/app/main.rs:1163
msgid "About Proton Drive for Linux"
msgstr "Info zu Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1155
#: crates/pdfs-gui/src/app/main.rs:1168
msgid "Main menu"
msgstr "Hauptmenü"
#: crates/pdfs-gui/src/app/main.rs:1211
#: crates/pdfs-gui/src/app/main.rs:1224
msgid "Proton Drive for Linux"
msgstr "Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1219
#: crates/pdfs-gui/src/app/main.rs:1232
msgid ""
"Files-on-demand Proton Drive for the Linux desktop.\n"
"\n"
@@ -166,23 +166,23 @@ msgstr ""
"Inoffizieller Client – nicht mit Proton AG verbunden, von Proton AG "
"unterstützt oder befürwortet."
#: crates/pdfs-gui/src/app/main.rs:1224
#: crates/pdfs-gui/src/app/main.rs:1237
msgid "Source Code"
msgstr "Quellcode"
#: crates/pdfs-gui/src/app/main.rs:1228
#: crates/pdfs-gui/src/app/main.rs:1241
msgid "Proton Terms of Service"
msgstr "Nutzungsbedingungen von Proton"
#: crates/pdfs-gui/src/app/main.rs:1232
#: crates/pdfs-gui/src/app/main.rs:1245
msgid "Proton Privacy Policy"
msgstr "Datenschutzerklärung von Proton"
#: crates/pdfs-gui/src/app/main.rs:1237
#: crates/pdfs-gui/src/app/main.rs:1250
msgid "Disclaimer"
msgstr "Haftungsausschluss"
#: crates/pdfs-gui/src/app/main.rs:1241
#: crates/pdfs-gui/src/app/main.rs:1254
msgid ""
"This is an unofficial, community-built client. It is not affiliated with, "
"endorsed by, or supported by Proton AG.\n"
@@ -207,7 +207,7 @@ msgstr ""
"bereitgestellt. Daten, deren Verlust nicht hinnehmbar ist, sollten "
"zusätzlich gesichert werden."
#: crates/pdfs-gui/src/app/main.rs:1249
#: crates/pdfs-gui/src/app/main.rs:1262
msgid ""
"Places are named with data from <a href=\"https://www.geonames.org/"
"\">GeoNames</a>, licensed under <a href=\"https://creativecommons.org/"
@@ -217,7 +217,7 @@ msgstr ""
"\">GeoNames</a>, lizenziert unter <a href=\"https://creativecommons.org/"
"licenses/by/4.0/\">CC BY 4.0</a>."
#: crates/pdfs-gui/src/app/main.rs:1257
#: crates/pdfs-gui/src/app/main.rs:1270
msgid ""
"The places map is drawn from <a href=\"https://www.naturalearthdata.com/"
"\">Natural Earth</a> land outlines and country borders, which are in the "
@@ -227,7 +227,7 @@ msgstr ""
"href=\"https://www.naturalearthdata.com/\">Natural Earth</a> gezeichnet, die "
"gemeinfrei sind."
#: crates/pdfs-gui/src/app/main.rs:1265
#: crates/pdfs-gui/src/app/main.rs:1278
msgid ""
"The street map, when turned on, comes from <a href=\"https://openfreemap.org/"
"\">OpenFreeMap</a> in the <a href=\"https://www.openmaptiles.org/"
@@ -243,15 +243,15 @@ msgstr ""
#. Translators: replace with your name(s) and email address(es), one
#. per line, to be credited in the About dialog.
#: crates/pdfs-gui/src/app/main.rs:1276
#: crates/pdfs-gui/src/app/main.rs:1289
msgid "translator-credits"
msgstr "Mitwirkende an Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1314
#: crates/pdfs-gui/src/app/main.rs:1327
msgid "Stop Proton Drive?"
msgstr "Proton Drive beenden?"
#: crates/pdfs-gui/src/app/main.rs:1315
#: crates/pdfs-gui/src/app/main.rs:1328
msgid ""
"My files goes offline and nothing syncs until you connect again. Proton "
"Drive starts again at your next login."
@@ -260,7 +260,7 @@ msgstr ""
"eine Verbindung hergestellt wird. Proton Drive startet bei der nächsten "
"Anmeldung erneut."
#: crates/pdfs-gui/src/app/main.rs:1317 crates/pdfs-gui/src/app/main.rs:1592
#: crates/pdfs-gui/src/app/main.rs:1330 crates/pdfs-gui/src/app/main.rs:1605
#: crates/pdfs-gui/src/app/pages/albums.rs:243
#: crates/pdfs-gui/src/app/pages/albums.rs:428
#: crates/pdfs-gui/src/app/pages/browser.rs:1892
@@ -275,8 +275,9 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1013
#: crates/pdfs-gui/src/app/pages/locations.rs:1488
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
#: crates/pdfs-gui/src/app/pages/login.rs:378
#: crates/pdfs-gui/src/app/pages/login.rs:492
#: crates/pdfs-gui/src/app/pages/login.rs:389
#: crates/pdfs-gui/src/app/pages/login.rs:503
#: crates/pdfs-gui/src/app/pages/login.rs:549
#: crates/pdfs-gui/src/app/pages/photos.rs:2055
#: crates/pdfs-gui/src/app/pages/shared.rs:946
#: crates/pdfs-gui/src/app/pages/shared.rs:1027
@@ -291,30 +292,30 @@ msgstr ""
msgid "Cancel"
msgstr "Abbrechen"
#: crates/pdfs-gui/src/app/main.rs:1318
#: crates/pdfs-gui/src/app/main.rs:1331
msgctxt "verb"
msgid "Stop"
msgstr "Beenden"
#: crates/pdfs-gui/src/app/main.rs:1335
#: crates/pdfs-gui/src/app/main.rs:1348
msgid "Couldn't stop Proton Drive"
msgstr "Proton Drive konnte nicht beendet werden"
#: crates/pdfs-gui/src/app/main.rs:1336
#: crates/pdfs-gui/src/app/main.rs:1349
msgid "The Proton Drive service did not stop."
msgstr "Der Proton-Drive-Dienst wurde nicht beendet."
#: crates/pdfs-gui/src/app/main.rs:1372
#: crates/pdfs-gui/src/app/main.rs:1385
#: crates/pdfs-gui/src/app/pages/status.rs:254
msgid "General"
msgstr "Allgemein"
#: crates/pdfs-gui/src/app/main.rs:1374
#: crates/pdfs-gui/src/app/main.rs:1387
#: crates/pdfs-gui/src/app/pages/browser.rs:247
msgid "Search Drive"
msgstr "Drive durchsuchen"
#: crates/pdfs-gui/src/app/main.rs:1375
#: crates/pdfs-gui/src/app/main.rs:1388
#: crates/pdfs-gui/src/app/pages/browser.rs:957
#: crates/pdfs-gui/src/app/pages/devices.rs:554
#: crates/pdfs-gui/src/app/pages/shared.rs:586
@@ -323,38 +324,38 @@ msgstr "Drive durchsuchen"
msgid "Refresh"
msgstr "Aktualisieren"
#: crates/pdfs-gui/src/app/main.rs:1377
#: crates/pdfs-gui/src/app/main.rs:1390
msgid "Keyboard shortcuts"
msgstr "Tastenkürzel"
#: crates/pdfs-gui/src/app/main.rs:1381
#: crates/pdfs-gui/src/app/main.rs:1394
msgid "Files"
msgstr "Dateien"
#: crates/pdfs-gui/src/app/main.rs:1383
#: crates/pdfs-gui/src/app/main.rs:1396
#: crates/pdfs-gui/src/app/pages/browser.rs:294
msgid "New folder"
msgstr "Neuer Ordner"
#: crates/pdfs-gui/src/app/main.rs:1384
#: crates/pdfs-gui/src/app/main.rs:1397
#: crates/pdfs-gui/src/app/pages/browser.rs:290
msgid "Upload files"
msgstr "Dateien hochladen"
#: crates/pdfs-gui/src/app/main.rs:1385
#: crates/pdfs-gui/src/app/main.rs:1398
msgid "Back / forward"
msgstr "Zurück / Vor"
#: crates/pdfs-gui/src/app/main.rs:1386
#: crates/pdfs-gui/src/app/main.rs:1399
#: crates/pdfs-gui/src/app/pages/browser.rs:1943
msgid "Parent folder"
msgstr "Übergeordneter Ordner"
#: crates/pdfs-gui/src/app/main.rs:1387
#: crates/pdfs-gui/src/app/main.rs:1400
msgid "Grid / list"
msgstr "Raster / Liste"
#: crates/pdfs-gui/src/app/main.rs:1388
#: crates/pdfs-gui/src/app/main.rs:1401
#: crates/pdfs-gui/src/app/pages/albums.rs:298
#: crates/pdfs-gui/src/app/pages/browser.rs:1871
#: crates/pdfs-gui/src/app/pages/browser.rs:1893
@@ -363,7 +364,7 @@ msgstr "Raster / Liste"
msgid "Rename"
msgstr "Umbenennen"
#: crates/pdfs-gui/src/app/main.rs:1389 crates/pdfs-gui/src/app/main.rs:1409
#: crates/pdfs-gui/src/app/main.rs:1402 crates/pdfs-gui/src/app/main.rs:1422
#: crates/pdfs-gui/src/app/pages/browser.rs:357
#: crates/pdfs-gui/src/app/pages/browser.rs:900
#: crates/pdfs-gui/src/app/pages/browser.rs:932
@@ -373,73 +374,73 @@ msgstr "Umbenennen"
msgid "Move to Trash"
msgstr "In den Papierkorb verschieben"
#: crates/pdfs-gui/src/app/main.rs:1390
#: crates/pdfs-gui/src/app/main.rs:1403
msgid "Clear the selection"
msgstr "Auswahl aufheben"
#: crates/pdfs-gui/src/app/main.rs:1396
#: crates/pdfs-gui/src/app/main.rs:1409
msgid "Larger thumbnails"
msgstr "Größere Vorschaubilder"
#: crates/pdfs-gui/src/app/main.rs:1397
#: crates/pdfs-gui/src/app/main.rs:1410
msgid "Smaller thumbnails"
msgstr "Kleinere Vorschaubilder"
#: crates/pdfs-gui/src/app/main.rs:1398
#: crates/pdfs-gui/src/app/main.rs:1411
msgid "Reset thumbnail size"
msgstr "Vorschaubildgröße zurücksetzen"
#: crates/pdfs-gui/src/app/main.rs:1399
#: crates/pdfs-gui/src/app/main.rs:1412
msgid "Select all"
msgstr "Alles auswählen"
#: crates/pdfs-gui/src/app/main.rs:1403
#: crates/pdfs-gui/src/app/main.rs:1416
msgid "Photo Viewer"
msgstr "Fotobetrachter"
#: crates/pdfs-gui/src/app/main.rs:1405
#: crates/pdfs-gui/src/app/main.rs:1418
msgid "Previous / next photo"
msgstr "Vorheriges / nächstes Foto"
#: crates/pdfs-gui/src/app/main.rs:1406
#: crates/pdfs-gui/src/app/main.rs:1419
msgid "First / last photo"
msgstr "Erstes / letztes Foto"
#: crates/pdfs-gui/src/app/main.rs:1407
#: crates/pdfs-gui/src/app/main.rs:1420
msgid "Show details"
msgstr "Details anzeigen"
#: crates/pdfs-gui/src/app/main.rs:1408
#: crates/pdfs-gui/src/app/main.rs:1421
msgid "Fullscreen"
msgstr "Vollbild"
#: crates/pdfs-gui/src/app/main.rs:1410
#: crates/pdfs-gui/src/app/main.rs:1423
msgid "Close"
msgstr "Schließen"
#: crates/pdfs-gui/src/app/main.rs:1500
#: crates/pdfs-gui/src/app/main.rs:1513
msgid "Select a single item to rename it"
msgstr "Zum Umbenennen genau ein Element auswählen"
#: crates/pdfs-gui/src/app/main.rs:1660
#: crates/pdfs-gui/src/app/main.rs:1673
#: crates/pdfs-gui/src/app/pages/albums.rs:85
#: crates/pdfs-gui/src/app/pages/places.rs:104
#: crates/pdfs-gui/src/app/pages/status.rs:1371
msgid "Not connected"
msgstr "Nicht verbunden"
#: crates/pdfs-gui/src/app/main.rs:1661
#: crates/pdfs-gui/src/app/main.rs:1674
msgid "The Proton Drive service isn't running."
msgstr "Der Proton-Drive-Dienst läuft nicht."
#: crates/pdfs-gui/src/app/main.rs:1669
#: crates/pdfs-gui/src/app/main.rs:1682
#: crates/pdfs-gui/src/app/pages/status.rs:336
#: crates/pdfs-gui/src/hud/mod.rs:274 crates/pdfs-gui/src/hud/mod.rs:595
#: crates/pdfs-gui/src/main.rs:453
msgid "Connecting…"
msgstr "Verbindung wird hergestellt …"
#: crates/pdfs-gui/src/app/main.rs:1670
#: crates/pdfs-gui/src/app/main.rs:1683
msgid "Waiting for the Proton Drive service to start."
msgstr "Warten auf den Start des Proton-Drive-Dienstes."
@@ -3205,21 +3206,21 @@ msgstr "Anmeldung läuft …"
msgid "Complete the verification to continue…"
msgstr "Zum Fortfahren die Überprüfung abschließen …"
#: crates/pdfs-gui/src/app/pages/login.rs:185
#: crates/pdfs-gui/src/app/pages/login.rs:195
msgid "login cancelled"
msgstr "Anmeldung abgebrochen"
#: crates/pdfs-gui/src/app/pages/login.rs:218
#: crates/pdfs-gui/src/app/pages/login.rs:228
msgid "Too many sign-in attempts. Wait a few minutes and try again."
msgstr "Zu viele Anmeldeversuche. Einige Minuten warten und erneut versuchen."
#: crates/pdfs-gui/src/app/pages/login.rs:224
#: crates/pdfs-gui/src/app/pages/login.rs:234
msgid "Couldn't reach Proton. Check your internet connection and try again."
msgstr ""
"Proton ist nicht erreichbar. Bitte die Internetverbindung prüfen und erneut "
"versuchen."
#: crates/pdfs-gui/src/app/pages/login.rs:227
#: crates/pdfs-gui/src/app/pages/login.rs:237
msgid ""
"Signed in, but the session couldn't be saved to the system keyring. Make "
"sure a keyring (GNOME Keyring or KWallet) is running and unlocked."
@@ -3228,19 +3229,19 @@ msgstr ""
"gespeichert werden. Bitte sicherstellen, dass ein Schlüsselbund (GNOME "
"Keyring oder KWallet) läuft und entsperrt ist."
#: crates/pdfs-gui/src/app/pages/login.rs:230
#: crates/pdfs-gui/src/app/pages/login.rs:240
msgid "Sign-in cancelled: no two-factor code was entered."
msgstr "Anmeldung abgebrochen: Es wurde kein Zwei-Faktor-Code eingegeben."
#: crates/pdfs-gui/src/app/pages/login.rs:233
#: crates/pdfs-gui/src/app/pages/login.rs:243
msgid "Sign-in cancelled: no mailbox password was entered."
msgstr "Anmeldung abgebrochen: Es wurde kein Postfach-Passwort eingegeben."
#: crates/pdfs-gui/src/app/pages/login.rs:236
#: crates/pdfs-gui/src/app/pages/login.rs:246
msgid "That mailbox password didn't unlock your account."
msgstr "Das Postfach-Passwort hat Ihr Konto nicht entsperrt."
#: crates/pdfs-gui/src/app/pages/login.rs:239
#: crates/pdfs-gui/src/app/pages/login.rs:249
msgid ""
"Sign-in cancelled: the verification wasn't completed. Sign in again to get a "
"new one."
@@ -3249,79 +3250,108 @@ msgstr ""
"neue Überprüfung erneut anmelden."
#. Translators: {error} is an error message, usually in English.
#: crates/pdfs-gui/src/app/pages/login.rs:244
#: crates/pdfs-gui/src/app/pages/login.rs:254
#, rust-format
msgid "Sign-in failed: {error}"
msgstr "Anmeldung fehlgeschlagen: {error}"
#: crates/pdfs-gui/src/app/pages/login.rs:354
#: crates/pdfs-gui/src/app/pages/login.rs:365
msgid "That mailbox password didn't unlock your account. Try again."
msgstr "Das Postfach-Passwort hat Ihr Konto nicht entsperrt. Versuchen Sie es erneut."
msgstr ""
"Das Postfach-Passwort hat Ihr Konto nicht entsperrt. Versuchen Sie es erneut."
#: crates/pdfs-gui/src/app/pages/login.rs:356
#: crates/pdfs-gui/src/app/pages/login.rs:367
msgid ""
"This account has a separate mailbox password. Enter it to unlock your files."
msgstr "Dieses Konto hat ein separates Postfach-Passwort. Geben Sie es ein, um Ihre Dateien zu entsperren."
msgstr ""
"Dieses Konto hat ein separates Postfach-Passwort. Geben Sie es ein, um Ihre "
"Dateien zu entsperren."
#: crates/pdfs-gui/src/app/pages/login.rs:359
#: crates/pdfs-gui/src/app/pages/login.rs:370
msgid "Mailbox Password"
msgstr "Postfach-Passwort"
#: crates/pdfs-gui/src/app/pages/login.rs:365
#: crates/pdfs-gui/src/app/pages/login.rs:376
msgid "Mailbox password"
msgstr "Postfach-Passwort"
#: crates/pdfs-gui/src/app/pages/login.rs:369
#: crates/pdfs-gui/src/app/pages/login.rs:380
msgid "Keep unlocked on this computer"
msgstr "Auf diesem Computer entsperrt lassen"
#: crates/pdfs-gui/src/app/pages/login.rs:371
#: crates/pdfs-gui/src/app/pages/login.rs:382
msgid ""
"Stores the unlock in the system keyring, so Proton Drive opens without "
"asking after every login. Otherwise you enter the password once per session."
msgstr "Speichert die Entsperrung im System-Schlüsselbund, sodass sich Proton Drive nach jeder Anmeldung ohne Nachfrage öffnet. Andernfalls geben Sie das Passwort einmal pro Sitzung ein."
msgstr ""
"Speichert die Entsperrung im System-Schlüsselbund, sodass sich Proton Drive "
"nach jeder Anmeldung ohne Nachfrage öffnet. Andernfalls geben Sie das "
"Passwort einmal pro Sitzung ein."
#: crates/pdfs-gui/src/app/pages/login.rs:379
#: crates/pdfs-gui/src/app/pages/login.rs:432
#: crates/pdfs-gui/src/app/pages/login.rs:390
#: crates/pdfs-gui/src/app/pages/login.rs:443
msgid "Unlock"
msgstr "Entsperren"
#: crates/pdfs-gui/src/app/pages/login.rs:431
#: crates/pdfs-gui/src/app/pages/login.rs:442
msgid "Proton Drive is locked. Enter your mailbox password to unlock it."
msgstr "Proton Drive ist gesperrt. Geben Sie Ihr Postfach-Passwort ein, um es zu entsperren."
msgstr ""
"Proton Drive ist gesperrt. Geben Sie Ihr Postfach-Passwort ein, um es zu "
"entsperren."
#: crates/pdfs-gui/src/app/pages/login.rs:460
#: crates/pdfs-gui/src/app/pages/login.rs:471
msgid "Unlocked."
msgstr "Entsperrt."
#: crates/pdfs-gui/src/app/pages/login.rs:465
#: crates/pdfs-gui/src/app/pages/login.rs:476
msgid "Couldn't unlock"
msgstr "Entsperren fehlgeschlagen"
#: crates/pdfs-gui/src/app/pages/login.rs:478
#: crates/pdfs-gui/src/app/pages/login.rs:489
msgid "Two-Factor Authentication"
msgstr "Zwei-Faktor-Authentifizierung"
#: crates/pdfs-gui/src/app/pages/login.rs:480
#: crates/pdfs-gui/src/app/pages/login.rs:491
msgid ""
"Enter the code from your authenticator app, or one of your recovery codes."
msgstr ""
"Den Code aus der Authentifizierungs-App oder einen der "
"Wiederherstellungscodes eingeben."
#: crates/pdfs-gui/src/app/pages/login.rs:486
#: crates/pdfs-gui/src/app/pages/login.rs:497
msgid "Authentication code"
msgstr "Authentifizierungscode"
#: crates/pdfs-gui/src/app/pages/login.rs:493
#: crates/pdfs-gui/src/app/pages/login.rs:504
msgid "Confirm"
msgstr "Bestätigen"
#: crates/pdfs-gui/src/app/pages/login.rs:521
#: crates/pdfs-gui/src/app/pages/login.rs:535
#
msgid "Verify in Your Browser"
msgstr "Im Browser überprüfen"
#: crates/pdfs-gui/src/app/pages/login.rs:537
msgid ""
"The verification page can't be shown in the app on this system. Open it in "
"your browser, complete it there, then come back and choose Continue."
msgstr "Die Überprüfungsseite kann auf diesem System nicht in der App angezeigt werden. Öffne sie in deinem Browser, schließe sie dort ab, komm dann zurück und wähle „Weiter“."
#: crates/pdfs-gui/src/app/pages/login.rs:543
#
msgid "Open Verification Page"
msgstr "Überprüfungsseite öffnen"
#: crates/pdfs-gui/src/app/pages/login.rs:550
#
msgid "Continue"
msgstr "Weiter"
#: crates/pdfs-gui/src/app/pages/login.rs:589
msgid "Sign Out?"
msgstr "Abmelden?"
#: crates/pdfs-gui/src/app/pages/login.rs:523
#: crates/pdfs-gui/src/app/pages/login.rs:591
msgid ""
"Proton Drive will disconnect and stop syncing until you sign in again. Files "
"already on this computer stay where they are."
@@ -3330,7 +3360,7 @@ msgstr ""
"nächsten Anmeldung. Dateien, die sich bereits auf diesem Computer befinden, "
"bleiben, wo sie sind."
#: crates/pdfs-gui/src/app/pages/login.rs:525
#: crates/pdfs-gui/src/app/pages/login.rs:593
msgid "Sign Out"
msgstr "Abmelden"
@@ -5319,7 +5349,7 @@ msgstr "Papierkorb geleert"
msgid "Couldn't empty the trash"
msgstr "Der Papierkorb konnte nicht geleert werden"
#: crates/pdfs-gui/src/app/pages/verify.rs:57
#: crates/pdfs-gui/src/app/pages/verify.rs:162
msgid "Verification"
msgstr "Überprüfung"
@@ -6117,6 +6147,16 @@ msgstr "{count} J."
msgid "cannot reach the Proton Drive daemon: {error}"
msgstr "Proton-Drive-Hintergrunddienst nicht erreichbar: {error}"
#~ msgid ""
#~ "The verification page couldn't be opened, so the sign-in was cancelled. "
#~ "Your system may keep the web view's sandbox from starting; the "
#~ "troubleshooting guide explains what to do."
#~ msgstr ""
#~ "Die Überprüfungsseite konnte nicht geöffnet werden, daher wurde die "
#~ "Anmeldung abgebrochen. Möglicherweise verhindert das System, dass die "
#~ "Sandbox der Webansicht startet; die Anleitung zur Fehlerbehebung erklärt, "
#~ "was zu tun ist."
#~ msgid "Jump to a month"
#~ msgstr "Zu einem Monat springen"
+129 -95
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-07 02:39+0200\n"
"POT-Creation-Date: 2026-10-08 18:47+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"
@@ -57,7 +57,7 @@ msgstr "%-d %b %Y"
msgid "%A, %B %-d, %Y, %H:%M"
msgstr "%A %-d %B %Y, %H:%M"
#: crates/pdfs-gui/src/app/main.rs:747
#: crates/pdfs-gui/src/app/main.rs:760
#: crates/pdfs-gui/src/app/pages/activity_text.rs:539
#: crates/pdfs-gui/src/app/pages/browser.rs:454
#: crates/pdfs-gui/src/app/pages/browser.rs:819
@@ -70,91 +70,91 @@ msgstr "%A %-d %B %Y, %H:%M"
msgid "My files"
msgstr "My files"
#: crates/pdfs-gui/src/app/main.rs:750 crates/pdfs-gui/src/app/main.rs:1394
#: crates/pdfs-gui/src/app/main.rs:763 crates/pdfs-gui/src/app/main.rs:1407
#: crates/pdfs-gui/src/app/pages/albums.rs:638
#: crates/pdfs-gui/src/app/pages/photos.rs:842
#: crates/pdfs-gui/src/app/pages/places.rs:441
msgid "Photos"
msgstr "Photos"
#: crates/pdfs-gui/src/app/main.rs:755
#: crates/pdfs-gui/src/app/main.rs:768
#: crates/pdfs-gui/src/app/pages/shared.rs:168
#: crates/pdfs-gui/src/app/pages/shared.rs:482
msgid "Shared with me"
msgstr "Shared with me"
#: crates/pdfs-gui/src/app/main.rs:760
#: crates/pdfs-gui/src/app/main.rs:773
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:120
msgid "Shared by me"
msgstr "Shared by me"
#: crates/pdfs-gui/src/app/main.rs:763
#: crates/pdfs-gui/src/app/main.rs:776
#: crates/pdfs-gui/src/app/pages/devices.rs:140
#: crates/pdfs-gui/src/app/pages/devices.rs:481
msgid "Computers"
msgstr "Computers"
#: crates/pdfs-gui/src/app/main.rs:764
#: crates/pdfs-gui/src/app/main.rs:777
#: crates/pdfs-gui/src/app/pages/trash.rs:101
msgid "Trash"
msgstr "Trash"
#. Translators: sidebar entry for the page listing this computer's synced folders.
#: crates/pdfs-gui/src/app/main.rs:766
#: crates/pdfs-gui/src/app/main.rs:779
msgid "Sync"
msgstr "Sync"
#. Translators: a failed action's toast. {what} says what failed, such as
#. "Couldn't rename"; {detail} is the reason, usually untranslated text
#. from the mount service.
#: crates/pdfs-gui/src/app/main.rs:1083
#: crates/pdfs-gui/src/app/main.rs:1096
#, rust-format
msgid "{what}: {detail}"
msgstr "{what}: {detail}"
#: crates/pdfs-gui/src/app/main.rs:1102
#: crates/pdfs-gui/src/app/main.rs:1115
msgid "You're offline"
msgstr "You're offline"
#: crates/pdfs-gui/src/app/main.rs:1103
#: crates/pdfs-gui/src/app/main.rs:1116
msgid "That's not there any more"
msgstr "That's not there any more"
#: crates/pdfs-gui/src/app/main.rs:1104
#: crates/pdfs-gui/src/app/main.rs:1117
msgid "You don't have access to that"
msgstr "You don't have access to that"
#: crates/pdfs-gui/src/app/main.rs:1105
#: crates/pdfs-gui/src/app/main.rs:1118
msgid "Something changed this first"
msgstr "Something changed this first"
#: crates/pdfs-gui/src/app/main.rs:1106
#: crates/pdfs-gui/src/app/main.rs:1119
msgid "Your Proton Drive is full"
msgstr "Your Proton Drive is full"
#: crates/pdfs-gui/src/app/main.rs:1147 crates/pdfs-gui/src/app/main.rs:1376
#: crates/pdfs-gui/src/app/main.rs:1160 crates/pdfs-gui/src/app/main.rs:1389
#: crates/pdfs-gui/src/app/pages/status.rs:385
msgid "Preferences"
msgstr "Preferences"
#: crates/pdfs-gui/src/app/main.rs:1148
#: crates/pdfs-gui/src/app/main.rs:1161
#: crates/pdfs-gui/src/app/widgets/compat.rs:262
msgid "Keyboard Shortcuts"
msgstr "Keyboard Shortcuts"
#: crates/pdfs-gui/src/app/main.rs:1150
#: crates/pdfs-gui/src/app/main.rs:1163
msgid "About Proton Drive for Linux"
msgstr "About Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1155
#: crates/pdfs-gui/src/app/main.rs:1168
msgid "Main menu"
msgstr "Main menu"
#: crates/pdfs-gui/src/app/main.rs:1211
#: crates/pdfs-gui/src/app/main.rs:1224
msgid "Proton Drive for Linux"
msgstr "Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1219
#: crates/pdfs-gui/src/app/main.rs:1232
msgid ""
"Files-on-demand Proton Drive for the Linux desktop.\n"
"\n"
@@ -166,23 +166,23 @@ msgstr ""
"Unofficial client — not affiliated with, endorsed by, or supported by Proton "
"AG."
#: crates/pdfs-gui/src/app/main.rs:1224
#: crates/pdfs-gui/src/app/main.rs:1237
msgid "Source Code"
msgstr "Source Code"
#: crates/pdfs-gui/src/app/main.rs:1228
#: crates/pdfs-gui/src/app/main.rs:1241
msgid "Proton Terms of Service"
msgstr "Proton Terms of Service"
#: crates/pdfs-gui/src/app/main.rs:1232
#: crates/pdfs-gui/src/app/main.rs:1245
msgid "Proton Privacy Policy"
msgstr "Proton Privacy Policy"
#: crates/pdfs-gui/src/app/main.rs:1237
#: crates/pdfs-gui/src/app/main.rs:1250
msgid "Disclaimer"
msgstr "Disclaimer"
#: crates/pdfs-gui/src/app/main.rs:1241
#: crates/pdfs-gui/src/app/main.rs:1254
msgid ""
"This is an unofficial, community-built client. It is not affiliated with, "
"endorsed by, or supported by Proton AG.\n"
@@ -204,7 +204,7 @@ msgstr ""
"This software is provided “as is”, without warranty of any kind. Keep a copy "
"of any data you cannot afford to lose."
#: crates/pdfs-gui/src/app/main.rs:1249
#: crates/pdfs-gui/src/app/main.rs:1262
msgid ""
"Places are named with data from <a href=\"https://www.geonames.org/"
"\">GeoNames</a>, licensed under <a href=\"https://creativecommons.org/"
@@ -214,7 +214,7 @@ msgstr ""
"\">GeoNames</a>, licensed under <a href=\"https://creativecommons.org/"
"licenses/by/4.0/\">CC BY 4.0</a>."
#: crates/pdfs-gui/src/app/main.rs:1257
#: crates/pdfs-gui/src/app/main.rs:1270
msgid ""
"The places map is drawn from <a href=\"https://www.naturalearthdata.com/"
"\">Natural Earth</a> land outlines and country borders, which are in the "
@@ -224,7 +224,7 @@ msgstr ""
"\">Natural Earth</a> land outlines and country borders, which are in the "
"public domain."
#: crates/pdfs-gui/src/app/main.rs:1265
#: crates/pdfs-gui/src/app/main.rs:1278
msgid ""
"The street map, when turned on, comes from <a href=\"https://openfreemap.org/"
"\">OpenFreeMap</a> in the <a href=\"https://www.openmaptiles.org/"
@@ -240,15 +240,15 @@ msgstr ""
#. Translators: replace with your name(s) and email address(es), one
#. per line, to be credited in the About dialog.
#: crates/pdfs-gui/src/app/main.rs:1276
#: crates/pdfs-gui/src/app/main.rs:1289
msgid "translator-credits"
msgstr "Proton Drive for Linux contributors"
#: crates/pdfs-gui/src/app/main.rs:1314
#: crates/pdfs-gui/src/app/main.rs:1327
msgid "Stop Proton Drive?"
msgstr "Stop Proton Drive?"
#: crates/pdfs-gui/src/app/main.rs:1315
#: crates/pdfs-gui/src/app/main.rs:1328
msgid ""
"My files goes offline and nothing syncs until you connect again. Proton "
"Drive starts again at your next login."
@@ -256,7 +256,7 @@ msgstr ""
"My files goes offline and nothing syncs until you connect again. Proton "
"Drive starts again at your next login."
#: crates/pdfs-gui/src/app/main.rs:1317 crates/pdfs-gui/src/app/main.rs:1592
#: crates/pdfs-gui/src/app/main.rs:1330 crates/pdfs-gui/src/app/main.rs:1605
#: crates/pdfs-gui/src/app/pages/albums.rs:243
#: crates/pdfs-gui/src/app/pages/albums.rs:428
#: crates/pdfs-gui/src/app/pages/browser.rs:1892
@@ -271,8 +271,9 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1013
#: crates/pdfs-gui/src/app/pages/locations.rs:1488
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
#: crates/pdfs-gui/src/app/pages/login.rs:378
#: crates/pdfs-gui/src/app/pages/login.rs:492
#: crates/pdfs-gui/src/app/pages/login.rs:389
#: crates/pdfs-gui/src/app/pages/login.rs:503
#: crates/pdfs-gui/src/app/pages/login.rs:549
#: crates/pdfs-gui/src/app/pages/photos.rs:2055
#: crates/pdfs-gui/src/app/pages/shared.rs:946
#: crates/pdfs-gui/src/app/pages/shared.rs:1027
@@ -287,30 +288,30 @@ msgstr ""
msgid "Cancel"
msgstr "Cancel"
#: crates/pdfs-gui/src/app/main.rs:1318
#: crates/pdfs-gui/src/app/main.rs:1331
msgctxt "verb"
msgid "Stop"
msgstr "Stop"
#: crates/pdfs-gui/src/app/main.rs:1335
#: crates/pdfs-gui/src/app/main.rs:1348
msgid "Couldn't stop Proton Drive"
msgstr "Couldn't stop Proton Drive"
#: crates/pdfs-gui/src/app/main.rs:1336
#: crates/pdfs-gui/src/app/main.rs:1349
msgid "The Proton Drive service did not stop."
msgstr "The Proton Drive service did not stop."
#: crates/pdfs-gui/src/app/main.rs:1372
#: crates/pdfs-gui/src/app/main.rs:1385
#: crates/pdfs-gui/src/app/pages/status.rs:254
msgid "General"
msgstr "General"
#: crates/pdfs-gui/src/app/main.rs:1374
#: crates/pdfs-gui/src/app/main.rs:1387
#: crates/pdfs-gui/src/app/pages/browser.rs:247
msgid "Search Drive"
msgstr "Search Drive"
#: crates/pdfs-gui/src/app/main.rs:1375
#: crates/pdfs-gui/src/app/main.rs:1388
#: crates/pdfs-gui/src/app/pages/browser.rs:957
#: crates/pdfs-gui/src/app/pages/devices.rs:554
#: crates/pdfs-gui/src/app/pages/shared.rs:586
@@ -319,38 +320,38 @@ msgstr "Search Drive"
msgid "Refresh"
msgstr "Refresh"
#: crates/pdfs-gui/src/app/main.rs:1377
#: crates/pdfs-gui/src/app/main.rs:1390
msgid "Keyboard shortcuts"
msgstr "Keyboard shortcuts"
#: crates/pdfs-gui/src/app/main.rs:1381
#: crates/pdfs-gui/src/app/main.rs:1394
msgid "Files"
msgstr "Files"
#: crates/pdfs-gui/src/app/main.rs:1383
#: crates/pdfs-gui/src/app/main.rs:1396
#: crates/pdfs-gui/src/app/pages/browser.rs:294
msgid "New folder"
msgstr "New folder"
#: crates/pdfs-gui/src/app/main.rs:1384
#: crates/pdfs-gui/src/app/main.rs:1397
#: crates/pdfs-gui/src/app/pages/browser.rs:290
msgid "Upload files"
msgstr "Upload files"
#: crates/pdfs-gui/src/app/main.rs:1385
#: crates/pdfs-gui/src/app/main.rs:1398
msgid "Back / forward"
msgstr "Back / forward"
#: crates/pdfs-gui/src/app/main.rs:1386
#: crates/pdfs-gui/src/app/main.rs:1399
#: crates/pdfs-gui/src/app/pages/browser.rs:1943
msgid "Parent folder"
msgstr "Parent folder"
#: crates/pdfs-gui/src/app/main.rs:1387
#: crates/pdfs-gui/src/app/main.rs:1400
msgid "Grid / list"
msgstr "Grid / list"
#: crates/pdfs-gui/src/app/main.rs:1388
#: crates/pdfs-gui/src/app/main.rs:1401
#: crates/pdfs-gui/src/app/pages/albums.rs:298
#: crates/pdfs-gui/src/app/pages/browser.rs:1871
#: crates/pdfs-gui/src/app/pages/browser.rs:1893
@@ -359,7 +360,7 @@ msgstr "Grid / list"
msgid "Rename"
msgstr "Rename"
#: crates/pdfs-gui/src/app/main.rs:1389 crates/pdfs-gui/src/app/main.rs:1409
#: crates/pdfs-gui/src/app/main.rs:1402 crates/pdfs-gui/src/app/main.rs:1422
#: crates/pdfs-gui/src/app/pages/browser.rs:357
#: crates/pdfs-gui/src/app/pages/browser.rs:900
#: crates/pdfs-gui/src/app/pages/browser.rs:932
@@ -369,73 +370,73 @@ msgstr "Rename"
msgid "Move to Trash"
msgstr "Move to Trash"
#: crates/pdfs-gui/src/app/main.rs:1390
#: crates/pdfs-gui/src/app/main.rs:1403
msgid "Clear the selection"
msgstr "Clear the selection"
#: crates/pdfs-gui/src/app/main.rs:1396
#: crates/pdfs-gui/src/app/main.rs:1409
msgid "Larger thumbnails"
msgstr "Larger thumbnails"
#: crates/pdfs-gui/src/app/main.rs:1397
#: crates/pdfs-gui/src/app/main.rs:1410
msgid "Smaller thumbnails"
msgstr "Smaller thumbnails"
#: crates/pdfs-gui/src/app/main.rs:1398
#: crates/pdfs-gui/src/app/main.rs:1411
msgid "Reset thumbnail size"
msgstr "Reset thumbnail size"
#: crates/pdfs-gui/src/app/main.rs:1399
#: crates/pdfs-gui/src/app/main.rs:1412
msgid "Select all"
msgstr "Select all"
#: crates/pdfs-gui/src/app/main.rs:1403
#: crates/pdfs-gui/src/app/main.rs:1416
msgid "Photo Viewer"
msgstr "Photo Viewer"
#: crates/pdfs-gui/src/app/main.rs:1405
#: crates/pdfs-gui/src/app/main.rs:1418
msgid "Previous / next photo"
msgstr "Previous / next photo"
#: crates/pdfs-gui/src/app/main.rs:1406
#: crates/pdfs-gui/src/app/main.rs:1419
msgid "First / last photo"
msgstr "First / last photo"
#: crates/pdfs-gui/src/app/main.rs:1407
#: crates/pdfs-gui/src/app/main.rs:1420
msgid "Show details"
msgstr "Show details"
#: crates/pdfs-gui/src/app/main.rs:1408
#: crates/pdfs-gui/src/app/main.rs:1421
msgid "Fullscreen"
msgstr "Fullscreen"
#: crates/pdfs-gui/src/app/main.rs:1410
#: crates/pdfs-gui/src/app/main.rs:1423
msgid "Close"
msgstr "Close"
#: crates/pdfs-gui/src/app/main.rs:1500
#: crates/pdfs-gui/src/app/main.rs:1513
msgid "Select a single item to rename it"
msgstr "Select a single item to rename it"
#: crates/pdfs-gui/src/app/main.rs:1660
#: crates/pdfs-gui/src/app/main.rs:1673
#: crates/pdfs-gui/src/app/pages/albums.rs:85
#: crates/pdfs-gui/src/app/pages/places.rs:104
#: crates/pdfs-gui/src/app/pages/status.rs:1371
msgid "Not connected"
msgstr "Not connected"
#: crates/pdfs-gui/src/app/main.rs:1661
#: crates/pdfs-gui/src/app/main.rs:1674
msgid "The Proton Drive service isn't running."
msgstr "The Proton Drive service isn't running."
#: crates/pdfs-gui/src/app/main.rs:1669
#: crates/pdfs-gui/src/app/main.rs:1682
#: crates/pdfs-gui/src/app/pages/status.rs:336
#: crates/pdfs-gui/src/hud/mod.rs:274 crates/pdfs-gui/src/hud/mod.rs:595
#: crates/pdfs-gui/src/main.rs:453
msgid "Connecting…"
msgstr "Connecting…"
#: crates/pdfs-gui/src/app/main.rs:1670
#: crates/pdfs-gui/src/app/main.rs:1683
msgid "Waiting for the Proton Drive service to start."
msgstr "Waiting for the Proton Drive service to start."
@@ -3154,19 +3155,19 @@ msgstr "Signing in…"
msgid "Complete the verification to continue…"
msgstr "Complete the verification to continue…"
#: crates/pdfs-gui/src/app/pages/login.rs:185
#: crates/pdfs-gui/src/app/pages/login.rs:195
msgid "login cancelled"
msgstr "login cancelled"
#: crates/pdfs-gui/src/app/pages/login.rs:218
#: crates/pdfs-gui/src/app/pages/login.rs:228
msgid "Too many sign-in attempts. Wait a few minutes and try again."
msgstr "Too many sign-in attempts. Wait a few minutes and try again."
#: crates/pdfs-gui/src/app/pages/login.rs:224
#: crates/pdfs-gui/src/app/pages/login.rs:234
msgid "Couldn't reach Proton. Check your internet connection and try again."
msgstr "Couldn't reach Proton. Check your internet connection and try again."
#: crates/pdfs-gui/src/app/pages/login.rs:227
#: crates/pdfs-gui/src/app/pages/login.rs:237
msgid ""
"Signed in, but the session couldn't be saved to the system keyring. Make "
"sure a keyring (GNOME Keyring or KWallet) is running and unlocked."
@@ -3174,19 +3175,19 @@ msgstr ""
"Signed in, but the session couldn't be saved to the system keyring. Make "
"sure a keyring (GNOME Keyring or KWallet) is running and unlocked."
#: crates/pdfs-gui/src/app/pages/login.rs:230
#: crates/pdfs-gui/src/app/pages/login.rs:240
msgid "Sign-in cancelled: no two-factor code was entered."
msgstr "Sign-in cancelled: no two-factor code was entered."
#: crates/pdfs-gui/src/app/pages/login.rs:233
#: crates/pdfs-gui/src/app/pages/login.rs:243
msgid "Sign-in cancelled: no mailbox password was entered."
msgstr "Sign-in cancelled: no mailbox password was entered."
#: crates/pdfs-gui/src/app/pages/login.rs:236
#: crates/pdfs-gui/src/app/pages/login.rs:246
msgid "That mailbox password didn't unlock your account."
msgstr "That mailbox password didn't unlock your account."
#: crates/pdfs-gui/src/app/pages/login.rs:239
#: crates/pdfs-gui/src/app/pages/login.rs:249
msgid ""
"Sign-in cancelled: the verification wasn't completed. Sign in again to get a "
"new one."
@@ -3195,78 +3196,102 @@ msgstr ""
"new one."
#. Translators: {error} is an error message, usually in English.
#: crates/pdfs-gui/src/app/pages/login.rs:244
#: crates/pdfs-gui/src/app/pages/login.rs:254
#, rust-format
msgid "Sign-in failed: {error}"
msgstr "Sign-in failed: {error}"
#: crates/pdfs-gui/src/app/pages/login.rs:354
#: crates/pdfs-gui/src/app/pages/login.rs:365
msgid "That mailbox password didn't unlock your account. Try again."
msgstr "That mailbox password didn't unlock your account. Try again."
#: crates/pdfs-gui/src/app/pages/login.rs:356
#: crates/pdfs-gui/src/app/pages/login.rs:367
msgid ""
"This account has a separate mailbox password. Enter it to unlock your files."
msgstr "This account has a separate mailbox password. Enter it to unlock your files."
msgstr ""
"This account has a separate mailbox password. Enter it to unlock your files."
#: crates/pdfs-gui/src/app/pages/login.rs:359
#: crates/pdfs-gui/src/app/pages/login.rs:370
msgid "Mailbox Password"
msgstr "Mailbox Password"
#: crates/pdfs-gui/src/app/pages/login.rs:365
#: crates/pdfs-gui/src/app/pages/login.rs:376
msgid "Mailbox password"
msgstr "Mailbox password"
#: crates/pdfs-gui/src/app/pages/login.rs:369
#: crates/pdfs-gui/src/app/pages/login.rs:380
msgid "Keep unlocked on this computer"
msgstr "Keep unlocked on this computer"
#: crates/pdfs-gui/src/app/pages/login.rs:371
#: crates/pdfs-gui/src/app/pages/login.rs:382
msgid ""
"Stores the unlock in the system keyring, so Proton Drive opens without "
"asking after every login. Otherwise you enter the password once per session."
msgstr "Stores the unlock in the system keyring, so Proton Drive opens without asking after every login. Otherwise you enter the password once per session."
msgstr ""
"Stores the unlock in the system keyring, so Proton Drive opens without "
"asking after every login. Otherwise you enter the password once per session."
#: crates/pdfs-gui/src/app/pages/login.rs:379
#: crates/pdfs-gui/src/app/pages/login.rs:432
#: crates/pdfs-gui/src/app/pages/login.rs:390
#: crates/pdfs-gui/src/app/pages/login.rs:443
msgid "Unlock"
msgstr "Unlock"
#: crates/pdfs-gui/src/app/pages/login.rs:431
#: crates/pdfs-gui/src/app/pages/login.rs:442
msgid "Proton Drive is locked. Enter your mailbox password to unlock it."
msgstr "Proton Drive is locked. Enter your mailbox password to unlock it."
#: crates/pdfs-gui/src/app/pages/login.rs:460
#: crates/pdfs-gui/src/app/pages/login.rs:471
msgid "Unlocked."
msgstr "Unlocked."
#: crates/pdfs-gui/src/app/pages/login.rs:465
#: crates/pdfs-gui/src/app/pages/login.rs:476
msgid "Couldn't unlock"
msgstr "Couldn't unlock"
#: crates/pdfs-gui/src/app/pages/login.rs:478
#: crates/pdfs-gui/src/app/pages/login.rs:489
msgid "Two-Factor Authentication"
msgstr "Two-Factor Authentication"
#: crates/pdfs-gui/src/app/pages/login.rs:480
#: crates/pdfs-gui/src/app/pages/login.rs:491
msgid ""
"Enter the code from your authenticator app, or one of your recovery codes."
msgstr ""
"Enter the code from your authenticator app, or one of your recovery codes."
#: crates/pdfs-gui/src/app/pages/login.rs:486
#: crates/pdfs-gui/src/app/pages/login.rs:497
msgid "Authentication code"
msgstr "Authentication code"
#: crates/pdfs-gui/src/app/pages/login.rs:493
#: crates/pdfs-gui/src/app/pages/login.rs:504
msgid "Confirm"
msgstr "Confirm"
#: crates/pdfs-gui/src/app/pages/login.rs:521
#: crates/pdfs-gui/src/app/pages/login.rs:535
#
msgid "Verify in Your Browser"
msgstr "Verify in Your Browser"
#: crates/pdfs-gui/src/app/pages/login.rs:537
msgid ""
"The verification page can't be shown in the app on this system. Open it in "
"your browser, complete it there, then come back and choose Continue."
msgstr "The verification page can't be shown in the app on this system. Open it in your browser, complete it there, then come back and choose Continue."
#: crates/pdfs-gui/src/app/pages/login.rs:543
#
msgid "Open Verification Page"
msgstr "Open Verification Page"
#: crates/pdfs-gui/src/app/pages/login.rs:550
#
msgid "Continue"
msgstr "Continue"
#: crates/pdfs-gui/src/app/pages/login.rs:589
msgid "Sign Out?"
msgstr "Sign Out?"
#: crates/pdfs-gui/src/app/pages/login.rs:523
#: crates/pdfs-gui/src/app/pages/login.rs:591
msgid ""
"Proton Drive will disconnect and stop syncing until you sign in again. Files "
"already on this computer stay where they are."
@@ -3274,7 +3299,7 @@ msgstr ""
"Proton Drive will disconnect and stop syncing until you sign in again. Files "
"already on this computer stay where they are."
#: crates/pdfs-gui/src/app/pages/login.rs:525
#: crates/pdfs-gui/src/app/pages/login.rs:593
msgid "Sign Out"
msgstr "Sign Out"
@@ -5216,7 +5241,7 @@ msgstr "Trash emptied"
msgid "Couldn't empty the trash"
msgstr "Couldn't empty the trash"
#: crates/pdfs-gui/src/app/pages/verify.rs:57
#: crates/pdfs-gui/src/app/pages/verify.rs:162
msgid "Verification"
msgstr "Verification"
@@ -6007,6 +6032,15 @@ msgstr "{count}y"
msgid "cannot reach the Proton Drive daemon: {error}"
msgstr "cannot reach the Proton Drive daemon: {error}"
#~ msgid ""
#~ "The verification page couldn't be opened, so the sign-in was cancelled. "
#~ "Your system may keep the web view's sandbox from starting; the "
#~ "troubleshooting guide explains what to do."
#~ msgstr ""
#~ "The verification page couldn't be opened, so the sign-in was cancelled. "
#~ "Your system may keep the web view's sandbox from starting; the "
#~ "troubleshooting guide explains what to do."
#~ msgid "Jump to a month"
#~ msgstr "Jump to a month"
+135 -96
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-07 02:39+0200\n"
"POT-Creation-Date: 2026-10-08 18:47+0200\n"
"PO-Revision-Date: 2026-09-23 12:00+0200\n"
"Last-Translator: Proton Drive for Linux contributors\n"
"Language-Team: Spanish\n"
@@ -57,7 +57,7 @@ msgstr "%-d %b %Y"
msgid "%A, %B %-d, %Y, %H:%M"
msgstr "%A, %-d de %B de %Y, %H:%M"
#: crates/pdfs-gui/src/app/main.rs:747
#: crates/pdfs-gui/src/app/main.rs:760
#: crates/pdfs-gui/src/app/pages/activity_text.rs:539
#: crates/pdfs-gui/src/app/pages/browser.rs:454
#: crates/pdfs-gui/src/app/pages/browser.rs:819
@@ -70,91 +70,91 @@ msgstr "%A, %-d de %B de %Y, %H:%M"
msgid "My files"
msgstr "Mis archivos"
#: crates/pdfs-gui/src/app/main.rs:750 crates/pdfs-gui/src/app/main.rs:1394
#: crates/pdfs-gui/src/app/main.rs:763 crates/pdfs-gui/src/app/main.rs:1407
#: crates/pdfs-gui/src/app/pages/albums.rs:638
#: crates/pdfs-gui/src/app/pages/photos.rs:842
#: crates/pdfs-gui/src/app/pages/places.rs:441
msgid "Photos"
msgstr "Fotos"
#: crates/pdfs-gui/src/app/main.rs:755
#: crates/pdfs-gui/src/app/main.rs:768
#: crates/pdfs-gui/src/app/pages/shared.rs:168
#: crates/pdfs-gui/src/app/pages/shared.rs:482
msgid "Shared with me"
msgstr "Compartido conmigo"
#: crates/pdfs-gui/src/app/main.rs:760
#: crates/pdfs-gui/src/app/main.rs:773
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:120
msgid "Shared by me"
msgstr "Compartido por mí"
#: crates/pdfs-gui/src/app/main.rs:763
#: crates/pdfs-gui/src/app/main.rs:776
#: crates/pdfs-gui/src/app/pages/devices.rs:140
#: crates/pdfs-gui/src/app/pages/devices.rs:481
msgid "Computers"
msgstr "Equipos"
#: crates/pdfs-gui/src/app/main.rs:764
#: crates/pdfs-gui/src/app/main.rs:777
#: crates/pdfs-gui/src/app/pages/trash.rs:101
msgid "Trash"
msgstr "Papelera"
#. Translators: sidebar entry for the page listing this computer's synced folders.
#: crates/pdfs-gui/src/app/main.rs:766
#: crates/pdfs-gui/src/app/main.rs:779
msgid "Sync"
msgstr "Sincronización"
#. Translators: a failed action's toast. {what} says what failed, such as
#. "Couldn't rename"; {detail} is the reason, usually untranslated text
#. from the mount service.
#: crates/pdfs-gui/src/app/main.rs:1083
#: crates/pdfs-gui/src/app/main.rs:1096
#, rust-format
msgid "{what}: {detail}"
msgstr "{what}: {detail}"
#: crates/pdfs-gui/src/app/main.rs:1102
#: crates/pdfs-gui/src/app/main.rs:1115
msgid "You're offline"
msgstr "Está sin conexión"
#: crates/pdfs-gui/src/app/main.rs:1103
#: crates/pdfs-gui/src/app/main.rs:1116
msgid "That's not there any more"
msgstr "Eso ya no existe"
#: crates/pdfs-gui/src/app/main.rs:1104
#: crates/pdfs-gui/src/app/main.rs:1117
msgid "You don't have access to that"
msgstr "No tiene acceso a eso"
#: crates/pdfs-gui/src/app/main.rs:1105
#: crates/pdfs-gui/src/app/main.rs:1118
msgid "Something changed this first"
msgstr "Algo lo cambió antes"
#: crates/pdfs-gui/src/app/main.rs:1106
#: crates/pdfs-gui/src/app/main.rs:1119
msgid "Your Proton Drive is full"
msgstr "Su Proton Drive está lleno"
#: crates/pdfs-gui/src/app/main.rs:1147 crates/pdfs-gui/src/app/main.rs:1376
#: crates/pdfs-gui/src/app/main.rs:1160 crates/pdfs-gui/src/app/main.rs:1389
#: crates/pdfs-gui/src/app/pages/status.rs:385
msgid "Preferences"
msgstr "Preferencias"
#: crates/pdfs-gui/src/app/main.rs:1148
#: crates/pdfs-gui/src/app/main.rs:1161
#: crates/pdfs-gui/src/app/widgets/compat.rs:262
msgid "Keyboard Shortcuts"
msgstr "Atajos del teclado"
#: crates/pdfs-gui/src/app/main.rs:1150
#: crates/pdfs-gui/src/app/main.rs:1163
msgid "About Proton Drive for Linux"
msgstr "Acerca de Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1155
#: crates/pdfs-gui/src/app/main.rs:1168
msgid "Main menu"
msgstr "Menú principal"
#: crates/pdfs-gui/src/app/main.rs:1211
#: crates/pdfs-gui/src/app/main.rs:1224
msgid "Proton Drive for Linux"
msgstr "Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1219
#: crates/pdfs-gui/src/app/main.rs:1232
msgid ""
"Files-on-demand Proton Drive for the Linux desktop.\n"
"\n"
@@ -166,23 +166,23 @@ msgstr ""
"Cliente no oficial: no está afiliado a Proton AG, ni respaldado ni mantenido "
"por esta."
#: crates/pdfs-gui/src/app/main.rs:1224
#: crates/pdfs-gui/src/app/main.rs:1237
msgid "Source Code"
msgstr "Código fuente"
#: crates/pdfs-gui/src/app/main.rs:1228
#: crates/pdfs-gui/src/app/main.rs:1241
msgid "Proton Terms of Service"
msgstr "Condiciones del servicio de Proton"
#: crates/pdfs-gui/src/app/main.rs:1232
#: crates/pdfs-gui/src/app/main.rs:1245
msgid "Proton Privacy Policy"
msgstr "Política de privacidad de Proton"
#: crates/pdfs-gui/src/app/main.rs:1237
#: crates/pdfs-gui/src/app/main.rs:1250
msgid "Disclaimer"
msgstr "Aviso legal"
#: crates/pdfs-gui/src/app/main.rs:1241
#: crates/pdfs-gui/src/app/main.rs:1254
msgid ""
"This is an unofficial, community-built client. It is not affiliated with, "
"endorsed by, or supported by Proton AG.\n"
@@ -205,7 +205,7 @@ msgstr ""
"Este software se proporciona “tal cual”, sin garantía de ningún tipo. Guarde "
"una copia de los datos que no pueda permitirse perder."
#: crates/pdfs-gui/src/app/main.rs:1249
#: crates/pdfs-gui/src/app/main.rs:1262
msgid ""
"Places are named with data from <a href=\"https://www.geonames.org/"
"\">GeoNames</a>, licensed under <a href=\"https://creativecommons.org/"
@@ -215,7 +215,7 @@ msgstr ""
"www.geonames.org/\">GeoNames</a>, con licencia <a href=\"https://"
"creativecommons.org/licenses/by/4.0/\">CC BY 4.0</a>."
#: crates/pdfs-gui/src/app/main.rs:1257
#: crates/pdfs-gui/src/app/main.rs:1270
msgid ""
"The places map is drawn from <a href=\"https://www.naturalearthdata.com/"
"\">Natural Earth</a> land outlines and country borders, which are in the "
@@ -225,7 +225,7 @@ msgstr ""
"fronteras de países de <a href=\"https://www.naturalearthdata.com/\">Natural "
"Earth</a>, que son de dominio público."
#: crates/pdfs-gui/src/app/main.rs:1265
#: crates/pdfs-gui/src/app/main.rs:1278
msgid ""
"The street map, when turned on, comes from <a href=\"https://openfreemap.org/"
"\">OpenFreeMap</a> in the <a href=\"https://www.openmaptiles.org/"
@@ -241,15 +241,15 @@ msgstr ""
#. Translators: replace with your name(s) and email address(es), one
#. per line, to be credited in the About dialog.
#: crates/pdfs-gui/src/app/main.rs:1276
#: crates/pdfs-gui/src/app/main.rs:1289
msgid "translator-credits"
msgstr "Colaboradores de Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1314
#: crates/pdfs-gui/src/app/main.rs:1327
msgid "Stop Proton Drive?"
msgstr "¿Detener Proton Drive?"
#: crates/pdfs-gui/src/app/main.rs:1315
#: crates/pdfs-gui/src/app/main.rs:1328
msgid ""
"My files goes offline and nothing syncs until you connect again. Proton "
"Drive starts again at your next login."
@@ -258,7 +258,7 @@ msgstr ""
"a conectarse. Proton Drive se iniciará de nuevo en su próximo inicio de "
"sesión."
#: crates/pdfs-gui/src/app/main.rs:1317 crates/pdfs-gui/src/app/main.rs:1592
#: crates/pdfs-gui/src/app/main.rs:1330 crates/pdfs-gui/src/app/main.rs:1605
#: crates/pdfs-gui/src/app/pages/albums.rs:243
#: crates/pdfs-gui/src/app/pages/albums.rs:428
#: crates/pdfs-gui/src/app/pages/browser.rs:1892
@@ -273,8 +273,9 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1013
#: crates/pdfs-gui/src/app/pages/locations.rs:1488
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
#: crates/pdfs-gui/src/app/pages/login.rs:378
#: crates/pdfs-gui/src/app/pages/login.rs:492
#: crates/pdfs-gui/src/app/pages/login.rs:389
#: crates/pdfs-gui/src/app/pages/login.rs:503
#: crates/pdfs-gui/src/app/pages/login.rs:549
#: crates/pdfs-gui/src/app/pages/photos.rs:2055
#: crates/pdfs-gui/src/app/pages/shared.rs:946
#: crates/pdfs-gui/src/app/pages/shared.rs:1027
@@ -289,30 +290,30 @@ msgstr ""
msgid "Cancel"
msgstr "Cancelar"
#: crates/pdfs-gui/src/app/main.rs:1318
#: crates/pdfs-gui/src/app/main.rs:1331
msgctxt "verb"
msgid "Stop"
msgstr "Detener"
#: crates/pdfs-gui/src/app/main.rs:1335
#: crates/pdfs-gui/src/app/main.rs:1348
msgid "Couldn't stop Proton Drive"
msgstr "No se pudo detener Proton Drive"
#: crates/pdfs-gui/src/app/main.rs:1336
#: crates/pdfs-gui/src/app/main.rs:1349
msgid "The Proton Drive service did not stop."
msgstr "El servicio de Proton Drive no se detuvo."
#: crates/pdfs-gui/src/app/main.rs:1372
#: crates/pdfs-gui/src/app/main.rs:1385
#: crates/pdfs-gui/src/app/pages/status.rs:254
msgid "General"
msgstr "General"
#: crates/pdfs-gui/src/app/main.rs:1374
#: crates/pdfs-gui/src/app/main.rs:1387
#: crates/pdfs-gui/src/app/pages/browser.rs:247
msgid "Search Drive"
msgstr "Buscar en Drive"
#: crates/pdfs-gui/src/app/main.rs:1375
#: crates/pdfs-gui/src/app/main.rs:1388
#: crates/pdfs-gui/src/app/pages/browser.rs:957
#: crates/pdfs-gui/src/app/pages/devices.rs:554
#: crates/pdfs-gui/src/app/pages/shared.rs:586
@@ -321,38 +322,38 @@ msgstr "Buscar en Drive"
msgid "Refresh"
msgstr "Actualizar"
#: crates/pdfs-gui/src/app/main.rs:1377
#: crates/pdfs-gui/src/app/main.rs:1390
msgid "Keyboard shortcuts"
msgstr "Atajos del teclado"
#: crates/pdfs-gui/src/app/main.rs:1381
#: crates/pdfs-gui/src/app/main.rs:1394
msgid "Files"
msgstr "Archivos"
#: crates/pdfs-gui/src/app/main.rs:1383
#: crates/pdfs-gui/src/app/main.rs:1396
#: crates/pdfs-gui/src/app/pages/browser.rs:294
msgid "New folder"
msgstr "Carpeta nueva"
#: crates/pdfs-gui/src/app/main.rs:1384
#: crates/pdfs-gui/src/app/main.rs:1397
#: crates/pdfs-gui/src/app/pages/browser.rs:290
msgid "Upload files"
msgstr "Subir archivos"
#: crates/pdfs-gui/src/app/main.rs:1385
#: crates/pdfs-gui/src/app/main.rs:1398
msgid "Back / forward"
msgstr "Atrás / adelante"
#: crates/pdfs-gui/src/app/main.rs:1386
#: crates/pdfs-gui/src/app/main.rs:1399
#: crates/pdfs-gui/src/app/pages/browser.rs:1943
msgid "Parent folder"
msgstr "Carpeta superior"
#: crates/pdfs-gui/src/app/main.rs:1387
#: crates/pdfs-gui/src/app/main.rs:1400
msgid "Grid / list"
msgstr "Cuadrícula / lista"
#: crates/pdfs-gui/src/app/main.rs:1388
#: crates/pdfs-gui/src/app/main.rs:1401
#: crates/pdfs-gui/src/app/pages/albums.rs:298
#: crates/pdfs-gui/src/app/pages/browser.rs:1871
#: crates/pdfs-gui/src/app/pages/browser.rs:1893
@@ -361,7 +362,7 @@ msgstr "Cuadrícula / lista"
msgid "Rename"
msgstr "Renombrar"
#: crates/pdfs-gui/src/app/main.rs:1389 crates/pdfs-gui/src/app/main.rs:1409
#: crates/pdfs-gui/src/app/main.rs:1402 crates/pdfs-gui/src/app/main.rs:1422
#: crates/pdfs-gui/src/app/pages/browser.rs:357
#: crates/pdfs-gui/src/app/pages/browser.rs:900
#: crates/pdfs-gui/src/app/pages/browser.rs:932
@@ -371,73 +372,73 @@ msgstr "Renombrar"
msgid "Move to Trash"
msgstr "Mover a la papelera"
#: crates/pdfs-gui/src/app/main.rs:1390
#: crates/pdfs-gui/src/app/main.rs:1403
msgid "Clear the selection"
msgstr "Anular la selección"
#: crates/pdfs-gui/src/app/main.rs:1396
#: crates/pdfs-gui/src/app/main.rs:1409
msgid "Larger thumbnails"
msgstr "Miniaturas más grandes"
#: crates/pdfs-gui/src/app/main.rs:1397
#: crates/pdfs-gui/src/app/main.rs:1410
msgid "Smaller thumbnails"
msgstr "Miniaturas más pequeñas"
#: crates/pdfs-gui/src/app/main.rs:1398
#: crates/pdfs-gui/src/app/main.rs:1411
msgid "Reset thumbnail size"
msgstr "Restablecer el tamaño de las miniaturas"
#: crates/pdfs-gui/src/app/main.rs:1399
#: crates/pdfs-gui/src/app/main.rs:1412
msgid "Select all"
msgstr "Seleccionar todo"
#: crates/pdfs-gui/src/app/main.rs:1403
#: crates/pdfs-gui/src/app/main.rs:1416
msgid "Photo Viewer"
msgstr "Visor de fotos"
#: crates/pdfs-gui/src/app/main.rs:1405
#: crates/pdfs-gui/src/app/main.rs:1418
msgid "Previous / next photo"
msgstr "Foto anterior / siguiente"
#: crates/pdfs-gui/src/app/main.rs:1406
#: crates/pdfs-gui/src/app/main.rs:1419
msgid "First / last photo"
msgstr "Primera / última foto"
#: crates/pdfs-gui/src/app/main.rs:1407
#: crates/pdfs-gui/src/app/main.rs:1420
msgid "Show details"
msgstr "Mostrar detalles"
#: crates/pdfs-gui/src/app/main.rs:1408
#: crates/pdfs-gui/src/app/main.rs:1421
msgid "Fullscreen"
msgstr "Pantalla completa"
#: crates/pdfs-gui/src/app/main.rs:1410
#: crates/pdfs-gui/src/app/main.rs:1423
msgid "Close"
msgstr "Cerrar"
#: crates/pdfs-gui/src/app/main.rs:1500
#: crates/pdfs-gui/src/app/main.rs:1513
msgid "Select a single item to rename it"
msgstr "Seleccione un único elemento para renombrarlo"
#: crates/pdfs-gui/src/app/main.rs:1660
#: crates/pdfs-gui/src/app/main.rs:1673
#: crates/pdfs-gui/src/app/pages/albums.rs:85
#: crates/pdfs-gui/src/app/pages/places.rs:104
#: crates/pdfs-gui/src/app/pages/status.rs:1371
msgid "Not connected"
msgstr "Sin conexión"
#: crates/pdfs-gui/src/app/main.rs:1661
#: crates/pdfs-gui/src/app/main.rs:1674
msgid "The Proton Drive service isn't running."
msgstr "El servicio de Proton Drive no está en ejecución."
#: crates/pdfs-gui/src/app/main.rs:1669
#: crates/pdfs-gui/src/app/main.rs:1682
#: crates/pdfs-gui/src/app/pages/status.rs:336
#: crates/pdfs-gui/src/hud/mod.rs:274 crates/pdfs-gui/src/hud/mod.rs:595
#: crates/pdfs-gui/src/main.rs:453
msgid "Connecting…"
msgstr "Conectando…"
#: crates/pdfs-gui/src/app/main.rs:1670
#: crates/pdfs-gui/src/app/main.rs:1683
msgid "Waiting for the Proton Drive service to start."
msgstr "Esperando a que se inicie el servicio de Proton Drive."
@@ -3179,23 +3180,23 @@ msgstr "Iniciando sesión…"
msgid "Complete the verification to continue…"
msgstr "Complete la verificación para continuar…"
#: crates/pdfs-gui/src/app/pages/login.rs:185
#: crates/pdfs-gui/src/app/pages/login.rs:195
msgid "login cancelled"
msgstr "inicio de sesión cancelado"
#: crates/pdfs-gui/src/app/pages/login.rs:218
#: crates/pdfs-gui/src/app/pages/login.rs:228
msgid "Too many sign-in attempts. Wait a few minutes and try again."
msgstr ""
"Demasiados intentos de inicio de sesión. Espere unos minutos e inténtelo de "
"nuevo."
#: crates/pdfs-gui/src/app/pages/login.rs:224
#: crates/pdfs-gui/src/app/pages/login.rs:234
msgid "Couldn't reach Proton. Check your internet connection and try again."
msgstr ""
"No se pudo contactar con Proton. Compruebe su conexión a Internet e "
"inténtelo de nuevo."
#: crates/pdfs-gui/src/app/pages/login.rs:227
#: crates/pdfs-gui/src/app/pages/login.rs:237
msgid ""
"Signed in, but the session couldn't be saved to the system keyring. Make "
"sure a keyring (GNOME Keyring or KWallet) is running and unlocked."
@@ -3204,20 +3205,20 @@ msgstr ""
"sistema. Asegúrese de que un depósito de claves (GNOME Keyring o KWallet) "
"esté en ejecución y desbloqueado."
#: crates/pdfs-gui/src/app/pages/login.rs:230
#: crates/pdfs-gui/src/app/pages/login.rs:240
msgid "Sign-in cancelled: no two-factor code was entered."
msgstr ""
"Inicio de sesión cancelado: no se introdujo ningún código de dos factores."
#: crates/pdfs-gui/src/app/pages/login.rs:233
#: crates/pdfs-gui/src/app/pages/login.rs:243
msgid "Sign-in cancelled: no mailbox password was entered."
msgstr "Inicio de sesión cancelado: no se introdujo la contraseña del buzón."
#: crates/pdfs-gui/src/app/pages/login.rs:236
#: crates/pdfs-gui/src/app/pages/login.rs:246
msgid "That mailbox password didn't unlock your account."
msgstr "Esa contraseña del buzón no desbloqueó tu cuenta."
#: crates/pdfs-gui/src/app/pages/login.rs:239
#: crates/pdfs-gui/src/app/pages/login.rs:249
msgid ""
"Sign-in cancelled: the verification wasn't completed. Sign in again to get a "
"new one."
@@ -3226,79 +3227,107 @@ msgstr ""
"sesión para obtener una nueva."
#. Translators: {error} is an error message, usually in English.
#: crates/pdfs-gui/src/app/pages/login.rs:244
#: crates/pdfs-gui/src/app/pages/login.rs:254
#, rust-format
msgid "Sign-in failed: {error}"
msgstr "Falló el inicio de sesión: {error}"
#: crates/pdfs-gui/src/app/pages/login.rs:354
#: crates/pdfs-gui/src/app/pages/login.rs:365
msgid "That mailbox password didn't unlock your account. Try again."
msgstr "Esa contraseña del buzón no desbloqueó tu cuenta. Inténtalo de nuevo."
#: crates/pdfs-gui/src/app/pages/login.rs:356
#: crates/pdfs-gui/src/app/pages/login.rs:367
msgid ""
"This account has a separate mailbox password. Enter it to unlock your files."
msgstr "Esta cuenta tiene una contraseña del buzón independiente. Introdúcela para desbloquear tus archivos."
msgstr ""
"Esta cuenta tiene una contraseña del buzón independiente. Introdúcela para "
"desbloquear tus archivos."
#: crates/pdfs-gui/src/app/pages/login.rs:359
#: crates/pdfs-gui/src/app/pages/login.rs:370
msgid "Mailbox Password"
msgstr "Contraseña del buzón"
#: crates/pdfs-gui/src/app/pages/login.rs:365
#: crates/pdfs-gui/src/app/pages/login.rs:376
msgid "Mailbox password"
msgstr "Contraseña del buzón"
#: crates/pdfs-gui/src/app/pages/login.rs:369
#: crates/pdfs-gui/src/app/pages/login.rs:380
msgid "Keep unlocked on this computer"
msgstr "Mantener desbloqueado en este equipo"
#: crates/pdfs-gui/src/app/pages/login.rs:371
#: crates/pdfs-gui/src/app/pages/login.rs:382
msgid ""
"Stores the unlock in the system keyring, so Proton Drive opens without "
"asking after every login. Otherwise you enter the password once per session."
msgstr "Guarda el desbloqueo en el llavero del sistema, para que Proton Drive se abra sin preguntar después de cada inicio de sesión. De lo contrario, introduces la contraseña una vez por sesión."
msgstr ""
"Guarda el desbloqueo en el llavero del sistema, para que Proton Drive se "
"abra sin preguntar después de cada inicio de sesión. De lo contrario, "
"introduces la contraseña una vez por sesión."
#: crates/pdfs-gui/src/app/pages/login.rs:379
#: crates/pdfs-gui/src/app/pages/login.rs:432
#: crates/pdfs-gui/src/app/pages/login.rs:390
#: crates/pdfs-gui/src/app/pages/login.rs:443
msgid "Unlock"
msgstr "Desbloquear"
#: crates/pdfs-gui/src/app/pages/login.rs:431
#: crates/pdfs-gui/src/app/pages/login.rs:442
msgid "Proton Drive is locked. Enter your mailbox password to unlock it."
msgstr "Proton Drive está bloqueado. Introduce la contraseña del buzón para desbloquearlo."
msgstr ""
"Proton Drive está bloqueado. Introduce la contraseña del buzón para "
"desbloquearlo."
#: crates/pdfs-gui/src/app/pages/login.rs:460
#: crates/pdfs-gui/src/app/pages/login.rs:471
msgid "Unlocked."
msgstr "Desbloqueado."
#: crates/pdfs-gui/src/app/pages/login.rs:465
#: crates/pdfs-gui/src/app/pages/login.rs:476
msgid "Couldn't unlock"
msgstr "No se pudo desbloquear"
#: crates/pdfs-gui/src/app/pages/login.rs:478
#: crates/pdfs-gui/src/app/pages/login.rs:489
msgid "Two-Factor Authentication"
msgstr "Autenticación en dos pasos"
#: crates/pdfs-gui/src/app/pages/login.rs:480
#: crates/pdfs-gui/src/app/pages/login.rs:491
msgid ""
"Enter the code from your authenticator app, or one of your recovery codes."
msgstr ""
"Introduzca el código de su aplicación de autenticación o uno de sus códigos "
"de recuperación."
#: crates/pdfs-gui/src/app/pages/login.rs:486
#: crates/pdfs-gui/src/app/pages/login.rs:497
msgid "Authentication code"
msgstr "Código de autenticación"
#: crates/pdfs-gui/src/app/pages/login.rs:493
#: crates/pdfs-gui/src/app/pages/login.rs:504
msgid "Confirm"
msgstr "Confirmar"
#: crates/pdfs-gui/src/app/pages/login.rs:521
#: crates/pdfs-gui/src/app/pages/login.rs:535
#
msgid "Verify in Your Browser"
msgstr "Verificar en el navegador"
#: crates/pdfs-gui/src/app/pages/login.rs:537
msgid ""
"The verification page can't be shown in the app on this system. Open it in "
"your browser, complete it there, then come back and choose Continue."
msgstr "La página de verificación no se puede mostrar en la aplicación en este sistema. Ábrala en su navegador, complétela allí y luego vuelva y elija “Continuar”."
#: crates/pdfs-gui/src/app/pages/login.rs:543
#
msgid "Open Verification Page"
msgstr "Abrir página de verificación"
#: crates/pdfs-gui/src/app/pages/login.rs:550
#
msgid "Continue"
msgstr "Continuar"
#: crates/pdfs-gui/src/app/pages/login.rs:589
msgid "Sign Out?"
msgstr "¿Cerrar la sesión?"
#: crates/pdfs-gui/src/app/pages/login.rs:523
#: crates/pdfs-gui/src/app/pages/login.rs:591
msgid ""
"Proton Drive will disconnect and stop syncing until you sign in again. Files "
"already on this computer stay where they are."
@@ -3307,7 +3336,7 @@ msgstr ""
"iniciar sesión. Los archivos que ya están en este equipo se quedan donde "
"están."
#: crates/pdfs-gui/src/app/pages/login.rs:525
#: crates/pdfs-gui/src/app/pages/login.rs:593
msgid "Sign Out"
msgstr "Cerrar la sesión"
@@ -5277,7 +5306,7 @@ msgstr "Papelera vaciada"
msgid "Couldn't empty the trash"
msgstr "No se pudo vaciar la papelera"
#: crates/pdfs-gui/src/app/pages/verify.rs:57
#: crates/pdfs-gui/src/app/pages/verify.rs:162
msgid "Verification"
msgstr "Verificación"
@@ -6077,6 +6106,16 @@ msgstr "{count} a"
msgid "cannot reach the Proton Drive daemon: {error}"
msgstr "no se puede contactar con el demonio de Proton Drive: {error}"
#~ msgid ""
#~ "The verification page couldn't be opened, so the sign-in was cancelled. "
#~ "Your system may keep the web view's sandbox from starting; the "
#~ "troubleshooting guide explains what to do."
#~ msgstr ""
#~ "No se pudo abrir la página de verificación, así que se canceló el inicio "
#~ "de sesión. Es posible que su sistema impida que se inicie el entorno "
#~ "aislado de la vista web; la guía de solución de problemas explica qué "
#~ "hacer."
#~ msgid "Jump to a month"
#~ msgstr "Saltar a un mes"
+141 -99
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-07 02:39+0200\n"
"POT-Creation-Date: 2026-10-08 18:47+0200\n"
"PO-Revision-Date: 2026-09-23 12:00+0200\n"
"Last-Translator: Proton Drive for Linux contributors\n"
"Language-Team: French\n"
@@ -57,7 +57,7 @@ msgstr "%-d %b %Y"
msgid "%A, %B %-d, %Y, %H:%M"
msgstr "%A %-d %B %Y à %H:%M"
#: crates/pdfs-gui/src/app/main.rs:747
#: crates/pdfs-gui/src/app/main.rs:760
#: crates/pdfs-gui/src/app/pages/activity_text.rs:539
#: crates/pdfs-gui/src/app/pages/browser.rs:454
#: crates/pdfs-gui/src/app/pages/browser.rs:819
@@ -70,91 +70,91 @@ msgstr "%A %-d %B %Y à %H:%M"
msgid "My files"
msgstr "Mes fichiers"
#: crates/pdfs-gui/src/app/main.rs:750 crates/pdfs-gui/src/app/main.rs:1394
#: crates/pdfs-gui/src/app/main.rs:763 crates/pdfs-gui/src/app/main.rs:1407
#: crates/pdfs-gui/src/app/pages/albums.rs:638
#: crates/pdfs-gui/src/app/pages/photos.rs:842
#: crates/pdfs-gui/src/app/pages/places.rs:441
msgid "Photos"
msgstr "Photos"
#: crates/pdfs-gui/src/app/main.rs:755
#: crates/pdfs-gui/src/app/main.rs:768
#: crates/pdfs-gui/src/app/pages/shared.rs:168
#: crates/pdfs-gui/src/app/pages/shared.rs:482
msgid "Shared with me"
msgstr "Partagés avec moi"
#: crates/pdfs-gui/src/app/main.rs:760
#: crates/pdfs-gui/src/app/main.rs:773
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:120
msgid "Shared by me"
msgstr "Partagés par moi"
#: crates/pdfs-gui/src/app/main.rs:763
#: crates/pdfs-gui/src/app/main.rs:776
#: crates/pdfs-gui/src/app/pages/devices.rs:140
#: crates/pdfs-gui/src/app/pages/devices.rs:481
msgid "Computers"
msgstr "Ordinateurs"
#: crates/pdfs-gui/src/app/main.rs:764
#: crates/pdfs-gui/src/app/main.rs:777
#: crates/pdfs-gui/src/app/pages/trash.rs:101
msgid "Trash"
msgstr "Corbeille"
#. Translators: sidebar entry for the page listing this computer's synced folders.
#: crates/pdfs-gui/src/app/main.rs:766
#: crates/pdfs-gui/src/app/main.rs:779
msgid "Sync"
msgstr "Synchronisation"
#. Translators: a failed action's toast. {what} says what failed, such as
#. "Couldn't rename"; {detail} is the reason, usually untranslated text
#. from the mount service.
#: crates/pdfs-gui/src/app/main.rs:1083
#: crates/pdfs-gui/src/app/main.rs:1096
#, rust-format
msgid "{what}: {detail}"
msgstr "{what} : {detail}"
#: crates/pdfs-gui/src/app/main.rs:1102
#: crates/pdfs-gui/src/app/main.rs:1115
msgid "You're offline"
msgstr "Vous êtes hors ligne"
#: crates/pdfs-gui/src/app/main.rs:1103
#: crates/pdfs-gui/src/app/main.rs:1116
msgid "That's not there any more"
msgstr "Cet élément n’existe plus"
#: crates/pdfs-gui/src/app/main.rs:1104
#: crates/pdfs-gui/src/app/main.rs:1117
msgid "You don't have access to that"
msgstr "Vous n’avez pas accès à cet élément"
#: crates/pdfs-gui/src/app/main.rs:1105
#: crates/pdfs-gui/src/app/main.rs:1118
msgid "Something changed this first"
msgstr "Quelque chose l’a modifié entre-temps"
#: crates/pdfs-gui/src/app/main.rs:1106
#: crates/pdfs-gui/src/app/main.rs:1119
msgid "Your Proton Drive is full"
msgstr "Votre Proton Drive est plein"
#: crates/pdfs-gui/src/app/main.rs:1147 crates/pdfs-gui/src/app/main.rs:1376
#: crates/pdfs-gui/src/app/main.rs:1160 crates/pdfs-gui/src/app/main.rs:1389
#: crates/pdfs-gui/src/app/pages/status.rs:385
msgid "Preferences"
msgstr "Préférences"
#: crates/pdfs-gui/src/app/main.rs:1148
#: crates/pdfs-gui/src/app/main.rs:1161
#: crates/pdfs-gui/src/app/widgets/compat.rs:262
msgid "Keyboard Shortcuts"
msgstr "Raccourcis clavier"
#: crates/pdfs-gui/src/app/main.rs:1150
#: crates/pdfs-gui/src/app/main.rs:1163
msgid "About Proton Drive for Linux"
msgstr "À propos de Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1155
#: crates/pdfs-gui/src/app/main.rs:1168
msgid "Main menu"
msgstr "Menu principal"
#: crates/pdfs-gui/src/app/main.rs:1211
#: crates/pdfs-gui/src/app/main.rs:1224
msgid "Proton Drive for Linux"
msgstr "Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1219
#: crates/pdfs-gui/src/app/main.rs:1232
msgid ""
"Files-on-demand Proton Drive for the Linux desktop.\n"
"\n"
@@ -166,23 +166,23 @@ msgstr ""
"Client non officiel — non affilié à Proton AG, ni approuvé ni pris en charge "
"par Proton AG."
#: crates/pdfs-gui/src/app/main.rs:1224
#: crates/pdfs-gui/src/app/main.rs:1237
msgid "Source Code"
msgstr "Code source"
#: crates/pdfs-gui/src/app/main.rs:1228
#: crates/pdfs-gui/src/app/main.rs:1241
msgid "Proton Terms of Service"
msgstr "Conditions d’utilisation de Proton"
#: crates/pdfs-gui/src/app/main.rs:1232
#: crates/pdfs-gui/src/app/main.rs:1245
msgid "Proton Privacy Policy"
msgstr "Politique de confidentialité de Proton"
#: crates/pdfs-gui/src/app/main.rs:1237
#: crates/pdfs-gui/src/app/main.rs:1250
msgid "Disclaimer"
msgstr "Avertissement"
#: crates/pdfs-gui/src/app/main.rs:1241
#: crates/pdfs-gui/src/app/main.rs:1254
msgid ""
"This is an unofficial, community-built client. It is not affiliated with, "
"endorsed by, or supported by Proton AG.\n"
@@ -206,7 +206,7 @@ msgstr ""
"une copie de toutes les données que vous ne pouvez pas vous permettre de "
"perdre."
#: crates/pdfs-gui/src/app/main.rs:1249
#: crates/pdfs-gui/src/app/main.rs:1262
msgid ""
"Places are named with data from <a href=\"https://www.geonames.org/"
"\">GeoNames</a>, licensed under <a href=\"https://creativecommons.org/"
@@ -216,7 +216,7 @@ msgstr ""
"www.geonames.org/\">GeoNames</a>, sous licence <a href=\"https://"
"creativecommons.org/licenses/by/4.0/\">CC BY 4.0</a>."
#: crates/pdfs-gui/src/app/main.rs:1257
#: crates/pdfs-gui/src/app/main.rs:1270
msgid ""
"The places map is drawn from <a href=\"https://www.naturalearthdata.com/"
"\">Natural Earth</a> land outlines and country borders, which are in the "
@@ -226,7 +226,7 @@ msgstr ""
"frontières des pays de <a href=\"https://www.naturalearthdata.com/\">Natural "
"Earth</a>, qui sont dans le domaine public."
#: crates/pdfs-gui/src/app/main.rs:1265
#: crates/pdfs-gui/src/app/main.rs:1278
msgid ""
"The street map, when turned on, comes from <a href=\"https://openfreemap.org/"
"\">OpenFreeMap</a> in the <a href=\"https://www.openmaptiles.org/"
@@ -243,15 +243,15 @@ msgstr ""
#. Translators: replace with your name(s) and email address(es), one
#. per line, to be credited in the About dialog.
#: crates/pdfs-gui/src/app/main.rs:1276
#: crates/pdfs-gui/src/app/main.rs:1289
msgid "translator-credits"
msgstr "Les contributeurs de Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1314
#: crates/pdfs-gui/src/app/main.rs:1327
msgid "Stop Proton Drive?"
msgstr "Arrêter Proton Drive ?"
#: crates/pdfs-gui/src/app/main.rs:1315
#: crates/pdfs-gui/src/app/main.rs:1328
msgid ""
"My files goes offline and nothing syncs until you connect again. Proton "
"Drive starts again at your next login."
@@ -260,7 +260,7 @@ msgstr ""
"vous reconnectez pas. Proton Drive redémarrera à votre prochaine ouverture "
"de session."
#: crates/pdfs-gui/src/app/main.rs:1317 crates/pdfs-gui/src/app/main.rs:1592
#: crates/pdfs-gui/src/app/main.rs:1330 crates/pdfs-gui/src/app/main.rs:1605
#: crates/pdfs-gui/src/app/pages/albums.rs:243
#: crates/pdfs-gui/src/app/pages/albums.rs:428
#: crates/pdfs-gui/src/app/pages/browser.rs:1892
@@ -275,8 +275,9 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1013
#: crates/pdfs-gui/src/app/pages/locations.rs:1488
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
#: crates/pdfs-gui/src/app/pages/login.rs:378
#: crates/pdfs-gui/src/app/pages/login.rs:492
#: crates/pdfs-gui/src/app/pages/login.rs:389
#: crates/pdfs-gui/src/app/pages/login.rs:503
#: crates/pdfs-gui/src/app/pages/login.rs:549
#: crates/pdfs-gui/src/app/pages/photos.rs:2055
#: crates/pdfs-gui/src/app/pages/shared.rs:946
#: crates/pdfs-gui/src/app/pages/shared.rs:1027
@@ -291,30 +292,30 @@ msgstr ""
msgid "Cancel"
msgstr "Annuler"
#: crates/pdfs-gui/src/app/main.rs:1318
#: crates/pdfs-gui/src/app/main.rs:1331
msgctxt "verb"
msgid "Stop"
msgstr "Arrêter"
#: crates/pdfs-gui/src/app/main.rs:1335
#: crates/pdfs-gui/src/app/main.rs:1348
msgid "Couldn't stop Proton Drive"
msgstr "Impossible d’arrêter Proton Drive"
#: crates/pdfs-gui/src/app/main.rs:1336
#: crates/pdfs-gui/src/app/main.rs:1349
msgid "The Proton Drive service did not stop."
msgstr "Le service Proton Drive ne s’est pas arrêté."
#: crates/pdfs-gui/src/app/main.rs:1372
#: crates/pdfs-gui/src/app/main.rs:1385
#: crates/pdfs-gui/src/app/pages/status.rs:254
msgid "General"
msgstr "Général"
#: crates/pdfs-gui/src/app/main.rs:1374
#: crates/pdfs-gui/src/app/main.rs:1387
#: crates/pdfs-gui/src/app/pages/browser.rs:247
msgid "Search Drive"
msgstr "Rechercher dans Drive"
#: crates/pdfs-gui/src/app/main.rs:1375
#: crates/pdfs-gui/src/app/main.rs:1388
#: crates/pdfs-gui/src/app/pages/browser.rs:957
#: crates/pdfs-gui/src/app/pages/devices.rs:554
#: crates/pdfs-gui/src/app/pages/shared.rs:586
@@ -323,38 +324,38 @@ msgstr "Rechercher dans Drive"
msgid "Refresh"
msgstr "Actualiser"
#: crates/pdfs-gui/src/app/main.rs:1377
#: crates/pdfs-gui/src/app/main.rs:1390
msgid "Keyboard shortcuts"
msgstr "Raccourcis clavier"
#: crates/pdfs-gui/src/app/main.rs:1381
#: crates/pdfs-gui/src/app/main.rs:1394
msgid "Files"
msgstr "Fichiers"
#: crates/pdfs-gui/src/app/main.rs:1383
#: crates/pdfs-gui/src/app/main.rs:1396
#: crates/pdfs-gui/src/app/pages/browser.rs:294
msgid "New folder"
msgstr "Nouveau dossier"
#: crates/pdfs-gui/src/app/main.rs:1384
#: crates/pdfs-gui/src/app/main.rs:1397
#: crates/pdfs-gui/src/app/pages/browser.rs:290
msgid "Upload files"
msgstr "Téléverser des fichiers"
#: crates/pdfs-gui/src/app/main.rs:1385
#: crates/pdfs-gui/src/app/main.rs:1398
msgid "Back / forward"
msgstr "Précédent / suivant"
#: crates/pdfs-gui/src/app/main.rs:1386
#: crates/pdfs-gui/src/app/main.rs:1399
#: crates/pdfs-gui/src/app/pages/browser.rs:1943
msgid "Parent folder"
msgstr "Dossier parent"
#: crates/pdfs-gui/src/app/main.rs:1387
#: crates/pdfs-gui/src/app/main.rs:1400
msgid "Grid / list"
msgstr "Grille / liste"
#: crates/pdfs-gui/src/app/main.rs:1388
#: crates/pdfs-gui/src/app/main.rs:1401
#: crates/pdfs-gui/src/app/pages/albums.rs:298
#: crates/pdfs-gui/src/app/pages/browser.rs:1871
#: crates/pdfs-gui/src/app/pages/browser.rs:1893
@@ -363,7 +364,7 @@ msgstr "Grille / liste"
msgid "Rename"
msgstr "Renommer"
#: crates/pdfs-gui/src/app/main.rs:1389 crates/pdfs-gui/src/app/main.rs:1409
#: crates/pdfs-gui/src/app/main.rs:1402 crates/pdfs-gui/src/app/main.rs:1422
#: crates/pdfs-gui/src/app/pages/browser.rs:357
#: crates/pdfs-gui/src/app/pages/browser.rs:900
#: crates/pdfs-gui/src/app/pages/browser.rs:932
@@ -373,73 +374,73 @@ msgstr "Renommer"
msgid "Move to Trash"
msgstr "Mettre à la corbeille"
#: crates/pdfs-gui/src/app/main.rs:1390
#: crates/pdfs-gui/src/app/main.rs:1403
msgid "Clear the selection"
msgstr "Effacer la sélection"
#: crates/pdfs-gui/src/app/main.rs:1396
#: crates/pdfs-gui/src/app/main.rs:1409
msgid "Larger thumbnails"
msgstr "Miniatures plus grandes"
#: crates/pdfs-gui/src/app/main.rs:1397
#: crates/pdfs-gui/src/app/main.rs:1410
msgid "Smaller thumbnails"
msgstr "Miniatures plus petites"
#: crates/pdfs-gui/src/app/main.rs:1398
#: crates/pdfs-gui/src/app/main.rs:1411
msgid "Reset thumbnail size"
msgstr "Réinitialiser la taille des miniatures"
#: crates/pdfs-gui/src/app/main.rs:1399
#: crates/pdfs-gui/src/app/main.rs:1412
msgid "Select all"
msgstr "Tout sélectionner"
#: crates/pdfs-gui/src/app/main.rs:1403
#: crates/pdfs-gui/src/app/main.rs:1416
msgid "Photo Viewer"
msgstr "Visionneuse de photos"
#: crates/pdfs-gui/src/app/main.rs:1405
#: crates/pdfs-gui/src/app/main.rs:1418
msgid "Previous / next photo"
msgstr "Photo précédente / suivante"
#: crates/pdfs-gui/src/app/main.rs:1406
#: crates/pdfs-gui/src/app/main.rs:1419
msgid "First / last photo"
msgstr "Première / dernière photo"
#: crates/pdfs-gui/src/app/main.rs:1407
#: crates/pdfs-gui/src/app/main.rs:1420
msgid "Show details"
msgstr "Afficher les détails"
#: crates/pdfs-gui/src/app/main.rs:1408
#: crates/pdfs-gui/src/app/main.rs:1421
msgid "Fullscreen"
msgstr "Plein écran"
#: crates/pdfs-gui/src/app/main.rs:1410
#: crates/pdfs-gui/src/app/main.rs:1423
msgid "Close"
msgstr "Fermer"
#: crates/pdfs-gui/src/app/main.rs:1500
#: crates/pdfs-gui/src/app/main.rs:1513
msgid "Select a single item to rename it"
msgstr "Sélectionnez un seul élément pour le renommer"
#: crates/pdfs-gui/src/app/main.rs:1660
#: crates/pdfs-gui/src/app/main.rs:1673
#: crates/pdfs-gui/src/app/pages/albums.rs:85
#: crates/pdfs-gui/src/app/pages/places.rs:104
#: crates/pdfs-gui/src/app/pages/status.rs:1371
msgid "Not connected"
msgstr "Non connecté"
#: crates/pdfs-gui/src/app/main.rs:1661
#: crates/pdfs-gui/src/app/main.rs:1674
msgid "The Proton Drive service isn't running."
msgstr "Le service Proton Drive n’est pas en cours d’exécution."
#: crates/pdfs-gui/src/app/main.rs:1669
#: crates/pdfs-gui/src/app/main.rs:1682
#: crates/pdfs-gui/src/app/pages/status.rs:336
#: crates/pdfs-gui/src/hud/mod.rs:274 crates/pdfs-gui/src/hud/mod.rs:595
#: crates/pdfs-gui/src/main.rs:453
msgid "Connecting…"
msgstr "Connexion…"
#: crates/pdfs-gui/src/app/main.rs:1670
#: crates/pdfs-gui/src/app/main.rs:1683
msgid "Waiting for the Proton Drive service to start."
msgstr "En attente du démarrage du service Proton Drive."
@@ -3205,21 +3206,21 @@ msgstr "Connexion…"
msgid "Complete the verification to continue…"
msgstr "Terminez la vérification pour continuer…"
#: crates/pdfs-gui/src/app/pages/login.rs:185
#: crates/pdfs-gui/src/app/pages/login.rs:195
msgid "login cancelled"
msgstr "connexion annulée"
#: crates/pdfs-gui/src/app/pages/login.rs:218
#: crates/pdfs-gui/src/app/pages/login.rs:228
msgid "Too many sign-in attempts. Wait a few minutes and try again."
msgstr ""
"Trop de tentatives de connexion. Patientez quelques minutes et réessayez."
#: crates/pdfs-gui/src/app/pages/login.rs:224
#: crates/pdfs-gui/src/app/pages/login.rs:234
msgid "Couldn't reach Proton. Check your internet connection and try again."
msgstr ""
"Impossible de joindre Proton. Vérifiez votre connexion Internet et réessayez."
#: crates/pdfs-gui/src/app/pages/login.rs:227
#: crates/pdfs-gui/src/app/pages/login.rs:237
msgid ""
"Signed in, but the session couldn't be saved to the system keyring. Make "
"sure a keyring (GNOME Keyring or KWallet) is running and unlocked."
@@ -3228,19 +3229,21 @@ msgstr ""
"système. Assurez-vous qu’un trousseau (GNOME Keyring ou KWallet) est en "
"cours d’exécution et déverrouillé."
#: crates/pdfs-gui/src/app/pages/login.rs:230
#: crates/pdfs-gui/src/app/pages/login.rs:240
msgid "Sign-in cancelled: no two-factor code was entered."
msgstr "Connexion annulée : aucun code à deux facteurs n’a été saisi."
#: crates/pdfs-gui/src/app/pages/login.rs:233
#: crates/pdfs-gui/src/app/pages/login.rs:243
msgid "Sign-in cancelled: no mailbox password was entered."
msgstr "Connexion annulée : aucun mot de passe de boîte aux lettres n’a été saisi."
msgstr ""
"Connexion annulée : aucun mot de passe de boîte aux lettres n’a été saisi."
#: crates/pdfs-gui/src/app/pages/login.rs:236
#: crates/pdfs-gui/src/app/pages/login.rs:246
msgid "That mailbox password didn't unlock your account."
msgstr "Ce mot de passe de boîte aux lettres n’a pas déverrouillé votre compte."
msgstr ""
"Ce mot de passe de boîte aux lettres n’a pas déverrouillé votre compte."
#: crates/pdfs-gui/src/app/pages/login.rs:239
#: crates/pdfs-gui/src/app/pages/login.rs:249
msgid ""
"Sign-in cancelled: the verification wasn't completed. Sign in again to get a "
"new one."
@@ -3249,79 +3252,109 @@ msgstr ""
"pour en obtenir une nouvelle."
#. Translators: {error} is an error message, usually in English.
#: crates/pdfs-gui/src/app/pages/login.rs:244
#: crates/pdfs-gui/src/app/pages/login.rs:254
#, rust-format
msgid "Sign-in failed: {error}"
msgstr "Échec de la connexion : {error}"
#: crates/pdfs-gui/src/app/pages/login.rs:354
#: crates/pdfs-gui/src/app/pages/login.rs:365
msgid "That mailbox password didn't unlock your account. Try again."
msgstr "Ce mot de passe de boîte aux lettres n’a pas déverrouillé votre compte. Réessayez."
msgstr ""
"Ce mot de passe de boîte aux lettres n’a pas déverrouillé votre compte. "
"Réessayez."
#: crates/pdfs-gui/src/app/pages/login.rs:356
#: crates/pdfs-gui/src/app/pages/login.rs:367
msgid ""
"This account has a separate mailbox password. Enter it to unlock your files."
msgstr "Ce compte a un mot de passe de boîte aux lettres distinct. Saisissez-le pour déverrouiller vos fichiers."
msgstr ""
"Ce compte a un mot de passe de boîte aux lettres distinct. Saisissez-le pour "
"déverrouiller vos fichiers."
#: crates/pdfs-gui/src/app/pages/login.rs:359
#: crates/pdfs-gui/src/app/pages/login.rs:370
msgid "Mailbox Password"
msgstr "Mot de passe de la boîte aux lettres"
#: crates/pdfs-gui/src/app/pages/login.rs:365
#: crates/pdfs-gui/src/app/pages/login.rs:376
msgid "Mailbox password"
msgstr "Mot de passe de la boîte aux lettres"
#: crates/pdfs-gui/src/app/pages/login.rs:369
#: crates/pdfs-gui/src/app/pages/login.rs:380
msgid "Keep unlocked on this computer"
msgstr "Garder déverrouillé sur cet ordinateur"
#: crates/pdfs-gui/src/app/pages/login.rs:371
#: crates/pdfs-gui/src/app/pages/login.rs:382
msgid ""
"Stores the unlock in the system keyring, so Proton Drive opens without "
"asking after every login. Otherwise you enter the password once per session."
msgstr "Enregistre le déverrouillage dans le trousseau de clés du système, afin que Proton Drive s’ouvre sans demande après chaque connexion. Sinon, vous saisissez le mot de passe une fois par session."
msgstr ""
"Enregistre le déverrouillage dans le trousseau de clés du système, afin que "
"Proton Drive s’ouvre sans demande après chaque connexion. Sinon, vous "
"saisissez le mot de passe une fois par session."
#: crates/pdfs-gui/src/app/pages/login.rs:379
#: crates/pdfs-gui/src/app/pages/login.rs:432
#: crates/pdfs-gui/src/app/pages/login.rs:390
#: crates/pdfs-gui/src/app/pages/login.rs:443
msgid "Unlock"
msgstr "Déverrouiller"
#: crates/pdfs-gui/src/app/pages/login.rs:431
#: crates/pdfs-gui/src/app/pages/login.rs:442
msgid "Proton Drive is locked. Enter your mailbox password to unlock it."
msgstr "Proton Drive est verrouillé. Saisissez votre mot de passe de boîte aux lettres pour le déverrouiller."
msgstr ""
"Proton Drive est verrouillé. Saisissez votre mot de passe de boîte aux "
"lettres pour le déverrouiller."
#: crates/pdfs-gui/src/app/pages/login.rs:460
#: crates/pdfs-gui/src/app/pages/login.rs:471
msgid "Unlocked."
msgstr "Déverrouillé."
#: crates/pdfs-gui/src/app/pages/login.rs:465
#: crates/pdfs-gui/src/app/pages/login.rs:476
msgid "Couldn't unlock"
msgstr "Impossible de déverrouiller"
#: crates/pdfs-gui/src/app/pages/login.rs:478
#: crates/pdfs-gui/src/app/pages/login.rs:489
msgid "Two-Factor Authentication"
msgstr "Authentification à deux facteurs"
#: crates/pdfs-gui/src/app/pages/login.rs:480
#: crates/pdfs-gui/src/app/pages/login.rs:491
msgid ""
"Enter the code from your authenticator app, or one of your recovery codes."
msgstr ""
"Saisissez le code de votre application d’authentification ou l’un de vos "
"codes de récupération."
#: crates/pdfs-gui/src/app/pages/login.rs:486
#: crates/pdfs-gui/src/app/pages/login.rs:497
msgid "Authentication code"
msgstr "Code d’authentification"
#: crates/pdfs-gui/src/app/pages/login.rs:493
#: crates/pdfs-gui/src/app/pages/login.rs:504
msgid "Confirm"
msgstr "Confirmer"
#: crates/pdfs-gui/src/app/pages/login.rs:521
#: crates/pdfs-gui/src/app/pages/login.rs:535
#
msgid "Verify in Your Browser"
msgstr "Vérifier dans le navigateur"
#: crates/pdfs-gui/src/app/pages/login.rs:537
msgid ""
"The verification page can't be shown in the app on this system. Open it in "
"your browser, complete it there, then come back and choose Continue."
msgstr "La page de vérification ne peut pas s’afficher dans l’application sur ce système. Ouvrez-la dans votre navigateur, terminez-la, puis revenez et choisissez « Continuer »."
#: crates/pdfs-gui/src/app/pages/login.rs:543
#
msgid "Open Verification Page"
msgstr "Ouvrir la page de vérification"
#: crates/pdfs-gui/src/app/pages/login.rs:550
#
msgid "Continue"
msgstr "Continuer"
#: crates/pdfs-gui/src/app/pages/login.rs:589
msgid "Sign Out?"
msgstr "Se déconnecter ?"
#: crates/pdfs-gui/src/app/pages/login.rs:523
#: crates/pdfs-gui/src/app/pages/login.rs:591
msgid ""
"Proton Drive will disconnect and stop syncing until you sign in again. Files "
"already on this computer stay where they are."
@@ -3330,7 +3363,7 @@ msgstr ""
"vous vous reconnectiez. Les fichiers déjà présents sur cet ordinateur "
"restent en place."
#: crates/pdfs-gui/src/app/pages/login.rs:525
#: crates/pdfs-gui/src/app/pages/login.rs:593
msgid "Sign Out"
msgstr "Se déconnecter"
@@ -5317,7 +5350,7 @@ msgstr "Corbeille vidée"
msgid "Couldn't empty the trash"
msgstr "Impossible de vider la corbeille"
#: crates/pdfs-gui/src/app/pages/verify.rs:57
#: crates/pdfs-gui/src/app/pages/verify.rs:162
msgid "Verification"
msgstr "Vérification"
@@ -6118,6 +6151,15 @@ msgstr "{count} a"
msgid "cannot reach the Proton Drive daemon: {error}"
msgstr "impossible de joindre le démon Proton Drive : {error}"
#~ msgid ""
#~ "The verification page couldn't be opened, so the sign-in was cancelled. "
#~ "Your system may keep the web view's sandbox from starting; the "
#~ "troubleshooting guide explains what to do."
#~ msgstr ""
#~ "La page de vérification n’a pas pu s’ouvrir, la connexion a donc été "
#~ "annulée. Votre système empêche peut-être le démarrage du bac à sable de "
#~ "la vue web ; le guide de dépannage explique la marche à suivre."
#~ msgid "Jump to a month"
#~ msgstr "Aller à un mois"
+142 -99
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-07 02:39+0200\n"
"POT-Creation-Date: 2026-10-08 18:47+0200\n"
"PO-Revision-Date: 2026-09-23 12:00+0200\n"
"Last-Translator: Proton Drive for Linux contributors\n"
"Language-Team: Italian\n"
@@ -57,7 +57,7 @@ msgstr "%-d %b %Y"
msgid "%A, %B %-d, %Y, %H:%M"
msgstr "%A %-d %B %Y, %H:%M"
#: crates/pdfs-gui/src/app/main.rs:747
#: crates/pdfs-gui/src/app/main.rs:760
#: crates/pdfs-gui/src/app/pages/activity_text.rs:539
#: crates/pdfs-gui/src/app/pages/browser.rs:454
#: crates/pdfs-gui/src/app/pages/browser.rs:819
@@ -70,91 +70,91 @@ msgstr "%A %-d %B %Y, %H:%M"
msgid "My files"
msgstr "I miei file"
#: crates/pdfs-gui/src/app/main.rs:750 crates/pdfs-gui/src/app/main.rs:1394
#: crates/pdfs-gui/src/app/main.rs:763 crates/pdfs-gui/src/app/main.rs:1407
#: crates/pdfs-gui/src/app/pages/albums.rs:638
#: crates/pdfs-gui/src/app/pages/photos.rs:842
#: crates/pdfs-gui/src/app/pages/places.rs:441
msgid "Photos"
msgstr "Foto"
#: crates/pdfs-gui/src/app/main.rs:755
#: crates/pdfs-gui/src/app/main.rs:768
#: crates/pdfs-gui/src/app/pages/shared.rs:168
#: crates/pdfs-gui/src/app/pages/shared.rs:482
msgid "Shared with me"
msgstr "Condivisi con me"
#: crates/pdfs-gui/src/app/main.rs:760
#: crates/pdfs-gui/src/app/main.rs:773
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:120
msgid "Shared by me"
msgstr "Condivisi da me"
#: crates/pdfs-gui/src/app/main.rs:763
#: crates/pdfs-gui/src/app/main.rs:776
#: crates/pdfs-gui/src/app/pages/devices.rs:140
#: crates/pdfs-gui/src/app/pages/devices.rs:481
msgid "Computers"
msgstr "Computer"
#: crates/pdfs-gui/src/app/main.rs:764
#: crates/pdfs-gui/src/app/main.rs:777
#: crates/pdfs-gui/src/app/pages/trash.rs:101
msgid "Trash"
msgstr "Cestino"
#. Translators: sidebar entry for the page listing this computer's synced folders.
#: crates/pdfs-gui/src/app/main.rs:766
#: crates/pdfs-gui/src/app/main.rs:779
msgid "Sync"
msgstr "Sincronizzazione"
#. Translators: a failed action's toast. {what} says what failed, such as
#. "Couldn't rename"; {detail} is the reason, usually untranslated text
#. from the mount service.
#: crates/pdfs-gui/src/app/main.rs:1083
#: crates/pdfs-gui/src/app/main.rs:1096
#, rust-format
msgid "{what}: {detail}"
msgstr "{what}: {detail}"
#: crates/pdfs-gui/src/app/main.rs:1102
#: crates/pdfs-gui/src/app/main.rs:1115
msgid "You're offline"
msgstr "Sei offline"
#: crates/pdfs-gui/src/app/main.rs:1103
#: crates/pdfs-gui/src/app/main.rs:1116
msgid "That's not there any more"
msgstr "Non esiste più"
#: crates/pdfs-gui/src/app/main.rs:1104
#: crates/pdfs-gui/src/app/main.rs:1117
msgid "You don't have access to that"
msgstr "Non hai accesso a questo elemento"
#: crates/pdfs-gui/src/app/main.rs:1105
#: crates/pdfs-gui/src/app/main.rs:1118
msgid "Something changed this first"
msgstr "È stato modificato prima da qualcos'altro"
#: crates/pdfs-gui/src/app/main.rs:1106
#: crates/pdfs-gui/src/app/main.rs:1119
msgid "Your Proton Drive is full"
msgstr "Il tuo Proton Drive è pieno"
#: crates/pdfs-gui/src/app/main.rs:1147 crates/pdfs-gui/src/app/main.rs:1376
#: crates/pdfs-gui/src/app/main.rs:1160 crates/pdfs-gui/src/app/main.rs:1389
#: crates/pdfs-gui/src/app/pages/status.rs:385
msgid "Preferences"
msgstr "Preferenze"
#: crates/pdfs-gui/src/app/main.rs:1148
#: crates/pdfs-gui/src/app/main.rs:1161
#: crates/pdfs-gui/src/app/widgets/compat.rs:262
msgid "Keyboard Shortcuts"
msgstr "Scorciatoie da tastiera"
#: crates/pdfs-gui/src/app/main.rs:1150
#: crates/pdfs-gui/src/app/main.rs:1163
msgid "About Proton Drive for Linux"
msgstr "Informazioni su Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1155
#: crates/pdfs-gui/src/app/main.rs:1168
msgid "Main menu"
msgstr "Menu principale"
#: crates/pdfs-gui/src/app/main.rs:1211
#: crates/pdfs-gui/src/app/main.rs:1224
msgid "Proton Drive for Linux"
msgstr "Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1219
#: crates/pdfs-gui/src/app/main.rs:1232
msgid ""
"Files-on-demand Proton Drive for the Linux desktop.\n"
"\n"
@@ -165,23 +165,23 @@ msgstr ""
"\n"
"Client non ufficiale: non affiliato, approvato né supportato da Proton AG."
#: crates/pdfs-gui/src/app/main.rs:1224
#: crates/pdfs-gui/src/app/main.rs:1237
msgid "Source Code"
msgstr "Codice sorgente"
#: crates/pdfs-gui/src/app/main.rs:1228
#: crates/pdfs-gui/src/app/main.rs:1241
msgid "Proton Terms of Service"
msgstr "Termini di servizio di Proton"
#: crates/pdfs-gui/src/app/main.rs:1232
#: crates/pdfs-gui/src/app/main.rs:1245
msgid "Proton Privacy Policy"
msgstr "Informativa sulla privacy di Proton"
#: crates/pdfs-gui/src/app/main.rs:1237
#: crates/pdfs-gui/src/app/main.rs:1250
msgid "Disclaimer"
msgstr "Esclusione di responsabilità"
#: crates/pdfs-gui/src/app/main.rs:1241
#: crates/pdfs-gui/src/app/main.rs:1254
msgid ""
"This is an unofficial, community-built client. It is not affiliated with, "
"endorsed by, or supported by Proton AG.\n"
@@ -204,7 +204,7 @@ msgstr ""
"Questo software è fornito “così com’è”, senza alcuna garanzia. Conserva una "
"copia dei dati che non puoi permetterti di perdere."
#: crates/pdfs-gui/src/app/main.rs:1249
#: crates/pdfs-gui/src/app/main.rs:1262
msgid ""
"Places are named with data from <a href=\"https://www.geonames.org/"
"\">GeoNames</a>, licensed under <a href=\"https://creativecommons.org/"
@@ -214,7 +214,7 @@ msgstr ""
"\">GeoNames</a>, con licenza <a href=\"https://creativecommons.org/licenses/"
"by/4.0/\">CC BY 4.0</a>."
#: crates/pdfs-gui/src/app/main.rs:1257
#: crates/pdfs-gui/src/app/main.rs:1270
msgid ""
"The places map is drawn from <a href=\"https://www.naturalearthdata.com/"
"\">Natural Earth</a> land outlines and country borders, which are in the "
@@ -224,7 +224,7 @@ msgstr ""
"confini nazionali di <a href=\"https://www.naturalearthdata.com/\">Natural "
"Earth</a>, che sono di pubblico dominio."
#: crates/pdfs-gui/src/app/main.rs:1265
#: crates/pdfs-gui/src/app/main.rs:1278
msgid ""
"The street map, when turned on, comes from <a href=\"https://openfreemap.org/"
"\">OpenFreeMap</a> in the <a href=\"https://www.openmaptiles.org/"
@@ -240,15 +240,15 @@ msgstr ""
#. Translators: replace with your name(s) and email address(es), one
#. per line, to be credited in the About dialog.
#: crates/pdfs-gui/src/app/main.rs:1276
#: crates/pdfs-gui/src/app/main.rs:1289
msgid "translator-credits"
msgstr "Collaboratori di Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1314
#: crates/pdfs-gui/src/app/main.rs:1327
msgid "Stop Proton Drive?"
msgstr "Arrestare Proton Drive?"
#: crates/pdfs-gui/src/app/main.rs:1315
#: crates/pdfs-gui/src/app/main.rs:1328
msgid ""
"My files goes offline and nothing syncs until you connect again. Proton "
"Drive starts again at your next login."
@@ -256,7 +256,7 @@ msgstr ""
"I miei file andranno offline e nulla verrà sincronizzato finché non ti "
"riconnetti. Proton Drive si riavvierà al prossimo accesso."
#: crates/pdfs-gui/src/app/main.rs:1317 crates/pdfs-gui/src/app/main.rs:1592
#: crates/pdfs-gui/src/app/main.rs:1330 crates/pdfs-gui/src/app/main.rs:1605
#: crates/pdfs-gui/src/app/pages/albums.rs:243
#: crates/pdfs-gui/src/app/pages/albums.rs:428
#: crates/pdfs-gui/src/app/pages/browser.rs:1892
@@ -271,8 +271,9 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1013
#: crates/pdfs-gui/src/app/pages/locations.rs:1488
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
#: crates/pdfs-gui/src/app/pages/login.rs:378
#: crates/pdfs-gui/src/app/pages/login.rs:492
#: crates/pdfs-gui/src/app/pages/login.rs:389
#: crates/pdfs-gui/src/app/pages/login.rs:503
#: crates/pdfs-gui/src/app/pages/login.rs:549
#: crates/pdfs-gui/src/app/pages/photos.rs:2055
#: crates/pdfs-gui/src/app/pages/shared.rs:946
#: crates/pdfs-gui/src/app/pages/shared.rs:1027
@@ -287,30 +288,30 @@ msgstr ""
msgid "Cancel"
msgstr "Annulla"
#: crates/pdfs-gui/src/app/main.rs:1318
#: crates/pdfs-gui/src/app/main.rs:1331
msgctxt "verb"
msgid "Stop"
msgstr "Arresta"
#: crates/pdfs-gui/src/app/main.rs:1335
#: crates/pdfs-gui/src/app/main.rs:1348
msgid "Couldn't stop Proton Drive"
msgstr "Impossibile arrestare Proton Drive"
#: crates/pdfs-gui/src/app/main.rs:1336
#: crates/pdfs-gui/src/app/main.rs:1349
msgid "The Proton Drive service did not stop."
msgstr "Il servizio di Proton Drive non si è arrestato."
#: crates/pdfs-gui/src/app/main.rs:1372
#: crates/pdfs-gui/src/app/main.rs:1385
#: crates/pdfs-gui/src/app/pages/status.rs:254
msgid "General"
msgstr "Generale"
#: crates/pdfs-gui/src/app/main.rs:1374
#: crates/pdfs-gui/src/app/main.rs:1387
#: crates/pdfs-gui/src/app/pages/browser.rs:247
msgid "Search Drive"
msgstr "Cerca in Drive"
#: crates/pdfs-gui/src/app/main.rs:1375
#: crates/pdfs-gui/src/app/main.rs:1388
#: crates/pdfs-gui/src/app/pages/browser.rs:957
#: crates/pdfs-gui/src/app/pages/devices.rs:554
#: crates/pdfs-gui/src/app/pages/shared.rs:586
@@ -319,38 +320,38 @@ msgstr "Cerca in Drive"
msgid "Refresh"
msgstr "Aggiorna"
#: crates/pdfs-gui/src/app/main.rs:1377
#: crates/pdfs-gui/src/app/main.rs:1390
msgid "Keyboard shortcuts"
msgstr "Scorciatoie da tastiera"
#: crates/pdfs-gui/src/app/main.rs:1381
#: crates/pdfs-gui/src/app/main.rs:1394
msgid "Files"
msgstr "File"
#: crates/pdfs-gui/src/app/main.rs:1383
#: crates/pdfs-gui/src/app/main.rs:1396
#: crates/pdfs-gui/src/app/pages/browser.rs:294
msgid "New folder"
msgstr "Nuova cartella"
#: crates/pdfs-gui/src/app/main.rs:1384
#: crates/pdfs-gui/src/app/main.rs:1397
#: crates/pdfs-gui/src/app/pages/browser.rs:290
msgid "Upload files"
msgstr "Carica file"
#: crates/pdfs-gui/src/app/main.rs:1385
#: crates/pdfs-gui/src/app/main.rs:1398
msgid "Back / forward"
msgstr "Indietro / avanti"
#: crates/pdfs-gui/src/app/main.rs:1386
#: crates/pdfs-gui/src/app/main.rs:1399
#: crates/pdfs-gui/src/app/pages/browser.rs:1943
msgid "Parent folder"
msgstr "Cartella superiore"
#: crates/pdfs-gui/src/app/main.rs:1387
#: crates/pdfs-gui/src/app/main.rs:1400
msgid "Grid / list"
msgstr "Griglia / elenco"
#: crates/pdfs-gui/src/app/main.rs:1388
#: crates/pdfs-gui/src/app/main.rs:1401
#: crates/pdfs-gui/src/app/pages/albums.rs:298
#: crates/pdfs-gui/src/app/pages/browser.rs:1871
#: crates/pdfs-gui/src/app/pages/browser.rs:1893
@@ -359,7 +360,7 @@ msgstr "Griglia / elenco"
msgid "Rename"
msgstr "Rinomina"
#: crates/pdfs-gui/src/app/main.rs:1389 crates/pdfs-gui/src/app/main.rs:1409
#: crates/pdfs-gui/src/app/main.rs:1402 crates/pdfs-gui/src/app/main.rs:1422
#: crates/pdfs-gui/src/app/pages/browser.rs:357
#: crates/pdfs-gui/src/app/pages/browser.rs:900
#: crates/pdfs-gui/src/app/pages/browser.rs:932
@@ -369,73 +370,73 @@ msgstr "Rinomina"
msgid "Move to Trash"
msgstr "Sposta nel cestino"
#: crates/pdfs-gui/src/app/main.rs:1390
#: crates/pdfs-gui/src/app/main.rs:1403
msgid "Clear the selection"
msgstr "Annulla la selezione"
#: crates/pdfs-gui/src/app/main.rs:1396
#: crates/pdfs-gui/src/app/main.rs:1409
msgid "Larger thumbnails"
msgstr "Miniature più grandi"
#: crates/pdfs-gui/src/app/main.rs:1397
#: crates/pdfs-gui/src/app/main.rs:1410
msgid "Smaller thumbnails"
msgstr "Miniature più piccole"
#: crates/pdfs-gui/src/app/main.rs:1398
#: crates/pdfs-gui/src/app/main.rs:1411
msgid "Reset thumbnail size"
msgstr "Ripristina la dimensione delle miniature"
#: crates/pdfs-gui/src/app/main.rs:1399
#: crates/pdfs-gui/src/app/main.rs:1412
msgid "Select all"
msgstr "Seleziona tutto"
#: crates/pdfs-gui/src/app/main.rs:1403
#: crates/pdfs-gui/src/app/main.rs:1416
msgid "Photo Viewer"
msgstr "Visualizzatore di foto"
#: crates/pdfs-gui/src/app/main.rs:1405
#: crates/pdfs-gui/src/app/main.rs:1418
msgid "Previous / next photo"
msgstr "Foto precedente / successiva"
#: crates/pdfs-gui/src/app/main.rs:1406
#: crates/pdfs-gui/src/app/main.rs:1419
msgid "First / last photo"
msgstr "Prima / ultima foto"
#: crates/pdfs-gui/src/app/main.rs:1407
#: crates/pdfs-gui/src/app/main.rs:1420
msgid "Show details"
msgstr "Mostra dettagli"
#: crates/pdfs-gui/src/app/main.rs:1408
#: crates/pdfs-gui/src/app/main.rs:1421
msgid "Fullscreen"
msgstr "Schermo intero"
#: crates/pdfs-gui/src/app/main.rs:1410
#: crates/pdfs-gui/src/app/main.rs:1423
msgid "Close"
msgstr "Chiudi"
#: crates/pdfs-gui/src/app/main.rs:1500
#: crates/pdfs-gui/src/app/main.rs:1513
msgid "Select a single item to rename it"
msgstr "Seleziona un solo elemento per rinominarlo"
#: crates/pdfs-gui/src/app/main.rs:1660
#: crates/pdfs-gui/src/app/main.rs:1673
#: crates/pdfs-gui/src/app/pages/albums.rs:85
#: crates/pdfs-gui/src/app/pages/places.rs:104
#: crates/pdfs-gui/src/app/pages/status.rs:1371
msgid "Not connected"
msgstr "Non connesso"
#: crates/pdfs-gui/src/app/main.rs:1661
#: crates/pdfs-gui/src/app/main.rs:1674
msgid "The Proton Drive service isn't running."
msgstr "Il servizio di Proton Drive non è in esecuzione."
#: crates/pdfs-gui/src/app/main.rs:1669
#: crates/pdfs-gui/src/app/main.rs:1682
#: crates/pdfs-gui/src/app/pages/status.rs:336
#: crates/pdfs-gui/src/hud/mod.rs:274 crates/pdfs-gui/src/hud/mod.rs:595
#: crates/pdfs-gui/src/main.rs:453
msgid "Connecting…"
msgstr "Connessione…"
#: crates/pdfs-gui/src/app/main.rs:1670
#: crates/pdfs-gui/src/app/main.rs:1683
msgid "Waiting for the Proton Drive service to start."
msgstr "In attesa dell’avvio del servizio di Proton Drive."
@@ -3197,21 +3198,21 @@ msgstr "Accesso in corso…"
msgid "Complete the verification to continue…"
msgstr "Completa la verifica per continuare…"
#: crates/pdfs-gui/src/app/pages/login.rs:185
#: crates/pdfs-gui/src/app/pages/login.rs:195
msgid "login cancelled"
msgstr "accesso annullato"
#: crates/pdfs-gui/src/app/pages/login.rs:218
#: crates/pdfs-gui/src/app/pages/login.rs:228
msgid "Too many sign-in attempts. Wait a few minutes and try again."
msgstr "Troppi tentativi di accesso. Attendi qualche minuto e riprova."
#: crates/pdfs-gui/src/app/pages/login.rs:224
#: crates/pdfs-gui/src/app/pages/login.rs:234
msgid "Couldn't reach Proton. Check your internet connection and try again."
msgstr ""
"Impossibile raggiungere Proton. Controlla la connessione a Internet e "
"riprova."
#: crates/pdfs-gui/src/app/pages/login.rs:227
#: crates/pdfs-gui/src/app/pages/login.rs:237
msgid ""
"Signed in, but the session couldn't be saved to the system keyring. Make "
"sure a keyring (GNOME Keyring or KWallet) is running and unlocked."
@@ -3220,21 +3221,24 @@ msgstr ""
"portachiavi di sistema. Assicurati che un portachiavi (GNOME Keyring o "
"KWallet) sia in esecuzione e sbloccato."
#: crates/pdfs-gui/src/app/pages/login.rs:230
#: crates/pdfs-gui/src/app/pages/login.rs:240
msgid "Sign-in cancelled: no two-factor code was entered."
msgstr ""
"Accesso annullato: non è stato inserito alcun codice di autenticazione a due "
"fattori."
#: crates/pdfs-gui/src/app/pages/login.rs:233
#: crates/pdfs-gui/src/app/pages/login.rs:243
msgid "Sign-in cancelled: no mailbox password was entered."
msgstr "Accesso annullato: non è stata inserita alcuna password della casella di posta."
msgstr ""
"Accesso annullato: non è stata inserita alcuna password della casella di "
"posta."
#: crates/pdfs-gui/src/app/pages/login.rs:236
#: crates/pdfs-gui/src/app/pages/login.rs:246
msgid "That mailbox password didn't unlock your account."
msgstr "Quella password della casella di posta non ha sbloccato il tuo account."
msgstr ""
"Quella password della casella di posta non ha sbloccato il tuo account."
#: crates/pdfs-gui/src/app/pages/login.rs:239
#: crates/pdfs-gui/src/app/pages/login.rs:249
msgid ""
"Sign-in cancelled: the verification wasn't completed. Sign in again to get a "
"new one."
@@ -3243,79 +3247,109 @@ msgstr ""
"riceverne una nuova."
#. Translators: {error} is an error message, usually in English.
#: crates/pdfs-gui/src/app/pages/login.rs:244
#: crates/pdfs-gui/src/app/pages/login.rs:254
#, rust-format
msgid "Sign-in failed: {error}"
msgstr "Accesso non riuscito: {error}"
#: crates/pdfs-gui/src/app/pages/login.rs:354
#: crates/pdfs-gui/src/app/pages/login.rs:365
msgid "That mailbox password didn't unlock your account. Try again."
msgstr "Quella password della casella di posta non ha sbloccato il tuo account. Riprova."
msgstr ""
"Quella password della casella di posta non ha sbloccato il tuo account. "
"Riprova."
#: crates/pdfs-gui/src/app/pages/login.rs:356
#: crates/pdfs-gui/src/app/pages/login.rs:367
msgid ""
"This account has a separate mailbox password. Enter it to unlock your files."
msgstr "Questo account ha una password della casella di posta separata. Inseriscila per sbloccare i tuoi file."
msgstr ""
"Questo account ha una password della casella di posta separata. Inseriscila "
"per sbloccare i tuoi file."
#: crates/pdfs-gui/src/app/pages/login.rs:359
#: crates/pdfs-gui/src/app/pages/login.rs:370
msgid "Mailbox Password"
msgstr "Password della casella di posta"
#: crates/pdfs-gui/src/app/pages/login.rs:365
#: crates/pdfs-gui/src/app/pages/login.rs:376
msgid "Mailbox password"
msgstr "Password della casella di posta"
#: crates/pdfs-gui/src/app/pages/login.rs:369
#: crates/pdfs-gui/src/app/pages/login.rs:380
msgid "Keep unlocked on this computer"
msgstr "Mantieni sbloccato su questo computer"
#: crates/pdfs-gui/src/app/pages/login.rs:371
#: crates/pdfs-gui/src/app/pages/login.rs:382
msgid ""
"Stores the unlock in the system keyring, so Proton Drive opens without "
"asking after every login. Otherwise you enter the password once per session."
msgstr "Salva lo sblocco nel portachiavi di sistema, così Proton Drive si apre senza chiedere dopo ogni accesso. Altrimenti inserisci la password una volta per sessione."
msgstr ""
"Salva lo sblocco nel portachiavi di sistema, così Proton Drive si apre senza "
"chiedere dopo ogni accesso. Altrimenti inserisci la password una volta per "
"sessione."
#: crates/pdfs-gui/src/app/pages/login.rs:379
#: crates/pdfs-gui/src/app/pages/login.rs:432
#: crates/pdfs-gui/src/app/pages/login.rs:390
#: crates/pdfs-gui/src/app/pages/login.rs:443
msgid "Unlock"
msgstr "Sblocca"
#: crates/pdfs-gui/src/app/pages/login.rs:431
#: crates/pdfs-gui/src/app/pages/login.rs:442
msgid "Proton Drive is locked. Enter your mailbox password to unlock it."
msgstr "Proton Drive è bloccato. Inserisci la password della casella di posta per sbloccarlo."
msgstr ""
"Proton Drive è bloccato. Inserisci la password della casella di posta per "
"sbloccarlo."
#: crates/pdfs-gui/src/app/pages/login.rs:460
#: crates/pdfs-gui/src/app/pages/login.rs:471
msgid "Unlocked."
msgstr "Sbloccato."
#: crates/pdfs-gui/src/app/pages/login.rs:465
#: crates/pdfs-gui/src/app/pages/login.rs:476
msgid "Couldn't unlock"
msgstr "Impossibile sbloccare"
#: crates/pdfs-gui/src/app/pages/login.rs:478
#: crates/pdfs-gui/src/app/pages/login.rs:489
msgid "Two-Factor Authentication"
msgstr "Autenticazione a due fattori"
#: crates/pdfs-gui/src/app/pages/login.rs:480
#: crates/pdfs-gui/src/app/pages/login.rs:491
msgid ""
"Enter the code from your authenticator app, or one of your recovery codes."
msgstr ""
"Inserisci il codice dell'app di autenticazione o uno dei tuoi codici di "
"recupero."
#: crates/pdfs-gui/src/app/pages/login.rs:486
#: crates/pdfs-gui/src/app/pages/login.rs:497
msgid "Authentication code"
msgstr "Codice di autenticazione"
#: crates/pdfs-gui/src/app/pages/login.rs:493
#: crates/pdfs-gui/src/app/pages/login.rs:504
msgid "Confirm"
msgstr "Conferma"
#: crates/pdfs-gui/src/app/pages/login.rs:521
#: crates/pdfs-gui/src/app/pages/login.rs:535
#
msgid "Verify in Your Browser"
msgstr "Verifica nel browser"
#: crates/pdfs-gui/src/app/pages/login.rs:537
msgid ""
"The verification page can't be shown in the app on this system. Open it in "
"your browser, complete it there, then come back and choose Continue."
msgstr "La pagina di verifica non può essere mostrata nell’app su questo sistema. Aprila nel browser, completala lì, poi torna qui e scegli “Continua”."
#: crates/pdfs-gui/src/app/pages/login.rs:543
#
msgid "Open Verification Page"
msgstr "Apri pagina di verifica"
#: crates/pdfs-gui/src/app/pages/login.rs:550
#
msgid "Continue"
msgstr "Continua"
#: crates/pdfs-gui/src/app/pages/login.rs:589
msgid "Sign Out?"
msgstr "Disconnettersi?"
#: crates/pdfs-gui/src/app/pages/login.rs:523
#: crates/pdfs-gui/src/app/pages/login.rs:591
msgid ""
"Proton Drive will disconnect and stop syncing until you sign in again. Files "
"already on this computer stay where they are."
@@ -3323,7 +3357,7 @@ msgstr ""
"Proton Drive si disconnetterà e interromperà la sincronizzazione finché non "
"accedi di nuovo. I file già presenti su questo computer restano dove sono."
#: crates/pdfs-gui/src/app/pages/login.rs:525
#: crates/pdfs-gui/src/app/pages/login.rs:593
msgid "Sign Out"
msgstr "Disconnetti"
@@ -5297,7 +5331,7 @@ msgstr "Cestino svuotato"
msgid "Couldn't empty the trash"
msgstr "Impossibile svuotare il cestino"
#: crates/pdfs-gui/src/app/pages/verify.rs:57
#: crates/pdfs-gui/src/app/pages/verify.rs:162
msgid "Verification"
msgstr "Verifica"
@@ -6095,6 +6129,15 @@ msgstr "{count} a"
msgid "cannot reach the Proton Drive daemon: {error}"
msgstr "impossibile raggiungere il demone di Proton Drive: {error}"
#~ msgid ""
#~ "The verification page couldn't be opened, so the sign-in was cancelled. "
#~ "Your system may keep the web view's sandbox from starting; the "
#~ "troubleshooting guide explains what to do."
#~ msgstr ""
#~ "Impossibile aprire la pagina di verifica, quindi l'accesso è stato "
#~ "annullato. Il sistema potrebbe impedire l'avvio della sandbox della vista "
#~ "web; la guida alla risoluzione dei problemi spiega cosa fare."
#~ msgid "Jump to a month"
#~ msgstr "Vai a un mese"
+137 -97
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-07 02:39+0200\n"
"POT-Creation-Date: 2026-10-08 18:47+0200\n"
"PO-Revision-Date: 2026-09-23 12:00+0200\n"
"Last-Translator: Proton Drive for Linux contributors\n"
"Language-Team: Dutch\n"
@@ -57,7 +57,7 @@ msgstr "%-d %b %Y"
msgid "%A, %B %-d, %Y, %H:%M"
msgstr "%A %-d %B %Y, %H:%M"
#: crates/pdfs-gui/src/app/main.rs:747
#: crates/pdfs-gui/src/app/main.rs:760
#: crates/pdfs-gui/src/app/pages/activity_text.rs:539
#: crates/pdfs-gui/src/app/pages/browser.rs:454
#: crates/pdfs-gui/src/app/pages/browser.rs:819
@@ -70,91 +70,91 @@ msgstr "%A %-d %B %Y, %H:%M"
msgid "My files"
msgstr "Mijn bestanden"
#: crates/pdfs-gui/src/app/main.rs:750 crates/pdfs-gui/src/app/main.rs:1394
#: crates/pdfs-gui/src/app/main.rs:763 crates/pdfs-gui/src/app/main.rs:1407
#: crates/pdfs-gui/src/app/pages/albums.rs:638
#: crates/pdfs-gui/src/app/pages/photos.rs:842
#: crates/pdfs-gui/src/app/pages/places.rs:441
msgid "Photos"
msgstr "Foto's"
#: crates/pdfs-gui/src/app/main.rs:755
#: crates/pdfs-gui/src/app/main.rs:768
#: crates/pdfs-gui/src/app/pages/shared.rs:168
#: crates/pdfs-gui/src/app/pages/shared.rs:482
msgid "Shared with me"
msgstr "Gedeeld met mij"
#: crates/pdfs-gui/src/app/main.rs:760
#: crates/pdfs-gui/src/app/main.rs:773
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:120
msgid "Shared by me"
msgstr "Gedeeld door mij"
#: crates/pdfs-gui/src/app/main.rs:763
#: crates/pdfs-gui/src/app/main.rs:776
#: crates/pdfs-gui/src/app/pages/devices.rs:140
#: crates/pdfs-gui/src/app/pages/devices.rs:481
msgid "Computers"
msgstr "Computers"
#: crates/pdfs-gui/src/app/main.rs:764
#: crates/pdfs-gui/src/app/main.rs:777
#: crates/pdfs-gui/src/app/pages/trash.rs:101
msgid "Trash"
msgstr "Prullenbak"
#. Translators: sidebar entry for the page listing this computer's synced folders.
#: crates/pdfs-gui/src/app/main.rs:766
#: crates/pdfs-gui/src/app/main.rs:779
msgid "Sync"
msgstr "Synchronisatie"
#. Translators: a failed action's toast. {what} says what failed, such as
#. "Couldn't rename"; {detail} is the reason, usually untranslated text
#. from the mount service.
#: crates/pdfs-gui/src/app/main.rs:1083
#: crates/pdfs-gui/src/app/main.rs:1096
#, rust-format
msgid "{what}: {detail}"
msgstr "{what}: {detail}"
#: crates/pdfs-gui/src/app/main.rs:1102
#: crates/pdfs-gui/src/app/main.rs:1115
msgid "You're offline"
msgstr "Je bent offline"
#: crates/pdfs-gui/src/app/main.rs:1103
#: crates/pdfs-gui/src/app/main.rs:1116
msgid "That's not there any more"
msgstr "Dat bestaat niet meer"
#: crates/pdfs-gui/src/app/main.rs:1104
#: crates/pdfs-gui/src/app/main.rs:1117
msgid "You don't have access to that"
msgstr "Je hebt daar geen toegang toe"
#: crates/pdfs-gui/src/app/main.rs:1105
#: crates/pdfs-gui/src/app/main.rs:1118
msgid "Something changed this first"
msgstr "Er is eerst iets anders gewijzigd"
#: crates/pdfs-gui/src/app/main.rs:1106
#: crates/pdfs-gui/src/app/main.rs:1119
msgid "Your Proton Drive is full"
msgstr "Je Proton Drive is vol"
#: crates/pdfs-gui/src/app/main.rs:1147 crates/pdfs-gui/src/app/main.rs:1376
#: crates/pdfs-gui/src/app/main.rs:1160 crates/pdfs-gui/src/app/main.rs:1389
#: crates/pdfs-gui/src/app/pages/status.rs:385
msgid "Preferences"
msgstr "Voorkeuren"
#: crates/pdfs-gui/src/app/main.rs:1148
#: crates/pdfs-gui/src/app/main.rs:1161
#: crates/pdfs-gui/src/app/widgets/compat.rs:262
msgid "Keyboard Shortcuts"
msgstr "Sneltoetsen"
#: crates/pdfs-gui/src/app/main.rs:1150
#: crates/pdfs-gui/src/app/main.rs:1163
msgid "About Proton Drive for Linux"
msgstr "Over Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1155
#: crates/pdfs-gui/src/app/main.rs:1168
msgid "Main menu"
msgstr "Hoofdmenu"
#: crates/pdfs-gui/src/app/main.rs:1211
#: crates/pdfs-gui/src/app/main.rs:1224
msgid "Proton Drive for Linux"
msgstr "Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1219
#: crates/pdfs-gui/src/app/main.rs:1232
msgid ""
"Files-on-demand Proton Drive for the Linux desktop.\n"
"\n"
@@ -166,23 +166,23 @@ msgstr ""
"Onofficiële client — niet gelieerd aan, onderschreven door of ondersteund "
"door Proton AG."
#: crates/pdfs-gui/src/app/main.rs:1224
#: crates/pdfs-gui/src/app/main.rs:1237
msgid "Source Code"
msgstr "Broncode"
#: crates/pdfs-gui/src/app/main.rs:1228
#: crates/pdfs-gui/src/app/main.rs:1241
msgid "Proton Terms of Service"
msgstr "Servicevoorwaarden van Proton"
#: crates/pdfs-gui/src/app/main.rs:1232
#: crates/pdfs-gui/src/app/main.rs:1245
msgid "Proton Privacy Policy"
msgstr "Privacybeleid van Proton"
#: crates/pdfs-gui/src/app/main.rs:1237
#: crates/pdfs-gui/src/app/main.rs:1250
msgid "Disclaimer"
msgstr "Disclaimer"
#: crates/pdfs-gui/src/app/main.rs:1241
#: crates/pdfs-gui/src/app/main.rs:1254
msgid ""
"This is an unofficial, community-built client. It is not affiliated with, "
"endorsed by, or supported by Proton AG.\n"
@@ -205,7 +205,7 @@ msgstr ""
"Deze software wordt geleverd “zoals ze is”, zonder enige garantie. Bewaar "
"een kopie van gegevens die je niet kwijt wilt raken."
#: crates/pdfs-gui/src/app/main.rs:1249
#: crates/pdfs-gui/src/app/main.rs:1262
msgid ""
"Places are named with data from <a href=\"https://www.geonames.org/"
"\">GeoNames</a>, licensed under <a href=\"https://creativecommons.org/"
@@ -215,7 +215,7 @@ msgstr ""
"\">GeoNames</a>, gelicentieerd onder <a href=\"https://creativecommons.org/"
"licenses/by/4.0/\">CC BY 4.0</a>."
#: crates/pdfs-gui/src/app/main.rs:1257
#: crates/pdfs-gui/src/app/main.rs:1270
msgid ""
"The places map is drawn from <a href=\"https://www.naturalearthdata.com/"
"\">Natural Earth</a> land outlines and country borders, which are in the "
@@ -225,7 +225,7 @@ msgstr ""
"href=\"https://www.naturalearthdata.com/\">Natural Earth</a>, die in het "
"publieke domein vallen."
#: crates/pdfs-gui/src/app/main.rs:1265
#: crates/pdfs-gui/src/app/main.rs:1278
msgid ""
"The street map, when turned on, comes from <a href=\"https://openfreemap.org/"
"\">OpenFreeMap</a> in the <a href=\"https://www.openmaptiles.org/"
@@ -241,15 +241,15 @@ msgstr ""
#. Translators: replace with your name(s) and email address(es), one
#. per line, to be credited in the About dialog.
#: crates/pdfs-gui/src/app/main.rs:1276
#: crates/pdfs-gui/src/app/main.rs:1289
msgid "translator-credits"
msgstr "Bijdragers aan Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1314
#: crates/pdfs-gui/src/app/main.rs:1327
msgid "Stop Proton Drive?"
msgstr "Proton Drive stoppen?"
#: crates/pdfs-gui/src/app/main.rs:1315
#: crates/pdfs-gui/src/app/main.rs:1328
msgid ""
"My files goes offline and nothing syncs until you connect again. Proton "
"Drive starts again at your next login."
@@ -257,7 +257,7 @@ msgstr ""
"Mijn bestanden gaat offline en er wordt niets gesynchroniseerd tot je weer "
"verbinding maakt. Proton Drive start opnieuw bij je volgende aanmelding."
#: crates/pdfs-gui/src/app/main.rs:1317 crates/pdfs-gui/src/app/main.rs:1592
#: crates/pdfs-gui/src/app/main.rs:1330 crates/pdfs-gui/src/app/main.rs:1605
#: crates/pdfs-gui/src/app/pages/albums.rs:243
#: crates/pdfs-gui/src/app/pages/albums.rs:428
#: crates/pdfs-gui/src/app/pages/browser.rs:1892
@@ -272,8 +272,9 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1013
#: crates/pdfs-gui/src/app/pages/locations.rs:1488
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
#: crates/pdfs-gui/src/app/pages/login.rs:378
#: crates/pdfs-gui/src/app/pages/login.rs:492
#: crates/pdfs-gui/src/app/pages/login.rs:389
#: crates/pdfs-gui/src/app/pages/login.rs:503
#: crates/pdfs-gui/src/app/pages/login.rs:549
#: crates/pdfs-gui/src/app/pages/photos.rs:2055
#: crates/pdfs-gui/src/app/pages/shared.rs:946
#: crates/pdfs-gui/src/app/pages/shared.rs:1027
@@ -288,30 +289,30 @@ msgstr ""
msgid "Cancel"
msgstr "Annuleren"
#: crates/pdfs-gui/src/app/main.rs:1318
#: crates/pdfs-gui/src/app/main.rs:1331
msgctxt "verb"
msgid "Stop"
msgstr "Stoppen"
#: crates/pdfs-gui/src/app/main.rs:1335
#: crates/pdfs-gui/src/app/main.rs:1348
msgid "Couldn't stop Proton Drive"
msgstr "Kon Proton Drive niet stoppen"
#: crates/pdfs-gui/src/app/main.rs:1336
#: crates/pdfs-gui/src/app/main.rs:1349
msgid "The Proton Drive service did not stop."
msgstr "De Proton Drive-service is niet gestopt."
#: crates/pdfs-gui/src/app/main.rs:1372
#: crates/pdfs-gui/src/app/main.rs:1385
#: crates/pdfs-gui/src/app/pages/status.rs:254
msgid "General"
msgstr "Algemeen"
#: crates/pdfs-gui/src/app/main.rs:1374
#: crates/pdfs-gui/src/app/main.rs:1387
#: crates/pdfs-gui/src/app/pages/browser.rs:247
msgid "Search Drive"
msgstr "Drive doorzoeken"
#: crates/pdfs-gui/src/app/main.rs:1375
#: crates/pdfs-gui/src/app/main.rs:1388
#: crates/pdfs-gui/src/app/pages/browser.rs:957
#: crates/pdfs-gui/src/app/pages/devices.rs:554
#: crates/pdfs-gui/src/app/pages/shared.rs:586
@@ -320,38 +321,38 @@ msgstr "Drive doorzoeken"
msgid "Refresh"
msgstr "Verversen"
#: crates/pdfs-gui/src/app/main.rs:1377
#: crates/pdfs-gui/src/app/main.rs:1390
msgid "Keyboard shortcuts"
msgstr "Sneltoetsen"
#: crates/pdfs-gui/src/app/main.rs:1381
#: crates/pdfs-gui/src/app/main.rs:1394
msgid "Files"
msgstr "Bestanden"
#: crates/pdfs-gui/src/app/main.rs:1383
#: crates/pdfs-gui/src/app/main.rs:1396
#: crates/pdfs-gui/src/app/pages/browser.rs:294
msgid "New folder"
msgstr "Nieuwe map"
#: crates/pdfs-gui/src/app/main.rs:1384
#: crates/pdfs-gui/src/app/main.rs:1397
#: crates/pdfs-gui/src/app/pages/browser.rs:290
msgid "Upload files"
msgstr "Bestanden uploaden"
#: crates/pdfs-gui/src/app/main.rs:1385
#: crates/pdfs-gui/src/app/main.rs:1398
msgid "Back / forward"
msgstr "Terug / vooruit"
#: crates/pdfs-gui/src/app/main.rs:1386
#: crates/pdfs-gui/src/app/main.rs:1399
#: crates/pdfs-gui/src/app/pages/browser.rs:1943
msgid "Parent folder"
msgstr "Bovenliggende map"
#: crates/pdfs-gui/src/app/main.rs:1387
#: crates/pdfs-gui/src/app/main.rs:1400
msgid "Grid / list"
msgstr "Raster / lijst"
#: crates/pdfs-gui/src/app/main.rs:1388
#: crates/pdfs-gui/src/app/main.rs:1401
#: crates/pdfs-gui/src/app/pages/albums.rs:298
#: crates/pdfs-gui/src/app/pages/browser.rs:1871
#: crates/pdfs-gui/src/app/pages/browser.rs:1893
@@ -360,7 +361,7 @@ msgstr "Raster / lijst"
msgid "Rename"
msgstr "Hernoemen"
#: crates/pdfs-gui/src/app/main.rs:1389 crates/pdfs-gui/src/app/main.rs:1409
#: crates/pdfs-gui/src/app/main.rs:1402 crates/pdfs-gui/src/app/main.rs:1422
#: crates/pdfs-gui/src/app/pages/browser.rs:357
#: crates/pdfs-gui/src/app/pages/browser.rs:900
#: crates/pdfs-gui/src/app/pages/browser.rs:932
@@ -370,73 +371,73 @@ msgstr "Hernoemen"
msgid "Move to Trash"
msgstr "Naar prullenbak verplaatsen"
#: crates/pdfs-gui/src/app/main.rs:1390
#: crates/pdfs-gui/src/app/main.rs:1403
msgid "Clear the selection"
msgstr "Selectie wissen"
#: crates/pdfs-gui/src/app/main.rs:1396
#: crates/pdfs-gui/src/app/main.rs:1409
msgid "Larger thumbnails"
msgstr "Grotere miniaturen"
#: crates/pdfs-gui/src/app/main.rs:1397
#: crates/pdfs-gui/src/app/main.rs:1410
msgid "Smaller thumbnails"
msgstr "Kleinere miniaturen"
#: crates/pdfs-gui/src/app/main.rs:1398
#: crates/pdfs-gui/src/app/main.rs:1411
msgid "Reset thumbnail size"
msgstr "Miniatuurgrootte herstellen"
#: crates/pdfs-gui/src/app/main.rs:1399
#: crates/pdfs-gui/src/app/main.rs:1412
msgid "Select all"
msgstr "Alles selecteren"
#: crates/pdfs-gui/src/app/main.rs:1403
#: crates/pdfs-gui/src/app/main.rs:1416
msgid "Photo Viewer"
msgstr "Fotoweergave"
#: crates/pdfs-gui/src/app/main.rs:1405
#: crates/pdfs-gui/src/app/main.rs:1418
msgid "Previous / next photo"
msgstr "Vorige / volgende foto"
#: crates/pdfs-gui/src/app/main.rs:1406
#: crates/pdfs-gui/src/app/main.rs:1419
msgid "First / last photo"
msgstr "Eerste / laatste foto"
#: crates/pdfs-gui/src/app/main.rs:1407
#: crates/pdfs-gui/src/app/main.rs:1420
msgid "Show details"
msgstr "Details tonen"
#: crates/pdfs-gui/src/app/main.rs:1408
#: crates/pdfs-gui/src/app/main.rs:1421
msgid "Fullscreen"
msgstr "Volledig scherm"
#: crates/pdfs-gui/src/app/main.rs:1410
#: crates/pdfs-gui/src/app/main.rs:1423
msgid "Close"
msgstr "Sluiten"
#: crates/pdfs-gui/src/app/main.rs:1500
#: crates/pdfs-gui/src/app/main.rs:1513
msgid "Select a single item to rename it"
msgstr "Selecteer één item om het te hernoemen"
#: crates/pdfs-gui/src/app/main.rs:1660
#: crates/pdfs-gui/src/app/main.rs:1673
#: crates/pdfs-gui/src/app/pages/albums.rs:85
#: crates/pdfs-gui/src/app/pages/places.rs:104
#: crates/pdfs-gui/src/app/pages/status.rs:1371
msgid "Not connected"
msgstr "Niet verbonden"
#: crates/pdfs-gui/src/app/main.rs:1661
#: crates/pdfs-gui/src/app/main.rs:1674
msgid "The Proton Drive service isn't running."
msgstr "De Proton Drive-service draait niet."
#: crates/pdfs-gui/src/app/main.rs:1669
#: crates/pdfs-gui/src/app/main.rs:1682
#: crates/pdfs-gui/src/app/pages/status.rs:336
#: crates/pdfs-gui/src/hud/mod.rs:274 crates/pdfs-gui/src/hud/mod.rs:595
#: crates/pdfs-gui/src/main.rs:453
msgid "Connecting…"
msgstr "Verbinden…"
#: crates/pdfs-gui/src/app/main.rs:1670
#: crates/pdfs-gui/src/app/main.rs:1683
msgid "Waiting for the Proton Drive service to start."
msgstr "Wachten tot de Proton Drive-service is gestart."
@@ -3190,22 +3191,22 @@ msgstr "Aanmelden…"
msgid "Complete the verification to continue…"
msgstr "Voltooi de verificatie om verder te gaan…"
#: crates/pdfs-gui/src/app/pages/login.rs:185
#: crates/pdfs-gui/src/app/pages/login.rs:195
msgid "login cancelled"
msgstr "aanmelden geannuleerd"
#: crates/pdfs-gui/src/app/pages/login.rs:218
#: crates/pdfs-gui/src/app/pages/login.rs:228
msgid "Too many sign-in attempts. Wait a few minutes and try again."
msgstr ""
"Te veel aanmeldpogingen. Wacht een paar minuten en probeer het opnieuw."
#: crates/pdfs-gui/src/app/pages/login.rs:224
#: crates/pdfs-gui/src/app/pages/login.rs:234
msgid "Couldn't reach Proton. Check your internet connection and try again."
msgstr ""
"Kon Proton niet bereiken. Controleer je internetverbinding en probeer het "
"opnieuw."
#: crates/pdfs-gui/src/app/pages/login.rs:227
#: crates/pdfs-gui/src/app/pages/login.rs:237
msgid ""
"Signed in, but the session couldn't be saved to the system keyring. Make "
"sure a keyring (GNOME Keyring or KWallet) is running and unlocked."
@@ -3214,19 +3215,19 @@ msgstr ""
"opgeslagen. Zorg dat een sleutelbos (GNOME Keyring of KWallet) actief en "
"ontgrendeld is."
#: crates/pdfs-gui/src/app/pages/login.rs:230
#: crates/pdfs-gui/src/app/pages/login.rs:240
msgid "Sign-in cancelled: no two-factor code was entered."
msgstr "Aanmelden geannuleerd: er is geen tweestapscode ingevoerd."
#: crates/pdfs-gui/src/app/pages/login.rs:233
#: crates/pdfs-gui/src/app/pages/login.rs:243
msgid "Sign-in cancelled: no mailbox password was entered."
msgstr "Aanmelden geannuleerd: er is geen mailboxwachtwoord ingevoerd."
#: crates/pdfs-gui/src/app/pages/login.rs:236
#: crates/pdfs-gui/src/app/pages/login.rs:246
msgid "That mailbox password didn't unlock your account."
msgstr "Dat mailboxwachtwoord heeft je account niet ontgrendeld."
#: crates/pdfs-gui/src/app/pages/login.rs:239
#: crates/pdfs-gui/src/app/pages/login.rs:249
msgid ""
"Sign-in cancelled: the verification wasn't completed. Sign in again to get a "
"new one."
@@ -3235,77 +3236,106 @@ msgstr ""
"om een nieuwe te krijgen."
#. Translators: {error} is an error message, usually in English.
#: crates/pdfs-gui/src/app/pages/login.rs:244
#: crates/pdfs-gui/src/app/pages/login.rs:254
#, rust-format
msgid "Sign-in failed: {error}"
msgstr "Aanmelden mislukt: {error}"
#: crates/pdfs-gui/src/app/pages/login.rs:354
#: crates/pdfs-gui/src/app/pages/login.rs:365
msgid "That mailbox password didn't unlock your account. Try again."
msgstr "Dat mailboxwachtwoord heeft je account niet ontgrendeld. Probeer het opnieuw."
msgstr ""
"Dat mailboxwachtwoord heeft je account niet ontgrendeld. Probeer het opnieuw."
#: crates/pdfs-gui/src/app/pages/login.rs:356
#: crates/pdfs-gui/src/app/pages/login.rs:367
msgid ""
"This account has a separate mailbox password. Enter it to unlock your files."
msgstr "Dit account heeft een apart mailboxwachtwoord. Voer het in om je bestanden te ontgrendelen."
msgstr ""
"Dit account heeft een apart mailboxwachtwoord. Voer het in om je bestanden "
"te ontgrendelen."
#: crates/pdfs-gui/src/app/pages/login.rs:359
#: crates/pdfs-gui/src/app/pages/login.rs:370
msgid "Mailbox Password"
msgstr "Mailboxwachtwoord"
#: crates/pdfs-gui/src/app/pages/login.rs:365
#: crates/pdfs-gui/src/app/pages/login.rs:376
msgid "Mailbox password"
msgstr "Mailboxwachtwoord"
#: crates/pdfs-gui/src/app/pages/login.rs:369
#: crates/pdfs-gui/src/app/pages/login.rs:380
msgid "Keep unlocked on this computer"
msgstr "Ontgrendeld houden op deze computer"
#: crates/pdfs-gui/src/app/pages/login.rs:371
#: crates/pdfs-gui/src/app/pages/login.rs:382
msgid ""
"Stores the unlock in the system keyring, so Proton Drive opens without "
"asking after every login. Otherwise you enter the password once per session."
msgstr "Bewaart de ontgrendeling in de sleutelhanger van het systeem, zodat Proton Drive na elke aanmelding opent zonder te vragen. Anders voer je het wachtwoord één keer per sessie in."
msgstr ""
"Bewaart de ontgrendeling in de sleutelhanger van het systeem, zodat Proton "
"Drive na elke aanmelding opent zonder te vragen. Anders voer je het "
"wachtwoord één keer per sessie in."
#: crates/pdfs-gui/src/app/pages/login.rs:379
#: crates/pdfs-gui/src/app/pages/login.rs:432
#: crates/pdfs-gui/src/app/pages/login.rs:390
#: crates/pdfs-gui/src/app/pages/login.rs:443
msgid "Unlock"
msgstr "Ontgrendelen"
#: crates/pdfs-gui/src/app/pages/login.rs:431
#: crates/pdfs-gui/src/app/pages/login.rs:442
msgid "Proton Drive is locked. Enter your mailbox password to unlock it."
msgstr "Proton Drive is vergrendeld. Voer je mailboxwachtwoord in om het te ontgrendelen."
msgstr ""
"Proton Drive is vergrendeld. Voer je mailboxwachtwoord in om het te "
"ontgrendelen."
#: crates/pdfs-gui/src/app/pages/login.rs:460
#: crates/pdfs-gui/src/app/pages/login.rs:471
msgid "Unlocked."
msgstr "Ontgrendeld."
#: crates/pdfs-gui/src/app/pages/login.rs:465
#: crates/pdfs-gui/src/app/pages/login.rs:476
msgid "Couldn't unlock"
msgstr "Ontgrendelen mislukt"
#: crates/pdfs-gui/src/app/pages/login.rs:478
#: crates/pdfs-gui/src/app/pages/login.rs:489
msgid "Two-Factor Authentication"
msgstr "Tweestapsverificatie"
#: crates/pdfs-gui/src/app/pages/login.rs:480
#: crates/pdfs-gui/src/app/pages/login.rs:491
msgid ""
"Enter the code from your authenticator app, or one of your recovery codes."
msgstr "Voer de code uit je authenticator-app in, of een van je herstelcodes."
#: crates/pdfs-gui/src/app/pages/login.rs:486
#: crates/pdfs-gui/src/app/pages/login.rs:497
msgid "Authentication code"
msgstr "Verificatiecode"
#: crates/pdfs-gui/src/app/pages/login.rs:493
#: crates/pdfs-gui/src/app/pages/login.rs:504
msgid "Confirm"
msgstr "Bevestigen"
#: crates/pdfs-gui/src/app/pages/login.rs:521
#: crates/pdfs-gui/src/app/pages/login.rs:535
#
msgid "Verify in Your Browser"
msgstr "Verifiëren in je browser"
#: crates/pdfs-gui/src/app/pages/login.rs:537
msgid ""
"The verification page can't be shown in the app on this system. Open it in "
"your browser, complete it there, then come back and choose Continue."
msgstr "De verificatiepagina kan op dit systeem niet in de app worden getoond. Open hem in je browser, voltooi hem daar, kom dan terug en kies “Doorgaan”."
#: crates/pdfs-gui/src/app/pages/login.rs:543
#
msgid "Open Verification Page"
msgstr "Verificatiepagina openen"
#: crates/pdfs-gui/src/app/pages/login.rs:550
#
msgid "Continue"
msgstr "Doorgaan"
#: crates/pdfs-gui/src/app/pages/login.rs:589
msgid "Sign Out?"
msgstr "Afmelden?"
#: crates/pdfs-gui/src/app/pages/login.rs:523
#: crates/pdfs-gui/src/app/pages/login.rs:591
msgid ""
"Proton Drive will disconnect and stop syncing until you sign in again. Files "
"already on this computer stay where they are."
@@ -3314,7 +3344,7 @@ msgstr ""
"je opnieuw aanmeldt. Bestanden die al op deze computer staan, blijven waar "
"ze zijn."
#: crates/pdfs-gui/src/app/pages/login.rs:525
#: crates/pdfs-gui/src/app/pages/login.rs:593
msgid "Sign Out"
msgstr "Afmelden"
@@ -5290,7 +5320,7 @@ msgstr "Prullenbak geleegd"
msgid "Couldn't empty the trash"
msgstr "Kon de prullenbak niet legen"
#: crates/pdfs-gui/src/app/pages/verify.rs:57
#: crates/pdfs-gui/src/app/pages/verify.rs:162
msgid "Verification"
msgstr "Verificatie"
@@ -6087,6 +6117,16 @@ msgstr "{count}j"
msgid "cannot reach the Proton Drive daemon: {error}"
msgstr "kan de achtergronddienst van Proton Drive niet bereiken: {error}"
#~ msgid ""
#~ "The verification page couldn't be opened, so the sign-in was cancelled. "
#~ "Your system may keep the web view's sandbox from starting; the "
#~ "troubleshooting guide explains what to do."
#~ msgstr ""
#~ "De verificatiepagina kon niet worden geopend, dus het aanmelden is "
#~ "geannuleerd. Mogelijk verhindert je systeem dat de sandbox van de "
#~ "webweergave start; de handleiding voor probleemoplossing legt uit wat je "
#~ "kunt doen."
#~ msgid "Jump to a month"
#~ msgstr "Naar een maand springen"
+113 -94
View File
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 3.1.0\n"
"Project-Id-Version: proton-drive-linux 3.1.2\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-07 02:39+0200\n"
"POT-Creation-Date: 2026-10-08 18:47+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"
@@ -60,7 +60,7 @@ msgstr ""
msgid "%A, %B %-d, %Y, %H:%M"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:747
#: crates/pdfs-gui/src/app/main.rs:760
#: crates/pdfs-gui/src/app/pages/activity_text.rs:539
#: crates/pdfs-gui/src/app/pages/browser.rs:454
#: crates/pdfs-gui/src/app/pages/browser.rs:819
@@ -73,91 +73,91 @@ msgstr ""
msgid "My files"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:750 crates/pdfs-gui/src/app/main.rs:1394
#: crates/pdfs-gui/src/app/main.rs:763 crates/pdfs-gui/src/app/main.rs:1407
#: crates/pdfs-gui/src/app/pages/albums.rs:638
#: crates/pdfs-gui/src/app/pages/photos.rs:842
#: crates/pdfs-gui/src/app/pages/places.rs:441
msgid "Photos"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:755
#: crates/pdfs-gui/src/app/main.rs:768
#: crates/pdfs-gui/src/app/pages/shared.rs:168
#: crates/pdfs-gui/src/app/pages/shared.rs:482
msgid "Shared with me"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:760
#: crates/pdfs-gui/src/app/main.rs:773
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:120
msgid "Shared by me"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:763
#: crates/pdfs-gui/src/app/main.rs:776
#: crates/pdfs-gui/src/app/pages/devices.rs:140
#: crates/pdfs-gui/src/app/pages/devices.rs:481
msgid "Computers"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:764
#: crates/pdfs-gui/src/app/main.rs:777
#: crates/pdfs-gui/src/app/pages/trash.rs:101
msgid "Trash"
msgstr ""
#. Translators: sidebar entry for the page listing this computer's synced folders.
#: crates/pdfs-gui/src/app/main.rs:766
#: crates/pdfs-gui/src/app/main.rs:779
msgid "Sync"
msgstr ""
#. Translators: a failed action's toast. {what} says what failed, such as
#. "Couldn't rename"; {detail} is the reason, usually untranslated text
#. from the mount service.
#: crates/pdfs-gui/src/app/main.rs:1083
#: crates/pdfs-gui/src/app/main.rs:1096
#, rust-format
msgid "{what}: {detail}"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1102
#: crates/pdfs-gui/src/app/main.rs:1115
msgid "You're offline"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1103
#: crates/pdfs-gui/src/app/main.rs:1116
msgid "That's not there any more"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1104
#: crates/pdfs-gui/src/app/main.rs:1117
msgid "You don't have access to that"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1105
#: crates/pdfs-gui/src/app/main.rs:1118
msgid "Something changed this first"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1106
#: crates/pdfs-gui/src/app/main.rs:1119
msgid "Your Proton Drive is full"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1147 crates/pdfs-gui/src/app/main.rs:1376
#: crates/pdfs-gui/src/app/main.rs:1160 crates/pdfs-gui/src/app/main.rs:1389
#: crates/pdfs-gui/src/app/pages/status.rs:385
msgid "Preferences"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1148
#: crates/pdfs-gui/src/app/main.rs:1161
#: crates/pdfs-gui/src/app/widgets/compat.rs:262
msgid "Keyboard Shortcuts"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1150
#: crates/pdfs-gui/src/app/main.rs:1163
msgid "About Proton Drive for Linux"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1155
#: crates/pdfs-gui/src/app/main.rs:1168
msgid "Main menu"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1211
#: crates/pdfs-gui/src/app/main.rs:1224
msgid "Proton Drive for Linux"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1219
#: crates/pdfs-gui/src/app/main.rs:1232
msgid ""
"Files-on-demand Proton Drive for the Linux desktop.\n"
"\n"
@@ -165,23 +165,23 @@ msgid ""
"AG."
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1224
#: crates/pdfs-gui/src/app/main.rs:1237
msgid "Source Code"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1228
#: crates/pdfs-gui/src/app/main.rs:1241
msgid "Proton Terms of Service"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1232
#: crates/pdfs-gui/src/app/main.rs:1245
msgid "Proton Privacy Policy"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1237
#: crates/pdfs-gui/src/app/main.rs:1250
msgid "Disclaimer"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1241
#: crates/pdfs-gui/src/app/main.rs:1254
msgid ""
"This is an unofficial, community-built client. It is not affiliated with, "
"endorsed by, or supported by Proton AG.\n"
@@ -194,21 +194,21 @@ msgid ""
"of any data you cannot afford to lose."
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1249
#: crates/pdfs-gui/src/app/main.rs:1262
msgid ""
"Places are named with data from <a href=\"https://www.geonames.org/"
"\">GeoNames</a>, licensed under <a href=\"https://creativecommons.org/"
"licenses/by/4.0/\">CC BY 4.0</a>."
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1257
#: crates/pdfs-gui/src/app/main.rs:1270
msgid ""
"The places map is drawn from <a href=\"https://www.naturalearthdata.com/"
"\">Natural Earth</a> land outlines and country borders, which are in the "
"public domain."
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1265
#: crates/pdfs-gui/src/app/main.rs:1278
msgid ""
"The street map, when turned on, comes from <a href=\"https://openfreemap.org/"
"\">OpenFreeMap</a> in the <a href=\"https://www.openmaptiles.org/"
@@ -219,21 +219,21 @@ msgstr ""
#. Translators: replace with your name(s) and email address(es), one
#. per line, to be credited in the About dialog.
#: crates/pdfs-gui/src/app/main.rs:1276
#: crates/pdfs-gui/src/app/main.rs:1289
msgid "translator-credits"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1314
#: crates/pdfs-gui/src/app/main.rs:1327
msgid "Stop Proton Drive?"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1315
#: crates/pdfs-gui/src/app/main.rs:1328
msgid ""
"My files goes offline and nothing syncs until you connect again. Proton "
"Drive starts again at your next login."
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1317 crates/pdfs-gui/src/app/main.rs:1592
#: crates/pdfs-gui/src/app/main.rs:1330 crates/pdfs-gui/src/app/main.rs:1605
#: crates/pdfs-gui/src/app/pages/albums.rs:243
#: crates/pdfs-gui/src/app/pages/albums.rs:428
#: crates/pdfs-gui/src/app/pages/browser.rs:1892
@@ -248,8 +248,9 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1013
#: crates/pdfs-gui/src/app/pages/locations.rs:1488
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
#: crates/pdfs-gui/src/app/pages/login.rs:378
#: crates/pdfs-gui/src/app/pages/login.rs:492
#: crates/pdfs-gui/src/app/pages/login.rs:389
#: crates/pdfs-gui/src/app/pages/login.rs:503
#: crates/pdfs-gui/src/app/pages/login.rs:549
#: crates/pdfs-gui/src/app/pages/photos.rs:2055
#: crates/pdfs-gui/src/app/pages/shared.rs:946
#: crates/pdfs-gui/src/app/pages/shared.rs:1027
@@ -264,30 +265,30 @@ msgstr ""
msgid "Cancel"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1318
#: crates/pdfs-gui/src/app/main.rs:1331
msgctxt "verb"
msgid "Stop"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1335
#: crates/pdfs-gui/src/app/main.rs:1348
msgid "Couldn't stop Proton Drive"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1336
#: crates/pdfs-gui/src/app/main.rs:1349
msgid "The Proton Drive service did not stop."
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1372
#: crates/pdfs-gui/src/app/main.rs:1385
#: crates/pdfs-gui/src/app/pages/status.rs:254
msgid "General"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1374
#: crates/pdfs-gui/src/app/main.rs:1387
#: crates/pdfs-gui/src/app/pages/browser.rs:247
msgid "Search Drive"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1375
#: crates/pdfs-gui/src/app/main.rs:1388
#: crates/pdfs-gui/src/app/pages/browser.rs:957
#: crates/pdfs-gui/src/app/pages/devices.rs:554
#: crates/pdfs-gui/src/app/pages/shared.rs:586
@@ -296,38 +297,38 @@ msgstr ""
msgid "Refresh"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1377
#: crates/pdfs-gui/src/app/main.rs:1390
msgid "Keyboard shortcuts"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1381
#: crates/pdfs-gui/src/app/main.rs:1394
msgid "Files"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1383
#: crates/pdfs-gui/src/app/main.rs:1396
#: crates/pdfs-gui/src/app/pages/browser.rs:294
msgid "New folder"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1384
#: crates/pdfs-gui/src/app/main.rs:1397
#: crates/pdfs-gui/src/app/pages/browser.rs:290
msgid "Upload files"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1385
#: crates/pdfs-gui/src/app/main.rs:1398
msgid "Back / forward"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1386
#: crates/pdfs-gui/src/app/main.rs:1399
#: crates/pdfs-gui/src/app/pages/browser.rs:1943
msgid "Parent folder"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1387
#: crates/pdfs-gui/src/app/main.rs:1400
msgid "Grid / list"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1388
#: crates/pdfs-gui/src/app/main.rs:1401
#: crates/pdfs-gui/src/app/pages/albums.rs:298
#: crates/pdfs-gui/src/app/pages/browser.rs:1871
#: crates/pdfs-gui/src/app/pages/browser.rs:1893
@@ -336,7 +337,7 @@ msgstr ""
msgid "Rename"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1389 crates/pdfs-gui/src/app/main.rs:1409
#: crates/pdfs-gui/src/app/main.rs:1402 crates/pdfs-gui/src/app/main.rs:1422
#: crates/pdfs-gui/src/app/pages/browser.rs:357
#: crates/pdfs-gui/src/app/pages/browser.rs:900
#: crates/pdfs-gui/src/app/pages/browser.rs:932
@@ -346,73 +347,73 @@ msgstr ""
msgid "Move to Trash"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1390
#: crates/pdfs-gui/src/app/main.rs:1403
msgid "Clear the selection"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1396
#: crates/pdfs-gui/src/app/main.rs:1409
msgid "Larger thumbnails"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1397
#: crates/pdfs-gui/src/app/main.rs:1410
msgid "Smaller thumbnails"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1398
#: crates/pdfs-gui/src/app/main.rs:1411
msgid "Reset thumbnail size"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1399
#: crates/pdfs-gui/src/app/main.rs:1412
msgid "Select all"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1403
#: crates/pdfs-gui/src/app/main.rs:1416
msgid "Photo Viewer"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1405
#: crates/pdfs-gui/src/app/main.rs:1418
msgid "Previous / next photo"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1406
#: crates/pdfs-gui/src/app/main.rs:1419
msgid "First / last photo"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1407
#: crates/pdfs-gui/src/app/main.rs:1420
msgid "Show details"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1408
#: crates/pdfs-gui/src/app/main.rs:1421
msgid "Fullscreen"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1410
#: crates/pdfs-gui/src/app/main.rs:1423
msgid "Close"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1500
#: crates/pdfs-gui/src/app/main.rs:1513
msgid "Select a single item to rename it"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1660
#: crates/pdfs-gui/src/app/main.rs:1673
#: crates/pdfs-gui/src/app/pages/albums.rs:85
#: crates/pdfs-gui/src/app/pages/places.rs:104
#: crates/pdfs-gui/src/app/pages/status.rs:1371
msgid "Not connected"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1661
#: crates/pdfs-gui/src/app/main.rs:1674
msgid "The Proton Drive service isn't running."
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1669
#: crates/pdfs-gui/src/app/main.rs:1682
#: crates/pdfs-gui/src/app/pages/status.rs:336
#: crates/pdfs-gui/src/hud/mod.rs:274 crates/pdfs-gui/src/hud/mod.rs:595
#: crates/pdfs-gui/src/main.rs:453
msgid "Connecting…"
msgstr ""
#: crates/pdfs-gui/src/app/main.rs:1670
#: crates/pdfs-gui/src/app/main.rs:1683
msgid "Waiting for the Proton Drive service to start."
msgstr ""
@@ -3057,120 +3058,138 @@ msgstr ""
msgid "Complete the verification to continue…"
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:185
#: crates/pdfs-gui/src/app/pages/login.rs:195
msgid "login cancelled"
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:218
#: crates/pdfs-gui/src/app/pages/login.rs:228
msgid "Too many sign-in attempts. Wait a few minutes and try again."
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:224
#: crates/pdfs-gui/src/app/pages/login.rs:234
msgid "Couldn't reach Proton. Check your internet connection and try again."
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:227
#: crates/pdfs-gui/src/app/pages/login.rs:237
msgid ""
"Signed in, but the session couldn't be saved to the system keyring. Make "
"sure a keyring (GNOME Keyring or KWallet) is running and unlocked."
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:230
#: crates/pdfs-gui/src/app/pages/login.rs:240
msgid "Sign-in cancelled: no two-factor code was entered."
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:233
#: crates/pdfs-gui/src/app/pages/login.rs:243
msgid "Sign-in cancelled: no mailbox password was entered."
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:236
#: crates/pdfs-gui/src/app/pages/login.rs:246
msgid "That mailbox password didn't unlock your account."
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:239
#: crates/pdfs-gui/src/app/pages/login.rs:249
msgid ""
"Sign-in cancelled: the verification wasn't completed. Sign in again to get a "
"new one."
msgstr ""
#. Translators: {error} is an error message, usually in English.
#: crates/pdfs-gui/src/app/pages/login.rs:244
#: crates/pdfs-gui/src/app/pages/login.rs:254
#, rust-format
msgid "Sign-in failed: {error}"
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:354
#: crates/pdfs-gui/src/app/pages/login.rs:365
msgid "That mailbox password didn't unlock your account. Try again."
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:356
#: crates/pdfs-gui/src/app/pages/login.rs:367
msgid ""
"This account has a separate mailbox password. Enter it to unlock your files."
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:359
#: crates/pdfs-gui/src/app/pages/login.rs:370
msgid "Mailbox Password"
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:365
#: crates/pdfs-gui/src/app/pages/login.rs:376
msgid "Mailbox password"
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:369
#: crates/pdfs-gui/src/app/pages/login.rs:380
msgid "Keep unlocked on this computer"
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:371
#: crates/pdfs-gui/src/app/pages/login.rs:382
msgid ""
"Stores the unlock in the system keyring, so Proton Drive opens without "
"asking after every login. Otherwise you enter the password once per session."
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:379
#: crates/pdfs-gui/src/app/pages/login.rs:432
#: crates/pdfs-gui/src/app/pages/login.rs:390
#: crates/pdfs-gui/src/app/pages/login.rs:443
msgid "Unlock"
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:431
#: crates/pdfs-gui/src/app/pages/login.rs:442
msgid "Proton Drive is locked. Enter your mailbox password to unlock it."
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:460
#: crates/pdfs-gui/src/app/pages/login.rs:471
msgid "Unlocked."
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:465
#: crates/pdfs-gui/src/app/pages/login.rs:476
msgid "Couldn't unlock"
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:478
#: crates/pdfs-gui/src/app/pages/login.rs:489
msgid "Two-Factor Authentication"
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:480
#: crates/pdfs-gui/src/app/pages/login.rs:491
msgid ""
"Enter the code from your authenticator app, or one of your recovery codes."
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:486
#: crates/pdfs-gui/src/app/pages/login.rs:497
msgid "Authentication code"
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:493
#: crates/pdfs-gui/src/app/pages/login.rs:504
msgid "Confirm"
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:521
#: crates/pdfs-gui/src/app/pages/login.rs:535
msgid "Verify in Your Browser"
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:537
msgid ""
"The verification page can't be shown in the app on this system. Open it in "
"your browser, complete it there, then come back and choose Continue."
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:543
msgid "Open Verification Page"
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:550
msgid "Continue"
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:589
msgid "Sign Out?"
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:523
#: crates/pdfs-gui/src/app/pages/login.rs:591
msgid ""
"Proton Drive will disconnect and stop syncing until you sign in again. Files "
"already on this computer stay where they are."
msgstr ""
#: crates/pdfs-gui/src/app/pages/login.rs:525
#: crates/pdfs-gui/src/app/pages/login.rs:593
msgid "Sign Out"
msgstr ""
@@ -5076,7 +5095,7 @@ msgstr ""
msgid "Couldn't empty the trash"
msgstr ""
#: crates/pdfs-gui/src/app/pages/verify.rs:57
#: crates/pdfs-gui/src/app/pages/verify.rs:162
msgid "Verification"
msgstr ""
+136 -97
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-07 02:39+0200\n"
"POT-Creation-Date: 2026-10-08 18:47+0200\n"
"PO-Revision-Date: 2026-09-23 12:00+0200\n"
"Last-Translator: Proton Drive for Linux contributors\n"
"Language-Team: Polish\n"
@@ -59,7 +59,7 @@ msgstr "%-d %b %Y"
msgid "%A, %B %-d, %Y, %H:%M"
msgstr "%A, %-d %B %Y, %H:%M"
#: crates/pdfs-gui/src/app/main.rs:747
#: crates/pdfs-gui/src/app/main.rs:760
#: crates/pdfs-gui/src/app/pages/activity_text.rs:539
#: crates/pdfs-gui/src/app/pages/browser.rs:454
#: crates/pdfs-gui/src/app/pages/browser.rs:819
@@ -72,91 +72,91 @@ msgstr "%A, %-d %B %Y, %H:%M"
msgid "My files"
msgstr "Moje pliki"
#: crates/pdfs-gui/src/app/main.rs:750 crates/pdfs-gui/src/app/main.rs:1394
#: crates/pdfs-gui/src/app/main.rs:763 crates/pdfs-gui/src/app/main.rs:1407
#: crates/pdfs-gui/src/app/pages/albums.rs:638
#: crates/pdfs-gui/src/app/pages/photos.rs:842
#: crates/pdfs-gui/src/app/pages/places.rs:441
msgid "Photos"
msgstr "Zdjęcia"
#: crates/pdfs-gui/src/app/main.rs:755
#: crates/pdfs-gui/src/app/main.rs:768
#: crates/pdfs-gui/src/app/pages/shared.rs:168
#: crates/pdfs-gui/src/app/pages/shared.rs:482
msgid "Shared with me"
msgstr "Udostępnione mi"
#: crates/pdfs-gui/src/app/main.rs:760
#: crates/pdfs-gui/src/app/main.rs:773
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:120
msgid "Shared by me"
msgstr "Udostępnione przeze mnie"
#: crates/pdfs-gui/src/app/main.rs:763
#: crates/pdfs-gui/src/app/main.rs:776
#: crates/pdfs-gui/src/app/pages/devices.rs:140
#: crates/pdfs-gui/src/app/pages/devices.rs:481
msgid "Computers"
msgstr "Komputery"
#: crates/pdfs-gui/src/app/main.rs:764
#: crates/pdfs-gui/src/app/main.rs:777
#: crates/pdfs-gui/src/app/pages/trash.rs:101
msgid "Trash"
msgstr "Kosz"
#. Translators: sidebar entry for the page listing this computer's synced folders.
#: crates/pdfs-gui/src/app/main.rs:766
#: crates/pdfs-gui/src/app/main.rs:779
msgid "Sync"
msgstr "Synchronizacja"
#. Translators: a failed action's toast. {what} says what failed, such as
#. "Couldn't rename"; {detail} is the reason, usually untranslated text
#. from the mount service.
#: crates/pdfs-gui/src/app/main.rs:1083
#: crates/pdfs-gui/src/app/main.rs:1096
#, rust-format
msgid "{what}: {detail}"
msgstr "{what}: {detail}"
#: crates/pdfs-gui/src/app/main.rs:1102
#: crates/pdfs-gui/src/app/main.rs:1115
msgid "You're offline"
msgstr "Brak połączenia z siecią"
#: crates/pdfs-gui/src/app/main.rs:1103
#: crates/pdfs-gui/src/app/main.rs:1116
msgid "That's not there any more"
msgstr "Ten element już nie istnieje"
#: crates/pdfs-gui/src/app/main.rs:1104
#: crates/pdfs-gui/src/app/main.rs:1117
msgid "You don't have access to that"
msgstr "Brak dostępu do tego elementu"
#: crates/pdfs-gui/src/app/main.rs:1105
#: crates/pdfs-gui/src/app/main.rs:1118
msgid "Something changed this first"
msgstr "Coś zmieniło ten element wcześniej"
#: crates/pdfs-gui/src/app/main.rs:1106
#: crates/pdfs-gui/src/app/main.rs:1119
msgid "Your Proton Drive is full"
msgstr "Proton Drive jest pełny"
#: crates/pdfs-gui/src/app/main.rs:1147 crates/pdfs-gui/src/app/main.rs:1376
#: crates/pdfs-gui/src/app/main.rs:1160 crates/pdfs-gui/src/app/main.rs:1389
#: crates/pdfs-gui/src/app/pages/status.rs:385
msgid "Preferences"
msgstr "Preferencje"
#: crates/pdfs-gui/src/app/main.rs:1148
#: crates/pdfs-gui/src/app/main.rs:1161
#: crates/pdfs-gui/src/app/widgets/compat.rs:262
msgid "Keyboard Shortcuts"
msgstr "Skróty klawiszowe"
#: crates/pdfs-gui/src/app/main.rs:1150
#: crates/pdfs-gui/src/app/main.rs:1163
msgid "About Proton Drive for Linux"
msgstr "O programie Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1155
#: crates/pdfs-gui/src/app/main.rs:1168
msgid "Main menu"
msgstr "Menu główne"
#: crates/pdfs-gui/src/app/main.rs:1211
#: crates/pdfs-gui/src/app/main.rs:1224
msgid "Proton Drive for Linux"
msgstr "Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1219
#: crates/pdfs-gui/src/app/main.rs:1232
msgid ""
"Files-on-demand Proton Drive for the Linux desktop.\n"
"\n"
@@ -168,23 +168,23 @@ msgstr ""
"Nieoficjalny klient — niepowiązany z Proton AG, niepopierany ani "
"niewspierany przez tę firmę."
#: crates/pdfs-gui/src/app/main.rs:1224
#: crates/pdfs-gui/src/app/main.rs:1237
msgid "Source Code"
msgstr "Kod źródłowy"
#: crates/pdfs-gui/src/app/main.rs:1228
#: crates/pdfs-gui/src/app/main.rs:1241
msgid "Proton Terms of Service"
msgstr "Warunki korzystania z usług Proton"
#: crates/pdfs-gui/src/app/main.rs:1232
#: crates/pdfs-gui/src/app/main.rs:1245
msgid "Proton Privacy Policy"
msgstr "Polityka prywatności Proton"
#: crates/pdfs-gui/src/app/main.rs:1237
#: crates/pdfs-gui/src/app/main.rs:1250
msgid "Disclaimer"
msgstr "Zastrzeżenia"
#: crates/pdfs-gui/src/app/main.rs:1241
#: crates/pdfs-gui/src/app/main.rs:1254
msgid ""
"This is an unofficial, community-built client. It is not affiliated with, "
"endorsed by, or supported by Proton AG.\n"
@@ -208,7 +208,7 @@ msgstr ""
"gwarancji. Zachowaj kopię danych, na których utratę nie możesz sobie "
"pozwolić."
#: crates/pdfs-gui/src/app/main.rs:1249
#: crates/pdfs-gui/src/app/main.rs:1262
msgid ""
"Places are named with data from <a href=\"https://www.geonames.org/"
"\">GeoNames</a>, licensed under <a href=\"https://creativecommons.org/"
@@ -218,7 +218,7 @@ msgstr ""
"\">GeoNames</a> udostępnionych na licencji <a href=\"https://"
"creativecommons.org/licenses/by/4.0/\">CC BY 4.0</a>."
#: crates/pdfs-gui/src/app/main.rs:1257
#: crates/pdfs-gui/src/app/main.rs:1270
msgid ""
"The places map is drawn from <a href=\"https://www.naturalearthdata.com/"
"\">Natural Earth</a> land outlines and country borders, which are in the "
@@ -228,7 +228,7 @@ msgstr ""
"www.naturalearthdata.com/\">Natural Earth</a>, które należą do domeny "
"publicznej."
#: crates/pdfs-gui/src/app/main.rs:1265
#: crates/pdfs-gui/src/app/main.rs:1278
msgid ""
"The street map, when turned on, comes from <a href=\"https://openfreemap.org/"
"\">OpenFreeMap</a> in the <a href=\"https://www.openmaptiles.org/"
@@ -244,15 +244,15 @@ msgstr ""
#. Translators: replace with your name(s) and email address(es), one
#. per line, to be credited in the About dialog.
#: crates/pdfs-gui/src/app/main.rs:1276
#: crates/pdfs-gui/src/app/main.rs:1289
msgid "translator-credits"
msgstr "Współtwórcy programu Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1314
#: crates/pdfs-gui/src/app/main.rs:1327
msgid "Stop Proton Drive?"
msgstr "Zatrzymać Proton Drive?"
#: crates/pdfs-gui/src/app/main.rs:1315
#: crates/pdfs-gui/src/app/main.rs:1328
msgid ""
"My files goes offline and nothing syncs until you connect again. Proton "
"Drive starts again at your next login."
@@ -261,7 +261,7 @@ msgstr ""
"ponownego połączenia. Proton Drive uruchomi się ponownie przy następnym "
"logowaniu."
#: crates/pdfs-gui/src/app/main.rs:1317 crates/pdfs-gui/src/app/main.rs:1592
#: crates/pdfs-gui/src/app/main.rs:1330 crates/pdfs-gui/src/app/main.rs:1605
#: crates/pdfs-gui/src/app/pages/albums.rs:243
#: crates/pdfs-gui/src/app/pages/albums.rs:428
#: crates/pdfs-gui/src/app/pages/browser.rs:1892
@@ -276,8 +276,9 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1013
#: crates/pdfs-gui/src/app/pages/locations.rs:1488
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
#: crates/pdfs-gui/src/app/pages/login.rs:378
#: crates/pdfs-gui/src/app/pages/login.rs:492
#: crates/pdfs-gui/src/app/pages/login.rs:389
#: crates/pdfs-gui/src/app/pages/login.rs:503
#: crates/pdfs-gui/src/app/pages/login.rs:549
#: crates/pdfs-gui/src/app/pages/photos.rs:2055
#: crates/pdfs-gui/src/app/pages/shared.rs:946
#: crates/pdfs-gui/src/app/pages/shared.rs:1027
@@ -292,30 +293,30 @@ msgstr ""
msgid "Cancel"
msgstr "Anuluj"
#: crates/pdfs-gui/src/app/main.rs:1318
#: crates/pdfs-gui/src/app/main.rs:1331
msgctxt "verb"
msgid "Stop"
msgstr "Zatrzymaj"
#: crates/pdfs-gui/src/app/main.rs:1335
#: crates/pdfs-gui/src/app/main.rs:1348
msgid "Couldn't stop Proton Drive"
msgstr "Nie można zatrzymać Proton Drive"
#: crates/pdfs-gui/src/app/main.rs:1336
#: crates/pdfs-gui/src/app/main.rs:1349
msgid "The Proton Drive service did not stop."
msgstr "Usługa Proton Drive nie zatrzymała się."
#: crates/pdfs-gui/src/app/main.rs:1372
#: crates/pdfs-gui/src/app/main.rs:1385
#: crates/pdfs-gui/src/app/pages/status.rs:254
msgid "General"
msgstr "Ogólne"
#: crates/pdfs-gui/src/app/main.rs:1374
#: crates/pdfs-gui/src/app/main.rs:1387
#: crates/pdfs-gui/src/app/pages/browser.rs:247
msgid "Search Drive"
msgstr "Przeszukaj Drive"
#: crates/pdfs-gui/src/app/main.rs:1375
#: crates/pdfs-gui/src/app/main.rs:1388
#: crates/pdfs-gui/src/app/pages/browser.rs:957
#: crates/pdfs-gui/src/app/pages/devices.rs:554
#: crates/pdfs-gui/src/app/pages/shared.rs:586
@@ -324,38 +325,38 @@ msgstr "Przeszukaj Drive"
msgid "Refresh"
msgstr "Odśwież"
#: crates/pdfs-gui/src/app/main.rs:1377
#: crates/pdfs-gui/src/app/main.rs:1390
msgid "Keyboard shortcuts"
msgstr "Skróty klawiszowe"
#: crates/pdfs-gui/src/app/main.rs:1381
#: crates/pdfs-gui/src/app/main.rs:1394
msgid "Files"
msgstr "Pliki"
#: crates/pdfs-gui/src/app/main.rs:1383
#: crates/pdfs-gui/src/app/main.rs:1396
#: crates/pdfs-gui/src/app/pages/browser.rs:294
msgid "New folder"
msgstr "Nowy katalog"
#: crates/pdfs-gui/src/app/main.rs:1384
#: crates/pdfs-gui/src/app/main.rs:1397
#: crates/pdfs-gui/src/app/pages/browser.rs:290
msgid "Upload files"
msgstr "Wyślij pliki"
#: crates/pdfs-gui/src/app/main.rs:1385
#: crates/pdfs-gui/src/app/main.rs:1398
msgid "Back / forward"
msgstr "Wstecz/dalej"
#: crates/pdfs-gui/src/app/main.rs:1386
#: crates/pdfs-gui/src/app/main.rs:1399
#: crates/pdfs-gui/src/app/pages/browser.rs:1943
msgid "Parent folder"
msgstr "Katalog nadrzędny"
#: crates/pdfs-gui/src/app/main.rs:1387
#: crates/pdfs-gui/src/app/main.rs:1400
msgid "Grid / list"
msgstr "Siatka/lista"
#: crates/pdfs-gui/src/app/main.rs:1388
#: crates/pdfs-gui/src/app/main.rs:1401
#: crates/pdfs-gui/src/app/pages/albums.rs:298
#: crates/pdfs-gui/src/app/pages/browser.rs:1871
#: crates/pdfs-gui/src/app/pages/browser.rs:1893
@@ -364,7 +365,7 @@ msgstr "Siatka/lista"
msgid "Rename"
msgstr "Zmień nazwę"
#: crates/pdfs-gui/src/app/main.rs:1389 crates/pdfs-gui/src/app/main.rs:1409
#: crates/pdfs-gui/src/app/main.rs:1402 crates/pdfs-gui/src/app/main.rs:1422
#: crates/pdfs-gui/src/app/pages/browser.rs:357
#: crates/pdfs-gui/src/app/pages/browser.rs:900
#: crates/pdfs-gui/src/app/pages/browser.rs:932
@@ -374,73 +375,73 @@ msgstr "Zmień nazwę"
msgid "Move to Trash"
msgstr "Przenieś do kosza"
#: crates/pdfs-gui/src/app/main.rs:1390
#: crates/pdfs-gui/src/app/main.rs:1403
msgid "Clear the selection"
msgstr "Wyczyść zaznaczenie"
#: crates/pdfs-gui/src/app/main.rs:1396
#: crates/pdfs-gui/src/app/main.rs:1409
msgid "Larger thumbnails"
msgstr "Większe miniatury"
#: crates/pdfs-gui/src/app/main.rs:1397
#: crates/pdfs-gui/src/app/main.rs:1410
msgid "Smaller thumbnails"
msgstr "Mniejsze miniatury"
#: crates/pdfs-gui/src/app/main.rs:1398
#: crates/pdfs-gui/src/app/main.rs:1411
msgid "Reset thumbnail size"
msgstr "Przywróć rozmiar miniatur"
#: crates/pdfs-gui/src/app/main.rs:1399
#: crates/pdfs-gui/src/app/main.rs:1412
msgid "Select all"
msgstr "Zaznacz wszystko"
#: crates/pdfs-gui/src/app/main.rs:1403
#: crates/pdfs-gui/src/app/main.rs:1416
msgid "Photo Viewer"
msgstr "Przeglądarka zdjęć"
#: crates/pdfs-gui/src/app/main.rs:1405
#: crates/pdfs-gui/src/app/main.rs:1418
msgid "Previous / next photo"
msgstr "Poprzednie/następne zdjęcie"
#: crates/pdfs-gui/src/app/main.rs:1406
#: crates/pdfs-gui/src/app/main.rs:1419
msgid "First / last photo"
msgstr "Pierwsze/ostatnie zdjęcie"
#: crates/pdfs-gui/src/app/main.rs:1407
#: crates/pdfs-gui/src/app/main.rs:1420
msgid "Show details"
msgstr "Wyświetl szczegóły"
#: crates/pdfs-gui/src/app/main.rs:1408
#: crates/pdfs-gui/src/app/main.rs:1421
msgid "Fullscreen"
msgstr "Pełny ekran"
#: crates/pdfs-gui/src/app/main.rs:1410
#: crates/pdfs-gui/src/app/main.rs:1423
msgid "Close"
msgstr "Zamknij"
#: crates/pdfs-gui/src/app/main.rs:1500
#: crates/pdfs-gui/src/app/main.rs:1513
msgid "Select a single item to rename it"
msgstr "Należy zaznaczyć jeden element, aby zmienić jego nazwę"
#: crates/pdfs-gui/src/app/main.rs:1660
#: crates/pdfs-gui/src/app/main.rs:1673
#: crates/pdfs-gui/src/app/pages/albums.rs:85
#: crates/pdfs-gui/src/app/pages/places.rs:104
#: crates/pdfs-gui/src/app/pages/status.rs:1371
msgid "Not connected"
msgstr "Brak połączenia"
#: crates/pdfs-gui/src/app/main.rs:1661
#: crates/pdfs-gui/src/app/main.rs:1674
msgid "The Proton Drive service isn't running."
msgstr "Usługa Proton Drive nie jest uruchomiona."
#: crates/pdfs-gui/src/app/main.rs:1669
#: crates/pdfs-gui/src/app/main.rs:1682
#: crates/pdfs-gui/src/app/pages/status.rs:336
#: crates/pdfs-gui/src/hud/mod.rs:274 crates/pdfs-gui/src/hud/mod.rs:595
#: crates/pdfs-gui/src/main.rs:453
msgid "Connecting…"
msgstr "Łączenie…"
#: crates/pdfs-gui/src/app/main.rs:1670
#: crates/pdfs-gui/src/app/main.rs:1683
msgid "Waiting for the Proton Drive service to start."
msgstr "Oczekiwanie na uruchomienie usługi Proton Drive."
@@ -3247,22 +3248,22 @@ msgstr "Logowanie…"
msgid "Complete the verification to continue…"
msgstr "Proszę ukończyć weryfikację, aby kontynuować…"
#: crates/pdfs-gui/src/app/pages/login.rs:185
#: crates/pdfs-gui/src/app/pages/login.rs:195
msgid "login cancelled"
msgstr "anulowano logowanie"
#: crates/pdfs-gui/src/app/pages/login.rs:218
#: crates/pdfs-gui/src/app/pages/login.rs:228
msgid "Too many sign-in attempts. Wait a few minutes and try again."
msgstr ""
"Za dużo prób logowania. Proszę odczekać kilka minut i spróbować ponownie."
#: crates/pdfs-gui/src/app/pages/login.rs:224
#: crates/pdfs-gui/src/app/pages/login.rs:234
msgid "Couldn't reach Proton. Check your internet connection and try again."
msgstr ""
"Nie można połączyć się z Proton. Proszę sprawdzić połączenie z Internetem i "
"spróbować ponownie."
#: crates/pdfs-gui/src/app/pages/login.rs:227
#: crates/pdfs-gui/src/app/pages/login.rs:237
msgid ""
"Signed in, but the session couldn't be saved to the system keyring. Make "
"sure a keyring (GNOME Keyring or KWallet) is running and unlocked."
@@ -3271,19 +3272,19 @@ msgstr ""
"upewnić, że baza kluczy (GNOME Keyring lub KWallet) jest uruchomiona i "
"odblokowana."
#: crates/pdfs-gui/src/app/pages/login.rs:230
#: crates/pdfs-gui/src/app/pages/login.rs:240
msgid "Sign-in cancelled: no two-factor code was entered."
msgstr "Anulowano logowanie: nie wpisano kodu uwierzytelniania dwuetapowego."
#: crates/pdfs-gui/src/app/pages/login.rs:233
#: crates/pdfs-gui/src/app/pages/login.rs:243
msgid "Sign-in cancelled: no mailbox password was entered."
msgstr "Anulowano logowanie: nie wpisano hasła skrzynki pocztowej."
#: crates/pdfs-gui/src/app/pages/login.rs:236
#: crates/pdfs-gui/src/app/pages/login.rs:246
msgid "That mailbox password didn't unlock your account."
msgstr "To hasło skrzynki pocztowej nie odblokowało Twojego konta."
#: crates/pdfs-gui/src/app/pages/login.rs:239
#: crates/pdfs-gui/src/app/pages/login.rs:249
msgid ""
"Sign-in cancelled: the verification wasn't completed. Sign in again to get a "
"new one."
@@ -3292,79 +3293,108 @@ msgstr ""
"ponownie, aby otrzymać nową."
#. Translators: {error} is an error message, usually in English.
#: crates/pdfs-gui/src/app/pages/login.rs:244
#: crates/pdfs-gui/src/app/pages/login.rs:254
#, rust-format
msgid "Sign-in failed: {error}"
msgstr "Logowanie się nie powiodło: {error}"
#: crates/pdfs-gui/src/app/pages/login.rs:354
#: crates/pdfs-gui/src/app/pages/login.rs:365
msgid "That mailbox password didn't unlock your account. Try again."
msgstr "To hasło skrzynki pocztowej nie odblokowało Twojego konta. Spróbuj ponownie."
msgstr ""
"To hasło skrzynki pocztowej nie odblokowało Twojego konta. Spróbuj ponownie."
#: crates/pdfs-gui/src/app/pages/login.rs:356
#: crates/pdfs-gui/src/app/pages/login.rs:367
msgid ""
"This account has a separate mailbox password. Enter it to unlock your files."
msgstr "To konto ma osobne hasło skrzynki pocztowej. Wpisz je, aby odblokować swoje pliki."
msgstr ""
"To konto ma osobne hasło skrzynki pocztowej. Wpisz je, aby odblokować swoje "
"pliki."
#: crates/pdfs-gui/src/app/pages/login.rs:359
#: crates/pdfs-gui/src/app/pages/login.rs:370
msgid "Mailbox Password"
msgstr "Hasło skrzynki pocztowej"
#: crates/pdfs-gui/src/app/pages/login.rs:365
#: crates/pdfs-gui/src/app/pages/login.rs:376
msgid "Mailbox password"
msgstr "Hasło skrzynki pocztowej"
#: crates/pdfs-gui/src/app/pages/login.rs:369
#: crates/pdfs-gui/src/app/pages/login.rs:380
msgid "Keep unlocked on this computer"
msgstr "Pozostaw odblokowane na tym komputerze"
#: crates/pdfs-gui/src/app/pages/login.rs:371
#: crates/pdfs-gui/src/app/pages/login.rs:382
msgid ""
"Stores the unlock in the system keyring, so Proton Drive opens without "
"asking after every login. Otherwise you enter the password once per session."
msgstr "Zapisuje odblokowanie w systemowym breloku kluczy, aby Proton Drive otwierał się bez pytania po każdym logowaniu. W przeciwnym razie wpisujesz hasło raz na sesję."
msgstr ""
"Zapisuje odblokowanie w systemowym breloku kluczy, aby Proton Drive otwierał "
"się bez pytania po każdym logowaniu. W przeciwnym razie wpisujesz hasło raz "
"na sesję."
#: crates/pdfs-gui/src/app/pages/login.rs:379
#: crates/pdfs-gui/src/app/pages/login.rs:432
#: crates/pdfs-gui/src/app/pages/login.rs:390
#: crates/pdfs-gui/src/app/pages/login.rs:443
msgid "Unlock"
msgstr "Odblokuj"
#: crates/pdfs-gui/src/app/pages/login.rs:431
#: crates/pdfs-gui/src/app/pages/login.rs:442
msgid "Proton Drive is locked. Enter your mailbox password to unlock it."
msgstr "Proton Drive jest zablokowany. Wpisz hasło skrzynki pocztowej, aby go odblokować."
msgstr ""
"Proton Drive jest zablokowany. Wpisz hasło skrzynki pocztowej, aby go "
"odblokować."
#: crates/pdfs-gui/src/app/pages/login.rs:460
#: crates/pdfs-gui/src/app/pages/login.rs:471
msgid "Unlocked."
msgstr "Odblokowano."
#: crates/pdfs-gui/src/app/pages/login.rs:465
#: crates/pdfs-gui/src/app/pages/login.rs:476
msgid "Couldn't unlock"
msgstr "Nie udało się odblokować"
#: crates/pdfs-gui/src/app/pages/login.rs:478
#: crates/pdfs-gui/src/app/pages/login.rs:489
msgid "Two-Factor Authentication"
msgstr "Uwierzytelnianie dwuskładnikowe"
#: crates/pdfs-gui/src/app/pages/login.rs:480
#: crates/pdfs-gui/src/app/pages/login.rs:491
msgid ""
"Enter the code from your authenticator app, or one of your recovery codes."
msgstr ""
"Proszę wpisać kod z aplikacji uwierzytelniającej lub jeden z kodów "
"odzyskiwania."
#: crates/pdfs-gui/src/app/pages/login.rs:486
#: crates/pdfs-gui/src/app/pages/login.rs:497
msgid "Authentication code"
msgstr "Kod uwierzytelniania"
#: crates/pdfs-gui/src/app/pages/login.rs:493
#: crates/pdfs-gui/src/app/pages/login.rs:504
msgid "Confirm"
msgstr "Potwierdź"
#: crates/pdfs-gui/src/app/pages/login.rs:521
#: crates/pdfs-gui/src/app/pages/login.rs:535
#
msgid "Verify in Your Browser"
msgstr "Weryfikacja w przeglądarce"
#: crates/pdfs-gui/src/app/pages/login.rs:537
msgid ""
"The verification page can't be shown in the app on this system. Open it in "
"your browser, complete it there, then come back and choose Continue."
msgstr "Na tym systemie strony weryfikacji nie można wyświetlić w aplikacji. Proszę otworzyć ją w przeglądarce, ukończyć tam weryfikację, a następnie wrócić i wybrać „Kontynuuj”."
#: crates/pdfs-gui/src/app/pages/login.rs:543
#
msgid "Open Verification Page"
msgstr "Otwórz stronę weryfikacji"
#: crates/pdfs-gui/src/app/pages/login.rs:550
#
msgid "Continue"
msgstr "Kontynuuj"
#: crates/pdfs-gui/src/app/pages/login.rs:589
msgid "Sign Out?"
msgstr "Wylogować się?"
#: crates/pdfs-gui/src/app/pages/login.rs:523
#: crates/pdfs-gui/src/app/pages/login.rs:591
msgid ""
"Proton Drive will disconnect and stop syncing until you sign in again. Files "
"already on this computer stay where they are."
@@ -3372,7 +3402,7 @@ msgstr ""
"Proton Drive rozłączy się i przestanie synchronizować do czasu ponownego "
"zalogowania. Pliki znajdujące się już na tym komputerze pozostaną na miejscu."
#: crates/pdfs-gui/src/app/pages/login.rs:525
#: crates/pdfs-gui/src/app/pages/login.rs:593
msgid "Sign Out"
msgstr "Wyloguj się"
@@ -5373,7 +5403,7 @@ msgstr "Opróżniono kosz"
msgid "Couldn't empty the trash"
msgstr "Nie można opróżnić kosza"
#: crates/pdfs-gui/src/app/pages/verify.rs:57
#: crates/pdfs-gui/src/app/pages/verify.rs:162
msgid "Verification"
msgstr "Weryfikacja"
@@ -6182,6 +6212,15 @@ msgstr "{count} r."
msgid "cannot reach the Proton Drive daemon: {error}"
msgstr "nie można połączyć się z usługą Proton Drive: {error}"
#~ msgid ""
#~ "The verification page couldn't be opened, so the sign-in was cancelled. "
#~ "Your system may keep the web view's sandbox from starting; the "
#~ "troubleshooting guide explains what to do."
#~ msgstr ""
#~ "Nie można otworzyć strony weryfikacji, więc logowanie zostało anulowane. "
#~ "System może blokować uruchomienie piaskownicy widoku internetowego; "
#~ "poradnik rozwiązywania problemów wyjaśnia, co zrobić."
#~ msgid "Jump to a month"
#~ msgstr "Przejdź do miesiąca"
+136 -97
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-10-07 02:39+0200\n"
"POT-Creation-Date: 2026-10-08 18:47+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"
@@ -57,7 +57,7 @@ msgstr "%-d de %b de %Y"
msgid "%A, %B %-d, %Y, %H:%M"
msgstr "%A, %-d de %B de %Y, %H:%M"
#: crates/pdfs-gui/src/app/main.rs:747
#: crates/pdfs-gui/src/app/main.rs:760
#: crates/pdfs-gui/src/app/pages/activity_text.rs:539
#: crates/pdfs-gui/src/app/pages/browser.rs:454
#: crates/pdfs-gui/src/app/pages/browser.rs:819
@@ -70,91 +70,91 @@ msgstr "%A, %-d de %B de %Y, %H:%M"
msgid "My files"
msgstr "Meus arquivos"
#: crates/pdfs-gui/src/app/main.rs:750 crates/pdfs-gui/src/app/main.rs:1394
#: crates/pdfs-gui/src/app/main.rs:763 crates/pdfs-gui/src/app/main.rs:1407
#: crates/pdfs-gui/src/app/pages/albums.rs:638
#: crates/pdfs-gui/src/app/pages/photos.rs:842
#: crates/pdfs-gui/src/app/pages/places.rs:441
msgid "Photos"
msgstr "Fotos"
#: crates/pdfs-gui/src/app/main.rs:755
#: crates/pdfs-gui/src/app/main.rs:768
#: crates/pdfs-gui/src/app/pages/shared.rs:168
#: crates/pdfs-gui/src/app/pages/shared.rs:482
msgid "Shared with me"
msgstr "Compartilhados comigo"
#: crates/pdfs-gui/src/app/main.rs:760
#: crates/pdfs-gui/src/app/main.rs:773
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:120
msgid "Shared by me"
msgstr "Compartilhados por mim"
#: crates/pdfs-gui/src/app/main.rs:763
#: crates/pdfs-gui/src/app/main.rs:776
#: crates/pdfs-gui/src/app/pages/devices.rs:140
#: crates/pdfs-gui/src/app/pages/devices.rs:481
msgid "Computers"
msgstr "Computadores"
#: crates/pdfs-gui/src/app/main.rs:764
#: crates/pdfs-gui/src/app/main.rs:777
#: crates/pdfs-gui/src/app/pages/trash.rs:101
msgid "Trash"
msgstr "Lixeira"
#. Translators: sidebar entry for the page listing this computer's synced folders.
#: crates/pdfs-gui/src/app/main.rs:766
#: crates/pdfs-gui/src/app/main.rs:779
msgid "Sync"
msgstr "Sincronização"
#. Translators: a failed action's toast. {what} says what failed, such as
#. "Couldn't rename"; {detail} is the reason, usually untranslated text
#. from the mount service.
#: crates/pdfs-gui/src/app/main.rs:1083
#: crates/pdfs-gui/src/app/main.rs:1096
#, rust-format
msgid "{what}: {detail}"
msgstr "{what}: {detail}"
#: crates/pdfs-gui/src/app/main.rs:1102
#: crates/pdfs-gui/src/app/main.rs:1115
msgid "You're offline"
msgstr "Você está offline"
#: crates/pdfs-gui/src/app/main.rs:1103
#: crates/pdfs-gui/src/app/main.rs:1116
msgid "That's not there any more"
msgstr "Isso não existe mais"
#: crates/pdfs-gui/src/app/main.rs:1104
#: crates/pdfs-gui/src/app/main.rs:1117
msgid "You don't have access to that"
msgstr "Você não tem acesso a isso"
#: crates/pdfs-gui/src/app/main.rs:1105
#: crates/pdfs-gui/src/app/main.rs:1118
msgid "Something changed this first"
msgstr "Algo alterou isso antes"
#: crates/pdfs-gui/src/app/main.rs:1106
#: crates/pdfs-gui/src/app/main.rs:1119
msgid "Your Proton Drive is full"
msgstr "Seu Proton Drive está cheio"
#: crates/pdfs-gui/src/app/main.rs:1147 crates/pdfs-gui/src/app/main.rs:1376
#: crates/pdfs-gui/src/app/main.rs:1160 crates/pdfs-gui/src/app/main.rs:1389
#: crates/pdfs-gui/src/app/pages/status.rs:385
msgid "Preferences"
msgstr "Preferências"
#: crates/pdfs-gui/src/app/main.rs:1148
#: crates/pdfs-gui/src/app/main.rs:1161
#: crates/pdfs-gui/src/app/widgets/compat.rs:262
msgid "Keyboard Shortcuts"
msgstr "Atalhos de teclado"
#: crates/pdfs-gui/src/app/main.rs:1150
#: crates/pdfs-gui/src/app/main.rs:1163
msgid "About Proton Drive for Linux"
msgstr "Sobre o Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1155
#: crates/pdfs-gui/src/app/main.rs:1168
msgid "Main menu"
msgstr "Menu principal"
#: crates/pdfs-gui/src/app/main.rs:1211
#: crates/pdfs-gui/src/app/main.rs:1224
msgid "Proton Drive for Linux"
msgstr "Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1219
#: crates/pdfs-gui/src/app/main.rs:1232
msgid ""
"Files-on-demand Proton Drive for the Linux desktop.\n"
"\n"
@@ -165,23 +165,23 @@ msgstr ""
"\n"
"Cliente não oficial — sem afiliação, endosso ou suporte da Proton AG."
#: crates/pdfs-gui/src/app/main.rs:1224
#: crates/pdfs-gui/src/app/main.rs:1237
msgid "Source Code"
msgstr "Código-fonte"
#: crates/pdfs-gui/src/app/main.rs:1228
#: crates/pdfs-gui/src/app/main.rs:1241
msgid "Proton Terms of Service"
msgstr "Termos de Serviço da Proton"
#: crates/pdfs-gui/src/app/main.rs:1232
#: crates/pdfs-gui/src/app/main.rs:1245
msgid "Proton Privacy Policy"
msgstr "Política de Privacidade da Proton"
#: crates/pdfs-gui/src/app/main.rs:1237
#: crates/pdfs-gui/src/app/main.rs:1250
msgid "Disclaimer"
msgstr "Aviso legal"
#: crates/pdfs-gui/src/app/main.rs:1241
#: crates/pdfs-gui/src/app/main.rs:1254
msgid ""
"This is an unofficial, community-built client. It is not affiliated with, "
"endorsed by, or supported by Proton AG.\n"
@@ -204,7 +204,7 @@ msgstr ""
"Este software é fornecido “no estado em que se encontra”, sem garantia de "
"qualquer tipo. Mantenha uma cópia de todos os dados que você não pode perder."
#: crates/pdfs-gui/src/app/main.rs:1249
#: crates/pdfs-gui/src/app/main.rs:1262
msgid ""
"Places are named with data from <a href=\"https://www.geonames.org/"
"\">GeoNames</a>, licensed under <a href=\"https://creativecommons.org/"
@@ -214,7 +214,7 @@ msgstr ""
"\">GeoNames</a>, licenciados sob <a href=\"https://creativecommons.org/"
"licenses/by/4.0/\">CC BY 4.0</a>."
#: crates/pdfs-gui/src/app/main.rs:1257
#: crates/pdfs-gui/src/app/main.rs:1270
msgid ""
"The places map is drawn from <a href=\"https://www.naturalearthdata.com/"
"\">Natural Earth</a> land outlines and country borders, which are in the "
@@ -224,7 +224,7 @@ msgstr ""
"fronteiras de países do <a href=\"https://www.naturalearthdata.com/"
"\">Natural Earth</a>, que são de domínio público."
#: crates/pdfs-gui/src/app/main.rs:1265
#: crates/pdfs-gui/src/app/main.rs:1278
msgid ""
"The street map, when turned on, comes from <a href=\"https://openfreemap.org/"
"\">OpenFreeMap</a> in the <a href=\"https://www.openmaptiles.org/"
@@ -240,15 +240,15 @@ msgstr ""
#. Translators: replace with your name(s) and email address(es), one
#. per line, to be credited in the About dialog.
#: crates/pdfs-gui/src/app/main.rs:1276
#: crates/pdfs-gui/src/app/main.rs:1289
msgid "translator-credits"
msgstr "Colaboradores do Proton Drive for Linux"
#: crates/pdfs-gui/src/app/main.rs:1314
#: crates/pdfs-gui/src/app/main.rs:1327
msgid "Stop Proton Drive?"
msgstr "Parar o Proton Drive?"
#: crates/pdfs-gui/src/app/main.rs:1315
#: crates/pdfs-gui/src/app/main.rs:1328
msgid ""
"My files goes offline and nothing syncs until you connect again. Proton "
"Drive starts again at your next login."
@@ -256,7 +256,7 @@ msgstr ""
"Meus arquivos fica offline e nada é sincronizado até você se conectar "
"novamente. O Proton Drive será iniciado de novo no seu próximo login."
#: crates/pdfs-gui/src/app/main.rs:1317 crates/pdfs-gui/src/app/main.rs:1592
#: crates/pdfs-gui/src/app/main.rs:1330 crates/pdfs-gui/src/app/main.rs:1605
#: crates/pdfs-gui/src/app/pages/albums.rs:243
#: crates/pdfs-gui/src/app/pages/albums.rs:428
#: crates/pdfs-gui/src/app/pages/browser.rs:1892
@@ -271,8 +271,9 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:1013
#: crates/pdfs-gui/src/app/pages/locations.rs:1488
#: crates/pdfs-gui/src/app/pages/locations.rs:1538
#: crates/pdfs-gui/src/app/pages/login.rs:378
#: crates/pdfs-gui/src/app/pages/login.rs:492
#: crates/pdfs-gui/src/app/pages/login.rs:389
#: crates/pdfs-gui/src/app/pages/login.rs:503
#: crates/pdfs-gui/src/app/pages/login.rs:549
#: crates/pdfs-gui/src/app/pages/photos.rs:2055
#: crates/pdfs-gui/src/app/pages/shared.rs:946
#: crates/pdfs-gui/src/app/pages/shared.rs:1027
@@ -287,30 +288,30 @@ msgstr ""
msgid "Cancel"
msgstr "Cancelar"
#: crates/pdfs-gui/src/app/main.rs:1318
#: crates/pdfs-gui/src/app/main.rs:1331
msgctxt "verb"
msgid "Stop"
msgstr "Parar"
#: crates/pdfs-gui/src/app/main.rs:1335
#: crates/pdfs-gui/src/app/main.rs:1348
msgid "Couldn't stop Proton Drive"
msgstr "Não foi possível parar o Proton Drive"
#: crates/pdfs-gui/src/app/main.rs:1336
#: crates/pdfs-gui/src/app/main.rs:1349
msgid "The Proton Drive service did not stop."
msgstr "O serviço do Proton Drive não parou."
#: crates/pdfs-gui/src/app/main.rs:1372
#: crates/pdfs-gui/src/app/main.rs:1385
#: crates/pdfs-gui/src/app/pages/status.rs:254
msgid "General"
msgstr "Geral"
#: crates/pdfs-gui/src/app/main.rs:1374
#: crates/pdfs-gui/src/app/main.rs:1387
#: crates/pdfs-gui/src/app/pages/browser.rs:247
msgid "Search Drive"
msgstr "Pesquisar no Drive"
#: crates/pdfs-gui/src/app/main.rs:1375
#: crates/pdfs-gui/src/app/main.rs:1388
#: crates/pdfs-gui/src/app/pages/browser.rs:957
#: crates/pdfs-gui/src/app/pages/devices.rs:554
#: crates/pdfs-gui/src/app/pages/shared.rs:586
@@ -319,38 +320,38 @@ msgstr "Pesquisar no Drive"
msgid "Refresh"
msgstr "Atualizar"
#: crates/pdfs-gui/src/app/main.rs:1377
#: crates/pdfs-gui/src/app/main.rs:1390
msgid "Keyboard shortcuts"
msgstr "Atalhos de teclado"
#: crates/pdfs-gui/src/app/main.rs:1381
#: crates/pdfs-gui/src/app/main.rs:1394
msgid "Files"
msgstr "Arquivos"
#: crates/pdfs-gui/src/app/main.rs:1383
#: crates/pdfs-gui/src/app/main.rs:1396
#: crates/pdfs-gui/src/app/pages/browser.rs:294
msgid "New folder"
msgstr "Nova pasta"
#: crates/pdfs-gui/src/app/main.rs:1384
#: crates/pdfs-gui/src/app/main.rs:1397
#: crates/pdfs-gui/src/app/pages/browser.rs:290
msgid "Upload files"
msgstr "Enviar arquivos"
#: crates/pdfs-gui/src/app/main.rs:1385
#: crates/pdfs-gui/src/app/main.rs:1398
msgid "Back / forward"
msgstr "Voltar / avançar"
#: crates/pdfs-gui/src/app/main.rs:1386
#: crates/pdfs-gui/src/app/main.rs:1399
#: crates/pdfs-gui/src/app/pages/browser.rs:1943
msgid "Parent folder"
msgstr "Pasta superior"
#: crates/pdfs-gui/src/app/main.rs:1387
#: crates/pdfs-gui/src/app/main.rs:1400
msgid "Grid / list"
msgstr "Grade / lista"
#: crates/pdfs-gui/src/app/main.rs:1388
#: crates/pdfs-gui/src/app/main.rs:1401
#: crates/pdfs-gui/src/app/pages/albums.rs:298
#: crates/pdfs-gui/src/app/pages/browser.rs:1871
#: crates/pdfs-gui/src/app/pages/browser.rs:1893
@@ -359,7 +360,7 @@ msgstr "Grade / lista"
msgid "Rename"
msgstr "Renomear"
#: crates/pdfs-gui/src/app/main.rs:1389 crates/pdfs-gui/src/app/main.rs:1409
#: crates/pdfs-gui/src/app/main.rs:1402 crates/pdfs-gui/src/app/main.rs:1422
#: crates/pdfs-gui/src/app/pages/browser.rs:357
#: crates/pdfs-gui/src/app/pages/browser.rs:900
#: crates/pdfs-gui/src/app/pages/browser.rs:932
@@ -369,73 +370,73 @@ msgstr "Renomear"
msgid "Move to Trash"
msgstr "Mover para a lixeira"
#: crates/pdfs-gui/src/app/main.rs:1390
#: crates/pdfs-gui/src/app/main.rs:1403
msgid "Clear the selection"
msgstr "Limpar a seleção"
#: crates/pdfs-gui/src/app/main.rs:1396
#: crates/pdfs-gui/src/app/main.rs:1409
msgid "Larger thumbnails"
msgstr "Miniaturas maiores"
#: crates/pdfs-gui/src/app/main.rs:1397
#: crates/pdfs-gui/src/app/main.rs:1410
msgid "Smaller thumbnails"
msgstr "Miniaturas menores"
#: crates/pdfs-gui/src/app/main.rs:1398
#: crates/pdfs-gui/src/app/main.rs:1411
msgid "Reset thumbnail size"
msgstr "Redefinir tamanho das miniaturas"
#: crates/pdfs-gui/src/app/main.rs:1399
#: crates/pdfs-gui/src/app/main.rs:1412
msgid "Select all"
msgstr "Selecionar tudo"
#: crates/pdfs-gui/src/app/main.rs:1403
#: crates/pdfs-gui/src/app/main.rs:1416
msgid "Photo Viewer"
msgstr "Visualizador de fotos"
#: crates/pdfs-gui/src/app/main.rs:1405
#: crates/pdfs-gui/src/app/main.rs:1418
msgid "Previous / next photo"
msgstr "Foto anterior / próxima"
#: crates/pdfs-gui/src/app/main.rs:1406
#: crates/pdfs-gui/src/app/main.rs:1419
msgid "First / last photo"
msgstr "Primeira / última foto"
#: crates/pdfs-gui/src/app/main.rs:1407
#: crates/pdfs-gui/src/app/main.rs:1420
msgid "Show details"
msgstr "Mostrar detalhes"
#: crates/pdfs-gui/src/app/main.rs:1408
#: crates/pdfs-gui/src/app/main.rs:1421
msgid "Fullscreen"
msgstr "Tela cheia"
#: crates/pdfs-gui/src/app/main.rs:1410
#: crates/pdfs-gui/src/app/main.rs:1423
msgid "Close"
msgstr "Fechar"
#: crates/pdfs-gui/src/app/main.rs:1500
#: crates/pdfs-gui/src/app/main.rs:1513
msgid "Select a single item to rename it"
msgstr "Selecione um único item para renomeá-lo"
#: crates/pdfs-gui/src/app/main.rs:1660
#: crates/pdfs-gui/src/app/main.rs:1673
#: crates/pdfs-gui/src/app/pages/albums.rs:85
#: crates/pdfs-gui/src/app/pages/places.rs:104
#: crates/pdfs-gui/src/app/pages/status.rs:1371
msgid "Not connected"
msgstr "Não conectado"
#: crates/pdfs-gui/src/app/main.rs:1661
#: crates/pdfs-gui/src/app/main.rs:1674
msgid "The Proton Drive service isn't running."
msgstr "O serviço do Proton Drive não está em execução."
#: crates/pdfs-gui/src/app/main.rs:1669
#: crates/pdfs-gui/src/app/main.rs:1682
#: crates/pdfs-gui/src/app/pages/status.rs:336
#: crates/pdfs-gui/src/hud/mod.rs:274 crates/pdfs-gui/src/hud/mod.rs:595
#: crates/pdfs-gui/src/main.rs:453
msgid "Connecting…"
msgstr "Conectando…"
#: crates/pdfs-gui/src/app/main.rs:1670
#: crates/pdfs-gui/src/app/main.rs:1683
msgid "Waiting for the Proton Drive service to start."
msgstr "Aguardando o serviço do Proton Drive iniciar."
@@ -3182,21 +3183,21 @@ msgstr "Entrando…"
msgid "Complete the verification to continue…"
msgstr "Conclua a verificação para continuar…"
#: crates/pdfs-gui/src/app/pages/login.rs:185
#: crates/pdfs-gui/src/app/pages/login.rs:195
msgid "login cancelled"
msgstr "login cancelado"
#: crates/pdfs-gui/src/app/pages/login.rs:218
#: crates/pdfs-gui/src/app/pages/login.rs:228
msgid "Too many sign-in attempts. Wait a few minutes and try again."
msgstr "Muitas tentativas de entrar. Aguarde alguns minutos e tente novamente."
#: crates/pdfs-gui/src/app/pages/login.rs:224
#: crates/pdfs-gui/src/app/pages/login.rs:234
msgid "Couldn't reach Proton. Check your internet connection and try again."
msgstr ""
"Não foi possível acessar o Proton. Verifique sua conexão com a internet e "
"tente novamente."
#: crates/pdfs-gui/src/app/pages/login.rs:227
#: crates/pdfs-gui/src/app/pages/login.rs:237
msgid ""
"Signed in, but the session couldn't be saved to the system keyring. Make "
"sure a keyring (GNOME Keyring or KWallet) is running and unlocked."
@@ -3205,19 +3206,19 @@ msgstr ""
"Certifique-se de que um chaveiro (GNOME Keyring ou KWallet) esteja em "
"execução e desbloqueado."
#: crates/pdfs-gui/src/app/pages/login.rs:230
#: crates/pdfs-gui/src/app/pages/login.rs:240
msgid "Sign-in cancelled: no two-factor code was entered."
msgstr "Entrada cancelada: nenhum código de dois fatores foi digitado."
#: crates/pdfs-gui/src/app/pages/login.rs:233
#: crates/pdfs-gui/src/app/pages/login.rs:243
msgid "Sign-in cancelled: no mailbox password was entered."
msgstr "Entrada cancelada: nenhuma senha da caixa de correio foi digitada."
#: crates/pdfs-gui/src/app/pages/login.rs:236
#: crates/pdfs-gui/src/app/pages/login.rs:246
msgid "That mailbox password didn't unlock your account."
msgstr "Essa senha da caixa de correio não desbloqueou sua conta."
#: crates/pdfs-gui/src/app/pages/login.rs:239
#: crates/pdfs-gui/src/app/pages/login.rs:249
msgid ""
"Sign-in cancelled: the verification wasn't completed. Sign in again to get a "
"new one."
@@ -3226,79 +3227,108 @@ msgstr ""
"receber uma nova."
#. Translators: {error} is an error message, usually in English.
#: crates/pdfs-gui/src/app/pages/login.rs:244
#: crates/pdfs-gui/src/app/pages/login.rs:254
#, rust-format
msgid "Sign-in failed: {error}"
msgstr "Falha ao entrar: {error}"
#: crates/pdfs-gui/src/app/pages/login.rs:354
#: crates/pdfs-gui/src/app/pages/login.rs:365
msgid "That mailbox password didn't unlock your account. Try again."
msgstr "Essa senha da caixa de correio não desbloqueou sua conta. Tente novamente."
msgstr ""
"Essa senha da caixa de correio não desbloqueou sua conta. Tente novamente."
#: crates/pdfs-gui/src/app/pages/login.rs:356
#: crates/pdfs-gui/src/app/pages/login.rs:367
msgid ""
"This account has a separate mailbox password. Enter it to unlock your files."
msgstr "Esta conta tem uma senha da caixa de correio separada. Digite-a para desbloquear seus arquivos."
msgstr ""
"Esta conta tem uma senha da caixa de correio separada. Digite-a para "
"desbloquear seus arquivos."
#: crates/pdfs-gui/src/app/pages/login.rs:359
#: crates/pdfs-gui/src/app/pages/login.rs:370
msgid "Mailbox Password"
msgstr "Senha da caixa de correio"
#: crates/pdfs-gui/src/app/pages/login.rs:365
#: crates/pdfs-gui/src/app/pages/login.rs:376
msgid "Mailbox password"
msgstr "Senha da caixa de correio"
#: crates/pdfs-gui/src/app/pages/login.rs:369
#: crates/pdfs-gui/src/app/pages/login.rs:380
msgid "Keep unlocked on this computer"
msgstr "Manter desbloqueado neste computador"
#: crates/pdfs-gui/src/app/pages/login.rs:371
#: crates/pdfs-gui/src/app/pages/login.rs:382
msgid ""
"Stores the unlock in the system keyring, so Proton Drive opens without "
"asking after every login. Otherwise you enter the password once per session."
msgstr "Guarda o desbloqueio no chaveiro do sistema, para que o Proton Drive abra sem perguntar após cada login. Caso contrário, você digita a senha uma vez por sessão."
msgstr ""
"Guarda o desbloqueio no chaveiro do sistema, para que o Proton Drive abra "
"sem perguntar após cada login. Caso contrário, você digita a senha uma vez "
"por sessão."
#: crates/pdfs-gui/src/app/pages/login.rs:379
#: crates/pdfs-gui/src/app/pages/login.rs:432
#: crates/pdfs-gui/src/app/pages/login.rs:390
#: crates/pdfs-gui/src/app/pages/login.rs:443
msgid "Unlock"
msgstr "Desbloquear"
#: crates/pdfs-gui/src/app/pages/login.rs:431
#: crates/pdfs-gui/src/app/pages/login.rs:442
msgid "Proton Drive is locked. Enter your mailbox password to unlock it."
msgstr "O Proton Drive está bloqueado. Digite a senha da caixa de correio para desbloqueá-lo."
msgstr ""
"O Proton Drive está bloqueado. Digite a senha da caixa de correio para "
"desbloqueá-lo."
#: crates/pdfs-gui/src/app/pages/login.rs:460
#: crates/pdfs-gui/src/app/pages/login.rs:471
msgid "Unlocked."
msgstr "Desbloqueado."
#: crates/pdfs-gui/src/app/pages/login.rs:465
#: crates/pdfs-gui/src/app/pages/login.rs:476
msgid "Couldn't unlock"
msgstr "Não foi possível desbloquear"
#: crates/pdfs-gui/src/app/pages/login.rs:478
#: crates/pdfs-gui/src/app/pages/login.rs:489
msgid "Two-Factor Authentication"
msgstr "Autenticação de dois fatores"
#: crates/pdfs-gui/src/app/pages/login.rs:480
#: crates/pdfs-gui/src/app/pages/login.rs:491
msgid ""
"Enter the code from your authenticator app, or one of your recovery codes."
msgstr ""
"Digite o código do seu aplicativo autenticador ou um dos seus códigos de "
"recuperação."
#: crates/pdfs-gui/src/app/pages/login.rs:486
#: crates/pdfs-gui/src/app/pages/login.rs:497
msgid "Authentication code"
msgstr "Código de autenticação"
#: crates/pdfs-gui/src/app/pages/login.rs:493
#: crates/pdfs-gui/src/app/pages/login.rs:504
msgid "Confirm"
msgstr "Confirmar"
#: crates/pdfs-gui/src/app/pages/login.rs:521
#: crates/pdfs-gui/src/app/pages/login.rs:535
#
msgid "Verify in Your Browser"
msgstr "Verificar no navegador"
#: crates/pdfs-gui/src/app/pages/login.rs:537
msgid ""
"The verification page can't be shown in the app on this system. Open it in "
"your browser, complete it there, then come back and choose Continue."
msgstr "A página de verificação não pode ser exibida no app neste sistema. Abra-a no navegador, conclua-a lá e depois volte e escolha “Continuar”."
#: crates/pdfs-gui/src/app/pages/login.rs:543
#
msgid "Open Verification Page"
msgstr "Abrir página de verificação"
#: crates/pdfs-gui/src/app/pages/login.rs:550
#
msgid "Continue"
msgstr "Continuar"
#: crates/pdfs-gui/src/app/pages/login.rs:589
msgid "Sign Out?"
msgstr "Sair?"
#: crates/pdfs-gui/src/app/pages/login.rs:523
#: crates/pdfs-gui/src/app/pages/login.rs:591
msgid ""
"Proton Drive will disconnect and stop syncing until you sign in again. Files "
"already on this computer stay where they are."
@@ -3306,7 +3336,7 @@ msgstr ""
"O Proton Drive será desconectado e deixará de sincronizar até você entrar "
"novamente. Os arquivos que já estão neste computador permanecem onde estão."
#: crates/pdfs-gui/src/app/pages/login.rs:525
#: crates/pdfs-gui/src/app/pages/login.rs:593
msgid "Sign Out"
msgstr "Sair"
@@ -5276,7 +5306,7 @@ msgstr "Lixeira esvaziada"
msgid "Couldn't empty the trash"
msgstr "Não foi possível esvaziar a lixeira"
#: crates/pdfs-gui/src/app/pages/verify.rs:57
#: crates/pdfs-gui/src/app/pages/verify.rs:162
msgid "Verification"
msgstr "Verificação"
@@ -6074,6 +6104,15 @@ msgstr "{count} a"
msgid "cannot reach the Proton Drive daemon: {error}"
msgstr "não foi possível acessar o daemon do Proton Drive: {error}"
#~ msgid ""
#~ "The verification page couldn't be opened, so the sign-in was cancelled. "
#~ "Your system may keep the web view's sandbox from starting; the "
#~ "troubleshooting guide explains what to do."
#~ msgstr ""
#~ "Não foi possível abrir a página de verificação, então a entrada foi "
#~ "cancelada. Seu sistema pode estar impedindo que a sandbox da visualização "
#~ "web inicie; o guia de solução de problemas explica o que fazer."
#~ msgid "Jump to a month"
#~ msgstr "Ir para um mês"