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
@@ -15,26 +15,26 @@ struct OnboardingView: View {
private let pages: [OnboardingPage] = [
OnboardingPage(
icon: "chart.line.uptrend.xyaxis",
title: "Know exactly where you stand",
description: "See your total wealth, real returns, and allocation — always up to date.",
title: String(localized: "onboarding_clarity_title"),
description: String(localized: "onboarding_clarity_desc"),
color: .appPrimary
),
OnboardingPage(
icon: "checkmark.circle.fill",
title: "5 minutes a month is enough",
description: "Log your values once a month. Portfolio Journal handles the math and shows your progress.",
title: String(localized: "onboarding_habit_title"),
description: String(localized: "onboarding_habit_desc"),
color: .positiveGreen
),
OnboardingPage(
icon: "leaf.fill",
title: "Ignore the noise. Track the trend.",
description: "Daily swings don't tell the real story. Your growth over months and years does.",
title: String(localized: "onboarding_calm_title"),
description: String(localized: "onboarding_calm_desc"),
color: .appSecondary
),
OnboardingPage(
icon: "flag.checkered",
title: "Reach your financial goals",
description: "Set targets, track milestones, and see exactly how far you've come.",
title: String(localized: "onboarding_goals_title"),
description: String(localized: "onboarding_goals_desc"),
color: .appWarning
)
]