Der Einsatz visueller Zusatzkomponenten, wie zum Beispiel NetAdvantage von Infragistics, kann der eigenen Anwendung schnell einen professionellen Touch verleihen. Mit wenigen Mausklicks kann man seinen Kunden Ribbons, gruppierbare Tabellen und weitere Nettigkeiten bieten.
Getrübt wird die Freude jedoch kurz nach dem Start der eigenen Anwendung, wenn dem Benutzer englische Texte in der deutschen Applikation präsentiert werden. Zurück in Visual Studio zeigt ein schneller Klick durch die Control Eigenschaften, dass sich die englischen Texte leider nicht so einfach über die IDE editieren lassen.
Um nun also nicht bereits innerhalb der ersten zwei Minuten jeden Anschein von Professionalität der eigenen Anwendung zu verlieren, möchte ich im folgenden Beispiel die Möglichkeiten der Infragistics NetAdvantage Windows Forms Control Lokalisierung zeigen.
Ausgehen werde ich von einer einfachen Anwendung mit einem Formular, das ein UltraGrid beherbergt. Innerhalb des Designers habe ich sowohl Gruppierung als auch Filterung aktiviert. Die folgenden Screenshots zeigen das Hauptformular der Anwendung sowie Infragistics eingebauten Filter-Dialog.
Um die englischen Texte nun also los zu werden, deklariert man zunächst eine Variable vom Typen Infragistics.Shared.ResourceCustomizer. Dieser weist man im nächsten Schritt die Customizer Eigenschaft der betreffenden Assembly - in unserem Fall also der UltraWinGrid Assembly - zu.
Im Quellcode sähe das ungefähr wie folgt aus:
// Auf Ressource Customizer Objekt der UltaWinGrid Assembly verweisen
Infragistics.Shared.ResourceCustomizer rc;
rc = Infragistics.Win.UltraWinGrid.Resources.Customizer;
Anschließend kann man die englischen Default-Texte, mehr oder weniger bequem, über die Methode SetCustomizedString(name, customizedText)
des Customizers verändern.
Den Gruppierungsbereich könnte man z. B. wie folgt übersetzen:
// Text für Grid Gruppierung
rc.SetCustomizedString("GroupByBoxDefaultPrompt", "Um nach einer Spalte zu gruppieren, ziehen Sie die Spaltenüberschrift hierhin.");
Etwas müßig ist lediglich das Aufspüren der entsprechenden name Einträge zu den gewünschten Texten. Hierzu gehe ich immer wie folgt vor:
Ausgehend von folgender Übersicht navigiere ich zur den Texten meines entsprechenden Controls. Anschließend suche ich in der Übersicht den passenden name Eintrag für den gewünschten Text.
Die Übersetzungen gelten übrigens Applikationsübergreifend für alle Vorkommen des entsprechenden Controls. Um ein einheitliches Bild zu präsentieren sollte man seine Lokalisierung daher relativ früh durchführen.
Mein komplettes Beispielprogramm gibts
.
Achtung: Zum Ausprobieren wird NetAdvantage 2007 Vol 3 benötigt!