Standard-Dialoge wxWidgets
-
Hallo Community,
ich habe folgendes Problem. In Arbeite unter wxWidgets 2.8.12. in einem Projekt mit verschiedenen Dialogen von wxWidgets.
In den 'richtigen' Standarddialogen wie 'wxFileDialog' u.ä. funktioniert es einwandfrei das die Buttons in Deutscher Sprache angezeigt werden. Diese laufen ja direkt über die Windows-Dialoge.
Ich möchte allerdings auch mit Dialogen wie 'wxSingleChoiceDialog' oder 'wxNumberEntryDialog' arbeiten. Dort habe ich dann allerdings nicht ' OK und Abbrechen' stehen sonder ' OK und Cancel' stehen. Ich vermute mal weil diese Dialoge keine wirklichen 'Windows-Standard-Dialoge' sind und somit vom Betriebssystem nicht in der als Standard definierten Sprache ausgegeben werden.
Meine Frage ist nun, schaffe ich es irgendwie das meine Ausgaben in diesen Dialogen auch übersetzt werden, auch ohne das ich mir das Dialogfenster selber bastle und in eine eigene Klasse erbe etc. Also das ich wxWidgets selber sage nutze die Standardsprache des Systems.
Habe schon einiges versucht, wie das ich die 'wxstd.mo' mit in mein Project geladen habe. Auch habe ich, weil ich rausgefunden habe das in den wxWidgets-Klassen die Beschriftungen für OKAY oder CANCEL mit '_("")'-TextMacros deklariert sind, einfach in meine eigene '*.mo' eine Übersetzung angelegt. Was allerdings auch nicht funktionierte.
Vielen Dank für etwailigen Anregungen oder Lösungsvorschläge.
MFG und erfolgreiches proggen
Ollow
-
Ein aehnliches Problem gab es bereits im wxwidgets forum:
http://forums.wxwidgets.org/viewtopic.php?t=4867&p=22772So wie ich das sehe hast du nur zwei Moeglichkeiten:
- Du kompilierst dir diese MO Kataloge mit einem Programm wie poEdit (die PO Dateien gibts schon unter <wx>/locale, du brauchst "de.po". Da sind alle Uebersetzungen von den Strings, die wxWidgets benutzt). Diese musst du dann mit wxLocale nutzen. Nachteil ist die zusaetzliche Abhaengigkeit der MO-Datei(en).
- Du erstellst dir einfach deine eigenen Dialoge...Theoretisch koennte man die Strings auch manuell im wxWidgets Quellcode uebersetzen und dann neu kompilieren, denke ich ...
-
Hi Blue Velvet ,
viele Dank für die Antwort. Damit habe ich mein Problem gelößt. Die 'po'-Dateien im <wx>/locale-Ordner hatte ich vollends übersehen.
Wenn ich die zusätzliche MO-Datei nicht haben will, werde ich einfach den Inhalt der wxWidgets PO-Datei in meine kopieren.
Gruß Ollow