8e1cf3524c
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.
113 lines
9.3 KiB
TypeScript
113 lines
9.3 KiB
TypeScript
export const plan = {
|
||
'plan.addAtLeastOneWish': 'Add at least one wish above to suggest a plan.',
|
||
'plan.addWishError': 'Could not add wish',
|
||
'plan.calculating': 'Calculating...',
|
||
'plan.intro': 'Describe how you want to be on leave — for example 6 weeks every summer and 4 weeks every Christmas — and get a suggested plan showing exactly which days are already free, which cost a vacation day, and which cost a parental-benefit day.',
|
||
'plan.loading': 'Loading planning...',
|
||
'plan.proposeButton': 'Suggest plan',
|
||
'plan.removeWishError': 'Could not remove wish',
|
||
'plan.title': 'Planning',
|
||
'plan.updateWishError': 'Could not save wish',
|
||
'plan.wishesTitle': 'Your wishes',
|
||
'planResults.age4ProjectionsIntro': 'Here\'s what the 4th birthday looks like if this proposal is applied, including future recurring wishes. Your saved plan (under Overview) may show a different result.',
|
||
'planResults.age4ProjectionsTitle': 'At the child\'s 4th birthday, if this proposal is applied',
|
||
'planResults.applyButton': 'Use plan',
|
||
'planResults.applySavedPrefix': 'The plan has been saved!',
|
||
'planResults.applyingButton': 'Saving...',
|
||
'planResults.balancesTitle': 'Remaining balances after the plan',
|
||
'planResults.cancelButton': 'Cancel',
|
||
'planResults.collisionDateHeader': 'Date',
|
||
'planResults.collisionExistingHeader': 'Existing type',
|
||
'planResults.collisionProposedHeader': 'Proposed type',
|
||
'planResults.confirmOverwriteButton': 'Yes, replace the existing days',
|
||
'planResults.confirmOverwriteIntro': 'The following days are already planned and will be replaced:',
|
||
'planResults.confirmOverwriteTitle': 'Conflict with existing days',
|
||
'planResults.createdClause': '{count} new {dayWord} created',
|
||
'planResults.daySingular': 'day',
|
||
'planResults.dayTypeFree': 'free days (weekend/public holiday)',
|
||
'planResults.dayTypeLagsta': 'parental-benefit days (lägstanivå, minimum rate)',
|
||
'planResults.dayTypeSjukpenning': 'parental-benefit days (sjukpenningnivå, income-based)',
|
||
'planResults.dayTypeVacation': 'vacation days',
|
||
'planResults.daysPlural': 'days',
|
||
'planResults.detailTitle': 'Leave periods in detail',
|
||
'planResults.dubbeldagarLeftHeader': 'Double days left',
|
||
'planResults.expiringAtB4Header': 'Expiring',
|
||
'planResults.explanationDetailFree': '{free_days} fully free days (weekend/public holiday)',
|
||
'planResults.explanationDetailLagsta': '{lagsta_days} parental-benefit days (lägstanivå, minimum rate)',
|
||
'planResults.explanationDetailSjukpenning': '{sjukpenning_days} parental-benefit days (sjukpenningnivå, income-based)',
|
||
'planResults.explanationDetailVacationAndFp': 'you keep your salary for {vacation_days} days and save {fp_days} parental-benefit days',
|
||
'planResults.explanationDetailVacationOnly': '{vacation_days} vacation days',
|
||
'planResults.explanationShortfallSuffix': ' ({shortfall_days} days short)',
|
||
'planResults.explanationSummary': '{wish_name} {year} — {weeks_wished} weeks wished, {weeks_funded} weeks funded',
|
||
'planResults.fourthBirthdayHeader': '4th birthday',
|
||
'planResults.freeDaySingular': 'free day',
|
||
'planResults.freeDaysPlural': 'free days',
|
||
'planResults.fullyFunded': 'Fully funded',
|
||
'planResults.funded': 'funded',
|
||
'planResults.lagstaLeftHeader': 'Lägstanivå days left',
|
||
'planResults.leavesHeader': 'Leave periods',
|
||
'planResults.noWindowsInHorizon': 'No windows within the planning horizon.',
|
||
'planResults.parentHeader': 'Parent',
|
||
'planResults.parentalDaysTitle': 'Parental-benefit days',
|
||
'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_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}',
|
||
'planResults.remedyCarryVacationForward': '{spare_total} vacation days from previous years can be carried forward',
|
||
'planResults.remedyLowerPriorityWish': 'Lowering {wish_name} from {from_weeks} to {to_weeks} weeks frees up {freed_days} days',
|
||
'planResults.remedyReducePreschoolReserve': 'Reducing the preschool planning-day reserve ({reserved} reserved) frees up {reserved} days',
|
||
'planResults.remedyShiftWindowIntoFreeDays': 'Moving {wish_name} closer to a weekend frees up {shift_gain} days',
|
||
'planResults.replacedClause': ', {count} {dayWord} replaced',
|
||
'planResults.savableAfterB4Header': 'Savable',
|
||
'planResults.shortfallCouldNotBeFunded': '{days} {dayWord} could not be funded.',
|
||
'planResults.shortfallLabel': 'Shortfall:',
|
||
'planResults.sjukpenningLeftHeader': 'Sjukpenningnivå days left',
|
||
'planResults.skippedFreeClause': ', {count} {dayWord} skipped',
|
||
'planResults.skippedIdenticalClause': ', {count} {dayWord} skipped (already identical)',
|
||
'planResults.strategyDubbeldag': 'Double days — both parents home at the same time',
|
||
'planResults.strategyParentSwap': 'Parents alternate',
|
||
'planResults.strategyPrefix': 'Strategy:',
|
||
'planResults.strategySolo': 'One parent home',
|
||
'planResults.strategyUnplaced': 'Could not be placed — no free slot was found',
|
||
'planResults.surplusAdviceBodyFrontLoadEarlyYears': '{parent_name} has a large surplus ({days_involved} parental-benefit days) — take more days now while the child is still small and you are home anyway, rather than spreading them thinly until the 4th birthday.',
|
||
'planResults.surplusAdviceBodyShiftMixToFp': '{parent_name} could swap {days_involved} vacation day(s) for parental-benefit days in this plan — the parental-benefit days would otherwise be forfeited at the 4th birthday, while the vacation days would not.',
|
||
'planResults.surplusAdviceBodyUseLessVacation': '{parent_name} could take {days_involved} fewer vacation day(s) ({years_text}) without going below the statutory minimum ({min_vacation_days_per_year} days/year) — save them instead to cover parental-benefit days that would otherwise be forfeited.',
|
||
'planResults.surplusAdviceBodyWishMoreLeave': '{parent_name} can afford {weeks} more week(s) of leave ({days_involved} parental-benefit days would otherwise be forfeited at the child\'s 4th birthday) — add a week in the summer or an autumn break.',
|
||
'planResults.surplusAdviceFrontLoadEarlyYears': 'Take more leave while the child is small',
|
||
'planResults.surplusAdviceIntro': 'This plan leaves days unused that would otherwise be lost at the child\'s 4th birthday. A few suggestions:',
|
||
'planResults.surplusAdviceShiftMixToFp': 'Spend parental-benefit days instead of vacation',
|
||
'planResults.surplusAdviceTitle': 'You have unused days',
|
||
'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.',
|
||
'planResults.vacationDaysTitle': 'Vacation days',
|
||
'planResults.warningBodyDaysLostAtAge4': '{parent_name} risks losing {expiring_days} days at the child\'s 4th birthday ({fourth_birthday}) unless more days are used before then.',
|
||
'planResults.warningBodySgiRisk': '{parent_name} risks their SGI protection for the week starting {week_start} ({days_planned} day(s) planned, at least {min_days_per_week} required).',
|
||
'planResults.warningBodyVacationExpiring': '{parent_name} has {saved_days_in} saved vacation day(s) from {year} at risk of being forfeited.',
|
||
'planResults.warningDaysLostAtAge4': 'Days at risk of being lost at age 4',
|
||
'planResults.warningSgiRisk': 'Risk to SGI protection',
|
||
'planResults.warningVacationExpiring': 'Vacation days at risk of being lost',
|
||
'planResults.warningsTitle': 'Warnings',
|
||
'planResults.weekSingular': 'week',
|
||
'planResults.weeksUnit': 'weeks',
|
||
'planResults.wished': 'wished',
|
||
'planResults.yearHeader': 'Year',
|
||
'planResults.yearOverviewTitle': 'Overview by year',
|
||
'planningModeSelector.couple': 'Me and my partner',
|
||
'planningModeSelector.legend': 'Are you planning alone or together with a partner?',
|
||
'planningModeSelector.solo': 'Just me',
|
||
} as const
|