2009-05-07 4 views
1

ich folgenden Nicht-Standard-Setup habe (VS2008, .NET 3.5 SP1):Tricky Problem mit ASP.NET Web-Formularen Ressourcen und Lokalisierung

Es gibt ein Haupt Webprojekt namens Mainsite und es gibt mehr „Plugin“ Webprojekte mit verschiedenen Namen.

Beim Erstellen dieser Plugins habe ich einen benutzerdefinierten Build-Schritt, der aspnet_compiler.exe und aspnet_merge.exe aufruft. Dies führt zu zwei .DLL-Dateien - plugin_name .dll und plugin_name _deploy.dll. Die erste enthält die Codebehind-Klassen, die zweite enthält Code, der aus .ascx-Dateien generiert wird.

Diese Plugin-DLLs werden dann in den Ordner /MainSite/bin/Plugins/ kopiert. Zur Laufzeit (Anwendungsstart) sucht die MainSite-Anwendung in diesem Ordner und lädt dort dynamisch alle .DLL-Dateien.

Alle meine Formulare sind in den Plugins, in. ASCX-Dateien. Die Hauptanwendung ist nur ein Skelett, das diese ASCX-Benutzersteuerelemente nach Bedarf lädt.

Und jetzt kommt die Notwendigkeit für die Lokalisierung. Im Idealfall würde Ich mag folgendes hat:

  • Wenn die Ressourcen in Visual Studio zu machen, soll es eine separate Ressource-Datei für jede Form (ASCX-Datei) sein, so dass es einfacher ist, für Menschen, die Formen zu lokalisieren in parallel.
  • Die nette Methode in .ascx-Dateien ist sehr komfortabel für die Lokalisierung von Steuerelementen;
  • Die automatische Ressource Sprache/Kultur Fallback-Mechanismus in. NET sollte nutzbar sein;
  • Das Ergebnis der Kompilierung sollte so sein, dass die Dateien von allen Plugins in den Ordner /MainSite/bin/Plugins/ kopiert werden können. Wenn es für jede Sprache/Kultur eine .DLL-Datei gibt und sie in bestimmte Unterordner eingefügt werden muss, ist das in Ordnung, solange die .DLLs verschiedener Plugins keine kollidierenden Namen haben.

Irgendwelche Ideen, wie man das erreicht?

Antwort

1

Anscheinend ist es möglich, benutzerdefinierte Ressourcenanbieter in .NET zu implementieren. Here ist ein Artikel, der Links zu verschiedenen anderen Artikeln enthält, die den gesamten Prozess erläutern. Im Endeffekt nehmen Sie den Wert von und erhalten den Wert von wo auch immer Sie wollen. Der obige Artikel speichert beispielsweise alle Lokalisierungsinformationen in einer Datenbank.

Verwandte Themen