Seite 1 von 1

I18N funktioniert nicht in wx.richtext.RichTextCtrl

Verfasst: Freitag 4. Dezember 2009, 14:30
von IoI
Hallo,

ich benutzte in einem meiner Programme die wx.richtext.RichTextCtrl-Klasse. Da das Programm ansonsten auch Deutsch ist, wäre es natürlich gut wenn auch die RTCtrl in Deutsch wäre. Leider ist das nicht so, das Kontext-Menü ist komplett in Englisch.

Ähnliches ist mir auch schon bei anderen Widgets aufgefallen, z.B. im wx.ProgressDialog.

Also dachte ich mir, vielleicht hat ja noch niemand die Strings übersetzt. Dem ist allerdings nicht so, ein Blick in die deutsch PO-Datei zeigt beispielsweise für Select All:

Code: Alles auswählen

#: ../src/common/stockitem.cpp:153
#: ../src/richtext/richtextctrl.cpp:2600
#: ../src/msw/textctrl.cpp:2156
#: ../src/mac/carbon/textctrl.cpp:1069
msgid "Select &All"
msgstr "Alles auswählen"
Hier steht sogar im Kommentar, dass es in ../src/richtext/richtextctrl.cpp:2600 verwendet wird und die Quelle bestätigt dies auch.

Also was ist falsch, dass bei mir weder in der wxPython-demo noch im eigenen Programm der deutsch String verwendet wird? (wx.LANGUAGE_DEFAULT ist Deutsch)

Verfasst: Freitag 4. Dezember 2009, 19:07
von Dav1d
Das Problem hatte ich auch, bin auch erst gerade draufgekommen, bei mir hat das gereicht:

Code: Alles auswählen

if __name__ == '__main__': 
    app = wx.PySimpleApp(redirect=False)
    wx.SetDefaultPyEncoding('utf-8')
    x = wx.Locale(87)
    print x.GetLocale()
    frame = FooBar(None, -1,'Foo', size=(300, 200))
    frame.Show()
    app.MainLoop()

Verfasst: Montag 7. Dezember 2009, 16:14
von IoI
Hat leider bei mir keinen Effekt gehabt :-(

Verfasst: Montag 7. Dezember 2009, 17:42
von Dav1d
Hast du das x = ?

wx.Locale(87) reicht nicht

Verfasst: Montag 7. Dezember 2009, 17:51
von IoI
Muss mich korrigieren, es funktioniert doch. Leider aber nicht mehr nach dem Packen mit PyInstaller zu einer Windows-Exe.

Schade, trotzdem danke.