1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-30 00:12:50 -05:00

i18n: Add japanese + i18n service

This commit is contained in:
bbedward
2025-10-08 16:25:06 -04:00
parent 3909ce3350
commit ed1a5bfded
88 changed files with 3778 additions and 944 deletions

75
Common/I18n.qml Normal file
View File

@@ -0,0 +1,75 @@
import QtQuick
import Quickshell
import Quickshell.Io
pragma Singleton
pragma ComponentBehavior: Bound
Singleton {
id: root
property string currentLocale: Qt.locale().name.substring(0, 2)
property var translations: ({})
property bool translationsLoaded: false
Component.onCompleted: {
translationLoader.running = true
}
Process {
id: translationLoader
command: ["cat", Qt.resolvedUrl(`../translations/${currentLocale}.json`).toString().replace("file://", "")]
running: false
stdout: StdioCollector {
onStreamFinished: () => {
try {
root.translations = JSON.parse(data)
root.translationsLoaded = true
console.log(`I18n: Loaded translations for locale '${currentLocale}' (${Object.keys(root.translations).length} contexts)`)
} catch (e) {
console.warn(`I18n: Error parsing translations for locale '${currentLocale}':`, e, "- falling back to English")
root.translationsLoaded = false
}
}
}
onExited: (code, status) => {
if (code !== 0) {
console.warn(`I18n: Failed to load translations for locale '${currentLocale}' (exit code ${code}), falling back to English`)
root.translationsLoaded = false
}
}
}
function tr(term, context) {
if (!translationsLoaded || !translations) {
return term
}
const actualContext = context || term
if (translations[actualContext] && translations[actualContext][term]) {
return translations[actualContext][term]
}
for (const ctx in translations) {
if (translations[ctx][term]) {
return translations[ctx][term]
}
}
return term
}
function trContext(context, term) {
if (!translationsLoaded || !translations) {
return term
}
if (translations[context] && translations[context][term]) {
return translations[context][term]
}
return term
}
}

View File

