Skip to content

ECHO-810 fix(participant): restore it-IT onboarding + italian a2 pass#571

Merged
ussaama merged 1 commit into
mainfrom
sam/echo-810-restore-italian-onboarding
May 13, 2026
Merged

ECHO-810 fix(participant): restore it-IT onboarding + italian a2 pass#571
ussaama merged 1 commit into
mainfrom
sam/echo-810-restore-italian-onboarding

Conversation

@spashii
Copy link
Copy Markdown
Member

@spashii spashii commented May 12, 2026

Summary

Two things in one PR — both anchored on the italian pilot:

  1. Restore the it-IT block in ParticipantOnboardingCards.tsx. The participant onboarding card wrapper has a hardcoded cards object that only listed de-DE/en-US/es-ES/fr-FR/nl-NL after Qa fixes #529, so italian fell through to English even though useOnboardingCards.ts had full italian translations underneath. Re-adds the it-IT entry. Only it-ITuk-UA stays on en-US fallback as requested.

  2. Italian pass: A2-level + brand-aligned. Revised the italian onboarding strings (tutorial cards, "best practices", three privacy variants) and the existing translated entries in it-IT.po against three rules:

    • A2 reading level (general public, basic italian)
    • Informal tu, never Lei/voi
    • Active voice over passive ("Cancelliamo i dati" not "I dati vengono cancellati")
    • Sentence case for titles
    • Lowercase dembrane, even at sentence start
    • Short sentences, no jargon
  3. Brand guide. Added an Italian localization section to brand/STYLE_GUIDE.md mirroring the Dutch one — core rules, glossary, good/bad examples. Updated AGENTS.md to point at it. Added the italian A2 check to the pre-ship checklist.

What changed

  • echo/frontend/src/components/participant/ParticipantOnboardingCards.tsx — restore it-IT block (microphone-check + "tutto pronto" sections)
  • echo/frontend/src/components/participant/hooks/useOnboardingCards.ts — pass over italian: basic tutorial cards, advanced tutorial cards, "best practices" section, three privacy variants (client-managed / consent / legitimate-interest)
  • echo/frontend/src/locales/it-IT.po — fix piupiù, A2 polish on the 4 longer real translations
  • echo/frontend/src/locales/it-IT.ts — regenerated via pnpm messages:compile
  • echo/brand/STYLE_GUIDE.md — new Italian localization section + checklist item
  • echo/AGENTS.md — pointer to the italian section

Cross-check

  • it-IT pilot URL fixed locally: pnpm messages:compile → onboarding cards now render in italian on portal.dembrane.com/it-IT/...
  • pnpm exec biome check clean on touched files
  • pnpm exec tsc --noEmit clean
  • No changes to en-US / nl-NL / de-DE / fr-FR / es-ES / uk-UA strings — only the it-IT.ts compiled output

What I didn't touch

  • it-IT.po still has ~880 untranslated entries (en-US placeholders) and ~378 empty. Pauline's brief was "first information slides and portal instructions" — i scoped this PR to the onboarding cards + the already-translated entries. The remaining bulk-translation of the .po is a separate question (sameer to confirm scope).
  • uk-UA onboarding cards block left on en-US fallback per instructions.
  • echo-user-docs site — no italian content there. Same scoping question.
  • Native-italian review pass — flagged on the stakeholder side; this PR is model-grade italian against the A2 + brand rules. Worth a native review before going live for ActionAid.

Confidence

Medium. The bug fix part is mechanical and well-isolated (one file, additive, matches the pattern of the other locales). The translation pass is where the uncertainty sits: i can produce italian that reads naturally and follows the A2 + brand rules, but i'm not a native speaker — a native reviewer should sanity-check tone before this ships to the ActionAid pilot. Specific spots i'd flag for review:

  • privacy variant 3 (legitimate-interest): the GDPR phrasing has to stay legally accurate while being A2
  • consent checkbox label: changed "Acconsento alla registrazione e al trattamento...""Accetto che la mia conversazione sia registrata e trattata." — clearer but still affirmative
  • "Tutto pronto?" replacing "Pronti a iniziare?" — i prefer the new one (natural, gender-neutral, A2), but it's a register shift worth noting

Refs: ECHO-810

Summary by CodeRabbit

  • New Features
    • Comprehensive Italian language support now available with fully localized onboarding experience, tutorials, and user interface
    • Italian translations updated throughout the app for improved consistency and user experience

Review Change Stack

…2 pass

Restore the it-IT entry in ParticipantOnboardingCards.tsx that was
dropped in #529. Without it, the outer cards wrapper fell through to
en-US even though useOnboardingCards.ts had the italian translations.

Pass over the italian onboarding strings, privacy variants, and the
existing it-IT.po entries: A2 reading level, informal "tu", sentence
case for titles, active voice, lowercase "dembrane", short sentences.

Add an Italian localization section to brand/STYLE_GUIDE.md mirroring
the Dutch one — core rules, glossary, examples.

Refs: ECHO-810

Co-authored-by: Sameer <sameer@dembrane.com>
@linear
Copy link
Copy Markdown

linear Bot commented May 12, 2026

ECHO-810

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 12, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 9033c140-a4c3-4226-afba-1f2d4fd589a1

📥 Commits

Reviewing files that changed from the base of the PR and between 1d7cfbd and 77810d4.

📒 Files selected for processing (6)
  • echo/AGENTS.md
  • echo/brand/STYLE_GUIDE.md
  • echo/frontend/src/components/participant/ParticipantOnboardingCards.tsx
  • echo/frontend/src/components/participant/hooks/useOnboardingCards.ts
  • echo/frontend/src/locales/it-IT.po
  • echo/frontend/src/locales/it-IT.ts

Disabled knowledge base sources:

  • Linear integration is disabled

You can enable these sources in your CodeRabbit configuration.


Walkthrough

Italian localization rules and glossary are established in AGENTS.md and STYLE_GUIDE.md, then applied across ParticipantOnboardingCards component configuration, useOnboardingCards copy for onboarding and privacy card strings, and it-IT.po message translations.

Changes

Italian Localization Guidelines and Strings

Layer / File(s) Summary
Localization Guidelines and Style Reference
echo/AGENTS.md, echo/brand/STYLE_GUIDE.md
Established Italian localization rules (informal "tu", A2 reading level, sentence-case titles, active voice), bilingual UI glossary, example "bad" vs "good" rewrites, and added checklist validation for A2 compliance.
Onboarding Component Italian Configuration
echo/frontend/src/components/participant/ParticipantOnboardingCards.tsx
Added it-IT entry to the cards language map with microphone-check and initiation-form slides, and reformatted the microphone back button Trans block from single-line to multi-line JSX.
Onboarding and Privacy Card Italian Copy
echo/frontend/src/components/participant/hooks/useOnboardingCards.ts
Updated Italian text for basic and advanced tutorial slides (welcome, how it works, privacy, best practices), client-managed and consent-based privacy card strings, and dembrane-events privacy card content.
User-Facing Message Translations
echo/frontend/src/locales/it-IT.po
Updated four user-facing Italian translations: rescheduling error messages, empty conversation states, and dashboard welcome screens with revised phrasing and punctuation.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • Dembrane/echo#474: Both PRs modify Italian onboarding card copy in useOnboardingCards.ts with localization text updates.
  • Dembrane/echo#473: Both PRs update Italian onboarding and privacy/legal card strings in useOnboardingCards.ts with text-only wording tweaks.
  • Dembrane/echo#469: Both PRs refine Italian localization in onboarding copy and it-IT.po message translations for legal/privacy UI.

Suggested labels

improvement

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch sam/echo-810-restore-italian-onboarding

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

Hi !

Thank you for contributing to Dembrane ECHO! Before we consider your Pull Request, we ask that you sign our Contributor License Agreement (CLA). This is only required for your first Pull Request.

Please review the CLA, and sign it by adding your GitHub username to the contributors.yml file. Thanks!

@ussaama ussaama marked this pull request as ready for review May 13, 2026 09:15
@ussaama ussaama added this pull request to the merge queue May 13, 2026
Merged via the queue into main with commit cd7adbd May 13, 2026
10 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants