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.
Files changed (143) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +386 -0
  3. package/admin/i18n/de.json +34 -0
  4. package/admin/i18n/en.json +1 -0
  5. package/admin/i18n/es.json +34 -0
  6. package/admin/i18n/fr.json +34 -0
  7. package/admin/i18n/it.json +34 -0
  8. package/admin/i18n/nl.json +34 -0
  9. package/admin/i18n/pl.json +34 -0
  10. package/admin/i18n/pt.json +34 -0
  11. package/admin/i18n/ru.json +34 -0
  12. package/admin/i18n/uk.json +34 -0
  13. package/admin/i18n/zh-cn.json +34 -0
  14. package/admin/jsonConfig.json +266 -0
  15. package/admin/time-tracker.png +0 -0
  16. package/build/lib/adapter/automation.js +100 -0
  17. package/build/lib/adapter/automation.js.map +7 -0
  18. package/build/lib/adapter/commands.js +160 -0
  19. package/build/lib/adapter/commands.js.map +7 -0
  20. package/build/lib/adapter/messages.js +207 -0
  21. package/build/lib/adapter/messages.js.map +7 -0
  22. package/build/lib/adapter/presence.js +129 -0
  23. package/build/lib/adapter/presence.js.map +7 -0
  24. package/build/lib/adapter/states.js +330 -0
  25. package/build/lib/adapter/states.js.map +7 -0
  26. package/build/lib/adapter/triggers.js +92 -0
  27. package/build/lib/adapter/triggers.js.map +7 -0
  28. package/build/lib/db/database.js +96 -0
  29. package/build/lib/db/database.js.map +7 -0
  30. package/build/lib/db/migrations.js +603 -0
  31. package/build/lib/db/migrations.js.map +7 -0
  32. package/build/lib/db/repositories/absences.js +432 -0
  33. package/build/lib/db/repositories/absences.js.map +7 -0
  34. package/build/lib/db/repositories/audit.js +90 -0
  35. package/build/lib/db/repositories/audit.js.map +7 -0
  36. package/build/lib/db/repositories/automations.js +326 -0
  37. package/build/lib/db/repositories/automations.js.map +7 -0
  38. package/build/lib/db/repositories/entries.js +335 -0
  39. package/build/lib/db/repositories/entries.js.map +7 -0
  40. package/build/lib/db/repositories/holidays.js +156 -0
  41. package/build/lib/db/repositories/holidays.js.map +7 -0
  42. package/build/lib/db/repositories/payouts.js +221 -0
  43. package/build/lib/db/repositories/payouts.js.map +7 -0
  44. package/build/lib/db/repositories/rfid.js +264 -0
  45. package/build/lib/db/repositories/rfid.js.map +7 -0
  46. package/build/lib/db/repositories/rules.js +356 -0
  47. package/build/lib/db/repositories/rules.js.map +7 -0
  48. package/build/lib/db/repositories/settings.js +91 -0
  49. package/build/lib/db/repositories/settings.js.map +7 -0
  50. package/build/lib/db/repositories/terminals.js +243 -0
  51. package/build/lib/db/repositories/terminals.js.map +7 -0
  52. package/build/lib/db/repositories/triggers.js +240 -0
  53. package/build/lib/db/repositories/triggers.js.map +7 -0
  54. package/build/lib/db/repositories/users.js +491 -0
  55. package/build/lib/db/repositories/users.js.map +7 -0
  56. package/build/lib/db/seed.js +180 -0
  57. package/build/lib/db/seed.js.map +7 -0
  58. package/build/lib/domain/avatar.js +63 -0
  59. package/build/lib/domain/avatar.js.map +7 -0
  60. package/build/lib/domain/breaks.js +70 -0
  61. package/build/lib/domain/breaks.js.map +7 -0
  62. package/build/lib/domain/calculation.js +150 -0
  63. package/build/lib/domain/calculation.js.map +7 -0
  64. package/build/lib/domain/holidays.js +113 -0
  65. package/build/lib/domain/holidays.js.map +7 -0
  66. package/build/lib/domain/punch.js +99 -0
  67. package/build/lib/domain/punch.js.map +7 -0
  68. package/build/lib/domain/target.js +89 -0
  69. package/build/lib/domain/target.js.map +7 -0
  70. package/build/lib/errors.js +56 -0
  71. package/build/lib/errors.js.map +7 -0
  72. package/build/lib/reports/labels.js +358 -0
  73. package/build/lib/reports/labels.js.map +7 -0
  74. package/build/lib/reports/pdf.js +308 -0
  75. package/build/lib/reports/pdf.js.map +7 -0
  76. package/build/lib/reports/types.js +32 -0
  77. package/build/lib/reports/types.js.map +7 -0
  78. package/build/lib/reports/xls.js +211 -0
  79. package/build/lib/reports/xls.js.map +7 -0
  80. package/build/lib/services/aggregation.js +495 -0
  81. package/build/lib/services/aggregation.js.map +7 -0
  82. package/build/lib/services/auth.js +381 -0
  83. package/build/lib/services/auth.js.map +7 -0
  84. package/build/lib/services/backup.js +372 -0
  85. package/build/lib/services/backup.js.map +7 -0
  86. package/build/lib/services/closing.js +106 -0
  87. package/build/lib/services/closing.js.map +7 -0
  88. package/build/lib/services/sessionSecret.js +100 -0
  89. package/build/lib/services/sessionSecret.js.map +7 -0
  90. package/build/lib/services/sync.js +278 -0
  91. package/build/lib/services/sync.js.map +7 -0
  92. package/build/lib/util/time.js +125 -0
  93. package/build/lib/util/time.js.map +7 -0
  94. package/build/lib/web/api.js +2589 -0
  95. package/build/lib/web/api.js.map +7 -0
  96. package/build/lib/web/cookies.js +80 -0
  97. package/build/lib/web/cookies.js.map +7 -0
  98. package/build/lib/web/events.js +50 -0
  99. package/build/lib/web/events.js.map +7 -0
  100. package/build/lib/web/pin-guard.js +86 -0
  101. package/build/lib/web/pin-guard.js.map +7 -0
  102. package/build/lib/web/problem.js +129 -0
  103. package/build/lib/web/problem.js.map +7 -0
  104. package/build/lib/web/rate-limit.js +65 -0
  105. package/build/lib/web/rate-limit.js.map +7 -0
  106. package/build/lib/web/router.js +274 -0
  107. package/build/lib/web/router.js.map +7 -0
  108. package/build/lib/web/server.js +189 -0
  109. package/build/lib/web/server.js.map +7 -0
  110. package/build/lib/web/static.js +151 -0
  111. package/build/lib/web/static.js.map +7 -0
  112. package/build/lib/web/stream.js +135 -0
  113. package/build/lib/web/stream.js.map +7 -0
  114. package/build/main.js +986 -0
  115. package/build/main.js.map +7 -0
  116. package/io-package.json +221 -0
  117. package/package.json +131 -0
  118. package/src-pwa/src/i18n/de.json +359 -0
  119. package/src-pwa/src/i18n/en.json +359 -0
  120. package/src-pwa/src/i18n/es.json +359 -0
  121. package/src-pwa/src/i18n/fr.json +359 -0
  122. package/src-pwa/src/i18n/index.ts +96 -0
  123. package/src-pwa/src/i18n/it.json +359 -0
  124. package/src-pwa/src/i18n/nl.json +359 -0
  125. package/src-pwa/src/i18n/pl.json +359 -0
  126. package/src-pwa/src/i18n/pt.json +359 -0
  127. package/src-pwa/src/i18n/ru.json +359 -0
  128. package/src-pwa/src/i18n/uk.json +359 -0
  129. package/src-pwa/src/i18n/zh-cn.json +359 -0
  130. package/www/assets/index-QI3wrEvW.js +119 -0
  131. package/www/assets/index-QI3wrEvW.js.map +1 -0
  132. package/www/assets/workbox-window.prod.es5-Bd17z0YL.js +3 -0
  133. package/www/assets/workbox-window.prod.es5-Bd17z0YL.js.map +1 -0
  134. package/www/favicon.svg +16 -0
  135. package/www/icon-192.png +0 -0
  136. package/www/icon-512.png +0 -0
  137. package/www/index.html +38 -0
  138. package/www/manifest.webmanifest +1 -0
  139. package/www/person.png +0 -0
  140. package/www/sw.js +3 -0
  141. package/www/sw.js.map +1 -0
  142. package/www/workbox-9c191d2f.js +3 -0
  143. package/www/workbox-9c191d2f.js.map +1 -0
@@ -0,0 +1,359 @@
1
+ {
2
+ "absences.create": "Poproś o nieobecność",
3
+ "absences.created": "Zgłoszono nieobecność.",
4
+ "absences.empty": "Brak nieobecności w tym roku.",
5
+ "absences.from": "Z",
6
+ "absences.portion": "Udział dnia",
7
+ "absences.status": "Status",
8
+ "absences.title": "Nieobecności",
9
+ "absences.to": "Do",
10
+ "absences.type": "Typ",
11
+ "absences.typeHint": "Kod rodzaju nieobecności, np.: F na wakacje",
12
+ "admin.backup": "Kopie zapasowe",
13
+ "admin.backup.create": "Utwórz kopię zapasową teraz",
14
+ "admin.backup.upload": "Wgraj kopię",
15
+ "admin.backup.uploadHint": "Wybierz pobraną kopię (.sqlite) - zostanie sprawdzona i zastosowana przy następnym starcie.",
16
+ "admin.backup.delete": "Usuń",
17
+ "admin.backup.deleteTitle": "Usuń kopię",
18
+ "admin.backup.deleteConfirm": "Kopia {{name}} zostanie usunięta. Tego nie można cofnąć.",
19
+ "admin.backup.done": "Kopia zapasowa {{name}} została utworzona, usunięto {{removed}} stare pliki.",
20
+ "admin.backup.empty": "Nie ma jeszcze kopii zapasowych.",
21
+ "admin.backup.retention": "Kopie zapasowe starsze niż {{days}} dni są usuwane, zawsze zachowywana jest najnowsza.",
22
+ "admin.forbidden": "Nie możesz otwierać administracji.",
23
+ "admin.title": "Administracja",
24
+ "admin.user.active": "Aktywny",
25
+ "admin.user.create": "Dodaj pracownika",
26
+ "admin.user.empty": "Nie ma jeszcze pracowników.",
27
+ "admin.user.inactive": "Dezaktywowane",
28
+ "admin.user.login": "Login",
29
+ "admin.user.name": "Nazwa",
30
+ "admin.user.newPin": "Nowy PIN",
31
+ "admin.user.password": "Hasło",
32
+ "admin.user.passwordHint": "Co najmniej 8 znaków, duże i małe litery oraz cyfry.",
33
+ "admin.user.pin": "PIN",
34
+ "admin.user.pinHint": "4 do 8 cyfr dla terminala",
35
+ "admin.user.pinTitle": "PIN identyfikatora dla {{name}}",
36
+ "admin.user.roles": "Role",
37
+ "admin.users": "Pracownicy",
38
+ "app.offline": "Offline – ciosy są w kolejce",
39
+ "app.online": "Połączony",
40
+ "app.title": "Śledzenie czasu",
41
+ "common.cancel": "Anulować",
42
+ "common.close": "Zamknąć",
43
+ "common.loading": "Załadunek…",
44
+ "common.none": "–",
45
+ "common.refresh": "Odświeżać",
46
+ "common.retry": "Spróbować ponownie",
47
+ "common.save": "Ratować",
48
+ "error.bad_request": "Dane wejściowe nie zostały zaakceptowane.",
49
+ "error.conflict": "Zmiana jest sprzeczna z istniejącymi danymi.",
50
+ "error.csrf_rejected": "Żądanie zostało odrzucone ze względów bezpieczeństwa. Spróbuj ponownie.",
51
+ "error.invalid_credentials": "Nazwa użytkownika lub hasło są nieprawidłowe.",
52
+ "error.locked_out": "Zbyt wiele nieudanych prób. Spróbuj ponownie później.",
53
+ "error.network_error": "Serwer jest nieosiągalny.",
54
+ "error.no_session": "Twoja sesja wygasła. Zaloguj się ponownie.",
55
+ "error.not_found": "Nie znaleziono.",
56
+ "error.permission_denied": "Nie wolno Ci tego robić.",
57
+ "error.report_font_missing": "Ten raport wymaga czcionki Unicode (ścieżka_fontu_reportu).",
58
+ "error.revision_conflict": "W międzyczasie cios został zmieniony. Proszę załadować ponownie.",
59
+ "error.session_expired": "Twoja sesja wygasła. Zaloguj się ponownie.",
60
+ "error.unknown_error": "Nieoczekiwany błąd.",
61
+ "error.user_inactive": "To konto jest dezaktywowane.",
62
+ "login.failed": "Logowanie nie powiodło się",
63
+ "login.login": "Nazwa użytkownika",
64
+ "login.password": "Hasło",
65
+ "login.submit": "Zalogować się",
66
+ "login.title": "Zalogować się",
67
+ "month.absence": "Brak",
68
+ "month.balance": "Balansować",
69
+ "error.edit_window_closed": "Poza oknem edycji",
70
+ "admin.profile.pauseRules": "Własne zasady przerw",
71
+ "admin.profile.pauseRulesHint": "Zasady tylko dla tego pracownika: zastępują zasadę firmy z tym samym „od minut”. Bez własnych zasad obowiązuje tabela firmy.",
72
+ "report.csv": "Dane surowe (CSV)",
73
+ "month.edit": "Popraw",
74
+ "month.editTitle": "Popraw odbicia · {{date}}",
75
+ "month.editHint": "Tylko w oknie edycji - starsze dni zmienia administracja.",
76
+ "month.time": "Godzina",
77
+ "month.direction": "Kierunek",
78
+ "month.directionIn": "Wejście",
79
+ "month.directionOut": "Wyjście",
80
+ "month.addPunch": "Dodaj odbicie",
81
+ "month.pause": "Przerwa",
82
+ "month.paidBreak": "w tym płatne",
83
+ "month.empty": "Brak dni w tym miesiącu.",
84
+ "month.holiday": "Wakacje",
85
+ "month.months": "Miesiące roku",
86
+ "month.next": "Przyszły miesiąc",
87
+ "month.open": "otwarty",
88
+ "month.previous": "Poprzedni miesiąc",
89
+ "month.target": "Cel",
90
+ "month.title": "Miesiąc",
91
+ "month.worked": "Pracował",
92
+ "nav.absences": "Nieobecności",
93
+ "nav.dashboard": "Stemplowanie",
94
+ "nav.logout": "Wyloguj się",
95
+ "nav.menu": "Menu",
96
+ "nav.month": "Miesiąc",
97
+ "nav.profile": "Profil",
98
+ "nav.reports": "Raporty",
99
+ "nav.sync": "Synchronizacja",
100
+ "profile.changePassword": "Zmień hasło",
101
+ "profile.changed": "Hasło zostało zmienione. Zaloguj się ponownie.",
102
+ "profile.language": "Język",
103
+ "profile.newPassword": "Nowe hasło",
104
+ "profile.roles": "Uprawnienia",
105
+ "profile.title": "Profil",
106
+ "profile.user": "Użytkownik",
107
+ "punch.balance": "Saldo dziś",
108
+ "punch.closed": "Brak stempla",
109
+ "punch.in": "Zastempluj wejście",
110
+ "punch.last": "Ostatni stempel {{time}}",
111
+ "punch.note": "Notatka",
112
+ "punch.now": "Stempluj",
113
+ "punch.open": "Zarejestrowano od {{time}}",
114
+ "punch.out": "Zastempluj wyjście",
115
+ "punch.queued": "Zapisany offline – zostanie wysłany automatycznie",
116
+ "punch.quick": "Szybkie stemplowanie",
117
+ "punch.sent": "Stempel zapisany ({{time}})",
118
+ "punch.target": "Cel na dziś",
119
+ "punch.worked": "Przepracowano dziś",
120
+ "report.failed": "Nie można utworzyć wyciągu.",
121
+ "report.pdf": "PDF",
122
+ "report.xls": "Przewyższać",
123
+ "reports.empty": "Brak danych za ten okres.",
124
+ "reports.monthTotals": "Sumy miesięczne",
125
+ "reports.overtime": "Nadgodziny",
126
+ "reports.paidOut": "Wypłata: {{minutes}}",
127
+ "reports.title": "Raporty",
128
+ "reports.vacation": "Urlop (wykorzystany / uprawniony)",
129
+ "reports.year": "Rok",
130
+ "reports.yearTotals": "Sumy roku",
131
+ "sync.accept": "Zachowaj wartość serwera",
132
+ "sync.conflictOf": "{{date}} · {{time}}",
133
+ "sync.conflicts": "Otwarte konflikty",
134
+ "sync.dismiss": "Wyrzucać",
135
+ "sync.done": "Wysłano: {{accepted}}, duplikaty: {{duplicates}}, konflikty: {{conflicts}}",
136
+ "sync.empty": "Żadnych otwartych konfliktów.",
137
+ "sync.flush": "Wyślij teraz",
138
+ "sync.none": "Nic do wysłania.",
139
+ "sync.pending": "{{count}} ciosów czeka",
140
+ "sync.permission": "Nie wolno Ci rozwiązywać konfliktów.",
141
+ "sync.resolved": "Konflikt rozwiązany.",
142
+ "sync.title": "Synchronizacja",
143
+ "terminal.title": "Terminal",
144
+ "terminal.deviceToken": "Token urządzenia",
145
+ "terminal.connect": "Połącz",
146
+ "terminal.badge": "Karta",
147
+ "terminal.noPin": "Na tym terminalu PIN nie jest potrzebny.",
148
+ "terminal.pin": "PIN",
149
+ "terminal.select": "Wybierz nazwisko",
150
+ "terminal.disabled": "Terminal jest wyłączony w ustawieniach adaptera.",
151
+ "admin.terminals": "Terminale",
152
+ "admin.terminal.name": "Nazwa",
153
+ "admin.terminal.location": "Lokalizacja",
154
+ "admin.terminal.pinRequired": "Pracownicy potrzebują swojego PIN-u",
155
+ "admin.terminal.create": "Utwórz terminal",
156
+ "admin.terminal.tokenOnce": "Skopiuj teraz token urządzenia — jest przechowywany tylko jako hash i pokazywany jednorazowo:",
157
+ "admin.terminal.url": "Otwórz ten adres na urządzeniu kiosku:",
158
+ "admin.terminal.revoke": "Odwołaj",
159
+ "admin.terminal.revoked": "odwołany",
160
+ "admin.terminal.users": "Pracownicy",
161
+ "admin.terminal.usersHint": "Bez wyboru terminal pokazuje wszystkich pracowników.",
162
+ "admin.terminal.usersAll": "wszyscy pracownicy",
163
+ "admin.terminal.empty": "Nie utworzono jeszcze żadnego terminala.",
164
+ "admin.terminal.confirmRevoke": "Odwołać „{{name}}”? Token urządzenia przestanie działać natychmiast.",
165
+ "admin.settings": "Ustawienia",
166
+ "admin.settings.fontPath": "Plik czcionki Unicode dla wyciągów PDF (.ttf/.otf)",
167
+ "admin.user.profile": "Profil pracy",
168
+ "admin.user.profileTitle": "Profil pracy · {{name}}",
169
+ "admin.profile.percent": "Wymiar zatrudnienia (%)",
170
+ "admin.profile.weeklyHours": "Godziny tygodniowe przy 100 %",
171
+ "admin.profile.workdays": "Dni robocze",
172
+ "admin.profile.overtimeModel": "Model nadgodzin",
173
+ "admin.profile.model.monthly": "Miesięczny",
174
+ "admin.profile.model.yearly": "Roczny",
175
+ "admin.profile.model.cumulative": "Narastający",
176
+ "admin.profile.vacationPerYear": "Dni urlopu na rok",
177
+ "admin.profile.vacationCarryover": "Urlop przeniesiony (dni)",
178
+ "admin.profile.overtimeCarryover": "Nadgodziny przeniesione (godziny)",
179
+ "admin.profile.vorholzeitPerYear": "„Vorholzeit” na rok (godziny)",
180
+ "admin.profile.pausePaid": "Płatne minuty przerwy na dzień",
181
+ "admin.profile.pausePaidHint": "Tyle minut przerwy liczy się do czasu pracy (0 = przerwa nie jest płatna).",
182
+ "admin.settings.pauseMode": "Przerwy",
183
+ "admin.settings.pauseModeTitle": "Zasada przerw",
184
+ "admin.settings.pauseModeHint": "Jak ustalana jest przerwa dnia.",
185
+ "admin.settings.pauseRules": "Tabela przerw",
186
+ "admin.settings.pauseRulesHint": "Dotyczy dni bez zarejestrowanej przerwy: od podanego czasu bloku (od pierwszego do ostatniego odbicia) minuty są odejmowane.",
187
+ "admin.settings.pauseFrom": "od minut",
188
+ "admin.settings.pauseTo": "do minut (puste = bez końca)",
189
+ "admin.settings.pauseMinutes": "minuty przerwy",
190
+ "admin.settings.pauseActive": "Reguła aktywna",
191
+ "admin.settings.pauseAdd": "Dodaj regułę",
192
+ "admin.settings.pauseSave": "Zapisz tabelę przerw",
193
+ "admin.settings.pauseMode.auto": "Przerwa zarejestrowana, inaczej tabela",
194
+ "admin.settings.pauseMode.punched": "Tylko zarejestrowane przerwy",
195
+ "admin.settings.pauseMode.staffel": "Tylko tabela przerw",
196
+ "admin.settings.fontPathHint": "Potrzebne dla rosyjskiego, ukraińskiego i chińskiego; puste = wbudowane czcionki obejmujące tylko Latin-1.",
197
+ "admin.settings.advanced": "Wszystkie ustawienia instancji (nazwy techniczne, 1/0 dla przełączników)",
198
+ "admin.settings.setting.edit_window_days": "Okno edycji (dni)",
199
+ "admin.settings.setting.quick_round_minutes": "Zaokrąglanie (min)",
200
+ "admin.settings.setting.absence_calc_until_today": "Nieobecności do dziś",
201
+ "admin.settings.setting.absence_deduct_worktime": "Odliczaj nieobecności",
202
+ "admin.settings.setting.print_limit_days": "Limit wydruku (dni)",
203
+ "admin.settings.setting.holiday_country": "Kraj świąt",
204
+ "admin.settings.setting.default_language": "Język domyślny",
205
+ "admin.settings.setting.session_ttl_minutes": "Sesja (minuty)",
206
+ "admin.settings.setting.backup_retention_days": "Kopie (dni)",
207
+ "admin.settings.setting.attendance_list_visible": "Lista obecności",
208
+ "admin.settings.setting.timezone": "Strefa czasowa",
209
+ "admin.settings.saved": "Ustawienia zapisane.",
210
+ "admin.holidays": "Dni świąteczne",
211
+ "admin.holiday.date": "Data (RRRR-MM-DD)",
212
+ "admin.holiday.name": "Nazwa",
213
+ "holiday.newYear": "Nowy Rok",
214
+ "holiday.epiphany": "Trzech Króli",
215
+ "holiday.goodFriday": "Wielki Piątek",
216
+ "holiday.easterMonday": "Poniedziałek Wielkanocny",
217
+ "holiday.labourDay": "Święto Pracy",
218
+ "holiday.ascension": "Wniebowstąpienie",
219
+ "holiday.whitMonday": "Poniedziałek Zielonych Świąt",
220
+ "holiday.corpusChristi": "Boże Ciało",
221
+ "holiday.nationalDay": "Święto narodowe",
222
+ "holiday.germanUnity": "Dzień Jedności Niemiec",
223
+ "holiday.assumption": "Wniebowzięcie Najświętszej Maryi Panny",
224
+ "holiday.allSaints": "Wszystkich Świętych",
225
+ "holiday.immaculateConception": "Niepokalane Poczęcie",
226
+ "holiday.christmas": "Boże Narodzenie",
227
+ "holiday.boxingDay": "Drugi dzień świąt",
228
+ "admin.holiday.add": "Dodaj dzień świąteczny",
229
+ "admin.holiday.year": "Rok",
230
+ "admin.holiday.region": "Region (opcjonalnie)",
231
+ "admin.holiday.empty": "W tym roku nie zapisano dni świątecznych.",
232
+ "admin.tags": "Karty (RFID/NFC)",
233
+ "admin.tag.label": "Etykieta",
234
+ "admin.tag.user": "Pracownik",
235
+ "admin.tag.create": "Utwórz kartę",
236
+ "admin.tag.linkOnce": "Zapisz ten link na tagu albo otwórz go w telefonie:",
237
+ "admin.tag.delete": "Usuń",
238
+ "admin.tag.active": "aktywny",
239
+ "admin.tag.expired": "wygasły",
240
+ "admin.tag.revoked": "unieważniony",
241
+ "admin.tag.lastUsed": "ostatnie użycie",
242
+ "admin.tag.remove": "Usuń trwale",
243
+ "admin.tag.edit": "Edytuj",
244
+ "admin.tag.reissue": "Nowy link",
245
+ "admin.tag.editTitle": "Edycja identyfikatora",
246
+ "admin.tag.editHint": "Inny pracownik lub nowa ważność wydaje nowy link — wcześniej wydany link przestaje natychmiast działać.",
247
+ "admin.tag.validityDays": "Ważność (dni)",
248
+ "admin.tag.oldLinkDead": "Wcześniej wydany link nie działa już.",
249
+ "admin.tag.qrAlt": "Kod QR linku identyfikatora",
250
+ "admin.tag.empty": "Nie utworzono jeszcze karty.",
251
+ "nav.statistics": "Statystyki",
252
+ "statistics.from": "Od",
253
+ "statistics.to": "Do",
254
+ "statistics.employee": "Pracownik",
255
+ "statistics.worked": "Przepracowano",
256
+ "statistics.target": "Norma",
257
+ "statistics.balance": "Saldo",
258
+ "statistics.openDays": "Otwarte dni",
259
+ "statistics.totals": "Wszyscy pracownicy",
260
+ "scan.title": "Karta",
261
+ "scan.done": "Zastemplowano dla {{name}} o {{time}}",
262
+ "scan.failed": "Nie udało się użyć karty: {{reason}}",
263
+ "presence.title": "Obecność",
264
+ "presence.present": "Obecny",
265
+ "presence.absent": "Nieobecny",
266
+ "presence.tapPin": "Wprowadź PIN, aby wystemplować wejście lub wyjście",
267
+ "presence.cancel": "Anuluj",
268
+ "presence.updated": "{{name}} jest teraz {{state}}",
269
+ "presence.disabled": "Terminal kiosku jest wyłączony w ustawieniach instancji.",
270
+ "admin.user.photo": "Zdjęcie",
271
+ "admin.user.photoTitle": "Zdjęcie {{name}}",
272
+ "admin.user.photoChoose": "Wybierz obraz",
273
+ "admin.user.photoRemove": "Usuń obraz",
274
+ "admin.user.photoHint": "PNG, JPEG, WEBP lub GIF do 256 KB. Bez zdjęcia wyświetlany jest obraz zastępczy.",
275
+ "admin.corrections": "Korekty czasu",
276
+ "corrections.employee": "Pracownik",
277
+ "corrections.previous": "Poprzedni miesiąc",
278
+ "corrections.next": "Następny miesiąc",
279
+ "corrections.reason": "Powód",
280
+ "corrections.reasonHint": "Zapisywane w dzienniku audytu",
281
+ "corrections.add": "Dodaj odbicie lub dzień",
282
+ "corrections.addTitle": "Dodaj odbicie",
283
+ "corrections.addHint": "Pozostaw „wyjście” puste, jeśli brakuje jednego odbicia",
284
+ "corrections.editTitle": "Zmień odbicie",
285
+ "corrections.remove": "Usuń odbicie",
286
+ "corrections.date": "Data",
287
+ "corrections.from": "Przyjście",
288
+ "corrections.to": "Wyjście",
289
+ "corrections.direction": "Kierunek",
290
+ "corrections.note": "Notatka",
291
+ "corrections.empty": "Brak odbić w tym miesiącu",
292
+ "corrections.byAdmin": "dodane przez administrację",
293
+ "corrections.history": "Historia",
294
+ "corrections.actor": "Kto",
295
+ "corrections.actionCreate": "Dodano",
296
+ "corrections.actionUpdate": "Zmieniono",
297
+ "corrections.actionDelete": "Usunięto",
298
+ "keypad.backspace": "Usuń",
299
+ "admin.settings.branding": "Wizerunek firmy",
300
+ "admin.settings.brandingHint": "Logo, obraz tła i kolor tła tej instalacji. Ekran logowania i ekrany kiosku również je pokazują.",
301
+ "admin.settings.brandLogo": "Wybierz logo",
302
+ "admin.settings.brandBackground": "Wybierz tło",
303
+ "admin.brand.imageResized": "Pomniejszono do wyświetlania ({{size}}).",
304
+ "admin.brand.imageTooLarge": "Nawet pomniejszony obraz jest zbyt duży.",
305
+ "admin.brand.imageType": "Możliwe są tylko PNG, JPEG, WEBP lub GIF.",
306
+ "admin.brand.imageUnreadable": "Nie udało się odczytać obrazu.",
307
+ "admin.settings.brandColor": "Kolor tła",
308
+ "admin.settings.brandColorHint": "Wartość szesnastkowa, np. #1a2b3c; puste pole oznacza wartość domyślną",
309
+ "admin.settings.brandColorPresets": "Sugerowane kolory",
310
+ "admin.settings.brandColorDefault": "Domyślny",
311
+ "admin.backup.download": "Pobierz",
312
+ "admin.backup.restore": "Przywróć",
313
+ "admin.backup.restoreTitle": "Przywróć kopię zapasową",
314
+ "admin.backup.restoreConfirm": "Kopia zapasowa {{name}} zostanie zastosowana przy następnym uruchomieniu adaptera; obecna baza danych pozostanie obok jako plik. Następnie uruchom ponownie instancję.",
315
+ "admin.backup.pendingHint": "{{name}} zostanie zastosowana przy następnym uruchomieniu ({{users}} pracowników, {{entries}} stempli) - uruchom ponownie instancję.",
316
+ "error.backup_invalid": "Ten plik nie jest kopią zapasową tego adaptera.",
317
+ "admin.settings.brandImageRemove": "Usuń obraz",
318
+ "admin.settings.brandColorDefaultHint": "Przywraca kolor tła i obraz tła",
319
+ "admin.triggers": "Akcje (ioBroker)",
320
+ "admin.triggersHint": "Stan innego adaptera stempluje lub ustawia obecność — czytnik linii papilarnych, przycisk albo kontakt drzwiowy. Wyzwalane jest tylko przy zmianie wartości. Jako wartość możesz wpisać `toggle`: wtedy reaguje na każdą zmianę (np. włączenie i wyłączenie).",
321
+ "admin.trigger.label": "Nazwa",
322
+ "admin.trigger.sourceState": "Stan",
323
+ "admin.trigger.mode": "Wyzwalacz",
324
+ "admin.trigger.modeCondition": "Stan ma wartość",
325
+ "admin.trigger.modeUser": "Wartość to pracownik",
326
+ "admin.trigger.condition": "Wartość",
327
+ "admin.trigger.user": "Pracownik",
328
+ "admin.trigger.action": "Akcja",
329
+ "admin.trigger.actionPunch": "Zastempluj (wejście lub wyjście)",
330
+ "admin.trigger.actionQuickPunch": "Zastempluj z szybkim zaokrągleniem",
331
+ "admin.trigger.actionPresent": "Ustaw jako obecny",
332
+ "admin.trigger.actionAbsent": "Ustaw jako nieobecny",
333
+ "admin.trigger.cooldown": "Blokada (sekundy)",
334
+ "admin.trigger.active": "Aktywne",
335
+ "admin.trigger.add": "Dodaj akcję",
336
+ "admin.trigger.lastFired": "Ostatnie wyzwolenie",
337
+ "admin.trigger.empty": "Nie ma jeszcze akcji.",
338
+ "admin.trigger.conditionHint": "Wartość lub `toggle`, aby reagować na każdą zmianę",
339
+ "admin.settings.automations": "Reguły (automatyczne)",
340
+ "admin.settings.automationsHint": "Co adapter robi sam: stempluje wyjście o ustalonej godzinie lokalnej, zgłasza brak wyjścia albo przypomina po zbyt długiej pracy bez przerwy. Reguła działa co najwyżej raz na pracownika i dzień.",
341
+ "admin.automation.kind": "Rodzaj",
342
+ "admin.automation.kindClockIn": "Automatycznie zastempluj wejście",
343
+ "admin.automation.kindClockOut": "Automatycznie stempluj wyjście",
344
+ "admin.automation.kindMissingPunch": "Zgłoś brak wyjścia",
345
+ "admin.automation.kindBreakReminder": "Przypomnienie o przerwie",
346
+ "admin.automation.at": "Godzina",
347
+ "admin.automation.atHint": "Czas lokalny pracownika",
348
+ "admin.automation.after": "Po (minutach)",
349
+ "admin.automation.user": "Pracownik",
350
+ "admin.automation.allUsers": "wszyscy pracownicy",
351
+ "admin.automation.add": "Dodaj regułę",
352
+ "admin.automation.empty": "Nie ma jeszcze reguł.",
353
+ "admin.automation.runs": "Ostatnie wykonania",
354
+ "admin.automation.weekdays": "Dni tygodnia",
355
+ "admin.automation.repeat": "Powtarzanie",
356
+ "admin.automation.repeatDay": "raz dziennie",
357
+ "admin.automation.repeatWeek": "raz w tygodniu",
358
+ "admin.settings.setting.report_font_path": "Czcionka do PDF"
359
+ }