Internationalisation des libelles Dynamics Ax dans les applications .NET

Dans mon article précédent je montrais comment récupérer des données Dynamics AX dans les applications .NET en utilisant le Business Connector NET. Par défaut, les libellés associés à ces données sont récupérés dans la langue du système.

Dans cet article on va discuter de comment récupérer ces libellés Dynamics Ax dans une langue désirée.

D’abord voici quelques éléments concernant les libellés :

Les libellés sont utilisés en Dynamics Ax pour l’internationalisation des chaînes de caractères. Dans Dynamics Ax on peut utiliser le même libellé pour plusieurs objets distincts en utilisant un identifiant unique de libellé. Le format de cet ID de libellé est :

  1. Un symbole @ (« at »)
  2. Un identifiant de fichier en trois lettres (normalement SYS où SYP)
  3. Un numéro: Assigné et maintenu par le système

Exemple: @SYS12

Le libellé @SYS12 pourrait être traduit par « Account/Group number » en Anglais et par « Konto-/Gruppennummer » en Allemand.

Les libellés dans Dynamics Ax sont gérés par la classe SysLabel qui hérite de la classe Label. Cette classe contient une série de méthodes qui nous permettent de traduire les libellés.

Exemples:

AxaptaObject sysLabel = axapta.CreateAxaptaObject("SysLabel", "fr");
//Returns "Prix unitaire":
string libelle = sysLabel.Call("extractString", "@SYS11770");

Dans ce code on instancie un objet SysLabel en précisant comme paramètre du constructeur la culture : « en-US », « fr », « de » etc. Ensuite on fait appel à la méthode extractString() et on fournit comme paramètre un identifiant de libellés (« @SYS11770 »).

Et voici le même résultat avec un code un peu différent :

//Returns "Unit Price":
axapta.CallStaticClassMethod("SysLabel", "labelId2String2", "@SYS11770", "en");

Cette fois-ci on utilise un appel statique de la méthode labelId2String2 de la classe SysLabel.

Références

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *