iobroker.time-tracker 0.3.3 → 0.4.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/README.md +14 -20
- package/build/lib/adapter/messages.js +3 -1
- package/build/lib/adapter/messages.js.map +2 -2
- package/build/lib/db/migrations.js +21 -0
- package/build/lib/db/migrations.js.map +2 -2
- package/build/lib/db/repositories/absences.js +80 -7
- package/build/lib/db/repositories/absences.js.map +2 -2
- package/build/lib/services/aggregation.js +3 -2
- package/build/lib/services/aggregation.js.map +2 -2
- package/build/lib/web/api.js +49 -3
- package/build/lib/web/api.js.map +2 -2
- package/io-package.json +27 -27
- package/package.json +1 -1
- package/src-pwa/src/i18n/de.json +41 -1
- package/src-pwa/src/i18n/en.json +41 -1
- package/src-pwa/src/i18n/es.json +41 -1
- package/src-pwa/src/i18n/fr.json +41 -1
- package/src-pwa/src/i18n/it.json +41 -1
- package/src-pwa/src/i18n/nl.json +41 -1
- package/src-pwa/src/i18n/pl.json +41 -1
- package/src-pwa/src/i18n/pt.json +41 -1
- package/src-pwa/src/i18n/ru.json +41 -1
- package/src-pwa/src/i18n/uk.json +41 -1
- package/src-pwa/src/i18n/zh-cn.json +41 -1
- package/www/assets/{index-D7f1X_an.js → index-dp7TWY3R.js} +7 -7
- package/www/assets/index-dp7TWY3R.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-D7f1X_an.js.map +0 -1
package/io-package.json
CHANGED
|
@@ -1,9 +1,35 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "time-tracker",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.4.0",
|
|
5
5
|
"nogit": true,
|
|
6
6
|
"news": {
|
|
7
|
+
"0.4.0": {
|
|
8
|
+
"en": "new: the administration decides about absences now. A request of an employee waits as “requested” and counts for nothing until somebody approves or rejects it — the new tab “Abwesenheiten” shows the open requests with a reason for the decision, lets the administration enter dates for an employee (approved right away) and answers “who is away”. Only approved days reach the working time and the vacation balance, and a rejected request carries its reason back to the employee (migration 21)",
|
|
9
|
+
"de": "neu: die Verwaltung entscheidet jetzt über Abwesenheiten. Ein Antrag eines Mitarbeiters wartet als „beantragt“ und zählt für nichts, bis jemand ihn genehmigt oder ablehnt — der neue Reiter „Abwesenheiten“ zeigt die offenen Anträge mit einer Begründung zur Entscheidung, lässt die Verwaltung Daten für einen Mitarbeiter eintragen (sofort genehmigt) und beantwortet „wer ist abwesend“. Nur genehmigte Tage erreichen Arbeitszeit und Urlaubssaldo, und ein abgelehnter Antrag trägt seinen Grund zum Mitarbeiter zurück (Migration 21)",
|
|
10
|
+
"ru": "новое: теперь об отсутствиях решает администрация. Заявка сотрудника ждёт как «запрошено» и ничего не значит, пока её не одобрят или не отклонят — новый раздел «Отсутствия» показывает открытые заявки с причиной решения, позволяет администрации внести даты для сотрудника (сразу одобрено) и отвечает «кто отсутствует». Только одобренные дни попадают в рабочее время и отпускной баланс, а отклонённая заявка возвращает сотруднику свою причину (миграция 21)",
|
|
11
|
+
"pt": "novo: a administração decide agora sobre as ausências. Um pedido de um funcionário espera como «pedido» e não conta para nada até alguém o aprovar ou rejeitar — o novo separador «Ausências» mostra os pedidos abertos com um motivo para a decisão, deixa a administração registar datas para um funcionário (aprovado de imediato) e responde «quem está ausente». Só dias aprovados chegam ao tempo de trabalho e ao saldo de férias, e um pedido rejeitado devolve o motivo ao funcionário (migração 21)",
|
|
12
|
+
"nl": "nieuw: het beheer beslist nu over afwezigheden. Een aanvraag van een medewerker wacht als “aangevraagd” en telt voor niets tot iemand haar goedkeurt of afwijst — het nieuwe tabblad “Afwezigheden” toont de openstaande aanvragen met een reden voor de beslissing, laat het beheer data voor een medewerker invoeren (meteen goedgekeurd) en beantwoordt “wie is afwezig”. Alleen goedgekeurde dagen bereiken de werktijd en het vakantiesaldo, en een afgewezen aanvraag draagt de reden terug naar de medewerker (migratie 21)",
|
|
13
|
+
"fr": "nouveau : l'administration décide désormais des absences. Une demande d'un employé attend comme « demandé » et ne compte pour rien jusqu'à ce que quelqu'un l'approuve ou la refuse — le nouvel onglet « Absences » montre les demandes en attente avec un motif pour la décision, laisse l'administration saisir des dates pour un employé (approuvées aussitôt) et répond à « qui est absent ». Seuls les jours approuvés arrivent dans le temps de travail et le solde de vacances, et une demande refusée ramène son motif à l'employé (migration 21)",
|
|
14
|
+
"it": "novità: l'amministrazione decide ora delle assenze. Una richiesta di un dipendente attende come «richiesto» e non conta nulla finché qualcuno non l'approva o la rifiuta — la nuova scheda «Assenze» mostra le richieste aperte con un motivo per la decisione, lascia che l'amministrazione inserisca date per un dipendente (approvate subito) e risponde a «chi è assente». Solo i giorni approvati arrivano al tempo di lavoro e al saldo ferie, e una richiesta rifiutata riporta il motivo al dipendente (migrazione 21)",
|
|
15
|
+
"es": "novedad: la administración decide ahora sobre las ausencias. Una solicitud de un empleado espera como «solicitado» y no cuenta para nada hasta que alguien la apruebe o la rechace — la nueva pestaña «Ausencias» muestra las solicitudes abiertas con un motivo para la decisión, deja que la administración registre fechas para un empleado (aprobadas al momento) y responde a «quién está ausente». Solo los días aprobados llegan al tiempo de trabajo y al saldo de vacaciones, y una solicitud rechazada devuelve su motivo al empleado (migración 21)",
|
|
16
|
+
"pl": "nowość: administracja decyduje teraz o nieobecnościach. Wniosek pracownika czeka jako „złożony” i nic nie znaczy, dopóki ktoś go nie zatwierdzi lub nie odrzuci — nowa karta „Nieobecności” pokazuje otwarte wnioski z powodem decyzji, pozwala administracji wpisać daty dla pracownika (od razu zatwierdzone) i odpowiada „kto jest nieobecny”. Tylko zatwierdzone dni trafiają do czasu pracy i salda urlopu, a odrzucony wniosek zwraca pracownikowi swój powód (migracja 21)",
|
|
17
|
+
"uk": "новинка: адміністрація тепер вирішує щодо відсутностей. Заявка працівника чекає як «запитано» і нічого не значить, доки хтось не схвалить або не відхилить її — нова вкладка «Відсутності» показує відкриті заявки з причиною рішення, дає адміністрації внести дати для працівника (схвалено одразу) і відповідає «хто відсутній». Лише схвалені дні потрапляють до робочого часу й балансу відпустки, а відхилена заявка повертає працівникові свою причину (міграція 21)",
|
|
18
|
+
"zh-cn": "新功能:现在由管理方审批缺勤。员工的申请以「已申请」等待,在有人批准或拒绝之前不计入任何数值 —— 新的「缺勤」标签页显示待审批申请并可填写决定原因,允许管理方为员工登记日期(立即批准),并回答「谁缺勤」。只有已批准的日期才计入工作时间与休假余额,被拒绝的申请会把原因带回给员工(迁移 21)"
|
|
19
|
+
},
|
|
20
|
+
"0.3.4": {
|
|
21
|
+
"en": "feat: the absence types can be maintained in the administration now — code, name, paid, factor and the vacation deduction, as a row per type with the form in a dialog. The type that uses up the vacation allowance is marked in the lists and in the picker, so “F – Ferien” reads as vacation at one glance",
|
|
22
|
+
"de": "feat: die Abwesenheitsarten lassen sich jetzt in der Verwaltung pflegen — Kürzel, Bezeichnung, bezahlt, Faktor und Urlaubsabzug, als Zeile je Art mit dem Formular in einem Dialog. Die Art, die vom Urlaubskontingent abzieht, ist in den Listen und in der Auswahl gekennzeichnet, sodass „F – Ferien“ auf einen Blick als Urlaub lesbar ist",
|
|
23
|
+
"ru": "новое: видами отсутствия теперь можно управлять в администрировании — код, название, оплата, коэффициент и вычет отпуска, по строке на вид с формой в диалоге. Вид, расходующий отпускной лимит, отмечен в списках и в выборе, поэтому «F – Ferien» сразу читается как отпуск",
|
|
24
|
+
"pt": "novo: os tipos de ausência podem agora ser mantidos na administração — código, designação, pagamento, fator e dedução de férias, uma linha por tipo com o formulário numa caixa de diálogo. O tipo que consome o direito a férias está marcado nas listas e na escolha, por isso «F – Ferien» lê-se logo como férias",
|
|
25
|
+
"nl": "nieuw: de afwezigheidstypes kunnen nu in het beheer worden onderhouden — code, naam, betaald, factor en vakantieaftrek, één regel per type met het formulier in een dialoog. Het type dat het vakantietegoed opgebruikt, is gemarkeerd in de lijsten en in de keuzelijst, zodat „F – Ferien“ in één oogopslag als vakantie leesbaar is",
|
|
26
|
+
"fr": "nouveau : les types d'absence peuvent désormais être gérés dans l'administration — code, libellé, payé, facteur et déduction de vacances, une ligne par type avec le formulaire dans une boîte de dialogue. Le type qui consomme le droit aux vacances est marqué dans les listes et dans le choix, si bien que « F – Ferien » se lit comme vacances d'un coup d'œil",
|
|
27
|
+
"it": "novità: i tipi di assenza possono ora essere gestiti nell'amministrazione — codice, denominazione, pagato, fattore e deduzione ferie, una riga per tipo con il modulo in una finestra di dialogo. Il tipo che consuma il diritto alle ferie è contrassegnato negli elenchi e nella scelta, così «F – Ferien» si legge come ferie a colpo d'occhio",
|
|
28
|
+
"es": "novedad: los tipos de ausencia se pueden mantener ahora en la administración — código, denominación, pagado, factor y deducción de vacaciones, una fila por tipo con el formulario en un diálogo. El tipo que consume el derecho a vacaciones está marcado en las listas y en la elección, así que «F – Ferien» se lee como vacaciones de un vistazo",
|
|
29
|
+
"pl": "nowość: rodzajami nieobecności można teraz zarządzać w administracji — kod, nazwa, płatne, współczynnik i potrącenie urlopu, po jednym wierszu na rodzaj z formularzem w oknie dialogowym. Rodzaj zużywający limit urlopu jest oznaczony na listach i na liście wyboru, więc «F – Ferien» od razu czyta się jako urlop",
|
|
30
|
+
"uk": "новинка: видами відсутності тепер можна керувати в адмініструванні — код, назва, оплата, коефіцієнт і відрахування відпустки, по рядку на вид із формою в діалозі. Вид, що витрачає ліміт відпустки, позначено у списках і у виборі, тож «F – Ferien» одразу читається як відпустка",
|
|
31
|
+
"zh-cn": "新功能:现在可在管理中维护缺勤类型 —— 代号、名称、带薪、系数与休假扣减,每种类型一行,表单在对话框中。会消耗休假额度的类型会在列表和选择中标记,因此「F – Ferien」一眼即可看出是休假"
|
|
32
|
+
},
|
|
7
33
|
"0.3.3": {
|
|
8
34
|
"en": "fix: the installation chapter of the README no longer points to the adapter dialog for a URL — the repository checker reports that as E6013. It now describes the normal way through the adapter list of the ioBroker admin (and names the registry for machines without the admin); the build steps for work on the sources are a separate note",
|
|
9
35
|
"de": "fix: das Installationskapitel der README verweist nicht mehr auf den Adapter-Dialog für eine URL — der Repository-Checker meldet das als E6013. Es beschreibt jetzt den normalen Weg über die Adapterliste des ioBroker-Admin (und nennt die Registry für Rechner ohne Admin); die Build-Schritte für die Arbeit an den Quellen stehen in einem eigenen Hinweis",
|
|
@@ -68,32 +94,6 @@
|
|
|
68
94
|
"pl": "poprawka: teraz każda droga rejestracji dociera do `events.*` i aplikacji web. Poza stanem obecności (0.2.6) przyciski `commands.punch`/`quickPunch`, wiadomość `sendTo` (`punch`, `present`) oraz reguły wyzwalające zapisywały wpis, ale nie publikowały zdarzenia — stany zdarzeń zostawały przy poprzednim wpisie. Reguły automatyki przekazują teraz kierunek w swoim zdarzeniu `automation.*`",
|
|
69
95
|
"uk": "виправлення: тепер кожен шлях відмітки доходить до `events.*` і веб-застосунку. Крім стану присутності (0.2.6), кнопки `commands.punch`/`quickPunch`, повідомлення `sendTo` (`punch`, `present`) і правила-тригери записували відмітку, але не публікували подію — стани подій залишалися від попередньої відмітки. Правила автоматики тепер передають напрямок у своїй події `automation.*`",
|
|
70
96
|
"zh-cn": "修复:现在每个打卡路径都会到达 `events.*` 和 Web 应用。除在岗状态(0.2.6)外,`commands.punch`/`quickPunch` 按钮、`sendTo` 消息(`punch`、`present`)和触发规则虽然写入了打卡,却从未发布事件 —— 事件状态一直停留在上一次打卡。自动化规则现在会在其 `automation.*` 事件中带上方向"
|
|
71
|
-
},
|
|
72
|
-
"0.2.6": {
|
|
73
|
-
"en": "fix: a punch from the presence state (`users.<id>.present`) is published into the event stream now — it appears in `events.lastType`, `lastUser`, `lastDirection` and `lastSource` and reaches the web app live. The punch was stored in the database, but the event was never sent to the bus, so the event states kept the previous punch",
|
|
74
|
-
"de": "fix: ein Stempel über den Anwesenheits-State (`users.<id>.present`) wird jetzt in den Ereignisstrom veröffentlicht — er erscheint in `events.lastType`, `lastUser`, `lastDirection` und `lastSource` und erreicht die Web-App live. Die Buchung landete zwar in der Datenbank, das Ereignis wurde aber nie auf den Bus gegeben, deshalb blieben die Ereignis-States beim vorigen Stempel stehen",
|
|
75
|
-
"ru": "исправление: отметка через состояние присутствия (`users.<id>.present`) теперь публикуется в поток событий — она появляется в `events.lastType`, `lastUser`, `lastDirection` и `lastSource` и сразу доходит до веб-приложения. Отметка сохранялась в базе, но событие не отправлялось в шину, поэтому состояния событий оставались от предыдущей отметки",
|
|
76
|
-
"pt": "correção: uma marcação através do estado de presença (`users.<id>.present`) passa a ser publicada no fluxo de eventos — aparece em `events.lastType`, `lastUser`, `lastDirection` e `lastSource` e chega à aplicação web em direto. A marcação era gravada na base de dados, mas o evento nunca era enviado para o bus, por isso os estados de evento ficavam na marcação anterior",
|
|
77
|
-
"nl": "fix: een stempeling via de aanwezigheidsstate (`users.<id>.present`) wordt nu in de gebeurtenissenstroom gepubliceerd — hij verschijnt in `events.lastType`, `lastUser`, `lastDirection` en `lastSource` en bereikt de webapp live. De stempeling kwam wel in de database, maar de gebeurtenis werd nooit op de bus gezet, daarom bleven de gebeurtenisstates bij de vorige stempeling staan",
|
|
78
|
-
"fr": "correctif : un pointage via l'état de présence (`users.<id>.present`) est désormais publié dans le flux d'événements — il apparaît dans `events.lastType`, `lastUser`, `lastDirection` et `lastSource` et arrive en direct dans l'application web. Le pointage était enregistré en base, mais l'événement n'était jamais envoyé au bus, les états d'événement restaient donc sur le pointage précédent",
|
|
79
|
-
"it": "correzione: una timbratura tramite lo stato di presenza (`users.<id>.present`) viene ora pubblicata nel flusso di eventi — compare in `events.lastType`, `lastUser`, `lastDirection` e `lastSource` e raggiunge l'app web in diretta. La timbratura finiva nel database, ma l'evento non veniva mai inviato al bus, quindi gli stati degli eventi restavano sulla timbratura precedente",
|
|
80
|
-
"es": "corrección: un fichaje a través del estado de presencia (`users.<id>.present`) ahora se publica en el flujo de eventos — aparece en `events.lastType`, `lastUser`, `lastDirection` y `lastSource` y llega a la aplicación web en directo. El fichaje se guardaba en la base, pero el evento nunca se enviaba al bus, así que los estados de evento se quedaban en el fichaje anterior",
|
|
81
|
-
"pl": "poprawka: rejestracja przez stan obecności (`users.<id>.present`) jest teraz publikowana w strumieniu zdarzeń — pojawia się w `events.lastType`, `lastUser`, `lastDirection` i `lastSource` i dociera do aplikacji web na żywo. Wpis trafiał do bazy, ale zdarzenie nigdy nie było wysyłane na magistralę, dlatego stany zdarzeń zostawały przy poprzednim wpisie",
|
|
82
|
-
"uk": "виправлення: відмітка через стан присутності (`users.<id>.present`) тепер публікується в потоці подій — вона з'являється в `events.lastType`, `lastUser`, `lastDirection` і `lastSource` і одразу доходить до веб-застосунку. Відмітка зберігалася в базі, але подія ніколи не надсилалася до шини, тому стани подій залишалися від попередньої відмітки",
|
|
83
|
-
"zh-cn": "修复:通过在岗状态(`users.<id>.present`)的打卡现在会发布到事件流 —— 会出现在 `events.lastType`、`lastUser`、`lastDirection` 和 `lastSource`,并实时到达 Web 应用。打卡已写入数据库,但事件从未发送到总线,因此这些事件状态一直停留在上一次打卡"
|
|
84
|
-
},
|
|
85
|
-
"0.2.5": {
|
|
86
|
-
"en": "docs: the installation chapter leads with the normal way now — install the npm package (`iobroker install iobroker.time-tracker` or the admin’s “Install from custom URL”), which creates the instance `time-tracker.0` automatically. Building from a checkout is the developer path, and the chapter explains why a Git installation reports `cannot find start file!`",
|
|
87
|
-
"de": "Doku: das Installationskapitel führt jetzt mit dem normalen Weg — das npm-Paket installieren (`iobroker install iobroker.time-tracker` oder „Installieren aus eigener URL“ im Admin), wobei die Instanz `time-tracker.0` automatisch entsteht. Bauen aus dem Quellcode ist nur noch der Entwicklerweg, und das Kapitel erklärt, warum eine Git-Installation `cannot find start file!` meldet",
|
|
88
|
-
"ru": "документация: глава об установке теперь начинается с обычного пути — установить пакет npm (`iobroker install iobroker.time-tracker` или «Установить по своему URL» в админе), при этом экземпляр `time-tracker.0` создаётся автоматически. Сборка из исходников — теперь только путь разработчика, и глава объясняет, почему установка из Git сообщает `cannot find start file!`",
|
|
89
|
-
"pt": "documentação: o capítulo de instalação começa agora pelo caminho normal — instalar o pacote npm (`iobroker install iobroker.time-tracker` ou “Instalar a partir de URL própria” no admin), e a instância `time-tracker.0` é criada automaticamente. Compilar a partir do código é apenas o caminho do programador, e o capítulo explica porque uma instalação via Git indica `cannot find start file!`",
|
|
90
|
-
"nl": "documentatie: het installatiehoofdstuk begint nu met de normale weg — het npm-pakket installeren (`iobroker install iobroker.time-tracker` of “Installeren vanaf eigen URL” in de admin), waarbij de instantie `time-tracker.0` automatisch ontstaat. Bouwen uit de broncode is nu alleen het ontwikkelaarspad, en het hoofdstuk legt uit waarom een Git-installatie `cannot find start file!` meldt",
|
|
91
|
-
"fr": "documentation : le chapitre d'installation commence désormais par la voie normale — installer le paquet npm (`iobroker install iobroker.time-tracker` ou « Installer depuis une URL personnalisée » dans l'admin), l'instance `time-tracker.0` étant créée automatiquement. Compiler depuis les sources n'est plus que le chemin du développeur, et le chapitre explique pourquoi une installation via Git signale `cannot find start file!`",
|
|
92
|
-
"it": "documentazione: il capitolo sull'installazione parte ora dal percorso normale — installare il pacchetto npm (`iobroker install iobroker.time-tracker` o “Installa da URL personale” nell'admin), e l'istanza `time-tracker.0` viene creata automaticamente. Compilare dai sorgenti è ora solo il percorso dello sviluppatore, e il capitolo spiega perché un'installazione da Git segnala `cannot find start file!`",
|
|
93
|
-
"es": "documentación: el capítulo de instalación empieza ahora por el camino normal — instalar el paquete npm (`iobroker install iobroker.time-tracker` o “Instalar desde URL propia” en el admin), y la instancia `time-tracker.0` se crea automáticamente. Compilar desde el código es solo la ruta del desarrollador, y el capítulo explica por qué una instalación desde Git informa `cannot find start file!`",
|
|
94
|
-
"pl": "dokumentacja: rozdział o instalacji zaczyna się teraz od zwykłej drogi — instalacji pakietu npm (`iobroker install iobroker.time-tracker` lub „Zainstaluj z własnego adresu URL” w adminie), przy czym instancja `time-tracker.0` powstaje automatycznie. Budowanie ze źródeł to teraz tylko ścieżka dewelopera, a rozdział wyjaśnia, dlaczego instalacja z Git zgłasza `cannot find start file!`",
|
|
95
|
-
"uk": "документація: розділ про встановлення тепер починається зі звичайного шляху — встановити пакет npm (`iobroker install iobroker.time-tracker` або «Встановити з власного URL» в адміні), при цьому екземпляр `time-tracker.0` створюється автоматично. Збірка з коду — тепер лише шлях розробника, і розділ пояснює, чому встановлення з Git повідомляє `cannot find start file!`",
|
|
96
|
-
"zh-cn": "文档:安装章节现在先介绍常规方式 —— 安装 npm 包(`iobroker install iobroker.time-tracker` 或管理界面中的“从自定义 URL 安装”),实例 `time-tracker.0` 会自动创建。从源码构建现在只是开发者路径,章节也说明了为什么从 Git 安装会提示 `cannot find start file!`"
|
|
97
97
|
}
|
|
98
98
|
},
|
|
99
99
|
"titleLang": {
|
package/package.json
CHANGED
package/src-pwa/src/i18n/de.json
CHANGED
|
@@ -362,5 +362,45 @@
|
|
|
362
362
|
"admin.automation.save": "Regeln speichern",
|
|
363
363
|
"admin.automation.edit": "Bearbeiten",
|
|
364
364
|
"admin.automation.editTitle": "Regel bearbeiten",
|
|
365
|
-
"admin.automation.newTitle": "Neue Regel"
|
|
365
|
+
"admin.automation.newTitle": "Neue Regel",
|
|
366
|
+
"absences.vacationTag": "Urlaub",
|
|
367
|
+
"admin.absenceTypes.title": "Abwesenheitsarten",
|
|
368
|
+
"admin.absenceTypes.hint": "Kürzel, Bezeichnung und Wirkung der Abwesenheiten. „Urlaub“ markiert die Art, die das Urlaubskontingent verbraucht.",
|
|
369
|
+
"admin.absenceTypes.code": "Kürzel",
|
|
370
|
+
"admin.absenceTypes.name": "Bezeichnung",
|
|
371
|
+
"admin.absenceTypes.paid": "Bezahlt",
|
|
372
|
+
"admin.absenceTypes.factor": "Faktor (%)",
|
|
373
|
+
"admin.absenceTypes.reduceVacation": "Zieht vom Urlaub ab",
|
|
374
|
+
"admin.absenceTypes.active": "Aktiv",
|
|
375
|
+
"admin.absenceTypes.add": "Art hinzufügen",
|
|
376
|
+
"admin.absenceTypes.edit": "Bearbeiten",
|
|
377
|
+
"admin.absenceTypes.editTitle": "Art bearbeiten",
|
|
378
|
+
"admin.absenceTypes.newTitle": "Neue Art",
|
|
379
|
+
"admin.absenceTypes.empty": "Keine Abwesenheitsart angelegt.",
|
|
380
|
+
"admin.absenceTypes.note": "Bestehende Abwesenheiten behalten ihre Art — eine geänderte Bezeichnung wirkt sofort in der ganzen Oberfläche.",
|
|
381
|
+
"admin.absences.title": "Abwesenheiten",
|
|
382
|
+
"admin.absences.pending": "Offene Anträge",
|
|
383
|
+
"admin.absences.pendingEmpty": "Keine offenen Anträge — alles entschieden.",
|
|
384
|
+
"admin.absences.approve": "Genehmigen",
|
|
385
|
+
"admin.absences.reject": "Ablehnen",
|
|
386
|
+
"admin.absences.approveTitle": "Antrag genehmigen",
|
|
387
|
+
"admin.absences.rejectTitle": "Antrag ablehnen",
|
|
388
|
+
"admin.absences.reason": "Begründung",
|
|
389
|
+
"admin.absences.reasonOptional": "Begründung (optional)",
|
|
390
|
+
"admin.absences.add": "Für Mitarbeiter erfassen",
|
|
391
|
+
"admin.absences.addTitle": "Abwesenheit erfassen",
|
|
392
|
+
"admin.absences.employee": "Mitarbeiter",
|
|
393
|
+
"admin.absences.type": "Art",
|
|
394
|
+
"admin.absences.from": "Von",
|
|
395
|
+
"admin.absences.to": "Bis",
|
|
396
|
+
"admin.absences.note": "Notiz (optional)",
|
|
397
|
+
"admin.absences.away": "Wer ist abwesend ({{date}})",
|
|
398
|
+
"admin.absences.awayEmpty": "Heute ist niemand abwesend.",
|
|
399
|
+
"admin.absences.all": "Alle Abwesenheiten",
|
|
400
|
+
"admin.absences.allEmpty": "Keine Abwesenheiten im Zeitraum.",
|
|
401
|
+
"admin.absences.portion": "Anteil: {{portion}}",
|
|
402
|
+
"absences.state.requested": "beantragt",
|
|
403
|
+
"absences.state.approved": "genehmigt",
|
|
404
|
+
"absences.state.rejected": "abgelehnt",
|
|
405
|
+
"absences.reason": "Begründung"
|
|
366
406
|
}
|
package/src-pwa/src/i18n/en.json
CHANGED
|
@@ -362,5 +362,45 @@
|
|
|
362
362
|
"admin.automation.save": "Save rules",
|
|
363
363
|
"admin.automation.edit": "Edit",
|
|
364
364
|
"admin.automation.editTitle": "Edit rule",
|
|
365
|
-
"admin.automation.newTitle": "New rule"
|
|
365
|
+
"admin.automation.newTitle": "New rule",
|
|
366
|
+
"absences.vacationTag": "vacation",
|
|
367
|
+
"admin.absenceTypes.title": "Absence types",
|
|
368
|
+
"admin.absenceTypes.hint": "Code, name and effect of the absences. “Vacation” marks the type that uses up the vacation allowance.",
|
|
369
|
+
"admin.absenceTypes.code": "Code",
|
|
370
|
+
"admin.absenceTypes.name": "Name",
|
|
371
|
+
"admin.absenceTypes.paid": "Paid",
|
|
372
|
+
"admin.absenceTypes.factor": "Factor (%)",
|
|
373
|
+
"admin.absenceTypes.reduceVacation": "Reduces vacation",
|
|
374
|
+
"admin.absenceTypes.active": "Active",
|
|
375
|
+
"admin.absenceTypes.add": "Add type",
|
|
376
|
+
"admin.absenceTypes.edit": "Edit",
|
|
377
|
+
"admin.absenceTypes.editTitle": "Edit type",
|
|
378
|
+
"admin.absenceTypes.newTitle": "New type",
|
|
379
|
+
"admin.absenceTypes.empty": "No absence type yet.",
|
|
380
|
+
"admin.absenceTypes.note": "Existing absences keep their type — a changed name shows up everywhere right away.",
|
|
381
|
+
"admin.absences.title": "Absences",
|
|
382
|
+
"admin.absences.pending": "Open requests",
|
|
383
|
+
"admin.absences.pendingEmpty": "No open request — everything is decided.",
|
|
384
|
+
"admin.absences.approve": "Approve",
|
|
385
|
+
"admin.absences.reject": "Reject",
|
|
386
|
+
"admin.absences.approveTitle": "Approve the request",
|
|
387
|
+
"admin.absences.rejectTitle": "Reject the request",
|
|
388
|
+
"admin.absences.reason": "Reason",
|
|
389
|
+
"admin.absences.reasonOptional": "Reason (optional)",
|
|
390
|
+
"admin.absences.add": "Enter for an employee",
|
|
391
|
+
"admin.absences.addTitle": "Enter an absence",
|
|
392
|
+
"admin.absences.employee": "Employee",
|
|
393
|
+
"admin.absences.type": "Type",
|
|
394
|
+
"admin.absences.from": "From",
|
|
395
|
+
"admin.absences.to": "To",
|
|
396
|
+
"admin.absences.note": "Note (optional)",
|
|
397
|
+
"admin.absences.away": "Who is away ({{date}})",
|
|
398
|
+
"admin.absences.awayEmpty": "Nobody is away today.",
|
|
399
|
+
"admin.absences.all": "All absences",
|
|
400
|
+
"admin.absences.allEmpty": "No absences in that period.",
|
|
401
|
+
"admin.absences.portion": "Portion: {{portion}}",
|
|
402
|
+
"absences.state.requested": "requested",
|
|
403
|
+
"absences.state.approved": "approved",
|
|
404
|
+
"absences.state.rejected": "rejected",
|
|
405
|
+
"absences.reason": "Reason"
|
|
366
406
|
}
|
package/src-pwa/src/i18n/es.json
CHANGED
|
@@ -362,5 +362,45 @@
|
|
|
362
362
|
"admin.automation.save": "Guardar reglas",
|
|
363
363
|
"admin.automation.edit": "Editar",
|
|
364
364
|
"admin.automation.editTitle": "Editar regla",
|
|
365
|
-
"admin.automation.newTitle": "Nueva regla"
|
|
365
|
+
"admin.automation.newTitle": "Nueva regla",
|
|
366
|
+
"absences.vacationTag": "vacaciones",
|
|
367
|
+
"admin.absenceTypes.title": "Tipos de ausencia",
|
|
368
|
+
"admin.absenceTypes.hint": "Código, denominación y efecto de las ausencias. «Vacaciones» marca el tipo que consume el derecho a vacaciones.",
|
|
369
|
+
"admin.absenceTypes.code": "Código",
|
|
370
|
+
"admin.absenceTypes.name": "Denominación",
|
|
371
|
+
"admin.absenceTypes.paid": "Pagado",
|
|
372
|
+
"admin.absenceTypes.factor": "Factor de tiempo (%)",
|
|
373
|
+
"admin.absenceTypes.reduceVacation": "Reduce las vacaciones",
|
|
374
|
+
"admin.absenceTypes.active": "Activo",
|
|
375
|
+
"admin.absenceTypes.add": "Añadir tipo",
|
|
376
|
+
"admin.absenceTypes.edit": "Editar",
|
|
377
|
+
"admin.absenceTypes.editTitle": "Editar tipo",
|
|
378
|
+
"admin.absenceTypes.newTitle": "Nuevo tipo",
|
|
379
|
+
"admin.absenceTypes.empty": "Ningún tipo de ausencia definido.",
|
|
380
|
+
"admin.absenceTypes.note": "Las ausencias existentes mantienen su tipo — una denominación modificada aparece enseguida en toda la interfaz.",
|
|
381
|
+
"admin.absences.title": "Ausencias",
|
|
382
|
+
"admin.absences.pending": "Solicitudes abiertas",
|
|
383
|
+
"admin.absences.pendingEmpty": "No hay solicitudes abiertas — todo decidido.",
|
|
384
|
+
"admin.absences.approve": "Aprobar",
|
|
385
|
+
"admin.absences.reject": "Rechazar",
|
|
386
|
+
"admin.absences.approveTitle": "Aprobar la solicitud",
|
|
387
|
+
"admin.absences.rejectTitle": "Rechazar la solicitud",
|
|
388
|
+
"admin.absences.reason": "Motivo",
|
|
389
|
+
"admin.absences.reasonOptional": "Motivo (opcional)",
|
|
390
|
+
"admin.absences.add": "Registrar para un empleado",
|
|
391
|
+
"admin.absences.addTitle": "Registrar una ausencia",
|
|
392
|
+
"admin.absences.employee": "Empleado",
|
|
393
|
+
"admin.absences.type": "Tipo",
|
|
394
|
+
"admin.absences.from": "Desde",
|
|
395
|
+
"admin.absences.to": "Hasta",
|
|
396
|
+
"admin.absences.note": "Nota (opcional)",
|
|
397
|
+
"admin.absences.away": "Quién está ausente ({{date}})",
|
|
398
|
+
"admin.absences.awayEmpty": "Hoy no falta nadie.",
|
|
399
|
+
"admin.absences.all": "Todas las ausencias",
|
|
400
|
+
"admin.absences.allEmpty": "No hay ausencias en ese periodo.",
|
|
401
|
+
"admin.absences.portion": "Parte: {{portion}}",
|
|
402
|
+
"absences.state.requested": "solicitado",
|
|
403
|
+
"absences.state.approved": "aprobado",
|
|
404
|
+
"absences.state.rejected": "rechazado",
|
|
405
|
+
"absences.reason": "Motivo"
|
|
366
406
|
}
|
package/src-pwa/src/i18n/fr.json
CHANGED
|
@@ -362,5 +362,45 @@
|
|
|
362
362
|
"admin.automation.save": "Enregistrer les règles",
|
|
363
363
|
"admin.automation.edit": "Modifier",
|
|
364
364
|
"admin.automation.editTitle": "Modifier la règle",
|
|
365
|
-
"admin.automation.newTitle": "Nouvelle règle"
|
|
365
|
+
"admin.automation.newTitle": "Nouvelle règle",
|
|
366
|
+
"absences.vacationTag": "vacances",
|
|
367
|
+
"admin.absenceTypes.title": "Types d'absence",
|
|
368
|
+
"admin.absenceTypes.hint": "Code, libellé et effet des absences. « Vacances » marque le type qui consomme le droit aux vacances.",
|
|
369
|
+
"admin.absenceTypes.code": "Abréviation",
|
|
370
|
+
"admin.absenceTypes.name": "Libellé",
|
|
371
|
+
"admin.absenceTypes.paid": "Payé",
|
|
372
|
+
"admin.absenceTypes.factor": "Facteur (%)",
|
|
373
|
+
"admin.absenceTypes.reduceVacation": "Réduit les vacances",
|
|
374
|
+
"admin.absenceTypes.active": "Actif",
|
|
375
|
+
"admin.absenceTypes.add": "Ajouter un type",
|
|
376
|
+
"admin.absenceTypes.edit": "Modifier",
|
|
377
|
+
"admin.absenceTypes.editTitle": "Modifier le type",
|
|
378
|
+
"admin.absenceTypes.newTitle": "Nouveau type",
|
|
379
|
+
"admin.absenceTypes.empty": "Aucun type d'absence défini.",
|
|
380
|
+
"admin.absenceTypes.note": "Les absences existantes gardent leur type — un libellé modifié apparaît aussitôt partout.",
|
|
381
|
+
"admin.absences.title": "Absences",
|
|
382
|
+
"admin.absences.pending": "Demandes en attente",
|
|
383
|
+
"admin.absences.pendingEmpty": "Aucune demande en attente — tout est décidé.",
|
|
384
|
+
"admin.absences.approve": "Approuver",
|
|
385
|
+
"admin.absences.reject": "Refuser",
|
|
386
|
+
"admin.absences.approveTitle": "Approuver la demande",
|
|
387
|
+
"admin.absences.rejectTitle": "Refuser la demande",
|
|
388
|
+
"admin.absences.reason": "Motif",
|
|
389
|
+
"admin.absences.reasonOptional": "Motif (facultatif)",
|
|
390
|
+
"admin.absences.add": "Saisir pour un employé",
|
|
391
|
+
"admin.absences.addTitle": "Saisir une absence",
|
|
392
|
+
"admin.absences.employee": "Employé",
|
|
393
|
+
"admin.absences.type": "Type",
|
|
394
|
+
"admin.absences.from": "Du",
|
|
395
|
+
"admin.absences.to": "Au",
|
|
396
|
+
"admin.absences.note": "Note (facultatif)",
|
|
397
|
+
"admin.absences.away": "Qui est absent ({{date}})",
|
|
398
|
+
"admin.absences.awayEmpty": "Personne n'est absent aujourd'hui.",
|
|
399
|
+
"admin.absences.all": "Toutes les absences",
|
|
400
|
+
"admin.absences.allEmpty": "Aucune absence sur cette période.",
|
|
401
|
+
"admin.absences.portion": "Part : {{portion}}",
|
|
402
|
+
"absences.state.requested": "demandé",
|
|
403
|
+
"absences.state.approved": "approuvé",
|
|
404
|
+
"absences.state.rejected": "refusé",
|
|
405
|
+
"absences.reason": "Motif"
|
|
366
406
|
}
|
package/src-pwa/src/i18n/it.json
CHANGED
|
@@ -362,5 +362,45 @@
|
|
|
362
362
|
"admin.automation.save": "Salva regole",
|
|
363
363
|
"admin.automation.edit": "Modifica",
|
|
364
364
|
"admin.automation.editTitle": "Modifica regola",
|
|
365
|
-
"admin.automation.newTitle": "Nuova regola"
|
|
365
|
+
"admin.automation.newTitle": "Nuova regola",
|
|
366
|
+
"absences.vacationTag": "ferie",
|
|
367
|
+
"admin.absenceTypes.title": "Tipi di assenza",
|
|
368
|
+
"admin.absenceTypes.hint": "Codice, denominazione ed effetto delle assenze. «Ferie» contrassegna il tipo che consuma il diritto alle ferie.",
|
|
369
|
+
"admin.absenceTypes.code": "Codice",
|
|
370
|
+
"admin.absenceTypes.name": "Denominazione",
|
|
371
|
+
"admin.absenceTypes.paid": "Pagato",
|
|
372
|
+
"admin.absenceTypes.factor": "Fattore (%)",
|
|
373
|
+
"admin.absenceTypes.reduceVacation": "Riduce le ferie",
|
|
374
|
+
"admin.absenceTypes.active": "Attivo",
|
|
375
|
+
"admin.absenceTypes.add": "Aggiungi tipo",
|
|
376
|
+
"admin.absenceTypes.edit": "Modifica",
|
|
377
|
+
"admin.absenceTypes.editTitle": "Modifica tipo",
|
|
378
|
+
"admin.absenceTypes.newTitle": "Nuovo tipo",
|
|
379
|
+
"admin.absenceTypes.empty": "Nessun tipo di assenza definito.",
|
|
380
|
+
"admin.absenceTypes.note": "Le assenze esistenti mantengono il loro tipo — una denominazione modificata appare subito ovunque.",
|
|
381
|
+
"admin.absences.title": "Assenze",
|
|
382
|
+
"admin.absences.pending": "Richieste aperte",
|
|
383
|
+
"admin.absences.pendingEmpty": "Nessuna richiesta aperta — è tutto deciso.",
|
|
384
|
+
"admin.absences.approve": "Approva",
|
|
385
|
+
"admin.absences.reject": "Rifiuta",
|
|
386
|
+
"admin.absences.approveTitle": "Approva la richiesta",
|
|
387
|
+
"admin.absences.rejectTitle": "Rifiuta la richiesta",
|
|
388
|
+
"admin.absences.reason": "Motivo",
|
|
389
|
+
"admin.absences.reasonOptional": "Motivo (facoltativo)",
|
|
390
|
+
"admin.absences.add": "Inserisci per un dipendente",
|
|
391
|
+
"admin.absences.addTitle": "Inserisci un'assenza",
|
|
392
|
+
"admin.absences.employee": "Dipendente",
|
|
393
|
+
"admin.absences.type": "Tipo",
|
|
394
|
+
"admin.absences.from": "Dal",
|
|
395
|
+
"admin.absences.to": "Al",
|
|
396
|
+
"admin.absences.note": "Nota (facoltativa)",
|
|
397
|
+
"admin.absences.away": "Chi è assente ({{date}})",
|
|
398
|
+
"admin.absences.awayEmpty": "Oggi non è assente nessuno.",
|
|
399
|
+
"admin.absences.all": "Tutte le assenze",
|
|
400
|
+
"admin.absences.allEmpty": "Nessuna assenza nel periodo.",
|
|
401
|
+
"admin.absences.portion": "Quota: {{portion}}",
|
|
402
|
+
"absences.state.requested": "richiesto",
|
|
403
|
+
"absences.state.approved": "approvato",
|
|
404
|
+
"absences.state.rejected": "rifiutato",
|
|
405
|
+
"absences.reason": "Motivo"
|
|
366
406
|
}
|
package/src-pwa/src/i18n/nl.json
CHANGED
|
@@ -362,5 +362,45 @@
|
|
|
362
362
|
"admin.automation.save": "Regels opslaan",
|
|
363
363
|
"admin.automation.edit": "Bewerken",
|
|
364
364
|
"admin.automation.editTitle": "Regel bewerken",
|
|
365
|
-
"admin.automation.newTitle": "Nieuwe regel"
|
|
365
|
+
"admin.automation.newTitle": "Nieuwe regel",
|
|
366
|
+
"absences.vacationTag": "vakantie",
|
|
367
|
+
"admin.absenceTypes.title": "Afwezigheidstypes",
|
|
368
|
+
"admin.absenceTypes.hint": "Code, naam en werking van de afwezigheden. “Vakantie” markeert het type dat het vakantietegoed opgebruikt.",
|
|
369
|
+
"admin.absenceTypes.code": "Afkorting",
|
|
370
|
+
"admin.absenceTypes.name": "Naam",
|
|
371
|
+
"admin.absenceTypes.paid": "Betaald",
|
|
372
|
+
"admin.absenceTypes.factor": "Rekenfactor (%)",
|
|
373
|
+
"admin.absenceTypes.reduceVacation": "Verlaagt vakantie",
|
|
374
|
+
"admin.absenceTypes.active": "Actief",
|
|
375
|
+
"admin.absenceTypes.add": "Type toevoegen",
|
|
376
|
+
"admin.absenceTypes.edit": "Bewerken",
|
|
377
|
+
"admin.absenceTypes.editTitle": "Type bewerken",
|
|
378
|
+
"admin.absenceTypes.newTitle": "Nieuw type",
|
|
379
|
+
"admin.absenceTypes.empty": "Nog geen afwezigheidstype.",
|
|
380
|
+
"admin.absenceTypes.note": "Bestaande afwezigheden houden hun type — een gewijzigde naam is direct overal zichtbaar.",
|
|
381
|
+
"admin.absences.title": "Afwezigheden",
|
|
382
|
+
"admin.absences.pending": "Openstaande aanvragen",
|
|
383
|
+
"admin.absences.pendingEmpty": "Geen openstaande aanvraag — alles is beslist.",
|
|
384
|
+
"admin.absences.approve": "Goedkeuren",
|
|
385
|
+
"admin.absences.reject": "Afwijzen",
|
|
386
|
+
"admin.absences.approveTitle": "De aanvraag goedkeuren",
|
|
387
|
+
"admin.absences.rejectTitle": "De aanvraag afwijzen",
|
|
388
|
+
"admin.absences.reason": "Reden",
|
|
389
|
+
"admin.absences.reasonOptional": "Reden (optioneel)",
|
|
390
|
+
"admin.absences.add": "Voor een medewerker invoeren",
|
|
391
|
+
"admin.absences.addTitle": "Een afwezigheid invoeren",
|
|
392
|
+
"admin.absences.employee": "Medewerker",
|
|
393
|
+
"admin.absences.type": "Soort",
|
|
394
|
+
"admin.absences.from": "Van",
|
|
395
|
+
"admin.absences.to": "Tot",
|
|
396
|
+
"admin.absences.note": "Notitie (optioneel)",
|
|
397
|
+
"admin.absences.away": "Wie is afwezig ({{date}})",
|
|
398
|
+
"admin.absences.awayEmpty": "Vandaag is niemand afwezig.",
|
|
399
|
+
"admin.absences.all": "Alle afwezigheden",
|
|
400
|
+
"admin.absences.allEmpty": "Geen afwezigheden in die periode.",
|
|
401
|
+
"admin.absences.portion": "Deel: {{portion}}",
|
|
402
|
+
"absences.state.requested": "aangevraagd",
|
|
403
|
+
"absences.state.approved": "goedgekeurd",
|
|
404
|
+
"absences.state.rejected": "afgewezen",
|
|
405
|
+
"absences.reason": "Reden"
|
|
366
406
|
}
|
package/src-pwa/src/i18n/pl.json
CHANGED
|
@@ -362,5 +362,45 @@
|
|
|
362
362
|
"admin.automation.save": "Zapisz reguły",
|
|
363
363
|
"admin.automation.edit": "Edytuj",
|
|
364
364
|
"admin.automation.editTitle": "Edytuj regułę",
|
|
365
|
-
"admin.automation.newTitle": "Nowa reguła"
|
|
365
|
+
"admin.automation.newTitle": "Nowa reguła",
|
|
366
|
+
"absences.vacationTag": "urlop",
|
|
367
|
+
"admin.absenceTypes.title": "Rodzaje nieobecności",
|
|
368
|
+
"admin.absenceTypes.hint": "Kod, nazwa i działanie nieobecności. „Urlop” oznacza rodzaj, który zużywa limit urlopu.",
|
|
369
|
+
"admin.absenceTypes.code": "Kod",
|
|
370
|
+
"admin.absenceTypes.name": "Nazwa",
|
|
371
|
+
"admin.absenceTypes.paid": "Płatne",
|
|
372
|
+
"admin.absenceTypes.factor": "Współczynnik (%)",
|
|
373
|
+
"admin.absenceTypes.reduceVacation": "Zmniejsza urlop",
|
|
374
|
+
"admin.absenceTypes.active": "Aktywne",
|
|
375
|
+
"admin.absenceTypes.add": "Dodaj rodzaj",
|
|
376
|
+
"admin.absenceTypes.edit": "Edytuj",
|
|
377
|
+
"admin.absenceTypes.editTitle": "Edytuj rodzaj",
|
|
378
|
+
"admin.absenceTypes.newTitle": "Nowy rodzaj",
|
|
379
|
+
"admin.absenceTypes.empty": "Nie zdefiniowano rodzajów nieobecności.",
|
|
380
|
+
"admin.absenceTypes.note": "Istniejące nieobecności zachowują swój rodzaj — zmieniona nazwa jest od razu widoczna wszędzie.",
|
|
381
|
+
"admin.absences.title": "Nieobecności",
|
|
382
|
+
"admin.absences.pending": "Otwarte wnioski",
|
|
383
|
+
"admin.absences.pendingEmpty": "Brak otwartych wniosków — wszystko rozstrzygnięte.",
|
|
384
|
+
"admin.absences.approve": "Zatwierdź",
|
|
385
|
+
"admin.absences.reject": "Odrzuć",
|
|
386
|
+
"admin.absences.approveTitle": "Zatwierdź wniosek",
|
|
387
|
+
"admin.absences.rejectTitle": "Odrzuć wniosek",
|
|
388
|
+
"admin.absences.reason": "Powód",
|
|
389
|
+
"admin.absences.reasonOptional": "Powód (opcjonalnie)",
|
|
390
|
+
"admin.absences.add": "Wpisz dla pracownika",
|
|
391
|
+
"admin.absences.addTitle": "Wpisz nieobecność",
|
|
392
|
+
"admin.absences.employee": "Pracownik",
|
|
393
|
+
"admin.absences.type": "Rodzaj",
|
|
394
|
+
"admin.absences.from": "Od",
|
|
395
|
+
"admin.absences.to": "Do",
|
|
396
|
+
"admin.absences.note": "Notatka (opcjonalnie)",
|
|
397
|
+
"admin.absences.away": "Kto jest nieobecny ({{date}})",
|
|
398
|
+
"admin.absences.awayEmpty": "Dziś nikt nie jest nieobecny.",
|
|
399
|
+
"admin.absences.all": "Wszystkie nieobecności",
|
|
400
|
+
"admin.absences.allEmpty": "Brak nieobecności w tym okresie.",
|
|
401
|
+
"admin.absences.portion": "Część: {{portion}}",
|
|
402
|
+
"absences.state.requested": "złożony",
|
|
403
|
+
"absences.state.approved": "zatwierdzony",
|
|
404
|
+
"absences.state.rejected": "odrzucony",
|
|
405
|
+
"absences.reason": "Powód"
|
|
366
406
|
}
|
package/src-pwa/src/i18n/pt.json
CHANGED
|
@@ -362,5 +362,45 @@
|
|
|
362
362
|
"admin.automation.save": "Guardar regras",
|
|
363
363
|
"admin.automation.edit": "Editar",
|
|
364
364
|
"admin.automation.editTitle": "Editar regra",
|
|
365
|
-
"admin.automation.newTitle": "Nova regra"
|
|
365
|
+
"admin.automation.newTitle": "Nova regra",
|
|
366
|
+
"absences.vacationTag": "férias",
|
|
367
|
+
"admin.absenceTypes.title": "Tipos de ausência",
|
|
368
|
+
"admin.absenceTypes.hint": "Código, designação e efeito das ausências. «Férias» marca o tipo que consome o direito a férias.",
|
|
369
|
+
"admin.absenceTypes.code": "Código",
|
|
370
|
+
"admin.absenceTypes.name": "Designação",
|
|
371
|
+
"admin.absenceTypes.paid": "Pago",
|
|
372
|
+
"admin.absenceTypes.factor": "Fator (%)",
|
|
373
|
+
"admin.absenceTypes.reduceVacation": "Reduz as férias",
|
|
374
|
+
"admin.absenceTypes.active": "Ativo",
|
|
375
|
+
"admin.absenceTypes.add": "Adicionar tipo",
|
|
376
|
+
"admin.absenceTypes.edit": "Editar",
|
|
377
|
+
"admin.absenceTypes.editTitle": "Editar tipo",
|
|
378
|
+
"admin.absenceTypes.newTitle": "Novo tipo",
|
|
379
|
+
"admin.absenceTypes.empty": "Nenhum tipo de ausência definido.",
|
|
380
|
+
"admin.absenceTypes.note": "As ausências existentes mantêm o seu tipo — uma designação alterada aparece logo em toda a interface.",
|
|
381
|
+
"admin.absences.title": "Ausências",
|
|
382
|
+
"admin.absences.pending": "Pedidos abertos",
|
|
383
|
+
"admin.absences.pendingEmpty": "Sem pedidos abertos — está tudo decidido.",
|
|
384
|
+
"admin.absences.approve": "Aprovar",
|
|
385
|
+
"admin.absences.reject": "Rejeitar",
|
|
386
|
+
"admin.absences.approveTitle": "Aprovar o pedido",
|
|
387
|
+
"admin.absences.rejectTitle": "Rejeitar o pedido",
|
|
388
|
+
"admin.absences.reason": "Motivo",
|
|
389
|
+
"admin.absences.reasonOptional": "Motivo (opcional)",
|
|
390
|
+
"admin.absences.add": "Registar para um funcionário",
|
|
391
|
+
"admin.absences.addTitle": "Registar uma ausência",
|
|
392
|
+
"admin.absences.employee": "Funcionário",
|
|
393
|
+
"admin.absences.type": "Tipo",
|
|
394
|
+
"admin.absences.from": "De",
|
|
395
|
+
"admin.absences.to": "Até",
|
|
396
|
+
"admin.absences.note": "Nota (opcional)",
|
|
397
|
+
"admin.absences.away": "Quem está ausente ({{date}})",
|
|
398
|
+
"admin.absences.awayEmpty": "Hoje não está ninguém ausente.",
|
|
399
|
+
"admin.absences.all": "Todas as ausências",
|
|
400
|
+
"admin.absences.allEmpty": "Sem ausências nesse período.",
|
|
401
|
+
"admin.absences.portion": "Fração: {{portion}}",
|
|
402
|
+
"absences.state.requested": "pedido",
|
|
403
|
+
"absences.state.approved": "aprovado",
|
|
404
|
+
"absences.state.rejected": "rejeitado",
|
|
405
|
+
"absences.reason": "Motivo"
|
|
366
406
|
}
|
package/src-pwa/src/i18n/ru.json
CHANGED
|
@@ -362,5 +362,45 @@
|
|
|
362
362
|
"admin.automation.save": "Сохранить правила",
|
|
363
363
|
"admin.automation.edit": "Изменить",
|
|
364
364
|
"admin.automation.editTitle": "Изменить правило",
|
|
365
|
-
"admin.automation.newTitle": "Новое правило"
|
|
365
|
+
"admin.automation.newTitle": "Новое правило",
|
|
366
|
+
"absences.vacationTag": "отпуск",
|
|
367
|
+
"admin.absenceTypes.title": "Виды отсутствия",
|
|
368
|
+
"admin.absenceTypes.hint": "Код, название и действие отсутствий. «Отпуск» отмечает вид, который расходует отпускной лимит.",
|
|
369
|
+
"admin.absenceTypes.code": "Код",
|
|
370
|
+
"admin.absenceTypes.name": "Название",
|
|
371
|
+
"admin.absenceTypes.paid": "Оплачивается",
|
|
372
|
+
"admin.absenceTypes.factor": "Коэффициент (%)",
|
|
373
|
+
"admin.absenceTypes.reduceVacation": "Уменьшает отпуск",
|
|
374
|
+
"admin.absenceTypes.active": "Активно",
|
|
375
|
+
"admin.absenceTypes.add": "Добавить вид",
|
|
376
|
+
"admin.absenceTypes.edit": "Изменить",
|
|
377
|
+
"admin.absenceTypes.editTitle": "Изменить вид",
|
|
378
|
+
"admin.absenceTypes.newTitle": "Новый вид",
|
|
379
|
+
"admin.absenceTypes.empty": "Виды отсутствия не заданы.",
|
|
380
|
+
"admin.absenceTypes.note": "Существующие отсутствия сохраняют свой вид — изменённое название сразу видно везде.",
|
|
381
|
+
"admin.absences.title": "Отсутствия",
|
|
382
|
+
"admin.absences.pending": "Открытые заявки",
|
|
383
|
+
"admin.absences.pendingEmpty": "Открытых заявок нет — всё решено.",
|
|
384
|
+
"admin.absences.approve": "Одобрить",
|
|
385
|
+
"admin.absences.reject": "Отклонить",
|
|
386
|
+
"admin.absences.approveTitle": "Одобрить заявку",
|
|
387
|
+
"admin.absences.rejectTitle": "Отклонить заявку",
|
|
388
|
+
"admin.absences.reason": "Причина",
|
|
389
|
+
"admin.absences.reasonOptional": "Причина (необязательно)",
|
|
390
|
+
"admin.absences.add": "Внести для сотрудника",
|
|
391
|
+
"admin.absences.addTitle": "Внести отсутствие",
|
|
392
|
+
"admin.absences.employee": "Сотрудник",
|
|
393
|
+
"admin.absences.type": "Вид",
|
|
394
|
+
"admin.absences.from": "С",
|
|
395
|
+
"admin.absences.to": "По",
|
|
396
|
+
"admin.absences.note": "Заметка (необязательно)",
|
|
397
|
+
"admin.absences.away": "Кто отсутствует ({{date}})",
|
|
398
|
+
"admin.absences.awayEmpty": "Сегодня отсутствующих нет.",
|
|
399
|
+
"admin.absences.all": "Все отсутствия",
|
|
400
|
+
"admin.absences.allEmpty": "За этот период отсутствий нет.",
|
|
401
|
+
"admin.absences.portion": "Доля: {{portion}}",
|
|
402
|
+
"absences.state.requested": "запрошено",
|
|
403
|
+
"absences.state.approved": "одобрено",
|
|
404
|
+
"absences.state.rejected": "отклонено",
|
|
405
|
+
"absences.reason": "Причина"
|
|
366
406
|
}
|
package/src-pwa/src/i18n/uk.json
CHANGED
|
@@ -362,5 +362,45 @@
|
|
|
362
362
|
"admin.automation.save": "Зберегти правила",
|
|
363
363
|
"admin.automation.edit": "Змінити",
|
|
364
364
|
"admin.automation.editTitle": "Змінити правило",
|
|
365
|
-
"admin.automation.newTitle": "Нове правило"
|
|
365
|
+
"admin.automation.newTitle": "Нове правило",
|
|
366
|
+
"absences.vacationTag": "відпустка",
|
|
367
|
+
"admin.absenceTypes.title": "Види відсутності",
|
|
368
|
+
"admin.absenceTypes.hint": "Код, назва та дія відсутностей. «Відпустка» позначає вид, що витрачає ліміт відпустки.",
|
|
369
|
+
"admin.absenceTypes.code": "Код",
|
|
370
|
+
"admin.absenceTypes.name": "Назва",
|
|
371
|
+
"admin.absenceTypes.paid": "Оплачується",
|
|
372
|
+
"admin.absenceTypes.factor": "Коефіцієнт (%)",
|
|
373
|
+
"admin.absenceTypes.reduceVacation": "Зменшує відпустку",
|
|
374
|
+
"admin.absenceTypes.active": "Активно",
|
|
375
|
+
"admin.absenceTypes.add": "Додати вид",
|
|
376
|
+
"admin.absenceTypes.edit": "Змінити",
|
|
377
|
+
"admin.absenceTypes.editTitle": "Змінити вид",
|
|
378
|
+
"admin.absenceTypes.newTitle": "Новий вид",
|
|
379
|
+
"admin.absenceTypes.empty": "Види відсутності не задані.",
|
|
380
|
+
"admin.absenceTypes.note": "Наявні відсутності зберігають свій вид — змінена назва одразу видно всюди.",
|
|
381
|
+
"admin.absences.title": "Відсутності",
|
|
382
|
+
"admin.absences.pending": "Відкриті заявки",
|
|
383
|
+
"admin.absences.pendingEmpty": "Відкритих заявок немає — усе вирішено.",
|
|
384
|
+
"admin.absences.approve": "Схвалити",
|
|
385
|
+
"admin.absences.reject": "Відхилити",
|
|
386
|
+
"admin.absences.approveTitle": "Схвалити заявку",
|
|
387
|
+
"admin.absences.rejectTitle": "Відхилити заявку",
|
|
388
|
+
"admin.absences.reason": "Причина",
|
|
389
|
+
"admin.absences.reasonOptional": "Причина (необов'язково)",
|
|
390
|
+
"admin.absences.add": "Внести для працівника",
|
|
391
|
+
"admin.absences.addTitle": "Внести відсутність",
|
|
392
|
+
"admin.absences.employee": "Працівник",
|
|
393
|
+
"admin.absences.type": "Вид",
|
|
394
|
+
"admin.absences.from": "Від",
|
|
395
|
+
"admin.absences.to": "До",
|
|
396
|
+
"admin.absences.note": "Нотатка (необов'язково)",
|
|
397
|
+
"admin.absences.away": "Хто відсутній ({{date}})",
|
|
398
|
+
"admin.absences.awayEmpty": "Сьогодні ніхто не відсутній.",
|
|
399
|
+
"admin.absences.all": "Усі відсутності",
|
|
400
|
+
"admin.absences.allEmpty": "За цей період відсутностей немає.",
|
|
401
|
+
"admin.absences.portion": "Частка: {{portion}}",
|
|
402
|
+
"absences.state.requested": "запитано",
|
|
403
|
+
"absences.state.approved": "схвалено",
|
|
404
|
+
"absences.state.rejected": "відхилено",
|
|
405
|
+
"absences.reason": "Причина"
|
|
366
406
|
}
|