Språkrevision, mekanisk del: en apostrofform per katalog

Revisionens maskinella genomgång fann blandade apostrofformer inom
en-, fr- och it-katalogerna: de äldre nycklarna använde rak apostrof
(') medan webb.-nycklarna använder typografisk (’). Normaliserat till
typografisk genomgående — 5 ersättningar i engelskan, 41 i franskan,
17 i italienskan. Övriga sju kataloger var redan enhetliga, utan
otrimmade värden, dubbelblanksteg eller kontrolltecken.

Ordlistorna i ord.mjs rörs inte: de jämförs mot användarens inmatning,
och en typografisk apostrof där hade slutat matcha det som skrivs på
ett tangentbord.

Granskningen per språk pågår; fynden bokförs i ALVA-DOC-0008 när de
är verifierade.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt
This commit is contained in:
Claude
2026-08-06 23:37:47 +00:00
parent 0068ef9844
commit d1753febeb
3 changed files with 47 additions and 47 deletions
+5 -5
View File
@@ -70,7 +70,7 @@ export const EN = {
"grind.foton": "Photographs present for checks that require them",
"grind.slutsats": "Closing statement (ALVA-RULE-200)",
"grind.hogvolt.behorighet": "High-voltage authorisation confirmed",
"grind.hogvolt.spanningslos": "Vehicle de-energised per the manufacturer's procedure",
"grind.hogvolt.spanningslos": "Vehicle de-energised per the manufacturers procedure",
"grind.regelpaket": "Rule package signature does not match — closing blocked.",
"grind.regelpaket.osignerat": "An external rule package is in use without a signature — closing blocked.",
"grind.evidens": "Evidence above E0",
@@ -116,14 +116,14 @@ export const EN = {
// ---- Pre-diagnostics ------------------------------------------------------
"pre.rubrik": "Pre-diagnostics — before the work begins",
"pre.historik.fraga": "Has the vehicle's history been checked? (previous work, recurring faults, TSBs, campaigns)",
"pre.historik.fraga": "Has the vehicles history been checked? (previous work, recurring faults, TSBs, campaigns)",
"pre.historik.ja": "Yes — checked",
"pre.historik.nej": "No",
"pre.historik.skal": "Reason the history was not checked (required)",
"pre.historik.relevant": "Relevant previous work (optional — causal chain)",
"pre.matarstallning": "Odometer reading",
"pre.fotografera": "Photograph the instrument panel",
"pre.felbeskrivning": "Customer's description verified",
"pre.felbeskrivning": "Customers description verified",
"pre.observationer": "Anything else on receipt?",
// ---- Common actions --------------------------------------------------------
@@ -161,7 +161,7 @@ export const EN = {
"sprak.tackning": "{procent} % of the interface",
// Shown when the methodology content has not been reviewed by a
// specialist in the user's language. Deliberately specific: a general
// specialist in the users language. Deliberately specific: a general
// disclaimer is read by nobody.
"metodik.ogranskad":
"Procedure text has not been reviewed by a technical specialist in {sprak}. Steps and checks are shown in English where no reviewed translation exists — an unreviewed translation of a safety instruction is worse than a foreign-language one, because it does not look foreign.",
@@ -173,7 +173,7 @@ export const EN = {
// speaks through the same catalogue. Keys follow the page order. The
// portal chrome is deliberately absent: the portal is the product, and
// its language is governed by account and organization, not by the
// visitor's footer choice.
// visitors footer choice.
"webb.nav.oversikt": "Overview",
"webb.ansok": "Request account",
"webb.loggain": "Login",
+27 -27
View File
@@ -1,13 +1,13 @@
// ALVA-SPEC-060 · Français.
//
// Les instructions sont à l'infinitif, sans s'adresser à l'utilisateur :
// Les instructions sont à linfinitif, sans sadresser à lutilisateur :
// « Photographier le compteur », et non « Photographiez le compteur ».
// C'est le registre des consignes techniques, et cela respecte
// ALVA-SPEC-001 §7 — le système signale un état, il ne s'adresse pas à
// l'opérateur.
// Cest le registre des consignes techniques, et cela respecte
// ALVA-SPEC-001 §7 — le système signale un état, il ne sadresse pas à
// lopérateur.
//
// `granskat: false` : l'interface est traduite, le texte de procédure
// n'est pas relu par un spécialiste. Voir index.mjs.
// `granskat: false` : linterface est traduite, le texte de procédure
// nest pas relu par un spécialiste. Voir index.mjs.
export const FR = {
// ---- Degrés de preuve ---------------------------------------------------
@@ -21,35 +21,35 @@ export const FR = {
"evidens.ej_fotograferad": "saisi, non photographié",
// ---- Le contrôle de clôture ---------------------------------------------
"grind.objekt": "Identification du véhicule ou de l'objet vérifiée",
"grind.objekt": "Identification du véhicule ou de lobjet vérifiée",
"grind.historik": "Historique du véhicule vérifié ou justifié",
"grind.historik.nekad": "Un contrôle d'historique refusé exige un motif indiqué.",
"grind.historik.saknas": "Aucun contrôle d'historique documenté.",
"grind.historik.nekad": "Un contrôle dhistorique refusé exige un motif indiqué.",
"grind.historik.saknas": "Aucun contrôle dhistorique documenté.",
"grind.matarstallning.ingaende": "Kilométrage à la réception photographié",
"grind.matarstallning.utgaende": "Kilométrage à la restitution photographié",
"grind.matarstallning.saknas": "Aucun kilométrage documenté.",
"grind.matarstallning.ej_foto":
"Le kilométrage est saisi mais non photographié. Photographier le compteur, ou indiquer pourquoi cela n'est pas possible.",
"Le kilométrage est saisi mais non photographié. Photographier le compteur, ou indiquer pourquoi cela nest pas possible.",
"grind.reproducering": "Vérification du symptôme : reproduit, ou documenté comme non reproductible",
"grind.felorsak": "Analyse de la cause racine documentée",
"grind.atgard": "Action corrective documentée ou justifiée",
"grind.atgard.saknas": "Ni action réalisée ni motif de son absence n'est documenté.",
"grind.atgard.saknas": "Ni action réalisée ni motif de son absence nest documenté.",
"grind.kundbeslut": "Décision du client sur la proposition enregistrée",
"grind.kundbeslut.avbojt": "Travaux réalisés malgré une proposition refusée",
"grind.kundbeslut.avbojt.detalj":
"Le client a refusé la proposition, mais des travaux sont documentés comme réalisés.",
"grind.kvalitetskontroll": "Contrôle qualité effectué — symptôme vérifié",
"grind.kontroller": "Points de contrôle de la méthode : preuve, ou dérogation documentée",
"grind.foton": "Photographies présentes pour les contrôles qui l'exigent",
"grind.foton": "Photographies présentes pour les contrôles qui lexigent",
"grind.slutsats": "Conclusion (ALVA-RULE-200)",
"grind.hogvolt.behorighet": "Habilitation haute tension confirmée",
"grind.hogvolt.spanningslos": "Véhicule consigné hors tension selon la procédure du constructeur",
"grind.regelpaket": "La signature du paquet de règles ne correspond pas — clôture bloquée.",
"grind.regelpaket.osignerat": "Un paquet de règles externe est utilisé sans signature — clôture bloquée.",
"grind.evidens": "Niveau de preuve supérieur à E0",
"grind.evidens.saknas": "Aucune preuve d'aucune sorte ne figure dans le journal.",
"grind.evidens.saknas": "Aucune preuve daucune sorte ne figure dans le journal.",
"grind.foton.detalj": "{kontroller} contrôles exigent une photographie, {foton} photographies dans le journal.",
"grind.sparr.ej_uppfyllt": "L'exigence de sécurité n'est pas satisfaite.",
"grind.sparr.ej_uppfyllt": "Lexigence de sécurité nest pas satisfaite.",
"grind.arendetyp.okant": "Exigence inconnue dans le paquet de règles : {krav}",
"grind.arendetyp.krav": "Exigence pour ce type de dossier : {krav}",
"grind.sakerhet": "Niveau de confiance dans les limites de ce que les preuves soutiennent",
@@ -59,21 +59,21 @@ export const FR = {
// ---- La conclusion (ALVA-RULE-200) --------------------------------------
"slutsats.rubrik": "Conclusion",
"slutsats.konstaterat": "Ce qui est établi",
"slutsats.evidens": "Quelles preuves l'étayent",
"slutsats.evidens": "Quelles preuves létayent",
"slutsats.avfardat": "Quelles hypothèses ont été écartées, et pourquoi",
"slutsats.osakert": "Ce qui reste incertain",
"slutsats.ickesvar": "Ce n'est pas une conclusion. Indiquer ce qui est établi et quelles preuves l'étayent.",
"slutsats.ickesvar": "Ce nest pas une conclusion. Indiquer ce qui est établi et quelles preuves létayent.",
"slutsats.falt.motivering": "Justification",
"slutsats.falt.motivering_ej": "Motif pour lequel la cause n'a pas pu être établie",
"slutsats.falt.motivering_ej": "Motif pour lequel la cause na pas pu être établie",
"slutsats.falt.uteslutet": "Alternatives écartées",
"slutsats.falt.kvarstaende": "Incertitude restante",
"slutsats.falt.atgardsval": "Choix de l'action",
"slutsats.falt.atgardsval": "Choix de laction",
"slutsats.saknas": "{falt} est absent.",
"slutsats.ickesvar.falt": "{falt} : « {text} » n'est pas un motif. Indiquer ce qui s'applique réellement, et pourquoi.",
"slutsats.ickesvar.falt": "{falt} : « {text} » nest pas un motif. Indiquer ce qui sapplique réellement, et pourquoi.",
"slutsats.for_kort": "{falt} est trop court ({langd} sur au moins {minsta} caractères) pour être vérifiable après coup.",
"slutsats.utan_varfor": "{falt} indique le quoi, mais pas le pourquoi. Relier la conclusion aux preuves — qu'est-ce qui, dans celles-ci, la rend fondée ?",
"slutsats.utan_varfor": "{falt} indique le quoi, mais pas le pourquoi. Relier la conclusion aux preuves — quest-ce qui, dans celles-ci, la rend fondée ?",
"slutsats.utan_slutsats": "Le dossier ne peut pas être clôturé sans conclusion. Indiquer pourquoi la conclusion découle des preuves.",
"slutsats.hypotes_obemott": "L'hypothèse « {text} » figure dans le journal mais n'est pas traitée. Indiquer pourquoi elle a été écartée, ou pourquoi elle reste ouverte.",
"slutsats.hypotes_obemott": "Lhypothèse « {text} » figure dans le journal mais nest pas traitée. Indiquer pourquoi elle a été écartée, ou pourquoi elle reste ouverte.",
// ---- Flux du dossier ----------------------------------------------------
@@ -90,10 +90,10 @@ export const FR = {
// ---- Contrôle préalable -------------------------------------------------
"pre.rubrik": "Contrôle préalable — avant le début des travaux",
"pre.historik.fraga":
"L'historique du véhicule a-t-il été vérifié ? (travaux antérieurs, défauts récurrents, TSB, campagnes)",
"Lhistorique du véhicule a-t-il été vérifié ? (travaux antérieurs, défauts récurrents, TSB, campagnes)",
"pre.historik.ja": "Oui — vérifié",
"pre.historik.nej": "Non",
"pre.historik.skal": "Motif pour lequel l'historique n'a pas été vérifié (obligatoire)",
"pre.historik.skal": "Motif pour lequel lhistorique na pas été vérifié (obligatoire)",
"pre.historik.relevant": "Travaux antérieurs pertinents (facultatif — chaîne causale)",
"pre.matarstallning": "Kilométrage",
"pre.fotografera": "Photographier le tableau de bord",
@@ -118,8 +118,8 @@ export const FR = {
"matning.enhet": "Unité",
"matning.matdon": "Instrument",
"matning.matdon.valj": "Sélectionner un instrument",
"matning.matdon.okant": "Instrument inconnu. L'enregistrer avant de sauvegarder la mesure.",
"matning.kalibrerad_till": "Étalonné jusqu'au",
"matning.matdon.okant": "Instrument inconnu. Lenregistrer avant de sauvegarder la mesure.",
"matning.kalibrerad_till": "Étalonné jusquau",
// ---- Rapport ------------------------------------------------------------
"rapport.rubrik": "Rapport de dossier",
@@ -133,10 +133,10 @@ export const FR = {
"sprak.valj": "Langue",
"sprak.granskat": "Relu",
"sprak.ogranskat": "Non relu",
"sprak.tackning": "{procent} % de l'interface",
"sprak.tackning": "{procent} % de linterface",
"metodik.ogranskad":
"Le texte de procédure n'a pas été relu par un spécialiste technique en {sprak}. Les étapes et les points de contrôle sont affichés en anglais lorsqu'aucune traduction relue n'existe — une traduction non relue d'une consigne de sécurité est pire qu'une consigne en langue étrangère, parce qu'elle n'a pas l'air étrangère.",
"Le texte de procédure na pas été relu par un spécialiste technique en {sprak}. Les étapes et les points de contrôle sont affichés en anglais lorsquaucune traduction relue nexiste — une traduction non relue dune consigne de sécurité est pire quune consigne en langue étrangère, parce quelle na pas lair étrangère.",
"metodik.pa_engelska": "Affiché en anglais — aucune traduction relue en {sprak}",
// ---- Site public (webb.) -----------------------------------------------
+15 -15
View File
@@ -1,11 +1,11 @@
// 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.
// I pulsanti usano limperativo breve («Salva», «Annulla»), come vuole
// la convenzione delle interfacce italiane; le istruzioni allinterno
// delle frasi restano allinfinito («Fotografare il contachilometri»),
// senza rivolgersi alloperatore — ALVA-SPEC-001 §7.
//
// `granskat: false`: l'interfaccia è tradotta, il testo delle procedure
// `granskat: false`: linterfaccia è tradotta, il testo delle procedure
// non è revisionato da uno specialista. Vedi index.mjs.
export const IT = {
@@ -20,7 +20,7 @@ export const IT = {
"evidens.ej_fotograferad": "inserito, non fotografato",
// ---- Il controllo di chiusura -------------------------------------------
"grind.objekt": "Identificazione del veicolo o dell'oggetto verificata",
"grind.objekt": "Identificazione del veicolo o delloggetto 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.",
@@ -51,8 +51,8 @@ export const IT = {
"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.",
"grind.sakerhet": "Livello di confidenza entro quanto sostiene levidenza",
"grind.sakerhet.detalj": "La confidenza indicata ({niva}) supera quanto sostiene levidenza ({tak}). Integrare levidenza, oppure abbassare il livello — lincertezza onesta è informazione.",
// ---- La conclusione (ALVA-RULE-200) -------------------------------------
@@ -67,13 +67,13 @@ export const IT = {
"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.falt.atgardsval": "Scelta dellintervento",
"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.",
"slutsats.utan_varfor": "{falt} indica il che cosa, non il perché. Collegare la conclusione allevidenza — che cosa in essa la sostiene?",
"slutsats.utan_slutsats": "La pratica non può essere chiusa senza una conclusione. Indicare perché la conclusione discende dallevidenza.",
"slutsats.hypotes_obemott": "Lipotesi «{text}» è presente nel registro ma non viene trattata. Indicare perché è stata esclusa, o perché resta aperta.",
// ---- Flusso della pratica -----------------------------------------------
@@ -88,7 +88,7 @@ export const IT = {
"arende.ansvarig": "Responsabile",
// ---- Controllo preliminare ----------------------------------------------
"pre.rubrik": "Controllo preliminare — prima dell'inizio del lavoro",
"pre.rubrik": "Controllo preliminare — prima dellinizio del lavoro",
"pre.historik.fraga":
"Lo storico del veicolo è stato verificato? (lavori precedenti, guasti ricorrenti, TSB, campagne)",
"pre.historik.ja": "Sì — verificato",
@@ -133,10 +133,10 @@ export const IT = {
"sprak.valj": "Lingua",
"sprak.granskat": "Revisionato",
"sprak.ogranskat": "Non revisionato",
"sprak.tackning": "{procent} % dell'interfaccia",
"sprak.tackning": "{procent} % dellinterfaccia",
"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.",
"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 unistruzione di sicurezza è peggiore di una in lingua straniera, perché non sembra straniera.",
"metodik.pa_engelska": "Mostrato in inglese — nessuna traduzione revisionata in {sprak}",
// ---- Sito pubblico (webb.) ---------------------------------------------