Ensure full Spanish localization for all 1.2.0 strings

- OnboardingView: wrap page titles/descriptions with String(localized:)
  using symbolic keys so SwiftUI can look them up correctly
- IAPService.paywallBenefits: change from static let to static var,
  wrap all strings with String(localized:) using symbolic keys
- en.lproj: add symbolic keys for new onboarding pages and paywall benefits
- es-ES.lproj: add Spanish translations for all new keys (onboarding pages,
  paywall benefits, batch update, contribution fields) plus pre-existing
  gaps (Monthly Highlights, Best/Worst Performer, Best Contributor)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
alexandrev-tibco
2026-02-20 22:41:40 +01:00
parent 015e718b39
commit 472342fa67
4 changed files with 70 additions and 14 deletions
+14 -6
View File
@@ -262,10 +262,18 @@ extension IAPService {
]
/// Condensed benefits shown on the paywall (4 max, outcome-focused)
static let paywallBenefits: [(icon: String, title: String, subtitle: String)] = [
("clock.arrow.circlepath", "Your complete history", "Every snapshot, contribution, and gain since day one"),
("chart.bar.xaxis", "Charts that reveal patterns", "Allocation, drawdown, performance — all in one place"),
("wand.and.stars", "12-month forecasts", "See where your portfolio is likely heading"),
("xmark.circle", "No ads, ever", "Clean, focused experience with no distractions")
]
static var paywallBenefits: [(icon: String, title: String, subtitle: String)] {[
("clock.arrow.circlepath",
String(localized: "paywall_benefit_history_title"),
String(localized: "paywall_benefit_history_subtitle")),
("chart.bar.xaxis",
String(localized: "paywall_benefit_charts_title"),
String(localized: "paywall_benefit_charts_subtitle")),
("wand.and.stars",
String(localized: "paywall_benefit_forecasts_title"),
String(localized: "paywall_benefit_forecasts_subtitle")),
("xmark.circle",
String(localized: "paywall_benefit_noads_title"),
String(localized: "paywall_benefit_noads_subtitle"))
]}
}