Multi-language sans .dll

Résolu
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 - 10 juil. 2007 à 20:27
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 - 24 juil. 2007 à 20:10
Bonsoir à tous,

J'ai cherché sur pas mal de site et googlem ais je n'ai rien trouvé de convaiquant à ce sujet, je désirerais avoir plusieurs langues pour un form sans avoir de .dll en plus de l'exe (je distribue mon exe sans installation), est-ce possible? et si oui comment?

Cordialement

44 réponses

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
19 juil. 2007 à 23:35
salut,

euh, oui, suis bête, les resx que l'on ajoute ne sont pas dans properties....

pour détecter la langue de l'UI : system.threading.thread.currentthread.currentuiculture

pour les tooltiptext, c'est presque pareil :  ton_controle_tooltip.settooltip(ton_button,francais.button1_tooltip);

et pour d'autres controles :this.tabpage1.ToolTipText = francais.tabpage1_tooltip, par exemple...

ShareVB
3
DeadEye0112 Messages postés 28 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 11 septembre 2007 1
23 juil. 2007 à 23:01
En toute logique tu ne devrais même pas avoir de
Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-FR");
étant donné que le langage par défaut chez toi est fr-FR. Ensuite, si jamais ce n'est pas le cas, lang.resx sera utilisé ce qui aura exactement le même effet. Ce fichier est justement là pour ca, pour ne pas avoir à spécifier dès le lancement du programme un CurrentUICulture que l'on attend (;
De rien, c'est un plaisir d'expliquer ce que j'ai mis des jours à comprendre (;
3
Nikoui Messages postés 794 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 19 août 2008 13
10 juil. 2007 à 21:14
Si ce qui te gêne dans les dll satellites utilisée d'habitude pour le "multilingue", c'est uniquement l'install, ce n'est pas vraiment un problème : en .Net, les dll n'ont pas besoin d'être enregistrées (par un regsvr32 par exemple), un simple copié/collé des fichiers binaires suffit (exe + dll). Ainsi, si tu peux te contenter de distribuer ton projet dans un simple fichier zip contenant l'exe + les dll, pas de soucis pour l'install, il n'y a rien de plus a faire.

Maintenant, si tu souhaite réellement n'avoir qu'un seul exe a distribuer et aucune autre dll, il va falloir faire les choses "a la main" et gérer toi même toutes les ressources "embarquées" dans l'exe, et les trier pour utiliser à l'exécution celles qui concernent la bonne langue...

Working as designed
0
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 1
10 juil. 2007 à 21:25
Oui je souhaite réellement n'avoir qu'un seul exe à distribuer, auriez-vous un idée de la facon de faire les choses et de gérer tout cela? Des pistes?

Merci beaucoup!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
11 juil. 2007 à 14:36
mes des dll en ressource dans ton exe et puis, tu extrais tout ça dans un rep. temporaire ...
0
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 1
11 juil. 2007 à 18:51
Merci pour ces réponses, mais quelqu'un serait-il faire avec un autre moyen? sans ces .dll? Merci d'avance
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
12 juil. 2007 à 14:31
des fichiers ini !
il y a là un code en VB6 --> http://www.vbfrance.com/codes/CREER-APPLICATION-MULTILINGUE-TRES-FACILEMENT-EDITEUR-LANGUE-V2_42516.aspx
_______________________________________________________________________
VB.NETis good ...VB6is better
0
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 1
12 juil. 2007 à 19:33
J'ai du mal m'exprimer, enfet je souhaiterais que ces variables de langues soient contenues dans l'exe même et non dans des fichiers à part.. Aucun .ini, ni .dll, je ne distribue que le .exe.
Je n'ai rien trouvé sur le net, donc je m'en remets à vous. Merci
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
12 juil. 2007 à 20:32
mettre des strings en ressource dans l'exe ?

_______________________________________________________________________
VB.NETis good ...VB6is better
0
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 1
12 juil. 2007 à 22:10
Oui sans doute, mais comment faire?
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
12 juil. 2007 à 23:43
c#.NET ou pas ??
_______________________________________________________________________
VB.NETis good ...VB6is better
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
12 juil. 2007 à 23:48
salut,

si tu ne veux pas de satellite assembly, alors il faut que tu gères toi même le chargement des ressources localisée depuis les ressources embarquées et que tu ne respecte pas la convention Nom.xx-XX.resx mais que tu choisisses des noms différents par langue en faisant une sorte de switch sur la currentuiculture...

ShareVB
0
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 1
13 juil. 2007 à 19:52
Pour répondre à la deuxième question c'est C# .net, en ce qui concerne les ressources embarquées, je ne suis pas assé callé dans se sujet, quelqu'un aurait un exemple?
Merci cela m'aiderais vraiment beaucoup!
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
19 juil. 2007 à 19:54
salut,

(bon, c'est marrant, j'avais pas recu de notification de ton dernier message)

ben, dans ton projet, tu ajoutes un resx (fichier de ressources dans le dialogue add item) portant un nom genre "Anglais.resx" puis ensuite tu mets tes chaines pour chaque texte à localiser dedans, puis au chargement, tu affectes à tous tes controles leurs textes à partir de  Properties.Anglais.le_nom_que_tu_as_donné_à_ta_chaine...

et cela en fonction de la langue...comme ca tu n'auras pas d'assembly satellites mais tu vas sacrément te faire c#### (il n'y a pas d'autre mot) pour affecter à tous tes controles...

ShareVB
0
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 1
19 juil. 2007 à 20:25
Je ne pense pas que cela soit si casse tête vu le nombre de controle que j'ai, simplement une dizaine, une fois le fichier.rsx, comment faire pour attribuer la bonne valeur au contrôle? J'essai cela de suite. Merci
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
19 juil. 2007 à 20:37
salut,

euh, c'est toi qui nomme les chaines (les chaines portent un nom) dans le resx...donc c'est toi qui sait que machin va dans la propriété text du controle bidule...en gros, tu fais des méthodes avec que des lignes machin.prop = properties.anglais.nom_chaine , une méthode pour chaque langue...

ShareVB
0
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 1
19 juil. 2007 à 20:59
Bonsoir,

Est-ce possible au chargement de prendre en compte la langue de l'os et d'afficher la traduction en fonction de cette langue? (si il ny a pas la langue correspondante afficher le francais par default)

Merci bcp
0
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 1
19 juil. 2007 à 21:29
J'ai éssayé et je n'ai trouvé que cette méthode qui passe : "this.button1.Text = francais.button1" pour la traduction, en ce qui concerne les tooltip à traduire je n'ai rien trouvé la dessus...

Encore un grand merci pour votre aide!
0
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 1
20 juil. 2007 à 11:10
Hello,

Auriez-vous un exemple de "system.threading.thread.currentthread.currentuiculture" en fonction de la langue de l'os installée chez l'utilisateur, j'ai regardé pas mal de posts à se sujet mais ca m'embrouille plus qu'avant...

Pour ce qui est de "settooltip" j'ai cette erreur à la compilation : 'System.Windows.Forms.CheckBox' ne contient pas de définition pour 'settooltip'.
J'ai bien sur ajouté le contrôle tooltip à ma Form1 qui s'appel "tooltip1". Une idée?

Merci à vous!
0
clubberzZ Messages postés 89 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 3 décembre 2007 1
20 juil. 2007 à 11:18
J'ai parlé trop vite pour ce qui est de settooltip j'ai réussi à le faire fonctionner. Il ne reste que la détection à voir...
0
Rejoignez-nous