Files
alva/felsokning/services/gemensam/sprak/nl.mjs
T
Claude be10704349 Grinden talar organisationens språk — engelska som standard
Kvalitetsgrinden formulerade sina hinder på svenska, hårdkodat. I en
produkt där engelska är standardspråket betyder det att en spärr kan
neka ett avslut på ett språk teknikern inte läser. Det är en spärr utan
väg förbi: teknikern ser att systemet vägrar men inte varför, och den
enda utvägen blir att ringa någon. Det är då regeln slutar vara en regel
och blir ett hinder man lär sig kringgå.

Varje hinder bär nu både nyckel och färdig text. Nyckeln därför att en
klient som byter språk ska kunna rendera om utan att fråga servern;
texten därför att ett hinder som hamnar i en logg eller en PDF måste gå
att läsa utan katalogen. Hindrets id och nyckel är språkoberoende — det
är bara texten som byter.

Språket är organisationens, inte användarens. En verkstad i Tyskland med
en polsk tekniker ska ha ett gemensamt dokumentationsspråk; rapporten
ska inte byta språk beroende på vem som råkade stänga ärendet. Det
lagras i organisationens inställningar, och en felstavad landskod blir
engelska i stället för ett fel — språkinställningen är en etikett och
ska inte hindra någon från att spara sina objekttyper.

SPARRFRAGOR bär nu nycklar i stället för svensk text. Testet som jämför
serverns lista med klientens jämför nycklar, så listorna kan fortfarande
inte glida isär.

Två tester prövade svenska ord i grindens utdata och gick sönder, vilket
var rätt av dem. De prövar nu nyckeln — texten är översatt och byter
språk med organisationen, och att pröva svenska ord hade gjort dem till
tester av vilket språk som råkar vara standard. Ett nytt test prövar det
som faktiskt betyder något: samma id, samma nyckel, olika text.

Integrationstestet följer språket hela vägen — organisationens
inställning, genom servern, ut i det 409-svar som nekar avslutet: engelska
som standard, tyska efter byte, engelska igen vid okänd kod.

582 tester, 186 integrationskontroller mot riktig Postgres, genomgång och
portalspärr gröna.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt
2026-08-06 16:36:53 +00:00

127 lines
6.9 KiB
JavaScript

