Freigeben über


Lokalisieren von ClickOnce-Anwendungen

Lokalisierung ist der Prozess, mit dem Sie die Anwendung an eine bestimmte Kultur anpassen. Dieser Prozess umfasst die Übersetzung des Textes der Benutzeroberfläche in eine regionsspezifische Sprache, die Verwendung der richtigen Datums- und Währungsformate, die Anpassung der Größe von Steuerelementen in einem Formular und, sofern erforderlich, die Spiegelung von Steuerelementen von rechts nach links.

Das Lokalisieren Ihrer Anwendung führt zur Erstellung von einer oder mehreren Satellitenassemblys. Jede Assembly enthält Benutzeroberflächenzeichenfolgen, Bilder und andere spezielle Ressourcen für eine bestimmte Kultur. (Die zentrale ausführbare Datei der Anwendung enthält die Zeichenfolgen für die Standardkultur für die Anwendung.)

In diesem Thema werden drei Möglichkeiten beschrieben, eine ClickOnce-Anwendung für andere Kulturen bereitzustellen:

  • Aufnehmen aller Satellitenassemblys in eine einzelne Bereitstellung.

  • Generieren einer Bereitstellung für jede Kultur, mit jeweils einer einzelnen darin enthaltenen Satellitenassembly.

  • Herunterladen von Satellitenassemblys bei Bedarf.

Aufnehmen aller Satellitenassemblys in eine einzelne Bereitstellung.

Anstatt mehrere ClickOnce-Bereitstellungen zu veröffentlichen, können Sie eine einzelne ClickOnce-Bereitstellung veröffentlichen, in der alle Satellitenassemblys enthalten sind.

Dies ist die Standardmethode in Visual Studio. Um diese Methode in Visual Studio zu verwenden, sind keine weiteren Schritte erforderlich.

Zur Verwendung dieser Methode mit MageUI.exe müssen Sie die Kultur für die Anwendung in MageUI.exe auf neutral festlegen. Danach müssen alle Satellitenassemblys manuell in die Bereitstellung eingeschlossen werden. In MageUI.exe können Sie die Satellitenassemblys über die Schaltfläche Auffüllen auf der Registerkarte Dateien Ihres Anwendungsmanifests hinzufügen.

Der Vorteil dieses Ansatzes besteht darin, dass mit ihm eine einzelne Bereitstellung erstellt und der Verlauf der lokalisierten Bereitstellung vereinfacht wird. Zur Laufzeit wird die richtige Satellitenassembly verwendet, und zwar basierend auf der vom Benutzer für das Windows-Betriebssystem angegebenen Standardkultur. Ein Nachteil dieses Ansatzes besteht darin, dass bei jeder Installation oder jedem Update der Anwendung auf einem Clientcomputer alle Satellitenassemblys heruntergeladen werden. Wenn Ihre Anwendung eine große Zahl von Zeichenfolgen aufweist oder Ihre Kunden nur über eine langsame Netzwerkverbindung verfügen, kann dieser Prozess während des Anwendungsupdates zu Leistungseinbußen führen.

Hinweis

Für diesen Ansatz wird davon ausgegangen, dass Ihre Anwendung die Höhe, Breite und Position von Steuerelementen automatisch anpasst, um Textzeichenfolgen aufzunehmen, die in verschiedenen Kulturen unterschiedlich lang sind. Windows Forms enthält eine Vielzahl von Steuerelementen und Technologien, mit denen Sie Ihr Formular so entwerfen können, dass es problemlos lokalisiert werden kann. Dazu gehören die Steuerelemente FlowLayoutPanel und TableLayoutPanel sowie die AutoSize-Eigenschaft. Weitere Informationen finden Sie unter Unterstützen der Lokalisierung in Windows Forms mithilfe von AutoSize und dem TableLayoutPanel-Steuerelement.

Generieren einer Bereitstellung für jede Kultur

In dieser Bereitstellungsstrategie generieren Sie mehrere Bereitstellungen. Sie nehmen in jede Bereitstellung nur die Satellitenassembly auf, die für eine bestimmte Kultur benötigt wird, und kennzeichnen die Bereitstellung als die für diese Kultur spezifische Bereitstellung.

Um diese Methode in Visual Studio zu verwenden, legen Sie auf der Registerkarte Veröffentlichen die Eigenschaft Sprache für Veröffentlichung auf die gewünschte Region fest. Visual Studio schließt automatisch die für die ausgewählte Region erforderliche Satellitenassembly ein und alle anderen Satellitenassemblys aus der Bereitstellung aus.

