QAbstractItemModel* GetInstalledLangsModel () { QMap<QString, QString> languages = GetInstalledLanguages (); QStandardItemModel *model = new QStandardItemModel (); QStandardItem *systemItem = new QStandardItem (QObject::tr ("System")); systemItem->setData ("system", Qt::UserRole); model->appendRow (systemItem); Q_FOREACH (const QString& language, languages.keys ()) { QStandardItem *item = new QStandardItem (language); item->setData (languages [language], Qt::UserRole); model->appendRow (item); } return model; }
bool wxTranslationHelper::AskUserForLanguage() { wxArrayString names; wxArrayLong identifiers; GetInstalledLanguages(names, identifiers); const long cfgidx = cfg().ReadLong(_T("/General/LanguageID")); assert(names.Count() == identifiers.Count()); long index = GetSingleChoiceIndex(_("Select the language"), _("Language"), names, GetLangID(cfgidx, identifiers)); if (index != -1) { int lang = identifiers[index]; if (Load(lang)) { cfg().Write(_T( "/General/LanguageID" ), lang); cfg().SaveFile(); //instant save to config return true; } } return false; }
bool wxTranslationHelper::Load(int language) { wxArrayString names; wxArrayLong identifiers; GetInstalledLanguages(names, identifiers); for (size_t i = 0; i < identifiers.Count(); i++) { if (identifiers[i] == language) { if (m_Locale) { wxDELETE(m_Locale); } m_Locale = new wxLocale; m_Locale->Init(identifiers[i]); m_Locale->AddCatalogLookupPathPrefix(m_SearchPath); m_Locale->AddCatalog(catalogname); m_Locale->AddCatalog(_T("wxstd")); return true; } } return false; }