diff --git a/Assets/Translations/de.json b/Assets/Translations/de.json index 6820c1ad..e18868ec 100644 --- a/Assets/Translations/de.json +++ b/Assets/Translations/de.json @@ -433,38 +433,31 @@ "label": "UI", "description": "Desktop-Umgebung und UI-Toolkit-Theming.", "gtk4": { - "label": "GTK 4 (libadwaita)", - "description": "Schreibt ~/.config/gtk-4.0/gtk.css" + "description": "Schreibt {filepath}" }, "gtk3": { - "label": "GTK 3", - "description": "Schreibt ~/.config/gtk-3.0/gtk.css" + "description": "Schreibt {filepath}" }, "qt6": { - "label": "Qt6ct", - "description": "Schreibt ~/.config/qt6ct/colors/noctalia.conf" + "description": "Schreibt {filepath}" }, "qt5": { - "label": "Qt5ct", - "description": "Schreibt ~/.config/qt5ct/colors/noctalia.conf" + "description": "Schreibt {filepath}" } }, "terminal": { "label": "Terminal", "description": "Terminal-Emulator-Theming.", "kitty": { - "label": "Kitty", - "description": "Schreibt ~/.config/kitty/themes/noctalia.conf und lädt neu", + "description": "Schreibt {filepath} und lädt neu", "description-missing": "Erfordert kitty Terminal" }, "ghostty": { - "label": "Ghostty", - "description": "Schreibt ~/.config/ghostty/themes/noctalia und lädt neu", + "description": "Schreibt {filepath} und lädt neu", "description-missing": "Erfordert ghostty Terminal" }, "foot": { - "label": "Foot", - "description": "Schreibt ~/.config/foot/themes/noctalia und lädt neu", + "description": "Schreibt {filepath} und lädt neu", "description-missing": "Erfordert foot Terminal" } }, @@ -472,18 +465,15 @@ "label": "Programme", "description": "Anwendungsspezifisches Theming.", "fuzzel": { - "label": "Fuzzel", - "description": "Schreibt ~/.config/fuzzel/themes/noctalia und lädt neu", + "description": "Schreibt {filepath} und lädt neu", "description-missing": "Erfordert fuzzel Starter" }, "vesktop": { - "label": "Vesktop", - "description": "Schreibt ~/.config/vesktop/themes/noctalia.theme.css", + "description": "Schreibt {filepath}", "description-missing": "Erfordert vesktop Discord-Client" }, "pywalfox": { - "label": "Pywalfox (Firefox)", - "description": "Schreibt ~/.cache/wal/colors.json und führt pywalfox update aus", + "description": "Schreibt {filepath} und führt pywalfox update aus", "description-missing": "Erfordert pywalfox Paket" } }, @@ -1016,8 +1006,7 @@ "enter-width-pixels": "Breite in Pixeln eingeben", "enter-command": "Befehl eingeben (App oder benutzerdefiniertes Skript)", "command-example": "echo \"Hallo Welt\"", - "clock-horizontal": "HH:mm ddd, MMM dd", - "clock-vertical": "HH mm dd MM", + "search-wallpapers": "Zum Filtern von Hintergrundbildern eingeben...", "search-launcher": "Einträge suchen... oder > für Befehle verwenden", "search": "Suchen...", @@ -1067,15 +1056,7 @@ "mirrored": "Gespiegelt", "wave": "Welle" }, - "frame-rates": { - "30-fps": "30 FPS", - "60-fps": "60 FPS", - "100-fps": "100 FPS", - "120-fps": "120 FPS", - "144-fps": "144 FPS", - "165-fps": "165 FPS", - "240-fps": "240 FPS" - }, + "screen-recording": { "sources": { "portal": "Portal", @@ -1087,13 +1068,6 @@ "very-high": "Sehr hoch", "ultra": "Ultra" }, - "codecs": { - "h264": "H264", - "hevc": "HEVC", - "av1": "AV1", - "vp8": "VP8", - "vp9": "VP9" - }, "color-range": { "limited": "Begrenzt", "full": "Vollständig" diff --git a/Assets/Translations/en.json b/Assets/Translations/en.json index 2430106f..90497cc4 100644 --- a/Assets/Translations/en.json +++ b/Assets/Translations/en.json @@ -433,38 +433,31 @@ "label": "UI", "description": "Desktop environment and UI toolkit theming.", "gtk4": { - "label": "GTK 4 (libadwaita)", - "description": "Write ~/.config/gtk-4.0/gtk.css" + "description": "Write {filepath}" }, "gtk3": { - "label": "GTK 3", - "description": "Write ~/.config/gtk-3.0/gtk.css" + "description": "Write {filepath}" }, "qt6": { - "label": "Qt6ct", - "description": "Write ~/.config/qt6ct/colors/noctalia.conf" + "description": "Write {filepath}" }, "qt5": { - "label": "Qt5ct", - "description": "Write ~/.config/qt5ct/colors/noctalia.conf" + "description": "Write {filepath}" } }, "terminal": { "label": "Terminal", "description": "Terminal emulator theming.", "kitty": { - "label": "Kitty", - "description": "Write ~/.config/kitty/themes/noctalia.conf and reload", + "description": "Write {filepath} and reload", "description-missing": "Requires kitty terminal to be installed" }, "ghostty": { - "label": "Ghostty", - "description": "Write ~/.config/ghostty/themes/noctalia and reload", + "description": "Write {filepath} and reload", "description-missing": "Requires ghostty terminal to be installed" }, "foot": { - "label": "Foot", - "description": "Write ~/.config/foot/themes/noctalia and reload", + "description": "Write {filepath} and reload", "description-missing": "Requires foot terminal to be installed" } }, @@ -472,18 +465,15 @@ "label": "Programs", "description": "Application-specific theming.", "fuzzel": { - "label": "Fuzzel", - "description": "Write ~/.config/fuzzel/themes/noctalia and reload", + "description": "Write {filepath} and reload", "description-missing": "Requires fuzzel launcher to be installed" }, "vesktop": { - "label": "Vesktop", - "description": "Write ~/.config/vesktop/themes/noctalia.theme.css", + "description": "Write {filepath}", "description-missing": "Requires vesktop Discord client to be installed" }, "pywalfox": { - "label": "Pywalfox (Firefox)", - "description": "Write ~/.cache/wal/colors.json and run pywalfox update", + "description": "Write {filepath} and run pywalfox update", "description-missing": "Requires pywalfox package to be installed" } }, @@ -1016,8 +1006,7 @@ "enter-width-pixels": "Enter width in pixels", "enter-command": "Enter command to execute (app or custom script)", "command-example": "echo \"Hello World\"", - "clock-horizontal": "HH:mm ddd, MMM dd", - "clock-vertical": "HH mm dd MM", + "search-wallpapers": "Type to filter wallpapers...", "search-launcher": "Search entries... or use > for commands", "search": "Search...", @@ -1067,15 +1056,7 @@ "mirrored": "Mirrored", "wave": "Wave" }, - "frame-rates": { - "30-fps": "30 FPS", - "60-fps": "60 FPS", - "100-fps": "100 FPS", - "120-fps": "120 FPS", - "144-fps": "144 FPS", - "165-fps": "165 FPS", - "240-fps": "240 FPS" - }, + "screen-recording": { "sources": { "portal": "Portal", @@ -1087,13 +1068,6 @@ "very-high": "Very high", "ultra": "Ultra" }, - "codecs": { - "h264": "H264", - "hevc": "HEVC", - "av1": "AV1", - "vp8": "VP8", - "vp9": "VP9" - }, "color-range": { "limited": "Limited", "full": "Full" diff --git a/Commons/I18n.qml b/Commons/I18n.qml index d9fe7fee..5bfc1380 100644 --- a/Commons/I18n.qml +++ b/Commons/I18n.qml @@ -9,7 +9,7 @@ Singleton { id: root property bool debug: true - property string debugForceLanguage: "" + property string debugForceLanguage: "de" property bool isLoaded: false property string langCode: "" diff --git a/Modules/Settings/Bar/WidgetSettings/ClockSettings.qml b/Modules/Settings/Bar/WidgetSettings/ClockSettings.qml index 099c5ff1..6214590a 100644 --- a/Modules/Settings/Bar/WidgetSettings/ClockSettings.qml +++ b/Modules/Settings/Bar/WidgetSettings/ClockSettings.qml @@ -106,7 +106,7 @@ ColumnLayout { Layout.fillWidth: true label: I18n.tr("bar.widget-settings.clock.horizontal-bar.label") description: I18n.tr("bar.widget-settings.clock.horizontal-bar.description") - placeholderText: I18n.tr("placeholders.clock-horizontal") + placeholderText: "HH:mm ddd, MMM dd" text: valueFormatHorizontal onTextChanged: valueFormatHorizontal = text Component.onCompleted: { @@ -129,7 +129,8 @@ ColumnLayout { Layout.fillWidth: true label: I18n.tr("bar.widget-settings.clock.vertical-bar.label") description: I18n.tr("bar.widget-settings.clock.vertical-bar.description") - placeholderText: I18n.tr("placeholders.clock-vertical") + // Tokens are Qt format tokens and must not be localized + placeholderText: "HH mm dd MM" text: valueFormatVertical onTextChanged: valueFormatVertical = text Component.onCompleted: { diff --git a/Modules/Settings/Tabs/ColorSchemeTab.qml b/Modules/Settings/Tabs/ColorSchemeTab.qml index 303b7098..80be38fb 100644 --- a/Modules/Settings/Tabs/ColorSchemeTab.qml +++ b/Modules/Settings/Tabs/ColorSchemeTab.qml @@ -337,8 +337,10 @@ ColumnLayout { defaultExpanded: false NCheckbox { - label: I18n.tr("settings.color-scheme.matugen.ui.gtk4.label") - description: I18n.tr("settings.color-scheme.matugen.ui.gtk4.description") + label: "GTK 4 (libadwaita)" + description: I18n.tr("settings.color-scheme.matugen.ui.gtk4.description", { + "filepath": "~/.config/gtk-4.0/gtk.css" + }) checked: Settings.data.matugen.gtk4 onToggled: checked => { Settings.data.matugen.gtk4 = checked @@ -348,8 +350,10 @@ ColumnLayout { } NCheckbox { - label: I18n.tr("settings.color-scheme.matugen.ui.gtk3.label") - description: I18n.tr("settings.color-scheme.matugen.ui.gtk3.description") + label: "GTK 3" + description: I18n.tr("settings.color-scheme.matugen.ui.gtk3.description", { + "filepath": "~/.config/gtk-3.0/gtk.css" + }) checked: Settings.data.matugen.gtk3 onToggled: checked => { Settings.data.matugen.gtk3 = checked @@ -359,8 +363,10 @@ ColumnLayout { } NCheckbox { - label: I18n.tr("settings.color-scheme.matugen.ui.qt6.label") - description: I18n.tr("settings.color-scheme.matugen.ui.qt6.description") + label: "Qt6ct" + description: I18n.tr("settings.color-scheme.matugen.ui.qt6.description", { + "filepath": "~/.config/qt6ct/colors/noctalia.conf" + }) checked: Settings.data.matugen.qt6 onToggled: checked => { Settings.data.matugen.qt6 = checked @@ -370,8 +376,10 @@ ColumnLayout { } NCheckbox { - label: I18n.tr("settings.color-scheme.matugen.ui.qt5.label") - description: I18n.tr("settings.color-scheme.matugen.ui.qt5.description") + label: "Qt5ct" + description: I18n.tr("settings.color-scheme.matugen.ui.qt5.description", { + "filepath": "~/.config/qt5ct/colors/noctalia.conf" + }) checked: Settings.data.matugen.qt5 onToggled: checked => { Settings.data.matugen.qt5 = checked @@ -389,8 +397,10 @@ ColumnLayout { defaultExpanded: false NCheckbox { - label: I18n.tr("settings.color-scheme.matugen.terminal.kitty.label") - description: ProgramCheckerService.kittyAvailable ? I18n.tr("settings.color-scheme.matugen.terminal.kitty.description") : I18n.tr("settings.color-scheme.matugen.terminal.kitty.description-missing") + label: "Kitty" + description: ProgramCheckerService.kittyAvailable ? I18n.tr("settings.color-scheme.matugen.terminal.kitty.description", { + "filepath": "~/.config/kitty/themes/noctalia.conf" + }) : I18n.tr("settings.color-scheme.matugen.terminal.kitty.description-missing") checked: Settings.data.matugen.kitty enabled: ProgramCheckerService.kittyAvailable opacity: ProgramCheckerService.kittyAvailable ? 1.0 : 0.6 @@ -404,8 +414,10 @@ ColumnLayout { } NCheckbox { - label: I18n.tr("settings.color-scheme.matugen.terminal.ghostty.label") - description: ProgramCheckerService.ghosttyAvailable ? I18n.tr("settings.color-scheme.matugen.terminal.ghostty.description") : I18n.tr("settings.color-scheme.matugen.terminal.ghostty.description-missing") + label: "Ghostty" + description: ProgramCheckerService.ghosttyAvailable ? I18n.tr("settings.color-scheme.matugen.terminal.ghostty.description", { + "filepath": "~/.config/ghostty/themes/noctalia" + }) : I18n.tr("settings.color-scheme.matugen.terminal.ghostty.description-missing") checked: Settings.data.matugen.ghostty enabled: ProgramCheckerService.ghosttyAvailable opacity: ProgramCheckerService.ghosttyAvailable ? 1.0 : 0.6 @@ -419,8 +431,10 @@ ColumnLayout { } NCheckbox { - label: I18n.tr("settings.color-scheme.matugen.terminal.foot.label") - description: ProgramCheckerService.footAvailable ? I18n.tr("settings.color-scheme.matugen.terminal.foot.description") : I18n.tr("settings.color-scheme.matugen.terminal.foot.description-missing") + label: "Foot" + description: ProgramCheckerService.footAvailable ? I18n.tr("settings.color-scheme.matugen.terminal.foot.description", { + "filepath": "~/.config/foot/themes/noctalia" + }) : I18n.tr("settings.color-scheme.matugen.terminal.foot.description-missing") checked: Settings.data.matugen.foot enabled: ProgramCheckerService.footAvailable opacity: ProgramCheckerService.footAvailable ? 1.0 : 0.6 @@ -442,8 +456,10 @@ ColumnLayout { defaultExpanded: false NCheckbox { - label: I18n.tr("settings.color-scheme.matugen.programs.fuzzel.label") - description: ProgramCheckerService.fuzzelAvailable ? I18n.tr("settings.color-scheme.matugen.programs.fuzzel.description") : I18n.tr("settings.color-scheme.matugen.programs.fuzzel.description-missing") + label: "Fuzzel" + description: ProgramCheckerService.fuzzelAvailable ? I18n.tr("settings.color-scheme.matugen.programs.fuzzel.description", { + "filepath": "~/.config/fuzzel/themes/noctalia" + }) : I18n.tr("settings.color-scheme.matugen.programs.fuzzel.description-missing") checked: Settings.data.matugen.fuzzel enabled: ProgramCheckerService.fuzzelAvailable opacity: ProgramCheckerService.fuzzelAvailable ? 1.0 : 0.6 @@ -457,8 +473,10 @@ ColumnLayout { } NCheckbox { - label: I18n.tr("settings.color-scheme.matugen.programs.vesktop.label") - description: ProgramCheckerService.vesktopAvailable ? I18n.tr("settings.color-scheme.matugen.programs.vesktop.description") : I18n.tr("settings.color-scheme.matugen.programs.vesktop.description-missing") + label: "Vesktop" + description: ProgramCheckerService.vesktopAvailable ? I18n.tr("settings.color-scheme.matugen.programs.vesktop.description", { + "filepath": "~/.config/vesktop/themes/noctalia.theme.css" + }) : I18n.tr("settings.color-scheme.matugen.programs.vesktop.description-missing") checked: Settings.data.matugen.vesktop enabled: ProgramCheckerService.vesktopAvailable opacity: ProgramCheckerService.vesktopAvailable ? 1.0 : 0.6 @@ -472,8 +490,10 @@ ColumnLayout { } NCheckbox { - label: I18n.tr("settings.color-scheme.matugen.programs.pywalfox.label") - description: ProgramCheckerService.pywalfoxAvailable ? I18n.tr("settings.color-scheme.matugen.programs.pywalfox.description") : I18n.tr("settings.color-scheme.matugen.programs.pywalfox.description-missing") + label: "Pywalfox" + description: ProgramCheckerService.pywalfoxAvailable ? I18n.tr("settings.color-scheme.matugen.programs.pywalfox.description", { + "filepath": "~/.cache/wal/colors.json" + }) : I18n.tr("settings.color-scheme.matugen.programs.pywalfox.description-missing") checked: Settings.data.matugen.pywalfox enabled: ProgramCheckerService.pywalfoxAvailable opacity: ProgramCheckerService.pywalfoxAvailable ? 1.0 : 0.6 diff --git a/Modules/Settings/Tabs/ScreenRecorderTab.qml b/Modules/Settings/Tabs/ScreenRecorderTab.qml index 4a42eda4..8c129117 100644 --- a/Modules/Settings/Tabs/ScreenRecorderTab.qml +++ b/Modules/Settings/Tabs/ScreenRecorderTab.qml @@ -76,28 +76,15 @@ ColumnLayout { NComboBox { label: I18n.tr("settings.screen-recorder.video.frame-rate.label") description: I18n.tr("settings.screen-recorder.video.frame-rate.description") - model: [{ - "key": "30", - "name": I18n.tr("options.frame-rates.30-fps") - }, { - "key": "60", - "name": I18n.tr("options.frame-rates.60-fps") - }, { - "key": "100", - "name": I18n.tr("options.frame-rates.100-fps") - }, { - "key": "120", - "name": I18n.tr("options.frame-rates.120-fps") - }, { - "key": "144", - "name": I18n.tr("options.frame-rates.144-fps") - }, { - "key": "165", - "name": I18n.tr("options.frame-rates.165-fps") - }, { - "key": "240", - "name": I18n.tr("options.frame-rates.240-fps") - }] + model: (function () { + const values = ["30", "60", "100", "120", "144", "165", "240"] + return values.map(function (v) { + return { + "key": v, + "name": (v + " FPS") + } + }) + })() currentKey: Settings.data.screenRecorder.frameRate onSelected: key => Settings.data.screenRecorder.frameRate = key } @@ -129,19 +116,19 @@ ColumnLayout { description: I18n.tr("settings.screen-recorder.video.video-codec.description") model: [{ "key": "h264", - "name": I18n.tr("options.screen-recording.codecs.h264") + "name": "H264" }, { "key": "hevc", - "name": I18n.tr("options.screen-recording.codecs.hevc") + "name": "HEVC" }, { "key": "av1", - "name": I18n.tr("options.screen-recording.codecs.av1") + "name": "AV1" }, { "key": "vp8", - "name": I18n.tr("options.screen-recording.codecs.vp8") + "name": "VP8" }, { "key": "vp9", - "name": I18n.tr("options.screen-recording.codecs.vp9") + "name": "VP9" }] currentKey: Settings.data.screenRecorder.videoCodec onSelected: key => Settings.data.screenRecorder.videoCodec = key