diff --git a/Assets/Translations/de.json b/Assets/Translations/de.json index b8729fe03..3a42eefd0 100644 --- a/Assets/Translations/de.json +++ b/Assets/Translations/de.json @@ -654,5 +654,87 @@ } } } + }, + "widgets": { + "tooltip": { + "placeholder": "Platzhalter" + }, + "datetime-tokens": { + "common": { + "12hour-time-minutes": "12-Stunden-Zeit mit Minuten", + "24hour-time-minutes": "24-Stunden-Zeit mit Minuten", + "24hour-time-seconds": "24-Stunden-Zeit mit Sekunden", + "weekday-month-day": "Wochentag, Monat und Tag", + "iso-date": "ISO-Datumsformat", + "us-date": "US-Datumsformat", + "european-date": "Europäisches Datumsformat", + "weekday-date": "Wochentag mit Datum" + }, + "hour": { + "no-leading-zero": "Stunde ohne führende Null (0-23) - 24-Stunden-Format", + "leading-zero": "Stunde mit führender Null (00-23) - 24-Stunden-Format" + }, + "minute": { + "no-leading-zero": "Minute ohne führende Null (0-59)", + "leading-zero": "Minute mit führender Null (00-59)" + }, + "second": { + "no-leading-zero": "Sekunde ohne führende Null (0-59)", + "leading-zero": "Sekunde mit führender Null (00-59)" + }, + "ampm": { + "uppercase": "AM/PM in Großbuchstaben", + "lowercase": "am/pm in Kleinbuchstaben" + }, + "timezone": { + "abbreviation": "Zeitzonenabkürzung" + }, + "year": { + "two-digit": "Jahr als zweistellige Zahl (00-99)", + "four-digit": "Jahr als vierstellige Zahl" + }, + "month": { + "number-no-zero": "Monat als Zahl ohne führende Null (1-12)", + "number-leading-zero": "Monat als Zahl mit führender Null (01-12)", + "abbreviated": "Abgekürzter Monatsname", + "full": "Vollständiger Monatsname" + }, + "day": { + "no-leading-zero": "Tag ohne führende Null (1-31)", + "leading-zero": "Tag mit führender Null (01-31)", + "abbreviated": "Abgekürzter Tagesname", + "full": "Vollständiger Tagesname" + } + }, + "icon-picker": { + "title": "Symbol-Auswahl", + "search": { + "label": "Suchen" + }, + "cancel": "Abbrechen", + "apply": "Anwenden" + }, + "color-picker": { + "title": "Farbauswahl", + "hex": { + "label": "Hex-Farbe", + "description": "Geben Sie einen hexadezimalen Farbcode ein." + }, + "rgb": { + "label": "RGB-Werte", + "description": "Passen Sie Rot-, Grün-, Blau- und Helligkeitswerte an." + }, + "brightness": "Helligkeit", + "theme-colors": { + "label": "Theme-Farben", + "description": "Schnellzugriff auf die Farbpalette Ihres Themes." + }, + "palette": { + "label": "Palette", + "description": "Wählen Sie aus einer großen Auswahl vordefinierter Farben." + }, + "cancel": "Abbrechen", + "apply": "Anwenden" + } } } \ No newline at end of file diff --git a/Assets/Translations/en.json b/Assets/Translations/en.json index 0bb0e6165..3f880aee5 100644 --- a/Assets/Translations/en.json +++ b/Assets/Translations/en.json @@ -45,6 +45,10 @@ "solid-black": { "label": "Solid black corners", "description": "Use solid black instead of the bar background color." + }, + "radius": { + "label": "Screen corners radius", + "description": "Adjust the rounded corners of the screen." } }, "fonts": { @@ -654,5 +658,290 @@ } } } + }, + "widgets": { + "tooltip": { + "placeholder": "Placeholder" + }, + "datetime-tokens": { + "common": { + "12hour-time-minutes": "12-hour time with minutes", + "24hour-time-minutes": "24-hour time with minutes", + "24hour-time-seconds": "24-hour time with seconds", + "weekday-month-day": "Weekday, month and day", + "iso-date": "ISO date format", + "us-date": "US date format", + "european-date": "European date format", + "weekday-date": "Weekday with date" + }, + "hour": { + "no-leading-zero": "Hour without leading zero (0-23) - 24-hour format", + "leading-zero": "Hour with leading zero (00-23) - 24-hour format" + }, + "minute": { + "no-leading-zero": "Minute without leading zero (0-59)", + "leading-zero": "Minute with leading zero (00-59)" + }, + "second": { + "no-leading-zero": "Second without leading zero (0-59)", + "leading-zero": "Second with leading zero (00-59)" + }, + "ampm": { + "uppercase": "AM/PM in uppercase", + "lowercase": "am/pm in lowercase" + }, + "timezone": { + "abbreviation": "Timezone abbreviation" + }, + "year": { + "two-digit": "Year as two-digit number (00-99)", + "four-digit": "Year as four-digit number" + }, + "month": { + "number-no-zero": "Month as number without leading zero (1-12)", + "number-leading-zero": "Month as number with leading zero (01-12)", + "abbreviated": "Abbreviated month name", + "full": "Full month name" + }, + "day": { + "no-leading-zero": "Day without leading zero (1-31)", + "leading-zero": "Day with leading zero (01-31)", + "abbreviated": "Abbreviated day name", + "full": "Full day name" + } + }, + "icon-picker": { + "title": "Icon picker", + "search": { + "label": "Search" + }, + "cancel": "Cancel", + "apply": "Apply" + }, + "color-picker": { + "title": "Color picker", + "hex": { + "label": "Hex color", + "description": "Enter a hexadecimal color code." + }, + "rgb": { + "label": "RGB values", + "description": "Adjust red, green, blue, and brightness values." + }, + "brightness": "Brightness", + "theme-colors": { + "label": "Theme colors", + "description": "Quick access to your theme's color palette." + }, + "palette": { + "label": "Palette", + "description": "Choose from a wide range of predefined colors." + }, + "cancel": "Cancel", + "apply": "Apply" + } + }, + "bar": { + "widget-settings": { + "dialog": { + "cancel": "Cancel", + "apply": "Apply" + }, + "section-editor": { + "placeholder": "Select a widget to add..." + }, + "active-window": { + "show-app-icon": "Show app icon" + }, + "system-monitor": { + "cpu-usage": "CPU usage", + "cpu-temperature": "CPU temperature", + "memory-usage": "Memory usage", + "memory-percentage": "Memory as percentage", + "network-traffic": "Network traffic", + "storage-usage": "Storage usage" + }, + "notification-history": { + "show-unread-badge": "Show unread badge", + "hide-badge-when-zero": "Hide badge when zero" + }, + "battery": { + "display-mode": { + "label": "Display mode", + "description": "Choose how you'd like this value to appear." + }, + "low-battery-threshold": { + "label": "Low battery warning threshold", + "description": "Show a warning when battery falls below this percentage." + } + }, + "control-center": { + "use-distro-logo": "Use distro logo instead of icon", + "icon": { + "label": "Icon", + "description": "Select an icon from the library or a custom file." + }, + "browse-library": "Browse Library", + "browse-file": "Browse File", + "select-custom-icon": "Select a custom icon" + }, + "keyboard-layout": { + "display-mode": { + "label": "Display mode", + "description": "Choose how you'd like this value to appear." + } + }, + "volume": { + "display-mode": { + "label": "Display mode", + "description": "Choose how you'd like this value to appear." + } + }, + "workspace": { + "label-mode": "Label Mode", + "hide-unoccupied": { + "label": "Hide unoccupied", + "description": "Don't display workspaces without windows." + } + }, + "microphone": { + "display-mode": { + "label": "Display mode", + "description": "Choose how you'd like this value to appear." + } + }, + "brightness": { + "display-mode": { + "label": "Display mode", + "description": "Choose how you'd like this value to appear." + } + }, + "spacer": { + "width": { + "label": "Width", + "description": "Spacing width in pixels" + } + }, + "custom-button": { + "icon": { + "label": "Icon", + "description": "Select an icon from the library." + }, + "browse": "Browse", + "left-click": "Left click", + "right-click": "Right click", + "middle-click": "Middle click", + "dynamic-text": "Dynamic text", + "display-command-output": { + "label": "Display Command Output", + "description": "Enter a command to run at a regular interval. The first line of its output will be displayed as text." + }, + "refresh-interval": { + "label": "Refresh interval", + "description": "Interval in milliseconds." + } + }, + "media-mini": { + "show-album-art": "Show album art", + "show-visualizer": "Show visualizer", + "visualizer-type": "Visualizer type" + }, + "clock": { + "use-primary-color": { + "label": "Use primary color", + "description": "When enabled, this applies the primary color for emphasis." + }, + "use-monospaced-font": { + "label": "Use monospaced font", + "description": "When enabled, the clock will use the monospaced font." + }, + "clock-display": { + "label": "Clock display", + "description": "Customize your clock's display by adding tokens from the list below. To use the 12-hour format, you must include the 'AP' token." + }, + "horizontal-bar": { + "label": "Horizontal bar", + "description": "Tip: Use \\n to create a line break." + }, + "vertical-bar": { + "label": "Vertical bar", + "description": "Use a space to separate each part onto a new line." + }, + "preview": "Preview" + } + } + }, + "notifications": { + "panel": { + "title": "Notifications", + "no-notifications": "No notifications", + "description": "Your notifications will show up here as they arrive." + } + }, + "wallpaper": { + "panel": { + "title": "Wallpaper selector", + "apply-all-monitors": { + "label": "Apply to all monitors", + "description": "Apply selected wallpaper to all monitors at once." + }, + "search": "Search:" + } + }, + "bluetooth": { + "panel": { + "title": "Bluetooth", + "disabled": "Bluetooth is disabled", + "enable-message": "Enable Bluetooth to see available devices.", + "connected-devices": "Connected devices", + "known-devices": "Known devices", + "available-devices": "Available devices", + "scanning": "Scanning for devices...", + "pairing-mode": "Make sure your device is in pairing mode." + } + }, + "wifi": { + "panel": { + "title": "Wi-Fi", + "disabled": "Wi-Fi is disabled", + "enable-message": "Enable Wi-Fi to see available networks.", + "searching": "Searching for nearby networks...", + "connected": "Connected", + "disconnecting": "Disconnecting...", + "forgetting": "Forgetting...", + "saved": "Saved", + "disconnect": "Disconnect", + "enter-password": "Enter password...", + "connect": "Connect", + "password": "Password", + "forget-network": "Forget this network?", + "forget": "Forget", + "no-networks": "No networks found", + "scan-again": "Scan again" + } + }, + "calendar": { + "panel": { + "week": "Week" + } + }, + "clock": { + "tooltip": "Open calendar" + }, + "dock": { + "menu": { + "focus": "Focus", + "pin": "Pin", + "unpin": "Unpin", + "close": "Close" + } + }, + "lock-screen": { + "secure-terminal": "SECURE TERMINAL", + "unlock-command": "sudo unlock-session", + "password": "Password:", + "shut-down": "Shut down", + "restart": "Restart", + "suspend": "Suspend" } } diff --git a/Bin/check-i18n.sh b/Bin/i18n-check.sh similarity index 100% rename from Bin/check-i18n.sh rename to Bin/i18n-check.sh diff --git a/Modules/Bar/Bluetooth/BluetoothPanel.qml b/Modules/Bar/Bluetooth/BluetoothPanel.qml index ce9fafc6d..73706d916 100644 --- a/Modules/Bar/Bluetooth/BluetoothPanel.qml +++ b/Modules/Bar/Bluetooth/BluetoothPanel.qml @@ -35,7 +35,7 @@ NPanel { } NText { - text: "Bluetooth" + text: I18n.tr("bluetooth.panel.title") font.pointSize: Style.fontSizeL * scaling font.weight: Style.fontWeightBold color: Color.mOnSurface @@ -94,14 +94,14 @@ NPanel { } NText { - text: "Bluetooth is disabled" + text: I18n.tr("bluetooth.panel.disabled") font.pointSize: Style.fontSizeL * scaling color: Color.mOnSurfaceVariant Layout.alignment: Qt.AlignHCenter } NText { - text: "Enable Bluetooth to see available devices." + text: I18n.tr("bluetooth.panel.enable-message") font.pointSize: Style.fontSizeS * scaling color: Color.mOnSurfaceVariant Layout.alignment: Qt.AlignHCenter @@ -124,7 +124,7 @@ NPanel { // Connected devices BluetoothDevicesList { - label: "Connected devices" + label: I18n.tr("bluetooth.panel.connected-devices") property var items: { if (!BluetoothService.adapter || !Bluetooth.devices) return [] @@ -138,7 +138,7 @@ NPanel { // Known devices BluetoothDevicesList { - label: "Known devices" + label: I18n.tr("bluetooth.panel.known-devices") tooltipText: "Left click to connect. Right click to forget." property var items: { if (!BluetoothService.adapter || !Bluetooth.devices) @@ -153,7 +153,7 @@ NPanel { // Available devices BluetoothDevicesList { - label: "Available devices" + label: I18n.tr("bluetooth.panel.available-devices") property var items: { if (!BluetoothService.adapter || !Bluetooth.devices) return [] @@ -199,14 +199,14 @@ NPanel { } NText { - text: "Scanning for devices..." + text: I18n.tr("bluetooth.panel.scanning") font.pointSize: Style.fontSizeL * scaling color: Color.mOnSurface } } NText { - text: "Make sure your device is in pairing mode." + text: I18n.tr("bluetooth.panel.pairing-mode") font.pointSize: Style.fontSizeM * scaling color: Color.mOnSurfaceVariant Layout.alignment: Qt.AlignHCenter diff --git a/Modules/Bar/Calendar/CalendarPanel.qml b/Modules/Bar/Calendar/CalendarPanel.qml index 4446fa788..4789f7673 100644 --- a/Modules/Bar/Calendar/CalendarPanel.qml +++ b/Modules/Bar/Calendar/CalendarPanel.qml @@ -81,7 +81,7 @@ NPanel { NText { anchors.centerIn: parent - text: "Week" + text: I18n.tr("calendar.panel.week") color: Color.mOutline font.pointSize: Style.fontSizeXS * scaling font.weight: Style.fontWeightRegular diff --git a/Modules/Bar/WiFi/WiFiPanel.qml b/Modules/Bar/WiFi/WiFiPanel.qml index 056241f5d..a0ca5053b 100644 --- a/Modules/Bar/WiFi/WiFiPanel.qml +++ b/Modules/Bar/WiFi/WiFiPanel.qml @@ -40,7 +40,7 @@ NPanel { } NText { - text: "Wi-Fi" + text: I18n.tr("wifi.panel.title") font.pointSize: Style.fontSizeL * scaling font.weight: Style.fontWeightBold color: Color.mOnSurface @@ -136,14 +136,14 @@ NPanel { } NText { - text: "Wi-Fi is disabled" + text: I18n.tr("wifi.panel.disabled") font.pointSize: Style.fontSizeL * scaling color: Color.mOnSurfaceVariant Layout.alignment: Qt.AlignHCenter } NText { - text: "Enable Wi-Fi to see available networks." + text: I18n.tr("wifi.panel.enable-message") font.pointSize: Style.fontSizeS * scaling color: Color.mOnSurfaceVariant Layout.alignment: Qt.AlignHCenter @@ -172,7 +172,7 @@ NPanel { } NText { - text: "Searching for nearby networks..." + text: I18n.tr("wifi.panel.searching") font.pointSize: Style.fontSizeNormal * scaling color: Color.mOnSurfaceVariant Layout.alignment: Qt.AlignHCenter @@ -295,7 +295,7 @@ NPanel { NText { id: connectedText anchors.centerIn: parent - text: "Connected" + text: I18n.tr("wifi.panel.connected") font.pointSize: Style.fontSizeXXS * scaling color: Color.mOnPrimary } @@ -311,7 +311,7 @@ NPanel { NText { id: disconnectingText anchors.centerIn: parent - text: "Disconnecting..." + text: I18n.tr("wifi.panel.disconnecting") font.pointSize: Style.fontSizeXXS * scaling color: Color.mOnPrimary } @@ -327,7 +327,7 @@ NPanel { NText { id: forgettingText anchors.centerIn: parent - text: "Forgetting..." + text: I18n.tr("wifi.panel.forgetting") font.pointSize: Style.fontSizeXXS * scaling color: Color.mOnPrimary } @@ -345,7 +345,7 @@ NPanel { NText { id: savedText anchors.centerIn: parent - text: "Saved" + text: I18n.tr("wifi.panel.saved") font.pointSize: Style.fontSizeXXS * scaling color: Color.mOnSurfaceVariant } @@ -376,10 +376,10 @@ NPanel { visible: !modelData.connected && NetworkService.connectingTo !== modelData.ssid && passwordSsid !== modelData.ssid && NetworkService.forgettingNetwork !== modelData.ssid && NetworkService.disconnectingFrom !== modelData.ssid text: { if (modelData.existing || modelData.cached) - return "Connect" + return I18n.tr("wifi.panel.connect") if (!NetworkService.isSecured(modelData.security)) - return "Connect" - return "Password" + return I18n.tr("wifi.panel.connect") + return I18n.tr("wifi.panel.password") } outlined: !hovered fontSize: Style.fontSizeXS * scaling @@ -397,7 +397,7 @@ NPanel { NButton { visible: modelData.connected && NetworkService.disconnectingFrom !== modelData.ssid - text: "Disconnect" + text: I18n.tr("wifi.panel.disconnect") outlined: !hovered fontSize: Style.fontSizeXS * scaling backgroundColor: Color.mError @@ -457,7 +457,7 @@ NPanel { Text { visible: parent.text.length === 0 anchors.verticalCenter: parent.verticalCenter - text: "Enter password..." + text: I18n.tr("wifi.panel.enter-password") color: Color.mOnSurfaceVariant font.pointSize: Style.fontSizeS * scaling } @@ -465,7 +465,7 @@ NPanel { } NButton { - text: "Connect" + text: I18n.tr("wifi.panel.connect") fontSize: Style.fontSizeXXS * scaling enabled: passwordInput.length > 0 && !NetworkService.connecting outlined: true @@ -511,7 +511,7 @@ NPanel { } NText { - text: "Forget this network?" + text: I18n.tr("wifi.panel.forget-network") font.pointSize: Style.fontSizeS * scaling color: Color.mError Layout.fillWidth: true @@ -520,7 +520,7 @@ NPanel { NButton { id: forgetButton - text: "Forget" + text: I18n.tr("wifi.panel.forget") fontSize: Style.fontSizeXXS * scaling backgroundColor: Color.mError outlined: forgetButton.hovered ? false : true @@ -561,14 +561,14 @@ NPanel { } NText { - text: "No networks found" + text: I18n.tr("wifi.panel.no-networks") font.pointSize: Style.fontSizeL * scaling color: Color.mOnSurfaceVariant Layout.alignment: Qt.AlignHCenter } NButton { - text: "Scan again" + text: I18n.tr("wifi.panel.scan-again") icon: "refresh" Layout.alignment: Qt.AlignHCenter onClicked: NetworkService.scan() diff --git a/Modules/Bar/Widgets/Clock.qml b/Modules/Bar/Widgets/Clock.qml index b2592422b..4a21bb101 100644 --- a/Modules/Bar/Widgets/Clock.qml +++ b/Modules/Bar/Widgets/Clock.qml @@ -108,7 +108,7 @@ Rectangle { } NTooltip { id: tooltip - text: "Open calendar" + text: I18n.tr("clock.tooltip") target: clockContainer positionAbove: Settings.data.bar.position === "bottom" } diff --git a/Modules/Dock/DockMenu.qml b/Modules/Dock/DockMenu.qml index ff4cfa78e..a2175ae5b 100644 --- a/Modules/Dock/DockMenu.qml +++ b/Modules/Dock/DockMenu.qml @@ -133,7 +133,7 @@ PopupWindow { } NText { - text: "Focus" + text: I18n.tr("dock.menu.focus") font.pointSize: Style.fontSizeS * scaling color: activateMouseArea.containsMouse ? Color.mOnTertiary : Color.mOnSurfaceVariant anchors.verticalCenter: parent.verticalCenter @@ -182,8 +182,8 @@ PopupWindow { NText { text: { if (!root.toplevel) - return "Pin" - return root.isAppPinned(root.toplevel.appId) ? "Unpin" : "Pin" + return I18n.tr("dock.menu.pin") + return root.isAppPinned(root.toplevel.appId) ? I18n.tr("dock.menu.unpin") : I18n.tr("dock.menu.pin") } font.pointSize: Style.fontSizeS * scaling color: pinMouseArea.containsMouse ? Color.mOnTertiary : Color.mOnSurfaceVariant @@ -228,7 +228,7 @@ PopupWindow { } NText { - text: "Close" + text: I18n.tr("dock.menu.close") font.pointSize: Style.fontSizeS * scaling color: closeMouseArea.containsMouse ? Color.mOnTertiary : Color.mOnSurfaceVariant anchors.verticalCenter: parent.verticalCenter diff --git a/Modules/LockScreen/LockScreen.qml b/Modules/LockScreen/LockScreen.qml index 16219f924..896116294 100644 --- a/Modules/LockScreen/LockScreen.qml +++ b/Modules/LockScreen/LockScreen.qml @@ -383,7 +383,7 @@ Loader { spacing: Style.marginL * scaling NText { - text: "SECURE TERMINAL" + text: I18n.tr("lock-screen.secure-terminal") color: Color.mOnSurface font.family: Settings.data.ui.fontFixed font.pointSize: Style.fontSizeL * scaling @@ -486,7 +486,7 @@ Loader { } NText { - text: "sudo unlock-session" + text: I18n.tr("lock-screen.unlock-command") color: Color.mOnSurface font.family: Settings.data.ui.fontFixed font.pointSize: Style.fontSizeL * scaling @@ -498,7 +498,7 @@ Loader { spacing: Style.marginM * scaling NText { - text: "Password:" + text: I18n.tr("lock-screen.password") color: Color.mPrimary font.family: Settings.data.ui.fontFixed font.pointSize: Style.fontSizeL * scaling @@ -902,7 +902,7 @@ Loader { id: shutdownTooltipText anchors.margins: Style.marginM * scaling anchors.fill: parent - text: "Shut down" + text: I18n.tr("lock-screen.shut-down") font.pointSize: Style.fontSizeM * scaling horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter @@ -953,7 +953,7 @@ Loader { id: restartTooltipText anchors.margins: Style.marginM * scaling anchors.fill: parent - text: "Restart" + text: I18n.tr("lock-screen.restart") font.pointSize: Style.fontSizeM * scaling horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter @@ -1005,7 +1005,7 @@ Loader { id: suspendTooltipText anchors.margins: Style.marginM * scaling anchors.fill: parent - text: "Suspend" + text: I18n.tr("lock-screen.suspend") font.pointSize: Style.fontSizeM * scaling horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter diff --git a/Modules/Notification/NotificationHistoryPanel.qml b/Modules/Notification/NotificationHistoryPanel.qml index 35f92d0ac..220b26f46 100644 --- a/Modules/Notification/NotificationHistoryPanel.qml +++ b/Modules/Notification/NotificationHistoryPanel.qml @@ -37,7 +37,7 @@ NPanel { } NText { - text: "Notifications" + text: I18n.tr("notifications.panel.title") font.pointSize: Style.fontSizeL * scaling font.weight: Style.fontWeightBold color: Color.mOnSurface @@ -94,14 +94,14 @@ NPanel { } NText { - text: "No notifications" + text: I18n.tr("notifications.panel.no-notifications") font.pointSize: Style.fontSizeL * scaling color: Color.mOnSurfaceVariant Layout.alignment: Qt.AlignHCenter } NText { - text: "Your notifications will show up here as they arrive." + text: I18n.tr("notifications.panel.description") font.pointSize: Style.fontSizeS * scaling color: Color.mOnSurfaceVariant Layout.alignment: Qt.AlignHCenter diff --git a/Modules/Settings/Bar/BarSectionEditor.qml b/Modules/Settings/Bar/BarSectionEditor.qml index 39dc62e31..1e6d1d463 100644 --- a/Modules/Settings/Bar/BarSectionEditor.qml +++ b/Modules/Settings/Bar/BarSectionEditor.qml @@ -84,7 +84,7 @@ NBox { model: availableWidgets label: "" description: "" - placeholder: "Select a widget to add..." + placeholder: I18n.tr("bar.widget-settings.section-editor.placeholder") onSelected: key => comboBox.currentKey = key popupHeight: 340 * scaling diff --git a/Modules/Settings/Bar/BarWidgetSettingsDialog.qml b/Modules/Settings/Bar/BarWidgetSettingsDialog.qml index 863449975..72981f85a 100644 --- a/Modules/Settings/Bar/BarWidgetSettingsDialog.qml +++ b/Modules/Settings/Bar/BarWidgetSettingsDialog.qml @@ -101,13 +101,13 @@ Popup { } NButton { - text: "Cancel" + text: I18n.tr("bar.widget-settings.dialog.cancel") outlined: true onClicked: widgetSettings.close() } NButton { - text: "Apply" + text: I18n.tr("bar.widget-settings.dialog.apply") icon: "check" onClicked: { if (settingsLoader.item && settingsLoader.item.saveSettings) { diff --git a/Modules/Settings/Bar/WidgetSettings/ActiveWindowSettings.qml b/Modules/Settings/Bar/WidgetSettings/ActiveWindowSettings.qml index eabf58767..72366ffd1 100644 --- a/Modules/Settings/Bar/WidgetSettings/ActiveWindowSettings.qml +++ b/Modules/Settings/Bar/WidgetSettings/ActiveWindowSettings.qml @@ -25,7 +25,7 @@ ColumnLayout { NToggle { id: showIcon Layout.fillWidth: true - label: "Show app icon" + label: I18n.tr("bar.widget-settings.active-window.show-app-icon") checked: root.valueShowIcon onToggled: checked => root.valueShowIcon = checked } diff --git a/Modules/Settings/Bar/WidgetSettings/BatterySettings.qml b/Modules/Settings/Bar/WidgetSettings/BatterySettings.qml index 24094fce8..977e49e51 100644 --- a/Modules/Settings/Bar/WidgetSettings/BatterySettings.qml +++ b/Modules/Settings/Bar/WidgetSettings/BatterySettings.qml @@ -25,8 +25,8 @@ ColumnLayout { } NComboBox { - label: "Display mode" - description: "Choose how you'd like this value to appear." + label: I18n.tr("bar.widget-settings.battery.display-mode.label") + description: I18n.tr("bar.widget-settings.battery.display-mode.description") minimumWidth: 134 * scaling model: ListModel { ListElement { @@ -47,8 +47,8 @@ ColumnLayout { } NSpinBox { - label: "Low battery warning threshold" - description: "Show a warning when battery falls below this percentage." + label: I18n.tr("bar.widget-settings.battery.low-battery-threshold.label") + description: I18n.tr("bar.widget-settings.battery.low-battery-threshold.description") value: valueWarningThreshold suffix: "%" minimum: 5 diff --git a/Modules/Settings/Bar/WidgetSettings/BrightnessSettings.qml b/Modules/Settings/Bar/WidgetSettings/BrightnessSettings.qml index e8e0465df..c54ca3ac3 100644 --- a/Modules/Settings/Bar/WidgetSettings/BrightnessSettings.qml +++ b/Modules/Settings/Bar/WidgetSettings/BrightnessSettings.qml @@ -23,8 +23,8 @@ ColumnLayout { } NComboBox { - label: "Display mode" - description: "Choose how you'd like this value to appear." + label: I18n.tr("bar.widget-settings.brightness.display-mode.label") + description: I18n.tr("bar.widget-settings.brightness.display-mode.description") minimumWidth: 134 * scaling model: ListModel { ListElement { diff --git a/Modules/Settings/Bar/WidgetSettings/ClockSettings.qml b/Modules/Settings/Bar/WidgetSettings/ClockSettings.qml index 60e2794c6..ca6c300d8 100644 --- a/Modules/Settings/Bar/WidgetSettings/ClockSettings.qml +++ b/Modules/Settings/Bar/WidgetSettings/ClockSettings.qml @@ -64,16 +64,16 @@ ColumnLayout { NToggle { Layout.fillWidth: true - label: "Use primary color" - description: "When enabled, this applies the primary color for emphasis." + label: I18n.tr("bar.widget-settings.clock.use-primary-color.label") + description: I18n.tr("bar.widget-settings.clock.use-primary-color.description") checked: valueUsePrimaryColor onToggled: checked => valueUsePrimaryColor = checked } NToggle { Layout.fillWidth: true - label: "Use monospaced font" - description: "When enabled, the clock will use the monospaced font." + label: I18n.tr("bar.widget-settings.clock.use-monospaced-font.label") + description: I18n.tr("bar.widget-settings.clock.use-monospaced-font.description") checked: valueUseMonospacedFont onToggled: checked => valueUseMonospacedFont = checked } @@ -83,8 +83,8 @@ ColumnLayout { } NHeader { - label: "Clock display" - description: "Customize your clock's display by adding tokens from the list below. To use the 12-hour format, you must include the 'AP' token." + label: I18n.tr("bar.widget-settings.clock.clock-display.label") + description: I18n.tr("bar.widget-settings.clock.clock-display.description") } RowLayout { @@ -104,8 +104,8 @@ ColumnLayout { NTextInput { id: inputHoriz Layout.fillWidth: true - label: "Horizontal bar" - description: "Tip: Use \\n to create a line break." + label: I18n.tr("bar.widget-settings.clock.horizontal-bar.label") + description: I18n.tr("bar.widget-settings.clock.horizontal-bar.description") placeholderText: "HH:mm ddd, MMM dd" text: valueFormatHorizontal onTextChanged: valueFormatHorizontal = text @@ -127,8 +127,8 @@ ColumnLayout { NTextInput { id: inputVert Layout.fillWidth: true - label: "Vertical bar" - description: "Use a space to separate each part onto a new line." + label: I18n.tr("bar.widget-settings.clock.vertical-bar.label") + description: I18n.tr("bar.widget-settings.clock.vertical-bar.description") placeholderText: "HH mm dd MM" text: valueFormatVertical onTextChanged: valueFormatVertical = text @@ -151,7 +151,7 @@ ColumnLayout { Layout.fillWidth: false NLabel { - label: "Preview" + label: I18n.tr("bar.widget-settings.clock.preview") Layout.alignment: Qt.AlignHCenter | Qt.AlignTop } diff --git a/Modules/Settings/Bar/WidgetSettings/ControlCenterSettings.qml b/Modules/Settings/Bar/WidgetSettings/ControlCenterSettings.qml index 9c6ab6a9a..c3dcabfce 100644 --- a/Modules/Settings/Bar/WidgetSettings/ControlCenterSettings.qml +++ b/Modules/Settings/Bar/WidgetSettings/ControlCenterSettings.qml @@ -27,7 +27,7 @@ ColumnLayout { } NToggle { - label: "Use distro logo instead of icon" + label: I18n.tr("bar.widget-settings.control-center.use-distro-logo") checked: valueUseDistroLogo onToggled: { valueUseDistroLogo = checked @@ -42,8 +42,8 @@ ColumnLayout { spacing: Style.marginM * scaling NLabel { - label: "Icon" - description: "Select an icon from the library or a custom file." + label: I18n.tr("bar.widget-settings.control-center.icon.label") + description: I18n.tr("bar.widget-settings.control-center.icon.description") } NImageCircled { @@ -66,13 +66,13 @@ ColumnLayout { spacing: Style.marginM * scaling NButton { enabled: !valueUseDistroLogo - text: "Browse Library" + text: I18n.tr("bar.widget-settings.control-center.browse-library") onClicked: iconPicker.open() } NButton { enabled: !valueUseDistroLogo - text: "Browse File" + text: I18n.tr("bar.widget-settings.control-center.browse-file") onClicked: filePicker.open() } } @@ -88,7 +88,7 @@ ColumnLayout { NFilePicker { id: filePicker - title: "Select a custom icon" + title: I18n.tr("bar.widget-settings.control-center.select-custom-icon") onAccepted: paths => valueCustomIconPath = paths[0] } } diff --git a/Modules/Settings/Bar/WidgetSettings/CustomButtonSettings.qml b/Modules/Settings/Bar/WidgetSettings/CustomButtonSettings.qml index 7586f2800..34964e440 100644 --- a/Modules/Settings/Bar/WidgetSettings/CustomButtonSettings.qml +++ b/Modules/Settings/Bar/WidgetSettings/CustomButtonSettings.qml @@ -30,8 +30,8 @@ ColumnLayout { spacing: Style.marginM * scaling NLabel { - label: "Icon" - description: "Select an icon from the library." + label: I18n.tr("bar.widget-settings.custom-button.icon.label") + description: I18n.tr("bar.widget-settings.custom-button.icon.description") } NIcon { @@ -42,7 +42,7 @@ ColumnLayout { } NButton { - text: "Browse" + text: I18n.tr("bar.widget-settings.custom-button.browse") onClicked: iconPicker.open() } } @@ -58,7 +58,7 @@ ColumnLayout { NTextInput { id: leftClickExecInput Layout.fillWidth: true - label: "Left click" + label: I18n.tr("bar.widget-settings.custom-button.left-click") placeholderText: "Enter command to execute (app or custom script)" text: widgetData?.leftClickExec || widgetMetadata.leftClickExec } @@ -66,7 +66,7 @@ ColumnLayout { NTextInput { id: rightClickExecInput Layout.fillWidth: true - label: "Right click" + label: I18n.tr("bar.widget-settings.custom-button.right-click") placeholderText: "Enter command to execute (app or custom script)" text: widgetData?.rightClickExec || widgetMetadata.rightClickExec } @@ -74,7 +74,7 @@ ColumnLayout { NTextInput { id: middleClickExecInput Layout.fillWidth: true - label: "Middle click" + label: I18n.tr("bar.widget-settings.custom-button.middle-click") placeholderText: "Enter command to execute (app or custom script)" text: widgetData.middleClickExec || widgetMetadata.middleClickExec } @@ -84,14 +84,14 @@ ColumnLayout { } NHeader { - label: "Dynamic text" + label: I18n.tr("bar.widget-settings.custom-button.dynamic-text") } NTextInput { id: textCommandInput Layout.fillWidth: true - label: "Display Command Output" - description: "Enter a command to run at a regular interval. The first line of its output will be displayed as text." + label: I18n.tr("bar.widget-settings.custom-button.display-command-output.label") + description: I18n.tr("bar.widget-settings.custom-button.display-command-output.description") placeholderText: "echo \"Hello World\"" text: widgetData?.textCommand || widgetMetadata.textCommand } @@ -99,8 +99,8 @@ ColumnLayout { NTextInput { id: textIntervalInput Layout.fillWidth: true - label: "Refresh interval" - description: "Interval in milliseconds." + label: I18n.tr("bar.widget-settings.custom-button.refresh-interval.label") + description: I18n.tr("bar.widget-settings.custom-button.refresh-interval.description") placeholderText: String(widgetMetadata.textIntervalMs || 3000) text: widgetData && widgetData.textIntervalMs !== undefined ? String(widgetData.textIntervalMs) : "" } diff --git a/Modules/Settings/Bar/WidgetSettings/KeyboardLayoutSettings.qml b/Modules/Settings/Bar/WidgetSettings/KeyboardLayoutSettings.qml index 875fffa9a..36ad80420 100644 --- a/Modules/Settings/Bar/WidgetSettings/KeyboardLayoutSettings.qml +++ b/Modules/Settings/Bar/WidgetSettings/KeyboardLayoutSettings.qml @@ -23,8 +23,8 @@ ColumnLayout { } NComboBox { - label: "Display mode" - description: "Choose how you'd like this value to appear." + label: I18n.tr("bar.widget-settings.keyboard-layout.display-mode.label") + description: I18n.tr("bar.widget-settings.keyboard-layout.display-mode.description") minimumWidth: 134 * scaling model: ListModel { ListElement { diff --git a/Modules/Settings/Bar/WidgetSettings/MediaMiniSettings.qml b/Modules/Settings/Bar/WidgetSettings/MediaMiniSettings.qml index fb70f9da9..a82187c1f 100644 --- a/Modules/Settings/Bar/WidgetSettings/MediaMiniSettings.qml +++ b/Modules/Settings/Bar/WidgetSettings/MediaMiniSettings.qml @@ -27,20 +27,20 @@ ColumnLayout { } NToggle { - label: "Show album art" + label: I18n.tr("bar.widget-settings.media-mini.show-album-art") checked: valueShowAlbumArt onToggled: checked => valueShowAlbumArt = checked } NToggle { - label: "Show visualizer" + label: I18n.tr("bar.widget-settings.media-mini.show-visualizer") checked: valueShowVisualizer onToggled: checked => valueShowVisualizer = checked } NComboBox { visible: valueShowVisualizer - label: "Visualizer type" + label: I18n.tr("bar.widget-settings.media-mini.visualizer-type") model: ListModel { ListElement { key: "linear" diff --git a/Modules/Settings/Bar/WidgetSettings/MicrophoneSettings.qml b/Modules/Settings/Bar/WidgetSettings/MicrophoneSettings.qml index e8e0465df..d832b0d6c 100644 --- a/Modules/Settings/Bar/WidgetSettings/MicrophoneSettings.qml +++ b/Modules/Settings/Bar/WidgetSettings/MicrophoneSettings.qml @@ -23,8 +23,8 @@ ColumnLayout { } NComboBox { - label: "Display mode" - description: "Choose how you'd like this value to appear." + label: I18n.tr("bar.widget-settings.microphone.display-mode.label") + description: I18n.tr("bar.widget-settings.microphone.display-mode.description") minimumWidth: 134 * scaling model: ListModel { ListElement { diff --git a/Modules/Settings/Bar/WidgetSettings/NotificationHistorySettings.qml b/Modules/Settings/Bar/WidgetSettings/NotificationHistorySettings.qml index 751a832a0..206c27975 100644 --- a/Modules/Settings/Bar/WidgetSettings/NotificationHistorySettings.qml +++ b/Modules/Settings/Bar/WidgetSettings/NotificationHistorySettings.qml @@ -25,13 +25,13 @@ ColumnLayout { } NToggle { - label: "Show unread badge" + label: I18n.tr("bar.widget-settings.notification-history.show-unread-badge") checked: valueShowUnreadBadge onToggled: checked => valueShowUnreadBadge = checked } NToggle { - label: "Hide badge when zero" + label: I18n.tr("bar.widget-settings.notification-history.hide-badge-when-zero") checked: valueHideWhenZero onToggled: checked => valueHideWhenZero = checked } diff --git a/Modules/Settings/Bar/WidgetSettings/SpacerSettings.qml b/Modules/Settings/Bar/WidgetSettings/SpacerSettings.qml index 8de5f6ee7..1ecd2740c 100644 --- a/Modules/Settings/Bar/WidgetSettings/SpacerSettings.qml +++ b/Modules/Settings/Bar/WidgetSettings/SpacerSettings.qml @@ -22,8 +22,8 @@ ColumnLayout { NTextInput { id: widthInput Layout.fillWidth: true - label: "Width" - description: "Spacing width in pixels" + label: I18n.tr("bar.widget-settings.spacer.width.label") + description: I18n.tr("bar.widget-settings.spacer.width.description") text: widgetData.width || widgetMetadata.width placeholderText: "Enter width in pixels" } diff --git a/Modules/Settings/Bar/WidgetSettings/SystemMonitorSettings.qml b/Modules/Settings/Bar/WidgetSettings/SystemMonitorSettings.qml index d2cee1416..b7524c86e 100644 --- a/Modules/Settings/Bar/WidgetSettings/SystemMonitorSettings.qml +++ b/Modules/Settings/Bar/WidgetSettings/SystemMonitorSettings.qml @@ -35,7 +35,7 @@ ColumnLayout { NToggle { id: showCpuUsage Layout.fillWidth: true - label: "CPU usage" + label: I18n.tr("bar.widget-settings.system-monitor.cpu-usage") checked: valueShowCpuUsage onToggled: checked => valueShowCpuUsage = checked } @@ -43,7 +43,7 @@ ColumnLayout { NToggle { id: showCpuTemp Layout.fillWidth: true - label: "CPU temperature" + label: I18n.tr("bar.widget-settings.system-monitor.cpu-temperature") checked: valueShowCpuTemp onToggled: checked => valueShowCpuTemp = checked } @@ -51,7 +51,7 @@ ColumnLayout { NToggle { id: showMemoryUsage Layout.fillWidth: true - label: "Memory usage" + label: I18n.tr("bar.widget-settings.system-monitor.memory-usage") checked: valueShowMemoryUsage onToggled: checked => valueShowMemoryUsage = checked } @@ -59,7 +59,7 @@ ColumnLayout { NToggle { id: showMemoryAsPercent Layout.fillWidth: true - label: "Memory as percentage" + label: I18n.tr("bar.widget-settings.system-monitor.memory-percentage") checked: valueShowMemoryAsPercent onToggled: checked => valueShowMemoryAsPercent = checked } @@ -67,7 +67,7 @@ ColumnLayout { NToggle { id: showNetworkStats Layout.fillWidth: true - label: "Network traffic" + label: I18n.tr("bar.widget-settings.system-monitor.network-traffic") checked: valueShowNetworkStats onToggled: checked => valueShowNetworkStats = checked } @@ -75,7 +75,7 @@ ColumnLayout { NToggle { id: showDiskUsage Layout.fillWidth: true - label: "Storage usage" + label: I18n.tr("bar.widget-settings.system-monitor.storage-usage") checked: valueShowDiskUsage onToggled: checked => valueShowDiskUsage = checked } diff --git a/Modules/Settings/Bar/WidgetSettings/VolumeSettings.qml b/Modules/Settings/Bar/WidgetSettings/VolumeSettings.qml index e8e0465df..00d630837 100644 --- a/Modules/Settings/Bar/WidgetSettings/VolumeSettings.qml +++ b/Modules/Settings/Bar/WidgetSettings/VolumeSettings.qml @@ -23,8 +23,8 @@ ColumnLayout { } NComboBox { - label: "Display mode" - description: "Choose how you'd like this value to appear." + label: I18n.tr("bar.widget-settings.volume.display-mode.label") + description: I18n.tr("bar.widget-settings.volume.display-mode.description") minimumWidth: 134 * scaling model: ListModel { ListElement { diff --git a/Modules/Settings/Bar/WidgetSettings/WorkspaceSettings.qml b/Modules/Settings/Bar/WidgetSettings/WorkspaceSettings.qml index a72c91cfb..47854470c 100644 --- a/Modules/Settings/Bar/WidgetSettings/WorkspaceSettings.qml +++ b/Modules/Settings/Bar/WidgetSettings/WorkspaceSettings.qml @@ -23,7 +23,7 @@ ColumnLayout { NComboBox { id: labelModeCombo - label: "Label Mode" + label: I18n.tr("bar.widget-settings.workspace.label-mode") model: ListModel { ListElement { key: "none" @@ -45,8 +45,8 @@ ColumnLayout { NToggle { id: hideUnoccupiedToggle - label: "Hide unoccupied" - description: "Don't display workspaces without windows." + label: I18n.tr("bar.widget-settings.workspace.hide-unoccupied.label") + description: I18n.tr("bar.widget-settings.workspace.hide-unoccupied.description") checked: widgetData.hideUnoccupied onToggled: checked => hideUnoccupiedToggle.checked = checked } diff --git a/Modules/Settings/Tabs/GeneralTab.qml b/Modules/Settings/Tabs/GeneralTab.qml index 7079b484e..0d748a97c 100644 --- a/Modules/Settings/Tabs/GeneralTab.qml +++ b/Modules/Settings/Tabs/GeneralTab.qml @@ -155,8 +155,8 @@ ColumnLayout { Layout.fillWidth: true NLabel { - label: "Screen corners radius" - description: "Adjust the rounded corners of the screen." + label: I18n.tr("settings.general.screen-corners.radius.label") + description: I18n.tr("settings.general.screen-corners.radius.description") } NValueSlider { diff --git a/Modules/Wallpaper/WallpaperPanel.qml b/Modules/Wallpaper/WallpaperPanel.qml index 7c0bad581..2b6b8fb6e 100644 --- a/Modules/Wallpaper/WallpaperPanel.qml +++ b/Modules/Wallpaper/WallpaperPanel.qml @@ -56,7 +56,7 @@ NPanel { } NText { - text: "Wallpaper selector" + text: I18n.tr("wallpaper.panel.title") font.pointSize: Style.fontSizeL * scaling font.weight: Style.fontWeightBold color: Color.mOnSurface @@ -83,8 +83,8 @@ NPanel { } NToggle { - label: "Apply to all monitors" - description: "Apply selected wallpaper to all monitors at once." + label: I18n.tr("wallpaper.panel.apply-all-monitors.label") + description: I18n.tr("wallpaper.panel.apply-all-monitors.description") checked: Settings.data.wallpaper.setWallpaperOnAllMonitors onToggled: checked => Settings.data.wallpaper.setWallpaperOnAllMonitors = checked Layout.fillWidth: true @@ -175,7 +175,7 @@ NPanel { spacing: Style.marginM * scaling NText { - text: "Search:" + text: I18n.tr("wallpaper.panel.search") color: Color.mOnSurface font.pointSize: Style.fontSizeM * scaling Layout.preferredWidth: implicitWidth diff --git a/Widgets/NColorPickerDialog.qml b/Widgets/NColorPickerDialog.qml index 836fb4ab6..7c823444f 100644 --- a/Widgets/NColorPickerDialog.qml +++ b/Widgets/NColorPickerDialog.qml @@ -143,7 +143,7 @@ Popup { } NText { - text: "Color picker" + text: I18n.tr("widgets.color-picker.title") font.pointSize: Style.fontSizeXL * scaling font.weight: Style.fontWeightBold color: Color.mPrimary @@ -206,8 +206,8 @@ Popup { spacing: Style.marginM * scaling NLabel { - label: "Hex color" - description: "Enter a hexadecimal color code." + label: I18n.tr("widgets.color-picker.hex.label") + description: I18n.tr("widgets.color-picker.hex.description") Layout.fillWidth: true } @@ -235,8 +235,8 @@ Popup { spacing: Style.marginM * scaling NLabel { - label: "RGB values" - description: "Adjust red, green, blue, and brightness values." + label: I18n.tr("widgets.color-picker.rgb.label") + description: I18n.tr("widgets.color-picker.rgb.description") Layout.fillWidth: true } @@ -325,7 +325,7 @@ Popup { spacing: Style.marginM * scaling NText { - text: "Brightness" + text: I18n.tr("widgets.color-picker.brightness") font.weight: Font.Bold Layout.preferredWidth: 80 * scaling } @@ -371,8 +371,8 @@ Popup { spacing: Style.marginS * scaling NLabel { - label: "Theme colors" - description: "Quick access to your theme's color palette." + label: I18n.tr("widgets.color-picker.theme-colors.label") + description: I18n.tr("widgets.color-picker.theme-colors.description") Layout.fillWidth: true } @@ -419,8 +419,8 @@ Popup { spacing: Style.marginS * scaling NLabel { - label: "Palette" - description: "Choose from a wide range of predefined colors." + label: I18n.tr("widgets.color-picker.palette.label") + description: I18n.tr("widgets.color-picker.palette.description") Layout.fillWidth: true } @@ -469,7 +469,7 @@ Popup { NButton { id: cancelButton - text: "Cancel" + text: I18n.tr("widgets.color-picker.cancel") outlined: cancelButton.hovered ? false : true onClicked: { root.close() @@ -477,7 +477,7 @@ Popup { } NButton { - text: "Apply" + text: I18n.tr("widgets.color-picker.apply") icon: "check" onClicked: { root.colorSelected(root.selectedColor) diff --git a/Widgets/NDateTimeTokens.qml b/Widgets/NDateTimeTokens.qml index 904f3c29f..8f5aac164 100644 --- a/Widgets/NDateTimeTokens.qml +++ b/Widgets/NDateTimeTokens.qml @@ -31,87 +31,62 @@ Rectangle { ListElement { category: "Common" token: "h:mm AP" - description: "12-hour time with minutes" + description: I18n.tr("widgets.datetime-tokens.common.12hour-time-minutes") example: "2:30 PM" } ListElement { category: "Common" token: "HH:mm" - description: "24-hour time with minutes" + description: I18n.tr("widgets.datetime-tokens.common.24hour-time-minutes") example: "14:30" } ListElement { category: "Common" token: "HH:mm:ss" - description: "24-hour time with seconds" + description: I18n.tr("widgets.datetime-tokens.common.24hour-time-seconds") example: "14:30:45" } ListElement { category: "Common" token: "ddd MMM d" - description: "Weekday, month and day" + description: I18n.tr("widgets.datetime-tokens.common.weekday-month-day") example: "Mon Dec 25" } ListElement { category: "Common" token: "yyyy-MM-dd" - description: "ISO date format" + description: I18n.tr("widgets.datetime-tokens.common.iso-date") example: "2023-12-25" } ListElement { category: "Common" token: "MM/dd/yyyy" - description: "US date format" + description: I18n.tr("widgets.datetime-tokens.common.us-date") example: "12/25/2023" } ListElement { category: "Common" token: "dd.MM.yyyy" - description: "European date format" + description: I18n.tr("widgets.datetime-tokens.common.european-date") example: "25.12.2023" } ListElement { category: "Common" token: "ddd, MMM dd" - description: "Weekday with date" + description: I18n.tr("widgets.datetime-tokens.common.weekday-date") example: "Fri, Dec 12" } - // Hour tokens - // ListElement { - // category: "Hour" - // token: "h" - // description: "Hour without leading zero (12-hour when used with AP/ap, otherwise 24-hour)" - // example: "2 (needs AP/ap for 12hr)" - // } - // ListElement { - // category: "Hour" - // token: "hh" - // description: "Hour with leading zero (12-hour when used with AP/ap, otherwise 24-hour)" - // example: "02 (needs AP/ap for 12hr)" - // } - // ListElement { - // category: "Hour" - // token: "h AP" - // description: "12-hour format with AM/PM" - // example: "2 PM" - // } - // ListElement { - // category: "Hour" - // token: "hh AP" - // description: "12-hour format with leading zero and AM/PM" - // example: "02 PM" - // } ListElement { category: "Hour" token: "H" - description: "Hour without leading zero (0-23) - 24-hour format" + description: I18n.tr("widgets.datetime-tokens.hour.no-leading-zero") example: "14" } ListElement { category: "Hour" token: "HH" - description: "Hour with leading zero (00-23) - 24-hour format" + description: I18n.tr("widgets.datetime-tokens.hour.leading-zero") example: "14" } @@ -119,13 +94,13 @@ Rectangle { ListElement { category: "Minute" token: "m" - description: "Minute without leading zero (0-59)" + description: I18n.tr("widgets.datetime-tokens.minute.no-leading-zero") example: "30" } ListElement { category: "Minute" token: "mm" - description: "Minute with leading zero (00-59)" + description: I18n.tr("widgets.datetime-tokens.minute.leading-zero") example: "30" } @@ -133,13 +108,13 @@ Rectangle { ListElement { category: "Second" token: "s" - description: "Second without leading zero (0-59)" + description: I18n.tr("widgets.datetime-tokens.second.no-leading-zero") example: "45" } ListElement { category: "Second" token: "ss" - description: "Second with leading zero (00-59)" + description: I18n.tr("widgets.datetime-tokens.second.leading-zero") example: "45" } @@ -147,13 +122,13 @@ Rectangle { ListElement { category: "AM/PM" token: "AP" - description: "AM/PM in uppercase" + description: I18n.tr("widgets.datetime-tokens.ampm.uppercase") example: "PM" } ListElement { category: "AM/PM" token: "ap" - description: "am/pm in lowercase" + description: I18n.tr("widgets.datetime-tokens.ampm.lowercase") example: "pm" } @@ -161,7 +136,7 @@ Rectangle { ListElement { category: "Timezone" token: "t" - description: "Timezone abbreviation" + description: I18n.tr("widgets.datetime-tokens.timezone.abbreviation") example: "UTC" } @@ -169,13 +144,13 @@ Rectangle { ListElement { category: "Year" token: "yy" - description: "Year as two-digit number (00-99)" + description: I18n.tr("widgets.datetime-tokens.year.two-digit") example: "23" } ListElement { category: "Year" token: "yyyy" - description: "Year as four-digit number" + description: I18n.tr("widgets.datetime-tokens.year.four-digit") example: "2023" } @@ -183,25 +158,25 @@ Rectangle { ListElement { category: "Month" token: "M" - description: "Month as number without leading zero (1-12)" + description: I18n.tr("widgets.datetime-tokens.month.number-no-zero") example: "12" } ListElement { category: "Month" token: "MM" - description: "Month as number with leading zero (01-12)" + description: I18n.tr("widgets.datetime-tokens.month.number-leading-zero") example: "12" } ListElement { category: "Month" token: "MMM" - description: "Abbreviated month name" + description: I18n.tr("widgets.datetime-tokens.month.abbreviated") example: "Dec" } ListElement { category: "Month" token: "MMMM" - description: "Full month name" + description: I18n.tr("widgets.datetime-tokens.month.full") example: "December" } @@ -209,25 +184,25 @@ Rectangle { ListElement { category: "Day" token: "d" - description: "Day without leading zero (1-31)" + description: I18n.tr("widgets.datetime-tokens.day.no-leading-zero") example: "25" } ListElement { category: "Day" token: "dd" - description: "Day with leading zero (01-31)" + description: I18n.tr("widgets.datetime-tokens.day.leading-zero") example: "25" } ListElement { category: "Day" token: "ddd" - description: "Abbreviated day name" + description: I18n.tr("widgets.datetime-tokens.day.abbreviated") example: "Mon" } ListElement { category: "Day" token: "dddd" - description: "Full day name" + description: I18n.tr("widgets.datetime-tokens.day.full") example: "Monday" } } diff --git a/Widgets/NIconPicker.qml b/Widgets/NIconPicker.qml index c0ffaa49f..4aecf9cb9 100644 --- a/Widgets/NIconPicker.qml +++ b/Widgets/NIconPicker.qml @@ -63,7 +63,7 @@ Popup { RowLayout { Layout.fillWidth: true NText { - text: "Icon picker" + text: I18n.tr("widgets.icon-picker.title") font.pointSize: Style.fontSizeL * scaling font.weight: Style.fontWeightBold color: Color.mPrimary @@ -85,7 +85,7 @@ Popup { NTextInput { id: searchInput Layout.fillWidth: true - label: "Search" + label: I18n.tr("widgets.icon-picker.search.label") placeholderText: "e.g., noctalia, niri, battery, cloud" text: root.query onTextChanged: root.query = text.trim().toLowerCase() @@ -166,12 +166,12 @@ Popup { Layout.fillWidth: true } NButton { - text: "Cancel" + text: I18n.tr("widgets.icon-picker.cancel") outlined: true onClicked: root.close() } NButton { - text: "Apply" + text: I18n.tr("widgets.icon-picker.apply") icon: "check" enabled: root.selectedIcon !== "" onClicked: { diff --git a/Widgets/NTooltip.qml b/Widgets/NTooltip.qml index eb8afd196..67cf6169d 100644 --- a/Widgets/NTooltip.qml +++ b/Widgets/NTooltip.qml @@ -6,7 +6,7 @@ Window { id: root property bool isVisible: false - property string text: "Placeholder" + property string text: I18n.tr("widgets.tooltip.placeholder") property Item target: null property int delay: Style.tooltipDelay property bool positionAbove: false