Internationalisation
Le paquet packages/i18n (ADR 0037) porte les textes et les formats. Il n’a aucun écran : le back-office et l’application terrain l’importeront.
Ce qu’il fait
Section intitulée « Ce qu’il fait »| Besoin | Exigence | Fonction |
|---|---|---|
| Tout texte existe en français et en anglais | EX-070 | traduire(langue, cle, params) ; parité des clés vérifiée par test |
| Langue de l’utilisateur, sinon de l’entreprise, sinon français | EX-072 | choisirLangue({ utilisateur, organisation }) |
| Langue d’un document indépendante de l’interface | EX-073 | la langue est un argument de chaque fonction |
| Libellés de référence bilingues | EX-074 | libelleDans(libelle, langue, langueOrganisation) |
| Troisième langue sans toucher au code | EX-076 | déposer src/catalogues/{langue}.json |
| Messages d’erreur de l’API et motifs de contrôle | EX-070 | messageErreur, libelleMotif |
La mémorisation du choix sur l’appareil et le sélecteur de langue (EX-071) viendront avec les premiers écrans.
Les calculs restent en entiers ; la conversion n’a lieu qu’à l’affichage.
| Donnée | Exemple en français | Fonction |
|---|---|---|
| Grammes | 750 g, 1,25 kg, 1,25 t | formaterGrammes |
| Centièmes de point | 70 % | formaterCentiemesPoint |
| Montant en unités mineures | 12 345,67 € ; 655 957 F CFA | formaterMontant (décimales lues dans la devise) |
| Date | 30/09/2026 | formaterDate (une date seule n’est jamais décalée ; un instant est lu dans le fuseau de l’organisation) |
Une espace insécable sépare le nombre de son unité.
Ajouter une langue
Section intitulée « Ajouter une langue »- Copier
src/catalogues/fr.jsonen{code}.json(deux ou trois lettres minuscules) et traduire les valeurs, y comprismeta.locale(es-ES) etmeta.nom. - Lancer
pnpm --filter @biotrace/i18n test: le script enregistre le fichier, les tests vérifient les clés et les paramètres. - Côté données :
app.organisation.languen’accepte quefreten, et le royaume Keycloak ne propose que ces deux langues (écart EC-056).
Une clé absente d’une langue se replie sur le français, puis sur la clé elle-même.