Référentiels traduits (FR / EN)
Plusieurs référentiels paramétrables d’Envergure peuvent afficher leur libellé dans plusieurs langues. Le français reste la langue pivot (toujours stockée sur l’entité elle-même) ; les autres langues sont gérées comme des traductions secondaires, modifiables sans toucher au code ni au libellé pivot.
Principe — pivot FR + traductions
Chaque entité d’un référentiel traduisible porte :
- un code stable (jamais traduit, sert d’identifiant métier — ex.
warehouse,operator,squadron) ; - un libellé FR stocké directement sur l’entité (langue pivot) ;
- zéro ou plusieurs traductions (locale + libellé) stockées dans la table polymorphique
referential_labels.
Quand l’utilisateur navigue dans une langue secondaire (EN aujourd’hui), l’API renvoie le libellé traduit s’il existe. À défaut, le libellé pivot FR est renvoyé — il n’y a jamais de chaîne manquante.
Référentiels traduisibles aujourd’hui
Les endpoints suivants acceptent le paramètre ?locale=fr|en :
| Référentiel | Endpoint API | Écran admin |
|---|---|---|
| Types d’unité métier | GET /business-unit-types |
/admin/business-unit-types |
| Types de partenaire | GET /partner-types |
/admin/partner-types |
| Types de stockage | GET /storage-types |
/admin/storage-types |
D’autres référentiels supportent déjà les traductions côté backend mais ne sont pas encore branchés sur le switcher de langue côté web — ils seront ajoutés au fil des chantiers.
Saisir une traduction EN
- Aller sur l’écran admin du référentiel (par exemple /admin/storage-types).
- Pour l’entité concernée, ouvrir la modale de traductions et saisir le libellé EN.
- Le code et le libellé pivot FR restent inchangés.
Basculer l’affichage en EN
L’app web détecte la langue depuis (1) la préférence enregistrée en local, (2) la langue du
navigateur, (3) fr par défaut. Pour forcer une langue :
- utiliser le sélecteur de langue dans la barre latérale (
FR/EN) ; - ou positionner manuellement la clé
envergure.localedans le localStorage du navigateur.
Une fois la langue changée, les écrans qui consomment les référentiels traduisibles affichent automatiquement les libellés dans la langue active (avec fallback FR si la traduction est absente).
Côté API — contrat
Le paramètre ?locale est validé strictement (fr ou en). Toute
autre valeur est rejetée en 400 Bad Request. L’absence de paramètre équivaut à
fr.
GET /storage-types → libellés FR (pivot)
GET /storage-types?locale=en → libellés EN si traduits, sinon FR
GET /storage-types?locale=de → 400 Bad Request
Pour aller plus loin
L’internationalisation complète de l’UI (chaînes statiques, dates, nombres, mobile) est traitée séparément — ce chapitre couvre uniquement les libellés stockés en base pour les référentiels paramétrables.