Split i18n catalogues into per-domain modules

sv.ts/en.ts were single 602-line files that every feature had to edit,
making concurrent work on unrelated screens collide constantly. Split
both into per-domain modules (common, auth, calendar, dashboard,
settings, plan, wishEditor, tips) composed by an index that preserves
the existing `import { sv } from './sv'` specifier, so no consumer
changes.

Typing still catches drift in both directions: each en module is checked
against TranslationKey, and the composed catalogue must satisfy
Record<TranslationKey, string>.

All 433 keys and their values are byte-identical to the originals,
verified by diffing the parsed catalogues against the pre-split files.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RXMhc9nT6sNz1SL4j8dznL
This commit is contained in:
2026-09-14 18:54:27 +02:00
parent 7f031f2087
commit bd996245ba
20 changed files with 1017 additions and 1204 deletions
+62
View File
@@ -0,0 +1,62 @@
export const calendar = {
'calendar.advanceMonthAria': '{month} - klicka för att byta månad',
'calendar.advanceYearAria': '{year} - klicka för att byta år',
'calendar.deleteError': 'Det gick inte att ta bort den planerade dagen',
'calendar.legendDoubleDay': 'Dubbeldag',
'calendar.legendIncomeBased': 'Sjukpenningnivå',
'calendar.legendKlamdag': 'Klämdag',
'calendar.legendMinimumRate': 'Lägstanivå',
'calendar.legendOverride': 'Undantag (arbets-/ledig dag)',
'calendar.legendRedDay': 'Röd dag',
'calendar.legendTitle': 'Teckenförklaring',
'calendar.legendVacation': 'Semester',
'calendar.loading': 'Laddar kalender...',
'calendar.nextMonthAria': 'Nästa månad',
'calendar.overrideError': 'Det gick inte att uppdatera undantaget',
'calendar.overrideModeActiveLabel': 'Avsluta redigering av dagar',
'calendar.overrideModeHint': 'Klicka på en dag för att markera den som arbetsdag eller ledig dag. Klicka igen på en markerad dag för att återställa den.',
'calendar.overrideModeLabel': 'Markera arbets-/ledig dag',
'calendar.partner': 'Partner',
'calendar.prevMonthAria': 'Föregående månad',
'calendar.saveError': 'Det gick inte att spara de planerade dagarna',
'calendar.weekdayFri': 'Fre',
'calendar.weekdayMon': 'Mån',
'calendar.weekdaySat': 'Lör',
'calendar.weekdaySun': 'Sön',
'calendar.weekdayThu': 'Tor',
'calendar.weekdayTue': 'Tis',
'calendar.weekdayWed': 'Ons',
'calendar.you': 'Du',
'calendarDay.ariaWithEvents': '{date} med {count} händelse(r)',
'calendarDay.klamdagAria': 'klämdag',
'calendarDay.overrideFreeAria': 'markerad som ledig dag (undantag)',
'calendarDay.overrideWorkingAria': 'markerad som arbetsdag (undantag)',
'calendarEvent.dismissAria': 'Avfärda {leaveType}',
'plannedDayModal.cancelButton': 'Avbryt',
'plannedDayModal.closeAria': 'Stäng',
'plannedDayModal.confirmDelete': 'Är du säker på att du vill ta bort den här planerade dagen?',
'plannedDayModal.deleteButton': 'Ta bort',
'plannedDayModal.deleteError': 'Det gick inte att ta bort den planerade dagen',
'plannedDayModal.deletingButton': 'Tar bort…',
'plannedDayModal.doubleDayHint': 'Dubbeldagar gäller inte för semester',
'plannedDayModal.doubleDayLabel': 'Dubbeldag (båda föräldrarna tar ut ledighet)',
'plannedDayModal.editTitle': 'Redigera planerad dag',
'plannedDayModal.lagstaOption': 'Lägstanivå (90-nivån)',
'plannedDayModal.leaveTypeLabel': 'Typ av ledighet',
'plannedDayModal.newTitle': 'Planera en dag',
'plannedDayModal.parentLabel': 'Förälder',
'plannedDayModal.rangeTitle': 'Planera {count} dagar',
'plannedDayModal.saveButton': 'Spara',
'plannedDayModal.saveError': 'Det gick inte att spara den planerade dagen',
'plannedDayModal.savingButton': 'Sparar…',
'plannedDayModal.sjukpenningOption': 'Sjukpenningnivå (390-nivån)',
'plannedDayModal.vacationOption': 'Semester',
'redDaysList.effectiveFree': 'Ledig',
'redDaysList.effectiveWorking': 'Arbetsdag',
'redDaysList.emptyYear': 'Inga röda dagar eller undantag detta år.',
'redDaysList.loading': 'Laddar röda dagar...',
'redDaysList.nextWindow': 'Nästa 4 år',
'redDaysList.overrideFree': 'Undantag: ledig dag',
'redDaysList.overrideWorking': 'Undantag: arbetsdag',
'redDaysList.prevWindow': 'Föregående 4 år',
} as const