Seite 1 von 1

Qt Button Sprache fix, unabhaengig von System LANG

Verfasst: 24. März 2009 09:04
von otternase
Hallo

wie kann ich Qt anweisen, in meinem Programm die Sprache der automatisch generierten Buttons (solche Texte wie OK, Cancel, Help) und sonstiger Qt eigener Texte immer unabhängig von der Sprache des Systems (LANG Variabel) immer fix in einer Sprache auszugeben?
Konkret:
Ich möchte, dass mein Programm auch auf einer englischsprachigen Installation alle Elemente durchgängig deutsch anzeigt.

Danke
Markus

Verfasst: 24. März 2009 09:09
von franzf
QLocale::setDefault() vielleicht?

Verfasst: 24. März 2009 09:29
von otternase
franzf hat geschrieben:QLocale::setDefault() vielleicht?
nein leider nicht, oder ich verwende es falsch???

in meiner main.cpp habe ich folgendes geschrieben:

Code: Alles auswählen

int main(int argc, char **argv)
{
    QApplication app(argc, argv);
    QLocale::setDefault(QLocale(QLocale::German, QLocale::Germany));
    QLocale deutsch;
    MainWindow *mainWin=new MainWindow();
    mainWin->show();
qDebug() << "LANG" << deutsch.language();
    int returncode=app.exec();
    return returncode;
 }
es wird dann 42 ausgegeben, also QLocale::German, aber in den Dialogen steht trotzdem 'Cancel' statt 'Abbrechen'...

Language German ist übrigens auf dem System installiert (Ubuntu), aber sogar, wenn ich auf German als Defaultlanguage umschalte, werden die Standardbuttons in Englisch angezeigt??? Vielleicht ein Problem mit meiner Qt-Installation?

PS:
Beispiel für einen Dialog, wo es schief läuft:

Code: Alles auswählen

     int ret = QMessageBox::warning(this, tr("Verbinden mit Datenbankserver"),
                                QString("Es besteht bereits eine Verbindung mit einem Datenbankserver\n HostName: '%1'; UserName: '%2';\nVerbindung schliessen?").arg(db.hostName()).arg(db.userName()),
                                QMessageBox::No | QMessageBox::Yes);
Es steht dort dann "No" und "Yes", statt "Nein" und "Ja"...

Verfasst: 24. März 2009 09:49
von Christian81
Den deutschen Translator laden (.qt_de.qm) sollte helfen

Re: Qt Button Sprache fix, unabhaengig von System LANG

Verfasst: 24. März 2009 09:49
von RavenIV
otternase hat geschrieben: Ich möchte, dass mein Programm auch auf einer englischsprachigen Installation alle Elemente durchgängig deutsch anzeigt.
Find ich keinen guten Stil.
Der Benutzer wird sich schon etwas gedacht haben, wenn er das System in Englisch installiert hat.

Beispiel:
Du gehst als Austauschstudent in die Türkei.
Deinen PC mit deutscher Installation nimmst Du mit.
Dann kommt eine Software, die hardcodiert auf Türkisch ist.
Würdest Du das wollen?

Verfasst: 24. März 2009 10:09
von otternase
Christian81 hat geschrieben:Den deutschen Translator laden (.qt_de.qm) sollte helfen
Das war der entscheidende Tipp, jetzt funktioniert es!!!!! Danke!

Bezüglich des Einwandes von RavenIV. Sicher hast Du gewissermassen Recht, aber hier geht es genau um den umgekehrten Fall: Anwender will das Programm auch auf einem fremden Rechner in seiner eigenen Sprache bedienen...

Verfasst: 24. März 2009 10:16
von RavenIV
otternase hat geschrieben:... Anwender will das Programm auch auf einem fremden Rechner in seiner eigenen Sprache bedienen...
Dann mach es doch konfigurierbar.
Vielleicht will auch mal ein Engländer die Software auf einem deutschen System ausführen?