Multi-language sans .dll [Résolu]

Signaler
Messages postés
89
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
3 décembre 2007
-
Messages postés
89
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
3 décembre 2007
-
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
A voir également:

44 réponses

Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
20
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
Messages postés
28
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
11 septembre 2007
1
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 (;
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
10
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
Messages postés
89
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
3 décembre 2007

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!
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
mes des dll en ressource dans ton exe et puis, tu extrais tout ça dans un rep. temporaire ...
Messages postés
89
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
3 décembre 2007

Merci pour ces réponses, mais quelqu'un serait-il faire avec un autre moyen? sans ces .dll? Merci d'avance
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
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
Messages postés
89
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
3 décembre 2007

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
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
mettre des strings en ressource dans l'exe ?

_______________________________________________________________________
VB.NETis good ...VB6is better
Messages postés
89
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
3 décembre 2007

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

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!
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
20
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
Messages postés
89
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
3 décembre 2007

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
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
20
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
Messages postés
89
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
3 décembre 2007

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
Messages postés
89
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
3 décembre 2007

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!
Messages postés
89
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
3 décembre 2007

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!
Messages postés
89
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
3 décembre 2007

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...