MESSAGEDLG AVEC CHOIX DE LA LANGUE

florenth - 26 févr. 2007 à 15:02
cs_Korda Messages postés 23 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 9 avril 2016 - 24 mai 2007 à 14:44
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41646-messagedlg-avec-choix-de-la-langue

cs_Korda Messages postés 23 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 9 avril 2016
24 mai 2007 à 14:44
merci bcp pour ce travail mais j'ai 1 ptite quset
quel est le code de la langue arabe
Francky23012301 Messages postés 400 Date d'inscription samedi 6 août 2005 Statut Membre Dernière intervention 11 février 2016 1
8 mars 2007 à 11:37
Puis si je deviens Admin : Japee et BrunNews n'auront plus de femmes en furies qui leurs jettent leur petites culottes. Je peux pas leur faire ca lol.
Francky23012301 Messages postés 400 Date d'inscription samedi 6 août 2005 Statut Membre Dernière intervention 11 février 2016 1
8 mars 2007 à 11:35
@Cirec :

*"au passage, j'aime bien ce que tu fais en ce moment sur le forum ... ". On s'est compris : oué je met de l'eau dans mon vin en ce moment (il y a eu un ptit bémol mais tu sais pourquoi).

*"c'est cool continu t'est sur la bonne voie jeune apprenti lol" : j'ai pas envie de devenir admin moi lol : trop de contrainte, trop de boulot, trop mauvais pour ma consommation de gouttes.
Utilisateur anonyme
3 mars 2007 à 00:43
Merci à tous,

@Caribensila: L'unicode c'est pas encore mon truc (je n'ai jamais eu à l'utiliser) mais je ne désespère pas ;)

Et puis il y a Florenth qui s'est déjà proposé ... je suis déjà impatient de voir ça :)

@Francky: "C'est quoi ton secret ????"
Ben ... rien de spécial.
j'ai commencé il y a longtemps avec le Basic puis TurboPascal et puis un jour ... Delphi lol

Déjà j'ai pas contrainte (je ne fais pas cela pour le boulot juste pour le plaisir)
je suis assez tenace, j'aime bien quand ça coince un peut, parfois il m'arrive de voir trop gros
dans ce cas après avoir essayé tout ce je pouvais ben je le laisse de coté (je me dis que suis pas encore a la hauteur c'est pas encore le moment) je passe à autre chose (sans changer de domaine) et au bout d'un moment (plus ou moins long) j'y reviens ... voilà


Mais là ou j'ai appris un maximum c'est sur le forum ... en répondant aux questions et souvent je n'en connaissait pas la réponse mais je prenais ça pour défi ... et je poste toujours une solution testée ... eh ouais ça en fait des projets avec beaucoup de codes de toutes sorte se trouvant ensemble ... ça me fait une belle bibliothèque sauf que c'est un peut le bordel lol

Mon aide c'est:
DelphiFr, le net ... bein sur
Mais la plus part du temps c'est l'aide de Delphi
et surtout les sources de Delphi ... j'y ai appris énormément, c'est une mine d'or

Dans l'EDI chaque variable/méthode (sauf sur sa propre déclaration) devient un lien vers sa déclaration où son implémentation grâce à la touche Ctrl et un clique gauche dessus (pour ceux qui possèdent les sources bien sur) des fois il refuse, dans ce cas il faut charger le fichier manuellement (en restant dessus avec la souris le hint vous indique le nom de l'unité dans laquelle elle se trouve)

Si la touche F1 ne fonctionne pas ... tout n'est pas perdu ...
copiez le nom collez le dans l'aide, sous recherche et recommencez, souvent vous trouverez ;)

voilà tu sais tout ...

au passage, j'aime bien ce que tu fais en ce moment sur le forum ... c'est cool continu t'est sur la bonne voie jeune apprenti lol

@+
Cirec
Francky23012301 Messages postés 400 Date d'inscription samedi 6 août 2005 Statut Membre Dernière intervention 11 février 2016 1
1 mars 2007 à 11:40
Merci Cirec : j'ai encore appris grace à toi plein de choses que je connaissais pas. Tu as pas finit de nous épater toi. C'est quoi ton secret ????