@@ -409,7 +409,7 @@ Item {
delegate: DankSlideout { delegate: DankSlideout {
id: notepadSlideout id: notepadSlideout
modelData: item modelData: item
title: qsTr("Notepad") title: I18n.tr("Notepad")
slideoutWidth: 480 slideoutWidth: 480
expandable: true expandable: true
expandedWidthValue: 960 expandedWidthValue: 960

View File

@@ -30,7 +30,7 @@ Item {
showKeyboardHints: modal.showKeyboardHints showKeyboardHints: modal.showKeyboardHints
onKeyboardHintsToggled: modal.showKeyboardHints = !modal.showKeyboardHints onKeyboardHintsToggled: modal.showKeyboardHints = !modal.showKeyboardHints
onClearAllClicked: { onClearAllClicked: {
clearConfirmDialog.show("Clear All History?", "This will permanently delete all clipboard history.", function () { clearConfirmDialog.show(I18n.tr("Clear All History?"), I18n.tr("This will permanently delete all clipboard history."), function () {
modal.clearAll() modal.clearAll()
modal.hide() modal.hide()
}, function () {}) }, function () {})
@@ -116,7 +116,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("No clipboard entries found") text: I18n.tr("No clipboard entries found")
anchors.centerIn: parent anchors.centerIn: parent
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceVariantText color: Theme.surfaceVariantText

View File

@@ -80,11 +80,11 @@ Rectangle {
text: { text: {
switch (entryType) { switch (entryType) {
case "image": case "image":
return "Image • " + entryPreview return I18n.tr("Image") + " • " + entryPreview
case "long_text": case "long_text":
return "Long Text" return I18n.tr("Long Text")
default: default:
return "Text" return I18n.tr("Text")
} }
} }
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall

View File

@@ -28,7 +28,7 @@ Item {
} }
StyledText { StyledText {
text: `Clipboard History (${totalCount})` text: I18n.tr("Clipboard History") + ` (${totalCount})`
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium

View File

@@ -91,7 +91,7 @@ DankModal {
function copyEntry(entry) { function copyEntry(entry) {
const entryId = entry.split('\t')[0] const entryId = entry.split('\t')[0]
Quickshell.execDetached(["sh", "-c", `cliphist decode ${entryId} | wl-copy`]) Quickshell.execDetached(["sh", "-c", `cliphist decode ${entryId} | wl-copy`])
ToastService.showInfo("Copied to clipboard") ToastService.showInfo(I18n.tr("Copied to clipboard"))
hide() hide()
} }
@@ -153,7 +153,7 @@ DankModal {
ConfirmModal { ConfirmModal {
id: clearConfirmDialog id: clearConfirmDialog
confirmButtonText: "Clear All" confirmButtonText: I18n.tr("Clear All")
confirmButtonColor: Theme.primary confirmButtonColor: Theme.primary
onVisibleChanged: { onVisibleChanged: {
if (visible) { if (visible) {

View File

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

View File

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

View File

@@ -781,7 +781,7 @@ DankModal {
width: parent.width - saveButton.width - Theme.spacingM width: parent.width - saveButton.width - Theme.spacingM
height: 40 height: 40
text: defaultFileName text: defaultFileName
placeholderText: qsTr("Enter filename...") placeholderText: I18n.tr("Enter filename...")
ignoreLeftRightKeys: false ignoreLeftRightKeys: false
focus: saveMode focus: saveMode
topPadding: Theme.spacingS topPadding: Theme.spacingS
@@ -814,7 +814,7 @@ DankModal {
StyledText { StyledText {
anchors.centerIn: parent anchors.centerIn: parent
text: qsTr("Save") text: I18n.tr("Save")
color: fileNameInput.text.trim() !== "" ? Theme.primaryText : Theme.surfaceVariantText color: fileNameInput.text.trim() !== "" ? Theme.primaryText : Theme.surfaceVariantText
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
} }
@@ -918,7 +918,7 @@ DankModal {
spacing: Theme.spacingM spacing: Theme.spacingM
StyledText { StyledText {
text: qsTr("File Already Exists") text: I18n.tr("File Already Exists")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -926,7 +926,7 @@ DankModal {
} }
StyledText { StyledText {
text: qsTr("A file with this name already exists. Do you want to overwrite it?") text: I18n.tr("A file with this name already exists. Do you want to overwrite it?")
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceTextMedium color: Theme.surfaceTextMedium
width: parent.width width: parent.width
@@ -948,7 +948,7 @@ DankModal {
StyledText { StyledText {
anchors.centerIn: parent anchors.centerIn: parent
text: qsTr("Cancel") text: I18n.tr("Cancel")
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
@@ -974,7 +974,7 @@ DankModal {
StyledText { StyledText {
anchors.centerIn: parent anchors.centerIn: parent
text: qsTr("Overwrite") text: I18n.tr("Overwrite")
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
color: Theme.background color: Theme.background
font.weight: Font.Medium font.weight: Font.Medium

View File

@@ -134,7 +134,7 @@ Rectangle {
} }
StyledText { StyledText {
text: qsTr("File Information") text: I18n.tr("File Information")
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
@@ -197,7 +197,7 @@ Rectangle {
} }
StyledText { StyledText {
text: "F1/I: Toggle • F10: Help" text: I18n.tr("F1/I: Toggle • F10: Help")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceTextMedium color: Theme.surfaceTextMedium
anchors.bottom: parent.bottom anchors.bottom: parent.bottom

View File

@@ -23,7 +23,7 @@ Rectangle {
spacing: 2 spacing: 2
StyledText { StyledText {
text: "Tab/Shift+Tab: Nav • ←→↑↓: Grid Nav • Enter/Space: Select" text: I18n.tr("Tab/Shift+Tab: Nav • ←→↑↓: Grid Nav • Enter/Space: Select")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
width: parent.width width: parent.width
@@ -32,7 +32,7 @@ Rectangle {
} }
StyledText { StyledText {
text: "Alt+←/Backspace: Back • F1/I: File Info • F10: Help • Esc: Close" text: I18n.tr("Alt+←/Backspace: Back • F1/I: File Info • F10: Help • Esc: Close")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
width: parent.width width: parent.width

View File

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

View File

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

View File

@@ -123,7 +123,7 @@ DankModal {
} }
StyledText { StyledText {
text: qsTr("System Monitor Unavailable") text: I18n.tr("System Monitor Unavailable")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Bold font.weight: Font.Bold
color: Theme.error color: Theme.error
@@ -131,7 +131,7 @@ DankModal {
} }
StyledText { StyledText {
text: "The 'dgop' tool is required for system monitoring.\nPlease install dgop to use this feature." text: I18n.tr("The 'dgop' tool is required for system monitoring.\nPlease install dgop to use this feature.")
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText color: Theme.surfaceText
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
@@ -154,7 +154,7 @@ DankModal {
height: 40 height: 40
StyledText { StyledText {
text: qsTr("System Monitor") text: I18n.tr("System Monitor")
font.pixelSize: Theme.fontSizeLarge + 4 font.pixelSize: Theme.fontSizeLarge + 4
font.weight: Font.Bold font.weight: Font.Bold
color: Theme.surfaceText color: Theme.surfaceText

View File

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

View File

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

View File

@@ -9,40 +9,40 @@ Rectangle {
property int currentIndex: 0 property int currentIndex: 0
property var parentModal: null property var parentModal: null
readonly property var sidebarItems: [{ readonly property var sidebarItems: [{
"text": "Personalization", "text": I18n.tr("Personalization"),
"icon": "person" "icon": "person"
}, { }, {
"text": "Time & Date", "text": I18n.tr("Time & Date"),
"icon": "schedule" "icon": "schedule"
}, { }, {
"text": "Weather", "text": I18n.tr("Weather"),
"icon": "cloud" "icon": "cloud"
}, { }, {
"text": "Dank Bar", "text": I18n.tr("Dank Bar"),
"icon": "toolbar" "icon": "toolbar"
}, { }, {
"text": "Widgets", "text": I18n.tr("Widgets"),
"icon": "widgets" "icon": "widgets"
}, { }, {
"text": "Dock", "text": I18n.tr("Dock"),
"icon": "dock_to_bottom" "icon": "dock_to_bottom"
}, { }, {
"text": "Displays", "text": I18n.tr("Displays"),
"icon": "monitor" "icon": "monitor"
}, { }, {
"text": "Launcher", "text": I18n.tr("Launcher"),
"icon": "apps" "icon": "apps"
}, { }, {
"text": "Theme & Colors", "text": I18n.tr("Theme & Colors"),
"icon": "palette" "icon": "palette"
}, { }, {
"text": "Power", "text": I18n.tr("Power"),
"icon": "power_settings_new" "icon": "power_settings_new"
}, { }, {
"text": "Plugins", "text": I18n.tr("Plugins"),
"icon": "extension" "icon": "extension"
}, { }, {
"text": "About", "text": I18n.tr("About"),
"icon": "info" "icon": "info"
}] }]

View File

@@ -105,10 +105,10 @@ Popup {
StyledText { StyledText {
text: { text: {
if (!contextMenu.currentApp || !contextMenu.currentApp.desktopEntry) if (!contextMenu.currentApp || !contextMenu.currentApp.desktopEntry)
return "Pin to Dock" return I18n.tr("Pin to Dock")
const appId = contextMenu.currentApp.desktopEntry.id || contextMenu.currentApp.desktopEntry.execString || "" const appId = contextMenu.currentApp.desktopEntry.id || contextMenu.currentApp.desktopEntry.execString || ""
return SessionData.isPinnedApp(appId) ? "Unpin from Dock" : "Pin to Dock" return SessionData.isPinnedApp(appId) ? I18n.tr("Unpin from Dock") : I18n.tr("Pin to Dock")
} }
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
@@ -248,7 +248,7 @@ Popup {
} }
StyledText { StyledText {
text: qsTr("Launch") text: I18n.tr("Launch")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Normal font.weight: Font.Normal
@@ -308,7 +308,7 @@ Popup {
} }
StyledText { StyledText {
text: qsTr("Launch on dGPU") text: I18n.tr("Launch on dGPU")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Normal font.weight: Font.Normal

View File

@@ -36,7 +36,7 @@ DankModal {
if (contentLoader.item.appLauncher) { if (contentLoader.item.appLauncher) {
contentLoader.item.appLauncher.searchQuery = "" contentLoader.item.appLauncher.searchQuery = ""
contentLoader.item.appLauncher.selectedIndex = 0 contentLoader.item.appLauncher.selectedIndex = 0
contentLoader.item.appLauncher.setCategory("All") contentLoader.item.appLauncher.setCategory(I18n.tr("All"))
} }
if (contentLoader.item.resetScroll) { if (contentLoader.item.resetScroll) {
contentLoader.item.resetScroll() contentLoader.item.resetScroll()

View File

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

View File

@@ -42,7 +42,7 @@ DankPopout {
if (shouldBeVisible) { if (shouldBeVisible) {
appLauncher.searchQuery = "" appLauncher.searchQuery = ""
appLauncher.selectedIndex = 0 appLauncher.selectedIndex = 0
appLauncher.setCategory("All") appLauncher.setCategory(I18n.tr("All"))
Qt.callLater(() => { Qt.callLater(() => {
if (contentLoader.item && contentLoader.item.searchField) { if (contentLoader.item && contentLoader.item.searchField) {
contentLoader.item.searchField.text = "" contentLoader.item.searchField.text = ""
@@ -180,25 +180,23 @@ DankPopout {
y: Theme.spacingS y: Theme.spacingS
spacing: Theme.spacingS spacing: Theme.spacingS
Row { Item {
width: parent.width width: parent.width
height: 40 height: 40
leftPadding: Theme.spacingS
StyledText { StyledText {
anchors.left: parent.left
anchors.leftMargin: Theme.spacingS
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
text: qsTr("Applications") text: I18n.tr("Applications")
font.pixelSize: Theme.fontSizeLarge + 4 font.pixelSize: Theme.fontSizeLarge + 4
font.weight: Font.Bold font.weight: Font.Bold
color: Theme.surfaceText color: Theme.surfaceText
} }
Item {
width: parent.width - 200
height: 1
}
StyledText { StyledText {
anchors.right: parent.right
anchors.rightMargin: Theme.spacingS
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
text: appLauncher.model.count + " apps" text: appLauncher.model.count + " apps"
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
@@ -757,7 +755,7 @@ DankPopout {
} }
StyledText { StyledText {
text: contextMenu.isPinned ? "Unpin from Dock" : "Pin to Dock" text: contextMenu.isPinned ? I18n.tr("Unpin from Dock") : I18n.tr("Pin to Dock")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Normal font.weight: Font.Normal
@@ -891,7 +889,7 @@ DankPopout {
} }
StyledText { StyledText {
text: qsTr("Launch") text: I18n.tr("Launch")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Normal font.weight: Font.Normal
@@ -951,7 +949,7 @@ DankPopout {
} }
StyledText { StyledText {
text: qsTr("Launch on dGPU") text: I18n.tr("Launch on dGPU")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Normal font.weight: Font.Normal

View File

@@ -9,7 +9,7 @@ Item {
id: root id: root
property string searchQuery: "" property string searchQuery: ""
property string selectedCategory: "All" property string selectedCategory: I18n.tr("All")
property string viewMode: "list" // "list" or "grid" property string viewMode: "list" // "list" or "grid"
property int selectedIndex: 0 property int selectedIndex: 0
property int maxResults: 50 property int maxResults: 50
@@ -20,8 +20,8 @@ Item {
property bool suppressUpdatesWhileLaunching: false property bool suppressUpdatesWhileLaunching: false
readonly property var categories: { readonly property var categories: {
const allCategories = AppSearchService.getAllCategories().filter(cat => cat !== "Education" && cat !== "Science") const allCategories = AppSearchService.getAllCategories().filter(cat => cat !== "Education" && cat !== "Science")
const result = ["All"] const result = [I18n.tr("All")]
return result.concat(allCategories.filter(cat => cat !== "All")) return result.concat(allCategories.filter(cat => cat !== I18n.tr("All")))
} }
readonly property var categoryIcons: categories.map(category => AppSearchService.getCategoryIcon(category)) readonly property var categoryIcons: categories.map(category => AppSearchService.getCategoryIcon(category))
property var appUsageRanking: AppUsageHistoryData.appUsageRanking || {} property var appUsageRanking: AppUsageHistoryData.appUsageRanking || {}
@@ -42,10 +42,11 @@ Item {
keyboardNavigationActive = false keyboardNavigationActive = false
let apps = [] let apps = []
const allCategory = I18n.tr("All")
if (searchQuery.length === 0) { if (searchQuery.length === 0) {
apps = selectedCategory === "All" ? AppSearchService.getAppsInCategory("All") : AppSearchService.getAppsInCategory(selectedCategory).slice(0, maxResults) apps = selectedCategory === allCategory ? AppSearchService.getAppsInCategory(allCategory) : AppSearchService.getAppsInCategory(selectedCategory).slice(0, maxResults)
} else { } else {
if (selectedCategory === "All") { if (selectedCategory === allCategory) {
apps = AppSearchService.searchApplications(searchQuery) apps = AppSearchService.searchApplications(searchQuery)
} else { } else {
const categoryApps = AppSearchService.getAppsInCategory(selectedCategory) const categoryApps = AppSearchService.getAppsInCategory(selectedCategory)

View File

@@ -1,13 +1,14 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import qs.Common import qs.Common
import qs.Services
import qs.Widgets import qs.Widgets
Item { Item {
id: root id: root
property var categories: [] property var categories: []
property string selectedCategory: "All" property string selectedCategory: I18n.tr("All")
property bool compact: false property bool compact: false
signal categorySelected(string category) signal categorySelected(string category)

View File

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

View File

@@ -183,11 +183,11 @@ Column {
height: 60 height: 60
primaryMessage: { primaryMessage: {
if (!DMSService.dmsAvailable) { if (!DMSService.dmsAvailable) {
return qsTr("DMS_SOCKET not available") return I18n.tr("DMS_SOCKET not available")
} }
return qsTr("NM not supported") return I18n.tr("NM not supported")
} }
secondaryMessage: qsTr("update dms for NM integration.") secondaryMessage: I18n.tr("update dms for NM integration.")
} }
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -232,7 +232,7 @@ PanelWindow {
anchors.right: closeButton.left anchors.right: closeButton.left
anchors.rightMargin: Theme.spacingXS anchors.rightMargin: Theme.spacingXS
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
text: (modelData && modelData.title) ? modelData.title: qsTr("(Unnamed)") text: (modelData && modelData.title) ? modelData.title: I18n.tr("(Unnamed)")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Normal font.weight: Font.Normal
@@ -376,7 +376,7 @@ PanelWindow {
anchors.right: parent.right anchors.right: parent.right
anchors.rightMargin: Theme.spacingS anchors.rightMargin: Theme.spacingS
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
text: root.appData && root.appData.isPinned ? "Unpin from Dock" : "Pin to Dock" text: root.appData && root.appData.isPinned ? I18n.tr("Unpin from Dock") : I18n.tr("Pin to Dock")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Normal font.weight: Font.Normal
@@ -423,7 +423,7 @@ PanelWindow {
anchors.right: parent.right anchors.right: parent.right
anchors.rightMargin: Theme.spacingS anchors.rightMargin: Theme.spacingS
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
text: qsTr("Launch on dGPU") text: I18n.tr("Launch on dGPU")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Normal font.weight: Font.Normal

View File

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

View File

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

View File

@@ -254,7 +254,7 @@ Item {
FileBrowserModal { FileBrowserModal {
id: saveBrowser id: saveBrowser
browserTitle: qsTr("Save Notepad File") browserTitle: I18n.tr("Save Notepad File")
browserIcon: "save" browserIcon: "save"
browserType: "notepad_save" browserType: "notepad_save"
fileExtensions: ["*.txt", "*.md", "*.*"] fileExtensions: ["*.txt", "*.md", "*.*"]
@@ -318,7 +318,7 @@ Item {
FileBrowserModal { FileBrowserModal {
id: loadBrowser id: loadBrowser
browserTitle: qsTr("Open Notepad File") browserTitle: I18n.tr("Open Notepad File")
browserIcon: "folder_open" browserIcon: "folder_open"
browserType: "notepad_load" browserType: "notepad_load"
fileExtensions: ["*.txt", "*.md", "*.*"] fileExtensions: ["*.txt", "*.md", "*.*"]
@@ -381,7 +381,7 @@ Item {
spacing: Theme.spacingXS spacing: Theme.spacingXS
StyledText { StyledText {
text: qsTr("Unsaved Changes") text: I18n.tr("Unsaved Changes")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
@@ -389,12 +389,12 @@ Item {
StyledText { StyledText {
text: root.pendingAction === "new" ? text: root.pendingAction === "new" ?
qsTr("You have unsaved changes. Save before creating a new file?") : I18n.tr("You have unsaved changes. Save before creating a new file?") :
root.pendingAction.startsWith("close_tab_") ? root.pendingAction.startsWith("close_tab_") ?
qsTr("You have unsaved changes. Save before closing this tab?") : I18n.tr("You have unsaved changes. Save before closing this tab?") :
root.pendingAction === "load_file" || root.pendingAction === "open" ? root.pendingAction === "load_file" || root.pendingAction === "open" ?
qsTr("You have unsaved changes. Save before opening a file?") : I18n.tr("You have unsaved changes. Save before opening a file?") :
qsTr("You have unsaved changes. Save before continuing?") I18n.tr("You have unsaved changes. Save before continuing?")
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceTextMedium color: Theme.surfaceTextMedium
width: parent.width width: parent.width
@@ -433,7 +433,7 @@ Item {
StyledText { StyledText {
id: discardText id: discardText
anchors.centerIn: parent anchors.centerIn: parent
text: qsTr("Don't Save") text: I18n.tr("Don't Save")
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
@@ -473,7 +473,7 @@ Item {
StyledText { StyledText {
id: saveAsText id: saveAsText
anchors.centerIn: parent anchors.centerIn: parent
text: qsTr("Save") text: I18n.tr("Save")
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
color: Theme.background color: Theme.background
font.weight: Font.Medium font.weight: Font.Medium

View File

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

View File

@@ -265,7 +265,7 @@ Column {
StyledText { StyledText {
Layout.fillWidth: true Layout.fillWidth: true
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
text: qsTr("Find in note...") text: I18n.tr("Find in note...")
font: searchField.font font: searchField.font
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.5) color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.5)
visible: searchField.text.length === 0 && !searchField.activeFocus visible: searchField.text.length === 0 && !searchField.activeFocus
@@ -275,7 +275,7 @@ Column {
// Match count display // Match count display
StyledText { StyledText {
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
text: matchCount > 0 ? qsTr("%1/%2").arg(currentMatchIndex + 1).arg(matchCount) : searchQuery.length > 0 ? qsTr("No matches") : "" text: matchCount > 0 ? I18n.tr("%1/%2").arg(currentMatchIndex + 1).arg(matchCount) : searchQuery.length > 0 ? I18n.tr("No matches") : ""
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: matchCount > 0 ? Theme.primary : Theme.surfaceTextMedium color: matchCount > 0 ? Theme.primary : Theme.surfaceTextMedium
visible: searchQuery.length > 0 visible: searchQuery.length > 0
@@ -383,7 +383,7 @@ Column {
TextArea.flickable: TextArea { TextArea.flickable: TextArea {
id: textArea id: textArea
placeholderText: qsTr("Start typing your notes here...") placeholderText: I18n.tr("Start typing your notes here...")
placeholderTextColor: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.5) placeholderTextColor: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g, Theme.surfaceText.b, 0.5)
font.family: SettingsData.notepadUseMonospace ? SettingsData.monoFontFamily : (SettingsData.notepadFontFamily || SettingsData.fontFamily) font.family: SettingsData.notepadUseMonospace ? SettingsData.monoFontFamily : (SettingsData.notepadFontFamily || SettingsData.fontFamily)
font.pixelSize: SettingsData.notepadFontSize * SettingsData.fontScale font.pixelSize: SettingsData.notepadFontSize * SettingsData.fontScale
@@ -508,7 +508,7 @@ Column {
} }
StyledText { StyledText {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
text: qsTr("Save") text: I18n.tr("Save")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceTextMedium color: Theme.surfaceTextMedium
} }
@@ -524,7 +524,7 @@ Column {
} }
StyledText { StyledText {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
text: qsTr("Open") text: I18n.tr("Open")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceTextMedium color: Theme.surfaceTextMedium
} }
@@ -540,7 +540,7 @@ Column {
} }
StyledText { StyledText {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
text: qsTr("New") text: I18n.tr("New")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceTextMedium color: Theme.surfaceTextMedium
} }
@@ -562,13 +562,13 @@ Column {
spacing: Theme.spacingL spacing: Theme.spacingL
StyledText { StyledText {
text: textArea.text.length > 0 ? qsTr("%1 characters").arg(textArea.text.length) : qsTr("Empty") text: textArea.text.length > 0 ? I18n.tr("%1 characters").arg(textArea.text.length) : I18n.tr("Empty")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceTextMedium color: Theme.surfaceTextMedium
} }
StyledText { StyledText {
text: qsTr("Lines: %1").arg(textArea.lineCount) text: I18n.tr("Lines: %1").arg(textArea.lineCount)
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceTextMedium color: Theme.surfaceTextMedium
visible: textArea.text.length > 0 visible: textArea.text.length > 0
@@ -578,17 +578,17 @@ Column {
StyledText { StyledText {
text: { text: {
if (autoSaveTimer.running) { if (autoSaveTimer.running) {
return qsTr("Auto-saving...") return I18n.tr("Auto-saving...")
} }
if (hasUnsavedChanges()) { if (hasUnsavedChanges()) {
if (currentTab && currentTab.isTemporary) { if (currentTab && currentTab.isTemporary) {
return qsTr("Unsaved note...") return I18n.tr("Unsaved note...")
} else { } else {
return qsTr("Unsaved changes") return I18n.tr("Unsaved changes")
} }
} else { } else {
return qsTr("Saved") return I18n.tr("Saved")
} }
} }
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -98,7 +98,7 @@ Item {
id: errorText id: errorText
visible: pluginService && !root.hasPermission visible: pluginService && !root.hasPermission
anchors.fill: parent anchors.fill: parent
text: "This plugin does not have 'settings_write' permission.\n\nAdd \"permissions\": [\"settings_read\", \"settings_write\"] to plugin.json" text: qsTr("This plugin does not have 'settings_write' permission.\n\nAdd \"permissions\": [\"settings_read\", \"settings_write\"] to plugin.json")
color: Theme.error color: Theme.error
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
wrapMode: Text.WordWrap wrapMode: Text.WordWrap

View File

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

View File

@@ -85,7 +85,7 @@ Popup {
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: Theme.spacingS anchors.leftMargin: Theme.spacingS
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
text: qsTr("Copy PID") text: I18n.tr("Copy PID")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Normal font.weight: Font.Normal
@@ -118,7 +118,7 @@ Popup {
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: Theme.spacingS anchors.leftMargin: Theme.spacingS
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
text: qsTr("Copy Process Name") text: I18n.tr("Copy Process Name")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Normal font.weight: Font.Normal
@@ -168,7 +168,7 @@ Popup {
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: Theme.spacingS anchors.leftMargin: Theme.spacingS
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
text: qsTr("Kill Process") text: I18n.tr("Kill Process")
font.pixelSize: Theme.fontSizeSmall 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) 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 font.weight: Font.Normal
@@ -204,7 +204,7 @@ Popup {
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: Theme.spacingS anchors.leftMargin: Theme.spacingS
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
text: qsTr("Force Kill Process") text: I18n.tr("Force Kill Process")
font.pixelSize: Theme.fontSizeSmall 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) 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 font.weight: Font.Normal

View File

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

View File

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

View File

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

View File

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

View File

@@ -22,170 +22,170 @@ Item {
property var baseWidgetDefinitions: { property var baseWidgetDefinitions: {
var coreWidgets = [{ var coreWidgets = [{
"id": "launcherButton", "id": "launcherButton",
"text": "App Launcher", "text": I18n.tr("App Launcher"),
"description": "Quick access to application launcher", "description": I18n.tr("Quick access to application launcher"),
"icon": "apps", "icon": "apps",
"enabled": true "enabled": true
}, { }, {
"id": "workspaceSwitcher", "id": "workspaceSwitcher",
"text": "Workspace Switcher", "text": I18n.tr("Workspace Switcher"),
"description": "Shows current workspace and allows switching", "description": I18n.tr("Shows current workspace and allows switching"),
"icon": "view_module", "icon": "view_module",
"enabled": true "enabled": true
}, { }, {
"id": "focusedWindow", "id": "focusedWindow",
"text": "Focused Window", "text": I18n.tr("Focused Window"),
"description": "Display currently focused application title", "description": I18n.tr("Display currently focused application title"),
"icon": "window", "icon": "window",
"enabled": true "enabled": true
}, { }, {
"id": "runningApps", "id": "runningApps",
"text": "Running Apps", "text": I18n.tr("Running Apps"),
"description": "Shows all running applications with focus indication", "description": I18n.tr("Shows all running applications with focus indication"),
"icon": "apps", "icon": "apps",
"enabled": true "enabled": true
}, { }, {
"id": "clock", "id": "clock",
"text": "Clock", "text": I18n.tr("Clock"),
"description": "Current time and date display", "description": I18n.tr("Current time and date display"),
"icon": "schedule", "icon": "schedule",
"enabled": true "enabled": true
}, { }, {
"id": "weather", "id": "weather",
"text": "Weather Widget", "text": I18n.tr("Weather Widget"),
"description": "Current weather conditions and temperature", "description": I18n.tr("Current weather conditions and temperature"),
"icon": "wb_sunny", "icon": "wb_sunny",
"enabled": true "enabled": true
}, { }, {
"id": "music", "id": "music",
"text": "Media Controls", "text": I18n.tr("Media Controls"),
"description": "Control currently playing media", "description": I18n.tr("Control currently playing media"),
"icon": "music_note", "icon": "music_note",
"enabled": true "enabled": true
}, { }, {
"id": "clipboard", "id": "clipboard",
"text": "Clipboard Manager", "text": I18n.tr("Clipboard Manager"),
"description": "Access clipboard history", "description": I18n.tr("Access clipboard history"),
"icon": "content_paste", "icon": "content_paste",
"enabled": true "enabled": true
}, { }, {
"id": "cpuUsage", "id": "cpuUsage",
"text": "CPU Usage", "text": I18n.tr("CPU Usage"),
"description": "CPU usage indicator", "description": I18n.tr("CPU usage indicator"),
"icon": "memory", "icon": "memory",
"enabled": DgopService.dgopAvailable, "enabled": DgopService.dgopAvailable,
"warning": !DgopService.dgopAvailable ? "Requires 'dgop' tool" : undefined "warning": !DgopService.dgopAvailable ? I18n.tr("Requires 'dgop' tool") : undefined
}, { }, {
"id": "memUsage", "id": "memUsage",
"text": "Memory Usage", "text": I18n.tr("Memory Usage"),
"description": "Memory usage indicator", "description": I18n.tr("Memory usage indicator"),
"icon": "developer_board", "icon": "developer_board",
"enabled": DgopService.dgopAvailable, "enabled": DgopService.dgopAvailable,
"warning": !DgopService.dgopAvailable ? "Requires 'dgop' tool" : undefined "warning": !DgopService.dgopAvailable ? I18n.tr("Requires 'dgop' tool") : undefined
}, { }, {
"id": "diskUsage", "id": "diskUsage",
"text": "Disk Usage", "text": I18n.tr("Disk Usage"),
"description": "Percentage", "description": I18n.tr("Percentage"),
"icon": "storage", "icon": "storage",
"enabled": DgopService.dgopAvailable, "enabled": DgopService.dgopAvailable,
"warning": !DgopService.dgopAvailable ? "Requires 'dgop' tool" : undefined "warning": !DgopService.dgopAvailable ? I18n.tr("Requires 'dgop' tool") : undefined
}, { }, {
"id": "cpuTemp", "id": "cpuTemp",
"text": "CPU Temperature", "text": I18n.tr("CPU Temperature"),
"description": "CPU temperature display", "description": I18n.tr("CPU temperature display"),
"icon": "device_thermostat", "icon": "device_thermostat",
"enabled": DgopService.dgopAvailable, "enabled": DgopService.dgopAvailable,
"warning": !DgopService.dgopAvailable ? "Requires 'dgop' tool" : undefined "warning": !DgopService.dgopAvailable ? I18n.tr("Requires 'dgop' tool") : undefined
}, { }, {
"id": "gpuTemp", "id": "gpuTemp",
"text": "GPU Temperature", "text": I18n.tr("GPU Temperature"),
"description": "GPU temperature display", "description": I18n.tr("GPU temperature display"),
"icon": "auto_awesome_mosaic", "icon": "auto_awesome_mosaic",
"warning": !DgopService.dgopAvailable ? "Requires 'dgop' tool" : "This widget prevents GPU power off states, which can significantly impact battery life on laptops. It is not recommended to use this on laptops with hybrid graphics.", "warning": !DgopService.dgopAvailable ? I18n.tr("Requires 'dgop' tool") : I18n.tr("This widget prevents GPU power off states, which can significantly impact battery life on laptops. It is not recommended to use this on laptops with hybrid graphics."),
"enabled": DgopService.dgopAvailable "enabled": DgopService.dgopAvailable
}, { }, {
"id": "systemTray", "id": "systemTray",
"text": "System Tray", "text": I18n.tr("System Tray"),
"description": "System notification area icons", "description": I18n.tr("System notification area icons"),
"icon": "notifications", "icon": "notifications",
"enabled": true "enabled": true
}, { }, {
"id": "privacyIndicator", "id": "privacyIndicator",
"text": "Privacy Indicator", "text": I18n.tr("Privacy Indicator"),
"description": "Shows when microphone, camera, or screen sharing is active", "description": I18n.tr("Shows when microphone, camera, or screen sharing is active"),
"icon": "privacy_tip", "icon": "privacy_tip",
"enabled": true "enabled": true
}, { }, {
"id": "controlCenterButton", "id": "controlCenterButton",
"text": "Control Center", "text": I18n.tr("Control Center"),
"description": "Access to system controls and settings", "description": I18n.tr("Access to system controls and settings"),
"icon": "settings", "icon": "settings",
"enabled": true "enabled": true
}, { }, {
"id": "notificationButton", "id": "notificationButton",
"text": "Notification Center", "text": I18n.tr("Notification Center"),
"description": "Access to notifications and do not disturb", "description": I18n.tr("Access to notifications and do not disturb"),
"icon": "notifications", "icon": "notifications",
"enabled": true "enabled": true
}, { }, {
"id": "battery", "id": "battery",
"text": "Battery", "text": I18n.tr("Battery"),
"description": "Battery level and power management", "description": I18n.tr("Battery level and power management"),
"icon": "battery_std", "icon": "battery_std",
"enabled": true "enabled": true
}, { }, {
"id": "vpn", "id": "vpn",
"text": "VPN", "text": I18n.tr("VPN"),
"description": "VPN status and quick connect", "description": I18n.tr("VPN status and quick connect"),
"icon": "vpn_lock", "icon": "vpn_lock",
"enabled": true "enabled": true
}, { }, {
"id": "idleInhibitor", "id": "idleInhibitor",
"text": "Idle Inhibitor", "text": I18n.tr("Idle Inhibitor"),
"description": "Prevent screen timeout", "description": I18n.tr("Prevent screen timeout"),
"icon": "motion_sensor_active", "icon": "motion_sensor_active",
"enabled": true "enabled": true
}, { }, {
"id": "spacer", "id": "spacer",
"text": "Spacer", "text": I18n.tr("Spacer"),
"description": "Customizable empty space", "description": I18n.tr("Customizable empty space"),
"icon": "more_horiz", "icon": "more_horiz",
"enabled": true "enabled": true
}, { }, {
"id": "separator", "id": "separator",
"text": "Separator", "text": I18n.tr("Separator"),
"description": "Visual divider between widgets", "description": I18n.tr("Visual divider between widgets"),
"icon": "remove", "icon": "remove",
"enabled": true "enabled": true
}, },
{ {
"id": "network_speed_monitor", "id": "network_speed_monitor",
"text": "Network Speed Monitor", "text": I18n.tr("Network Speed Monitor"),
"description": "Network download and upload speed display", "description": I18n.tr("Network download and upload speed display"),
"icon": "network_check", "icon": "network_check",
"warning": !DgopService.dgopAvailable ? "Requires 'dgop' tool" : undefined, "warning": !DgopService.dgopAvailable ? I18n.tr("Requires 'dgop' tool") : undefined,
"enabled": DgopService.dgopAvailable "enabled": DgopService.dgopAvailable
}, { }, {
"id": "keyboard_layout_name", "id": "keyboard_layout_name",
"text": "Keyboard Layout Name", "text": I18n.tr("Keyboard Layout Name"),
"description": "Displays the active keyboard layout and allows switching", "description": I18n.tr("Displays the active keyboard layout and allows switching"),
"icon": "keyboard", "icon": "keyboard",
}, { }, {
"id": "notepadButton", "id": "notepadButton",
"text": "Notepad", "text": I18n.tr("Notepad"),
"description": "Quick access to notepad", "description": I18n.tr("Quick access to notepad"),
"icon": "assignment", "icon": "assignment",
"enabled": true "enabled": true
}, { }, {
"id": "colorPicker", "id": "colorPicker",
"text": "Color Picker", "text": I18n.tr("Color Picker"),
"description": "Quick access to color picker", "description": I18n.tr("Quick access to color picker"),
"icon": "palette", "icon": "palette",
"enabled": true "enabled": true
}, { }, {
"id": "systemUpdate", "id": "systemUpdate",
"text": "System Update", "text": I18n.tr("System Update"),
"description": "Check for system updates", "description": I18n.tr("Check for system updates"),
"icon": "update", "icon": "update",
"enabled": SystemUpdateService.distributionSupported "enabled": SystemUpdateService.distributionSupported
}] }]
@@ -199,7 +199,7 @@ Item {
"description": variant.description, "description": variant.description,
"icon": variant.icon, "icon": variant.icon,
"enabled": variant.loaded, "enabled": variant.loaded,
"warning": !variant.loaded ? "Plugin is disabled - enable in Plugins settings to use" : undefined "warning": !variant.loaded ? I18n.tr("Plugin is disabled - enable in Plugins settings to use") : undefined
}) })
} }
@@ -695,7 +695,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Position") text: I18n.tr("Position")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -765,14 +765,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
StyledText { StyledText {
text: qsTr("Auto-hide") text: I18n.tr("Auto-hide")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
} }
StyledText { StyledText {
text: qsTr("Automatically hide the top bar to expand screen real estate") text: I18n.tr("Automatically hide the top bar to expand screen real estate")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
@@ -817,14 +817,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
StyledText { StyledText {
text: "Manual Show/Hide" text: I18n.tr("Manual Show/Hide")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
} }
StyledText { StyledText {
text: qsTr("Toggle top bar visibility manually (can be controlled via IPC)") text: I18n.tr("Toggle top bar visibility manually (can be controlled via IPC)")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
@@ -871,14 +871,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
StyledText { StyledText {
text: qsTr("Show on Overview") text: I18n.tr("Show on Overview")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
} }
StyledText { StyledText {
text: "Always show the top bar when niri's overview is open" text: I18n.tr("Always show the top bar when niri's overview is open")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
@@ -930,7 +930,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Spacing") text: I18n.tr("Spacing")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -943,7 +943,7 @@ Item {
spacing: Theme.spacingS spacing: Theme.spacingS
StyledText { StyledText {
text: "Edge Spacing (0 = edge-to-edge)" text: I18n.tr("Edge Spacing (0 = edge-to-edge)")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
@@ -971,7 +971,7 @@ Item {
spacing: Theme.spacingS spacing: Theme.spacingS
StyledText { StyledText {
text: qsTr("Exclusive Zone Offset") text: I18n.tr("Exclusive Zone Offset")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
@@ -999,7 +999,7 @@ Item {
spacing: Theme.spacingS spacing: Theme.spacingS
StyledText { StyledText {
text: qsTr("Size") text: I18n.tr("Size")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
@@ -1025,7 +1025,7 @@ Item {
DankToggle { DankToggle {
width: parent.width width: parent.width
text: qsTr("Square Corners") text: I18n.tr("Square Corners")
description: "Removes rounded corners from bar container." description: "Removes rounded corners from bar container."
checked: SettingsData.dankBarSquareCorners checked: SettingsData.dankBarSquareCorners
onToggled: checked => { onToggled: checked => {
@@ -1036,7 +1036,7 @@ Item {
DankToggle { DankToggle {
width: parent.width width: parent.width
text: qsTr("No Background") text: I18n.tr("No Background")
description: "Remove widget backgrounds for a minimal look with tighter spacing." description: "Remove widget backgrounds for a minimal look with tighter spacing."
checked: SettingsData.dankBarNoBackground checked: SettingsData.dankBarNoBackground
onToggled: checked => { onToggled: checked => {
@@ -1047,7 +1047,7 @@ Item {
DankToggle { DankToggle {
width: parent.width width: parent.width
text: qsTr("Goth Corners") text: I18n.tr("Goth Corners")
description: "Add curved swooping tips at the bottom of the bar." description: "Add curved swooping tips at the bottom of the bar."
checked: SettingsData.dankBarGothCornersEnabled checked: SettingsData.dankBarGothCornersEnabled
onToggled: checked => { onToggled: checked => {
@@ -1058,7 +1058,7 @@ Item {
DankToggle { DankToggle {
width: parent.width width: parent.width
text: qsTr("Border") text: I18n.tr("Border")
description: "Add a 1px border to the bar. Smart edge detection only shows border on exposed sides." description: "Add a 1px border to the bar. Smart edge detection only shows border on exposed sides."
checked: SettingsData.dankBarBorderEnabled checked: SettingsData.dankBarBorderEnabled
onToggled: checked => { onToggled: checked => {
@@ -1088,14 +1088,14 @@ Item {
spacing: Theme.spacingXS spacing: Theme.spacingXS
StyledText { StyledText {
text: qsTr("DankBar Font Scale") text: I18n.tr("DankBar Font Scale")
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
} }
StyledText { StyledText {
text: qsTr("Scale DankBar font sizes independently") text: I18n.tr("Scale DankBar font sizes independently")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
width: parent.width width: parent.width
@@ -1190,7 +1190,7 @@ Item {
StyledText { StyledText {
id: widgetTitle id: widgetTitle
text: qsTr("Widget Management") text: I18n.tr("Widget Management")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -1228,7 +1228,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Reset") text: I18n.tr("Reset")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -1270,7 +1270,7 @@ Item {
StyledText { StyledText {
width: parent.width width: parent.width
text: "Drag widgets to reorder within sections. Use the eye icon to hide/show widgets (maintains spacing), or X to remove them completely." text: I18n.tr("Drag widgets to reorder within sections. Use the eye icon to hide/show widgets (maintains spacing), or X to remove them completely.")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
@@ -1372,7 +1372,7 @@ Item {
id: centerSection id: centerSection
anchors.fill: parent anchors.fill: parent
anchors.margins: Theme.spacingL anchors.margins: Theme.spacingL
title: qsTr("Center Section") title: I18n.tr("Center Section")
titleIcon: "format_align_center" titleIcon: "format_align_center"
sectionId: "center" sectionId: "center"
allWidgets: dankBarTab.baseWidgetDefinitions allWidgets: dankBarTab.baseWidgetDefinitions

View File

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

View File

@@ -50,7 +50,7 @@ Item {
StyledText { StyledText {
id: positionText id: positionText
text: qsTr("Dock Position") text: I18n.tr("Dock Position")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -125,14 +125,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
StyledText { StyledText {
text: qsTr("Auto-hide Dock") text: I18n.tr("Auto-hide Dock")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
} }
StyledText { StyledText {
text: qsTr("Hide the dock when not in use and reveal it when hovering near the dock area") text: I18n.tr("Hide the dock when not in use and reveal it when hovering near the dock area")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
@@ -176,14 +176,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
StyledText { StyledText {
text: qsTr("Show Dock") text: I18n.tr("Show Dock")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
} }
StyledText { StyledText {
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") text: I18n.tr("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 font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
@@ -229,14 +229,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
StyledText { StyledText {
text: qsTr("Show on Overview") text: I18n.tr("Show on Overview")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
} }
StyledText { StyledText {
text: "Always show the dock when niri's overview is open" text: I18n.tr("Always show the dock when niri's overview is open")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
@@ -294,14 +294,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
StyledText { StyledText {
text: qsTr("Group by App") text: I18n.tr("Group by App")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
} }
StyledText { StyledText {
text: qsTr("Group multiple windows of the same app together with a window count indicator") text: I18n.tr("Group multiple windows of the same app together with a window count indicator")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
@@ -360,7 +360,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Spacing") text: I18n.tr("Spacing")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -373,7 +373,7 @@ Item {
spacing: Theme.spacingS spacing: Theme.spacingS
StyledText { StyledText {
text: qsTr("Padding") text: I18n.tr("Padding")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
@@ -401,7 +401,7 @@ Item {
spacing: Theme.spacingS spacing: Theme.spacingS
StyledText { StyledText {
text: qsTr("Height to Edge Gap (Exclusive Zone)") text: I18n.tr("Height to Edge Gap (Exclusive Zone)")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
@@ -464,7 +464,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Dock Transparency") text: I18n.tr("Dock Transparency")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText

View File

@@ -13,7 +13,7 @@ Item {
FileBrowserModal { FileBrowserModal {
id: logoFileBrowser id: logoFileBrowser
browserTitle: qsTr("Select Launcher Logo") browserTitle: I18n.tr("Select Launcher Logo")
browserIcon: "image" browserIcon: "image"
browserType: "generic" browserType: "generic"
filterExtensions: ["*.svg", "*.png", "*.jpg", "*.jpeg", "*.webp"] filterExtensions: ["*.svg", "*.png", "*.jpg", "*.jpeg", "*.webp"]
@@ -62,7 +62,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Launcher Button Logo") text: I18n.tr("Launcher Button Logo")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -72,7 +72,7 @@ Item {
StyledText { StyledText {
width: parent.width width: parent.width
text: qsTr("Choose the logo displayed on the launcher button in DankBar") text: I18n.tr("Choose the logo displayed on the launcher button in DankBar")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
@@ -86,12 +86,12 @@ Item {
id: logoModeGroup id: logoModeGroup
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
model: { model: {
const modes = [qsTr("Apps Icon"), qsTr("OS Logo")] const modes = [I18n.tr("Apps Icon"), I18n.tr("OS Logo")]
if (CompositorService.isNiri || CompositorService.isHyprland) { if (CompositorService.isNiri || CompositorService.isHyprland) {
const compositorName = CompositorService.isNiri ? "niri" : "Hyprland" const compositorName = CompositorService.isNiri ? "niri" : "Hyprland"
modes.push(compositorName) modes.push(compositorName)
} }
modes.push(qsTr("Custom")) modes.push(I18n.tr("Custom"))
return modes return modes
} }
currentIndex: { currentIndex: {
@@ -149,7 +149,7 @@ Item {
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: Theme.spacingM anchors.leftMargin: Theme.spacingM
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
text: SettingsData.launcherLogoCustomPath || qsTr("Select an image file...") text: SettingsData.launcherLogoCustomPath || I18n.tr("Select an image file...")
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
color: SettingsData.launcherLogoCustomPath ? Theme.surfaceText : Theme.outlineButton color: SettingsData.launcherLogoCustomPath ? Theme.surfaceText : Theme.outlineButton
width: parent.width - Theme.spacingM * 2 width: parent.width - Theme.spacingM * 2
@@ -184,7 +184,7 @@ Item {
spacing: Theme.spacingM spacing: Theme.spacingM
StyledText { StyledText {
text: qsTr("Color Override") text: I18n.tr("Color Override")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
@@ -197,7 +197,7 @@ Item {
DankButtonGroup { DankButtonGroup {
id: colorModeGroup id: colorModeGroup
model: [qsTr("Default"), qsTr("Primary"), qsTr("Surface"), qsTr("Custom")] model: [I18n.tr("Default"), I18n.tr("Primary"), I18n.tr("Surface"), I18n.tr("Custom")]
currentIndex: { currentIndex: {
const override = SettingsData.launcherLogoColorOverride const override = SettingsData.launcherLogoColorOverride
if (override === "") return 0 if (override === "") return 0
@@ -248,7 +248,7 @@ Item {
onClicked: { onClicked: {
if (PopoutService.colorPickerModal) { if (PopoutService.colorPickerModal) {
PopoutService.colorPickerModal.selectedColor = SettingsData.launcherLogoColorOverride PopoutService.colorPickerModal.selectedColor = SettingsData.launcherLogoColorOverride
PopoutService.colorPickerModal.pickerTitle = qsTr("Choose Launcher Logo Color") PopoutService.colorPickerModal.pickerTitle = I18n.tr("Choose Launcher Logo Color")
PopoutService.colorPickerModal.onColorSelectedCallback = function(selectedColor) { PopoutService.colorPickerModal.onColorSelectedCallback = function(selectedColor) {
SettingsData.setLauncherLogoColorOverride(selectedColor) SettingsData.setLauncherLogoColorOverride(selectedColor)
} }
@@ -270,7 +270,7 @@ Item {
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
StyledText { StyledText {
text: qsTr("Size Offset") text: I18n.tr("Size Offset")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
@@ -321,7 +321,7 @@ Item {
spacing: Theme.spacingS spacing: Theme.spacingS
StyledText { StyledText {
text: qsTr("Brightness") text: I18n.tr("Brightness")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
@@ -350,7 +350,7 @@ Item {
spacing: Theme.spacingS spacing: Theme.spacingS
StyledText { StyledText {
text: qsTr("Contrast") text: I18n.tr("Contrast")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
@@ -379,7 +379,7 @@ Item {
spacing: Theme.spacingS spacing: Theme.spacingS
StyledText { StyledText {
text: qsTr("Invert on mode change") text: I18n.tr("Invert on mode change")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
@@ -430,7 +430,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Launch Prefix") text: I18n.tr("Launch Prefix")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -440,7 +440,7 @@ Item {
StyledText { StyledText {
width: parent.width width: parent.width
text: "Add a custom prefix to all application launches. This can be used for things like 'uwsm-app', 'systemd-run', or other command wrappers." text: I18n.tr("Add a custom prefix to all application launches. This can be used for things like 'uwsm-app', 'systemd-run', or other command wrappers.")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
@@ -510,7 +510,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Recently Used Apps") text: I18n.tr("Recently Used Apps")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -540,7 +540,7 @@ Item {
StyledText { StyledText {
width: parent.width width: parent.width
text: qsTr("Apps are ordered by usage frequency, then last used, then alphabetically.") text: I18n.tr("Apps are ordered by usage frequency, then last used, then alphabetically.")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
wrapMode: Text.WordWrap wrapMode: Text.WordWrap

View File

@@ -104,7 +104,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Wallpaper") text: I18n.tr("Wallpaper")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -438,14 +438,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
StyledText { StyledText {
text: qsTr("Per-Mode Wallpapers") text: I18n.tr("Per-Mode Wallpapers")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
} }
StyledText { StyledText {
text: qsTr("Set different wallpapers for light and dark mode") text: I18n.tr("Set different wallpapers for light and dark mode")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
width: parent.width width: parent.width
@@ -495,14 +495,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
StyledText { StyledText {
text: qsTr("Per-Monitor Wallpapers") text: I18n.tr("Per-Monitor Wallpapers")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
} }
StyledText { StyledText {
text: qsTr("Set different wallpapers for each connected monitor") text: I18n.tr("Set different wallpapers for each connected monitor")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
width: parent.width width: parent.width
@@ -527,7 +527,7 @@ Item {
leftPadding: Theme.iconSize + Theme.spacingM leftPadding: Theme.iconSize + Theme.spacingM
StyledText { StyledText {
text: qsTr("Monitor Selection:") text: I18n.tr("Monitor Selection:")
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
@@ -536,8 +536,8 @@ Item {
DankDropdown { DankDropdown {
id: monitorDropdown id: monitorDropdown
text: qsTr("Monitor") text: I18n.tr("Monitor")
description: "Select monitor to configure wallpaper" description: I18n.tr("Select monitor to configure wallpaper")
currentValue: selectedMonitorName || "No monitors" currentValue: selectedMonitorName || "No monitors"
options: { options: {
var screenNames = [] var screenNames = []
@@ -584,14 +584,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
StyledText { StyledText {
text: qsTr("Automatic Cycling") text: I18n.tr("Automatic Cycling")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
} }
StyledText { StyledText {
text: qsTr("Automatically cycle through wallpapers in the same folder") text: I18n.tr("Automatically cycle through wallpapers in the same folder")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
width: parent.width width: parent.width
@@ -633,7 +633,7 @@ Item {
width: parent.width - parent.leftPadding width: parent.width - parent.leftPadding
StyledText { StyledText {
text: qsTr("Mode:") text: I18n.tr("Mode:")
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
@@ -700,8 +700,8 @@ Item {
return SessionData.wallpaperCyclingMode === "interval" return SessionData.wallpaperCyclingMode === "interval"
} }
} }
text: qsTr("Interval") text: I18n.tr("Interval")
description: "How often to change wallpaper" description: I18n.tr("How often to change wallpaper")
options: intervalOptions options: intervalOptions
currentValue: { currentValue: {
var currentSeconds var currentSeconds
@@ -755,7 +755,7 @@ Item {
width: parent.width - parent.leftPadding width: parent.width - parent.leftPadding
StyledText { StyledText {
text: qsTr("Daily at:") text: I18n.tr("Daily at:")
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText color: Theme.surfaceText
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
@@ -830,7 +830,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("24-hour format") text: I18n.tr("24-hour format")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
@@ -847,8 +847,8 @@ Item {
} }
DankDropdown { DankDropdown {
text: qsTr("Transition Effect") text: I18n.tr("Transition Effect")
description: "Visual effect used when wallpaper changes" description: I18n.tr("Visual effect used when wallpaper changes")
currentValue: { currentValue: {
if (SessionData.wallpaperTransition === "random") return "Random" if (SessionData.wallpaperTransition === "random") return "Random"
return SessionData.wallpaperTransition.charAt(0).toUpperCase() + SessionData.wallpaperTransition.slice(1) return SessionData.wallpaperTransition.charAt(0).toUpperCase() + SessionData.wallpaperTransition.slice(1)
@@ -866,14 +866,14 @@ Item {
visible: SessionData.wallpaperTransition === "random" visible: SessionData.wallpaperTransition === "random"
StyledText { StyledText {
text: qsTr("Include Transitions") text: I18n.tr("Include Transitions")
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
} }
StyledText { StyledText {
text: qsTr("Select which transitions to include in randomization") text: I18n.tr("Select which transitions to include in randomization")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
@@ -938,14 +938,14 @@ Item {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
StyledText { StyledText {
text: qsTr("Dynamic Theming") text: I18n.tr("Dynamic Theming")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
} }
StyledText { StyledText {
text: qsTr("Automatically extract colors from wallpaper") text: I18n.tr("Automatically extract colors from wallpaper")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
@@ -970,7 +970,7 @@ Item {
DankDropdown { DankDropdown {
id: personalizationMatugenPaletteDropdown id: personalizationMatugenPaletteDropdown
text: qsTr("Matugen Palette") text: I18n.tr("Matugen Palette")
description: "Select the palette algorithm used for wallpaper-based colors" description: "Select the palette algorithm used for wallpaper-based colors"
options: Theme.availableMatugenSchemes.map(function (option) { return option.label }) options: Theme.availableMatugenSchemes.map(function (option) { return option.label })
currentValue: Theme.getMatugenScheme(SettingsData.matugenScheme).label currentValue: Theme.getMatugenScheme(SettingsData.matugenScheme).label
@@ -999,7 +999,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("matugen not detected - dynamic theming unavailable") text: I18n.tr("matugen not detected - dynamic theming unavailable")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.error color: Theme.error
visible: ToastService.wallpaperErrorStatus === "matugen_missing" visible: ToastService.wallpaperErrorStatus === "matugen_missing"
@@ -1037,7 +1037,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Display Settings") text: I18n.tr("Display Settings")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -1047,8 +1047,8 @@ Item {
DankToggle { DankToggle {
width: parent.width width: parent.width
text: qsTr("Light Mode") text: I18n.tr("Light Mode")
description: "Use light theme instead of dark theme" description: I18n.tr("Use light theme instead of dark theme")
checked: SessionData.isLightMode checked: SessionData.isLightMode
onToggleCompleted: checked => { onToggleCompleted: checked => {
Theme.screenTransition() Theme.screenTransition()
@@ -1068,7 +1068,7 @@ Item {
id: nightModeToggle id: nightModeToggle
width: parent.width width: parent.width
text: qsTr("Night Mode") text: I18n.tr("Night Mode")
description: "Apply warm color temperature to reduce eye strain. Use automation settings below to control when it activates." description: "Apply warm color temperature to reduce eye strain. Use automation settings below to control when it activates."
checked: DisplayService.nightModeEnabled checked: DisplayService.nightModeEnabled
onToggled: checked => { onToggled: checked => {
@@ -1085,8 +1085,8 @@ Item {
} }
DankDropdown { DankDropdown {
text: qsTr("Temperature") text: I18n.tr("Temperature")
description: "Color temperature for night mode" description: I18n.tr("Color temperature for night mode")
currentValue: SessionData.nightModeTemperature + "K" currentValue: SessionData.nightModeTemperature + "K"
options: { options: {
var temps = [] var temps = []
@@ -1104,7 +1104,7 @@ Item {
DankToggle { DankToggle {
id: automaticToggle id: automaticToggle
width: parent.width width: parent.width
text: qsTr("Automatic Control") text: I18n.tr("Automatic Control")
description: "Only adjust gamma based on time or location rules." description: "Only adjust gamma based on time or location rules."
checked: SessionData.nightModeAutoEnabled checked: SessionData.nightModeAutoEnabled
onToggled: checked => { onToggled: checked => {
@@ -1187,7 +1187,7 @@ Item {
leftPadding: 45 leftPadding: 45
StyledText { StyledText {
text: qsTr("Hour") text: I18n.tr("Hour")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
width: 50 width: 50
@@ -1196,7 +1196,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Minute") text: I18n.tr("Minute")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
width: 50 width: 50
@@ -1212,7 +1212,7 @@ Item {
StyledText { StyledText {
id: startLabel id: startLabel
text: qsTr("Start") text: I18n.tr("Start")
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText color: Theme.surfaceText
width: 50 width: 50
@@ -1260,7 +1260,7 @@ Item {
height: 32 height: 32
StyledText { StyledText {
text: qsTr("End") text: I18n.tr("End")
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText color: Theme.surfaceText
width: startLabel.width width: startLabel.width
@@ -1311,7 +1311,7 @@ Item {
DankToggle { DankToggle {
width: parent.width width: parent.width
text: qsTr("Auto-location") text: I18n.tr("Auto-location")
description: DisplayService.geoclueAvailable ? "Use automatic location detection (geoclue2)" : "Geoclue service not running - cannot auto-detect location" description: DisplayService.geoclueAvailable ? "Use automatic location detection (geoclue2)" : "Geoclue service not running - cannot auto-detect location"
checked: SessionData.nightModeLocationProvider === "geoclue2" checked: SessionData.nightModeLocationProvider === "geoclue2"
enabled: DisplayService.geoclueAvailable enabled: DisplayService.geoclueAvailable
@@ -1327,7 +1327,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Manual Coordinates") text: I18n.tr("Manual Coordinates")
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText color: Theme.surfaceText
visible: SessionData.nightModeLocationProvider !== "geoclue2" visible: SessionData.nightModeLocationProvider !== "geoclue2"
@@ -1341,7 +1341,7 @@ Item {
spacing: Theme.spacingXS spacing: Theme.spacingXS
StyledText { StyledText {
text: qsTr("Latitude") text: I18n.tr("Latitude")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
} }
@@ -1364,7 +1364,7 @@ Item {
spacing: Theme.spacingXS spacing: Theme.spacingXS
StyledText { StyledText {
text: qsTr("Longitude") text: I18n.tr("Longitude")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
} }
@@ -1385,7 +1385,7 @@ Item {
} }
StyledText { StyledText {
text: "Uses sunrise/sunset times to automatically adjust night mode based on your location." text: I18n.tr("Uses sunrise/sunset times to automatically adjust night mode based on your location.")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
width: parent.width width: parent.width
@@ -1424,7 +1424,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Notification Popups") text: I18n.tr("Notification Popups")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -1433,8 +1433,8 @@ Item {
} }
DankDropdown { DankDropdown {
text: qsTr("Popup Position") text: I18n.tr("Popup Position")
description: "Choose where notification popups appear on screen" description: I18n.tr("Choose where notification popups appear on screen")
currentValue: { currentValue: {
if (SettingsData.notificationPopupPosition === -1) { if (SettingsData.notificationPopupPosition === -1) {
return "Top Center" return "Top Center"
@@ -1484,8 +1484,8 @@ Item {
DankToggle { DankToggle {
width: parent.width width: parent.width
text: qsTr("Always Show OSD Percentage") text: I18n.tr("Always Show OSD Percentage")
description: "Display volume and brightness percentage values by default in OSD popups" description: I18n.tr("Display volume and brightness percentage values by default in OSD popups")
checked: SettingsData.osdAlwaysShowValue checked: SettingsData.osdAlwaysShowValue
onToggled: checked => { onToggled: checked => {
SettingsData.setOsdAlwaysShowValue(checked) SettingsData.setOsdAlwaysShowValue(checked)
@@ -1522,7 +1522,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Font Settings") text: I18n.tr("Font Settings")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -1531,8 +1531,8 @@ Item {
} }
DankDropdown { DankDropdown {
text: qsTr("Font Family") text: I18n.tr("Font Family")
description: "Select system font family" description: I18n.tr("Select system font family")
currentValue: { currentValue: {
if (SettingsData.fontFamily === SettingsData.defaultFontFamily) if (SettingsData.fontFamily === SettingsData.defaultFontFamily)
return "Default" return "Default"
@@ -1552,8 +1552,8 @@ Item {
} }
DankDropdown { DankDropdown {
text: qsTr("Font Weight") text: I18n.tr("Font Weight")
description: "Select font weight" description: I18n.tr("Select font weight")
currentValue: { currentValue: {
switch (SettingsData.fontWeight) { switch (SettingsData.fontWeight) {
case Font.Thin: case Font.Thin:
@@ -1618,8 +1618,8 @@ Item {
} }
DankDropdown { DankDropdown {
text: qsTr("Monospace Font") text: I18n.tr("Monospace Font")
description: "Select monospace font for process list and technical displays" description: I18n.tr("Select monospace font for process list and technical displays")
currentValue: { currentValue: {
if (SettingsData.monoFontFamily === SettingsData.defaultMonoFontFamily) if (SettingsData.monoFontFamily === SettingsData.defaultMonoFontFamily)
return "Default" return "Default"
@@ -1653,14 +1653,14 @@ Item {
spacing: Theme.spacingXS spacing: Theme.spacingXS
StyledText { StyledText {
text: qsTr("Font Scale") text: I18n.tr("Font Scale")
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
} }
StyledText { StyledText {
text: qsTr("Scale all font sizes") text: I18n.tr("Scale all font sizes")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
width: parent.width width: parent.width
@@ -1752,7 +1752,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Animations") text: I18n.tr("Animations")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -1765,14 +1765,14 @@ Item {
spacing: Theme.spacingS spacing: Theme.spacingS
StyledText { StyledText {
text: qsTr("Animation Speed") text: I18n.tr("Animation Speed")
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
} }
StyledText { StyledText {
text: qsTr("Control the speed of animations throughout the interface") text: I18n.tr("Control the speed of animations throughout the interface")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
@@ -1823,7 +1823,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Lock Screen") text: I18n.tr("Lock Screen")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -1833,7 +1833,7 @@ Item {
DankToggle { DankToggle {
width: parent.width width: parent.width
text: qsTr("Show Power Actions") text: I18n.tr("Show Power Actions")
description: "Show power, restart, and logout buttons on the lock screen" description: "Show power, restart, and logout buttons on the lock screen"
checked: SettingsData.lockScreenShowPowerActions checked: SettingsData.lockScreenShowPowerActions
onToggled: checked => { onToggled: checked => {

View File

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

View File

@@ -130,7 +130,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Theme Color") text: I18n.tr("Theme Color")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -651,7 +651,7 @@ Item {
DankDropdown { DankDropdown {
id: matugenPaletteDropdown id: matugenPaletteDropdown
text: qsTr("Matugen Palette") text: I18n.tr("Matugen Palette")
description: "Select the palette algorithm used for wallpaper-based colors" description: "Select the palette algorithm used for wallpaper-based colors"
options: Theme.availableMatugenSchemes.map(function (option) { return option.label }) options: Theme.availableMatugenSchemes.map(function (option) { return option.label })
currentValue: Theme.getMatugenScheme(SettingsData.matugenScheme).label currentValue: Theme.getMatugenScheme(SettingsData.matugenScheme).label
@@ -756,7 +756,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Widget Styling") text: I18n.tr("Widget Styling")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -769,7 +769,7 @@ Item {
spacing: Theme.spacingS spacing: Theme.spacingS
StyledText { StyledText {
text: qsTr("Dank Bar Transparency") text: I18n.tr("Dank Bar Transparency")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
@@ -803,7 +803,7 @@ Item {
StyledText { StyledText {
id: transparencyLabel id: transparencyLabel
text: qsTr("Dank Bar Widget Transparency") text: I18n.tr("Dank Bar Widget Transparency")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
@@ -867,7 +867,7 @@ Item {
spacing: Theme.spacingS spacing: Theme.spacingS
StyledText { StyledText {
text: qsTr("Popup Transparency") text: I18n.tr("Popup Transparency")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
@@ -904,7 +904,7 @@ Item {
spacing: Theme.spacingS spacing: Theme.spacingS
StyledText { StyledText {
text: "Corner Radius (0 = square corners)" text: I18n.tr("Corner Radius (0 = square corners)")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
@@ -955,7 +955,7 @@ Item {
StyledText { StyledText {
id: warningText id: warningText
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
text: "The below settings will modify your GTK and Qt settings. If you wish to preserve your current configurations, please back them up (qt5ct.conf|qt6ct.conf and ~/.config/gtk-3.0|gtk-4.0)." text: I18n.tr("The below settings will modify your GTK and Qt settings. If you wish to preserve your current configurations, please back them up (qt5ct.conf|qt6ct.conf and ~/.config/gtk-3.0|gtk-4.0).")
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
width: parent.width - Theme.iconSizeSmall - Theme.spacingM width: parent.width - Theme.iconSizeSmall - Theme.spacingM
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
@@ -993,7 +993,7 @@ Item {
DankDropdown { DankDropdown {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
text: qsTr("Icon Theme") text: I18n.tr("Icon Theme")
description: "DankShell & System Icons\n(requires restart)" description: "DankShell & System Icons\n(requires restart)"
currentValue: SettingsData.iconTheme currentValue: SettingsData.iconTheme
enableFuzzySearch: true enableFuzzySearch: true
@@ -1046,7 +1046,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("System App Theming") text: I18n.tr("System App Theming")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -1078,7 +1078,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Apply GTK Colors") text: I18n.tr("Apply GTK Colors")
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
color: Theme.primary color: Theme.primary
font.weight: Font.Medium font.weight: Font.Medium
@@ -1114,7 +1114,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Apply Qt Colors") text: I18n.tr("Apply Qt Colors")
font.pixelSize: Theme.fontSizeMedium font.pixelSize: Theme.fontSizeMedium
color: Theme.primary color: Theme.primary
font.weight: Font.Medium font.weight: Font.Medium

View File

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

View File

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

View File

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

View File

@@ -47,7 +47,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Workspace Settings") text: I18n.tr("Workspace Settings")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -57,7 +57,7 @@ Item {
DankToggle { DankToggle {
width: parent.width width: parent.width
text: qsTr("Workspace Index Numbers") text: I18n.tr("Workspace Index Numbers")
description: "Show workspace index numbers in the top bar workspace switcher" description: "Show workspace index numbers in the top bar workspace switcher"
checked: SettingsData.showWorkspaceIndex checked: SettingsData.showWorkspaceIndex
onToggled: checked => { onToggled: checked => {
@@ -68,7 +68,7 @@ Item {
DankToggle { DankToggle {
width: parent.width width: parent.width
text: qsTr("Workspace Padding") text: I18n.tr("Workspace Padding")
description: "Always show a minimum of 3 workspaces, even if fewer are available" description: "Always show a minimum of 3 workspaces, even if fewer are available"
checked: SettingsData.showWorkspacePadding checked: SettingsData.showWorkspacePadding
onToggled: checked => { onToggled: checked => {
@@ -79,7 +79,7 @@ Item {
DankToggle { DankToggle {
width: parent.width width: parent.width
text: qsTr("Show Workspace Apps") text: I18n.tr("Show Workspace Apps")
description: "Display application icons in workspace indicators" description: "Display application icons in workspace indicators"
checked: SettingsData.showWorkspaceApps checked: SettingsData.showWorkspaceApps
onToggled: checked => { onToggled: checked => {
@@ -101,7 +101,7 @@ Item {
spacing: Theme.spacingS spacing: Theme.spacingS
StyledText { StyledText {
text: qsTr("Max apps to show") text: I18n.tr("Max apps to show")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText color: Theme.surfaceText
font.weight: Font.Medium font.weight: Font.Medium
@@ -132,7 +132,7 @@ Item {
DankToggle { DankToggle {
width: parent.width width: parent.width
text: qsTr("Per-Monitor Workspaces") text: I18n.tr("Per-Monitor Workspaces")
description: "Show only workspaces belonging to each specific monitor." description: "Show only workspaces belonging to each specific monitor."
checked: SettingsData.workspacesPerMonitor checked: SettingsData.workspacesPerMonitor
onToggled: checked => { onToggled: checked => {
@@ -170,7 +170,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Media Player Settings") text: I18n.tr("Media Player Settings")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -180,7 +180,7 @@ Item {
DankToggle { DankToggle {
width: parent.width width: parent.width
text: qsTr("Wave Progress Bars") text: I18n.tr("Wave Progress Bars")
description: "Use animated wave progress bars for media playback" description: "Use animated wave progress bars for media playback"
checked: SettingsData.waveProgressEnabled checked: SettingsData.waveProgressEnabled
onToggled: checked => { onToggled: checked => {
@@ -218,7 +218,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Running Apps Settings") text: I18n.tr("Running Apps Settings")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -228,7 +228,7 @@ Item {
DankToggle { DankToggle {
width: parent.width width: parent.width
text: qsTr("Running Apps Only In Current Workspace") text: I18n.tr("Running Apps Only In Current Workspace")
description: "Show only apps running in current workspace" description: "Show only apps running in current workspace"
checked: SettingsData.runningAppsCurrentWorkspace checked: SettingsData.runningAppsCurrentWorkspace
onToggled: checked => { onToggled: checked => {
@@ -268,7 +268,7 @@ Item {
} }
StyledText { StyledText {
text: qsTr("Named Workspace Icons") text: I18n.tr("Named Workspace Icons")
font.pixelSize: Theme.fontSizeLarge font.pixelSize: Theme.fontSizeLarge
font.weight: Font.Medium font.weight: Font.Medium
color: Theme.surfaceText color: Theme.surfaceText
@@ -278,7 +278,7 @@ Item {
StyledText { StyledText {
width: parent.width width: parent.width
text: qsTr("Configure icons for named workspaces. Icons take priority over numbers when both are enabled.") text: I18n.tr("Configure icons for named workspaces. Icons take priority over numbers when both are enabled.")
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.outline color: Theme.outline
wrapMode: Text.WordWrap wrapMode: Text.WordWrap

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -166,8 +166,8 @@ Singleton {
try { try {
const date = new Date(isoString) const date = new Date(isoString)
if (index === 0) return qsTr("Today") if (index === 0) return I18n.tr("Today")
if (index === 1) return qsTr("Tomorrow") if (index === 1) return I18n.tr("Tomorrow")
const locale = Qt.locale() const locale = Qt.locale()
return locale.dayName(date.getDay(), Locale.ShortFormat) return locale.dayName(date.getDay(), Locale.ShortFormat)

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -8,19 +8,28 @@ from collections import defaultdict
def extract_qstr_strings(root_dir): def extract_qstr_strings(root_dir):
translations = defaultdict(list) translations = defaultdict(list)
qstr_pattern = re.compile(r'qsTr\(["\']([^"\']+)["\']\)') qstr_pattern = re.compile(r'qsTr\(["\']([^"\']+)["\']\)')
i18n_pattern = re.compile(r'I18n\.tr\(["\']([^"\']+)["\'],\s*["\']([^"\']+)["\']\)')
for qml_file in Path(root_dir).rglob('*.qml'): for qml_file in Path(root_dir).rglob('*.qml'):
relative_path = qml_file.relative_to(root_dir) relative_path = qml_file.relative_to(root_dir)
with open(qml_file, 'r', encoding='utf-8') as f: with open(qml_file, 'r', encoding='utf-8') as f:
for line_num, line in enumerate(f, 1): for line_num, line in enumerate(f, 1):
matches = qstr_pattern.findall(line) qstr_matches = qstr_pattern.findall(line)
for match in matches: for match in qstr_matches:
translations[match].append({ translations[match].append({
'file': str(relative_path), 'file': str(relative_path),
'line': line_num 'line': line_num
}) })
i18n_matches = i18n_pattern.findall(line)
for match in i18n_matches:
term = match[0]
translations[term].append({
'file': str(relative_path),
'line': line_num
})
return translations return translations
def create_poeditor_json(translations): def create_poeditor_json(translations):
@@ -28,16 +37,14 @@ def create_poeditor_json(translations):
for term, occurrences in sorted(translations.items()): for term, occurrences in sorted(translations.items()):
references = [] references = []
contexts = []
for occ in occurrences: for occ in occurrences:
ref = f"{occ['file']}:{occ['line']}" ref = f"{occ['file']}:{occ['line']}"
references.append(ref) references.append(ref)
contexts.append(f"{occ['file']}:{occ['line']}")
entry = { entry = {
"term": term, "term": term,
"context": contexts[0] if contexts else "", "context": term,
"reference": ", ".join(references), "reference": ", ".join(references),
"comment": "" "comment": ""
} }

1391
translations/ja.json Normal file

File diff suppressed because it is too large Load Diff

48
translations/replace_qstr.py Executable file
View File

@@ -0,0 +1,48 @@
#!/usr/bin/env python3
import os
import re
from pathlib import Path
def replace_qstr_in_file(file_path, root_dir):
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
original_content = content
relative_path = file_path.relative_to(root_dir)
qstr_pattern = re.compile(r'qsTr\("([^"]+)"\)')
def replacement(match):
term = match.group(1)
context = term
return f'I18n.tr("{term}", "{context}")'
content = qstr_pattern.sub(replacement, content)
if content != original_content:
with open(file_path, 'w', encoding='utf-8') as f:
f.write(content)
return True
return False
def main():
script_dir = Path(__file__).parent
root_dir = script_dir.parent
modified_count = 0
for qml_file in root_dir.rglob('*.qml'):
if 'translations' in str(qml_file):
continue
try:
if replace_qstr_in_file(qml_file, root_dir):
modified_count += 1
print(f"Modified: {qml_file.relative_to(root_dir)}")
except Exception as e:
print(f"Error processing {qml_file}: {e}")
print(f"\nTotal files modified: {modified_count}")
if __name__ == '__main__':
main()

File diff suppressed because it is too large Load Diff