undefined
08-08-2006, 08:02
Ich lade beim start meine Translation Datei.
Unter Linux kann ich ja mit getenv() die Lokalisierung des Systems ermitteln.
Leider habe ich kein Windows und kann jetzt nicht nachsehen wie es dort Funktioniert.
Meine Frage kann ich das so machen das es auch unter Windows und Mac geht?
Oder muss ich eine andere Lösung verwenden.
#include <stdlib.h>
#include <QtCore>
#include <QApplication>
#include <QMessageBox>
#include <QSplashScreen>
#include "QSpokecalculator.h"
int main(int argc, char *argv[])
{
Q_INIT_RESOURCE(qspokecalc);
QT_REQUIRE_VERSION( argc, argv, "4.1.4" )
QApplication app(argc, argv);
// Get Application Main Directory
QString SplashPath( QCoreApplication::applicationDirPath() );
SplashPath.append( QDir::separator() );
// Setting Locale Path
QString lcp( SplashPath );
lcp.append( "locale" );
// Complite Splash path
SplashPath.append( "QSpokecalc.png" );
// FIXME Windows/Mac ?
QString setLang( getenv( "LANG" ) );
setLang = setLang.toLower();
setLang = setLang.replace( QRegExp( "(_.+)*$" ), "" );
setLang.prepend("qspokecalc_");
setLang = setLang.toLocal8Bit();
// init locale
QTranslator translator(0);
translator.load( setLang, lcp, "_" );
app.installTranslator(&translator);
// display notification for help users to rename the qspokecalc_*.qm
std::cout << "Search for Locale: " << setLang.toStdString() << ".qm" << std::endl;
QPixmap pixmap( SplashPath );
QSplashScreen *splash = new QSplashScreen(pixmap);
splash->show();
splash->showMessage( QObject::trUtf8( "Loading Databases ..." ), Qt::AlignCenter | Qt::AlignVCenter, Qt::white );
qApp->processEvents();
QSpokecalculator mainWin;
splash->showMessage( QObject::trUtf8( "Start QSpokecalc ..." ), Qt::AlignCenter | Qt::AlignVCenter, Qt::white );
qApp->processEvents();
mainWin.show();
splash->finish( &mainWin );
delete splash;
return app.exec();
}
Unter Linux kann ich ja mit getenv() die Lokalisierung des Systems ermitteln.
Leider habe ich kein Windows und kann jetzt nicht nachsehen wie es dort Funktioniert.
Meine Frage kann ich das so machen das es auch unter Windows und Mac geht?
Oder muss ich eine andere Lösung verwenden.
#include <stdlib.h>
#include <QtCore>
#include <QApplication>
#include <QMessageBox>
#include <QSplashScreen>
#include "QSpokecalculator.h"
int main(int argc, char *argv[])
{
Q_INIT_RESOURCE(qspokecalc);
QT_REQUIRE_VERSION( argc, argv, "4.1.4" )
QApplication app(argc, argv);
// Get Application Main Directory
QString SplashPath( QCoreApplication::applicationDirPath() );
SplashPath.append( QDir::separator() );
// Setting Locale Path
QString lcp( SplashPath );
lcp.append( "locale" );
// Complite Splash path
SplashPath.append( "QSpokecalc.png" );
// FIXME Windows/Mac ?
QString setLang( getenv( "LANG" ) );
setLang = setLang.toLower();
setLang = setLang.replace( QRegExp( "(_.+)*$" ), "" );
setLang.prepend("qspokecalc_");
setLang = setLang.toLocal8Bit();
// init locale
QTranslator translator(0);
translator.load( setLang, lcp, "_" );
app.installTranslator(&translator);
// display notification for help users to rename the qspokecalc_*.qm
std::cout << "Search for Locale: " << setLang.toStdString() << ".qm" << std::endl;
QPixmap pixmap( SplashPath );
QSplashScreen *splash = new QSplashScreen(pixmap);
splash->show();
splash->showMessage( QObject::trUtf8( "Loading Databases ..." ), Qt::AlignCenter | Qt::AlignVCenter, Qt::white );
qApp->processEvents();
QSpokecalculator mainWin;
splash->showMessage( QObject::trUtf8( "Start QSpokecalc ..." ), Qt::AlignCenter | Qt::AlignVCenter, Qt::white );
qApp->processEvents();
mainWin.show();
splash->finish( &mainWin );
delete splash;
return app.exec();
}