i18n: Add multilingual support for the Settings interface and update the Simplified Chinese translation file.

This commit is contained in:
月月
2025-07-14 00:33:03 +08:00
parent 0c2b807447
commit 8f3b2474d2
10 changed files with 423 additions and 164 deletions
@@ -1,3 +1,4 @@
import "root:/"
import "root:/modules/common"
import "root:/modules/common/widgets"
import "root:/modules/common/functions/color_utils.js" as ColorUtils
@@ -115,7 +116,7 @@ GroupButton {
}
StyledText {
Layout.fillWidth: true
text: dark ? "Dark" : "Light"
text: dark ? Translation.tr("Dark") : Translation.tr("Light")
color: lightDarkButtonRoot.toggled ? Appearance.m3colors.m3onPrimary : Appearance.colors.colOnLayer2
horizontalAlignment: Text.AlignHCenter
}
@@ -12,7 +12,7 @@ ContentPage {
forceWidth: true
ContentSection {
title: "Distro"
title: Translation.tr("Distro")
RowLayout {
Layout.alignment: Qt.AlignHCenter
@@ -48,21 +48,21 @@ ContentPage {
RippleButtonWithIcon {
materialIcon: "auto_stories"
mainText: "Documentation"
mainText: Translation.tr("Documentation")
onClicked: {
Qt.openUrlExternally(SystemInfo.documentationUrl)
}
}
RippleButtonWithIcon {
materialIcon: "support"
mainText: "Help & Support"
mainText: Translation.tr("Help & Support")
onClicked: {
Qt.openUrlExternally(SystemInfo.supportUrl)
}
}
RippleButtonWithIcon {
materialIcon: "bug_report"
mainText: "Report a Bug"
mainText: Translation.tr("Report a Bug")
onClicked: {
Qt.openUrlExternally(SystemInfo.bugReportUrl)
}
@@ -70,7 +70,7 @@ ContentPage {
RippleButtonWithIcon {
materialIcon: "policy"
materialIconFill: false
mainText: "Privacy Policy"
mainText: Translation.tr("Privacy Policy")
onClicked: {
Qt.openUrlExternally(SystemInfo.privacyPolicyUrl)
}
@@ -80,7 +80,7 @@ ContentPage {
}
ContentSection {
title: "Dotfiles"
title: Translation.tr("Dotfiles")
RowLayout {
Layout.alignment: Qt.AlignHCenter
@@ -95,7 +95,7 @@ ContentPage {
Layout.alignment: Qt.AlignVCenter
// spacing: 10
StyledText {
text: "illogical-impulse"
text: Translation.tr("illogical-impulse")
font.pixelSize: Appearance.font.pixelSize.title
}
StyledText {
@@ -116,7 +116,7 @@ ContentPage {
RippleButtonWithIcon {
materialIcon: "auto_stories"
mainText: "Documentation"
mainText: Translation.tr("Documentation")
onClicked: {
Qt.openUrlExternally("https://end-4.github.io/dots-hyprland-wiki/en/ii-qs/02usage/")
}
@@ -124,21 +124,21 @@ ContentPage {
RippleButtonWithIcon {
materialIcon: "adjust"
materialIconFill: false
mainText: "Issues"
mainText: Translation.tr("Issues")
onClicked: {
Qt.openUrlExternally("https://github.com/end-4/dots-hyprland/issues")
}
}
RippleButtonWithIcon {
materialIcon: "forum"
mainText: "Discussions"
mainText: Translation.tr("Discussions")
onClicked: {
Qt.openUrlExternally("https://github.com/end-4/dots-hyprland/discussions")
}
}
RippleButtonWithIcon {
materialIcon: "favorite"
mainText: "Donate"
mainText: Translation.tr("Donate")
onClicked: {
Qt.openUrlExternally("https://github.com/sponsors/end-4")
}
@@ -9,35 +9,35 @@ ContentPage {
forceWidth: true
ContentSection {
title: "Color generation"
title: Translation.tr("Color generation")
ConfigRow {
uniform: true
ConfigSwitch {
text: "Shell & utilities"
text: Translation.tr("Shell & utilities")
checked: Config.options.appearance.wallpaperTheming.enableAppsAndShell
onCheckedChanged: {
Config.options.appearance.wallpaperTheming.enableAppsAndShell = checked;
}
}
ConfigSwitch {
text: "Qt apps"
text: Translation.tr("Qt apps")
checked: Config.options.appearance.wallpaperTheming.enableQtApps
onCheckedChanged: {
Config.options.appearance.wallpaperTheming.enableQtApps = checked;
}
StyledToolTip {
content: "Shell & utilities theming must also be enabled"
content: Translation.tr("Shell & utilities theming must also be enabled")
}
}
ConfigSwitch {
text: "Terminal"
text: Translation.tr("Terminal")
checked: Config.options.appearance.wallpaperTheming.enableTerminal
onCheckedChanged: {
Config.options.appearance.wallpaperTheming.enableTerminal = checked;
}
StyledToolTip {
content: "Shell & utilities theming must also be enabled"
content: Translation.tr("Shell & utilities theming must also be enabled")
}
}
@@ -8,13 +8,13 @@ import "root:/modules/common/widgets/"
ContentPage {
forceWidth: true
ContentSection {
title: "Policies"
title: Translation.tr("Policies")
ConfigRow {
ColumnLayout {
// Weeb policy
ContentSubsectionLabel {
text: "Weeb"
text: Translation.tr("Weeb")
}
ConfigSelectionArray {
currentValue: Config.options.policies.weeb
@@ -24,15 +24,15 @@ ContentPage {
}
options: [
{
displayName: "No",
displayName: Translation.tr("No"),
value: 0
},
{
displayName: "Yes",
displayName: Translation.tr("Yes"),
value: 1
},
{
displayName: "Closet",
displayName: Translation.tr("Closet"),
value: 2
}
]
@@ -42,7 +42,7 @@ ContentPage {
ColumnLayout {
// AI policy
ContentSubsectionLabel {
text: "AI"
text: Translation.tr("AI")
}
ConfigSelectionArray {
currentValue: Config.options.policies.ai
@@ -52,15 +52,15 @@ ContentPage {
}
options: [
{
displayName: "No",
displayName: Translation.tr("No"),
value: 0
},
{
displayName: "Yes",
displayName: Translation.tr("Yes"),
value: 1
},
{
displayName: "Local only",
displayName: Translation.tr("Local only"),
value: 2
}
]
@@ -70,7 +70,7 @@ ContentPage {
}
ContentSection {
title: "Bar"
title: Translation.tr("Bar")
ConfigSelectionArray {
currentValue: Config.options.bar.cornerStyle
@@ -80,57 +80,57 @@ ContentPage {
}
options: [
{
displayName: "Hug",
displayName: Translation.tr("Hug"),
value: 0
},
{
displayName: "Float",
displayName: Translation.tr("Float"),
value: 1
},
{
displayName: "Plain rectangle",
displayName: Translation.tr("Plain rectangle"),
value: 2
}
]
}
ContentSubsection {
title: "Appearance"
title: Translation.tr("Appearance")
ConfigRow {
uniform: true
ConfigSwitch {
text: 'Borderless'
text: Translation.tr('Borderless')
checked: Config.options.bar.borderless
onCheckedChanged: {
Config.options.bar.borderless = checked;
}
}
ConfigSwitch {
text: 'Show background'
text: Translation.tr('Show background')
checked: Config.options.bar.showBackground
onCheckedChanged: {
Config.options.bar.showBackground = checked;
}
StyledToolTip {
content: "Note: turning off can hurt readability"
content: Translation.tr("Note: turning off can hurt readability")
}
}
}
}
ContentSubsection {
title: "Buttons"
title: Translation.tr("Buttons")
ConfigRow {
uniform: true
ConfigSwitch {
text: "Screen snip"
text: Translation.tr("Screen snip")
checked: Config.options.bar.utilButtons.showScreenSnip
onCheckedChanged: {
Config.options.bar.utilButtons.showScreenSnip = checked;
}
}
ConfigSwitch {
text: "Color picker"
text: Translation.tr("Color picker")
checked: Config.options.bar.utilButtons.showColorPicker
onCheckedChanged: {
Config.options.bar.utilButtons.showColorPicker = checked;
@@ -140,14 +140,14 @@ ContentPage {
ConfigRow {
uniform: true
ConfigSwitch {
text: "Mic toggle"
text: Translation.tr("Mic toggle")
checked: Config.options.bar.utilButtons.showMicToggle
onCheckedChanged: {
Config.options.bar.utilButtons.showMicToggle = checked;
}
}
ConfigSwitch {
text: "Keyboard toggle"
text: Translation.tr("Keyboard toggle")
checked: Config.options.bar.utilButtons.showKeyboardToggle
onCheckedChanged: {
Config.options.bar.utilButtons.showKeyboardToggle = checked;
@@ -157,7 +157,7 @@ ContentPage {
ConfigRow {
uniform: true
ConfigSwitch {
text: "Dark/Light toggle"
text: Translation.tr("Dark/Light toggle")
checked: Config.options.bar.utilButtons.showDarkModeToggle
onCheckedChanged: {
Config.options.bar.utilButtons.showDarkModeToggle = checked;
@@ -171,20 +171,20 @@ ContentPage {
}
ContentSubsection {
title: "Workspaces"
tooltip: "Tip: Hide icons and always show numbers for\nthe classic illogical-impulse experience"
title: Translation.tr("Workspaces")
tooltip: Translation.tr("Tip: Hide icons and always show numbers for\nthe classic illogical-impulse experience")
ConfigRow {
uniform: true
ConfigSwitch {
text: 'Show app icons'
text: Translation.tr('Show app icons')
checked: Config.options.bar.workspaces.showAppIcons
onCheckedChanged: {
Config.options.bar.workspaces.showAppIcons = checked;
}
}
ConfigSwitch {
text: 'Always show numbers'
text: Translation.tr('Always show numbers')
checked: Config.options.bar.workspaces.alwaysShowNumbers
onCheckedChanged: {
Config.options.bar.workspaces.alwaysShowNumbers = checked;
@@ -192,7 +192,7 @@ ContentPage {
}
}
ConfigSpinBox {
text: "Workspaces shown"
text: Translation.tr("Workspaces shown")
value: Config.options.bar.workspaces.shown
from: 1
to: 30
@@ -202,7 +202,7 @@ ContentPage {
}
}
ConfigSpinBox {
text: "Number show delay when pressing Super (ms)"
text: Translation.tr("Number show delay when pressing Super (ms)")
value: Config.options.bar.workspaces.showNumberDelay
from: 0
to: 1000
@@ -214,9 +214,9 @@ ContentPage {
}
ContentSubsection {
title: "Weather"
title: Translation.tr("Weather")
ConfigSwitch {
text: "Enable"
text: Translation.tr("Enable")
checked: Config.options.bar.weather.enable
onCheckedChanged: {
Config.options.bar.weather.enable = checked;
@@ -226,12 +226,12 @@ ContentPage {
}
ContentSection {
title: "Battery"
title: Translation.tr("Battery")
ConfigRow {
uniform: true
ConfigSpinBox {
text: "Low warning"
text: Translation.tr("Low warning")
value: Config.options.battery.low
from: 0
to: 100
@@ -241,7 +241,7 @@ ContentPage {
}
}
ConfigSpinBox {
text: "Critical warning"
text: Translation.tr("Critical warning")
value: Config.options.battery.critical
from: 0
to: 100
@@ -254,17 +254,17 @@ ContentPage {
ConfigRow {
uniform: true
ConfigSwitch {
text: "Automatic suspend"
text: Translation.tr("Automatic suspend")
checked: Config.options.battery.automaticSuspend
onCheckedChanged: {
Config.options.battery.automaticSuspend = checked;
}
StyledToolTip {
content: "Automatically suspends the system when battery is low"
content: Translation.tr("Automatically suspends the system when battery is low")
}
}
ConfigSpinBox {
text: "Suspend at"
text: Translation.tr("Suspend at")
value: Config.options.battery.suspend
from: 0
to: 100
@@ -277,10 +277,10 @@ ContentPage {
}
ContentSection {
title: "Dock"
title: Translation.tr("Dock")
ConfigSwitch {
text: "Enable"
text: Translation.tr("Enable")
checked: Config.options.dock.enable
onCheckedChanged: {
Config.options.dock.enable = checked;
@@ -290,14 +290,14 @@ ContentPage {
ConfigRow {
uniform: true
ConfigSwitch {
text: "Hover to reveal"
text: Translation.tr("Hover to reveal")
checked: Config.options.dock.hoverToReveal
onCheckedChanged: {
Config.options.dock.hoverToReveal = checked;
}
}
ConfigSwitch {
text: "Pinned on startup"
text: Translation.tr("Pinned on startup")
checked: Config.options.dock.pinnedOnStartup
onCheckedChanged: {
Config.options.dock.pinnedOnStartup = checked;
@@ -307,9 +307,9 @@ ContentPage {
}
ContentSection {
title: "On-screen display"
title: Translation.tr("On-screen display")
ConfigSpinBox {
text: "Timeout (ms)"
text: Translation.tr("Timeout (ms)")
value: Config.options.osd.timeout
from: 100
to: 3000
@@ -321,9 +321,9 @@ ContentPage {
}
ContentSection {
title: "Overview"
title: Translation.tr("Overview")
ConfigSpinBox {
text: "Scale (%)"
text: Translation.tr("Scale (%)")
value: Config.options.overview.scale * 100
from: 1
to: 100
@@ -335,7 +335,7 @@ ContentPage {
ConfigRow {
uniform: true
ConfigSpinBox {
text: "Rows"
text: Translation.tr("Rows")
value: Config.options.overview.rows
from: 1
to: 20
@@ -345,7 +345,7 @@ ContentPage {
}
}
ConfigSpinBox {
text: "Columns"
text: Translation.tr("Columns")
value: Config.options.overview.columns
from: 1
to: 20
@@ -358,16 +358,16 @@ ContentPage {
}
ContentSection {
title: "Screenshot tool"
title: Translation.tr("Screenshot tool")
ConfigSwitch {
text: 'Show regions of potential interest'
text: Translation.tr('Show regions of potential interest')
checked: Config.options.screenshotTool.showContentRegions
onCheckedChanged: {
Config.options.screenshotTool.showContentRegions = checked;
}
StyledToolTip {
content: "Such regions could be images or parts of the screen that have some containment.\nMight not always be accurate.\nThis is done with an image processing algorithm run locally and no AI is used."
content: Translation.tr("Such regions could be images or parts of the screen that have some containment.\nMight not always be accurate.\nThis is done with an image processing algorithm run locally and no AI is used.")
}
}
}
@@ -9,22 +9,22 @@ ContentPage {
forceWidth: true
ContentSection {
title: "Audio"
title: Translation.tr("Audio")
ConfigSwitch {
text: "Earbang protection"
text: Translation.tr("Earbang protection")
checked: Config.options.audio.protection.enable
onCheckedChanged: {
Config.options.audio.protection.enable = checked;
}
StyledToolTip {
content: "Prevents abrupt increments and restricts volume limit"
content: Translation.tr("Prevents abrupt increments and restricts volume limit")
}
}
ConfigRow {
// uniform: true
ConfigSpinBox {
text: "Max allowed increase"
text: Translation.tr("Max allowed increase")
value: Config.options.audio.protection.maxAllowedIncrease
from: 0
to: 100
@@ -34,7 +34,7 @@ ContentPage {
}
}
ConfigSpinBox {
text: "Volume limit"
text: Translation.tr("Volume limit")
value: Config.options.audio.protection.maxAllowed
from: 0
to: 100
@@ -46,10 +46,10 @@ ContentPage {
}
}
ContentSection {
title: "AI"
title: Translation.tr("AI")
MaterialTextField {
Layout.fillWidth: true
placeholderText: "System prompt"
placeholderText: Translation.tr("System prompt")
text: Config.options.ai.systemPrompt
wrapMode: TextEdit.Wrap
onTextChanged: {
@@ -61,12 +61,12 @@ ContentPage {
}
ContentSection {
title: "Battery"
title: Translation.tr("Battery")
ConfigRow {
uniform: true
ConfigSpinBox {
text: "Low warning"
text: Translation.tr("Low warning")
value: Config.options.battery.low
from: 0
to: 100
@@ -76,7 +76,7 @@ ContentPage {
}
}
ConfigSpinBox {
text: "Critical warning"
text: Translation.tr("Critical warning")
value: Config.options.battery.critical
from: 0
to: 100
@@ -89,17 +89,17 @@ ContentPage {
ConfigRow {
uniform: true
ConfigSwitch {
text: "Automatic suspend"
text: Translation.tr("Automatic suspend")
checked: Config.options.battery.automaticSuspend
onCheckedChanged: {
Config.options.battery.automaticSuspend = checked;
}
StyledToolTip {
content: "Automatically suspends the system when battery is low"
content: Translation.tr("Automatically suspends the system when battery is low")
}
}
ConfigSpinBox {
text: "Suspend at"
text: Translation.tr("Suspend at")
value: Config.options.battery.suspend
from: 0
to: 100
@@ -112,10 +112,10 @@ ContentPage {
}
ContentSection {
title: "Networking"
title: Translation.tr("Networking")
MaterialTextField {
Layout.fillWidth: true
placeholderText: "User agent (for services that require it)"
placeholderText: Translation.tr("User agent (for services that require it)")
text: Config.options.networking.userAgent
wrapMode: TextEdit.Wrap
onTextChanged: {
@@ -125,9 +125,9 @@ ContentPage {
}
ContentSection {
title: "Resources"
title: Translation.tr("Resources")
ConfigSpinBox {
text: "Polling interval (ms)"
text: Translation.tr("Polling interval (ms)")
value: Config.options.resources.updateInterval
from: 100
to: 10000
@@ -139,27 +139,27 @@ ContentPage {
}
ContentSection {
title: "Search"
title: Translation.tr("Search")
ConfigSwitch {
text: "Use Levenshtein distance-based algorithm instead of fuzzy"
text: Translation.tr("Use Levenshtein distance-based algorithm instead of fuzzy")
checked: Config.options.search.sloppy
onCheckedChanged: {
Config.options.search.sloppy = checked;
}
StyledToolTip {
content: "Could be better if you make a ton of typos,\nbut results can be weird and might not work with acronyms\n(e.g. \"GIMP\" might not give you the paint program)"
content: Translation.tr("Could be better if you make a ton of typos,\nbut results can be weird and might not work with acronyms\n(e.g. \"GIMP\" might not give you the paint program)")
}
}
ContentSubsection {
title: "Prefixes"
title: Translation.tr("Prefixes")
ConfigRow {
uniform: true
MaterialTextField {
Layout.fillWidth: true
placeholderText: "Action"
placeholderText: Translation.tr("Action")
text: Config.options.search.prefix.action
wrapMode: TextEdit.Wrap
onTextChanged: {
@@ -168,7 +168,7 @@ ContentPage {
}
MaterialTextField {
Layout.fillWidth: true
placeholderText: "Clipboard"
placeholderText: Translation.tr("Clipboard")
text: Config.options.search.prefix.clipboard
wrapMode: TextEdit.Wrap
onTextChanged: {
@@ -177,7 +177,7 @@ ContentPage {
}
MaterialTextField {
Layout.fillWidth: true
placeholderText: "Emojis"
placeholderText: Translation.tr("Emojis")
text: Config.options.search.prefix.emojis
wrapMode: TextEdit.Wrap
onTextChanged: {
@@ -187,10 +187,10 @@ ContentPage {
}
}
ContentSubsection {
title: "Web search"
title: Translation.tr("Web search")
MaterialTextField {
Layout.fillWidth: true
placeholderText: "Base URL"
placeholderText: Translation.tr("Base URL")
text: Config.options.search.engineBaseUrl
wrapMode: TextEdit.Wrap
onTextChanged: {
@@ -201,10 +201,10 @@ ContentPage {
}
ContentSection {
title: "Time"
title: Translation.tr("Time")
ContentSubsection {
title: "Format"
title: Translation.tr("Format")
tooltip: ""
ConfigSelectionArray {
@@ -215,15 +215,15 @@ ContentPage {
}
options: [
{
displayName: "24h",
displayName: Translation.tr("24h"),
value: "hh:mm"
},
{
displayName: "12h am/pm",
displayName: Translation.tr("12h am/pm"),
value: "h:mm ap"
},
{
displayName: "12h AM/PM",
displayName: Translation.tr("12h AM/PM"),
value: "h:mm AP"
},
]
@@ -28,7 +28,7 @@ ContentPage {
}
ContentSection {
title: "Colors & Wallpaper"
title: Translation.tr("Colors & Wallpaper")
// Light/Dark mode preference
ButtonGroup {
@@ -44,7 +44,7 @@ ContentPage {
// Material palette selection
ContentSubsection {
title: "Material palette"
title: Translation.tr("Material palette")
ConfigSelectionArray {
currentValue: Config.options.appearance.palette.type
configOptionName: "appearance.palette.type"
@@ -53,15 +53,15 @@ ContentPage {
Quickshell.execDetached(["bash", "-c", `${Directories.wallpaperSwitchScriptPath} --noswitch`])
}
options: [
{"value": "auto", "displayName": "Auto"},
{"value": "scheme-content", "displayName": "Content"},
{"value": "scheme-expressive", "displayName": "Expressive"},
{"value": "scheme-fidelity", "displayName": "Fidelity"},
{"value": "scheme-fruit-salad", "displayName": "Fruit Salad"},
{"value": "scheme-monochrome", "displayName": "Monochrome"},
{"value": "scheme-neutral", "displayName": "Neutral"},
{"value": "scheme-rainbow", "displayName": "Rainbow"},
{"value": "scheme-tonal-spot", "displayName": "Tonal Spot"}
{"value": "auto", "displayName": Translation.tr("Auto")},
{"value": "scheme-content", "displayName": Translation.tr("Content")},
{"value": "scheme-expressive", "displayName": Translation.tr("Expressive")},
{"value": "scheme-fidelity", "displayName": Translation.tr("Fidelity")},
{"value": "scheme-fruit-salad", "displayName": Translation.tr("Fruit Salad")},
{"value": "scheme-monochrome", "displayName": Translation.tr("Monochrome")},
{"value": "scheme-neutral", "displayName": Translation.tr("Neutral")},
{"value": "scheme-rainbow", "displayName": Translation.tr("Rainbow")},
{"value": "scheme-tonal-spot", "displayName": Translation.tr("Tonal Spot")}
]
}
}
@@ -69,26 +69,26 @@ ContentPage {
// Wallpaper selection
ContentSubsection {
title: "Wallpaper"
title: Translation.tr("Wallpaper")
RowLayout {
Layout.alignment: Qt.AlignHCenter
RippleButtonWithIcon {
id: rndWallBtn
buttonRadius: Appearance.rounding.small
materialIcon: "wallpaper"
mainText: konachanWallProc.running ? "Be patient..." : "Random: Konachan"
mainText: konachanWallProc.running ? Translation.tr("Be patient...") : Translation.tr("Random: Konachan")
onClicked: {
console.log(konachanWallProc.command.join(" "))
konachanWallProc.running = true;
}
StyledToolTip {
content: "Random SFW Anime wallpaper from Konachan\nImage is saved to ~/Pictures/Wallpapers"
content: Translation.tr("Random SFW Anime wallpaper from Konachan\nImage is saved to ~/Pictures/Wallpapers")
}
}
RippleButtonWithIcon {
materialIcon: "wallpaper"
StyledToolTip {
content: "Pick wallpaper image on your system"
content: Translation.tr("Pick wallpaper image on your system")
}
onClicked: {
Quickshell.execDetached(`${Directories.wallpaperSwitchScriptPath}`)
@@ -98,7 +98,7 @@ ContentPage {
spacing: 10
StyledText {
font.pixelSize: Appearance.font.pixelSize.small
text: "Choose file"
text: Translation.tr("Choose file")
color: Appearance.colors.colOnSecondaryContainer
}
RowLayout {
@@ -126,7 +126,7 @@ ContentPage {
StyledText {
Layout.topMargin: 5
Layout.alignment: Qt.AlignHCenter
text: "Alternatively use /dark, /light, /img in the launcher"
text: Translation.tr("Alternatively use /dark, /light, /img in the launcher")
font.pixelSize: Appearance.font.pixelSize.smaller
color: Appearance.colors.colSubtext
}
@@ -134,27 +134,27 @@ ContentPage {
}
ContentSection {
title: "Decorations & Effects"
title: Translation.tr("Decorations & Effects")
ContentSubsection {
title: "Transparency"
title: Translation.tr("Transparency")
ConfigRow {
ConfigSwitch {
text: "Enable"
text: Translation.tr("Enable")
checked: Config.options.appearance.transparency
onCheckedChanged: {
Config.options.appearance.transparency = checked;
}
StyledToolTip {
content: "Might look ass. Unsupported."
content: Translation.tr("Might look ass. Unsupported.")
}
}
}
}
ContentSubsection {
title: "Fake screen rounding"
title: Translation.tr("Fake screen rounding")
ButtonGroup {
id: fakeScreenRoundingButtonGroup
@@ -163,7 +163,7 @@ ContentPage {
SelectionGroupButton {
property int value: 0
leftmost: true
buttonText: "No"
buttonText: Translation.tr("No")
toggled: (fakeScreenRoundingButtonGroup.selectedPolicy === value)
onClicked: {
Config.options.appearance.fakeScreenRounding = value;
@@ -171,7 +171,7 @@ ContentPage {
}
SelectionGroupButton {
property int value: 1
buttonText: "Yes"
buttonText: Translation.tr("Yes")
toggled: (fakeScreenRoundingButtonGroup.selectedPolicy === value)
onClicked: {
Config.options.appearance.fakeScreenRounding = value;
@@ -180,7 +180,7 @@ ContentPage {
SelectionGroupButton {
property int value: 2
rightmost: true
buttonText: "When not fullscreen"
buttonText: Translation.tr("When not fullscreen")
toggled: (fakeScreenRoundingButtonGroup.selectedPolicy === value)
onClicked: {
Config.options.appearance.fakeScreenRounding = value;
@@ -190,19 +190,19 @@ ContentPage {
}
ContentSubsection {
title: "Shell windows"
title: Translation.tr("Shell windows")
ConfigRow {
uniform: true
ConfigSwitch {
text: "Title bar"
text: Translation.tr("Title bar")
checked: Config.options.windows.showTitlebar
onCheckedChanged: {
Config.options.windows.showTitlebar = checked;
}
}
ConfigSwitch {
text: "Center title"
text: Translation.tr("Center title")
checked: Config.options.windows.centerTitle
onCheckedChanged: {
Config.options.windows.centerTitle = checked;