cs_VinceVG
Messages postés221Date d'inscriptionmercredi 8 septembre 2004StatutMembreDernière intervention30 mars 2016
-
27 août 2006 à 17:22
cs_VinceVG
Messages postés221Date d'inscriptionmercredi 8 septembre 2004StatutMembreDernière intervention30 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.
scottmat
Messages postés438Date d'inscriptionsamedi 24 mai 2003StatutMembreDernière intervention23 janvier 20111 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 ;)
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 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.
cs_VinceVG
Messages postés221Date d'inscriptionmercredi 8 septembre 2004StatutMembreDernière intervention30 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 ...