iobroker.time-tracker 0.7.8 → 0.7.10

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/io-package.json CHANGED
@@ -1,9 +1,35 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "time-tracker",
4
- "version": "0.7.8",
4
+ "version": "0.7.10",
5
5
  "nogit": true,
6
6
  "news": {
7
+ "0.7.10": {
8
+ "en": "change: the state `calendar.feedFile` is called “Path of the calendar file (.ics)” now — the old name “calendar file” made the value look like a download, while it is the path that the `ical` adapter reads; a browser, a calendar app or a script uses the link `calendar.feedUrl`.",
9
+ "de": "change: Der Zustand `calendar.feedFile` heißt jetzt „Pfad der Kalenderdatei (.ics)“ – der alte Name „Kalenderdatei“ ließ den Wert wie einen Download aussehen, obwohl er der Pfad ist, den der `ical`-Adapter liest; ein Browser, eine Kalender-App oder ein Skript nutzt den Link `calendar.feedUrl`.",
10
+ "ru": "изменение: состояние `calendar.feedFile` теперь называется «Путь к файлу календаря (.ics)» — прежнее имя «файл календаря» выглядело как загрузка, хотя это путь, который читает адаптер `ical`; браузер, календарное приложение или скрипт использует ссылку `calendar.feedUrl`.",
11
+ "pt": "alteração: o estado `calendar.feedFile` chama-se agora «Caminho do ficheiro de calendário (.ics)» — o nome antigo «ficheiro de calendário» fazia o valor parecer uma transferência, embora seja o caminho que o adaptador `ical` lê; um navegador, uma aplicação de calendário ou um script usa a ligação `calendar.feedUrl`.",
12
+ "nl": "wijziging: de toestand `calendar.feedFile` heet nu ‘Pad van het kalenderbestand (.ics)’ — de oude naam ‘kalenderbestand’ deed de waarde als een download lijken, terwijl het het pad is dat de `ical`-adapter leest; een browser, een agenda-app of een script gebruikt de link `calendar.feedUrl`.",
13
+ "fr": "changement : l'état `calendar.feedFile` s'appelle désormais « Chemin du fichier de calendrier (.ics) » — l'ancien nom « fichier de calendrier » faisait passer la valeur pour un téléchargement, alors que c'est le chemin que lit l'adaptateur `ical` ; un navigateur, une application d'agenda ou un script utilise le lien `calendar.feedUrl`.",
14
+ "it": "modifica: lo stato `calendar.feedFile` ora si chiama «Percorso del file di calendario (.ics)» — il vecchio nome «file di calendario» faceva sembrare il valore un download, mentre è il percorso che legge l'adattatore `ical`; un browser, un'app di calendario o uno script usa il link `calendar.feedUrl`.",
15
+ "es": "cambio: el estado `calendar.feedFile` ahora se llama «Ruta del archivo de calendario (.ics)» — el nombre antiguo «archivo de calendario» hacía que el valor pareciera una descarga, aunque es la ruta que lee el adaptador `ical`; un navegador, una app de calendario o un script usa el enlace `calendar.feedUrl`.",
16
+ "pl": "zmiana: stan `calendar.feedFile` nazywa się teraz „Ścieżka pliku kalendarza (.ics)” — dawna nazwa „plik kalendarza” wyglądała jak pobieranie, a to ścieżka, którą czyta adapter `ical`; przeglądarka, aplikacja kalendarza lub skrypt używa linku `calendar.feedUrl`.",
17
+ "uk": "зміна: стан `calendar.feedFile` тепер називається «Шлях до файлу календаря (.ics)» — стара назва «файл календаря» виглядала як завантаження, хоча це шлях, який читає адаптер `ical`; браузер, календарний застосунок або скрипт використовує посилання `calendar.feedUrl`.",
18
+ "zh-cn": "变更:状态 `calendar.feedFile` 现在名为“日历文件的路径(.ics)”——旧名称“日历文件”让人以为该值是一个下载文件,实际上它是 `ical` 适配器读取的路径;浏览器、日历应用或脚本使用链接 `calendar.feedUrl`。"
19
+ },
20
+ "0.7.9": {
21
+ "en": "fix: “Feiertag hinzufügen” stayed grey as long as the day had to be typed as text — it comes from the date field of the browser now, and the label no longer names a format. A holiday entered without a region belongs to the country of the instance instead of always “DE”, the list shows the days of every region of the year, and a day of the next year takes the shown year along. “Abbrechen” closes the form of an absence while it is being changed as well.",
22
+ "de": "fix: „Feiertag hinzufügen“ blieb grau, solange der Tag als Text eingetippt werden musste – jetzt kommt er aus dem Datumsfeld des Browsers, und die Beschriftung nennt kein Format mehr. Ein ohne Region erfasster Feiertag gehört dem Land der Instanz statt immer „DE“, die Liste zeigt die Tage aller Regionen des Jahres, und ein Tag des nächsten Jahres holt das angezeigte Jahr mit. „Abbrechen“ schließt auch das Fenster einer Änderung.",
23
+ "ru": "исправление: «Feiertag hinzufügen» оставалась серой, пока день нужно было вводить текстом — теперь он приходит из поля даты браузера, и подпись больше не называет формат. Праздник, добавленный без региона, принадлежит стране экземпляра, а не всегда «DE», список показывает дни всех регионов года, а день следующего года тянет за собой показанный год. «Abbrechen» закрывает и окно изменения.",
24
+ "pt": "correção: «Feiertag hinzufügen» ficava cinzento enquanto o dia tinha de ser escrito como texto — agora vem do campo de data do navegador, e a etiqueta já não indica um formato. Um feriado registado sem região pertence ao país da instância em vez de sempre «DE», a lista mostra os dias de todas as regiões do ano, e um dia do ano seguinte traz consigo o ano apresentado. «Abbrechen» fecha também a janela de uma alteração.",
25
+ "nl": "fix: ‘Feiertag hinzufügen’ bleef grijs zolang de dag als tekst getypt moest worden — hij komt nu uit het datumveld van de browser, en het label noemt geen formaat meer. Een feestdag zonder regio hoort bij het land van de instantie in plaats van altijd ‘DE’, de lijst toont de dagen van alle regio's van het jaar, en een dag van het volgende jaar neemt het getoonde jaar mee. ‘Abbrechen’ sluit ook het venster van een wijziging.",
26
+ "fr": "correctif : « Feiertag hinzufügen » restait grisé tant que le jour devait être saisi comme texte — il vient désormais du champ de date du navigateur, et le libellé ne nomme plus de format. Un jour férié saisi sans région appartient au pays de l'instance au lieu de toujours « DE », la liste affiche les jours de toutes les régions de l'année, et un jour de l'année suivante entraîne l'année affichée. « Abbrechen » ferme aussi la fenêtre d'une modification.",
27
+ "it": "correzione: «Feiertag hinzufügen» restava grigio finché il giorno andava digitato come testo — ora arriva dal campo data del browser, e l'etichetta non indica più un formato. Una festività inserita senza regione appartiene al paese dell'istanza invece che sempre «DE», l'elenco mostra i giorni di tutte le regioni dell'anno, e un giorno dell'anno successivo porta con sé l'anno mostrato. «Abbrechen» chiude anche la finestra di una modifica.",
28
+ "es": "corrección: «Feiertag hinzufügen» seguía gris mientras el día hubiera que escribirlo como texto — ahora viene del campo de fecha del navegador, y la etiqueta ya no indica un formato. Un festivo introducido sin región pertenece al país de la instancia en lugar de siempre «DE», la lista muestra los días de todas las regiones del año, y un día del año siguiente trae consigo el año mostrado. «Abbrechen» también cierra la ventana de una modificación.",
29
+ "pl": "poprawka: „Feiertag hinzufügen” był wyszarzony, dopóki dzień trzeba było wpisywać jako tekst — teraz pochodzi z pola daty przeglądarki, a etykieta nie podaje już formatu. Święto dodane bez regionu należy do kraju instancji, a nie zawsze do „DE”, lista pokazuje dni wszystkich regionów roku, a dzień następnego roku pociąga za sobą wyświetlany rok. „Abbrechen” zamyka też okno zmiany.",
30
+ "uk": "виправлення: «Feiertag hinzufügen» залишалася сірою, доки день потрібно було вводити текстом — тепер він надходить із поля дати браузера, і підпис більше не називає формат. Свято, додане без регіону, належить країні екземпляра, а не завжди «DE», список показує дні всіх регіонів року, а день наступного року тягне за собою показаний рік. «Abbrechen» закриває й вікно зміни.",
31
+ "zh-cn": "修复:“Feiertag hinzufügen”在必须以文本输入日期时一直是灰色——现在日期来自浏览器的日期字段,标签也不再说明格式。未填写地区的节日属于实例所在国家,而不再固定为“DE”,列表会显示该年度所有地区的日期,下一年度的日期会一并切换显示的年份。“Abbrechen”也会关闭修改窗口。"
32
+ },
7
33
  "0.7.8": {
8
34
  "en": "new: an absence can be taken back — an employee withdraws an open request, and for an approved absence he asks for the cancellation (with a reason); the days keep counting until the administration accepts or declines it. The administration changes and deletes absences in the app, the rules name their newest run in their own row, and a hint beside “Save rules” says that the table is saved as a whole.",
9
35
  "de": "neu: Eine Abwesenheit lässt sich zurücknehmen – ein offener Antrag wird zurückgezogen, und für eine genehmigte Abwesenheit wird das Storno beantragt (mit Grund); die Tage zählen weiter, bis die Verwaltung annimmt oder ablehnt. Die Verwaltung ändert und löscht Abwesenheiten in der App, die Regeln nennen ihre neueste Ausführung in einer eigenen Zeile, und ein Hinweis neben „Regeln speichern“ sagt, dass die Tabelle als Ganzes gespeichert wird.",
@@ -68,32 +94,6 @@
68
94
  "pl": "poprawka: link subskrypcji firmy (`calendar.feedUrl`) zawiera teraz prefiks API (`/api/calendar.ics?token=…`) — bez niego przeglądarka pokazywała aplikację web z logowaniem zamiast kalendarza. Zapisywany plik kalendarza znajduje się w `files/time-tracker.<n>/calendar.ics`, skąd instancja `web` udostępnia go do pobrania, a adapter `ical` nadal czyta go jako plik lokalny.",
69
95
  "uk": "виправлення: посилання підписки компанії (`calendar.feedUrl`) тепер містить префікс API (`/api/calendar.ics?token=…`) — без нього браузер показував веб-застосунок із входом замість календаря. Записуваний файл календаря лежить у `files/time-tracker.<n>/calendar.ics`, звідки екземпляр `web` віддає його на завантаження, а адаптер `ical` далі читає його як локальний файл.",
70
96
  "zh-cn": "修复:公司的订阅链接(`calendar.feedUrl`)现在带有 API 前缀(`/api/calendar.ics?token=…`)—— 否则浏览器显示的是 Web 应用及其登录页而非日历。写出的日历文件位于 `files/time-tracker.<n>/calendar.ics`,由 `web` 实例提供下载,而 `ical` 适配器仍将其作为本地文件读取。"
71
- },
72
- "0.7.3": {
73
- "en": "new: the calendar goes to ioBroker. The adapter writes `calendar.ics` into its instance folder — the `ical` adapter reads that as a local file, without URL, token or network — and publishes the subscription link of the company in `calendar.feedUrl` plus the same days as JSON in `calendar.absences` (`calendar.updatedAt` says how fresh they are). That link opens the absences of all employees, so nothing happens by itself: `commands.rotateCalendarToken` creates the token and replaces it on every further call, which kills an old link at once. Besides, the guard `requireInsideEditWindow` is gone — it had been unreachable since times belong to the administration (`edit_window_days` only feeds the offline queue).",
74
- "de": "neu: Der Kalender geht an ioBroker. Der Adapter schreibt `calendar.ics` in seinen Instanz-Ordner — der `ical`-Adapter liest das als lokale Datei, ohne URL, Token und Netz — und veröffentlicht den Abo-Link der Firma als `calendar.feedUrl` sowie dieselben Tage als JSON in `calendar.absences` (`calendar.updatedAt` sagt, wie frisch sie sind). Dieser Link öffnet die Abwesenheiten aller Mitarbeiter, deshalb passiert nichts von selbst: `commands.rotateCalendarToken` erzeugt den Token und ersetzt ihn bei jedem weiteren Aufruf, womit ein alter Link sofort tot ist. Außerdem ist die Prüfung `requireInsideEditWindow` entfernt: sie war seit „Zeiten gehören der Verwaltung“ nicht mehr erreichbar (`edit_window_days` wirkt nur noch auf die Offline-Warteschlange).",
75
- "ru": "новое: календарь передаётся в ioBroker. Адаптер пишет `calendar.ics` в папку своего экземпляра — адаптер `ical` читает его как локальный файл, без URL, токена и сети — и публикует ссылку подписки фирмы в `calendar.feedUrl`, а те же дни в JSON — в `calendar.absences` (`calendar.updatedAt` показывает, насколько они свежие). Эта ссылка открывает отсутствия всех сотрудников, поэтому ничего не происходит само: `commands.rotateCalendarToken` создаёт токен и заменяет его при каждом следующем вызове, отчего старая ссылка сразу перестаёт работать. Кроме того, удалена проверка `requireInsideEditWindow`: она была недостижима с момента «время принадлежит администрации» (`edit_window_days` влияет только на офлайн-очередь).",
76
- "pt": "novo: o calendário vai para o ioBroker. O adaptador escreve `calendar.ics` na pasta da sua instância — o adaptador `ical` lê-o como ficheiro local, sem URL, token nem rede — e publica a ligação de subscrição da empresa em `calendar.feedUrl` e os mesmos dias em JSON em `calendar.absences` (`calendar.updatedAt` diz quão recentes são). Essa ligação abre as ausências de todos os funcionários, por isso nada acontece por si: `commands.rotateCalendarToken` cria o token e substitui-o a cada chamada seguinte, o que mata logo uma ligação antiga. Além disso, a verificação `requireInsideEditWindow` desapareceu: era inalcançável desde que «os tempos pertencem à administração» (`edit_window_days` só alimenta a fila offline).",
77
- "nl": "nieuw: de kalender gaat naar ioBroker. De adapter schrijft `calendar.ics` in de map van zijn instantie — de `ical`-adapter leest dat als lokaal bestand, zonder URL, token of netwerk — en publiceert de abonnementslink van het bedrijf in `calendar.feedUrl` plus dezelfde dagen als JSON in `calendar.absences` (`calendar.updatedAt` zegt hoe vers ze zijn). Die link opent de afwezigheden van alle medewerkers, dus er gebeurt niets vanzelf: `commands.rotateCalendarToken` maakt de token aan en vervangt hem bij elke volgende aanroep, waardoor een oude link meteen dood is. Daarnaast is de controle `requireInsideEditWindow` verdwenen: die was onbereikbaar sinds „tijden zijn van de administratie“ (`edit_window_days` voedt alleen de offline wachtrij).",
78
- "fr": "nouveau : le calendrier va vers ioBroker. L'adaptateur écrit `calendar.ics` dans le dossier de son instance — l'adaptateur `ical` le lit comme fichier local, sans URL, jeton ni réseau — et publie le lien d'abonnement de l'entreprise dans `calendar.feedUrl` ainsi que les mêmes jours en JSON dans `calendar.absences` (`calendar.updatedAt` dit leur fraîcheur). Ce lien ouvre les absences de tous les employés, donc rien ne se fait tout seul : `commands.rotateCalendarToken` crée le jeton et le remplace à chaque appel suivant, ce qui tue aussitôt un ancien lien. En outre, le contrôle `requireInsideEditWindow` a disparu : il était inatteignable depuis « les horaires appartiennent à l'administration » (`edit_window_days` n'alimente que la file hors ligne).",
79
- "it": "novità: il calendario va a ioBroker. L'adattatore scrive `calendar.ics` nella cartella della sua istanza — l'adattatore `ical` lo legge come file locale, senza URL, token o rete — e pubblica il link di sottoscrizione dell'azienda in `calendar.feedUrl` e gli stessi giorni in JSON in `calendar.absences` (`calendar.updatedAt` dice quanto sono freschi). Quel link apre le assenze di tutti i dipendenti, quindi non succede nulla da solo: `commands.rotateCalendarToken` crea il token e lo sostituisce a ogni chiamata successiva, il che rende subito inutile un vecchio link. Inoltre il controllo `requireInsideEditWindow` è stato rimosso: era irraggiungibile da quando «gli orari appartengono all'amministrazione» (`edit_window_days` alimenta solo la coda offline).",
80
- "es": "novedad: el calendario va a ioBroker. El adaptador escribe `calendar.ics` en la carpeta de su instancia — el adaptador `ical` lo lee como archivo local, sin URL, token ni red — y publica el enlace de suscripción de la empresa en `calendar.feedUrl` y los mismos días como JSON en `calendar.absences` (`calendar.updatedAt` dice su antigüedad). Ese enlace abre las ausencias de todos los empleados, así que nada ocurre por sí solo: `commands.rotateCalendarToken` crea el token y lo sustituye en cada llamada posterior, lo que anula al instante un enlace antiguo. Además se ha eliminado la comprobación `requireInsideEditWindow`: era inalcanzable desde «los horarios pertenecen a la administración» (`edit_window_days` solo alimenta la cola sin conexión).",
81
- "pl": "nowość: kalendarz trafia do ioBroker. Adapter zapisuje `calendar.ics` w folderze swojej instancji — adapter `ical` czyta go jako plik lokalny, bez URL, tokenu i sieci — i publikuje link subskrypcji firmy w `calendar.feedUrl` oraz te same dni jako JSON w `calendar.absences` (`calendar.updatedAt` mówi, jak świeże są). Ten link otwiera nieobecności wszystkich pracowników, więc nic nie dzieje się samo: `commands.rotateCalendarToken` tworzy token i zastępuje go przy każdym kolejnym wywołaniu, co natychmiast unieważnia stary link. Dodatkowo usunięto kontrolę `requireInsideEditWindow`: była nieosiągalna od czasu „czas należy do administracji” (`edit_window_days` zasila tylko kolejkę offline).",
82
- "uk": "новинка: календар передається в ioBroker. Адаптер пише `calendar.ics` у папці свого екземпляра — адаптер `ical` читає його як локальний файл, без URL, токена й мережі — і публікує посилання підписки компанії в `calendar.feedUrl`, а ті самі дні як JSON — у `calendar.absences` (`calendar.updatedAt` показує, наскільки вони свіжі). Це посилання відкриває відсутності всіх працівників, тому нічого не відбувається саме собою: `commands.rotateCalendarToken` створює токен і замінює його за кожного наступного виклику, від чого старе посилання одразу перестає працювати. Крім того, прибрано перевірку `requireInsideEditWindow`: вона була недосяжною відколи «час належить адміністрації» (`edit_window_days` живить лише офлайн-чергу).",
83
- "zh-cn": "新增:日历接入 ioBroker。适配器把 `calendar.ics` 写入其实例文件夹 —— `ical` 适配器可将其作为本地文件读取,无需网址、令牌或网络 —— 并把公司的订阅链接发布在 `calendar.feedUrl`,同样的日期以 JSON 形式发布在 `calendar.absences`(`calendar.updatedAt` 显示其新鲜度)。该链接会打开所有员工的缺勤,因此不会自动生成:`commands.rotateCalendarToken` 创建令牌,并在之后每次调用时替换它,旧链接立即失效。此外移除了 `requireInsideEditWindow` 检查:自「时间属于管理方」以来它已无法触发(`edit_window_days` 现在只影响离线队列)。"
84
- },
85
- "0.7.2": {
86
- "en": "security: the administration cannot lock itself out any more. Deactivating or taking the admin role away from the last active administrator is refused (409 `last_administrator`), and the web app warns before it is tried on the own account — the switch of the own account explains why an account cannot deactivate itself. The PDF statement writes the absences left aligned on lines of their own, and the list of the absence types shows “visible for everybody” on a line of its own so that “reduces vacation” cannot push it out of the row any more.",
87
- "de": "Sicherheit: Die Verwaltung kann sich nicht mehr aussperren – das Deaktivieren und das Entziehen der Administrator-Rolle wird abgelehnt, wenn es den letzten aktiven Administrator treffen würde (409 `last_administrator`), und die App warnt, wenn man es beim eigenen Konto versucht – der Schalter des eigenen Kontos erklärt, warum ein Konto sich nicht selbst deaktivieren kann. Der PDF-Stundennachweis schreibt die Abwesenheiten linksbündig in eigenen Zeilen, und die Liste der Abwesenheitsarten zeigt „Für alle sichtbar“ in einer eigenen Zeile, damit „Zieht vom Urlaub ab“ sie nicht mehr aus der Zeile drängt.",
88
- "ru": "безопасность: администрация больше не может запереть себя — деактивация или снятие роли администратора отклоняется, если это последний активный администратор (409 `last_administrator`), а приложение предупреждает при попытке сделать это со своей учётной записью — переключатель своей учётной записи объясняет, почему она не может деактивировать себя сама. PDF-отчёт пишет отсутствия с выравниванием по левому краю отдельными строками, а список видов отсутствия показывает «видно всем» отдельной строкой, чтобы «уменьшает отпуск» больше не вытеснял её из строки.",
89
- "pt": "segurança: a administração já não se pode bloquear — desativar ou retirar o papel de administrador ao último administrador ativo é recusado (409 `last_administrator`) e a aplicação avisa antes de o tentar na própria conta — o interruptor da própria conta explica porque é que ela não se pode desativar a si mesma. O extrato em PDF escreve as ausências alinhadas à esquerda em linhas próprias, e a lista dos tipos de ausência mostra «visível para todos» numa linha própria, para que «reduz as férias» já não a empurre para fora da linha.",
90
- "nl": "veiligheid: de administratie kan zichzelf niet meer buitensluiten — het deactiveren of afnemen van de beheerdersrol wordt geweigerd als het de laatste actieve beheerder zou treffen (409 `last_administrator`), en de app waarschuwt voordat het op het eigen account wordt geprobeerd — de schakelaar van het eigen account legt uit waarom een account zichzelf niet kan deactiveren. De PDF-afrekening schrijft de afwezigheden links uitgelijnd in eigen regels, en de lijst met afwezigheidstypes toont „zichtbaar voor iedereen“ op een eigen regel, zodat „trekt vakantie af“ die niet meer uit de regel duwt.",
91
- "fr": "sécurité : l'administration ne peut plus se verrouiller — la désactivation ou le retrait du rôle d'administrateur est refusé s'il touche le dernier administrateur actif (409 `last_administrator`), et l'application avertit avant de l'essayer sur le propre compte — l'interrupteur du propre compte explique pourquoi un compte ne peut pas se désactiver lui-même. Le relevé PDF écrit les absences alignées à gauche sur des lignes propres, et la liste des types d'absence affiche « visible pour tout le monde » sur une ligne à part, pour que « déduit des vacances » ne la repousse plus hors de la ligne.",
92
- "it": "sicurezza: l'amministrazione non può più chiudersi fuori — la disattivazione o la rimozione del ruolo di amministratore viene rifiutata se riguarda l'ultimo amministratore attivo (409 `last_administrator`) e l'app avvisa prima di provarla sul proprio account — l'interruttore del proprio account spiega perché un account non può disattivarsi da solo. Il rendiconto PDF scrive le assenze allineate a sinistra su righe proprie, e l'elenco dei tipi di assenza mostra «visibile a tutti» su una riga propria, così «riduce le ferie» non la spinge più fuori riga.",
93
- "es": "seguridad: la administración ya no puede bloquearse a sí misma — desactivar o retirar el rol de administrador se rechaza si afecta al último administrador activo (409 `last_administrator`), y la aplicación avisa antes de intentarlo en la cuenta propia — el interruptor de la cuenta propia explica por qué una cuenta no puede desactivarse a sí misma. El extracto en PDF escribe las ausencias alineadas a la izquierda en líneas propias, y la lista de tipos de ausencia muestra «visible para todos» en una línea propia, para que «descuenta vacaciones» no la empuje fuera de la línea.",
94
- "pl": "bezpieczeństwo: administracja nie może już sama się zablokować — dezaktywacja lub odebranie roli administratora jest odrzucane, jeśli dotyczy ostatniego aktywnego administratora (409 `last_administrator`), a aplikacja ostrzega przed próbą wykonania tego na własnym koncie — przełącznik własnego konta wyjaśnia, dlaczego nie może się ono samo dezaktywować. Zestawienie PDF zapisuje nieobecności wyrównane do lewej w osobnych wierszach, a lista typów nieobecności pokazuje „widoczne dla wszystkich” w osobnym wierszu, aby „odejmuje urlop” nie wypychało jej z wiersza.",
95
- "uk": "безпека: адміністрація більше не може заблокувати себе — деактивацію або позбавлення ролі адміністратора відхилено, якщо це останній активний адміністратор (409 `last_administrator`), а застосунок попереджає перед спробою зробити це з власним обліковим записом — перемикач власного облікового запису пояснює, чому він не може деактивувати себе сам. PDF-звіт пише відсутності з вирівнюванням ліворуч окремими рядками, а список видів відсутності показує «видно всім» окремим рядком, щоб «зменшує відпустку» не витісняло його з рядка.",
96
- "zh-cn": "安全:管理方不会再把自己锁在外面 —— 若涉及最后一位在职管理员,停用或移除管理员角色会被拒绝(409 `last_administrator`),而应用在自己的账户上尝试时也会先提示 —— 自己的账户开关会说明为什么账户无法停用自己。PDF 报表将缺勤改为左对齐、独立成行;缺勤类型列表把「所有人可见」单独放在一行,因此「扣减假期」不会再把它挤出该行。"
97
97
  }
98
98
  },
