我尝试使用 wxLocale 创建一个简单的多语言程序,但我什至无法让它失败 --- 看起来任何加载语言的尝试总是返回 OK,但什么也没做。
#include <wx/intl.h>
#include <wx/stdpaths.h>
#include <wx/app.h>
#include <wx/txtstrm.h>
#include <wx/wfstream.h>
wxFFileOutputStream wxstdout (stdout); wxTextOutputStream cout(wxstdout);
wxFFileOutputStream wxstderr (stderr); wxTextOutputStream cerr(wxstderr);
class app: public wxApp
{
public:
virtual bool OnInit();
};
bool app::OnInit()
{
long language = wxLANGUAGE_GERMAN;
wxLocale* locale = new wxLocale();
if (locale->Init(language, wxLOCALE_CONV_ENCODING))
cerr << L"Language loaded OK\n";
else
cerr << L"Language loading failed\n";
cout << _("Hi!") << endl;
exit(0);
return true;
}
IMPLEMENT_APP_CONSOLE(app);
无论如何,我尝试指定什么语言,它总是打印
Language loaded OK
Hi!
我想,由于没有翻译(.po 和 .mo 文件),它应该无法Init
语言?但是,当我尝试实际添加一些翻译时,它什么也没改变,程序总是 print Hi!
。为什么这一切都会发生?