diff --git a/quickshell/Modals/Greeter/GreeterDoctorPage.qml b/quickshell/Modals/Greeter/GreeterDoctorPage.qml index ef503e04..288cd581 100644 --- a/quickshell/Modals/Greeter/GreeterDoctorPage.qml +++ b/quickshell/Modals/Greeter/GreeterDoctorPage.qml @@ -225,7 +225,13 @@ Item { } StyledText { - text: root.errorCount > 0 ? I18n.tr("%1 issue(s) found", "greeter doctor page error count").arg(root.errorCount) : I18n.tr("All checks passed", "greeter doctor page success") + text: { + if (root.errorCount === 0) + return I18n.tr("All checks passed", "greeter doctor page success"); + return root.errorCount === 1 + ? I18n.tr("%1 issue found", "greeter doctor page error count").arg(root.errorCount) + : I18n.tr("%1 issues found", "greeter doctor page error count").arg(root.errorCount); + } font.pixelSize: Theme.fontSizeMedium color: root.errorCount > 0 ? Theme.error : Theme.surfaceVariantText } diff --git a/quickshell/Modules/Notifications/Center/NotificationSettings.qml b/quickshell/Modules/Notifications/Center/NotificationSettings.qml index cffa29c1..2281f560 100644 --- a/quickshell/Modules/Notifications/Center/NotificationSettings.qml +++ b/quickshell/Modules/Notifications/Center/NotificationSettings.qml @@ -34,51 +34,51 @@ Rectangle { readonly property var timeoutOptions: [ { - "text": "Never", + "text": I18n.tr("Never"), "value": 0 }, { - "text": "1 second", + "text": I18n.tr("1 second"), "value": 1000 }, { - "text": "3 seconds", + "text": I18n.tr("3 seconds"), "value": 3000 }, { - "text": "5 seconds", + "text": I18n.tr("5 seconds"), "value": 5000 }, { - "text": "8 seconds", + "text": I18n.tr("8 seconds"), "value": 8000 }, { - "text": "10 seconds", + "text": I18n.tr("10 seconds"), "value": 10000 }, { - "text": "15 seconds", + "text": I18n.tr("15 seconds"), "value": 15000 }, { - "text": "30 seconds", + "text": I18n.tr("30 seconds"), "value": 30000 }, { - "text": "1 minute", + "text": I18n.tr("1 minute"), "value": 60000 }, { - "text": "2 minutes", + "text": I18n.tr("2 minutes"), "value": 120000 }, { - "text": "5 minutes", + "text": I18n.tr("5 minutes"), "value": 300000 }, { - "text": "10 minutes", + "text": I18n.tr("10 minutes"), "value": 600000 } ] diff --git a/quickshell/Modules/Settings/DankBarTab.qml b/quickshell/Modules/Settings/DankBarTab.qml index 36f9552d..dffe94a4 100644 --- a/quickshell/Modules/Settings/DankBarTab.qml +++ b/quickshell/Modules/Settings/DankBarTab.qml @@ -305,7 +305,9 @@ Item { const prefs = cfg?.screenPreferences || ["all"]; if (prefs.includes("all") || (typeof prefs[0] === "string" && prefs[0] === "all")) return I18n.tr("All displays"); - return I18n.tr("%1 display(s)").replace("%1", prefs.length); + return prefs.length === 1 + ? I18n.tr("%1 display").arg(prefs.length) + : I18n.tr("%1 displays").arg(prefs.length); } font.pixelSize: Theme.fontSizeSmall color: Theme.surfaceVariantText diff --git a/quickshell/Modules/Settings/KeybindsTab.qml b/quickshell/Modules/Settings/KeybindsTab.qml index f04c59b1..77380fc0 100644 --- a/quickshell/Modules/Settings/KeybindsTab.qml +++ b/quickshell/Modules/Settings/KeybindsTab.qml @@ -344,7 +344,11 @@ Item { return I18n.tr("%1 exists but is not included in config. Custom keybinds will not work until this is fixed.").arg(bindsFile); if (warningBox.showWarning) { const count = warningBox.status.overriddenBy; - return I18n.tr("%1 DMS bind(s) may be overridden by config binds that come after the include.").arg(count); + return I18n.ntr( + "%1 DMS bind may be overridden by config binds that come after the include.", + "%1 DMS binds may be overridden by config binds that come after the include.", + count + ).arg(count); } return ""; } diff --git a/quickshell/Modules/Settings/LauncherTab.qml b/quickshell/Modules/Settings/LauncherTab.qml index e6bd6546..13eabe79 100644 --- a/quickshell/Modules/Settings/LauncherTab.qml +++ b/quickshell/Modules/Settings/LauncherTab.qml @@ -1170,7 +1170,7 @@ Item { spacing: 2 StyledText { - text: modelData.name || "Unknown App" + text: modelData.name || I18n.tr("Unknown App") font.pixelSize: Theme.fontSizeMedium font.weight: Font.Medium color: Theme.surfaceText @@ -1179,7 +1179,7 @@ Item { StyledText { text: { if (!modelData.lastUsed) - return "Never used"; + return I18n.tr("Never used"); var date = new Date(modelData.lastUsed); var now = new Date(); var diffMs = now - date; @@ -1189,11 +1189,17 @@ Item { if (diffMins < 1) return I18n.tr("Last launched just now"); if (diffMins < 60) - return I18n.tr("Last launched %1 minute%2 ago").arg(diffMins).arg(diffMins === 1 ? "" : "s"); + return diffMins === 1 + ? I18n.tr("Last launched %1 minute ago").arg(diffMins) + : I18n.tr("Last launched %1 minutes ago").arg(diffMins); if (diffHours < 24) - return I18n.tr("Last launched %1 hour%2 ago").arg(diffHours).arg(diffHours === 1 ? "" : "s"); + return diffHours === 1 + ? I18n.tr("Last launched %1 hour ago").arg(diffHours) + : I18n.tr("Last launched %1 hours ago").arg(diffHours); if (diffDays < 7) - return I18n.tr("Last launched %1 day%2 ago").arg(diffDays).arg(diffDays === 1 ? "" : "s"); + return diffDays === 1 + ? I18n.tr("Last launched %1 day ago").arg(diffDays) + : I18n.tr("Last launched %1 days ago").arg(diffDays); return I18n.tr("Last launched %1").arg(date.toLocaleDateString()); } font.pixelSize: Theme.fontSizeSmall diff --git a/quickshell/Modules/Settings/NetworkTab.qml b/quickshell/Modules/Settings/NetworkTab.qml index 1662328f..87ed9705 100644 --- a/quickshell/Modules/Settings/NetworkTab.qml +++ b/quickshell/Modules/Settings/NetworkTab.qml @@ -340,7 +340,9 @@ Item { if (devices.length === 0) return I18n.tr("No adapters"); if (connected === 0) - return I18n.tr("%1 adapter(s), none connected").arg(devices.length); + return devices.length === 1 + ? I18n.tr("%1 adapter, none connected").arg(devices.length) + : I18n.tr("%1 adapters, none connected").arg(devices.length); return I18n.tr("%1 connected").arg(connected); } font.pixelSize: Theme.fontSizeSmall diff --git a/quickshell/Modules/Settings/PrinterTab.qml b/quickshell/Modules/Settings/PrinterTab.qml index 8b48ff00..bd9ebc39 100644 --- a/quickshell/Modules/Settings/PrinterTab.qml +++ b/quickshell/Modules/Settings/PrinterTab.qml @@ -548,7 +548,7 @@ Item { const count = CupsService.printerNames.length; if (count === 0) return I18n.tr("No printers configured"); - return I18n.tr("%1 printer(s)").arg(count); + return I18n.ntr("%1 printer", "%1 printers", count).arg(count); } font.pixelSize: Theme.fontSizeSmall color: Theme.surfaceVariantText @@ -698,7 +698,7 @@ Item { } StyledText { - text: I18n.tr("%1 job(s)").arg(printerData?.jobs?.length ?? 0) + text: I18n.ntr("%1 job", "%1 jobs", printerData?.jobs?.length ?? 0).arg(printerData?.jobs?.length ?? 0) font.pixelSize: Theme.fontSizeSmall color: Theme.surfaceVariantText visible: (printerData?.jobs?.length ?? 0) > 0 @@ -1245,7 +1245,7 @@ Item { } StyledText { - text: I18n.tr("%1 class(es)").arg(CupsService.printerClasses.length) + text: I18n.ntr("%1 class", "%1 classes", CupsService.printerClasses.length).arg(CupsService.printerClasses.length) font.pixelSize: Theme.fontSizeSmall color: Theme.surfaceVariantText width: parent.width @@ -1310,7 +1310,7 @@ Item { } StyledText { - text: I18n.tr("%1 printer(s)").arg(modelData.members?.length ?? 0) + text: I18n.ntr("%1 printer", "%1 printers", modelData.members?.length ?? 0).arg(modelData.members?.length ?? 0) font.pixelSize: Theme.fontSizeSmall color: Theme.surfaceVariantText } diff --git a/quickshell/Modules/Settings/ThemeColorsTab.qml b/quickshell/Modules/Settings/ThemeColorsTab.qml index 28b12d55..45a7e641 100644 --- a/quickshell/Modules/Settings/ThemeColorsTab.qml +++ b/quickshell/Modules/Settings/ThemeColorsTab.qml @@ -1908,6 +1908,7 @@ Item { tags: ["modal", "darken", "background", "overlay"] title: I18n.tr("Modal Background") settingKey: "modalBackground" + iconName: "layers" SettingsToggleRow { tab: "theme" @@ -1925,7 +1926,7 @@ Item { tags: ["applications", "portal", "dark", "terminal"] title: I18n.tr("Applications") settingKey: "applications" - iconName: "terminal" + iconName: "apps" SettingsToggleRow { tab: "theme" @@ -2452,6 +2453,7 @@ Item { tags: ["icon", "theme", "system"] title: I18n.tr("Icon Theme") settingKey: "iconTheme" + iconName: "interests" SettingsDropdownRow { tab: "theme" @@ -2478,7 +2480,7 @@ Item { tags: ["system", "app", "theming", "gtk", "qt"] title: I18n.tr("System App Theming") settingKey: "systemAppTheming" - iconName: "extension" + iconName: "brush" visible: Theme.matugenAvailable Row { diff --git a/quickshell/translations/poexports/it.json b/quickshell/translations/poexports/it.json index db9bf441..f85217b3 100644 --- a/quickshell/translations/poexports/it.json +++ b/quickshell/translations/poexports/it.json @@ -2,17 +2,26 @@ "%1 Animation Speed": { "%1 Animation Speed": "Velocità Animazione %1" }, - "%1 DMS bind(s) may be overridden by config binds that come after the include.": { - "%1 DMS bind(s) may be overridden by config binds that come after the include.": "%1 associazione/i tasti di DMS potrebbe/ero essere sovrascritta/e da scorciatoie di config successive all'inclusione." + "%1 DMS bind may be overridden by config binds that come after the include.": { + "%1 DMS bind may be overridden by config binds that come after the include.": "%1 associazione tasti di DMS potrebbe essere sovrascritta da scorciatoie di config successive all'inclusione." }, - "%1 adapter(s), none connected": { - "%1 adapter(s), none connected": "%1 adattatore/i, nessuno connesso" + "%1 DMS binds may be overridden by config binds that come after the include.": { + "%1 DMS binds may be overridden by config binds that come after the include.": "%1 associazioni tasti di DMS potrebbero essere sovrascritte da scorciatoie di config successive all'inclusione." + }, + "%1 adapter, none connected": { + "%1 adapter, none connected": "%1 adattatore, nessuno connesso" + }, + "%1 adapters, none connected": { + "%1 adapters, none connected": "%1 adattatori, nessuno connesso" }, "%1 characters": { "%1 characters": "%1 caratteri" }, - "%1 class(es)": { - "%1 class(es)": "%1 classe/i" + "%1 class": { + "%1 class": "%1 classe" + }, + "%1 classes": { + "%1 classes": "%1 classi" }, "%1 connected": { "%1 connected": "%1 connesso" @@ -29,8 +38,11 @@ "%1 disconnected (hidden)": { "%1 disconnected (hidden)": "%1 disconnesso (nascosto)" }, - "%1 display(s)": { - "%1 display(s)": "%1 schermo/i" + "%1 display": { + "%1 display": "%1 schermo" + }, + "%1 displays": { + "%1 displays": "%1 schermi" }, "%1 exists but is not included in config. Custom keybinds will not work until this is fixed.": { "%1 exists but is not included in config. Custom keybinds will not work until this is fixed.": "%1 esiste ma non è incluso nella configurazione. Le scorciatoie personalizzate non funzioneranno finché non sarà risolto." @@ -41,14 +53,20 @@ "%1 is now included in config": { "%1 is now included in config": "%1 è ora incluso nella configurazione" }, - "%1 job(s)": { - "%1 job(s)": "%1 stampa/e" + "%1 job": { + "%1 job": "%1 stampa" + }, + "%1 jobs": { + "%1 jobs": "%1 stampe" }, "%1 notifications": { "%1 notifications": "%1 notifiche" }, - "%1 printer(s)": { - "%1 printer(s)": "%1 stampante/i" + "%1 printer": { + "%1 printer": "%1 stampante" + }, + "%1 printers": { + "%1 printers": "%1 stampanti" }, "%1 variants": { "%1 variants": "%1 varianti" @@ -2779,14 +2797,23 @@ "Last launched %1": { "Last launched %1": "Ultimo avvio %1" }, - "Last launched %1 day%2 ago": { - "Last launched %1 day%2 ago": "Ultimo avvio %1 giorno/i fa" + "Last launched %1 day ago": { + "Last launched %1 day ago": "Ultimo avvio %1 giorno fa" }, - "Last launched %1 hour%2 ago": { - "Last launched %1 hour%2 ago": "Ultimo avvio %1 ora/e fa" + "Last launched %1 days ago": { + "Last launched %1 days ago": "Ultimo avvio %1 giorni fa" }, - "Last launched %1 minute%2 ago": { - "Last launched %1 minute%2 ago": "Ultimo avvio %1 minuto/i fa" + "Last launched %1 hour ago": { + "Last launched %1 hour ago": "Ultimo avvio %1 ora fa" + }, + "Last launched %1 hours ago": { + "Last launched %1 hours ago": "Ultimo avvio %1 ore fa" + }, + "Last launched %1 minute ago": { + "Last launched %1 minute ago": "Ultimo avvio %1 minuto fa" + }, + "Last launched %1 minutes ago": { + "Last launched %1 minutes ago": "Ultimo avvio %1 minuti fa" }, "Last launched just now": { "Last launched just now": "Appena avviato" diff --git a/quickshell/translations/template.json b/quickshell/translations/template.json index 2d3c247e..67435599 100644 --- a/quickshell/translations/template.json +++ b/quickshell/translations/template.json @@ -14656,5 +14656,47 @@ "context": "Keyboard hints when enter-to-paste is enabled", "reference": "", "comment": "" + }, + { + "term": "What's New", + "translation": "", + "context": "", + "reference": "", + "comment": "" + }, + { + "term": "Read Full Release Notes", + "translation": "", + "context": "", + "reference": "", + "comment": "" + }, + { + "term": "Read Full Release Notes", + "translation": "", + "context": "", + "reference": "", + "comment": "" + }, + { + "term": "Got It", + "translation": "", + "context": "", + "reference": "", + "comment": "" + }, + { + "term": "Caps Lock is on", + "translation": "", + "context": "", + "reference": "", + "comment": "" + }, + { + "term": "↑/↓: Nav • Space: Expand • Enter: Action/Expand • E: Text", + "translation": "", + "context": "", + "reference": "", + "comment": "" } ]