void Translator::installQMFiles(const QDir& dir, const char* locale) { QString filter = QString::fromAscii("*_%1.qm").arg(QLatin1String(locale)); QStringList fileNames = dir.entryList(QStringList(filter), QDir::Files, QDir::Name); for (QStringList::Iterator it = fileNames.begin(); it != fileNames.end(); ++it){ bool ok=false; for (std::list<QTranslator*>::const_iterator tt = d->translators.begin(); tt != d->translators.end(); ++tt) { if ((*tt)->objectName() == *it) { ok = true; // this file is already installed break; } } // okay, we need to install this file if (!ok) { QTranslator* translator = new QTranslator; translator->setObjectName(*it); if (translator->load(dir.filePath(*it))) { qApp->installTranslator(translator); d->translators.push_back(translator); } else { delete translator; } } } }