From aba9b50c525acb422cffa1a1237f4bba71771aca Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 6 Aug 2026 18:17:06 +0000 Subject: [PATCH] =?UTF-8?q?Metodikerna=20p=C3=A5=20engelska=20=E2=80=94=20?= =?UTF-8?q?och=20nyckelorden=20p=C3=A5=20b=C3=A5da=20spr=C3=A5ken?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sexton metodiker: fasnamn, steg, frågor, svarsalternativ, kontroller och de notiser som säger varför ett steg finns. Cirka 390 strängar, plus demoärendets underlag och evidensmotorns poster. Det här är den enda text i systemet som säger åt någon vad den ska göra med ett fordon. "Mät och dokumentera spänningsfrihet före ingrepp" är inte en etikett, och därför står granskningsstatusen nu i modulhuvudet: texten är skriven på svenska och ÖVERSATT till engelska, alltså inte läst av en fackman på målspråket. Samma krav som ställs på de nio andra språken ställs på den — språksidan säger det rakt ut i stället för att tyst undanta källspråket. Att göra undantaget hade varit precis det sidan varnar för. NYCKELORDEN är avsiktligt tvåspråkiga och blev en union, inte en översättning. De matchas mot teknikerns egen fritext; att byta ut de svenska hade gjort metodikvalet blint för allt en svensk verkstad skriver. 155 engelska nyckelord tillagda, inga svenska borttagna — fler nyckelord kan bara ge fler träffar, aldrig färre. Genomgången är beviset: fyra ärenden drivs genom hela flödet i det byggda gränssnittet — identifiering, pre-diagnostik, metodik, reproducering, felorsak, åtgärd, kvalitetskontroll, slutsats, avslut — och alla fyra stängs. Rubrikerna i utskriften läser nu VIBRATION WHILE DRIVING och HIGH-VOLTAGE SYSTEM — ELECTRIC AND HYBRID. 609 tester, 186 integrationskontroller mot riktig Postgres, genomgång, portalspärr, typkontroll och lint gröna. Artefakten byggd och mätt på 390 och 1280 px: inget spill, inga externa begäranden. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt --- .../app/src/felsokning/__tests__/demo.test.ts | 4 +- .../app/src/felsokning/__tests__/ecm.test.ts | 2 +- .../felsokning/__tests__/metodiker.test.ts | 2 +- .../felsokning/__tests__/projektioner.test.ts | 16 +- felsokning/app/src/felsokning/demo.ts | 108 +-- felsokning/app/src/felsokning/ecm.ts | 20 +- felsokning/app/src/pages/alva/Sprak.tsx | 10 + felsokning/services/gemensam/metodiker.mjs | 735 +++++++++--------- 8 files changed, 462 insertions(+), 435 deletions(-) diff --git a/felsokning/app/src/felsokning/__tests__/demo.test.ts b/felsokning/app/src/felsokning/__tests__/demo.test.ts index 95e2042..a758bde 100644 --- a/felsokning/app/src/felsokning/__tests__/demo.test.ts +++ b/felsokning/app/src/felsokning/__tests__/demo.test.ts @@ -18,8 +18,8 @@ describe("demoärendet", () => { it("lämnar kontroller kvar så att guiden kan fortsätta i demon", () => { const b = brief(arende, VIBRATION_METODIK); - expect(b.ejKontrollerat).toContain("Kontrollera radial- och sidokast"); - expect(b.ejKontrollerat).toContain("Förändring vid kurvtagning"); + expect(b.ejKontrollerat).toContain("Check radial and lateral runout"); + expect(b.ejKontrollerat).toContain("Change when cornering"); expect(b.rekommenderatNastaSteg.length).toBeGreaterThan(0); }); diff --git a/felsokning/app/src/felsokning/__tests__/ecm.test.ts b/felsokning/app/src/felsokning/__tests__/ecm.test.ts index 1af102d..e32727e 100644 --- a/felsokning/app/src/felsokning/__tests__/ecm.test.ts +++ b/felsokning/app/src/felsokning/__tests__/ecm.test.ts @@ -87,7 +87,7 @@ describe("Evidence Engine", () => { const poster = evidensposter(arende); expect(poster).toHaveLength(2); expect(poster[0].niva).toBe("E2"); - expect(poster[1].sammanfattning).toBe("Obalans = 38 g (instrument ej angivet)"); + expect(poster[1].sammanfattning).toBe("Obalans = 38 g (instrument not stated)"); expect(poster[0].tekniker).toBe("Anna"); expect(poster[0].hash).toMatch(/^[0-9a-f]{8}$/); // Samma innehåll → samma hash (deterministisk spårbarhet). diff --git a/felsokning/app/src/felsokning/__tests__/metodiker.test.ts b/felsokning/app/src/felsokning/__tests__/metodiker.test.ts index b9baafa..f7a703d 100644 --- a/felsokning/app/src/felsokning/__tests__/metodiker.test.ts +++ b/felsokning/app/src/felsokning/__tests__/metodiker.test.ts @@ -69,7 +69,7 @@ describe("metodikbiblioteket", () => { const krav = HOGVOLT.steg[0].kontroller ?? []; expect(krav.some((k) => k.id === "spanningsfrihet" && k.krav === "matvarde")).toBe(true); expect(krav.some((k) => k.id === "service_disconnect")).toBe(true); - expect(HOGVOLT.steg[0].beskrivning).toMatch(/livsfarlig/i); + expect(HOGVOLT.steg[0].beskrivning).toMatch(/lethal/i); }); }); diff --git a/felsokning/app/src/felsokning/__tests__/projektioner.test.ts b/felsokning/app/src/felsokning/__tests__/projektioner.test.ts index 70609e8..7b3032a 100644 --- a/felsokning/app/src/felsokning/__tests__/projektioner.test.ts +++ b/felsokning/app/src/felsokning/__tests__/projektioner.test.ts @@ -101,17 +101,17 @@ describe("ejKontrollerat", () => { it("krymper när kontroller utförs och härleds helt ur loggen", () => { const utan = byggArende([["2026-08-02T08:00:00Z", OBJEKT]]); const alla = ejKontrollerat(utan, VIBRATION_METODIK); - expect(alla).toContain("Kontrollera lufttryck"); + expect(alla).toContain("Check tyre pressure"); const med = byggArende([ ["2026-08-02T08:00:00Z", OBJEKT], [ "2026-08-02T08:15:00Z", - { typ: "kontroll_utford", stegId: "kontroller", kontrollId: "lufttryck", text: "Kontrollera lufttryck" }, + { typ: "kontroll_utford", stegId: "kontroller", kontrollId: "lufttryck", text: "Check tyre pressure" }, ], ]); const kvar = ejKontrollerat(med, VIBRATION_METODIK); - expect(kvar).not.toContain("Kontrollera lufttryck"); + expect(kvar).not.toContain("Check tyre pressure"); expect(kvar.length).toBe(alla.length - 1); }); }); @@ -168,7 +168,7 @@ describe("brief", () => { ["2026-08-02T08:05:00Z", { typ: "felbeskrivning", text: "Bilen vibrerar runt 88 km/h" }], [ "2026-08-02T08:11:00Z", - { typ: "kontroll_utford", stegId: "kontroller", kontrollId: "lufttryck", text: "Kontrollera lufttryck", resultat: "2,4 bar" }, + { typ: "kontroll_utford", stegId: "kontroller", kontrollId: "lufttryck", text: "Check tyre pressure", resultat: "2,4 bar" }, ], ["2026-08-02T08:18:00Z", { typ: "matvarde", beskrivning: "Matningsspänning", varde: "13,9", enhet: "V" }], ["2026-08-02T08:20:00Z", { typ: "observation", text: "Höger framdäck visar ojämnt slitage" }], @@ -179,12 +179,12 @@ describe("brief", () => { const b = brief(arende, VIBRATION_METODIK, "2026-08-02T08:30:00Z"); expect(b.objekt?.identifierare).toBe("ABC123"); expect(b.felbeskrivning).toBe("Bilen vibrerar runt 88 km/h"); - expect(b.utfordaKontroller.map((k) => k.text)).toContain("Kontrollera lufttryck"); + expect(b.utfordaKontroller.map((k) => k.text)).toContain("Check tyre pressure"); expect(b.observationer).toContain("Höger framdäck visar ojämnt slitage"); expect(b.observationer).toContain("Matningsspänning: 13,9 V"); - expect(b.ejKontrollerat).toContain("Kontrollera hjulbalansering"); - expect(b.ejKontrollerat).not.toContain("Kontrollera lufttryck"); - expect(b.rekommenderatNastaSteg[0]).toContain("hastighetsberoende"); + expect(b.ejKontrollerat).toContain("Check wheel balance"); + expect(b.ejKontrollerat).not.toContain("Check tyre pressure"); + expect(b.rekommenderatNastaSteg[0]).toContain("speed-dependent"); expect(b.totalArbetstid).toBe("27 min"); }); diff --git a/felsokning/app/src/felsokning/demo.ts b/felsokning/app/src/felsokning/demo.ts index 8be4076..1ad2ca5 100644 --- a/felsokning/app/src/felsokning/demo.ts +++ b/felsokning/app/src/felsokning/demo.ts @@ -54,7 +54,7 @@ function demoFoto(text: string): string { // visa den praxis produkten kräver, inte den som fanns innan. const DACKTRYCKSMATARE = { matdonId: "demo-tryck-01", - matdonBeteckning: "Däcktrycksmätare PCL DPG7", + matdonBeteckning: "Tyre pressure gauge PCL DPG7", matdonKalibreradTill: "2027-03-31", }; const BALANSMASKIN = { @@ -83,71 +83,71 @@ export function byggDemoArende(nummer: number, anvandare = "Anna"): Arende { arbetsorder: "AO-2496", }, }), - post(2, { typ: "felbeskrivning", text: "Bilen vibrerar runt 88 km/h. Symptomet uppträder endast under körning." }), + post(2, { typ: "felbeskrivning", text: "The car vibrates at around 88 km/h. The symptom appears only while driving." }), // Pre-diagnostiken: historik, ingående mätarställning, verifierad // felbeskrivning och tidiga observationer — innan metodiken börjar. - post(3, { typ: "historik_kontrollerad", kontrollerad: true, kommentar: "Däck roterade vid service för 2 månader sedan" }), + post(3, { typ: "historik_kontrollerad", kontrollerad: true, kommentar: "Tyres rotated at a service two months ago" }), post(3, { typ: "matarstallning", lage: "ingaende", varde: "84 320 km", dataUrl: demoFoto("Instrumentpanel 84 320 km") }), - post(4, { typ: "kommentar", text: "Kundens felbeskrivning verifierad vid mottagandet." }), - post(4, { typ: "kommentar", text: "Inga ytterligare observationer vid mottagandet." }), - post(4, { typ: "fraga_besvarad", stegId: "symptom", frageId: "hastighetsberoende", fraga: "Är vibrationen hastighetsberoende?", svar: "Ja" }), - post(5, { typ: "fraga_besvarad", stegId: "symptom", frageId: "var", fraga: "Var känns vibrationen?", svar: "I ratten" }), - post(6, { typ: "fraga_besvarad", stegId: "symptom", frageId: "nar", fraga: "När uppstår vibrationen?", svar: "Vid jämn fart" }), - post(8, { typ: "fraga_besvarad", stegId: "symptom", frageId: "intervall", fraga: "Försvinner den över eller under ett visst hastighetsintervall?", svar: "Märks tydligast 85–95 km/h, försvinner under 80" }), - post(12, { typ: "foto", beskrivning: "Fotografera vänster framhjul", dataUrl: demoFoto("Vänster framhjul") }), - post(12, { typ: "kontroll_utford", stegId: "visuell", kontrollId: "foto_vf", text: "Fotografera vänster framhjul" }), - post(14, { typ: "foto", beskrivning: "Fotografera höger framhjul", dataUrl: demoFoto("Höger framhjul") }), - post(14, { typ: "kontroll_utford", stegId: "visuell", kontrollId: "foto_hf", text: "Fotografera höger framhjul" }), - post(16, { typ: "foto", beskrivning: "Fotografera vänster bakhjul", dataUrl: demoFoto("Vänster bakhjul") }), - post(16, { typ: "kontroll_utford", stegId: "visuell", kontrollId: "foto_vb", text: "Fotografera vänster bakhjul" }), - post(18, { typ: "foto", beskrivning: "Fotografera höger bakhjul", dataUrl: demoFoto("Höger bakhjul") }), - post(18, { typ: "kontroll_utford", stegId: "visuell", kontrollId: "foto_hb", text: "Fotografera höger bakhjul" }), - post(22, { typ: "kontroll_utford", stegId: "visuell", kontrollId: "dot", text: "Dokumentera DOT-/tillverkningsdatum", resultat: "Fram: DOT 2318, bak: DOT 2318 — samtliga från vecka 23 2018" }), - post(26, { typ: "observation", text: "Höger framdäck visar ojämnt slitage på innerkanten" }), - post(26, { typ: "kontroll_utford", stegId: "visuell", kontrollId: "slitage", text: "Kontrollera däckslitage", resultat: "Ojämnt slitage höger fram, övriga ok" }), - post(31, { typ: "matvarde", beskrivning: "Lufttryck vänster fram", varde: "2,4", enhet: "bar", ...DACKTRYCKSMATARE }), - post(32, { typ: "matvarde", beskrivning: "Lufttryck höger fram", varde: "2,1", enhet: "bar", ...DACKTRYCKSMATARE }), - post(33, { typ: "kontroll_utford", stegId: "kontroller", kontrollId: "lufttryck", text: "Kontrollera lufttryck", resultat: "VF 2,4 / HF 2,1 / VB 2,4 / HB 2,4 bar — justerat till 2,4 runtom" }), + post(4, { typ: "kommentar", text: "Customer's fault description verified on receipt." }), + post(4, { typ: "kommentar", text: "No further observations on receipt." }), + post(4, { typ: "fraga_besvarad", stegId: "symptom", frageId: "hastighetsberoende", fraga: "Is the vibration speed-dependent?", svar: "Ja" }), + post(5, { typ: "fraga_besvarad", stegId: "symptom", frageId: "var", fraga: "Where is the vibration felt?", svar: "I ratten" }), + post(6, { typ: "fraga_besvarad", stegId: "symptom", frageId: "nar", fraga: "When does the vibration occur?", svar: "At steady speed" }), + post(8, { typ: "fraga_besvarad", stegId: "symptom", frageId: "intervall", fraga: "Does it disappear above or below a certain speed range?", svar: "Most noticeable at 85–95 km/h, disappears below 80" }), + post(12, { typ: "foto", beskrivning: "Photograph the left front wheel", dataUrl: demoFoto("Left front wheel") }), + post(12, { typ: "kontroll_utford", stegId: "visuell", kontrollId: "foto_vf", text: "Photograph the left front wheel" }), + post(14, { typ: "foto", beskrivning: "Photograph the right front wheel", dataUrl: demoFoto("Right front wheel") }), + post(14, { typ: "kontroll_utford", stegId: "visuell", kontrollId: "foto_hf", text: "Photograph the right front wheel" }), + post(16, { typ: "foto", beskrivning: "Photograph the left rear wheel", dataUrl: demoFoto("Left rear wheel") }), + post(16, { typ: "kontroll_utford", stegId: "visuell", kontrollId: "foto_vb", text: "Photograph the left rear wheel" }), + post(18, { typ: "foto", beskrivning: "Photograph the right rear wheel", dataUrl: demoFoto("Right rear wheel") }), + post(18, { typ: "kontroll_utford", stegId: "visuell", kontrollId: "foto_hb", text: "Photograph the right rear wheel" }), + post(22, { typ: "kontroll_utford", stegId: "visuell", kontrollId: "dot", text: "Dokumentera DOT-/tillverkningsdatum", resultat: "Front: DOT 2318, rear: DOT 2318 — all from week 23 of 2018" }), + post(26, { typ: "observation", text: "The right front tyre shows uneven wear on the inner edge" }), + post(26, { typ: "kontroll_utford", stegId: "visuell", kontrollId: "slitage", text: "Check tyre wear", resultat: "Uneven wear right front, the others in order" }), + post(31, { typ: "matvarde", beskrivning: "Tyre pressure left front", varde: "2,4", enhet: "bar", ...DACKTRYCKSMATARE }), + post(32, { typ: "matvarde", beskrivning: "Tyre pressure right front", varde: "2,1", enhet: "bar", ...DACKTRYCKSMATARE }), + post(33, { typ: "kontroll_utford", stegId: "kontroller", kontrollId: "lufttryck", text: "Kontrollera lufttryck", resultat: "LF 2.4 / RF 2.1 / LR 2.4 / RR 2.4 bar — adjusted to 2.4 all round" }), post(38, { typ: "kontroll_utford", stegId: "kontroller", kontrollId: "hjulmoment", text: "Kontrollera hjulmoment", resultat: "140 Nm samtliga hjul, ok" }), - post(40, { typ: "hypotes", text: "Obalans eller kast i höger framhjul", niva: "lag" }), + post(40, { typ: "hypotes", text: "Imbalance or runout in the right front wheel", niva: "lag" }), post(41, { typ: "kategori_byte", kategori: "provkorning" }), - post(55, { typ: "kontroll_utford", stegId: "provkorning", kontrollId: "pk_hastighet", text: "Hastighet där vibration uppstår", resultat: "Tydlig vibration 85–95 km/h, max vid 88" }), - post(56, { typ: "kontroll_utford", stegId: "provkorning", kontrollId: "pk_acc", text: "Förändring vid acceleration", resultat: "Ingen förändring vid acceleration" }), - post(57, { typ: "kontroll_utford", stegId: "provkorning", kontrollId: "pk_motorbroms", text: "Förändring vid motorbroms", resultat: "Ingen förändring vid motorbroms" }), - post(58, { typ: "kontroll_utford", stegId: "provkorning", kontrollId: "pk_var", text: "Om vibration känns i ratt eller kaross", resultat: "Endast i ratten" }), + post(55, { typ: "kontroll_utford", stegId: "provkorning", kontrollId: "pk_hastighet", text: "Speed at which the vibration occurs", resultat: "Clear vibration at 85–95 km/h, worst at 88" }), + post(56, { typ: "kontroll_utford", stegId: "provkorning", kontrollId: "pk_acc", text: "Change under acceleration", resultat: "No change under acceleration" }), + post(57, { typ: "kontroll_utford", stegId: "provkorning", kontrollId: "pk_motorbroms", text: "Change under engine braking", resultat: "No change under engine braking" }), + post(58, { typ: "kontroll_utford", stegId: "provkorning", kontrollId: "pk_var", text: "Whether the vibration is felt in the steering wheel or the body", resultat: "Endast i ratten" }), post(60, { typ: "kategori_byte", kategori: "aktiv_felsokning" }), - post(75, { typ: "inaktivitet_forklarad", text: "Lyfte bilen och demonterade höger framhjul för kontroll i balanseringsmaskin.", minuter: 15 }), - post(82, { typ: "matvarde", beskrivning: "Obalans höger framhjul", varde: "38", enhet: "g", ...BALANSMASKIN }), - post(83, { typ: "kontroll_utford", stegId: "kontroller", kontrollId: "balansering", text: "Kontrollera hjulbalansering", resultat: "38 g obalans höger fram — en balansvikt saknas. Övriga hjul inom 5 g." }), - post(85, { typ: "observation", text: "Spår efter lossnad klistervikt på höger framfälgs insida" }), + post(75, { typ: "inaktivitet_forklarad", text: "Lifted the car and removed the right front wheel for checking on the balancing machine.", minuter: 15 }), + post(82, { typ: "matvarde", beskrivning: "Imbalance in the right front wheel", varde: "38", enhet: "g", ...BALANSMASKIN }), + post(83, { typ: "kontroll_utford", stegId: "kontroller", kontrollId: "balansering", text: "Kontrollera hjulbalansering", resultat: "38 g imbalance right front — a balance weight is missing. The other wheels within 5 g." }), + post(85, { typ: "observation", text: "Traces of a detached adhesive weight on the inner face of the right front rim" }), post(85, { typ: "reproducering", status: "ja", - beskrivning: "Reproducerad vid provkörning på plan väg: vibrationen återskapades tre gånger mellan 92 och 108 km/h, tydligast i ratten.", + beskrivning: "Reproduced on a road test on level road: the vibration was recreated three times between 92 and 108 km/h, most clearly in the steering wheel.", }), post(86, { typ: "felorsak", - avvikelse: "Framhjulen uppvisar obalans (38 g höger fram). Ingen deformation av fälgar eller däck kunde konstateras.", - orsaker: ["Yttre påverkan"], - underlag: ["Mätresultat", "Foto", "Direkt observation"], + avvikelse: "The front wheels show imbalance (38 g right front). No deformation of rims or tyres could be established.", + orsaker: ["External influence"], + underlag: ["Measurement result", "Foto", "Direkt observation"], sakerhet: "medel", - atgard: "Balansera framhjulen och genomför ny provkörning i 80–100 km/h.", - ytterligareKontroller: "Ny provkörning efter balansering bekräftar att symptomet är åtgärdat.", + atgard: "Balance the front wheels and perform a new road test at 80–100 km/h.", + ytterligareKontroller: "A new road test after balancing confirms the symptom is resolved.", }), // Exempel på AI-handledning, märkt "demo" — riktiga svar kräver API-nyckel. post(86, { typ: "ai_svar", rader: [ - { typ: "verifierat", text: "Obalans uppmätt: 38 g höger framhjul. Övriga hjul inom tolerans." }, - { typ: "observation", text: "Spår efter lossnad klistervikt förklarar var vikten suttit — orsaken till obalansen är dock inte verifierad." }, - { typ: "rekommendation", text: "Balansera om hjulet och verifiera att symptomet försvinner innan ärendet avslutas." }, + { typ: "verifierat", text: "Imbalance measured: 38 g right front wheel. The other wheels within tolerance." }, + { typ: "observation", text: "Traces of a detached adhesive weight explain where the weight sat — the cause of the imbalance is not verified, however." }, + { typ: "rekommendation", text: "Rebalance the wheel and verify that the symptom disappears before the case is closed." }, ], - nastaSteg: "Balansera om höger framhjul och genomför ny provkörning i 80–100 km/h.", + nastaSteg: "Rebalance the right front wheel and perform a new road test at 80–100 km/h.", modell: "demo", }), post(86, { typ: "atgardsforslag", - beskrivning: "Balansera om höger framhjul och genomför ny provkörning i 80–100 km/h.", + beskrivning: "Rebalance the right front wheel and perform a new road test at 80–100 km/h.", uppskattadKostnad: "890 kr inkl. moms", }), post(87, { typ: "kategori_byte", kategori: "kundkontakt" }), @@ -155,23 +155,23 @@ export function byggDemoArende(nummer: number, anvandare = "Anna"): Arende { typ: "kundbeslut", beslut: "godkant", kanal: "Telefon", - kommentar: "Kunden godkände ombalansering.", + kommentar: "The customer approved the rebalancing.", }), post(87, { typ: "kategori_byte", kategori: "aktiv_felsokning" }), post(87, { typ: "atgard_utford", - beskrivning: "Balanserade om höger framhjul och monterade ny balansvikt på fälgens insida.", + beskrivning: "Rebalanced the right front wheel and fitted a new weight on the inner face of the rim.", delar: "Balansvikter 40 g", utford: true, }), post(88, { typ: "kvalitetskontroll", resultat: "symptomet_borta", - beskrivning: "Ny provkörning 80–110 km/h på samma vägsträcka — ingen vibration i ratten.", + beskrivning: "New road test at 80–110 km/h on the same stretch — no vibration in the steering wheel.", }), post(90, { typ: "overlamning", fran: anvandare, till: "Johan" }), post(92, { typ: "kategori_byte", kategori: "administration" }, "Johan"), - post(95, { typ: "kommentar", text: "Balanserat om höger framhjul, ny provkörning planerad." }, "Johan"), + post(95, { typ: "kommentar", text: "Rebalanced the right front wheel, a new road test is planned." }, "Johan"), ]; return { @@ -192,13 +192,13 @@ export function byggDemoTolkning(): TolkatFalt[] { { id: "kund_telefon", etikett: "Telefon", grupp: "Customer", varde: "070-123 45 67", konfidens: 0.91, omrade: { x: 0.08, y: 0.22, bredd: 0.3, hojd: 0.04 } }, { id: "fordon_regnr", etikett: "Regnr", grupp: "Vehicle", varde: "ABC123", konfidens: 0.99, omrade: { x: 0.62, y: 0.12, bredd: 0.2, hojd: 0.05 } }, { id: "fordon_vin", etikett: "VIN", grupp: "Vehicle", varde: "YV1DZ8256F2123456", konfidens: 0.74, omrade: { x: 0.55, y: 0.19, bredd: 0.38, hojd: 0.04 } }, - { id: "fordon_marke", etikett: "Märke", grupp: "Vehicle", varde: "Volvo", konfidens: 0.99 }, + { id: "fordon_marke", etikett: "Make", grupp: "Vehicle", varde: "Volvo", konfidens: 0.99 }, { id: "fordon_modell", etikett: "Modell", grupp: "Vehicle", varde: "XC60 D4", konfidens: 0.97 }, - { id: "fordon_arsmodell", etikett: "Årsmodell", grupp: "Vehicle", varde: "2019", konfidens: 0.96 }, - { id: "fordon_matarstallning", etikett: "Mätarställning", grupp: "Vehicle", varde: "8 432 mil", konfidens: 0.87, omrade: { x: 0.62, y: 0.27, bredd: 0.18, hojd: 0.04 } }, + { id: "fordon_arsmodell", etikett: "Model year", grupp: "Vehicle", varde: "2019", konfidens: 0.96 }, + { id: "fordon_matarstallning", etikett: "Odometer", grupp: "Vehicle", varde: "8 432 mil", konfidens: 0.87, omrade: { x: 0.62, y: 0.27, bredd: 0.18, hojd: 0.04 } }, { id: "ao_nummer", etikett: "Arbetsordernr", grupp: "Workshop", varde: "AO-2496", konfidens: 0.99 }, - { id: "ao_serviceradgivare", etikett: "Servicerådgivare", grupp: "Workshop", varde: "M. Lindqvist", konfidens: 0.82 }, - { id: "felbeskrivning", etikett: "Felbeskrivning", grupp: "Case", varde: "Kunden upplever vibrationer i ratten vid ca 90 km/h", konfidens: 0.97, omrade: { x: 0.08, y: 0.45, bredd: 0.84, hojd: 0.07 } }, + { id: "ao_serviceradgivare", etikett: "Service advisor", grupp: "Workshop", varde: "M. Lindqvist", konfidens: 0.82 }, + { id: "felbeskrivning", etikett: "Felbeskrivning", grupp: "Case", varde: "The customer experiences vibration in the steering wheel at about 90 km/h", konfidens: 0.97, omrade: { x: 0.08, y: 0.45, bredd: 0.84, hojd: 0.07 } }, ]; } @@ -208,8 +208,8 @@ export function byggDemoInstrument(): InstrumentTolkning { return { instrumenttyp: "multimeter", varden: [ - { beskrivning: "Batterispänning (vila)", varde: "12,4", enhet: "V", konfidens: 0.97 }, - { beskrivning: "Spänning vid start", varde: "9,8", enhet: "V", konfidens: 0.84 }, + { beskrivning: "Battery voltage (at rest)", varde: "12,4", enhet: "V", konfidens: 0.97 }, + { beskrivning: "Voltage during cranking", varde: "9,8", enhet: "V", konfidens: 0.84 }, ], }; } diff --git a/felsokning/app/src/felsokning/ecm.ts b/felsokning/app/src/felsokning/ecm.ts index 597687f..a41e3da 100644 --- a/felsokning/app/src/felsokning/ecm.ts +++ b/felsokning/app/src/felsokning/ecm.ts @@ -92,7 +92,7 @@ export function evidensposter(arende: Arende): Evidenspost[] { }); for (const post of arende.handelser) { const h = post.handelse; - if (h.typ === "foto") lagg(post, "foto", "E2", h.beskrivning); + if (h.typ === "foto") lagg(post, "photo", "E2", h.beskrivning); if (h.typ === "video") lagg(post, "video", "E3", h.beskrivning); if (h.typ === "matvarde") { // Ett mätvärde är E4 bara när det går att visa vad som mätte och @@ -105,8 +105,8 @@ export function evidensposter(arende: Arende): Evidenspost[] { const spårbar = Boolean(h.matdonId) && kalibreradVid(h.matdonKalibreradTill, post.tidpunkt); const märkning = [ h.matdonBeteckning - ? `${h.matdonBeteckning}${spårbar ? "" : " — kalibrering saknas eller utgången"}` - : "instrument ej angivet", + ? `${h.matdonBeteckning}${spårbar ? "" : " — calibration missing or expired"}` + : "instrument not stated", // Härkomsten står i rapporten, inte bara i loggen: den som läser // ska se att siffran är maskinläst utan att gräva (TÜV T-5). h.kalla, @@ -115,7 +115,7 @@ export function evidensposter(arende: Arende): Evidenspost[] { .join("; "); lagg( post, - "mätvärde", + "measurement", spårbar ? "E4" : "E1", `${h.beskrivning} = ${h.varde}${h.enhet ? ` ${h.enhet}` : ""} (${märkning})`, ); @@ -130,14 +130,14 @@ export function evidensposter(arende: Arende): Evidenspost[] { const fotograferad = Boolean(h.bilagaId || h.dataUrl); lagg( post, - "mätarställning", + "odometer", fotograferad ? "E2" : "E1", - `${h.lage === "ingaende" ? "In" : "Ut"}: ${h.varde}${fotograferad ? "" : " (inskriven, ej fotograferad)"}`, + `${h.lage === "ingaende" ? "In" : "Out"}: ${h.varde}${fotograferad ? "" : " (entered, not photographed)"}`, ); } - if (h.typ === "arbetsorder_skannad") lagg(post, "dokument", "E5", `Arbetsorder, ${h.falt.length} fält`); + if (h.typ === "arbetsorder_skannad") lagg(post, "document", "E5", `Work order, ${h.falt.length} fields`); if (h.typ === "observation") lagg(post, "observation", "E1", h.text); - if (h.typ === "kontroll_utford" && !h.undantag) lagg(post, "kontroll", "E1", h.text); + if (h.typ === "kontroll_utford" && !h.undantag) lagg(post, "check", "E1", h.text); } return poster; } @@ -239,7 +239,7 @@ const GENERISKA_FRASER = /^(trasig|defekt|sliten|utsliten|kass|död|behöver byt export function granskaAvvikelse(text: string): string | null { const ren = text.trim(); if (ren.length < 20 || GENERISKA_FRASER.test(ren)) { - return "Felorsak saknas. Beskriv den konstaterade avvikelsen — inte bara komponenten. Exempel: ”Startmotorn aktiverar inte trots korrekt matningsspänning och god jordförbindelse.”"; + return "Root cause missing. Describe the established deviation — not only the component. Example: “The starter motor does not engage despite correct supply voltage and a good earth connection.”"; } return null; } @@ -673,7 +673,7 @@ export function kvalitetsgrind(arende: Arende, metodik: Metodik): GrindRad[] { ok: !!beslut, kravs: utfordAtgard, detalj: beslut - ? `${beslut.beslut === "godkant" ? "Godkänt" : beslut.beslut === "avbojt" ? "Avböjt" : "Delvis godkänt"} via ${beslut.kanal}.` + ? `${beslut.beslut === "godkant" ? "Approved" : beslut.beslut === "avbojt" ? "Declined" : "Partly approved"} via ${beslut.kanal}.` : "A proposal has been given — record the customer's decision before the work is performed.", }); if (beslut?.beslut === "avbojt" && utfordAtgard) { diff --git a/felsokning/app/src/pages/alva/Sprak.tsx b/felsokning/app/src/pages/alva/Sprak.tsx index 6b9058a..bde01db 100644 --- a/felsokning/app/src/pages/alva/Sprak.tsx +++ b/felsokning/app/src/pages/alva/Sprak.tsx @@ -114,6 +114,16 @@ export default function Sprak() { Interface coverage is measured, not estimated: a test fails the build if any key is missing from any language. Review status is a statement about people, not about files, and is set by hand.

+ {/* Att engelska är källspråket betyder inte att den engelska + metodiktexten är fackgranskad. Den är översatt från svenska, + och att inte säga det hade varit att göra precis det sidan + varnar för på de andra nio språken. */} +

+ The English procedure text is a translation of the Swedish source and has not yet been read by a + specialist working in the trade. It is held to the same standard as the other nine languages, and + the same statement is made about it here rather than quietly excepted because it is the source. +

{/* ---- Beviset ---- */} diff --git a/felsokning/services/gemensam/metodiker.mjs b/felsokning/services/gemensam/metodiker.mjs index bfe2649..efab04b 100644 --- a/felsokning/services/gemensam/metodiker.mjs +++ b/felsokning/services/gemensam/metodiker.mjs @@ -23,62 +23,79 @@ // Att "täcka allt" går inte att lova. Det som går är att täcka fordonets // system systematiskt och låta GENERISK vara ett strukturellt komplett // skyddsnät: den fungerar även för det ingen förutsett. +// +// ---- Språk och granskningsstatus (ALVA-SPEC-060) ------------------------ +// +// Texten är skriven på svenska och översatt till engelska när engelska +// blev källspråk. Det är alltså en ÖVERSÄTTNING som ännu inte lästs av en +// fackman på målspråket, och den ska behandlas som en sådan tills den är +// det — samma krav som ställs på de nio andra språken. +// +// Det spelar roll här och ingen annanstans i produkten: det här är den +// enda text i systemet som säger åt någon vad den ska göra med ett +// fordon. "Mät och dokumentera spänningsfrihet före ingrepp" är inte en +// etikett. +// +// NYCKELORDEN är ett undantag och är avsiktligt tvåspråkiga. De matchas +// mot teknikerns egen fritext; att byta ut de svenska mot engelska hade +// gjort metodikvalet blint för allt en svensk verkstad skriver. Fler +// nyckelord kan bara ge fler träffar, aldrig färre. export const VIBRATION = { id: "vibration", - namn: "Vibration under körning", - omrade: "Hjul och balans", - nyckelord: ["vibration", "vibrer", "skak", "obalans", "ojämn gång", "rattvibration"], + namn: "Vibration while driving", + omrade: "Wheels and balance", + nyckelord: ["vibration", "vibrer", "skak", "obalans", "ojämn gång", "rattvibration", "vibrat", "shak", "shimm", "imbalance", "unbalance", "wheel wobble", "rough running"], steg: [ { id: "symptom", - rubrik: "Verifiera symptom", + rubrik: "Verify the symptom", fragor: [ - { id: "hastighetsberoende", text: "Är vibrationen hastighetsberoende?", svarstyp: "janej" }, - { id: "var", text: "Var känns vibrationen?", svarstyp: "val", val: ["I ratten", "I stolen", "I hela bilen"] }, + { id: "hastighetsberoende", text: "Is the vibration speed-dependent?", svarstyp: "janej" }, + { id: "var", text: "Where is the vibration felt?", svarstyp: "val", val: ["In the steering wheel", "In the seat", "Throughout the vehicle"] }, { id: "nar", - text: "När uppstår vibrationen?", + text: "When does the vibration occur?", svarstyp: "val", - val: ["Vid acceleration", "Vid jämn fart", "Vid inbromsning", "Alltid under körning"], + val: ["Under acceleration", "At steady speed", "Under braking", "Always while driving"], }, - { id: "intervall", text: "Försvinner den över eller under ett visst hastighetsintervall?", svarstyp: "text" }, + { id: "intervall", text: "Does it disappear above or below a certain speed range?", svarstyp: "text" }, ], }, { id: "visuell", - rubrik: "Visuell kontroll", - beskrivning: "Fotografera samtliga hjul. Skilj på observation och slutsats.", + rubrik: "Visual inspection", + beskrivning: "Photograph every wheel. Keep observation separate from conclusion.", kontroller: [ - { id: "foto_vf", text: "Fotografera vänster framhjul", krav: "foto" }, - { id: "foto_hf", text: "Fotografera höger framhjul", krav: "foto" }, - { id: "foto_vb", text: "Fotografera vänster bakhjul", krav: "foto" }, - { id: "foto_hb", text: "Fotografera höger bakhjul", krav: "foto" }, - { id: "dot", text: "Dokumentera DOT-/tillverkningsdatum", krav: "kommentar" }, - { id: "slitage", text: "Kontrollera däckslitage och slitagemönster", krav: "kommentar" }, + { id: "foto_vf", text: "Photograph the left front wheel", krav: "foto" }, + { id: "foto_hf", text: "Photograph the right front wheel", krav: "foto" }, + { id: "foto_vb", text: "Photograph the left rear wheel", krav: "foto" }, + { id: "foto_hb", text: "Photograph the right rear wheel", krav: "foto" }, + { id: "dot", text: "Document the DOT / manufacturing date", krav: "kommentar" }, + { id: "slitage", text: "Check tyre wear and the wear pattern", krav: "kommentar" }, ], }, { id: "kontroller", - rubrik: "Mätningar", + rubrik: "Measurements", kontroller: [ - { id: "lufttryck", text: "Kontrollera lufttryck", krav: "matvarde" }, - { id: "hjulmoment", text: "Kontrollera hjulmoment", krav: "matvarde" }, - { id: "kast", text: "Kontrollera radial- och sidokast", krav: "matvarde" }, - { id: "balansering", text: "Kontrollera hjulbalansering", krav: "kommentar" }, - { id: "bussningar", text: "Kontrollera bussningar och leder", krav: "kommentar" }, + { id: "lufttryck", text: "Check tyre pressure", krav: "matvarde" }, + { id: "hjulmoment", text: "Check wheel torque", krav: "matvarde" }, + { id: "kast", text: "Check radial and lateral runout", krav: "matvarde" }, + { id: "balansering", text: "Check wheel balance", krav: "kommentar" }, + { id: "bussningar", text: "Check bushings and joints", krav: "kommentar" }, ], }, { id: "provkorning", - rubrik: "Provkörning", - beskrivning: "Verifiera under provkörning:", + rubrik: "Road test", + beskrivning: "Verify during the road test:", kontroller: [ - { id: "pk_hastighet", text: "Hastighet där vibration uppstår", krav: "kommentar" }, - { id: "pk_acc", text: "Förändring vid acceleration", krav: "kommentar" }, - { id: "pk_motorbroms", text: "Förändring vid motorbroms", krav: "kommentar" }, - { id: "pk_kurva", text: "Förändring vid kurvtagning", krav: "kommentar" }, - { id: "pk_var", text: "Om vibration känns i ratt eller kaross", krav: "kommentar" }, + { id: "pk_hastighet", text: "Speed at which the vibration occurs", krav: "kommentar" }, + { id: "pk_acc", text: "Change under acceleration", krav: "kommentar" }, + { id: "pk_motorbroms", text: "Change under engine braking", krav: "kommentar" }, + { id: "pk_kurva", text: "Change when cornering", krav: "kommentar" }, + { id: "pk_var", text: "Whether the vibration is felt in the steering wheel or the body", krav: "kommentar" }, ], }, ], @@ -86,117 +103,117 @@ export const VIBRATION = { export const ELSYSTEM = { id: "elsystem", - namn: "Elsystem och strömförsörjning", - omrade: "El", - nyckelord: ["relä", "rela", "säkring", "elektr", "spänning", "volt", "lampa", "belysning", "ström", "kortslut", "kabel", "kabla", "kontaktdon", "jordfel"], + namn: "Electrical system and power supply", + omrade: "Electrical", + nyckelord: ["relä", "rela", "säkring", "elektr", "spänning", "volt", "lampa", "belysning", "ström", "kortslut", "kabel", "kabla", "kontaktdon", "jordfel", "relay", "fuse", "electric", "voltage", "lamp", "light", "current", "short circuit", "wiring", "harness", "connector", "earth fault", "ground fault"], steg: [ { id: "symptom", - rubrik: "Verifiera symptom", + rubrik: "Verify the symptom", fragor: [ - { id: "reproducerbart", text: "Går felet att reproducera?", svarstyp: "janej" }, + { id: "reproducerbart", text: "Can the fault be reproduced?", svarstyp: "janej" }, { id: "omfattning", - text: "Är funktionen helt död eller delvis fungerande?", + text: "Is the function completely dead or partly working?", svarstyp: "val", - val: ["Helt död", "Delvis fungerande", "Intermittent"], + val: ["Completely dead", "Partly working", "Intermittent"], }, - { id: "funktion", text: "Vilken funktion saknas eller felar?", svarstyp: "text" }, - { id: "forandring", text: "Har något åtgärdats eller förändrats nyligen?", svarstyp: "text" }, + { id: "funktion", text: "Which function is missing or faulty?", svarstyp: "text" }, + { id: "forandring", text: "Has anything been repaired or changed recently?", svarstyp: "text" }, ], }, { id: "visuell", - rubrik: "Visuell kontroll", + rubrik: "Visual inspection", kontroller: [ - { id: "foto_komponent", text: "Fotografera komponenten och dess anslutningar", krav: "foto" }, - { id: "skador", text: "Kontrollera synliga skador, korrosion och lösa kontaktdon", krav: "kommentar" }, + { id: "foto_komponent", text: "Photograph the component and its connections", krav: "foto" }, + { id: "skador", text: "Check for visible damage, corrosion and loose connectors", krav: "kommentar" }, ], }, { id: "matningar", - rubrik: "Mätningar", - beskrivning: "Mät under belastning. En spänning utan last säger nästan ingenting om en dålig förbindelse.", + rubrik: "Measurements", + beskrivning: "Measure under load. A voltage without load says almost nothing about a poor connection.", kontroller: [ - { id: "batterispanning", text: "Mät batterispänning", krav: "matvarde" }, - { id: "sakringar", text: "Kontrollera berörda säkringar", krav: "kommentar" }, - { id: "matningsspanning", text: "Mät matningsspänning vid komponenten under last", krav: "matvarde" }, - { id: "jord", text: "Mät spänningsfall mot jord under last", krav: "matvarde" }, + { id: "batterispanning", text: "Measure battery voltage", krav: "matvarde" }, + { id: "sakringar", text: "Check the fuses concerned", krav: "kommentar" }, + { id: "matningsspanning", text: "Measure supply voltage at the component under load", krav: "matvarde" }, + { id: "jord", text: "Measure voltage drop to earth under load", krav: "matvarde" }, ], }, { id: "rela", - rubrik: "Relä och styrsignal", + rubrik: "Relay and control signal", kontroller: [ - { id: "rela_klick", text: "Kontrollera om reläet klickar vid aktivering", krav: "kommentar" }, - { id: "styrsignal", text: "Mät styrsignal till reläet", krav: "matvarde" }, + { id: "rela_klick", text: "Check whether the relay clicks when energised", krav: "kommentar" }, + { id: "styrsignal", text: "Measure the control signal to the relay", krav: "matvarde" }, ], }, { id: "funktionstest", - rubrik: "Funktionstest", - kontroller: [{ id: "test", text: "Genomför funktionstest och dokumentera resultatet", krav: "kommentar" }], + rubrik: "Function test", + kontroller: [{ id: "test", text: "Perform a function test and document the result", krav: "kommentar" }], }, ], }; export const START_LADDNING = { id: "start_laddning", - namn: "Start- och laddningssystem", - omrade: "El", - nyckelord: ["startar inte", "startproblem", "startmotor", "generator", "laddning", "batteriet dör", "urladdat", "batterilampa", "drar inte runt", "klick vid start"], + namn: "Starting and charging system", + omrade: "Electrical", + nyckelord: ["startar inte", "startproblem", "startmotor", "generator", "laddning", "batteriet dör", "urladdat", "batterilampa", "drar inte runt", "klick vid start", "will not start", "wont start", "no start", "starter", "alternator", "charging", "battery dies", "flat battery", "battery light", "does not crank", "click when starting"], steg: [ { id: "symptom", - rubrik: "Verifiera symptom", + rubrik: "Verify the symptom", fragor: [ { id: "beteende", - text: "Vad händer vid startförsök?", + text: "What happens when starting is attempted?", svarstyp: "val", - val: ["Ingenting alls", "Ett klick", "Drar runt långsamt", "Drar runt normalt men tänder inte", "Startar ibland"], + val: ["Nothing at all", "A single click", "Cranks slowly", "Cranks normally but does not fire", "Starts intermittently"], }, - { id: "kallt_varmt", text: "Uppträder felet kallt, varmt eller alltid?", svarstyp: "val", val: ["Kallt", "Varmt", "Alltid"] }, - { id: "stillestand", text: "Hur länge har fordonet stått mellan försöken?", svarstyp: "text" }, - { id: "laddat", text: "Har batteriet laddats eller bytts nyligen?", svarstyp: "text" }, + { id: "kallt_varmt", text: "Does the fault appear cold, warm or always?", svarstyp: "val", val: ["Cold", "Warm", "Always"] }, + { id: "stillestand", text: "How long has the vehicle stood between attempts?", svarstyp: "text" }, + { id: "laddat", text: "Has the battery been charged or replaced recently?", svarstyp: "text" }, ], }, { id: "batteri", - rubrik: "Batteriets kondition", - beskrivning: "Ett svagt batteri ger följdfel i hela fordonet. Uteslut det först.", + rubrik: "Battery condition", + beskrivning: "A weak battery causes consequential faults across the vehicle. Rule it out first.", kontroller: [ - { id: "vilospanning", text: "Mät vilospänning efter minst en timmes vila", krav: "matvarde" }, - { id: "batteritest", text: "Belastningstest — fotografera testarens resultat", krav: "foto" }, - { id: "poler", text: "Kontrollera polskor och jordflätor", krav: "kommentar" }, + { id: "vilospanning", text: "Measure resting voltage after at least one hour at rest", krav: "matvarde" }, + { id: "batteritest", text: "Load test — photograph the tester's result", krav: "foto" }, + { id: "poler", text: "Check battery terminals and earth straps", krav: "kommentar" }, ], }, { id: "start", - rubrik: "Startsystem", + rubrik: "Starting system", kontroller: [ - { id: "startspanning", text: "Mät spänning vid startmotorn under startförsök", krav: "matvarde" }, - { id: "spanningsfall_plus", text: "Mät spänningsfall i plusledningen under start", krav: "matvarde" }, - { id: "spanningsfall_jord", text: "Mät spänningsfall i jordledningen under start", krav: "matvarde" }, - { id: "startsignal", text: "Kontrollera styrsignal till startrelä", krav: "matvarde" }, + { id: "startspanning", text: "Measure voltage at the starter motor during cranking", krav: "matvarde" }, + { id: "spanningsfall_plus", text: "Measure voltage drop in the positive lead during cranking", krav: "matvarde" }, + { id: "spanningsfall_jord", text: "Measure voltage drop in the earth lead during cranking", krav: "matvarde" }, + { id: "startsignal", text: "Check the control signal to the starter relay", krav: "matvarde" }, ], }, { id: "laddning", - rubrik: "Laddningssystem", + rubrik: "Charging system", kontroller: [ - { id: "laddspanning", text: "Mät laddspänning vid tomgång och vid förhöjt varvtal", krav: "matvarde" }, - { id: "rippel", text: "Mät rippel från generatorn", krav: "matvarde" }, - { id: "rem", text: "Kontrollera drivrem och spänning", krav: "kommentar" }, + { id: "laddspanning", text: "Measure charging voltage at idle and at raised engine speed", krav: "matvarde" }, + { id: "rippel", text: "Measure ripple from the alternator", krav: "matvarde" }, + { id: "rem", text: "Check the drive belt and its tension", krav: "kommentar" }, ], }, { id: "krypstrom", - rubrik: "Krypström", - beskrivning: "Endast relevant när batteriet laddar ur under stillestånd.", + rubrik: "Parasitic drain", + beskrivning: "Only relevant when the battery discharges while the vehicle stands.", kontroller: [ - { id: "vilostrom", text: "Mät viloström efter att fordonet somnat", krav: "matvarde" }, - { id: "sakringsdrag", text: "Lokalisera krets genom successiv säkringsurtagning", krav: "kommentar" }, + { id: "vilostrom", text: "Measure quiescent current once the vehicle has gone to sleep", krav: "matvarde" }, + { id: "sakringsdrag", text: "Localize the circuit by removing fuses one at a time", krav: "kommentar" }, ], }, ], @@ -204,62 +221,62 @@ export const START_LADDNING = { export const MOTOR_DRIFT = { id: "motor_drift", - namn: "Motorgång och effekt", - omrade: "Motor", - nyckelord: ["ryck", "tappar kraft", "effektbrist", "misständ", "ojämn tomgång", "tomgång", "motorlampa", "kraftlös", "hack", "går på tre"], + namn: "Engine running and power", + omrade: "Engine", + nyckelord: ["ryck", "tappar kraft", "effektbrist", "misständ", "ojämn tomgång", "tomgång", "motorlampa", "kraftlös", "hack", "går på tre", "jerk", "hesitat", "loses power", "power loss", "misfire", "rough idle", "idle", "engine light", "check engine", "gutless", "running on three"], steg: [ { id: "symptom", - rubrik: "Verifiera symptom", + rubrik: "Verify the symptom", fragor: [ { id: "nar", - text: "När uppträder felet?", + text: "When does the fault appear?", svarstyp: "val", - val: ["Vid kallstart", "Vid tomgång", "Under belastning", "Vid visst varvtal", "Alltid"], + val: ["On a cold start", "At idle", "Under load", "At a particular engine speed", "Always"], }, - { id: "varvtal", text: "Vid vilket varvtal eller vilken last?", svarstyp: "text" }, - { id: "varningslampa", text: "Lyser eller blinkar motorlampan?", svarstyp: "val", val: ["Lyser fast", "Blinkar", "Slocknad"] }, - { id: "brankslebyte", text: "Har bränsle tankats eller service utförts strax innan?", svarstyp: "text" }, + { id: "varvtal", text: "At what engine speed or load?", svarstyp: "text" }, + { id: "varningslampa", text: "Is the engine warning lamp on or flashing?", svarstyp: "val", val: ["On steady", "Flashing", "Off"] }, + { id: "brankslebyte", text: "Was fuel added or service performed shortly before?", svarstyp: "text" }, ], }, { id: "felkoder", - rubrik: "Felkoder och mätdata", - beskrivning: "Läs innan något demonteras. En felkod pekar på en krets, inte på en trasig komponent.", + rubrik: "Fault codes and measured data", + beskrivning: "Read before anything is dismantled. A fault code points to a circuit, not to a broken component.", kontroller: [ - { id: "dtc", text: "Läs felkoder — fotografera diagnosskärmen", krav: "foto" }, - { id: "frysdata", text: "Dokumentera frysramsdata för koden", krav: "kommentar" }, - { id: "misstandning", text: "Läs misständningsräknare per cylinder", krav: "matvarde" }, - { id: "branslekorrigering", text: "Läs kort- och långtidsbränslekorrigering", krav: "matvarde" }, + { id: "dtc", text: "Read fault codes — photograph the diagnostic screen", krav: "foto" }, + { id: "frysdata", text: "Document the freeze frame data for the code", krav: "kommentar" }, + { id: "misstandning", text: "Read the misfire counter per cylinder", krav: "matvarde" }, + { id: "branslekorrigering", text: "Read short- and long-term fuel trim", krav: "matvarde" }, ], }, { id: "mekanik", - rubrik: "Motorns grundkondition", - beskrivning: "Utan grundkondition är alla givarvärden svåra att tolka.", + rubrik: "Basic engine condition", + beskrivning: "Without sound basic condition, every sensor value is hard to interpret.", kontroller: [ - { id: "kompression", text: "Mät kompression eller relativ kompression", krav: "matvarde" }, - { id: "vevhustryck", text: "Kontrollera vevhustryck", krav: "kommentar" }, - { id: "insugslackage", text: "Kontrollera insugssystemet för falskluft", krav: "kommentar" }, + { id: "kompression", text: "Measure compression, or relative compression", krav: "matvarde" }, + { id: "vevhustryck", text: "Check crankcase pressure", krav: "kommentar" }, + { id: "insugslackage", text: "Check the intake system for unmetered air", krav: "kommentar" }, ], }, { id: "tandning_bransle", - rubrik: "Tändning och bränsle", + rubrik: "Ignition and fuel", kontroller: [ - { id: "tandstift", text: "Kontrollera tändstift — fotografera samtliga", krav: "foto" }, - { id: "spolar", text: "Mät tändspolarnas resistans eller byt mellan cylindrar", krav: "matvarde" }, - { id: "bransletryck", text: "Mät bränsletryck under belastning", krav: "matvarde" }, - { id: "insprutare", text: "Kontrollera insprutarnas returmängd eller styrning", krav: "matvarde" }, + { id: "tandstift", text: "Check the spark plugs — photograph all of them", krav: "foto" }, + { id: "spolar", text: "Measure ignition coil resistance, or swap coils between cylinders", krav: "matvarde" }, + { id: "bransletryck", text: "Measure fuel pressure under load", krav: "matvarde" }, + { id: "insprutare", text: "Check injector return quantity or injector control", krav: "matvarde" }, ], }, { id: "provkorning", - rubrik: "Provkörning med loggning", + rubrik: "Road test with logging", kontroller: [ - { id: "logg", text: "Logga mätdata under körning där felet uppträder", krav: "foto" }, - { id: "reproducerat", text: "Dokumentera under vilka förhållanden felet uppträdde", krav: "kommentar" }, + { id: "logg", text: "Log measured data while driving where the fault appears", krav: "foto" }, + { id: "reproducerat", text: "Document the conditions under which the fault appeared", krav: "kommentar" }, ], }, ], @@ -267,52 +284,52 @@ export const MOTOR_DRIFT = { export const BROMSAR = { id: "bromsar", - namn: "Bromssystem", - omrade: "Chassi", - nyckelord: ["broms", "bromspedal", "skevhet", "gnisslar vid inbromsning", "abs", "bromsvätska", "handbroms", "drar snett vid inbromsning"], + namn: "Braking system", + omrade: "Chassis", + nyckelord: ["broms", "bromspedal", "skevhet", "gnisslar vid inbromsning", "abs", "bromsvätska", "handbroms", "drar snett vid inbromsning", "brake", "brake pedal", "judder", "squeal when braking", "brake fluid", "handbrake", "parking brake", "pulls when braking"], steg: [ { id: "symptom", - rubrik: "Verifiera symptom", + rubrik: "Verify the symptom", fragor: [ { id: "karaktar", - text: "Hur yttrar sig felet?", + text: "How does the fault present?", svarstyp: "val", - val: ["Skevhet/pulsering", "Missljud", "Lång pedalväg", "Mjuk pedal", "Drar åt sidan", "Bromsen ligger på"], + val: ["Judder or pulsation", "Abnormal noise", "Long pedal travel", "Soft pedal", "Pulls to one side", "The brake is binding"], }, - { id: "nar", text: "Vid vilken hastighet och bromskraft?", svarstyp: "text" }, - { id: "varningslampa", text: "Lyser broms- eller ABS-varning?", svarstyp: "janej" }, - { id: "senaste", text: "När byttes bromskomponenter senast?", svarstyp: "text" }, + { id: "nar", text: "At what speed and braking force?", svarstyp: "text" }, + { id: "varningslampa", text: "Is the brake or ABS warning lamp on?", svarstyp: "janej" }, + { id: "senaste", text: "When were brake components last replaced?", svarstyp: "text" }, ], }, { id: "visuell", - rubrik: "Visuell kontroll", + rubrik: "Visual inspection", kontroller: [ - { id: "foto_belagg", text: "Fotografera belägg och skivor på samtliga hjul", krav: "foto" }, - { id: "belaggtjocklek", text: "Mät beläggtjocklek", krav: "matvarde" }, - { id: "skivtjocklek", text: "Mät skivtjocklek och jämför med minmått", krav: "matvarde" }, - { id: "lackage", text: "Kontrollera slangar, rör och ok för läckage", krav: "kommentar" }, + { id: "foto_belagg", text: "Photograph pads and discs on every wheel", krav: "foto" }, + { id: "belaggtjocklek", text: "Measure pad thickness", krav: "matvarde" }, + { id: "skivtjocklek", text: "Measure disc thickness and compare with the minimum", krav: "matvarde" }, + { id: "lackage", text: "Check hoses, pipes and calipers for leaks", krav: "kommentar" }, ], }, { id: "matningar", - rubrik: "Mätningar", + rubrik: "Measurements", kontroller: [ - { id: "skivkast", text: "Mät skivkast med mätklocka", krav: "matvarde" }, - { id: "tjockleksvariation", text: "Mät tjockleksvariation på skivan", krav: "matvarde" }, - { id: "vatska", text: "Mät bromsvätskans kokpunkt eller vatteninnehåll", krav: "matvarde" }, - { id: "okens_rorlighet", text: "Kontrollera okens och styrbultarnas rörlighet", krav: "kommentar" }, + { id: "skivkast", text: "Measure disc runout with a dial gauge", krav: "matvarde" }, + { id: "tjockleksvariation", text: "Measure disc thickness variation", krav: "matvarde" }, + { id: "vatska", text: "Measure the brake fluid's boiling point or water content", krav: "matvarde" }, + { id: "okens_rorlighet", text: "Check that calipers and slide pins move freely", krav: "kommentar" }, ], }, { id: "system", - rubrik: "System och ABS", + rubrik: "System and ABS", kontroller: [ - { id: "dtc", text: "Läs felkoder ur ABS-styrenheten", krav: "foto" }, - { id: "hjulgivare", text: "Kontrollera hjulhastighetsgivarnas signal", krav: "matvarde" }, - { id: "bromsprov", text: "Utför bromsprov i provbänk — fotografera protokollet", krav: "foto" }, + { id: "dtc", text: "Read fault codes from the ABS control unit", krav: "foto" }, + { id: "hjulgivare", text: "Check the wheel speed sensor signals", krav: "matvarde" }, + { id: "bromsprov", text: "Perform a brake test on a test bench — photograph the report", krav: "foto" }, ], }, ], @@ -320,50 +337,50 @@ export const BROMSAR = { export const STYRNING_FJADRING = { id: "styrning_fjadring", - namn: "Styrning och fjädring", - omrade: "Chassi", - nyckelord: ["drar åt", "styrning", "ratt", "glapp", "stötdämpar", "fjäder", "fjädr", "hjulinställning", "spårar", "gungar", "knäpper i kurva", "servostyrning"], + namn: "Steering and suspension", + omrade: "Chassis", + nyckelord: ["drar åt", "styrning", "ratt", "glapp", "stötdämpar", "fjäder", "fjädr", "hjulinställning", "spårar", "gungar", "knäpper i kurva", "servostyrning", "pulls", "steering", "steering wheel", "play", "damper", "shock absorber", "spring", "suspension", "wheel alignment", "tracking", "wallow", "clunk in corners", "power steering"], steg: [ { id: "symptom", - rubrik: "Verifiera symptom", + rubrik: "Verify the symptom", fragor: [ { id: "karaktar", - text: "Hur yttrar sig felet?", + text: "How does the fault present?", svarstyp: "val", - val: ["Drar åt sidan", "Glapp i ratten", "Missljud", "Dålig vägkänsla", "Ojämnt däckslitage", "Gungar/studsar"], + val: ["Pulls to one side", "Play in the steering wheel", "Abnormal noise", "Poor road feel", "Uneven tyre wear", "Wallows or bounces"], }, - { id: "underlag", text: "Uppträder det på visst underlag eller i viss kurva?", svarstyp: "text" }, - { id: "handelse", text: "Har fordonet kört på något eller varit i kontakt med trottoarkant?", svarstyp: "text" }, + { id: "underlag", text: "Does it appear on a particular surface or in a particular corner?", svarstyp: "text" }, + { id: "handelse", text: "Has the vehicle struck something or hit a kerb?", svarstyp: "text" }, ], }, { id: "visuell", - rubrik: "Visuell kontroll", + rubrik: "Visual inspection", kontroller: [ - { id: "foto_slitage", text: "Fotografera däckens slitagemönster", krav: "foto" }, - { id: "dampare", text: "Kontrollera dämpare för läckage", krav: "kommentar" }, - { id: "damask", text: "Kontrollera damasker på styrleder och drivknutar", krav: "kommentar" }, + { id: "foto_slitage", text: "Photograph the tyres' wear pattern", krav: "foto" }, + { id: "dampare", text: "Check dampers for leakage", krav: "kommentar" }, + { id: "damask", text: "Check boots on track rod ends and drive joints", krav: "kommentar" }, ], }, { id: "glapp", - rubrik: "Glappkontroll", - beskrivning: "Utförs med hjulet avlastat. Dokumentera var glappet finns, inte bara att det finns.", + rubrik: "Play check", + beskrivning: "Performed with the wheel unloaded. Document where the play is, not only that it exists.", kontroller: [ - { id: "hjullager", text: "Kontrollera hjullagerspel", krav: "kommentar" }, - { id: "styrleder", text: "Kontrollera styr- och bärleder", krav: "kommentar" }, - { id: "bussningar", text: "Kontrollera bussningar", krav: "kommentar" }, - { id: "kuggstang", text: "Kontrollera kuggstång och styrstagsändar", krav: "kommentar" }, + { id: "hjullager", text: "Check wheel bearing play", krav: "kommentar" }, + { id: "styrleder", text: "Check track rod ends and ball joints", krav: "kommentar" }, + { id: "bussningar", text: "Check bushings", krav: "kommentar" }, + { id: "kuggstang", text: "Check the rack and the track rod ends", krav: "kommentar" }, ], }, { id: "installning", - rubrik: "Hjulinställning", + rubrik: "Wheel alignment", kontroller: [ - { id: "matning", text: "Mät hjulinställning — fotografera protokollet före justering", krav: "foto" }, - { id: "avvikelse", text: "Dokumentera avvikelser mot tillverkarens värden", krav: "matvarde" }, + { id: "matning", text: "Measure wheel alignment — photograph the report before adjustment", krav: "foto" }, + { id: "avvikelse", text: "Document deviations from the manufacturer's values", krav: "matvarde" }, ], }, ], @@ -371,51 +388,51 @@ export const STYRNING_FJADRING = { export const KYLSYSTEM = { id: "kylsystem", - namn: "Kylsystem och överhettning", - omrade: "Motor", - nyckelord: ["överhett", "koka", "kylvätska", "temperatur", "termostat", "kylare", "vattenpump", "värme i kupén", "expansionskärl"], + namn: "Cooling system and overheating", + omrade: "Engine", + nyckelord: ["överhett", "koka", "kylvätska", "temperatur", "termostat", "kylare", "vattenpump", "värme i kupén", "expansionskärl", "overheat", "boiling", "coolant", "temperature", "thermostat", "radiator", "water pump", "cabin heat", "expansion tank"], steg: [ { id: "symptom", - rubrik: "Verifiera symptom", + rubrik: "Verify the symptom", fragor: [ { id: "nar", - text: "När stiger temperaturen?", + text: "When does the temperature rise?", svarstyp: "val", - val: ["Vid tomgång", "I låg fart", "I hög fart", "Vid belastning/backe", "Alltid"], + val: ["At idle", "At low speed", "At high speed", "Under load or on a hill", "Always"], }, - { id: "kylvatskeforlust", text: "Förloras kylvätska? Hur mycket och hur ofta?", svarstyp: "text" }, - { id: "varme", text: "Fungerar kupévärmen?", svarstyp: "janej" }, + { id: "kylvatskeforlust", text: "Is coolant being lost? How much and how often?", svarstyp: "text" }, + { id: "varme", text: "Does the cabin heater work?", svarstyp: "janej" }, ], }, { id: "visuell", - rubrik: "Visuell kontroll", + rubrik: "Visual inspection", kontroller: [ - { id: "niva", text: "Kontrollera kylvätskenivå kall — fotografera expansionskärlet", krav: "foto" }, - { id: "lackage", text: "Kontrollera synligt läckage vid slangar, kylare och pump", krav: "kommentar" }, - { id: "kylarpaket", text: "Kontrollera kylarpaketet för igensättning", krav: "foto" }, + { id: "niva", text: "Check the coolant level cold — photograph the expansion tank", krav: "foto" }, + { id: "lackage", text: "Check for visible leaks at hoses, radiator and pump", krav: "kommentar" }, + { id: "kylarpaket", text: "Check the radiator pack for blockage", krav: "foto" }, ], }, { id: "matningar", - rubrik: "Mätningar", + rubrik: "Measurements", kontroller: [ - { id: "trycktest", text: "Trycktesta kylsystemet", krav: "matvarde" }, - { id: "lock", text: "Trycktesta expansionskärlets lock", krav: "matvarde" }, - { id: "temperatur", text: "Mät temperatur in och ut ur kylaren med IR-termometer", krav: "matvarde" }, - { id: "flakt", text: "Kontrollera att kylfläkten startar vid rätt temperatur", krav: "kommentar" }, - { id: "givare", text: "Jämför styrenhetens temperaturvärde med uppmätt", krav: "matvarde" }, + { id: "trycktest", text: "Pressure test the cooling system", krav: "matvarde" }, + { id: "lock", text: "Pressure test the expansion tank cap", krav: "matvarde" }, + { id: "temperatur", text: "Measure inlet and outlet temperature at the radiator with an IR thermometer", krav: "matvarde" }, + { id: "flakt", text: "Check that the cooling fan starts at the correct temperature", krav: "kommentar" }, + { id: "givare", text: "Compare the control unit's temperature value with the measured one", krav: "matvarde" }, ], }, { id: "packning", - rubrik: "Topplockspackning", - beskrivning: "Görs när kylvätska förloras utan yttre läckage.", + rubrik: "Cylinder head gasket", + beskrivning: "Performed when coolant is lost without an external leak.", kontroller: [ - { id: "avgastest", text: "Avgastest i kylvätskan (CO2-test)", krav: "foto" }, - { id: "kompression_kyl", text: "Kontrollera trycksättning av kylsystemet vid motorgång", krav: "kommentar" }, + { id: "avgastest", text: "Exhaust gas test in the coolant (CO2 test)", krav: "foto" }, + { id: "kompression_kyl", text: "Check the pressurisation of the cooling system with the engine running", krav: "kommentar" }, ], }, ], @@ -423,48 +440,48 @@ export const KYLSYSTEM = { export const DRIVLINA = { id: "drivlina", - namn: "Växellåda och drivlina", - omrade: "Drivlina", - nyckelord: ["växellåda", "växlar", "koppling", "automatlåda", "rycker vid växling", "slir", "drivknut", "kardan", "differential", "kärvar i växeln"], + namn: "Transmission and driveline", + omrade: "Driveline", + nyckelord: ["växellåda", "växlar", "koppling", "automatlåda", "rycker vid växling", "slir", "drivknut", "kardan", "differential", "kärvar i växeln", "gearbox", "transmission", "shift", "clutch", "automatic", "jerks when shifting", "slip", "drive joint", "propshaft", "sticks in gear"], steg: [ { id: "symptom", - rubrik: "Verifiera symptom", + rubrik: "Verify the symptom", fragor: [ { id: "karaktar", - text: "Hur yttrar sig felet?", + text: "How does the fault present?", svarstyp: "val", - val: ["Slirar", "Rycker vid växling", "Går inte i växel", "Missljud", "Vibration vid acceleration", "Läckage"], + val: ["Slips", "Jerks when shifting", "Will not engage a gear", "Abnormal noise", "Vibration under acceleration", "Leakage"], }, - { id: "vaxel", text: "Vilken växel eller vilket varvtal?", svarstyp: "text" }, - { id: "kall_varm", text: "Kall eller varm låda?", svarstyp: "val", val: ["Kall", "Varm", "Ingen skillnad"] }, + { id: "vaxel", text: "Which gear or engine speed?", svarstyp: "text" }, + { id: "kall_varm", text: "Cold or warm transmission?", svarstyp: "val", val: ["Cold", "Warm", "No difference"] }, ], }, { id: "visuell", - rubrik: "Visuell kontroll", + rubrik: "Visual inspection", kontroller: [ - { id: "olja", text: "Kontrollera oljenivå och oljans skick — fotografera", krav: "foto" }, - { id: "lackage", text: "Kontrollera läckage vid tätningar och sump", krav: "kommentar" }, - { id: "fasten", text: "Kontrollera växellådsfästen", krav: "kommentar" }, + { id: "olja", text: "Check the oil level and the oil's condition — photograph", krav: "foto" }, + { id: "lackage", text: "Check for leaks at seals and the sump", krav: "kommentar" }, + { id: "fasten", text: "Check the transmission mounts", krav: "kommentar" }, ], }, { id: "matningar", - rubrik: "Mätningar och avläsning", + rubrik: "Measurements and readout", kontroller: [ - { id: "dtc", text: "Läs felkoder ur växellådsstyrenheten", krav: "foto" }, - { id: "adaptioner", text: "Dokumentera adaptionsvärden och kopplingsslitage", krav: "matvarde" }, - { id: "oljetemp", text: "Mät oljetemperatur under provkörning", krav: "matvarde" }, + { id: "dtc", text: "Read fault codes from the transmission control unit", krav: "foto" }, + { id: "adaptioner", text: "Document adaptation values and clutch wear", krav: "matvarde" }, + { id: "oljetemp", text: "Measure oil temperature during the road test", krav: "matvarde" }, ], }, { id: "provkorning", - rubrik: "Provkörning", + rubrik: "Road test", kontroller: [ - { id: "vaxlingspunkter", text: "Dokumentera växlingspunkter och beteende", krav: "kommentar" }, - { id: "belastning", text: "Provkör under belastning där felet uppträder", krav: "kommentar" }, + { id: "vaxlingspunkter", text: "Document shift points and behaviour", krav: "kommentar" }, + { id: "belastning", text: "Road test under the load where the fault appears", krav: "kommentar" }, ], }, ], @@ -472,51 +489,51 @@ export const DRIVLINA = { export const AVGAS_EMISSION = { id: "avgas_emission", - namn: "Avgassystem och emissioner", - omrade: "Motor", - nyckelord: ["partikelfilt", "dpf", "adblue", "katalysator", "lambda", "avgas", "emission", "rökutveckling", "svart rök", "blå rök", "os", "egr", "regenerer", "utsläpp"], + namn: "Exhaust system and emissions", + omrade: "Engine", + nyckelord: ["partikelfilt", "dpf", "adblue", "katalysator", "lambda", "avgas", "emission", "rökutveckling", "svart rök", "blå rök", "os", "egr", "regenerer", "utsläpp", "particulate filt", "catalyst", "exhaust", "smoke", "black smoke", "blue smoke", "regenerat"], steg: [ { id: "symptom", - rubrik: "Verifiera symptom", + rubrik: "Verify the symptom", fragor: [ { id: "karaktar", - text: "Hur yttrar sig felet?", + text: "How does the fault present?", svarstyp: "val", - val: ["Varningslampa", "Rök", "Effektbegränsning", "Lukt", "Underkänd besiktning"], + val: ["Warning lamp", "Smoke", "Power limitation", "Odour", "Failed inspection"], }, - { id: "rokfarg", text: "Om rök — vilken färg och när?", svarstyp: "text" }, - { id: "korprofil", text: "Beskriv fordonets körprofil (mest kort- eller långkörning)?", svarstyp: "text" }, + { id: "rokfarg", text: "If smoke — what colour and when?", svarstyp: "text" }, + { id: "korprofil", text: "Describe the vehicle's usage profile (mostly short or long journeys)?", svarstyp: "text" }, ], }, { id: "avlasning", - rubrik: "Avläsning", + rubrik: "Readout", kontroller: [ - { id: "dtc", text: "Läs felkoder — fotografera diagnosskärmen", krav: "foto" }, - { id: "sotmangd", text: "Läs beräknad och uppmätt sotmängd i partikelfiltret", krav: "matvarde" }, - { id: "regenerering", text: "Dokumentera antal och utfall av senaste regenereringar", krav: "kommentar" }, - { id: "lambda", text: "Läs lambdagivarnas signaler före och efter katalysator", krav: "matvarde" }, + { id: "dtc", text: "Read fault codes — photograph the diagnostic screen", krav: "foto" }, + { id: "sotmangd", text: "Read the calculated and measured soot load in the particulate filter", krav: "matvarde" }, + { id: "regenerering", text: "Document the number and outcome of the most recent regenerations", krav: "kommentar" }, + { id: "lambda", text: "Read the lambda sensor signals before and after the catalyst", krav: "matvarde" }, ], }, { id: "matningar", - rubrik: "Mätningar", + rubrik: "Measurements", kontroller: [ - { id: "mottryck", text: "Mät avgasmottryck", krav: "matvarde" }, - { id: "differenstryck", text: "Mät differenstryck över partikelfiltret", krav: "matvarde" }, - { id: "adblue_niva", text: "Kontrollera AdBlue-nivå och kvalitet där sådant finns", krav: "matvarde" }, - { id: "egr", text: "Kontrollera EGR-ventilens funktion och läge", krav: "matvarde" }, + { id: "mottryck", text: "Measure exhaust back pressure", krav: "matvarde" }, + { id: "differenstryck", text: "Measure differential pressure across the particulate filter", krav: "matvarde" }, + { id: "adblue_niva", text: "Check AdBlue level and quality where fitted", krav: "matvarde" }, + { id: "egr", text: "Check the EGR valve's function and position", krav: "matvarde" }, ], }, { id: "orsak", - rubrik: "Bakomliggande orsak", - beskrivning: "Ett igensatt filter är oftast en följd, inte orsaken. Dokumentera vad som skapade sotet.", + rubrik: "Underlying cause", + beskrivning: "A blocked filter is usually a consequence, not the cause. Document what produced the soot.", kontroller: [ - { id: "grundorsak", text: "Kontrollera insprutning, turbo och luftflöde", krav: "kommentar" }, - { id: "korstrackor", text: "Bedöm om körprofilen tillåter regenerering", krav: "kommentar" }, + { id: "grundorsak", text: "Check injection, turbocharger and air flow", krav: "kommentar" }, + { id: "korstrackor", text: "Assess whether the usage profile allows regeneration", krav: "kommentar" }, ], }, ], @@ -524,49 +541,49 @@ export const AVGAS_EMISSION = { export const KLIMAT = { id: "klimat", - namn: "Klimatanläggning", - omrade: "Komfort", - nyckelord: ["ac", "luftkonditionering", "klimatanläggning", "kyler inte", "kompressor", "köldmedi", "imma", "immig", "fläkt", "lukt i kupén", "värmepaket"], + namn: "Climate system", + omrade: "Comfort", + nyckelord: ["ac", "luftkonditionering", "klimatanläggning", "kyler inte", "kompressor", "köldmedi", "imma", "immig", "fläkt", "lukt i kupén", "värmepaket", "air conditioning", "climate", "no cooling", "compressor", "refrigerant", "misting", "fan", "smell in the cabin", "heater matrix"], steg: [ { id: "symptom", - rubrik: "Verifiera symptom", + rubrik: "Verify the symptom", fragor: [ { id: "karaktar", - text: "Hur yttrar sig felet?", + text: "How does the fault present?", svarstyp: "val", - val: ["Kyler inte alls", "Kyler dåligt", "Kyler ibland", "Missljud", "Lukt", "Imma på rutorna"], + val: ["No cooling at all", "Cools poorly", "Cools intermittently", "Abnormal noise", "Odour", "Misting on the windows"], }, - { id: "sidor", text: "Skiljer det mellan höger och vänster sida?", svarstyp: "janej" }, - { id: "service", text: "När utfördes AC-service senast?", svarstyp: "text" }, + { id: "sidor", text: "Does it differ between the right and left sides?", svarstyp: "janej" }, + { id: "service", text: "When was the AC last serviced?", svarstyp: "text" }, ], }, { id: "visuell", - rubrik: "Visuell kontroll", + rubrik: "Visual inspection", kontroller: [ - { id: "kondensor", text: "Fotografera kondensorn — kontrollera igensättning och skador", krav: "foto" }, - { id: "kupefilter", text: "Kontrollera kupéfiltret", krav: "foto" }, - { id: "kompressor_rem", text: "Kontrollera kompressorns drivning och magnetkoppling", krav: "kommentar" }, + { id: "kondensor", text: "Photograph the condenser — check for blockage and damage", krav: "foto" }, + { id: "kupefilter", text: "Check the cabin filter", krav: "foto" }, + { id: "kompressor_rem", text: "Check the compressor drive and the magnetic clutch", krav: "kommentar" }, ], }, { id: "matningar", - rubrik: "Mätningar", + rubrik: "Measurements", kontroller: [ - { id: "tryck", text: "Mät hög- och lågtryck vid känd omgivningstemperatur", krav: "matvarde" }, - { id: "utblastemp", text: "Mät utblåstemperatur vid mittre munstycke", krav: "matvarde" }, - { id: "mangd", text: "Väg upptagen köldmediemängd vid tömning", krav: "matvarde" }, - { id: "lackagesok", text: "Läcksök med spårgas eller UV", krav: "kommentar" }, + { id: "tryck", text: "Measure high and low pressure at a known ambient temperature", krav: "matvarde" }, + { id: "utblastemp", text: "Measure the outlet temperature at the centre vent", krav: "matvarde" }, + { id: "mangd", text: "Weigh the refrigerant recovered when evacuating", krav: "matvarde" }, + { id: "lackagesok", text: "Trace the leak with tracer gas or UV", krav: "kommentar" }, ], }, { id: "styrning", - rubrik: "Styrning", + rubrik: "Steering", kontroller: [ - { id: "dtc", text: "Läs felkoder ur klimatstyrenheten", krav: "foto" }, - { id: "spjall", text: "Kontrollera spjällmotorernas rörelse", krav: "kommentar" }, + { id: "dtc", text: "Read fault codes from the climate control unit", krav: "foto" }, + { id: "spjall", text: "Check the movement of the flap actuators", krav: "kommentar" }, ], }, ], @@ -574,59 +591,59 @@ export const KLIMAT = { export const HOGVOLT = { id: "hogvolt", - namn: "Högvoltsystem — elbil och hybrid", - omrade: "Högvolt", - nyckelord: ["högvolt", "elbil", "hybrid", "traktionsbatteri", "hv", "laddning av bil", "räckvidd", "laddbox", "orange kabel", "sköldpadda"], + namn: "High-voltage system — electric and hybrid", + omrade: "High voltage", + nyckelord: ["högvolt", "elbil", "hybrid", "traktionsbatteri", "hv", "laddning av bil", "räckvidd", "laddbox", "orange kabel", "sköldpadda", "pulls", "steering", "steering wheel", "play", "damper", "shock absorber", "spring", "suspension", "wheel alignment", "tracking", "wallow", "clunk in corners", "power steering", "high voltage", "high-voltage", "ev", "electric vehicle", "traction battery", "charging the car", "range", "wallbox", "orange cable", "turtle"], steg: [ { id: "sakerhet", - rubrik: "Säkerhet — utförs först", + rubrik: "Safety — performed first", beskrivning: - "Högvoltsystem kan vara livsfarliga. Inget arbete på systemet påbörjas innan stegen nedan är dokumenterade. Kräver behörighet för arbete på högvoltsystem.", + "High-voltage systems can be lethal. No work on the system begins until the steps below are documented. Requires authorisation for work on high-voltage systems.", fragor: [ - { id: "behorighet", text: "Har du behörighet för arbete på högvoltsystem?", svarstyp: "janej" }, - { id: "avstangt", text: "Är fordonet spänningslöst enligt tillverkarens rutin?", svarstyp: "janej" }, + { id: "behorighet", text: "Are you authorised to work on high-voltage systems?", svarstyp: "janej" }, + { id: "avstangt", text: "Is the vehicle de-energised per the manufacturer's procedure?", svarstyp: "janej" }, ], kontroller: [ - { id: "service_disconnect", text: "Dokumentera att servicebrytaren är urtagen och säkrad", krav: "foto" }, - { id: "vantetid", text: "Dokumentera väntetid enligt tillverkarens anvisning", krav: "kommentar" }, - { id: "spanningsfrihet", text: "Mät och dokumentera spänningsfrihet före ingrepp", krav: "matvarde" }, - { id: "skyddsutrustning", text: "Dokumentera använd skyddsutrustning och avspärrning", krav: "foto" }, + { id: "service_disconnect", text: "Document that the service disconnect is removed and secured", krav: "foto" }, + { id: "vantetid", text: "Document the waiting time per the manufacturer's instruction", krav: "kommentar" }, + { id: "spanningsfrihet", text: "Measure and document the absence of voltage before any work", krav: "matvarde" }, + { id: "skyddsutrustning", text: "Document the protective equipment used and the area cordoned off", krav: "foto" }, ], }, { id: "symptom", - rubrik: "Verifiera symptom", + rubrik: "Verify the symptom", fragor: [ { id: "karaktar", - text: "Hur yttrar sig felet?", + text: "How does the fault present?", svarstyp: "val", - val: ["Laddar inte", "Kortare räckvidd", "Effektbegränsning", "Varningsmeddelande", "Fordonet startar inte"], + val: ["Will not charge", "Reduced range", "Power limitation", "Varningsmeddelande", "The vehicle will not start"], }, - { id: "laddtyp", text: "Vid vilken laddning uppträder felet (AC, DC, vilken laddpunkt)?", svarstyp: "text" }, - { id: "temperatur", text: "Vid vilken omgivnings- och batteritemperatur?", svarstyp: "text" }, + { id: "laddtyp", text: "At which charge type does the fault appear (AC, DC, which charge point)?", svarstyp: "text" }, + { id: "temperatur", text: "At what ambient and battery temperature?", svarstyp: "text" }, ], }, { id: "avlasning", - rubrik: "Avläsning", - beskrivning: "Utförs med diagnosverktyg — inga ingrepp i systemet krävs.", + rubrik: "Readout", + beskrivning: "Performed with a diagnostic tool — no intervention in the system is required.", kontroller: [ - { id: "dtc", text: "Läs felkoder ur samtliga högvoltstyrenheter", krav: "foto" }, - { id: "soh", text: "Läs batteriets hälsa (SOH) och laddnivå (SOC)", krav: "matvarde" }, - { id: "cellspanning", text: "Läs cellspänningar och dokumentera största avvikelse", krav: "matvarde" }, - { id: "isolationsvarde", text: "Läs systemets isolationsvärde", krav: "matvarde" }, - { id: "temperaturer", text: "Läs batteriets temperaturgivare", krav: "matvarde" }, + { id: "dtc", text: "Read fault codes from every high-voltage control unit", krav: "foto" }, + { id: "soh", text: "Read the battery's state of health (SOH) and state of charge (SOC)", krav: "matvarde" }, + { id: "cellspanning", text: "Read cell voltages and document the largest deviation", krav: "matvarde" }, + { id: "isolationsvarde", text: "Read the system's insulation value", krav: "matvarde" }, + { id: "temperaturer", text: "Read the battery temperature sensors", krav: "matvarde" }, ], }, { id: "laddning", - rubrik: "Laddkedjan", + rubrik: "Charging chain", kontroller: [ - { id: "laddkabel", text: "Kontrollera laddkabel och laddkontakt — fotografera stiften", krav: "foto" }, - { id: "laddlogg", text: "Läs laddhistorik och avbrottsorsaker", krav: "kommentar" }, - { id: "extern", text: "Testa mot annan laddpunkt för att utesluta yttre orsak", krav: "kommentar" }, + { id: "laddkabel", text: "Check the charging cable and connector — photograph the pins", krav: "foto" }, + { id: "laddlogg", text: "Read the charging history and the reasons for interruptions", krav: "kommentar" }, + { id: "extern", text: "Test against another charge point to rule out an external cause", krav: "kommentar" }, ], }, ], @@ -634,50 +651,50 @@ export const HOGVOLT = { export const DIAGNOS_NATVERK = { id: "diagnos_natverk", - namn: "Felkoder och kommunikation", - omrade: "Diagnos", - nyckelord: ["felkod", "dtc", "can", "canbuss", "kommunikationsfel", "ingen kontakt", "styrenhet", "obd", "diagnos", "flera lampor"], + namn: "Fault codes and communication", + omrade: "Diagnostics", + nyckelord: ["felkod", "dtc", "can", "canbuss", "kommunikationsfel", "ingen kontakt", "styrenhet", "obd", "diagnos", "flera lampor", "fault code", "can bus", "communication fault", "no communication", "control unit", "ecu", "several lamps"], steg: [ { id: "symptom", - rubrik: "Verifiera symptom", + rubrik: "Verify the symptom", fragor: [ { id: "omfattning", - text: "Hur många system är berörda?", + text: "How many systems are affected?", svarstyp: "val", - val: ["En styrenhet", "Flera styrenheter", "Hela fordonet", "Endast diagnosverktyget"], + val: ["One control unit", "Several control units", "The whole vehicle", "The diagnostic tool only"], }, - { id: "nar", text: "Uppstod felet efter ingrepp, batteribyte eller uppdatering?", svarstyp: "text" }, + { id: "nar", text: "Did the fault appear after work, a battery change or an update?", svarstyp: "text" }, ], }, { id: "grund", - rubrik: "Grundförutsättningar", - beskrivning: "Kommunikationsfel beror oftare på matning och jord än på styrenheten.", + rubrik: "Basic preconditions", + beskrivning: "Communication faults are more often due to supply and earth than to the control unit.", kontroller: [ - { id: "batteri", text: "Mät batterispänning under avläsning", krav: "matvarde" }, - { id: "obd_matning", text: "Mät matning och jord i diagnosuttaget", krav: "matvarde" }, - { id: "sakringar", text: "Kontrollera säkringar till berörda styrenheter", krav: "kommentar" }, + { id: "batteri", text: "Measure battery voltage during the readout", krav: "matvarde" }, + { id: "obd_matning", text: "Measure supply and earth at the diagnostic socket", krav: "matvarde" }, + { id: "sakringar", text: "Check the fuses for the control units concerned", krav: "kommentar" }, ], }, { id: "buss", - rubrik: "Bussmätning", + rubrik: "Bus measurement", kontroller: [ - { id: "terminering", text: "Mät bussens termineringsresistans med systemet spänningslöst", krav: "matvarde" }, - { id: "bussignal", text: "Mät CAN-signalen med oscilloskop — fotografera kurvan", krav: "foto" }, - { id: "avdelning", text: "Dela av bussen för att lokalisera störande nod", krav: "kommentar" }, + { id: "terminering", text: "Measure the bus termination resistance with the system de-energised", krav: "matvarde" }, + { id: "bussignal", text: "Measure the CAN signal with an oscilloscope — photograph the trace", krav: "foto" }, + { id: "avdelning", text: "Split the bus to localize the disturbing node", krav: "kommentar" }, ], }, { id: "koder", - rubrik: "Felkoder i sammanhang", - beskrivning: "En felkod pekar på en krets, inte på en trasig komponent. Läs alla system innan någon kod raderas.", + rubrik: "Fault codes in context", + beskrivning: "A fault code points to a circuit, not to a broken component. Read every system before any code is cleared.", kontroller: [ - { id: "helavlasning", text: "Läs samtliga styrenheter — fotografera listan", krav: "foto" }, - { id: "frysdata", text: "Dokumentera frysramsdata innan radering", krav: "kommentar" }, - { id: "efter_radering", text: "Radera, provkör och dokumentera vilka koder som återkom", krav: "kommentar" }, + { id: "helavlasning", text: "Read every control unit — photograph the list", krav: "foto" }, + { id: "frysdata", text: "Document the freeze frame data before clearing", krav: "kommentar" }, + { id: "efter_radering", text: "Clear, road test, and document which codes returned", krav: "kommentar" }, ], }, ], @@ -685,41 +702,41 @@ export const DIAGNOS_NATVERK = { export const LACKAGE = { id: "lackage", - namn: "Läckage", - omrade: "Övrigt", - nyckelord: ["läck", "läckage", "oljefläck", "dropp", "vatten i bilen", "fukt", "blöt matta", "oljeförbrukning"], + namn: "Leakage", + omrade: "General", + nyckelord: ["läck", "läckage", "oljefläck", "dropp", "vatten i bilen", "fukt", "blöt matta", "oljeförbrukning", "leak", "leakage", "oil stain", "drip", "water in the car", "damp", "wet carpet", "oil consumption"], steg: [ { id: "symptom", - rubrik: "Verifiera symptom", + rubrik: "Verify the symptom", fragor: [ { id: "vatska", - text: "Vilken vätska misstänks?", + text: "Which fluid is suspected?", svarstyp: "val", - val: ["Motorolja", "Kylvätska", "Växellådsolja", "Bromsvätska", "Bränsle", "Vatten/kondens", "Okänt"], + val: ["Engine oil", "Coolant", "Transmission oil", "Brake fluid", "Fuel", "Water or condensation", "Unknown"], }, - { id: "mangd", text: "Hur mycket och hur ofta?", svarstyp: "text" }, - { id: "plats", text: "Var på marken syns fläcken i förhållande till fordonet?", svarstyp: "text" }, + { id: "mangd", text: "How much and how often?", svarstyp: "text" }, + { id: "plats", text: "Where on the ground is the stain relative to the vehicle?", svarstyp: "text" }, ], }, { id: "visuell", - rubrik: "Lokalisering", - beskrivning: "Rengör först. Ett gammalt läckage döljer var det nya kommer ifrån.", + rubrik: "Localization", + beskrivning: "Clean first. An old leak hides where the new one comes from.", kontroller: [ - { id: "foto_fore", text: "Fotografera området före rengöring", krav: "foto" }, - { id: "rengoring", text: "Rengör området och dokumentera att det är torrt", krav: "foto" }, - { id: "provkorning", text: "Provkör eller låt gå och fotografera var vätskan uppträder", krav: "foto" }, + { id: "foto_fore", text: "Photograph the area before cleaning", krav: "foto" }, + { id: "rengoring", text: "Clean the area and document that it is dry", krav: "foto" }, + { id: "provkorning", text: "Road test, or let it run, and photograph where the fluid appears", krav: "foto" }, ], }, { id: "metod", - rubrik: "Läcksökning", + rubrik: "Leak tracing", kontroller: [ - { id: "uv", text: "Läcksök med UV-spårämne där det är tillämpligt", krav: "kommentar" }, - { id: "trycktest", text: "Trycktesta systemet", krav: "matvarde" }, - { id: "niva", text: "Mät nivåförändring över tid", krav: "matvarde" }, + { id: "uv", text: "Leak test with UV dye where applicable", krav: "kommentar" }, + { id: "trycktest", text: "Pressure test the system", krav: "matvarde" }, + { id: "niva", text: "Measure the change in level over time", krav: "matvarde" }, ], }, ], @@ -727,47 +744,47 @@ export const LACKAGE = { export const MISSLJUD = { id: "missljud", - namn: "Missljud", - omrade: "Övrigt", - nyckelord: ["missljud", "ljud", "knack", "gnissel", "gnissl", "vinande", "brumm", "skram", "väsande", "tjut"], + namn: "Abnormal noise", + omrade: "General", + nyckelord: ["missljud", "ljud", "knack", "gnissel", "gnissl", "vinande", "brumm", "skram", "väsande", "tjut", "noise", "sound", "knock", "squeak", "squeal", "whine", "drone", "rattle", "hiss", "screech"], steg: [ { id: "symptom", - rubrik: "Verifiera symptom", - beskrivning: "Ett missljud som inte reproducerats går inte att åtgärda. Spela in det.", + rubrik: "Verify the symptom", + beskrivning: "An abnormal noise that has not been reproduced cannot be repaired. Record it.", fragor: [ { id: "karaktar", - text: "Vilken karaktär har ljudet?", + text: "What is the character of the noise?", svarstyp: "val", - val: ["Knack", "Gnissel", "Vinande", "Brummande", "Skrammel", "Väsande", "Tjut"], + val: ["Knock", "Squeal", "Whine", "Drone", "Rattle", "Hissing", "Screech"], }, { id: "nar", - text: "När hörs det?", + text: "When is it heard?", svarstyp: "val", - val: ["Vid start", "Vid tomgång", "Under körning", "Vid inbromsning", "Vid kurvtagning", "Över ojämnheter"], + val: ["On starting", "At idle", "While driving", "Under braking", "When cornering", "Over bumps"], }, - { id: "beroende", text: "Följer ljudet varvtal eller hastighet?", svarstyp: "val", val: ["Varvtal", "Hastighet", "Ingetdera"] }, - { id: "temperatur", text: "Skillnad kallt mot varmt?", svarstyp: "text" }, + { id: "beroende", text: "Does the noise follow engine speed or road speed?", svarstyp: "val", val: ["Engine speed", "Road speed", "Neither"] }, + { id: "temperatur", text: "Any difference cold versus warm?", svarstyp: "text" }, ], }, { id: "inspelning", - rubrik: "Dokumentera ljudet", - beskrivning: "Video med ljud är evidens. En beskrivning i text är det inte.", + rubrik: "Document the noise", + beskrivning: "Video with sound is evidence. A description in text is not.", kontroller: [ - { id: "video", text: "Spela in ljudet med video under de förhållanden där det uppträder", krav: "foto" }, - { id: "forhallanden", text: "Dokumentera hastighet, varvtal och underlag vid inspelningen", krav: "kommentar" }, + { id: "video", text: "Record the noise on video under the conditions in which it occurs", krav: "foto" }, + { id: "forhallanden", text: "Document road speed, engine speed and surface during the recording", krav: "kommentar" }, ], }, { id: "lokalisering", - rubrik: "Lokalisering", + rubrik: "Localization", kontroller: [ - { id: "stetoskop", text: "Lokalisera med stetoskop eller ljudsond", krav: "kommentar" }, - { id: "avlastning", text: "Kontrollera om ljudet ändras vid avlastning eller belastning", krav: "kommentar" }, - { id: "uteslutning", text: "Dokumentera vilka källor som uteslutits och hur", krav: "kommentar" }, + { id: "stetoskop", text: "Localize with a stethoscope or sound probe", krav: "kommentar" }, + { id: "avlastning", text: "Check whether the noise changes when unloaded or loaded", krav: "kommentar" }, + { id: "uteslutning", text: "Document which sources were ruled out, and how", krav: "kommentar" }, ], }, ], @@ -775,43 +792,43 @@ export const MISSLJUD = { export const ADAS = { id: "adas", - namn: "Förarassistans och kalibrering", - omrade: "Diagnos", - nyckelord: ["adas", "kamera", "radar", "filhållning", "adaptiv farthållare", "kalibrer", "vindruta", "parkeringssensor", "döda vinkeln", "nödbroms"], + namn: "Driver assistance and calibration", + omrade: "Diagnostics", + nyckelord: ["adas", "kamera", "radar", "filhållning", "adaptiv farthållare", "kalibrer", "vindruta", "parkeringssensor", "döda vinkeln", "nödbroms", "camera", "lane keep", "adaptive cruise", "calibrat", "windscreen", "windshield", "parking sensor", "blind spot", "emergency brak"], steg: [ { id: "symptom", - rubrik: "Verifiera symptom", + rubrik: "Verify the symptom", fragor: [ { id: "funktion", - text: "Vilken funktion felar?", + text: "Which function is faulty?", svarstyp: "val", - val: ["Filhållning", "Adaptiv farthållare", "Automatisk nödbroms", "Döda vinkeln", "Parkeringshjälp", "Backkamera"], + val: ["Lane keeping", "Adaptive cruise control", "Automatic emergency braking", "Blind spot", "Parking aid", "Reversing camera"], }, - { id: "ingrepp", text: "Har vindruta, kaross eller fjädring åtgärdats nyligen?", svarstyp: "text" }, - { id: "forhallanden", text: "Uppträder felet i visst väder eller ljus?", svarstyp: "text" }, + { id: "ingrepp", text: "Have the windscreen, body or suspension been worked on recently?", svarstyp: "text" }, + { id: "forhallanden", text: "Does the fault appear in particular weather or light?", svarstyp: "text" }, ], }, { id: "forutsattningar", - rubrik: "Förutsättningar för kalibrering", + rubrik: "Preconditions for calibration", beskrivning: - "En kalibrering på fel förutsättningar ger ett fel som ser åtgärdat ut. Dokumentera att kraven är uppfyllda innan den utförs.", + "A calibration performed under the wrong preconditions produces a fault that looks repaired. Document that the requirements are met before it is carried out.", kontroller: [ - { id: "dtc", text: "Läs felkoder ur berörda styrenheter", krav: "foto" }, - { id: "hjulinstallning", text: "Kontrollera hjulinställning — bakaxelns spårning påverkar kameran", krav: "matvarde" }, - { id: "dacktryck", text: "Kontrollera däcktryck och körhöjd", krav: "matvarde" }, - { id: "sikt", text: "Kontrollera kamerans och radarns siktfält för smuts eller skada", krav: "foto" }, - { id: "yta", text: "Dokumentera att kalibreringsytan uppfyller kraven på planhet och ljus", krav: "foto" }, + { id: "dtc", text: "Read fault codes from the control units concerned", krav: "foto" }, + { id: "hjulinstallning", text: "Check wheel alignment — rear axle tracking affects the camera", krav: "matvarde" }, + { id: "dacktryck", text: "Check tyre pressure and ride height", krav: "matvarde" }, + { id: "sikt", text: "Check the camera's and radar's field of view for dirt or damage", krav: "foto" }, + { id: "yta", text: "Document that the calibration area meets the requirements for flatness and lighting", krav: "foto" }, ], }, { id: "kalibrering", - rubrik: "Kalibrering", + rubrik: "Calibration", kontroller: [ - { id: "utford", text: "Utför kalibrering enligt tillverkarens metod — fotografera resultatet", krav: "foto" }, - { id: "provkorning", text: "Provkör och verifiera funktionen under de förhållanden felet uppträdde", krav: "kommentar" }, + { id: "utford", text: "Perform the calibration by the manufacturer's method — photograph the result", krav: "foto" }, + { id: "provkorning", text: "Road test and verify the function under the conditions in which the fault appeared", krav: "kommentar" }, ], }, ], @@ -819,63 +836,63 @@ export const ADAS = { export const GENERISK = { id: "generisk", - namn: "Generell strukturerad felsökning", - omrade: "Övrigt", + namn: "General structured diagnosis", + omrade: "General", nyckelord: [], steg: [ { id: "symptom", - rubrik: "Verifiera symptom", + rubrik: "Verify the symptom", fragor: [ - { id: "reproducerbart", text: "Går felet att reproducera?", svarstyp: "janej" }, + { id: "reproducerbart", text: "Can the fault be reproduced?", svarstyp: "janej" }, { id: "nar", - text: "När uppträder felet?", + text: "When does the fault appear?", svarstyp: "val", - val: ["Alltid", "Ibland", "Endast under drift", "Endast vid start"], + val: ["Always", "Intermittently", "Only while running", "Only when starting"], }, { id: "var", - text: "Var upplevs felet?", + text: "Where is the fault experienced?", svarstyp: "val", - val: ["Fram", "Bak", "Höger", "Vänster", "Motor/drivkälla", "Kupé/förarplats", "Okänt"], + val: ["Front", "Rear", "Right", "Left", "Engine and power source", "Cabin and driver's position", "Unknown"], }, { id: "hur", - text: "Hur upplevs felet?", + text: "How is the fault experienced?", svarstyp: "val", - val: ["Skakar/vibrerar", "Missljud (knack/gnissel/vinande)", "Rycker", "Tappar kraft", "Stannar helt", "Annat"], + val: ["Shakes or vibrates", "Abnormal noise (knock, squeal, whine)", "Jerking", "Loses power", "Stalls completely", "Other"], }, - { id: "forlopp", text: "Beskriv förloppet när felet uppstår", svarstyp: "text" }, - { id: "forandring", text: "Har något förändrats nyligen (service, reparation, miljö)?", svarstyp: "text" }, + { id: "forlopp", text: "Describe the sequence when the fault occurs", svarstyp: "text" }, + { id: "forandring", text: "Has anything changed recently (service, repair, environment)?", svarstyp: "text" }, ], }, { id: "visuell", - rubrik: "Visuell kontroll", + rubrik: "Visual inspection", kontroller: [ - { id: "foto_objekt", text: "Fotografera objektet och det berörda området", krav: "foto" }, - { id: "skador", text: "Kontrollera synliga skador, läckage eller lösa anslutningar", krav: "kommentar" }, - { id: "typskylt", text: "Dokumentera typskylt/märkning", krav: "foto" }, + { id: "foto_objekt", text: "Photograph the object and the area concerned", krav: "foto" }, + { id: "skador", text: "Check for visible damage, leaks or loose connections", krav: "kommentar" }, + { id: "typskylt", text: "Document the type plate or marking", krav: "foto" }, ], }, { id: "grundkontroller", - rubrik: "Grundkontroller", + rubrik: "Basic checks", kontroller: [ { id: "matning", - text: "Utför grundläggande mätningar (spänning, tryck, temperatur — det som är relevant)", + text: "Take basic measurements (voltage, pressure, temperature — whatever is relevant)", krav: "matvarde", }, - { id: "sakringar", text: "Kontrollera säkringar/skydd", krav: "kommentar" }, - { id: "anslutningar", text: "Kontrollera kontaktdon och anslutningar", krav: "kommentar" }, + { id: "sakringar", text: "Check fuses and protective devices", krav: "kommentar" }, + { id: "anslutningar", text: "Check connectors and terminations", krav: "kommentar" }, ], }, { id: "funktionstest", - rubrik: "Funktionstest", - kontroller: [{ id: "test", text: "Genomför funktionstest och dokumentera resultatet", krav: "kommentar" }], + rubrik: "Function test", + kontroller: [{ id: "test", text: "Perform a function test and document the result", krav: "kommentar" }], }, ], };