This repository has been archived on 2026-09-14. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
ScarriffleandClaude Opus 5 b489f10c28 Make the countdown narrow enough for the slot it sits in
Text(style: .timer) renders 1:23:45 once more than an hour out. An
accessoryCorner has room for three or four characters beside its curved label,
and a circular gauge for about the same, so the live timer overlapped what it
sat next to.

Replaced with a compact value — "23m", "2h", "3d" — recomputed per timeline
entry, which is why the timeline now carries a mark every minute for the first
hour. Both corner kinds and the gauge also get lineLimit(1) and a minimum scale
factor, so an unexpectedly wide value shrinks instead of colliding.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-11 18:33:38 +02:00

58 lines
2.4 KiB
Swift

import Foundation
/// German and English strings for the watch app and its complications.
///
/// A local copy rather than a shared one: `CalendarrCore` is deliberately
/// Foundation-only and holds no presentation concerns, and the iOS `WidgetL10n`
/// belongs to a target the watch cannot link against.
enum WatchL10n {
static func t(_ key: String, _ stored: String) -> String {
strings[resolve(stored)]?[key] ?? strings["en"]?[key] ?? key
}
static func locale(_ stored: String) -> Locale {
Locale(identifier: resolve(stored) == "de" ? "de_DE" : "en_US")
}
private static func resolve(_ stored: String) -> String {
if stored == "de" || stored == "en" { return stored }
let preferred = Locale.preferredLanguages.first ?? "en"
return preferred.lowercased().hasPrefix("de") ? "de" : "en"
}
private static let strings: [String: [String: String]] = [
"de": [
"watch.title": "Calendarr",
"watch.calendars": "Kalender",
"watch.allday": "Ganztägig",
"watch.no_events": "Keine Termine",
"watch.now": "jetzt",
"watch.today": "Heute",
"watch.tomorrow": "Morgen",
"watch.events_today": "Termine",
"watch.sign_in": "Auf dem iPhone anmelden",
"watch.update": "Watch-App aktualisieren",
"watch.waiting": "Warte auf Daten vom iPhone",
"watch.unreadable": "Daten nicht lesbar",
"watch.as_of": "Stand",
"watch.no_information": "Keine Daten nach",
],
"en": [
"watch.title": "Calendarr",
"watch.calendars": "Calendars",
"watch.allday": "All-day",
"watch.no_events": "No events",
"watch.now": "now",
"watch.today": "Today",
"watch.tomorrow": "Tomorrow",
"watch.events_today": "events",
"watch.sign_in": "Sign in on your iPhone",
"watch.update": "Update the watch app",
"watch.waiting": "Waiting for data from your iPhone",
"watch.unreadable": "Data unreadable",
"watch.as_of": "As of",
"watch.no_information": "No data after",
],
]
}