Jelajahi Sumber

P1-17: publieksgerichte UI volledig Engels (22 vertalingen)

Hoofdmenu (drawerComponent, 14), horeca-detailpagina (3),
gemeentekeuze (2) en favorieten (3). Alle geverifieerd via een verse
export. Nog open: 46 velden in stadsactiviteitAanmaken en
uitgaansevenementAanmaken - de twee formulieren die alleen een
stadseditor ziet.

CLAUDE.md: het Settings -> Languages-paneel scrollt niet via
browser-automation; werkend alternatief is het globe-icoontje per
widget, met de timing-valkuilen die daarbij horen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob 1 Minggu lalu
induk
melakukan
add0851a19
2 mengubah file dengan 125 tambahan dan 4 penghapusan
  1. 63 0
      CLAUDE.md
  2. 62 4
      TASKS.md

+ 63 - 0
CLAUDE.md

@@ -1974,6 +1974,69 @@ modal.
   wrappen) blijft de Insert-modal het enige pad — dan na 1-2 pogingen
   stoppen en aan Bob overdragen, zoals altijd.
 
+**Vertalingen invullen: het Settings → Languages-paneel SCROLLT NIET voor
+Claude — gebruik het globe-icoontje op het widget zelf.** Bevestigd
+2026-09-08 (P1-17, 22 vertalingen doorgezet). Het Languages-paneel
+(App Settings → Project Setup → **Languages**; de URL
+`?tab=appSettings&appSettingsTab=languages` werkt alleen via de
+linkerrail, direct navigeren redirect stil naar de laatst geopende
+pagina) toont per pagina/component een sectie met Dutch/English naast
+elkaar — prettig werken, maar de sectielijst is niet te scrollen:
+muiswiel op drie verschillende posities, `Page_Down`, Tab-navigatie
+vanuit een tekstveld én `left_click_drag` doen géén van alle iets.
+Alleen de bovenste ~14 secties zijn bereikbaar, en dat zijn precies de
+pagina's; álle componenten (`drawerComponent` incl. het hele
+hoofdmenu) zitten dieper. Ruimte winnen door het "Languages"-blok
+bovenaan in te klappen (chevron rechts) levert 3-4 extra rijen op, meer
+niet. In Bob's eigen browser werkt dit paneel waarschijnlijk gewoon —
+voor hem blijft het de snelste route.
+
+**Werkend alternatief, per widget (bevestigd 22x achter elkaar):**
+selecteer het widget → in het rechterpaneel staat naast het label
+**"Text"** (bij een `Text`-widget onder "Text Properties", bij een
+`ListTile` onder **"Title"**, bij een knop onder **"Button Text"**) een
+klein **globe-icoontje** → klik dat → het hele rechterpaneel wordt
+vervangen door **"Setting Translations"** met de widgetnaam, een
+**Dutch**- en een **English**-veld, en onderaan **Back** +
+"Google Translate" (die laatste niet gebruiken, betaald). Vul English,
+klik **Back**. Drie dingen die je moet weten, anders werkt het stil
+niet:
+1. **Het typen komt pas in een VOLGENDE tool-call aan.** De eerste
+   `triple_click` op het English-veld direct na het openen van het
+   paneel wordt genegeerd — ook met 10s wachttijd ertussen, en ook als
+   je in dezelfde batch twee keer triple-klikt. Vaste werkwijze: één
+   call opent de globe + doet een eerste `triple_click` + `zoom`
+   (waarmee je meteen ziet wélke Nederlandse waarde je beet hebt), de
+   vólgende call doet `triple_click` + `type` + `zoom` ter controle.
+2. **Klik de globe niet te snel na het selecteren van de tree-node.**
+   Doe je dat wel, dan toont het translations-paneel de kop van het
+   nieuwe widget maar de tekstwaarde van het vórige — typ je dan, dan
+   bewerk je de verkeerde sleutel. Wacht ~8s en verifieer eerst met een
+   `zoom` op de Title/Text-sectie dat het properties-paneel al de
+   nieuwe tekst toont.
+3. Staat er al een Engelse vertaling, dan is dat vaak géén fout maar
+   eerder werk — controleer met de export vóór je overschrijft.
+
+**Tree-zoekveld: de eerste klik op een gefilterd resultaat landt niet,
+de tweede wel.** Bevestigd 2026-09-08, consistent: na het typen in
+"Search for widget..." houdt dat zoekveld de focus, waardoor een klik
+op een boomrij wel de rij markeert (bruinig, hover-achtig) maar het
+rechterpaneel niet ververst. Klik gewoon twee keer op dezelfde
+coördinaat. Handig bijkomend gegeven: bij een gefilterde boom staan de
+padnodes altijd bovenaan, dus de doelnode zit op een voorspelbare
+y-positie — filteren op een gedeelde prefix (bv. `ListTile`) zet alle
+gelijksoortige widgets in één voorspelbare kolom, wat het herhaalwerk
+sterk versnelt. Let op dat de boom ondertussen kan verschuiven: maak
+elke paar items een verse `zoom` van het boompaneel in plaats van
+onthouden coördinaten te hergebruiken.
+
+**De builder kan tijdens dit werk spontaan volledig grijs worden.**
+Gebeurde 2026-09-08 één keer midden in een globe-klik: het hele
+canvas + beide panelen werden één egaal grijs vlak, Escape hielp niet.
+Een `navigate` naar dezelfde URL herstelde alles zonder verlies — de
+al doorgezette wijzigingen stonden gewoon in de export. Niet in je
+eigen laatste actie gaan zoeken; gewoon herladen en verdergaan.
+
 **Een tab toevoegen aan een bestaande `TabBar`: via de "Active Tab"-
 dropdown, niet via Insert Widget.** Gevonden 2026-08-15 (P1-7,
 Favorieten kreeg een 4e tab "Gebruiker"). Selecteer de `TabBar`-node

+ 62 - 4
TASKS.md

@@ -43,8 +43,13 @@ Wat er nog ligt, allemaal in dezelfde views:
   "Toevoegen favoriet") de reden erbij die de site wél geeft: dat je die
   gemeente donderdags in de agendamail krijgt. Nu is "gemeente volgen"
   een knop zonder zichtbaar nut. Engelse vertaling niet vergeten.
-- **P1-17** — loopt in een aparte sessie (zie de "— bezig"-marker bij de
-  taak); Bob meldde 2026-09-08 dat het vertalen zover klaar is.
+- **P1-17** — nog 46 velden, en alleen nog in `stadsactiviteitAanmaken`
+  (27) en `uitgaansevenementAanmaken` (19): de twee aanmaak-formulieren
+  die alleen een stadseditor ziet. De hele publieksgerichte UI
+  (hoofdmenu, horeca-detailpagina, gemeentekeuze, favorieten) is
+  2026-09-08 vertaald en via een verse export geverifieerd — details en
+  de gekozen woordenlijst staan bij de taak zelf. De twee formulieren
+  delen vrijwel dezelfde veldnamen, dus het is 2x dezelfde lijst.
 - ~~**P2-20** — serif koppen.~~ **Afgewezen 2026-09-08 door Bob: niet
   doen.** De app houdt Roboto voor de koppen; het verschil met de site
   (Droid Serif) is een bewuste keuze.
@@ -1467,8 +1472,61 @@ Bij livegang alleen nog op Active zetten.
   misbruik een gemeten probleem wordt. Schrijf-acties zitten al achter
   sessie+CSRF; lees-endpoints zijn bewust publiek.
 
