Benutzer mit den meisten Antworten
Culture Einstellungen für Dlls

Frage
-
Hallo,
wir haben ein Programm mit mehreren Dlls in CSharp Framework 2 (VS 2005) entwickelt. Das Programm soll mehrere Sprachen unterstützen und jetzt sind zwei Sprachen Deutsch (Standard) und Englisch implementiert.
Das Umschalten hat gut mit CurrentUICulture und CurrentCulture funktioniert.
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Jetzt habe ich festgestellt, wenn das Programm auf Englisch umgestellt wurde, werden die Masken aus zwei Dlls trotzdem in Deutsch angezeigt, obwohl die Masken für beide Sprachen erstellt wurden. Die Hauptmaske wird richtig dargestellt. Die Resources – Dateien für diese zwei Dlls vermisse ich im „en“ – Verzeichnis nach der Installation des Programms auch.
Die Buildeinstellungen der Dlls habe ich auch überprüft, die Sprachversion ist auf „default“ eingestellt.
Woran kann es liegen?
Danke im Voraus,
Igor
Antworten
-
Hallo Igor,
Ich gehe davon aus, dass die Masken, die Du meinst, keine common controls von Windows sind, sondern Windows Forms, und dass sie auf dem selben Thread (Thread.CurrentThread) angezeigt werden.
Beim Umstellen auf Englisch ("en-US") werden die Satellitenassemblies im entsprechenden Unterverzeichnis ("en-US") und dann per Fallback in ("en") gesucht. Falls dort keine Satellitenassembly gefunden wurde, werden die neutralen Ressourcen der Anwendung (Deutsch) herangezogen. Das ist normales Verhalten.
Wenn Du die lokalisierten Satellitenassemblies nicht findest, wurden sie entweder nicht erstellt (Localizable==false, od. Language==(Standard) wobei keine anderssprachigen Ressourcen angegeben wurden), oder die Assemblies wurden erstellt aber nicht ins Setup aufgenommen usw.
Überprüfe für jede Form die Eingenschaften Localizable. Schalte Language auf Englisch um und check mal nach, ob die Text-Eigenschaften auch wirklich auf Englisch gesetzt wurden. Bereinige dann Dein Projekt, erstelle es erneut und prüfe, ob die en-Unterverzeichniss(e) erstellt wurden.Exemplarische Vorgehensweise: Lokalisieren von Windows Forms
http://msdn.microsoft.com/de-de/library/y99d1cd3(v=VS.100).aspx
Gruß
Marcel- Als Antwort vorgeschlagen Marcel RomaModerator Montag, 15. November 2010 12:43
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 23. November 2010 07:48
-
Hallo,
Das Problem ist behoben. Es lag an Install -Projekt. Im Projekt fehlten die Lokalisierten Resourcen für beide Dlls.
Danke,
Igor
- Als Antwort vorgeschlagen Frank Dzaebel Dienstag, 16. November 2010 08:39
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 23. November 2010 07:48
Alle Antworten
-
Hallo Igor,
Ich gehe davon aus, dass die Masken, die Du meinst, keine common controls von Windows sind, sondern Windows Forms, und dass sie auf dem selben Thread (Thread.CurrentThread) angezeigt werden.
Beim Umstellen auf Englisch ("en-US") werden die Satellitenassemblies im entsprechenden Unterverzeichnis ("en-US") und dann per Fallback in ("en") gesucht. Falls dort keine Satellitenassembly gefunden wurde, werden die neutralen Ressourcen der Anwendung (Deutsch) herangezogen. Das ist normales Verhalten.
Wenn Du die lokalisierten Satellitenassemblies nicht findest, wurden sie entweder nicht erstellt (Localizable==false, od. Language==(Standard) wobei keine anderssprachigen Ressourcen angegeben wurden), oder die Assemblies wurden erstellt aber nicht ins Setup aufgenommen usw.
Überprüfe für jede Form die Eingenschaften Localizable. Schalte Language auf Englisch um und check mal nach, ob die Text-Eigenschaften auch wirklich auf Englisch gesetzt wurden. Bereinige dann Dein Projekt, erstelle es erneut und prüfe, ob die en-Unterverzeichniss(e) erstellt wurden.Exemplarische Vorgehensweise: Lokalisieren von Windows Forms
http://msdn.microsoft.com/de-de/library/y99d1cd3(v=VS.100).aspx
Gruß
Marcel- Als Antwort vorgeschlagen Marcel RomaModerator Montag, 15. November 2010 12:43
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 23. November 2010 07:48
-
Hallo,
Das Problem ist behoben. Es lag an Install -Projekt. Im Projekt fehlten die Lokalisierten Resourcen für beide Dlls.
Danke,
Igor
- Als Antwort vorgeschlagen Frank Dzaebel Dienstag, 16. November 2010 08:39
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 23. November 2010 07:48
-