// ALVA-SPEC-060 · Nederlands.
//
// Knoppen staan in de infinitief («Opslaan», «Annuleren»), zoals de
// Nederlandse interfaceconventie voorschrijft. Instructies binnen een
// zin richten zich niet tot de gebruiker — ALVA-SPEC-001 §7: het systeem
// meldt een toestand.
//
// `granskat: false`: de interface is vertaald, de proceduretekst is niet
// door een vakspecialist gecontroleerd. Zie index.mjs.
export const NL = {
// ---- Bewijsgraden -------------------------------------------------------
"evidens.E1": "Waarneming",
"evidens.E2": "Foto",
"evidens.E3": "Video met geluid",
"evidens.E4": "Meting, gekalibreerd meetmiddel",
"evidens.E5": "Document",
"evidens.ej_kalibrerad": "kalibratie ontbreekt of is verlopen",
"evidens.ej_angivet": "meetmiddel niet opgegeven",
"evidens.ej_fotograferad": "ingevoerd, niet gefotografeerd",
// ---- De afsluitcontrole -------------------------------------------------
"grind.objekt": "Identificatie van voertuig of object geverifieerd",
"grind.historik": "Voertuighistorie gecontroleerd of gemotiveerd",
"grind.historik.nekad": "Een geweigerde historiecontrole vereist een opgegeven reden.",
"grind.historik.saknas": "Geen historiecontrole gedocumenteerd.",
"grind.matarstallning.ingaende": "Kilometerstand bij inname gefotografeerd",
"grind.matarstallning.utgaende": "Kilometerstand bij aflevering gefotografeerd",
"grind.matarstallning.saknas": "Geen kilometerstand gedocumenteerd.",
"grind.matarstallning.ej_foto":
"De kilometerstand is ingevoerd maar niet gefotografeerd. Kilometerteller fotograferen, of aangeven waarom dat niet mogelijk is.",
"grind.reproducering": "Symptoomverificatie: gereproduceerd, of gedocumenteerd als niet reproduceerbaar",
"grind.felorsak": "Analyse van de grondoorzaak gedocumenteerd",
"grind.atgard": "Corrigerende maatregel gedocumenteerd of gemotiveerd",
"grind.atgard.saknas": "Noch een uitgevoerde maatregel noch een reden voor het uitblijven ervan is gedocumenteerd.",
"grind.kundbeslut": "Klantbeslissing over het voorstel vastgelegd",
"grind.kundbeslut.avbojt": "Werk uitgevoerd ondanks een afgewezen voorstel",
"grind.kundbeslut.avbojt.detalj":
"De klant heeft het voorstel afgewezen, maar er is werk gedocumenteerd als uitgevoerd.",
"grind.kvalitetskontroll": "Kwaliteitscontrole uitgevoerd — symptoom geverifieerd",
"grind.kontroller": "Controlepunten van de methodiek: bewijs, of een gedocumenteerde uitzondering",
"grind.foton": "Foto's aanwezig bij de controles die dat vereisen",
"grind.slutsats": "Eindconclusie (ALVA-RULE-200)",
"grind.hogvolt.behorighet": "Hoogspanningsbevoegdheid bevestigd",
"grind.hogvolt.spanningslos": "Voertuig spanningsloos gemaakt volgens de procedure van de fabrikant",
"grind.regelpaket": "Handtekening van het regelpakket komt niet overeen — afsluiten geblokkeerd.",
"grind.regelpaket.osignerat": "Er wordt een extern regelpakket zonder handtekening gebruikt — afsluiten geblokkeerd.",
"grind.evidens": "Bewijsgraad boven E0",
"grind.evidens.saknas": "Er is geen enkel bewijs in het logboek aanwezig.",
"grind.foton.detalj": "{kontroller} controles vereisen een foto, {foton} foto's in het logboek.",
"grind.sparr.ej_uppfyllt": "Aan de veiligheidseis is niet voldaan.",
"grind.arendetyp.okant": "Onbekende eis in het regelpakket: {krav}",
"grind.arendetyp.krav": "Eis voor dit zaaktype: {krav}",
// ---- De eindconclusie (ALVA-RULE-200) -----------------------------------
"slutsats.rubrik": "Eindconclusie",
"slutsats.konstaterat": "Wat is vastgesteld",
"slutsats.evidens": "Welk bewijs dat draagt",
"slutsats.avfardat": "Welke hypothesen zijn verworpen, en waarom",
"slutsats.osakert": "Wat onzeker blijft",
"slutsats.ickesvar": "Dat is geen conclusie. Aangeven wat is vastgesteld en welk bewijs dat draagt.",
// ---- Zaakverloop --------------------------------------------------------
"arende.nytt": "Nieuwe zaak",
"arende.oppna": "Openstaande zaken",
"arende.avslutade": "Afgesloten zaken",
"arende.avsluta": "Zaak afsluiten",
"arende.avslutat": "Zaak afgesloten",
"arende.kan_ej_avslutas": "De zaak kan nog niet worden afgesloten",
"arende.hinder": "Openstaand vóór afsluiting",
"arende.overlamna": "Overdragen",
"arende.ansvarig": "Verantwoordelijke",
// ---- Vooronderzoek ------------------------------------------------------
"pre.rubrik": "Vooronderzoek — voordat het werk begint",
"pre.historik.fraga":
"Is de voertuighistorie gecontroleerd? (eerdere werkzaamheden, terugkerende storingen, TSB's, campagnes)",
"pre.historik.ja": "Ja — gecontroleerd",
"pre.historik.nej": "Nee",
"pre.historik.skal": "Reden waarom de historie niet is gecontroleerd (verplicht)",
"pre.historik.relevant": "Relevante eerdere werkzaamheden (optioneel — oorzakelijke keten)",
"pre.matarstallning": "Kilometerstand",
"pre.fotografera": "Instrumentenpaneel fotograferen",
"pre.felbeskrivning": "Storingsbeschrijving van de klant geverifieerd",
"pre.observationer": "Nog iets bij de inname?",
// ---- Handelingen --------------------------------------------------------
"handling.spara": "Opslaan",
"handling.avbryt": "Annuleren",
"handling.fortsatt": "Doorgaan",
"handling.tillbaka": "Terug",
"handling.dokumentera": "Documenteren",
"handling.fotografera": "Fotograferen",
"handling.spela_in": "Video opnemen",
"handling.undantag": "Een uitzondering documenteren",
"handling.undantag.skal": "Reden voor de uitzondering (verplicht)",
"handling.exportera": "Exporteren",
"handling.skriv_ut": "Afdrukken",
// ---- Meting -------------------------------------------------------------
"matning.varde": "Waarde",
"matning.enhet": "Eenheid",
"matning.matdon": "Meetmiddel",
"matning.matdon.valj": "Meetmiddel kiezen",
"matning.matdon.okant": "Onbekend meetmiddel. Registreren voordat de meting wordt opgeslagen.",
"matning.kalibrerad_till": "Gekalibreerd tot",
// ---- Rapport ------------------------------------------------------------
"rapport.rubrik": "Zaakrapport",
"rapport.sammanfattning": "Samenvatting",
"rapport.evidens": "Bewijs",
"rapport.atgarder": "Maatregelen",
"rapport.harledd":
"Afgeleid uit het zaaklogboek. Waarnemingen en metingen worden weergegeven zonder conclusies waarvoor de onderbouwing ontbreekt.",
// ---- Taal ---------------------------------------------------------------
"sprak.valj": "Taal",
"sprak.granskat": "Gecontroleerd",
"sprak.ogranskat": "Niet gecontroleerd",
"sprak.tackning": "{procent} % van de interface",
"metodik.ogranskad":
"De proceduretekst is niet gecontroleerd door een technisch specialist in het {sprak}. Stappen en controlepunten worden in het Engels weergegeven waar geen gecontroleerde vertaling bestaat — een ongecontroleerde vertaling van een veiligheidsinstructie is slechter dan een anderstalige, omdat die er niet anderstalig uitziet.",
"metodik.pa_engelska": "Weergegeven in het Engels — geen gecontroleerde vertaling in het {sprak}",
};