Frage

Hintergrund

Ein Projekt installiert einige Dateien, die alle Elemente enthalten ein Benutzersteuerelement zu definieren - einige Benutzerquelle, ein CodeCompileUnit für Designer-Code und eine resx Datei. Zur Laufzeit werden diese Dateien in eine Assembly kompiliert werden und die Klassen verbraucht werden durch unsere Anwendung (die Anordnung wird nur aktualisiert, wenn erforderlich).

Frage

Das Projekt hat zu globalisiert und als Teil dieses Prozesses, gibt es einen Bedarf Lokalisierungen dieser Dateien zur Verfügung zu stellen. Zwei Optionen sind entweder der Aufnahme zusätzlicher resx Dateien für verschiedene Gegenden ermöglichen (entweder innerhalb der gleichen Dateien oder als zusätzlicher Side-by-Side-Dateien), die in eine Satelliteneinheit für die Hauptbaugruppe kompiliert werden kann, oder eine Kopie zur Verfügung zu stellen jede vollständige Datei für jede unterstützte Sprache, den entsprechenden Satzes für die Sprache der Erstellung unterstützt.

  • Hat jemand irgendwelche anderen Optionen haben, die es wert sein könnte erwägen?
  • Welche Probleme können in eine der beiden Lösungen inhärent sein, die ich vorgeschlagen habe?

Constraints / Disclaimer
Ich bin mir bewusst, dass das Szenario weniger als ideal ist und dass bessere Entscheidungen in einigen Bereichen gemacht haben könnten (wie von Anfang an globalisierenden), aber sie können an dieser Stelle nicht im Projekt geändert werden. Ich schätze irgendwelche Ratschläge, Lösungen oder führt Sie zur Verfügung stellen können. Danke.

War es hilfreich?

Lösung

Erstellen Sie eine separate Satelliten-Baugruppe für jede Kultur. Dies hat zwei Vorteile:

  • Sie können alle Baugruppen in einem Rutsch bauen und haben eine definitive Datei für jede Versionsnummer und den Dateinamen Kombination, anstatt es auch in Abhängigkeit von der Kultur.
  • Sie können mehrere Baugruppen in der gleichen Anlage haben, und stützen die Sprache der Systemsprache zu verwenden, oder eine Benutzereinstellung usw. Diese Entwicklung macht und Testen wesentlich einfacher, da Sie nicht Wiederaufbau halten müssen und Kopieren Dateien um, nur um Sprachen zu ändern.
  • Es ist, wie .NET i18n ist so konzipiert, zu arbeiten. Während ich keinen Experte für .NET i18n bin (ist mein bester Rat! „Guy Smith-Ferrier Buch lesen“) im Allgemeinen finde ich, dass Rahmenbedingungen am besten, wenn Sie erwartet Modell folgen.

Auch wenn der letzte Teil von „Bau der Satelliten-Versammlung“ zur Laufzeit durchgeführt wird (können Sie es in install Zeit statt?) Sie noch die zweiten und die dritten Kugel Vorteile zumindest bekommen. Es bedeutet auch, dass, wenn Sie jemals tun geht der mehr Normalweg die Satelliten-Baugruppen der Versorgung mit zu beginnen (anstatt sie auf der Benutzer-Box bauen) Sie weniger zu ändern.

Entschuldigt, wenn ich habe die Frage falsch verstanden, obwohl ...

Andere Tipps

Wenn Sie nicht auf das Hinzufügen zusätzlicher Sprachen nach der Bereitstellung planen (zumindest nicht ohne ein Software-Update), dann würde ich bevorzugen alle zusätzlichen RESX-Dateien in eine Satellitenassembly kompiliert, die Sie umfassen. Auf diese Weise sind sie nicht vom Benutzer bearbeitet werden, wenn sie im Einsatz sind.

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