Je veux récupérer la valeur, en fonction de la langue

Bonjour,

Je souhaite récupérer la valeur liste de valeurs, en fonction de la langue dans une calendrier, car dans le visuel ci-dessous je récupère le code.

La vraie valeur d’une liste de valeur est le code. Le libellé traduit est purement de la “cosmétique” pour l’affichage.

Expliquez moi dans quel contexte vous avez besoin du libellé traduit.

En fait, je souhaite obtenir la valeur traduite afin de donner une idée des couleurs des tâches, car chaque tâche est présente un état.

J’espère avoir été clair dans mes explications.

Non désolé je ne comprends pas votre besoin

En tout état de cause le code de la liste de valeur suffit pour savoir quel valeur de la liste de valeur est sélectionnée et s’en servir dans une règle de gestion

Dans Simplicité c’est un anti pattern absolu de se servir de libellés traduits pour mettre en place des règles de gestion (ex: que se passerait il si vous décidez d’ajouter une nouvelle langue ???)

Mon besoin est seulement d’informer l’utilisateur dans quelle étape, il n’entre pas dans les règles de gestion.

Le besoin ne se fait que du côté du front, mais pas du côté du traitement.

OK si c’est juste pour fabriquer un message utilisateur (ou, par exemple, générer une publication etc.) utiliser un libellé traduit est légitime.

Ce message utilisateur vous le fabriquez coté serveur (Java ou script Rhino) ou coté client (Javascript) ?

Oui exactement, coté Client “JavaScript”

Ok en fait il y a plusieurs manière de faire en fonction du composant dans lequel vous êtes…

Vous avez besoin des meta données de la liste de valeurs de l’attribut, si on parle d’un attribut d’objet métier et que vous êtes sur un composant standard de la UI (formulaire, liste, agenda, placemap, …) ces méta données sont déjà chargées, sinon vous devez écrire un appel explicite aux méta données:

ob.getMetaData(function() {
    // ...
});

Ensuite ça dépend de la manière dont vous valorisez l’item courant de votre objet:

  1. si vous faites un obj.setValues(item) alors vous pouvez écrire obj.getField("myField").getDisplayValue()
  2. si vous manipulez directement l’item sans faire de setValues valors vous devez écrire obj.getField("myField").getDisplayValue(item.myField)

PS:

On a ajouté un exemple sur un composant custom (le delivery agenda de la démo), cf. module-demo/resources/ObjectExternal/DemoOrderAgenda/SCRIPT.js at master · simplicitesoftware/module-demo · GitHub

Voilà ce que ça donne:

Pour un user en anglais:


Pour un user en français: