Commit Graph

3 Commits

Author SHA1 Message Date
Claude 322d228c80 ALVA-RULE-200 gällde bara på svenska — nu på tio språk
Slutsatsgranskningen avvisar icke-svar med en ordlista: "klart", "ok",
"trasig". Listan var enbart svensk. En tysk tekniker som skrev
"erledigt" i motiveringsfältet passerade filtret — inte därför att
texten dög, utan därför att filtret bara kände igen "klart". Grinden
släppte igenom avslutet och rapporten såg fullständig ut.

Det var alltså inte en översättningsbrist utan ett hål i den regel som
är hela produktens värde, och hålet fanns på varje marknad utom en.

Samma sak åt andra hållet: orsaksorden som visar att en text innehåller
ett resonemang var svenska, liksom evidensorden. Engelskans "photo"
innehåller inte "foto", så "the photo shows the arcing at pin 14"
räknades inte som en hänvisning till underlag. Följden hade varit värre
än ett släppt avslut — en korrekt skriven motivering hade nekats, och en
spärr som nekar rätt svar är en spärr man lär sig kringgå.

Listorna ligger nu i sprak/ord.mjs, per språk, och slås ihop till en
union i stället för att väljas efter inställning. Ett icke-svar är ett
icke-svar oavsett språk — jämförelsen görs mot hela fältet, så en
tekniker som skriver på ett annat språk än organisationens ska inte
kunna passera på den vägen. Orsaks- och evidensorden går åt motsatt
håll: unionen gör kontrollen mer tillåtande, aldrig strängare, och det
är rätt riktning att fela åt.

Medvetet utanför listorna: "inget", "keine", "none". Att ingenting
kvarstår osäkert är ett giltigt och ofta korrekt svar; att göra det till
ett icke-svar hade tvingat fram utfyllnad, och utfyllnad är sämre än ett
kort sant svar. Ett test låser det.

Bristernas texter kommer nu ur katalogen och bär sin nyckel, precis som
grindens hinder. Fältnamnet översätts med resten av meningen —
"Begründung fehlt.", inte "Motivering fehlt.".

Mutationsprövat: med listan återställd till enbart svenska föll nio
tester, ett per språk. Svenska och engelska är genomgångna; övriga
listor är en första uppsättning och står som ogranskade i filhuvudet,
av samma skäl som `granskat` i SPRAK — de är metodik, inte gränssnitt.

597 tester, 186 integrationskontroller, typkontroll, lint och genomgång
gröna.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt
2026-08-06 16:44:57 +00:00
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
Claude 995858174d Språk: engelska som källa, tio EU-språk, och en struktur som inte får översättas
Engelska är standard- och källspråk. Nio översättningar till: tyska,
franska, spanska, italienska, polska, nederländska, portugisiska,
rumänska och svenska.

Två sorters text, behandlade olika. GRÄNSSNITTSTEXT faller tillbaka på
engelska tyst — en engelsk knapp hos en tysk användare är irriterande
men ofarlig. METODIKINNEHÅLL gör det aldrig tyst: det märks som
ogranskat, med språket namngivet. Skälet står i modulhuvudet och är hela
poängen med uppdelningen: engelska SYNS som ett annat språk, medan en
felaktig översättning ser ut som en instruktion. En maskinöversatt
säkerhetsanvisning som ingen fackman läst är därför sämre än en engelsk.
Bara engelska och svenska är `granskat: true`.

Strukturen översätts inte. ALVA-SPEC-001 §2 slår fast att fasnamn och
statusord skrivs likadant i varje land — en revisor ska kunna läsa en
rumänsk och en tysk rapport utan att veta vilket språk verkstaden
arbetar på. Det hade gått att skriva in dem oöversatta i varje katalog
och låsa dem med ett test; det är svagare, för en översättare som ser
"Passed" i den polska filen översätter den, och testet blir en tvist i
stället för en regel. Nycklarna saknas i stället helt i
översättningarna och `t()` hämtar dem alltid ur engelskan. Då finns
ingenting att översätta fel.

Testet räknar inte bara nycklar — det går att få grönt genom att
kopiera engelskan till tio filer. Det prövar fyra saker: att katalogen
är komplett, att strukturen inte är översatt, att inget språk är
engelska i förklädnad (tak på 25 % identiska strängar), och att
variabelhållarna överlevde. {procent} som blir {percent} i den franska
filen ger inget fel — den ger "{percent} % de l'interface" på skärmen,
för alltid.

Mutationsprövat: en borttagen nyckel, en översatt statussträng, en
trasig variabelhållare och en polsk fil som var en kopia av engelskan
gav sex röda tester. Polskan har dessutom en egen anmärkning i
filhuvudet: {sprak} sätter in "Polski" i nominativ, och "w języku
Polski" är fel — meningarna är därför omskrivna så att namnet står som
etikett i parentes.

581 tester, typkontroll och lint rena.

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