Multi-language sans .dll [Résolu]

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

Votre réponse

20/44 réponses

Meilleure réponse
Messages postés
2717
Date d'inscription
vendredi 28 juin 2002
Dernière intervention
13 janvier 2016
3
Merci
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

Merci ShareVB 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de ShareVB
Messages postés
28
Date d'inscription
vendredi 6 juillet 2007
Dernière intervention
11 septembre 2007
3
Merci
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 (;

Merci DeadEye0112 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de DeadEye0112
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Dernière intervention
19 août 2008
0
Merci
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
Messages postés
89
Date d'inscription
vendredi 29 octobre 2004
Dernière intervention
3 décembre 2007
0
Merci
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
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
0
Merci
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
Messages postés
89
Date d'inscription
vendredi 29 octobre 2004
Dernière intervention
3 décembre 2007
0
Merci
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
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
0
Merci
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
Messages postés
89
Date d'inscription
vendredi 29 octobre 2004
Dernière intervention
3 décembre 2007
0
Merci
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
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
0
Merci
mettre des strings en ressource dans l'exe ?

_______________________________________________________________________
VB.NETis good ...VB6is better
Commenter la réponse de cs_ghuysmans99
Messages postés
89
Date d'inscription
vendredi 29 octobre 2004
Dernière intervention
3 décembre 2007
0
Merci
Oui sans doute, mais comment faire?
Commenter la réponse de clubberzZ
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
0
Merci
c#.NET ou pas ??
_______________________________________________________________________
VB.NETis good ...VB6is better
Commenter la réponse de cs_ghuysmans99
Messages postés
2717
Date d'inscription
vendredi 28 juin 2002
Dernière intervention
13 janvier 2016
0
Merci
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
Messages postés
89
Date d'inscription
vendredi 29 octobre 2004
Dernière intervention
3 décembre 2007
0
Merci
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
Messages postés
2717
Date d'inscription
vendredi 28 juin 2002
Dernière intervention
13 janvier 2016
0
Merci
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
Messages postés
89
Date d'inscription
vendredi 29 octobre 2004
Dernière intervention
3 décembre 2007
0
Merci
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
Messages postés
2717
Date d'inscription
vendredi 28 juin 2002
Dernière intervention
13 janvier 2016
0
Merci
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
Messages postés
89
Date d'inscription
vendredi 29 octobre 2004
Dernière intervention
3 décembre 2007
0
Merci
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
Messages postés
89
Date d'inscription
vendredi 29 octobre 2004
Dernière intervention
3 décembre 2007
0
Merci
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
Messages postés
89
Date d'inscription
vendredi 29 octobre 2004
Dernière intervention
3 décembre 2007
0
Merci
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
Messages postés
89
Date d'inscription
vendredi 29 octobre 2004
Dernière intervention
3 décembre 2007
0
Merci
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.