iobroker.ical 1.13.2 → 1.13.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2014-2022, bluefox <dogafox@gmail.com>
3
+ Copyright (c) 2014-2023, bluefox <dogafox@gmail.com>
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -9,10 +9,11 @@
9
9
  [![Translation status](https://weblate.iobroker.net/widgets/adapters/-/ical/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget)
10
10
  [![Downloads](https://img.shields.io/npm/dm/iobroker.ical.svg)](https://www.npmjs.com/package/iobroker.ical)
11
11
 
12
- This adapter allows to read .ics files from specific URL and parse it (Google Calendar or iCal).
13
- Alternatively it is possible to use a local `.ics` file (use absolute path to the file instead of URL)
12
+ ioBroker.ical is an adapter for the ioBroker automation platform focusing on iCalendar files, widely used for storing and sharing calendar data. It allows users to read and parse iCalendar files locally or from a specified URL.
14
13
 
15
- **This adapter uses Sentry libraries to automatically report exceptions and code errors to the developers.** For more details and for information how to disable the error reporting see [Sentry-Plugin Documentation](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Sentry reporting is used starting with js-controller 3.0.
14
+ With ioBroker.ical, you can perform various actions based on calendar events, such as triggering smart home devices, sending notifications, or executing specific scripts or routines. For example, you could create automation rules that turn on the lights when a particular event is about to start or send a reminder notification for an upcoming appointment.
15
+
16
+ Sentry reporting, starting with js-controller 3.0, means that this adapter can use Sentry libraries to report exceptions and code errors to developers automatically. For more details and how to disable error reporting, see [Sentry-Plugin Documentation](https://github.com/ioBroker/plugin-sentry#plugin-sentry).
16
17
 
17
18
  ## Documentation
18
19
 
@@ -29,6 +30,16 @@ Alternatively it is possible to use a local `.ics` file (use absolute path to th
29
30
  Placeholder for the next version (at the beginning of the line):
30
31
  ### **WORK IN PROGRESS**
31
32
  -->
33
+ ### 1.13.4 (2023-12-10)
34
+ * (jens-maus) updated node-ical to latest 0.17.0
35
+ * (jens-maus) updated dependencies
36
+
37
+ ### 1.13.3 (2023-06-20)
38
+ * (jens-maus) updated node-ical to latest 0.16.1
39
+ * (klein0r) Use color picker in adapter settings
40
+ * (klein0r) Dropped Admin 4 UI
41
+ * (klein0r) Added Ukrainian language
42
+
32
43
  ### 1.13.2 (2022-08-29)
33
44
  * (Apollon77) fix strange log messages by downgrading RRule again
34
45
 
@@ -39,17 +50,11 @@ Alternatively it is possible to use a local `.ics` file (use absolute path to th
39
50
  * (klein0r) Added Admin 5 UI
40
51
  * (klein0r) Translated all object names
41
52
 
42
- ### 1.12.2 (2022-06-03)
43
- * (Apollon77) Fix displaying rest-time of event in one case
44
-
45
- ### 1.12.1 (2022-03-22)
46
- * (Apollon77) Adjust colorize of dates to also show dates started in the past with todays color
47
-
48
53
  ## License
49
54
 
50
55
  The MIT License (MIT)
51
56
 
52
- Copyright (c) 2014-2022, bluefox <dogafox@gmail.com>
57
+ Copyright (c) 2014-2023, bluefox <dogafox@gmail.com>
53
58
 
54
59
  Permission is hereby granted, free of charge, to any person obtaining a copy
55
60
  of this software and associated documentation files (the "Software"), to deal
@@ -19,7 +19,7 @@
19
19
  "Use by full day": "Ersetze 00:00 mit",
20
20
  "color": "Farbe",
21
21
  "display": "anzeigen",
22
- "enabled": "Aktiviert",
22
+ "enabled": "aktiviert",
23
23
  "filter": "Filter",
24
24
  "filterregex": "Filter als regulärer Ausdruck",
25
25
  "iCal adapter settings": "iCal Adapter Einstellungen",
@@ -0,0 +1,34 @@
1
+ {
2
+ "Add arrow for started events": "Додайте стрілку для розпочатих подій",
3
+ "Add event color if available": "Використовуйте колір події для поля, якщо доступний",
4
+ "Calendars": "Календарі",
5
+ "Colorize HTML": "Розфарбуйте HTML",
6
+ "Default color for HTML": "Колір за замовчуванням для HTML",
7
+ "Events": "Події",
8
+ "Every calendar has own color": "Кожен календар має свій колір",
9
+ "HTML settings": "Налаштування HTML",
10
+ "Hide Start-End of events": "Приховати початок-кінець подій",
11
+ "Hide Year": "Приховати рік",
12
+ "Ignore Certificate errors": "Ігнорувати помилки сертифіката",
13
+ "Ignore case for event-search": "Ігнорувати регістр для пошуку подій",
14
+ "Language": "Мова",
15
+ "Padding date with '0'": "Заповнення дати \"0\"",
16
+ "Past days": "Минулих днів",
17
+ "Preview days": "Дні попереднього перегляду",
18
+ "Replace dates with words": "Замініть дати словами",
19
+ "Use by full day": "Замінити 00:00 на",
20
+ "color": "колір",
21
+ "display": "дисплей",
22
+ "enabled": "включено",
23
+ "filter": "фільтр",
24
+ "filterregex": "Фільтр як регулярний вираз",
25
+ "iCal adapter settings": "Налаштування адаптера iCal",
26
+ "name": "Ім'я",
27
+ "pass": "Пароль",
28
+ "sslignore": "Ігноруйте помилки SSL",
29
+ "url": "URL-адреса календаря або ім’я файлу",
30
+ "user": "Ім'я користувача",
31
+ "Options": "Опції",
32
+ "Set ID": "Встановити ID",
33
+ "Set Ack": "Установити Ack"
34
+ }
@@ -92,7 +92,7 @@
92
92
  "label": "Use by full day"
93
93
  },
94
94
  "defColor": {
95
- "type": "text",
95
+ "type": "color",
96
96
  "sm": 12,
97
97
  "md": 4,
98
98
  "lg": 4,
@@ -176,15 +176,16 @@
176
176
  "attr": "name",
177
177
  "width": "15%",
178
178
  "title": {
179
- "en": "name",
179
+ "en": "Name",
180
180
  "de": "Name",
181
- "ru": "имя",
182
- "pt": "nome",
183
- "nl": "naam",
181
+ "ru": "Имя",
182
+ "pt": "Nome",
183
+ "nl": "Naam",
184
184
  "fr": "Nom",
185
- "it": "nome",
186
- "es": "nombre",
185
+ "it": "Nome",
186
+ "es": "Nombre",
187
187
  "pl": "Nazwa",
188
+ "uk": "Ім'я",
188
189
  "zh-cn": "姓名"
189
190
  },
190
191
  "filter": true,
@@ -205,6 +206,7 @@
205
206
  "it": "URL del calendario o nome del file",
206
207
  "es": "Calendario URL o nombre de archivo",
207
208
  "pl": "Calendar URL lub nazwy plików",
209
+ "uk": "URL-адреса календара або назва файлу",
208
210
  "zh-cn": "卡伦·URL或档案"
209
211
  },
210
212
  "filter": false,
@@ -225,6 +227,7 @@
225
227
  "it": "Nome utente",
226
228
  "es": "Nombre de usuario",
227
229
  "pl": "Imię User",
230
+ "uk": "Ім'я користувача",
228
231
  "zh-cn": "使用名称"
229
232
  },
230
233
  "filter": false,
@@ -247,6 +250,7 @@
247
250
  "it": "Password",
248
251
  "es": "Contraseña",
249
252
  "pl": "Password",
253
+ "uk": "Логін",
250
254
  "zh-cn": "护照"
251
255
  },
252
256
  "filter": false,
@@ -267,6 +271,7 @@
267
271
  "it": "Ignora errori SSL",
268
272
  "es": "Ignorar errores SSL",
269
273
  "pl": "Ignore SSL error",
274
+ "uk": "Ignore SSL помилки",
270
275
  "zh-cn": "Ignore SSL错误"
271
276
  },
272
277
  "filter": false,
@@ -287,6 +292,7 @@
287
292
  "it": "Colore",
288
293
  "es": "Color",
289
294
  "pl": "Kolor",
295
+ "uk": "Колір",
290
296
  "zh-cn": "颜色"
291
297
  },
292
298
  "filter": false,
@@ -307,6 +313,7 @@
307
313
  "it": "Filtro",
308
314
  "es": "Filtro",
309
315
  "pl": "Filter",
316
+ "uk": "Фільтри",
310
317
  "zh-cn": "电影"
311
318
  },
312
319
  "filter": false,
@@ -327,6 +334,7 @@
327
334
  "it": "Filtra come espressione normale",
328
335
  "es": "Filtro como expresión regular",
329
336
  "pl": "Filter jako zwykły wyraz wyrażenia",
337
+ "uk": "Фільтр як регулярний вираз",
330
338
  "zh-cn": "过滤为正则表达式"
331
339
  },
332
340
  "filter": false,
@@ -353,15 +361,16 @@
353
361
  "attr": "name",
354
362
  "width": "20%",
355
363
  "title": {
356
- "en": "name",
364
+ "en": "Name",
357
365
  "de": "Name",
358
- "ru": "имя",
359
- "pt": "nome",
360
- "nl": "naam",
366
+ "ru": "Имя",
367
+ "pt": "Nome",
368
+ "nl": "Naam",
361
369
  "fr": "Nom",
362
- "it": "nome",
363
- "es": "nombre",
370
+ "it": "Nome",
371
+ "es": "Nombre",
364
372
  "pl": "Nazwa",
373
+ "uk": "Ім'я",
365
374
  "zh-cn": "姓名"
366
375
  },
367
376
  "filter": true,
@@ -382,6 +391,7 @@
382
391
  "it": "Attivo",
383
392
  "es": "Activo",
384
393
  "pl": "Aktywny",
394
+ "uk": "Активний",
385
395
  "zh-cn": "精算师"
386
396
  },
387
397
  "filter": false,
@@ -402,6 +412,7 @@
402
412
  "it": "Set ID",
403
413
  "es": "Establecer ID",
404
414
  "pl": "Set Identity (ang.)",
415
+ "uk": "Встановити ID",
405
416
  "zh-cn": "导 言"
406
417
  },
407
418
  "filter": false,
@@ -417,11 +428,12 @@
417
428
  "de": "EIN",
418
429
  "ru": "НА",
419
430
  "pt": "VAMOS",
420
- "nl": "ON",
431
+ "nl": "",
421
432
  "fr": "ON",
422
433
  "it": "ON",
423
434
  "es": "ON",
424
435
  "pl": "ON",
436
+ "uk": "ПРО НАС",
425
437
  "zh-cn": "目录"
426
438
  },
427
439
  "filter": false,
@@ -442,6 +454,7 @@
442
454
  "it": "UFFICIO",
443
455
  "es": "OFF",
444
456
  "pl": "OFF",
457
+ "uk": "ВІД",
445
458
  "zh-cn": "导 言"
446
459
  },
447
460
  "filter": false,
@@ -462,6 +475,7 @@
462
475
  "it": "Set Ack",
463
476
  "es": "Set Ack",
464
477
  "pl": "Set Ack",
478
+ "uk": "Комплект Ack",
465
479
  "zh-cn": "A. 定 标"
466
480
  },
467
481
  "filter": false,
@@ -482,6 +496,7 @@
482
496
  "it": "Visualizza",
483
497
  "es": "Visualización",
484
498
  "pl": "Display",
499
+ "uk": "Показати",
485
500
  "zh-cn": "缺点"
486
501
  },
487
502
  "filter": false,
package/admin/words.js CHANGED
@@ -8,36 +8,36 @@
8
8
  'use strict';
9
9
 
