- // set the language to use
- const char *language = NULL;
- const char *langid = NULL;
- switch ( argc )
- {
- default:
- // ignore the other args, fall through
-
- case 3:
- language = argv[1];
- langid = argv[2];
- break;
-
- case 2:
- language = argv[1];
- break;
-
- case 1:
- language = "french";
- langid = "fr";
- };
-
- // there are very few systems right now which support locales other than "C"
- m_locale.Init(language, langid, "C");
- // note that under GTK starting from version 1.2.8 if
- // you set locale to "C" and then use ASCII characters above
- // #128 in GUI elements, they will be truncated (it seems GTK
- // replaces them by \0). You should use either "" (checks
- // the value of LC_ALL etc. environment variables) or the form
- // accepted by glibc, e.g cs_CZ.
-
- // Initialize the catalogs we'll be using
- /* not needed any more, done in wxLocale ctor
- m_locale.AddCatalog("wxstd"); // 1) for library messages
- */
- m_locale.AddCatalog("internat"); // 2) our private one
- /* this catalog is installed in standard location on Linux systems,
+ const wxString langs[] =
+ {
+ _T("(System default)"),
+ _T("French"),
+ _T("German"),
+ _T("Russian"),
+ _T("English"),
+ _T("English (U.S.)")
+ };
+
+ SetExitOnFrameDelete(FALSE);
+ int lng = wxGetSingleChoiceIndex(_T("Please choose language:"), _T("Language"),
+ WXSIZEOF(langs), langs);
+ SetExitOnFrameDelete(TRUE);
+
+ switch (lng)
+ {
+ case 0 : m_locale.Init(wxLANGUAGE_DEFAULT); break;
+ case 1 : m_locale.Init(wxLANGUAGE_FRENCH); break;
+ case 2 : m_locale.Init(wxLANGUAGE_GERMAN); break;
+ case 3 : m_locale.Init(wxLANGUAGE_RUSSIAN); break;
+ case 4 : m_locale.Init(wxLANGUAGE_ENGLISH); break;
+ case -1:
+ case 5 : m_locale.Init(wxLANGUAGE_ENGLISH_US); break;
+ }
+
+ // Initialize the catalogs we'll be using
+ /* not needed any more, done in wxLocale ctor
+ m_locale.AddCatalog("wxstd"); // 1) for library messages
+ */
+ m_locale.AddCatalog(wxT("internat")); // 2) our private one
+ /* this catalog is installed in standard location on Linux systems,