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" : {
"comment" : "A label describing the colour picker for the timer preset.",
"isCommentAutoGenerated" : true,
@ -2615,6 +2635,16 @@
}
}
},
"album art" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "capa do álbum"
}
}
}
},
"All" : {
"localizations" : {
"pt-BR" : {
@ -3114,6 +3144,16 @@
}
}
},
"app icon" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "ícone do app"
}
}
}
},
"App icon" : {
"localizations" : {
"ar" : {
@ -3226,6 +3266,16 @@
}
}
},
"appearance" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "aparência"
}
}
}
},
"Appearance" : {
"localizations" : {
"ar" : {
@ -3424,6 +3474,9 @@
}
}
},
"audio" : {
"shouldTranslate" : false
},
"Audio feedback" : {
"comment" : "A section header that lists audio feedback settings.",
"isCommentAutoGenerated" : true,
@ -4280,6 +4333,16 @@
}
}
},
"blur" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "desfoque"
}
}
}
},
"Boost your productivity with Clipboard Manager" : {
"localizations" : {
"ar" : {
@ -5395,6 +5458,16 @@
}
}
},
"circle" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "círculo"
}
}
}
},
"Circle" : {
"localizations" : {
"ar" : {
@ -5925,6 +5998,16 @@
}
}
},
"close animation" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "animação de fechar"
}
}
}
},
"Close assistant" : {
"localizations" : {
"fr" : {
@ -6290,7 +6373,7 @@
"pt-BR" : {
"stringUnit" : {
"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
},
"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" : {
"comment" : "A label for the style of countdown to use when reminders are live.",
"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." : {
"comment" : "A description of the custom liquid blur option in the media settings.",
"isCommentAutoGenerated" : true,
@ -8521,8 +8644,8 @@
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Ative \"Mostrar animação de rosto legal durante a inatividade\" para personalizar as animações"
"state" : "translated",
"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" : {
"localizations" : {
"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." : {
"comment" : "A footer text that explains the purpose of enabling extensions.",
"isCommentAutoGenerated" : true,
@ -8953,6 +9106,16 @@
}
}
},
"Enable window shadow" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "Ativar sombras da janela"
}
}
}
},
"Engine Utilization" : {
"comment" : "A label describing the utilization of the GPU's engine components.",
"isCommentAutoGenerated" : true,
@ -9441,6 +9604,16 @@
}
}
},
"expanded notch" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "notch expandido"
}
}
}
},
"Expanded notch width" : {
"comment" : "A label describing the expanded notch width setting.",
"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" : {
"comment" : "A message displayed when the extension tab is not available.",
"isCommentAutoGenerated" : true,
@ -9593,6 +9776,16 @@
}
}
},
"face animation" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "animações de rosto"
}
}
}
},
"feedback" : {
"shouldTranslate" : false
},
@ -11416,6 +11609,16 @@
}
}
},
"idle" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "inativo"
}
}
}
},
"Idle" : {
"comment" : "A label displayed alongside the status of a GPU device.",
"isCommentAutoGenerated" : true,
@ -14083,6 +14286,16 @@
}
}
},
"mirror" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "espelho"
}
}
}
},
"Mirror" : {
"localizations" : {
"ar" : {
@ -14195,6 +14408,16 @@
}
}
},
"mirror shape" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "formato do espelho"
}
}
}
},
"Mirror shape" : {
"localizations" : {
"ar" : {
@ -14266,7 +14489,7 @@
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "Espelhar o formato"
"value" : "Formato do espelho"
}
},
"ru" : {
@ -15821,6 +16044,9 @@
}
}
},
"notch" : {
"shouldTranslate" : false
},
"Notch behavior" : {
"localizations" : {
"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." : {
"comment" : "A help text describing the audio feedback feature.",
"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" : {
"localizations" : {
"ar" : {
@ -17931,6 +18187,16 @@
}
}
},
"resize" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "redimensionar"
}
}
}
},
"Restart Atoll" : {
"localizations" : {
"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…" : {
"comment" : "A command that shows the settings window.",
"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" : {
"localizations" : {
"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" : {
"localizations" : {
"pt-BR" : {
@ -19528,6 +19844,16 @@
}
}
},
"slider" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "controle deslizante"
}
}
}
},
"Slider color" : {
"localizations" : {
"ar" : {
@ -19984,6 +20310,16 @@
}
}
},
"spectrogram" : {
"localizations" : {
"pt-BR" : {
"stringUnit" : {
"state" : "translated",
"value" : "espectrogramas"
}
}
}
},
"Speed" : {
"localizations" : {
"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." : {
"localizations" : {
"pt-BR" : {
@ -21132,7 +21478,7 @@
"pt-BR" : {
"stringUnit" : {
"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 · %@" : {
"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,
@ -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." : {
"comment" : "A footer for the \"Media Live Activity\" section, explaining how to configure the media controls.",
"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" : {
"localizations" : {
"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")),
// Appearance
SettingsSearchEntry(tab: .appearance, title: "Settings icon in notch", keywords: ["settings button", "toolbar"], highlightID: SettingsTab.appearance.highlightID(for: "Settings icon in notch")),
SettingsSearchEntry(tab: .appearance, title: "Enable window shadow", keywords: ["shadow", "appearance"], highlightID: SettingsTab.appearance.highlightID(for: "Enable window shadow")),
SettingsSearchEntry(tab: .appearance, title: "Corner radius scaling", keywords: ["corner radius", "shape"], highlightID: SettingsTab.appearance.highlightID(for: "Corner radius scaling")),
SettingsSearchEntry(tab: .appearance, title: "Use simpler close animation", keywords: ["close animation", "notch"], highlightID: SettingsTab.appearance.highlightID(for: "Use simpler close animation")),
SettingsSearchEntry(tab: .appearance, title: "Notch Width", keywords: ["expanded notch", "width", "resize"], highlightID: SettingsTab.appearance.highlightID(for: "Expanded notch width")),
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(tab: .appearance, title: "Slider color", keywords: ["slider", "accent"], highlightID: SettingsTab.appearance.highlightID(for: "Slider color")),
SettingsSearchEntry(tab: .appearance, title: "Enable Dynamic mirror", keywords: ["mirror", "reflection"], highlightID: SettingsTab.appearance.highlightID(for: "Enable Dynamic mirror")),
SettingsSearchEntry(tab: .appearance, title: "Mirror shape", keywords: ["mirror shape", "circle", "rectangle"], highlightID: SettingsTab.appearance.highlightID(for: "Mirror shape")),
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")),
SettingsSearchEntry(tab: .appearance, title: "App icon", keywords: ["app icon", "custom icon"], highlightID: SettingsTab.appearance.highlightID(for: "App icon")),
SettingsSearchEntry(
tab: .appearance,
title: String(localized: "Settings icon in notch"),
keywords: [String(localized: "settings button"), String(localized: "toolbar")],
highlightID: SettingsTab.appearance.highlightID(for: "Settings icon in notch")
),
SettingsSearchEntry(
tab: .appearance,
title: String(localized: "Enable window shadow"),
keywords: [String(localized: "shadow"), String(localized: "appearance")],
highlightID: SettingsTab.appearance.highlightID(for: "Enable window shadow")
),
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
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 {
Section {
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"))
Defaults.Toggle("Enable window shadow", key: .enableShadow)
Defaults.Toggle(String(localized:"Enable window shadow"), key: .enableShadow)
.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"))
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"))
} header: {
Text("General")
@ -3064,9 +3123,9 @@ struct Appearance: View {
}
if lockScreenGlassStyle == .liquid {
Picker("Lock screen glass mode", selection: $lockScreenGlassCustomizationMode) {
Picker(String(localized: "Lock screen glass mode"), selection: $lockScreenGlassCustomizationMode) {
ForEach(LockScreenGlassCustomizationMode.allCases) { mode in
Text(mode.rawValue).tag(mode)
Text(mode.localizedName).tag(mode)
}
}
.pickerStyle(.segmented)
@ -3117,15 +3176,15 @@ struct Appearance: View {
}
Section {
Defaults.Toggle("Enable colored spectrograms", key: .coloredSpectrogram)
Defaults.Toggle(String(localized:"Enable colored spectrograms"), key: .coloredSpectrogram)
.settingsHighlight(id: highlightID("Enable colored spectrograms"))
Defaults
.Toggle("Player tinting", key: .playerColorTinting)
Defaults.Toggle("Enable blur effect behind album art", key: .lightingEffect)
Defaults.Toggle(String(localized:"Player tinting"), key: .playerColorTinting)
Defaults.Toggle(String(localized:"Enable blur effect behind album art"), key: .lightingEffect)
.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
Text(option.rawValue)
Text(option.localizedName).tag(option)
}
}
.settingsHighlight(id: highlightID("Slider color"))
@ -3165,7 +3224,7 @@ struct Appearance: View {
} header: {
HStack {
Text("Custom music live activity animation")
customBadge(text: "Coming soon")
customBadge(text: String(localized: "Coming soon"))
}
}
@ -3302,7 +3361,7 @@ struct Appearance: View {
}
Section {
Defaults.Toggle("Enable Dynamic mirror", key: .showMirror)
Defaults.Toggle(String(localized:"Enable Dynamic mirror"), key: .showMirror)
.disabled(!checkVideoInput())
.settingsHighlight(id: highlightID("Enable Dynamic mirror"))
Picker("Mirror shape", selection: $mirrorShape) {
@ -3312,7 +3371,7 @@ struct Appearance: View {
.tag(MirrorShapeEnum.rectangle)
}
.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"))
} header: {
HStack {
@ -3328,7 +3387,7 @@ struct Appearance: View {
let columns = [GridItem(.adaptive(minimum: 90), spacing: 12)]
LazyVGrid(columns: columns, spacing: 12) {
appIconCard(
title: "Default",
title: String(localized:"Default"),
image: defaultAppIconImage(),
isSelected: selectedAppIconID == nil
) {
@ -3571,8 +3630,8 @@ struct Appearance: View {
}
let description = enableMinimalisticUI
? "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:"Width adjustments apply only to the standard notch layout. Disable Minimalistic UI to edit this value.")
: 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)
.font(.caption)
@ -3688,9 +3747,9 @@ struct LockScreenSettings: View {
}
if lockScreenGlassStyle == .liquid {
Picker("Glass mode", selection: $lockScreenGlassCustomizationMode) {
Picker(String(localized: "Glass mode"), selection: $lockScreenGlassCustomizationMode) {
ForEach(LockScreenGlassCustomizationMode.allCases) { mode in
Text(mode.rawValue).tag(mode)
Text(mode.localizedName).tag(mode)
}
}
.pickerStyle(.segmented)
@ -3777,9 +3836,9 @@ struct LockScreenSettings: View {
.settingsHighlight(id: highlightID("Timer glass material"))
if lockScreenTimerGlassStyle == .liquid {
Picker("Timer liquid mode", selection: $lockScreenTimerGlassCustomizationMode) {
Picker(String(localized: "Timer liquid mode"), selection: $lockScreenTimerGlassCustomizationMode) {
ForEach(LockScreenGlassCustomizationMode.allCases) { mode in
Text(mode.rawValue).tag(mode)
Text(mode.localizedName).tag(mode)
}
}
.pickerStyle(.segmented)

View file

@ -106,6 +106,17 @@ enum SliderColorEnum: String, CaseIterable, Defaults.Serializable {
case white = "White"
case albumArt = "Match album art"
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 {
@ -124,6 +135,15 @@ enum LockScreenGlassCustomizationMode: String, CaseIterable, Defaults.Serializab
var allowsVariantSelection: Bool {
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 {