10
10
  systemDictionary = {
11
- "Add arrow for started events": { "en": "Add arrow for started events", "de": "Pfeil für gestartete Ereignisse hinzufügen", "ru": "Добавить стрелку для начатых событий", "pt": "Adicionar seta para eventos iniciados", "nl": "Voeg pijl toe voor gestarte evenementen", "fr": "Ajouter une flèche pour les événements commencés", "it": "Aggiungi freccia per gli eventi iniziati", "es": "Agregar flecha para eventos iniciados", "pl": "Dodaj strzałkę do rozpoczętych wydarzeń", "zh-cn": "为开始的事件添加箭头"},
12
- "Add event color if available": { "en": "Use event color for box if available", "de": "Ereignisfarbe als Box verwenden, falls verfügbar", "ru": "Используйте цвет события для поля, если он доступен", "pt": "Use a cor do evento para a caixa, se disponível", "nl": "Gebruik gebeurteniskleur voor vak indien beschikbaar", "fr": "Utiliser la couleur de l'événement pour la case si disponible", "it": "Usa il colore dell'evento per la scatola, se disponibile", "es": "Use el color del evento para el cuadro si está disponible", "pl": "Użyj koloru zdarzenia w polu, jeśli jest dostępny", "zh-cn": "如果可用,请为框使用事件颜色"},
13
- "Calendars": { "en": "Calendars", "de": "Kalender", "ru": "Календари", "pt": "Calendário", "nl": "Agenda", "fr": "Calendriers", "it": "calendari", "es": "Calendarios", "pl": "Kalendarze", "zh-cn": "日历"},
14
- "Colorize HTML": { "en": "Colorize HTML", "de": "Benutze Farben für HTML", "ru": "Раскрашивать HTML", "pt": "Colorir HTML", "nl": "Gebruik kleuren voor HTML", "fr": "Coloriser HTML", "it": "Colorize HTML", "es": "Colorear HTML", "pl": "Koloruj HTML", "zh-cn": "着色 HTML"},
15
- "Default color for HTML": { "en": "Default color for HTML", "de": "Standardfarben für HTML", "ru": "Цвет по умолчанию для HTML", "pt": "Cor padrão para HTML", "nl": "Standaard-kleur voor HTML", "fr": "Couleur par défaut pour HTML", "it": "Colore predefinito per HTML", "es": "Color predeterminado para HTML", "pl": "Domyślny kolor dla HTML", "zh-cn": "HTML 的默认颜色"},
16
- "Events": { "en": "Events", "de": "Ereignisse", "ru": "События", "pt": "Eventos", "nl": "Gebeurtenissen", "fr": "Événements", "it": "eventi", "es": "Eventos", "pl": "Wydarzenia", "zh-cn": "活动"},
17
- "Every calendar has own color": { "en": "Every calendar has own color", "de": "Jeder Kalender hat eine eigene Farbe", "ru": "Каждый календарь в свой цвет", "pt": "Cada calendário tem cor própria", "nl": "Elke agenda heeft zijn eigen kleur", "fr": "Chaque calendrier a sa propre couleur", "it": "Ogni calendario ha il proprio colore", "es": "Cada calendario tiene su propio color", "pl": "Każdy kalendarz ma własny kolor", "zh-cn": "每个日历都有自己的颜色"},
18
- "HTML settings": { "en": "HTML settings", "de": "HTML Einstellungen", "ru": "Настройки HTML", "pt": "Configurações de HTML", "nl": "HTML-instellingen", "fr": "Paramètres HTML", "it": "Impostazioni HTML", "es": "Configuración HTML", "pl": "Ustawienia HTML", "zh-cn": "HTML 设置"},
19
- "Hide Start-End of events": { "en": "Hide Start-End of events", "de": "Start- und Endzeit verbergen", "ru": "Скрывать начало и конец события", "pt": "Ocultar início e fim dos eventos", "nl": "Verberg begin-einde van evenementen", "fr": "Masquer le début et la fin des événements", "it": "Nascondi inizio-fine degli eventi", "es": "Ocultar inicio-fin de eventos", "pl": "Ukryj Start-Koniec wydarzeń", "zh-cn": "隐藏事件的开始 - 结束"},
20
- "Hide Year": { "en": "Hide Year", "de": "Jahr verbergen", "ru": "Скрывать год", "pt": "Ocultar Ano", "nl": "Jaar verbergen", "fr": "Masquer l'année", "it": "Nascondi anno", "es": "Ocultar año", "pl": "Ukryj rok", "zh-cn": "隐藏年份"},
21
- "Ignore Certificate errors": { "en": "Ignore Certificate errors", "de": "Zertifikatfehler ignorieren", "ru": "Игнорировать ошибки сертификата", "pt": "Ignorar erros de certificado", "nl": "Certificaat fout negeren", "fr": "Ignorer les erreurs de certificat", "it": "Ignora errori del certificato", "es": "Ignorar errores de certificado", "pl": "Ignoruj błędy certyfikatu", "zh-cn": "忽略证书错误"},
22
- "Ignore case for event-search": { "en": "Ignore case for event-search", "de": "Groß-/Kleinschreibung bei Ereignis-Suche ignorieren", "ru": "Ignore case for event-search", "pt": "Ignorar maiúsculas e minúsculas para procura de eventos", "nl": "Ignore case for event-search", "fr": "Ignore case for event-search", "it": "Ignore case for event-search", "es": "Ignore case for event-search", "pl": "Ignore case for event-search", "zh-cn": "忽略事件搜索的大小写"},
23
- "Language": { "en": "Language", "de": "Sprache", "ru": "Язык", "pt": "Língua", "nl": "Taal", "fr": "La langue", "it": "linguaggio", "es": "Idioma", "pl": "Język", "zh-cn": "语"},
24
- "Padding date with '0'": { "en": "Padding date with '0'", "de": "Datumsangaben mit führender '0'", "ru": "Дополнять даты c '0'", "pt": "Datas com '0' à esquerda", "nl": "Datum opvullen met '0'", "fr": "Rembourrage avec '0'", "it": "Data di riempimento con '0'", "es": "Fecha de relleno con '0'", "pl": "Data wstawienia z \"0\"", "zh-cn": "用“0”填充日期"},
25
- "Past days": { "en": "Past days", "de": "Vergangene Tage", "ru": "Прошедшие дни", "pt": "Dias passados", "nl": "Vorige dagen", "fr": "Jours passés", "it": "Giorni passati", "es": "Días pasados", "pl": "Minione dni", "zh-cn": "过去的日子"},
26
- "Preview days": { "en": "Preview days", "de": "Tagesvorschau", "ru": "На сколько дней", "pt": "Antevisão Diária", "nl": "Vooruitzicht", "fr": "Jours d'aperçu", "it": "Giorni di anteprima", "es": "Vista previa de días", "pl": "Podgląd dni", "zh-cn": "预览天数"},
27
- "Replace dates with words": { "en": "Replace dates with words", "de": "Ersetze Datum mit Worten", "ru": "Заменять даты на слова", "pt": "Substitua datas por palavras", "nl": "Vervang datum met woorden", "fr": "Remplacer les dates par des mots", "it": "Sostituisci le date con le parole", "es": "Reemplazar fechas con palabras", "pl": "Zastąp daty słowami", "zh-cn": "用单词替换日期"},
28
- "Use by full day": { "en": "Replace 00:00 with", "de": "Ersetze 00:00 mit", "ru": "Заменять 00:00 на", "pt": "Substitua 00:00 com", "nl": "Vervang 00:00 met", "fr": "Remplacer 00:00 avec", "it": "Sostituisci 00:00 con", "es": "Reemplace 00:00 con", "pl": "Zamień 00:00 na", "zh-cn": "将 00:00 替换为"},
29
- "color": { "en": "Color", "de": "Farbe", "ru": "Цвет", "pt": "Cor", "nl": "Kleur", "fr": "Couleur", "it": "Colore", "es": "Color", "pl": "Kolor", "zh-cn": "颜色"},
30
- "display": { "en": "display", "de": "anzeigen", "ru": "показать в списке", "pt": "mostrar", "nl": "weergeven", "fr": "afficher", "it": "display", "es": "monitor", "pl": "pokaz", "zh-cn": "展示"},
31
- "enabled": { "en": "enabled", "de": "Aktiviert", "ru": "активно", "pt": "ativado", "nl": "actief", "fr": "activée", "it": "abilitato", "es": "habilitado", "pl": "włączony", "zh-cn": "启用"},
32
- "filter": { "en": "Filter", "de": "Filter", "ru": "Фильтр", "pt": "Filtro", "nl": "Filter", "fr": "Filtre", "it": "Filtro", "es": "Filtrar", "pl": "Filtr", "zh-cn": "筛选"},
33
- "filterregex": { "en": "Filter as regular expression", "de": "Filter als regulärer Ausdruck", "ru": "Фильтровать как регулярное выражение", "pt": "Filtrar como expressão regular", "nl": "Filter als reguliere expressie", "fr": "Filtrer en tant qu'expression régulière", "it": "Filtra come espressione regolare", "es": "Filtrar como expresión regular.", "pl": "Filtruj jako wyrażenie regularne", "zh-cn": "过滤为正则表达式"},
34
- "iCal adapter settings": { "en": "iCal adapter settings", "de": "iCal Adapter Einstellungen", "ru": "iCal Настройки", "pt": "Configurações do adaptador iCal", "nl": "iCal Instellingen", "fr": "Paramètres de l'adaptateur iCal", "it": "Impostazioni della scheda iCal", "es": "Configuración del adaptador iCal", "pl": "Ustawienia adaptera iCal", "zh-cn": "iCal 适配器设置"},
35
- "name": { "en": "Name", "de": "Name", "ru": "Имя", "pt": "Nome", "nl": "Naam", "fr": "prénom", "it": "Nome", "es": "Nombre", "pl": "Nazwa", "zh-cn": "名称"},
36
- "pass": { "en": "Password", "de": "Passwort", "ru": "Пароль", "pt": "Senha", "nl": "Wachtwoord", "fr": "Mot de passe", "it": "Parola d'ordine", "es": "Contraseña", "pl": "Hasło", "zh-cn": "密码"},
37
- "sslignore": { "en": "Ignore SSL errors", "de": "SSL-Fehler ignorieren", "ru": "Игнор ошибок SSL", "pt": "Ignorar erros de SSL", "nl": "SSL fout negeren", "fr": "Ignorer les erreurs SSL", "it": "Ignora errori SSL", "es": "Ignorar los errores de SSL", "pl": "Zignoruj błędy SSL", "zh-cn": "忽略 SSL 错误"},
38
- "url": { "en": "Calendar URL or file name", "de": "Kalender URL oder Dateiname", "ru": "URL календаря или имя файла", "pt": "URL do calendário ou nome do arquivo", "nl": "Agend URL of bestandsnaam", "fr": "URL du calendrier ou nom de fichier", "it": "URL del calendario o nome del file", "es": "URL del calendario o nombre del archivo", "pl": "URL kalendarza lub nazwa pliku", "zh-cn": "日历 URL 或文件名"},
39
- "user": { "en": "Username", "de": "Benutzername", "ru": "Имя пользователя", "pt": "Nome de usuário", "nl": "Gebruikersnaam", "fr": "Nom d'utilisateur", "it": "Nome utente", "es": "Nombre de usuario", "pl": "Nazwa Użytkownika", "zh-cn": "用户名"},
40
- "Options": { "en": "Options", "de": "Optionen", "ru": "Опции", "pt": "Opções", "nl": "Opties", "fr": "Choix", "it": "Opzioni", "es": "Opciones", "pl": "Opcje", "zh-cn": "选项"},
41
- "Set ID": { "en": "Set ID", "de": "ID festlegen", "ru": "Установить идентификатор", "pt": "Definir ID", "nl": "ID instellen", "fr": "Définir l'identifiant", "it": "Imposta l'ID", "es": "Pon la identificacion", "pl": "Ustaw ID", "zh-cn": "设置名称"},
42
- "Set Ack": { "en": "Set Ack", "de": "Bestätigen", "ru": "Установить подтверждение", "pt": "Definir confirmação", "nl": "Set Ack", "fr": "Confirmer", "it": "Imposta Rispondi", "es": "Establecer acuse de recibo", "pl": "Ustaw Potwierdź", "zh-cn": "设置确认"},
11
+ "Add arrow for started events": { "en": "Add arrow for started events", "de": "Pfeil für gestartete Ereignisse hinzufügen", "ru": "Добавить стрелку для начатых событий", "pt": "Adicionar seta para eventos iniciados", "nl": "Voeg pijl toe voor gestarte evenementen", "fr": "Ajouter une flèche pour les événements commencés", "it": "Aggiungi freccia per gli eventi iniziati", "es": "Agregar flecha para eventos iniciados", "pl": "Dodaj strzałkę do rozpoczętych wydarzeń", "uk": "Додайте стрілку для розпочатих подій", "zh-cn": "为开始的事件添加箭头"},
12
+ "Add event color if available": { "en": "Use event color for box if available", "de": "Ereignisfarbe als Box verwenden, falls verfügbar", "ru": "Используйте цвет события для поля, если он доступен", "pt": "Use a cor do evento para a caixa, se disponível", "nl": "Gebruik gebeurteniskleur voor vak indien beschikbaar", "fr": "Utiliser la couleur de l'événement pour la case si disponible", "it": "Usa il colore dell'evento per la scatola, se disponibile", "es": "Use el color del evento para el cuadro si está disponible", "pl": "Użyj koloru zdarzenia w polu, jeśli jest dostępny", "uk": "Використовуйте колір події для поля, якщо доступний", "zh-cn": "如果可用,请为框使用事件颜色"},
13
+ "Calendars": { "en": "Calendars", "de": "Kalender", "ru": "Календари", "pt": "Calendário", "nl": "Agenda", "fr": "Calendriers", "it": "calendari", "es": "Calendarios", "pl": "Kalendarze", "uk": "Календарі", "zh-cn": "日历"},
14
+ "Colorize HTML": { "en": "Colorize HTML", "de": "Benutze Farben für HTML", "ru": "Раскрашивать HTML", "pt": "Colorir HTML", "nl": "Gebruik kleuren voor HTML", "fr": "Coloriser HTML", "it": "Colorize HTML", "es": "Colorear HTML", "pl": "Koloruj HTML", "uk": "Розфарбуйте HTML", "zh-cn": "着色 HTML"},
15
+ "Default color for HTML": { "en": "Default color for HTML", "de": "Standardfarben für HTML", "ru": "Цвет по умолчанию для HTML", "pt": "Cor padrão para HTML", "nl": "Standaard-kleur voor HTML", "fr": "Couleur par défaut pour HTML", "it": "Colore predefinito per HTML", "es": "Color predeterminado para HTML", "pl": "Domyślny kolor dla HTML", "uk": "Колір за замовчуванням для HTML", "zh-cn": "HTML 的默认颜色"},
16
+ "Events": { "en": "Events", "de": "Ereignisse", "ru": "События", "pt": "Eventos", "nl": "Gebeurtenissen", "fr": "Événements", "it": "eventi", "es": "Eventos", "pl": "Wydarzenia", "uk": "Події", "zh-cn": "活动"},
17
+ "Every calendar has own color": { "en": "Every calendar has own color", "de": "Jeder Kalender hat eine eigene Farbe", "ru": "Каждый календарь в свой цвет", "pt": "Cada calendário tem cor própria", "nl": "Elke agenda heeft zijn eigen kleur", "fr": "Chaque calendrier a sa propre couleur", "it": "Ogni calendario ha il proprio colore", "es": "Cada calendario tiene su propio color", "pl": "Każdy kalendarz ma własny kolor", "uk": "Кожен календар має свій колір", "zh-cn": "每个日历都有自己的颜色"},
18
+ "HTML settings": { "en": "HTML settings", "de": "HTML Einstellungen", "ru": "Настройки HTML", "pt": "Configurações de HTML", "nl": "HTML-instellingen", "fr": "Paramètres HTML", "it": "Impostazioni HTML", "es": "Configuración HTML", "pl": "Ustawienia HTML", "uk": "Налаштування HTML", "zh-cn": "HTML 设置"},
19
+ "Hide Start-End of events": { "en": "Hide Start-End of events", "de": "Start- und Endzeit verbergen", "ru": "Скрывать начало и конец события", "pt": "Ocultar início e fim dos eventos", "nl": "Verberg begin-einde van evenementen", "fr": "Masquer le début et la fin des événements", "it": "Nascondi inizio-fine degli eventi", "es": "Ocultar inicio-fin de eventos", "pl": "Ukryj Start-Koniec wydarzeń", "uk": "Приховати початок-кінець подій", "zh-cn": "隐藏事件的开始 - 结束"},
20
+ "Hide Year": { "en": "Hide Year", "de": "Jahr verbergen", "ru": "Скрывать год", "pt": "Ocultar Ano", "nl": "Jaar verbergen", "fr": "Masquer l'année", "it": "Nascondi anno", "es": "Ocultar año", "pl": "Ukryj rok", "uk": "Приховати рік", "zh-cn": "隐藏年份"},
21
+ "Ignore Certificate errors": { "en": "Ignore Certificate errors", "de": "Zertifikatfehler ignorieren", "ru": "Игнорировать ошибки сертификата", "pt": "Ignorar erros de certificado", "nl": "Certificaat fout negeren", "fr": "Ignorer les erreurs de certificat", "it": "Ignora errori del certificato", "es": "Ignorar errores de certificado", "pl": "Ignoruj błędy certyfikatu", "uk": "Ігнорувати помилки сертифіката", "zh-cn": "忽略证书错误"},
22
+ "Ignore case for event-search": { "en": "Ignore case for event-search", "de": "Groß-/Kleinschreibung bei Ereignis-Suche ignorieren", "ru": "Ignore case for event-search", "pt": "Ignorar maiúsculas e minúsculas para procura de eventos", "nl": "Ignore case for event-search", "fr": "Ignore case for event-search", "it": "Ignore case for event-search", "es": "Ignore case for event-search", "pl": "Ignore case for event-search", "uk": "Ігнорувати регістр для пошуку подій", "zh-cn": "忽略事件搜索的大小写"},
23
+ "Language": { "en": "Language", "de": "Sprache", "ru": "Язык", "pt": "Língua", "nl": "Taal", "fr": "La langue", "it": "linguaggio", "es": "Idioma", "pl": "Język", "uk": "Мова", "zh-cn": "语"},
24
+ "Padding date with '0'": { "en": "Padding date with '0'", "de": "Datumsangaben mit führender '0'", "ru": "Дополнять даты c '0'", "pt": "Datas com '0' à esquerda", "nl": "Datum opvullen met '0'", "fr": "Rembourrage avec '0'", "it": "Data di riempimento con '0'", "es": "Fecha de relleno con '0'", "pl": "Data wstawienia z \"0\"", "uk": "Заповнення дати \"0\"", "zh-cn": "用“0”填充日期"},
25
+ "Past days": { "en": "Past days", "de": "Vergangene Tage", "ru": "Прошедшие дни", "pt": "Dias passados", "nl": "Vorige dagen", "fr": "Jours passés", "it": "Giorni passati", "es": "Días pasados", "pl": "Minione dni", "uk": "Минулих днів", "zh-cn": "过去的日子"},
26
+ "Preview days": { "en": "Preview days", "de": "Tagesvorschau", "ru": "На сколько дней", "pt": "Antevisão Diária", "nl": "Vooruitzicht", "fr": "Jours d'aperçu", "it": "Giorni di anteprima", "es": "Vista previa de días", "pl": "Podgląd dni", "uk": "Дні попереднього перегляду", "zh-cn": "预览天数"},
27
+ "Replace dates with words": { "en": "Replace dates with words", "de": "Ersetze Datum mit Worten", "ru": "Заменять даты на слова", "pt": "Substitua datas por palavras", "nl": "Vervang datum met woorden", "fr": "Remplacer les dates par des mots", "it": "Sostituisci le date con le parole", "es": "Reemplazar fechas con palabras", "pl": "Zastąp daty słowami", "uk": "Замініть дати словами", "zh-cn": "用单词替换日期"},
28
+ "Use by full day": { "en": "Replace 00:00 with", "de": "Ersetze 00:00 mit", "ru": "Заменять 00:00 на", "pt": "Substitua 00:00 com", "nl": "Vervang 00:00 met", "fr": "Remplacer 00:00 avec", "it": "Sostituisci 00:00 con", "es": "Reemplace 00:00 con", "pl": "Zamień 00:00 na", "uk": "Замінити 00:00 на", "zh-cn": "将 00:00 替换为"},
29
+ "color": { "en": "Color", "de": "Farbe", "ru": "Цвет", "pt": "Cor", "nl": "Kleur", "fr": "Couleur", "it": "Colore", "es": "Color", "pl": "Kolor", "uk": "колір", "zh-cn": "颜色"},
30
+ "display": { "en": "display", "de": "anzeigen", "ru": "показать в списке", "pt": "mostrar", "nl": "weergeven", "fr": "afficher", "it": "display", "es": "monitor", "pl": "pokaz", "uk": "дисплей", "zh-cn": "展示"},
31
+ "enabled": { "en": "enabled", "de": "aktiviert", "ru": "активно", "pt": "ativado", "nl": "actief", "fr": "activée", "it": "abilitato", "es": "habilitado", "pl": "włączony", "uk": "включено", "zh-cn": "启用"},
32
+ "filter": { "en": "Filter", "de": "Filter", "ru": "Фильтр", "pt": "Filtro", "nl": "Filter", "fr": "Filtre", "it": "Filtro", "es": "Filtrar", "pl": "Filtr", "uk": "фільтр", "zh-cn": "筛选"},
33
+ "filterregex": { "en": "Filter as regular expression", "de": "Filter als regulärer Ausdruck", "ru": "Фильтровать как регулярное выражение", "pt": "Filtrar como expressão regular", "nl": "Filter als reguliere expressie", "fr": "Filtrer en tant qu'expression régulière", "it": "Filtra come espressione regolare", "es": "Filtrar como expresión regular.", "pl": "Filtruj jako wyrażenie regularne", "uk": "Фільтр як регулярний вираз", "zh-cn": "过滤为正则表达式"},
34
+ "iCal adapter settings": { "en": "iCal adapter settings", "de": "iCal Adapter Einstellungen", "ru": "iCal Настройки", "pt": "Configurações do adaptador iCal", "nl": "iCal Instellingen", "fr": "Paramètres de l'adaptateur iCal", "it": "Impostazioni della scheda iCal", "es": "Configuración del adaptador iCal", "pl": "Ustawienia adaptera iCal", "uk": "Налаштування адаптера iCal", "zh-cn": "iCal 适配器设置"},
35
+ "name": { "en": "Name", "de": "Name", "ru": "Имя", "pt": "Nome", "nl": "Naam", "fr": "prénom", "it": "Nome", "es": "Nombre", "pl": "Nazwa", "uk": "Ім'я", "zh-cn": "名称"},
36
+ "pass": { "en": "Password", "de": "Passwort", "ru": "Пароль", "pt": "Senha", "nl": "Wachtwoord", "fr": "Mot de passe", "it": "Parola d'ordine", "es": "Contraseña", "pl": "Hasło", "uk": "Пароль", "zh-cn": "密码"},
37
+ "sslignore": { "en": "Ignore SSL errors", "de": "SSL-Fehler ignorieren", "ru": "Игнор ошибок SSL", "pt": "Ignorar erros de SSL", "nl": "SSL fout negeren", "fr": "Ignorer les erreurs SSL", "it": "Ignora errori SSL", "es": "Ignorar los errores de SSL", "pl": "Zignoruj błędy SSL", "uk": "Ігноруйте помилки SSL", "zh-cn": "忽略 SSL 错误"},
38
+ "url": { "en": "Calendar URL or file name", "de": "Kalender URL oder Dateiname", "ru": "URL календаря или имя файла", "pt": "URL do calendário ou nome do arquivo", "nl": "Agend URL of bestandsnaam", "fr": "URL du calendrier ou nom de fichier", "it": "URL del calendario o nome del file", "es": "URL del calendario o nombre del archivo", "pl": "URL kalendarza lub nazwa pliku", "uk": "URL-адреса календаря або ім’я файлу", "zh-cn": "日历 URL 或文件名"},
39
+ "user": { "en": "Username", "de": "Benutzername", "ru": "Имя пользователя", "pt": "Nome de usuário", "nl": "Gebruikersnaam", "fr": "Nom d'utilisateur", "it": "Nome utente", "es": "Nombre de usuario", "pl": "Nazwa Użytkownika", "uk": "Ім'я користувача", "zh-cn": "用户名"},
40
+ "Options": { "en": "Options", "de": "Optionen", "ru": "Опции", "pt": "Opções", "nl": "Opties", "fr": "Choix", "it": "Opzioni", "es": "Opciones", "pl": "Opcje", "uk": "Опції", "zh-cn": "选项"},
41
+ "Set ID": { "en": "Set ID", "de": "ID festlegen", "ru": "Установить идентификатор", "pt": "Definir ID", "nl": "ID instellen", "fr": "Définir l'identifiant", "it": "Imposta l'ID", "es": "Pon la identificacion", "pl": "Ustaw ID", "uk": "Встановити ID", "zh-cn": "设置名称"},
42
+ "Set Ack": { "en": "Set Ack", "de": "Bestätigen", "ru": "Установить подтверждение", "pt": "Definir confirmação", "nl": "Set Ack", "fr": "Confirmer", "it": "Imposta Rispondi", "es": "Establecer acuse de recibo", "pl": "Ustaw Potwierdź", "uk": "Установити Ack", "zh-cn": "设置确认"},
43
43
  };
