Seite 1 von 1

lupdate findet tr() in #include - Dateien nicht

Verfasst: 10. September 2010 09:04
von Unneli
Hallo,

ich erstelle derzeit eine größere GUI mit Qt unter Zuhilfenahme des Qt Creators. Gerade sitze ich an der Übersetzung vom Englischen ins Deutsche und bin auf folgendes Problem gestoßen:
Habe ich die Definition aller Methoden und Slots meines von QMainWindow abgeleiteten Fensters direkt in der gui.cpp (Projekt: gui.pro), so werden mit

Code: Alles auswählen

lupdate gui.pro
alle Strings gefunden, extrahiert und bei Bedarf auch korrekt übersetzt eingebunden.
Ich möchte mein Projekt jedoch so gliedern, dass ich beispielsweise alle Slots in einer Datei slots.cpp, alles was mit Animation zu tun hat, in einer Datei anim.cpp habe etc.
In der gui.cpp stand als erste include-Anweisungen:
#include "anim.cpp"
#include "slots.cpp"
Als die Methoden in die Dateien verschoben waren, hat lupdate sämtliche Strings in diesen Dateien nicht mehr gefunden, folglich wurden sie nicht mit übersetzt.

Kann man lupdate mitteilen, dass es auch in eingebundenen Dateien suchen soll oder ähnliches?

Vielen Dank im Voraus!!

Unneli

Verfasst: 10. September 2010 09:14
von franzf
*.cpp sind implementierungsdateien, die includiert man nie nicht, man kompiliert sie!
Füge diese im .pro unter "SOURCES" ein, dann sollte alles wieder klappen.

Verfasst: 10. September 2010 09:33
von Unneli
Ich kann die "Auslagerungsdateien" statt .cpp auch als .h benennen und dann per include-Direktive einbinden.
Wenn ich sie nur in die .pro-Datei unter SOURCES schreibe, meckert der Compiler:
undefined reference to `GUI::
und dann folgen eben alle Methoden, die eigentlich in der gui.cpp stehen sollten, die ich aber auslagern möchte.

Meine gui.pro sieht so aus:

Code: Alles auswählen

TEMPLATE = app
TARGET = 
DEPENDPATH += .
INCLUDEPATH += .

# Input
HEADERS += cpucolourchooser.h \
           gui.h \
           ../../communication/display.h \
           ../../communication/configuration.h \
           ../../communication/particles.h \
           ../../communication/position.h \
           ../guiReader.h \
           ../../start/reader.h \
           ../configurationquery.h \
           ../helpDialogue.h \
           ../particlequery.h \
           help.h
FORMS += cpucolourchooser.ui gui.ui \
    help.ui
SOURCES += animation.cpp \
           cpucolourchooser.cpp \
           gui.cpp \
           main.cpp \
           ../../communication/display.cpp \
           ../../communication/configuration.cpp \
           ../../communication/particles.cpp \
           ../../communication/position.cpp \
           ../guiReader.cpp \
           ../../start/reader.cpp \
           ../configurationquery.cpp \
           ../helpDialogue.cpp \
           ../particlequery.cpp \
           help.cpp

RESOURCES += \
           ../images.qrc

TRANSLATIONS += GUI_de.ts
Scheinbar werden aber nicht alle in dieser Datei aufgeführten source-Dateien nach zu übersetzenden Strings durchsucht...