Wie bekomme ich die Localizable-Eigenschaft und Unterstützung in meinem eigenen Design-Tool?

8

Überblick

In einer anderen Frage fragte ich nach Bereitstellung von Lokalisierungen für einige Runtime kompiliert UserControl 's . Bevor ich jedoch die Lokalisierungen bereitstellen kann, muss ich die Steuerelemente lokalisieren.

Hintergrund

Die Steuerelemente werden von unserem eigenen Designer im WinForms-Stil (mit Unterstützung von .NET für Designoberflächen usw.) erstellt und als Binärformat gespeichert, das die CodeCompileUnit , resource resx und die Benutzerquelle in einer Datei kombiniert. Diese Dateien werden dann zur Laufzeit von einem anderen Tool in eine Assembly kompiliert.

Um diese zu lokalisieren, müssen wir dem Designer und der Serialisierung mitteilen, dass lokalisierbare Eigenschaftswerte in den Ressourcen gespeichert werden sollen. Der VisualStudio WinForms-Designer führt dazu eine Erweiterungseigenschaft namens Localizable und eine zugeordnete Eigenschaft zum Angeben der Standardkultur aus. Wir benötigen diese Eigenschaft in unserem benutzerdefinierten Designer, wenn möglich.

Einschränkungen

Wir benötigen unser eigenständiges Designer-Tool, das für Nicht-Entwicklertypen einfach zu verwenden ist und bestimmte Aktionen einschränkt, so dass die Verwendung einer kostenlosen Edition von Visual Studio (zB C # Express) nicht funktioniert (ich habe es bereits eingestellt) und gescheitert); Daher gibt es eine Lösung, wie wir diese Benutzersteuerelemente lokalisieren können, um dies zu kompensieren.

Frage

Können wir die Unterstützung von Localizable in unseren benutzerdefinierten WinForms-Designer integrieren?

  • Wenn ja, wie?
  • Wenn nein, welche Alternativen gibt es, um unsere UserControl zu lokalisieren? z.B. Post-Processing irgendwie, anderes Dateiformat, etc.
Jeff Yates 03.02.2009, 15:21
quelle

2 Antworten

3

Ich bin mir nicht sicher, ob ich deine Frage richtig verstanden habe.

Überprüfen Sie einfach die System.ComponentModel.LocalizableAttribute für alle Eigenschaften auf (de-) serialisieren, wenn Ihr Steuerelement lokalisierbar ist.

%Vor%

Da Sie sich entschieden haben, Ihren eigenen Designer zu schreiben, müssen Sie das selbst tun.

    
Stefan Haubold 03.08.2009 09:32
quelle
1

Sie müssen ein System.ComponentModel.Design.LocalizationExtenderProvider auf Ihre Designoberfläche.

    
Alex Lyman 09.08.2009 00:21
quelle