Internationalisation
RoadmapTpGroup brands operate across multiple languages and scripts. The design system provides rules for string externalisation, locale-aware formatting, RTL support, pluralisation, and typography fall-back, so the same React Native codebase renders correctly in every locale on every platform.
Locales in scope
| Locale | Script | Notes |
|---|---|---|
| en-SL / en-GB / en-US | Latin | Primary. En-SL (Sierra Leone English) is the editorial default. |
| fr-FR / fr-SN | Latin | Francophone West Africa — TpGroup diaspora audiences. |
| pt-PT / pt-BR | Latin | Lusophone communities. |
| ar | Arabic | RTL. Required for regional partner programs. |
| krio | Latin | Spoken lingua franca of Sierra Leone — appears in FambulTik heritage content. |
Live formatting
| Locale | Date & time | Number | Currency |
|---|---|---|---|
English (Sierra Leone) en-SL | 18 April 2026 at 2:32 pm | 1,234,567.89 | Le 1,850.75 |
Français (France) fr-FR | 18 avril 2026 à 14:32 | 1 234 567,89 | 1 850,75 € |
Português (Portugal) pt-PT | 18 de abril de 2026 às 14:32 | 1 234 567,89 | 1850,75 € |
العربية ar | 18 أبريل 2026 في 2:32 م | 1,234,567.89 | 1,850.75 ر.س. |
Right-to-left
Layouts use logical properties (start/end) rather than left/right. In React Native this means paddingStart/paddingEnd; in CSS this means logical properties (margin-inline-start, etc.). Icons with directional meaning (back, forward, next, previous) flip in RTL; directional icons tied to physical reality (play, pause, media controls) do not.
Padding, icon position, and the follow button reorder automatically because the card uses logical start/end properties rather than left/right.
Pseudo-localization
Before translations arrive, UI copy is tested with pseudo-localization to surface hard-coded strings, catch truncation, and validate the 30% growth rule over English. A combining acute (U+0301) is appended to every letter and the string is padded with tildes to simulate the expected growth.
- Welcome back, Aisha
- Create a new project
- Save changes before continuing
- Your session expires in 5 minutes
Pseudo-strings are ~30% longer than English. If any row overflows its container, the UI needs work before translations arrive.
Formatting rules
| Concern | Approach |
|---|---|
| Dates & times | Intl.DateTimeFormat / native Calendar on each platform; never format manually. |
| Numbers | Intl.NumberFormat with currency and locale-aware grouping/decimal separators. |
| Currencies | ISO 4217 codes; currency display uses symbol or code per locale. |
| Pluralisation | ICU MessageFormat; no string concatenation for pluralised strings. |
| Text truncation | Allow for 30 percent growth over English baseline in UI copy. |