99
99
  "titleLang": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.time-tracker",
3
- "version": "0.7.8",
3
+ "version": "0.7.10",
4
4
  "description": "Time tracking (clock-in/out) for ioBroker with web app, badge terminal and reports",
5
5
  "author": {
6
6
  "name": "Alex",
@@ -230,7 +230,7 @@
230
230
  "admin.settings.setting.timezone": "Zeitzone",
231
231
  "admin.settings.saved": "Einstellungen gespeichert.",
232
232
  "admin.holidays": "Feiertage",
233
- "admin.holiday.date": "Datum (JJJJ-MM-TT)",
233
+ "admin.holiday.date": "Datum",
234
234
  "admin.holiday.name": "Bezeichnung",
235
235
  "holiday.newYear": "Neujahr",
236
236
  "holiday.epiphany": "Heilige Drei Könige",
@@ -230,7 +230,7 @@
230
230
  "admin.settings.setting.timezone": "Time zone",
231
231
  "admin.settings.saved": "Settings saved.",
232
232
  "admin.holidays": "Public holidays",
233
- "admin.holiday.date": "Date (YYYY-MM-DD)",
233
+ "admin.holiday.date": "Date",
234
234
  "admin.holiday.name": "Name",
235
235
  "holiday.newYear": "New Year",
236
236
  "holiday.epiphany": "Epiphany",
@@ -230,7 +230,7 @@
230
230
  "admin.settings.setting.timezone": "Zona horaria",
231
231
  "admin.settings.saved": "Ajustes guardados.",
232
232
  "admin.holidays": "Días festivos",
233
- "admin.holiday.date": "Fecha (AAAA-MM-DD)",
233
+ "admin.holiday.date": "Fecha",
234
234
  "admin.holiday.name": "Nombre",
235
235
  "holiday.newYear": "Año Nuevo",
236
236
  "holiday.epiphany": "Epifanía",
@@ -230,7 +230,7 @@
230
230
  "admin.settings.setting.timezone": "Fuseau horaire",
231
231
  "admin.settings.saved": "Paramètres enregistrés.",
232
232
  "admin.holidays": "Jours fériés",
233
- "admin.holiday.date": "Date (AAAA-MM-JJ)",
233
+ "admin.holiday.date": "Date",
234
234
  "admin.holiday.name": "Nom",
235
235
  "holiday.newYear": "Nouvel An",
236
236
  "holiday.epiphany": "Épiphanie",
@@ -230,7 +230,7 @@
230
230
  "admin.settings.setting.timezone": "Fuso orario",
231
231
  "admin.settings.saved": "Impostazioni salvate.",
232
232
  "admin.holidays": "Giorni festivi",
233
- "admin.holiday.date": "Data (AAAA-MM-GG)",
233
+ "admin.holiday.date": "Data",
234
234
  "admin.holiday.name": "Nome",
235
235
  "holiday.newYear": "Capodanno",
236
236
  "holiday.epiphany": "Epifania",
@@ -230,7 +230,7 @@
230
230
  "admin.settings.setting.timezone": "Tijdzone",
231
231
  "admin.settings.saved": "Instellingen opgeslagen.",
232
232
  "admin.holidays": "Feestdagen",
233
- "admin.holiday.date": "Datum (JJJJ-MM-DD)",
233
+ "admin.holiday.date": "Datum",
234
234
  "admin.holiday.name": "Naam",
235
235
  "holiday.newYear": "Nieuwjaar",
236
236
  "holiday.epiphany": "Driekoningen",
@@ -230,7 +230,7 @@
230
230
  "admin.settings.setting.timezone": "Strefa czasowa",
231
231
  "admin.settings.saved": "Ustawienia zapisane.",
232
232
  "admin.holidays": "Dni świąteczne",
233
- "admin.holiday.date": "Data (RRRR-MM-DD)",
233
+ "admin.holiday.date": "Data",
234
234
  "admin.holiday.name": "Nazwa",
235
235
  "holiday.newYear": "Nowy Rok",
236
236
  "holiday.epiphany": "Trzech Króli",
@@ -230,7 +230,7 @@
230
230
  "admin.settings.setting.timezone": "Fuso horário",
231
231
  "admin.settings.saved": "Configurações guardadas.",
232
232
  "admin.holidays": "Feriados",
233
- "admin.holiday.date": "Data (AAAA-MM-DD)",
233
+ "admin.holiday.date": "Data",
234
234
  "admin.holiday.name": "Nome",
235
235
  "holiday.newYear": "Ano Novo",
236
236
  "holiday.epiphany": "Dia de Reis",
@@ -230,7 +230,7 @@
230
230
  "admin.settings.setting.timezone": "Часовой пояс",
231
231
  "admin.settings.saved": "Настройки сохранены.",
232
232
  "admin.holidays": "Праздничные дни",
233
- "admin.holiday.date": "Дата (ГГГГ-ММ-ДД)",
233
+ "admin.holiday.date": "Дата",
234
234
  "admin.holiday.name": "Название",
235
235
  "holiday.newYear": "Новый год",
236
236
  "holiday.epiphany": "Богоявление",
@@ -230,7 +230,7 @@
230
230
  "admin.settings.setting.timezone": "Часовий пояс",
231
231
  "admin.settings.saved": "Налаштування збережено.",
232
232
  "admin.holidays": "Святкові дні",
233
- "admin.holiday.date": "Дата (РРРР-ММ-ДД)",
233
+ "admin.holiday.date": "Дата",
234
234
  "admin.holiday.name": "Назва",
235
235
  "holiday.newYear": "Новий рік",
236
236
  "holiday.epiphany": "Богоявлення",
@@ -230,7 +230,7 @@
230
230
  "admin.settings.setting.timezone": "时区",
231
231
  "admin.settings.saved": "设置已保存。",
232
232
  "admin.holidays": "公共假日",
233
- "admin.holiday.date": "日期(YYYY-MM-DD)",
233
+ "admin.holiday.date": "日期",
234
234
  "admin.holiday.name": "名称",
235
235
  "holiday.newYear": "元旦",
236
236
  "holiday.epiphany": "主显节",