package/io-package.json CHANGED
@@ -1,8 +1,34 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "ical",
4
- "version": "1.13.2",
4
+ "version": "1.13.4",
5
5
  "news": {
6
+ "1.13.4": {
7
+ "en": "updated node-ical to latest 0.17.0\nupdated dependencies",
8
+ "de": "aktualisierte node-ical auf neueste 0.17.0\naktualisierte abhängigkeiten",
9
+ "ru": "обновленный node-ical до последней 0.17.0\nобновленные зависимости",
10
+ "pt": "atualizado node-ical para mais recente 0.17.0\ndependências atualizadas",
11
+ "nl": "vertaling:\nvertaling:",
12
+ "fr": "mise à jour node-ical au plus tard 0.17.0\ndépendances actualisées",
13
+ "it": "aggiornato nodo-ical al più recente 0.17.0\ndipendenze aggiornate",
14
+ "es": "actualizado nodo-ical al último 0.17.0\ndependencias actualizadas",
15
+ "pl": "uaktualnić węzeł do 0.17.0\nzależności aktualizacji",
16
+ "uk": "оновлений вузол-ical to last 0.17.0\nоновлені залежності",
17
+ "zh-cn": "最新资料\n二. 最新依赖"
18
+ },
19
+ "1.13.3": {
20
+ "en": "updated node-ical to latest 0.16.1\nUse color picker in adapter settings\nDropped Admin 4 UI\nAdded Ukrainian language",
21
+ "de": "aktualisiert kinematisch auf neuste 0,16,1\nVerwenden Sie Farbwähler in Adaptereinstellungen\nAdmin 4 UI fallen lassen\nUkrainische Sprache",
22
+ "ru": "обновленный node-ical до последней 0.16.1\nИспользуйте цвет пикер в настройках адаптера\nDropped Админ 4 UI\nДобавлен украинский язык",
23
+ "pt": "atualizado node-ical para mais recente 0.16.1\nUse o seletor de cores nas configurações do adaptador\nAdmin Dropped 4 UI\nAdicionado idioma ucraniano",
24
+ "nl": "vertaling: 0.16.1\nGebruik kleurenpikker in adapter setting\nDrop Admin 4 UI\nVoeg Oekraïense taal toe",
25
+ "fr": "mise à jour node-ical to latest 0,16.1\nUtiliser le cueilleur de couleur dans les réglages de l'adaptateur\nDropped Admin 4 UI\nAjout de la langue ukrainienne",
26
+ "it": "aggiornato nodo-ical al più recente 0.16.1\nUtilizzare il raccoglitore di colore nelle impostazioni dell'adattatore\nAmministrazioni a goccia 4 UI\nAggiunto lingua ucraina",
27
+ "es": "actualizado nodo-ical a último 0.16.1\nUse el selector de color en la configuración del adaptador\nAdmin 4 UI\nIdioma ucraniano añadido",
28
+ "pl": "uaktualnianie węzła 0,16.1\nUżycie koloru w ustawieniach adapterowych\nDropped Admin 4\nJęzyk ukraiński",
29
+ "uk": "оновлений вузол-ical в останні роки 0 товар(ов) - 0.00 р\nВикористання кольорового пікера в налаштуваннях адаптера\nПоза «69»\nУкраїнська мова",
30
+ "zh-cn": "最新资料 0.16.1\nB. 在适应环境中使用颜色的采样\nDrodmin 4 UI\n增加乌克兰语"
31
+ },
6
32
  "1.13.2": {
7
33
  "en": "fix strange log messages by downgrading RRule again",
8
34
  "de": "seltsame Log-Nachrichten durch Downgrading RRule wieder beheben",
@@ -13,6 +39,7 @@
13
39
  "it": "correggere i messaggi di registro strani degradando di nuovo RRule",
14
40
  "es": "solucionar extraños mensajes de registro por la reducción de RRule de nuevo",
15
41
  "pl": "naprawić dziwne wiadomości logowe poprzez zdegradowanie RRule'a ponownie",
42
+ "uk": "виправити дивні повідомлення журналу, знову знизивши RRule",
16
43
  "zh-cn": "f 照常逻辑信息,再降解后再降解。"
17
44
  },
18
45
  "1.13.1": {
@@ -25,6 +52,7 @@
25
52
  "it": "Libreria richiesta modificata",
26
53
  "es": "Biblioteca de solicitud modificada",
27
54
  "pl": "Zmiennikowa biblioteka",
55
+ "uk": "Змінена бібліотека запитів",
28
56
  "zh-cn": "更改要求图书馆"
29
57
  },
30
58
  "1.13.0": {
@@ -37,6 +65,7 @@
37
65
  "it": "Aggiunto 5 UI\nTradotto tutti i nomi degli oggetti",
38
66
  "es": "Admin 5 UI\nTraducir todos los nombres de objetos",
39
67
  "pl": "Admin 5\nPrzetłumaczył wszystkie nazwy obiektowe",
68
+ "uk": "Додано інтерфейс адміністратора 5\nПерекладено всі назви об'єктів",
40
69
  "zh-cn": "增删5 UI\n所有物体的名称"
41
70
  },
42
71
  "1.12.2": {
@@ -49,6 +78,7 @@
49
78
  "it": "Risolto il problema con la visualizzazione del tempo di riposo dell'evento in un caso",
50
79
  "es": "Corrección que muestra el tiempo de descanso del evento en un caso",
51
80
  "pl": "Naprawiono wyświetlanie czasu spoczynku zdarzenia w jednym przypadku",
81
+ "uk": "Виправлено відображення часу відпочинку події в одному випадку",
52
82
  "zh-cn": "修复在一种情况下显示事件的休息时间"
53
83
  },
54
84
  "1.12.1": {
@@ -61,31 +91,8 @@
61
91
  "it": "Regola la colorazione delle date per mostrare anche le date iniziate in passato con il colore di oggi",
62
92
  "es": "Ajuste el color de las fechas para mostrar también las fechas que comenzaron en el pasado con el color de hoy",
63
93
  "pl": "Dostosuj kolorowanie dat, aby wyświetlać również daty rozpoczęte w przeszłości z dzisiejszym kolorem",
94
+ "uk": "Налаштуйте колір дат, щоб також відображати дати, розпочаті в минулому, сьогоднішнім кольором",
64
95
  "zh-cn": "调整日期的颜色以使用今天的颜色显示过去开始的日期"
65
- },
66
- "1.12.0": {
67
- "en": "Add option to choose the ack flag set when updating foreign objects on events\nuse a color field from the calendar entry as color for display\nWhen no Arrow for already running events is shown and dates are not replaced with words display the start date in the list and not the end date\nWhen not replacing date with words and entry ends at 0:0:0 show the day before as end\nFix issues when no end date is provided in the calendar entry (start and end are the same)\nCorrectly calculate length of multi day events\nRespect DST changes in some calculations to prevent strange effects\nParse ics Files with different line endings again",
68
- "de": "Option hinzugefügt, um das Ack-Flag auszuwählen, wenn Fremdobjekte bei Ereignissen aktualisiert werden\nVerwenden Sie ein Farbfeld aus dem Kalendereintrag als Farbe für die Anzeige\nWenn kein Pfeil für bereits laufende Ereignisse angezeigt wird und Datumsangaben nicht durch Wörter ersetzt werden, wird das Startdatum in der Liste und nicht das Enddatum angezeigt\nWenn das Datum nicht durch Wörter ersetzt wird und der Eintrag um 0:0:0 endet, wird der Vortag als Ende angezeigt\nBehebung von Problemen, wenn im Kalendereintrag kein Enddatum angegeben ist (Start und Ende sind gleich)\nBerechnen Sie die Länge von mehrtägigen Veranstaltungen richtig\nBeachten Sie bei einigen Berechnungen Sommerzeitänderungen, um seltsame Effekte zu vermeiden\nAnalysieren Sie ics-Dateien mit unterschiedlichen Zeilenenden erneut",
69
- "ru": "Добавить возможность выбора набора флагов подтверждения при обновлении внешних объектов в событиях.\nиспользовать поле цвета из записи календаря в качестве цвета для отображения\nКогда стрелка для уже запущенных событий не отображается и даты не заменены словами, в списке отображается дата начала, а не дата окончания\nЕсли дата не заменяется словами, а запись заканчивается на 0:0:0, показывать предыдущий день как конец\nИсправление проблем, когда в записи календаря не указана дата окончания (начало и конец совпадают)\nПравильно рассчитать продолжительность многодневных мероприятий\nУчитывайте изменения летнего времени в некоторых расчетах, чтобы предотвратить странные эффекты.\nПовторный анализ файлов ics с разными окончаниями строк",
70
- "pt": "Adicionar opção para escolher o sinalizador de confirmação definido ao atualizar objetos estrangeiros em eventos\nuse um campo de cor da entrada do calendário como cor para exibição\nQuando nenhuma Seta para eventos já em execução é mostrada e as datas não são substituídas por palavras exibe a data de início na lista e não a data de término\nQuando não substitui a data por palavras e a entrada termina às 0:0:0 mostra o dia anterior como final\nCorrigir problemas quando nenhuma data de término é fornecida na entrada do calendário (início e término são iguais)\nCalcular corretamente a duração de eventos de vários dias\nRespeite as alterações do horário de verão em alguns cálculos para evitar efeitos estranhos\nAnalisar arquivos ics com diferentes finais de linha novamente",
71
- "nl": "Optie toevoegen om de ack-vlag te kiezen die is ingesteld bij het bijwerken van vreemde objecten op gebeurtenissen\ngebruik een kleurveld uit het agenda-item als kleur voor weergave\nAls er geen pijl voor reeds lopende evenementen wordt weergegeven en datums niet worden vervangen door woorden, wordt de startdatum in de lijst weergegeven en niet de einddatum\nAls de datum niet wordt vervangen door woorden en de invoer eindigt op 0:0:0 toon de dag ervoor als einde\nProblemen oplossen wanneer er geen einddatum is opgegeven in het agenda-item (begin en einde zijn hetzelfde)\nDe lengte van meerdaagse evenementen correct berekenen\nRespecteer zomertijdveranderingen in sommige berekeningen om vreemde effecten te voorkomen\nParseer ics-bestanden met andere regeleindes opnieuw",
72
- "fr": "Ajouter une option pour choisir l'indicateur d'accusé de réception défini lors de la mise à jour d'objets étrangers sur des événements\nutiliser un champ de couleur de l'entrée du calendrier comme couleur d'affichage\nLorsqu'aucune flèche pour les événements déjà en cours n'est affichée et que les dates ne sont pas remplacées par des mots, affichez la date de début dans la liste et non la date de fin\nLorsque vous ne remplacez pas la date par des mots et que l'entrée se termine à 0: 0: 0, affichez la veille comme fin\nRésoudre les problèmes lorsqu'aucune date de fin n'est fournie dans l'entrée de calendrier (le début et la fin sont identiques)\nCalculer correctement la durée des événements de plusieurs jours\nRespectez les changements d'heure d'été dans certains calculs pour éviter des effets étranges\nAnalyser à nouveau les fichiers ics avec des fins de ligne différentes",
73
- "it": "Aggiungi l'opzione per scegliere il flag di riconoscimento impostato durante l'aggiornamento di oggetti estranei sugli eventi\nutilizzare un campo colore dalla voce del calendario come colore per la visualizzazione\nQuando non viene visualizzata alcuna freccia per eventi già in corso e le date non vengono sostituite con parole, viene visualizzata la data di inizio nell'elenco e non la data di fine\nQuando non si sostituisce la data con le parole e l'immissione termina alle 0:0:0, mostrare il giorno prima come fine\nRisolvi i problemi quando non viene fornita una data di fine nella voce del calendario (inizio e fine sono gli stessi)\nCalcola correttamente la durata degli eventi di più giorni\nRispettare le modifiche dell'ora legale in alcuni calcoli per evitare strani effetti\nAnalizza nuovamente i file ics con terminazioni di riga diverse",
74
- "es": "Agregue la opción para elegir el conjunto de indicadores de reconocimiento al actualizar objetos extraños en eventos\nuse un campo de color de la entrada del calendario como color para mostrar\nCuando no se muestra ninguna flecha para eventos que ya se están ejecutando y las fechas no se reemplazan con palabras, se muestra la fecha de inicio en la lista y no la fecha de finalización.\nCuando no se reemplaza la fecha con palabras y la entrada finaliza en 0:0:0, se muestra el día anterior como final\nSolucionar problemas cuando no se proporciona una fecha de finalización en la entrada del calendario (el inicio y el final son los mismos)\nCalcular correctamente la duración de los eventos de varios días\nRespete los cambios de horario de verano en algunos cálculos para evitar efectos extraños\nAnalizar archivos ics con diferentes finales de línea nuevamente",
75
- "pl": "Dodano opcję wyboru flagi potwierdzenia ustawionej podczas aktualizowania obcych obiektów na zdarzeniach\nużyj pola koloru z pozycji kalendarza jako koloru do wyświetlania\nGdy nie ma strzałki dla już trwających wydarzeń, a daty nie są zastępowane słowami, wyświetlaj datę rozpoczęcia na liście, a nie datę zakończenia\nGdy nie zastępujesz daty słowami, a wpis kończy się o 0:0:0, pokaż dzień wcześniej jako koniec\nNapraw problemy, gdy we wpisie kalendarza nie podano daty zakończenia (początek i koniec są takie same)\nPrawidłowo oblicz długość wydarzeń wielodniowych\nPrzestrzegaj zmian czasu letniego w niektórych obliczeniach, aby zapobiec dziwnym efektom\nPrzeanalizuj ponownie pliki z różnymi zakończeniami linii",
76
- "zh-cn": "添加选项以在更新事件上的外来对象时选择 ack 标志集\n使用日历条目中的颜色字段作为显示颜色\n如果未显示已运行事件的箭头且日期未替换为单词,则在列表中显示开始日期而不是结束日期\n当不用单词替换日期并且条目在 0:0:0 结束时,将前一天显示为结束\n修复日历条目中未提供结束日期时的问题(开始和结束时间相同)\n正确计算多日事件的长度\n在某些计算中尊重 DST 更改以防止出现奇怪的影响\n再次解析具有不同行尾的 ics 文件"
77
- },
78
- "1.11.6": {
79
- "en": "fixed incorrect recurrence event processing",
80
- "de": "Fehlerhafte Verarbeitung von Wiederholungsereignissen behoben",
81
- "ru": "исправлена некорректная обработка события повторения",
82
- "pt": "corrigiu o processamento incorreto do evento de recorrência",
83
- "nl": "foutieve verwerking van herhalingsgebeurtenissen verholpen",
84
- "fr": "correction du traitement incorrect des événements de récurrence",
85
- "it": "corretta elaborazione degli eventi di ricorrenza errata",
86
- "es": "Se corrigió el procesamiento incorrecto de eventos de recurrencia.",
87
- "pl": "naprawiono nieprawidłowe przetwarzanie zdarzeń rekurencyjnych",
88
- "zh-cn": "修复了不正确的重复事件处理"
89
96
  }
90
97
  },
91
98
  "title": "iCal Calendar",
@@ -99,6 +106,7 @@
99
106
  "it": "Calendario iCal",
100
107
  "es": "Calendario iCal",
101
108
  "pl": "Kalendarz iCal",
109
+ "uk": "Календар iCal",
102
110
  "zh-cn": "iCal 日历"
103
111
  },
104
112
  "desc": {
@@ -111,6 +119,7 @@
111
119
  "it": "Questo adattatore consente di leggere i file .ics da URL specifici e di analizzarli (Google Calendar o iCal)",
112
120
  "es": "Este adaptador permite leer archivos .ics de una URL específica y analizarlos (Google Calendar o iCal)",
113
121
  "pl": "Ten adapter umożliwia odczytanie plików .ics z określonego adresu URL i przeanalizowanie go (Kalendarz Google lub iCal)",
122
+ "uk": "Цей адаптер дозволяє читати файли .ics із певної URL-адреси та аналізувати їх (Google Calendar або iCal)",
114
123
  "zh-cn": "此适配器允许从特定 URL 读取 .ics 文件并对其进行解析(Google Calendar 或 iCal)"
115
124
  },
116
125
  "authors": [
@@ -131,7 +140,6 @@
131
140
  "loglevel": "info",
132
141
  "readme": "https://github.com/iobroker-community-adapters/ioBroker.ical/blob/master/README.md",
133
142
  "icon": "ical.png",
134
- "materialize": true,
135
143
  "compact": true,
136
144
  "keywords": [
137
145
  "web",
@@ -168,7 +176,7 @@
168
176
  "daysPreview": 7,
169
177
  "daysPast": 0,
170
178
  "colorize": true,
171
- "defColor": "white",
179
+ "defColor": "#FFFFFF",
172
180
  "fulltime": " ",
173
181
  "dataPaddingWithZeros": true,
174
182
  "replaceDates": true,
@@ -218,6 +226,7 @@
218
226
  "it": "Eventi utente controllati dal calendario",
219
227
  "es": "Eventos de usuario controlados desde el calendario",
220
228
  "pl": "Rozgrywki użytkownicy kontrolują kalendarz",
229
+ "uk": "Заходи користувачів, що контролюються з календаря",
221
230
  "zh-cn": "B. 按日历开列的使用活动"
222
231
  }
223
232
  },
@@ -237,6 +246,7 @@
237
246
  "it": "Eventi di oggi, oggi e più tardi (controllati dal calendario)",
238
247
  "es": "Eventos de hoy, ahora y más tarde (controlados por calendario)",
239
248
  "pl": "Dzisiaj, dziś i później (kontrolowane przez kalendarz)",
249
+ "uk": "Події сьогодні, тепер і пізніше сьогодні (контрольований календарем)",
240
250
  "zh-cn": "今天、现在和以后的活动(按日历排列)"
241
251
  }
242
252
  },
@@ -256,6 +266,7 @@
256
266
  "it": "Eventi di oggi (controllati dal calendario)",
257
267
  "es": "Eventos de hoy (controlados por calendario)",
258
268
  "pl": "Wydarzenia (kontrolowane przez kalendarz)",
269
+ "uk": "Події сьогодні (контрольовані календарем)",
259
270
  "zh-cn": "今天的活动(按日历排列)"
260
271
  }
261
272
  },
@@ -275,6 +286,7 @@
275
286
  "it": "Eventi (controllati dal calendario)",
276
287
  "es": "Eventos ahora (controlados por calendario)",
277
288
  "pl": "Wydarzenia (kontrolowane przez kalendarz)",
289
+ "uk": "Події тепер (контрольовані календарем)",
278
290
  "zh-cn": "目前的活动(按日历进行)"
