Seite 1 von 1

[gelöst] QT Linguist

Verfasst: 9. Juni 2017 23:09
von Tomaxx
Hallo

Ich bin dabei, meine Anwendung mehrsprachig zu machen. Habe dabei diese Anleitung befolgt:

https://qtvon0auf100.wordpress.com/2012 ... it-andern/

Alles läuft durch, keine Meldungen.
Aber wenn ich die Sprache ändere (per Menupunkt), bleiben alle Feldbeschriftungen in deutsch. Seltsamerweise werden vorhe eingetragene Feldinhalte gelöscht und die Felder sind leer.

Mein diesbezüglicher code:

Code: Alles auswählen

void MainWindow::change_language(QString language){
    if (language=="deutsch"){
        qApp->removeTranslator(&aktuelle_sprache);
    }
    if (language=="english"){
        aktuelle_sprache.load("PumpPro_en");
        qApp->installTranslator(&aktuelle_sprache);
    }
    if (language=="francais"){
        aktuelle_sprache.load("PumpPro_fr");
        qApp->installTranslator(&aktuelle_sprache);
    }
    ui->retranslateUi(this);
}

void MainWindow::on_actiondeutsch_triggered(){
    QString neue_sprache = "deutsch";
    change_language(neue_sprache);
}

void MainWindow::on_actionfran_ais_triggered(){
    QString neue_sprache = "francais";
    change_language(neue_sprache);
}

void MainWindow::on_actionenglish_triggered(){
    QString neue_sprache = "english";
    change_language(neue_sprache);
}
Die Dateien PumpPro_en und PumpPro_fr sind im Programmverzeichnis vorhanden. Auch die Variante ":/PumpPro_en" habe ich probiert. Keine Übersetzung

Wo ist der Fehler?

Danke

Thomas

Re: QT Linguist

Verfasst: 10. Juni 2017 09:03
von Christian81
QTranslator::load() gibt ein bool zurück ob es geklappt hat, das sollte man mal überprüfen. Ich gehe mal davon aus, dass die qm-Dateien nicht gefunden wären können.

Re: QT Linguist

Verfasst: 10. Juni 2017 14:41
von Tomaxx
Stimmt, ich bekomme False zurück.

Was ist falsch am Aufruf? Die Datei ist im selben Verzeichnis.
Folgende AUfrufe klappen nicht:
"./PumpPro_en"
":/PumpPro_en" (wie in qt von 0 auf 100 angegeben)
"PumpPro_en"

Thomas

Re: QT Linguist

Verfasst: 10. Juni 2017 14:51
von Tomaxx
Geschafft!

Folgender Aufruf geht:

Code: Alles auswählen

QDir::currentPath() + "/PumpPro_en"