PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → MessTraduit et récupération des traductions
MessTraduit et récupération des traductions
Débuté par Yvan, 01 mar. 2018 15:26 - 2 réponses
Membre enregistré
202 messages
Popularité : +6 (6 votes)
Posté le 01 mars 2018 - 15:26
Bonjour,

Le cas qui m'intéresse n'est pas facile à expliquer, je vais essayer d'être claire.
Je possède WDTRAD.
Dans un de mes projets, je fait des mises à jour (création/modification) de données enregistrées en BDD depuis des méthodes du genre :
clMenu est un cGestionMenus
clMenu.MAJMenu(9,"Nom en Français" ,"Name In English")

Et dans la méthode MAJMenu, je vais récupérer le 2ème paramètre comme étant le nom en français, et le 3ème le nom en anglais, et mettre à jour l'enregistrement correspondant à l'identifiant (1er paramètre).

J'ai deux soucis avec cette façon de faire :
1. plus j'ai de langues à gérer, plus c'est compliqué et difficile à relire/maintenir, car ici j'ai pris un cas simple avec un seul paramètre en 2 langues.
2. WDTRAD ne détectera pas que j'ai besoin de gérer une traduction de "Nom en Français" vers "Name In English", et donc n'exportera pas ces textes dans un fichier à traduire.

J'aurai donc imaginé passer à ma méthode, à la place des n paramètres par langue, une chaine traduite par messTraduit (ctrl +T), et la récupérer dans ma méthode sous forme de tableau, mais ça ne semble pas être possible, ce n'est pas un tableau, ou du moins, ce n'est que la ligne correspondante au nation() en cours.

Quelqu'un aurait-il une idée?
Membre enregistré
202 messages
Popularité : +6 (6 votes)
Posté le 01 mars 2018 - 15:55
J'ai trouvé un début de solution, ça règle les 2 soucis mais coté lisibilité c'est pas top au niveau du N° de message que l'on passe en paramètre :
sMonLibelléLocalisé est une chaîne
sMonLibelléLocalisé = "En Français"
MethodeReceveuse(2013)

Dans le code affiché, "En français" est le message n° 2013

// Résumé : Reçoit un libellé multilingue
Procedure MethodeReceveuse(nNumerolibelle)

// -- Mémoriser la langue en cours
nNationAvant est un entier = Nation()

POUR i = 1 _À_ gclProgramme.m_TabLangue..Occurrence
Nation(gclProgramme.m_TabLangue[i])
Trace(MessTraduit(nNumerolibelle))
FIN

// -- Restaurer la langue en cours
Nation(nNationAvant)


L'idéal serait de pouvoir passer directement la chaine traduite en paramètre ...
Posté le 01 mars 2018 - 17:20
Yvan a exprimé avec précision :
Bonjour,

Le cas qui m'intéresse n'est pas facile à expliquer, je vais essayer d'être
claire.
Je possède WDTRAD.
Dans un de mes projets, je fait des mises à jour (création/modification) de
données enregistrées en BDD depuis des méthodes du genre :
clMenu est un cGestionMenus
clMenu.MAJMenu(9,"Nom en Français" ,"Name In English")

Et dans la méthode MAJMenu, je vais récupérer le 2ème paramètre comme étant
le nom en français, et le 3ème le nom en anglais, et mettre à jour
l'enregistrement correspondant à l'identifiant (1er paramètre).

J'ai deux soucis avec cette façon de faire : 1. plus j'ai de langues à gérer,
plus c'est compliqué et difficile à relire/maintenir, car ici j'ai pris un
cas simple avec un seul paramètre en 2 langues.
2. WDTRAD ne détectera pas que j'ai besoin de gérer une traduction de "Nom en
Français" vers "Name In English", et donc n'exportera pas ces textes dans un
fichier à traduire.

J'aurai donc imaginé passer à ma méthode, à la place des n paramètres par
langue, une chaine traduite par messTraduit (ctrl +T), et la récupérer dans
ma méthode sous forme de tableau, mais ça ne semble pas être possible, ce
n'est pas un tableau, ou du moins, ce n'est que la ligne correspondante au
nation() en cours.

Quelqu'un aurait-il une idée?


Il faut utiliser WMSG pour extrait les message et WDTRAD pour les
traduire

C'est la seul possibilité
bon courage

Franck

--
Cordialemnt

Franck DUMONT