Metodikerna på engelska — och nyckelorden på båda språken

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 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt
This commit is contained in:
Claude
2026-08-06 18:17:06 +00:00
parent 8aae3a2a97
commit aba9b50c52
8 changed files with 462 additions and 435 deletions
@@ -18,8 +18,8 @@ describe("demoärendet", () => {
it("lämnar kontroller kvar så att guiden kan fortsätta i demon", () => { it("lämnar kontroller kvar så att guiden kan fortsätta i demon", () => {
const b = brief(arende, VIBRATION_METODIK); const b = brief(arende, VIBRATION_METODIK);
expect(b.ejKontrollerat).toContain("Kontrollera radial- och sidokast"); expect(b.ejKontrollerat).toContain("Check radial and lateral runout");
expect(b.ejKontrollerat).toContain("Förändring vid kurvtagning"); expect(b.ejKontrollerat).toContain("Change when cornering");
expect(b.rekommenderatNastaSteg.length).toBeGreaterThan(0); expect(b.rekommenderatNastaSteg.length).toBeGreaterThan(0);
}); });
@@ -87,7 +87,7 @@ describe("Evidence Engine", () => {
const poster = evidensposter(arende); const poster = evidensposter(arende);
expect(poster).toHaveLength(2); expect(poster).toHaveLength(2);
expect(poster[0].niva).toBe("E2"); 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].tekniker).toBe("Anna");
expect(poster[0].hash).toMatch(/^[0-9a-f]{8}$/); expect(poster[0].hash).toMatch(/^[0-9a-f]{8}$/);
// Samma innehåll → samma hash (deterministisk spårbarhet). // Samma innehåll → samma hash (deterministisk spårbarhet).
@@ -69,7 +69,7 @@ describe("metodikbiblioteket", () => {
const krav = HOGVOLT.steg[0].kontroller ?? []; const krav = HOGVOLT.steg[0].kontroller ?? [];
expect(krav.some((k) => k.id === "spanningsfrihet" && k.krav === "matvarde")).toBe(true); expect(krav.some((k) => k.id === "spanningsfrihet" && k.krav === "matvarde")).toBe(true);
expect(krav.some((k) => k.id === "service_disconnect")).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);
}); });
}); });
@@ -101,17 +101,17 @@ describe("ejKontrollerat", () => {
it("krymper när kontroller utförs och härleds helt ur loggen", () => { it("krymper när kontroller utförs och härleds helt ur loggen", () => {
const utan = byggArende([["2026-08-02T08:00:00Z", OBJEKT]]); const utan = byggArende([["2026-08-02T08:00:00Z", OBJEKT]]);
const alla = ejKontrollerat(utan, VIBRATION_METODIK); const alla = ejKontrollerat(utan, VIBRATION_METODIK);
expect(alla).toContain("Kontrollera lufttryck"); expect(alla).toContain("Check tyre pressure");
const med = byggArende([ const med = byggArende([
["2026-08-02T08:00:00Z", OBJEKT], ["2026-08-02T08:00:00Z", OBJEKT],
[ [
"2026-08-02T08:15:00Z", "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); 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); 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:05:00Z", { typ: "felbeskrivning", text: "Bilen vibrerar runt 88 km/h" }],
[ [
"2026-08-02T08:11:00Z", "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: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" }], ["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"); const b = brief(arende, VIBRATION_METODIK, "2026-08-02T08:30:00Z");
expect(b.objekt?.identifierare).toBe("ABC123"); expect(b.objekt?.identifierare).toBe("ABC123");
expect(b.felbeskrivning).toBe("Bilen vibrerar runt 88 km/h"); 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("Höger framdäck visar ojämnt slitage");
expect(b.observationer).toContain("Matningsspänning: 13,9 V"); expect(b.observationer).toContain("Matningsspänning: 13,9 V");
expect(b.ejKontrollerat).toContain("Kontrollera hjulbalansering"); expect(b.ejKontrollerat).toContain("Check wheel balance");
expect(b.ejKontrollerat).not.toContain("Kontrollera lufttryck"); expect(b.ejKontrollerat).not.toContain("Check tyre pressure");
expect(b.rekommenderatNastaSteg[0]).toContain("hastighetsberoende"); expect(b.rekommenderatNastaSteg[0]).toContain("speed-dependent");
expect(b.totalArbetstid).toBe("27 min"); expect(b.totalArbetstid).toBe("27 min");
}); });
+54 -54
View File
@@ -54,7 +54,7 @@ function demoFoto(text: string): string {
// visa den praxis produkten kräver, inte den som fanns innan. // visa den praxis produkten kräver, inte den som fanns innan.
const DACKTRYCKSMATARE = { const DACKTRYCKSMATARE = {
matdonId: "demo-tryck-01", matdonId: "demo-tryck-01",
matdonBeteckning: "Däcktrycksmätare PCL DPG7", matdonBeteckning: "Tyre pressure gauge PCL DPG7",
matdonKalibreradTill: "2027-03-31", matdonKalibreradTill: "2027-03-31",
}; };
const BALANSMASKIN = { const BALANSMASKIN = {
@@ -83,71 +83,71 @@ export function byggDemoArende(nummer: number, anvandare = "Anna"): Arende {
arbetsorder: "AO-2496", 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 // Pre-diagnostiken: historik, ingående mätarställning, verifierad
// felbeskrivning och tidiga observationer — innan metodiken börjar. // 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(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: "Customer's fault description verified on receipt." }),
post(4, { typ: "kommentar", text: "Inga ytterligare observationer vid mottagandet." }), post(4, { typ: "kommentar", text: "No further observations on receipt." }),
post(4, { typ: "fraga_besvarad", stegId: "symptom", frageId: "hastighetsberoende", fraga: "Är vibrationen hastighetsberoende?", svar: "Ja" }), 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: "Var känns vibrationen?", svar: "I ratten" }), 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: "När uppstår vibrationen?", svar: "Vid jämn fart" }), 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: "Försvinner den över eller under ett visst hastighetsintervall?", svar: "Märks tydligast 8595 km/h, försvinner under 80" }), post(8, { typ: "fraga_besvarad", stegId: "symptom", frageId: "intervall", fraga: "Does it disappear above or below a certain speed range?", svar: "Most noticeable at 8595 km/h, disappears below 80" }),
post(12, { typ: "foto", beskrivning: "Fotografera vänster framhjul", dataUrl: demoFoto("Vänster framhjul") }), 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: "Fotografera vänster framhjul" }), post(12, { typ: "kontroll_utford", stegId: "visuell", kontrollId: "foto_vf", text: "Photograph the left front wheel" }),
post(14, { typ: "foto", beskrivning: "Fotografera höger framhjul", dataUrl: demoFoto("Höger framhjul") }), 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: "Fotografera höger framhjul" }), post(14, { typ: "kontroll_utford", stegId: "visuell", kontrollId: "foto_hf", text: "Photograph the right front wheel" }),
post(16, { typ: "foto", beskrivning: "Fotografera vänster bakhjul", dataUrl: demoFoto("Vänster bakhjul") }), 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: "Fotografera vänster bakhjul" }), post(16, { typ: "kontroll_utford", stegId: "visuell", kontrollId: "foto_vb", text: "Photograph the left rear wheel" }),
post(18, { typ: "foto", beskrivning: "Fotografera höger bakhjul", dataUrl: demoFoto("Höger bakhjul") }), 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: "Fotografera höger bakhjul" }), 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: "Fram: DOT 2318, bak: DOT 2318 — samtliga från vecka 23 2018" }), 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: "Höger framdäck visar ojämnt slitage på innerkanten" }), 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: "Kontrollera däckslitage", resultat: "Ojämnt slitage höger fram, övriga ok" }), 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: "Lufttryck vänster fram", varde: "2,4", enhet: "bar", ...DACKTRYCKSMATARE }), post(31, { typ: "matvarde", beskrivning: "Tyre pressure left front", varde: "2,4", enhet: "bar", ...DACKTRYCKSMATARE }),
post(32, { typ: "matvarde", beskrivning: "Lufttryck höger fram", varde: "2,1", 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: "VF 2,4 / HF 2,1 / VB 2,4 / HB 2,4 bar — justerat till 2,4 runtom" }), 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(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(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 8595 km/h, max vid 88" }), post(55, { typ: "kontroll_utford", stegId: "provkorning", kontrollId: "pk_hastighet", text: "Speed at which the vibration occurs", resultat: "Clear vibration at 8595 km/h, worst at 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(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: "Förändring vid motorbroms", resultat: "Ingen förändring vid motorbroms" }), 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: "Om vibration känns i ratt eller kaross", resultat: "Endast i ratten" }), 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(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(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: "Obalans höger framhjul", varde: "38", enhet: "g", ...BALANSMASKIN }), 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 obalans höger framen balansvikt saknas. Övriga hjul inom 5 g." }), post(83, { typ: "kontroll_utford", stegId: "kontroller", kontrollId: "balansering", text: "Kontrollera hjulbalansering", resultat: "38 g imbalance right fronta balance weight is missing. The other wheels within 5 g." }),
post(85, { typ: "observation", text: "Spår efter lossnad klistervikt på höger framfälgs insida" }), post(85, { typ: "observation", text: "Traces of a detached adhesive weight on the inner face of the right front rim" }),
post(85, { post(85, {
typ: "reproducering", typ: "reproducering",
status: "ja", 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, { post(86, {
typ: "felorsak", typ: "felorsak",
avvikelse: "Framhjulen uppvisar obalans (38 g höger fram). Ingen deformation av fälgar eller däck kunde konstateras.", avvikelse: "The front wheels show imbalance (38 g right front). No deformation of rims or tyres could be established.",
orsaker: ["Yttre påverkan"], orsaker: ["External influence"],
underlag: ["Mätresultat", "Foto", "Direkt observation"], underlag: ["Measurement result", "Foto", "Direkt observation"],
sakerhet: "medel", sakerhet: "medel",
atgard: "Balansera framhjulen och genomför ny provkörning i 80100 km/h.", atgard: "Balance the front wheels and perform a new road test at 80100 km/h.",
ytterligareKontroller: "Ny provkörning efter balansering bekräftar att symptomet är åtgärdat.", 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. // Exempel på AI-handledning, märkt "demo" — riktiga svar kräver API-nyckel.
post(86, { post(86, {
typ: "ai_svar", typ: "ai_svar",
rader: [ rader: [
{ typ: "verifierat", text: "Obalans uppmätt: 38 g höger framhjul. Övriga hjul inom tolerans." }, { typ: "verifierat", text: "Imbalance measured: 38 g right front wheel. The other wheels within tolerance." },
{ typ: "observation", text: "Spår efter lossnad klistervikt förklarar var vikten suttit — orsaken till obalansen är dock inte verifierad." }, { 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: "Balansera om hjulet och verifiera att symptomet försvinner innan ärendet avslutas." }, { 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 80100 km/h.", nastaSteg: "Rebalance the right front wheel and perform a new road test at 80100 km/h.",
modell: "demo", modell: "demo",
}), }),
post(86, { post(86, {
typ: "atgardsforslag", typ: "atgardsforslag",
beskrivning: "Balansera om höger framhjul och genomför ny provkörning i 80100 km/h.", beskrivning: "Rebalance the right front wheel and perform a new road test at 80100 km/h.",
uppskattadKostnad: "890 kr inkl. moms", uppskattadKostnad: "890 kr inkl. moms",
}), }),
post(87, { typ: "kategori_byte", kategori: "kundkontakt" }), post(87, { typ: "kategori_byte", kategori: "kundkontakt" }),
@@ -155,23 +155,23 @@ export function byggDemoArende(nummer: number, anvandare = "Anna"): Arende {
typ: "kundbeslut", typ: "kundbeslut",
beslut: "godkant", beslut: "godkant",
kanal: "Telefon", kanal: "Telefon",
kommentar: "Kunden godkände ombalansering.", kommentar: "The customer approved the rebalancing.",
}), }),
post(87, { typ: "kategori_byte", kategori: "aktiv_felsokning" }), post(87, { typ: "kategori_byte", kategori: "aktiv_felsokning" }),
post(87, { post(87, {
typ: "atgard_utford", 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", delar: "Balansvikter 40 g",
utford: true, utford: true,
}), }),
post(88, { post(88, {
typ: "kvalitetskontroll", typ: "kvalitetskontroll",
resultat: "symptomet_borta", resultat: "symptomet_borta",
beskrivning: "Ny provkörning 80110 km/h på samma vägsträcka — ingen vibration i ratten.", beskrivning: "New road test at 80110 km/h on the same stretch — no vibration in the steering wheel.",
}), }),
post(90, { typ: "overlamning", fran: anvandare, till: "Johan" }), post(90, { typ: "overlamning", fran: anvandare, till: "Johan" }),
post(92, { typ: "kategori_byte", kategori: "administration" }, "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 { 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: "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_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_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_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_arsmodell", etikett: "Model year", 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_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_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: "ao_serviceradgivare", etikett: "Service advisor", 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: "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 { return {
instrumenttyp: "multimeter", instrumenttyp: "multimeter",
varden: [ varden: [
{ beskrivning: "Batterispänning (vila)", varde: "12,4", enhet: "V", konfidens: 0.97 }, { beskrivning: "Battery voltage (at rest)", varde: "12,4", enhet: "V", konfidens: 0.97 },
{ beskrivning: "Spänning vid start", varde: "9,8", enhet: "V", konfidens: 0.84 }, { beskrivning: "Voltage during cranking", varde: "9,8", enhet: "V", konfidens: 0.84 },
], ],
}; };
} }
+10 -10
View File
@@ -92,7 +92,7 @@ export function evidensposter(arende: Arende): Evidenspost[] {
}); });
for (const post of arende.handelser) { for (const post of arende.handelser) {
const h = post.handelse; 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 === "video") lagg(post, "video", "E3", h.beskrivning);
if (h.typ === "matvarde") { if (h.typ === "matvarde") {
// Ett mätvärde är E4 bara när det går att visa vad som mätte och // 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 spårbar = Boolean(h.matdonId) && kalibreradVid(h.matdonKalibreradTill, post.tidpunkt);
const märkning = [ const märkning = [
h.matdonBeteckning h.matdonBeteckning
? `${h.matdonBeteckning}${spårbar ? "" : " — kalibrering saknas eller utgången"}` ? `${h.matdonBeteckning}${spårbar ? "" : " — calibration missing or expired"}`
: "instrument ej angivet", : "instrument not stated",
// Härkomsten står i rapporten, inte bara i loggen: den som läser // 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). // ska se att siffran är maskinläst utan att gräva (TÜV T-5).
h.kalla, h.kalla,
@@ -115,7 +115,7 @@ export function evidensposter(arende: Arende): Evidenspost[] {
.join("; "); .join("; ");
lagg( lagg(
post, post,
"mätvärde", "measurement",
spårbar ? "E4" : "E1", spårbar ? "E4" : "E1",
`${h.beskrivning} = ${h.varde}${h.enhet ? ` ${h.enhet}` : ""} (${märkning})`, `${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); const fotograferad = Boolean(h.bilagaId || h.dataUrl);
lagg( lagg(
post, post,
"mätarställning", "odometer",
fotograferad ? "E2" : "E1", 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 === "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; 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 { export function granskaAvvikelse(text: string): string | null {
const ren = text.trim(); const ren = text.trim();
if (ren.length < 20 || GENERISKA_FRASER.test(ren)) { 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; return null;
} }
@@ -673,7 +673,7 @@ export function kvalitetsgrind(arende: Arende, metodik: Metodik): GrindRad[] {
ok: !!beslut, ok: !!beslut,
kravs: utfordAtgard, kravs: utfordAtgard,
detalj: beslut 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.", : "A proposal has been given — record the customer's decision before the work is performed.",
}); });
if (beslut?.beslut === "avbojt" && utfordAtgard) { if (beslut?.beslut === "avbojt" && utfordAtgard) {
+10
View File
@@ -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 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. any language. Review status is a statement about people, not about files, and is set by hand.
</p> </p>
{/* 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. */}
<p className="mt-4 max-w-[680px] border-l-2 pl-6 text-[13px] leading-[20px]"
style={{ borderColor: FARG.varning, color: FARG.graphite }}>
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.
</p>
</Sektion> </Sektion>
{/* ---- Beviset ---- */} {/* ---- Beviset ---- */}
+376 -359
View File
@@ -23,62 +23,79 @@
// Att "täcka allt" går inte att lova. Det som går är att täcka fordonets // 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 // system systematiskt och låta GENERISK vara ett strukturellt komplett
// skyddsnät: den fungerar även för det ingen förutsett. // 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 = { export const VIBRATION = {
id: "vibration", id: "vibration",
namn: "Vibration under körning", namn: "Vibration while driving",
omrade: "Hjul och balans", omrade: "Wheels and balance",
nyckelord: ["vibration", "vibrer", "skak", "obalans", "ojämn gång", "rattvibration"], nyckelord: ["vibration", "vibrer", "skak", "obalans", "ojämn gång", "rattvibration", "vibrat", "shak", "shimm", "imbalance", "unbalance", "wheel wobble", "rough running"],
steg: [ steg: [
{ {
id: "symptom", id: "symptom",
rubrik: "Verifiera symptom", rubrik: "Verify the symptom",
fragor: [ fragor: [
{ id: "hastighetsberoende", text: "Är vibrationen hastighetsberoende?", svarstyp: "janej" }, { id: "hastighetsberoende", text: "Is the vibration speed-dependent?", svarstyp: "janej" },
{ id: "var", text: "Var känns vibrationen?", svarstyp: "val", val: ["I ratten", "I stolen", "I hela bilen"] }, { id: "var", text: "Where is the vibration felt?", svarstyp: "val", val: ["In the steering wheel", "In the seat", "Throughout the vehicle"] },
{ {
id: "nar", id: "nar",
text: "När uppstår vibrationen?", text: "When does the vibration occur?",
svarstyp: "val", 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", id: "visuell",
rubrik: "Visuell kontroll", rubrik: "Visual inspection",
beskrivning: "Fotografera samtliga hjul. Skilj på observation och slutsats.", beskrivning: "Photograph every wheel. Keep observation separate from conclusion.",
kontroller: [ kontroller: [
{ id: "foto_vf", text: "Fotografera vänster framhjul", krav: "foto" }, { id: "foto_vf", text: "Photograph the left front wheel", krav: "foto" },
{ id: "foto_hf", text: "Fotografera höger framhjul", krav: "foto" }, { id: "foto_hf", text: "Photograph the right front wheel", krav: "foto" },
{ id: "foto_vb", text: "Fotografera vänster bakhjul", krav: "foto" }, { id: "foto_vb", text: "Photograph the left rear wheel", krav: "foto" },
{ id: "foto_hb", text: "Fotografera höger bakhjul", krav: "foto" }, { id: "foto_hb", text: "Photograph the right rear wheel", krav: "foto" },
{ id: "dot", text: "Dokumentera DOT-/tillverkningsdatum", krav: "kommentar" }, { id: "dot", text: "Document the DOT / manufacturing date", krav: "kommentar" },
{ id: "slitage", text: "Kontrollera däckslitage och slitagemönster", krav: "kommentar" }, { id: "slitage", text: "Check tyre wear and the wear pattern", krav: "kommentar" },
], ],
}, },
{ {
id: "kontroller", id: "kontroller",
rubrik: "Mätningar", rubrik: "Measurements",
kontroller: [ kontroller: [
{ id: "lufttryck", text: "Kontrollera lufttryck", krav: "matvarde" }, { id: "lufttryck", text: "Check tyre pressure", krav: "matvarde" },
{ id: "hjulmoment", text: "Kontrollera hjulmoment", krav: "matvarde" }, { id: "hjulmoment", text: "Check wheel torque", krav: "matvarde" },
{ id: "kast", text: "Kontrollera radial- och sidokast", krav: "matvarde" }, { id: "kast", text: "Check radial and lateral runout", krav: "matvarde" },
{ id: "balansering", text: "Kontrollera hjulbalansering", krav: "kommentar" }, { id: "balansering", text: "Check wheel balance", krav: "kommentar" },
{ id: "bussningar", text: "Kontrollera bussningar och leder", krav: "kommentar" }, { id: "bussningar", text: "Check bushings and joints", krav: "kommentar" },
], ],
}, },
{ {
id: "provkorning", id: "provkorning",
rubrik: "Provkörning", rubrik: "Road test",
beskrivning: "Verifiera under provkörning:", beskrivning: "Verify during the road test:",
kontroller: [ kontroller: [
{ id: "pk_hastighet", text: "Hastighet där vibration uppstår", krav: "kommentar" }, { id: "pk_hastighet", text: "Speed at which the vibration occurs", krav: "kommentar" },
{ id: "pk_acc", text: "Förändring vid acceleration", krav: "kommentar" }, { id: "pk_acc", text: "Change under acceleration", krav: "kommentar" },
{ id: "pk_motorbroms", text: "Förändring vid motorbroms", krav: "kommentar" }, { id: "pk_motorbroms", text: "Change under engine braking", krav: "kommentar" },
{ id: "pk_kurva", text: "Förändring vid kurvtagning", krav: "kommentar" }, { id: "pk_kurva", text: "Change when cornering", krav: "kommentar" },
{ id: "pk_var", text: "Om vibration känns i ratt eller kaross", 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 = { export const ELSYSTEM = {
id: "elsystem", id: "elsystem",
namn: "Elsystem och strömförsörjning", namn: "Electrical system and power supply",
omrade: "El", omrade: "Electrical",
nyckelord: ["relä", "rela", "säkring", "elektr", "spänning", "volt", "lampa", "belysning", "ström", "kortslut", "kabel", "kabla", "kontaktdon", "jordfel"], 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: [ steg: [
{ {
id: "symptom", id: "symptom",
rubrik: "Verifiera symptom", rubrik: "Verify the symptom",
fragor: [ fragor: [
{ id: "reproducerbart", text: "Går felet att reproducera?", svarstyp: "janej" }, { id: "reproducerbart", text: "Can the fault be reproduced?", svarstyp: "janej" },
{ {
id: "omfattning", id: "omfattning",
text: "Är funktionen helt död eller delvis fungerande?", text: "Is the function completely dead or partly working?",
svarstyp: "val", 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: "funktion", text: "Which function is missing or faulty?", svarstyp: "text" },
{ id: "forandring", text: "Har något åtgärdats eller förändrats nyligen?", svarstyp: "text" }, { id: "forandring", text: "Has anything been repaired or changed recently?", svarstyp: "text" },
], ],
}, },
{ {
id: "visuell", id: "visuell",
rubrik: "Visuell kontroll", rubrik: "Visual inspection",
kontroller: [ kontroller: [
{ id: "foto_komponent", text: "Fotografera komponenten och dess anslutningar", krav: "foto" }, { id: "foto_komponent", text: "Photograph the component and its connections", krav: "foto" },
{ id: "skador", text: "Kontrollera synliga skador, korrosion och lösa kontaktdon", krav: "kommentar" }, { id: "skador", text: "Check for visible damage, corrosion and loose connectors", krav: "kommentar" },
], ],
}, },
{ {
id: "matningar", id: "matningar",
rubrik: "Mätningar", rubrik: "Measurements",
beskrivning: "Mät under belastning. En spänning utan last säger nästan ingenting om en dålig förbindelse.", beskrivning: "Measure under load. A voltage without load says almost nothing about a poor connection.",
kontroller: [ kontroller: [
{ id: "batterispanning", text: "Mät batterispänning", krav: "matvarde" }, { id: "batterispanning", text: "Measure battery voltage", krav: "matvarde" },
{ id: "sakringar", text: "Kontrollera berörda säkringar", krav: "kommentar" }, { id: "sakringar", text: "Check the fuses concerned", krav: "kommentar" },
{ id: "matningsspanning", text: "Mät matningsspänning vid komponenten under last", krav: "matvarde" }, { id: "matningsspanning", text: "Measure supply voltage at the component under load", krav: "matvarde" },
{ id: "jord", text: "Mät spänningsfall mot jord under last", krav: "matvarde" }, { id: "jord", text: "Measure voltage drop to earth under load", krav: "matvarde" },
], ],
}, },
{ {
id: "rela", id: "rela",
rubrik: "Relä och styrsignal", rubrik: "Relay and control signal",
kontroller: [ kontroller: [
{ id: "rela_klick", text: "Kontrollera om reläet klickar vid aktivering", krav: "kommentar" }, { id: "rela_klick", text: "Check whether the relay clicks when energised", krav: "kommentar" },
{ id: "styrsignal", text: "Mät styrsignal till reläet", krav: "matvarde" }, { id: "styrsignal", text: "Measure the control signal to the relay", krav: "matvarde" },
], ],
}, },
{ {
id: "funktionstest", id: "funktionstest",
rubrik: "Funktionstest", rubrik: "Function test",
kontroller: [{ id: "test", text: "Genomför funktionstest och dokumentera resultatet", krav: "kommentar" }], kontroller: [{ id: "test", text: "Perform a function test and document the result", krav: "kommentar" }],
}, },
], ],
}; };
export const START_LADDNING = { export const START_LADDNING = {
id: "start_laddning", id: "start_laddning",
namn: "Start- och laddningssystem", namn: "Starting and charging system",
omrade: "El", omrade: "Electrical",
nyckelord: ["startar inte", "startproblem", "startmotor", "generator", "laddning", "batteriet dör", "urladdat", "batterilampa", "drar inte runt", "klick vid start"], 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: [ steg: [
{ {
id: "symptom", id: "symptom",
rubrik: "Verifiera symptom", rubrik: "Verify the symptom",
fragor: [ fragor: [
{ {
id: "beteende", id: "beteende",
text: "Vad händer vid startförsök?", text: "What happens when starting is attempted?",
svarstyp: "val", 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: "kallt_varmt", text: "Does the fault appear cold, warm or always?", svarstyp: "val", val: ["Cold", "Warm", "Always"] },
{ id: "stillestand", text: "Hur länge har fordonet stått mellan försöken?", svarstyp: "text" }, { id: "stillestand", text: "How long has the vehicle stood between attempts?", svarstyp: "text" },
{ id: "laddat", text: "Har batteriet laddats eller bytts nyligen?", svarstyp: "text" }, { id: "laddat", text: "Has the battery been charged or replaced recently?", svarstyp: "text" },
], ],
}, },
{ {
id: "batteri", id: "batteri",
rubrik: "Batteriets kondition", rubrik: "Battery condition",
beskrivning: "Ett svagt batteri ger följdfel i hela fordonet. Uteslut det först.", beskrivning: "A weak battery causes consequential faults across the vehicle. Rule it out first.",
kontroller: [ kontroller: [
{ id: "vilospanning", text: "Mät vilospänning efter minst en timmes vila", krav: "matvarde" }, { id: "vilospanning", text: "Measure resting voltage after at least one hour at rest", krav: "matvarde" },
{ id: "batteritest", text: "Belastningstest — fotografera testarens resultat", krav: "foto" }, { id: "batteritest", text: "Load test — photograph the tester's result", krav: "foto" },
{ id: "poler", text: "Kontrollera polskor och jordflätor", krav: "kommentar" }, { id: "poler", text: "Check battery terminals and earth straps", krav: "kommentar" },
], ],
}, },
{ {
id: "start", id: "start",
rubrik: "Startsystem", rubrik: "Starting system",
kontroller: [ kontroller: [
{ id: "startspanning", text: "Mät spänning vid startmotorn under startförsök", krav: "matvarde" }, { id: "startspanning", text: "Measure voltage at the starter motor during cranking", krav: "matvarde" },
{ id: "spanningsfall_plus", text: "Mät spänningsfall i plusledningen under start", krav: "matvarde" }, { id: "spanningsfall_plus", text: "Measure voltage drop in the positive lead during cranking", krav: "matvarde" },
{ id: "spanningsfall_jord", text: "Mät spänningsfall i jordledningen under start", krav: "matvarde" }, { id: "spanningsfall_jord", text: "Measure voltage drop in the earth lead during cranking", krav: "matvarde" },
{ id: "startsignal", text: "Kontrollera styrsignal till startrelä", krav: "matvarde" }, { id: "startsignal", text: "Check the control signal to the starter relay", krav: "matvarde" },
], ],
}, },
{ {
id: "laddning", id: "laddning",
rubrik: "Laddningssystem", rubrik: "Charging system",
kontroller: [ kontroller: [
{ id: "laddspanning", text: "Mät laddspänning vid tomgång och vid förhöjt varvtal", krav: "matvarde" }, { id: "laddspanning", text: "Measure charging voltage at idle and at raised engine speed", krav: "matvarde" },
{ id: "rippel", text: "Mät rippel från generatorn", krav: "matvarde" }, { id: "rippel", text: "Measure ripple from the alternator", krav: "matvarde" },
{ id: "rem", text: "Kontrollera drivrem och spänning", krav: "kommentar" }, { id: "rem", text: "Check the drive belt and its tension", krav: "kommentar" },
], ],
}, },
{ {
id: "krypstrom", id: "krypstrom",
rubrik: "Krypström", rubrik: "Parasitic drain",
beskrivning: "Endast relevant när batteriet laddar ur under stillestånd.", beskrivning: "Only relevant when the battery discharges while the vehicle stands.",
kontroller: [ kontroller: [
{ id: "vilostrom", text: "Mät viloström efter att fordonet somnat", krav: "matvarde" }, { id: "vilostrom", text: "Measure quiescent current once the vehicle has gone to sleep", krav: "matvarde" },
{ id: "sakringsdrag", text: "Lokalisera krets genom successiv säkringsurtagning", krav: "kommentar" }, { 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 = { export const MOTOR_DRIFT = {
id: "motor_drift", id: "motor_drift",
namn: "Motorgång och effekt", namn: "Engine running and power",
omrade: "Motor", omrade: "Engine",
nyckelord: ["ryck", "tappar kraft", "effektbrist", "misständ", "ojämn tomgång", "tomgång", "motorlampa", "kraftlös", "hack", "går på tre"], 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: [ steg: [
{ {
id: "symptom", id: "symptom",
rubrik: "Verifiera symptom", rubrik: "Verify the symptom",
fragor: [ fragor: [
{ {
id: "nar", id: "nar",
text: "När uppträder felet?", text: "When does the fault appear?",
svarstyp: "val", 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: "varvtal", text: "At what engine speed or load?", svarstyp: "text" },
{ id: "varningslampa", text: "Lyser eller blinkar motorlampan?", svarstyp: "val", val: ["Lyser fast", "Blinkar", "Slocknad"] }, { id: "varningslampa", text: "Is the engine warning lamp on or flashing?", svarstyp: "val", val: ["On steady", "Flashing", "Off"] },
{ id: "brankslebyte", text: "Har bränsle tankats eller service utförts strax innan?", svarstyp: "text" }, { id: "brankslebyte", text: "Was fuel added or service performed shortly before?", svarstyp: "text" },
], ],
}, },
{ {
id: "felkoder", id: "felkoder",
rubrik: "Felkoder och mätdata", rubrik: "Fault codes and measured data",
beskrivning: "Läs innan något demonteras. En felkod pekar på en krets, inte på en trasig komponent.", beskrivning: "Read before anything is dismantled. A fault code points to a circuit, not to a broken component.",
kontroller: [ kontroller: [
{ id: "dtc", text: "Läs felkoderfotografera diagnosskärmen", krav: "foto" }, { id: "dtc", text: "Read fault codesphotograph the diagnostic screen", krav: "foto" },
{ id: "frysdata", text: "Dokumentera frysramsdata för koden", krav: "kommentar" }, { id: "frysdata", text: "Document the freeze frame data for the code", krav: "kommentar" },
{ id: "misstandning", text: "Läs misständningsräknare per cylinder", krav: "matvarde" }, { id: "misstandning", text: "Read the misfire counter per cylinder", krav: "matvarde" },
{ id: "branslekorrigering", text: "Läs kort- och långtidsbränslekorrigering", krav: "matvarde" }, { id: "branslekorrigering", text: "Read short- and long-term fuel trim", krav: "matvarde" },
], ],
}, },
{ {
id: "mekanik", id: "mekanik",
rubrik: "Motorns grundkondition", rubrik: "Basic engine condition",
beskrivning: "Utan grundkondition är alla givarvärden svåra att tolka.", beskrivning: "Without sound basic condition, every sensor value is hard to interpret.",
kontroller: [ kontroller: [
{ id: "kompression", text: "Mät kompression eller relativ kompression", krav: "matvarde" }, { id: "kompression", text: "Measure compression, or relative compression", krav: "matvarde" },
{ id: "vevhustryck", text: "Kontrollera vevhustryck", krav: "kommentar" }, { id: "vevhustryck", text: "Check crankcase pressure", krav: "kommentar" },
{ id: "insugslackage", text: "Kontrollera insugssystemet för falskluft", krav: "kommentar" }, { id: "insugslackage", text: "Check the intake system for unmetered air", krav: "kommentar" },
], ],
}, },
{ {
id: "tandning_bransle", id: "tandning_bransle",
rubrik: "Tändning och bränsle", rubrik: "Ignition and fuel",
kontroller: [ kontroller: [
{ id: "tandstift", text: "Kontrollera tändstiftfotografera samtliga", krav: "foto" }, { id: "tandstift", text: "Check the spark plugsphotograph all of them", krav: "foto" },
{ id: "spolar", text: "Mät tändspolarnas resistans eller byt mellan cylindrar", krav: "matvarde" }, { id: "spolar", text: "Measure ignition coil resistance, or swap coils between cylinders", krav: "matvarde" },
{ id: "bransletryck", text: "Mät bränsletryck under belastning", krav: "matvarde" }, { id: "bransletryck", text: "Measure fuel pressure under load", krav: "matvarde" },
{ id: "insprutare", text: "Kontrollera insprutarnas returmängd eller styrning", krav: "matvarde" }, { id: "insprutare", text: "Check injector return quantity or injector control", krav: "matvarde" },
], ],
}, },
{ {
id: "provkorning", id: "provkorning",
rubrik: "Provkörning med loggning", rubrik: "Road test with logging",
kontroller: [ kontroller: [
{ id: "logg", text: "Logga mätdata under körning där felet uppträder", krav: "foto" }, { id: "logg", text: "Log measured data while driving where the fault appears", krav: "foto" },
{ id: "reproducerat", text: "Dokumentera under vilka förhållanden felet uppträdde", krav: "kommentar" }, { id: "reproducerat", text: "Document the conditions under which the fault appeared", krav: "kommentar" },
], ],
}, },
], ],
@@ -267,52 +284,52 @@ export const MOTOR_DRIFT = {
export const BROMSAR = { export const BROMSAR = {
id: "bromsar", id: "bromsar",
namn: "Bromssystem", namn: "Braking system",
omrade: "Chassi", omrade: "Chassis",
nyckelord: ["broms", "bromspedal", "skevhet", "gnisslar vid inbromsning", "abs", "bromsvätska", "handbroms", "drar snett vid inbromsning"], 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: [ steg: [
{ {
id: "symptom", id: "symptom",
rubrik: "Verifiera symptom", rubrik: "Verify the symptom",
fragor: [ fragor: [
{ {
id: "karaktar", id: "karaktar",
text: "Hur yttrar sig felet?", text: "How does the fault present?",
svarstyp: "val", 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: "nar", text: "At what speed and braking force?", svarstyp: "text" },
{ id: "varningslampa", text: "Lyser broms- eller ABS-varning?", svarstyp: "janej" }, { id: "varningslampa", text: "Is the brake or ABS warning lamp on?", svarstyp: "janej" },
{ id: "senaste", text: "När byttes bromskomponenter senast?", svarstyp: "text" }, { id: "senaste", text: "When were brake components last replaced?", svarstyp: "text" },
], ],
}, },
{ {
id: "visuell", id: "visuell",
rubrik: "Visuell kontroll", rubrik: "Visual inspection",
kontroller: [ kontroller: [
{ id: "foto_belagg", text: "Fotografera belägg och skivor på samtliga hjul", krav: "foto" }, { id: "foto_belagg", text: "Photograph pads and discs on every wheel", krav: "foto" },
{ id: "belaggtjocklek", text: "Mät beläggtjocklek", krav: "matvarde" }, { id: "belaggtjocklek", text: "Measure pad thickness", krav: "matvarde" },
{ id: "skivtjocklek", text: "Mät skivtjocklek och jämför med minmått", krav: "matvarde" }, { id: "skivtjocklek", text: "Measure disc thickness and compare with the minimum", krav: "matvarde" },
{ id: "lackage", text: "Kontrollera slangar, rör och ok för läckage", krav: "kommentar" }, { id: "lackage", text: "Check hoses, pipes and calipers for leaks", krav: "kommentar" },
], ],
}, },
{ {
id: "matningar", id: "matningar",
rubrik: "Mätningar", rubrik: "Measurements",
kontroller: [ kontroller: [
{ id: "skivkast", text: "Mät skivkast med mätklocka", krav: "matvarde" }, { id: "skivkast", text: "Measure disc runout with a dial gauge", krav: "matvarde" },
{ id: "tjockleksvariation", text: "Mät tjockleksvariation på skivan", krav: "matvarde" }, { id: "tjockleksvariation", text: "Measure disc thickness variation", krav: "matvarde" },
{ id: "vatska", text: "Mät bromsvätskans kokpunkt eller vatteninnehåll", krav: "matvarde" }, { id: "vatska", text: "Measure the brake fluid's boiling point or water content", krav: "matvarde" },
{ id: "okens_rorlighet", text: "Kontrollera okens och styrbultarnas rörlighet", krav: "kommentar" }, { id: "okens_rorlighet", text: "Check that calipers and slide pins move freely", krav: "kommentar" },
], ],
}, },
{ {
id: "system", id: "system",
rubrik: "System och ABS", rubrik: "System and ABS",
kontroller: [ kontroller: [
{ id: "dtc", text: "Läs felkoder ur ABS-styrenheten", krav: "foto" }, { id: "dtc", text: "Read fault codes from the ABS control unit", krav: "foto" },
{ id: "hjulgivare", text: "Kontrollera hjulhastighetsgivarnas signal", krav: "matvarde" }, { id: "hjulgivare", text: "Check the wheel speed sensor signals", krav: "matvarde" },
{ id: "bromsprov", text: "Utför bromsprov i provbänkfotografera protokollet", krav: "foto" }, { id: "bromsprov", text: "Perform a brake test on a test benchphotograph the report", krav: "foto" },
], ],
}, },
], ],
@@ -320,50 +337,50 @@ export const BROMSAR = {
export const STYRNING_FJADRING = { export const STYRNING_FJADRING = {
id: "styrning_fjadring", id: "styrning_fjadring",
namn: "Styrning och fjädring", namn: "Steering and suspension",
omrade: "Chassi", 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"], 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: [ steg: [
{ {
id: "symptom", id: "symptom",
rubrik: "Verifiera symptom", rubrik: "Verify the symptom",
fragor: [ fragor: [
{ {
id: "karaktar", id: "karaktar",
text: "Hur yttrar sig felet?", text: "How does the fault present?",
svarstyp: "val", 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: "underlag", text: "Does it appear on a particular surface or in a particular corner?", svarstyp: "text" },
{ id: "handelse", text: "Har fordonet kört på något eller varit i kontakt med trottoarkant?", svarstyp: "text" }, { id: "handelse", text: "Has the vehicle struck something or hit a kerb?", svarstyp: "text" },
], ],
}, },
{ {
id: "visuell", id: "visuell",
rubrik: "Visuell kontroll", rubrik: "Visual inspection",
kontroller: [ kontroller: [
{ id: "foto_slitage", text: "Fotografera däckens slitagemönster", krav: "foto" }, { id: "foto_slitage", text: "Photograph the tyres' wear pattern", krav: "foto" },
{ id: "dampare", text: "Kontrollera dämpare för läckage", krav: "kommentar" }, { id: "dampare", text: "Check dampers for leakage", krav: "kommentar" },
{ id: "damask", text: "Kontrollera damasker på styrleder och drivknutar", krav: "kommentar" }, { id: "damask", text: "Check boots on track rod ends and drive joints", krav: "kommentar" },
], ],
}, },
{ {
id: "glapp", id: "glapp",
rubrik: "Glappkontroll", rubrik: "Play check",
beskrivning: "Utförs med hjulet avlastat. Dokumentera var glappet finns, inte bara att det finns.", beskrivning: "Performed with the wheel unloaded. Document where the play is, not only that it exists.",
kontroller: [ kontroller: [
{ id: "hjullager", text: "Kontrollera hjullagerspel", krav: "kommentar" }, { id: "hjullager", text: "Check wheel bearing play", krav: "kommentar" },
{ id: "styrleder", text: "Kontrollera styr- och bärleder", krav: "kommentar" }, { id: "styrleder", text: "Check track rod ends and ball joints", krav: "kommentar" },
{ id: "bussningar", text: "Kontrollera bussningar", krav: "kommentar" }, { id: "bussningar", text: "Check bushings", krav: "kommentar" },
{ id: "kuggstang", text: "Kontrollera kuggstång och styrstagsändar", krav: "kommentar" }, { id: "kuggstang", text: "Check the rack and the track rod ends", krav: "kommentar" },
], ],
}, },
{ {
id: "installning", id: "installning",
rubrik: "Hjulinställning", rubrik: "Wheel alignment",
kontroller: [ kontroller: [
{ id: "matning", text: "Mät hjulinställningfotografera protokollet före justering", krav: "foto" }, { id: "matning", text: "Measure wheel alignmentphotograph the report before adjustment", krav: "foto" },
{ id: "avvikelse", text: "Dokumentera avvikelser mot tillverkarens värden", krav: "matvarde" }, { id: "avvikelse", text: "Document deviations from the manufacturer's values", krav: "matvarde" },
], ],
}, },
], ],
@@ -371,51 +388,51 @@ export const STYRNING_FJADRING = {
export const KYLSYSTEM = { export const KYLSYSTEM = {
id: "kylsystem", id: "kylsystem",
namn: "Kylsystem och överhettning", namn: "Cooling system and overheating",
omrade: "Motor", omrade: "Engine",
nyckelord: ["överhett", "koka", "kylvätska", "temperatur", "termostat", "kylare", "vattenpump", "värme i kupén", "expansionskärl"], 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: [ steg: [
{ {
id: "symptom", id: "symptom",
rubrik: "Verifiera symptom", rubrik: "Verify the symptom",
fragor: [ fragor: [
{ {
id: "nar", id: "nar",
text: "När stiger temperaturen?", text: "When does the temperature rise?",
svarstyp: "val", 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: "kylvatskeforlust", text: "Is coolant being lost? How much and how often?", svarstyp: "text" },
{ id: "varme", text: "Fungerar kupévärmen?", svarstyp: "janej" }, { id: "varme", text: "Does the cabin heater work?", svarstyp: "janej" },
], ],
}, },
{ {
id: "visuell", id: "visuell",
rubrik: "Visuell kontroll", rubrik: "Visual inspection",
kontroller: [ kontroller: [
{ id: "niva", text: "Kontrollera kylvätskenivå kallfotografera expansionskärlet", krav: "foto" }, { id: "niva", text: "Check the coolant level coldphotograph the expansion tank", krav: "foto" },
{ id: "lackage", text: "Kontrollera synligt läckage vid slangar, kylare och pump", krav: "kommentar" }, { id: "lackage", text: "Check for visible leaks at hoses, radiator and pump", krav: "kommentar" },
{ id: "kylarpaket", text: "Kontrollera kylarpaketet för igensättning", krav: "foto" }, { id: "kylarpaket", text: "Check the radiator pack for blockage", krav: "foto" },
], ],
}, },
{ {
id: "matningar", id: "matningar",
rubrik: "Mätningar", rubrik: "Measurements",
kontroller: [ kontroller: [
{ id: "trycktest", text: "Trycktesta kylsystemet", krav: "matvarde" }, { id: "trycktest", text: "Pressure test the cooling system", krav: "matvarde" },
{ id: "lock", text: "Trycktesta expansionskärlets lock", krav: "matvarde" }, { id: "lock", text: "Pressure test the expansion tank cap", krav: "matvarde" },
{ id: "temperatur", text: "Mät temperatur in och ut ur kylaren med IR-termometer", krav: "matvarde" }, { id: "temperatur", text: "Measure inlet and outlet temperature at the radiator with an IR thermometer", krav: "matvarde" },
{ id: "flakt", text: "Kontrollera att kylfläkten startar vid rätt temperatur", krav: "kommentar" }, { id: "flakt", text: "Check that the cooling fan starts at the correct temperature", krav: "kommentar" },
{ id: "givare", text: "Jämför styrenhetens temperaturvärde med uppmätt", krav: "matvarde" }, { id: "givare", text: "Compare the control unit's temperature value with the measured one", krav: "matvarde" },
], ],
}, },
{ {
id: "packning", id: "packning",
rubrik: "Topplockspackning", rubrik: "Cylinder head gasket",
beskrivning: "Görs när kylvätska förloras utan yttre läckage.", beskrivning: "Performed when coolant is lost without an external leak.",
kontroller: [ kontroller: [
{ id: "avgastest", text: "Avgastest i kylvätskan (CO2-test)", krav: "foto" }, { id: "avgastest", text: "Exhaust gas test in the coolant (CO2 test)", krav: "foto" },
{ id: "kompression_kyl", text: "Kontrollera trycksättning av kylsystemet vid motorgång", krav: "kommentar" }, { 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 = { export const DRIVLINA = {
id: "drivlina", id: "drivlina",
namn: "Växellåda och drivlina", namn: "Transmission and driveline",
omrade: "Drivlina", omrade: "Driveline",
nyckelord: ["växellåda", "växlar", "koppling", "automatlåda", "rycker vid växling", "slir", "drivknut", "kardan", "differential", "kärvar i växeln"], 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: [ steg: [
{ {
id: "symptom", id: "symptom",
rubrik: "Verifiera symptom", rubrik: "Verify the symptom",
fragor: [ fragor: [
{ {
id: "karaktar", id: "karaktar",
text: "Hur yttrar sig felet?", text: "How does the fault present?",
svarstyp: "val", 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: "vaxel", text: "Which gear or engine speed?", svarstyp: "text" },
{ id: "kall_varm", text: "Kall eller varm låda?", svarstyp: "val", val: ["Kall", "Varm", "Ingen skillnad"] }, { id: "kall_varm", text: "Cold or warm transmission?", svarstyp: "val", val: ["Cold", "Warm", "No difference"] },
], ],
}, },
{ {
id: "visuell", id: "visuell",
rubrik: "Visuell kontroll", rubrik: "Visual inspection",
kontroller: [ kontroller: [
{ id: "olja", text: "Kontrollera oljenivå och oljans skickfotografera", krav: "foto" }, { id: "olja", text: "Check the oil level and the oil's conditionphotograph", krav: "foto" },
{ id: "lackage", text: "Kontrollera läckage vid tätningar och sump", krav: "kommentar" }, { id: "lackage", text: "Check for leaks at seals and the sump", krav: "kommentar" },
{ id: "fasten", text: "Kontrollera växellådsfästen", krav: "kommentar" }, { id: "fasten", text: "Check the transmission mounts", krav: "kommentar" },
], ],
}, },
{ {
id: "matningar", id: "matningar",
rubrik: "Mätningar och avläsning", rubrik: "Measurements and readout",
kontroller: [ kontroller: [
{ id: "dtc", text: "Läs felkoder ur växellådsstyrenheten", krav: "foto" }, { id: "dtc", text: "Read fault codes from the transmission control unit", krav: "foto" },
{ id: "adaptioner", text: "Dokumentera adaptionsvärden och kopplingsslitage", krav: "matvarde" }, { id: "adaptioner", text: "Document adaptation values and clutch wear", krav: "matvarde" },
{ id: "oljetemp", text: "Mät oljetemperatur under provkörning", krav: "matvarde" }, { id: "oljetemp", text: "Measure oil temperature during the road test", krav: "matvarde" },
], ],
}, },
{ {
id: "provkorning", id: "provkorning",
rubrik: "Provkörning", rubrik: "Road test",
kontroller: [ kontroller: [
{ id: "vaxlingspunkter", text: "Dokumentera växlingspunkter och beteende", krav: "kommentar" }, { id: "vaxlingspunkter", text: "Document shift points and behaviour", krav: "kommentar" },
{ id: "belastning", text: "Provkör under belastning där felet uppträder", 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 = { export const AVGAS_EMISSION = {
id: "avgas_emission", id: "avgas_emission",
namn: "Avgassystem och emissioner", namn: "Exhaust system and emissions",
omrade: "Motor", omrade: "Engine",
nyckelord: ["partikelfilt", "dpf", "adblue", "katalysator", "lambda", "avgas", "emission", "rökutveckling", "svart rök", "blå rök", "os", "egr", "regenerer", "utsläpp"], 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: [ steg: [
{ {
id: "symptom", id: "symptom",
rubrik: "Verifiera symptom", rubrik: "Verify the symptom",
fragor: [ fragor: [
{ {
id: "karaktar", id: "karaktar",
text: "Hur yttrar sig felet?", text: "How does the fault present?",
svarstyp: "val", 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: "rokfarg", text: "If smoke — what colour and when?", svarstyp: "text" },
{ id: "korprofil", text: "Beskriv fordonets körprofil (mest kort- eller långkörning)?", svarstyp: "text" }, { id: "korprofil", text: "Describe the vehicle's usage profile (mostly short or long journeys)?", svarstyp: "text" },
], ],
}, },
{ {
id: "avlasning", id: "avlasning",
rubrik: "Avläsning", rubrik: "Readout",
kontroller: [ kontroller: [
{ id: "dtc", text: "Läs felkoderfotografera diagnosskärmen", krav: "foto" }, { id: "dtc", text: "Read fault codesphotograph the diagnostic screen", krav: "foto" },
{ id: "sotmangd", text: "Läs beräknad och uppmätt sotmängd i partikelfiltret", krav: "matvarde" }, { id: "sotmangd", text: "Read the calculated and measured soot load in the particulate filter", krav: "matvarde" },
{ id: "regenerering", text: "Dokumentera antal och utfall av senaste regenereringar", krav: "kommentar" }, { id: "regenerering", text: "Document the number and outcome of the most recent regenerations", krav: "kommentar" },
{ id: "lambda", text: "Läs lambdagivarnas signaler före och efter katalysator", krav: "matvarde" }, { id: "lambda", text: "Read the lambda sensor signals before and after the catalyst", krav: "matvarde" },
], ],
}, },
{ {
id: "matningar", id: "matningar",
rubrik: "Mätningar", rubrik: "Measurements",
kontroller: [ kontroller: [
{ id: "mottryck", text: "Mät avgasmottryck", krav: "matvarde" }, { id: "mottryck", text: "Measure exhaust back pressure", krav: "matvarde" },
{ id: "differenstryck", text: "Mät differenstryck över partikelfiltret", krav: "matvarde" }, { id: "differenstryck", text: "Measure differential pressure across the particulate filter", krav: "matvarde" },
{ id: "adblue_niva", text: "Kontrollera AdBlue-nivå och kvalitet där sådant finns", krav: "matvarde" }, { id: "adblue_niva", text: "Check AdBlue level and quality where fitted", krav: "matvarde" },
{ id: "egr", text: "Kontrollera EGR-ventilens funktion och läge", krav: "matvarde" }, { id: "egr", text: "Check the EGR valve's function and position", krav: "matvarde" },
], ],
}, },
{ {
id: "orsak", id: "orsak",
rubrik: "Bakomliggande orsak", rubrik: "Underlying cause",
beskrivning: "Ett igensatt filter är oftast en följd, inte orsaken. Dokumentera vad som skapade sotet.", beskrivning: "A blocked filter is usually a consequence, not the cause. Document what produced the soot.",
kontroller: [ kontroller: [
{ id: "grundorsak", text: "Kontrollera insprutning, turbo och luftflöde", krav: "kommentar" }, { id: "grundorsak", text: "Check injection, turbocharger and air flow", krav: "kommentar" },
{ id: "korstrackor", text: "Bedöm om körprofilen tillåter regenerering", 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 = { export const KLIMAT = {
id: "klimat", id: "klimat",
namn: "Klimatanläggning", namn: "Climate system",
omrade: "Komfort", omrade: "Comfort",
nyckelord: ["ac", "luftkonditionering", "klimatanläggning", "kyler inte", "kompressor", "köldmedi", "imma", "immig", "fläkt", "lukt i kupén", "värmepaket"], 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: [ steg: [
{ {
id: "symptom", id: "symptom",
rubrik: "Verifiera symptom", rubrik: "Verify the symptom",
fragor: [ fragor: [
{ {
id: "karaktar", id: "karaktar",
text: "Hur yttrar sig felet?", text: "How does the fault present?",
svarstyp: "val", 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: "sidor", text: "Does it differ between the right and left sides?", svarstyp: "janej" },
{ id: "service", text: "När utfördes AC-service senast?", svarstyp: "text" }, { id: "service", text: "When was the AC last serviced?", svarstyp: "text" },
], ],
}, },
{ {
id: "visuell", id: "visuell",
rubrik: "Visuell kontroll", rubrik: "Visual inspection",
kontroller: [ kontroller: [
{ id: "kondensor", text: "Fotografera kondensorn — kontrollera igensättning och skador", krav: "foto" }, { id: "kondensor", text: "Photograph the condenser — check for blockage and damage", krav: "foto" },
{ id: "kupefilter", text: "Kontrollera kupéfiltret", krav: "foto" }, { id: "kupefilter", text: "Check the cabin filter", krav: "foto" },
{ id: "kompressor_rem", text: "Kontrollera kompressorns drivning och magnetkoppling", krav: "kommentar" }, { id: "kompressor_rem", text: "Check the compressor drive and the magnetic clutch", krav: "kommentar" },
], ],
}, },
{ {
id: "matningar", id: "matningar",
rubrik: "Mätningar", rubrik: "Measurements",
kontroller: [ kontroller: [
{ id: "tryck", text: "Mät hög- och lågtryck vid känd omgivningstemperatur", krav: "matvarde" }, { id: "tryck", text: "Measure high and low pressure at a known ambient temperature", krav: "matvarde" },
{ id: "utblastemp", text: "Mät utblåstemperatur vid mittre munstycke", krav: "matvarde" }, { id: "utblastemp", text: "Measure the outlet temperature at the centre vent", krav: "matvarde" },
{ id: "mangd", text: "Väg upptagen köldmediemängd vid tömning", krav: "matvarde" }, { id: "mangd", text: "Weigh the refrigerant recovered when evacuating", krav: "matvarde" },
{ id: "lackagesok", text: "Läcksök med spårgas eller UV", krav: "kommentar" }, { id: "lackagesok", text: "Trace the leak with tracer gas or UV", krav: "kommentar" },
], ],
}, },
{ {
id: "styrning", id: "styrning",
rubrik: "Styrning", rubrik: "Steering",
kontroller: [ kontroller: [
{ id: "dtc", text: "Läs felkoder ur klimatstyrenheten", krav: "foto" }, { id: "dtc", text: "Read fault codes from the climate control unit", krav: "foto" },
{ id: "spjall", text: "Kontrollera spjällmotorernas rörelse", krav: "kommentar" }, { id: "spjall", text: "Check the movement of the flap actuators", krav: "kommentar" },
], ],
}, },
], ],
@@ -574,59 +591,59 @@ export const KLIMAT = {
export const HOGVOLT = { export const HOGVOLT = {
id: "hogvolt", id: "hogvolt",
namn: "Högvoltsystem — elbil och hybrid", namn: "High-voltage system — electric and hybrid",
omrade: "Högvolt", omrade: "High voltage",
nyckelord: ["högvolt", "elbil", "hybrid", "traktionsbatteri", "hv", "laddning av bil", "räckvidd", "laddbox", "orange kabel", "sköldpadda"], 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: [ steg: [
{ {
id: "sakerhet", id: "sakerhet",
rubrik: "Säkerhet — utförs först", rubrik: "Safetyperformed first",
beskrivning: 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: [ fragor: [
{ id: "behorighet", text: "Har du behörighet för arbete på högvoltsystem?", svarstyp: "janej" }, { id: "behorighet", text: "Are you authorised to work on high-voltage systems?", svarstyp: "janej" },
{ id: "avstangt", text: "Är fordonet spänningslöst enligt tillverkarens rutin?", svarstyp: "janej" }, { id: "avstangt", text: "Is the vehicle de-energised per the manufacturer's procedure?", svarstyp: "janej" },
], ],
kontroller: [ kontroller: [
{ id: "service_disconnect", text: "Dokumentera att servicebrytaren är urtagen och säkrad", krav: "foto" }, { id: "service_disconnect", text: "Document that the service disconnect is removed and secured", krav: "foto" },
{ id: "vantetid", text: "Dokumentera väntetid enligt tillverkarens anvisning", krav: "kommentar" }, { id: "vantetid", text: "Document the waiting time per the manufacturer's instruction", krav: "kommentar" },
{ id: "spanningsfrihet", text: "Mät och dokumentera spänningsfrihet före ingrepp", krav: "matvarde" }, { id: "spanningsfrihet", text: "Measure and document the absence of voltage before any work", krav: "matvarde" },
{ id: "skyddsutrustning", text: "Dokumentera använd skyddsutrustning och avspärrning", krav: "foto" }, { id: "skyddsutrustning", text: "Document the protective equipment used and the area cordoned off", krav: "foto" },
], ],
}, },
{ {
id: "symptom", id: "symptom",
rubrik: "Verifiera symptom", rubrik: "Verify the symptom",
fragor: [ fragor: [
{ {
id: "karaktar", id: "karaktar",
text: "Hur yttrar sig felet?", text: "How does the fault present?",
svarstyp: "val", 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: "laddtyp", text: "At which charge type does the fault appear (AC, DC, which charge point)?", svarstyp: "text" },
{ id: "temperatur", text: "Vid vilken omgivnings- och batteritemperatur?", svarstyp: "text" }, { id: "temperatur", text: "At what ambient and battery temperature?", svarstyp: "text" },
], ],
}, },
{ {
id: "avlasning", id: "avlasning",
rubrik: "Avläsning", rubrik: "Readout",
beskrivning: "Utförs med diagnosverktyg — inga ingrepp i systemet krävs.", beskrivning: "Performed with a diagnostic tool — no intervention in the system is required.",
kontroller: [ kontroller: [
{ id: "dtc", text: "Läs felkoder ur samtliga högvoltstyrenheter", krav: "foto" }, { id: "dtc", text: "Read fault codes from every high-voltage control unit", krav: "foto" },
{ id: "soh", text: "Läs batteriets hälsa (SOH) och laddnivå (SOC)", krav: "matvarde" }, { id: "soh", text: "Read the battery's state of health (SOH) and state of charge (SOC)", krav: "matvarde" },
{ id: "cellspanning", text: "Läs cellspänningar och dokumentera största avvikelse", krav: "matvarde" }, { id: "cellspanning", text: "Read cell voltages and document the largest deviation", krav: "matvarde" },
{ id: "isolationsvarde", text: "Läs systemets isolationsvärde", krav: "matvarde" }, { id: "isolationsvarde", text: "Read the system's insulation value", krav: "matvarde" },
{ id: "temperaturer", text: "Läs batteriets temperaturgivare", krav: "matvarde" }, { id: "temperaturer", text: "Read the battery temperature sensors", krav: "matvarde" },
], ],
}, },
{ {
id: "laddning", id: "laddning",
rubrik: "Laddkedjan", rubrik: "Charging chain",
kontroller: [ kontroller: [
{ id: "laddkabel", text: "Kontrollera laddkabel och laddkontaktfotografera stiften", krav: "foto" }, { id: "laddkabel", text: "Check the charging cable and connectorphotograph the pins", krav: "foto" },
{ id: "laddlogg", text: "Läs laddhistorik och avbrottsorsaker", krav: "kommentar" }, { id: "laddlogg", text: "Read the charging history and the reasons for interruptions", krav: "kommentar" },
{ id: "extern", text: "Testa mot annan laddpunkt för att utesluta yttre orsak", 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 = { export const DIAGNOS_NATVERK = {
id: "diagnos_natverk", id: "diagnos_natverk",
namn: "Felkoder och kommunikation", namn: "Fault codes and communication",
omrade: "Diagnos", omrade: "Diagnostics",
nyckelord: ["felkod", "dtc", "can", "canbuss", "kommunikationsfel", "ingen kontakt", "styrenhet", "obd", "diagnos", "flera lampor"], 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: [ steg: [
{ {
id: "symptom", id: "symptom",
rubrik: "Verifiera symptom", rubrik: "Verify the symptom",
fragor: [ fragor: [
{ {
id: "omfattning", id: "omfattning",
text: "Hur många system är berörda?", text: "How many systems are affected?",
svarstyp: "val", 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", id: "grund",
rubrik: "Grundförutsättningar", rubrik: "Basic preconditions",
beskrivning: "Kommunikationsfel beror oftare på matning och jord än på styrenheten.", beskrivning: "Communication faults are more often due to supply and earth than to the control unit.",
kontroller: [ kontroller: [
{ id: "batteri", text: "Mät batterispänning under avläsning", krav: "matvarde" }, { id: "batteri", text: "Measure battery voltage during the readout", krav: "matvarde" },
{ id: "obd_matning", text: "Mät matning och jord i diagnosuttaget", krav: "matvarde" }, { id: "obd_matning", text: "Measure supply and earth at the diagnostic socket", krav: "matvarde" },
{ id: "sakringar", text: "Kontrollera säkringar till berörda styrenheter", krav: "kommentar" }, { id: "sakringar", text: "Check the fuses for the control units concerned", krav: "kommentar" },
], ],
}, },
{ {
id: "buss", id: "buss",
rubrik: "Bussmätning", rubrik: "Bus measurement",
kontroller: [ kontroller: [
{ id: "terminering", text: "Mät bussens termineringsresistans med systemet spänningslöst", krav: "matvarde" }, { id: "terminering", text: "Measure the bus termination resistance with the system de-energised", krav: "matvarde" },
{ id: "bussignal", text: "Mät CAN-signalen med oscilloskop — fotografera kurvan", krav: "foto" }, { id: "bussignal", text: "Measure the CAN signal with an oscilloscopephotograph the trace", krav: "foto" },
{ id: "avdelning", text: "Dela av bussen för att lokalisera störande nod", krav: "kommentar" }, { id: "avdelning", text: "Split the bus to localize the disturbing node", krav: "kommentar" },
], ],
}, },
{ {
id: "koder", id: "koder",
rubrik: "Felkoder i sammanhang", rubrik: "Fault codes in context",
beskrivning: "En felkod pekar på en krets, inte på en trasig komponent. Läs alla system innan någon kod raderas.", beskrivning: "A fault code points to a circuit, not to a broken component. Read every system before any code is cleared.",
kontroller: [ kontroller: [
{ id: "helavlasning", text: "Läs samtliga styrenheterfotografera listan", krav: "foto" }, { id: "helavlasning", text: "Read every control unitphotograph the list", krav: "foto" },
{ id: "frysdata", text: "Dokumentera frysramsdata innan radering", krav: "kommentar" }, { id: "frysdata", text: "Document the freeze frame data before clearing", krav: "kommentar" },
{ id: "efter_radering", text: "Radera, provkör och dokumentera vilka koder som återkom", 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 = { export const LACKAGE = {
id: "lackage", id: "lackage",
namn: "Läckage", namn: "Leakage",
omrade: "Övrigt", omrade: "General",
nyckelord: ["läck", "läckage", "oljefläck", "dropp", "vatten i bilen", "fukt", "blöt matta", "oljeförbrukning"], 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: [ steg: [
{ {
id: "symptom", id: "symptom",
rubrik: "Verifiera symptom", rubrik: "Verify the symptom",
fragor: [ fragor: [
{ {
id: "vatska", id: "vatska",
text: "Vilken vätska misstänks?", text: "Which fluid is suspected?",
svarstyp: "val", 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: "mangd", text: "How much and how often?", svarstyp: "text" },
{ id: "plats", text: "Var på marken syns fläcken i förhållande till fordonet?", svarstyp: "text" }, { id: "plats", text: "Where on the ground is the stain relative to the vehicle?", svarstyp: "text" },
], ],
}, },
{ {
id: "visuell", id: "visuell",
rubrik: "Lokalisering", rubrik: "Localization",
beskrivning: "Rengör först. Ett gammalt läckage döljer var det nya kommer ifrån.", beskrivning: "Clean first. An old leak hides where the new one comes from.",
kontroller: [ kontroller: [
{ id: "foto_fore", text: "Fotografera området före rengöring", krav: "foto" }, { id: "foto_fore", text: "Photograph the area before cleaning", krav: "foto" },
{ id: "rengoring", text: "Rengör området och dokumentera att det är torrt", krav: "foto" }, { id: "rengoring", text: "Clean the area and document that it is dry", krav: "foto" },
{ id: "provkorning", text: "Provkör eller låt gå och fotografera var vätskan uppträder", krav: "foto" }, { id: "provkorning", text: "Road test, or let it run, and photograph where the fluid appears", krav: "foto" },
], ],
}, },
{ {
id: "metod", id: "metod",
rubrik: "Läcksökning", rubrik: "Leak tracing",
kontroller: [ kontroller: [
{ id: "uv", text: "Läcksök med UV-spårämne där det är tillämpligt", krav: "kommentar" }, { id: "uv", text: "Leak test with UV dye where applicable", krav: "kommentar" },
{ id: "trycktest", text: "Trycktesta systemet", krav: "matvarde" }, { id: "trycktest", text: "Pressure test the system", krav: "matvarde" },
{ id: "niva", text: "Mät nivåförändring över tid", krav: "matvarde" }, { id: "niva", text: "Measure the change in level over time", krav: "matvarde" },
], ],
}, },
], ],
@@ -727,47 +744,47 @@ export const LACKAGE = {
export const MISSLJUD = { export const MISSLJUD = {
id: "missljud", id: "missljud",
namn: "Missljud", namn: "Abnormal noise",
omrade: "Övrigt", omrade: "General",
nyckelord: ["missljud", "ljud", "knack", "gnissel", "gnissl", "vinande", "brumm", "skram", "väsande", "tjut"], nyckelord: ["missljud", "ljud", "knack", "gnissel", "gnissl", "vinande", "brumm", "skram", "väsande", "tjut", "noise", "sound", "knock", "squeak", "squeal", "whine", "drone", "rattle", "hiss", "screech"],
steg: [ steg: [
{ {
id: "symptom", id: "symptom",
rubrik: "Verifiera symptom", rubrik: "Verify the symptom",
beskrivning: "Ett missljud som inte reproducerats går inte att åtgärda. Spela in det.", beskrivning: "An abnormal noise that has not been reproduced cannot be repaired. Record it.",
fragor: [ fragor: [
{ {
id: "karaktar", id: "karaktar",
text: "Vilken karaktär har ljudet?", text: "What is the character of the noise?",
svarstyp: "val", svarstyp: "val",
val: ["Knack", "Gnissel", "Vinande", "Brummande", "Skrammel", "Väsande", "Tjut"], val: ["Knock", "Squeal", "Whine", "Drone", "Rattle", "Hissing", "Screech"],
}, },
{ {
id: "nar", id: "nar",
text: "När hörs det?", text: "When is it heard?",
svarstyp: "val", 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: "beroende", text: "Does the noise follow engine speed or road speed?", svarstyp: "val", val: ["Engine speed", "Road speed", "Neither"] },
{ id: "temperatur", text: "Skillnad kallt mot varmt?", svarstyp: "text" }, { id: "temperatur", text: "Any difference cold versus warm?", svarstyp: "text" },
], ],
}, },
{ {
id: "inspelning", id: "inspelning",
rubrik: "Dokumentera ljudet", rubrik: "Document the noise",
beskrivning: "Video med ljud är evidens. En beskrivning i text är det inte.", beskrivning: "Video with sound is evidence. A description in text is not.",
kontroller: [ kontroller: [
{ id: "video", text: "Spela in ljudet med video under de förhållanden där det uppträder", krav: "foto" }, { id: "video", text: "Record the noise on video under the conditions in which it occurs", krav: "foto" },
{ id: "forhallanden", text: "Dokumentera hastighet, varvtal och underlag vid inspelningen", krav: "kommentar" }, { id: "forhallanden", text: "Document road speed, engine speed and surface during the recording", krav: "kommentar" },
], ],
}, },
{ {
id: "lokalisering", id: "lokalisering",
rubrik: "Lokalisering", rubrik: "Localization",
kontroller: [ kontroller: [
{ id: "stetoskop", text: "Lokalisera med stetoskop eller ljudsond", krav: "kommentar" }, { id: "stetoskop", text: "Localize with a stethoscope or sound probe", krav: "kommentar" },
{ id: "avlastning", text: "Kontrollera om ljudet ändras vid avlastning eller belastning", krav: "kommentar" }, { id: "avlastning", text: "Check whether the noise changes when unloaded or loaded", krav: "kommentar" },
{ id: "uteslutning", text: "Dokumentera vilka källor som uteslutits och hur", 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 = { export const ADAS = {
id: "adas", id: "adas",
namn: "Förarassistans och kalibrering", namn: "Driver assistance and calibration",
omrade: "Diagnos", omrade: "Diagnostics",
nyckelord: ["adas", "kamera", "radar", "filhållning", "adaptiv farthållare", "kalibrer", "vindruta", "parkeringssensor", "döda vinkeln", "nödbroms"], 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: [ steg: [
{ {
id: "symptom", id: "symptom",
rubrik: "Verifiera symptom", rubrik: "Verify the symptom",
fragor: [ fragor: [
{ {
id: "funktion", id: "funktion",
text: "Vilken funktion felar?", text: "Which function is faulty?",
svarstyp: "val", 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: "ingrepp", text: "Have the windscreen, body or suspension been worked on recently?", svarstyp: "text" },
{ id: "forhallanden", text: "Uppträder felet i visst väder eller ljus?", svarstyp: "text" }, { id: "forhallanden", text: "Does the fault appear in particular weather or light?", svarstyp: "text" },
], ],
}, },
{ {
id: "forutsattningar", id: "forutsattningar",
rubrik: "Förutsättningar för kalibrering", rubrik: "Preconditions for calibration",
beskrivning: 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: [ kontroller: [
{ id: "dtc", text: "Läs felkoder ur berörda styrenheter", krav: "foto" }, { id: "dtc", text: "Read fault codes from the control units concerned", krav: "foto" },
{ id: "hjulinstallning", text: "Kontrollera hjulinställning — bakaxelns spårning påverkar kameran", krav: "matvarde" }, { id: "hjulinstallning", text: "Check wheel alignment — rear axle tracking affects the camera", krav: "matvarde" },
{ id: "dacktryck", text: "Kontrollera däcktryck och körhöjd", krav: "matvarde" }, { id: "dacktryck", text: "Check tyre pressure and ride height", krav: "matvarde" },
{ id: "sikt", text: "Kontrollera kamerans och radarns siktfält för smuts eller skada", krav: "foto" }, { id: "sikt", text: "Check the camera's and radar's field of view for dirt or damage", krav: "foto" },
{ id: "yta", text: "Dokumentera att kalibreringsytan uppfyller kraven på planhet och ljus", krav: "foto" }, { id: "yta", text: "Document that the calibration area meets the requirements for flatness and lighting", krav: "foto" },
], ],
}, },
{ {
id: "kalibrering", id: "kalibrering",
rubrik: "Kalibrering", rubrik: "Calibration",
kontroller: [ kontroller: [
{ id: "utford", text: "Utför kalibrering enligt tillverkarens metod — fotografera resultatet", krav: "foto" }, { id: "utford", text: "Perform the calibration by the manufacturer's method — photograph the result", krav: "foto" },
{ id: "provkorning", text: "Provkör och verifiera funktionen under de förhållanden felet uppträdde", krav: "kommentar" }, { 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 = { export const GENERISK = {
id: "generisk", id: "generisk",
namn: "Generell strukturerad felsökning", namn: "General structured diagnosis",
omrade: "Övrigt", omrade: "General",
nyckelord: [], nyckelord: [],
steg: [ steg: [
{ {
id: "symptom", id: "symptom",
rubrik: "Verifiera symptom", rubrik: "Verify the symptom",
fragor: [ fragor: [
{ id: "reproducerbart", text: "Går felet att reproducera?", svarstyp: "janej" }, { id: "reproducerbart", text: "Can the fault be reproduced?", svarstyp: "janej" },
{ {
id: "nar", id: "nar",
text: "När uppträder felet?", text: "When does the fault appear?",
svarstyp: "val", svarstyp: "val",
val: ["Alltid", "Ibland", "Endast under drift", "Endast vid start"], val: ["Always", "Intermittently", "Only while running", "Only when starting"],
}, },
{ {
id: "var", id: "var",
text: "Var upplevs felet?", text: "Where is the fault experienced?",
svarstyp: "val", 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", id: "hur",
text: "Hur upplevs felet?", text: "How is the fault experienced?",
svarstyp: "val", 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: "forlopp", text: "Describe the sequence when the fault occurs", svarstyp: "text" },
{ id: "forandring", text: "Har något förändrats nyligen (service, reparation, miljö)?", svarstyp: "text" }, { id: "forandring", text: "Has anything changed recently (service, repair, environment)?", svarstyp: "text" },
], ],
}, },
{ {
id: "visuell", id: "visuell",
rubrik: "Visuell kontroll", rubrik: "Visual inspection",
kontroller: [ kontroller: [
{ id: "foto_objekt", text: "Fotografera objektet och det berörda området", krav: "foto" }, { id: "foto_objekt", text: "Photograph the object and the area concerned", krav: "foto" },
{ id: "skador", text: "Kontrollera synliga skador, läckage eller lösa anslutningar", krav: "kommentar" }, { id: "skador", text: "Check for visible damage, leaks or loose connections", krav: "kommentar" },
{ id: "typskylt", text: "Dokumentera typskylt/märkning", krav: "foto" }, { id: "typskylt", text: "Document the type plate or marking", krav: "foto" },
], ],
}, },
{ {
id: "grundkontroller", id: "grundkontroller",
rubrik: "Grundkontroller", rubrik: "Basic checks",
kontroller: [ kontroller: [
{ {
id: "matning", id: "matning",
text: "Utför grundläggande mätningar (spänning, tryck, temperatur — det som är relevant)", text: "Take basic measurements (voltage, pressure, temperaturewhatever is relevant)",
krav: "matvarde", krav: "matvarde",
}, },
{ id: "sakringar", text: "Kontrollera säkringar/skydd", krav: "kommentar" }, { id: "sakringar", text: "Check fuses and protective devices", krav: "kommentar" },
{ id: "anslutningar", text: "Kontrollera kontaktdon och anslutningar", krav: "kommentar" }, { id: "anslutningar", text: "Check connectors and terminations", krav: "kommentar" },
], ],
}, },
{ {
id: "funktionstest", id: "funktionstest",
rubrik: "Funktionstest", rubrik: "Function test",
kontroller: [{ id: "test", text: "Genomför funktionstest och dokumentera resultatet", krav: "kommentar" }], kontroller: [{ id: "test", text: "Perform a function test and document the result", krav: "kommentar" }],
}, },
], ],
}; };