From 3ea14575f1337cc8d092104b709ec52091fd3ece Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 6 Aug 2026 17:34:27 +0000 Subject: [PATCH] =?UTF-8?q?Diagnostikgr=C3=A4nssnittet=20p=C3=A5=20engelsk?= =?UTF-8?q?a?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Portalen var engelsk, men själva arbetsverktyget — det tekniker faktiskt använder — var svenskt rakt igenom. "Engelska som standard" gällde alltså skyltfönstret och inte produkten. Omkring 400 användarsynliga strängar är översatta: etiketter, knappar, frågor, felmeddelanden, platshållare och de härledda projektionerna (brief, tidrapport, kundrapport). Bytet gjordes med en karta och ett skript som bara byter EXAKTA träffar inom citattecken eller mellan JSX-taggar, aldrig delsträngar. Skriptet rapporterar dessutom vilka poster som inte fick någon träff — fem strängar stod som JSX-text efter ett element och syntes därför inte för mönstret. Utan den rapporten hade de blivit kvar tysta. Typsystemet fångade det som var farligt. Åtta anrop skickade händelsen typ: "kommentar" och hade blivit typ: "comment" — en händelsetyp är DATA i en append-only logg, inte text. Samma sak för `krav === "kommentar"` och för ArbetsorderGrupp. Det är precis den sortens fel en massöversättning gör, och precis därför den ska göras i ett projekt som kompilerar. Skillnaden mellan etikett och värde är genomgående kodad i domänmodellen — nycklarna är `godkant`, `hog`, `symptomet_borta`, och det översatta är _LABEL-posterna. Det var det som gjorde bytet möjligt att göra maskinellt utan att röra loggen. En regression från förra commiten är rättad: Slutsats.tsx sållade bort hypotesbristerna med `text.includes("bemöts inte")`. När granskningen började svara på engelska slutade jämförelsen tyst att matcha. Den går nu på nyckeln, som inte byter språk. Två saker att veta om befintliga installationer: en organisation som sparat egna objekttyper eller identifieringsmetoder på svenska får standardlistan tillbaka, eftersom okända värden filtreras bort, och streckkodsläsarens `typ` matchar nu de engelska metodnamnen. Båda degraderar till standard i stället för att gå sönder. Datumen står kvar i ISO-format (sv-SE ger YYYY-MM-DD). Det är inte en kvarlämnad svenskhet utan det entydiga formatet — en verkstadsrapport ska inte kunna läsas som 03/04 åt två håll. Kvar: ecm.ts (regelverkets rådtexter) och metodiker.mjs (metodikernas steg och kontroller). De tas härnäst. 602 tester, typkontroll och lint rena. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt --- .../app/src/felsokning/Bilagevisning.tsx | 8 +- .../app/src/felsokning/DelatArendeVy.tsx | 48 +- felsokning/app/src/felsokning/Mikrofon.tsx | 2 +- felsokning/app/src/felsokning/Slutsats.tsx | 42 +- .../app/src/felsokning/__tests__/ai.test.ts | 2 +- .../__tests__/installningar.test.ts | 10 +- .../felsokning/__tests__/projektioner.test.ts | 4 +- .../felsokning/__tests__/streckkod.test.ts | 14 +- felsokning/app/src/felsokning/ai.ts | 64 +-- felsokning/app/src/felsokning/demo.ts | 22 +- felsokning/app/src/felsokning/domain.ts | 40 +- felsokning/app/src/felsokning/format.ts | 8 +- .../app/src/felsokning/installningar.ts | 22 +- felsokning/app/src/felsokning/metodik.ts | 10 +- felsokning/app/src/felsokning/projektioner.ts | 28 +- felsokning/app/src/felsokning/streckkod.ts | 12 +- .../app/src/pages/felsokning/ArendeSida.tsx | 432 +++++++++--------- .../app/src/pages/felsokning/Arendelista.tsx | 78 ++-- .../app/src/pages/felsokning/DelatArende.tsx | 6 +- .../src/pages/felsokning/Installningar.tsx | 30 +- .../app/src/pages/felsokning/NyttArende.tsx | 70 +-- .../app/src/pages/felsokning/Oversikt.tsx | 30 +- .../src/pages/felsokning/PublikDelning.tsx | 18 +- 23 files changed, 504 insertions(+), 496 deletions(-) diff --git a/felsokning/app/src/felsokning/Bilagevisning.tsx b/felsokning/app/src/felsokning/Bilagevisning.tsx index 4d133e3..885eec1 100644 --- a/felsokning/app/src/felsokning/Bilagevisning.tsx +++ b/felsokning/app/src/felsokning/Bilagevisning.tsx @@ -46,10 +46,10 @@ export function Bild({ delningskod?: string; }) { const kalla = useKalla(bilaga, delningskod); - if (kalla === "laddar") return ; + if (kalla === "laddar") return ; // Ärligt om att bilden inte gick att hämta, i stället för en trasig // bildikon som lämnar teknikern i tvivel om vad som dokumenterats. - if (!kalla) return ; + if (!kalla) return ; return {alt}; } @@ -63,7 +63,7 @@ export function Klipp({ delningskod?: string; }) { const kalla = useKalla(bilaga, delningskod); - if (kalla === "laddar") return ; - if (!kalla) return ; + if (kalla === "laddar") return ; + if (!kalla) return ; return