none
Windows Standartstrings? RRS feed

  • Frage

  • Ich habe folgendes anliegen und hoffe mal das es da ein Lösung für gibt.

    Wenn ich eine MessageBox anzeige, dann sind die Beschriftungen der Buttons immer in der jeweiligen Systemsprache, also bei mir auf deutsch und auf einem englischsprachigen Computer englisch, usw.

    Ich brauche die Übersetzungen für einige dieser "Standartbegriffe" wie OK, Abbrechen, Ja, Nein, Wiederhohlen, usw.

    Ich habe schon ge'google't ob es soetwas wie ein StringTable gibt wo man das auslesen kann, habe da aber leider nichts gefunden.

    Das einzige was ich fand war das hier. Da fehlen mir natürlich noch die ID-Nummern und Dateien um etwas auszulesen.


    Koopakiller - http://koopakiller.ko.ohost.de/

    Sonntag, 29. April 2012 09:24
    Moderator

Antworten

  • Hallo Koopakiller,

    das ist ermöglicht durch den Einsatz einer "Manager" Klasse, die lokalisierte MessageBox strings verwaltet. Unter [1] gibt es einen englishen Artikel mit einer Beispielimplementierung dafür.

    [1] http://www.codeproject.com/Articles/18399/Localizing-System-MessageBox  

    Wir hoffen, vielen Besuchern der MSDN Foren durch das Posten dieses Problems und einer möglichen Lösung weiterhelfen zu können.

    Viele Grüße,
    Hristo Valev
    MSDN Hotline für MSDN Online Deutschland

    Disclaimer:
    Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
    Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die MSDN Hotline: http://www.msdn-online.de/Hotline
    MSDN Hotline: Schnelle & kompetente Hilfe für Entwickler: kostenfrei!

    Es gelten für die MSDN Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu MarkenzeichenInformationen zur Datensicherheit sowie die gesonderten Nutzungsbedingungen für die MSDN Hotline.


    Montag, 30. April 2012 11:17
  • Hallo,

    Das .NET Framework unterstützt die Lokalisierung der von Windows bereitgestellten Button-Texte nicht. Die Texte sind abhängig von den auf einem Windows-System installierten Sprachen. Auch wenn man auf die Win32-API ausweicht und Funktionen wie MessageBoxEx verwendet (die ein Sprachen-ID als Parameter akzeptieren), ist das Endresultat noch immer abhängig von den unter Windows verfügbaren Sprachen.

    Die einfachste Lösung besteht darin, auf die Verwendung von MessageBox.Show ganz zu verzichten und stattdessen Form-Instanzen zu verwenden, bei denen die Button-Texte beliebig lokalisiert werden können. Man kann das Ganze auch über SetWindowsHookEx angehen (siehe z.B. CodeProject), was zunächst elegant anmutet, bei genauerer Betrachtung aber mit Mängel behaftet ist (z.B. kann man die Größe der Schaltflächen nicht an die Länge des Textes anpassen).

    Gruß
    Marcel

    Montag, 30. April 2012 11:47
    Moderator

Alle Antworten