lupdate findet tr() in #include - Dateien nicht

Alles rund um die Programmierung mit Qt
Antworten
Unneli
Beiträge: 8
Registriert: 26. August 2010 09:02

lupdate findet tr() in #include - Dateien nicht

Beitrag 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
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag 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.
Unneli
Beiträge: 8
Registriert: 26. August 2010 09:02

Beitrag 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...
Antworten