Make the overview answer the year-by-year question
The dashboard now leads with a typographic headline, three key figures, per-parent age-4 bars and one row per year until the fourth birthday. Each year row shows the timeline bands beside each parent's parental-leave days left at year end and vacation days left, carried over or expiring, and opens into a per-parent table with that year's wish outcomes. Tips become a plain list and absorb the planner's surplus advice; "Detaljer" keeps the metrics and a balance snapshot for every parent. The separate plan-proposal fold and the type-count table are gone. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XBRLomdLK9jF7wU7a8AA6H
This commit is contained in:
@@ -2,44 +2,55 @@ export const dashboard = {
|
||||
'age4Bars.expiringStat': '{expiring} dagar förfaller',
|
||||
'age4Bars.savableStat': '{left} av {cap} dagar kan sparas',
|
||||
'age4Bars.title': 'Dagar kvar vid 4 års ålder, per förälder',
|
||||
'dashboard.balancePickerPrompt': 'Vem gäller det?',
|
||||
'dashboard.balanceLink': 'Uppdatera saldon',
|
||||
'dashboard.daysLeft': 'Kvarvarande dagar',
|
||||
'dashboard.enterManually': 'Ange uppgifter manuellt',
|
||||
'dashboard.estimatedBadge': 'Uppskattat',
|
||||
'dashboard.estimatedBadgeCaption': 'Inga verkliga saldon är hämtade än — siffrorna bygger på det lagstadgade antagandet (480 dagar, inget uttaget). Hämta från Försäkringskassan eller ange uppgifter manuellt för exakta siffror.',
|
||||
'dashboard.estimatedBadgeCaption': 'Inga verkliga saldon är hämtade än — siffrorna utgår från 480 dagar, inget uttaget. Uppdatera saldon under Inställningar.',
|
||||
'dashboard.expiringAtB4': 'Förfaller vid 4 år om nuvarande plan följs (alla föräldrar)',
|
||||
'dashboard.expiringAtB4ForParent': 'Förfaller vid 4 år om nuvarande plan följs – {name}',
|
||||
'dashboard.expiringAtB4ParentFallback': 'Förälder {number}',
|
||||
// Still referenced by `Onboarding.tsx`'s balances step; the balance flow
|
||||
// is moving to a `balance.*` namespace — drop this key once nothing else
|
||||
// reads it.
|
||||
'dashboard.fetchFromFk': 'Hämta från Försäkringskassan',
|
||||
'dashboard.figureExpiring': 'Förfaller vid 4 år',
|
||||
'dashboard.figureLeft': 'Dagar kvar',
|
||||
'dashboard.figureUsed': 'Använda',
|
||||
'dashboard.hero.hasPlanMessage': '{atRisk} dagar riskerar att försvinna när {childName} fyller 4 ({date}).',
|
||||
'dashboard.hero.noneAtRiskMessage': 'Inga dagar går förlorade — er plan hinner använda alla innan {childName} fyller 4 ({date}).',
|
||||
'dashboard.hero.noPlanMessage': 'Du har {days} dagar att planera. Utan en plan försvinner {atRisk} av dem när {childName} fyller 4.',
|
||||
'dashboard.loading': 'Laddar...',
|
||||
'dashboard.moreDetailsSummary': 'Fler detaljer',
|
||||
'dashboard.leaveOverviewTitle': 'Fram till 4 år',
|
||||
'dashboard.moreDetailsSummary': 'Detaljer',
|
||||
'dashboard.overviewTitle': 'Översikt',
|
||||
'dashboard.planFold.noWishesHint': 'Lägg till önskemål under Kalender för att se ett förslag här.',
|
||||
'dashboard.planFold.summary': 'Planförslag för de kommande åren',
|
||||
'dashboard.planFold.unknownParent': 'Okänd förälder',
|
||||
'dashboard.plannedDaysTitle': 'Planerade dagar',
|
||||
'dashboard.saveManualFetchError': 'Kunde inte spara uppgifterna',
|
||||
'dashboard.usedDays': 'Använda dagar',
|
||||
'daysBreakdown.daysHeader': 'Dagar',
|
||||
'daysBreakdown.empty': 'Inga dagar registrerade än',
|
||||
'daysBreakdown.typeHeader': 'Typ av ledighet',
|
||||
'overviewMetrics.defaultTitle': 'Översikt',
|
||||
'parentalLeaveBreakdown.dubbeldagarLeft': 'Dubbeldagar kvar',
|
||||
'parentalLeaveBreakdown.empty': 'Ingen data hämtad ännu — tryck på Hämta från Försäkringskassan.',
|
||||
'parentalLeaveBreakdown.lagstaNiva': 'Lägsta nivå',
|
||||
'parentalLeaveBreakdown.remainingHeader': 'Återstående',
|
||||
'parentalLeaveBreakdown.reservedNote': '{reserved} av dina dagar är reserverade och kan inte överlåtas till den andra föräldern (max {transferable} dagar kan överlåtas).',
|
||||
'parentalLeaveBreakdown.sjukpenning': 'Sjukpenning',
|
||||
'parentalLeaveBreakdown.empty': 'Inga saldon hämtade än.',
|
||||
'parentalLeaveBreakdown.lagstaNiva': 'Lägstanivå',
|
||||
'parentalLeaveBreakdown.leftOfTotal': '{left} av {total}',
|
||||
'parentalLeaveBreakdown.noBalance': 'Inget saldo än',
|
||||
'parentalLeaveBreakdown.reservedNote': '{reserved} av varje förälders dagar är reserverade och kan inte överlåtas till den andra föräldern (max {transferable} dagar kan överlåtas).',
|
||||
'parentalLeaveBreakdown.sjukpenning': 'Sjukpenningnivå',
|
||||
'parentalLeaveBreakdown.sourceManual': 'Manuellt angiven',
|
||||
'parentalLeaveBreakdown.sourceScraped': 'Hämtad från Försäkringskassan',
|
||||
'parentalLeaveBreakdown.totalHeader': 'Totalt',
|
||||
'parentalLeaveBreakdown.transferableDays': 'Överlåtbara dagar',
|
||||
'parentalLeaveBreakdown.typeHeader': 'Typ',
|
||||
'yearTimeline.bandLabel': '{dayType}, {startDate} – {endDate} ({dayCount} dagar). Klicka för att öppna denna månad i kalendern.',
|
||||
'yearTimeline.bandLabelOneDay': '{dayType}, {startDate} – {endDate} (1 dag). Klicka för att öppna denna månad i kalendern.',
|
||||
'yearTimeline.caption': 'Varje rad är ett år och varje färgad stapel en planerad ledighetsperiod. Klicka på en stapel för att öppna den månaden i kalendern.',
|
||||
'yearTimeline.title': 'De kommande åren',
|
||||
} as const
|
||||
'yearRow.assumed': 'antaget',
|
||||
'yearRow.bandLabel': '{dayType}, {startDate} – {endDate} ({dayCount} dagar). Klicka för att öppna i kalendern.',
|
||||
'yearRow.bandLabelOneDay': '{dayType}, {startDate} – {endDate} (1 dag). Klicka för att öppna i kalendern.',
|
||||
'yearRow.carriedIn': 'Sparade in',
|
||||
'yearRow.carriedOut': 'sparas {days}',
|
||||
'yearRow.carriedOutRow': 'Sparas till nästa år',
|
||||
'yearRow.earned': 'Intjänade',
|
||||
'yearRow.expiring': 'förfaller {days}',
|
||||
'yearRow.expiringRow': 'Förfaller',
|
||||
'yearRow.fpLeft': 'FP kvar',
|
||||
'yearRow.left': 'Kvar',
|
||||
'yearRow.leftAtYearEnd': 'Kvar vid årets slut',
|
||||
'yearRow.parentalLeaveTitle': 'Föräldrapenning',
|
||||
'yearRow.plannedUse': 'Planerade',
|
||||
'yearRow.usedThisYear': 'Använda i år',
|
||||
'yearRow.vacationLeft': 'Semester kvar',
|
||||
'yearRow.vacationTitle': 'Semester',
|
||||
'yearRow.weeksFunded': '{funded} av {wished} veckor',
|
||||
'yearRow.wishesTitle': 'Ledigheter',
|
||||
} as const
|
||||
|
||||
@@ -1,16 +1,11 @@
|
||||
// `plan.*` (the standalone Plan tab) and most `planResults.*` keys were
|
||||
// retired with the Plan/Tips tabs (leave is now authored on the calendar and
|
||||
// Översikt carries the headline figures — see PLANNING_ENGINE_SPEC.md's
|
||||
// superseding note). What's left here is the subset `planResults.*`
|
||||
// `PlanFold.tsx` (the read-only plan-proposal fold on Översikt) and
|
||||
// `frontend/src/utils/rejectionMessages.ts` still render.
|
||||
// superseding note). What's left here is the subset the dashboard's year
|
||||
// rows (`YearRows.tsx`: shortfall + remedy lines), its surplus-advice tips
|
||||
// (`SurplusAdviceTip.tsx`) and `frontend/src/utils/rejectionMessages.ts`
|
||||
// still render.
|
||||
export const plan = {
|
||||
'planResults.balancesTitle': 'Kvarvarande saldon efter planen',
|
||||
'planResults.dubbeldagarLeftHeader': 'Dubbeldagar kvar',
|
||||
'planResults.lagstaLeftHeader': 'Lägstanivådagar kvar',
|
||||
'planResults.leavesHeader': 'Ledigheter',
|
||||
'planResults.noWindowsInHorizon': 'Inga fönster inom planeringshorisonten.',
|
||||
'planResults.parentHeader': 'Förälder',
|
||||
'planResults.remedyBodyCarryVacationForward': '{spare_total} semesterdagar från tidigare år kan sparas framåt',
|
||||
'planResults.remedyBodyLowerPriorityWish': 'Sänk {wish_name} från {from_weeks} till {to_weeks} veckor frigör {days_freed} dagar',
|
||||
'planResults.remedyBodyReducePreschoolReserve': 'Minska förskolans planeringsdagar ({reserved} reserverade) frigör {days_freed} dagar',
|
||||
@@ -26,22 +21,13 @@ export const plan = {
|
||||
'planResults.rejectionInvalidDayType': 'Dag {index} ({date}): ogiltig dagtyp "{day_type}"',
|
||||
'planResults.rejectionOutsideEligibleWindow': '{date}: utanför barnets tillåtna period ({birth_date} – {hard_expiry})',
|
||||
'planResults.shortfallLine': '{shortfall_days} dag(ar) kunde inte finansieras',
|
||||
'planResults.shortfallsTitle': 'Perioder med underskott',
|
||||
'planResults.sjukpenningLeftHeader': 'Sjukpenningdagar kvar',
|
||||
'planResults.surplusAdviceBodyFrontLoadEarlyYears': '{parent_name} har ett stort överskott ({days_involved} FP-dagar) — ta ut fler dagar nu medan barnet är litet och ni ändå är hemma, istället för att sprida ut dem tunt fram till 4-årsdagen.',
|
||||
'planResults.surplusAdviceBodyShiftMixToFp': '{parent_name} kan byta {days_involved} semesterdagar mot föräldrapenningdagar under planen — FP-dagarna går annars förlorade vid 4-årsdagen, medan semestern inte gör det.',
|
||||
'planResults.surplusAdviceBodyUseLessVacation': '{parent_name} kan ta ut {days_involved} färre semesterdagar ({years_text}) utan att gå under lägsta uttaget ({min_vacation_days_per_year} dagar/år) — spara dem istället för att täcka FP-dagar som annars går förlorade.',
|
||||
'planResults.surplusAdviceBodyWishMoreLeave': '{parent_name} har råd med ytterligare {weeks} veckor ledigt ({days_involved} FP-dagar går annars förlorade vid barnets 4-årsdag) — lägg till en vecka på sommaren eller ett höstlov.',
|
||||
'planResults.surplusAdviceFrontLoadEarlyYears': 'Ta ut mer ledighet medan barnet är litet',
|
||||
'planResults.surplusAdviceIntro': 'Planen lämnar dagar outnyttjade som annars går förlorade vid barnets 4-årsdag. Några förslag:',
|
||||
'planResults.surplusAdviceShiftMixToFp': 'Använd föräldradagar istället för semester',
|
||||
'planResults.surplusAdviceTitle': 'Ni har outnyttjade dagar',
|
||||
'planResults.surplusAdviceUseLessVacation': 'Spara färre semesterdagar',
|
||||
'planResults.surplusAdviceWishMoreLeave': 'Önska mer ledighet',
|
||||
'planResults.totalAvailableHeader': 'Totalt tillgängliga',
|
||||
'planResults.unknownParent': 'Okänd förälder',
|
||||
'planResults.usedHeader': 'Använda',
|
||||
'planResults.weeksUnit': 'veckor',
|
||||
'planResults.yearHeader': 'År',
|
||||
'planResults.yearOverviewTitle': 'Översikt över åren',
|
||||
} as const
|
||||
|
||||
Reference in New Issue
Block a user