Multi-language sans .dll [Résolu]

clubberzZ 89 Messages postés vendredi 29 octobre 2004Date d'inscription 3 décembre 2007 Dernière intervention - 10 juil. 2007 à 20:27 - Dernière réponse : clubberzZ 89 Messages postés vendredi 29 octobre 2004Date d'inscription 3 décembre 2007 Dernière intervention
- 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
Afficher la suite 

44 réponses

Répondre au sujet
ShareVB 2717 Messages postés vendredi 28 juin 2002Date d'inscription 13 janvier 2016 Dernière intervention - 19 juil. 2007 à 23:35
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ShareVB
DeadEye0112 28 Messages postés vendredi 6 juillet 2007Date d'inscription 11 septembre 2007 Dernière intervention - 23 juil. 2007 à 23:01
+3
Utile
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 (;
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de DeadEye0112
Nikoui 794 Messages postés vendredi 24 septembre 2004Date d'inscription 19 août 2008 Dernière intervention - 10 juil. 2007 à 21:14
0
Utile
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
Commenter la réponse de Nikoui
clubberzZ 89 Messages postés vendredi 29 octobre 2004Date d'inscription 3 décembre 2007 Dernière intervention - 10 juil. 2007 à 21:25
0
Utile
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!
Commenter la réponse de clubberzZ
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 11 juil. 2007 à 14:36
0
Utile
mes des dll en ressource dans ton exe et puis, tu extrais tout ça dans un rep. temporaire ...
Commenter la réponse de cs_ghuysmans99
clubberzZ 89 Messages postés vendredi 29 octobre 2004Date d'inscription 3 décembre 2007 Dernière intervention - 11 juil. 2007 à 18:51
0
Utile
Merci pour ces réponses, mais quelqu'un serait-il faire avec un autre moyen? sans ces .dll? Merci d'avance
Commenter la réponse de clubberzZ
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 12 juil. 2007 à 14:31
0
Utile
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
Commenter la réponse de cs_ghuysmans99
clubberzZ 89 Messages postés vendredi 29 octobre 2004Date d'inscription 3 décembre 2007 Dernière intervention - 12 juil. 2007 à 19:33
0
Utile
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
Commenter la réponse de clubberzZ
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 12 juil. 2007 à 20:32
0
Utile
mettre des strings en ressource dans l'exe ?

_______________________________________________________________________
VB.NETis good ...VB6is better
Commenter la réponse de cs_ghuysmans99
clubberzZ 89 Messages postés vendredi 29 octobre 2004Date d'inscription 3 décembre 2007 Dernière intervention - 12 juil. 2007 à 22:10
0
Utile
Oui sans doute, mais comment faire?
Commenter la réponse de clubberzZ
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 12 juil. 2007 à 23:43
0
Utile
c#.NET ou pas ??
_______________________________________________________________________
VB.NETis good ...VB6is better
Commenter la réponse de cs_ghuysmans99
ShareVB 2717 Messages postés vendredi 28 juin 2002Date d'inscription 13 janvier 2016 Dernière intervention - 12 juil. 2007 à 23:48
0
Utile
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
Commenter la réponse de ShareVB
clubberzZ 89 Messages postés vendredi 29 octobre 2004Date d'inscription 3 décembre 2007 Dernière intervention - 13 juil. 2007 à 19:52
0
Utile
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!
Commenter la réponse de clubberzZ
ShareVB 2717 Messages postés vendredi 28 juin 2002Date d'inscription 13 janvier 2016 Dernière intervention - 19 juil. 2007 à 19:54
0
Utile
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
Commenter la réponse de ShareVB
clubberzZ 89 Messages postés vendredi 29 octobre 2004Date d'inscription 3 décembre 2007 Dernière intervention - 19 juil. 2007 à 20:25
0
Utile
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
Commenter la réponse de clubberzZ
ShareVB 2717 Messages postés vendredi 28 juin 2002Date d'inscription 13 janvier 2016 Dernière intervention - 19 juil. 2007 à 20:37
0
Utile
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
Commenter la réponse de ShareVB
clubberzZ 89 Messages postés vendredi 29 octobre 2004Date d'inscription 3 décembre 2007 Dernière intervention - 19 juil. 2007 à 20:59
0
Utile
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
Commenter la réponse de clubberzZ
clubberzZ 89 Messages postés vendredi 29 octobre 2004Date d'inscription 3 décembre 2007 Dernière intervention - 19 juil. 2007 à 21:29
0
Utile
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!
Commenter la réponse de clubberzZ
clubberzZ 89 Messages postés vendredi 29 octobre 2004Date d'inscription 3 décembre 2007 Dernière intervention - 20 juil. 2007 à 11:10
0
Utile
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!
Commenter la réponse de clubberzZ
clubberzZ 89 Messages postés vendredi 29 octobre 2004Date d'inscription 3 décembre 2007 Dernière intervention - 20 juil. 2007 à 11:18
0
Utile
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...
Commenter la réponse de clubberzZ

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.

Multi-language sans .dll - page 2