Hinweis

In ClickOnce for .NET Core 3.1 und .NET 5 oder höher legen Sie Bereitstellungseigenschaften mithilfe des Veröffentlichungstools anstelle des Veröffentlichungs-Assistenten und der Seite „Veröffentlichen“ des Projekt-Designers fest. Weitere Informationen finden Sie unter Bereitstellen einer .NET-Windows-Anwendung mithilfe von ClickOnce und ClickOnce für .NET.

Sie können die gleiche Aufgabe auch mit dem Tool MageUI.exe im Microsoft Windows SDK (Software Development Kit) ausführen. Mit der Schaltfläche Auffüllen auf der Registerkarte Dateien des Anwendungsmanifests können Sie alle anderen Satellitenassemblys aus dem Anwendungsverzeichnis ausschließen. Anschließend legen Sie in MageUI.exe das Feld Kultur auf der Registerkarte Name für das Bereitstellungsmanifest fest. Auf diese Weise wird nicht nur die richtige Satellitenassembly eingeschlossen, sondern es wird auch das language-Attribut im assemblyIdentity-Element für das Bereitstellungsmanifest auf die entsprechende Kultur festgelegt.

Nachdem Sie die Anwendung veröffentlicht haben, müssen Sie diesen Schritt für jede zusätzliche Kultur wiederholen, die die Anwendung unterstützt. Achten Sie darauf, dass Sie jeweils in einem anderen Webserververzeichnis oder Dateifreigabeverzeichnis veröffentlichen, denn jedes Anwendungsmanifest verweist auf eine andere Satellitenassembly, und jedes Bereitstellungsmanifest hat einen anderen Wert für das language-Attribut.

Herunterladen von Satellitenassemblys bei Bedarf

Wenn Sie alle Satellitenassemblys in eine einzelne Bereitstellung aufnehmen möchten, können Sie die Leistung mit Herunterladen bei Bedarf verbessern. Damit können Sie Assemblys als optional kennzeichnen. Die gekennzeichneten Assemblys werden nicht heruntergeladen, wenn die Anwendung installiert oder aktualisiert wird. Wenn Sie die Assemblys benötigen, können Sie sie durch Aufruf der DownloadFileGroup-Methode in der ApplicationDeployment-Klasse installieren.

Hinweis

Die Klasse ApplicationDeployment und die APIs im Namespace System.Deployment.Application werden in .NET Core und .NET 5 und höheren Versionen nicht unterstützt. In .NET 7 wird eine neue Methode für den Zugriff auf Anwendungsbereitstellungseigenschaften unterstützt. Weitere Informationen finden Sie unter Zugreifen auf ClickOnce-Bereitstellungseigenschaften in .NET. .NET 7 unterstützt nicht das Äquivalent von ApplicationDeployment-Methoden.

Das Herunterladen von Satellitenassemblys bei Bedarf unterscheidet sich geringfügig vom Herunterladen anderer Typen von Assemblys bei Bedarf. Weitere Informationen und Codebeispiele zum Aktivieren dieses Szenarios mithilfe der Windows SDK-Tools für ClickOnce finden Sie unter Exemplarische Vorgehensweise: Bedarfsgerechtes Herunterladen von Satellitenassemblys mit der API für die ClickOnce-Bereitstellung.

Sie können dieses Szenario auch in Visual Studio aktivieren. Weitere Informationen dazu finden Sie unter Exemplarische Vorgehensweise: Bedarfsgerechtes Herunterladen von Satellitenassemblys mit der API zur ClickOnce-Bereitstellung unter Verwendung des Designers.

Testen von lokalisierten ClickOnce-Anwendungen vor der Bereitstellung

Eine Satellitenassembly wird nur dann für eine Windows Forms-Anwendung verwendet, wenn für die CurrentUICulture-Eigenschaft für den Hauptthread der Anwendung die Kultur der Satellitenassembly festgelegt ist. Kunden auf den lokalen Märkten führen wahrscheinlich bereits eine lokalisierte Version von Windows aus, für deren Kultur der entsprechende Standardwert festgelegt ist.

Sie haben drei Optionen zum Testen lokalisierter Bereitstellungen, bevor Sie die Anwendung Kunden zur Verfügung stellen:

  • Sie können die ClickOnce-Anwendung unter den entsprechenden lokalisierten Versionen von Windows ausführen.

  • Sie können die CurrentUICulture-Eigenschaft programmgesteuert in der Anwendung festlegen. (Diese Eigenschaft muss vor dem Aufrufen der Run-Methode festgelegt werden.)