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
|
+
"absences.create": "Solicitar ausencia",
|
|
3
|
+
"absences.created": "Ausencia solicitada.",
|
|
4
|
+
"absences.empty": "No hay ausencias en este año.",
|
|
5
|
+
"absences.from": "De",
|
|
6
|
+
"absences.portion": "Parte del día",
|
|
7
|
+
"absences.status": "Estado",
|
|
8
|
+
"absences.title": "Ausencias",
|
|
9
|
+
"absences.to": "A",
|
|
10
|
+
"absences.type": "Tipo",
|
|
11
|
+
"absences.typeHint": "Código del tipo de ausencia, p.e. F de vacaciones",
|
|
12
|
+
"admin.backup": "Copias de seguridad",
|
|
13
|
+
"admin.backup.create": "Crear copia de seguridad ahora",
|
|
14
|
+
"admin.backup.upload": "Subir copia",
|
|
15
|
+
"admin.backup.uploadHint": "Elige una copia descargada (.sqlite) - se verifica y se aplica en el próximo inicio.",
|
|
16
|
+
"admin.backup.delete": "Eliminar",
|
|
17
|
+
"admin.backup.deleteTitle": "Eliminar copia",
|
|
18
|
+
"admin.backup.deleteConfirm": "La copia {{name}} se elimina. Esto no se puede deshacer.",
|
|
19
|
+
"admin.backup.done": "Copia de seguridad de {{name}} escrita, {{removed}} archivo(s) antiguo(s) eliminado(s).",
|
|
20
|
+
"admin.backup.empty": "Aún no hay copias de seguridad.",
|
|
21
|
+
"admin.backup.retention": "Las copias de seguridad anteriores a {{days}} días se eliminan y siempre se conserva la más reciente.",
|
|
22
|
+
"admin.forbidden": "No se le permite abrir la administración.",
|
|
23
|
+
"admin.title": "Administración",
|
|
24
|
+
"admin.user.active": "Activo",
|
|
25
|
+
"admin.user.create": "Agregar empleado",
|
|
26
|
+
"admin.user.empty": "Aún no hay empleados.",
|
|
27
|
+
"admin.user.inactive": "Desactivado",
|
|
28
|
+
"admin.user.login": "Acceso",
|
|
29
|
+
"admin.user.name": "Nombre",
|
|
30
|
+
"admin.user.newPin": "Nuevo PIN",
|
|
31
|
+
"admin.user.password": "Contraseña",
|
|
32
|
+
"admin.user.passwordHint": "Al menos 8 caracteres con mayúsculas, minúsculas y dígitos.",
|
|
33
|
+
"admin.user.pin": "PIN",
|
|
34
|
+
"admin.user.pinHint": "4 a 8 dígitos para el terminal",
|
|
35
|
+
"admin.user.pinTitle": "PIN de la tarjeta de {{name}}",
|
|
36
|
+
"admin.user.roles": "Roles",
|
|
37
|
+
"admin.users": "Empleados",
|
|
38
|
+
"app.offline": "Sin conexión: los marcajes están en cola",
|
|
39
|
+
"app.online": "Conectado",
|
|
40
|
+
"app.title": "Seguimiento del tiempo",
|
|
41
|
+
"common.cancel": "Cancelar",
|
|
42
|
+
"common.close": "Cerca",
|
|
43
|
+
"common.loading": "Cargando…",
|
|
44
|
+
"common.none": "–",
|
|
45
|
+
"common.refresh": "Refrescar",
|
|
46
|
+
"common.retry": "Rever",
|
|
47
|
+
"common.save": "Ahorrar",
|
|
48
|
+
"error.bad_request": "El aporte no fue aceptado.",
|
|
49
|
+
"error.conflict": "El cambio entra en conflicto con los datos existentes.",
|
|
50
|
+
"error.csrf_rejected": "La solicitud fue rechazada por razones de seguridad, inténtelo nuevamente.",
|
|
51
|
+
"error.invalid_credentials": "El nombre de usuario o la contraseña no son correctos.",
|
|
52
|
+
"error.locked_out": "Demasiados intentos fallidos. Inténtelo de nuevo más tarde.",
|
|
53
|
+
"error.network_error": "El servidor no es accesible.",
|
|
54
|
+
"error.no_session": "Su sesión ha caducado, inicie sesión nuevamente.",
|
|
55
|
+
"error.not_found": "Extraviado.",
|
|
56
|
+
"error.permission_denied": "No tienes permitido hacer esto.",
|
|
57
|
+
"error.report_font_missing": "Este informe necesita una fuente Unicode (report_font_path).",
|
|
58
|
+
"error.revision_conflict": "Mientras tanto, el punzón fue cambiado, por favor recarga.",
|
|
59
|
+
"error.session_expired": "Su sesión ha caducado, inicie sesión nuevamente.",
|
|
60
|
+
"error.unknown_error": "Error inesperado.",
|
|
61
|
+
"error.user_inactive": "Esta cuenta está desactivada.",
|
|
62
|
+
"login.failed": "Error al iniciar sesión",
|
|
63
|
+
"login.login": "Nombre de usuario",
|
|
64
|
+
"login.password": "Contraseña",
|
|
65
|
+
"login.submit": "Iniciar sesión",
|
|
66
|
+
"login.title": "Iniciar sesión",
|
|
67
|
+
"month.absence": "Ausencia",
|
|
68
|
+
"month.balance": "Saldo",
|
|
69
|
+
"error.edit_window_closed": "Fuera de la ventana de corrección",
|
|
70
|
+
"admin.profile.pauseRules": "Reglas de pausa propias",
|
|
71
|
+
"admin.profile.pauseRulesHint": "Reglas solo para este empleado: sustituyen la regla de la empresa con el mismo «desde minutos». Sin reglas propias se aplica la escala de la empresa.",
|
|
72
|
+
"report.csv": "Datos brutos (CSV)",
|
|
73
|
+
"month.edit": "Corregir",
|
|
74
|
+
"month.editTitle": "Corregir fichajes · {{date}}",
|
|
75
|
+
"month.editHint": "Solo dentro de la ventana de corrección - los días anteriores los cambia la administración.",
|
|
76
|
+
"month.time": "Hora",
|
|
77
|
+
"month.direction": "Dirección",
|
|
78
|
+
"month.directionIn": "Entrada",
|
|
79
|
+
"month.directionOut": "Salida",
|
|
80
|
+
"month.addPunch": "Añadir fichaje",
|
|
81
|
+
"month.pause": "Pausa",
|
|
82
|
+
"month.paidBreak": "de los cuales pagado",
|
|
83
|
+
"month.empty": "No hay días en este mes.",
|
|
84
|
+
"month.holiday": "Día festivo",
|
|
85
|
+
"month.months": "Meses del año",
|
|
86
|
+
"month.next": "Mes próximo",
|
|
87
|
+
"month.open": "abierto",
|
|
88
|
+
"month.previous": "Mes anterior",
|
|
89
|
+
"month.target": "Objetivo",
|
|
90
|
+
"month.title": "Mes",
|
|
91
|
+
"month.worked": "Trabajó",
|
|
92
|
+
"nav.absences": "Ausencias",
|
|
93
|
+
"nav.dashboard": "Fichaje",
|
|
94
|
+
"nav.logout": "desconectar",
|
|
95
|
+
"nav.menu": "Menú",
|
|
96
|
+
"nav.month": "Mes",
|
|
97
|
+
"nav.profile": "Perfil",
|
|
98
|
+
"nav.reports": "Informes",
|
|
99
|
+
"nav.sync": "Sincronización",
|
|
100
|
+
"profile.changePassword": "Cambiar la contraseña",
|
|
101
|
+
"profile.changed": "Contraseña cambiada, inicie sesión nuevamente.",
|
|
102
|
+
"profile.language": "Idioma",
|
|
103
|
+
"profile.newPassword": "Nueva contraseña",
|
|
104
|
+
"profile.roles": "Permisos",
|
|
105
|
+
"profile.title": "Perfil",
|
|
106
|
+
"profile.user": "Usuario",
|
|
107
|
+
"punch.balance": "Saldo hoy",
|
|
108
|
+
"punch.closed": "Sin fichar",
|
|
109
|
+
"punch.in": "Fichar entrada",
|
|
110
|
+
"punch.last": "Último fichaje {{time}}",
|
|
111
|
+
"punch.note": "Nota",
|
|
112
|
+
"punch.now": "Fichar",
|
|
113
|
+
"punch.open": "Fichado desde {{time}}",
|
|
114
|
+
"punch.out": "Fichar salida",
|
|
115
|
+
"punch.queued": "Guardado sin conexión: se enviará automáticamente",
|
|
116
|
+
"punch.quick": "Fichaje rápido",
|
|
117
|
+
"punch.sent": "Fichaje guardado ({{time}})",
|
|
118
|
+
"punch.target": "Objetivo hoy",
|
|
119
|
+
"punch.worked": "Trabajado hoy",
|
|
120
|
+
"report.failed": "No se pudo crear la declaración.",
|
|
121
|
+
"report.pdf": "PDF",
|
|
122
|
+
"report.xls": "Sobresalir",
|
|
123
|
+
"reports.empty": "No hay datos para este período.",
|
|
124
|
+
"reports.monthTotals": "Totales mensuales",
|
|
125
|
+
"reports.overtime": "Horas extras",
|
|
126
|
+
"reports.paidOut": "Pagado: {{minutes}}",
|
|
127
|
+
"reports.title": "Informes",
|
|
128
|
+
"reports.vacation": "Vacaciones (tomada/derecho)",
|
|
129
|
+
"reports.year": "Año",
|
|
130
|
+
"reports.yearTotals": "Totales del año",
|
|
131
|
+
"sync.accept": "Mantener el valor del servidor",
|
|
132
|
+
"sync.conflictOf": "{{date}} · {{time}}",
|
|
133
|
+
"sync.conflicts": "Conflictos abiertos",
|
|
134
|
+
"sync.dismiss": "Desechar",
|
|
135
|
+
"sync.done": "Enviado: {{accepted}}, duplicados: {{duplicates}}, conflictos: {{conflicts}}",
|
|
136
|
+
"sync.empty": "Sin conflictos abiertos.",
|
|
137
|
+
"sync.flush": "Enviar ahora",
|
|
138
|
+
"sync.none": "Nada que enviar.",
|
|
139
|
+
"sync.pending": "{{count}} golpe(es) esperando",
|
|
140
|
+
"sync.permission": "No se le permite resolver conflictos.",
|
|
141
|
+
"sync.resolved": "Conflicto resuelto.",
|
|
142
|
+
"sync.title": "Sincronización",
|
|
143
|
+
"terminal.title": "Terminal",
|
|
144
|
+
"terminal.deviceToken": "Token del dispositivo",
|
|
145
|
+
"terminal.connect": "Conectar",
|
|
146
|
+
"terminal.badge": "Tarjeta",
|
|
147
|
+
"terminal.noPin": "En este terminal no se necesita PIN.",
|
|
148
|
+
"terminal.pin": "PIN",
|
|
149
|
+
"terminal.select": "Elija su nombre",
|
|
150
|
+
"terminal.disabled": "El terminal está desactivado en la configuración del adaptador.",
|
|
151
|
+
"admin.terminals": "Terminales",
|
|
152
|
+
"admin.terminal.name": "Nombre",
|
|
153
|
+
"admin.terminal.location": "Ubicación",
|
|
154
|
+
"admin.terminal.pinRequired": "Los empleados necesitan su PIN",
|
|
155
|
+
"admin.terminal.create": "Crear terminal",
|
|
156
|
+
"admin.terminal.tokenOnce": "Copia ahora el token del dispositivo — solo se guarda como hash y se muestra una única vez:",
|
|
157
|
+
"admin.terminal.url": "Abre esta dirección en el dispositivo del kiosco:",
|
|
158
|
+
"admin.terminal.revoke": "Revocar",
|
|
159
|
+
"admin.terminal.revoked": "revocado",
|
|
160
|
+
"admin.terminal.users": "Empleados",
|
|
161
|
+
"admin.terminal.usersHint": "Sin selección, el terminal muestra a todos los empleados.",
|
|
162
|
+
"admin.terminal.usersAll": "todos los empleados",
|
|
163
|
+
"admin.terminal.empty": "Todavía no se ha creado ningún terminal.",
|
|
164
|
+
"admin.terminal.confirmRevoke": "¿Revocar «{{name}}»? Su token de dispositivo deja de funcionar de inmediato.",
|
|
165
|
+
"admin.settings": "Ajustes",
|
|
166
|
+
"admin.settings.fontPath": "Archivo de fuente Unicode para los extractos PDF (.ttf/.otf)",
|
|
167
|
+
"admin.user.profile": "Perfil laboral",
|
|
168
|
+
"admin.user.profileTitle": "Perfil laboral · {{name}}",
|
|
169
|
+
"admin.profile.percent": "Grado de ocupación (%)",
|
|
170
|
+
"admin.profile.weeklyHours": "Horas semanales al 100 %",
|
|
171
|
+
"admin.profile.workdays": "Días laborables",
|
|
172
|
+
"admin.profile.overtimeModel": "Modelo de horas extras",
|
|
173
|
+
"admin.profile.model.monthly": "Mensual",
|
|
174
|
+
"admin.profile.model.yearly": "Anual",
|
|
175
|
+
"admin.profile.model.cumulative": "Acumulativo",
|
|
176
|
+
"admin.profile.vacationPerYear": "Días de vacaciones al año",
|
|
177
|
+
"admin.profile.vacationCarryover": "Vacaciones arrastradas (días)",
|
|
178
|
+
"admin.profile.overtimeCarryover": "Horas extras arrastradas (horas)",
|
|
179
|
+
"admin.profile.vorholzeitPerYear": "«Vorholzeit» al año (horas)",
|
|
180
|
+
"admin.profile.pausePaid": "Minutos de pausa pagados por día",
|
|
181
|
+
"admin.profile.pausePaidHint": "Esos minutos de la pausa cuentan como tiempo de trabajo (0 = la pausa no se paga).",
|
|
182
|
+
"admin.settings.pauseMode": "Pausas",
|
|
183
|
+
"admin.settings.pauseModeTitle": "Regla de pausas",
|
|
184
|
+
"admin.settings.pauseModeHint": "Cómo se determina la pausa de un día.",
|
|
185
|
+
"admin.settings.pauseRules": "Escala de pausas",
|
|
186
|
+
"admin.settings.pauseRulesHint": "Se aplica a los días sin pausa registrada: a partir de la duración indicada (del primer al último registro de un bloque) se descuentan los minutos.",
|
|
187
|
+
"admin.settings.pauseFrom": "desde minutos",
|
|
188
|
+
"admin.settings.pauseTo": "hasta minutos (vacío = sin fin)",
|
|
189
|
+
"admin.settings.pauseMinutes": "minutos de pausa",
|
|
190
|
+
"admin.settings.pauseActive": "Regla activa",
|
|
191
|
+
"admin.settings.pauseAdd": "Añadir regla",
|
|
192
|
+
"admin.settings.pauseSave": "Guardar escala de pausas",
|
|
193
|
+
"admin.settings.pauseMode.auto": "Pausa registrada, si no la escala",
|
|
194
|
+
"admin.settings.pauseMode.punched": "Solo pausas registradas",
|
|
195
|
+
"admin.settings.pauseMode.staffel": "Solo la escala de pausas",
|
|
196
|
+
"admin.settings.fontPathHint": "Necesario para ruso, ucraniano y chino; vacío = fuentes integradas, que solo cubren Latin-1.",
|
|
197
|
+
"admin.settings.advanced": "Todos los ajustes de la instancia (nombres técnicos, 1/0 para interruptores)",
|
|
198
|
+
"admin.settings.setting.edit_window_days": "Ventana de edición (días)",
|
|
199
|
+
"admin.settings.setting.quick_round_minutes": "Redondeo (min)",
|
|
200
|
+
"admin.settings.setting.absence_calc_until_today": "Ausencias hasta hoy",
|
|
201
|
+
"admin.settings.setting.absence_deduct_worktime": "Descontar ausencias",
|
|
202
|
+
"admin.settings.setting.print_limit_days": "Límite de impresión (días)",
|
|
203
|
+
"admin.settings.setting.holiday_country": "País de los festivos",
|
|
204
|
+
"admin.settings.setting.default_language": "Idioma predeterminado",
|
|
205
|
+
"admin.settings.setting.session_ttl_minutes": "Sesión (minutos)",
|
|
206
|
+
"admin.settings.setting.backup_retention_days": "Copias (días)",
|
|
207
|
+
"admin.settings.setting.attendance_list_visible": "Lista de asistencia",
|
|
208
|
+
"admin.settings.setting.timezone": "Zona horaria",
|
|
209
|
+
"admin.settings.saved": "Ajustes guardados.",
|
|
210
|
+
"admin.holidays": "Días festivos",
|
|
211
|
+
"admin.holiday.date": "Fecha (AAAA-MM-DD)",
|
|
212
|
+
"admin.holiday.name": "Nombre",
|
|
213
|
+
"holiday.newYear": "Año Nuevo",
|
|
214
|
+
"holiday.epiphany": "Epifanía",
|
|
215
|
+
"holiday.goodFriday": "Viernes Santo",
|
|
216
|
+
"holiday.easterMonday": "Lunes de Pascua",
|
|
217
|
+
"holiday.labourDay": "Día del Trabajo",
|
|
218
|
+
"holiday.ascension": "Ascensión",
|
|
219
|
+
"holiday.whitMonday": "Lunes de Pentecostés",
|
|
220
|
+
"holiday.corpusChristi": "Solemnidad del Corpus Christi",
|
|
221
|
+
"holiday.nationalDay": "Fiesta nacional",
|
|
222
|
+
"holiday.germanUnity": "Día de la Unidad Alemana",
|
|
223
|
+
"holiday.assumption": "Asunción",
|
|
224
|
+
"holiday.allSaints": "Todos los Santos",
|
|
225
|
+
"holiday.immaculateConception": "Inmaculada Concepción",
|
|
226
|
+
"holiday.christmas": "Navidad",
|
|
227
|
+
"holiday.boxingDay": "San Esteban",
|
|
228
|
+
"admin.holiday.add": "Añadir día festivo",
|
|
229
|
+
"admin.holiday.year": "Año",
|
|
230
|
+
"admin.holiday.region": "Región (opcional)",
|
|
231
|
+
"admin.holiday.empty": "No hay días festivos registrados para este año.",
|
|
232
|
+
"admin.tags": "Tarjetas (RFID/NFC)",
|
|
233
|
+
"admin.tag.label": "Etiqueta",
|
|
234
|
+
"admin.tag.user": "Empleado",
|
|
235
|
+
"admin.tag.create": "Crear tarjeta",
|
|
236
|
+
"admin.tag.linkOnce": "Escribe este enlace en la etiqueta o ábrelo en el teléfono:",
|
|
237
|
+
"admin.tag.delete": "Eliminar",
|
|
238
|
+
"admin.tag.active": "activo",
|
|
239
|
+
"admin.tag.expired": "caducado",
|
|
240
|
+
"admin.tag.revoked": "revocado",
|
|
241
|
+
"admin.tag.lastUsed": "último uso",
|
|
242
|
+
"admin.tag.remove": "Eliminar definitivamente",
|
|
243
|
+
"admin.tag.edit": "Editar",
|
|
244
|
+
"admin.tag.reissue": "Nuevo enlace",
|
|
245
|
+
"admin.tag.editTitle": "Editar credencial",
|
|
246
|
+
"admin.tag.editHint": "Otro empleado o una nueva validez emite un nuevo enlace — el enlace anterior deja de funcionar de inmediato.",
|
|
247
|
+
"admin.tag.validityDays": "Validez (días)",
|
|
248
|
+
"admin.tag.oldLinkDead": "El enlace anterior ya no funciona.",
|
|
249
|
+
"admin.tag.qrAlt": "Código QR del enlace de la credencial",
|
|
250
|
+
"admin.tag.empty": "Todavía no se ha creado ninguna tarjeta.",
|
|
251
|
+
"nav.statistics": "Estadísticas",
|
|
252
|
+
"statistics.from": "Desde",
|
|
253
|
+
"statistics.to": "Hasta",
|
|
254
|
+
"statistics.employee": "Empleado",
|
|
255
|
+
"statistics.worked": "Trabajado",
|
|
256
|
+
"statistics.target": "Objetivo",
|
|
257
|
+
"statistics.balance": "Saldo",
|
|
258
|
+
"statistics.openDays": "Días abiertos",
|
|
259
|
+
"statistics.totals": "Todos los empleados",
|
|
260
|
+
"scan.title": "Tarjeta",
|
|
261
|
+
"scan.done": "Fichado para {{name}} a las {{time}}",
|
|
262
|
+
"scan.failed": "No se pudo usar la tarjeta: {{reason}}",
|
|
263
|
+
"presence.title": "Presencia",
|
|
264
|
+
"presence.present": "Presente",
|
|
265
|
+
"presence.absent": "Ausente",
|
|
266
|
+
"presence.tapPin": "Introduce el PIN para fichar",
|
|
267
|
+
"presence.cancel": "Cancelar",
|
|
268
|
+
"presence.updated": "{{name}} ahora está {{state}}",
|
|
269
|
+
"presence.disabled": "El terminal de quiosco está desactivado en la configuración de la instancia.",
|
|
270
|
+
"admin.user.photo": "Foto",
|
|
271
|
+
"admin.user.photoTitle": "Foto de {{name}}",
|
|
272
|
+
"admin.user.photoChoose": "Elegir imagen",
|
|
273
|
+
"admin.user.photoRemove": "Quitar imagen",
|
|
274
|
+
"admin.user.photoHint": "PNG, JPEG, WEBP o GIF hasta 256 KB. Sin imagen se muestra el marcador.",
|
|
275
|
+
"admin.corrections": "Correcciones de tiempo",
|
|
276
|
+
"corrections.employee": "Empleado",
|
|
277
|
+
"corrections.previous": "Mes anterior",
|
|
278
|
+
"corrections.next": "Mes siguiente",
|
|
279
|
+
"corrections.reason": "Motivo",
|
|
280
|
+
"corrections.reasonHint": "Se guarda en el registro de auditoría",
|
|
281
|
+
"corrections.add": "Añadir fichaje o día",
|
|
282
|
+
"corrections.addTitle": "Añadir fichaje",
|
|
283
|
+
"corrections.addHint": "Deja «salida» vacío si solo falta un fichaje",
|
|
284
|
+
"corrections.editTitle": "Modificar fichaje",
|
|
285
|
+
"corrections.remove": "Eliminar fichaje",
|
|
286
|
+
"corrections.date": "Fecha",
|
|
287
|
+
"corrections.from": "Entrada",
|
|
288
|
+
"corrections.to": "Salida",
|
|
289
|
+
"corrections.direction": "Dirección",
|
|
290
|
+
"corrections.note": "Nota",
|
|
291
|
+
"corrections.empty": "Sin fichajes en este mes",
|
|
292
|
+
"corrections.byAdmin": "añadido por la administración",
|
|
293
|
+
"corrections.history": "Historial",
|
|
294
|
+
"corrections.actor": "Por",
|
|
295
|
+
"corrections.actionCreate": "Añadido",
|
|
296
|
+
"corrections.actionUpdate": "Modificado",
|
|
297
|
+
"corrections.actionDelete": "Eliminado",
|
|
298
|
+
"keypad.backspace": "Borrar",
|
|
299
|
+
"admin.settings.branding": "Imagen corporativa",
|
|
300
|
+
"admin.settings.brandingHint": "Logotipo, imagen de fondo y color de fondo de esta instalación. La pantalla de inicio de sesión y las pantallas de kiosco también las muestran.",
|
|
301
|
+
"admin.settings.brandLogo": "Elegir logotipo",
|
|
302
|
+
"admin.settings.brandBackground": "Elegir fondo",
|
|
303
|
+
"admin.brand.imageResized": "Reducida para la visualización ({{size}}).",
|
|
304
|
+
"admin.brand.imageTooLarge": "Incluso reducida, la imagen sigue siendo demasiado grande.",
|
|
305
|
+
"admin.brand.imageType": "Solo son posibles PNG, JPEG, WEBP o GIF.",
|
|
306
|
+
"admin.brand.imageUnreadable": "No se pudo leer la imagen.",
|
|
307
|
+
"admin.settings.brandColor": "Color de fondo",
|
|
308
|
+
"admin.settings.brandColorHint": "Valor hexadecimal como #1a2b3c, vacío para el valor predeterminado",
|
|
309
|
+
"admin.settings.brandColorPresets": "Colores sugeridos",
|
|
310
|
+
"admin.settings.brandColorDefault": "Predeterminado",
|
|
311
|
+
"admin.backup.download": "Descargar",
|
|
312
|
+
"admin.backup.restore": "Restaurar",
|
|
313
|
+
"admin.backup.restoreTitle": "Restaurar una copia de seguridad",
|
|
314
|
+
"admin.backup.restoreConfirm": "La copia de seguridad {{name}} se aplica en el próximo arranque del adaptador; la base de datos actual se conserva al lado como archivo. Reinicia la instancia después.",
|
|
315
|
+
"admin.backup.pendingHint": "{{name}} se aplica en el próximo arranque ({{users}} empleados, {{entries}} fichajes) - reinicia la instancia.",
|
|
316
|
+
"error.backup_invalid": "Ese archivo no es una copia de seguridad de este adaptador.",
|
|
317
|
+
"admin.settings.brandImageRemove": "Quitar imagen",
|
|
318
|
+
"admin.settings.brandColorDefaultHint": "Restablece el color y la imagen de fondo",
|
|
319
|
+
"admin.triggers": "Acciones (ioBroker)",
|
|
320
|
+
"admin.triggersHint": "Un estado de otro adaptador ficha o define la presencia — un lector de huellas, un botón o un contacto de puerta. Solo se activa cuando cambia el valor. Como valor puedes escribir `toggle`: así se activa en cada cambio (por ejemplo encendido y otra vez apagado).",
|
|
321
|
+
"admin.trigger.label": "Descripción",
|
|
322
|
+
"admin.trigger.sourceState": "Estado",
|
|
323
|
+
"admin.trigger.mode": "Disparador",
|
|
324
|
+
"admin.trigger.modeCondition": "El estado lleva el valor",
|
|
325
|
+
"admin.trigger.modeUser": "El valor es el empleado",
|
|
326
|
+
"admin.trigger.condition": "Valor",
|
|
327
|
+
"admin.trigger.user": "Empleado",
|
|
328
|
+
"admin.trigger.action": "Acción",
|
|
329
|
+
"admin.trigger.actionPunch": "Fichar (entrada o salida)",
|
|
330
|
+
"admin.trigger.actionQuickPunch": "Fichar con redondeo rápido",
|
|
331
|
+
"admin.trigger.actionPresent": "Marcar como presente",
|
|
332
|
+
"admin.trigger.actionAbsent": "Marcar como ausente",
|
|
333
|
+
"admin.trigger.cooldown": "Bloqueo (segundos)",
|
|
334
|
+
"admin.trigger.active": "Activo",
|
|
335
|
+
"admin.trigger.add": "Añadir acción",
|
|
336
|
+
"admin.trigger.lastFired": "Última ejecución",
|
|
337
|
+
"admin.trigger.empty": "Todavía no hay acciones.",
|
|
338
|
+
"admin.trigger.conditionHint": "Valor o `toggle` para activarse en cada cambio",
|
|
339
|
+
"admin.settings.automations": "Reglas (automáticas)",
|
|
340
|
+
"admin.settings.automationsHint": "Lo que hace el adaptador por su cuenta: fichar la salida a la hora local configurada, avisar de una salida que falta o recordar tras trabajar demasiado tiempo sin pausa. Cada regla se ejecuta como máximo una vez por empleado y día.",
|
|
341
|
+
"admin.automation.kind": "Tipo",
|
|
342
|
+
"admin.automation.kindClockIn": "Fichar la entrada automáticamente",
|
|
343
|
+
"admin.automation.kindClockOut": "Fichar la salida automáticamente",
|
|
344
|
+
"admin.automation.kindMissingPunch": "Avisar de salida que falta",
|
|
345
|
+
"admin.automation.kindBreakReminder": "Recordatorio de pausa",
|
|
346
|
+
"admin.automation.at": "Hora",
|
|
347
|
+
"admin.automation.atHint": "Hora local del empleado",
|
|
348
|
+
"admin.automation.after": "Tras (minutos)",
|
|
349
|
+
"admin.automation.user": "Empleado",
|
|
350
|
+
"admin.automation.allUsers": "todos los empleados",
|
|
351
|
+
"admin.automation.add": "Añadir regla",
|
|
352
|
+
"admin.automation.empty": "Todavía no hay reglas.",
|
|
353
|
+
"admin.automation.runs": "Últimas ejecuciones",
|
|
354
|
+
"admin.automation.weekdays": "Días de la semana",
|
|
355
|
+
"admin.automation.repeat": "Repetición",
|
|
356
|
+
"admin.automation.repeatDay": "una vez al día",
|
|
357
|
+
"admin.automation.repeatWeek": "una vez por semana",
|
|
358
|
+
"admin.settings.setting.report_font_path": "Fuente para PDF"
|
|
359
|
+
}
|