Very nice! It doesn't seem to work completely yet, as I get weird character in the status column and status bar below. Apart from that, really good to see we don't need a dev branch of wxwindows.
Yea, that showed up in a couple places because I didn't handle temporary pointers right, I think I've fixed the majority of those now.
One suggestion: is it possible to define _ yourself, so all the GetTranslationChar calls aren't necessary?
Not really, _ has to return 3 different types (wxString, std::string, char*) and you can't override based on return value (AFAIK, but I may very well be wrong). wx2.9 will convert properly automatically, but not with 2.8.