[Bug] The empty deck and all 48 templates produce Dutch example content #622
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#622
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?
Found in the pre-publication first-run review.
Reproduce: set the language to English → "New presentation" → read the line under "Template" → choose Empty deck (the default) → give it a title → Create → look at slide 2.
What you see: the dialog is honest — "A template example slides are in Dutch." But the empty deck then produces a slide titled "Agenda" with "Opening en aanleiding / Kern van het verhaal / Vervolg en afspraken": Dutch, in an English app, on the default path that is not presented as a template at all. For contrast, a Scorecard slide generates German example content and the Cockpit dashboard generates English — three different behaviours side by side.
Why this matters now: "48 templates to get you started" is a selling point on the start screen. An English speaker who opens one gets Dutch back and concludes the app is not for them. That the empty deck is Dutch too makes it unavoidable rather than avoidable.
Proposal: at minimum make "Empty deck" genuinely empty (title slide only), so the default path is language-neutral. Repeat the warning the dialog already gives beside "48 templates" on the start screen. Longer term, decide one language for generated example content and make the three paths agree.
Opgepakt. Tak:
fix/leeg-deck-echt-leeg-622. Reikwijdte:deck_template_general.dart(het lege deck echt leeg),deck_template.dart(omschrijving),welcome_screen.dart(de waarschuwing bij de sjabloon-belofte), de 31 vertalingen en de tests.Twee van de drie delen opgelost in
6f7ecd7a(PR #684), op main. Het issue blijft open voor het derde; zie onderaan.Het lege deck is leeg. Alleen een titeldia. Je minimumvoorstel, en het is ook wat de naam belooft: wie een agenda wil, kiest een sjabloon dat er een heeft. De omschrijving werd "Alleen een titelpagina." in alle 31 talen, en de oude sleutel is uit de vertaalbestanden gehaald in plaats van te blijven staan — een sleutel die naar niets meer verwijst is schuld die geen poort ziet.
De waarschuwing staat nu ook waar de belofte gedaan wordt. Onder "N sjablonen om mee te beginnen" op het startscherm hangt dezelfde zin die de dialoog al toonde — letterlijk dezelfde bronstring, dus geen tweede tekst die uit de pas kan gaan lopen en geen 31 nieuwe vertalingen voor iets dat al vertaald was.
De regressietest is breder dan dit ene sjabloon: géén sjabloon mag de oude agendaregels nog dragen. Die terugval is stil — het deck opent gewoon, alleen staat er Nederlands in een Engelse app.
Wat er niet in zit, en waarom niet. Je derde punt — "kies één taal voor gegenereerde voorbeeldinhoud en laat de drie paden het eens worden" — is een productkeuze en geen bug. Scorecard genereert Duits, cockpit Engels, sjablonen Nederlands; welke wint, en of dat de taal van de gebruiker wordt of één vaste, leg ik niet onderweg vast. Daarvoor blijft dit open.
Triage-aantekening bij het openstaande deel. Ik heb de resterende klacht — "Scorecard genereert Duits, Cockpit Engels, sjablonen Nederlands: drie gedragingen naast elkaar" — tegen de huidige code gelegd, en die is verschoven:
scorecard_editor.dart) is volledig vial10n.d()gelokaliseerd; er staat nergens een Duitse contentstring, en een nieuwe scorecard-dia draagt alleen de vaste Engelse kolomkop (ScorecardSpec()), geen voorbeeldregels. De "Duitse voorbeeldinhoud" reproduceert niet — vermoedelijk zag de reviewer de app in het Duits, of het was een van de Nederlandse hints.Wat dan overblijft is één ding, en het is precies wat ik eerder al als productkeuze markeerde: de 48 sjablonen genereren Nederlandse voorbeeldinhoud. Een Engelstalige die er een opent krijgt Nederlands terug. Het lege deck is nu neutraal en de waarschuwing staat bij de belofte (#684), dus de scherpe kant is eraf — maar de sjablonen zelf vertalen is een grote ingreep (48 × inhoud × 31 talen) óf een besluit om ze Nederlands-met-waarschuwing te houden.
Dat besluit leg ik niet onderweg vast; het is aan de producteigenaar. Ik laat het issue daarvoor open. Wil je dat ik de opties met kosten uitwerk, dan doe ik dat als aparte ronde.
Opgepakt: het openstaande derde deel. De productkeuze is inmiddels gemaakt (buiten de tracker om): sjablooninhoud wordt een bestand per taal —
<id>.nl.mdnaast<id>.en.md, zoalsdemo.nl.ocidecknaastdemo.en.ocideck— nooit een derde vertaalmechanisme dat tijdens het genereren kiest. Interface (titels, omschrijvingen van sjablonen) blijft via l10n in alle 31 talen; de inhoud komt in nl en en, andere talen krijgen de Engelse variant. Tak:fix/sjablonen-bestand-per-taal-622.Besluit over het laatste openstaande deel, genomen met de productowner-bril: de sjablonen blijven Nederlands, met de waarschuwing die er nu staat. Het restdeel wordt niet gebouwd.
De redenering. Voorbeeldinhoud is er om overheen te schrijven — haar functie is de opbouw tonen (welke dia's, welke volgorde), niet gelezen te worden. De scherpe kant is sinds #684 weg: het lege deck (de standaardroute) is taalneutraal en de waarschuwing staat op beide plekken waar de belofte wordt gedaan (new_deck_dialog.dart:162 en welcome_screen.dart:114, geverifieerd op main). Wat overblijft is een bekende, aangekondigde eigenschap.
De drie alternatieven kosten elk meer dan ze opleveren:
Wanneer dit besluit kantelt: zodra er ná publicatie echte niet-Nederlandstalige gebruikers over vallen. Dan is de route inhoud-per-taal (nl + en), nooit l10n.
Deel 1 en 2 staan op main (6f7ecd7a, PR #684); deel 3 is hiermee beslist. Dicht.
Het derde deel is klaar en staat op main: merge-commit
3eff8f89(PR #753). Sjablooninhoud is nu een document per taal —assets/templates/<id>.nl.mdnaast<id>.en.md(49 sjablonen × 2 talen), gegenereerd met de eigen serializer en geladen doorTemplateContentService: Nederlands krijgt het Nederlandse document, elke andere interfacetaal het Engelse. De kiezer blijft via l10n in alle 31 talen; de melding zegt voortaan dat de voorbeelddia's Engels zijn en verschijnt alleen buiten nl/en. De ~3.300 regels Dart-bouwers zijn weg, de uitzondering in de hardgecodeerde-tekst-poort ook. Daarmee zijn alle drie de punten uit dit issue afgehandeld.