Frage

Es scheint kein guter Weg, um eine WPF-Anwendung zu lokalisieren. MSDN scheint zu glauben, dass mein XAML mit x:Uid des Littering, Erzeugen von CSV-Dateien, und dann neue Baugruppen zu erzeugen (den Beispielcode verwenden!) Ist die Antwort. Schlimmer noch, dieser Prozess geht nicht, wie Bilder zu lokalisieren, Binärblob (sagen wir, PDF-Dateien) oder Strings, die in Code eingebettet sind.

Also, wie können Sie lokalisieren eine Anwendung, mit:

  1. Enthält mehrere Baugruppen
  2. Bilder und andere binäre Blobs enthält (zB: PDF-Dokumente), die zu lokalisierenden benötigen
  3. Hat String-Daten, die nicht in XAML ist (zB: MessageBox.Show("Hello World");)
War es hilfreich?

Lösung

Nicht ein Experte hier, aber „Littering“ XAML mit x:. UIDs ist nicht schlechter als „Littering“ Windows Forms-Code mit dem alle String-Tabelle Unsinn, den Sie für die Lokalisierung sie zu tun haben

Soweit ich verstehe, WPF-Apps unterstützt nach wie vor „all Framework-CLR-Ressourcen, einschließlich String-Tabellen, Bilder und so weiter.“ was bedeutet, dass Sie lokalisierten Ressourcen haben können.

Natürlich wäre es viel einfacher, wenn Sie eine Markup-Erweiterung erstellt, die für Sie viel von diesem Unsinn behandelt. Sie können ein Beispiel für jemand dies hier tun finden. Und

Andere Tipps

Sie sollten verfügbar auf den Artikel und Code hier einen Blick. Es beschreibt verschiedene Arten von WPF-Anwendungen zu lokalisieren, mit LocBaml, kundenspezifische Markup-Erweiterungen oder angefügten Eigenschaften. IMHO die beste Lösung ist es, die Markup-Erweiterungen und Resx Ressourcen zu nutzen. Der Code enthält einen Lokalisierungsrahmen für das zu tun.

Sie können die alten „ResX“ Dateien verwenden, die alle Ihre genannten Szenarien unterstützen. Wie kann dies in einer WPF-Anwendung erreicht wird, wird hier erklärt:

WPF Application Framework (WAF) => Lokalisierung Beispiel sehen

versuchen, das Gnu GetText Dienstprogramme und unterstützenden Anwendungen. Es tut C # Klassen auf Basis Resourcemanager und ResourceSets zu erzeugen, und natürlich können Sie die Übersetzungen für andere Teile der Anwendung wiederverwendet werden - z. B. Webseiten, nativen Code, oder iphone etc

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top