Benutzer mit den meisten Antworten
Windows Standartstrings?

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/
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
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.- Bearbeitet Hristo Valev Montag, 30. April 2012 11:19
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 8. Mai 2012 08:11
-
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- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 8. Mai 2012 08:11
Alle 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
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.- Bearbeitet Hristo Valev Montag, 30. April 2012 11:19
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 8. Mai 2012 08:11
-
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- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 8. Mai 2012 08:11
-
Hallo Koopakiller,
Ich gehe davon aus, dass die Antworten Dir weitergeholfen haben.
Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.Grüße,
RobertRobert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.