Skip to content

feat(design): own wording, and headlines in every language - #852

Closed
mortondev wants to merge 2 commits into
feat/portal-design-v2-phase4-email-wordsfrom
feat/portal-design-v2-phase4-own-wording
Closed

mortondev wants to merge 2 commits into
feat/portal-design-v2-phase4-email-wordsfrom
feat/portal-design-v2-phase4-own-wording

Conversation

@mortondev

@mortondev mortondev commented Oct 31, 2026 •

Copy link
Copy Markdown
Member

The nineteenth of the stack that builds a new design engine for the portal, and the seventh of phase 4. A workspace can write three strings in its own words, per language, and write its headlines in any language the portal speaks. Behind the portalDesignV2 flag.

Own wording

Under Brand › Words: the composer prompt (up to 60 characters), the submit button (24) and the empty feed's title (60), for the language picked beside them. Each field shows, in English, what the portal says now for the chosen word.

  • The portal's composer (collapsed and open), its Submit button, the empty feed's title and Home's Share an idea use them for readers of that language.
  • A language left blank says the chosen word's translation, never another language's own wording: an English prompt never reaches a French reader.
  • The preview shows a draft's wording before it is published, and Review and publish names each field.

Headlines in every language

The feed's headline and Home's headline each have a language picker. Each language is written on its own, and the portal shows a visitor their language's headline, else the closest one, as before.

How it gets there

The design view carries feedback.copy. The portal layout provides it through FeedCopyContext in preview-draft-context.tsx, a module the feed and Home already share, so no chunk appears. The preview listener provides the draft's in its place. useFeedCopy() gives a component the wording in its reader's language.

Verification

  • On the local Kiln workspace, with Playwright: an English prompt and button and a German prompt in Brand › Words. The preview's composer said "Pitch us a game idea" before publishing, and review named the fields. After publishing, the live feed asked "Pitch us a game idea" with a "Send pitch" button in English, "Schlag uns ein Spiel vor" in German, and the French translation of the word in French, which has none of its own. No page errors.
  • New tests, each checked by breaking the code it covers: the composer takes its language's prompt and leaves another language to the word's translation; the draft's wording replaces the saved wording in the preview; the fields write per language and clearing one removes it; Home's headline is written in the language picked; review names the fields.
  • The core bench holds every request count. The widget embed and the admin feedback page, which sat at their script ceilings, went over by about 0.2 KB and take their readings (391.7 and 475.6 KB).
  • Five admin pages' script ceilings take their readings too (feedback, companies, connectors, people, a new role). Main already reads 473.5 KB on the admin feedback page against its 466.1 KB ceiling, inside the 2% tolerance, and the stack's 2 KB took these five past it.

@mortondev
mortondev added this pull request to stack #833 October 31, 2026 05:19
A workspace can write three strings in its own words, per language: the
composer's prompt, its submit button and the empty feed's title, under
Brand > Words. The portal's composer, the empty feed and Home's Share an
idea use them for readers of that language. A language left blank says the
chosen word's translation, never another language's wording.

The feed's and Home's headlines get a language picker, so each language is
written on its own.

The portal layout provides the saved wording through FeedCopyContext, in a
module the feed and Home already share, and the preview provides a draft's
in its place. The widget embed and the admin feedback page, which sat at
their script ceilings, take their new readings.
@mortondev
mortondev force-pushed the feat/portal-design-v2-phase4-own-wording branch from 4c6c32c to 2a563f3 Compare October 31, 2026 05:22
Main already reads 473.5 KB on the admin feedback page against its 466.1 KB
ceiling, inside the 2% tolerance. The stack's 2 KB took five admin pages
past it.
@mortondev

Copy link
Copy Markdown
Member Author

Condensed into #879. The stack is now five PRs, #878 to #882; this branch is kept as it was.

@mortondev mortondev closed this Nov 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant