feat(l10n): een poort die Nederlandse doorvoer als vertaling betrapt #1531
No reviewers
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck!1531
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/l10n-nl-doorvoer"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Werkt aan #1526 — de poort. Het opruimen van wat hij vindt volgt in een aparte ronde.
Waarom
l10n_untranslated_testlet op Engelse zinnen als vertaling. Een waarde die letterlijk gelijk is aan de Nederlandse bronsleutel glipt er ongemerkt langs. Gevonden bij #1524, waar in het Klingon een compleet LibrePlan-blok in het Nederlands bleek te staan.De poort
tool/check_l10n_dutch_passthrough.dart+make check-l10n-passthrough. Flutter-vrij, AST-gemeten, in de stijl van de twee poorten ernaast. Vergelijkt twee families: ded()-brontabellen (sleutel == waarde) en det()-tabel (waarde == de nl-waarde bij dezelfde sleutel).Drempel van drie woorden, dezelfde afweging als de bestaande wachttest. Zonder drempel ~1.800 treffers, grotendeels ruis (
Mermaid,Gantt,Audio,OK). Mét drempel 435. De prijs staat er hardop bij: een onvertaalde bron van één of twee woorden glipt erdoor.Uitzonderingen per sleutel, niet per taal (14 stuks). Criterium in de code: de bronzin bevat geen enkel vertaalbaar Nederlands woord — een eigennaam, een vastgelegde vakterm, een plaatshouder, of een Engelse uitdrukking die het Nederlands zélf onvertaald leende (
Access key ID,DPIA / privacy impact assessment,Sprint review / demo). Per taal uitzonderen zou betekenen dat "tlh mag dit" de vólgende fout in tlh toedekt.In
check-fullmet ratchet 394, niet incheck: het oordeel is een tekstheuristiek, anders dan de pariteitspoort uit #1523 (exacte verzamelingsvergelijking, nul tolerantie, wél incheck). Dezelfde ratchet zit in de test, die élke commit meedraait, dus het strengste deel — er mag niets bijkomen — geldt overal.Wat hij vindt: 394 regels, 38 sleutels, 30 talen
360 daarvan zijn één blok: de LibrePlan-connector, 12 sleutels × 30 talen. Daar zit ook de privacybelofte in — "LibrePlan-connector is optioneel en staat standaard uit…", "Alleen voor servers op het eigen netwerk (LAN)…". Een gebruiker die geen Nederlands leest, krijgt die belofte dus in een taal die hij niet spreekt. Dat is meer dan een schoonheidsfout.
De rest:
Alles blijft op dit apparaatin vijf talen, 21 eigen sleutels in het Fries (het auteursrechtenscanblok en editor-labels), en twee Keynote-labels in het Klingon.Bewust níet uitgezonderd, ook al lijken ze gelijk:
Smal (860 px)(Deens/Zweeds kennen "smal" echt),ISO 27001 · Annex A — Organisatorisch (A.5)(Duits kent "Organisatorisch"),Forgejo of Gitea(Fries/Papiaments kennen "of"). Elk draagt een woord dat elders wél vertaald hoort te worden, dus een sleutel-uitzondering zou te breed zijn. De opruimronde beslist per geval.Tests
12 tests op een mini-repo, twee richtingen: geen alarm op een leenwoord, een korte gelijke waarde,
nlzelf of een echte vertaling; wél alarm op een geplante Nederlandse zin in elk van de drie tabellen, en apart geteld per taal.Poorten
make checkgroen.make check-secretsgroen,make sastgroen (0 findings).