Skip to content

Complete ICU sentence migration for landing and balance summaries - #800

Closed
marcosinigaglia wants to merge 1 commit into
oss-apps:mainfrom
marcosinigaglia:feat/icu-phase-2
Closed

marcosinigaglia wants to merge 1 commit into
oss-apps:mainfrom
marcosinigaglia:feat/icu-phase-2

Conversation

@marcosinigaglia

@marcosinigaglia marcosinigaglia commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Completes the remaining sentence fragments after #457, following the phase-two approval in #457 (comment). Related to #418.

Landing headings now use complete rich-text messages with translator-controlled highlight and source-link placement. Balance summaries and group balance headers include their styled amounts in the same message, allowing translators to reorder them. Import previews use an ICU member-count plural, and the exchange-rate date has a standalone contextual label.

Existing participant links, actor selects, activity messages, metadata and balance plurals were already migrated on main and remain in use. Every old translation key and all 112 catalog paths are preserved; non-English files are unchanged. New keys are English-only in the existing common/home namespaces. No gender is inferred from names; gender select is tested with a fixture because users have no gender field.

Validation:

  • 49 unit suites / 527 tests passed, including all catalogs, actor roles, plural categories, rich-text reordering, escaped names, English fallback, SSR serialization/hydration, and gender select.
  • Prettier, TypeScript and production build passed.
  • Lint passed with one pre-existing unused-import warning in DeleteAccount.tsx; pre-commit checks passed.
  • Catalog comparison confirmed existing values unchanged and non-English catalogs byte-identical.
  • Database integration and browser E2E suites were not run.

AI assistance was used for implementation and validation.

Summary by CodeRabbit

  • New Features
    • Balance summaries now display labels and amounts together, with support for translated text and reordered layouts.
    • Landing-page titles and subtitles support rich formatting and links.
    • Member counts use plural-aware translations, and exchange-rate controls use a clearer date label.
  • Documentation
    • Updated translation guidance to retain deprecated keys for translation history and compatibility with older app versions.

@coderabbitai

coderabbitai Bot commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Explain Change →

Caution

Review failed

The pull request is closed.

Walkthrough

English catalogs add rich translation messages for landing-page text and balances. Application pages and components render these messages, and SSR tests cover interpolation, ordering, and ICU gender selection.

Changes: Rich translations

Layer / File(s) Summary
Translation catalogs and guidance
docs/OBSOLETE_TRANSLATION_KEYS.md, public/locales/en/*.json
English catalogs add rich landing-page and balance messages, member-count plurals, and an exchange-rate date label. The guidance describes retaining deprecated keys and notes Phase 2 translation coverage.
Rich message rendering
src/components/Expense/*, src/components/Friend/*, src/pages/{balances,home,import-splitwise}.tsx, src/tests/*
Pages and components use rich translations for landing-page text, balances, and member counts. SSR tests check markup, interpolation, component ordering, and ICU gender selection.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Refactor

Sequence Diagram(s)

sequenceDiagram
  participant BalanceList
  participant Trans
  participant TranslationCatalog
  BalanceList->>Trans: message key, person, and amount components
  Trans->>TranslationCatalog: resolve rich translation
  TranslationCatalog-->>Trans: translated message template
  Trans-->>BalanceList: rendered message with components
Loading

Possibly related PRs

  • oss-apps/split-pro#457: This PR introduced the ICU setup that the current translation tests and sentence-fragment migration build on.

Suggested reviewers: krokosik

Merge Risk: Minimal · up to 5db2c

The changes appear mergeable after normal checks; no material issue is currently identified.

- [ ] Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Tip

🎯 Customize your risk assessments

Guide how CodeRabbit assesses merge risk and security architecture risk. Highlight sensitive changes and explain your security boundaries using Merge Risk Instructions and Security Risk Instructions in your review settings. Security architecture risk assessments require the Advanced plan or above.

✅ Automatic approvals, with your rules

Let CodeRabbit approve pull requests once required threads are resolved, pre-merge checks pass, and your risk limits are met. Enable Automatic approvals in review settings, with overrides for teams or file paths.

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

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