diff --git a/zeiterfassungclient/CMakeLists.txt b/zeiterfassungclient/CMakeLists.txt
index c7aa8de..ad58299 100644
--- a/zeiterfassungclient/CMakeLists.txt
+++ b/zeiterfassungclient/CMakeLists.txt
@@ -5,18 +5,27 @@ set(SOURCES
main.cpp
)
-set(RESOURCES
- zeiterfassung_resources.qrc
-)
-
set(FORMS
strips/bookingendstrip.ui
strips/bookingstartstrip.ui
strips/timeassignmentstrip.ui
)
+set(RESOURCES
+ zeiterfassung_resources.qrc
+)
+
+set(TRANSLATIONS
+ translations/zeiterfassungclient_en.ts
+ translations/zeiterfassungclient_de.ts
+)
+
+set_source_files_properties(${TRANSLATIONS} PROPERTIES OUTPUT_LOCATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/translations)
+QT5_CREATE_TRANSLATION(TRANSLATIONS_C ${TRANSLATIONS} ${HEADERS} ${SOURCES} ${FORMS} OPTIONS -no-obsolete)
+#QT5_ADD_TRANSLATION(TRANSLATIONS_C ${TRANSLATIONS})
+
# TODO: add icon.ico for windows
-add_executable(zeiterfassungclient ${HEADERS} ${SOURCES} ${RESOURCES} ${FORMS})
+add_executable(zeiterfassungclient ${HEADERS} ${SOURCES} ${FORMS} ${RESOURCES} ${TRANSLATIONS_C})
target_link_libraries(zeiterfassungclient Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network zeiterfassungcorelib zeiterfassungguilib zeiterfassungnetworklib)
diff --git a/zeiterfassungclient/translations/zeiterfassungclient_de.ts b/zeiterfassungclient/translations/zeiterfassungclient_de.ts
new file mode 100644
index 0000000..030a2e6
--- /dev/null
+++ b/zeiterfassungclient/translations/zeiterfassungclient_de.ts
@@ -0,0 +1,144 @@
+
+
+
+
+ bookingEndStrip
+
+
+ END
+
+
+
+
+ bookingStartStrip
+
+
+ START
+
+
+
+
+ main
+
+
+ Loading translations...
+
+
+
+
+
+ Invalid language selection!
+
+
+
+
+ You did not select a valid language!
+
+
+
+
+ Loading theme...
+
+
+
+
+
+
+
+ Could not load theme!
+
+
+
+
+ Theme file does not exist!
+
+
+
+
+ Loading strip layouts...
+
+
+
+
+
+
+
+
+
+
+
+ Could not load strips!
+
+
+
+
+ Loading login page...
+
+
+
+
+
+ Could not access Zeiterfassung!
+
+
+
+
+ Base url
+
+
+
+
+ Please enter the base url to the Zeiterfassung:
+
+
+
+
+ Invalid url!
+
+
+
+
+ This url is not valid!
+
+
+
+
+ Authenticating...
+
+
+
+
+
+ Could not authenticate with Zeiterfassung!
+
+
+
+
+ Getting user information...
+
+
+
+
+
+ Could not get user information!
+
+
+
+
+
+ Could not load plugin %0!
+
+
+
+
+
+ Plugin not valid %0!
+
+
+
+
+ Loading settings...
+
+
+
+
diff --git a/zeiterfassungclient/translations/zeiterfassungclient_en.ts b/zeiterfassungclient/translations/zeiterfassungclient_en.ts
new file mode 100644
index 0000000..3ec9457
--- /dev/null
+++ b/zeiterfassungclient/translations/zeiterfassungclient_en.ts
@@ -0,0 +1,144 @@
+
+
+
+
+ bookingEndStrip
+
+
+ END
+
+
+
+
+ bookingStartStrip
+
+
+ START
+
+
+
+
+ main
+
+
+ Loading translations...
+
+
+
+
+
+ Invalid language selection!
+
+
+
+
+ You did not select a valid language!
+
+
+
+
+ Loading theme...
+
+
+
+
+
+
+
+ Could not load theme!
+
+
+
+
+ Theme file does not exist!
+
+
+
+
+ Loading strip layouts...
+
+
+
+
+
+
+
+
+
+
+
+ Could not load strips!
+
+
+
+
+ Loading login page...
+
+
+
+
+
+ Could not access Zeiterfassung!
+
+
+
+
+ Base url
+
+
+
+
+ Please enter the base url to the Zeiterfassung:
+
+
+
+
+ Invalid url!
+
+
+
+
+ This url is not valid!
+
+
+
+
+ Authenticating...
+
+
+
+
+
+ Could not authenticate with Zeiterfassung!
+
+
+
+
+ Getting user information...
+
+
+
+
+
+ Could not get user information!
+
+
+
+
+
+ Could not load plugin %0!
+
+
+
+
+
+ Plugin not valid %0!
+
+
+
+
+ Loading settings...
+
+
+
+
diff --git a/zeiterfassungcorelib/CMakeLists.txt b/zeiterfassungcorelib/CMakeLists.txt
index a1d52e8..b149ef2 100644
--- a/zeiterfassungcorelib/CMakeLists.txt
+++ b/zeiterfassungcorelib/CMakeLists.txt
@@ -7,7 +7,16 @@ set(SOURCES
zeiterfassungsettings.cpp
)
-add_library(zeiterfassungcorelib SHARED ${HEADERS} ${SOURCES})
+set(TRANSLATIONS
+ translations/zeiterfassungcorelib_en.ts
+ translations/zeiterfassungcorelib_de.ts
+)
+
+set_source_files_properties(${TRANSLATIONS} PROPERTIES OUTPUT_LOCATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/translations)
+QT5_CREATE_TRANSLATION(TRANSLATIONS_C ${TRANSLATIONS} ${HEADERS} ${SOURCES} OPTIONS -no-obsolete)
+#QT5_ADD_TRANSLATION(TRANSLATIONS_C ${TRANSLATIONS})
+
+add_library(zeiterfassungcorelib SHARED ${HEADERS} ${SOURCES} ${TRANSLATIONS_C})
target_compile_definitions(zeiterfassungcorelib PRIVATE ZEITERFASSUNGCORELIB_LIBRARY)
diff --git a/zeiterfassungguilib/CMakeLists.txt b/zeiterfassungguilib/CMakeLists.txt
index 8aeff92..841a8cc 100644
--- a/zeiterfassungguilib/CMakeLists.txt
+++ b/zeiterfassungguilib/CMakeLists.txt
@@ -23,10 +23,6 @@ set(SOURCES
dialogs/settingsdialog.cpp
)
-set(RESOURCES
- zeiterfassungguilib_resources.qrc
-)
-
set(FORMS
mainwindow.ui
dialogs/authenticationdialog.ui
@@ -34,7 +30,20 @@ set(FORMS
dialogs/settingsdialog.ui
)
-add_library(zeiterfassungguilib SHARED ${HEADERS} ${SOURCES} ${RESOURCES} ${FORMS})
+set(RESOURCES
+ zeiterfassungguilib_resources.qrc
+)
+
+set(TRANSLATIONS
+ translations/zeiterfassungguilib_en.ts
+ translations/zeiterfassungguilib_de.ts
+)
+
+set_source_files_properties(${TRANSLATIONS} PROPERTIES OUTPUT_LOCATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/translations)
+QT5_CREATE_TRANSLATION(TRANSLATIONS_C ${TRANSLATIONS} ${HEADERS} ${SOURCES} ${FORMS} OPTIONS -no-obsolete)
+#QT5_ADD_TRANSLATION(TRANSLATIONS_C ${TRANSLATIONS})
+
+add_library(zeiterfassungguilib SHARED ${HEADERS} ${SOURCES} ${FORMS} ${RESOURCES} ${TRANSLATIONS_C})
target_compile_definitions(zeiterfassungguilib PRIVATE ZEITERFASSUNGGUILIB_LIBRARY)
diff --git a/zeiterfassungguilib/translations/zeiterfassungguilib_de.ts b/zeiterfassungguilib/translations/zeiterfassungguilib_de.ts
index 626b154..34ebc7b 100644
--- a/zeiterfassungguilib/translations/zeiterfassungguilib_de.ts
+++ b/zeiterfassungguilib/translations/zeiterfassungguilib_de.ts
@@ -52,144 +52,154 @@
MainWindow
-
+
+ Previous week
+
+
+
+
Previous day
Vorheriger Tag
-
+
Next day
Nächster Tag
-
+
+ Next week
+
+
+
+
Now
Jetzt
-
-
-
+
+
+
Start
Kommen
-
+
End
Gehen
-
+
&File
&Datei
-
+
&About
&Über
-
+
&View
&Ansicht
-
+
&Tools
&Werkzeuge
-
+
&Quit
&Beenden
-
+
About &Me
Über &mich
-
+
About &zeiterfassung
Über &zeiterfassung
-
+
About &Qt
Über &Qt
-
+
&Today
&Heute
-
+
&Refresh everything
Alles &neu laden
-
+
&Settings
&Einstellungen
-
+
Help
Hilfe
-
+
Zeiterfassung - %0 (%1)
Zeiterfassung - %0 (%1)
-
+
Subproject
Subprojekt
-
+
Workpackage
Arbeitspaket
-
+
Text
Text
-
-
+
+
Could not load bookings!
Konnte Buchungen nicht laden!
-
-
+
+
Could not create booking!
Konnte Buchung nicht erstellen!
-
-
+
+
Could not edit time assignment!
Konnte Kontierung nicht bearbeiten!
-
-
+
+
%0 (%1)
%0 (%1)
-
+
Could not create time assignment!
Konnte Kontierung nicht erstellen!
-
-
+
+
Switch
Wechseln
@@ -203,70 +213,86 @@
Einstellungen
-
+
Language:
Sprache:
-
+
Theme:
Aussehen:
-
+
English
Englisch
-
+
German
Deutsch
-
-
-
+
+
+
+
Invalid settings!
Ungültige Einstellungen!
-
+
Unknown language!
Unbekannte Sprache!
-
+
Default
Standard
-
+
Unknown theme!
Unbekanntes Aussehen!
-
+
Please fill all options with valid values!
Bitte füllen Sie alle Felder mit gültigen Werten!
-
-
+
+
Could not load theme!
Konnte Aussehen nicht laden!
-
+
Theme file does not exist!
Aussehen-Datei existiert nicht!
-
+
+ Could not save settings!
+
+
+
+
+ Could not load settings!
+
+
+
+
+ Make sure you have writing permissions!
+
+
+
+
Restart required!
Neustart erforderlich!
-
+
To apply the new settings a restart is required!
Um die neuen Einstellungen zu übernehmen, ist ein Neustart erforderlich!
@@ -274,168 +300,106 @@
StripsWidget
-
-
-
+
+
+
Loading...
Lade...
-
+
Missing booking!
Kontierung fehlend!
-
+
Expected start booking, instead got type %0
Booking ID: %1
-
-
+
+
%0: %1
%0: %1
-
+
Break
Pause
-
-
-
-
+
+
+
+
%0h
%0h
-
-
-
-
-
-
- HH:mm
- HH:mm
-
-
-
+
Missing time assignment!
Kontierung fehlend!
-
-
-
- HH:mm:ss
- HH:mm:ss
-
-
-
-
+
+
There is another booking after an unfinished time assignment.
Booking ID: %0
Time assignment ID: %1
-
-
-
+
+
+
There is another time assignment after an unfinished time assignment.
Time assignment ID: %0
Time assignment ID: %1
-
+
The last time assignment is finished without end booking
Time assignment ID: %0
-
+
Expected end booking, instead got type %0
Booking ID: %1
-
+
Missing time assignment! Missing: %0
Kontierung fehlend! %0 nicht kontiert
-
+
Assigned time
Kontierte Zeit
-
- dd.MM.yyyy
- dd.MM.yyyy
-
-
-
- %0 (%1)
- %0 (%1)
-
-
-
+
Time assignment time longer than booking time!
Time assignment: %0
Booking: %1
-
+
Strip rendering aborted due error.
Your bookings and time assignments for this day are in an illegal state!
-
- Monday
- Montag
-
-
-
- Tuesday
- Dienstag
-
-
-
- Wednesday
- Mittwoch
-
-
-
- Thursday
- Donnerstag
-
-
-
- Friday
- Freitag
-
-
-
- Saturday
- Samstag
-
-
-
- Sunday
- Sonntag
-
-
-
+
Invalid
Ungültig
-
+
Open
Offen
diff --git a/zeiterfassungguilib/translations/zeiterfassungguilib_en.ts b/zeiterfassungguilib/translations/zeiterfassungguilib_en.ts
index b96835a..e34f5b1 100644
--- a/zeiterfassungguilib/translations/zeiterfassungguilib_en.ts
+++ b/zeiterfassungguilib/translations/zeiterfassungguilib_en.ts
@@ -52,144 +52,154 @@
MainWindow
-
+
+ Previous week
+
+
+
+
Previous day
-
+
Next day
-
+
+ Next week
+
+
+
+
Now
-
-
-
+
+
+
Start
-
+
End
-
+
&File
-
+
&About
-
+
&View
-
+
&Tools
-
+
&Quit
-
+
About &Me
-
+
About &zeiterfassung
-
+
About &Qt
-
+
&Today
-
+
&Refresh everything
-
+
&Settings
-
+
Help
-
+
Zeiterfassung - %0 (%1)
-
+
Subproject
-
+
Workpackage
-
+
Text
-
-
+
+
Could not load bookings!
-
-
+
+
Could not create booking!
-
+
Could not create time assignment!
-
-
+
+
Could not edit time assignment!
-
-
+
+
Switch
-
-
+
+
%0 (%1)
@@ -203,70 +213,86 @@
-
+
Language:
-
+
Theme:
-
+
English
-
+
German
-
-
-
+
+
+
+
Invalid settings!
-
+
Unknown language!
-
+
Default
-
+
Unknown theme!
-
+
Please fill all options with valid values!
-
-
+
+
Could not load theme!
-
+
Theme file does not exist!
-
+
+ Could not save settings!
+
+
+
+
+ Could not load settings!
+
+
+
+
+ Make sure you have writing permissions!
+
+
+
+
Restart required!
-
+
To apply the new settings a restart is required!
@@ -274,168 +300,106 @@
StripsWidget
-
-
-
+
+
+
Loading...
-
+
Missing booking!
-
+
Expected start booking, instead got type %0
Booking ID: %1
-
-
+
+
%0: %1
-
+
Break
-
-
-
-
+
+
+
+
%0h
-
-
-
-
-
-
- HH:mm
-
-
-
-
+
Missing time assignment!
-
-
-
- HH:mm:ss
-
-
-
-
-
+
+
There is another booking after an unfinished time assignment.
Booking ID: %0
Time assignment ID: %1
-
-
-
+
+
+
There is another time assignment after an unfinished time assignment.
Time assignment ID: %0
Time assignment ID: %1
-
+
The last time assignment is finished without end booking
Time assignment ID: %0
-
+
Expected end booking, instead got type %0
Booking ID: %1
-
+
Missing time assignment! Missing: %0
-
+
Time assignment time longer than booking time!
Time assignment: %0
Booking: %1
-
+
Assigned time
-
+
Strip rendering aborted due error.
Your bookings and time assignments for this day are in an illegal state!
-
- %0 (%1)
-
-
-
-
- Monday
-
-
-
-
- Tuesday
-
-
-
-
- Wednesday
-
-
-
-
- Thursday
-
-
-
-
- Friday
-
-
-
-
- Saturday
-
-
-
-
- Sunday
-
-
-
-
- dd.MM.yyyy
-
-
-
-
+
Invalid
-
+
Open
diff --git a/zeiterfassungnetworklib/CMakeLists.txt b/zeiterfassungnetworklib/CMakeLists.txt
index 200c15a..8556410 100644
--- a/zeiterfassungnetworklib/CMakeLists.txt
+++ b/zeiterfassungnetworklib/CMakeLists.txt
@@ -41,7 +41,16 @@ set(SOURCES
replies/zeiterfassungreply.cpp
)
-add_library(zeiterfassungnetworklib SHARED ${HEADERS} ${SOURCES})
+set(TRANSLATIONS
+ translations/zeiterfassungnetworklib_en.ts
+ translations/zeiterfassungnetworklib_de.ts
+)
+
+set_source_files_properties(${TRANSLATIONS} PROPERTIES OUTPUT_LOCATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/translations)
+QT5_CREATE_TRANSLATION(TRANSLATIONS_C ${TRANSLATIONS} ${HEADERS} ${SOURCES} OPTIONS -no-obsolete)
+#QT5_ADD_TRANSLATION(TRANSLATIONS_C ${TRANSLATIONS})
+
+add_library(zeiterfassungnetworklib SHARED ${HEADERS} ${SOURCES} ${TRANSLATIONS_C})
target_compile_definitions(zeiterfassungnetworklib PRIVATE ZEITERFASSUNGNETWORKLIB_LIBRARY)
diff --git a/zeiterfassungnetworklib/translations/zeiterfassungnetworklib_de.ts b/zeiterfassungnetworklib/translations/zeiterfassungnetworklib_de.ts
index 1552582..0908673 100644
--- a/zeiterfassungnetworklib/translations/zeiterfassungnetworklib_de.ts
+++ b/zeiterfassungnetworklib/translations/zeiterfassungnetworklib_de.ts
@@ -1,4 +1,260 @@
+
+ CreateBookingReply
+
+ Request error occured: %0
+
+
+
+
+ CreateTimeAssignmentReply
+
+ Request error occured: %0
+
+
+
+ Parsing JSON failed: %0
+
+
+
+ JSON document is not an object!
+
+
+
+ JSON does not contain bookingNr!
+
+
+
+
+ DeleteBookingReply
+
+ Request error occured: %0
+
+
+
+
+ DeleteTimeAssignmentReply
+
+ Request error occured: %0
+
+
+
+
+ GetAbsencesReply
+
+ Request error occured: %0
+
+
+
+ Parsing JSON failed: %0
+
+
+
+ JSON document is not an array!
+
+
+
+
+ GetBookingsReply
+
+ Request error occured: %0
+
+
+
+ Parsing JSON failed: %0
+
+
+
+ JSON document is not an array!
+
+
+
+
+ GetDayinfoReply
+
+ Request error occured: %0
+
+
+
+ Parsing JSON failed: %0
+
+
+
+ JSON document is not an array!
+
+
+
+
+ GetPresenceStatusReply
+
+ Request error occured: %0
+
+
+
+ Parsing JSON failed: %0
+
+
+
+ JSON document is not an array!
+
+
+
+
+ GetProjectsReply
+
+ Request error occured: %0
+
+
+
+ Parsing JSON failed: %0
+
+
+
+ JSON document is not an object!
+
+
+
+ JSON does not contain elements!
+
+
+
+ elements is not an array!
+
+
+
+
+ GetReportReply
+
+ Request error occured: %0
+
+
+
+
+ GetTimeAssignmentsReply
+
+ Request error occured: %0
+
+
+
+ Parsing JSON failed: %0
+
+
+
+ JSON document is not an array!
+
+
+
+
+ GetUserInfoReply
+
+ Request 0 error occured: %0
+
+
+
+ Parsing JSON 0 failed: %0
+
+
+
+ JSON document 0 is not an object!
+
+
+
+ JSON 0 does not contain evoAppsUser!
+
+
+
+ evoAppsUser is not an object!
+
+
+
+ Request 1 error occured: %0
+
+
+
+ Parsing JSON 1 failed: %0
+
+
+
+ JSON document 1 is not an array!
+
+
+
+ JSON array 1 is empty!
+
+
+
+ JSON array value is not an object!
+
+
+
+
+ LoginPageReply
+
+ Request error occured: %0
+
+
+
+ Could not find necessary keywords in login page!
+
+
+
+
+ LoginReply
+
+ Request error occured: %0
+
+
+
+ Response did not contain a Location header.
+
+
+
+ Authentication failure. Please check username and password.
+
+
+
+ An unknown authentication failure occured. Redirected to: %0
+
+
+
+
+ UpdateBookingReply
+
+ Request error occured: %0
+
+
+
+ Parsing JSON failed: %0
+
+
+
+ JSON document is not an object!
+
+
+
+ JSON does not contain bookingNr!
+
+
+
+
+ UpdateTimeAssignmentReply
+
+ Request error occured: %0
+
+
+
+ Parsing JSON failed: %0
+
+
+
+ JSON document is not an object!
+
+
+
+ JSON does not contain bookingNr!
+
+
+
diff --git a/zeiterfassungnetworklib/translations/zeiterfassungnetworklib_en.ts b/zeiterfassungnetworklib/translations/zeiterfassungnetworklib_en.ts
index bc6d6e7..a9a2c0a 100644
--- a/zeiterfassungnetworklib/translations/zeiterfassungnetworklib_en.ts
+++ b/zeiterfassungnetworklib/translations/zeiterfassungnetworklib_en.ts
@@ -1,4 +1,260 @@
+
+ CreateBookingReply
+
+ Request error occured: %0
+
+
+
+
+ CreateTimeAssignmentReply
+
+ Request error occured: %0
+
+
+
+ Parsing JSON failed: %0
+
+
+
+ JSON document is not an object!
+
+
+
+ JSON does not contain bookingNr!
+
+
+
+
+ DeleteBookingReply
+
+ Request error occured: %0
+
+
+
+
+ DeleteTimeAssignmentReply
+
+ Request error occured: %0
+
+
+
+
+ GetAbsencesReply
+
+ Request error occured: %0
+
+
+
+ Parsing JSON failed: %0
+
+
+
+ JSON document is not an array!
+
+
+
+
+ GetBookingsReply
+
+ Request error occured: %0
+
+
+
+ Parsing JSON failed: %0
+
+
+
+ JSON document is not an array!
+
+
+
+
+ GetDayinfoReply
+
+ Request error occured: %0
+
+
+
+ Parsing JSON failed: %0
+
+
+
+ JSON document is not an array!
+
+
+
+
+ GetPresenceStatusReply
+
+ Request error occured: %0
+
+
+
+ Parsing JSON failed: %0
+
+
+
+ JSON document is not an array!
+
+
+
+
+ GetProjectsReply
+
+ Request error occured: %0
+
+
+
+ Parsing JSON failed: %0
+
+
+
+ JSON document is not an object!
+
+
+
+ JSON does not contain elements!
+
+
+
+ elements is not an array!
+
+
+
+
+ GetReportReply
+
+ Request error occured: %0
+
+
+
+
+ GetTimeAssignmentsReply
+
+ Request error occured: %0
+
+
+
+ Parsing JSON failed: %0
+
+
+
+ JSON document is not an array!
+
+
+
+
+ GetUserInfoReply
+
+ Request 0 error occured: %0
+
+
+
+ Parsing JSON 0 failed: %0
+
+
+
+ JSON document 0 is not an object!
+
+
+
+ JSON 0 does not contain evoAppsUser!
+
+
+
+ evoAppsUser is not an object!
+
+
+
+ Request 1 error occured: %0
+
+
+
+ Parsing JSON 1 failed: %0
+
+
+
+ JSON document 1 is not an array!
+
+
+
+ JSON array 1 is empty!
+
+
+
+ JSON array value is not an object!
+
+
+
+
+ LoginPageReply
+
+ Request error occured: %0
+
+
+
+ Could not find necessary keywords in login page!
+
+
+
+
+ LoginReply
+
+ Request error occured: %0
+
+
+
+ Response did not contain a Location header.
+
+
+
+ Authentication failure. Please check username and password.
+
+
+
+ An unknown authentication failure occured. Redirected to: %0
+
+
+
+
+ UpdateBookingReply
+
+ Request error occured: %0
+
+
+
+ Parsing JSON failed: %0
+
+
+
+ JSON document is not an object!
+
+
+
+ JSON does not contain bookingNr!
+
+
+
+
+ UpdateTimeAssignmentReply
+
+ Request error occured: %0
+
+
+
+ Parsing JSON failed: %0
+
+
+
+ JSON document is not an object!
+
+
+
+ JSON does not contain bookingNr!
+
+
+