Coté code : ben ca se passe ce commentaire : travail nickel encore
Ah oui, mais l'Unicode avec Delphi, ça devient vite très compliqué...
Déjà, il faut utiliser des WideString au lieu des AnsiString, donc des (P)WideChar au lieu des (P)Char. Tu ne peux donc plus utiliser des routines Ansi de windows, mail il faut utiliser celles qui supportent Unicode: les routines "W" au lieu des routines "A" comme MessageBoxW au lieu de MessageBoxA et comme Delphi utilise par défaut les dernières, on est pas prêt d'y arriver.

Y'a moyen, comme tout, d'y parvenir, mais à quel prix ? si j'ai le temps j'essayerai avec le japonais comme il est déjà installé sur mon PC (eh oui, il faut le pack de langues asiatiques de Windows: ~230 Mo)

Donc, premier pas pour y arriver: Panneau de config > Options régionales, date, heure > Options régionales et linguistiques > Onglet "Langues" > Cocher les cases (une ou les deux) de prise en charge des langues supplémentaires.

Redémarrer, paramétrer son clavier pour pouvoir saisir du japonais:
Toujours dans l'onglet "Langues" > Détails > Onglet "Avancé" > Cocher "Etendre les services ...." et décocher l'autre".

Et ensuite, ouvrir NotePad et s'amuser !!

(Pour ceux qui ont un quertz, pour écrire en japonais, faire alt-Maj pour passer en japonais et ensuite Alt-° (touche à gauche du 1) pour passer en saisie d'hiragana).

Delphi arrive seulement après tout ça, si j'ai bien compris...
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
28 févr. 2007 à 03:38
bémol:
J'ai encore parlé trop vite!
Toujours, j'ai des problèmes avec les langues asiatiques...
l'unicode, quoi...
J'aimerais bien un petit topo sur ce problème, si c'est pas trop déranger....
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
28 févr. 2007 à 03:22
Ah bein là... J'ai pas perdu mon temps!
Y'avait longtemps que je cherchais ça.

PS: y'a quand même qq pointures, sur CS!
Yes, génial ton truc, ça s'utilise pareil que l'ancienne version mais c'est bien plus polyvalent !
ça vaut bien son 10/10 et pour une fois, je vais noter ....
Utilisateur anonyme
27 févr. 2007 à 02:14
Merci pour tes conseils et ton appréciation.
Voilà c'est fait ... :)


j'ai pris une autre direction que tes propositions ...
car si l'on veut une solution le plus "autonome" possible, le Type TLangues que tu proposais allait
déjà à l'encontre d'un tel système. En effet comment ajouter d'autres langues sans devoir recompiler :]

Maintenant l'utilisateur final peut s'il le désire modifier et/où ajouter
de nouveaux fichiers de langages et ce sans connaissance de la programmation.

Les données sont stockées dans un fichier de type Ini ... donc accessible à tous avec un simple éditeur de texte.

On peut certainement encore l'améliorer mais je crois que je tiens le bon bout ... lol

en espérant n'avoir rien oublié ... dit moi ce que tu en penses.

@+
Cirec
L'idée est bonne mais le problème est: comment choisir la langue ? A la compilation certes, mais tu ne vas pas compiler autant de fois ton programme qu'il y a de langues dedans !

Ce que j'aurais fait, c'est utiliser un tableau de pointeurs de resourcestring mais du style :

type
TLangues = (lFrancais, lAnglais, lAllemand);

var
DefMsgLanguage: TLangues = lAnglais;

const
Caption: array[TLangues, TMsgDlgType] of Pointer = ((msg en français), (msg en anglais), (msg en allemand));

Et la fonction MessageDlg() utiliserait la variable globale DefMsgLanguage pour afficher la bonne langue. On pourrait même imaginer une clause d'initialisation de l'unité pour choisir la langue du système comme langue par défaut des messages (ou anglais si pas dispo).

Bref, mais tout cela induit d'autres problèmes, comme le rajout dynamique de langues par extension. Ce qu'il faudrait pour être complet, c'est tout un système d'internationalisation des programmes, mais là... ça devient compliqué.

A toi de voir ...
Rejoignez-nous