je voudrais différencier la traduction d’un objet entre l’affichage dans le domaine et l’affichage en liste.
J’ai créé un Domaine Gestion dans lequel je veux afficher : “Projets : affectation des instructeurs externe”.
L’objet métier affiché a une traduction “Projets” qui est aussi utilisée dans une zone de vue et la traduction “Projets” convient très bien.
j’ai trouvé un poste Traduction objet dans le menu parlant de singulier et pluriel avec | .
j’ai mis dans ma traduction : “Projets|Projets : affectation des instructeurs externe” pensant que
“Projets” s’afficherait sur la liste et “Projets : affectation des instructeurs externe” dans le menu.
Mais “Projets : affectation des instructeurs externe” s"affiche partout.
Je ne suis pas sûr que ça répond au besoin dans ce cas précis mais il est possible de surcharger la traduction d’un Link cela permet de nommer différemment l’onglet d’un objet lié
if (isHomeInstance()) setDisplay("Nom pour l'accueil");
if (isMainInstance()) setDisplay("Nom pour le menu, la liste et le formulaire");
if (isPanelInstance()) setDisplay("Nom pour l'onglet d'un objet parent");
Il faudra tester la langue getGrant().getLang() si votre application est multi-langues.
Si vous voulez changer le nom d’une même instance (menu et liste par exemple), il faudra faire du code front.
Oui le menu est déjà chargé à l’ouverture de session, et quand l’instance est préparée plus tard, il ne se recharge pas.
Il serait trop couteux/long d’instancier tous les “main objects” en session (passer par les hook preLoad) à l’affichage du menu (au moment où la UI va chercher les droits).
Votre solution est donc la bonne : traduire par paramétrage pour le menu statique + surcharger par code pour plus tard contextuellement.
Sinon on doit encore pouvoir modifier le menu en mémoire au moment des GrantHooks.postLoadGrant, donc avant affichage de la UI.