dynamische Sprachen und shared/static libs
Verfasst: 12. November 2006 16:52
Hallo,
folgendes Problem: Ich schreibe eine (z.Zt. statische ) Library, welche lokalisiert wird. Klappt alles ganz gut, die _ts und _qm files sind alle da, irgendwo in der Lib habe ich eine Funktion, die mir den QTranslator "ausfüllt" entsprechend der QLocal Settings:
d.h. die Klasse wird dynamisch erzeugt/gekillt. Das Problem, wenn ich in der Hauptapp. die language ändere, bekomme ich dieses so nicht in der Lib mit (da ja dynamisch). Über die Systemlocale zu gehen (wie hier) ist kein kleverer Weg. Wie kann ich der Lib die dynamische Sprache einstellen? Leider biete QT keinen Weg an, um an die Translators wieder ranzukommen um so nach den *.qm files zu parsen und anhand der Sprachkennung (de,en, etc) die aktuell eingestellte Sprache hersuzufinden. Wie geht es am besten?
Vielen Dank
Olaf
folgendes Problem: Ich schreibe eine (z.Zt. statische ) Library, welche lokalisiert wird. Klappt alles ganz gut, die _ts und _qm files sind alle da, irgendwo in der Lib habe ich eine Funktion, die mir den QTranslator "ausfüllt" entsprechend der QLocal Settings:
Code: Alles auswählen
int ReportError(const ErrorMsg &errMsg,
const QString &captions,
const QString &title,
uint32_t delay)
{
scoped_ptr<ErrorReport> reporter(new ErrorReport);
return reporter->ReportError(errMsg, captions, title, delay);
}
ErrorReport::ErrorReport()
{
if (!m_resInitialized)
this->initResources();
QString i18nDir = "../i18n";
QString localeFile = QString("ReportErrorLib_") + QLocale::system().name();
qDebug() << "**** load " << localeFile;
QTranslator translator;
if (!translator.load(localeFile, i18nDir)) {
qDebug() << "ERROR loading translation files in library ReportError!";
}
QCoreApplication::installTranslator(&translator);
}
Vielen Dank
Olaf