tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
0
ZUGRIFFE
435
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Paul Paul ist offline Rookie
    Registriert seit
    Jul 2010
    Beiträge
    6
    Hi Leute,

    ich habe gerade ein Problem mit dem ResourceManager und hoffte, dass mir vielleicht jemand helfen könne:

    Ich bin bei einem meiner Programme gerade dabei, die Forms etc. zu lokalisieren, um auch englische Formulare zu implementieren. In der Klassenbibliothek, in der die meisten meiner Forms liegen funktioniert das auch ohne Probleme. Weiterhin läd das Programm aber zur Laufzeit Assemblys (Klassenbibliotheken) nach, um bestimmte Klassen in diesen als Plug-ins einzubinden. Ich habe den entsprechenden Formularen der Plug-ins (keine Diskussion über Sinn oder Unsinn der Vorgehensweise bitte, es sei denn, es trägt zur Lösung des Problems bei) jeweils noch eine entsprechende Localize-Methode spendiert, die immer dann aufgerufen wird, wenn im Hauptprogramm die Sprache geändert wird. In einem der Plug-ins habe ich diese Methode auch implementiert und für die Beschriftungen der Controls eine Ressourcen-Datei Captions.resx, zusammen mit der lokalisierten Version Captions.de.resx erstellt. Nun versuche ich, die entsprechenden Strings, die in der Ressource definiert sind, mit dem ResourceManager zu laden, ungefähr so:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    ResourceManager resourceManager = new ResourceManager("NBackAudio.Captions", typeof(NBack).Assembly);
     
                foreach(Control ctrl in this.Controls)
                {
     
                    String caption = resourceManager.GetString(ctrl.Name);
     
                    if (caption != null)
                    {
                        ctrl.Text = caption;
                    }
                }

    Das ist so ziemlich die selbe Vorgehensweise, die ich auch in meinem Hauptformular verwendet habe. Leider wird in meinem Plug-in nur die Standard-Ressource verwendet und nicht die lokalisierte Ressource, egal, welche CurrentUICulture ich einstelle (normaler Weise wird diese zu laden der lokalisierten Ressourcen verwendet). Auch wenn ich beim Laden der Strings eine bestimmte Kultur übergebe, wird nur die Default-Kultur verwendet.

    Es wäre sehr schön, wenn jemand von euch eine Idee hat, was ich falsch mache oder woran im Allgemeinen der Fehler liegt.

    Vielen Dank im Voraus,
    Paul

    EDIT:
    Habe das Problem gefunden. Die Sattelitenassemblys (.dlls die für die jeweiligen Lokalisierungen erstellt werden) wurden natürlich nicht mit kopirt und konnten deshalb zur Leufzeit des Programms auch nicht geladen werden. Im Programmordner gibt es - bei lokalisierten Programmen - für die verschiedenen Kulturen/Sprachen Ordner, in denen die entsprechenden Assemblys liegen und da müssen die Sprach-Assemblys der Plug-ins auch rein. Just in case...
    Geändert von Paul (05.05.11 um 07:44 Uhr)
     

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 01.07.09, 13:15
  2. Laden von Ressourcen
    Von LookAndFeel im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 03.12.08, 15:56
  3. Probleme beim laden der DLL
    Von fsmarine im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 01.07.08, 10:28
  4. Probleme beim laden von Variablen vom Servlet
    Von cowo im Forum Flash Plattform
    Antworten: 3
    Letzter Beitrag: 30.11.06, 16:40
  5. Ressourcen aus fremden Modul laden
    Von HN1 im Forum VisualStudio & MFC
    Antworten: 0
    Letzter Beitrag: 30.07.06, 15:22