【发布时间】:2013-01-03 11:03:28
【问题描述】:
我尝试使用 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 语言?但是,当我尝试实际添加一些翻译时,它没有任何改变,程序总是打印Hi!。为什么会发生这一切?
【问题讨论】: