iobroker.time-tracker 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +386 -0
- package/admin/i18n/de.json +34 -0
- package/admin/i18n/en.json +1 -0
- package/admin/i18n/es.json +34 -0
- package/admin/i18n/fr.json +34 -0
- package/admin/i18n/it.json +34 -0
- package/admin/i18n/nl.json +34 -0
- package/admin/i18n/pl.json +34 -0
- package/admin/i18n/pt.json +34 -0
- package/admin/i18n/ru.json +34 -0
- package/admin/i18n/uk.json +34 -0
- package/admin/i18n/zh-cn.json +34 -0
- package/admin/jsonConfig.json +266 -0
- package/admin/time-tracker.png +0 -0
- package/build/lib/adapter/automation.js +100 -0
- package/build/lib/adapter/automation.js.map +7 -0
- package/build/lib/adapter/commands.js +160 -0
- package/build/lib/adapter/commands.js.map +7 -0
- package/build/lib/adapter/messages.js +207 -0
- package/build/lib/adapter/messages.js.map +7 -0
- package/build/lib/adapter/presence.js +129 -0
- package/build/lib/adapter/presence.js.map +7 -0
- package/build/lib/adapter/states.js +330 -0
- package/build/lib/adapter/states.js.map +7 -0
- package/build/lib/adapter/triggers.js +92 -0
- package/build/lib/adapter/triggers.js.map +7 -0
- package/build/lib/db/database.js +96 -0
- package/build/lib/db/database.js.map +7 -0
- package/build/lib/db/migrations.js +603 -0
- package/build/lib/db/migrations.js.map +7 -0
- package/build/lib/db/repositories/absences.js +432 -0
- package/build/lib/db/repositories/absences.js.map +7 -0
- package/build/lib/db/repositories/audit.js +90 -0
- package/build/lib/db/repositories/audit.js.map +7 -0
- package/build/lib/db/repositories/automations.js +326 -0
- package/build/lib/db/repositories/automations.js.map +7 -0
- package/build/lib/db/repositories/entries.js +335 -0
- package/build/lib/db/repositories/entries.js.map +7 -0
- package/build/lib/db/repositories/holidays.js +156 -0
- package/build/lib/db/repositories/holidays.js.map +7 -0
- package/build/lib/db/repositories/payouts.js +221 -0
- package/build/lib/db/repositories/payouts.js.map +7 -0
- package/build/lib/db/repositories/rfid.js +264 -0
- package/build/lib/db/repositories/rfid.js.map +7 -0
- package/build/lib/db/repositories/rules.js +356 -0
- package/build/lib/db/repositories/rules.js.map +7 -0
- package/build/lib/db/repositories/settings.js +91 -0
- package/build/lib/db/repositories/settings.js.map +7 -0
- package/build/lib/db/repositories/terminals.js +243 -0
- package/build/lib/db/repositories/terminals.js.map +7 -0
- package/build/lib/db/repositories/triggers.js +240 -0
- package/build/lib/db/repositories/triggers.js.map +7 -0
- package/build/lib/db/repositories/users.js +491 -0
- package/build/lib/db/repositories/users.js.map +7 -0
- package/build/lib/db/seed.js +180 -0
- package/build/lib/db/seed.js.map +7 -0
- package/build/lib/domain/avatar.js +63 -0
- package/build/lib/domain/avatar.js.map +7 -0
- package/build/lib/domain/breaks.js +70 -0
- package/build/lib/domain/breaks.js.map +7 -0
- package/build/lib/domain/calculation.js +150 -0
- package/build/lib/domain/calculation.js.map +7 -0
- package/build/lib/domain/holidays.js +113 -0
- package/build/lib/domain/holidays.js.map +7 -0
- package/build/lib/domain/punch.js +99 -0
- package/build/lib/domain/punch.js.map +7 -0
- package/build/lib/domain/target.js +89 -0
- package/build/lib/domain/target.js.map +7 -0
- package/build/lib/errors.js +56 -0
- package/build/lib/errors.js.map +7 -0
- package/build/lib/reports/labels.js +358 -0
- package/build/lib/reports/labels.js.map +7 -0
- package/build/lib/reports/pdf.js +308 -0
- package/build/lib/reports/pdf.js.map +7 -0
- package/build/lib/reports/types.js +32 -0
- package/build/lib/reports/types.js.map +7 -0
- package/build/lib/reports/xls.js +211 -0
- package/build/lib/reports/xls.js.map +7 -0
- package/build/lib/services/aggregation.js +495 -0
- package/build/lib/services/aggregation.js.map +7 -0
- package/build/lib/services/auth.js +381 -0
- package/build/lib/services/auth.js.map +7 -0
- package/build/lib/services/backup.js +372 -0
- package/build/lib/services/backup.js.map +7 -0
- package/build/lib/services/closing.js +106 -0
- package/build/lib/services/closing.js.map +7 -0
- package/build/lib/services/sessionSecret.js +100 -0
- package/build/lib/services/sessionSecret.js.map +7 -0
- package/build/lib/services/sync.js +278 -0
- package/build/lib/services/sync.js.map +7 -0
- package/build/lib/util/time.js +125 -0
- package/build/lib/util/time.js.map +7 -0
- package/build/lib/web/api.js +2589 -0
- package/build/lib/web/api.js.map +7 -0
- package/build/lib/web/cookies.js +80 -0
- package/build/lib/web/cookies.js.map +7 -0
- package/build/lib/web/events.js +50 -0
- package/build/lib/web/events.js.map +7 -0
- package/build/lib/web/pin-guard.js +86 -0
- package/build/lib/web/pin-guard.js.map +7 -0
- package/build/lib/web/problem.js +129 -0
- package/build/lib/web/problem.js.map +7 -0
- package/build/lib/web/rate-limit.js +65 -0
- package/build/lib/web/rate-limit.js.map +7 -0
- package/build/lib/web/router.js +274 -0
- package/build/lib/web/router.js.map +7 -0
- package/build/lib/web/server.js +189 -0
- package/build/lib/web/server.js.map +7 -0
- package/build/lib/web/static.js +151 -0
- package/build/lib/web/static.js.map +7 -0
- package/build/lib/web/stream.js +135 -0
- package/build/lib/web/stream.js.map +7 -0
- package/build/main.js +986 -0
- package/build/main.js.map +7 -0
- package/io-package.json +221 -0
- package/package.json +131 -0
- package/src-pwa/src/i18n/de.json +359 -0
- package/src-pwa/src/i18n/en.json +359 -0
- package/src-pwa/src/i18n/es.json +359 -0
- package/src-pwa/src/i18n/fr.json +359 -0
- package/src-pwa/src/i18n/index.ts +96 -0
- package/src-pwa/src/i18n/it.json +359 -0
- package/src-pwa/src/i18n/nl.json +359 -0
- package/src-pwa/src/i18n/pl.json +359 -0
- package/src-pwa/src/i18n/pt.json +359 -0
- package/src-pwa/src/i18n/ru.json +359 -0
- package/src-pwa/src/i18n/uk.json +359 -0
- package/src-pwa/src/i18n/zh-cn.json +359 -0
- package/www/assets/index-QI3wrEvW.js +119 -0
- package/www/assets/index-QI3wrEvW.js.map +1 -0
- package/www/assets/workbox-window.prod.es5-Bd17z0YL.js +3 -0
- package/www/assets/workbox-window.prod.es5-Bd17z0YL.js.map +1 -0
- package/www/favicon.svg +16 -0
- package/www/icon-192.png +0 -0
- package/www/icon-512.png +0 -0
- package/www/index.html +38 -0
- package/www/manifest.webmanifest +1 -0
- package/www/person.png +0 -0
- package/www/sw.js +3 -0
- package/www/sw.js.map +1 -0
- package/www/workbox-9c191d2f.js +3 -0
- package/www/workbox-9c191d2f.js.map +1 -0
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
{
|
|
2
|
+
"app.title": "Zeiterfassung",
|
|
3
|
+
"app.offline": "Offline – Stempel werden zwischengespeichert",
|
|
4
|
+
"app.online": "Verbunden",
|
|
5
|
+
"nav.dashboard": "Stempeln",
|
|
6
|
+
"nav.month": "Monat",
|
|
7
|
+
"nav.reports": "Berichte",
|
|
8
|
+
"nav.absences": "Abwesenheiten",
|
|
9
|
+
"nav.sync": "Abgleich",
|
|
10
|
+
"nav.profile": "Profil",
|
|
11
|
+
"nav.logout": "Abmelden",
|
|
12
|
+
"nav.menu": "Menü",
|
|
13
|
+
"login.title": "Anmelden",
|
|
14
|
+
"login.login": "Benutzername",
|
|
15
|
+
"login.password": "Passwort",
|
|
16
|
+
"login.submit": "Anmelden",
|
|
17
|
+
"login.failed": "Anmeldung fehlgeschlagen",
|
|
18
|
+
"error.invalid_credentials": "Benutzername oder Passwort ist nicht korrekt.",
|
|
19
|
+
"error.locked_out": "Zu viele Fehlversuche. Bitte später erneut versuchen.",
|
|
20
|
+
"error.network_error": "Der Server ist nicht erreichbar.",
|
|
21
|
+
"error.permission_denied": "Dafür fehlt die Berechtigung.",
|
|
22
|
+
"error.no_session": "Die Sitzung ist abgelaufen, bitte neu anmelden.",
|
|
23
|
+
"error.session_expired": "Die Sitzung ist abgelaufen, bitte neu anmelden.",
|
|
24
|
+
"error.csrf_rejected": "Die Anfrage wurde aus Sicherheitsgründen abgelehnt, bitte erneut versuchen.",
|
|
25
|
+
"error.user_inactive": "Dieses Konto ist deaktiviert.",
|
|
26
|
+
"error.not_found": "Nicht gefunden.",
|
|
27
|
+
"error.bad_request": "Die Eingabe wurde nicht akzeptiert.",
|
|
28
|
+
"error.revision_conflict": "Der Stempel wurde zwischenzeitlich geändert, bitte neu laden.",
|
|
29
|
+
"error.conflict": "Die Änderung steht im Konflikt mit vorhandenen Daten.",
|
|
30
|
+
"error.report_font_missing": "Für diesen Bericht wird eine Unicode-Schrift benötigt (report_font_path).",
|
|
31
|
+
"error.unknown_error": "Unerwarteter Fehler.",
|
|
32
|
+
"punch.now": "Stempeln",
|
|
33
|
+
"punch.in": "Einstempeln",
|
|
34
|
+
"punch.out": "Ausstempeln",
|
|
35
|
+
"punch.quick": "Schnellstempeln",
|
|
36
|
+
"punch.open": "Eingestempelt seit {{time}}",
|
|
37
|
+
"punch.closed": "Nicht eingestempelt",
|
|
38
|
+
"punch.last": "Letzter Stempel {{time}}",
|
|
39
|
+
"punch.worked": "Heute gearbeitet",
|
|
40
|
+
"punch.target": "Soll heute",
|
|
41
|
+
"punch.balance": "Saldo heute",
|
|
42
|
+
"punch.queued": "Offline gespeichert – wird automatisch gesendet",
|
|
43
|
+
"punch.sent": "Stempel gespeichert ({{time}})",
|
|
44
|
+
"punch.note": "Notiz",
|
|
45
|
+
"month.title": "Monat",
|
|
46
|
+
"month.previous": "Voriger Monat",
|
|
47
|
+
"month.next": "Nächster Monat",
|
|
48
|
+
"month.worked": "Gearbeitet",
|
|
49
|
+
"month.target": "Soll",
|
|
50
|
+
"month.balance": "Saldo",
|
|
51
|
+
"error.edit_window_closed": "Außerhalb des Bearbeitungsfensters",
|
|
52
|
+
"admin.profile.pauseRules": "Eigene Pausenregeln",
|
|
53
|
+
"admin.profile.pauseRulesHint": "Regeln nur für diesen Mitarbeiter: sie ersetzen die Firmenregel mit demselben „ab Minuten“. Ohne eigene Regeln gilt die Firmenstaffel.",
|
|
54
|
+
"report.csv": "Rohdaten (CSV)",
|
|
55
|
+
"month.edit": "Korrigieren",
|
|
56
|
+
"month.editTitle": "Stempel korrigieren · {{date}}",
|
|
57
|
+
"month.editHint": "Nur innerhalb des Bearbeitungsfensters möglich - ältere Tage ändert die Verwaltung.",
|
|
58
|
+
"month.time": "Zeit",
|
|
59
|
+
"month.direction": "Richtung",
|
|
60
|
+
"month.directionIn": "Kommen",
|
|
61
|
+
"month.directionOut": "Gehen",
|
|
62
|
+
"month.addPunch": "Stempel hinzufügen",
|
|
63
|
+
"month.pause": "Pause",
|
|
64
|
+
"month.paidBreak": "davon bezahlt",
|
|
65
|
+
"month.open": "offen",
|
|
66
|
+
"month.holiday": "Feiertag",
|
|
67
|
+
"month.absence": "Abwesenheit",
|
|
68
|
+
"month.empty": "Keine Tage in diesem Monat.",
|
|
69
|
+
"month.months": "Monate des Jahres",
|
|
70
|
+
"report.xls": "Excel",
|
|
71
|
+
"report.pdf": "PDF",
|
|
72
|
+
"report.failed": "Der Nachweis konnte nicht erstellt werden.",
|
|
73
|
+
"reports.title": "Berichte",
|
|
74
|
+
"reports.year": "Jahr",
|
|
75
|
+
"reports.yearTotals": "Jahressumme",
|
|
76
|
+
"reports.monthTotals": "Monatssumme",
|
|
77
|
+
"reports.overtime": "Überstunden",
|
|
78
|
+
"reports.vacation": "Ferien (bezogen / Anspruch)",
|
|
79
|
+
"reports.paidOut": "Ausbezahlt: {{minutes}}",
|
|
80
|
+
"reports.empty": "Keine Daten für diesen Zeitraum.",
|
|
81
|
+
"absences.title": "Abwesenheiten",
|
|
82
|
+
"absences.type": "Art",
|
|
83
|
+
"absences.from": "Von",
|
|
84
|
+
"absences.to": "Bis",
|
|
85
|
+
"absences.status": "Status",
|
|
86
|
+
"absences.portion": "Tagesanteil",
|
|
87
|
+
"absences.typeHint": "Kürzel der Abwesenheitsart, z. B. F für Ferien",
|
|
88
|
+
"absences.create": "Abwesenheit beantragen",
|
|
89
|
+
"absences.created": "Abwesenheit beantragt.",
|
|
90
|
+
"absences.empty": "Keine Abwesenheiten in diesem Jahr.",
|
|
91
|
+
"sync.title": "Abgleich",
|
|
92
|
+
"sync.pending": "{{count}} Stempel wartend",
|
|
93
|
+
"sync.none": "Nichts zu senden.",
|
|
94
|
+
"sync.flush": "Jetzt senden",
|
|
95
|
+
"sync.done": "Gesendet: {{accepted}}, Doppelte: {{duplicates}}, Konflikte: {{conflicts}}",
|
|
96
|
+
"sync.conflicts": "Offene Konflikte",
|
|
97
|
+
"sync.conflictOf": "{{date}} · {{time}}",
|
|
98
|
+
"sync.accept": "Serverwert behalten",
|
|
99
|
+
"sync.dismiss": "Verwerfen",
|
|
100
|
+
"sync.resolved": "Konflikt gelöst.",
|
|
101
|
+
"sync.empty": "Keine offenen Konflikte.",
|
|
102
|
+
"sync.permission": "Für das Lösen von Konflikten fehlt die Berechtigung.",
|
|
103
|
+
"profile.title": "Profil",
|
|
104
|
+
"profile.user": "Benutzer",
|
|
105
|
+
"profile.roles": "Berechtigungen",
|
|
106
|
+
"profile.language": "Sprache",
|
|
107
|
+
"profile.newPassword": "Neues Passwort",
|
|
108
|
+
"profile.changePassword": "Passwort ändern",
|
|
109
|
+
"profile.changed": "Passwort geändert, bitte neu anmelden.",
|
|
110
|
+
"admin.title": "Verwaltung",
|
|
111
|
+
"admin.forbidden": "Sie dürfen die Verwaltung nicht öffnen.",
|
|
112
|
+
"admin.users": "Mitarbeiter",
|
|
113
|
+
"admin.backup": "Sicherungen",
|
|
114
|
+
"admin.user.login": "Benutzername",
|
|
115
|
+
"admin.user.name": "Name",
|
|
116
|
+
"admin.user.password": "Passwort",
|
|
117
|
+
"admin.user.passwordHint": "Mindestens 8 Zeichen mit Gross- und Kleinschreibung und Ziffern.",
|
|
118
|
+
"admin.user.roles": "Rollen",
|
|
119
|
+
"admin.user.active": "Aktiv",
|
|
120
|
+
"admin.user.inactive": "Deaktiviert",
|
|
121
|
+
"admin.user.create": "Mitarbeiter anlegen",
|
|
122
|
+
"admin.user.pin": "PIN",
|
|
123
|
+
"admin.user.pinTitle": "Badge-PIN für {{name}}",
|
|
124
|
+
"admin.user.newPin": "Neue PIN",
|
|
125
|
+
"admin.user.pinHint": "4 bis 8 Ziffern für das Terminal",
|
|
126
|
+
"admin.user.empty": "Noch keine Mitarbeiter.",
|
|
127
|
+
"admin.backup.create": "Sicherung jetzt erstellen",
|
|
128
|
+
"admin.backup.upload": "Sicherung hochladen",
|
|
129
|
+
"admin.backup.uploadHint": "Eine heruntergeladene Sicherung (.sqlite) auswählen - sie wird geprüft und beim nächsten Start eingespielt.",
|
|
130
|
+
"admin.backup.delete": "Löschen",
|
|
131
|
+
"admin.backup.deleteTitle": "Sicherung löschen",
|
|
132
|
+
"admin.backup.deleteConfirm": "Die Sicherung {{name}} wird gelöscht. Das lässt sich nicht rückgängig machen.",
|
|
133
|
+
"admin.backup.empty": "Noch keine Sicherungen.",
|
|
134
|
+
"admin.backup.retention": "Sicherungen älter als {{days}} Tage werden entfernt, die neueste bleibt immer erhalten.",
|
|
135
|
+
"admin.backup.done": "Sicherung {{name}} geschrieben, {{removed}} alte Datei(en) entfernt.",
|
|
136
|
+
"common.save": "Speichern",
|
|
137
|
+
"common.cancel": "Abbrechen",
|
|
138
|
+
"common.loading": "Lädt…",
|
|
139
|
+
"common.retry": "Erneut versuchen",
|
|
140
|
+
"common.close": "Schließen",
|
|
141
|
+
"common.refresh": "Aktualisieren",
|
|
142
|
+
"common.none": "–",
|
|
143
|
+
"terminal.title": "Terminal",
|
|
144
|
+
"terminal.deviceToken": "Geräte-Token",
|
|
145
|
+
"terminal.connect": "Verbinden",
|
|
146
|
+
"terminal.badge": "Ausweis",
|
|
147
|
+
"terminal.noPin": "Auf diesem Terminal ist keine PIN nötig.",
|
|
148
|
+
"terminal.pin": "PIN",
|
|
149
|
+
"terminal.select": "Namen auswählen",
|
|
150
|
+
"terminal.disabled": "Das Terminal ist in den Adapter-Einstellungen ausgeschaltet.",
|
|
151
|
+
"admin.terminals": "Terminals",
|
|
152
|
+
"admin.terminal.name": "Name",
|
|
153
|
+
"admin.terminal.location": "Standort",
|
|
154
|
+
"admin.terminal.pinRequired": "Mitarbeiter brauchen ihre PIN",
|
|
155
|
+
"admin.terminal.create": "Terminal anlegen",
|
|
156
|
+
"admin.terminal.tokenOnce": "Geräte-Token jetzt kopieren — er wird nur als Hash gespeichert und nur einmal angezeigt:",
|
|
157
|
+
"admin.terminal.url": "Diese Adresse am Kiosk-Gerät öffnen:",
|
|
158
|
+
"admin.terminal.revoke": "Widerrufen",
|
|
159
|
+
"admin.terminal.revoked": "widerrufen",
|
|
160
|
+
"admin.terminal.users": "Mitarbeiter",
|
|
161
|
+
"admin.terminal.usersHint": "Nichts auswählen zeigt alle Mitarbeiter auf diesem Terminal.",
|
|
162
|
+
"admin.terminal.usersAll": "alle Mitarbeiter",
|
|
163
|
+
"admin.terminal.empty": "Noch kein Terminal angelegt.",
|
|
164
|
+
"admin.terminal.confirmRevoke": "„{{name}}“ widerrufen? Der Geräte-Token funktioniert sofort nicht mehr.",
|
|
165
|
+
"admin.settings": "Einstellungen",
|
|
166
|
+
"admin.settings.fontPath": "Unicode-Schriftdatei für PDF-Ausweise (.ttf/.otf)",
|
|
167
|
+
"admin.user.profile": "Arbeitsprofil",
|
|
168
|
+
"admin.user.profileTitle": "Arbeitsprofil · {{name}}",
|
|
169
|
+
"admin.profile.percent": "Beschäftigungsgrad (%)",
|
|
170
|
+
"admin.profile.weeklyHours": "Wochenstunden bei 100 %",
|
|
171
|
+
"admin.profile.workdays": "Arbeitstage",
|
|
172
|
+
"admin.profile.overtimeModel": "Überstundenmodell",
|
|
173
|
+
"admin.profile.model.monthly": "Monatlich",
|
|
174
|
+
"admin.profile.model.yearly": "Jährlich",
|
|
175
|
+
"admin.profile.model.cumulative": "Fortlaufend",
|
|
176
|
+
"admin.profile.vacationPerYear": "Ferientage pro Jahr",
|
|
177
|
+
"admin.profile.vacationCarryover": "Ferien-Übertrag (Tage)",
|
|
178
|
+
"admin.profile.overtimeCarryover": "Überstunden-Übertrag (Stunden)",
|
|
179
|
+
"admin.profile.vorholzeitPerYear": "Vorholzeit pro Jahr (Stunden)",
|
|
180
|
+
"admin.profile.pausePaid": "Bezahlte Pausenminuten pro Tag",
|
|
181
|
+
"admin.profile.pausePaidHint": "So viele Minuten der Pause zählen als Arbeitszeit (0 = die Pause wird nicht bezahlt).",
|
|
182
|
+
"admin.settings.pauseMode": "Pausen",
|
|
183
|
+
"admin.settings.pauseModeTitle": "Pausenregel",
|
|
184
|
+
"admin.settings.pauseModeHint": "Wie die Pause eines Tages bestimmt wird.",
|
|
185
|
+
"admin.settings.pauseRules": "Pausenstaffel",
|
|
186
|
+
"admin.settings.pauseRulesHint": "Gilt für Tage ohne gestempelte Pause: ab der angegebenen Blocklänge (erster bis letzter Stempel eines Blocks) werden die Minuten abgezogen.",
|
|
187
|
+
"admin.settings.pauseFrom": "ab Minuten",
|
|
188
|
+
"admin.settings.pauseTo": "bis Minuten (leer = ohne Ende)",
|
|
189
|
+
"admin.settings.pauseMinutes": "Pause Minuten",
|
|
190
|
+
"admin.settings.pauseActive": "Regel aktiv",
|
|
191
|
+
"admin.settings.pauseAdd": "Regel hinzufügen",
|
|
192
|
+
"admin.settings.pauseSave": "Pausenstaffel speichern",
|
|
193
|
+
"admin.settings.pauseMode.auto": "Gestempelte Pause, sonst Staffel",
|
|
194
|
+
"admin.settings.pauseMode.punched": "Nur gestempelte Pausen",
|
|
195
|
+
"admin.settings.pauseMode.staffel": "Nur Pausenstaffel",
|
|
196
|
+
"admin.settings.fontPathHint": "Nötig für Russisch, Ukrainisch und Chinesisch; leer = eingebaute Schriften, die nur Latin-1 abdecken.",
|
|
197
|
+
"admin.settings.advanced": "Alle Instanzeinstellungen (technische Namen, 1/0 für Schalter)",
|
|
198
|
+
"admin.settings.setting.edit_window_days": "Änderungsfenster (Tage)",
|
|
199
|
+
"admin.settings.setting.quick_round_minutes": "Schnellrundung (Min.)",
|
|
200
|
+
"admin.settings.setting.absence_calc_until_today": "Abwesenheit bis heute",
|
|
201
|
+
"admin.settings.setting.absence_deduct_worktime": "Abwesenheit abziehen",
|
|
202
|
+
"admin.settings.setting.print_limit_days": "Druckgrenze (Tage)",
|
|
203
|
+
"admin.settings.setting.holiday_country": "Feiertagsland",
|
|
204
|
+
"admin.settings.setting.default_language": "Standardsprache",
|
|
205
|
+
"admin.settings.setting.session_ttl_minutes": "Sitzungsdauer (Min.)",
|
|
206
|
+
"admin.settings.setting.backup_retention_days": "Sicherungen (Tage)",
|
|
207
|
+
"admin.settings.setting.attendance_list_visible": "Anwesenheitsliste",
|
|
208
|
+
"admin.settings.setting.timezone": "Zeitzone",
|
|
209
|
+
"admin.settings.saved": "Einstellungen gespeichert.",
|
|
210
|
+
"admin.holidays": "Feiertage",
|
|
211
|
+
"admin.holiday.date": "Datum (JJJJ-MM-TT)",
|
|
212
|
+
"admin.holiday.name": "Bezeichnung",
|
|
213
|
+
"holiday.newYear": "Neujahr",
|
|
214
|
+
"holiday.epiphany": "Heilige Drei Könige",
|
|
215
|
+
"holiday.goodFriday": "Karfreitag",
|
|
216
|
+
"holiday.easterMonday": "Ostermontag",
|
|
217
|
+
"holiday.labourDay": "Tag der Arbeit",
|
|
218
|
+
"holiday.ascension": "Christi Himmelfahrt",
|
|
219
|
+
"holiday.whitMonday": "Pfingstmontag",
|
|
220
|
+
"holiday.corpusChristi": "Fronleichnam",
|
|
221
|
+
"holiday.nationalDay": "Nationalfeiertag",
|
|
222
|
+
"holiday.germanUnity": "Tag der Deutschen Einheit",
|
|
223
|
+
"holiday.assumption": "Mariä Himmelfahrt",
|
|
224
|
+
"holiday.allSaints": "Allerheiligen",
|
|
225
|
+
"holiday.immaculateConception": "Mariä Empfängnis",
|
|
226
|
+
"holiday.christmas": "Weihnachten",
|
|
227
|
+
"holiday.boxingDay": "Stefanitag",
|
|
228
|
+
"admin.holiday.add": "Feiertag hinzufügen",
|
|
229
|
+
"admin.holiday.year": "Jahr",
|
|
230
|
+
"admin.holiday.region": "Region (optional)",
|
|
231
|
+
"admin.holiday.empty": "Für dieses Jahr ist kein Feiertag erfasst.",
|
|
232
|
+
"admin.tags": "Ausweise (RFID/NFC)",
|
|
233
|
+
"admin.tag.label": "Bezeichnung",
|
|
234
|
+
"admin.tag.user": "Mitarbeiter",
|
|
235
|
+
"admin.tag.create": "Ausweis anlegen",
|
|
236
|
+
"admin.tag.linkOnce": "Diesen Link auf den Tag schreiben oder am Handy öffnen:",
|
|
237
|
+
"admin.tag.delete": "Löschen",
|
|
238
|
+
"admin.tag.active": "aktiv",
|
|
239
|
+
"admin.tag.expired": "abgelaufen",
|
|
240
|
+
"admin.tag.revoked": "widerrufen",
|
|
241
|
+
"admin.tag.lastUsed": "zuletzt benutzt",
|
|
242
|
+
"admin.tag.remove": "Endgültig entfernen",
|
|
243
|
+
"admin.tag.edit": "Bearbeiten",
|
|
244
|
+
"admin.tag.reissue": "Neuer Link",
|
|
245
|
+
"admin.tag.editTitle": "Ausweis bearbeiten",
|
|
246
|
+
"admin.tag.editHint": "Ein anderer Mitarbeiter oder eine neue Gültigkeit gibt einen neuen Link aus — der vorher ausgegebene Link funktioniert sofort nicht mehr.",
|
|
247
|
+
"admin.tag.validityDays": "Gültigkeit (Tage)",
|
|
248
|
+
"admin.tag.oldLinkDead": "Der vorher ausgegebene Link funktioniert nicht mehr.",
|
|
249
|
+
"admin.tag.qrAlt": "QR-Code des Ausweis-Links",
|
|
250
|
+
"admin.tag.empty": "Noch kein Ausweis angelegt.",
|
|
251
|
+
"nav.statistics": "Statistik",
|
|
252
|
+
"statistics.from": "Von",
|
|
253
|
+
"statistics.to": "Bis",
|
|
254
|
+
"statistics.employee": "Mitarbeiter",
|
|
255
|
+
"statistics.worked": "Gearbeitet",
|
|
256
|
+
"statistics.target": "Soll",
|
|
257
|
+
"statistics.balance": "Saldo",
|
|
258
|
+
"statistics.openDays": "Offene Tage",
|
|
259
|
+
"statistics.totals": "Alle Mitarbeiter",
|
|
260
|
+
"scan.title": "Ausweis",
|
|
261
|
+
"scan.done": "Für {{name}} gestempelt um {{time}}",
|
|
262
|
+
"scan.failed": "Der Ausweis konnte nicht verwendet werden: {{reason}}",
|
|
263
|
+
"presence.title": "Anwesenheit",
|
|
264
|
+
"presence.present": "Anwesend",
|
|
265
|
+
"presence.absent": "Abwesend",
|
|
266
|
+
"presence.tapPin": "PIN eingeben, um ein- oder auszustempeln",
|
|
267
|
+
"presence.cancel": "Abbrechen",
|
|
268
|
+
"presence.updated": "{{name}} ist jetzt {{state}}",
|
|
269
|
+
"presence.disabled": "Das Kiosk-Terminal ist in den Instanz-Einstellungen ausgeschaltet.",
|
|
270
|
+
"admin.user.photo": "Foto",
|
|
271
|
+
"admin.user.photoTitle": "Foto von {{name}}",
|
|
272
|
+
"admin.user.photoChoose": "Bild wählen",
|
|
273
|
+
"admin.user.photoRemove": "Bild entfernen",
|
|
274
|
+
"admin.user.photoHint": "PNG, JPEG, WEBP oder GIF bis 256 KB. Ohne Bild wird der Platzhalter angezeigt.",
|
|
275
|
+
"admin.corrections": "Zeitkorrektur",
|
|
276
|
+
"corrections.employee": "Mitarbeiter",
|
|
277
|
+
"corrections.previous": "Voriger Monat",
|
|
278
|
+
"corrections.next": "Nächster Monat",
|
|
279
|
+
"corrections.reason": "Begründung",
|
|
280
|
+
"corrections.reasonHint": "Wird im Protokoll (Audit-Log) festgehalten",
|
|
281
|
+
"corrections.add": "Stempel oder Tag nachtragen",
|
|
282
|
+
"corrections.addTitle": "Stempel nachtragen",
|
|
283
|
+
"corrections.addHint": "„Gehen“ leer lassen, wenn nur ein Stempel fehlt",
|
|
284
|
+
"corrections.editTitle": "Stempel ändern",
|
|
285
|
+
"corrections.remove": "Stempel löschen",
|
|
286
|
+
"corrections.date": "Datum",
|
|
287
|
+
"corrections.from": "Kommen",
|
|
288
|
+
"corrections.to": "Gehen",
|
|
289
|
+
"corrections.direction": "Richtung",
|
|
290
|
+
"corrections.note": "Notiz",
|
|
291
|
+
"corrections.empty": "Keine Stempel in diesem Monat",
|
|
292
|
+
"corrections.byAdmin": "durch die Verwaltung nachgetragen",
|
|
293
|
+
"corrections.history": "Verlauf",
|
|
294
|
+
"corrections.actor": "Von",
|
|
295
|
+
"corrections.actionCreate": "Nachgetragen",
|
|
296
|
+
"corrections.actionUpdate": "Geändert",
|
|
297
|
+
"corrections.actionDelete": "Gelöscht",
|
|
298
|
+
"keypad.backspace": "Löschen",
|
|
299
|
+
"admin.settings.branding": "Firmen-Branding",
|
|
300
|
+
"admin.settings.brandingHint": "Logo, Hintergrundbild und Hintergrundfarbe dieser Installation. Anmeldebildschirm und Kiosk zeigen sie ebenfalls.",
|
|
301
|
+
"admin.settings.brandLogo": "Logo wählen",
|
|
302
|
+
"admin.settings.brandBackground": "Hintergrund wählen",
|
|
303
|
+
"admin.brand.imageResized": "Für die Anzeige verkleinert ({{size}}).",
|
|
304
|
+
"admin.brand.imageTooLarge": "Das Bild ist auch verkleinert noch zu groß.",
|
|
305
|
+
"admin.brand.imageType": "Nur PNG, JPEG, WEBP oder GIF sind möglich.",
|
|
306
|
+
"admin.brand.imageUnreadable": "Das Bild konnte nicht gelesen werden.",
|
|
307
|
+
"admin.settings.brandColor": "Hintergrundfarbe",
|
|
308
|
+
"admin.settings.brandColorHint": "Hex-Wert wie #1a2b3c, leer für die Vorgabe",
|
|
309
|
+
"admin.settings.brandColorPresets": "Vorschläge",
|
|
310
|
+
"admin.settings.brandColorDefault": "Standard",
|
|
311
|
+
"admin.backup.download": "Herunterladen",
|
|
312
|
+
"admin.backup.restore": "Wiederherstellen",
|
|
313
|
+
"admin.backup.restoreTitle": "Sicherung wiederherstellen",
|
|
314
|
+
"admin.backup.restoreConfirm": "Die Sicherung {{name}} wird beim nächsten Start des Adapters eingespielt; die aktuelle Datenbank bleibt als Datei daneben erhalten. Die Instanz danach neu starten.",
|
|
315
|
+
"admin.backup.pendingHint": "{{name}} wird beim nächsten Start eingespielt ({{users}} Mitarbeiter, {{entries}} Stempel) - bitte die Instanz neu starten.",
|
|
316
|
+
"error.backup_invalid": "Diese Datei ist keine Sicherung dieses Adapters.",
|
|
317
|
+
"admin.settings.brandImageRemove": "Bild entfernen",
|
|
318
|
+
"admin.settings.brandColorDefaultHint": "Setzt Hintergrundfarbe und Hintergrundbild zurück",
|
|
319
|
+
"admin.triggers": "Aktionen (ioBroker)",
|
|
320
|
+
"admin.triggersHint": "Ein State aus einem anderen Adapter löst Stempeln oder die Anwesenheit aus — z. B. ein Fingerabdruck-Leser, ein Taster oder ein Türkontakt. Ausgelöst wird nur, wenn sich der Wert ändert. Als Wert kannst du `toggle` eintragen: dann löst jeder Wechsel aus (zum Beispiel an und wieder aus).",
|
|
321
|
+
"admin.trigger.label": "Bezeichnung",
|
|
322
|
+
"admin.trigger.sourceState": "Datenpunkt",
|
|
323
|
+
"admin.trigger.mode": "Auslöser",
|
|
324
|
+
"admin.trigger.modeCondition": "State hat den Wert",
|
|
325
|
+
"admin.trigger.modeUser": "Wert ist der Mitarbeiter",
|
|
326
|
+
"admin.trigger.condition": "Wert",
|
|
327
|
+
"admin.trigger.user": "Mitarbeiter",
|
|
328
|
+
"admin.trigger.action": "Aktion",
|
|
329
|
+
"admin.trigger.actionPunch": "Stempeln (ein oder aus)",
|
|
330
|
+
"admin.trigger.actionQuickPunch": "Stempeln mit Schnellrundung",
|
|
331
|
+
"admin.trigger.actionPresent": "Auf anwesend setzen",
|
|
332
|
+
"admin.trigger.actionAbsent": "Auf abwesend setzen",
|
|
333
|
+
"admin.trigger.cooldown": "Sperre (Sekunden)",
|
|
334
|
+
"admin.trigger.active": "Aktiv",
|
|
335
|
+
"admin.trigger.add": "Aktion hinzufügen",
|
|
336
|
+
"admin.trigger.lastFired": "Zuletzt ausgelöst",
|
|
337
|
+
"admin.trigger.empty": "Noch keine Aktion angelegt.",
|
|
338
|
+
"admin.trigger.conditionHint": "Wert oder `toggle` — dann löst jeder Wechsel aus",
|
|
339
|
+
"admin.settings.automations": "Regeln (Automatik)",
|
|
340
|
+
"admin.settings.automationsHint": "Was der Adapter von selbst tut: zur eingestellten Ortszeit ausstempeln, eine fehlende Ausstempelung melden oder nach zu langer Arbeit ohne Pause erinnern. Jede Regel läuft höchstens einmal pro Mitarbeiter und Tag.",
|
|
341
|
+
"admin.automation.kind": "Art",
|
|
342
|
+
"admin.automation.kindClockIn": "Automatisch einstempeln",
|
|
343
|
+
"admin.automation.kindClockOut": "Automatisch ausstempeln",
|
|
344
|
+
"admin.automation.kindMissingPunch": "Fehlende Ausstempelung melden",
|
|
345
|
+
"admin.automation.kindBreakReminder": "Pausenerinnerung",
|
|
346
|
+
"admin.automation.at": "Uhrzeit",
|
|
347
|
+
"admin.automation.atHint": "Ortszeit des Mitarbeiters",
|
|
348
|
+
"admin.automation.after": "Nach (Minuten)",
|
|
349
|
+
"admin.automation.user": "Mitarbeiter",
|
|
350
|
+
"admin.automation.allUsers": "alle Mitarbeiter",
|
|
351
|
+
"admin.automation.add": "Regel hinzufügen",
|
|
352
|
+
"admin.automation.empty": "Noch keine Regel angelegt.",
|
|
353
|
+
"admin.automation.runs": "Letzte Ausführungen",
|
|
354
|
+
"admin.automation.weekdays": "Wochentage",
|
|
355
|
+
"admin.automation.repeat": "Wiederholung",
|
|
356
|
+
"admin.automation.repeatDay": "einmal pro Tag",
|
|
357
|
+
"admin.automation.repeatWeek": "einmal pro Woche",
|
|
358
|
+
"admin.settings.setting.report_font_path": "PDF-Schriftdatei"
|
|
359
|
+
}
|