Laden...

ResourceManager und eigene Resourcen dll

Erstellt von dschmoegner vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.576 Views
D
dschmoegner Themenstarter:in
280 Beiträge seit 2005
vor 17 Jahren
ResourceManager und eigene Resourcen dll

Hallo,

nach dem ich den Artikel von egrath über die Resourceneinbindung gelesen habe, wollte ich versuchen eben dieses für die Lokalisierung meiner Software zu verwenden. Folgendes habe ich vor. Eine Lokalisierung für die Kultur de-DE und eine Lokalisierung für alles andere. Dies müsste ja dann der Invariant Culture entsprechen. Wenn ich nun die ResTest.resources und die ResTest.de-DE.resources in eine DLL packe bekomme ich beim Ausführen dieses Codes:

ResourceManager locRm = new ResourceManager("ResTest", Assembly.LoadFile("resources.dll"));
            MessageBox.Show(locRm.GetString("strEnter", new CultureInfo("de-DE")));

immer die englischen Einträge, die für die Invariant Culture hinterlegt wurden, angezeigt. Wenn ich im Konstruktor für den ResourceManager statt ResTest ResTest.de-DE schreibe bekomme ich die deutschen Einträge.

Liegt es an der Verwendung der Invariant Culture? Muss ich für die Lokalisierung explizite Kulturen verwenden?

Grüße
dschmoegner

Dennie Schmögner
Dipl. Ing. Informatik / Fachrichtung Automatisierungstechnik
Microsoft Business Intelligence 2005
SharePoint Portal Server 2007

D
dschmoegner Themenstarter:in
280 Beiträge seit 2005
vor 17 Jahren

Nach einigen Recherchen scheint es so als würde mit new CultureInfo nicht auf die angegebene Kultur gewechselt werden. Das dürfte der Grund sein warum immer die Texte der Standardkultur verwendet werden. Zumindestens stellt es sich so heraus wenn ich dieses Beispiel durchgehe. Dort bekomme ich auch immer nur die Einträge der Standardresource angezeigt.

Bringt mich zwars nicht auf einen Lösungsweg, aber hilfreich ist es evtl. trotzdem. 🙂

Gruss
dschmögner

Dennie Schmögner
Dipl. Ing. Informatik / Fachrichtung Automatisierungstechnik
Microsoft Business Intelligence 2005
SharePoint Portal Server 2007

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo dschmoegner,

nur so ein Schluss ins Blaue: Application.CurrentCulture

herbivore

D
dschmoegner Themenstarter:in
280 Beiträge seit 2005
vor 17 Jahren

Danke herbivore,

leider hat es keinen Erfolg gebracht. Ich werd mal weiterschauen wie ich der App beibiegen kann ne anderen Resourceneintrag zu verwenden.

Gruss
dschmoegner

Nachtrag:
CurrentCulture ist de-DE.

Noch ne Nachfrage. Die resources.dll habe ich als Verweis dem Projekt hinzugefügt, da ich der Meinung war dies entspräche dem Kompilerparameter "/resource:<Dateiname>". So langsam keimen da in mir Zweifel auf.

Dennie Schmögner
Dipl. Ing. Informatik / Fachrichtung Automatisierungstechnik
Microsoft Business Intelligence 2005
SharePoint Portal Server 2007

D
dschmoegner Themenstarter:in
280 Beiträge seit 2005
vor 17 Jahren

Um eine Lösung zu finden, bin ich von dem Ansatz einer Resourcendll zurückgegangen und habe nun in den einzelnen Komponenten Resourcenfiles angelegt. Darüber funktioniert die Lokalisierung auch so wie ich es mir erhofft hatte.

Danke für die Hilfe.

Gruß
dschmoegner

Dennie Schmögner
Dipl. Ing. Informatik / Fachrichtung Automatisierungstechnik
Microsoft Business Intelligence 2005
SharePoint Portal Server 2007