What problem does it solve? It keeps every user-visible string in the component library translatable across en-US and fr-CA without developers hand-editing generated locale JSON files or breaking the Crowdin translation pipeline. ## Core Features & Use Cases - Inline t() defaults with key naming rules: Enforces the namespace:Owner.category.snake_case_key convention so every key traces back to its owning file, with ESLint and CI checks for mismatches. - Automated extraction and Crowdin sync: Keys are collected by the i18n-extract-keys workflow and French translations flow through crowdin-sync with bidirectional last-writer-wins semantics. - Plural, conditional, and formatting helpers: Provides tPlural, tConditional, translationKey, and formatList so plurals and context variants are extraction-safe, while numbers and dates go through useIntlFormatter. - Use Case: When adding a new label to an invoice table, write t('invoices:InvoiceTable.label.due_date', 'Due date') inline, ship the PR without touching locale JSON, and let the pipeline scaffold and translate the key. ## Quick Start Add a new translated string to a React component by calling t() with a properly namespaced key and an inline English default, without editing any locale JSON file.