Skip to content

feat(i18n): translate expert-modal SelectItems + billing-toggle aria-labels #19

Description

@abdout

Severity

P1 — i18n coverage

Context

PR-7 in the audit plan covered `marketing/pricing/sections/*` and `marketing/expert-modal.tsx` as i18n gaps. Investigation showed:

  • `pricing/sections/{hero-landing,testimonials,features,pricing-faq}.tsx` are dead code — no caller references them. They're SaaS-Starter clone artifacts. The live pricing page renders `pricing-header.tsx`, `pricing-cards.tsx`, `compare-plans.tsx`, `pricing-faqs.tsx`, `enterprise-section.tsx` — all of which are already fully i18n'd.
  • `pricing-faq.tsx` is imported but commented out in `content.tsx` line 32.
  • `pricing/billing-info.tsx` and `pricing/forms/user-role-form.tsx` have Class 1 dead imports (separate issue).
  • `pricing/forms/newsletter-form.tsx` is unused.

So the realistic scope shrinks to two live components:

  1. `marketing/expert-modal.tsx` — Select items hardcoded (project types, budgets, timelines)
  2. `marketing/pricing/billing-toggle.tsx` — aria-labels hardcoded

Changes

  • Add to `expert.*`: `projectTypes.{website,ecommerce,mobile,custom,consulting}`, `budgets.{lt1000,1000to5000,5000to10000,gt10000}`, `timelines.{asap,oneMonth,oneToThreeMonths,threeToSixMonths}`, `toggleMonthlyAria`, `toggleYearlyAria` — Arabic translations for all
  • `expert-modal.tsx` — wire SelectItem children to dict keys
  • `billing-toggle.tsx` — wire aria-labels to dict keys

Acceptance criteria

  • /ar pricing page → toggle reads `تبديل الفوترة الشهرية` / `تبديل الفوترة السنوية` for screen readers
  • Expert modal in /ar shows Arabic dropdown options for project type, budget, timeline
  • /en unchanged visually
  • No new TS errors

Out of scope (separate PRs)

  • Pricing dead-code cleanup — needs decision: delete `sections/*` and `pricing-faq.tsx` and `newsletter-form.tsx`?
  • Class 1 dead imports in `billing-info.tsx` and `user-role-form.tsx`

Reference

Plan: PR-7 (scope revised to live components only).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions