Freigeben über


Exemplarische Vorgehensweise: Lokalisieren einer Hybridanwendung

Aktualisiert: November 2007

In dieser exemplarischen Vorgehensweise wird erläutert, wie WPF-Elemente in einer Windows Forms-basierten Hybridanwendung lokalisiert werden.

In dieser exemplarischen Vorgehensweise werden u. a. folgende Aufgaben veranschaulicht:

  • Erstellen des Windows Forms-Hostprojekts

  • Hinzufügen von lokalisierbarem Inhalt

  • Aktivieren der Lokalisierung

  • Zuweisen von Ressourcenbezeichnern

  • Das Verwenden des LocBaml-Tools zum Erzeugen einer Satellitenassembly

Eine vollständige Codeauflistung der in dieser exemplarischen Vorgehensweise veranschaulichten Aufgaben finden Sie unter Beispiel zum Lokalisieren einer Hybridanwendung.

Am Ende des Prozesses haben Sie eine lokalisierte Hybridanwendung.

Hinweis: Je nach den aktiven Einstellungen oder der verwendeten Version können sich die angezeigten Dialogfelder und Menübefehle von den in der Hilfe beschriebenen unterscheiden. Wählen Sie im Menü Extras die Option Einstellungen importieren und exportieren aus, um die Einstellungen zu ändern. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

Vorbereitungsmaßnahmen

Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:

  • Visual Studio 2008.

Erstellen des Windows Forms-Hostprojekts

Zunächst muss das Windows Forms-Anwendungsprojekt erstellt und ein WPF-Element mit Inhalt hinzugefügt werden, den Sie lokalisieren werden.

So erstellen Sie das Hostprojekt

  1. Erstellen Sie ein WPF-Anwendungsprojekt mit dem Namen LocalizingWpfInWf. Weitere Informationen finden Sie unter Gewusst wie: Erstellen eines Windows-Anwendungsprojekts.

  2. Fügen Sie dem Projekt ein WPF-UserControl-Element mit dem Namen SimpleControl hinzu.

  3. Verwenden Sie das ElementHost-Steuerelement, um auf dem Formular ein SimpleControl-Element zu platzieren. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Hosten eines zusammengesetzten Windows Presentation Foundation-Steuerelements in Windows Forms.

Hinzufügen von lokalisierbarem Inhalt

Im nächsten Schritt fügen Sie ein Windows Forms-Label-Steuerelement hinzu und legen den Inhalt des WPF-Elements auf eine lokalisierbare Zeichenfolge fest.

So fügen Sie lokalisierbaren Inhalt hinzu

  1. Doppelklicken Sie im Projektmappen-Explorer auf SimpleControl.xaml, um die Datei im WPF-Designer zu öffnen.

  2. Legen Sie den Inhalt des Button-Steuerelements mit dem folgenden Code fest.

  3. Doppelklicken Sie im Projektmappen-Explorer auf Form1, um das Formular im Windows Forms-Designer zu öffnen.

  4. Öffnen Sie die Toolbox, und doppelklicken Sie auf Bezeichnung, um dem Formular ein Label-Steuerelement hinzuzufügen. Legen Sie den Wert der Text-Eigenschaft auf "Hello" fest.

  5. Drücken Sie F5, um die Anwendung zu erstellen und auszuführen.

    Sowohl das SimpleControl-Element als auch das Label-Steuerelement zeigen den Text "Hello" an.

Aktivieren der Lokalisierung

Der Windows Forms-Designer stellt Einstellungen bereit, mit denen die Lokalisierung in einer Satellitenassembly aktiviert wird.

So aktivieren Sie die Lokalisierung

  1. Doppelklicken Sie im Projektmappen-Explorer auf Form1.cs, um das Formular im Windows Forms-Designer zu öffnen.

  2. Legen Sie im Eigenschaftenfenster den Wert für die Localizable-Eigenschaft auf true fest.

  3. Legen Sie im Eigenschaftenfenster den Wert für die Language-Eigenschaft auf Spanisch - Spanien fest.

  4. Wählen Sie im Windows Forms-Designer das Label-Steuerelement aus.

  5. Legen Sie im Eigenschaftenfenster den Wert der Text-Eigenschaft auf "Hola" fest.

    Dem Projekt wird eine neue Ressourcendatei mit dem Namen Form1.es-ES.resx hinzugefügt.

  6. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Form1.cs, und klicken Sie dann auf Code anzeigen, um die Datei im Code-Editor zu öffnen.

  7. Kopieren Sie vor dem Aufruf von InitializeComponent den folgenden Code in den Form1-Konstruktor.

  8. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf LocalizingWpfInWf, und klicken Sie dann auf Projekt entfernen.

    Der Projektname ist als (nicht verfügbar) gekennzeichnet.

  9. Klicken Sie mit der rechten Maustaste auf LocalizingWpfInWf, und klicken Sie dann auf LocalizingWpfInWf.csproj bearbeiten.

    Die Projektdatei wird im Code-Editor geöffnet.

  10. Kopieren Sie die folgende Zeile in die erste PropertyGroup in der Projektdatei.

    <UICulture>en-US</UICulture> 
    
  11. Speichern Sie die Projektdatei, und schließen Sie sie dann.

  12. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf LocalizingWpfInWf, und klicken Sie dann auf Projekt erneut laden.

