Autor Beitrag
peterd
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mi 19.03.08 17:53 
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:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
string test;
culture = CultureInfo.CurrentCulture;
//culture = CultureInfo.CreateSpecificCulture ("fr");  // Hier kann man eine andere Spracheinstellung erzwingen damit er beim debuggen eine andere Sprache bringt als deutsch

ResourceManager rm = new ResourceManager("_2028_GSM_Modem.myRes"typeof(Form1).Assembly);

test = rm.GetString ("buttonOeffnen", culture);    // Hole den String für Button öffnen aus der entsprechenden resx
buttonOeffnen.Text = test;        // Schreibe den String in die Variable


Danke
peter

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Mi 19.03.2008 um 17:22
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 19.03.08 18:22 
Für Dein Problem direkt habe ich keine Lösung. Aber die Lokalisation geht viel einfacher und automatisch:
www.c-sharp-forum.de....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?

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
peterd Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: 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:
www.c-sharp-forum.de....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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 20.03.08 12:45 
Dann hast du im Setup die Satellite Assemblies vergessen. Die Ordnerstruktur muss so aussehen:
ausblenden Quelltext
1:
2:
3:
- XYZ.exe
- de-DE
  - XYZ.resources.dll
peterd Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Do 20.03.08 14:52 
Die Satellite Assemblies sind bei mir nicht im Setup Projekt Ordner sondern im C# Projekt Ordner...
peterd Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: 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