none
WPF Lokalisierung RRS feed

  • Frage

  • Hallo an alle,

    vielleicht könnt Ihr mit ja mit meiner Frage bzw. Problem weiterhelfen.

    Ich habe den Webcast von Herrn Marquardt, auf der Webcastseite gefunden und war auch sehr interessant. Es ging, wie schon im Betreff zu lesen ist, um die Lokalisierung einer Anwendung in mehreren Sprachen. Jedoch wurden nur statische Elemente umgewandelt. Also ein statischer Textblock,  Button oder usw. wurde umgewewandelt.
    Was ist aber wenn ich einen Textblock habe der einen dynamischen Inhalt hätte?

    Hier zum einen ein vereinfachtes Beispiel:

    Ich hätte, wie schon geschrieben ein Texblock in meiner Anwendung, der bei Fehler folgendes Anzeigen würde
    • "Fehler beim öffnen der Datei"
    • "Feld darf nicht leer sein"
    • "Falsches Passwort"
    • ...
    Die Meldungen sind im Code vorhanden, also nicht in der XAML-Datei und sind entweder ein Enum-Member oder werden Teilweise vuch in der Ressource-DLL geladen und dementsprechend angezeigt.

    Würde es denn überhaupt gehen, dass ich diese codierten Werte, so wie im Webcast beschrieben, in einer *.csv Datei bekäme, um diese dann manuell zu ändern?
    Oder sollte der vorhandene Ressource-DLL mehrere Ressources haben, die in der jeweiligen übersetzten Sprache vorhanden sind. (Da muss aber dann während der Laufzeit immer geschaut werden, welche CurrentUICulture gerade aktiv wäre. Das würde ich gerne vermeiden, außer man könnte es nicht verhindern.)

    Für einen Link oder Hinweise wäre ich schon zufrieden.

    Vielen Dank für Eure Mühen und vorschläge
    M. Becker
    Freitag, 17. Oktober 2008 08:57

Antworten

  • Hallo,

    ich vermute Dein Problem ist schon längst nicht mehr aktuell. Falls aber jemand mit einer ähnlichen Frage auf Deinen Beitrag stößt, beantworte ich sie trotzdem.

    Für alle Inahlte, die nicht direkt in den XAML-Dateien stehen, kannst Du weiterhin Resx-Ressourcendateien nutzen. Texte für Messageboxen, Logdateien usw. (also eben alles was nicht in XAML definiert ist) lädst Du dann aus den Resx-Ressourcen.

    Wenn Du BAML-Lokalisierung (locbaml) und Resx-Dateien gemischt einsetzt, musst Du beachten, dass locbaml in dem Ansatz wie in der MSDN beschrieben die Satellitenassemblies mit den Resx-Ressourcen einfach überschreiben würde. Stattdessen erzeugt man mit locbaml eine .resources Datei und linkt diese dann mit den Resx-Ressourcen zusammen manuell mit al.exe zu einer Satellitenassembly.

    Generell ist locbaml aber ohne größere Anpassungen in der Praxis unbrauchbar. Es ist als Beispiel für die Lokalisierungs-API gedacht, nicht als fertiges Tool. Um es halbwegs nutzen zu können müsstest Du noch enige Tage Arbeit investieren, um locbaml zu erweitern.

    Weitere Infos z.B. in meinem Blog tp://www.outofcoffeeexception.de/CategoryView,category,Lokalisierung.aspx) oder im WPF Localization Guidance auf Codeplex (http://wpflocalization.codeplex.com/)

    Montag, 15. Februar 2010 10:49