Votre programme en multi - langues (moyen très très simple en vb6)

Soyez le premier à donner votre avis sur cette source.

Vue 14 728 fois - Téléchargée 1 837 fois

Description

Prévoyez plusieurs langues pour votre programme dès le départ du développement.

Un moyen très simple pour que votre programme soit un en multi-langue . Seulement en utilisant LoasResString (id)

Source / Exemple :


Pour tester le programme dans le zip:

Si votre système est configuré sur l?emplacement régional Français (France) et que vous lancez le programme alors le menu ainsi que le bouton et le message s?affiche en français.
Allez dans le Menu de Windows Démarrer / Paramètres / Panneau de configuration/ Options régionales/Vos paramètres régionaux (emplacement) . Et sélectionnez la langue Anglais (Etats Unis) ensuite relancez le programme.

Conclusion :


Chargement Ressource VB6

- Allez dans le menu Compléments / Gestionnaire de compléments...
- Sélectionnez Editeur de ressources VB6 dans la liste.
- Cochez la case à cocher Chargé/Déchargé pour le charger dans le menu
- Cochez Chargez au démarrage si vous voulez qu'il s'ajoute automatiquement dans le menu au démarrage du VB6
- Cliquez sur OK

Vous trouverez l'éditeur ressource dans le menu Outils.

Utilisation Ressource VB6

- Cliquez sur l'icône "abc" pour faire apparaître la fenêtre "Modifier les tables de chaînes.
- dans la première ligne l'id est automatiquement ajouté (101) qui est modifiable par la suite.
- dans la deuxième colonne de la même ligne, on peut saisir notre texte en français comme l'indique l'entête de la colonne (ex Bonjour).
- directement de la même colonne cliquez sur l'icône "abc" pour ajouter une nouvelle table de chaîne.
- une liste déroulante apparaît dans l'entête de la nouvelle colonne pour sélectionné une langue spécifique à cette colonne.
- choissiez ex : Anglais (Royaume Uni)
- ensuite dans la deuxième colonne de la première ligne tapez votre texte en anglais (ex : Good morning)
- lorsque vous avez terminer votre saisi fermer cette fenêtre et cliquez sur l'icône sauvegarder (disquette) pour enregistrer les données dans un fichier ressource .res.
- Vous allez trouvez votre fichier inséré automatiquement à votre projet dans documents associés.

Utilisation du fichier dans votre programme.

Très simplement la fonction LoadResString ( id ) renvoie la chaîne correspondante à "id"
de la colonne français si les options régionaux (emplacement) de votre système est configuré sur Français (France)
et si vous modifiez les options régionaux de votre système sur Anglais (Royaume uni), la fonction LoadResString renvoi
automatiquement la chaîne de la table correspondante (càd 2ème colonne) Car LoadResString vérifie
d'abord le LCID (Local Identifier).

Maintenant préparez vous ...

A vos claviers.

Bonne chance .

Je suis là pour répondre à vos questions, idées, suggestions, mêmes vos critiques.

NB : Merci de m'avertir s'il y a des fautes d'orthographes.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
19 juin 2011

pour ecrire l'arabe sous VB6
selectioné font du label ou textbox dans la case script changer occidental en arabe c tous
M.Fetha
Messages postés
19
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
12 janvier 2010

Bonjour tout le monde
En fait j'ai travaillé sur un programme en deux langues arabe et français, la solution que j'ai fait et que je répértorier tous les mots dans ficher de ressource avec un déclage de 1000 entre les deux langues le français commence a partir de l'id 1000
et leurs équivalents arabes a partir de 2000
je me suit servi des ID entre 0 et 999 pour faire enregistrer la taille la taille des polices le charset et pas mal d'autre trucs

Le choix de la langue se fait au démarrage du programme et a chaque chargement d'une feuille j'appel la fonction LoadResStrings dans laquelle j'ai ajouter d'autre controles non pris en compte en standard VB6
Mais le probleme que j ai rencontré c est au niveau des controles de type grille car on peut pas définir une proprièté tag pour chaque colonne
Si quelqu'un connait une solution, j'en serai ravi
merci
Messages postés
1
Date d'inscription
mercredi 1 mars 2006
Statut
Membre
Dernière intervention
5 avril 2006

j'ai lu et réessayer le code mais pas de résultat. surtout lorsque je veut afficher un message avec la clause Msgbox le message s'affiche tout en entier avec des caractères bizarres.
j'attends avec patience votre code
Messages postés
2
Date d'inscription
lundi 18 juillet 2005
Statut
Membre
Dernière intervention
19 juillet 2005

Bonjour.

Dans tout ce qui a été dit sur ce thème, il n'est pas précisé quel os est utilisé.

Or j'observe un truc très bizarre, avec un fichier ressource constitué de plusieurs tables de chaînes (et non d'une table avec textes imbriqués, ou blocs de textes successifs selon les langues) : l'appli VB6 (SP6) compilée n'a pas le même comportement :
1) l'appli affiche comme attendu les textes et messages dans la langue correspondant à l'option régionale de langue sélectionnée sous 2000 (SP4) ;
2) l'appli affiche systématiquement les messages et textes dans la langue de la première colonne du fichier ressource sous XP(SP2), indépendamment de l'option de langue ...

Encore plus étrange : sous XP (SP2), ce problème ne survient pas si l'appli est exécutée en deboggage !!!

Étonnant, n'est-il pas ?

Quelqu'un a déjà eu ça et l'a résolu ?? est ce un bug ? est-ce un problème d'option VB/Windows ?

Certes il y a les deux autres solutions évoquées dans les messages précédents, mais d'une part mon fichier ressource est énorme, et d'autre part le nombre des LoadResString qu'il va falloir aller modifier me rebute ..
Messages postés
141
Date d'inscription
lundi 3 novembre 2003
Statut
Membre
Dernière intervention
20 octobre 2005

DrJo45 : Je ne savais pas qu'on pouvait générer des ressources directement à partir d'une base, je pensais qu'il fallait les saisir manuellement.

Mais ton idée est pas mal c'est vrai. Dans mon application je ne pense pas changer, c'est développé, c'est trop tard ;-)
Afficher les 36 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.