Ich habe eine WPF-Anwendung (auf Englisch) und möchte Benutzern erlauben, verschiedene Sprachen auszuwählen. Ich habe einige Möglichkeiten gelesen, um Sprachen in Laufzeitanwendungen zu ändern, aber ich möchte nur während der Installation eine Sprache auswählen und niemals ändern.
Denkst du, dass der schnellste und einfachste Weg darin besteht, verschiedene Versionen des Programms zu entwickeln (nur die Textsprache zu ändern) und den Benutzer während der Installation auswählen zu lassen? Wahrscheinlich, um Code zu wiederholen, nur das Ändern von Textbox oder Etiketten ist nicht sehr elegant, aber beachten Sie, dass ich die Anwendung in Englisch fertig habe und ich brauche keine Sprache zur Laufzeit ändern.
Ich denke, die von Aghilas vorgeschlagene Lösung ist gut; aber Sie können StaticResource
anstelle von DynamicResource
in Schritt 3 verwenden, DynamicResource
ist in Ihrem Fall nicht erforderlich, da Sie die Sprache während der Ausführung der Anwendung nicht ändern werden.
Sehen Sie sich auch diese Artikel mit Details zur Verwendung von Resx-Dateien für die Lokalisierung in WPF an -
Sie können diese Schritte ausführen
Erstellen der Ressourcendateien
Fügen Sie diese Datei StringResources.xaml dem Ressourcenverzeichnis hinzu. Probe ist hier:
%Vor%Sie können mehrere Dateien erstellen, eine für jede Sprache.
Hinzufügen der Ressource (Rufen Sie dies auf, wenn Sie Ihre Anwendung starten)
%Vor%Verwenden Sie die Ressource, so -
%Vor% Um @ AghilasYakoubs richtige Antwort zu verbessern, muss ich darauf hinweisen, dass der folgende Code der Datei App.xaml
hinzugefügt werden sollte, abgesehen von dem, was er gesagt hat:
Wenn Sie anstelle von Ressourcenwörterbüchern RESX-Dateien verwenden möchten, können Sie dies einfach mit statischen Referenzen in XAML tun.
%Vor% Im Ordner Resource
ist MainWindow.resx
, MainWindow.de.resx
usw. und jede Datei enthält einen Schlüssel MyTestKey
mit einer Übersetzung.
Tags und Links wpf .net c# multilingual