279
291
  }
280
292
  },
@@ -294,6 +306,7 @@
294
306
  "it": "Eventi più tardi (controllati dal calendario)",
295
307
  "es": "Eventos más tarde hoy (controlado por calendario)",
296
308
  "pl": "Wydarzenia później (kontrolowane przez kalendarz)",
309
+ "uk": "Останні події (контрольовані календарем)",
297
310
  "zh-cn": "今天晚些时候的活动(按日历排列)"
298
311
  }
299
312
  },
@@ -313,6 +326,7 @@
313
326
  "it": "Comando",
314
327
  "es": "Comando",
315
328
  "pl": "Dowództwo",
329
+ "uk": "Про компанію",
316
330
  "zh-cn": "指挥"
317
331
  },
318
332
  "desc": "Commands: read [url], check [reason]",
@@ -337,6 +351,7 @@
337
351
  "it": "Numero di eventi oggi",
338
352
  "es": "Número de eventos hoy",
339
353
  "pl": "Liczba wydarzeń współczesnych",
354
+ "uk": "Кількість подій сьогодні",
340
355
  "zh-cn": "今天活动次数"
341
356
  },
342
357
  "type": "number",
@@ -360,6 +375,7 @@
360
375
  "it": "Numero di eventi domani",
361
376
  "es": "Número de eventos mañana",
362
377
  "pl": "Liczba jutroów",
378
+ "uk": "Кількість заходів завтра",
363
379
  "zh-cn": "明天事件数目"
364
380
  },
365
381
  "type": "number",
@@ -383,6 +399,7 @@
383
399
  "it": "Numero di eventi di ieri",
384
400
  "es": "Número de eventos ayer",
385
401
  "pl": "Liczba wydarzeń yesterday",
402
+ "uk": "Кількість подій",
386
403
  "zh-cn": "昨天活动次数"
387
404
  },
388
405
  "type": "number",
@@ -406,6 +423,7 @@
406
423
  "it": "Dati del calendario come array",
407
424
  "es": "Datos de calendario como matriz",
408
425
  "pl": "Kalendarz danych jako tablica",
426
+ "uk": "Дані календаря в масиві",
409
427
  "zh-cn": "数字数据作为范围"
410
428
  },
411
429
  "desc": "JS table: []",
@@ -430,6 +448,7 @@
430
448
  "it": "Dati del calendario come HTML",
431
449
  "es": "Datos del calendario como HTML",
432
450
  "pl": "Kalendarz danych jako HTML",
451
+ "uk": "Дані календаря як HTML",
433
452
  "zh-cn": "HTML的基准数据"
434
453
  },
435
454
  "desc": "HTML table with events",
@@ -454,6 +473,7 @@
454
473
  "it": "Dati del calendario come testo",
455
474
  "es": "Datos del calendario como texto",
456
475
  "pl": "Kalendarzowe dane jako tekst",
476
+ "uk": "Інформація про календар як текст",
457
477
  "zh-cn": "作为案文的简历数据"
458
478
  },
459
479
  "desc": "Text table with events",
package/main.js CHANGED
@@ -22,7 +22,7 @@ const crypto = require('crypto');
22
22
  const fs = require('fs');
23
23
  const path = require('path');
24
24
  const adapterName = require('./package.json').name.split('.').pop();
25
- const axios = require('axios').default;
25
+ const axios = require('axios');
26
26
  const https = require('https');
27
27
 
28
28
  let adapter;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.ical",
3
- "version": "1.13.2",
3
+ "version": "1.13.4",
4
4
  "description": "Allows read information from google calender and from iCal.",
5
5
  "author": {
6
6
  "name": "bluefox",
@@ -35,37 +35,40 @@
35
35
  "type": "git",
36
36
  "url": "https://github.com/iobroker-community-adapters/ioBroker.ical"
37
37
  },
38
+ "engines": {
39
+ "node": ">=16"
40
+ },
38
41
  "dependencies": {
39
- "@iobroker/adapter-core": "^2.6.0",
40
- "axios": "^0.27.2",
42
+ "@iobroker/adapter-core": "^3.0.4",
43
+ "axios": "1.6.2",
41
44
  "cloneextend": "^0.0.3",
42
45
  "json-schema": "^0.4.0",
43
- "node-ical": "^0.15.1",
44
- "rrule": "2.6.4"
46
+ "node-ical": "^0.17.0",
47
+ "rrule": "2.8.1"
45
48
  },
46
49
  "devDependencies": {
47
- "@alcalzone/release-script": "^3.5.9",
48
- "@alcalzone/release-script-plugin-iobroker": "^3.5.9",
49
- "@alcalzone/release-script-plugin-license": "^3.5.9",
50
- "@iobroker/adapter-dev": "^1.0.1",
51
- "@iobroker/testing": "^4.0.0",
52
- "@types/chai": "^4.3.3",
50
+ "@alcalzone/release-script": "^3.7.0",
51
+ "@alcalzone/release-script-plugin-iobroker": "^3.7.0",
52
+ "@alcalzone/release-script-plugin-license": "^3.7.0",
53
+ "@iobroker/adapter-dev": "^1.2.0",
54
+ "@iobroker/testing": "^4.1.0",
55
+ "@types/chai": "^4.3.6",
53
56
  "@types/chai-as-promised": "^7.1.5",
54
- "@types/mocha": "^9.1.1",
55
- "@types/node": "^18.7.13",
56
- "@types/proxyquire": "^1.3.28",
57
- "@types/sinon": "^10.0.13",
58
- "@types/sinon-chai": "^3.2.8",
59
- "chai": "^4.3.6",
57
+ "@types/mocha": "^10.0.0",
58
+ "@types/node": "^20.10.3",
59
+ "@types/proxyquire": "^1.3.31",
60
+ "@types/sinon": "^17.0.2",
61
+ "@types/sinon-chai": "^3.2.12",
62
+ "chai": "^4.3.10",
60
63
  "chai-as-promised": "^7.1.1",
61
64
  "chai-string": "^1.5.0",
62
- "eslint": "^8.23.0",
63
- "luxon": "^2.5.0",
64
- "mocha": "^10.0.0",
65
+ "eslint": "^8.55.0",
66
+ "luxon": "^3.4.4",
67
+ "mocha": "^10.1.0",
65
68
  "proxyquire": "^2.1.3",
66
- "sinon": "^14.0.0",
69
+ "sinon": "^17.0.1",
67
70
  "sinon-chai": "^3.7.0",
68
- "typescript": "~4.8.2"
71
+ "typescript": "~5.3.2"
69
72
  },
