0081f60b06
The sign-in page becomes a plain centred column with the brand mark and a segmented login/register switch, modals lose their last inner boxes, the red-days list collapses every year but the current one, and the retired components' CSS, an unused list component and 23 unreferenced translation keys are removed. ARCHITECTURE.md documents the Almanacka styling conventions and the per-year balance rule. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XBRLomdLK9jF7wU7a8AA6H
165 lines
9.2 KiB
TypeScript
165 lines
9.2 KiB
TypeScript
export const calendar = {
|
||
'calendar.selectMonthAria': 'Select month',
|
||
'calendar.selectYearAria': 'Select year',
|
||
'calendar.deleteError': 'Failed to delete the planned day',
|
||
'calendar.nextMonthAria': 'Next month',
|
||
'calendar.partner': 'Partner',
|
||
'calendar.prevMonthAria': 'Previous month',
|
||
'calendar.saveError': 'Failed to save the planned days',
|
||
'calendar.today': 'Today',
|
||
'calendar.weekdayFri': 'Fri',
|
||
'calendar.weekdayMon': 'Mon',
|
||
'calendar.weekdaySat': 'Sat',
|
||
'calendar.weekdaySun': 'Sun',
|
||
'calendar.weekdayThu': 'Thu',
|
||
'calendar.weekdayTue': 'Tue',
|
||
'calendar.weekdayWed': 'Wed',
|
||
'calendar.you': 'You',
|
||
'calendarDay.excludedAria': 'removed day — the planner skips it',
|
||
'calendarDay.klamdagAria': 'bridge day',
|
||
'calendarDay.overrideFreeAria': 'marked as a day off (exception)',
|
||
'calendarDay.overrideWorkingAria': 'marked as a working day (exception)',
|
||
'calendarDay.pinnedAria': 'pinned by you — the planner will not retype this day',
|
||
'calendarDay.sundayAria': 'Sunday',
|
||
'calendarEvent.dismissAria': 'Dismiss {leaveType}',
|
||
'plannedDayModal.cancelButton': 'Cancel',
|
||
'plannedDayModal.closeAria': 'Close',
|
||
'plannedDayModal.confirmDelete': 'Are you sure you want to delete this planned day?',
|
||
'plannedDayModal.deleteButton': 'Delete',
|
||
'plannedDayModal.deleteConfirmButton': 'Yes, delete',
|
||
'plannedDayModal.deleteError': 'Failed to delete planned day',
|
||
'plannedDayModal.deletingButton': 'Deleting…',
|
||
'plannedDayModal.doubleDayHint': 'Double days do not apply to vacation',
|
||
'plannedDayModal.doubleDayLabel': 'Double day (both parents taking leave)',
|
||
'plannedDayModal.editTitle': 'Edit Planned Day',
|
||
'plannedDayModal.lagstaOption': 'Lägstanivå (minimum-rate, 90-day tier)',
|
||
'plannedDayModal.leaveTypeLabel': 'Leave Type',
|
||
'plannedDayModal.newTitle': 'Plan a Day',
|
||
'plannedDayModal.parentLabel': 'Parent',
|
||
'plannedDayModal.pinnedNotice': 'This day is pinned by you — the planner will not change it automatically.',
|
||
'plannedDayModal.excludedNotice': 'You removed this day for {parent}.',
|
||
'plannedDayModal.restoreExcludedButton': 'Put the day back',
|
||
'plannedDayModal.rangeTitle': 'Plan {count} days',
|
||
'plannedDayModal.parentModeLabel': 'Who is this for?',
|
||
'plannedDayModal.wantsDubbeldagLabel': 'Allow double days (dubbeldagar)',
|
||
'plannedDayModal.wantsDubbeldagHint':
|
||
"Both parents are off the same day and each spend one of their own parental-benefit days (no vacation day is used) — only available in the child's first 15 months, capped at 60 dates per child, shared between you.",
|
||
'plannedDayModal.wantsDubbeldagRequiresBothHint': 'Requires both parents to be selected above.',
|
||
'plannedDayModal.showAdvanced': 'Advanced: pick type and parent manually',
|
||
'plannedDayModal.hideAdvanced': 'Hide advanced',
|
||
'plannedDayModal.saveButton': 'Save',
|
||
'plannedDayModal.saveError': 'Failed to save planned day',
|
||
'plannedDayModal.savingButton': 'Saving…',
|
||
'plannedDayModal.sjukpenningOption': 'Sjukpenningnivå (income-based, 390-day tier)',
|
||
'plannedDayModal.vacationOption': 'Vacation',
|
||
'plannedDayModal.autoOption': 'Let the planner choose',
|
||
'redDaysList.effectiveFree': 'Off',
|
||
'redDaysList.effectiveWorking': 'Working day',
|
||
'redDaysList.emptyYear': 'No public holidays or exceptions this year.',
|
||
'redDaysList.loading': 'Loading public holidays...',
|
||
'redDaysList.nextWindow': 'Next 4 years',
|
||
'redDaysList.overrideFree': 'Exception: day off',
|
||
'redDaysList.overrideWorking': 'Exception: working day',
|
||
'redDaysList.prevWindow': 'Previous 4 years',
|
||
'redDaysList.toggleError': 'Failed to update this day. Try again.',
|
||
'redDaysList.toggleToFreeAria': 'Mark {date} as a day off',
|
||
'redDaysList.toggleToWorkingAria': 'Mark {date} as a working day',
|
||
|
||
// §Task7 — the calendar becomes the plan: drag-select, period popover,
|
||
// preset rail, and the sync toast/undo.
|
||
'calendar.periodCreateError': 'Failed to create the period',
|
||
'calendar.syncError': 'Failed to sync the plan',
|
||
'calendar.syncingLabel': 'Syncing…',
|
||
'calendar.toastChangedDays': '{name}: {count} day(s) changed',
|
||
'calendar.toastGenericPeriod': 'The period',
|
||
'calendar.toastShortfallNone':
|
||
'{name} ({start}–{end}): none of the {weeksWished} week(s) requested could be funded — {shortfallDays} day(s) short',
|
||
'calendar.toastShortfallPartial':
|
||
'{name} ({start}–{end}): only {weeksFunded} of {weeksWished} week(s) funded — {shortfallDays} day(s) short',
|
||
'calendar.toastShortfallNoneDays':
|
||
'{name} ({start}–{end}): none of the {daysWished} day(s) requested could be funded — {shortfallDays} day(s) short',
|
||
'calendar.toastShortfallPartialDays':
|
||
'{name} ({start}–{end}): only {daysFunded} of {daysWished} day(s) funded — {shortfallDays} day(s) short',
|
||
'calendar.undoButton': 'Undo',
|
||
'calendar.undoError': 'Failed to undo the change',
|
||
'calendar.dismissToastAria': 'Dismiss the message',
|
||
|
||
// The "?" beside the month title — replaces the legend that used to sit
|
||
// under the grid. One line per mark the calendar draws.
|
||
'calendar.helpAria': 'What the calendar marks mean',
|
||
'calendar.helpTitle': 'Days',
|
||
'calendar.helpBandsTitle': 'Periods',
|
||
'calendar.helpRedDay': 'Public holiday (R) — a red day or a Sunday',
|
||
'calendar.helpKlamdag': 'Bridge day (K)',
|
||
'calendar.helpSaturday': 'Saturday',
|
||
'calendar.helpToday': 'Today',
|
||
'calendar.helpOverride': 'Exception — marked as a working day or a day off',
|
||
'calendar.helpExcluded': 'Removed day — the planner skips it',
|
||
'calendar.helpVacation': 'Vacation',
|
||
'calendar.helpSjukpenning': 'Income-based rate (sjukpenningnivå)',
|
||
'calendar.helpLagsta': 'Minimum rate (lägstanivå)',
|
||
'calendar.helpSelf': 'Your leave',
|
||
'calendar.helpPartner': "Your partner's leave",
|
||
'calendar.helpDubbeldag': 'Double day — both parents on the same day',
|
||
'calendar.helpPinned': 'Pinned by you — the planner leaves the day alone',
|
||
|
||
'calendar.railHeading': 'Add leave',
|
||
'calendar.railHint': 'Click to add — the calendar jumps to wherever it fits best.',
|
||
'calendar.presetAddAria': 'Add {name}',
|
||
'calendar.presetChipsLabel': 'Add leave',
|
||
'calendar.presetWeeksShort': '{count} wk',
|
||
|
||
'calendar.periodAdHocTitle': 'Period',
|
||
'calendar.periodAdHocNotice': 'This period is not linked to a saved wish.',
|
||
'calendar.periodNameLabel': 'Name',
|
||
'calendar.periodNameAria': "The period's name",
|
||
'calendar.periodStartLabel': 'Start date',
|
||
'calendar.periodEndLabel': 'End date',
|
||
'calendar.periodRepeatLabel': 'Repeat',
|
||
'calendar.periodRepeatNever': 'Never',
|
||
'calendar.periodRepeatYearly': 'Yearly',
|
||
'calendar.periodLastYearLabel': 'Last year',
|
||
|
||
// One year vs the whole series. A repeating period is stored as one row per
|
||
// year, so "only this year" can finally be honoured — Easter moves, and a
|
||
// single year has to be able to move without dragging the rest with it.
|
||
// See backend/app/entities/leave_wish.py.
|
||
'calendar.periodEditScopeLabel': 'Apply the change to',
|
||
'calendar.periodEditScopeYear': 'Only this year',
|
||
'calendar.periodEditScopeSeries': 'Every year',
|
||
'calendar.periodEditScopeHint': 'Every year shifts the other years to match, keeping the weekdays.',
|
||
'calendar.periodLastYearNeedsSeriesHint': 'Choose "Every year" to change the last year.',
|
||
'calendar.periodSaveButton': 'Save period',
|
||
'calendar.periodSavingButton': 'Saving…',
|
||
'calendar.periodDeletingButton': 'Deleting…',
|
||
'calendar.periodDeleteConfirmButton': 'Yes, delete',
|
||
'calendar.periodDeleteAdHocButton': 'Delete these days',
|
||
'calendar.periodCancelButton': 'Cancel',
|
||
'calendar.periodCloseAria': 'Close',
|
||
'calendar.periodDeleteMenuButton': 'Remove…',
|
||
|
||
// todo.md #9 — three-way remove: this day / this period (this year) / this
|
||
// period every year.
|
||
'calendar.periodDeleteDayButton': 'This day',
|
||
'calendar.periodDeleteYearButton': 'This period',
|
||
'calendar.periodDeleteAllYearsButton': 'This period, every year',
|
||
// "This day" now works on planner-placed days too: the removal is stored
|
||
// as a `PlannedDayExclusion` and survives every subsequent sync.
|
||
'calendar.periodDeleteDayHint':
|
||
'Only that day is removed. The rest of the period stays, and the planner will not add the day back.',
|
||
'calendar.periodDeleteAllYearsDisabledHint': 'This period is not linked to a recurring plan.',
|
||
'calendar.periodDeleteConfirmDay': 'Are you sure you want to remove this day?',
|
||
// Names both the date and the parent: a day is removed for ONE parent, and
|
||
// the partner's day on the same date stays (see PlannedDayExclusionService).
|
||
'calendar.periodDeleteConfirmDayNamed':
|
||
'Remove {date} for {parent}? The day stays removed until you restore it.',
|
||
'calendar.toastDayExcluded': '{date} removed for {parent}',
|
||
'calendar.toastDayRestored': '{date} restored for {parent}',
|
||
'calendar.periodDeleteConfirmYear': 'Are you sure you want to remove this period (this year only)?',
|
||
'calendar.periodDeleteConfirmAllYears': 'Are you sure you want to remove the period — every year?',
|
||
'calendar.wantsDubbeldagLabel': 'Allow double days (dubbeldagar)',
|
||
'calendar.wantsDubbeldagHint':
|
||
"Both parents are off the same day and each spend one of their own parental-benefit days (no vacation day is used) — only available in the child's first 15 months, capped at 60 dates per child, shared between you.",
|
||
'calendar.wantsDubbeldagRequiresBothHint': 'Requires the period to apply to both parents.',
|
||
} as const
|