iobroker.time-tracker 0.4.1 → 0.4.2
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/README.md +8 -8
- package/build/lib/db/repositories/absences.js +29 -0
- package/build/lib/db/repositories/absences.js.map +2 -2
- package/build/lib/web/api.js +23 -9
- package/build/lib/web/api.js.map +2 -2
- package/io-package.json +14 -14
- package/package.json +1 -1
- package/src-pwa/src/i18n/de.json +7 -1
- package/src-pwa/src/i18n/en.json +7 -1
- package/src-pwa/src/i18n/es.json +7 -1
- package/src-pwa/src/i18n/fr.json +7 -1
- package/src-pwa/src/i18n/it.json +7 -1
- package/src-pwa/src/i18n/nl.json +7 -1
- package/src-pwa/src/i18n/pl.json +7 -1
- package/src-pwa/src/i18n/pt.json +7 -1
- package/src-pwa/src/i18n/ru.json +7 -1
- package/src-pwa/src/i18n/uk.json +7 -1
- package/src-pwa/src/i18n/zh-cn.json +7 -1
- package/www/assets/{index-dp7TWY3R.js → index-CrpENGIj.js} +3 -3
- package/www/assets/index-CrpENGIj.js.map +1 -0
- package/www/index.html +1 -1
- package/www/sw.js +1 -1
- package/www/sw.js.map +1 -1
- package/www/assets/index-dp7TWY3R.js.map +0 -1
package/io-package.json
CHANGED
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "time-tracker",
|
|
4
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.2",
|
|
5
5
|
"nogit": true,
|
|
6
6
|
"news": {
|
|
7
|
+
"0.4.2": {
|
|
8
|
+
"en": "fix: the roles appear in the language of the display (the database keeps “Administrator”, “Manager” and “Employee”, the app translates them now), the two date fields of “enter an absence” no longer overlap with their label, an absence type can be removed again as long as no absence uses it (new DELETE /absence-types/:id with a confirmation that names the type), and an inactive type stays in the lists of the administration while the employees no longer see it in their picker",
|
|
9
|
+
"de": "fix: die Rollen erscheinen in der Sprache der Anzeige (die Datenbank behält „Administrator“, „Manager“ und „Employee“, die App übersetzt sie jetzt), die beiden Datumsfelder von „Abwesenheit erfassen“ überlappen nicht mehr mit ihrer Beschriftung, eine Abwesenheitsart lässt sich wieder entfernen, solange keine Abwesenheit sie nutzt (neues DELETE /absence-types/:id mit einer Bestätigung, die die Art nennt), und eine inaktive Art bleibt in den Listen der Verwaltung, während die Mitarbeiter sie nicht mehr in ihrer Auswahl sehen",
|
|
10
|
+
"ru": "исправление: роли отображаются на языке интерфейса (база данных хранит «Administrator», «Manager» и «Employee», приложение теперь переводит их), два поля даты в «внести отсутствие» больше не перекрываются с подписью, вид отсутствия снова можно удалить, пока его не использует ни одно отсутствие (новый DELETE /absence-types/:id с подтверждением, называющим вид), а неактивный вид остаётся в списках администрирования, тогда как сотрудники его в выборе больше не видят",
|
|
11
|
+
"pt": "correção: as funções aparecem na língua do ecrã (a base de dados mantém «Administrator», «Manager» e «Employee», a aplicação traduz-as agora), os dois campos de data de «registar uma ausência» já não se sobrepõem à etiqueta, um tipo de ausência pode voltar a ser eliminado enquanto nenhuma ausência o usar (novo DELETE /absence-types/:id com uma confirmação que nomeia o tipo), e um tipo inativo permanece nas listas da administração enquanto os funcionários já não o veem na sua escolha",
|
|
12
|
+
"nl": "fix: de rollen verschijnen in de taal van de weergave (de database houdt “Administrator”, “Manager” en “Employee”, de app vertaalt ze nu), de twee datumvelden van “een afwezigheid invoeren” overlappen niet meer met hun label, een afwezigheidstype kan weer worden verwijderd zolang geen afwezigheid het gebruikt (nieuw DELETE /absence-types/:id met een bevestiging die het type noemt), en een inactief type blijft in de lijsten van het beheer terwijl de medewerkers het niet meer in hun keuzelijst zien",
|
|
13
|
+
"fr": "correctif : les rôles apparaissent dans la langue de l'affichage (la base de données garde « Administrator », « Manager » et « Employee », l'application les traduit désormais), les deux champs de date de « saisir une absence » ne chevauchent plus leur libellé, un type d'absence peut à nouveau être supprimé tant qu'aucune absence ne l'utilise (nouveau DELETE /absence-types/:id avec une confirmation qui nomme le type), et un type inactif reste dans les listes de l'administration tandis que les employés ne le voient plus dans leur choix",
|
|
14
|
+
"it": "correzione: i ruoli appaiono nella lingua dell'interfaccia (il database conserva «Administrator», «Manager» e «Employee», l'app li traduce ora), i due campi data di «inserisci un'assenza» non si sovrappongono più all'etichetta, un tipo di assenza può essere di nuovo rimosso finché nessuna assenza lo usa (nuovo DELETE /absence-types/:id con una conferma che nomina il tipo), e un tipo inattivo resta negli elenchi dell'amministrazione mentre i dipendenti non lo vedono più nella loro scelta",
|
|
15
|
+
"es": "corrección: los roles aparecen en el idioma de la pantalla (la base de datos conserva «Administrator», «Manager» y «Employee», la aplicación los traduce ahora), los dos campos de fecha de «registrar una ausencia» ya no se solapan con su etiqueta, un tipo de ausencia se puede volver a eliminar mientras ninguna ausencia lo use (nuevo DELETE /absence-types/:id con una confirmación que nombra el tipo), y un tipo inactivo permanece en las listas de la administración mientras los empleados ya no lo ven en su elección",
|
|
16
|
+
"pl": "poprawka: role pojawiają się w języku interfejsu (baza danych zachowuje „Administrator”, „Manager” i „Employee”, aplikacja tłumaczy je teraz), dwa pola daty w „wpisz nieobecność” nie nachodzą już na etykietę, rodzaj nieobecności można znów usunąć, dopóki nie używa go żadna nieobecność (nowy DELETE /absence-types/:id z potwierdzeniem nazywającym rodzaj), a nieaktywny rodzaj pozostaje na listach administracji, gdy pracownicy nie widzą go już w swoim wyborze",
|
|
17
|
+
"uk": "виправлення: ролі відображаються мовою інтерфейсу (база даних зберігає «Administrator», «Manager» і «Employee», застосунок тепер перекладає їх), два поля дати у «внести відсутність» більше не перекриваються з підписом, вид відсутності знову можна видалити, доки його не використовує жодна відсутність (новий DELETE /absence-types/:id із підтвердженням, що називає вид), а неактивний вид залишається у списках адміністрування, тоді як працівники його у своєму виборі більше не бачать",
|
|
18
|
+
"zh-cn": "修复:角色现在以界面语言显示(数据库保留「Administrator」「Manager」「Employee」,应用现在会翻译它们);「登记缺勤」的两个日期字段不再与标签重叠;只要没有缺勤使用该类型,就可以再次删除它(新增 DELETE /absence-types/:id,并有指明该类型的确认提示);停用的类型仍保留在管理列表中,而员工在选择中不再看到它"
|
|
19
|
+
},
|
|
7
20
|
"0.4.1": {
|
|
8
21
|
"en": "docs: the installation chapter no longer carries the build steps for work on the sources — they live in `CONTRIBUTING.md` and `docs/entwicklung.md`, so the README stays a manual for users",
|
|
9
22
|
"de": "docs: das Installationskapitel der README enthält nicht mehr die Build-Schritte für die Arbeit an den Quellen — sie stehen in `CONTRIBUTING.md` und `docs/entwicklung.md`, die README bleibt eine Anleitung für Anwender",
|
|
@@ -81,19 +94,6 @@
|
|
|
81
94
|
"pl": "poprawka: tablica obecności pokazuje teraz rzeczywiście biegnący czas pracy dnia. API dolicza minuty otwartego wpisu do swojej odpowiedzi (zapisany agregat dnia zmienia się tylko przy wpisie, dlatego wartość stała), kafelek pokazuje tę wartość bezpośrednio, a tablica odświeża się co 20 sekund zamiast co 60",
|
|
82
95
|
"uk": "виправлення: табло присутності тепер показує дійсно поточний робочий час дня. API додає хвилини відкритої відмітки до своєї відповіді (збережений агрегат дня змінюється лише при відмітці, тому значення стояло), плитка показує це значення напряму, а табло оновлюється кожні 20 секунд замість 60",
|
|
83
96
|
"zh-cn": "修复:在岗看板现在显示真正持续更新的当天工作时间。API 会在响应中加入未结束打卡的分钟数(已保存的当日汇总只在打卡时变化,因此数值一直不动),卡片直接显示该数值,看板改为每 20 秒刷新一次(原为 60 秒)"
|
|
84
|
-
},
|
|
85
|
-
"0.3.0": {
|
|
86
|
-
"en": "new: the presence board can show the working time of today on the employee tiles — next to `Present`/`Away`, for example `1:23` (and `0:00` before the first punch). It is switched on **per employee** in the work profile (*Arbeitszeit auf der Anwesenheitskarte*), because the board is visible before the PIN is entered; without that permission the API never sends the minutes. While the employee is present the tile keeps counting",
|
|
87
|
-
"de": "neu: die Anwesenheitskarte kann die heute geleistete Arbeitszeit auf den Mitarbeiter-Kacheln zeigen — neben `Anwesend`/`Abwesend`, z. B. `1:23` (und `0:00` vor dem ersten Stempel). Eingeschaltet wird das **pro Mitarbeiter** im Arbeitsprofil (*Arbeitszeit auf der Anwesenheitskarte*), weil die Karte schon vor der PIN-Eingabe sichtbar ist; ohne diese Freigabe liefert die API die Minuten gar nicht erst. Solange der Mitarbeiter anwesend ist, zählt die Kachel weiter",
|
|
88
|
-
"ru": "новое: карточка присутствия может показывать отработанное сегодня время на плитках сотрудников — рядом с `присутствует`/`отсутствует`, например `1:23` (и `0:00` до первой отметки). Включается **для каждого сотрудника** в рабочем профиле (*Arbeitszeit auf der Anwesenheitskarte*), потому что карточка видна ещё до ввода PIN; без этого разрешения API вообще не передаёт минуты. Пока сотрудник на месте, плитка продолжает считать",
|
|
89
|
-
"pt": "novo: o cartão de presença pode mostrar o tempo trabalhado hoje nas placas dos funcionários — ao lado de `presente`/`ausente`, por exemplo `1:23` (e `0:00` antes da primeira marcação). Ativa-se **por funcionário** no perfil de trabalho (*Arbeitszeit auf der Anwesenheitskarte*), porque o cartão é visível antes de introduzir o PIN; sem essa permissão a API não envia os minutos. Enquanto o funcionário está presente, a placa continua a contar",
|
|
90
|
-
"nl": "nieuw: het aanwezigheidsbord kan de vandaag gewerkte tijd op de tegels tonen — naast `aanwezig`/`afwezig`, bijvoorbeeld `1:23` (en `0:00` vóór de eerste stempeling). Het wordt **per medewerker** in het werkprofiel aangezet (*Arbeitszeit auf der Anwesenheitskarte*), omdat het bord al vóór het invoeren van de PIN zichtbaar is; zonder die vrijgave stuurt de API de minuten niet eens. Zolang de medewerker aanwezig is, telt de tegel door",
|
|
91
|
-
"fr": "nouveau : le tableau de présence peut afficher le temps travaillé aujourd'hui sur les tuiles des employés — à côté de `présent`/`absent`, par exemple `1:23` (et `0:00` avant le premier pointage). Cela s'active **par employé** dans le profil de travail (*Arbeitszeit auf der Anwesenheitskarte*), car le tableau est visible avant la saisie du PIN ; sans cette autorisation, l'API n'envoie même pas les minutes. Tant que l'employé est présent, la tuile continue de compter",
|
|
92
|
-
"it": "novità: la bacheca delle presenze può mostrare il tempo lavorato oggi sulle schede dei dipendenti — accanto a `presente`/`assente`, per esempio `1:23` (e `0:00` prima della prima timbratura). Si attiva **per dipendente** nel profilo di lavoro (*Arbeitszeit auf der Anwesenheitskarte*), perché la bacheca è visibile prima di inserire il PIN; senza questa autorizzazione l'API non invia affatto i minuti. Finché il dipendente è presente, la scheda continua a contare",
|
|
93
|
-
"es": "nuevo: el tablero de presencia puede mostrar el tiempo trabajado hoy en las tarjetas de los empleados — junto a `presente`/`ausente`, por ejemplo `1:23` (y `0:00` antes del primer fichaje). Se activa **por empleado** en el perfil de trabajo (*Arbeitszeit auf der Anwesenheitskarte*), porque el tablero es visible antes de introducir el PIN; sin esa autorización la API no envía los minutos. Mientras el empleado está presente, la tarjeta sigue contando",
|
|
94
|
-
"pl": "nowość: tablica obecności może pokazywać czas przepracowany dzisiaj na kafelkach pracowników — obok `obecny`/`nieobecny`, np. `1:23` (i `0:00` przed pierwszym wpisem). Włącza się to **dla każdego pracownika** w profilu pracy (*Arbeitszeit auf der Anwesenheitskarte*), bo tablica jest widoczna jeszcze przed wpisaniem PIN-u; bez tej zgody API w ogóle nie przesyła minut. Dopóki pracownik jest obecny, kafelek liczy dalej",
|
|
95
|
-
"uk": "нове: табло присутності може показувати відпрацьований сьогодні час на плитках працівників — поряд з `присутній`/`відсутній`, наприклад `1:23` (і `0:00` до першої відмітки). Вмикається **для кожного працівника** у робочому профілі (*Arbeitszeit auf der Anwesenheitskarte*), бо табло видно ще до введення PIN; без цього дозволу API взагалі не надсилає хвилини. Поки працівник на місці, плитка продовжує рахувати",
|
|
96
|
-
"zh-cn": "新增:在岗看板可以在员工卡片上显示今天的工作时间 —— 与「在岗/缺勤」并列,例如 `1:23`(首次打卡前为 `0:00`)。此功能在**每位员工的**工作资料中开启(*Arbeitszeit auf der Anwesenheitskarte*),因为在岗看板在输入 PIN 之前就可见;没有该授权时 API 根本不会发送分钟数。员工在岗期间卡片会持续计时"
|
|
97
97
|
}
|
|
98
98
|
},
|
|
99
99
|
"titleLang": {
|
package/package.json
CHANGED
package/src-pwa/src/i18n/de.json
CHANGED
|
@@ -402,5 +402,11 @@
|
|
|
402
402
|
"absences.state.requested": "beantragt",
|
|
403
403
|
"absences.state.approved": "genehmigt",
|
|
404
404
|
"absences.state.rejected": "abgelehnt",
|
|
405
|
-
"absences.reason": "Begründung"
|
|
405
|
+
"absences.reason": "Begründung",
|
|
406
|
+
"role.admin": "Administrator",
|
|
407
|
+
"role.manager": "Manager",
|
|
408
|
+
"role.employee": "Mitarbeiter",
|
|
409
|
+
"admin.absenceTypes.remove": "Löschen",
|
|
410
|
+
"admin.absenceTypes.removeTitle": "Art löschen",
|
|
411
|
+
"admin.absenceTypes.removeConfirm": "„{{name}}“ wirklich entfernen? Abwesenheiten, die diese Art noch nutzen, müssen zuerst gelöscht oder umgestellt werden."
|
|
406
412
|
}
|
package/src-pwa/src/i18n/en.json
CHANGED
|
@@ -402,5 +402,11 @@
|
|
|
402
402
|
"absences.state.requested": "requested",
|
|
403
403
|
"absences.state.approved": "approved",
|
|
404
404
|
"absences.state.rejected": "rejected",
|
|
405
|
-
"absences.reason": "Reason"
|
|
405
|
+
"absences.reason": "Reason",
|
|
406
|
+
"role.admin": "Administrator",
|
|
407
|
+
"role.manager": "Manager",
|
|
408
|
+
"role.employee": "Employee",
|
|
409
|
+
"admin.absenceTypes.remove": "Delete",
|
|
410
|
+
"admin.absenceTypes.removeTitle": "Delete the type",
|
|
411
|
+
"admin.absenceTypes.removeConfirm": "Really remove “{{name}}”? Absences that still use this type have to be deleted or changed first."
|
|
406
412
|
}
|
package/src-pwa/src/i18n/es.json
CHANGED
|
@@ -402,5 +402,11 @@
|
|
|
402
402
|
"absences.state.requested": "solicitado",
|
|
403
403
|
"absences.state.approved": "aprobado",
|
|
404
404
|
"absences.state.rejected": "rechazado",
|
|
405
|
-
"absences.reason": "Motivo"
|
|
405
|
+
"absences.reason": "Motivo",
|
|
406
|
+
"role.admin": "Administrador",
|
|
407
|
+
"role.manager": "Responsable",
|
|
408
|
+
"role.employee": "Empleado",
|
|
409
|
+
"admin.absenceTypes.remove": "Eliminar",
|
|
410
|
+
"admin.absenceTypes.removeTitle": "Eliminar el tipo",
|
|
411
|
+
"admin.absenceTypes.removeConfirm": "¿Eliminar «{{name}}» de verdad? Las ausencias que aún usan este tipo deben borrarse o cambiarse primero."
|
|
406
412
|
}
|
package/src-pwa/src/i18n/fr.json
CHANGED
|
@@ -402,5 +402,11 @@
|
|
|
402
402
|
"absences.state.requested": "demandé",
|
|
403
403
|
"absences.state.approved": "approuvé",
|
|
404
404
|
"absences.state.rejected": "refusé",
|
|
405
|
-
"absences.reason": "Motif"
|
|
405
|
+
"absences.reason": "Motif",
|
|
406
|
+
"role.admin": "Administrateur",
|
|
407
|
+
"role.manager": "Responsable",
|
|
408
|
+
"role.employee": "Employé",
|
|
409
|
+
"admin.absenceTypes.remove": "Supprimer",
|
|
410
|
+
"admin.absenceTypes.removeTitle": "Supprimer le type",
|
|
411
|
+
"admin.absenceTypes.removeConfirm": "Vraiment supprimer « {{name}} » ? Les absences qui utilisent encore ce type doivent d'abord être supprimées ou modifiées."
|
|
406
412
|
}
|
package/src-pwa/src/i18n/it.json
CHANGED
|
@@ -402,5 +402,11 @@
|
|
|
402
402
|
"absences.state.requested": "richiesto",
|
|
403
403
|
"absences.state.approved": "approvato",
|
|
404
404
|
"absences.state.rejected": "rifiutato",
|
|
405
|
-
"absences.reason": "Motivo"
|
|
405
|
+
"absences.reason": "Motivo",
|
|
406
|
+
"role.admin": "Amministratore",
|
|
407
|
+
"role.manager": "Responsabile",
|
|
408
|
+
"role.employee": "Dipendente",
|
|
409
|
+
"admin.absenceTypes.remove": "Elimina",
|
|
410
|
+
"admin.absenceTypes.removeTitle": "Elimina il tipo",
|
|
411
|
+
"admin.absenceTypes.removeConfirm": "Rimuovere davvero «{{name}}»? Le assenze che usano ancora questo tipo devono prima essere eliminate o modificate."
|
|
406
412
|
}
|
package/src-pwa/src/i18n/nl.json
CHANGED
|
@@ -402,5 +402,11 @@
|
|
|
402
402
|
"absences.state.requested": "aangevraagd",
|
|
403
403
|
"absences.state.approved": "goedgekeurd",
|
|
404
404
|
"absences.state.rejected": "afgewezen",
|
|
405
|
-
"absences.reason": "Reden"
|
|
405
|
+
"absences.reason": "Reden",
|
|
406
|
+
"role.admin": "Beheerder",
|
|
407
|
+
"role.manager": "Leidinggevende",
|
|
408
|
+
"role.employee": "Medewerker",
|
|
409
|
+
"admin.absenceTypes.remove": "Verwijderen",
|
|
410
|
+
"admin.absenceTypes.removeTitle": "Het type verwijderen",
|
|
411
|
+
"admin.absenceTypes.removeConfirm": "“{{name}}” echt verwijderen? Afwezigheden die dit type nog gebruiken moeten eerst worden verwijderd of gewijzigd."
|
|
406
412
|
}
|
package/src-pwa/src/i18n/pl.json
CHANGED
|
@@ -402,5 +402,11 @@
|
|
|
402
402
|
"absences.state.requested": "złożony",
|
|
403
403
|
"absences.state.approved": "zatwierdzony",
|
|
404
404
|
"absences.state.rejected": "odrzucony",
|
|
405
|
-
"absences.reason": "Powód"
|
|
405
|
+
"absences.reason": "Powód",
|
|
406
|
+
"role.admin": "Administrator systemu",
|
|
407
|
+
"role.manager": "Kierownik",
|
|
408
|
+
"role.employee": "Pracownik",
|
|
409
|
+
"admin.absenceTypes.remove": "Usuń",
|
|
410
|
+
"admin.absenceTypes.removeTitle": "Usuń rodzaj",
|
|
411
|
+
"admin.absenceTypes.removeConfirm": "Naprawdę usunąć „{{name}}”? Nieobecności, które nadal używają tego rodzaju, trzeba najpierw usunąć lub zmienić."
|
|
406
412
|
}
|
package/src-pwa/src/i18n/pt.json
CHANGED
|
@@ -402,5 +402,11 @@
|
|
|
402
402
|
"absences.state.requested": "pedido",
|
|
403
403
|
"absences.state.approved": "aprovado",
|
|
404
404
|
"absences.state.rejected": "rejeitado",
|
|
405
|
-
"absences.reason": "Motivo"
|
|
405
|
+
"absences.reason": "Motivo",
|
|
406
|
+
"role.admin": "Administrador",
|
|
407
|
+
"role.manager": "Gestor",
|
|
408
|
+
"role.employee": "Funcionário",
|
|
409
|
+
"admin.absenceTypes.remove": "Eliminar",
|
|
410
|
+
"admin.absenceTypes.removeTitle": "Eliminar o tipo",
|
|
411
|
+
"admin.absenceTypes.removeConfirm": "Remover «{{name}}» mesmo? As ausências que ainda usam este tipo têm de ser eliminadas ou alteradas primeiro."
|
|
406
412
|
}
|
package/src-pwa/src/i18n/ru.json
CHANGED
|
@@ -402,5 +402,11 @@
|
|
|
402
402
|
"absences.state.requested": "запрошено",
|
|
403
403
|
"absences.state.approved": "одобрено",
|
|
404
404
|
"absences.state.rejected": "отклонено",
|
|
405
|
-
"absences.reason": "Причина"
|
|
405
|
+
"absences.reason": "Причина",
|
|
406
|
+
"role.admin": "Администратор",
|
|
407
|
+
"role.manager": "Менеджер",
|
|
408
|
+
"role.employee": "Сотрудник",
|
|
409
|
+
"admin.absenceTypes.remove": "Удалить",
|
|
410
|
+
"admin.absenceTypes.removeTitle": "Удалить вид",
|
|
411
|
+
"admin.absenceTypes.removeConfirm": "Действительно удалить «{{name}}»? Отсутствия, которые ещё используют этот вид, нужно сначала удалить или изменить."
|
|
406
412
|
}
|
package/src-pwa/src/i18n/uk.json
CHANGED
|
@@ -402,5 +402,11 @@
|
|
|
402
402
|
"absences.state.requested": "запитано",
|
|
403
403
|
"absences.state.approved": "схвалено",
|
|
404
404
|
"absences.state.rejected": "відхилено",
|
|
405
|
-
"absences.reason": "Причина"
|
|
405
|
+
"absences.reason": "Причина",
|
|
406
|
+
"role.admin": "Адміністратор",
|
|
407
|
+
"role.manager": "Керівник",
|
|
408
|
+
"role.employee": "Працівник",
|
|
409
|
+
"admin.absenceTypes.remove": "Видалити",
|
|
410
|
+
"admin.absenceTypes.removeTitle": "Видалити вид",
|
|
411
|
+
"admin.absenceTypes.removeConfirm": "Справді видалити «{{name}}»? Відсутності, які ще використовують цей вид, потрібно спочатку видалити або змінити."
|
|
406
412
|
}
|
|
@@ -402,5 +402,11 @@
|
|
|
402
402
|
"absences.state.requested": "已申请",
|
|
403
403
|
"absences.state.approved": "已批准",
|
|
404
404
|
"absences.state.rejected": "已拒绝",
|
|
405
|
-
"absences.reason": "原因"
|
|
405
|
+
"absences.reason": "原因",
|
|
406
|
+
"role.admin": "管理员",
|
|
407
|
+
"role.manager": "主管",
|
|
408
|
+
"role.employee": "员工",
|
|
409
|
+
"admin.absenceTypes.remove": "删除",
|
|
410
|
+
"admin.absenceTypes.removeTitle": "删除类型",
|
|
411
|
+
"admin.absenceTypes.removeConfirm": "确实要删除「{{name}}」吗?仍在使用该类型的缺勤必须先删除或更改。"
|
|
406
412
|
}
|