Entwickler-Ecke
Sonstiges (.NET) - Multilanguage und Setup-Projekt verträgt sich nicht
peterd - Mi 19.03.08 17:53
Titel: Multilanguage und Setup-Projekt verträgt sich nicht
Hallo zusammen.
Ich hab ein Programm geschrieben das in deutsch und englisch läuft. Jedesmal wenn das Programm startet wird die akutelle culture gelesen und es werden dann die deutschen (bei deutscher culture) bzw. englischen (bei allen anderen cultures) Strings aus den *.resx files geladen.
Funktioniert alles wunderbar. Keine Probleme.
Dann habe ich ein Setup Projekt für mein Programm gemacht. Funktioniert auch alles wunderbar. Lässt sich installieren und deninstallieren. Kein Problem.
Das Problem ist nur: Jedesmal wenn ich das Programm installiere (also über das Setup Projekt, wie es ja auch installiert werden soll) kommt es immer mit englischer Sprache hoch, auch an Windows mit deutscher culture.
Ich verstehe es nicht und finde natürlich auch keine Fehler. Weiß jemand warum das Programm perfekt läuft wenn ich es aus Visual Studio starte und debugge, und wenn ich es installiere läuft es nicht mehr richtig.
Hier noch ein Auszug aus der Software wo die Sprache bestimmt wird:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| string test; culture = CultureInfo.CurrentCulture;
ResourceManager rm = new ResourceManager("_2028_GSM_Modem.myRes", typeof(Form1).Assembly);
test = rm.GetString ("buttonOeffnen", culture); buttonOeffnen.Text = test; |
Danke
peter
Moderiert von
Christian S.: C#-Tags hinzugefügtModeriert von
Christian S.: Topic aus C# - Die Sprache verschoben am Mi 19.03.2008 um 17:22
Christian S. - Mi 19.03.08 18:22
Für Dein Problem direkt habe ich keine Lösung. Aber die Lokalisation geht viel einfacher und automatisch:
http://www.c-sharp-forum.de/viewtopic.php?p=455380#455380
Ich habe das so gemacht und bisher keine Probleme damit gehabt. Hast Du mal geguckt, ob auch alle Dateien kopiert werden oder vielleicht die Datei mit den deutschen Ressourcen fehlt?
peterd - Mi 19.03.08 21:38
Danke für die Info. Ich werd mal deine einfachere Lösung ausprobieren.
Aber noch ne Frage. Wie und wo kann ich denn im Setup Projekt sehen ob er mir die deutsche Ressourcen Datei kopiert hat oder nicht?
Also wenn ich es installiere ist in dem Installationsverzeichniss die deutsche resx drin. Ist sie damit sicher kopiert?
Peter
Ralf Jansen - Mi 19.03.08 22:15
Muß nicht unbedingt mit deinem Problem zusammenhängen, aber wenn es dir um die Lokalisierung deiner GUI geht solltest du eher auf CultureInfo.CurrentUICulture zugreifen.
peterd - Do 20.03.08 10:24
Danke... mit CultureInfo.CurrentUICulture ging es leider auch nicht.
Jezt habe ich mich mal an die Lösung rangewagt:
http://www.c-sharp-forum.de/viewtopic.php?p=455380#455380
Irgendwie mach ich was grundlegend falsch komme aber nicht drauf.
Ich habe ein neues ganz Simples Projekt gemacht.
Eine kleine Form mit einem Label, Localizable auf true, Sprache auf Standart (ist wohl default).
Dann als label.Text "englisches Label" und als Form.Text "englische Form".
Als nächstes Sprache auf Deutsch gestellt und als label.Text "deutsches label" und Form.Text "deutsche Form".
Starte ich aus VS und debugge rennt alles wunderbar. Sobald ich ein Setup Projekt einfüge und es installiere kommt er mir immer in englischer Sprache an deutschen Windows' hoch.
Wenn ich an der Eigenschaft Localization im Setup Projekt drehe ändert sich auch nix.
Dachte es liegt vieleicht an meinem Windows. Habe dann noch einen alten PC mit deutschem XP versucht. Auch keine Änderung.
Ich krieg es noch an den Nerven hier.
Kha - Do 20.03.08 12:45
Dann hast du im Setup die Satellite Assemblies vergessen. Die Ordnerstruktur muss so aussehen:
Quelltext
1: 2: 3:
| - XYZ.exe - de-DE - XYZ.resources.dll |
peterd - Do 20.03.08 14:52
Die Satellite Assemblies sind bei mir nicht im Setup Projekt Ordner sondern im C# Projekt Ordner...
peterd - Di 25.03.08 09:40
... und wenn ich die *.exe aus dem C# Projekt Ordner starte gibt es überhaupt keine Probleme mit den Sprachen.
Nur wenn ich für das Programm ein Setup Projekt erstelle und dann das Programm über die Setup-Datei (Typ: Windows-Installer-Paket) intalliere und starte. Dann kommt es jedesmal mit default Sprache (englisch) hoch, statt in deutsch (egal an welchem PC, hab jetzt inzwischen schon 3 mit deutschem XP und einen mit englischem XP versucht).
Und da verzweifle ich jetzt schon seit fast einer Woche dran.
peterd - Di 25.03.08 14:58
Leute ich habs geschafft. Fragt mich nicht wie...
Hab aus lauter Frust das komplette Visual Studio runtergeschmissen und neu installiert. Jetzt geht das!!!
Jetzt hätte ich aber noch ne Frage. Ist es möglich das Setup, also die Führung durchs Setup, auch mehrsprachig zu machen?
Und damit meine ich nicht für jede Sprache ein neues Setup Projekt zu erstellen.
Im den Setup-Projekt Eigenschaften kann man ja die Localization wählen und dann ist die SetupFührung deutsch, englisch, französisch usw. usw.
Aber kann man das nicht auf "automatisch" einstellen, so dass er mit der ensprechenden Sprache am entsprechenden PC hochkommt?
Grüsse
Peter
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!