Translation code fix; updated German translation

This commit is contained in:
Max-Wilhelm Bruker 2010-09-10 19:12:01 +02:00
parent e09060faca
commit 5ee6bdd338
5 changed files with 743 additions and 679 deletions

View file

@ -103,19 +103,15 @@ GeneralSettingsPage::GeneralSettingsPage()
QStringList GeneralSettingsPage::findQmFiles()
{
QDir dir(":/translations");
QStringList fileNames = dir.entryList(QStringList("*.qm"), QDir::Files, QDir::Name);
QMutableStringListIterator i(fileNames);
while (i.hasNext()) {
i.next();
i.setValue(dir.filePath(i.value()));
}
QStringList fileNames = dir.entryList(QStringList(translationPrefix + "_*.qm"), QDir::Files, QDir::Name);
fileNames.replaceInStrings(QRegExp(translationPrefix + "_(.*)\\.qm"), "\\1");
return fileNames;
}
QString GeneralSettingsPage::languageName(const QString &qmFile)
{
QTranslator translator;
translator.load(qmFile);
translator.load(":/translations/" + translationPrefix + "_" + qmFile + ".qm");
return translator.translate("GeneralSettingsPage", "English");
}
@ -165,8 +161,7 @@ void GeneralSettingsPage::cardBackgroundPathButtonClicked()
void GeneralSettingsPage::languageBoxChanged(int index)
{
QString qmFile = languageBox->itemData(index).toString();
settingsCache->setLang(qmFile);
settingsCache->setLang(languageBox->itemData(index).toString());
}
void GeneralSettingsPage::retranslateUi()
@ -473,8 +468,7 @@ void DlgSettings::changePage(QListWidgetItem *current, QListWidgetItem *previous
void DlgSettings::updateLanguage()
{
qApp->removeTranslator(translator);
translator->load(settingsCache->getLang());
qApp->installTranslator(translator);
installNewTranslator();
}
void DlgSettings::changeEvent(QEvent *event)

View file

@ -39,7 +39,7 @@
//Q_IMPORT_PLUGIN(qjpeg)
CardDatabase *db;
QTranslator *translator;
QTranslator *translator, *qtTranslator;
SettingsCache *settingsCache;
PingPixmapGenerator *pingPixmapGenerator;
@ -52,6 +52,17 @@ void myMessageOutput(QtMsgType /*type*/, const char *msg)
fflush(f);
}
void installNewTranslator()
{
QString lang = settingsCache->getLang();
qtTranslator->load("qt_" + lang, QLibraryInfo::location(QLibraryInfo::TranslationsPath));
qApp->installTranslator(qtTranslator);
translator->load(translationPrefix + "_" + lang, ":/translations");
qApp->installTranslator(translator);
}
int main(int argc, char *argv[])
{
// qInstallMsgHandler(myMessageOutput);
@ -78,18 +89,9 @@ int main(int argc, char *argv[])
db = new CardDatabase;
pingPixmapGenerator = new PingPixmapGenerator;
QString localeName;// = QLocale::system().name();
QTranslator qtTranslator;
qtTranslator.load("qt_" + localeName, QLibraryInfo::location(QLibraryInfo::TranslationsPath));
app.installTranslator(&qtTranslator);
qtTranslator = new QTranslator;
translator = new QTranslator;
QString lang = settingsCache->getLang();
if (lang.isEmpty())
translator->load("cockatrice_" + localeName, ":/translations", QString(), ".qm");
else
translator->load(lang);
app.installTranslator(translator);
installNewTranslator();
qsrand(QDateTime::currentDateTime().toTime_t());

View file

@ -5,6 +5,10 @@ class CardDatabase;
class QTranslator;
extern CardDatabase *db;
extern QTranslator *translator;
const QString translationPrefix = "cockatrice";
void installNewTranslator();
#endif

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff