Frage

Ich habe die folgenden Nicht-Standard-Setup bekam (VS2008, .NET 3.5 SP1):

Es gibt ein Haupt Webprojekt namens Mainsite und es gibt mehr „Plugin“ Web-Projekte mit unterschiedlichen Namen.

Wenn diese Plugins bauen Ich habe einen benutzerdefinierten Schritt, die aspnet_compiler.exe und aspnet_merge.exe nennt. Dies führt zu zwei DLL-Dateien - plugin_name .dll und plugin_name _deploy.dll. Der erste, der die Code-Behind-Klassen enthält, die zweite enthält Code generiert aus .ascx Dateien.

Diese Plugin .dll werden dann Ordner /MainSite/bin/Plugins/ kopiert. Zur Laufzeit (Start der Anwendung) sieht Mainsite-Anwendung in diesem Ordner und dynamisch lädt alle DLL-Dateien gibt.

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

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

  • Wenn die Ressourcen in Visual Studio zu machen, soll es eine separate Ressource-Datei für jede Form (ASCX-Datei), so dass es für die Menschen leichter, die Formen parallel zu lokalisieren.
  • Die nette meta:resourcekey Methode in .ascx Dateien ist sehr komfortabel für die Lokalisierung Kontrollen;
  • Die automatische Ressource Sprache / Kultur Fallback-Mechanismus in .NET sollte verwendbar sein;
  • Das Ergebnis der Zusammenstellung sollte so beschaffen sein, dass die Dateien von allen Plugins können auf den /MainSite/bin/Plugins/ Ordner kopiert werden. Wenn es eine DLL-Datei für jede Sprache / Kultur ist und sie hav in einigen spezifischen Unterordner gelegt werden -. Das ist in Ordnung, solange die .DLLs aus verschiedenen Plugins haben keine Namen kollidieren

Alle Ideen, wie dies zu erreichen?

War es hilfreich?

Lösung

Anscheinend ist es möglich, benutzerdefinierte Ressourcenprovider in .NET zu implementieren. Hier ist ein Artikel, Links zu verschiedenen anderen Artikeln enthält, die erklären, der ganze Prozess. In der Tat, nehmen Sie den Wert von meta:resourcekey und erhalten den Wert aus, wo immer Sie wollen. Der Artikel oben zum Beispiel speichert alle Lokalisierungsinformationen in einem DB.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top