OVH Cloud OVH Cloud

Dates en multilangue

4 réponses
Avatar
Eric
Bonjour,

Existe-t-il une possibilit+AOk- pour que, dans une application multilangue,
les dates dans un format +AOk-volu+AOk- s'affichent dans la langue
s+AOk-lectionn+AOk-e+AKA-?
Par exemple, le "31 octobre 2005" donnant "31th of October 2005" en
anglais ou "31 de Octubre de 2005" en espagnol.
Le masque "JJ MMMM AAAA" donne invariablement "31 Octobre 2005" +IBQ- ce qui
est d'ailleurs incorrect puisque les mois ne prennent pas de majuscule
en fran+AOc-ais +IBQ- quelle que soit la langue s+AOk-lectionn+AOk-e.

--
Eric

4 réponses

Avatar
Gilles Gu
Eric a exposé le 11/04/2006 :
Bonjour,

Existe-t-il une possibilité pour que, dans une application multilangue,
les dates dans un format évolué s'affichent dans la langue
sélectionnée ?
Par exemple, le "31 octobre 2005" donnant "31th of October 2005" en
anglais ou "31 de Octubre de 2005" en espagnol.
Le masque "JJ MMMM AAAA" donne invariablement "31 Octobre 2005" — ce qui
est d'ailleurs incorrect puisque les mois ne prennent pas de majuscule
en français — quelle que soit la langue sélectionnée.



Perso ce que je fais, c'est récupérer le formatage systeme via API,
pour afficher les jours au bon endroit (dd MMMM AAAA) par exemple, et
ensuite je traduis moi même.
Je n'ai pas trouvé dans l'API de manière de récupérer directement la
date dans la bonne langue.

Si tu veux récupérer le formattage de date système :

FONCTION GetSysDateFormat(FormatCourt=Vrai)

MAX_BUFFER_SIZE est un entier = 255
LOCALE_USER_DEFAULT est un entier = 0x400//1024
LOCALE_SSHORTDATE est un entier = 0x1F //31
LOCALE_SLONGDATE est un entier = 0x20 //32

eRes est un entier
sBuffer est une chaîne
eBufferSize est un entier

sBuffer = Répète(Caract(0),MAX_BUFFER_SIZE)
eBufferSize = MAX_BUFFER_SIZE - 1

SI FormatCourt ALORS
eRes =
AppelDLL32("kernel32","GetLocaleInfoA",LOCALE_USER_DEFAULT, LOCALE_SSHORTDATE,
&sBuffer, eBufferSize)
SINON
eRes =
AppelDLL32("kernel32","GetLocaleInfoA",LOCALE_USER_DEFAULT, LOCALE_SLONGDATE,
&sBuffer, eBufferSize)
FIN
sBuffer = Gauche(sBuffer, eRes - 1)

RENVOYER sBuffer

ps : Le masque "Date système" ne donne rien avec Windev?
Avatar
Eric
Le 11 avril 2006 +AOA- 08:22, dans
<news:, Gilles Gu+AOk-dikian nous
disait+AKA-:

Eric a expos+AOk- le 11/04/2006 :
Existe-t-il une possibilit+AOk- pour que, dans une application multilangue,
les dates dans un format +AOk-volu+AOk- s'affichent dans la langue
s+AOk-lectionn+AOk-e+AKA-?
Par exemple, le "31 octobre 2005" donnant "31th of October 2005" en
anglais ou "31 de Octubre de 2005" en espagnol.
Le masque "JJ MMMM AAAA" donne invariablement "31 Octobre 2005" +IBQ- ce qui
est d'ailleurs incorrect puisque les mois ne prennent pas de majuscule
en fran+AOc-ais +IBQ- quelle que soit la langue s+AOk-lectionn+AOk-e.





Perso ce que je fais, c'est r+AOk-cup+AOk-rer le formatage systeme via API,
pour afficher les jours au bon endroit (dd MMMM AAAA) par exemple, et
ensuite je traduis moi m+AOo-me.
Je n'ai pas trouv+AOk- dans l'API de mani+AOg-re de r+AOk-cup+AOk-rer directement la
date dans la bonne langue.



Merci de ta solution mais, en fait, elle ne peut pas me convenir. En
effet, il y a une pr+AOk-cision que j'aurais d+APs- apporter : l'appli tourne
uniquement sur des postes fran+AOc-ais mais doit +AOk-diter des documents en
fran+AOc-ais/anglais/espagnol selon les commandes qu'elle traite.

Par exemple, avant d'+AOk-diter un BL +AOA- destination d'un client anglais,
j'utilise l'instruction Nation(3) afin que tous les libell+AOk-s du BL
s'affichent en anglais. Malheureusement, +AOc-a ne fonctionne pas avec les
dates.

Je me sens bien parti pour me cr+AOk-er une table de correspondances...

--
Eric
Avatar
B. Neve
Il me semble que dans Projet, Description du projet, Langues, tu peux
modifier certains paramètres à ce sujet. Je reviens d'Espagne où j'ai
utilisé cela avec succès.

Benoît

Benoit
"Eric" <ericb33+ a écrit dans le message de news:
1mwzt6k2vkx46$
Bonjour,

Existe-t-il une possibilité pour que, dans une application multilangue,
les dates dans un format évolué s'affichent dans la langue
sélectionnée ?
Par exemple, le "31 octobre 2005" donnant "31th of October 2005" en
anglais ou "31 de Octubre de 2005" en espagnol.
Le masque "JJ MMMM AAAA" donne invariablement "31 Octobre 2005" - ce qui
est d'ailleurs incorrect puisque les mois ne prennent pas de majuscule
en français - quelle que soit la langue sélectionnée.

--
Eric


Avatar
Eric
Le 12 avril 2006 à 16:55, dans
<news:443d15aa$0$2131$, B. Neve nous disait :

Il me semble que dans Projet, Description du projet, Langues, tu peux
modifier certains paramètres à ce sujet. Je reviens d'Espagne où j'ai
utilisé cela avec succès.



Effectivement. Cependant, en anglais il n'est pas possible de paramètrer
correctement. Par exemple pour les 21, 22 23 et 24 septembre, je
voudrais obtenir September 21st, September 22nd, September 23rd et
September 24th. Aucun format ne gère les 2 lettres ajoutées après le
jour. Dommage...
En revanche, ça marche très bien pour espagnol.

Du coup, je reste avec ma table de correspondance qui marche bien, mais
merci pour l'info car je n'avais jamais fait attention à ces options du
projet, n'ayant jamais eu à gérer d'autres langues que le français
jusque là.

--
Eric