Fix strings detections and translates the entire "Appearance" section in settings

This commit is contained in:
Felipe Giacomini Cocco 2026-02-05 00:12:59 -03:00
commit 8f0daa87ca
3 changed files with 504 additions and 39 deletions

View file

@ -1667,6 +1667,26 @@
} }
} }
}, },
"accent" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "destaque"
}
}
}
},
"Accent color" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "Cor de destaque"
}
}
}
},
"Accent colour" : { "Accent colour" : {
"comment" : "A label describing the colour picker for the timer preset.", "comment" : "A label describing the colour picker for the timer preset.",
"isCommentAutoGenerated" : true, "isCommentAutoGenerated" : true,
@ -2615,6 +2635,16 @@
} }
} }
}, },
"album art" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "capa do álbum"
}
}
}
},
"All" : { "All" : {
"localizations" : { "localizations" : {
"pt-BR" : { "pt-BR" : {
@ -3114,6 +3144,16 @@
} }
} }
}, },
"app icon" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "ícone do app"
}
}
}
},
"App icon" : { "App icon" : {
"localizations" : { "localizations" : {
"ar" : { "ar" : {
@ -3226,6 +3266,16 @@
} }
} }
}, },
"appearance" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "aparência"
}
}
}
},
"Appearance" : { "Appearance" : {
"localizations" : { "localizations" : {
"ar" : { "ar" : {
@ -3424,6 +3474,9 @@
} }
} }
}, },
"audio" : {
"shouldTranslate" : false
},
"Audio feedback" : { "Audio feedback" : {
"comment" : "A section header that lists audio feedback settings.", "comment" : "A section header that lists audio feedback settings.",
"isCommentAutoGenerated" : true, "isCommentAutoGenerated" : true,
@ -4280,6 +4333,16 @@
} }
} }
}, },
"blur" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "desfoque"
}
}
}
},
"Boost your productivity with Clipboard Manager" : { "Boost your productivity with Clipboard Manager" : {
"localizations" : { "localizations" : {
"ar" : { "ar" : {
@ -5395,6 +5458,16 @@
} }
} }
}, },
"circle" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "círculo"
}
}
}
},
"Circle" : { "Circle" : {
"localizations" : { "localizations" : {
"ar" : { "ar" : {
@ -5925,6 +5998,16 @@
} }
} }
}, },
"close animation" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "animação de fechar"
}
}
}
},
"Close assistant" : { "Close assistant" : {
"localizations" : { "localizations" : {
"fr" : { "fr" : {
@ -6290,7 +6373,7 @@
"pt-BR" : { "pt-BR" : {
"stringUnit" : { "stringUnit" : {
"state" : "translated", "state" : "translated",
"value" : "Configure os materiais da tela de bloqueio na aba Aparência. O Custom Liquid desbloqueia controles deslizantes variantes para ambos os widgets sempre que o Liquid Glass é selecionado." "value" : "Configure os materiais da tela de bloqueio na aba Aparência. O Liquid Customizado desbloqueia controles deslizantes variantes para ambos os widgets sempre que o Liquid Glass é selecionado."
} }
} }
} }
@ -6584,6 +6667,26 @@
}, },
"shouldTranslate" : false "shouldTranslate" : false
}, },
"corner radius" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "raio das bordas"
}
}
}
},
"Corner radius scaling" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "Escala do raio das bordas"
}
}
}
},
"Countdown style" : { "Countdown style" : {
"comment" : "A label for the style of countdown to use when reminders are live.", "comment" : "A label for the style of countdown to use when reminders are live.",
"isCommentAutoGenerated" : true, "isCommentAutoGenerated" : true,
@ -6811,6 +6914,26 @@
} }
} }
}, },
"custom icon" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "ícone customizado"
}
}
}
},
"Custom Liquid" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "Liquid Customizado"
}
}
}
},
"Custom liquid glass already renders with Apple's liquid material, so this option is managed automatically." : { "Custom liquid glass already renders with Apple's liquid material, so this option is managed automatically." : {
"comment" : "A description of the custom liquid blur option in the media settings.", "comment" : "A description of the custom liquid blur option in the media settings.",
"isCommentAutoGenerated" : true, "isCommentAutoGenerated" : true,
@ -8521,8 +8644,8 @@
"localizations" : { "localizations" : {
"pt-BR" : { "pt-BR" : {
"stringUnit" : { "stringUnit" : {
"state" : "needs_review", "state" : "translated",
"value" : "Ative \"Mostrar animação de rosto legal durante a inatividade\" para personalizar as animações" "value" : "Ative \"Mostrar animações divertidas enquanto inativo\" para personalizar as animações"
} }
} }
} }
@ -8539,6 +8662,26 @@
} }
} }
}, },
"Enable blur effect behind album art" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "Habilitar o efeito de desfoque atrás da arte do álbum"
}
}
}
},
"Enable colored spectrograms" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "Ativar espectrogramas coloridos"
}
}
}
},
"Enable ColorPicker in Settings → ColorPicker" : { "Enable ColorPicker in Settings → ColorPicker" : {
"localizations" : { "localizations" : {
"fr" : { "fr" : {
@ -8577,6 +8720,16 @@
} }
} }
}, },
"Enable Dynamic mirror" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "Ativar Espelho Dinâmico"
}
}
}
},
"Enable extensions to allow third-party apps to display live activities and lock screen widgets in Atoll." : { "Enable extensions to allow third-party apps to display live activities and lock screen widgets in Atoll." : {
"comment" : "A footer text that explains the purpose of enabling extensions.", "comment" : "A footer text that explains the purpose of enabling extensions.",
"isCommentAutoGenerated" : true, "isCommentAutoGenerated" : true,
@ -8953,6 +9106,16 @@
} }
} }
}, },
"Enable window shadow" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "Ativar sombras da janela"
}
}
}
},
"Engine Utilization" : { "Engine Utilization" : {
"comment" : "A label describing the utilization of the GPU's engine components.", "comment" : "A label describing the utilization of the GPU's engine components.",
"isCommentAutoGenerated" : true, "isCommentAutoGenerated" : true,
@ -9441,6 +9604,16 @@
} }
} }
}, },
"expanded notch" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "notch expandido"
}
}
}
},
"Expanded notch width" : { "Expanded notch width" : {
"comment" : "A label describing the expanded notch width setting.", "comment" : "A label describing the expanded notch width setting.",
"isCommentAutoGenerated" : true, "isCommentAutoGenerated" : true,
@ -9463,6 +9636,16 @@
} }
} }
}, },
"Extend the notch span so the clipboard, colour picker, and other trailing icons remain visible on scaled displays (e.g. More Space)." : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "Estende a largura do notch para que a área de transferência, o seletor de cores e outros ícones de arrasto permaneçam visíveis em telas escalonada (por exemplo, Mais Espaço)."
}
}
}
},
"Extension tab unavailable" : { "Extension tab unavailable" : {
"comment" : "A message displayed when the extension tab is not available.", "comment" : "A message displayed when the extension tab is not available.",
"isCommentAutoGenerated" : true, "isCommentAutoGenerated" : true,
@ -9593,6 +9776,16 @@
} }
} }
}, },
"face animation" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "animações de rosto"
}
}
}
},
"feedback" : { "feedback" : {
"shouldTranslate" : false "shouldTranslate" : false
}, },
@ -11416,6 +11609,16 @@
} }
} }
}, },
"idle" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "inativo"
}
}
}
},
"Idle" : { "Idle" : {
"comment" : "A label displayed alongside the status of a GPU device.", "comment" : "A label displayed alongside the status of a GPU device.",
"isCommentAutoGenerated" : true, "isCommentAutoGenerated" : true,
@ -14083,6 +14286,16 @@
} }
} }
}, },
"mirror" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "espelho"
}
}
}
},
"Mirror" : { "Mirror" : {
"localizations" : { "localizations" : {
"ar" : { "ar" : {
@ -14195,6 +14408,16 @@
} }
} }
}, },
"mirror shape" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "formato do espelho"
}
}
}
},
"Mirror shape" : { "Mirror shape" : {
"localizations" : { "localizations" : {
"ar" : { "ar" : {
@ -14266,7 +14489,7 @@
"pt-BR" : { "pt-BR" : {
"stringUnit" : { "stringUnit" : {
"state" : "translated", "state" : "translated",
"value" : "Espelhar o formato" "value" : "Formato do espelho"
} }
}, },
"ru" : { "ru" : {
@ -15821,6 +16044,9 @@
} }
} }
}, },
"notch" : {
"shouldTranslate" : false
},
"Notch behavior" : { "Notch behavior" : {
"localizations" : { "localizations" : {
"ar" : { "ar" : {
@ -16684,6 +16910,16 @@
} }
} }
}, },
"Player tinting" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "Luz de fundo do reprodutor"
}
}
}
},
"Plays the supplied feedback clip whenever you press the hardware volume keys." : { "Plays the supplied feedback clip whenever you press the hardware volume keys." : {
"comment" : "A help text describing the audio feedback feature.", "comment" : "A help text describing the audio feedback feature.",
"isCommentAutoGenerated" : true, "isCommentAutoGenerated" : true,
@ -17463,6 +17699,26 @@
} }
} }
}, },
"rectangle" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "retângulo"
}
}
}
},
"reflection" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "reflexo"
}
}
}
},
"Release name" : { "Release name" : {
"localizations" : { "localizations" : {
"ar" : { "ar" : {
@ -17931,6 +18187,16 @@
} }
} }
}, },
"resize" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "redimensionar"
}
}
}
},
"Restart Atoll" : { "Restart Atoll" : {
"localizations" : { "localizations" : {
"fr" : { "fr" : {
@ -18904,6 +19170,26 @@
} }
} }
}, },
"settings button" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "botão de configurações"
}
}
}
},
"Settings icon in notch" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "Ícone do botão de configurações"
}
}
}
},
"Settings…" : { "Settings…" : {
"comment" : "A command that shows the settings window.", "comment" : "A command that shows the settings window.",
"isCommentAutoGenerated" : true, "isCommentAutoGenerated" : true,
@ -18916,6 +19202,26 @@
} }
} }
}, },
"shadow" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "sombra"
}
}
}
},
"shape" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "formato"
}
}
}
},
"Shelf" : { "Shelf" : {
"localizations" : { "localizations" : {
"ar" : { "ar" : {
@ -19152,6 +19458,16 @@
} }
} }
}, },
"Show cool face animation while inactivity" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "Mostrar animações divertidas enquanto inativo"
}
}
}
},
"Show countdown" : { "Show countdown" : {
"localizations" : { "localizations" : {
"pt-BR" : { "pt-BR" : {
@ -19528,6 +19844,16 @@
} }
} }
}, },
"slider" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "controle deslizante"
}
}
}
},
"Slider color" : { "Slider color" : {
"localizations" : { "localizations" : {
"ar" : { "ar" : {
@ -19984,6 +20310,16 @@
} }
} }
}, },
"spectrogram" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "espectrogramas"
}
}
}
},
"Speed" : { "Speed" : {
"localizations" : { "localizations" : {
"ar" : { "ar" : {
@ -20184,6 +20520,16 @@
} }
} }
}, },
"Standard" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "Padrão"
}
}
}
},
"Standard notch media controls are hidden while this toggle is off." : { "Standard notch media controls are hidden while this toggle is off." : {
"localizations" : { "localizations" : {
"pt-BR" : { "pt-BR" : {
@ -21132,7 +21478,7 @@
"pt-BR" : { "pt-BR" : {
"stringUnit" : { "stringUnit" : {
"state" : "translated", "state" : "translated",
"value" : "Tom do temporizador" "value" : "Luz de fundo do temporizador"
} }
} }
} }
@ -21393,6 +21739,16 @@
} }
} }
}, },
"toolbar" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "barra de ferramentas"
}
}
}
},
"Total · %@" : { "Total · %@" : {
"comment" : "A label displaying the total storage capacity of a disk device. The argument is the total storage capacity of the disk device.", "comment" : "A label displaying the total storage capacity of a disk device. The argument is the total storage capacity of the disk device.",
"isCommentAutoGenerated" : true, "isCommentAutoGenerated" : true,
@ -22094,6 +22450,16 @@
} }
} }
}, },
"Use simpler close animation" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "Usar animação de fechar simples"
}
}
}
},
"Use the Media tab to configure sneak peek, lyrics, and floating media controls." : { "Use the Media tab to configure sneak peek, lyrics, and floating media controls." : {
"comment" : "A footer for the \"Media Live Activity\" section, explaining how to configure the media controls.", "comment" : "A footer for the \"Media Live Activity\" section, explaining how to configure the media controls.",
"isCommentAutoGenerated" : true, "isCommentAutoGenerated" : true,
@ -22893,6 +23259,26 @@
} }
} }
}, },
"width" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "largura"
}
}
}
},
"Width adjustments apply only to the standard notch layout. Disable Minimalistic UI to edit this value." : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "Os ajustes de largura se aplicam apenas ao layout do notch padrão. Desative a UI minimalista para editar este valor."
}
}
}
},
"Width: %lldpx" : { "Width: %lldpx" : {
"localizations" : { "localizations" : {
"pt-BR" : { "pt-BR" : {

View file

@ -796,18 +796,77 @@ struct SettingsView: View {
SettingsSearchEntry(tab: .shelf, title: "Quick Share Service", keywords: ["shelf", "share", "airdrop"], highlightID: SettingsTab.shelf.highlightID(for: "Quick Share Service")), SettingsSearchEntry(tab: .shelf, title: "Quick Share Service", keywords: ["shelf", "share", "airdrop"], highlightID: SettingsTab.shelf.highlightID(for: "Quick Share Service")),
// Appearance // Appearance
SettingsSearchEntry(tab: .appearance, title: "Settings icon in notch", keywords: ["settings button", "toolbar"], highlightID: SettingsTab.appearance.highlightID(for: "Settings icon in notch")), SettingsSearchEntry(
SettingsSearchEntry(tab: .appearance, title: "Enable window shadow", keywords: ["shadow", "appearance"], highlightID: SettingsTab.appearance.highlightID(for: "Enable window shadow")), tab: .appearance,
SettingsSearchEntry(tab: .appearance, title: "Corner radius scaling", keywords: ["corner radius", "shape"], highlightID: SettingsTab.appearance.highlightID(for: "Corner radius scaling")), title: String(localized: "Settings icon in notch"),
SettingsSearchEntry(tab: .appearance, title: "Use simpler close animation", keywords: ["close animation", "notch"], highlightID: SettingsTab.appearance.highlightID(for: "Use simpler close animation")), keywords: [String(localized: "settings button"), String(localized: "toolbar")],
SettingsSearchEntry(tab: .appearance, title: "Notch Width", keywords: ["expanded notch", "width", "resize"], highlightID: SettingsTab.appearance.highlightID(for: "Expanded notch width")), highlightID: SettingsTab.appearance.highlightID(for: "Settings icon in notch")
SettingsSearchEntry(tab: .appearance, title: "Enable colored spectrograms", keywords: ["spectrogram", "audio"], highlightID: SettingsTab.appearance.highlightID(for: "Enable colored spectrograms")), ),
SettingsSearchEntry(tab: .appearance, title: "Enable blur effect behind album art", keywords: ["blur", "album art"], highlightID: SettingsTab.appearance.highlightID(for: "Enable blur effect behind album art")), SettingsSearchEntry(
SettingsSearchEntry(tab: .appearance, title: "Slider color", keywords: ["slider", "accent"], highlightID: SettingsTab.appearance.highlightID(for: "Slider color")), tab: .appearance,
SettingsSearchEntry(tab: .appearance, title: "Enable Dynamic mirror", keywords: ["mirror", "reflection"], highlightID: SettingsTab.appearance.highlightID(for: "Enable Dynamic mirror")), title: String(localized: "Enable window shadow"),
SettingsSearchEntry(tab: .appearance, title: "Mirror shape", keywords: ["mirror shape", "circle", "rectangle"], highlightID: SettingsTab.appearance.highlightID(for: "Mirror shape")), keywords: [String(localized: "shadow"), String(localized: "appearance")],
SettingsSearchEntry(tab: .appearance, title: "Show cool face animation while inactivity", keywords: ["face animation", "idle"], highlightID: SettingsTab.appearance.highlightID(for: "Show cool face animation while inactivity")), highlightID: SettingsTab.appearance.highlightID(for: "Enable window shadow")
SettingsSearchEntry(tab: .appearance, title: "App icon", keywords: ["app icon", "custom icon"], highlightID: SettingsTab.appearance.highlightID(for: "App icon")), ),
SettingsSearchEntry(
tab: .appearance,
title: String(localized: "Corner radius scaling"),
keywords: [String(localized: "corner radius"), String(localized: "shape")],
highlightID: SettingsTab.appearance.highlightID(for: "Corner radius scaling")
),
SettingsSearchEntry(
tab: .appearance,
title: String(localized: "Use simpler close animation"),
keywords: [String(localized: "close animation"), String(localized: "notch")],
highlightID: SettingsTab.appearance.highlightID(for: "Use simpler close animation")
),
SettingsSearchEntry(
tab: .appearance,
title: String(localized: "Notch Width"),
keywords: [String(localized: "expanded notch"), String(localized: "width"), String(localized: "resize")],
highlightID: SettingsTab.appearance.highlightID(for: "Expanded notch width")
),
SettingsSearchEntry(
tab: .appearance,
title: String(localized: "Enable colored spectrograms"), keywords: [String(localized: "spectrogram"), String(localized: "audio")],
highlightID: SettingsTab.appearance.highlightID(for: "Enable colored spectrograms")
),
SettingsSearchEntry(
tab: .appearance,
title: String(localized: "Enable blur effect behind album art"),
keywords: [String(localized: "blur"), String(localized: "album art")],
highlightID: SettingsTab.appearance.highlightID(for: "Enable blur effect behind album art")
),
SettingsSearchEntry(
tab: .appearance,
title: String(localized: "Slider color"),
keywords: [String(localized: "slider"), String(localized: "accent")],
highlightID: SettingsTab.appearance.highlightID(for: "Slider color")
),
SettingsSearchEntry(
tab: .appearance,
title: String(localized: "Enable Dynamic mirror"),
keywords: [String(localized: "mirror"), String(localized: "reflection")],
highlightID: SettingsTab.appearance.highlightID(for: "Enable Dynamic mirror")
),
SettingsSearchEntry(
tab: .appearance,
title: String(localized: "Mirror shape"),
keywords: [String(localized: "mirror shape"), String(localized: "circle"), String(localized: "rectangle")],
highlightID: SettingsTab.appearance.highlightID(for: "Mirror shape")
),
SettingsSearchEntry(
tab: .appearance,
title: String(localized: "Show cool face animation while inactivity"),
keywords: [String(localized: "face animation"), String(localized: "idle")],
highlightID: SettingsTab.appearance.highlightID(for: "Show cool face animation while inactivity")
),
SettingsSearchEntry(
tab: .appearance,
title: String(localized: "App icon"),
keywords: [String(localized: "app icon"), String(localized: "custom icon")],
highlightID: SettingsTab.appearance.highlightID(for: "App icon")
),
// Lock Screen // Lock Screen
SettingsSearchEntry(tab: .lockScreen, title: "Enable lock screen live activity", keywords: ["lock screen", "live activity"], highlightID: SettingsTab.lockScreen.highlightID(for: "Enable lock screen live activity")), SettingsSearchEntry(tab: .lockScreen, title: "Enable lock screen live activity", keywords: ["lock screen", "live activity"], highlightID: SettingsTab.lockScreen.highlightID(for: "Enable lock screen live activity")),
@ -3028,13 +3087,13 @@ struct Appearance: View {
Form { Form {
Section { Section {
Toggle("Always show tabs", isOn: $coordinator.alwaysShowTabs) Toggle("Always show tabs", isOn: $coordinator.alwaysShowTabs)
Defaults.Toggle("Settings icon in notch", key: .settingsIconInNotch) Defaults.Toggle(String(localized:"Settings icon in notch"), key: .settingsIconInNotch)
.settingsHighlight(id: highlightID("Settings icon in notch")) .settingsHighlight(id: highlightID("Settings icon in notch"))
Defaults.Toggle("Enable window shadow", key: .enableShadow) Defaults.Toggle(String(localized:"Enable window shadow"), key: .enableShadow)
.settingsHighlight(id: highlightID("Enable window shadow")) .settingsHighlight(id: highlightID("Enable window shadow"))
Defaults.Toggle("Corner radius scaling", key: .cornerRadiusScaling) Defaults.Toggle(String(localized:"Corner radius scaling"), key: .cornerRadiusScaling)
.settingsHighlight(id: highlightID("Corner radius scaling")) .settingsHighlight(id: highlightID("Corner radius scaling"))
Defaults.Toggle("Use simpler close animation", key: .useModernCloseAnimation) Defaults.Toggle(String(localized:"Use simpler close animation"), key: .useModernCloseAnimation)
.settingsHighlight(id: highlightID("Use simpler close animation")) .settingsHighlight(id: highlightID("Use simpler close animation"))
} header: { } header: {
Text("General") Text("General")
@ -3064,9 +3123,9 @@ struct Appearance: View {
} }
if lockScreenGlassStyle == .liquid { if lockScreenGlassStyle == .liquid {
Picker("Lock screen glass mode", selection: $lockScreenGlassCustomizationMode) { Picker(String(localized: "Lock screen glass mode"), selection: $lockScreenGlassCustomizationMode) {
ForEach(LockScreenGlassCustomizationMode.allCases) { mode in ForEach(LockScreenGlassCustomizationMode.allCases) { mode in
Text(mode.rawValue).tag(mode) Text(mode.localizedName).tag(mode)
} }
} }
.pickerStyle(.segmented) .pickerStyle(.segmented)
@ -3117,15 +3176,15 @@ struct Appearance: View {
} }
Section { Section {
Defaults.Toggle("Enable colored spectrograms", key: .coloredSpectrogram) Defaults.Toggle(String(localized:"Enable colored spectrograms"), key: .coloredSpectrogram)
.settingsHighlight(id: highlightID("Enable colored spectrograms")) .settingsHighlight(id: highlightID("Enable colored spectrograms"))
Defaults Defaults.Toggle(String(localized:"Player tinting"), key: .playerColorTinting)
.Toggle("Player tinting", key: .playerColorTinting) Defaults.Toggle(String(localized:"Enable blur effect behind album art"), key: .lightingEffect)
Defaults.Toggle("Enable blur effect behind album art", key: .lightingEffect)
.settingsHighlight(id: highlightID("Enable blur effect behind album art")) .settingsHighlight(id: highlightID("Enable blur effect behind album art"))
Picker("Slider color", selection: $sliderColor) { Picker(String(localized: "Slider color"), selection: $sliderColor) {
ForEach(SliderColorEnum.allCases, id: \.self) { option in ForEach(SliderColorEnum.allCases, id: \.self) { option in
Text(option.rawValue)
Text(option.localizedName).tag(option)
} }
} }
.settingsHighlight(id: highlightID("Slider color")) .settingsHighlight(id: highlightID("Slider color"))
@ -3165,7 +3224,7 @@ struct Appearance: View {
} header: { } header: {
HStack { HStack {
Text("Custom music live activity animation") Text("Custom music live activity animation")
customBadge(text: "Coming soon") customBadge(text: String(localized: "Coming soon"))
} }
} }
@ -3302,7 +3361,7 @@ struct Appearance: View {
} }
Section { Section {
Defaults.Toggle("Enable Dynamic mirror", key: .showMirror) Defaults.Toggle(String(localized:"Enable Dynamic mirror"), key: .showMirror)
.disabled(!checkVideoInput()) .disabled(!checkVideoInput())
.settingsHighlight(id: highlightID("Enable Dynamic mirror")) .settingsHighlight(id: highlightID("Enable Dynamic mirror"))
Picker("Mirror shape", selection: $mirrorShape) { Picker("Mirror shape", selection: $mirrorShape) {
@ -3312,7 +3371,7 @@ struct Appearance: View {
.tag(MirrorShapeEnum.rectangle) .tag(MirrorShapeEnum.rectangle)
} }
.settingsHighlight(id: highlightID("Mirror shape")) .settingsHighlight(id: highlightID("Mirror shape"))
Defaults.Toggle("Show cool face animation while inactivity", key: .showNotHumanFace) Defaults.Toggle(String(localized:"Show cool face animation while inactivity"), key: .showNotHumanFace)
.settingsHighlight(id: highlightID("Show cool face animation while inactivity")) .settingsHighlight(id: highlightID("Show cool face animation while inactivity"))
} header: { } header: {
HStack { HStack {
@ -3328,7 +3387,7 @@ struct Appearance: View {
let columns = [GridItem(.adaptive(minimum: 90), spacing: 12)] let columns = [GridItem(.adaptive(minimum: 90), spacing: 12)]
LazyVGrid(columns: columns, spacing: 12) { LazyVGrid(columns: columns, spacing: 12) {
appIconCard( appIconCard(
title: "Default", title: String(localized:"Default"),
image: defaultAppIconImage(), image: defaultAppIconImage(),
isSelected: selectedAppIconID == nil isSelected: selectedAppIconID == nil
) { ) {
@ -3571,8 +3630,8 @@ struct Appearance: View {
} }
let description = enableMinimalisticUI let description = enableMinimalisticUI
? "Width adjustments apply only to the standard notch layout. Disable Minimalistic UI to edit this value." ? String(localized:"Width adjustments apply only to the standard notch layout. Disable Minimalistic UI to edit this value.")
: "Extend the notch span so the clipboard, colour picker, and other trailing icons remain visible on scaled displays (e.g. More Space)." : String(localized:"Extend the notch span so the clipboard, colour picker, and other trailing icons remain visible on scaled displays (e.g. More Space).")
Text(description) Text(description)
.font(.caption) .font(.caption)
@ -3688,9 +3747,9 @@ struct LockScreenSettings: View {
} }
if lockScreenGlassStyle == .liquid { if lockScreenGlassStyle == .liquid {
Picker("Glass mode", selection: $lockScreenGlassCustomizationMode) { Picker(String(localized: "Glass mode"), selection: $lockScreenGlassCustomizationMode) {
ForEach(LockScreenGlassCustomizationMode.allCases) { mode in ForEach(LockScreenGlassCustomizationMode.allCases) { mode in
Text(mode.rawValue).tag(mode) Text(mode.localizedName).tag(mode)
} }
} }
.pickerStyle(.segmented) .pickerStyle(.segmented)
@ -3777,9 +3836,9 @@ struct LockScreenSettings: View {
.settingsHighlight(id: highlightID("Timer glass material")) .settingsHighlight(id: highlightID("Timer glass material"))
if lockScreenTimerGlassStyle == .liquid { if lockScreenTimerGlassStyle == .liquid {
Picker("Timer liquid mode", selection: $lockScreenTimerGlassCustomizationMode) { Picker(String(localized: "Timer liquid mode"), selection: $lockScreenTimerGlassCustomizationMode) {
ForEach(LockScreenGlassCustomizationMode.allCases) { mode in ForEach(LockScreenGlassCustomizationMode.allCases) { mode in
Text(mode.rawValue).tag(mode) Text(mode.localizedName).tag(mode)
} }
} }
.pickerStyle(.segmented) .pickerStyle(.segmented)

View file

@ -106,6 +106,17 @@ enum SliderColorEnum: String, CaseIterable, Defaults.Serializable {
case white = "White" case white = "White"
case albumArt = "Match album art" case albumArt = "Match album art"
case accent = "Accent color" case accent = "Accent color"
var localizedName: String {
switch self {
case .white:
return String(localized: "Standard")
case .albumArt:
return String(localized: "Custom Liquid")
case .accent:
return String(localized: "Accent color")
}
}
} }
enum LockScreenGlassStyle: String, CaseIterable, Defaults.Serializable, Identifiable { enum LockScreenGlassStyle: String, CaseIterable, Defaults.Serializable, Identifiable {
@ -124,6 +135,15 @@ enum LockScreenGlassCustomizationMode: String, CaseIterable, Defaults.Serializab
var allowsVariantSelection: Bool { var allowsVariantSelection: Bool {
self == .customLiquid self == .customLiquid
} }
var localizedName: String {
switch self {
case .standard:
return String(localized: "Standard")
case .customLiquid:
return String(localized: "Custom Liquid")
}
}
} }
enum LockScreenTimerSurfaceMode: String, CaseIterable, Defaults.Serializable, Identifiable { enum LockScreenTimerSurfaceMode: String, CaseIterable, Defaults.Serializable, Identifiable {