X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/79b4079ff45400ffb16a6e2ee8d06447669d4885..e6113e3a52d1c1c486b3a31cb22b59e2d9555b2d:/samples/internat/internat.cpp?ds=sidebyside diff --git a/samples/internat/internat.cpp b/samples/internat/internat.cpp index c7dbc1066f..089ed4b3d0 100644 --- a/samples/internat/internat.cpp +++ b/samples/internat/internat.cpp @@ -102,7 +102,9 @@ static const wxLanguage langIds[] = #if wxUSE_UNICODE wxLANGUAGE_GEORGIAN, wxLANGUAGE_ENGLISH, - wxLANGUAGE_ENGLISH_US + wxLANGUAGE_ENGLISH_US, + wxLANGUAGE_ARABIC, + wxLANGUAGE_ARABIC_EGYPT #endif }; @@ -124,7 +126,9 @@ const wxString langNames[] = #if wxUSE_UNICODE _T("Georgian"), _T("English"), - _T("English (U.S.)") + _T("English (U.S.)"), + _T("Arabic"), + _T("Arabic (Egypt)") #endif }; @@ -180,15 +184,21 @@ bool MyApp::OnInit() } if ( lng != -1 ) - m_locale.Init(langIds[lng]); + { + // don't use wxLOCALE_LOAD_DEFAULT flag so that Init() doesn't return + // false just because it failed to load wxstd catalog + if ( !m_locale.Init(langIds[lng], wxLOCALE_CONV_ENCODING) ) + { + wxLogError(_T("This language is not supported by the system.")); + return false; + } + } // normally this wouldn't be necessary as the catalog files would be found - // in the default locations, but under Windows then the program is not - // installed the catalogs are in the parent directory (because the binary - // is in a subdirectory of samples/internat) where we wouldn't find them by + // in the default locations, but when the program is not installed the + // catalogs are in the build directory where we wouldn't find them by // default wxLocale::AddCatalogLookupPathPrefix(wxT(".")); - wxLocale::AddCatalogLookupPathPrefix(wxT("..")); // Initialize the catalogs we'll be using m_locale.AddCatalog(wxT("internat")); @@ -247,7 +257,13 @@ MyFrame::MyFrame(wxLocale& locale) _("International wxWidgets App")), m_locale(locale) { - // Empty + // this demonstrates RTL layout mirroring for Arabic locales + wxSizer *sizer = new wxBoxSizer(wxHORIZONTAL); + sizer->Add(new wxStaticText(this, wxID_ANY, _("First")), + wxSizerFlags().Border()); + sizer->Add(new wxStaticText(this, wxID_ANY, _("Second")), + wxSizerFlags().Border()); + SetSizer(sizer); } void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event) )