ORM_SetLanguage
Définit la langue d'affichage courante de la session ORM_CSHX2. Toutes les opérations de chargement ultérieures qui hydratent des libellés traduits utiliseront cette langue.
📋 Description
ORM_SetLanguage définit la langue d'affichage de la session ORM_CSHX2. Cette information est utilisée par le framework lors de l'hydratation des objets pour récupérer les libellés traduits dans la langue cible depuis le référentiel multilingue.
La procédure ne retourne rien : elle écrase la langue courante de la session avec la nouvelle valeur. L'effet est immédiat — toutes les opérations de chargement effectuées après l'appel utiliseront la nouvelle langue.
1. Au démarrage de l'application, après avoir déterminé la langue de l'utilisateur (depuis sa configuration personnelle, le navigateur, la table des utilisateurs, etc.) — pour que les futurs chargements ORM hydratent les libellés dans la bonne langue dès la première fenêtre ouverte.
2. Lors d'un changement de langue en cours de session, par exemple quand l'utilisateur clique sur un bouton de bascule « English / Français » dans l'IHM. Les écrans rechargés après ce changement afficheront les libellés dans la nouvelle langue.
L'ID positionné par ORM_SetLanguage sert de filtre lors des chargements ORM : le framework rapatrie les libellés correspondants depuis le référentiel multilingue alimenté par ORM_AddTranslation. Si aucune traduction n'existe pour la langue demandée sur un libellé donné, le comportement par défaut du framework s'applique (typiquement : retour à la valeur source non traduite).
🔑 Signature
LOCAL nIDLanguage est un entier
)
| Élément | Valeur |
|---|---|
| Visibilité | PUBLIQUE |
Paramètre
| Paramètre | Type | Rôle |
|---|---|---|
nIDLanguage | entier | Identifiant de la langue cible (référentiel cshx2_langues). Identifie la langue dans laquelle les libellés traduits doivent être restitués pour les opérations de chargement ultérieures. |
Valeur de retour : aucune (procédure void).
🧭 Effet sur la session
L'appel à ORM_SetLanguage a un effet immédiat sur la session ORM courante. Plusieurs caractéristiques sont à connaître pour bien intégrer la procédure dans le cycle de vie de l'application :
| Caractéristique | Description |
|---|---|
| Effet immédiat | Tous les chargements ORM effectués après l'appel utilisent la nouvelle langue. Les écrans déjà ouverts ne sont pas rafraîchis automatiquement — c'est à l'application de recharger les données affichées si nécessaire. |
| Portée session | La langue positionnée reste active jusqu'au prochain appel à ORM_SetLanguage ou jusqu'à la fin de la session ORM. Aucun timeout, aucune réinitialisation automatique. |
| Pas d'effet rétroactif | Les objets déjà chargés en mémoire (m_tabResults) avant l'appel conservent leurs libellés dans la langue précédente. Pour les rafraîchir, recharger explicitement. |
| Pas de validation d'existence | La procédure n'effectue aucun contrôle pour vérifier que l'ID de langue correspond à une langue présente dans le référentiel cshx2_langues. Un ID invalide n'est pas signalé : il aboutira simplement à des libellés non traduits lors des chargements. |
Si l'application charge des données avant tout appel à ORM_SetLanguage, c'est la valeur par défaut de la session qui sera utilisée pour la résolution des libellés traduits. Appeler ORM_SetLanguage au plus tôt dans l'initialisation de l'application est une bonne pratique systématique en contexte multilingue.
💡 Exemples
Mode 1 — initialisation de la langue au démarrage
Cas d'usage typique : juste après l'authentification, on lit la langue préférée de l'utilisateur depuis la table des utilisateurs et on l'applique à la session ORM.
Mode 2 — bouton de bascule de langue dans l'IHM
Cas d'usage : un utilisateur clique sur un bouton pour passer de français à anglais en cours de session.
Mode 3 — bascule ponctuelle pour un traitement spécifique
Cas d'usage : un export ou un envoi d'email doit être généré dans une langue précise différente de celle de l'IHM.