@@ -9,6 +9,25 @@ enum AppReadinessStateKind: String, CaseIterable, Equatable {
99 case ready
1010 case degraded
1111 case blocked
12+
13+ var title : String {
14+ switch self {
15+ case . idle:
16+ return L10n . string ( " app_readiness.state.idle " )
17+ case . resolvingBundle:
18+ return L10n . string ( " app_readiness.state.resolving_bundle " )
19+ case . checkingCapabilities:
20+ return L10n . string ( " app_readiness.state.checking_capabilities " )
21+ case . validatingInstall:
22+ return L10n . string ( " app_readiness.state.validating_install " )
23+ case . ready:
24+ return L10n . string ( " app_readiness.state.ready " )
25+ case . degraded:
26+ return L10n . string ( " app_readiness.state.degraded " )
27+ case . blocked:
28+ return L10n . string ( " app_readiness.state.blocked " )
29+ }
30+ }
1231}
1332
1433struct AppReadinessSummary : Equatable {
@@ -134,7 +153,7 @@ final class AppReadinessStore: ObservableObject {
134153 code: . helperMissing,
135154 severity: . error,
136155 message: error. localizedDescription,
137- recovery: " Reinstall TimeCapsuleSMB or choose a valid helper in Diagnostics. "
156+ recovery: L10n . string ( " app_readiness.recovery.helper_missing " )
138157 ) )
139158 return
140159 }
@@ -205,7 +224,7 @@ final class AppReadinessStore: ObservableObject {
205224 code: . operationFailed,
206225 severity: . error,
207226 message: payload. summary,
208- recovery: " Open Diagnostics and retry app readiness. "
227+ recovery: L10n . string ( " app_readiness.recovery.retry_diagnostics " )
209228 ) )
210229 return
211230 }
@@ -225,7 +244,7 @@ final class AppReadinessStore: ObservableObject {
225244 code: . installValidationFailed,
226245 severity: . error,
227246 message: payload. summary,
228- recovery: " Reinstall TimeCapsuleSMB or open Diagnostics for the failed checks. "
247+ recovery: L10n . string ( " app_readiness.recovery.install_validation_failed " )
229248 ) )
230249 return
231250 }
@@ -272,16 +291,16 @@ final class AppReadinessStore: ObservableObject {
272291 code: code,
273292 severity: . error,
274293 message: event. message ?? event. summary,
275- recovery: BackendErrorViewModel ( event: event) . recovery? . message ?? " Open Diagnostics and retry app readiness. "
294+ recovery: BackendErrorViewModel ( event: event) . recovery? . message ?? L10n . string ( " app_readiness.recovery.retry_diagnostics " )
276295 )
277296 }
278297
279298 private func contractIssue( operation: String , error: Error ) -> BundleRuntimeIssue {
280299 BundleRuntimeIssue (
281300 code: . contractDecodeFailed,
282301 severity: . error,
283- message: " \( operation) returned an unexpected payload: \( error. localizedDescription) " ,
284- recovery: " Update or reinstall TimeCapsuleSMB so the app and helper use the same API contract. "
302+ message: L10n . format ( " app_readiness.error.unexpected_payload " , operation, error. localizedDescription) ,
303+ recovery: L10n . string ( " app_readiness.recovery.contract_mismatch " )
285304 )
286305 }
287306
0 commit comments