Lead the overview with the days about to be lost
The page opened with generic tiles and a bar reading forty-eight of ninety-six weeks, which was neither weeks nor connected to the age-four ceiling it appeared to describe. It is replaced by one headline and a bar per parent, in days, against each parent's own savable limit as the server reports it. The headline has two framings on the same arithmetic. Before anything is planned it says what there is to plan and what will be lost without a plan, because on the first day almost the whole entitlement is technically at risk and saying so bluntly reads as an accusation. Once a plan exists it warns about the days genuinely at stake. A timeline of the years to the fourth birthday answers what the next four years look like, which a month-at-a-time calendar cannot. Shortfalls, surplus advice and balances sit below the fold, read-only: applying is automatic now, so a second apply button would be a way to get two different answers. Rejection messages move to one shared place that resolves a parent's name, so an identifier can no longer surface in their place.
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
export const dashboard = {
|
||||
'age4Bars.expiringStat': '{expiring} days expiring',
|
||||
'age4Bars.savableStat': '{left} of {cap} days can be saved',
|
||||
'age4Bars.title': 'Days left at age 4, per parent',
|
||||
'dashboard.addChildButton': 'Add child',
|
||||
'dashboard.addChildIntro': 'You have no children registered yet. Add your first child to get started.',
|
||||
'dashboard.addChildTitle': 'Add child',
|
||||
@@ -13,11 +16,16 @@ export const dashboard = {
|
||||
'dashboard.expiringAtB4ParentFallback': 'Parent {number}',
|
||||
'dashboard.fetchFromFk': 'Fetch from Försäkringskassan',
|
||||
'dashboard.fillAllFields': 'Fill in all fields',
|
||||
'dashboard.hero.hasPlanMessage': '{atRisk} days are at risk of disappearing when {childName} turns 4 ({date}).',
|
||||
'dashboard.hero.noPlanMessage': 'You have {days} days to plan. Without a plan, {atRisk} of them will disappear when {childName} turns 4.',
|
||||
'dashboard.loading': 'Loading...',
|
||||
'dashboard.moreDetailsSummary': 'More details',
|
||||
'dashboard.namePlaceholder': 'Name',
|
||||
'dashboard.overviewTitle': 'Overview',
|
||||
'dashboard.planFold.noWishesHint': 'Add wishes under Planning to see a proposal here.',
|
||||
'dashboard.planFold.summary': 'Plan proposal for the years ahead',
|
||||
'dashboard.planFold.unknownParent': 'Unknown parent',
|
||||
'dashboard.plannedDaysTitle': 'Planned days',
|
||||
'dashboard.remainingUntilB4Title': 'Remaining until age 4',
|
||||
'dashboard.saveManualFetchError': 'Could not save the details',
|
||||
'dashboard.usedDays': 'Used days',
|
||||
'daysBreakdown.daysHeader': 'Days',
|
||||
@@ -35,7 +43,6 @@ export const dashboard = {
|
||||
'parentalLeaveBreakdown.totalHeader': 'Total',
|
||||
'parentalLeaveBreakdown.transferableDays': 'Transferable days',
|
||||
'parentalLeaveBreakdown.typeHeader': 'Type',
|
||||
'progressChart.age': 'Age: {age}',
|
||||
'progressChart.title': 'Parental leave — progress',
|
||||
'progressChart.weeksStat': '{current} / {target} weeks',
|
||||
'yearTimeline.bandLabel': '{dayType}, {startDate} – {endDate}',
|
||||
'yearTimeline.title': 'The years ahead',
|
||||
} as const
|
||||
|
||||
@@ -52,12 +52,13 @@ export const plan = {
|
||||
'planResults.previewBanner': 'This is a suggestion — nothing is saved automatically. You can adjust your wishes above and suggest a new plan as many times as you like.',
|
||||
'planResults.projectedLeftHeader': 'Projected left',
|
||||
'planResults.rejectionCollisionsNeedReplace': '{count} day(s) already planned differently; pass replace=true to overwrite',
|
||||
'planResults.rejectionConflictingDuplicate': 'Conflicting duplicate entries for {date} (child {child_id}, parent {parent_personal_data_uuid}) in the same batch',
|
||||
'planResults.rejectionConflictingDuplicate': 'Conflicting duplicate entries for {date} (child {child_id}, parent {parent_name}) in the same batch',
|
||||
'planResults.rejectionDubbeldagBatchQuotaExceeded': 'This batch would result in {projected_total} double days, the max is {max_dubbeldagar}',
|
||||
'planResults.rejectionDubbeldagInvalid': 'The double day for {date} could not be approved',
|
||||
'planResults.rejectionDubbeldagQuotaReached': 'The double-days quota ({max_dubbeldagar} days) has already been reached',
|
||||
'planResults.rejectionDubbeldagWindowExceeded': 'Double days are only allowed within the child\'s first {months_limit} months (deadline {deadline})',
|
||||
'planResults.rejectionInsufficientBalance': 'This batch needs {needed} more "{tier}" day(s) but only {remaining} remain',
|
||||
'planResults.rejectionInsufficientVacationBalance': '{parent_name} would need {needed} more vacation day(s) in {year}, but only {remaining} remain',
|
||||
'planResults.rejectionInvalidDayType': 'Day {index} ({date}): invalid day type "{day_type}"',
|
||||
'planResults.rejectionOutsideEligibleWindow': '{date}: outside the child\'s eligible window ({birth_date} – {hard_expiry})',
|
||||
'planResults.rejectionsClause': '. Rejected: {rejections}',
|
||||
@@ -88,6 +89,7 @@ export const plan = {
|
||||
'planResults.surplusAdviceUseLessVacation': 'Save fewer vacation days',
|
||||
'planResults.surplusAdviceWishMoreLeave': 'Wish for more leave',
|
||||
'planResults.totalAvailableHeader': 'Total available',
|
||||
'planResults.unknownParent': 'Unknown parent',
|
||||
'planResults.usedHeader': 'Used',
|
||||
'planResults.vacationAssumedBadge': 'Assumed',
|
||||
'planResults.vacationAssumedPrompt': 'No value is recorded for this year — the statutory 25 days has been assumed. Confirm or edit it in Settings.',
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
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.addChildButton': 'Lägg till barn',
|
||||
'dashboard.addChildIntro': 'Du har inga barn registrerade ännu. Lägg till ditt första barn för att börja.',
|
||||
'dashboard.addChildTitle': 'Lägg till barn',
|
||||
@@ -13,11 +16,16 @@ export const dashboard = {
|
||||
'dashboard.expiringAtB4ParentFallback': 'Förälder {number}',
|
||||
'dashboard.fetchFromFk': 'Hämta från Försäkringskassan',
|
||||
'dashboard.fillAllFields': 'Fyll i alla fält',
|
||||
'dashboard.hero.hasPlanMessage': '{atRisk} dagar riskerar att försvinna när {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.namePlaceholder': 'Namn',
|
||||
'dashboard.overviewTitle': 'Översikt',
|
||||
'dashboard.planFold.noWishesHint': 'Lägg till önskemål under Planering 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.remainingUntilB4Title': 'Återstående till 4 års ålder',
|
||||
'dashboard.saveManualFetchError': 'Kunde inte spara uppgifterna',
|
||||
'dashboard.usedDays': 'Använda dagar',
|
||||
'daysBreakdown.daysHeader': 'Dagar',
|
||||
@@ -35,7 +43,6 @@ export const dashboard = {
|
||||
'parentalLeaveBreakdown.totalHeader': 'Totalt',
|
||||
'parentalLeaveBreakdown.transferableDays': 'Överlåtbara dagar',
|
||||
'parentalLeaveBreakdown.typeHeader': 'Typ',
|
||||
'progressChart.age': 'Ålder: {age}',
|
||||
'progressChart.title': 'Föräldraledighet – förlopp',
|
||||
'progressChart.weeksStat': '{current} / {target} veckor',
|
||||
'yearTimeline.bandLabel': '{dayType}, {startDate} – {endDate}',
|
||||
'yearTimeline.title': 'De kommande åren',
|
||||
} as const
|
||||
@@ -52,12 +52,13 @@ export const plan = {
|
||||
'planResults.previewBanner': 'Detta är ett förslag — inget sparas automatiskt. Du kan justera dina önskemål ovan och föreslå en ny plan så många gånger du vill.',
|
||||
'planResults.projectedLeftHeader': 'Beräknat kvar',
|
||||
'planResults.rejectionCollisionsNeedReplace': '{count} dag(ar) är redan planerade på annat sätt; skicka replace=true för att skriva över',
|
||||
'planResults.rejectionConflictingDuplicate': 'Motstridiga dubbletter för {date} (barn {child_id}, förälder {parent_personal_data_uuid}) i samma omgång',
|
||||
'planResults.rejectionConflictingDuplicate': 'Motstridiga dubbletter för {date} (barn {child_id}, förälder {parent_name}) i samma omgång',
|
||||
'planResults.rejectionDubbeldagBatchQuotaExceeded': 'Omgången skulle resultera i {projected_total} dubbeldagar, max är {max_dubbeldagar}',
|
||||
'planResults.rejectionDubbeldagInvalid': 'Dubbeldag för {date} kunde inte godkännas',
|
||||
'planResults.rejectionDubbeldagQuotaReached': 'Kvoten för dubbeldagar ({max_dubbeldagar} dagar) är redan nådd',
|
||||
'planResults.rejectionDubbeldagWindowExceeded': 'Dubbeldagar är endast tillåtna inom barnets första {months_limit} månader (senast {deadline})',
|
||||
'planResults.rejectionInsufficientBalance': 'Omgången behöver {needed} fler "{tier}"-dagar men endast {remaining} finns kvar',
|
||||
'planResults.rejectionInsufficientVacationBalance': '{parent_name} skulle behöva {needed} fler semesterdag(ar) {year}, men endast {remaining} finns kvar',
|
||||
'planResults.rejectionInvalidDayType': 'Dag {index} ({date}): ogiltig dagtyp "{day_type}"',
|
||||
'planResults.rejectionOutsideEligibleWindow': '{date}: utanför barnets tillåtna period ({birth_date} – {hard_expiry})',
|
||||
'planResults.rejectionsClause': '. Avslag: {rejections}',
|
||||
@@ -88,6 +89,7 @@ export const plan = {
|
||||
'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.vacationAssumedBadge': 'Antaget',
|
||||
'planResults.vacationAssumedPrompt': 'Inget värde är registrerat för detta år — 25 dagar (lagstadgat) har antagits. Bekräfta eller ändra i Inställningar.',
|
||||
|
||||
Reference in New Issue
Block a user