From 3236faafe54dd135b6716b2be4c5ade7bbc46c86 Mon Sep 17 00:00:00 2001 From: Serhii Vasylenko Date: Sat, 28 Mar 2026 17:56:07 +0100 Subject: [PATCH 1/7] Add localization for German, Spanish, Hindi, and Chinese - Change SleepMode.label and .description return types from String to LocalizedStringResource for auto-extraction into String Catalogs - Create Localizable.xcstrings with 11 translated strings for de, es, hi, and zh-Hans - Clean up knownRegions to match actual target languages - assertionReason strings intentionally left in English (system-facing) Created with Claude Code under the supervision of Serhii Vasylenko --- app/Vigil.xcodeproj/project.pbxproj | 7 +- app/Vigil/Localizable.xcstrings | 314 ++++++++++++++++++++++++++++ app/Vigil/SleepManager.swift | 4 +- 3 files changed, 317 insertions(+), 8 deletions(-) create mode 100644 app/Vigil/Localizable.xcstrings diff --git a/app/Vigil.xcodeproj/project.pbxproj b/app/Vigil.xcodeproj/project.pbxproj index 99ef67e..686d5e9 100644 --- a/app/Vigil.xcodeproj/project.pbxproj +++ b/app/Vigil.xcodeproj/project.pbxproj @@ -152,14 +152,9 @@ en, Base, de, - fr, es, - "es-US", - uk, - "en-GB", - "en-IN", hi, - ar, + "zh-Hans", ); mainGroup = 8C983B4B2F634369004A6B1A; minimizedProjectReferenceProxies = 1; diff --git a/app/Vigil/Localizable.xcstrings b/app/Vigil/Localizable.xcstrings new file mode 100644 index 0000000..5ad17fa --- /dev/null +++ b/app/Vigil/Localizable.xcstrings @@ -0,0 +1,314 @@ +{ + "sourceLanguage" : "en", + "strings" : { + "Display & System" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bildschirm & System" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pantalla y sistema" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "डिस्प्ले और सिस्टम" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "显示器和系统" + } + } + } + }, + "Launch at Login" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bei Anmeldung starten" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abrir al iniciar sesión" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "लॉगिन पर लॉन्च करें" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "登录时启动" + } + } + } + }, + "Mode" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modus" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modo" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "मोड" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "模式" + } + } + } + }, + "Quit Vigil" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vigil beenden" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Salir de Vigil" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vigil बंद करें" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "退出 Vigil" + } + } + } + }, + "Remember Last State" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Letzten Status merken" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Recordar último estado" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "पिछली स्थिति याद रखें" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "记住上次状态" + } + } + } + }, + "Screen and system stay awake" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bildschirm und System bleiben wach" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "La pantalla y el sistema permanecen activos" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "स्क्रीन और सिस्टम जागते रहेंगे" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "屏幕和系统保持唤醒" + } + } + } + }, + "Screen may sleep, system stays running" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bildschirm kann schlafen, System läuft weiter" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "La pantalla puede apagarse, el sistema sigue activo" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "स्क्रीन स्लीप हो सकती है, सिस्टम चलता रहेगा" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "屏幕可能休眠,系统保持运行" + } + } + } + }, + "Sleep prevention is off" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Schlafsperre ist deaktiviert" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "La prevención de reposo está desactivada" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "स्लीप प्रिवेंशन बंद है" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "防休眠已关闭" + } + } + } + }, + "Sleep prevention is on" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Schlafsperre ist aktiviert" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "La prevención de reposo está activada" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "स्लीप प्रिवेंशन चालू है" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "防休眠已开启" + } + } + } + }, + "Stay Awake" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wach bleiben" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mantener activo" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "जागते रहें" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "保持唤醒" + } + } + } + }, + "System Only" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nur System" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Solo sistema" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "केवल सिस्टम" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "仅系统" + } + } + } + } + }, + "version" : "1.0" +} diff --git a/app/Vigil/SleepManager.swift b/app/Vigil/SleepManager.swift index 73e2d06..510187d 100644 --- a/app/Vigil/SleepManager.swift +++ b/app/Vigil/SleepManager.swift @@ -24,14 +24,14 @@ enum SleepMode: String, CaseIterable { } } - var label: String { + var label: LocalizedStringResource { switch self { case .displayAndSystem: "Display & System" case .systemOnly: "System Only" } } - var description: String { + var description: LocalizedStringResource { switch self { case .displayAndSystem: "Screen and system stay awake" case .systemOnly: "Screen may sleep, system stays running" From 52952e4973202928a91855ed3bbdefa5a2a780b7 Mon Sep 17 00:00:00 2001 From: Serhii Vasylenko Date: Sat, 28 Mar 2026 18:02:04 +0100 Subject: [PATCH 2/7] Add localization section to CLAUDE.md Document String Catalog workflow, LocalizedStringResource convention, and how to add new translatable strings. Created with Claude Code under the supervision of Serhii Vasylenko --- CLAUDE.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index 84c1542..9c33274 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -26,7 +26,7 @@ vigil/ ├── PRD.md # Product requirements ├── app/ # macOS app (Xcode project) │ ├── Vigil.xcodeproj/ -│ ├── Vigil/ # Source + PrivacyInfo.xcprivacy +│ ├── Vigil/ # Source + PrivacyInfo.xcprivacy + Localizable.xcstrings │ └── VigilTests/ ├── appstore/ # App Store screenshots (2880×1800) └── website/ # Static promo site (Vercel): vigil-for-mac.vercel.app @@ -43,6 +43,7 @@ New `.swift` files in `app/Vigil/` are auto-included in the build (PBXFileSystem - `// MARK: -` comments for view section organization - `import IOKit.pwr_mgt` (submodule import, not `import IOKit`) - Computed properties for view decomposition (`heroSection`, `modeSection`, etc.) +- `LocalizedStringResource` for localizable strings in enums/models (not plain `String`) — enables auto-extraction into String Catalogs ## Testing @@ -53,6 +54,15 @@ New `.swift` files in `app/Vigil/` are auto-included in the build (PBXFileSystem - **Integration-style**: Tests create real IOPMAssertions and verify via `findAssertions(forPid:)`, a helper that queries the kernel with `IOPMCopyAssertionsByProcess` - **Entry point**: `AppLauncher` (the actual `@main`) detects test runs via `NSClassFromString("XCTestCase")` and substitutes a lightweight `TestApp`. Do not add `@main` to `VigilApp` directly. +## Localization + +- **Catalog**: Single `Localizable.xcstrings` (String Catalog) — all languages in one file +- **Languages**: English (source), German (de), Spanish (es), Hindi (hi), Chinese Simplified (zh-Hans) +- **SwiftUI views**: `Text("...")` and `Label("...")` strings are auto-extracted on build — no manual registration +- **Enum/model strings**: Return `LocalizedStringResource` (not `String`) so Xcode auto-extracts them too +- **Not localized**: `SleepMode.assertionReason` — intentionally English (appears in `pmset` output and Activity Monitor) +- **Adding a new string**: Just use `Text("New string")` or return `LocalizedStringResource`. Build the project — the key appears in `Localizable.xcstrings` marked "New". Add translations there. + ## Distribution - **App Store name**: "Vigil - Stay Awake" (managed in App Store Connect, separate from PRODUCT_NAME) From 05df2becb9336b56bc64811b27cd9e1be81b88f8 Mon Sep 17 00:00:00 2001 From: Serhii Vasylenko Date: Sat, 28 Mar 2026 18:06:49 +0100 Subject: [PATCH 3/7] Add Ukrainian localization 11 strings translated to Ukrainian (uk). Added uk to knownRegions. Created with Claude Code under the supervision of Serhii Vasylenko --- CLAUDE.md | 2 +- app/Vigil.xcodeproj/project.pbxproj | 1 + app/Vigil/Localizable.xcstrings | 66 +++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index 9c33274..514fa94 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -57,7 +57,7 @@ New `.swift` files in `app/Vigil/` are auto-included in the build (PBXFileSystem ## Localization - **Catalog**: Single `Localizable.xcstrings` (String Catalog) — all languages in one file -- **Languages**: English (source), German (de), Spanish (es), Hindi (hi), Chinese Simplified (zh-Hans) +- **Languages**: English (source), German (de), Spanish (es), Hindi (hi), Ukrainian (uk), Chinese Simplified (zh-Hans) - **SwiftUI views**: `Text("...")` and `Label("...")` strings are auto-extracted on build — no manual registration - **Enum/model strings**: Return `LocalizedStringResource` (not `String`) so Xcode auto-extracts them too - **Not localized**: `SleepMode.assertionReason` — intentionally English (appears in `pmset` output and Activity Monitor) diff --git a/app/Vigil.xcodeproj/project.pbxproj b/app/Vigil.xcodeproj/project.pbxproj index 686d5e9..a5e95d1 100644 --- a/app/Vigil.xcodeproj/project.pbxproj +++ b/app/Vigil.xcodeproj/project.pbxproj @@ -154,6 +154,7 @@ de, es, hi, + uk, "zh-Hans", ); mainGroup = 8C983B4B2F634369004A6B1A; diff --git a/app/Vigil/Localizable.xcstrings b/app/Vigil/Localizable.xcstrings index 5ad17fa..9921d65 100644 --- a/app/Vigil/Localizable.xcstrings +++ b/app/Vigil/Localizable.xcstrings @@ -21,6 +21,12 @@ "value" : "डिस्प्ले और सिस्टम" } }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "Екран і система" + } + }, "zh-Hans" : { "stringUnit" : { "state" : "translated", @@ -49,6 +55,12 @@ "value" : "लॉगिन पर लॉन्च करें" } }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "Запускати при вході" + } + }, "zh-Hans" : { "stringUnit" : { "state" : "translated", @@ -77,6 +89,12 @@ "value" : "मोड" } }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "Режим" + } + }, "zh-Hans" : { "stringUnit" : { "state" : "translated", @@ -105,6 +123,12 @@ "value" : "Vigil बंद करें" } }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "Завершити Vigil" + } + }, "zh-Hans" : { "stringUnit" : { "state" : "translated", @@ -133,6 +157,12 @@ "value" : "पिछली स्थिति याद रखें" } }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "Запам'ятати останній стан" + } + }, "zh-Hans" : { "stringUnit" : { "state" : "translated", @@ -161,6 +191,12 @@ "value" : "स्क्रीन और सिस्टम जागते रहेंगे" } }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "Екран і система не засинатимуть" + } + }, "zh-Hans" : { "stringUnit" : { "state" : "translated", @@ -189,6 +225,12 @@ "value" : "स्क्रीन स्लीप हो सकती है, सिस्टम चलता रहेगा" } }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "Екран може заснути, система працюватиме" + } + }, "zh-Hans" : { "stringUnit" : { "state" : "translated", @@ -217,6 +259,12 @@ "value" : "स्लीप प्रिवेंशन बंद है" } }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "Запобігання сну вимкнено" + } + }, "zh-Hans" : { "stringUnit" : { "state" : "translated", @@ -245,6 +293,12 @@ "value" : "स्लीप प्रिवेंशन चालू है" } }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "Запобігання сну увімкнено" + } + }, "zh-Hans" : { "stringUnit" : { "state" : "translated", @@ -273,6 +327,12 @@ "value" : "जागते रहें" } }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "Не засинати" + } + }, "zh-Hans" : { "stringUnit" : { "state" : "translated", @@ -301,6 +361,12 @@ "value" : "केवल सिस्टम" } }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "Лише система" + } + }, "zh-Hans" : { "stringUnit" : { "state" : "translated", From 32830d02c8de9809613360226dec1d720e868304 Mon Sep 17 00:00:00 2001 From: Serhii Vasylenko Date: Sat, 28 Mar 2026 18:11:11 +0100 Subject: [PATCH 4/7] Add language testing hint to CLAUDE.md Created with Claude Code under the supervision of Serhii Vasylenko --- CLAUDE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CLAUDE.md b/CLAUDE.md index 514fa94..d3694f6 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -62,6 +62,7 @@ New `.swift` files in `app/Vigil/` are auto-included in the build (PBXFileSystem - **Enum/model strings**: Return `LocalizedStringResource` (not `String`) so Xcode auto-extracts them too - **Not localized**: `SleepMode.assertionReason` — intentionally English (appears in `pmset` output and Activity Monitor) - **Adding a new string**: Just use `Text("New string")` or return `LocalizedStringResource`. Build the project — the key appears in `Localizable.xcstrings` marked "New". Add translations there. +- **Testing a language**: In Xcode: Edit Scheme → Run → Options → App Language. From CLI: `open path/to/Vigil.app --args -AppleLanguages '(uk)'`. Replace `uk` with any locale code (`de`, `es`, `hi`, `zh-Hans`). ## Distribution From 1e502ccb6154db1fe0521014bad3953d4a6a7c81 Mon Sep 17 00:00:00 2001 From: Serhii Vasylenko Date: Sat, 28 Mar 2026 18:13:55 +0100 Subject: [PATCH 5/7] Add CLI Commands quick reference section to CLAUDE.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Build, test, build-and-run, locale testing, and assertion verification — all in copy-pasteable form. Created with Claude Code under the supervision of Serhii Vasylenko --- CLAUDE.md | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index d3694f6..9ea5f6a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -14,8 +14,6 @@ For architecture and decision rationale, see [ARCHITECTURE.md](ARCHITECTURE.md). - **Frameworks**: IOKit.pwr_mgt (power assertions), ServiceManagement (login items), Foundation (UserDefaults) - **Target**: macOS 15.6 (Sequoia), Apple Silicon + Intel - **Dependencies**: None. Zero third-party packages. -- **Build**: `xcodebuild build -project app/Vigil.xcodeproj -scheme Vigil -destination 'platform=macOS'` -- **Test**: `xcodebuild test -project app/Vigil.xcodeproj -scheme Vigil -destination 'platform=macOS'` ## Project Structure @@ -62,7 +60,28 @@ New `.swift` files in `app/Vigil/` are auto-included in the build (PBXFileSystem - **Enum/model strings**: Return `LocalizedStringResource` (not `String`) so Xcode auto-extracts them too - **Not localized**: `SleepMode.assertionReason` — intentionally English (appears in `pmset` output and Activity Monitor) - **Adding a new string**: Just use `Text("New string")` or return `LocalizedStringResource`. Build the project — the key appears in `Localizable.xcstrings` marked "New". Add translations there. -- **Testing a language**: In Xcode: Edit Scheme → Run → Options → App Language. From CLI: `open path/to/Vigil.app --args -AppleLanguages '(uk)'`. Replace `uk` with any locale code (`de`, `es`, `hi`, `zh-Hans`). +- **Testing a language**: In Xcode: Edit Scheme → Run → Options → App Language. See CLI Commands below for command-line testing. + +## CLI Commands + +```bash +# Build +xcodebuild build -project app/Vigil.xcodeproj -scheme Vigil -destination 'platform=macOS' + +# Test +xcodebuild test -project app/Vigil.xcodeproj -scheme Vigil -destination 'platform=macOS' + +# Build and run +xcodebuild build -project app/Vigil.xcodeproj -scheme Vigil -destination 'platform=macOS' -quiet && \ +open "$(xcodebuild -project app/Vigil.xcodeproj -scheme Vigil -showBuildSettings 2>/dev/null | awk '/BUILT_PRODUCTS_DIR/{print $3}')/Vigil.app" + +# Build and run with a specific language (replace 'uk' with: de, es, hi, zh-Hans) +xcodebuild build -project app/Vigil.xcodeproj -scheme Vigil -destination 'platform=macOS' -quiet && \ +open "$(xcodebuild -project app/Vigil.xcodeproj -scheme Vigil -showBuildSettings 2>/dev/null | awk '/BUILT_PRODUCTS_DIR/{print $3}')/Vigil.app" --args -AppleLanguages '(uk)' + +# Verify sleep assertion is active +pmset -g assertions | grep Vigil +``` ## Distribution From e3b128d1f26b48d386b8b17caa0b1c1e1d3db1e0 Mon Sep 17 00:00:00 2001 From: Serhii Vasylenko Date: Sat, 28 Mar 2026 18:14:45 +0100 Subject: [PATCH 6/7] Fix CLI build-and-run command path extraction awk pattern was too greedy, matched wrong build setting. Use grep + sed for exact BUILT_PRODUCTS_DIR match. Created with Claude Code under the supervision of Serhii Vasylenko --- CLAUDE.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 9ea5f6a..a7b5aa6 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -73,11 +73,11 @@ xcodebuild test -project app/Vigil.xcodeproj -scheme Vigil -destination 'platfor # Build and run xcodebuild build -project app/Vigil.xcodeproj -scheme Vigil -destination 'platform=macOS' -quiet && \ -open "$(xcodebuild -project app/Vigil.xcodeproj -scheme Vigil -showBuildSettings 2>/dev/null | awk '/BUILT_PRODUCTS_DIR/{print $3}')/Vigil.app" +open "$(xcodebuild -project app/Vigil.xcodeproj -scheme Vigil -showBuildSettings 2>/dev/null | grep '^ *BUILT_PRODUCTS_DIR = ' | sed 's/.*= //')/Vigil.app" # Build and run with a specific language (replace 'uk' with: de, es, hi, zh-Hans) xcodebuild build -project app/Vigil.xcodeproj -scheme Vigil -destination 'platform=macOS' -quiet && \ -open "$(xcodebuild -project app/Vigil.xcodeproj -scheme Vigil -showBuildSettings 2>/dev/null | awk '/BUILT_PRODUCTS_DIR/{print $3}')/Vigil.app" --args -AppleLanguages '(uk)' +open "$(xcodebuild -project app/Vigil.xcodeproj -scheme Vigil -showBuildSettings 2>/dev/null | grep '^ *BUILT_PRODUCTS_DIR = ' | sed 's/.*= //')/Vigil.app" --args -AppleLanguages '(uk)' # Verify sleep assertion is active pmset -g assertions | grep Vigil From 1ee440bd9b63ef33b74621342bff27d6200b8e7a Mon Sep 17 00:00:00 2001 From: Serhii Vasylenko Date: Sat, 28 Mar 2026 18:20:54 +0100 Subject: [PATCH 7/7] Rename SleepMode.description to modeDescription Avoids shadowing the CustomStringConvertible.description convention, especially now that the return type is LocalizedStringResource not String. Created with Claude Code under the supervision of Serhii Vasylenko --- app/Vigil/MenuBarView.swift | 2 +- app/Vigil/SleepManager.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Vigil/MenuBarView.swift b/app/Vigil/MenuBarView.swift index 4778ed3..750bf0a 100644 --- a/app/Vigil/MenuBarView.swift +++ b/app/Vigil/MenuBarView.swift @@ -85,7 +85,7 @@ struct MenuBarView: View { .pickerStyle(.segmented) .labelsHidden() - Text(sleepManager.sleepMode.description) + Text(sleepManager.sleepMode.modeDescription) .font(.caption) .foregroundStyle(.secondary) .frame(maxWidth: .infinity, alignment: .center) diff --git a/app/Vigil/SleepManager.swift b/app/Vigil/SleepManager.swift index 510187d..27ea310 100644 --- a/app/Vigil/SleepManager.swift +++ b/app/Vigil/SleepManager.swift @@ -31,7 +31,7 @@ enum SleepMode: String, CaseIterable { } } - var description: LocalizedStringResource { + var modeDescription: LocalizedStringResource { switch self { case .displayAndSystem: "Screen and system stay awake" case .systemOnly: "Screen may sleep, system stays running"