1ba5aaaefa
Fyra av granskningens fynd åtgärdade, i bevisvärdesordning. HASHKEDJAN (ALVA-SPEC-070). Triggrar skyddar loggen mot applikationen, inte mot den som äger databasen — det var granskningens allvarligaste invändning mot ett system vars hela värde är bevisvärde. Varje händelse bär nu en hash av sitt innehåll och föregående händelses hash, beräknad av servern vid insättningen. All skrivning går genom en enda kedjande funktion; en händelse vid sidan av kedjan är ett hål i beviset, så den bekväma vägen förbi finns inte. Digest tas över den LAGRADE händelsen, efter kryptering: verifieringen ska kunna räkna om den ur databasen för all framtid, och krypto-shredding förstör nycklar, inte rader, så kedjan överlever en radering. Radlås per ärende hindrar att två samtidiga batchar forkar kedjan — en falsk larmande verifiering avfärdas snart som trasig, och då är den värdelös. Integrationstestet provar hotmodellen ordagrant: triggern släpps, en rad ändras med full databasbehörighet, triggern återskapas. Verifieringen pekar ut raden — inte bara att något är fel, utan vilken. FÖRSEGLINGEN. Avslut skriver kedjans rot och en HMAC med en nyckel som aldrig finns i databasen, i samma transaktion som avslutshändelsen. Den som räknar om hela kedjan efter sin ändring stoppas av att förseglingen inte går att räkna om utan nyckeln. Engångs: triggern vägrar ändra en satt försegling. Svaret säger vad det bevisar och inte — innehållet är oförändrat sedan mottagandet, ingenting om tiden före, ingenting om sanningshalten. Den texten följer med in i varje rapport som citerar svaret, för det är precis den skillnad en motpartsjurist annars hittar. SIGNATUREN. Fältet hette signatur men var teknikerns egen text — det inbjöd en jurist att tro något som inte gällde. Det skrivs nu ur verifierad token som övriga härkomstfält och intygar exakt vad det kan intyga: vem som var inloggad när avslutet togs emot. SÄKERHETSNIVÅN (ALVA-SPEC-071). Var teknikerns fria val — ett självskattat värde som ser ut som en mätning. Nu ett tak härlett ur underlaget: hög kräver reproducerat symptom OCH spårbart mätvärde ur mätdonsregistret; enbart observationer bär inte ens medel. Teknikern kan sänka men aldrig höja — asymmetrin är poängen, ärlig osäkerhet är information. Grinden spärrar påståenden över taket på alla tio språken, och gränssnittet visar taket medan arbetet pågår i stället för att spara beskedet till avslutsknappen. "Delvis reproducerat" bär inte hög: delvis är ett annat ord för att felet inte är förstått. Taket bet direkt i två av våra egna testfixturer som påstod hög utan spårbart mätdon — vilket är regeln som fungerar, inte testet som är fel. Genomgången avslöjade följdkravet: vid medel/låg kräver panelen att teknikern anger vilka ytterligare kontroller som skulle stärka bedömningen, och det fältet fylls nu i som en tekniker skulle. Kvar ur granskningens lista, medvetet: extern förankring (RFC 3161), klienthashat foto vid upptagning, gränsvärden som data, OIDC/SAML. 766 tester, 200 integrationskontroller mot riktig Postgres — inklusive sabotage som databasägare — genomgång 4/4, portalspärr, typkontroll, lint och artefaktmätning gröna. Utgåva 3.3, API-specen uppdaterad, åtgärderna bokförda i panelrapportens bilaga A. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt
142 lines
8.2 KiB
JavaScript
142 lines
8.2 KiB
JavaScript
// ALVA-SPEC-060 · Italiano.
|
|
//
|
|
// I pulsanti usano l'imperativo breve («Salva», «Annulla»), come vuole
|
|
// la convenzione delle interfacce italiane; le istruzioni all'interno
|
|
// delle frasi restano all'infinito («Fotografare il contachilometri»),
|
|
// senza rivolgersi all'operatore — ALVA-SPEC-001 §7.
|
|
//
|
|
// `granskat: false`: l'interfaccia è tradotta, il testo delle procedure
|
|
// non è revisionato da uno specialista. Vedi index.mjs.
|
|
|
|
export const IT = {
|
|
// ---- Gradi di evidenza --------------------------------------------------
|
|
"evidens.E1": "Osservazione",
|
|
"evidens.E2": "Fotografia",
|
|
"evidens.E3": "Video con audio",
|
|
"evidens.E4": "Misurazione, strumento tarato",
|
|
"evidens.E5": "Documento",
|
|
"evidens.ej_kalibrerad": "taratura mancante o scaduta",
|
|
"evidens.ej_angivet": "strumento non indicato",
|
|
"evidens.ej_fotograferad": "inserito, non fotografato",
|
|
|
|
// ---- Il controllo di chiusura -------------------------------------------
|
|
"grind.objekt": "Identificazione del veicolo o dell'oggetto verificata",
|
|
"grind.historik": "Storico del veicolo verificato o motivato",
|
|
"grind.historik.nekad": "Un controllo dello storico rifiutato richiede un motivo indicato.",
|
|
"grind.historik.saknas": "Nessun controllo dello storico documentato.",
|
|
"grind.matarstallning.ingaende": "Chilometraggio in accettazione fotografato",
|
|
"grind.matarstallning.utgaende": "Chilometraggio alla riconsegna fotografato",
|
|
"grind.matarstallning.saknas": "Nessun chilometraggio documentato.",
|
|
"grind.matarstallning.ej_foto":
|
|
"Il chilometraggio è inserito ma non fotografato. Fotografare il contachilometri, oppure indicare perché non è possibile.",
|
|
"grind.reproducering": "Verifica del sintomo: riprodotto, oppure documentato come non riproducibile",
|
|
"grind.felorsak": "Analisi della causa radice documentata",
|
|
"grind.atgard": "Intervento documentato o motivato",
|
|
"grind.atgard.saknas": "Non è documentato né un intervento eseguito né un motivo della sua assenza.",
|
|
"grind.kundbeslut": "Decisione del cliente sulla proposta registrata",
|
|
"grind.kundbeslut.avbojt": "Lavoro eseguito nonostante una proposta rifiutata",
|
|
"grind.kundbeslut.avbojt.detalj":
|
|
"Il cliente ha rifiutato la proposta, ma risulta documentato del lavoro come eseguito.",
|
|
"grind.kvalitetskontroll": "Controllo qualità eseguito — sintomo verificato",
|
|
"grind.kontroller": "Punti di controllo della metodologia: evidenza, oppure deroga documentata",
|
|
"grind.foton": "Fotografie presenti per i controlli che le richiedono",
|
|
"grind.slutsats": "Conclusione (ALVA-RULE-200)",
|
|
"grind.hogvolt.behorighet": "Abilitazione alta tensione confermata",
|
|
"grind.hogvolt.spanningslos": "Veicolo messo fuori tensione secondo la procedura del costruttore",
|
|
"grind.regelpaket": "La firma del pacchetto di regole non corrisponde — chiusura bloccata.",
|
|
"grind.regelpaket.osignerat": "È in uso un pacchetto di regole esterno privo di firma — chiusura bloccata.",
|
|
"grind.evidens": "Livello di evidenza superiore a E0",
|
|
"grind.evidens.saknas": "Nel registro non è presente alcuna evidenza.",
|
|
"grind.foton.detalj": "{kontroller} controlli richiedono una fotografia, {foton} fotografie nel registro.",
|
|
"grind.sparr.ej_uppfyllt": "Il requisito di sicurezza non è soddisfatto.",
|
|
"grind.arendetyp.okant": "Requisito sconosciuto nel pacchetto di regole: {krav}",
|
|
"grind.arendetyp.krav": "Requisito per questo tipo di pratica: {krav}",
|
|
"grind.sakerhet": "Livello di confidenza entro quanto sostiene l'evidenza",
|
|
"grind.sakerhet.detalj": "La confidenza indicata ({niva}) supera quanto sostiene l'evidenza ({tak}). Integrare l'evidenza, oppure abbassare il livello — l'incertezza onesta è informazione.",
|
|
|
|
|
|
// ---- La conclusione (ALVA-RULE-200) -------------------------------------
|
|
"slutsats.rubrik": "Conclusione",
|
|
"slutsats.konstaterat": "Che cosa è stato accertato",
|
|
"slutsats.evidens": "Quale evidenza lo sostiene",
|
|
"slutsats.avfardat": "Quali ipotesi sono state escluse, e perché",
|
|
"slutsats.osakert": "Che cosa resta incerto",
|
|
"slutsats.ickesvar":
|
|
"Questa non è una conclusione. Indicare che cosa è stato accertato e quale evidenza lo sostiene.",
|
|
"slutsats.falt.motivering": "Motivazione",
|
|
"slutsats.falt.motivering_ej": "Motivo per cui la causa non è stata accertata",
|
|
"slutsats.falt.uteslutet": "Alternative escluse",
|
|
"slutsats.falt.kvarstaende": "Incertezza residua",
|
|
"slutsats.falt.atgardsval": "Scelta dell'intervento",
|
|
"slutsats.saknas": "{falt} manca.",
|
|
"slutsats.ickesvar.falt": "{falt}: «{text}» non è una motivazione. Indicare che cosa vale realmente, e perché.",
|
|
"slutsats.for_kort": "{falt} è troppo breve ({langd} su almeno {minsta} caratteri) per poter essere verificato in seguito.",
|
|
"slutsats.utan_varfor": "{falt} indica il che cosa, non il perché. Collegare la conclusione all'evidenza — che cosa in essa la sostiene?",
|
|
"slutsats.utan_slutsats": "La pratica non può essere chiusa senza una conclusione. Indicare perché la conclusione discende dall'evidenza.",
|
|
"slutsats.hypotes_obemott": "L'ipotesi «{text}» è presente nel registro ma non viene trattata. Indicare perché è stata esclusa, o perché resta aperta.",
|
|
|
|
|
|
// ---- Flusso della pratica -----------------------------------------------
|
|
"arende.nytt": "Nuova pratica",
|
|
"arende.oppna": "Pratiche aperte",
|
|
"arende.avslutade": "Pratiche chiuse",
|
|
"arende.avsluta": "Chiudi la pratica",
|
|
"arende.avslutat": "Pratica chiusa",
|
|
"arende.kan_ej_avslutas": "La pratica non può ancora essere chiusa",
|
|
"arende.hinder": "Da completare prima della chiusura",
|
|
"arende.overlamna": "Trasferisci",
|
|
"arende.ansvarig": "Responsabile",
|
|
|
|
// ---- Controllo preliminare ----------------------------------------------
|
|
"pre.rubrik": "Controllo preliminare — prima dell'inizio del lavoro",
|
|
"pre.historik.fraga":
|
|
"Lo storico del veicolo è stato verificato? (lavori precedenti, guasti ricorrenti, TSB, campagne)",
|
|
"pre.historik.ja": "Sì — verificato",
|
|
"pre.historik.nej": "No",
|
|
"pre.historik.skal": "Motivo per cui lo storico non è stato verificato (obbligatorio)",
|
|
"pre.historik.relevant": "Lavori precedenti rilevanti (facoltativo — catena causale)",
|
|
"pre.matarstallning": "Chilometraggio",
|
|
"pre.fotografera": "Fotografa il quadro strumenti",
|
|
"pre.felbeskrivning": "Descrizione del guasto del cliente verificata",
|
|
"pre.observationer": "Altro in fase di accettazione?",
|
|
|
|
// ---- Azioni -------------------------------------------------------------
|
|
"handling.spara": "Salva",
|
|
"handling.avbryt": "Annulla",
|
|
"handling.fortsatt": "Continua",
|
|
"handling.tillbaka": "Indietro",
|
|
"handling.dokumentera": "Documenta",
|
|
"handling.fotografera": "Fotografa",
|
|
"handling.spela_in": "Registra video",
|
|
"handling.undantag": "Documenta una deroga",
|
|
"handling.undantag.skal": "Motivo della deroga (obbligatorio)",
|
|
"handling.exportera": "Esporta",
|
|
"handling.skriv_ut": "Stampa",
|
|
|
|
// ---- Misurazione --------------------------------------------------------
|
|
"matning.varde": "Valore",
|
|
"matning.enhet": "Unità",
|
|
"matning.matdon": "Strumento",
|
|
"matning.matdon.valj": "Seleziona strumento",
|
|
"matning.matdon.okant": "Strumento sconosciuto. Registrarlo prima di salvare la misurazione.",
|
|
"matning.kalibrerad_till": "Tarato fino al",
|
|
|
|
// ---- Rapporto -----------------------------------------------------------
|
|
"rapport.rubrik": "Rapporto della pratica",
|
|
"rapport.sammanfattning": "Sintesi",
|
|
"rapport.evidens": "Evidenze",
|
|
"rapport.atgarder": "Interventi",
|
|
"rapport.harledd":
|
|
"Derivato dal registro della pratica. Le osservazioni e le misurazioni sono riportate senza conclusioni prive di fondamento.",
|
|
|
|
// ---- Lingua -------------------------------------------------------------
|
|
"sprak.valj": "Lingua",
|
|
"sprak.granskat": "Revisionato",
|
|
"sprak.ogranskat": "Non revisionato",
|
|
"sprak.tackning": "{procent} % dell'interfaccia",
|
|
|
|
"metodik.ogranskad":
|
|
"Il testo delle procedure non è stato revisionato da uno specialista tecnico in {sprak}. I passaggi e i punti di controllo sono mostrati in inglese dove non esiste una traduzione revisionata — una traduzione non revisionata di un'istruzione di sicurezza è peggiore di una in lingua straniera, perché non sembra straniera.",
|
|
"metodik.pa_engelska": "Mostrato in inglese — nessuna traduzione revisionata in {sprak}",
|
|
};
|