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 ausência",
|
|
3
|
+
"absences.created": "Ausência solicitada.",
|
|
4
|
+
"absences.empty": "Não houve ausências neste ano.",
|
|
5
|
+
"absences.from": "De",
|
|
6
|
+
"absences.portion": "Fração do dia",
|
|
7
|
+
"absences.status": "Status",
|
|
8
|
+
"absences.title": "Ausências",
|
|
9
|
+
"absences.to": "Para",
|
|
10
|
+
"absences.type": "Tipo",
|
|
11
|
+
"absences.typeHint": "Código do tipo de ausência, por ex. F para férias",
|
|
12
|
+
"admin.backup": "Cópias de segurança",
|
|
13
|
+
"admin.backup.create": "Crie backup agora",
|
|
14
|
+
"admin.backup.upload": "Enviar cópia",
|
|
15
|
+
"admin.backup.uploadHint": "Escolhe uma cópia descarregada (.sqlite) - é verificada e aplicada no próximo arranque.",
|
|
16
|
+
"admin.backup.delete": "Eliminar",
|
|
17
|
+
"admin.backup.deleteTitle": "Eliminar cópia",
|
|
18
|
+
"admin.backup.deleteConfirm": "A cópia {{name}} é eliminada. Isto não pode ser anulado.",
|
|
19
|
+
"admin.backup.done": "Backup {{name}} escrito, {{removed}} arquivo(s) antigo(s) removido(s).",
|
|
20
|
+
"admin.backup.empty": "Ainda não há backups.",
|
|
21
|
+
"admin.backup.retention": "Os backups com mais de {{days}} dias são removidos, o mais recente é sempre mantido.",
|
|
22
|
+
"admin.forbidden": "Você não tem permissão para abrir a administração.",
|
|
23
|
+
"admin.title": "Administração",
|
|
24
|
+
"admin.user.active": "Ativo",
|
|
25
|
+
"admin.user.create": "Adicionar funcionário",
|
|
26
|
+
"admin.user.empty": "Ainda não há funcionários.",
|
|
27
|
+
"admin.user.inactive": "Desativado",
|
|
28
|
+
"admin.user.login": "Conecte-se",
|
|
29
|
+
"admin.user.name": "Nome",
|
|
30
|
+
"admin.user.newPin": "Novo PIN",
|
|
31
|
+
"admin.user.password": "Senha",
|
|
32
|
+
"admin.user.passwordHint": "Pelo menos 8 caracteres com letras maiúsculas e minúsculas e dígitos.",
|
|
33
|
+
"admin.user.pin": "PIN",
|
|
34
|
+
"admin.user.pinHint": "4 a 8 dígitos para o terminal",
|
|
35
|
+
"admin.user.pinTitle": "PIN do crachá de {{name}}",
|
|
36
|
+
"admin.user.roles": "Funções",
|
|
37
|
+
"admin.users": "Funcionários",
|
|
38
|
+
"app.offline": "Off-line – marcações na fila",
|
|
39
|
+
"app.online": "Conectado",
|
|
40
|
+
"app.title": "Controle de tempo",
|
|
41
|
+
"common.cancel": "Cancelar",
|
|
42
|
+
"common.close": "Fechar",
|
|
43
|
+
"common.loading": "Carregando…",
|
|
44
|
+
"common.none": "–",
|
|
45
|
+
"common.refresh": "Atualizar",
|
|
46
|
+
"common.retry": "Tentar novamente",
|
|
47
|
+
"common.save": "Salvar",
|
|
48
|
+
"error.bad_request": "A entrada não foi aceita.",
|
|
49
|
+
"error.conflict": "A alteração entra em conflito com os dados existentes.",
|
|
50
|
+
"error.csrf_rejected": "A solicitação foi rejeitada por motivos de segurança. Tente novamente.",
|
|
51
|
+
"error.invalid_credentials": "O nome de usuário ou a senha não estão corretos.",
|
|
52
|
+
"error.locked_out": "Muitas tentativas fracassadas. Por favor, tente novamente mais tarde.",
|
|
53
|
+
"error.network_error": "O servidor não está acessível.",
|
|
54
|
+
"error.no_session": "Sua sessão expirou, faça login novamente.",
|
|
55
|
+
"error.not_found": "Não encontrado.",
|
|
56
|
+
"error.permission_denied": "Você não tem permissão para fazer isso.",
|
|
57
|
+
"error.report_font_missing": "Este relatório precisa de uma fonte Unicode (report_font_path).",
|
|
58
|
+
"error.revision_conflict": "A marcação foi alterada nesse meio tempo, por favor recarregue.",
|
|
59
|
+
"error.session_expired": "Sua sessão expirou, faça login novamente.",
|
|
60
|
+
"error.unknown_error": "Erro inesperado.",
|
|
61
|
+
"error.user_inactive": "Esta conta está desativada.",
|
|
62
|
+
"login.failed": "Falha no login",
|
|
63
|
+
"login.login": "Nome de usuário",
|
|
64
|
+
"login.password": "Senha",
|
|
65
|
+
"login.submit": "Entrar",
|
|
66
|
+
"login.title": "Entrar",
|
|
67
|
+
"month.absence": "Ausência",
|
|
68
|
+
"month.balance": "Equilíbrio",
|
|
69
|
+
"error.edit_window_closed": "Fora da janela de correção",
|
|
70
|
+
"admin.profile.pauseRules": "Regras de pausa próprias",
|
|
71
|
+
"admin.profile.pauseRulesHint": "Regras só para este trabalhador: substituem a regra da empresa com o mesmo «a partir de minutos». Sem regras próprias aplica-se a escala da empresa.",
|
|
72
|
+
"report.csv": "Dados brutos (CSV)",
|
|
73
|
+
"month.edit": "Corrigir",
|
|
74
|
+
"month.editTitle": "Corrigir picagens · {{date}}",
|
|
75
|
+
"month.editHint": "Só dentro da janela de correção - os dias mais antigos são alterados pela administração.",
|
|
76
|
+
"month.time": "Hora",
|
|
77
|
+
"month.direction": "Direção",
|
|
78
|
+
"month.directionIn": "Entrada",
|
|
79
|
+
"month.directionOut": "Saída",
|
|
80
|
+
"month.addPunch": "Adicionar picagem",
|
|
81
|
+
"month.pause": "Pausa",
|
|
82
|
+
"month.paidBreak": "dos quais pago",
|
|
83
|
+
"month.empty": "Não há dias neste mês.",
|
|
84
|
+
"month.holiday": "Feriado",
|
|
85
|
+
"month.months": "Meses do ano",
|
|
86
|
+
"month.next": "Próximo mês",
|
|
87
|
+
"month.open": "em aberto",
|
|
88
|
+
"month.previous": "Mês anterior",
|
|
89
|
+
"month.target": "Alvo",
|
|
90
|
+
"month.title": "Mês",
|
|
91
|
+
"month.worked": "Trabalhado",
|
|
92
|
+
"nav.absences": "Ausências",
|
|
93
|
+
"nav.dashboard": "Marcação",
|
|
94
|
+
"nav.logout": "sair",
|
|
95
|
+
"nav.menu": "Menu",
|
|
96
|
+
"nav.month": "Mês",
|
|
97
|
+
"nav.profile": "Perfil",
|
|
98
|
+
"nav.reports": "Relatórios",
|
|
99
|
+
"nav.sync": "Sincronização",
|
|
100
|
+
"profile.changePassword": "Alterar a senha",
|
|
101
|
+
"profile.changed": "Senha alterada, faça login novamente.",
|
|
102
|
+
"profile.language": "Linguagem",
|
|
103
|
+
"profile.newPassword": "Nova Senha",
|
|
104
|
+
"profile.roles": "Permissões",
|
|
105
|
+
"profile.title": "Perfil",
|
|
106
|
+
"profile.user": "Usuário",
|
|
107
|
+
"punch.balance": "Saldo hoje",
|
|
108
|
+
"punch.closed": "Não marcado",
|
|
109
|
+
"punch.in": "Marcar entrada",
|
|
110
|
+
"punch.last": "Última marcação {{time}}",
|
|
111
|
+
"punch.note": "Observação",
|
|
112
|
+
"punch.now": "Marcar",
|
|
113
|
+
"punch.open": "Marcado desde {{time}}",
|
|
114
|
+
"punch.out": "Marcar saída",
|
|
115
|
+
"punch.queued": "Salvo off-line – será enviado automaticamente",
|
|
116
|
+
"punch.quick": "Marcação rápida",
|
|
117
|
+
"punch.sent": "Marcação guardada ({{time}})",
|
|
118
|
+
"punch.target": "Objetivo hoje",
|
|
119
|
+
"punch.worked": "Trabalhado hoje",
|
|
120
|
+
"report.failed": "Não foi possível criar a instrução.",
|
|
121
|
+
"report.pdf": "PDF",
|
|
122
|
+
"report.xls": "Excel",
|
|
123
|
+
"reports.empty": "Não há dados para este período.",
|
|
124
|
+
"reports.monthTotals": "Totais do mês",
|
|
125
|
+
"reports.overtime": "Horas extra",
|
|
126
|
+
"reports.paidOut": "Pago: {{minutes}}",
|
|
127
|
+
"reports.title": "Relatórios",
|
|
128
|
+
"reports.vacation": "Férias (tiradas/direito)",
|
|
129
|
+
"reports.year": "Ano",
|
|
130
|
+
"reports.yearTotals": "Totais do ano",
|
|
131
|
+
"sync.accept": "Mantenha o valor do servidor",
|
|
132
|
+
"sync.conflictOf": "{{date}} · {{time}}",
|
|
133
|
+
"sync.conflicts": "Conflitos abertos",
|
|
134
|
+
"sync.dismiss": "Descartar",
|
|
135
|
+
"sync.done": "Enviado: {{accepted}}, duplicatas: {{duplicates}}, conflitos: {{conflicts}}",
|
|
136
|
+
"sync.empty": "Sem conflitos abertos.",
|
|
137
|
+
"sync.flush": "Enviar agora",
|
|
138
|
+
"sync.none": "Nada para enviar.",
|
|
139
|
+
"sync.pending": "{{count}} marcação(ões) na fila",
|
|
140
|
+
"sync.permission": "Você não tem permissão para resolver conflitos.",
|
|
141
|
+
"sync.resolved": "Conflito resolvido.",
|
|
142
|
+
"sync.title": "Sincronização",
|
|
143
|
+
"terminal.title": "Terminal",
|
|
144
|
+
"terminal.deviceToken": "Token do dispositivo",
|
|
145
|
+
"terminal.connect": "Ligar",
|
|
146
|
+
"terminal.badge": "Cartão",
|
|
147
|
+
"terminal.noPin": "Não é necessário PIN neste terminal.",
|
|
148
|
+
"terminal.pin": "PIN",
|
|
149
|
+
"terminal.select": "Escolha o nome",
|
|
150
|
+
"terminal.disabled": "O terminal está desligado nas configurações do adaptador.",
|
|
151
|
+
"admin.terminals": "Terminais",
|
|
152
|
+
"admin.terminal.name": "Nome",
|
|
153
|
+
"admin.terminal.location": "Localização",
|
|
154
|
+
"admin.terminal.pinRequired": "Os funcionários precisam do seu PIN",
|
|
155
|
+
"admin.terminal.create": "Criar terminal",
|
|
156
|
+
"admin.terminal.tokenOnce": "Copie agora o token do dispositivo — é guardado apenas como hash e mostrado uma única vez:",
|
|
157
|
+
"admin.terminal.url": "Abra este endereço no dispositivo do quiosque:",
|
|
158
|
+
"admin.terminal.revoke": "Revogar",
|
|
159
|
+
"admin.terminal.revoked": "revogado",
|
|
160
|
+
"admin.terminal.users": "Funcionários",
|
|
161
|
+
"admin.terminal.usersHint": "Sem seleção, todos os funcionários aparecem no terminal.",
|
|
162
|
+
"admin.terminal.usersAll": "todos os funcionários",
|
|
163
|
+
"admin.terminal.empty": "Ainda não foi criado nenhum terminal.",
|
|
164
|
+
"admin.terminal.confirmRevoke": "Revogar «{{name}}»? O token do dispositivo deixa de funcionar imediatamente.",
|
|
165
|
+
"admin.settings": "Configurações",
|
|
166
|
+
"admin.settings.fontPath": "Ficheiro de tipo de letra Unicode para os extratos PDF (.ttf/.otf)",
|
|
167
|
+
"admin.user.profile": "Perfil de trabalho",
|
|
168
|
+
"admin.user.profileTitle": "Perfil de trabalho · {{name}}",
|
|
169
|
+
"admin.profile.percent": "Grau de ocupação (%)",
|
|
170
|
+
"admin.profile.weeklyHours": "Horas semanais a 100 %",
|
|
171
|
+
"admin.profile.workdays": "Dias de trabalho",
|
|
172
|
+
"admin.profile.overtimeModel": "Modelo de horas extra",
|
|
173
|
+
"admin.profile.model.monthly": "Mensal",
|
|
174
|
+
"admin.profile.model.yearly": "Anual",
|
|
175
|
+
"admin.profile.model.cumulative": "Cumulativo",
|
|
176
|
+
"admin.profile.vacationPerYear": "Dias de férias por ano",
|
|
177
|
+
"admin.profile.vacationCarryover": "Férias transitadas (dias)",
|
|
178
|
+
"admin.profile.overtimeCarryover": "Horas extra transitadas (horas)",
|
|
179
|
+
"admin.profile.vorholzeitPerYear": "«Vorholzeit» por ano (horas)",
|
|
180
|
+
"admin.profile.pausePaid": "Minutos de pausa pagos por dia",
|
|
181
|
+
"admin.profile.pausePaidHint": "Esses minutos da pausa contam como tempo de trabalho (0 = a pausa não é paga).",
|
|
182
|
+
"admin.settings.pauseMode": "Pausas",
|
|
183
|
+
"admin.settings.pauseModeTitle": "Regra de pausas",
|
|
184
|
+
"admin.settings.pauseModeHint": "Como a pausa de um dia é determinada.",
|
|
185
|
+
"admin.settings.pauseRules": "Escala de pausas",
|
|
186
|
+
"admin.settings.pauseRulesHint": "Aplica-se aos dias sem pausa registada: a partir da duração indicada (do primeiro ao último registo de um bloco) os minutos são descontados.",
|
|
187
|
+
"admin.settings.pauseFrom": "de minutos",
|
|
188
|
+
"admin.settings.pauseTo": "até minutos (vazio = sem fim)",
|
|
189
|
+
"admin.settings.pauseMinutes": "minutos de pausa",
|
|
190
|
+
"admin.settings.pauseActive": "Regra ativa",
|
|
191
|
+
"admin.settings.pauseAdd": "Adicionar regra",
|
|
192
|
+
"admin.settings.pauseSave": "Guardar escala de pausas",
|
|
193
|
+
"admin.settings.pauseMode.auto": "Pausa registada, senão a tabela",
|
|
194
|
+
"admin.settings.pauseMode.punched": "Apenas pausas registadas",
|
|
195
|
+
"admin.settings.pauseMode.staffel": "Apenas a tabela de pausas",
|
|
196
|
+
"admin.settings.fontPathHint": "Necessário para russo, ucraniano e chinês; vazio = tipos de letra incorporados, que só cobrem Latin-1.",
|
|
197
|
+
"admin.settings.advanced": "Todas as configurações da instância (nomes técnicos, 1/0 para interruptores)",
|
|
198
|
+
"admin.settings.setting.edit_window_days": "Janela de edição (dias)",
|
|
199
|
+
"admin.settings.setting.quick_round_minutes": "Arredondamento (min)",
|
|
200
|
+
"admin.settings.setting.absence_calc_until_today": "Ausências até hoje",
|
|
201
|
+
"admin.settings.setting.absence_deduct_worktime": "Deduzir ausências",
|
|
202
|
+
"admin.settings.setting.print_limit_days": "Limite de impressão (dias)",
|
|
203
|
+
"admin.settings.setting.holiday_country": "País dos feriados",
|
|
204
|
+
"admin.settings.setting.default_language": "Idioma predefinido",
|
|
205
|
+
"admin.settings.setting.session_ttl_minutes": "Sessão (minutos)",
|
|
206
|
+
"admin.settings.setting.backup_retention_days": "Cópias (dias)",
|
|
207
|
+
"admin.settings.setting.attendance_list_visible": "Lista de presenças",
|
|
208
|
+
"admin.settings.setting.timezone": "Fuso horário",
|
|
209
|
+
"admin.settings.saved": "Configurações guardadas.",
|
|
210
|
+
"admin.holidays": "Feriados",
|
|
211
|
+
"admin.holiday.date": "Data (AAAA-MM-DD)",
|
|
212
|
+
"admin.holiday.name": "Nome",
|
|
213
|
+
"holiday.newYear": "Ano Novo",
|
|
214
|
+
"holiday.epiphany": "Dia de Reis",
|
|
215
|
+
"holiday.goodFriday": "Sexta-feira Santa",
|
|
216
|
+
"holiday.easterMonday": "Segunda-feira de Páscoa",
|
|
217
|
+
"holiday.labourDay": "Dia do Trabalhador",
|
|
218
|
+
"holiday.ascension": "Dia da Ascensão",
|
|
219
|
+
"holiday.whitMonday": "Segunda-feira de Pentecostes",
|
|
220
|
+
"holiday.corpusChristi": "Corpo de Deus",
|
|
221
|
+
"holiday.nationalDay": "Dia nacional",
|
|
222
|
+
"holiday.germanUnity": "Dia da Unidade Alemã",
|
|
223
|
+
"holiday.assumption": "Assunção de Nossa Senhora",
|
|
224
|
+
"holiday.allSaints": "Dia de Todos os Santos",
|
|
225
|
+
"holiday.immaculateConception": "Imaculada Conceição",
|
|
226
|
+
"holiday.christmas": "Natal",
|
|
227
|
+
"holiday.boxingDay": "Segundo dia de Natal",
|
|
228
|
+
"admin.holiday.add": "Adicionar feriado",
|
|
229
|
+
"admin.holiday.year": "Ano",
|
|
230
|
+
"admin.holiday.region": "Região (opcional)",
|
|
231
|
+
"admin.holiday.empty": "Não há feriados registados para este ano.",
|
|
232
|
+
"admin.tags": "Cartões (RFID/NFC)",
|
|
233
|
+
"admin.tag.label": "Rótulo",
|
|
234
|
+
"admin.tag.user": "Funcionário",
|
|
235
|
+
"admin.tag.create": "Criar cartão",
|
|
236
|
+
"admin.tag.linkOnce": "Escreva este link no cartão ou abra-o no telemóvel:",
|
|
237
|
+
"admin.tag.delete": "Eliminar",
|
|
238
|
+
"admin.tag.active": "ativo",
|
|
239
|
+
"admin.tag.expired": "expirado",
|
|
240
|
+
"admin.tag.revoked": "revogado",
|
|
241
|
+
"admin.tag.lastUsed": "último uso",
|
|
242
|
+
"admin.tag.remove": "Remover definitivamente",
|
|
243
|
+
"admin.tag.edit": "Editar",
|
|
244
|
+
"admin.tag.reissue": "Nova ligação",
|
|
245
|
+
"admin.tag.editTitle": "Editar crachá",
|
|
246
|
+
"admin.tag.editHint": "Outro funcionário ou uma nova validade emite uma nova ligação — a ligação anterior deixa de funcionar imediatamente.",
|
|
247
|
+
"admin.tag.validityDays": "Validade (dias)",
|
|
248
|
+
"admin.tag.oldLinkDead": "A ligação anterior já não funciona.",
|
|
249
|
+
"admin.tag.qrAlt": "Código QR da ligação do crachá",
|
|
250
|
+
"admin.tag.empty": "Ainda não foi criado nenhum cartão.",
|
|
251
|
+
"nav.statistics": "Estatísticas",
|
|
252
|
+
"statistics.from": "De",
|
|
253
|
+
"statistics.to": "Até",
|
|
254
|
+
"statistics.employee": "Funcionário",
|
|
255
|
+
"statistics.worked": "Trabalhado",
|
|
256
|
+
"statistics.target": "Objetivo",
|
|
257
|
+
"statistics.balance": "Saldo",
|
|
258
|
+
"statistics.openDays": "Dias abertos",
|
|
259
|
+
"statistics.totals": "Todos os funcionários",
|
|
260
|
+
"scan.title": "Cartão",
|
|
261
|
+
"scan.done": "Registado para {{name}} às {{time}}",
|
|
262
|
+
"scan.failed": "Não foi possível usar o cartão: {{reason}}",
|
|
263
|
+
"presence.title": "Presença",
|
|
264
|
+
"presence.present": "Presente",
|
|
265
|
+
"presence.absent": "Ausente",
|
|
266
|
+
"presence.tapPin": "Introduza o PIN para registar a entrada ou a saída",
|
|
267
|
+
"presence.cancel": "Cancelar",
|
|
268
|
+
"presence.updated": "{{name}} está agora {{state}}",
|
|
269
|
+
"presence.disabled": "O terminal de quiosque está desligado nas definições da instância.",
|
|
270
|
+
"admin.user.photo": "Fotografia",
|
|
271
|
+
"admin.user.photoTitle": "Fotografia de {{name}}",
|
|
272
|
+
"admin.user.photoChoose": "Escolher imagem",
|
|
273
|
+
"admin.user.photoRemove": "Remover imagem",
|
|
274
|
+
"admin.user.photoHint": "PNG, JPEG, WEBP ou GIF até 256 KB. Sem imagem é mostrado o marcador.",
|
|
275
|
+
"admin.corrections": "Correções de tempo",
|
|
276
|
+
"corrections.employee": "Colaborador",
|
|
277
|
+
"corrections.previous": "Mês anterior",
|
|
278
|
+
"corrections.next": "Mês seguinte",
|
|
279
|
+
"corrections.reason": "Motivo",
|
|
280
|
+
"corrections.reasonHint": "Fica registado no histórico (auditoria)",
|
|
281
|
+
"corrections.add": "Adicionar marcação ou dia",
|
|
282
|
+
"corrections.addTitle": "Adicionar marcação",
|
|
283
|
+
"corrections.addHint": "Deixe «saída» vazio quando falta apenas uma marcação",
|
|
284
|
+
"corrections.editTitle": "Alterar marcação",
|
|
285
|
+
"corrections.remove": "Eliminar marcação",
|
|
286
|
+
"corrections.date": "Data",
|
|
287
|
+
"corrections.from": "Entrada",
|
|
288
|
+
"corrections.to": "Saída",
|
|
289
|
+
"corrections.direction": "Direção",
|
|
290
|
+
"corrections.note": "Nota",
|
|
291
|
+
"corrections.empty": "Sem marcações neste mês",
|
|
292
|
+
"corrections.byAdmin": "adicionado pela administração",
|
|
293
|
+
"corrections.history": "Histórico",
|
|
294
|
+
"corrections.actor": "Por",
|
|
295
|
+
"corrections.actionCreate": "Adicionado",
|
|
296
|
+
"corrections.actionUpdate": "Alterado",
|
|
297
|
+
"corrections.actionDelete": "Excluído",
|
|
298
|
+
"keypad.backspace": "Apagar",
|
|
299
|
+
"admin.settings.branding": "Marca da empresa",
|
|
300
|
+
"admin.settings.brandingHint": "Logotipo, imagem de fundo e cor de fundo desta instalação. O ecrã de início de sessão e os ecrãs de quiosque também os mostram.",
|
|
301
|
+
"admin.settings.brandLogo": "Escolher logotipo",
|
|
302
|
+
"admin.settings.brandBackground": "Escolher fundo",
|
|
303
|
+
"admin.brand.imageResized": "Reduzida para visualização ({{size}}).",
|
|
304
|
+
"admin.brand.imageTooLarge": "Mesmo reduzida, a imagem continua demasiado grande.",
|
|
305
|
+
"admin.brand.imageType": "Só são possíveis PNG, JPEG, WEBP ou GIF.",
|
|
306
|
+
"admin.brand.imageUnreadable": "Não foi possível ler a imagem.",
|
|
307
|
+
"admin.settings.brandColor": "Cor do fundo",
|
|
308
|
+
"admin.settings.brandColorHint": "Valor hexadecimal como #1a2b3c, vazio para o valor predefinido",
|
|
309
|
+
"admin.settings.brandColorPresets": "Cores sugeridas",
|
|
310
|
+
"admin.settings.brandColorDefault": "Padrão",
|
|
311
|
+
"admin.backup.download": "Descarregar",
|
|
312
|
+
"admin.backup.restore": "Restaurar",
|
|
313
|
+
"admin.backup.restoreTitle": "Restaurar uma cópia de segurança",
|
|
314
|
+
"admin.backup.restoreConfirm": "A cópia de segurança {{name}} é aplicada no próximo arranque do adaptador; a base de dados atual fica guardada ao lado como ficheiro. Reinicie a instância depois disso.",
|
|
315
|
+
"admin.backup.pendingHint": "{{name}} é aplicada no próximo arranque ({{users}} colaboradores, {{entries}} marcações) - reinicie a instância.",
|
|
316
|
+
"error.backup_invalid": "Esse ficheiro não é uma cópia de segurança deste adaptador.",
|
|
317
|
+
"admin.settings.brandImageRemove": "Remover imagem",
|
|
318
|
+
"admin.settings.brandColorDefaultHint": "Repõe a cor e a imagem de fundo",
|
|
319
|
+
"admin.triggers": "Ações (ioBroker)",
|
|
320
|
+
"admin.triggersHint": "Um estado de outro adaptador marca o ponto ou define a presença — um leitor de impressão digital, um botão ou um contacto de porta. Só dispara quando o valor muda. Como valor pode escrever `toggle`: assim dispara em qualquer mudança (por exemplo ligar e desligar).",
|
|
321
|
+
"admin.trigger.label": "Descrição",
|
|
322
|
+
"admin.trigger.sourceState": "Estado",
|
|
323
|
+
"admin.trigger.mode": "Disparo",
|
|
324
|
+
"admin.trigger.modeCondition": "O estado tem o valor",
|
|
325
|
+
"admin.trigger.modeUser": "O valor é o funcionário",
|
|
326
|
+
"admin.trigger.condition": "Valor",
|
|
327
|
+
"admin.trigger.user": "Funcionário",
|
|
328
|
+
"admin.trigger.action": "Ação",
|
|
329
|
+
"admin.trigger.actionPunch": "Marcar (entrada ou saída)",
|
|
330
|
+
"admin.trigger.actionQuickPunch": "Marcar com arredondamento rápido",
|
|
331
|
+
"admin.trigger.actionPresent": "Definir como presente",
|
|
332
|
+
"admin.trigger.actionAbsent": "Definir como ausente",
|
|
333
|
+
"admin.trigger.cooldown": "Bloqueio (segundos)",
|
|
334
|
+
"admin.trigger.active": "Ativo",
|
|
335
|
+
"admin.trigger.add": "Adicionar ação",
|
|
336
|
+
"admin.trigger.lastFired": "Último disparo",
|
|
337
|
+
"admin.trigger.empty": "Ainda não há ações.",
|
|
338
|
+
"admin.trigger.conditionHint": "Valor ou `toggle` para disparar em qualquer mudança",
|
|
339
|
+
"admin.settings.automations": "Regras (automáticas)",
|
|
340
|
+
"admin.settings.automationsHint": "O que o adaptador faz sozinho: marcar a saída à hora local definida, avisar de uma saída em falta ou lembrar depois de trabalhar demasiado tempo sem pausa. Cada regra corre no máximo uma vez por funcionário e dia.",
|
|
341
|
+
"admin.automation.kind": "Tipo",
|
|
342
|
+
"admin.automation.kindClockIn": "Marcar entrada automaticamente",
|
|
343
|
+
"admin.automation.kindClockOut": "Marcar saída automaticamente",
|
|
344
|
+
"admin.automation.kindMissingPunch": "Avisar de saída em falta",
|
|
345
|
+
"admin.automation.kindBreakReminder": "Lembrete de pausa",
|
|
346
|
+
"admin.automation.at": "Hora",
|
|
347
|
+
"admin.automation.atHint": "Hora local do funcionário",
|
|
348
|
+
"admin.automation.after": "Após (minutos)",
|
|
349
|
+
"admin.automation.user": "Funcionário",
|
|
350
|
+
"admin.automation.allUsers": "todos os funcionários",
|
|
351
|
+
"admin.automation.add": "Adicionar regra",
|
|
352
|
+
"admin.automation.empty": "Ainda não há regras.",
|
|
353
|
+
"admin.automation.runs": "Últimas execuções",
|
|
354
|
+
"admin.automation.weekdays": "Dias da semana",
|
|
355
|
+
"admin.automation.repeat": "Repetição",
|
|
356
|
+
"admin.automation.repeatDay": "uma vez por dia",
|
|
357
|
+
"admin.automation.repeatWeek": "uma vez por semana",
|
|
358
|
+
"admin.settings.setting.report_font_path": "Fonte para PDF"
|
|
359
|
+
}
|