DLLs und ML

Hallo zusammen,

ich sitze seit nun mehr zwei Tagen an dem Problem der Sprachänderung mit Dlls.
Ich möchte eine Software mit einem Hauptprojekt und drei über Dlls eingebundenen Projekten komplett nur noch in englischer Sprache anzeigen lassen.
Dafür habe ich am Haupteintrittspunkt des Hauptprojekts:

MultiLang.ml.ml_UseCulture(new CultureInfo("en"));

gesetzt und die Hauptform wird auch auf Englisch angezeigt, nun ist mein Problem das diese Information nicht an die DLLs weitergereicht wird.
Sollte es dazu schon eine Foreneintrag, habe ich ihn nicht gefunden.
Hoffe ihr könnt mir weiter helfen.

Gruß
Robin

Hello together,

My Problem still exists. Because of this I try to explain my problem in English.
Like I already explained in German, I have some problems converting a German project with some dlls to a project with English texts.

What I already have done:

I opened the tool and converted all strings of the main project and the dlls to ml_strings.
I added the en language to all projects and translated all strings.
After that I tried to switch the language of the project with the language selection form.
Everything seems to be correct and the strings of the main form are displayed in English language.

Now I opened a form which I get from a dll and the language still is German.
I think the problem is that the dlls are loaded into the project before the language-change-form is invoked and therefore they are not affected by the language change.
Hope you can tell me what I have to change in language selection form to affect the forms of the dlls while language change

Best regards,

Robin


Germany

Hallo Robin,

sorry, dass ich zu antworten veräumt habe.

Normalerweise müsste den einen Aufruf reichen. Die aktuelle Sprache wird als Eigenschaft des Threads gesetzt. Sofern Code in einer anderen DLL auf dem gleichen Thread läuft, gilt auch die geänderte Sprache. Das gilt für Ressourcen die später gelesen.

Falls die Benutzerschittstelle bereits initialisiert wurde, wird sie dadurch nicht geändert. Dafür habe ich eine Lösung, die ich "Runtime language switching" genannt habe. Das ist beschrieben ganz am Ende der Seite Quick Tour (Windows Forms) und auch in der Hilfedatei.

Davor würde ich zuerst prüfen, ob die Datelliten-DLLs vorhanden sind. In dem Verzeichnis wo die DLL liegt, muss es ein Unterverzeichnis "en" geben, in dem die Satelliten-DLL project.resources.dll liegt.

Viele Grüße
Phil