fix(ui): reconcile shared accessibility and read recovery

This commit is contained in:
cesnimda
2026-10-20 20:26:48 +02:00
parent bba52af4b8
commit d8c0187305
25 changed files with 802 additions and 25 deletions
+118
View File
@@ -5,6 +5,7 @@ export const translations = {
appTitle: "Jobbjakt",
appTagline: "Track your hunt",
applicationLanguage: "Application language",
applicationVersionCommit: "Application version {version}, commit {commit}",
dashboard: "Dashboard",
jobApplications: "Job Applications",
reminders: "Reminders",
@@ -130,6 +131,61 @@ export const translations = {
correspondenceInbox: "Job email",
emailInboxSubtitle: "Review linked correspondence and suggested recruitment messages in one place.",
emailInboxItems: "{count} items",
emailInboxItem: "{count} item",
emailInboxAttachmentCount: "{count} attachment",
historySourceManual: "Manual",
historySourceAi: "AI suggestion",
historySourceTemplate: "Template",
historySourceRestore: "Restored version",
historySourceAutosave: "Autosave",
historySourceCreate: "Created",
cvTemplateModernName: "Modern",
cvTemplateModernDescription: "Clean SaaS-style layout with a confident accent header.",
cvTemplateMinimalName: "Minimal",
cvTemplateMinimalDescription: "Quiet, spacious, typography-first. Nothing competes with the content.",
cvTemplateExecutiveName: "Executive",
cvTemplateExecutiveDescription: "High-contrast, serif, leadership-weighted. For senior and client-facing roles.",
cvTemplateTechnicalName: "Technical",
cvTemplateTechnicalDescription: "Dense two-column layout tuned for engineering CVs — skills and projects up front.",
cvTemplateAtsClassicName: "ATS Classic",
cvTemplateAtsClassicDescription: "Single column, no graphics, maximum parser compatibility. The safe default.",
cvTemplateNordicName: "Nordic",
cvTemplateNordicDescription: "Calm cool-blue sidebar, generous whitespace, Scandinavian restraint.",
cvTemplateElegantName: "Elegant",
cvTemplateElegantDescription: "Editorial serif headings over sans body, premium spacing and a plum accent.",
cvTemplateCreativeName: "Creative",
cvTemplateCreativeDescription: "Bold accent sidebar and photo-forward header for design and product roles.",
cvTemplateCodeName: "Code",
cvTemplateCodeDescription: "Developer-focused editorial layout with numbered sections and precise mono details.",
cvTemplateCategoryModern: "Modern Professional",
cvTemplateCategoryMinimal: "Minimal",
cvTemplateCategoryExecutive: "Executive",
cvTemplateCategoryTechnical: "Technical",
cvTemplateCategoryAts: "ATS Professional",
cvTemplateCategoryCreative: "Creative",
assetsTailoringHighlightTitle: "Skills to highlight",
assetsTailoringHighlightDetail: "The advert asks for these and your profile already has them — put them where they are seen first.",
assetsTailoringExperienceTitle: "Experience to prioritise",
assetsTailoringExperienceDetail: "Ordered by how much of the advert each role actually covers.",
assetsTailoringProjectsTitle: "Projects to emphasise",
assetsTailoringProjectsDetail: "These projects demonstrate what the advert is asking for.",
assetsTailoringEvidenceTitle: "Verified evidence to reuse",
assetsTailoringEvidenceDetail: "Facts you previously approved. Adapt the wording, but keep the claim accurate.",
assetsTailoringKeywordsTitle: "Keywords to include",
assetsTailoringKeywordsDetail: "Vocabulary from the advert. Use the ones that are honestly true of you — never pad.",
assetsTailoringGapsTitle: "Gaps to address",
assetsTailoringGapsDetail: "Asked for but not found in your profile. Add them if you have them; otherwise be ready to talk about them.",
reminderReasonInterview: "Interview stage reached but prep notes are still missing.",
reminderReasonCvAndAnswers: "Tailored CV and saved application answers still need work.",
reminderReasonCv: "Tailored CV missing for this role.",
reminderReasonAnswers: "Saved application answers still need work.",
reminderReasonUnscheduled: "No response yet and no follow-up is scheduled.",
reminderReasonDue: "Follow-up is due for this role.",
reminderReasonNoGaps: "No urgent workflow gaps are blocking this job right now.",
reminderReasonNoReplyDays: "No reply after {days}d",
reminderReasonStalledDays: "Stalled after {days}d",
reminderReasonFeedbackDays: "Feedback requested {days}d ago",
reminderReasonWaitingDays: "Waiting {days}d",
emailInboxLinked: "{count} linked",
emailInboxLinkedOnPage: "{count} linked on this page",
emailInboxInboundCount: "{count} inbound",
@@ -869,6 +925,8 @@ export const translations = {
cvEditorShowPhoto: "Show profile photo",
cvEditorContactIcons: "Contact icons",
cvEditorOpenFailed: "Could not open this CV.",
cvEditorSourceUnavailable: "This CV is unavailable or you no longer have access to it.",
cvEditorPermissionDenied: "You do not have permission to open this CV.",
cvEditorDiscardMessage: "This CV has unsaved changes. Leave and discard them?",
cvEditorDiscardTitle: "Discard unsaved CV changes?",
cvEditorDiscardLeave: "Discard and leave",
@@ -2759,6 +2817,7 @@ export const translations = {
workspaceStatusSuggestionApplied: "Application status updated from the latest message.",
workspaceStatusSuggestionFailed: "Could not apply the suggested status.",
workspaceStrategyTitle: "Strategy snapshot",
workspaceStrategyLoadFailed: "Strategy snapshot could not be loaded.",
workspaceStrategySubtitle: "An on-demand plan grounded in this advert and your saved career data.",
workspaceStrategyProRequired: "Pro required",
workspaceStrategyGenerate: "Generate",
@@ -2787,6 +2846,7 @@ export const translations = {
appTitle: "Jobbjakt",
appTagline: "Hold oversikt over jobbsøkingen",
applicationLanguage: "Språk i appen",
applicationVersionCommit: "Applikasjonsversjon {version}, revisjon {commit}",
dashboard: "Dashboard",
jobApplications: "Jobbsøknader",
reminders: "Påminnelser",
@@ -2912,6 +2972,61 @@ export const translations = {
correspondenceInbox: "Jobb-e-post",
emailInboxSubtitle: "Se tilknyttet korrespondanse og foreslåtte rekrutteringsmeldinger på ett sted.",
emailInboxItems: "{count} elementer",
emailInboxItem: "{count} element",
emailInboxAttachmentCount: "{count} vedlegg",
historySourceManual: "Manuell",
historySourceAi: "KI-forslag",
historySourceTemplate: "Mal",
historySourceRestore: "Gjenopprettet versjon",
historySourceAutosave: "Automatisk lagring",
historySourceCreate: "Opprettet",
cvTemplateModernName: "Moderne",
cvTemplateModernDescription: "Ren SaaS-inspirert utforming med en tydelig topptekst i aksentfarge.",
cvTemplateMinimalName: "Minimalistisk",
cvTemplateMinimalDescription: "Rolig og luftig, med typografien i sentrum. Ingenting tar oppmerksomheten fra innholdet.",
cvTemplateExecutiveName: "Leder",
cvTemplateExecutiveDescription: "Høy kontrast og serifftype med vekt på ledelse. For seniorroller og kundevendte roller.",
cvTemplateTechnicalName: "Teknisk",
cvTemplateTechnicalDescription: "Kompakt tokolonneutforming for tekniske CV-er, med ferdigheter og prosjekter først.",
cvTemplateAtsClassicName: "ATS klassisk",
cvTemplateAtsClassicDescription: "Én kolonne uten grafikk, med best mulig støtte for CV-tolkere. Et trygt standardvalg.",
cvTemplateNordicName: "Nordisk",
cvTemplateNordicDescription: "Rolig sidekolonne i kjølig blått, god luft og skandinavisk enkelhet.",
cvTemplateElegantName: "Elegant",
cvTemplateElegantDescription: "Redaksjonelle serifoverskrifter over brødtekst uten seriffer, god luft og en plommefarget aksent.",
cvTemplateCreativeName: "Kreativ",
cvTemplateCreativeDescription: "Tydelig sidekolonne i aksentfarge og topptekst med vekt på bilde, for design- og produktroller.",
cvTemplateCodeName: "Kode",
cvTemplateCodeDescription: "Redaksjonell utforming for utviklere med nummererte seksjoner og presise detaljer i fastbreddeskrift.",
cvTemplateCategoryModern: "Moderne og profesjonell",
cvTemplateCategoryMinimal: "Minimalistisk",
cvTemplateCategoryExecutive: "Leder",
cvTemplateCategoryTechnical: "Teknisk",
cvTemplateCategoryAts: "ATS-profesjonell",
cvTemplateCategoryCreative: "Kreativ",
assetsTailoringHighlightTitle: "Ferdigheter å fremheve",
assetsTailoringHighlightDetail: "Annonsen etterspør disse, og de finnes allerede i profilen din. Plasser dem der de blir sett først.",
assetsTailoringExperienceTitle: "Erfaring å prioritere",
assetsTailoringExperienceDetail: "Sortert etter hvor mye av annonsen hver rolle faktisk dekker.",
assetsTailoringProjectsTitle: "Prosjekter å fremheve",
assetsTailoringProjectsDetail: "Disse prosjektene viser det annonsen etterspør.",
assetsTailoringEvidenceTitle: "Bekreftet dokumentasjon å gjenbruke",
assetsTailoringEvidenceDetail: "Fakta du tidligere har godkjent. Tilpass ordlyden, men behold en korrekt påstand.",
assetsTailoringKeywordsTitle: "Nøkkelord å ta med",
assetsTailoringKeywordsDetail: "Ord fra annonsen. Bruk dem som faktisk stemmer for deg, uten å pynte på innholdet.",
assetsTailoringGapsTitle: "Mangler å ta tak i",
assetsTailoringGapsDetail: "Etterspurt, men ikke funnet i profilen din. Legg dem til hvis du har dem, ellers bør du være forberedt på å snakke om dem.",
reminderReasonInterview: "Du har kommet til intervju, men mangler fortsatt forberedelsesnotater.",
reminderReasonCvAndAnswers: "Tilpasset CV og lagrede søknadssvar trenger fortsatt arbeid.",
reminderReasonCv: "Tilpasset CV mangler for denne rollen.",
reminderReasonAnswers: "Lagrede søknadssvar trenger fortsatt arbeid.",
reminderReasonUnscheduled: "Ingen respons ennå, og ingen oppfølging er planlagt.",
reminderReasonDue: "Det er tid for oppfølging av denne rollen.",
reminderReasonNoGaps: "Ingen akutte mangler i arbeidsflyten blokkerer denne jobben nå.",
reminderReasonNoReplyDays: "Ingen svar etter {days} dager",
reminderReasonStalledDays: "Stoppet opp etter {days} dager",
reminderReasonFeedbackDays: "Tilbakemelding ble forespurt for {days} dager siden",
reminderReasonWaitingDays: "Ventet i {days} dager",
emailInboxLinked: "{count} tilknyttet",
emailInboxLinkedOnPage: "{count} tilknyttet på denne siden",
emailInboxInboundCount: "{count} innkommende",
@@ -3651,6 +3766,8 @@ export const translations = {
cvEditorShowPhoto: "Vis profilbilde",
cvEditorContactIcons: "Kontaktikoner",
cvEditorOpenFailed: "Kunne ikke åpne denne CV-en.",
cvEditorSourceUnavailable: "Denne CV-en er utilgjengelig, eller du har ikke lenger tilgang til den.",
cvEditorPermissionDenied: "Du har ikke tilgang til å åpne denne CV-en.",
cvEditorDiscardMessage: "Denne CV-en har ulagrede endringer. Vil du forlate siden og forkaste dem?",
cvEditorDiscardTitle: "Forkaste ulagrede CV-endringer?",
cvEditorDiscardLeave: "Forkast og forlat",
@@ -5541,6 +5658,7 @@ export const translations = {
workspaceStatusSuggestionApplied: "Søknadsstatusen ble oppdatert fra den siste meldingen.",
workspaceStatusSuggestionFailed: "Kunne ikke bruke den foreslåtte statusen.",
workspaceStrategyTitle: "Strategioversikt",
workspaceStrategyLoadFailed: "Kunne ikke hente strategisammendraget.",
workspaceStrategySubtitle: "En behovsstyrt plan basert på denne annonsen og dine lagrede karrieredata.",
workspaceStrategyProRequired: "Krever Pro",
workspaceStrategyGenerate: "Generer",