1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2025-12-05 21:15:38 -05:00

Localization framework

This commit is contained in:
bbedward
2025-10-06 16:00:50 -04:00
parent 2ccec607a0
commit 5460c20ac3
79 changed files with 5356 additions and 396 deletions

View File

@@ -116,7 +116,7 @@ Item {
}
StyledText {
text: "No clipboard entries found"
text: qsTr("No clipboard entries found")
anchors.centerIn: parent
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceVariantText

View File

@@ -26,7 +26,7 @@ Rectangle {
}
StyledText {
text: "Shift+Del: Clear All • Esc: Close"
text: qsTr("Shift+Del: Clear All • Esc: Close")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
anchors.horizontalCenter: parent.horizontalCenter

View File

@@ -188,7 +188,7 @@ PanelWindow {
}
StyledText {
text: "Select a color from the palette or use custom sliders"
text: qsTr("Select a color from the palette or use custom sliders")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceTextMedium
}
@@ -346,7 +346,7 @@ PanelWindow {
spacing: Theme.spacingS
StyledText {
text: "Material Colors"
text: qsTr("Material Colors")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
font.weight: Font.Medium
@@ -394,7 +394,7 @@ PanelWindow {
spacing: Theme.spacingXS
StyledText {
text: "Recent Colors"
text: qsTr("Recent Colors")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
font.weight: Font.Medium
@@ -444,7 +444,7 @@ PanelWindow {
spacing: Theme.spacingXS
StyledText {
text: "Opacity"
text: qsTr("Opacity")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
font.weight: Font.Medium
@@ -480,7 +480,7 @@ PanelWindow {
spacing: Theme.spacingS
StyledText {
text: "Hex:"
text: qsTr("Hex:")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceTextMedium
anchors.verticalCenter: parent.verticalCenter
@@ -518,7 +518,7 @@ PanelWindow {
DankButton {
width: 80
buttonHeight: 36
text: "Apply"
text: qsTr("Apply")
backgroundColor: Theme.primary
textColor: Theme.background
anchors.verticalCenter: parent.verticalCenter
@@ -545,7 +545,7 @@ PanelWindow {
DankButton {
width: 70
buttonHeight: 36
text: "Cancel"
text: qsTr("Cancel")
backgroundColor: "transparent"
textColor: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter
@@ -564,7 +564,7 @@ PanelWindow {
DankButton {
width: 70
buttonHeight: 36
text: "Copy"
text: qsTr("Copy")
backgroundColor: Theme.primary
textColor: Theme.background
anchors.verticalCenter: parent.verticalCenter

View File

@@ -755,7 +755,7 @@ DankModal {
width: parent.width - saveButton.width - Theme.spacingM
height: 40
text: defaultFileName
placeholderText: "Enter filename..."
placeholderText: qsTr("Enter filename...")
ignoreLeftRightKeys: false
focus: saveMode
topPadding: Theme.spacingS
@@ -788,7 +788,7 @@ DankModal {
StyledText {
anchors.centerIn: parent
text: "Save"
text: qsTr("Save")
color: fileNameInput.text.trim() !== "" ? Theme.primaryText : Theme.surfaceVariantText
font.pixelSize: Theme.fontSizeMedium
}

View File

@@ -134,7 +134,7 @@ Rectangle {
}
StyledText {
text: "File Information"
text: qsTr("File Information")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
font.weight: Font.Medium

View File

@@ -56,7 +56,7 @@ DankModal {
spacing: Theme.spacingXS
StyledText {
text: "Network Information"
text: qsTr("Network Information")
font.pixelSize: Theme.fontSizeLarge
color: Theme.surfaceText
font.weight: Font.Medium
@@ -126,7 +126,7 @@ DankModal {
id: closeText
anchors.centerIn: parent
text: "Close"
text: qsTr("Close")
font.pixelSize: Theme.fontSizeMedium
color: Theme.background
font.weight: Font.Medium

View File

@@ -32,24 +32,24 @@ DankModal {
close();
const actions = {
"logout": {
"title": "Log Out",
"message": "Are you sure you want to log out?"
"title": qsTr("Log Out"),
"message": qsTr("Are you sure you want to log out?")
},
"suspend": {
"title": "Suspend",
"message": "Are you sure you want to suspend the system?"
"title": qsTr("Suspend"),
"message": qsTr("Are you sure you want to suspend the system?")
},
"hibernate": {
"title": "Hibernate",
"message": "Are you sure you want to hibernate the system?"
"title": qsTr("Hibernate"),
"message": qsTr("Are you sure you want to hibernate the system?")
},
"reboot": {
"title": "Reboot",
"message": "Are you sure you want to reboot the system?"
"title": qsTr("Reboot"),
"message": qsTr("Are you sure you want to reboot the system?")
},
"poweroff": {
"title": "Power Off",
"message": "Are you sure you want to power off the system?"
"title": qsTr("Power Off"),
"message": qsTr("Are you sure you want to power off the system?")
}
}
const selected = actions[action]
@@ -144,7 +144,7 @@ DankModal {
width: parent.width
StyledText {
text: "Power Options"
text: qsTr("Power Options")
font.pixelSize: Theme.fontSizeLarge
color: Theme.surfaceText
font.weight: Font.Medium
@@ -201,7 +201,7 @@ DankModal {
}
StyledText {
text: "Log Out"
text: qsTr("Log Out")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
font.weight: Font.Medium
@@ -254,7 +254,7 @@ DankModal {
}
StyledText {
text: "Suspend"
text: qsTr("Suspend")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
font.weight: Font.Medium
@@ -308,7 +308,7 @@ DankModal {
}
StyledText {
text: "Hibernate"
text: qsTr("Hibernate")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
font.weight: Font.Medium
@@ -362,7 +362,7 @@ DankModal {
}
StyledText {
text: "Reboot"
text: qsTr("Reboot")
font.pixelSize: Theme.fontSizeMedium
color: rebootArea.containsMouse ? Theme.warning : Theme.surfaceText
font.weight: Font.Medium
@@ -416,7 +416,7 @@ DankModal {
}
StyledText {
text: "Power Off"
text: qsTr("Power Off")
font.pixelSize: Theme.fontSizeMedium
color: powerOffArea.containsMouse ? Theme.error : Theme.surfaceText
font.weight: Font.Medium

View File

@@ -123,7 +123,7 @@ DankModal {
}
StyledText {
text: "System Monitor Unavailable"
text: qsTr("System Monitor Unavailable")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Bold
color: Theme.error
@@ -154,7 +154,7 @@ DankModal {
height: 40
StyledText {
text: "System Monitor"
text: qsTr("System Monitor")
font.pixelSize: Theme.fontSizeLarge + 4
font.weight: Font.Bold
color: Theme.surfaceText

View File

@@ -19,7 +19,7 @@ Item {
spacing: Theme.spacingXL
StyledText {
text: "Battery not detected - only AC power settings available"
text: qsTr("Battery not detected - only AC power settings available")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceVariantText
visible: !BatteryService.batteryAvailable
@@ -51,7 +51,7 @@ Item {
}
StyledText {
text: "Idle Settings"
text: qsTr("Idle Settings")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -79,7 +79,7 @@ Item {
property var timeoutOptions: ["Never", "1 minute", "2 minutes", "3 minutes", "5 minutes", "10 minutes", "15 minutes", "20 minutes", "30 minutes", "1 hour", "1 hour 30 minutes", "2 hours", "3 hours"]
property var timeoutValues: [0, 60, 120, 180, 300, 600, 900, 1200, 1800, 3600, 5400, 7200, 10800]
text: "Automatically lock after"
text: qsTr("Automatically lock after")
options: timeoutOptions
Connections {
@@ -115,7 +115,7 @@ Item {
property var timeoutOptions: ["Never", "1 minute", "2 minutes", "3 minutes", "5 minutes", "10 minutes", "15 minutes", "20 minutes", "30 minutes", "1 hour", "1 hour 30 minutes", "2 hours", "3 hours"]
property var timeoutValues: [0, 60, 120, 180, 300, 600, 900, 1200, 1800, 3600, 5400, 7200, 10800]
text: "Turn off monitors after"
text: qsTr("Turn off monitors after")
options: timeoutOptions
Connections {
@@ -151,7 +151,7 @@ Item {
property var timeoutOptions: ["Never", "1 minute", "2 minutes", "3 minutes", "5 minutes", "10 minutes", "15 minutes", "20 minutes", "30 minutes", "1 hour", "1 hour 30 minutes", "2 hours", "3 hours"]
property var timeoutValues: [0, 60, 120, 180, 300, 600, 900, 1200, 1800, 3600, 5400, 7200, 10800]
text: "Suspend system after"
text: qsTr("Suspend system after")
options: timeoutOptions
Connections {
@@ -187,7 +187,7 @@ Item {
property var timeoutOptions: ["Never", "1 minute", "2 minutes", "3 minutes", "5 minutes", "10 minutes", "15 minutes", "20 minutes", "30 minutes", "1 hour", "1 hour 30 minutes", "2 hours", "3 hours"]
property var timeoutValues: [0, 60, 120, 180, 300, 600, 900, 1200, 1800, 3600, 5400, 7200, 10800]
text: "Hibernate system after"
text: qsTr("Hibernate system after")
options: timeoutOptions
visible: SessionService.hibernateSupported
@@ -221,14 +221,14 @@ Item {
DankToggle {
width: parent.width
text: "Lock before suspend"
text: qsTr("Lock before suspend")
description: "Automatically lock the screen when the system prepares to suspend"
checked: SessionData.lockBeforeSuspend
onToggled: checked => SessionData.setLockBeforeSuspend(checked)
}
StyledText {
text: "Idle monitoring not supported - requires newer Quickshell version"
text: qsTr("Idle monitoring not supported - requires newer Quickshell version")
font.pixelSize: Theme.fontSizeSmall
color: Theme.error
anchors.horizontalCenter: parent.horizontalCenter

View File

@@ -144,7 +144,7 @@ DankModal {
}
StyledText {
text: "Settings"
text: qsTr("Settings")
font.pixelSize: Theme.fontSizeXLarge
color: Theme.surfaceText
font.weight: Font.Medium

View File

@@ -244,7 +244,7 @@ Rectangle {
}
StyledText {
text: "Launch"
text: qsTr("Launch")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Normal

View File

@@ -78,7 +78,7 @@ DankModal {
spacing: Theme.spacingXS
StyledText {
text: "Connect to Wi-Fi"
text: qsTr("Connect to Wi-Fi")
font.pixelSize: Theme.fontSizeLarge
color: Theme.surfaceText
font.weight: Font.Medium
@@ -201,7 +201,7 @@ DankModal {
}
StyledText {
text: "Show password"
text: qsTr("Show password")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter
@@ -229,7 +229,7 @@ DankModal {
id: cancelText
anchors.centerIn: parent
text: "Cancel"
text: qsTr("Cancel")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
font.weight: Font.Medium
@@ -260,7 +260,7 @@ DankModal {
id: connectText
anchors.centerIn: parent
text: "Connect"
text: qsTr("Connect")
font.pixelSize: Theme.fontSizeMedium
color: Theme.background
font.weight: Font.Medium

View File

@@ -186,7 +186,7 @@ DankPopout {
StyledText {
anchors.verticalCenter: parent.verticalCenter
text: "Applications"
text: qsTr("Applications")
font.pixelSize: Theme.fontSizeLarge + 4
font.weight: Font.Bold
color: Theme.surfaceText
@@ -888,7 +888,7 @@ DankPopout {
}
StyledText {
text: "Launch"
text: qsTr("Launch")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Normal

View File

@@ -82,7 +82,7 @@ PluginComponent {
}
StyledText {
text: "Disconnect"
text: qsTr("Disconnect")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Medium
@@ -133,14 +133,14 @@ PluginComponent {
}
StyledText {
text: "No VPN profiles found"
text: qsTr("No VPN profiles found")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceVariantText
anchors.horizontalCenter: parent.horizontalCenter
}
StyledText {
text: "Add a VPN in NetworkManager"
text: qsTr("Add a VPN in NetworkManager")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
anchors.horizontalCenter: parent.horizontalCenter

View File

@@ -55,7 +55,7 @@ Row {
}
Typography {
text: "Add Widget"
text: qsTr("Add Widget")
style: Typography.Style.Subtitle
color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter
@@ -155,7 +155,7 @@ Row {
}
Typography {
text: "Add Widget"
text: qsTr("Add Widget")
style: Typography.Style.Button
color: Theme.primary
anchors.verticalCenter: parent.verticalCenter
@@ -189,7 +189,7 @@ Row {
}
Typography {
text: "Defaults"
text: qsTr("Defaults")
style: Typography.Style.Button
color: Theme.warning
anchors.verticalCenter: parent.verticalCenter
@@ -223,7 +223,7 @@ Row {
}
Typography {
text: "Reset"
text: qsTr("Reset")
style: Typography.Style.Button
color: Theme.error
anchors.verticalCenter: parent.verticalCenter

View File

@@ -30,7 +30,7 @@ Rectangle {
StyledText {
id: headerText
text: "Input Devices"
text: qsTr("Input Devices")
font.pixelSize: Theme.fontSizeLarge
color: Theme.surfaceText
font.weight: Font.Medium

View File

@@ -30,7 +30,7 @@ Rectangle {
StyledText {
id: headerText
text: "Audio Devices"
text: qsTr("Audio Devices")
font.pixelSize: Theme.fontSizeLarge
color: Theme.surfaceText
font.weight: Font.Medium

View File

@@ -133,7 +133,7 @@ Rectangle {
spacing: Theme.spacingXS
StyledText {
text: "Health"
text: qsTr("Health")
font.pixelSize: Theme.fontSizeSmall
color: Theme.primary
font.weight: Font.Medium
@@ -168,7 +168,7 @@ Rectangle {
spacing: Theme.spacingXS
StyledText {
text: "Capacity"
text: qsTr("Capacity")
font.pixelSize: Theme.fontSizeSmall
color: Theme.primary
font.weight: Font.Medium
@@ -237,7 +237,7 @@ Rectangle {
width: parent.width - Theme.iconSize - Theme.spacingM
StyledText {
text: "Power Profile Degradation"
text: qsTr("Power Profile Degradation")
font.pixelSize: Theme.fontSizeLarge
color: Theme.error
font.weight: Font.Medium

View File

@@ -170,7 +170,7 @@ Item {
}
StyledText {
text: "Audio Codec Selection"
text: qsTr("Audio Codec Selection")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceTextMedium
}

View File

@@ -39,7 +39,7 @@ Rectangle {
StyledText {
id: headerText
text: "Bluetooth Settings"
text: qsTr("Bluetooth Settings")
font.pixelSize: Theme.fontSizeLarge
color: Theme.surfaceText
font.weight: Font.Medium
@@ -422,7 +422,7 @@ Rectangle {
StyledText {
anchors.centerIn: parent
text: "No Bluetooth adapter found"
text: qsTr("No Bluetooth adapter found")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceVariantText
}
@@ -473,7 +473,7 @@ Rectangle {
}
MenuItem {
text: "Audio Codec"
text: qsTr("Audio Codec")
height: bluetoothContextMenu.currentDevice && BluetoothService.isAudioDevice(bluetoothContextMenu.currentDevice) && bluetoothContextMenu.currentDevice.connected ? 32 : 0
visible: bluetoothContextMenu.currentDevice && BluetoothService.isAudioDevice(bluetoothContextMenu.currentDevice) && bluetoothContextMenu.currentDevice.connected
@@ -498,7 +498,7 @@ Rectangle {
}
MenuItem {
text: "Forget Device"
text: qsTr("Forget Device")
height: 32
contentItem: StyledText {

View File

@@ -44,7 +44,7 @@ Rectangle {
StyledText {
id: headerText
text: "Network Settings"
text: qsTr("Network Settings")
font.pixelSize: Theme.fontSizeLarge
color: Theme.surfaceText
font.weight: Font.Medium
@@ -136,7 +136,7 @@ Rectangle {
StyledText {
anchors.horizontalCenter: parent.horizontalCenter
text: "WiFi is off"
text: qsTr("WiFi is off")
font.pixelSize: Theme.fontSizeLarge
color: Theme.surfaceText
font.weight: Font.Medium
@@ -154,7 +154,7 @@ Rectangle {
StyledText {
anchors.centerIn: parent
text: "Enable WiFi"
text: qsTr("Enable WiFi")
color: Theme.primary
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
@@ -380,7 +380,7 @@ Rectangle {
}
MenuItem {
text: "Network Info"
text: qsTr("Network Info")
height: 32
contentItem: StyledText {
@@ -403,7 +403,7 @@ Rectangle {
}
MenuItem {
text: "Forget Network"
text: qsTr("Forget Network")
height: networkContextMenu.currentSaved || networkContextMenu.currentConnected ? 32 : 0
visible: networkContextMenu.currentSaved || networkContextMenu.currentConnected

View File

@@ -65,7 +65,7 @@ PanelWindow {
width: parent.width
StyledText {
text: "Power Options"
text: qsTr("Power Options")
font.pixelSize: Theme.fontSizeLarge
color: Theme.surfaceText
font.weight: Font.Medium
@@ -118,7 +118,7 @@ PanelWindow {
}
StyledText {
text: "Log Out"
text: qsTr("Log Out")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
font.weight: Font.Medium
@@ -168,7 +168,7 @@ PanelWindow {
}
StyledText {
text: "Suspend"
text: qsTr("Suspend")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
font.weight: Font.Medium
@@ -218,7 +218,7 @@ PanelWindow {
}
StyledText {
text: "Reboot"
text: qsTr("Reboot")
font.pixelSize: Theme.fontSizeMedium
color: rebootArea.containsMouse ? Theme.warning : Theme.surfaceText
font.weight: Font.Medium
@@ -268,7 +268,7 @@ PanelWindow {
}
StyledText {
text: "Power Off"
text: qsTr("Power Off")
font.pixelSize: Theme.fontSizeMedium
color: powerOffArea.containsMouse ? Theme.error : Theme.surfaceText
font.weight: Font.Medium

View File

@@ -311,7 +311,7 @@ DankPopout {
spacing: Theme.spacingXS
StyledText {
text: "Health"
text: qsTr("Health")
font.pixelSize: Theme.fontSizeSmall
color: Theme.primary
font.weight: Font.Medium
@@ -346,7 +346,7 @@ DankPopout {
spacing: Theme.spacingXS
StyledText {
text: "Capacity"
text: qsTr("Capacity")
font.pixelSize: Theme.fontSizeSmall
color: Theme.primary
font.weight: Font.Medium
@@ -415,7 +415,7 @@ DankPopout {
width: parent.width - Theme.iconSize - Theme.spacingM
StyledText {
text: "Power Profile Degradation"
text: qsTr("Power Profile Degradation")
font.pixelSize: Theme.fontSizeLarge
color: Theme.error
font.weight: Font.Medium

View File

@@ -96,7 +96,7 @@ DankPopout {
height: 32
StyledText {
text: "VPN Connections"
text: qsTr("VPN Connections")
font.pixelSize: Theme.fontSizeLarge
color: Theme.surfaceText
font.weight: Font.Medium
@@ -206,7 +206,7 @@ DankPopout {
}
StyledText {
text: "Disconnect"
text: qsTr("Disconnect")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Medium
@@ -262,14 +262,14 @@ DankPopout {
}
StyledText {
text: "No VPN profiles found"
text: qsTr("No VPN profiles found")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceVariantText
anchors.horizontalCenter: parent.horizontalCenter
}
StyledText {
text: "Add a VPN in NetworkManager"
text: qsTr("Add a VPN in NetworkManager")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
anchors.horizontalCenter: parent.horizontalCenter

View File

@@ -140,7 +140,7 @@ Rectangle {
id: cpuBaseline
font.pixelSize: Theme.fontSizeSmall
font.weight: Font.Medium
text: "100%"
text: qsTr("100%")
}
width: root.minimumWidth ? Math.max(cpuBaseline.width, paintedWidth) : paintedWidth

View File

@@ -140,7 +140,7 @@ Rectangle {
id: tempBaseline
font.pixelSize: Theme.fontSizeSmall
font.weight: Font.Medium
text: "100°"
text: qsTr("100°")
}
width: root.minimumWidth ? Math.max(tempBaseline.width, paintedWidth) : paintedWidth

View File

@@ -225,7 +225,7 @@ Rectangle {
id: diskBaseline
font.pixelSize: Theme.fontSizeSmall
font.weight: Font.Medium
text: "100%"
text: qsTr("100%")
}
width: Math.max(diskBaseline.width, paintedWidth)

View File

@@ -207,7 +207,7 @@ Rectangle {
id: gpuTempBaseline
font.pixelSize: Theme.fontSizeSmall
font.weight: Font.Medium
text: "100°"
text: qsTr("100°")
}
width: root.minimumWidth ? Math.max(gpuTempBaseline.width, paintedWidth) : paintedWidth

View File

@@ -141,7 +141,7 @@ Rectangle {
id: ramBaseline
font.pixelSize: Theme.fontSizeSmall
font.weight: Font.Medium
text: "100%"
text: qsTr("100%")
}
width: root.minimumWidth ? Math.max(ramBaseline.width, paintedWidth) : paintedWidth

View File

@@ -610,7 +610,7 @@ Rectangle {
StyledText {
anchors.centerIn: parent
text: "Close"
text: qsTr("Close")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Normal

View File

@@ -445,7 +445,7 @@ Rectangle {
}
StyledText {
text: "Back"
text: qsTr("Back")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter

View File

@@ -131,15 +131,15 @@ DankPopout {
model: {
let tabs = [
{ icon: "dashboard", text: "Overview" },
{ icon: "music_note", text: "Media" }
{ icon: "dashboard", text: qsTr("Overview") },
{ icon: "music_note", text: qsTr("Media") }
]
if (SettingsData.weatherEnabled) {
tabs.push({ icon: "wb_sunny", text: "Weather" })
tabs.push({ icon: "wb_sunny", text: qsTr("Weather") })
}
tabs.push({ icon: "settings", text: "Settings", isAction: true })
tabs.push({ icon: "settings", text: qsTr("Settings"), isAction: true })
return tabs
}

View File

@@ -305,7 +305,7 @@ Item {
}
StyledText {
text: "No Active Players"
text: qsTr("No Active Players")
font.pixelSize: Theme.fontSizeLarge
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.7)
anchors.horizontalCenter: parent.horizontalCenter
@@ -406,7 +406,7 @@ Item {
anchors.margins: Theme.spacingM
StyledText {
text: "Audio Output Devices (" + audioDevicesDropdown.availableDevices.length + ")"
text: qsTr("Audio Output Devices (") + audioDevicesDropdown.availableDevices.length + ")"
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText
@@ -564,7 +564,7 @@ Item {
anchors.margins: Theme.spacingM
StyledText {
text: "Media Players (" + (allPlayers?.length || 0) + ")"
text: qsTr("Media Players (") + (allPlayers?.length || 0) + ")"
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText

View File

@@ -53,7 +53,7 @@ Card {
}
StyledText {
text: "No Media"
text: qsTr("No Media")
font.pixelSize: Theme.fontSizeSmall
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.7)
anchors.horizontalCenter: parent.horizontalCenter

View File

@@ -33,7 +33,7 @@ Card {
}
Button {
text: "Refresh"
text: qsTr("Refresh")
flat: true
visible: !WeatherService.weather.loading
anchors.horizontalCenter: parent.horizontalCenter

View File

@@ -24,7 +24,7 @@ Item {
}
StyledText {
text: "No Weather Data Available"
text: qsTr("No Weather Data Available")
font.pixelSize: Theme.fontSizeLarge
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.7)
anchors.horizontalCenter: parent.horizontalCenter
@@ -257,7 +257,7 @@ Item {
spacing: 2
StyledText {
text: "Feels Like"
text: qsTr("Feels Like")
font.pixelSize: Theme.fontSizeSmall
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.7)
anchors.horizontalCenter: parent.horizontalCenter
@@ -304,7 +304,7 @@ Item {
spacing: 2
StyledText {
text: "Humidity"
text: qsTr("Humidity")
font.pixelSize: Theme.fontSizeSmall
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.7)
anchors.horizontalCenter: parent.horizontalCenter
@@ -351,7 +351,7 @@ Item {
spacing: 2
StyledText {
text: "Wind"
text: qsTr("Wind")
font.pixelSize: Theme.fontSizeSmall
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.7)
anchors.horizontalCenter: parent.horizontalCenter
@@ -398,7 +398,7 @@ Item {
spacing: 2
StyledText {
text: "Pressure"
text: qsTr("Pressure")
font.pixelSize: Theme.fontSizeSmall
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.7)
anchors.horizontalCenter: parent.horizontalCenter
@@ -445,7 +445,7 @@ Item {
spacing: 2
StyledText {
text: "Rain Chance"
text: qsTr("Rain Chance")
font.pixelSize: Theme.fontSizeSmall
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.7)
anchors.horizontalCenter: parent.horizontalCenter
@@ -492,14 +492,14 @@ Item {
spacing: 2
StyledText {
text: "Visibility"
text: qsTr("Visibility")
font.pixelSize: Theme.fontSizeSmall
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.7)
anchors.horizontalCenter: parent.horizontalCenter
}
StyledText {
text: "Good"
text: qsTr("Good")
font.pixelSize: Theme.fontSizeSmall + 1
color: Theme.surfaceText
font.weight: Font.Medium
@@ -522,7 +522,7 @@ Item {
spacing: Theme.spacingS
StyledText {
text: "7-Day Forecast"
text: qsTr("7-Day Forecast")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
font.weight: Font.Medium

View File

@@ -225,7 +225,7 @@ PanelWindow {
anchors.right: closeButton.left
anchors.rightMargin: Theme.spacingXS
anchors.verticalCenter: parent.verticalCenter
text: (modelData && modelData.title) ? modelData.title : "(Unnamed)"
text: (modelData && modelData.title) ? modelData.title: qsTr("(Unnamed)")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Normal

View File

@@ -549,7 +549,7 @@ Item {
}
StyledText {
text: "Switch User"
text: qsTr("Switch User")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter
@@ -1325,7 +1325,7 @@ Item {
StyledText {
anchors.centerIn: parent
text: "Cancel"
text: qsTr("Cancel")
color: Theme.surfaceText
font.pixelSize: Theme.fontSizeMedium
}

View File

@@ -169,7 +169,7 @@ Rectangle {
],
"row_4": [
{
text: '123',
text: qsTr("123"),
symbol: 'ABC',
width: 1.5
},

View File

@@ -609,7 +609,7 @@ Item {
anchors.top: parent.top
anchors.left: parent.left
anchors.margins: Theme.spacingXL
text: "DEMO MODE - Click anywhere to exit"
text: qsTr("DEMO MODE - Click anywhere to exit")
font.pixelSize: Theme.fontSizeSmall
color: "white"
opacity: 0.7
@@ -1244,7 +1244,7 @@ Item {
StyledText {
anchors.centerIn: parent
text: "Cancel"
text: qsTr("Cancel")
color: Theme.surfaceText
font.pixelSize: Theme.fontSizeMedium
}

View File

@@ -119,7 +119,7 @@ Item {
anchors.left: parent.left
anchors.leftMargin: -Theme.spacingXS
anchors.verticalCenter: parent.verticalCenter
text: "Notepad Font Settings"
text: qsTr("Notepad Font Settings")
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText
@@ -136,7 +136,7 @@ Item {
anchors.left: parent.left
anchors.leftMargin: -Theme.spacingM
width: parent.width + Theme.spacingM
text: "Use Monospace Font"
text: qsTr("Use Monospace Font")
description: "Toggle fonts"
checked: SettingsData.notepadUseMonospace
onToggled: checked => {
@@ -148,7 +148,7 @@ Item {
anchors.left: parent.left
anchors.leftMargin: -Theme.spacingM
width: parent.width + Theme.spacingM
text: "Show Line Numbers"
text: qsTr("Show Line Numbers")
description: "Display line numbers in editor"
checked: SettingsData.notepadShowLineNumbers
onToggled: checked => {
@@ -191,14 +191,14 @@ Item {
spacing: Theme.spacingXS
StyledText {
text: "Find in Text"
text: qsTr("Find in Text")
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText
}
StyledText {
text: "Open search bar to find text"
text: qsTr("Open search bar to find text")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
@@ -217,7 +217,7 @@ Item {
anchors.left: parent.left
anchors.leftMargin: -Theme.spacingM
width: parent.width + Theme.spacingM
text: "Font Family"
text: qsTr("Font Family")
options: cachedFontFamilies
currentValue: {
if (!SettingsData.notepadFontFamily || SettingsData.notepadFontFamily === "")
@@ -251,7 +251,7 @@ Item {
spacing: Theme.spacingXS
StyledText {
text: "Font Size"
text: qsTr("Font Size")
font.pixelSize: Theme.fontSizeSmall
font.weight: Font.Medium
color: Theme.surfaceText
@@ -330,7 +330,7 @@ Item {
anchors.left: parent.left
anchors.leftMargin: -Theme.spacingM
width: parent.width + Theme.spacingM
text: "Custom Transparency"
text: qsTr("Custom Transparency")
description: "Override global transparency for Notepad"
checked: SettingsData.notepadTransparencyOverride >= 0
onToggled: checked => {

View File

@@ -549,7 +549,7 @@ Rectangle {
StyledText {
id: clearText
text: "Clear"
text: qsTr("Clear")
color: parent.isHovered ? Theme.primary : Theme.surfaceVariantText
font.pixelSize: Theme.fontSizeSmall
font.weight: Font.Medium
@@ -642,7 +642,7 @@ Rectangle {
StyledText {
id: clearText
text: "Clear"
text: qsTr("Clear")
color: clearButton.isHovered ? Theme.primary : Theme.surfaceVariantText
font.pixelSize: Theme.fontSizeSmall
font.weight: Font.Medium

View File

@@ -24,7 +24,7 @@ Item {
StyledText {
anchors.horizontalCenter: parent.horizontalCenter
text: "Nothing to see here"
text: qsTr("Nothing to see here")
font.pixelSize: Theme.fontSizeLarge
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.3)
font.weight: Font.Medium

View File

@@ -19,7 +19,7 @@ Item {
spacing: Theme.spacingXS
StyledText {
text: "Notifications"
text: qsTr("Notifications")
font.pixelSize: Theme.fontSizeLarge
color: Theme.surfaceText
font.weight: Font.Medium
@@ -53,7 +53,7 @@ Item {
StyledText {
id: tooltipText
text: "Do Not Disturb"
text: qsTr("Do Not Disturb")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Medium
@@ -120,7 +120,7 @@ Item {
}
StyledText {
text: "Clear All"
text: qsTr("Clear All")
font.pixelSize: Theme.fontSizeSmall
color: clearArea.containsMouse ? Theme.primary : Theme.surfaceText
font.weight: Font.Medium

View File

@@ -32,7 +32,7 @@ Rectangle {
}
StyledText {
text: "Del: Clear • Shift+Del: Clear All • 1-9: Actions • F10: Help • Esc: Close"
text: qsTr("Del: Clear • Shift+Del: Clear All • 1-9: Actions • F10: Help • Esc: Close")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
width: parent.width

View File

@@ -105,7 +105,7 @@ Rectangle {
spacing: Theme.spacingM
StyledText {
text: "Notification Settings"
text: qsTr("Notification Settings")
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Bold
color: Theme.surfaceText
@@ -128,7 +128,7 @@ Rectangle {
}
StyledText {
text: "Do Not Disturb"
text: qsTr("Do Not Disturb")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter
@@ -150,14 +150,14 @@ Rectangle {
}
StyledText {
text: "Notification Timeouts"
text: qsTr("Notification Timeouts")
font.pixelSize: Theme.fontSizeSmall
font.weight: Font.Medium
color: Theme.surfaceVariantText
}
DankDropdown {
text: "Low Priority"
text: qsTr("Low Priority")
description: "Timeout for low priority notifications"
currentValue: getTimeoutText(SettingsData.notificationTimeoutLow)
options: timeoutOptions.map(opt => opt.text)
@@ -172,7 +172,7 @@ Rectangle {
}
DankDropdown {
text: "Normal Priority"
text: qsTr("Normal Priority")
description: "Timeout for normal priority notifications"
currentValue: getTimeoutText(SettingsData.notificationTimeoutNormal)
options: timeoutOptions.map(opt => opt.text)
@@ -187,7 +187,7 @@ Rectangle {
}
DankDropdown {
text: "Critical Priority"
text: qsTr("Critical Priority")
description: "Timeout for critical priority notifications"
currentValue: getTimeoutText(SettingsData.notificationTimeoutCritical)
options: timeoutOptions.map(opt => opt.text)
@@ -228,13 +228,13 @@ Rectangle {
anchors.verticalCenter: parent.verticalCenter
StyledText {
text: "Notification Overlay"
text: qsTr("Notification Overlay")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
}
StyledText {
text: "Display all priorities over fullscreen apps"
text: qsTr("Display all priorities over fullscreen apps")
font.pixelSize: Theme.fontSizeSmall - 1
color: Theme.surfaceVariantText
}

View File

@@ -487,7 +487,7 @@ PanelWindow {
StyledText {
id: clearText
text: "Clear"
text: qsTr("Clear")
color: clearButton.isHovered ? Theme.primary : Theme.surfaceVariantText
font.pixelSize: Theme.fontSizeSmall
font.weight: Font.Medium

View File

@@ -76,7 +76,7 @@ Column {
}
StyledText {
text: "No items added yet"
text: qsTr("No items added yet")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
visible: root.items.length === 0
@@ -111,7 +111,7 @@ Column {
StyledText {
anchors.centerIn: parent
text: "Remove"
text: qsTr("Remove")
color: Theme.errorText
font.pixelSize: Theme.fontSizeSmall
font.weight: Font.Medium

View File

@@ -123,7 +123,7 @@ Column {
id: addButton
width: 50
height: 36
text: "Add"
text: qsTr("Add")
onClicked: {
let newItem = {}
@@ -159,7 +159,7 @@ Column {
}
StyledText {
text: "Current Items"
text: qsTr("Current Items")
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText
@@ -227,7 +227,7 @@ Column {
StyledText {
anchors.centerIn: parent
text: "Remove"
text: qsTr("Remove")
color: Theme.onError
font.pixelSize: Theme.fontSizeSmall
font.weight: Font.Medium
@@ -247,7 +247,7 @@ Column {
}
StyledText {
text: "No items added yet"
text: qsTr("No items added yet")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
visible: root.items.length === 0

View File

@@ -194,7 +194,7 @@ Column {
spacing: 4
StyledText {
text: "Memory"
text: qsTr("Memory")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Bold
color: Theme.surfaceText
@@ -269,7 +269,7 @@ Column {
spacing: 4
StyledText {
text: "Swap"
text: qsTr("Swap")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Bold
color: Theme.surfaceText
@@ -359,7 +359,7 @@ Column {
spacing: Theme.spacingXS
StyledText {
text: "Network"
text: qsTr("Network")
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Bold
color: Theme.surfaceText
@@ -425,7 +425,7 @@ Column {
spacing: Theme.spacingXS
StyledText {
text: "Disk"
text: qsTr("Disk")
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Bold
color: Theme.surfaceText

View File

@@ -85,7 +85,7 @@ Popup {
anchors.left: parent.left
anchors.leftMargin: Theme.spacingS
anchors.verticalCenter: parent.verticalCenter
text: "Copy PID"
text: qsTr("Copy PID")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Normal
@@ -118,7 +118,7 @@ Popup {
anchors.left: parent.left
anchors.leftMargin: Theme.spacingS
anchors.verticalCenter: parent.verticalCenter
text: "Copy Process Name"
text: qsTr("Copy Process Name")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Normal
@@ -168,7 +168,7 @@ Popup {
anchors.left: parent.left
anchors.leftMargin: Theme.spacingS
anchors.verticalCenter: parent.verticalCenter
text: "Kill Process"
text: qsTr("Kill Process")
font.pixelSize: Theme.fontSizeSmall
color: parent.enabled ? (killArea.containsMouse ? Theme.error : Theme.surfaceText) : Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.5)
font.weight: Font.Normal
@@ -204,7 +204,7 @@ Popup {
anchors.left: parent.left
anchors.leftMargin: Theme.spacingS
anchors.verticalCenter: parent.verticalCenter
text: "Force Kill Process"
text: qsTr("Force Kill Process")
font.pixelSize: Theme.fontSizeSmall
color: parent.enabled ? (forceKillArea.containsMouse ? Theme.error : Theme.surfaceText) : Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.5)
font.weight: Font.Normal

View File

@@ -38,7 +38,7 @@ Column {
anchors.verticalCenter: parent.verticalCenter
StyledText {
text: "Process"
text: qsTr("Process")
font.pixelSize: Theme.fontSizeSmall
font.family: SettingsData.monoFontFamily
font.weight: DgopService.currentSort === "name" ? Font.Bold : Font.Medium

View File

@@ -48,7 +48,7 @@ Row {
spacing: 2
StyledText {
text: "CPU"
text: qsTr("CPU")
font.pixelSize: Theme.fontSizeSmall
font.weight: Font.Medium
color: DgopService.sortBy === "cpu" ? Theme.primary : Theme.secondary
@@ -163,7 +163,7 @@ Row {
spacing: 2
StyledText {
text: "Memory"
text: qsTr("Memory")
font.pixelSize: Theme.fontSizeSmall
font.weight: Font.Medium
color: DgopService.sortBy === "memory" ? Theme.primary : Theme.secondary
@@ -315,7 +315,7 @@ Row {
spacing: 2
StyledText {
text: "GPU"
text: qsTr("GPU")
font.pixelSize: Theme.fontSizeSmall
font.weight: Font.Medium
color: Theme.secondary
@@ -388,7 +388,7 @@ Row {
id: gpuContextMenu
MenuItem {
text: "Enable GPU Temperature"
text: qsTr("Enable GPU Temperature")
checkable: true
checked: {
if (!DgopService.availableGpus || DgopService.availableGpus.length === 0) {

View File

@@ -127,7 +127,7 @@ DankFlickable {
}
StyledText {
text: "System"
text: qsTr("System")
font.pixelSize: Theme.fontSizeSmall
font.family: SettingsData.monoFontFamily
font.weight: Font.Bold
@@ -411,7 +411,7 @@ DankFlickable {
}
StyledText {
text: "Storage & Disks"
text: qsTr("Storage & Disks")
font.pixelSize: Theme.fontSizeLarge
font.family: SettingsData.monoFontFamily
font.weight: Font.Bold
@@ -431,7 +431,7 @@ DankFlickable {
spacing: Theme.spacingS
StyledText {
text: "Device"
text: qsTr("Device")
font.pixelSize: Theme.fontSizeSmall
font.family: SettingsData.monoFontFamily
font.weight: Font.Bold
@@ -442,7 +442,7 @@ DankFlickable {
}
StyledText {
text: "Mount"
text: qsTr("Mount")
font.pixelSize: Theme.fontSizeSmall
font.family: SettingsData.monoFontFamily
font.weight: Font.Bold
@@ -453,7 +453,7 @@ DankFlickable {
}
StyledText {
text: "Size"
text: qsTr("Size")
font.pixelSize: Theme.fontSizeSmall
font.family: SettingsData.monoFontFamily
font.weight: Font.Bold
@@ -464,7 +464,7 @@ DankFlickable {
}
StyledText {
text: "Used"
text: qsTr("Used")
font.pixelSize: Theme.fontSizeSmall
font.family: SettingsData.monoFontFamily
font.weight: Font.Bold
@@ -475,7 +475,7 @@ DankFlickable {
}
StyledText {
text: "Available"
text: qsTr("Available")
font.pixelSize: Theme.fontSizeSmall
font.family: SettingsData.monoFontFamily
font.weight: Font.Bold
@@ -486,7 +486,7 @@ DankFlickable {
}
StyledText {
text: "Use%"
text: qsTr("Use%")
font.pixelSize: Theme.fontSizeSmall
font.family: SettingsData.monoFontFamily
font.weight: Font.Bold

View File

@@ -248,7 +248,7 @@ Item {
}
StyledText {
text: "About"
text: qsTr("About")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -307,7 +307,7 @@ Item {
}
StyledText {
text: "Technical Details"
text: qsTr("Technical Details")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -322,7 +322,7 @@ Item {
rowSpacing: Theme.spacingS
StyledText {
text: "Framework:"
text: qsTr("Framework:")
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText
@@ -345,20 +345,20 @@ Item {
}
StyledText {
text: "Language:"
text: qsTr("Language:")
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText
}
StyledText {
text: "QML (Qt Modeling Language)"
text: qsTr("QML (Qt Modeling Language)")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceVariantText
}
StyledText {
text: "Compositor:"
text: qsTr("Compositor:")
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText
@@ -410,7 +410,7 @@ Item {
}
StyledText {
text: "Github:"
text: qsTr("Github:")
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText
@@ -437,7 +437,7 @@ Item {
}
StyledText {
text: "- Support Us With a Star ⭐"
text: qsTr("- Support Us With a Star ⭐")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceVariantText
anchors.verticalCenter: parent.verticalCenter
@@ -445,7 +445,7 @@ Item {
}
StyledText {
text: "System Monitoring:"
text: qsTr("System Monitoring:")
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText
@@ -472,7 +472,7 @@ Item {
}
StyledText {
text: "- Stateless System Monitoring"
text: qsTr("- Stateless System Monitoring")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceVariantText
anchors.verticalCenter: parent.verticalCenter
@@ -480,7 +480,7 @@ Item {
}
StyledText {
text: "Dank Suite:"
text: qsTr("Dank Suite:")
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText

View File

@@ -695,7 +695,7 @@ Item {
}
StyledText {
text: "Position"
text: qsTr("Position")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -765,14 +765,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter
StyledText {
text: "Auto-hide"
text: qsTr("Auto-hide")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
}
StyledText {
text: "Automatically hide the top bar to expand screen real estate"
text: qsTr("Automatically hide the top bar to expand screen real estate")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
wrapMode: Text.WordWrap
@@ -824,7 +824,7 @@ Item {
}
StyledText {
text: "Toggle top bar visibility manually (can be controlled via IPC)"
text: qsTr("Toggle top bar visibility manually (can be controlled via IPC)")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
wrapMode: Text.WordWrap
@@ -871,7 +871,7 @@ Item {
anchors.verticalCenter: parent.verticalCenter
StyledText {
text: "Show on Overview"
text: qsTr("Show on Overview")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -930,7 +930,7 @@ Item {
}
StyledText {
text: "Spacing"
text: qsTr("Spacing")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -971,7 +971,7 @@ Item {
spacing: Theme.spacingS
StyledText {
text: "Exclusive Zone Offset"
text: qsTr("Exclusive Zone Offset")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Medium
@@ -999,7 +999,7 @@ Item {
spacing: Theme.spacingS
StyledText {
text: "Size"
text: qsTr("Size")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Medium
@@ -1025,7 +1025,7 @@ Item {
DankToggle {
width: parent.width
text: "Square Corners"
text: qsTr("Square Corners")
description: "Removes rounded corners from bar container."
checked: SettingsData.dankBarSquareCorners
onToggled: checked => {
@@ -1036,7 +1036,7 @@ Item {
DankToggle {
width: parent.width
text: "No Background"
text: qsTr("No Background")
description: "Remove widget backgrounds for a minimal look with tighter spacing."
checked: SettingsData.dankBarNoBackground
onToggled: checked => {
@@ -1047,7 +1047,7 @@ Item {
DankToggle {
width: parent.width
text: "Goth Corners"
text: qsTr("Goth Corners")
description: "Add curved swooping tips at the bottom of the bar."
checked: SettingsData.dankBarGothCornersEnabled
onToggled: checked => {
@@ -1058,7 +1058,7 @@ Item {
DankToggle {
width: parent.width
text: "Border"
text: qsTr("Border")
description: "Add a 1px border to the bar. Smart edge detection only shows border on exposed sides."
checked: SettingsData.dankBarBorderEnabled
onToggled: checked => {
@@ -1099,7 +1099,7 @@ Item {
StyledText {
id: widgetTitle
text: "Widget Management"
text: qsTr("Widget Management")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -1137,7 +1137,7 @@ Item {
}
StyledText {
text: "Reset"
text: qsTr("Reset")
font.pixelSize: Theme.fontSizeSmall
font.weight: Font.Medium
color: Theme.surfaceText
@@ -1281,7 +1281,7 @@ Item {
id: centerSection
anchors.fill: parent
anchors.margins: Theme.spacingL
title: "Center Section"
title: qsTr("Center Section")
titleIcon: "format_align_center"
sectionId: "center"
allWidgets: dankBarTab.baseWidgetDefinitions

View File

@@ -108,14 +108,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter
StyledText {
text: "Connected Displays"
text: qsTr("Connected Displays")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
}
StyledText {
text: "Configure which displays show shell components"
text: qsTr("Configure which displays show shell components")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
wrapMode: Text.WordWrap
@@ -131,7 +131,7 @@ Item {
spacing: Theme.spacingS
StyledText {
text: "Available Screens (" + Quickshell.screens.length + ")"
text: qsTr("Available Screens (") + Quickshell.screens.length + ")"
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText
@@ -273,7 +273,7 @@ Item {
spacing: Theme.spacingS
StyledText {
text: "Show on screens:"
text: qsTr("Show on screens:")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Medium
@@ -288,7 +288,7 @@ Item {
DankToggle {
width: parent.width
text: "All displays"
text: qsTr("All displays")
description: "Show on all connected displays"
checked: parent.selectedScreens.includes("all")
onToggled: (checked) => {

View File

@@ -50,7 +50,7 @@ Item {
StyledText {
id: positionText
text: "Dock Position"
text: qsTr("Dock Position")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -125,14 +125,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter
StyledText {
text: "Auto-hide Dock"
text: qsTr("Auto-hide Dock")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
}
StyledText {
text: "Hide the dock when not in use and reveal it when hovering near the dock area"
text: qsTr("Hide the dock when not in use and reveal it when hovering near the dock area")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
wrapMode: Text.WordWrap
@@ -176,14 +176,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter
StyledText {
text: "Show Dock"
text: qsTr("Show Dock")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
}
StyledText {
text: "Display a dock with pinned and running applications that can be positioned at the top, bottom, left, or right edge of the screen"
text: qsTr("Display a dock with pinned and running applications that can be positioned at the top, bottom, left, or right edge of the screen")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
wrapMode: Text.WordWrap
@@ -229,7 +229,7 @@ Item {
anchors.verticalCenter: parent.verticalCenter
StyledText {
text: "Show on Overview"
text: qsTr("Show on Overview")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -294,14 +294,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter
StyledText {
text: "Group by App"
text: qsTr("Group by App")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
}
StyledText {
text: "Group multiple windows of the same app together with a window count indicator"
text: qsTr("Group multiple windows of the same app together with a window count indicator")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
wrapMode: Text.WordWrap
@@ -360,7 +360,7 @@ Item {
}
StyledText {
text: "Spacing"
text: qsTr("Spacing")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -373,7 +373,7 @@ Item {
spacing: Theme.spacingS
StyledText {
text: "Padding"
text: qsTr("Padding")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Medium
@@ -401,7 +401,7 @@ Item {
spacing: Theme.spacingS
StyledText {
text: "Height to Edge Gap (Exclusive Zone)"
text: qsTr("Height to Edge Gap (Exclusive Zone)")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Medium
@@ -464,7 +464,7 @@ Item {
}
StyledText {
text: "Dock Transparency"
text: qsTr("Dock Transparency")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText

View File

@@ -47,7 +47,7 @@ Item {
}
StyledText {
text: "Launch Prefix"
text: qsTr("Launch Prefix")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -127,7 +127,7 @@ Item {
}
StyledText {
text: "Recently Used Apps"
text: qsTr("Recently Used Apps")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -157,7 +157,7 @@ Item {
StyledText {
width: parent.width
text: "Apps are ordered by usage frequency, then last used, then alphabetically."
text: qsTr("Apps are ordered by usage frequency, then last used, then alphabetically.")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
wrapMode: Text.WordWrap

View File

@@ -96,7 +96,7 @@ Item {
}
StyledText {
text: "Wallpaper"
text: qsTr("Wallpaper")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -434,14 +434,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter
StyledText {
text: "Per-Mode Wallpapers"
text: qsTr("Per-Mode Wallpapers")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
}
StyledText {
text: "Set different wallpapers for light and dark mode"
text: qsTr("Set different wallpapers for light and dark mode")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
width: parent.width
@@ -491,14 +491,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter
StyledText {
text: "Per-Monitor Wallpapers"
text: qsTr("Per-Monitor Wallpapers")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
}
StyledText {
text: "Set different wallpapers for each connected monitor"
text: qsTr("Set different wallpapers for each connected monitor")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
width: parent.width
@@ -523,7 +523,7 @@ Item {
leftPadding: Theme.iconSize + Theme.spacingM
StyledText {
text: "Monitor Selection:"
text: qsTr("Monitor Selection:")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
font.weight: Font.Medium
@@ -532,7 +532,7 @@ Item {
DankDropdown {
id: monitorDropdown
text: "Monitor"
text: qsTr("Monitor")
description: "Select monitor to configure wallpaper"
currentValue: selectedMonitorName || "No monitors"
options: {
@@ -580,14 +580,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter
StyledText {
text: "Automatic Cycling"
text: qsTr("Automatic Cycling")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
}
StyledText {
text: "Automatically cycle through wallpapers in the same folder"
text: qsTr("Automatically cycle through wallpapers in the same folder")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
width: parent.width
@@ -629,7 +629,7 @@ Item {
width: parent.width - parent.leftPadding
StyledText {
text: "Mode:"
text: qsTr("Mode:")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter
@@ -696,7 +696,7 @@ Item {
return SessionData.wallpaperCyclingMode === "interval"
}
}
text: "Interval"
text: qsTr("Interval")
description: "How often to change wallpaper"
options: intervalOptions
currentValue: {
@@ -751,7 +751,7 @@ Item {
width: parent.width - parent.leftPadding
StyledText {
text: "Daily at:"
text: qsTr("Daily at:")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter
@@ -768,7 +768,7 @@ Item {
return SessionData.wallpaperCyclingTime
}
}
placeholderText: "00:00"
placeholderText: qsTr("00:00")
maximumLength: 5
topPadding: Theme.spacingS
bottomPadding: Theme.spacingS
@@ -826,7 +826,7 @@ Item {
}
StyledText {
text: "24-hour format"
text: qsTr("24-hour format")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
anchors.verticalCenter: parent.verticalCenter
@@ -843,7 +843,7 @@ Item {
}
DankDropdown {
text: "Transition Effect"
text: qsTr("Transition Effect")
description: "Visual effect used when wallpaper changes"
currentValue: {
if (SessionData.wallpaperTransition === "random") return "Random"
@@ -862,14 +862,14 @@ Item {
visible: SessionData.wallpaperTransition === "random"
StyledText {
text: "Include Transitions"
text: qsTr("Include Transitions")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
font.weight: Font.Medium
}
StyledText {
text: "Select which transitions to include in randomization"
text: qsTr("Select which transitions to include in randomization")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
wrapMode: Text.WordWrap
@@ -934,14 +934,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter
StyledText {
text: "Dynamic Theming"
text: qsTr("Dynamic Theming")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
}
StyledText {
text: "Automatically extract colors from wallpaper"
text: qsTr("Automatically extract colors from wallpaper")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
wrapMode: Text.WordWrap
@@ -966,7 +966,7 @@ Item {
DankDropdown {
id: personalizationMatugenPaletteDropdown
text: "Matugen Palette"
text: qsTr("Matugen Palette")
description: "Select the palette algorithm used for wallpaper-based colors"
options: Theme.availableMatugenSchemes.map(function (option) { return option.label })
currentValue: Theme.getMatugenScheme(SettingsData.matugenScheme).label
@@ -995,7 +995,7 @@ Item {
}
StyledText {
text: "matugen not detected - dynamic theming unavailable"
text: qsTr("matugen not detected - dynamic theming unavailable")
font.pixelSize: Theme.fontSizeSmall
color: Theme.error
visible: ToastService.wallpaperErrorStatus === "matugen_missing"
@@ -1033,7 +1033,7 @@ Item {
}
StyledText {
text: "Display Settings"
text: qsTr("Display Settings")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -1043,7 +1043,7 @@ Item {
DankToggle {
width: parent.width
text: "Light Mode"
text: qsTr("Light Mode")
description: "Use light theme instead of dark theme"
checked: SessionData.isLightMode
onToggleCompleted: checked => {
@@ -1064,7 +1064,7 @@ Item {
id: nightModeToggle
width: parent.width
text: "Night Mode"
text: qsTr("Night Mode")
description: "Apply warm color temperature to reduce eye strain. Use automation settings below to control when it activates."
checked: DisplayService.nightModeEnabled
onToggled: checked => {
@@ -1081,7 +1081,7 @@ Item {
}
DankDropdown {
text: "Temperature"
text: qsTr("Temperature")
description: "Color temperature for night mode"
currentValue: SessionData.nightModeTemperature + "K"
options: {
@@ -1100,7 +1100,7 @@ Item {
DankToggle {
id: automaticToggle
width: parent.width
text: "Automatic Control"
text: qsTr("Automatic Control")
description: "Only adjust gamma based on time or location rules."
checked: SessionData.nightModeAutoEnabled
onToggled: checked => {
@@ -1183,7 +1183,7 @@ Item {
leftPadding: 45
StyledText {
text: "Hour"
text: qsTr("Hour")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
width: 50
@@ -1192,7 +1192,7 @@ Item {
}
StyledText {
text: "Minute"
text: qsTr("Minute")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
width: 50
@@ -1208,7 +1208,7 @@ Item {
StyledText {
id: startLabel
text: "Start"
text: qsTr("Start")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
width: 50
@@ -1256,7 +1256,7 @@ Item {
height: 32
StyledText {
text: "End"
text: qsTr("End")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
width: startLabel.width
@@ -1307,7 +1307,7 @@ Item {
DankToggle {
width: parent.width
text: "Auto-location"
text: qsTr("Auto-location")
description: DisplayService.geoclueAvailable ? "Use automatic location detection (geoclue2)" : "Geoclue service not running - cannot auto-detect location"
checked: SessionData.nightModeLocationProvider === "geoclue2"
enabled: DisplayService.geoclueAvailable
@@ -1323,7 +1323,7 @@ Item {
}
StyledText {
text: "Manual Coordinates"
text: qsTr("Manual Coordinates")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
visible: SessionData.nightModeLocationProvider !== "geoclue2"
@@ -1337,7 +1337,7 @@ Item {
spacing: Theme.spacingXS
StyledText {
text: "Latitude"
text: qsTr("Latitude")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
@@ -1346,7 +1346,7 @@ Item {
width: 120
height: 40
text: SessionData.latitude.toString()
placeholderText: "0.0"
placeholderText: qsTr("0.0")
onTextChanged: {
const lat = parseFloat(text) || 0.0
if (lat >= -90 && lat <= 90) {
@@ -1360,7 +1360,7 @@ Item {
spacing: Theme.spacingXS
StyledText {
text: "Longitude"
text: qsTr("Longitude")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
@@ -1369,7 +1369,7 @@ Item {
width: 120
height: 40
text: SessionData.longitude.toString()
placeholderText: "0.0"
placeholderText: qsTr("0.0")
onTextChanged: {
const lon = parseFloat(text) || 0.0
if (lon >= -180 && lon <= 180) {
@@ -1420,7 +1420,7 @@ Item {
}
StyledText {
text: "Notification Popups"
text: qsTr("Notification Popups")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -1429,7 +1429,7 @@ Item {
}
DankDropdown {
text: "Popup Position"
text: qsTr("Popup Position")
description: "Choose where notification popups appear on screen"
currentValue: {
if (SettingsData.notificationPopupPosition === -1) {
@@ -1480,7 +1480,7 @@ Item {
DankToggle {
width: parent.width
text: "Always Show OSD Percentage"
text: qsTr("Always Show OSD Percentage")
description: "Display volume and brightness percentage values by default in OSD popups"
checked: SettingsData.osdAlwaysShowValue
onToggled: checked => {
@@ -1518,7 +1518,7 @@ Item {
}
StyledText {
text: "Font Settings"
text: qsTr("Font Settings")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -1527,7 +1527,7 @@ Item {
}
DankDropdown {
text: "Font Family"
text: qsTr("Font Family")
description: "Select system font family"
currentValue: {
if (SettingsData.fontFamily === SettingsData.defaultFontFamily)
@@ -1548,7 +1548,7 @@ Item {
}
DankDropdown {
text: "Font Weight"
text: qsTr("Font Weight")
description: "Select font weight"
currentValue: {
switch (SettingsData.fontWeight) {
@@ -1614,7 +1614,7 @@ Item {
}
DankDropdown {
text: "Monospace Font"
text: qsTr("Monospace Font")
description: "Select monospace font for process list and technical displays"
currentValue: {
if (SettingsData.monoFontFamily === SettingsData.defaultMonoFontFamily)
@@ -1649,14 +1649,14 @@ Item {
spacing: Theme.spacingXS
StyledText {
text: "Font Scale"
text: qsTr("Font Scale")
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText
}
StyledText {
text: "Scale all font sizes"
text: qsTr("Scale all font sizes")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
width: parent.width
@@ -1748,7 +1748,7 @@ Item {
}
StyledText {
text: "Animations"
text: qsTr("Animations")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -1761,14 +1761,14 @@ Item {
spacing: Theme.spacingS
StyledText {
text: "Animation Speed"
text: qsTr("Animation Speed")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
font.weight: Font.Medium
}
StyledText {
text: "Control the speed of animations throughout the interface"
text: qsTr("Control the speed of animations throughout the interface")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
wrapMode: Text.WordWrap
@@ -1819,7 +1819,7 @@ Item {
}
StyledText {
text: "Lock Screen"
text: qsTr("Lock Screen")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -1829,7 +1829,7 @@ Item {
DankToggle {
width: parent.width
text: "Show Power Actions"
text: qsTr("Show Power Actions")
description: "Show power, restart, and logout buttons on the lock screen"
checked: SettingsData.lockScreenShowPowerActions
onToggled: checked => {

View File

@@ -58,14 +58,14 @@ FocusScope {
spacing: Theme.spacingXS
StyledText {
text: "Plugin Management"
text: qsTr("Plugin Management")
font.pixelSize: Theme.fontSizeLarge
color: Theme.surfaceText
font.weight: Font.Medium
}
StyledText {
text: "Manage and configure plugins for extending DMS functionality"
text: qsTr("Manage and configure plugins for extending DMS functionality")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
@@ -98,7 +98,7 @@ FocusScope {
}
StyledText {
text: "DMS Plugin Manager Unavailable"
text: qsTr("DMS Plugin Manager Unavailable")
font.pixelSize: Theme.fontSizeSmall
color: Theme.warning
font.weight: Font.Medium
@@ -107,7 +107,7 @@ FocusScope {
}
StyledText {
text: "The DMS_SOCKET environment variable is not set or the socket is unavailable. Automated plugin management requires the DMS_SOCKET."
text: qsTr("The DMS_SOCKET environment variable is not set or the socket is unavailable. Automated plugin management requires the DMS_SOCKET.")
font.pixelSize: Theme.fontSizeSmall - 1
color: Theme.surfaceVariantText
wrapMode: Text.WordWrap
@@ -121,7 +121,7 @@ FocusScope {
spacing: Theme.spacingM
DankButton {
text: "Browse"
text: qsTr("Browse")
iconName: "store"
enabled: DMSService.dmsAvailable
onClicked: {
@@ -130,7 +130,7 @@ FocusScope {
}
DankButton {
text: "Scan"
text: qsTr("Scan")
iconName: "refresh"
onClicked: {
pluginsTab.isRefreshingPlugins = true
@@ -143,7 +143,7 @@ FocusScope {
}
DankButton {
text: "Create Dir"
text: qsTr("Create Dir")
iconName: "create_new_folder"
onClicked: {
PluginService.createPluginDirectory()
@@ -169,7 +169,7 @@ FocusScope {
spacing: Theme.spacingM
StyledText {
text: "Plugin Directory"
text: qsTr("Plugin Directory")
font.pixelSize: Theme.fontSizeLarge
color: Theme.surfaceText
font.weight: Font.Medium
@@ -183,7 +183,7 @@ FocusScope {
}
StyledText {
text: "Place plugin directories here. Each plugin should have a plugin.json manifest file."
text: qsTr("Place plugin directories here. Each plugin should have a plugin.json manifest file.")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
wrapMode: Text.WordWrap
@@ -207,7 +207,7 @@ FocusScope {
spacing: Theme.spacingM
StyledText {
text: "Available Plugins"
text: qsTr("Available Plugins")
font.pixelSize: Theme.fontSizeLarge
color: Theme.surfaceText
font.weight: Font.Medium
@@ -782,7 +782,7 @@ FocusScope {
StyledText {
id: headerText
text: "Browse Plugins"
text: qsTr("Browse Plugins")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -831,7 +831,7 @@ FocusScope {
}
StyledText {
text: "Install plugins from the DMS plugin registry"
text: qsTr("Install plugins from the DMS plugin registry")
font.pixelSize: Theme.fontSizeSmall
color: Theme.outline
width: parent.width
@@ -853,7 +853,7 @@ FocusScope {
showClearButton: true
textColor: Theme.surfaceText
font.pixelSize: Theme.fontSizeMedium
placeholderText: "Search plugins..."
placeholderText: qsTr("Search plugins...")
text: pluginBrowserModal.searchQuery
focus: true
ignoreLeftRightKeys: true
@@ -889,7 +889,7 @@ FocusScope {
}
StyledText {
text: "Loading plugins..."
text: qsTr("Loading plugins...")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceVariantText
anchors.horizontalCenter: parent.horizontalCenter
@@ -969,7 +969,7 @@ FocusScope {
StyledText {
id: firstPartyText
anchors.centerIn: parent
text: "official"
text: qsTr("official")
font.pixelSize: Theme.fontSizeSmall - 2
color: Theme.primary
font.weight: Font.Medium
@@ -989,7 +989,7 @@ FocusScope {
StyledText {
id: thirdPartyText
anchors.centerIn: parent
text: "3rd party"
text: qsTr("3rd party")
font.pixelSize: Theme.fontSizeSmall - 2
color: Theme.warning
font.weight: Font.Medium
@@ -1113,7 +1113,7 @@ FocusScope {
}
StyledText {
text: "No plugins found"
text: qsTr("No plugins found")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceVariantText
anchors.horizontalCenter: parent.horizontalCenter
@@ -1162,7 +1162,7 @@ FocusScope {
}
StyledText {
text: "Third-Party Plugin Warning"
text: qsTr("Third-Party Plugin Warning")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -1183,19 +1183,19 @@ FocusScope {
spacing: Theme.spacingS
StyledText {
text: "• Plugins may contain bugs or security issues"
text: qsTr("• Plugins may contain bugs or security issues")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
StyledText {
text: "• Review code before installation when possible"
text: qsTr("• Review code before installation when possible")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
StyledText {
text: "• Install only from trusted sources"
text: qsTr("• Install only from trusted sources")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
@@ -1211,13 +1211,13 @@ FocusScope {
spacing: Theme.spacingM
DankButton {
text: "Cancel"
text: qsTr("Cancel")
iconName: "close"
onClicked: thirdPartyConfirmModal.close()
}
DankButton {
text: "I Understand"
text: qsTr("I Understand")
iconName: "check"
onClicked: {
SessionData.setShowThirdPartyPlugins(true)

View File

@@ -130,7 +130,7 @@ Item {
}
StyledText {
text: "Theme Color"
text: qsTr("Theme Color")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -651,7 +651,7 @@ Item {
DankDropdown {
id: matugenPaletteDropdown
text: "Matugen Palette"
text: qsTr("Matugen Palette")
description: "Select the palette algorithm used for wallpaper-based colors"
options: Theme.availableMatugenSchemes.map(function (option) { return option.label })
currentValue: Theme.getMatugenScheme(SettingsData.matugenScheme).label
@@ -756,7 +756,7 @@ Item {
}
StyledText {
text: "Widget Styling"
text: qsTr("Widget Styling")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -769,7 +769,7 @@ Item {
spacing: Theme.spacingS
StyledText {
text: "Dank Bar Transparency"
text: qsTr("Dank Bar Transparency")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Medium
@@ -803,7 +803,7 @@ Item {
StyledText {
id: transparencyLabel
text: "Dank Bar Widget Transparency"
text: qsTr("Dank Bar Widget Transparency")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Medium
@@ -867,7 +867,7 @@ Item {
spacing: Theme.spacingS
StyledText {
text: "Popup Transparency"
text: qsTr("Popup Transparency")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Medium
@@ -993,7 +993,7 @@ Item {
DankDropdown {
anchors.verticalCenter: parent.verticalCenter
text: "Icon Theme"
text: qsTr("Icon Theme")
description: "DankShell & System Icons\n(requires restart)"
currentValue: SettingsData.iconTheme
enableFuzzySearch: true
@@ -1046,7 +1046,7 @@ Item {
}
StyledText {
text: "System App Theming"
text: qsTr("System App Theming")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -1078,7 +1078,7 @@ Item {
}
StyledText {
text: "Apply GTK Colors"
text: qsTr("Apply GTK Colors")
font.pixelSize: Theme.fontSizeMedium
color: Theme.primary
font.weight: Font.Medium
@@ -1114,7 +1114,7 @@ Item {
}
StyledText {
text: "Apply Qt Colors"
text: qsTr("Apply Qt Colors")
font.pixelSize: Theme.fontSizeMedium
color: Theme.primary
font.weight: Font.Medium

View File

@@ -54,7 +54,7 @@ Item {
anchors.verticalCenter: parent.verticalCenter
StyledText {
text: "24-Hour Format"
text: qsTr("24-Hour Format")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -112,7 +112,7 @@ Item {
}
StyledText {
text: "Date Format"
text: qsTr("Date Format")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -122,7 +122,7 @@ Item {
DankDropdown {
height: 50
text: "Top Bar Format"
text: qsTr("Top Bar Format")
description: "Preview: " + (SettingsData.clockDateFormat ? new Date().toLocaleDateString(Qt.locale(), SettingsData.clockDateFormat) : new Date().toLocaleDateString(Qt.locale(), "ddd d"))
currentValue: {
if (!SettingsData.clockDateFormat || SettingsData.clockDateFormat.length === 0) {
@@ -158,7 +158,7 @@ Item {
return p.format
=== SettingsData.clockDateFormat
})
return match ? match.label : "Custom: " + SettingsData.clockDateFormat
return match ? match.label: qsTr("Custom: ") + SettingsData.clockDateFormat
}
options: ["System Default", "Day Date", "Day Month Date", "Month Date", "Numeric (M/D)", "Numeric (D/M)", "Full with Year", "ISO Date", "Full Day & Month", "Custom..."]
onValueChanged: value => {
@@ -185,7 +185,7 @@ Item {
DankDropdown {
height: 50
text: "Lock Screen Format"
text: qsTr("Lock Screen Format")
description: "Preview: " + (SettingsData.lockDateFormat ? new Date().toLocaleDateString(Qt.locale(), SettingsData.lockDateFormat) : new Date().toLocaleDateString(Qt.locale(), Locale.LongFormat))
currentValue: {
if (!SettingsData.lockDateFormat || SettingsData.lockDateFormat.length === 0) {
@@ -221,7 +221,7 @@ Item {
return p.format
=== SettingsData.lockDateFormat
})
return match ? match.label : "Custom: " + SettingsData.lockDateFormat
return match ? match.label: qsTr("Custom: ") + SettingsData.lockDateFormat
}
options: ["System Default", "Day Date", "Day Month Date", "Month Date", "Numeric (M/D)", "Numeric (D/M)", "Full with Year", "ISO Date", "Full Day & Month", "Custom..."]
onValueChanged: value => {
@@ -251,7 +251,7 @@ Item {
width: parent.width
visible: false
placeholderText: "Enter custom top bar format (e.g., ddd MMM d)"
placeholderText: qsTr("Enter custom top bar format (e.g., ddd MMM d)")
text: SettingsData.clockDateFormat
onTextChanged: {
if (visible && text)
@@ -264,7 +264,7 @@ Item {
width: parent.width
visible: false
placeholderText: "Enter custom lock screen format (e.g., dddd, MMMM d)"
placeholderText: qsTr("Enter custom lock screen format (e.g., dddd, MMMM d)")
text: SettingsData.lockDateFormat
onTextChanged: {
if (visible && text)
@@ -289,7 +289,7 @@ Item {
spacing: Theme.spacingXS
StyledText {
text: "Format Legend"
text: qsTr("Format Legend")
font.pixelSize: Theme.fontSizeSmall
color: Theme.primary
font.weight: Font.Medium
@@ -304,31 +304,31 @@ Item {
spacing: 2
StyledText {
text: "• d - Day (1-31)"
text: qsTr("• d - Day (1-31)")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
StyledText {
text: "• dd - Day (01-31)"
text: qsTr("• dd - Day (01-31)")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
StyledText {
text: "• ddd - Day name (Mon)"
text: qsTr("• ddd - Day name (Mon)")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
StyledText {
text: "• dddd - Day name (Monday)"
text: qsTr("• dddd - Day name (Monday)")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
StyledText {
text: "• M - Month (1-12)"
text: qsTr("• M - Month (1-12)")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
@@ -339,31 +339,31 @@ Item {
spacing: 2
StyledText {
text: "• MM - Month (01-12)"
text: qsTr("• MM - Month (01-12)")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
StyledText {
text: "• MMM - Month (Jan)"
text: qsTr("• MMM - Month (Jan)")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
StyledText {
text: "• MMMM - Month (January)"
text: qsTr("• MMMM - Month (January)")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
StyledText {
text: "• yy - Year (24)"
text: qsTr("• yy - Year (24)")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
StyledText {
text: "• yyyy - Year (2024)"
text: qsTr("• yyyy - Year (2024)")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}

View File

@@ -54,14 +54,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter
StyledText {
text: "Enable Weather"
text: qsTr("Enable Weather")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
}
StyledText {
text: "Show weather information in top bar and control center"
text: qsTr("Show weather information in top bar and control center")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
wrapMode: Text.WordWrap
@@ -120,14 +120,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter
StyledText {
text: "Use Fahrenheit"
text: qsTr("Use Fahrenheit")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
}
StyledText {
text: "Use Fahrenheit instead of Celsius for temperature"
text: qsTr("Use Fahrenheit instead of Celsius for temperature")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
wrapMode: Text.WordWrap
@@ -193,14 +193,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter
StyledText {
text: "Auto Location"
text: qsTr("Auto Location")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
}
StyledText {
text: "Automatically determine your location using your IP address"
text: qsTr("Automatically determine your location using your IP address")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
wrapMode: Text.WordWrap
@@ -233,7 +233,7 @@ Item {
}
StyledText {
text: "Custom Location"
text: qsTr("Custom Location")
font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText
font.weight: Font.Medium
@@ -248,7 +248,7 @@ Item {
spacing: Theme.spacingXS
StyledText {
text: "Latitude"
text: qsTr("Latitude")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
@@ -257,7 +257,7 @@ Item {
id: latitudeInput
width: parent.width
height: 48
placeholderText: "40.7128"
placeholderText: qsTr("40.7128")
backgroundColor: Theme.surfaceVariant
normalBorderColor: Theme.primarySelected
focusedBorderColor: Theme.primary
@@ -299,7 +299,7 @@ Item {
spacing: Theme.spacingXS
StyledText {
text: "Longitude"
text: qsTr("Longitude")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
@@ -308,7 +308,7 @@ Item {
id: longitudeInput
width: parent.width
height: 48
placeholderText: "-74.0060"
placeholderText: qsTr("-74.0060")
backgroundColor: Theme.surfaceVariant
normalBorderColor: Theme.primarySelected
focusedBorderColor: Theme.primary
@@ -352,7 +352,7 @@ Item {
spacing: Theme.spacingXS
StyledText {
text: "Location Search"
text: qsTr("Location Search")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
font.weight: Font.Medium
@@ -362,7 +362,7 @@ Item {
id: locationSearchInput
width: parent.width
currentLocation: ""
placeholderText: "New York, NY"
placeholderText: qsTr("New York, NY")
keyNavigationBacktab: longitudeInput
onLocationSelected: (displayName, coordinates) => {
SettingsData.setWeatherLocation(displayName, coordinates)

View File

@@ -188,7 +188,7 @@ DankModal {
}
StyledText {
text: "Add Widget to " + root.targetSection + " Section"
text: qsTr("Add Widget to ") + root.targetSection + " Section"
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -197,7 +197,7 @@ DankModal {
}
StyledText {
text: "Select a widget to add to the " + root.targetSection.toLowerCase(
text: qsTr("Select a widget to add to the ") + root.targetSection.toLowerCase(
) + " section of the top bar. You can add multiple instances of the same widget if needed."
font.pixelSize: Theme.fontSizeSmall
color: Theme.outline

View File

@@ -48,7 +48,7 @@ Item {
}
StyledText {
text: "Launcher Button"
text: qsTr("Launcher Button")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -58,7 +58,7 @@ Item {
DankToggle {
width: parent.width
text: "Use OS Logo"
text: qsTr("Use OS Logo")
description: "Display operating system logo instead of apps icon"
checked: SettingsData.useOSLogo
onToggled: checked => {
@@ -79,7 +79,7 @@ Item {
spacing: Theme.spacingS
StyledText {
text: "Color Override"
text: qsTr("Color Override")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Medium
@@ -111,7 +111,7 @@ Item {
spacing: Theme.spacingS
StyledText {
text: "Brightness"
text: qsTr("Brightness")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Medium
@@ -140,7 +140,7 @@ Item {
spacing: Theme.spacingS
StyledText {
text: "Contrast"
text: qsTr("Contrast")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Medium
@@ -202,7 +202,7 @@ Item {
}
StyledText {
text: "Workspace Settings"
text: qsTr("Workspace Settings")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -212,7 +212,7 @@ Item {
DankToggle {
width: parent.width
text: "Workspace Index Numbers"
text: qsTr("Workspace Index Numbers")
description: "Show workspace index numbers in the top bar workspace switcher"
checked: SettingsData.showWorkspaceIndex
onToggled: checked => {
@@ -223,7 +223,7 @@ Item {
DankToggle {
width: parent.width
text: "Workspace Padding"
text: qsTr("Workspace Padding")
description: "Always show a minimum of 3 workspaces, even if fewer are available"
checked: SettingsData.showWorkspacePadding
onToggled: checked => {
@@ -234,7 +234,7 @@ Item {
DankToggle {
width: parent.width
text: "Show Workspace Apps"
text: qsTr("Show Workspace Apps")
description: "Display application icons in workspace indicators"
checked: SettingsData.showWorkspaceApps
onToggled: checked => {
@@ -256,7 +256,7 @@ Item {
spacing: Theme.spacingS
StyledText {
text: "Max apps to show"
text: qsTr("Max apps to show")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Medium
@@ -287,7 +287,7 @@ Item {
DankToggle {
width: parent.width
text: "Per-Monitor Workspaces"
text: qsTr("Per-Monitor Workspaces")
description: "Show only workspaces belonging to each specific monitor."
checked: SettingsData.workspacesPerMonitor
onToggled: checked => {
@@ -325,7 +325,7 @@ Item {
}
StyledText {
text: "Media Player Settings"
text: qsTr("Media Player Settings")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -335,7 +335,7 @@ Item {
DankToggle {
width: parent.width
text: "Wave Progress Bars"
text: qsTr("Wave Progress Bars")
description: "Use animated wave progress bars for media playback"
checked: SettingsData.waveProgressEnabled
onToggled: checked => {
@@ -373,7 +373,7 @@ Item {
}
StyledText {
text: "Running Apps Settings"
text: qsTr("Running Apps Settings")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -383,7 +383,7 @@ Item {
DankToggle {
width: parent.width
text: "Running Apps Only In Current Workspace"
text: qsTr("Running Apps Only In Current Workspace")
description: "Show only apps running in current workspace"
checked: SettingsData.runningAppsCurrentWorkspace
onToggled: checked => {
@@ -423,7 +423,7 @@ Item {
}
StyledText {
text: "Named Workspace Icons"
text: qsTr("Named Workspace Icons")
font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium
color: Theme.surfaceText
@@ -433,7 +433,7 @@ Item {
StyledText {
width: parent.width
text: "Configure icons for named workspaces. Icons take priority over numbers when both are enabled."
text: qsTr("Configure icons for named workspaces. Icons take priority over numbers when both are enabled.")
font.pixelSize: Theme.fontSizeSmall
color: Theme.outline
wrapMode: Text.WordWrap

View File

@@ -480,7 +480,7 @@ Column {
StyledText {
id: tooltipText
anchors.centerIn: parent
text: "Compact Mode"
text: qsTr("Compact Mode")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
}
@@ -667,7 +667,7 @@ Column {
anchors.horizontalCenter: parent.horizontalCenter
StyledText {
text: "Add Widget"
text: qsTr("Add Widget")
font.pixelSize: Theme.fontSizeSmall
font.weight: Font.Medium
color: Theme.primary
@@ -752,7 +752,7 @@ Column {
}
StyledText {
text: "Network Icon"
text: qsTr("Network Icon")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Normal
@@ -805,7 +805,7 @@ Column {
}
StyledText {
text: "Bluetooth Icon"
text: qsTr("Bluetooth Icon")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Normal
@@ -858,7 +858,7 @@ Column {
}
StyledText {
text: "Audio Icon"
text: qsTr("Audio Icon")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
font.weight: Font.Normal

View File

@@ -86,7 +86,7 @@ DankPopout {
height: 40
StyledText {
text: "System Updates"
text: qsTr("System Updates")
font.pixelSize: Theme.fontSizeLarge
color: Theme.surfaceText
font.weight: Font.Medium
@@ -282,7 +282,7 @@ DankPopout {
}
StyledText {
text: "Update All"
text: qsTr("Update All")
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.primary
@@ -326,7 +326,7 @@ DankPopout {
}
StyledText {
text: "Close"
text: qsTr("Close")
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.surfaceText

View File

@@ -282,7 +282,7 @@ PanelWindow {
StyledText {
id: tooltipLabel
anchors.centerIn: parent
text: "Copied!"
text: qsTr("Copied!")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
}

View File

@@ -152,30 +152,30 @@ Singleton {
return []
const categoryMap = {
"AudioVideo": "Media",
"Audio": "Media",
"Video": "Media",
"Development": "Development",
"TextEditor": "Development",
"IDE": "Development",
"Education": "Education",
"Game": "Games",
"Graphics": "Graphics",
"Photography": "Graphics",
"Network": "Internet",
"WebBrowser": "Internet",
"Email": "Internet",
"Office": "Office",
"WordProcessor": "Office",
"Spreadsheet": "Office",
"Presentation": "Office",
"Science": "Science",
"Settings": "Settings",
"System": "System",
"Utility": "Utilities",
"Accessories": "Utilities",
"FileManager": "Utilities",
"TerminalEmulator": "Utilities"
"AudioVideo": qsTr("Media"),
"Audio": qsTr("Media"),
"Video": qsTr("Media"),
"Development": qsTr("Development"),
"TextEditor": qsTr("Development"),
"IDE": qsTr("Development"),
"Education": qsTr("Education"),
"Game": qsTr("Games"),
"Graphics": qsTr("Graphics"),
"Photography": qsTr("Graphics"),
"Network": qsTr("Internet"),
"WebBrowser": qsTr("Internet"),
"Email": qsTr("Internet"),
"Office": qsTr("Office"),
"WordProcessor": qsTr("Office"),
"Spreadsheet": qsTr("Office"),
"Presentation": qsTr("Office"),
"Science": qsTr("Science"),
"Settings": qsTr("Settings"),
"System": qsTr("System"),
"Utility": qsTr("Utilities"),
"Accessories": qsTr("Utilities"),
"FileManager": qsTr("Utilities"),
"TerminalEmulator": qsTr("Utilities")
}
const mappedCategories = new Set()
@@ -206,7 +206,7 @@ Singleton {
}
function getAllCategories() {
const categories = new Set(["All"])
const categories = new Set([qsTr("All")])
for (const app of applications) {
const appCategories = getCategoriesForApp(app)
@@ -217,7 +217,7 @@ Singleton {
}
function getAppsInCategory(category) {
if (category === "All") {
if (category === qsTr("All")) {
return applications
}

View File

@@ -59,7 +59,7 @@ Singleton {
createEmptyFile(fullPath, function() {
root.tabs = [{
id: id,
title: "Untitled",
title: qsTr("Untitled"),
filePath: filePath,
isTemporary: true,
lastModified: new Date().toISOString(),
@@ -129,7 +129,7 @@ Singleton {
var newTab = {
id: id,
title: "Untitled",
title: qsTr("Untitled"),
filePath: filePath,
isTemporary: true,
lastModified: new Date().toISOString(),
@@ -170,7 +170,7 @@ Singleton {
createEmptyFile(baseDir + "/" + filePath, function() {
newTabs[0] = {
id: id,
title: "Untitled",
title: qsTr("Untitled"),
filePath: filePath,
isTemporary: true,
lastModified: new Date().toISOString(),

View File

@@ -257,7 +257,7 @@ Item {
anchors.fill: parent
anchors.margins: 1
placeholderText: "Search..."
placeholderText: qsTr("Search...")
text: dropdownMenu.searchQuery
topPadding: Theme.spacingS
bottomPadding: Theme.spacingS

View File

@@ -22,34 +22,34 @@ Rectangle {
border.width: 1
property var iconCategories: [{
"name": "Numbers",
"name": qsTr("Numbers"),
"icons": ["looks_one", "looks_two", "looks_3", "looks_4", "looks_5", "looks_6", "filter_1", "filter_2", "filter_3", "filter_4", "filter_5", "filter_6", "filter_7", "filter_8", "filter_9", "filter_9_plus", "plus_one", "exposure_plus_1", "exposure_plus_2"]
}, {
"name": "Workspace",
"name": qsTr("Workspace"),
"icons": ["work", "laptop", "desktop_windows", "folder", "view_module", "dashboard", "apps", "grid_view"]
}, {
"name": "Development",
"name": qsTr("Development"),
"icons": ["code", "terminal", "bug_report", "build", "engineering", "integration_instructions", "data_object", "schema", "api", "webhook"]
}, {
"name": "Communication",
"name": qsTr("Communication"),
"icons": ["chat", "mail", "forum", "message", "video_call", "call", "contacts", "group", "notifications", "campaign"]
}, {
"name": "Media",
"name": qsTr("Media"),
"icons": ["music_note", "headphones", "mic", "videocam", "photo", "movie", "library_music", "album", "radio", "volume_up"]
}, {
"name": "System",
"name": qsTr("System"),
"icons": ["memory", "storage", "developer_board", "monitor", "keyboard", "mouse", "battery_std", "wifi", "bluetooth", "security", "settings"]
}, {
"name": "Navigation",
"name": qsTr("Navigation"),
"icons": ["home", "arrow_forward", "arrow_back", "expand_more", "expand_less", "menu", "close", "search", "filter_list", "sort"]
}, {
"name": "Actions",
"name": qsTr("Actions"),
"icons": ["add", "remove", "edit", "delete", "save", "download", "upload", "share", "content_copy", "content_paste", "content_cut", "undo", "redo"]
}, {
"name": "Status",
"name": qsTr("Status"),
"icons": ["check", "error", "warning", "info", "done", "pending", "schedule", "update", "sync", "offline_bolt"]
}, {
"name": "Fun",
"name": qsTr("Fun"),
"icons": ["celebration", "cake", "star", "favorite", "pets", "sports_esports", "local_fire_department", "bolt", "auto_awesome", "diamond"]
}]
@@ -67,7 +67,7 @@ Rectangle {
}
StyledText {
text: root.currentIcon ? root.currentIcon : "Choose icon"
text: root.currentIcon ? root.currentIcon : qsTr("Choose icon")
font.pixelSize: Theme.fontSizeSmall
color: root.currentIcon ? Theme.surfaceText : Theme.outline
anchors.verticalCenter: parent.verticalCenter

View File

@@ -19,7 +19,7 @@ Item {
}
property string currentLocation: ""
property string placeholderText: "Search for a location..."
property string placeholderText: qsTr("Search for a location...")
property bool _internalChange: false
property bool isLoading: false
property string currentSearchText: ""

64
translations/README.md Normal file
View File

@@ -0,0 +1,64 @@
# DankMaterialShell Translations
This directory contains translation files for DankMaterialShell extracted from all qsTr() calls in the QML codebase.
## Files
- **en.json** - Source language file with English strings and file references
- **template.json** - Empty template for creating new translations
- **extract_translations.py** - Script to regenerate translation files
## POEditor Format
The JSON files follow POEditor's import format:
```json
[
{
"term": "string to translate",
"context": "file:line",
"reference": "Modules/Settings/AboutTab.qml:45",
"comment": ""
}
]
```
### Field Descriptions
- **term**: The source string in English (from qsTr() calls)
- **context**: Primary location where the string appears (file:line)
- **reference**: All locations where this string is used (comma-separated)
- **comment**: Additional notes for translators (currently empty)
## How to Create a New Translation
1. Copy `template.json` to your language code (e.g., `es.json` for Spanish)
2. Fill in the `translation` field for each entry:
```json
{
"term": "Settings",
"translation": "Configuración",
"context": "Modals/Settings/SettingsModal.qml:147",
"reference": "Modals/Settings/SettingsModal.qml:147",
"comment": ""
}
```
3. Import to POEditor or use directly in your translation workflow
## Regenerating Translation Files
To update the translation files after code changes:
```bash
cd /home/brandon/.config/quickshell/DankMaterialShellGit/translations
./extract_translations.py
```
This will scan all QML files and regenerate `en.json` and `template.json`.
## Notes
- Strings are deduplicated - if the same string appears in multiple locations, references are merged
- File paths are relative to the project root
- Line numbers are preserved for accurate context
- Empty strings and comments are reserved for translator notes

185
translations/WORKFLOW.md Normal file
View File

@@ -0,0 +1,185 @@
# Translation Workflow for DankMaterialShell
## POEditor Integration Guide
### Initial Setup
1. **Create POEditor Project**
- Go to https://poeditor.com
- Create new project "DankMaterialShell"
- Add languages you want to support (es, fr, de, etc.)
2. **Import Source Strings**
- Upload `en.json` as the source language
- POEditor will detect 336 translatable strings
- Format: Key-Value JSON
### Translation Workflow
#### Method 1: Using POEditor (Recommended)
1. **Upload source file**
```bash
# Upload en.json to POEditor
```
2. **Translate in POEditor**
- Use POEditor's web interface
- Invite translators
- Track progress per language
3. **Export translations**
```bash
# Download from POEditor as JSON
# Save to translations/{language_code}.json
# Example: translations/es.json, translations/fr.json
```
4. **Test translations**
```bash
# Set your locale and restart shell
export LANG=es_ES.UTF-8
qs -p .
```
#### Method 2: Manual Translation
1. **Copy template**
```bash
cp translations/template.json translations/es.json
```
2. **Fill in translations**
```json
{
"term": "Settings",
"context": "Modals/Settings/SettingsModal.qml:147",
"reference": "Modals/Settings/SettingsModal.qml:147",
"comment": "",
"translation": "Configuración"
}
```
3. **Upload to POEditor** (optional)
### Updating Translations After Code Changes
1. **Re-extract strings**
```bash
cd translations
python3 extract_translations.py
```
2. **Upload updated en.json to POEditor**
- POEditor will detect new/removed strings
- Preserves existing translations
3. **Download updated translations**
### Translation File Format
POEditor-compatible JSON format:
```json
[
{
"term": "source string in English",
"context": "file:line where it appears",
"reference": "full/path/to/file.qml:123",
"comment": "optional context for translators",
"translation": "translated string"
}
]
```
### Supported Languages
The shell will auto-detect your system locale. Supported format:
- `es.json` → Spanish (es_ES, es_MX, etc.)
- `fr.json` → French (fr_FR, fr_CA, etc.)
- `de.json` → German
- `zh.json` → Chinese
- `ja.json` → Japanese
- `pt.json` → Portuguese
- etc.
### Testing Translations
1. **Change system locale**
```bash
export LANG=es_ES.UTF-8
export LC_ALL=es_ES.UTF-8
```
2. **Restart shell**
```bash
qs -p .
```
3. **Verify translations appear correctly**
### File Structure
```
translations/
├── en.json # Source language (English)
├── template.json # Empty template for new languages
├── es.json # Spanish translation
├── fr.json # French translation
├── extract_translations.py # Auto-extraction script
├── README.md # Technical documentation
└── WORKFLOW.md # This file
```
### Translation Statistics
- **Total strings:** 336 unique terms
- **Most translated components:**
- Settings UI: 202 strings (60%)
- Weather: 25 strings (7%)
- System monitors: Various
- Modals: 43 strings (13%)
### POEditor API Integration (Advanced)
For automated sync, use POEditor's API:
```bash
# Export from POEditor
curl -X POST https://api.poeditor.com/v2/projects/export \
-d api_token="YOUR_TOKEN" \
-d id="PROJECT_ID" \
-d language="es" \
-d type="key_value_json"
# Import to POEditor
curl -X POST https://api.poeditor.com/v2/projects/upload \
-d api_token="YOUR_TOKEN" \
-d id="PROJECT_ID" \
-d updating="terms_translations" \
-d language="es" \
-F file=@"translations/es.json"
```
### Best Practices
1. **Context matters:** Use the reference field to understand where strings appear
2. **Test before committing:** Always test translations in the actual UI
3. **Keep synchronized:** Re-extract after significant UI changes
4. **Preserve formatting:** Keep placeholders like `%1`, `{0}` intact
5. **Cultural adaptation:** Some strings may need cultural context, not just literal translation
### Troubleshooting
**Translations not loading?**
- Check file exists: `~/.config/DankMaterialShell/translations/{language_code}.json`
- Verify JSON syntax: `python3 -m json.tool translations/es.json`
- Check console for errors: `qs -v -p .`
**Wrong language loading?**
- Check system locale: `echo $LANG`
- Verify file naming: Must match locale prefix (es_ES → es.json)
**Missing strings?**
- Re-run extraction: `python3 extract_translations.py`
- Compare with en.json to find new strings

2132
translations/en.json Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,92 @@
#!/usr/bin/env python3
import os
import re
import json
from pathlib import Path
from collections import defaultdict
def extract_qstr_strings(root_dir):
translations = defaultdict(list)
qstr_pattern = re.compile(r'qsTr\(["\']([^"\']+)["\']\)')
for qml_file in Path(root_dir).rglob('*.qml'):
relative_path = qml_file.relative_to(root_dir)
with open(qml_file, 'r', encoding='utf-8') as f:
for line_num, line in enumerate(f, 1):
matches = qstr_pattern.findall(line)
for match in matches:
translations[match].append({
'file': str(relative_path),
'line': line_num
})
return translations
def create_poeditor_json(translations):
poeditor_data = []
for term, occurrences in sorted(translations.items()):
references = []
contexts = []
for occ in occurrences:
ref = f"{occ['file']}:{occ['line']}"
references.append(ref)
contexts.append(f"{occ['file']}:{occ['line']}")
entry = {
"term": term,
"context": contexts[0] if contexts else "",
"reference": ", ".join(references),
"comment": ""
}
poeditor_data.append(entry)
return poeditor_data
def create_template_json(translations):
template_data = []
for term in sorted(translations.keys()):
entry = {
"term": term,
"translation": "",
"context": "",
"reference": "",
"comment": ""
}
template_data.append(entry)
return template_data
def main():
script_dir = Path(__file__).parent
root_dir = script_dir.parent
translations_dir = script_dir
print("Extracting qsTr() strings from QML files...")
translations = extract_qstr_strings(root_dir)
print(f"Found {len(translations)} unique strings")
poeditor_data = create_poeditor_json(translations)
en_json_path = translations_dir / 'en.json'
with open(en_json_path, 'w', encoding='utf-8') as f:
json.dump(poeditor_data, f, indent=2, ensure_ascii=False)
print(f"Created source language file: {en_json_path}")
template_data = create_template_json(translations)
template_json_path = translations_dir / 'template.json'
with open(template_json_path, 'w', encoding='utf-8') as f:
json.dump(template_data, f, indent=2, ensure_ascii=False)
print(f"Created template file: {template_json_path}")
print("\nSummary:")
print(f" - Unique strings: {len(translations)}")
print(f" - Total occurrences: {sum(len(occs) for occs in translations.values())}")
print(f" - Source file: {en_json_path}")
print(f" - Template file: {template_json_path}")
if __name__ == '__main__':
main()

2487
translations/template.json Normal file

File diff suppressed because it is too large Load Diff