70
73
  "bugs": {
71
74
  "url": "https://github.com/iobroker-community-adapters/ioBroker.ical/issues"
@@ -1,263 +0,0 @@
1
- <html>
2
- <head>
3
- <meta charset="UTF-8">
4
- <!-- Materialze style -->
5
- <link rel="stylesheet" type="text/css" href="../../css/adapter.css"/>
6
- <link rel="stylesheet" type="text/css" href="../../lib/css/materialize.css">
7
- <link type="text/css" rel="stylesheet" href="../../lib/css/themes/jquery-ui/default/jquery-ui.min.css">
8
- <link type="text/css" rel="stylesheet" href="../../lib/css/fancytree/ui.fancytree.min.css"/>
9
- <link rel="stylesheet" type="text/css" href="../../lib/css/iob/selectID.css"/>
10
-
11
- <script type="text/javascript" src="../../lib/js/jquery-3.2.1.min.js"></script>
12
- <script type="text/javascript" src="../../lib/js/jquery-ui-1.10.3.full.min.js"></script>
13
- <script type="text/javascript" src="../../lib/js/jquery.fancytree-all.min.js"></script>
14
- <script type="text/javascript" src="../../socket.io/socket.io.js"></script>
15
-
16
- <script type="text/javascript" src="../../js/translate.js"></script>
17
- <script type="text/javascript" src="../../lib/js/selectID.js"></script>
18
- <script type="text/javascript" src="../../lib/js/materialize.js"></script>
19
- <script type="text/javascript" src="../../js/adapter-settings.js"></script>
20
- <script type="text/javascript" src="words.js"></script>
21
-
22
- <script type="text/javascript">
23
-
24
- var calendars = [];
25
- var events = [];
26
- // the function loadSettings has to exist ...
27
- function load(settings, onChange) {
28
- if (!settings) return;
29
- for (var key in settings) {
30
- if (!settings.hasOwnProperty(key)) continue;
31
- var $value = $('#' + key + '.value');
32
- if ($value.attr('type') === 'checkbox') {
33
- $value.prop('checked', settings[key]).on('change', function() {
34
- if ($('#auth').prop('checked')) {
35
- $('#secure').prop('checked', true);
36
- }
37
- onChange();
38
- showHideSettings();
39
- });
40
- } else {
41
- $value.val(settings[key]).on('change', function() {
42
- onChange();
43
- }).keyup(function() {
44
- onChange();
45
- });
46
- }
47
- }
48
- // Set default language
49
- if (!settings.language) {
50
- settings.language = systemLang || 'en';
51
- $('#language').val(settings.language).trigger('change');
52
- }
53
- calendars = settings.calendars || [];
54
- events = settings.events || [];
55
-
56
- for (var c = 0; c < settings.calendars.length; c++) {
57
- settings.calendars[c].sslignore =
58
- settings.calendars[c].sslignore === 'ignore' ||
59
- settings.calendars[c].sslignore === 'true' ||
60
- settings.calendars[c].sslignore === true;
61
-
62
- settings.calendars[c].name = settings.calendars[c].name || '';
63
- settings.calendars[c].url = settings.calendars[c].url || '';
64
- settings.calendars[c].user = settings.calendars[c].user || '';
65
- settings.calendars[c].pass = settings.calendars[c].pass || '';
66
- settings.calendars[c].color = settings.calendars[c].color || '';
67
-
68
- settings.calendars[c].filterregex =
69
- settings.calendars[c].filterregex === 'yes' ||
70
- settings.calendars[c].filterregex === 'true' ||
71
- settings.calendars[c].filterregex === true;
72
-
73
- settings.calendars[c].filter = settings.calendars[c].filter || '';
74
- }
75
-
76
- for (var e = 0; e < settings.events.length; e++) {
77
- if (typeof settings.events[e].ack !== 'boolean') {
78
- settings.events[e].ack = true;
79
- }
80
- }
81
-
82
- onChange(false);
83
-
84
- values2table('calendars', calendars, onChange);
85
- values2table('events', events, onChange);
86
- }
87
-
88
- function save(callback) {
89
- var obj = {};
90
- $('.value').each(function () {
91
- var $this = $(this);
92
- if ($this.attr('type') === 'checkbox') {
93
- obj[$this.attr('id')] = $this.prop('checked');
94
- } else {
95
- obj[$this.attr('id')] = $this.val();
96
- }
97
- });
98
- // Get edited table
99
- obj.calendars = table2values('calendars');
100
- obj.events = table2values('events');
101
- callback(obj);
102
- }
103
- </script>
104
- <style>
105
- .m .select-wrapper+label {
106
- top: 100%;
107
- }
108
- </style>
109
- </head>
110
- <body>
111
- <div class="m adapter-container">
112
- <div class="row">
113
- <div class="col s12">
114
- <ul class="tabs">
115
- <li class="tab col s2"><a href="#tab-main" class="translate active">Main settings</a></li>
116
- <li class="tab col s2"><a href="#tab-html" class="translate">HTML settings</a></li>
117
- <li class="tab col s2"><a href="#tab-calendars" class="translate">Calendars</a></li>
118
- <li class="tab col s2"><a href="#tab-events" class="translate">Events</a></li>
119
- </ul>
120
- </div>
121
- <div id="tab-main" class="col s12 page">
122
- <div class="row">
123
- <div class="col s12 m4 l2">
124
- <img src="ical.png" class="logo">
125
- </div>
126
- </div>
127
- <div class="row">
128
- <div class="col s12 m4">
129
- <input class="value" id="daysPreview" type="number" min="1" max="99"/>
130
- <label class="translate" for="daysPreview">Preview days</label>
131
- </div>
132
- <div class="col s12 m4">
133
- <input class="value" id="daysPast" type="number" min="0" max="99"/>
134
- <label class="translate" for="daysPast">Past days</label>
135
- </div>
136
- </div>
137
- <div class="row">
138
- <div class="col s12 m4">
139
- <input class="value" id="ignoreCaseInEventname" type="checkbox" />
140
- <label class="translate" for="ignoreCaseInEventname">Ignore case for event-search</label>
141
- </div>
142
- <div class="col s12 m4">
143
-
144
- </div>
145
- </div>
146
- </div>
147
- <div id="tab-html" class="col s12 page">
148
- <div class="row">
149
- <div class="col s12 m4">
150
- <select class="value" id="language">
151
- <option value="en">English</option>
152
- <option value="de">Deutsch</option>
153
- <option value="ru">русский</option>
154
- <option value="pt">Portugues</option>
155
- <option value="nl">Nederlands</option>
156
- <option value="fr">français</option>
157
- <option value="it">Italiano</option>
158
- <option value="es">Espanol</option>
159
- </select>
160
- <label class="translate" for="language">Language</label>
161
- </div>
162
- <div class="col s12 m4">
163
-
164
- </div>
165
- </div>
166
- <div class="row">
167
- <div class="col s12 m4">
168
- <input class="value" id="fulltime" type="text" maxlength="30"/>
169
- <label class="translate" for="fulltime">Use by full day</label>
170
- </div>
171
- <div class="col s12 m4">
172
- <input class="value" id="defColor" type="text" maxlength="10" />
173
- <label class="translate" for="defColor">Default color for HTML</label>
174
- </div>
175
- </div>
176
- <div class="row">
177
- <div class="col s12 m4">
178
- <input class="value" id="dataPaddingWithZeros" type="checkbox">
179
- <label class="translate" for="dataPaddingWithZeros">Padding date with '0'</label>
180
- </div>
181
- <div class="col s12 m4">
182
- <input class="value" id="replaceDates" type="checkbox" />
183
- <label class="translate" for="replaceDates">Replace dates with words</label>
184
- </div>
185
- </div>
186
- <div class="row">
187
- <div class="col s12 m4">
188
- <input class="value" id="everyCalOneColor" type="checkbox">
189
- <label class="translate" for="everyCalOneColor">Every calendar has own color</label>
190
- </div>
191
- <div class="col s12 m4">
192
- <input class="value" id="colorize" type="checkbox"/>
193
- <label class="translate" for="colorize">Colorize HTML</label>
194
- </div>
195
- </div>
196
- <div class="row">
197
- <div class="col s12 m4">
198
- <input class="value" id="forceFullday" type="checkbox">
199
- <label class="translate" for="forceFullday">Hide Start-End of events</label>
200
- </div>
201
- <div class="col s12 m4">
202
- <input class="value" id="hideYear" type="checkbox" />
203
- <label class="translate" for="hideYear">Hide Year</label>
204
- </div>
205
- </div>
206
- <div class="row">
207
- <div class="col s12 m4">
208
- <input class="value" id="arrowAlreadyStarted" type="checkbox">
209
- <label class="translate" for="arrowAlreadyStarted">Add arrow for started events</label>
210
- </div>
211
- <div class="col s12 m4">
212
- <input class="value" id="addColorBox" type="checkbox">
213
- <label class="translate" for="addColorBox">Add event color if available</label>
214
- </div>
215
- </div>
216
- </div>
217
- <div id="tab-calendars" class="col s12 page">
218
- <div class="col s12" id="calendars">
219
- <a class="btn-floating waves-effect waves-light blue table-button-add"><i class="material-icons">add</i></a>
220
- <div class="table-values-div">
221
- <table class="table-values">
222
- <thead>
223
- <tr>
224
- <th data-name="name" class="translate">name</th>
225
- <th data-name="url" class="translate">url</th>
226
- <th data-name="user" data-style="width: 100px" class="translate">user</th>
227
- <th data-name="pass" data-style="width: 100px" data-type="password" class="translate">pass</th>
228
- <th data-name="sslignore" data-type="checkbox" class="translate">sslignore</th>
229
- <th data-name="color" data-type="color" class="translate">color</th>
230
- <th data-name="filter" data-style="width: 100px" class="translate">filter</th>
231
- <th data-name="filterregex" data-type="checkbox" class="translate">filterregex</th>
232
- <th data-buttons="delete up down"></th>
233
- </tr>
234
- </thead>
235
- </table>
236
- </div>
237
- </div>
238
- </div>
239
- <div id="tab-events" class="col s12 page">
240
- <div class="col s12" id="events">
241
- <a class="btn-floating waves-effect waves-light blue table-button-add"><i class="material-icons">add</i></a>
242
- <div class="table-values-div">
243
- <table class="table-values">
244
- <thead>
245
- <tr>
246
- <th data-name="name" style="width: 80%" class="translate">name</th>
247
- <th data-name="enabled" style="width: 70px" data-style="width: 70px" data-type="checkbox" class="translate">enabled</th>
248
- <th data-name="id" style="width: 200px" data-style="width: 300px" data-type="OID" class="translate">Set ID</th>
249
- <th data-name="on" style="width: 50px" data-style="width: 50px" data-type="text" class="translate">ON</th>
250
- <th data-name="off" style="width: 50px" data-style="width: 50px" data-type="text" class="translate">OFF</th>
251
- <th data-name="ack" style="width: 70px" data-style="width: 70px" data-type="checkbox" class="translate">Set Ack</th>
252
- <th data-name="display" style="width: 70px" data-style="width: 70px" data-type="checkbox" class="translate">display</th>
253
- <th data-buttons="delete up down" style="width: 120px"></th>
254
- </tr>
255
- </thead>
256
- </table>
257
- </div>
258
- </div>
259
- </div>
260
- </div>
261
- </div>
262
- </body>
263
- </html>