MNID_LANGUAGE_NEXT = 10
};
-LanguageMenu::LanguageMenu()
+LanguageMenu::LanguageMenu()
{
add_label(_("Language"));
add_hl();
int mnid = MNID_LANGUAGE_NEXT;
std::set<tinygettext::Language> languages = dictionary_manager->get_languages();
- for (std::set<tinygettext::Language>::iterator i = languages.begin(); i != languages.end(); i++)
+ for (std::set<tinygettext::Language>::iterator i = languages.begin(); i != languages.end(); i++)
{
add_entry(mnid++, i->get_name());
}
}
void
-LanguageMenu::menu_action(MenuItem* item)
+LanguageMenu::menu_action(MenuItem* item)
{
if (item->id == MNID_LANGUAGE_AUTO_DETECT) // auto detect
{
FL_Locale *locale;
- FL_FindLocale(&locale, FL_MESSAGES);
+ FL_FindLocale(&locale);
tinygettext::Language language = tinygettext::Language::from_spec( locale->lang?locale->lang:"", locale->country?locale->country:"", locale->variant?locale->variant:"");
FL_FreeLocale(&locale);
dictionary_manager->set_language(language); // set currently detected language
g_config->locale = ""; // do auto detect every time on startup
g_config->save();
- MenuManager::pop_current();
+ MenuManager::instance().clear_menu_stack();
}
else if (item->id == MNID_LANGUAGE_ENGLISH) // english
{
g_config->locale = "en";
dictionary_manager->set_language(tinygettext::Language::from_name(g_config->locale));
g_config->save();
- MenuManager::pop_current();
+ MenuManager::instance().clear_menu_stack();
}
else
{
int mnid = MNID_LANGUAGE_NEXT;
std::set<tinygettext::Language> languages = dictionary_manager->get_languages();
- for (std::set<tinygettext::Language>::iterator i = languages.begin(); i != languages.end(); i++)
+ for (std::set<tinygettext::Language>::iterator i = languages.begin(); i != languages.end(); i++)
{
- if (item->id == mnid++)
+ if (item->id == mnid++)
{
g_config->locale = i->str();
dictionary_manager->set_language(*i);
g_config->save();
- MenuManager::pop_current();
+ MenuManager::instance().clear_menu_stack();
break;
}
}