Translation code fix; updated German translation
This commit is contained in:
parent
e09060faca
commit
5ee6bdd338
5 changed files with 743 additions and 679 deletions
|
@ -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)
|
||||
|
|
|
@ -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());
|
||||
|
||||
|
|
|
@ -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
Loading…
Reference in a new issue