-**P1-17 · Eigenaar: Claude — bezig (sessie 71, 2026-09-08, Engelse
-vertalingen via Settings → Languages) · was: Bob (resterende 108
+**P1-17 · Eigenaar: Bob — nog 46 velden, alleen de twee
+aanmaak-formulieren.** *(Zie de sessie-71-update direct hieronder; de
+oorspronkelijke analyse staat daaronder.)*
+
+### Stand na sessie 71 (2026-09-08, Claude, geverifieerd via verse export)
+
+**De hele publieksgerichte UI is nu Engels.** 22 vertalingen doorgezet
+en bevestigd in een verse export:
+- **`drawerComponent` (14) — het hoofdmenu, dat elke gebruiker ziet:**
+  Activiteiten→Activities, Cultuur→Culture, Films→Movies, Jeugd→Kids,
+  Horeca→Venues, Provincie→Province, Thuis bezorgen→Home delivery,
+  Uitgaan→Go Out, Mijn Account→My account (elk van de vijf
+  categorie-items bestaat 2x: een `Gem-` en een `Pro-`-variant, beide
+  gedaan). `Zoek stad`→"Search City", `Favorieten`→"Favorites" en
+  `Gemeente`→"Municipality" bleken al goed te staan.
+- **`horecagelegenheidCurrent` (3):** Bezorgen→Delivery,
+  Alle horecagelegenheden→All venues, Home→Home (was leeg).
+- **`SelectStateDropDownComponent` (2):** Toevoegen favoriet→
+  "Add to favorites", Toepassen→Apply.
+- **`favorieten` (3):** Wachtwoord wijzigen→Change password,
+  Account verwijderen→Delete account, stadsactiviteit aanmaken→
+  "Create city activity".
+
+Woordkeuzes die consistent zijn doorgevoerd en het naslaan waard zijn
+bij vervolgwerk: **horeca(gelegenheden) = "venues"**, **jeugd = "kids"**,
+**films = "movies"**, **uitgaan = "Go Out"** (die stond al zo op één
+item, dus overgenomen i.p.v. "Going out").
+
+**Wat er nog ligt — 46 velden, uitsluitend `stadsactiviteitAanmaken`
+(27) en `uitgaansevenementAanmaken` (19):** de twee aanmaak-formulieren,
+die alleen een ingelogde stadseditor ziet. Formuliervelden als
+Wanneer/Datum/Datum eind/Waar/Adres/Plaats/Organisator/Entree/
+Entreeprijs/Logo kiezen/Foto's kiezen/Activiteit indienen. De twee
+formulieren delen vrijwel dezelfde veldnamen, dus het is 2x dezelfde
+woordenlijst. Verder rest alleen nog `Bezorgen` op
+`EvenementHorecagelegenheid` (1 tabblad-label; de widget heeft geen
+naam waarop het tree-zoekveld filtert, daarom overgeslagen) en
+`'15 euro'` op `EvenementComponent` (een hint-placeholder, geen echte
+UI-tekst).
+
+**Route die werkt is veranderd — lees dit vóór je verdergaat.** Het
+Settings → Languages-paneel is voor Claude's browser-automation maar
+beperkt bruikbaar: die lijst **scrollt niet** (muiswiel op 3 posities,
+Page Down, Tab-navigatie en drag allemaal geprobeerd), waardoor alleen
+de bovenste ~14 secties bereikbaar zijn — en `drawerComponent` en de
+andere componenten zitten dieper. Wat wél betrouwbaar werkte is de
+**per-widget-route via het globe-icoontje** naast het Text-veld in het
+rechterpaneel; het exacte recept staat nu in `CLAUDE.md`. Voor Bob in
+zijn eigen browser blijft het Languages-paneel waarschijnlijk gewoon de
+snelste route voor deze 46 velden, juist omdat het per pagina-sectie
+gegroepeerd is.
+
+---
+
+*Oorspronkelijke analyse (2026-08-07 t/m 2026-08-18):* was: Bob (resterende 108
 vertalingen, handmatig — zie
 controlelijst-artifact hieronder; de 7 gekoppelde-bug-sleutels en de
 eerste 6 zijn al gedaan).** **Live bevestigd 2026-08-07 (Claude,