<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 16.6 一個小例子 為了演示本章介紹的這些內容,隨書光盤上examples/chap16目錄中舉了一個小例子.它以三種語言顯示了一些字符串和圖片:英語,法語和德語. 你可以從文件菜單更改當前的語言,這將導致菜單字符串,靜態文本控件和使用的圖片作出相應的改變.為了演示_()宏和wxT()的區別,狀態欄的字符串始 終保持英語不變. ![](img/mht6FD4%281%29.tmp) 這個例子的應用程序類包含一個指向wxLocale類型的指針和一個函數SelectLanguage用來更改當前的語言.主要的聲明和實現如下: ``` class MyApp : public wxApp { public: ~MyApp() ; // 初始化應用程序 virtual bool OnInit(); // 根據用戶選擇的語言重新創建wxLocale變量 void SelectLanguage(int lang); private: wxLocale* m_locale; // 'our' locale }; IMPLEMENT_APP(MyApp) bool MyApp::OnInit() { wxImage::AddHandler( new wxPNGHandler ); m_locale = NULL; SelectLanguage( wxLANGUAGE_DEFAULT ); MyFrame *frame = new MyFrame(_("i18n wxWidgets App")); frame->Show(true); return true; } void MyApp::SelectLanguage(int lang) { delete m_locale; m_locale = new wxLocale( lang ); m_locale->AddCatalog( wxT("i18n") ); } MyApp::~MyApp() { delete m_locale; } ``` 主窗口的兩個函數SetupStrings和OnChangeLanguage可能是你最感興趣的部分,SetupStrings更改相關控件的字符串并且重新創建菜單條,以便演示更改wxLocale以后相關字符串的翻譯: ``` void MyFrame::SetupStrings() { m_helloString->SetLabel(_("Welcome to International Sample")); m_todayString->SetLabel( wxString::Format(_("Now is %s") , wxDateTime::Now().Format() .c_str() ) ); m_thousandString->SetLabel( wxString::Format(_("12345 divided by 10 is written as % .1f") , 1234.5 ) ); m_flag->SetBitmap(wxBitmap( _("flag.png") , wxBITMAP_TYPE_PNG )); // 創建菜單條 wxMenu *menuFile = new wxMenu; // About菜單應該位于幫助菜單 wxMenu *helpMenu = new wxMenu; helpMenu->Append(wxID_ABOUT, _("&About...\tF1"), wxT("Show about dialog")); menuFile->Append(wxID_NEW, _("Change language..."), wxT("Select a new language")); menuFile->AppendSeparator(); menuFile->Append(wxID_EXIT, _("E&xit\tAlt-X"), wxT("Quit this program")); wxMenuBar *menuBar = new wxMenuBar(); menuBar->Append(menuFile, _("&File")); menuBar->Append(helpMenu, _("&Help")); wxMenuBar* formerMenuBar = GetMenuBar(); SetMenuBar(menuBar); delete formerMenuBar; SetStatusText(_("Welcome to wxWidgets!")); } ``` OnChangeLanguage在用戶更改當前語言的時候被調用,它將用戶的選擇映射到某種語言標識(比如 wxLANGUAGE_GERMAN)上.這個標識被傳遞給MyApp::SelectLanguage以便設置當前的locale,然后調用 SetupStrings根據設置的locale更改當前的字符串和圖片,如下所示: ``` void MyFrame::OnChangeLanguage(wxCommandEvent& event) { wxArrayInt languageCodes; wxArrayString languageNames; languageCodes.Add(wxLANGUAGE_GERMAN); languageNames.Add(_("German")); languageCodes.Add(wxLANGUAGE_FRENCH); languageNames.Add(_("French")); languageCodes.Add(wxLANGUAGE_ENGLISH); languageNames.Add(_("English")); int lang = wxGetSingleChoiceIndex( _("Select language:"), _("Language"), languageNames ); if ( lang != -1 ) { wxGetApp().SelectLanguage(languageCodes[lang]); SetupStrings(); } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看