Multi langage

cs_VinceVG Messages postés 222 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 30 mars 2016 - 27 août 2006 à 17:22
cs_VinceVG Messages postés 222 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 30 mars 2016 - 28 août 2006 à 12:58
Salut,



   Je cherche à faire une application multilingue avec vs2005. Je ne comprend pas tout. Est-il possible de faire une appli qui se traduit à partir d'un fichier texte ? Ou est-ce obligatoirement une DLL ? Qqn a-til fait un tutorial ? Quand je tape multilangage dans la recherche je n'ai que des exemples VB6.


Vince

3 réponses

scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
27 août 2006 à 20:17
salut,
moi j'ai créer une classe comportant des variables correspondant à 1 élément
Ex :






Public
MnuFile1

As



String
=

"&File"

Puis dans l'événement Load de la page principal il lance ces informations :

Me
.mnuFile.Text = Mnufile1

ensuite une fois la classe compléte je fais une copie, puis traduit les éléments et l'échange pour passer dans langue à une autre.
C'est ma méthode, à toi de voir si elle peut te convenir...
Bon courage ;)
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
28 août 2006 à 10:54
Quelque soit le langage, on peut de toutes façons gérer les langages via des fichiers textes, un fichier Excel, une base Accès.

Le principe : Toujours avoir une architecture commune quelque soit la langue (ACCESS ou EXCEL, par le jeu des colonnes, c'est très simple à visualiser), pour un fichier texte, le mieux je crois est de faire un fichier par langue, avec par ligne, le mot ou la phrase correspondant à chaque Label, chaque menu à traduire.

Il te reste à écrire une procédure commune pour charger le .text, le .caption, de chaque contrôle.

L'idée, sans tenir compte d'une syntaxte exacte, c'est de faire quelque chose du style :

CheminFichierLangage = App.path & "\Français.txt"
Open CheminFichierLangage for INPUT as #1
      Do While Not EOF(1) 
         Line input #1, lbl_toto.caption
         Line input #1, txt_toto.text
         Line input #1, txt_titi.text
      Loop
Close #1

Te reste à jouer avec une variable sur le fichier texte à ouvrir pour savoir quelle langue mettre à jour.

Pour un fichier Excel, même principie, mais il suffit de jouer sur un numéro de colonne pour lire tes langages :
Select Case range("A1").value
   case "Français"
         Colonne = 1
   case "Anglais"
         Colonne = 2
End select

et ensuite, tu lis tes données :
lbl_toto.caption = cells(i,Colonne).value
txt_toto.text = cells(i+1,Colonne).value
txt_titi.text = cells(i+2,Colonne).value

Pour ACCESS, idem, tu crées un recordset et tu sélection le ".fields" contenant la bonne langue et tu défiles le tout.

Molenn

P.S. : Attention, je ne donne bien que des pistes, des idées hein ... Juste pour dire que c'est tout à fait faisable par ces méthodes, qui n'ont rien de très compliquées. Je n'ai jamais dit par contre que c'étaient les meilleures solutions, ni les plus rapides, etc ... Je dis juste que c'est possible, que ce n'est pas difficile et que c'est même très facile à faire entretenir par un utilisateur qui ne connaîtraient rien au programme et qui voudrait par exemple rajouter une langue supplémentaire.
0
cs_VinceVG Messages postés 222 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 30 mars 2016
28 août 2006 à 12:58
Salut,



   Merci pour vos réponses. Je pensais à qqc comme ce que vous proposez tous les 2. Mon problème (pour le VB6) est qu'il faut aussi traduire les msgbox et prévoir la mise à jour et donc le logiciel devient un tout peti plus long à écrire. Sans parler des variables inclus dans les différents textes ce qui suppose de faire une recherche sur les chaines entre guillemet. J'espérais trouver qqc de tout prêt mais pour l'instant sans succés (sa existe pour le Delphi par contre).





Par contre pour VS2005 il y a manifestement qqc d'existant mais je n'ai pas tout compris et il semble obligé de passer par des dll ce qui ne simplifie pas la tache du traducteur. Là si qqn pouvais m'expliquer ou me fournir un exemple ...





A+


Vince
0
Rejoignez-nous