1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-08-01 19:18:28 -04:00

i18n: cut down terms and sync

port 1.5
This commit is contained in:
bbedward
2026-07-15 11:05:07 -04:00
parent b169fe0d77
commit bf408f8d00
9 changed files with 390 additions and 699 deletions
+21 -44
View File
@@ -19,62 +19,39 @@ Item {
function greeterFingerprintDescription() {
if (SettingsData.greeterPamExternallyManaged)
return I18n.tr("greetd PAM is externally managed. DMS will not change fingerprint auth; configure it yourself.");
return "greetd PAM is externally managed";
if (SettingsData.greeterFingerprintSource === "pam")
return I18n.tr("PAM already provides fingerprint auth. Enable this to show it at login.", "greeter fingerprint login setting");
const source = SettingsData.greeterFingerprintSource;
const reason = SettingsData.greeterFingerprintReason;
if (source === "pam") {
switch (reason) {
case "configured_externally":
return SettingsData.greeterEnableFprint ? I18n.tr("Enabled. PAM already provides fingerprint auth.") : I18n.tr("PAM already provides fingerprint auth. Enable this to show it at login.");
case "missing_enrollment":
return SettingsData.greeterEnableFprint ? I18n.tr("Enabled. PAM provides fingerprint auth, but no prints are enrolled yet.") : I18n.tr("PAM provides fingerprint auth, but no prints are enrolled yet.");
case "missing_reader":
return I18n.tr("PAM provides fingerprint auth, but no reader was detected.");
default:
return I18n.tr("PAM provides fingerprint auth, but availability could not be confirmed.");
}
}
switch (reason) {
switch (SettingsData.greeterFingerprintReason) {
case "ready":
return SettingsData.greeterEnableFprint ? I18n.tr("Authentication changes apply automatically. Fingerprint-only login may not unlock Keyring.") : I18n.tr("Only affects DMS-managed PAM. If greetd already includes pam_fprintd, fingerprint stays enabled.");
return I18n.tr("Authentication changes apply automatically.", "greeter auth setting description");
case "missing_enrollment":
if (SettingsData.greeterEnableFprint)
return I18n.tr("Enabled, but no prints are enrolled yet. Enroll fingerprints and run Sync.");
return I18n.tr("Fingerprint reader detected, but no prints are enrolled yet. You can enable this now and run Sync later.");
return I18n.tr("Fingerprint reader detected, but no prints are enrolled yet. You can enable this now and run Sync later.", "greeter fingerprint login setting");
case "missing_reader":
return SettingsData.greeterEnableFprint ? I18n.tr("Enabled, but no fingerprint reader was detected.") : I18n.tr("No fingerprint reader detected.");
return I18n.tr("No fingerprint reader detected.", "fingerprint setting status");
case "missing_pam_support":
return I18n.tr("Not available — install fprintd and pam_fprintd, or configure greetd PAM.");
return I18n.tr("Not available — install fprintd and pam_fprintd, or configure greetd PAM.", "greeter fingerprint login setting");
default:
return SettingsData.greeterEnableFprint ? I18n.tr("Enabled, but fingerprint availability could not be confirmed.") : I18n.tr("Fingerprint availability could not be confirmed.");
return I18n.tr("Fingerprint availability could not be confirmed.", "fingerprint setting status");
}
}
function greeterU2fDescription() {
if (SettingsData.greeterPamExternallyManaged)
return I18n.tr("greetd PAM is externally managed. DMS will not change security-key auth; configure it yourself.");
return "greetd PAM is externally managed";
if (SettingsData.greeterU2fSource === "pam")
return I18n.tr("PAM already provides security-key auth. Enable this to show it at login.", "greeter security key login setting");
const source = SettingsData.greeterU2fSource;
const reason = SettingsData.greeterU2fReason;
if (source === "pam") {
return SettingsData.greeterEnableU2f ? I18n.tr("Enabled. PAM already provides security-key auth.") : I18n.tr("PAM already provides security-key auth. Enable this to show it at login.");
}
switch (reason) {
switch (SettingsData.greeterU2fReason) {
case "ready":
return SettingsData.greeterEnableU2f ? I18n.tr("Authentication changes apply automatically.") : I18n.tr("Available.");
return I18n.tr("Authentication changes apply automatically.", "greeter auth setting description");
case "missing_key_registration":
if (SettingsData.greeterEnableU2f)
return I18n.tr("Enabled, but no registered security key was found yet. Register a key and run Sync.");
return I18n.tr("Security-key support was detected, but no registered key was found yet. You can enable this now and register one later.");
return I18n.tr("Security-key support was detected, but no registered key was found yet. You can enable this now and register one later.", "security key setting status");
case "missing_pam_support":
return I18n.tr("Not available — install or configure pam_u2f, or configure greetd PAM.");
return I18n.tr("Not available — install or configure pam_u2f, or configure greetd PAM.", "greeter security key login setting");
default:
return SettingsData.greeterEnableU2f ? I18n.tr("Enabled, but security-key availability could not be confirmed.") : I18n.tr("Security-key availability could not be confirmed.");
return I18n.tr("Security-key availability could not be confirmed.", "security key setting status");
}
}
@@ -508,10 +485,10 @@ Item {
SettingsToggleRow {
settingKey: "greeterPamExternallyManaged"
tags: ["greeter", "pam", "managed", "external", "greetd", "auth"]
text: I18n.tr("Manage greetd PAM automatically")
description: SettingsData.greeterPamExternallyManaged ? I18n.tr("DMS never touches /etc/pam.d/greetd; any existing DMS block is removed on next sync. Configure fingerprint and security-key auth yourself.") : I18n.tr("DMS writes its managed block into /etc/pam.d/greetd during sync.")
checked: !SettingsData.greeterPamExternallyManaged
onToggled: checked => SettingsData.set("greeterPamExternallyManaged", !checked)
text: "greetd PAM is externally managed"
description: "DMS removes its managed block from /etc/pam.d/greetd and stops writing to it"
checked: SettingsData.greeterPamExternallyManaged
onToggled: checked => SettingsData.set("greeterPamExternallyManaged", checked)
}
SettingsToggleRow {
+50 -98
View File
@@ -1,5 +1,4 @@
import QtQuick
import Quickshell
import Quickshell.Io
import qs.Common
import qs.Modals.FileBrowser
@@ -21,30 +20,21 @@ Item {
property string authPendingApplyPath: ""
property bool authShowCustom: false
readonly property string authAutoLabel: I18n.tr("Auto (recommended)")
readonly property string authCustomLabel: I18n.tr("Custom")
readonly property string authAutoLabel: I18n.tr("Auto", "automatic PAM authentication source option")
readonly property string authCustomLabel: I18n.tr("Custom...", "custom PAM authentication source option")
function authServiceLabel(service) {
const label = service.name.split("-").map(w => w.charAt(0).toUpperCase() + w.slice(1)).join("-");
return service.dir === "/etc/pam.d" ? label : label + " (" + service.dir + ")";
}
readonly property var authOptions: {
var opts = [authAutoLabel];
for (var i = 0; i < authServices.length; i++)
opts.push(authServiceLabel(authServices[i]));
opts.push(authCustomLabel);
return opts;
}
readonly property var authOptions: [authAutoLabel, ...authServices.map(s => authServiceLabel(s)), authCustomLabel]
readonly property string authCurrentValue: {
if (SettingsData.lockPamPath === "")
return authAutoLabel;
for (var i = 0; i < authServices.length; i++) {
if (authServices[i].path === SettingsData.lockPamPath)
return authServiceLabel(authServices[i]);
}
return authCustomLabel;
const svc = authServices.find(s => s.path === SettingsData.lockPamPath);
return svc ? authServiceLabel(svc) : authCustomLabel;
}
function refreshAuthServices() {
@@ -61,14 +51,8 @@ Item {
}
function validateAndApplyAuthSource(path) {
if (!path || path === "")
if (!path)
return;
if (!path.startsWith("/")) {
root.authValidateOk = false;
root.authValidateWarn = false;
root.authValidateMessage = I18n.tr("Not a valid path");
return;
}
root.authPendingApplyPath = path;
root.authValidateMessage = "";
root.authValidateOk = false;
@@ -81,32 +65,28 @@ Item {
function lockFingerprintDescription() {
switch (SettingsData.lockFingerprintReason) {
case "ready":
return SettingsData.enableFprint ? I18n.tr("Authentication changes apply automatically.") : I18n.tr("Use fingerprint authentication for the lock screen.");
return I18n.tr("Use fingerprint authentication for the lock screen.", "lock screen fingerprint setting");
case "missing_enrollment":
if (SettingsData.enableFprint)
return I18n.tr("Enabled, but no prints are enrolled yet. Authentication changes apply automatically once you enroll fingerprints.");
return I18n.tr("Fingerprint reader detected, but no prints are enrolled yet. You can enable this now and enroll later.");
return I18n.tr("Fingerprint reader detected, but no prints are enrolled yet. You can enable this now and enroll later.", "lock screen fingerprint setting");
case "missing_reader":
return SettingsData.enableFprint ? I18n.tr("Enabled, but no fingerprint reader was detected.") : I18n.tr("No fingerprint reader detected.");
return I18n.tr("No fingerprint reader detected.", "fingerprint setting status");
case "missing_pam_support":
return I18n.tr("Not available — install fprintd and pam_fprintd.");
return I18n.tr("Not available — install fprintd and pam_fprintd.", "lock screen fingerprint setting");
default:
return SettingsData.enableFprint ? I18n.tr("Enabled, but fingerprint availability could not be confirmed.") : I18n.tr("Fingerprint availability could not be confirmed.");
return I18n.tr("Fingerprint availability could not be confirmed.", "fingerprint setting status");
}
}
function lockU2fDescription() {
switch (SettingsData.lockU2fReason) {
case "ready":
return SettingsData.enableU2f ? I18n.tr("Authentication changes apply automatically.") : I18n.tr("Use a security key for lock screen authentication.", "lock screen U2F security key setting");
return I18n.tr("Use a security key for lock screen authentication.", "lock screen U2F security key setting");
case "missing_key_registration":
if (SettingsData.enableU2f)
return I18n.tr("Enabled, but no registered security key was found yet. Authentication changes apply automatically once your key is registered or your U2F config is updated.");
return I18n.tr("Security-key support was detected, but no registered key was found yet. You can enable this now and register one later.");
return I18n.tr("Security-key support was detected, but no registered key was found yet. You can enable this now and register one later.", "security key setting status");
case "missing_pam_support":
return I18n.tr("Not available — install or configure pam_u2f.");
return I18n.tr("Not available — install or configure pam_u2f.", "lock screen security key setting");
default:
return SettingsData.enableU2f ? I18n.tr("Enabled, but security-key availability could not be confirmed.") : I18n.tr("Security-key availability could not be confirmed.");
return I18n.tr("Security-key availability could not be confirmed.", "security key setting status");
}
}
@@ -172,38 +152,31 @@ Item {
onExited: exitCode => {
root.authValidateRunning = false;
var data = null;
root.authValidateOk = false;
root.authValidateWarn = false;
let data = null;
try {
data = JSON.parse(authValidateProcess.collected);
} catch (e) {
data = null;
}
} catch (e) {}
if (!data) {
root.authValidateOk = false;
root.authValidateWarn = false;
root.authValidateMessage = I18n.tr("Could not run validation. Ensure DMS is installed and dms is in PATH.");
root.authValidateMessage = "validation failed — is dms in PATH?";
return;
}
if (data.valid) {
SettingsData.set("lockPamPath", root.authPendingApplyPath);
SettingsData.set("lockPamInlineFprint", data.inlineFingerprint === true);
SettingsData.set("lockPamInlineU2f", data.inlineU2f === true);
const warns = Array.isArray(data.warnings) ? data.warnings : [];
root.authValidateOk = true;
root.authValidateWarn = warns.length > 0;
root.authValidateMessage = warns.length > 0 ? (I18n.tr("Applied with warnings:") + "\n" + warns.join("\n")) : I18n.tr("Applied successfully.");
} else {
root.authValidateOk = false;
root.authValidateWarn = false;
if (!data.valid) {
const errs = Array.isArray(data.errors) ? data.errors : [];
const missing = Array.isArray(data.missingModules) ? data.missingModules : [];
var msg = I18n.tr("Invalid — not applied.");
if (errs.length > 0)
msg = msg + "\n" + errs.join("\n");
if (missing.length > 0)
msg = msg + "\n" + I18n.tr("Missing modules: ") + missing.join(", ");
root.authValidateMessage = msg;
root.authValidateMessage = ["not applied:", ...errs].join("\n");
return;
}
SettingsData.set("lockPamPath", root.authPendingApplyPath);
SettingsData.set("lockPamInlineFprint", data.inlineFingerprint === true);
SettingsData.set("lockPamInlineU2f", data.inlineU2f === true);
const warns = Array.isArray(data.warnings) ? data.warnings : [];
root.authValidateOk = true;
root.authValidateWarn = warns.length > 0;
root.authValidateMessage = warns.length > 0 ? ["applied with warnings:", ...warns].join("\n") : "applied";
}
}
@@ -353,22 +326,14 @@ Item {
SettingsCard {
width: parent.width
iconName: "key"
title: I18n.tr("Authentication Source")
title: "Authentication Source"
settingKey: "lockAuthSource"
StyledText {
text: I18n.tr("Auto resolves the system auth stack automatically. Picking a source pins the lock screen to that PAM file.")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
width: parent.width
wrapMode: Text.Wrap
}
SettingsDropdownRow {
settingKey: "lockPamPath"
tags: ["lock", "screen", "pam", "authentication", "source", "service"]
text: I18n.tr("Authentication Source")
description: SettingsData.lockPamPath !== "" ? I18n.tr("Pinned to ") + SettingsData.lockPamPath : I18n.tr("Which PAM service the lock screen uses to authenticate")
text: "Authentication Source"
description: SettingsData.lockPamPath !== "" ? SettingsData.lockPamPath : "Which PAM service the lock screen uses to authenticate"
options: root.authOptions
currentValue: root.authCurrentValue
onValueChanged: value => {
@@ -382,43 +347,30 @@ Item {
return;
}
root.authShowCustom = false;
var svc = root.authServices.find(s => root.authServiceLabel(s) === value);
const svc = root.authServices.find(s => root.authServiceLabel(s) === value);
if (svc)
root.validateAndApplyAuthSource(svc.path);
}
}
Column {
Row {
width: parent.width
spacing: Theme.spacingS
visible: root.authShowCustom || root.authCurrentValue === root.authCustomLabel
StyledText {
text: I18n.tr("Enter the absolute path to a PAM service file, then validate and apply.")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
width: parent.width
wrapMode: Text.Wrap
DankTextField {
id: customPamField
width: parent.width - validatePamButton.width - Theme.spacingS
placeholderText: "/etc/pam.d/my-service"
text: SettingsData.lockPamPath
backgroundColor: Theme.surfaceContainerHighest
}
Row {
width: parent.width
spacing: Theme.spacingS
DankTextField {
id: customPamField
width: parent.width - validatePamButton.width - Theme.spacingS
placeholderText: "/etc/pam.d/my-service"
text: SettingsData.lockPamPath
backgroundColor: Theme.surfaceContainerHighest
}
DankButton {
id: validatePamButton
text: I18n.tr("Validate & Apply")
enabled: !root.authValidateRunning && customPamField.text.trim() !== ""
onClicked: root.validateAndApplyAuthSource(customPamField.text.trim())
}
DankButton {
id: validatePamButton
text: I18n.tr("Apply Changes", "validate and apply custom PAM authentication source")
enabled: !root.authValidateRunning && customPamField.text.trim() !== ""
onClicked: root.validateAndApplyAuthSource(customPamField.text.trim())
}
}
@@ -444,7 +396,7 @@ Item {
StyledText {
visible: (SettingsData.lockPamInlineFprint && SettingsData.enableFprint) || (SettingsData.lockPamInlineU2f && SettingsData.enableU2f)
text: I18n.tr("The chosen PAM stack already prompts for fingerprint or security key, so DMS's separate prompts are suppressed to avoid a double prompt.")
text: "The pinned PAM stack already prompts for fingerprint or security key, so DMS skips its own prompts"
font.pixelSize: Theme.fontSizeSmall
color: Theme.warning
width: parent.width
File diff suppressed because it is too large Load Diff
+25 -25
View File
@@ -777,7 +777,7 @@
"Authenticate": "صادِق"
},
"Authenticated!": {
"Authenticated!": ""
"Authenticated!": "تم التحقق بنجاح!"
},
"Authenticating...": {
"Authenticating...": "جاري المصادقة..."
@@ -804,13 +804,13 @@
"Authentication error - try again": "خطأ في المصادقة - حاول مرة أخرى"
},
"Authentication failed - attempt %1 of %2": {
"Authentication failed - attempt %1 of %2": ""
"Authentication failed - attempt %1 of %2": "فشل التحقق من الهوية - المحاولة %1 من %2"
},
"Authentication failed - lockout can occur": {
"Authentication failed - lockout can occur": ""
"Authentication failed - lockout can occur": "فشل التحقق - قد يؤدي ذلك إلى قفل حسابك"
},
"Authentication failed - try again": {
"Authentication failed - try again": ""
"Authentication failed - try again": "فشل التحقق - يرجى المحاولة مرة أخرى"
},
"Authentication failed, please try again": {
"Authentication failed, please try again": "فشل التحقق، أعد المحاولة"
@@ -987,13 +987,13 @@
"Available.": "متاح."
},
"Awaiting fingerprint authentication": {
"Awaiting fingerprint authentication": ""
"Awaiting fingerprint authentication": "بانتظار التحقق ببصمة الإصبع"
},
"Awaiting fingerprint or security key authentication": {
"Awaiting fingerprint or security key authentication": ""
"Awaiting fingerprint or security key authentication": "بانتظار التحقق ببصمة الإصبع أو مفتاح الأمان"
},
"Awaiting security key authentication": {
"Awaiting security key authentication": ""
"Awaiting security key authentication": "بانتظار التحقق بمفتاح الأمان"
},
"BSSID": {
"BSSID": "BSSID"
@@ -2175,7 +2175,7 @@
"Custom command and terminal params are split on whitespace; paths with spaces will break.": "يتم فصل الأمر المخصص ومعلمات الجهاز على المسافات البيضاء؛ المسارات التي تحتوي على مسافات ستتسبب في خطأ."
},
"Custom interval in minutes (minimum 5)": {
"Custom interval in minutes (minimum 5)": ""
"Custom interval in minutes (minimum 5)": "الفترة الزمنية المخصصة بالدقائق (الحد الأدنى 5)"
},
"Custom open-trash command": {
"Custom open-trash command": "أمر مخصص لفتح المهملات"
@@ -3435,7 +3435,7 @@
"Flags": "الأعلام"
},
"Flatpak": {
"Flatpak": ""
"Flatpak": "Flatpak"
},
"Flipped": {
"Flipped": "معكوس"
@@ -3852,7 +3852,7 @@
"Groups": "المجموعات"
},
"H": {
"H": ""
"H": "H"
},
"HDR (EDID)": {
"HDR (EDID)": "HDR (EDID)"
@@ -4149,22 +4149,22 @@
"Ignore Completely": "تجاهل تمامًا"
},
"Ignore package": {
"Ignore package": ""
"Ignore package": "تجاهل البرنامج"
},
"Ignore this package": {
"Ignore this package": ""
"Ignore this package": "تجاهل هذا التطبيق"
},
"Ignored (%1)": {
"Ignored (%1)": ""
"Ignored (%1)": "تم تجاهله (%1)"
},
"Ignored Packages": {
"Ignored Packages": ""
"Ignored Packages": "التطبيقات المتجاهلة"
},
"Ignored packages are hidden from the updater and skipped by 'Update All'.": {
"Ignored packages are hidden from the updater and skipped by 'Update All'.": ""
"Ignored packages are hidden from the updater and skipped by 'Update All'.": "يتم إخفاء التطبيقات المتجاهلة من أداة التحديث ويتخطاها خيار \"تحديث الكل\"."
},
"Ignored packages only apply to the built-in updater. Your custom command controls its own exclusions.": {
"Ignored packages only apply to the built-in updater. Your custom command controls its own exclusions.": ""
"Ignored packages only apply to the built-in updater. Your custom command controls its own exclusions.": "تنطبق التطبيقات المتجاهلة فقط على أداة التحديث المدمجة. يتحكم أمرك المخصص في الاستثناءات الخاصة به."
},
"Image": {
"Image": "صورة"
@@ -4347,7 +4347,7 @@
"Invalid configuration": "تكوين غير صالح"
},
"Invalid package name — letters, digits and @._+:- only.": {
"Invalid package name — letters, digits and @._+:- only.": ""
"Invalid package name — letters, digits and @._+:- only.": "اسم التطبيق غير صالح — يُسمح فقط بالأحرف، والأرقام، والرموز التالية: @._+:-"
},
"Invalid password for %1": {
"Invalid password for %1": "كلمة مرور غير صالحة لـ %1"
@@ -5451,7 +5451,7 @@
"No output devices found": "لم يتم العثور على أجهزة إخراج"
},
"No packages ignored. Add one here or hover an update in the popout and click the hide button.": {
"No packages ignored. Add one here or hover an update in the popout and click the hide button.": ""
"No packages ignored. Add one here or hover an update in the popout and click the hide button.": "لا توجد تطبيقات متجاهلة. أضف تطبيقًا هنا، أو مرر مؤشر الفأرة فوق التحديث في النافذة المنبثقة وانقر على زر الإخفاء."
},
"No peers found": {
"No peers found": "لم يتم العثور على أقران"
@@ -5937,7 +5937,7 @@
"PIN": "PIN"
},
"Package name (e.g., docker)": {
"Package name (e.g., docker)": ""
"Package name (e.g., docker)": "اسم التطبيق (مثال: docker)"
},
"Pad": {
"Pad": "وسادة"
@@ -7812,7 +7812,7 @@
"Status": "الحالة"
},
"Stop ignoring %1": {
"Stop ignoring %1": ""
"Stop ignoring %1": "إلغاء تجاهل %1"
},
"Stopped": {
"Stopped": "متوقف"
@@ -8910,7 +8910,7 @@
"Votes": "الأصوات"
},
"W": {
"W": ""
"W": "W"
},
"WPA/WPA2": {
"WPA/WPA2": "WPA/WPA2"
@@ -9213,16 +9213,16 @@
"by %1": "بواسطة %1"
},
"checked %1d ago": {
"checked %1d ago": ""
"checked %1d ago": "تم الفحص قبل %1 من الأيام"
},
"checked %1h ago": {
"checked %1h ago": ""
"checked %1h ago": "تم الفحص قبل %1 من الساعات"
},
"checked %1m ago": {
"checked %1m ago": ""
"checked %1m ago": "تم الفحص قبل %1 من الدقائق"
},
"checked just now": {
"checked just now": ""
"checked just now": "تم الفحص الآن"
},
"days": {
"days": "أيام"
+25 -25
View File
@@ -777,7 +777,7 @@
"Authenticate": "Authentifizieren"
},
"Authenticated!": {
"Authenticated!": ""
"Authenticated!": "Authentifiziert!"
},
"Authenticating...": {
"Authenticating...": "Authentifizierung..."
@@ -804,13 +804,13 @@
"Authentication error - try again": "Authentifizierungsfehler - erneut versuchen"
},
"Authentication failed - attempt %1 of %2": {
"Authentication failed - attempt %1 of %2": ""
"Authentication failed - attempt %1 of %2": "Authentifizierung fehlgeschlagen - Versuch %1 von %2"
},
"Authentication failed - lockout can occur": {
"Authentication failed - lockout can occur": ""
"Authentication failed - lockout can occur": "Authentifizierung fehlgeschlagen - Sperrung kann erfolgen"
},
"Authentication failed - try again": {
"Authentication failed - try again": ""
"Authentication failed - try again": "Authentifizierung fehlgeschlagen - erneut versuchen"
},
"Authentication failed, please try again": {
"Authentication failed, please try again": "Authentifizierung nicht erfolgreich, bitte nochmals probieren"
@@ -987,13 +987,13 @@
"Available.": "Verfügbar."
},
"Awaiting fingerprint authentication": {
"Awaiting fingerprint authentication": ""
"Awaiting fingerprint authentication": "Warten auf Fingerabdruck-Authentifizierung"
},
"Awaiting fingerprint or security key authentication": {
"Awaiting fingerprint or security key authentication": ""
"Awaiting fingerprint or security key authentication": "Warten auf Fingerabdruck- oder Sicherheitsschlüssel-Authentifizierung"
},
"Awaiting security key authentication": {
"Awaiting security key authentication": ""
"Awaiting security key authentication": "Warten auf Sicherheitsschlüssel-Authentifizierung"
},
"BSSID": {
"BSSID": "BSSID"
@@ -2175,7 +2175,7 @@
"Custom command and terminal params are split on whitespace; paths with spaces will break.": "Benutzerdefinierte Befehle und Terminalparameter werden an Leerzeichen getrennt; Pfade mit Leerzeichen funktionieren nicht."
},
"Custom interval in minutes (minimum 5)": {
"Custom interval in minutes (minimum 5)": ""
"Custom interval in minutes (minimum 5)": "Benutzerdefiniertes Intervall in Minuten (Minimum 5)"
},
"Custom open-trash command": {
"Custom open-trash command": "Benutzerdefinierter Befehl zum Öffnen des Papierkorbs"
@@ -3435,7 +3435,7 @@
"Flags": "Flags"
},
"Flatpak": {
"Flatpak": ""
"Flatpak": "Flatpak"
},
"Flipped": {
"Flipped": "Gespiegelt"
@@ -3852,7 +3852,7 @@
"Groups": "Gruppen"
},
"H": {
"H": ""
"H": "H"
},
"HDR (EDID)": {
"HDR (EDID)": "HDR (EDID)"
@@ -4149,22 +4149,22 @@
"Ignore Completely": "Vollständig ignorieren"
},
"Ignore package": {
"Ignore package": ""
"Ignore package": "Paket ignorieren"
},
"Ignore this package": {
"Ignore this package": ""
"Ignore this package": "Dieses Paket ignorieren"
},
"Ignored (%1)": {
"Ignored (%1)": ""
"Ignored (%1)": "Ignoriert (%1)"
},
"Ignored Packages": {
"Ignored Packages": ""
"Ignored Packages": "Ignorierte Pakete"
},
"Ignored packages are hidden from the updater and skipped by 'Update All'.": {
"Ignored packages are hidden from the updater and skipped by 'Update All'.": ""
"Ignored packages are hidden from the updater and skipped by 'Update All'.": "Ignorierte Pakete werden im Updater ausgeblendet und bei \"Alle aktualisieren\" übersprungen."
},
"Ignored packages only apply to the built-in updater. Your custom command controls its own exclusions.": {
"Ignored packages only apply to the built-in updater. Your custom command controls its own exclusions.": ""
"Ignored packages only apply to the built-in updater. Your custom command controls its own exclusions.": "Ignorierte Pakete gelten nur für den integrierten Updater. Ihr benutzerdefinierter Befehl steuert seine eigenen Ausschlüsse."
},
"Image": {
"Image": "Bild"
@@ -4347,7 +4347,7 @@
"Invalid configuration": "Invalide Konfiguration"
},
"Invalid package name — letters, digits and @._+:- only.": {
"Invalid package name — letters, digits and @._+:- only.": ""
"Invalid package name — letters, digits and @._+:- only.": "Ungültiger Paketname — nur Buchstaben, Ziffern und @._+:- zulässig."
},
"Invalid password for %1": {
"Invalid password for %1": "Ungültiges Passwort für %1"
@@ -5451,7 +5451,7 @@
"No output devices found": "Keine Ausgabegeräte gefunden"
},
"No packages ignored. Add one here or hover an update in the popout and click the hide button.": {
"No packages ignored. Add one here or hover an update in the popout and click the hide button.": ""
"No packages ignored. Add one here or hover an update in the popout and click the hide button.": "Keine Pakete ignoriert. Fügen Sie hier eines hinzu oder bewegen Sie den Mauszeiger über ein Update im Popout und klicken Sie auf die Schaltfläche Ausblenden."
},
"No peers found": {
"No peers found": "Keine Peers gefunden"
@@ -5937,7 +5937,7 @@
"PIN": "PIN"
},
"Package name (e.g., docker)": {
"Package name (e.g., docker)": ""
"Package name (e.g., docker)": "Paketname (z. B. docker)"
},
"Pad": {
"Pad": "Auffüllen"
@@ -7812,7 +7812,7 @@
"Status": "Status"
},
"Stop ignoring %1": {
"Stop ignoring %1": ""
"Stop ignoring %1": "Ignorieren von %1 beenden"
},
"Stopped": {
"Stopped": "Gestoppt"
@@ -8910,7 +8910,7 @@
"Votes": "Stimmen"
},
"W": {
"W": ""
"W": "W"
},
"WPA/WPA2": {
"WPA/WPA2": "WPA/WPA2"
@@ -9213,16 +9213,16 @@
"by %1": "von %1"
},
"checked %1d ago": {
"checked %1d ago": ""
"checked %1d ago": "vor %1 T geprüft"
},
"checked %1h ago": {
"checked %1h ago": ""
"checked %1h ago": "vor %1 Std. geprüft"
},
"checked %1m ago": {
"checked %1m ago": ""
"checked %1m ago": "vor %1 Min. geprüft"
},
"checked just now": {
"checked just now": ""
"checked just now": "gerade eben geprüft"
},
"days": {
"days": "Tage"
@@ -4645,14 +4645,12 @@
"login",
"pam",
"password",
"pinned",
"screen",
"security",
"service",
"source"
],
"icon": "key",
"description": "Pinned to "
"icon": "key"
},
{
"section": "lockPamPath",
@@ -4665,13 +4663,11 @@
"login",
"pam",
"password",
"pinned",
"screen",
"security",
"service",
"source"
],
"description": "Pinned to "
]
},
{
"section": "lockScreenVideoCycling",
@@ -7994,56 +7990,19 @@
"auth",
"authentication",
"block",
"configure",
"display manager",
"existing",
"external",
"fingerprint",
"greetd",
"greeter",
"login",
"managed",
"never",
"next",
"pam",
"removed",
"security",
"sync",
"touches",
"yourself"
"removes",
"stops",
"writing"
],
"icon": "fingerprint",
"description": "DMS never touches /etc/pam.d/greetd; any existing DMS block is removed on next sync. Configure fingerprint and security-key auth yourself."
},
{
"section": "greeterPamExternallyManaged",
"label": "Manage greetd PAM automatically",
"tabIndex": 31,
"category": "Greeter",
"keywords": [
"auth",
"automatically",
"block",
"configure",
"display manager",
"existing",
"external",
"fingerprint",
"greetd",
"greeter",
"login",
"manage",
"managed",
"never",
"next",
"pam",
"removed",
"security",
"sync",
"touches",
"yourself"
],
"description": "DMS never touches /etc/pam.d/greetd; any existing DMS block is removed on next sync. Configure fingerprint and security-key auth yourself."
"description": "DMS removes its managed block from /etc/pam.d/greetd and stops writing to it"
},
{
"section": "greeterRememberLastSession",
@@ -8081,6 +8040,28 @@
],
"description": "Pre-fill the last successful username on the greeter"
},
{
"section": "greeterPamExternallyManaged",
"label": "greetd PAM is externally managed",
"tabIndex": 31,
"category": "Greeter",
"keywords": [
"auth",
"block",
"display manager",
"external",
"externally",
"greetd",
"greeter",
"login",
"managed",
"pam",
"removes",
"stops",
"writing"
],
"description": "DMS removes its managed block from /etc/pam.d/greetd and stops writing to it"
},
{
"section": "muxType",
"label": "Multiplexer",
+17 -129
View File
@@ -1528,7 +1528,7 @@
{
"term": "Apply Changes",
"translation": "",
"context": "",
"context": "validate and apply custom PAM authentication source",
"reference": "",
"comment": ""
},
@@ -1836,14 +1836,7 @@
{
"term": "Authentication changes apply automatically.",
"translation": "",
"context": "",
"reference": "",
"comment": ""
},
{
"term": "Authentication changes apply automatically. Fingerprint-only login may not unlock Keyring.",
"translation": "",
"context": "",
"context": "greeter auth setting description",
"reference": "",
"comment": ""
},
@@ -1913,7 +1906,7 @@
{
"term": "Auto",
"translation": "",
"context": "calendar backend option | theme category option",
"context": "automatic PAM authentication source option | calendar backend option | theme category option",
"reference": "",
"comment": ""
},
@@ -2281,13 +2274,6 @@
"reference": "",
"comment": ""
},
{
"term": "Available.",
"translation": "",
"context": "",
"reference": "",
"comment": ""
},
{
"term": "Awaiting fingerprint authentication",
"translation": "",
@@ -4993,7 +4979,7 @@
{
"term": "Custom...",
"translation": "",
"context": "date format option",
"context": "custom PAM authentication source option | date format option",
"reference": "",
"comment": ""
},
@@ -6551,76 +6537,6 @@
"reference": "",
"comment": ""
},
{
"term": "Enabled, but fingerprint availability could not be confirmed.",
"translation": "",
"context": "",
"reference": "",
"comment": ""
},
{
"term": "Enabled, but no fingerprint reader was detected.",
"translation": "",
"context": "",
"reference": "",
"comment": ""
},
{
"term": "Enabled, but no prints are enrolled yet. Authentication changes apply automatically once you enroll fingerprints.",
"translation": "",
"context": "",
"reference": "",
"comment": ""
},
{
"term": "Enabled, but no prints are enrolled yet. Enroll fingerprints and run Sync.",
"translation": "",
"context": "",
"reference": "",
"comment": ""
},
{
"term": "Enabled, but no registered security key was found yet. Authentication changes apply automatically once your key is registered or your U2F config is updated.",
"translation": "",
"context": "",
"reference": "",
"comment": ""
},
{
"term": "Enabled, but no registered security key was found yet. Register a key and run Sync.",
"translation": "",
"context": "",
"reference": "",
"comment": ""
},
{
"term": "Enabled, but security-key availability could not be confirmed.",
"translation": "",
"context": "",
"reference": "",
"comment": ""
},
{
"term": "Enabled. PAM already provides fingerprint auth.",
"translation": "",
"context": "",
"reference": "",
"comment": ""
},
{
"term": "Enabled. PAM already provides security-key auth.",
"translation": "",
"context": "",
"reference": "",
"comment": ""
},
{
"term": "Enabled. PAM provides fingerprint auth, but no prints are enrolled yet.",
"translation": "",
"context": "",
"reference": "",
"comment": ""
},
{
"term": "Enabling WiFi...",
"translation": "",
@@ -7800,7 +7716,7 @@
{
"term": "Fingerprint availability could not be confirmed.",
"translation": "",
"context": "",
"context": "fingerprint setting status",
"reference": "",
"comment": ""
},
@@ -7821,14 +7737,14 @@
{
"term": "Fingerprint reader detected, but no prints are enrolled yet. You can enable this now and enroll later.",
"translation": "",
"context": "",
"context": "lock screen fingerprint setting",
"reference": "",
"comment": ""
},
{
"term": "Fingerprint reader detected, but no prints are enrolled yet. You can enable this now and run Sync later.",
"translation": "",
"context": "",
"context": "greeter fingerprint login setting",
"reference": "",
"comment": ""
},
@@ -12392,7 +12308,7 @@
{
"term": "No fingerprint reader detected.",
"translation": "",
"context": "",
"context": "fingerprint setting status",
"reference": "",
"comment": ""
},
@@ -12833,28 +12749,28 @@
{
"term": "Not available — install fprintd and pam_fprintd, or configure greetd PAM.",
"translation": "",
"context": "",
"context": "greeter fingerprint login setting",
"reference": "",
"comment": ""
},
{
"term": "Not available — install fprintd and pam_fprintd.",
"translation": "",
"context": "",
"context": "lock screen fingerprint setting",
"reference": "",
"comment": ""
},
{
"term": "Not available — install or configure pam_u2f, or configure greetd PAM.",
"translation": "",
"context": "",
"context": "greeter security key login setting",
"reference": "",
"comment": ""
},
{
"term": "Not available — install or configure pam_u2f.",
"translation": "",
"context": "",
"context": "lock screen security key setting",
"reference": "",
"comment": ""
},
@@ -13166,13 +13082,6 @@
"reference": "",
"comment": ""
},
{
"term": "Only affects DMS-managed PAM. If greetd already includes pam_fprintd, fingerprint stays enabled.",
"translation": "",
"context": "",
"reference": "",
"comment": ""
},
{
"term": "Only on Battery",
"translation": "",
@@ -13603,35 +13512,14 @@
{
"term": "PAM already provides fingerprint auth. Enable this to show it at login.",
"translation": "",
"context": "",
"context": "greeter fingerprint login setting",
"reference": "",
"comment": ""
},
{
"term": "PAM already provides security-key auth. Enable this to show it at login.",
"translation": "",
"context": "",
"reference": "",
"comment": ""
},
{
"term": "PAM provides fingerprint auth, but availability could not be confirmed.",
"translation": "",
"context": "",
"reference": "",
"comment": ""
},
{
"term": "PAM provides fingerprint auth, but no prints are enrolled yet.",
"translation": "",
"context": "",
"reference": "",
"comment": ""
},
{
"term": "PAM provides fingerprint auth, but no reader was detected.",
"translation": "",
"context": "",
"context": "greeter security key login setting",
"reference": "",
"comment": ""
},
@@ -16228,14 +16116,14 @@
{
"term": "Security-key availability could not be confirmed.",
"translation": "",
"context": "",
"context": "security key setting status",
"reference": "",
"comment": ""
},
{
"term": "Security-key support was detected, but no registered key was found yet. You can enable this now and register one later.",
"translation": "",
"context": "",
"context": "security key setting status",
"reference": "",
"comment": ""
},
@@ -19987,7 +19875,7 @@
{
"term": "Use fingerprint authentication for the lock screen.",
"translation": "",
"context": "",
"context": "lock screen fingerprint setting",
"reference": "",
"comment": ""
},