Problem mit Übersetzung
Verfasst: 30. Mai 2007 01:18
Hallo Qt-Profis,
ich habe ein kleines Programm mit Qt geschrieben und hänge an einem kleinen Problem mit der automatischen Übersetzung per Linguist und QTranslator.
Was bisher gelaufen ist:
- .pro Datei um die TRANSLATIONS Direktive erweitert und eine Datei "QtUebung_de.ts" dort eingetragen
- lupdate QtUebung.pro laufen lassen
- linguist geöffnet und fleissig übersetzt
- die ts Datei per lrelease QtUebung.pro in das binärfprmat übersetzt
- die main Methode angepasst. Sie sieht nun so aus:
Die Ausgabe beim Starten der Anwendung einmal mit Parameter 'de' ergibt:
QtUebung$ ./QtUebung de
QtUebung_de
Translation File QtUebung_de loaded
und einmal mit Parameter 'do':
QtUebung$ ./QtUebung do
QtUebung_do
Translation File QtUebung_do not loaded
In beiden Fällen wird aber die original in englisch programmierte Version gezegt und trotz 'de' im Parameter nicht die Deutsche Übersetzung gewählt, obwohl der load() Befehl im ersten Fall die qm Datei zu finden scheint. Der zweite Fall scheitert zu Recht, da es ja keine QtUebung_do gibt.
Was kann das sein? Wäre für jede Hilfe von euch dankbar!
Michael
ich habe ein kleines Programm mit Qt geschrieben und hänge an einem kleinen Problem mit der automatischen Übersetzung per Linguist und QTranslator.
Was bisher gelaufen ist:
- .pro Datei um die TRANSLATIONS Direktive erweitert und eine Datei "QtUebung_de.ts" dort eingetragen
- lupdate QtUebung.pro laufen lassen
- linguist geöffnet und fleissig übersetzt
- die ts Datei per lrelease QtUebung.pro in das binärfprmat übersetzt
- die main Methode angepasst. Sie sieht nun so aus:
Code: Alles auswählen
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
if(argc == 2)
{
QString *filename = new QString("QtUebung_");
filename->append(argv[1]);
cout << filename->toStdString() << endl;
QTranslator translator;
if(translator.load( *filename, "." ))
{
cout << "Translation File " << filename->toStdString() << " loaded" << endl;
}
else
{
cout << "Translation File " << filename->toStdString() << " not loaded" << endl;
}
app.installTranslator(&translator);
}
MainWindow *mainwin = new MainWindow();
mainwin->show();
return app.exec();
}
QtUebung$ ./QtUebung de
QtUebung_de
Translation File QtUebung_de loaded
und einmal mit Parameter 'do':
QtUebung$ ./QtUebung do
QtUebung_do
Translation File QtUebung_do not loaded
In beiden Fällen wird aber die original in englisch programmierte Version gezegt und trotz 'de' im Parameter nicht die Deutsche Übersetzung gewählt, obwohl der load() Befehl im ersten Fall die qm Datei zu finden scheint. Der zweite Fall scheitert zu Recht, da es ja keine QtUebung_do gibt.
Was kann das sein? Wäre für jede Hilfe von euch dankbar!
Michael