Hi,
ich habe das folgendermaßen gemacht:
Ich habe eine Globale Classe namens TranslationManager
Ändert sich die Sprache (oder wird zum ersten mal geladen) so läd dieser Manager mehrere XML Dateien aus einem Verzeichnis. Da stehen globale übersetzungen drin.
Zusätzlich schaut es in jedem Pluginverzeichnis nach einer XML datei z.B. de.xml oder en.xml.
Die XML dateien sind im prinzip nach Namespaces aufgeteilt.
z.B.
<Global>
<GUI>
<ButtonOK text="OK" />
</GUI>
</Global>
Dies kann ich nun per Funktion aus dem TranslationManager abrufen. TranslationManager.GetText("Global.GUI.ButtonOK");
Und schon bekomme ich die übersezung.
Ob dieses jetzt in der Plugin Übersetzung oder in der "globalen" Übersetzung steht is mir egal.
Was is zusätzlich gemacht habe ist, dass man Objekte im TranslationManager registrieren kann, welche, falls unterstützt, übersetzt werden. So registriere ich z.B. rekursiv mein gesamtes Form und wenn ich die Sprache ändere, werden alle Objekte von Typ TextBox oder Label ünbersetzt. Aber das is nur ein feature um mir die Arbeit zu erleichtern^^
Falls Du interesse hat, kannst ich dir dazu gerne mal den Code schicken, oder du reflektierst einfach mein aktuelles Projekt DataShield (
http://datashield.eu) ;-)
Gruß
HyperteX