clubberzZ
Messages postés89Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention 3 décembre 2007
-
10 juil. 2007 à 20:27
clubberzZ
Messages postés89Date d'inscriptionvendredi 29 octobre 2004StatutMembreDerniè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?
DeadEye0112
Messages postés28Date d'inscriptionvendredi 6 juillet 2007StatutMembreDernière intervention11 septembre 20071 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 (;
Nikoui
Messages postés794Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention19 août 200813 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...
clubberzZ
Messages postés89Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention 3 décembre 20071 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
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 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...
clubberzZ
Messages postés89Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention 3 décembre 20071 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!
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 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...
clubberzZ
Messages postés89Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention 3 décembre 20071 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
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 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...
clubberzZ
Messages postés89Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention 3 décembre 20071 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)
clubberzZ
Messages postés89Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention 3 décembre 20071 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...
clubberzZ
Messages postés89Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention 3 décembre 20071 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?