Make language configurable (requires restart)
Make language configurable (requires restart)
This commit is contained in:
parent
ae09ab7189
commit
27acf80b80
Binary file not shown.
|
@ -2643,6 +2643,510 @@ EVT_HANDLER(LinkConfigure, "Link options...")
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language0, "Default Language")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_DEFAULT;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_DEFAULT);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language1, "Bulgarian")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_BULGARIAN;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_BULGARIAN);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language2, "Breton")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_BRETON;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_BRETON);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language3, "Czech")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_CZECH;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_CZECH);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language4, "German")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_GERMAN;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_GERMAN);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language5, "Greek")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_GREEK;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_GREEK);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language6, "English (US)")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_ENGLISH_US;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_ENGLISH_US);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language7, "Spanish (Latin American)")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_SPANISH_LATIN_AMERICA;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_SPANISH_LATIN_AMERICA);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language8, "Spanish (Colombia)")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_SPANISH_COLOMBIA;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_SPANISH_COLOMBIA);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language9, "Spanish (Peru)")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_SPANISH_PERU;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_SPANISH_PERU);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language10, "Spanish (US)")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_SPANISH_US;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_SPANISH_US);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language11, "Spanish")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_SPANISH;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_SPANISH);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language12, "French (France)")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_FRENCH_FRANCE;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_FRENCH_FRANCE);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language13, "French")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_FRENCH;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_FRENCH);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language14, "Galician")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_GALICIAN;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_GALICIAN);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language15, "Hebrew (Israel)")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_HEBREW_ISRAEL;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_HEBREW_ISRAEL);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language16, "Hungarian (Hungary)")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_HUNGARIAN_HUNGARY;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_HUNGARIAN_HUNGARY);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language17, "Hungarian")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_HUNGARIAN;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_HUNGARIAN);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language18, "Indonesian")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_INDONESIAN;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_INDONESIAN);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language19, "Italian")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_ITALIAN_ITALY;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_ITALIAN_ITALY);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language20, "Japanese")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_JAPANESE;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_JAPANESE);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language21, "Korean (Korea)")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_KOREAN_KOREA;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_KOREAN_KOREA);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language22, "Korean")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_KOREAN;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_KOREAN);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language23, "Malay (Malaysia)")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_MALAY_MALAYSIA;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_MALAY_MALAYSIA);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language24, "Norwegian")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_NORWEGIAN;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_NORWEGIAN);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language25, "Dutch")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_DUTCH;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_DUTCH);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language26, "Polish (Poland)")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_POLISH_POLAND;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_POLISH_POLAND);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language27, "Polish")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_POLISH;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_POLISH);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language28, "Portuguese (Brazil)")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_PORTUGUESE_BRAZILIAN;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_PORTUGUESE_BRAZILIAN);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language29, "Portuguese (Portugal)")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_PORTUGUESE_PORTUGAL;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_PORTUGUESE_PORTUGAL);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language30, "Russian (Russia)")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_RUSSIAN_RUSSIA;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_RUSSIAN_RUSSIA);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language31, "Swedish")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_SWEDISH;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_SWEDISH);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language32, "Turkish")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_TURKISH;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_TURKISH);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language33, "Ukrainian")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_UKRAINIAN;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_UKRAINIAN);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language34, "Urdu (Pakistan)")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_URDU_PAKISTAN;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_URDU_PAKISTAN);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
|
EVT_HANDLER(Language35, "Chinese (China)")
|
||||||
|
{
|
||||||
|
OPTION(kLocale) = wxLANGUAGE_CHINESE_CHINA;
|
||||||
|
|
||||||
|
if (wxvbam_locale != NULL)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
wxvbam_locale->Init(OPTION(kLocale), wxLOCALE_LOAD_DEFAULT);
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam", wxLANGUAGE_CHINESE_CHINA);
|
||||||
|
|
||||||
|
update_opts();
|
||||||
|
}
|
||||||
|
|
||||||
// Dummy for disabling system key bindings
|
// Dummy for disabling system key bindings
|
||||||
EVT_HANDLER_MASK(NOOP, "Do nothing", CMDEN_NEVER)
|
EVT_HANDLER_MASK(NOOP, "Do nothing", CMDEN_NEVER)
|
||||||
{
|
{
|
||||||
|
|
|
@ -252,6 +252,7 @@ std::array<Option, kNbOptions>& Option::All() {
|
||||||
int32_t volume = 100;
|
int32_t volume = 100;
|
||||||
uint32_t bitdepth = 3;
|
uint32_t bitdepth = 3;
|
||||||
wxString sdlrenderer = wxString("default");
|
wxString sdlrenderer = wxString("default");
|
||||||
|
int locale = wxLANGUAGE_DEFAULT;
|
||||||
};
|
};
|
||||||
static OwnedOptions g_owned_opts;
|
static OwnedOptions g_owned_opts;
|
||||||
|
|
||||||
|
@ -393,6 +394,7 @@ std::array<Option, kNbOptions>& Option::All() {
|
||||||
Option(OptionID::kSoundDSoundHWAccel, &g_owned_opts.dsound_hw_accel),
|
Option(OptionID::kSoundDSoundHWAccel, &g_owned_opts.dsound_hw_accel),
|
||||||
Option(OptionID::kSoundUpmix, &g_owned_opts.upmix),
|
Option(OptionID::kSoundUpmix, &g_owned_opts.upmix),
|
||||||
Option(OptionID::kSoundVolume, &g_owned_opts.volume, 0, 200),
|
Option(OptionID::kSoundVolume, &g_owned_opts.volume, 0, 200),
|
||||||
|
Option(OptionID::kLocale, &g_owned_opts.locale, 0, 911),
|
||||||
};
|
};
|
||||||
// clang-format on
|
// clang-format on
|
||||||
return g_all_opts;
|
return g_all_opts;
|
||||||
|
@ -602,6 +604,7 @@ const std::array<OptionData, kNbOptions + 1> kAllOptionsData = {
|
||||||
OptionData{"Sound/DSoundHWAccel", "DSoundHWAccel", _("Use DirectSound hardware acceleration")},
|
OptionData{"Sound/DSoundHWAccel", "DSoundHWAccel", _("Use DirectSound hardware acceleration")},
|
||||||
OptionData{"Sound/Upmix", "Upmix", _("Upmix stereo to surround")},
|
OptionData{"Sound/Upmix", "Upmix", _("Upmix stereo to surround")},
|
||||||
OptionData{"Sound/Volume", "", _("Sound volume (%)")},
|
OptionData{"Sound/Volume", "", _("Sound volume (%)")},
|
||||||
|
OptionData{"Language/Locale", _("Language")},
|
||||||
|
|
||||||
// Last. This should never be used, it actually maps to OptionID::kLast.
|
// Last. This should never be used, it actually maps to OptionID::kLast.
|
||||||
// This is to prevent a memory access violation error in case something
|
// This is to prevent a memory access violation error in case something
|
||||||
|
|
|
@ -137,6 +137,7 @@ enum class OptionID {
|
||||||
kSoundDSoundHWAccel,
|
kSoundDSoundHWAccel,
|
||||||
kSoundUpmix,
|
kSoundUpmix,
|
||||||
kSoundVolume,
|
kSoundVolume,
|
||||||
|
kLocale,
|
||||||
|
|
||||||
// Do not add anything under here.
|
// Do not add anything under here.
|
||||||
Last,
|
Last,
|
||||||
|
|
|
@ -141,6 +141,7 @@ static constexpr std::array<Option::Type, kNbOptions> kOptionsTypes = {
|
||||||
/*kSoundDSoundHWAccel*/ Option::Type::kBool,
|
/*kSoundDSoundHWAccel*/ Option::Type::kBool,
|
||||||
/*kSoundUpmix*/ Option::Type::kBool,
|
/*kSoundUpmix*/ Option::Type::kBool,
|
||||||
/*kSoundVolume*/ Option::Type::kInt,
|
/*kSoundVolume*/ Option::Type::kInt,
|
||||||
|
/*kLocale*/ Option::Type::kInt,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Less verbose accessor for a specific OptionID with compile-time type checks.
|
// Less verbose accessor for a specific OptionID with compile-time type checks.
|
||||||
|
|
|
@ -1922,6 +1922,42 @@ bool MainFrame::BindControls()
|
||||||
MenuOptionIntRadioValue("LinkType2Wireless", gopts.gba_link_type, 2);
|
MenuOptionIntRadioValue("LinkType2Wireless", gopts.gba_link_type, 2);
|
||||||
MenuOptionIntRadioValue("LinkType3GameCube", gopts.gba_link_type, 3);
|
MenuOptionIntRadioValue("LinkType3GameCube", gopts.gba_link_type, 3);
|
||||||
MenuOptionIntRadioValue("LinkType4Gameboy", gopts.gba_link_type, 4);
|
MenuOptionIntRadioValue("LinkType4Gameboy", gopts.gba_link_type, 4);
|
||||||
|
MenuOptionIntRadioValue("Language0", gopts.locale, wxLANGUAGE_DEFAULT);
|
||||||
|
MenuOptionIntRadioValue("Language1", gopts.locale, wxLANGUAGE_BULGARIAN);
|
||||||
|
MenuOptionIntRadioValue("Language2", gopts.locale, wxLANGUAGE_BRETON);
|
||||||
|
MenuOptionIntRadioValue("Language3", gopts.locale, wxLANGUAGE_CZECH);
|
||||||
|
MenuOptionIntRadioValue("Language4", gopts.locale, wxLANGUAGE_GERMAN);
|
||||||
|
MenuOptionIntRadioValue("Language5", gopts.locale, wxLANGUAGE_GREEK);
|
||||||
|
MenuOptionIntRadioValue("Language6", gopts.locale, wxLANGUAGE_ENGLISH_US);
|
||||||
|
MenuOptionIntRadioValue("Language7", gopts.locale, wxLANGUAGE_SPANISH_LATIN_AMERICA);
|
||||||
|
MenuOptionIntRadioValue("Language8", gopts.locale, wxLANGUAGE_SPANISH_COLOMBIA);
|
||||||
|
MenuOptionIntRadioValue("Language9", gopts.locale, wxLANGUAGE_SPANISH_PERU);
|
||||||
|
MenuOptionIntRadioValue("Language10", gopts.locale, wxLANGUAGE_SPANISH_US);
|
||||||
|
MenuOptionIntRadioValue("Language11", gopts.locale, wxLANGUAGE_SPANISH);
|
||||||
|
MenuOptionIntRadioValue("Language12", gopts.locale, wxLANGUAGE_FRENCH_FRANCE);
|
||||||
|
MenuOptionIntRadioValue("Language13", gopts.locale, wxLANGUAGE_FRENCH);
|
||||||
|
MenuOptionIntRadioValue("Language14", gopts.locale, wxLANGUAGE_GALICIAN);
|
||||||
|
MenuOptionIntRadioValue("Language15", gopts.locale, wxLANGUAGE_HEBREW_ISRAEL);
|
||||||
|
MenuOptionIntRadioValue("Language16", gopts.locale, wxLANGUAGE_HUNGARIAN_HUNGARY);
|
||||||
|
MenuOptionIntRadioValue("Language17", gopts.locale, wxLANGUAGE_HUNGARIAN);
|
||||||
|
MenuOptionIntRadioValue("Language18", gopts.locale, wxLANGUAGE_INDONESIAN);
|
||||||
|
MenuOptionIntRadioValue("Language19", gopts.locale, wxLANGUAGE_ITALIAN_ITALY);
|
||||||
|
MenuOptionIntRadioValue("Language20", gopts.locale, wxLANGUAGE_JAPANESE);
|
||||||
|
MenuOptionIntRadioValue("Language21", gopts.locale, wxLANGUAGE_KOREAN_KOREA);
|
||||||
|
MenuOptionIntRadioValue("Language22", gopts.locale, wxLANGUAGE_KOREAN);
|
||||||
|
MenuOptionIntRadioValue("Language23", gopts.locale, wxLANGUAGE_MALAY_MALAYSIA);
|
||||||
|
MenuOptionIntRadioValue("Language24", gopts.locale, wxLANGUAGE_NORWEGIAN);
|
||||||
|
MenuOptionIntRadioValue("Language25", gopts.locale, wxLANGUAGE_DUTCH);
|
||||||
|
MenuOptionIntRadioValue("Language26", gopts.locale, wxLANGUAGE_POLISH_POLAND);
|
||||||
|
MenuOptionIntRadioValue("Language27", gopts.locale, wxLANGUAGE_POLISH);
|
||||||
|
MenuOptionIntRadioValue("Language28", gopts.locale, wxLANGUAGE_PORTUGUESE_BRAZILIAN);
|
||||||
|
MenuOptionIntRadioValue("Language29", gopts.locale, wxLANGUAGE_PORTUGUESE_PORTUGAL);
|
||||||
|
MenuOptionIntRadioValue("Language30", gopts.locale, wxLANGUAGE_RUSSIAN_RUSSIA);
|
||||||
|
MenuOptionIntRadioValue("Language31", gopts.locale, wxLANGUAGE_SWEDISH);
|
||||||
|
MenuOptionIntRadioValue("Language32", gopts.locale, wxLANGUAGE_TURKISH);
|
||||||
|
MenuOptionIntRadioValue("Language33", gopts.locale, wxLANGUAGE_UKRAINIAN);
|
||||||
|
MenuOptionIntRadioValue("Language34", gopts.locale, wxLANGUAGE_URDU_PAKISTAN);
|
||||||
|
MenuOptionIntRadioValue("Language35", gopts.locale, wxLANGUAGE_CHINESE_CHINA);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (size_t i = 0; i < checkable_mi.size(); i++) {
|
for (size_t i = 0; i < checkable_mi.size(); i++) {
|
||||||
|
|
|
@ -45,6 +45,8 @@ extern struct opts_t {
|
||||||
bool hide_menu_bar = true;
|
bool hide_menu_bar = true;
|
||||||
bool suspend_screensaver = false;
|
bool suspend_screensaver = false;
|
||||||
|
|
||||||
|
int locale = 0;
|
||||||
|
|
||||||
/// wxWindows
|
/// wxWindows
|
||||||
// wxWidgets-generated options (opaque)
|
// wxWidgets-generated options (opaque)
|
||||||
} gopts;
|
} gopts;
|
||||||
|
|
|
@ -223,7 +223,7 @@ static void get_config_path(wxPathList& path, bool exists = true)
|
||||||
if (!debug_dumped) {
|
if (!debug_dumped) {
|
||||||
wxLogDebug(wxT("GetUserLocalDataDir(): %s"), stdp.GetUserLocalDataDir().c_str());
|
wxLogDebug(wxT("GetUserLocalDataDir(): %s"), stdp.GetUserLocalDataDir().c_str());
|
||||||
wxLogDebug(wxT("GetUserDataDir(): %s"), stdp.GetUserDataDir().c_str());
|
wxLogDebug(wxT("GetUserDataDir(): %s"), stdp.GetUserDataDir().c_str());
|
||||||
wxLogDebug(wxT("GetLocalizedResourcesDir(wxGetApp().locale.GetCanonicalName()): %s"), stdp.GetLocalizedResourcesDir(wxGetApp().locale.GetCanonicalName()).c_str());
|
wxLogDebug(wxT("GetLocalizedResourcesDir(wxvbam_locale->GetCanonicalName()): %s"), stdp.GetLocalizedResourcesDir(wxvbam_locale->GetCanonicalName()).c_str());
|
||||||
wxLogDebug(wxT("GetResourcesDir(): %s"), stdp.GetResourcesDir().c_str());
|
wxLogDebug(wxT("GetResourcesDir(): %s"), stdp.GetResourcesDir().c_str());
|
||||||
wxLogDebug(wxT("GetDataDir(): %s"), stdp.GetDataDir().c_str());
|
wxLogDebug(wxT("GetDataDir(): %s"), stdp.GetDataDir().c_str());
|
||||||
wxLogDebug(wxT("GetLocalDataDir(): %s"), stdp.GetLocalDataDir().c_str());
|
wxLogDebug(wxT("GetLocalDataDir(): %s"), stdp.GetLocalDataDir().c_str());
|
||||||
|
@ -257,7 +257,7 @@ static void get_config_path(wxPathList& path, bool exists = true)
|
||||||
// NOTE: this does not support XDG (freedesktop.org) paths
|
// NOTE: this does not support XDG (freedesktop.org) paths
|
||||||
add_path(GetUserLocalDataDir());
|
add_path(GetUserLocalDataDir());
|
||||||
add_path(GetUserDataDir());
|
add_path(GetUserDataDir());
|
||||||
add_path(GetLocalizedResourcesDir(wxGetApp().locale.GetCanonicalName()));
|
add_path(GetLocalizedResourcesDir(wxvbam_locale->GetCanonicalName()));
|
||||||
add_path(GetResourcesDir());
|
add_path(GetResourcesDir());
|
||||||
add_path(GetDataDir());
|
add_path(GetDataDir());
|
||||||
add_path(GetLocalDataDir());
|
add_path(GetLocalDataDir());
|
||||||
|
@ -352,6 +352,9 @@ wxString wxvbamApp::GetAbsolutePath(wxString path)
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int language = wxLANGUAGE_DEFAULT;
|
||||||
|
wxLocale *wxvbam_locale = NULL;
|
||||||
|
|
||||||
bool wxvbamApp::OnInit() {
|
bool wxvbamApp::OnInit() {
|
||||||
using_wayland = IsWayland();
|
using_wayland = IsWayland();
|
||||||
|
|
||||||
|
@ -364,14 +367,25 @@ bool wxvbamApp::OnInit() {
|
||||||
#if (wxMAJOR_VERSION >= 3)
|
#if (wxMAJOR_VERSION >= 3)
|
||||||
SetAppDisplayName("VisualBoyAdvance-M");
|
SetAppDisplayName("VisualBoyAdvance-M");
|
||||||
#endif
|
#endif
|
||||||
// load system default locale, if available
|
|
||||||
locale.Init();
|
wxvbam_locale = new wxLocale;
|
||||||
|
|
||||||
|
language = OPTION(kLocale);
|
||||||
|
|
||||||
|
if (language != wxLANGUAGE_DEFAULT) {
|
||||||
|
wxvbam_locale->Init(language, wxLOCALE_LOAD_DEFAULT);
|
||||||
|
} else {
|
||||||
|
wxvbam_locale->Init();
|
||||||
|
}
|
||||||
|
|
||||||
|
// load selected language
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
wxTranslations::Get()->SetLoader(new wxResourceTranslationsLoader);
|
wxTranslations::Get()->SetLoader(new wxResourceTranslationsLoader);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
locale.AddCatalog("wxvbam");
|
wxvbam_locale->AddCatalog("wxvbam");
|
||||||
|
|
||||||
// make built-in xrc file available
|
// make built-in xrc file available
|
||||||
// this has to be done before parent OnInit() so xrc dump works
|
// this has to be done before parent OnInit() so xrc dump works
|
||||||
wxFileSystem::AddHandler(new wxMemoryFSHandler);
|
wxFileSystem::AddHandler(new wxMemoryFSHandler);
|
||||||
|
@ -473,6 +487,29 @@ bool wxvbamApp::OnInit() {
|
||||||
// Load the default options.
|
// Load the default options.
|
||||||
load_opts(!config_file_.Exists());
|
load_opts(!config_file_.Exists());
|
||||||
|
|
||||||
|
if (wxvbam_locale)
|
||||||
|
wxDELETE(wxvbam_locale);
|
||||||
|
|
||||||
|
wxvbam_locale = new wxLocale;
|
||||||
|
|
||||||
|
language = OPTION(kLocale);
|
||||||
|
|
||||||
|
if (language != wxLANGUAGE_DEFAULT) {
|
||||||
|
wxvbam_locale->Init(language, wxLOCALE_LOAD_DEFAULT);
|
||||||
|
} else {
|
||||||
|
wxvbam_locale->Init();
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf(stderr, "Language: %d\n", language);
|
||||||
|
|
||||||
|
// load selected language
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
wxTranslations::Get()->SetLoader(new wxResourceTranslationsLoader);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
wxvbam_locale->AddCatalog("wxvbam");
|
||||||
|
|
||||||
// wxGLCanvas segfaults under wayland before wx 3.2
|
// wxGLCanvas segfaults under wayland before wx 3.2
|
||||||
#if defined(HAVE_WAYLAND_SUPPORT) && !defined(HAVE_WAYLAND_EGL)
|
#if defined(HAVE_WAYLAND_SUPPORT) && !defined(HAVE_WAYLAND_EGL)
|
||||||
if (UsingWayland()) {
|
if (UsingWayland()) {
|
||||||
|
|
|
@ -38,6 +38,8 @@
|
||||||
#include "wx/wxlogdebug.h"
|
#include "wx/wxlogdebug.h"
|
||||||
#include "wx/compat_generic_file_dialog.h"
|
#include "wx/compat_generic_file_dialog.h"
|
||||||
|
|
||||||
|
extern wxLocale *wxvbam_locale;
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void CheckPointer(T pointer)
|
void CheckPointer(T pointer)
|
||||||
{
|
{
|
||||||
|
|
|
@ -578,6 +578,153 @@
|
||||||
<checkable>1</checkable>
|
<checkable>1</checkable>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="wxMenu">
|
||||||
|
<label translate="0">_Languages</label>
|
||||||
|
<object class="wxMenuItem" name="Language0">
|
||||||
|
<label>Default Language</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language1">
|
||||||
|
<label>Bulgarian</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language2">
|
||||||
|
<label>Breton</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language3">
|
||||||
|
<label>Czech</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language4">
|
||||||
|
<label>German</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language5">
|
||||||
|
<label>Greek</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language6">
|
||||||
|
<label>English (US)</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language7">
|
||||||
|
<label>Spanish (Latin American)</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language8">
|
||||||
|
<label>Spanish (Colombia)</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language9">
|
||||||
|
<label>Spanish (Peru)</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language10">
|
||||||
|
<label>Spanish (United States)</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language11">
|
||||||
|
<label>Spanish</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language12">
|
||||||
|
<label>French (France)</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language13">
|
||||||
|
<label>French</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language14">
|
||||||
|
<label>Galician</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language15">
|
||||||
|
<label>Hebrew (Israel)</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language16">
|
||||||
|
<label>Hungarian (Hungary)</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language17">
|
||||||
|
<label>Hungarian</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language18">
|
||||||
|
<label>Indonesian</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language19">
|
||||||
|
<label>Italian</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language20">
|
||||||
|
<label>Japanese</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language21">
|
||||||
|
<label>Korean (Korea)</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language22">
|
||||||
|
<label>Korean</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language23">
|
||||||
|
<label>Malay (Malaysia)</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language24">
|
||||||
|
<label>Norwegian</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language25">
|
||||||
|
<label>Dutch</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language26">
|
||||||
|
<label>Polish (Poland)</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language27">
|
||||||
|
<label>Polish</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language28">
|
||||||
|
<label>Portuguese (Brazil)</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language29">
|
||||||
|
<label>Portuguese (Portugal)</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language30">
|
||||||
|
<label>Russian (Russia)</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language31">
|
||||||
|
<label>Swedish</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language32">
|
||||||
|
<label>Turkish</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language33">
|
||||||
|
<label>Ukrainian</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language34">
|
||||||
|
<label>Urdu (Pakistan)</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
<object class="wxMenuItem" name="Language35">
|
||||||
|
<label>Chinese (China)</label>
|
||||||
|
<radio>1</radio>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="wxMenu">
|
<object class="wxMenu">
|
||||||
<label>_Tools</label>
|
<label>_Tools</label>
|
||||||
|
|
Loading…
Reference in New Issue