[Bug] De vertaalpoort ziet een veldsprong niet — 23 onvertaalde regels staan er nu al #809
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#809
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
De poort
check-hardcoded-textvolgt argumenten terug naar hun declaratie, maarverliest het spoor zodra een string via een VELD van een object reist. Gemeten
tijdens #803: dat gat is dichtbaar, en erachter staan 23 échte overtredingen.
Het patroon.
lib/widgets/dialogs/command_palette.dartrendert desneltoetshint met
_shortcutHint(cmd.shortcut!). De put ligt binnen_shortcutHint(Text(text)), maarcmdis een lokale variabele zonderopgelost type, dus komt de datastroomanalyse niet bij
PaletteCommand.shortcuten blijft
shortcut: '…'op de aanroepplaats onzichtbaar. Dit staat als bekendeblinde vlek in de kop van
tool/check_hardcoded_text.dart("Strings die via eenlijst, een veld of een
Mapreizen").Hoe het te dichten is. Langs dezelfde weg als
methodOwnersal doet voor eenaanroep op een variabele: declareert precies één klasse die veldnaam, dan is de
toewijzing eenduidig. Concreet een
fieldOwners-afbeelding op_Index(af teleiden uit de bestaande
fields) plus een tak in_originsOfvoor eenPrefixedIdentifier/PropertyAccessop een ander doel danthis/widget,inclusief de
!-vorm (PostfixExpression). Werkende patch is bij #803 gemaakt engemeten, ~94 toegevoegde regels; hij is daar weer uit gehaald omdat de bevindingen
eronder een eigen afweging vragen.
Wat eronder vandaan komt: 23 overtredingen, verdeling services 14, models 9.
Ze zijn echt, niet cosmetisch:
lib/services/reference_standards.dart— de veldenbundledenlicenceworden in
settings_dialog_standards.dartmet een káleText()gerenderd.Dat zijn zeven Nederlandse beschrijvingen ("De checklist-index: per test het
stabiele id, de canonieke titel en de categorie…") die in 31 talen Nederlands
blijven, plus de licentie-aanduidingen (
CC-BY-SA-4.0,MITRE Terms of Use,EUPL-1.2).lib/models/settings.dart— negen hexkleuren (#DC2626,#FFFFFF, …).Waarom dit een eigen issue is. De beschrijvingen zijn proza: dat zijn ~7
bronstrings × 31 talen, en er zit een keuze onder die niet vanzelf spreekt —
horen catalogusbeschrijvingen in l10n, of zijn het referentiedata die net als de
MASTG-titels ongemoeid horen te blijven? De licentie-aanduidingen en de
hexkleuren zijn identifiers en gaan via
d()naarunchangedInAllLanguages, datdeel is mechanisch. Die twee vragen niet dezelfde beslissing.
Waar te beginnen. Eerst de vraag over de beschrijvingen beantwoorden
(productowner + bewaker), dán de patch terugzetten en de poort groen maken. De
patch los terugzetten laat
make checkrood achter.Herkomst: gevonden en gemeten tijdens #803, bewust niet daar opgelost.
Opgepakt. Tak: fix/veldsprong-vertaalpoort-809.
Verwachte reikwijdte:
Eerste stap is de vraag uit het issue beantwoorden voordat er iets vertaald wordt, en per bevinding nagaan of hij écht gerenderd wordt — de eenduidige-bezitter-heuristiek kan een veld aan de verkeerde klasse knopen.
Gemerged als
6b8e5fb0(PR #813), op main geverifieerd.De poort volgt nu een veldsprong, langs de weg die het issue voorstelde. Bewust streng gehouden: alleen bij precies één bezitter van de veldnaam.
nameentitlestaan op tientallen klassen en blijven dus buiten beeld — een melding die naar het verkeerde bestand wijst kost meer dan een gemiste. Daar staat een test op.De schatting van 23 klopte niet helemaal. Het waren er 14 om op te lossen en 9 om te herkennen als ruis:
unchangedInAllLanguages.ThemeProfiletoont zijn waarden naast het label, dus#FFCC00gold als zichtbare tekst — mét letters erin, dus de lettertoets ving het niet. En onoplosbaar: de presets zijnconstin lib/models, en een model importeert geen l10n. Een kleurcode staat nu in dezelfde categorie als•en%.De vraag uit het issue — interfaceproza of referentiedata — heeft een scherpere grens dan hij leek. De canonieke titels van MASTG en WSTG blijven onvertaald omdát vertalen ze onvindbaar maakt bij de bron. Een zin die wíj schreven over wat we bundelen valt daar niet onder.
d()staat op de renderplek en niet in de catalogus: die isconst, en lib/services hoort geen l10n te importeren — de erkende indirecte vorm, dezelfde alsEditorField(label: …).Kanttekening bij de uitvoering. Halverwege zette een andere sessie de gedeelde werkkopie op
fix/testcache-laadfout-798, waardoor mijn eerste twee commits op díé tak belandden. Ze staan daar nog. Deze PR is opnieuw opgebouwd in een aparte worktree vanaf main en bevat nul regels #798-werk, maar die tak draagt wél mijn commits — bij een rebase op main vallen ze vanzelf weg.