Zuweisen von Ressourcenbezeichnern

Mithilfe von Ressourcenbezeichnern können Sie Ressourcenassemblys den lokalisierbaren Inhalt zuordnen. Die MsBuild.exe-Anwendung weist Ressourcenbezeichner automatisch zu, wenn Sie die updateuid-Option angeben.

So weisen Sie Ressourcenbezeichner zu

  1. Öffnen Sie im Startmenü die Visual Studio-Eingabeaufforderung.

  2. Verwenden Sie den folgenden Befehl, um dem lokalisierbaren Inhalt Ressourcenbezeichner zuzuweisen.

    msbuild /t:updateuid LocalizingWpfInWf.csproj
    
  3. Doppelklicken Sie im Projektmappen-Explorer auf SimpleControl.xaml, um die Datei im Code-Editor zu öffnen. Sie werden feststellen, dass der msbuild-Befehl allen Elementen das Uid-Attribut hinzugefügt hat. Dies erleichtert die Lokalisierung durch die Zuweisung von Ressourcenbezeichnern.

  4. Drücken Sie F6, um die Projektmappe zu erstellen.

Verwenden von LocBaml zum Erzeugen einer Satellitenassembly

Der lokalisierte Inhalt wird in einer Satellitenassembly gespeichert, die nur als Ressource dient. Verwenden Sie das Befehlszeilentool LocBaml.exe, um eine lokalisierte Assembly für den WPF-Inhalt zu erzeugen.

So erzeugen Sie eine Satellitenassembly

  1. Kopieren Sie LocBaml.exe in den Ordner obj\Debug des Projekts. Weitere Informationen finden Sie unter Gewusst wie: Lokalisieren einer Anwendung.

  2. Verwenden Sie im Eingabeaufforderungsfenster den folgenden Befehl, um Ressourcenzeichenfolgen in eine temporäre Datei zu extrahieren.

    LocBaml /parse LocalizingWpfInWf.g.en-US.resources /out:temp.csv
    
  3. Öffnen Sie die Datei temp.csv in Visual Studio oder einem anderen Text-Editor. Ersetzen Sie die Zeichenfolge "Hello" durch die spanische Übersetzung "Hola".

  4. Speichern Sie die Datei temp.csv.

  5. Verwenden Sie den folgenden Befehl, um die lokalisierte Ressourcendatei zu generieren.

    LocBaml /generate /trans:temp.csv LocalizingWpfInWf.g.en-US.resources /out:. /cul:es-ES
    

    Die Datei LocalizingWpfInWf.g.es-ES.resources wird im Ordner obj\Debug erstellt.

  6. Verwenden Sie den folgenden Befehl, um die lokalisierte Satellitenassembly zu erstellen.

    Al.exe /out:LocalizingWpfInWf.resources.dll /culture:es-ES /embed:LocalizingWpfInWf.Form1.es-ES.resources /embed:LocalizingWpfInWf.g.es-ES.resources
    

    Die Datei LocalizingWpfInWf.resources.dll wird im Ordner obj\Debug erstellt.

  7. Kopieren Sie die Datei LocalizingWpfInWf.resources.dll in den Ordner bin\Debug\es-ES des Projekts. Ersetzen Sie die vorhandene Datei.

  8. Führen Sie die Datei LocalizingWpfInWf.exe aus, die sich im Ordner bin\Debug des Projekts befindet. Erstellen Sie die Anwendung nicht neu, da sonst die Satellitenassembly überschrieben wird.

    Die Anwendung zeigt statt der englischen Zeichenfolgen die lokalisierten Zeichenfolgen an.

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Lokalisieren von Windows Forms

Konzepte

Gewusst wie: Lokalisieren einer Anwendung

Referenz

ElementHost

WindowsFormsHost

Weitere Ressourcen

WPF-Designer

Gewusst-wie-Themen zu Migration und Interoperabilität