iobroker.alias-workbench 0.10.0 → 0.12.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.
Files changed (54) hide show
  1. package/README.md +58 -98
  2. package/admin/css/werkbank.css +88 -0
  3. package/admin/i18n/de.json +766 -1
  4. package/admin/i18n/en.json +766 -1
  5. package/admin/i18n/es.json +766 -1
  6. package/admin/i18n/fr.json +766 -1
  7. package/admin/i18n/it.json +766 -1
  8. package/admin/i18n/nl.json +766 -1
  9. package/admin/i18n/pl.json +766 -1
  10. package/admin/i18n/pt.json +766 -1
  11. package/admin/i18n/ru.json +766 -1
  12. package/admin/i18n/uk.json +766 -1
  13. package/admin/i18n/zh-cn.json +766 -1
  14. package/admin/js/ablage.js +118 -0
  15. package/admin/js/attrappe.js +749 -0
  16. package/admin/js/baum.js +52 -5
  17. package/admin/js/detail.js +64 -3
  18. package/admin/js/entwurf.js +246 -31
  19. package/admin/js/ergebnis.js +77 -2
  20. package/admin/js/katalog.js +235 -40
  21. package/admin/js/mqtt.js +297 -27
  22. package/admin/js/musternamen.js +70 -26
  23. package/admin/js/objekte.js +2 -0
  24. package/admin/js/quellentausch.js +823 -16
  25. package/admin/js/schreiben.js +3 -2
  26. package/admin/js/sprache.js +11 -8
  27. package/admin/js/vorlagen.js +8 -3
  28. package/admin/js/vorlagenblatt.js +228 -64
  29. package/admin/js/werte.js +294 -5
  30. package/admin/js/zielleiste.js +19 -10
  31. package/admin/js/zuordnung.js +8 -7
  32. package/admin/js/zustand.js +32 -0
  33. package/admin/js/zustandsliste.js +9 -2
  34. package/admin/tab.html +24 -0
  35. package/admin/vorlagen/hm-dimmer.json +32 -8
  36. package/admin/vorlagen/hm-fensterkontakt-hm.json +20 -5
  37. package/admin/vorlagen/hm-fensterkontakt-hmip.json +28 -7
  38. package/admin/vorlagen/hm-heizgruppe.json +38 -11
  39. package/admin/vorlagen/hm-heizkoerper.json +42 -12
  40. package/admin/vorlagen/hm-rollladen.json +28 -7
  41. package/admin/vorlagen/hm-schaltaktor-lampe.json +24 -6
  42. package/admin/vorlagen/hm-schaltaktor-mehrfach.json +32 -8
  43. package/admin/vorlagen/hm-schaltaktor-steckdose.json +24 -6
  44. package/admin/vorlagen/hm-temperatur-feuchte.json +8 -2
  45. package/admin/vorlagen/hm-wandthermostat.json +36 -9
  46. package/admin/vorlagen/messpunkt.json +40 -10
  47. package/admin/vorlagen/tasmota-lampe.json +48 -12
  48. package/admin/vorlagen/tasmota-mehrfach.json +40 -10
  49. package/admin/vorlagen/tasmota-rgb.json +36 -9
  50. package/admin/vorlagen/tasmota-steckdose.json +56 -14
  51. package/io-package.json +41 -28
  52. package/package.json +3 -3
  53. package/admin/sprachen/de.json +0 -685
  54. package/admin/sprachen/en.json +0 -685
@@ -10,5 +10,770 @@
10
10
  "The Admin setup wizard leaves a bare name such as \"Playroom\" in the icon field, which no longer resolves to a picture and shows as a broken box. With this on, the workbench replaces it. It overwrites a field that is not empty — the dry run names it explicitly.": "Майстер налаштування Admin залишає в полі значка саму лише назву на кшталт «Playroom», яка більше не веде до зображення й показується як зламаний прямокутник. Якщо цю опцію ввімкнено, верстак її замінює. При цьому перезаписується непорожнє поле — пробний запуск зазначає це окремо.",
11
11
  "The Alias Workbench has no running process — everything happens in the Admin tab. These settings control how it writes.": "У «Верстака аліасів» немає запущеного процесу — усе відбувається у вкладці адміністратора. Ці налаштування визначають, як він записує.",
12
12
  "The workbench reads them at runtime from the Admin's own bundle instead of keeping a copy that would age with every update. If that fails, the selection lists simply show what already exists — no error, just fewer entries.": "Верстак читає їх під час виконання з власного бандла Admin, замість того щоб тримати копію, яка старіє з кожним оновленням. Якщо це не вдається, списки вибору показують лише наявне — не помилка, просто менше записів.",
13
- "Where the templates come from": "Звідки беруться шаблони"
13
+ "Where the templates come from": "Звідки беруться шаблони",
14
+ "app.connected": "підключений",
15
+ "app.detector": "детектор типу",
16
+ "app.disconnected": "відключений",
17
+ "app.objectsCount": "{0} об’єктів",
18
+ "app.patternsCount": "{0} візерунків",
19
+ "app.subsCount": "{0} підписок",
20
+ "app.subsCount1": "одна передплата",
21
+ "app.subsHint": "Підписка поширюється на весь гілок, а не на окреме значення — один шаблон із зірочкою охоплює всі елементи, що знаходяться нижче нього. При переході на інший вузол скасовується підписка на всі попередні; якщо їхня кількість продовжує зростати, один із них залишається поза увагою. Наразі переглядається:",
22
+ "app.templatesCount": "{0} шаблони",
23
+ "app.title": "Псевдонім Workbench",
24
+ "catalog.loadingText": "Одного разу після оновлення адміністратора — розмір пакета становить кілька мегабайтів. Після цього каталог зберігається і більше не завантажуватиметься.",
25
+ "catalog.loadingTitle": "Завантаження шаблонів адміністратора",
26
+ "catalog.missing": "Каталог адміністратора недоступний — лише наявні записи",
27
+ "check.allDeliver": "усі доставляють",
28
+ "check.allFine": "все гаразд",
29
+ "check.allOk": "{0} ✓",
30
+ "check.button": "Чеки",
31
+ "check.canSend": "{0} шляхи запису працюють нормально",
32
+ "check.cannotSend": "не вдається надіслати: {0}",
33
+ "check.checked": "{0} відмічено",
34
+ "check.duplicate": "Немає повторюваних балів",
35
+ "check.duplicateNone": "кожен вказує в інший бік",
36
+ "check.duplicateSome": "вказують на одне й те саме: {0}",
37
+ "check.feedback": "відгук надходить одразу",
38
+ "check.feedbackFast": "Одразу ж увімкнено SetOption59",
39
+ "check.feedbackNone": "жодного рядка не змінено — все прочитано зі stat/…",
40
+ "check.feedbackSlow": "затримка: {0}",
41
+ "check.feedbackUnknown": "неперевірено: {0}",
42
+ "check.formulaYields": "формула дає певний результат",
43
+ "check.hintCount": "примітки: {0}",
44
+ "check.noPatternFits": "жодний шаблон не підходить",
45
+ "check.noWritePath": "no point пише",
46
+ "check.notMqtt": "відсутній шлях запису MQTT",
47
+ "check.openCount": "{0} відкрити",
48
+ "check.publish": "опублікувати на cmnd point",
49
+ "check.rolesMakeDevice": "ролі, що складають пристрій",
50
+ "check.sendPointMissing": "надіслати ще не створену точку даних: {0}",
51
+ "check.sendUnknown": "У об’єкті не вказано, чи може {0} публікувати дані — ця тема міститься лише в `native`. Це нормально для ioBroker.mqtt та sonoff.",
52
+ "check.sourceExists": "джерело існує",
53
+ "check.sourceHasValue": "джерело має значення",
54
+ "check.targetCan": "ціль може виконати те, що від неї вимагається",
55
+ "check.targetCanFine": "все гаразд",
56
+ "check.targetNoWrite": "{0}: до цільового об’єкта немає доступу для запису",
57
+ "check.targetVoidFormula": "{0}: під час виконання формули не виявлено жодних даних, цільове значення — {1}",
58
+ "check.title": "Перевірки — постійно виконуються, нічого не торкаючись",
59
+ "del.allOutputs": "Видалити всі {0} виходи цього пристрою",
60
+ "del.allOutputsHint": "В іншому разі решта залишається позаду, як сироти: {0}",
61
+ "del.alsoFunction": "Функція «{0}», створена разом із цим псевдонімом, також видаляється — інакше вона залишилася б порожньою.",
62
+ "del.alsoRoom": "Кімната «{0}», створена разом із цим псевдонімом, також видаляється — інакше вона залишилася б порожньою.",
63
+ "del.button": "Видалити псевдонім …",
64
+ "del.channelsBelow": "Увага: нижче цього знаходяться {0} власних каналів, які також будуть видалені.",
65
+ "del.count": "об’єкти будуть видалені: {0}",
66
+ "del.done": "Видалено: {0} об’єктів.",
67
+ "del.hint": "Псевдонім та всі дані, що знаходяться під ним, видаляються. Джерела залишаються незмінними — видаляється лише оболонка, а не сам пристрій. Цю дію неможливо скасувати.",
68
+ "del.now": "Видалити назавжди",
69
+ "del.objects": "Що зникає",
70
+ "del.scriptsHead": "У {0} скриптах згадується цей ідентифікатор:",
71
+ "del.scriptsHead1": "У одному скрипті згадується цей ідентифікатор:",
72
+ "del.scriptsHint": "Пошук проводився лише у скриптах адаптера JavaScript у вигляді простого тексту. Перегляди, сцени та налаштування інших адаптерів не враховувалися.",
73
+ "del.title": "Видалити псевдонім",
74
+ "detail.aliasEmpty": "Псевдонім залишає це поле порожнім.",
75
+ "detail.aliasHas": "Псевдонім має: ",
76
+ "detail.asDelivered": "у тому вигляді, в якому поставлено",
77
+ "detail.attention": "Увага",
78
+ "detail.buttonNoRead": "Кнопка без функції читання тексту — не супроводжує читання",
79
+ "detail.caption": "Підпис",
80
+ "detail.captionHint": "стає іменем, під яким відображається стан — воно показується в адмін-панелі, у VIS та скрізь, де замість ідентифікаторів використовуються імена",
81
+ "detail.converted": "перетворено за допомогою псевдоніма",
82
+ "detail.datapoint": "Дані",
83
+ "detail.decimals": "Дроби",
84
+ "detail.display": "Дисплей",
85
+ "detail.elsewhere": "(в іншому місці)",
86
+ "detail.expects": "очікує {0}",
87
+ "detail.formula": "Прочитати формулу",
88
+ "detail.formulaBroken": "формула містить помилку",
89
+ "detail.formulaHint": "\"ON\"/\"OFF\" → логічне значення визначається самим псевдонімом, формула не потрібна.",
90
+ "detail.formulaPlaceholder": "empty = зберегти значення без змін",
91
+ "detail.formulaThrows": "виникло помилкове значення у формулі: {0}",
92
+ "detail.formulaTooSlow": "Виконання цієї формули зайняло {0} мс, і вона більше не виконується. Перезавантаження вкладки дозволить спробувати ще раз.",
93
+ "detail.jsonField": "Поле в JSON",
94
+ "detail.matchesState": "✓ відповідає стану",
95
+ "detail.name": "Ім'я",
96
+ "detail.namePlaceholder": "наприклад, UNREACH",
97
+ "detail.nameTaken": "У іншому рядку вже є ім’я {0}.",
98
+ "detail.noSource": "— джерело невідоме —",
99
+ "detail.noValue": "не вказано",
100
+ "detail.noWrite": "— не пишіть —",
101
+ "detail.notWritable": "не можна записувати",
102
+ "detail.objectId": "Ідентифікатор об’єкта",
103
+ "detail.otherObject": "… введіть інший об’єкт",
104
+ "detail.ownFormula": "власна формула",
105
+ "detail.pickOne": "— будь ласка, оберіть —",
106
+ "detail.rawNothing": "— джерело нічого не надає —",
107
+ "detail.rawValue": "Необроблене значення",
108
+ "detail.readIsButton": "кнопка",
109
+ "detail.readIsButtonHint": "Кнопка «Роль» із цільовим об’єктом для запису: для точки даних псевдоніма встановлюється значення «read: false», і vis, Alexa та Matter відображають її як кнопку. Джерело зчитування не завдає шкоди — завдяки йому псевдонім фіксує кожне натискання, включаючи натискання фізичної кнопки. Після натискання зберігається останнє значення, так само як і в джерелі.",
110
+ "detail.readOnlySlotWrites": "{0} у шаблоні є лише для читання — «записує в» слід замінити на «— не записувати —», інакше записане значення потрапить на пристрій.",
111
+ "detail.readsFrom": "завантажується з",
112
+ "detail.removePoint": "Вилучити цей пункт",
113
+ "detail.role": "Роль",
114
+ "detail.sameAsRead": "— так само, як прочитано —",
115
+ "detail.separateHint": "Зчитування відбувається з іншого місця, ніж запис: на екрані відображається те, що повідомляє пристрій, а не остання надіслана команда.",
116
+ "detail.slot": "Розмістити за схемою",
117
+ "detail.slotHint": "Встановлює роль, тип, одиницю виміру та список значень відповідно до шаблону, передбаченого для цього місця. Точка даних та назва залишаються без змін.",
118
+ "detail.slotNone": "— ніде —",
119
+ "detail.slotNotGiven": "{0} обрано, але не присвоєно — див. розділ «Роль», щоб дізнатися, що не відповідає (зазвичай це тип).",
120
+ "detail.slotRequired": "обов’язкове",
121
+ "detail.sourceGone": "джерело не існує",
122
+ "detail.stateSays": "держава заявляє {0}",
123
+ "detail.states": "Список значень",
124
+ "detail.statesFromSource": "Витягніть {0} записів із джерела",
125
+ "detail.statesHint": "перетворює числа на текст — у цьому випадку адміністратор бачить випадаюче меню замість поля для введення числа, а деякі слоти шаблонів вимагають саме цього. Залиште поле порожнім, якщо список значень відсутній.",
126
+ "detail.statesPlaceholder": "по одному в рядку: 0 = закрито",
127
+ "detail.takeFromAlias": "Отримати це значення зі збереженого псевдоніма",
128
+ "detail.takeOne": "Візьміть це значення з шаблону",
129
+ "detail.targetNoWrite": "Цільова точка має значення write: false — її адаптер нічого не передає на пристрій. ioBroker все одно зберігає це значення, але нічого не відбудеться.",
130
+ "detail.targetTypeHint": "Цільова точка має тип {0}. Вона визначає, що збережеться з формули запису: типи «mixed» і «string» приймають текст, а типи «boolean» і «number» перетворюють його назад.",
131
+ "detail.targetTypeVoid": "Цільовий об’єкт — {0} і не приймає тексту. Формула запису дійсно генерує текст — js-контролер під час запису перетворює його назад на {0}, тому формула не має ніякого ефекту. Перемикання все одно працює.",
132
+ "detail.tplWants": "У шаблоні потрібно вказати: ",
133
+ "detail.tplWantsEmpty": "У шаблоні це поле залишено порожнім.",
134
+ "detail.type": "Тип",
135
+ "detail.typeNumber": "число",
136
+ "detail.unit": "Одиниця",
137
+ "detail.writeFormula": "Ввести формулу",
138
+ "detail.writeFormulaHint": "перетворює у зворотному напрямку: те, що пристрій має отримати після перемикання.",
139
+ "detail.writeFormulaPlaceholder": "наприклад, val ? \"ON\" : \"OFF\"",
140
+ "detail.writesTo": "пише до",
141
+ "detail.yields": "урожайність",
142
+ "detail.yieldsNothing": "не дає жодних результатів",
143
+ "diff.addedNoPlace": "додатково позначено — не входить до складу {0}",
144
+ "diff.addedWithPlace": "додатково позначено — частина {0}",
145
+ "diff.againstStored": "у порівнянні з тим, що зберігається",
146
+ "diff.changes": "Зміни",
147
+ "diff.deselectedNoPlace": "не відмічено — у будь-якому разі не входило б до складу {0}",
148
+ "diff.deselectedWithPlace": "не відмічено — частина {0}",
149
+ "diff.deviations": "Відхилення від пропозиції",
150
+ "diff.formulaChange": "прочитати формулу: {0} → {1}",
151
+ "diff.newByHand": "нове, додано вручну",
152
+ "diff.noName": "(без назви)",
153
+ "diff.nothingExists": "цього ще немає",
154
+ "diff.open": "{0} відкрити",
155
+ "diff.points": "{0} балів",
156
+ "diff.roleChange": "роль: {0} → {1}",
157
+ "diff.sourceChange": "джерело: {0} → {1}",
158
+ "diff.unitChange": "одиниця: {0} → {1}",
159
+ "diff.wouldBeAdded": "позначено галочкою — буде додано під час оновлення",
160
+ "diff.wouldBeRemoved": "відмічено — існує в псевдонімі та буде видалено",
161
+ "enums.addTo": "входить",
162
+ "enums.alsoFolder": "Зберегти псевдонім також під назвою «{0}»?",
163
+ "enums.clear": "скасувати завдання",
164
+ "enums.function": "Функція",
165
+ "enums.functionHint": "Присвоює псевдонім функції, наприклад «освітлення» або «опалення». Також зберігається у переліку, а не в самому об’єкті.",
166
+ "enums.iconAdded": "буде додано піктограму",
167
+ "enums.iconNew": "Зображення ще немає — робочий стіл додасть його під час написання",
168
+ "enums.iconNewMark": "новий",
169
+ "enums.iconThere": "Зображення збережено",
170
+ "enums.members": "{0} у ньому",
171
+ "enums.newSuffix": "новий",
172
+ "enums.noMatch": "не знайдено результатів для \"{0}\"",
173
+ "enums.notLoadedField": "Не вдалося завантажити кімнати та функції — тому інформація про кімнати та функції не буде записана; сам псевдонім все одно створюється. Робоча область самостійно робить три спроби; якщо це не допоможе, перезавантажте вкладку.",
174
+ "enums.nowEmpty": "після цього буде порожнім і буде видалено",
175
+ "enums.placeholder": "порожнє = відсутність присвоєння",
176
+ "enums.removeFrom": "виймається",
177
+ "enums.room": "Кімната",
178
+ "enums.roomHint": "Присвоює псевдонім кімнаті. Ця інформація зберігається не в самому об’єкті, а в переліку «enum.rooms» — Alexa, Google та інформаційні панелі групують дані саме за цим критерієм.",
179
+ "enums.suggested": "запропоновано",
180
+ "enums.unknown": "Переліки не завантажено — кімната та функція залишаються без змін.",
181
+ "enums.unused": "порожній",
182
+ "enums.willCreate": "створити новий",
183
+ "folder.aliasMissing": "відсутній",
184
+ "folder.aliasThere": "існує",
185
+ "folder.clickHint": "Натисніть на пристрій, щоб почати з ним працювати. ",
186
+ "folder.clickHintText": "Вузол вважається пристроєм, щойно з’являється шаблон, який йому відповідає — далі пошук не проводиться. Якщо відповідних шаблонів немає, вузол все одно з’являється у списку, щойно у нього з’являються власні дані.",
187
+ "folder.colAlias": "Псевдонім",
188
+ "folder.colDetected": "виявлено як",
189
+ "folder.colSource": "Джерело",
190
+ "folder.devices": "Пристрої",
191
+ "folder.devicesBelow": "{0} пристроїв нижче · {1} точок даних",
192
+ "folder.found": "Знайдено {0}",
193
+ "folder.nothingHere": "Тут немає нічого, що могло б стати пристроєм.",
194
+ "folder.withAlias": "{0} з псевдонімом",
195
+ "folder.withoutTemplate": "{0} без шаблону",
196
+ "guess.alsoRow": "з рекомендаціями: підходить",
197
+ "guess.bar": "{0} слотів вгадано — будь ласка, перевірте",
198
+ "guess.better": "{0} може підійти краще",
199
+ "guess.betterGoHint": "Перемикається на {0} і відразу натискає «{1}». Після цього кожне завдання відображається як «вгадане» і його потрібно перевіряти по черзі; при цьому залишається можливість відхилення. На пристрої нічого не змінюється — встановлюються лише ролі в чернетці.",
200
+ "guess.betterHint": "{0} дозволить заповнити {1} слотів, {2} — лише {3} — обидва числа вказані після пропозиції. Перейдіть до цього варіанту, а потім натисніть «Запропонувати вільні слоти»; кожне призначення потрібно перевірити.",
201
+ "guess.betterHintNone": "{0} досягне {1} заповнених слотів після пропозиції; {2} навіть тоді не вписується. Перейдіть до нього, а потім натисніть «Запропонувати вільні слоти»; кожне призначення потрібно перевірити.",
202
+ "guess.button": "Запропонувати безкоштовні слоти",
203
+ "guess.drop": "відхилити",
204
+ "guess.hint": "Заповнює вільні позиції шаблону за допомогою решти даних — це лише припущення, а не достовірна інформація. Припущення робляться на основі назви, списку значень, одиниці виміру та типу; кожне присвоєння позначається як «припущення» і може бути відкинуте по одному.",
205
+ "guess.keep": "зберігати",
206
+ "guess.keepAll": "зберегти все",
207
+ "guess.locked": "{0}× вгадано, ще не визначилися — спочатку вирішіть, залишити (✓) чи відкинути (✕), а потім створіть і збережіть розблокування.",
208
+ "guess.mark": "вгадав",
209
+ "guess.noneFit": "{0} залишається вільним. Жодна з решти точок даних не відповідає критеріям — збіг визначається за назвою, списком значень, одиницею виміру та типом, і жодна з них не перевищила порогове значення.",
210
+ "guess.noneFull": "Усі місця у шаблоні зайняті — більше нічого запропонувати.",
211
+ "guess.noneHand": "{0} рядків було визначено вручну, тому їх залишено без змін: {1}.",
212
+ "guess.noneHandOne": "{0} було визначено вручну і залишається без змін.",
213
+ "guess.noneUsed": "{0} залишається вільним. Кожна з решти точок даних вже використовується як джерело для читання або запису в заповненому рядку.",
214
+ "guess.slotsMore": "ще {0} та {1}",
215
+ "guess.tplAsk": "Цей пристрій ідентифікується як «{0}», отже, прив’язка вже встановлена. Пропозиція заповнює додаткові поля на основі решти даних — це лише припущення, а не достовірна інформація, і кожне збіг потрібно перевіряти. Призначено для особливих випадків, наприклад, коли пристрій має більше можливостей, ніж передбачено шаблоном.",
216
+ "guess.tplGo": "Все одно запропонувати",
217
+ "guess.tplHint": "Цей шаблон уже охоплює цей пристрій — тому наведення прикладів тут доцільне лише для особливих випадків.",
218
+ "guess.tplTitle": "Чи варто пропонувати безкоштовні слоти, незважаючи на наявність шаблону?",
219
+ "guess.undo": "Відхилити пропозиції",
220
+ "help.aliases": "Виберіть існуючий псевдонім зліва. Видаляйте точки, змінюйте ролі, джерела та формули — або переміщуйте, перейменовуйте та видаляйте його.",
221
+ "help.aliasesAdd": "Щоб додати точки до псевдоніма, простіше скористатися посиланням «до джерела →» (у правому верхньому куті, поруч із назвою псевдоніма): там застосовується шаблон, і для кожної точки даних пристрою пропонується готова роль — у цьому випадку ж довелося б вводити кожну вручну.",
222
+ "help.sources": "Виберіть пристрій або канал зліва. Робоча область розпізнає його та запропонує готовий псевдонім. Якщо такий псевдонім уже існує, його буде оновлено.",
223
+ "help.templates": "Виберіть шаблон зліва. Вбудовані шаблони можна переглянути та скопіювати, а власні — відредагувати. У попередньому перегляді показано, з якими пристроями він сумісний.",
224
+ "info.dlgTitle": "Не відповідає шаблону {0}",
225
+ "info.explain": "працюють абсолютно нормально і залишаються там, де ви їх створили. Нічого зайвого не записується — псевдонім залишається таким, як є. Вони просто не входять до того, що ioBroker розглядає як {0}; їхня роль не відповідає жодному з його слотів. Це стає важливим лише тоді, коли ви передаєте псевдонім до Alexa, Google Home або інтерфейсу пристрою: вони бачитимуть {0} без цих точок. У VIS, у скриптах та в історії ви використовуєте їх як будь-яку іншу точку даних.",
226
+ "info.more": "Що це означає",
227
+ "leave.body": "На {0} є зміни, які ще не були записані. Якщо перейти зараз, ці зміни будуть втрачені.",
228
+ "leave.discard": "Видалити та перейти до іншого",
229
+ "leave.stay": "Залишайтеся тут",
230
+ "leave.title": "Незбережені зміни",
231
+ "list.addByHand": "Додати точку даних вручну",
232
+ "list.aliasDiffers": "відрізняється від збереженого псевдоніма",
233
+ "list.all": "усі",
234
+ "list.buttonOnly": "тільки для запису",
235
+ "list.byHand": "вручну",
236
+ "list.changed": "змінено",
237
+ "list.colOn": "на",
238
+ "list.colRole": "Роль",
239
+ "list.colState": "Штат",
240
+ "list.colValue": "Значення",
241
+ "list.countOf": "{0} із {1}",
242
+ "list.createAria": "створити {0}",
243
+ "list.nameMissing": "ім'я відсутнє",
244
+ "list.newPoint": "новий пункт",
245
+ "list.noRole": "— без ролі —",
246
+ "list.ofDatapoints": "дані",
247
+ "list.onlyPattern": "лише те, що відповідає шаблону",
248
+ "list.onlyPatternHint": "Позначає лише ті точки, які займають позицію у вибраному візерунку — все інше залишається непозначеним і не створюється.",
249
+ "list.onlyWithValue": "лише із значенням",
250
+ "list.otherSource": "з {0}",
251
+ "list.otherSourceHint": "Ця точка зчитується не з {0}, а з {1}.",
252
+ "list.reset": "скинути",
253
+ "list.resetHint": "Скидає всі зміни, внесені тут — прапорці, ролі, формули, джерела — і знову відображає стан, у якому дані були збережені.",
254
+ "list.sendPointMissing": "надіслати точку даних, яка ще не створена",
255
+ "list.sourceGone": "джерело не існує",
256
+ "list.sourceHint": "Ця точка починається з {0}.",
257
+ "list.sourceMissing": "джерело відсутнє",
258
+ "list.tpl": "шаблон",
259
+ "list.tplDiffers": "відрізняється від шаблону",
260
+ "list.tplHint": "Перевіряє саме ті елементи, які передбачені шаблоном — незалежно від того, що на даний момент міститься в псевдонімі.",
261
+ "list.willBeCreated": "буде створено:",
262
+ "mock.colName": "Ім’я",
263
+ "mock.colPath": "Шлях",
264
+ "mock.colRole": "Роль",
265
+ "mock.colType": "Тип",
266
+ "mock.colValue": "Значення",
267
+ "mock.counts": "{0} записів, {1} зі значенням · записав alias-workbench {2} · джерело {3}",
268
+ "mock.inNames": "Увага: {0} ідентифікаторів є також у шляху або в іменах — відмова від `native` їх не прибирає",
269
+ "mock.more": "… і ще {0} записів (не показані, але потраплять у файл)",
270
+ "mock.noNative": "`native` не входить. Зніміть позначку зі значень, які не мають піти далі.",
271
+ "mock.save": "Зберегти файл",
272
+ "mock.suspicious": "Схоже на: {0}",
273
+ "mock.tooBig": "Це багато: {0} записів (пристрій зазвичай має менше ніж {1})",
274
+ "mock.tooBigHint": "Малося на увазі один пристрій? Вивантаження все одно спрацює.",
275
+ "mockin.bad": "Цей файл не підходить",
276
+ "mockin.badEntry": "{0} записів не мають шляху.",
277
+ "mockin.badFormat": "Формат {0}, але ця версія читає {1}.",
278
+ "mockin.badJson": "Не читається як JSON.",
279
+ "mockin.badObjects": "У файлі немає об’єктів.",
280
+ "mockin.counts": "{0} об’єктів, {1} зі значенням, {2} вже є",
281
+ "mockin.create": "Створити",
282
+ "mockin.exists": "(вже є)",
283
+ "mockin.from": "З {0} · записав alias-workbench {1} · джерело {2}",
284
+ "mockin.name": "Ім’я",
285
+ "mockin.nameTaken": "Ім’я «{0}» вже є — там лежить {1} об’єктів",
286
+ "mockin.nameTakenHint": "Оберіть інше ім’я. Запис у наявний макет змішав би обидва: замінюється лише те, що має той самий шлях, решта старого лишається — і вийшов би пристрій, якого ніколи не було.",
287
+ "mockin.noRoot": "Бракує запису кореня.",
288
+ "move.button": "Перейти …",
289
+ "move.done": "Переміщено. Псевдонім тепер знаходиться за адресою {0}.",
290
+ "move.exists": "{0} вже існує. Спочатку видаліть його або виберіть іншу назву.",
291
+ "move.from": "з",
292
+ "move.needName": "Потрібно ввести ім'я.",
293
+ "move.nested": "Ціль розташована нижче самого псевдоніма (або навпаки). Переміщення призведе до видалення її батьківського вузла — будь ласка, виберіть місце поруч із нею.",
294
+ "move.newFolder": "нова папка",
295
+ "move.noFolder": "(папка відсутня — безпосередньо в папці alias.0)",
296
+ "move.noScripts": "Ідентифікатор не згадується в жодному скрипті.",
297
+ "move.now": "Дійте вже зараз",
298
+ "move.scriptLines": "рядок {0}",
299
+ "move.scriptLinesN": "рядки {0}",
300
+ "move.scriptOff": "недієздатний",
301
+ "move.scriptsHead": "У {0} скриптах згадується старий ідентифікатор:",
302
+ "move.scriptsHead1": "В одному скрипті згадується старий ідентифікатор:",
303
+ "move.title": "Перемістити псевдонім",
304
+ "move.to": "до",
305
+ "move.unchanged": "Папка та ім’я не змінилися — нічого робити не треба.",
306
+ "move.warnHistory": "Зберігається лише налаштування, що вмикає запис. Відтепер під новим ідентифікатором починається нова, порожня серія. Усе, що було записано до цього моменту, залишається в базі даних під старим ідентифікатором — ці дані не втрачаються, але більше не доповнюватимуться. Діаграми та запити Grafana, що посилаються на старий ідентифікатор, не отримують нових даних; якщо вони посилаються на новий ідентифікатор, у них відсутня історія.",
307
+ "move.warnHistoryHead": "Зареєстровані значення не змінюються.",
308
+ "move.warnRefs": "Що стосується переглядів, імен Alexa та Google, а також інших адаптерів, їх неможливо перевірити. Усе, що посилається на старий ідентифікатор, потрібно виправити вручну.",
309
+ "move.warnRefsHead": "Що ще пов’язано зі старим ідентифікатором?",
310
+ "move.willMove": "буде переміщено",
311
+ "move.with": "з",
312
+ "mq.andMore": "… та ще {0}",
313
+ "mq.ask": "Запитайте пристрій",
314
+ "mq.askError": "Запит не вдався: {0}",
315
+ "mq.askGotAnswer": "Пристрій відповів — знайдені команди: {0}",
316
+ "mq.askHint": "Це звичайний запит — він нічого не перемикає і не змінює жодних налаштувань.",
317
+ "mq.askNoAnswer": "Відповіді немає. Або пристрій не підключений до мережі, або він слухає іншу тему.",
318
+ "mq.askOffline": "Наразі пристрій не передає дані — у такому разі запит залишиться без відповіді.",
319
+ "mq.askedDays": "запитано {0} днів тому",
320
+ "mq.askedHours": "запитано {0} годин тому",
321
+ "mq.askedMinutes": "запитано {0} хвилин тому",
322
+ "mq.asking": "запитуючи пристрій",
323
+ "mq.commandsFrom": "Команди, зчитані з {0}",
324
+ "mq.createdBy": "створено за допомогою Alias Workbench",
325
+ "mq.dialogTitle": "Створити точки відправлення",
326
+ "mq.done": "Записано {0} об’єктів.",
327
+ "mq.doneHint": "За мить процес виявлення запуститься знову — шаблон, який раніше не збігався, тепер може збігатися.",
328
+ "mq.duplicate": "так само, як {0}",
329
+ "mq.fix": "Створити точки відправлення …",
330
+ "mq.instant": "Миттєвий відгук",
331
+ "mq.instantCheck": "запитати",
332
+ "mq.instantChecking": "запитуючи",
333
+ "mq.instantEnable": "Увімкнути",
334
+ "mq.instantEnabling": "включення",
335
+ "mq.instantHintOff": "Без SetOption59 пристрій надсилає дані лише за своїм телеметричним циклом. {0} зчитує дані з tele/… і до цього моменту продовжує показувати старе значення після перемикання. Увімкнення цієї опції є постійним налаштуванням пристрою — воно нічого не перемикає, а лише змінює частоту надсилання даних пристроєм.",
336
+ "mq.instantHintOffTakt": "Без SetOption59 пристрій надсилає дані лише кожні {1} секунди. {0} зчитує дані з tele/… і до цього моменту продовжує показувати старе значення після перемикання. Увімкнення цієї опції є постійним налаштуванням пристрою — воно нічого не перемикає, а лише змінює частоту надсилання даних пристроєм.",
337
+ "mq.instantHintOn": "Встановлено параметр SetOption59: пристрій повідомляє про кожну зміну одразу, а не лише під час наступної передачі телеметричних даних. Час вимірювання — три секунди.",
338
+ "mq.instantHintUnknown": "Запит щодо цього пристрою ще не надходив. Команда «Ask» надсилає порожній запит до SetOption59 — це нічого не змінює.",
339
+ "mq.instantOff": "вимкнути",
340
+ "mq.instantOffShort": "затримка зворотного зв'язку",
341
+ "mq.instantOn": "увімкнено",
342
+ "mq.instantUnknown": "невідомо",
343
+ "mq.intro": "Не всі пристрої Tasmota налаштовані однаково. Відсутність точки або її вимкнення не є помилкою як такою — це має значення лише тоді, коли псевдонім повинен перемикатися через неї або коли шаблон потребує її для виявлення.",
344
+ "mq.justAsked": "щойно запитали",
345
+ "mq.missing": "{0} бракує балів за відправлення",
346
+ "mq.missingIp": "IP-адреса пристрою невідома — вона з’являється лише у теле/INFO2 (надсилається один раз під час завантаження) або у stat/STATUS5 (лише за запитом).",
347
+ "mq.missingPeriod": "Період телеметрії невідомий — пристрій ніколи не повідомляє його самостійно, а лише на запит.",
348
+ "mq.mute": "{0} не вдається надіслати",
349
+ "mq.neverReported": "Пристрій не надіслав повного звіту з моменту запуску, тому перелік його команд невідомий.",
350
+ "mq.newPoints": "Буде створено",
351
+ "mq.nothingYet": "Пристрій ще не надіслав жодних даних, з яких можна було б зчитати команди.",
352
+ "mq.nowValue": "наразі:",
353
+ "mq.offline": "офлайн",
354
+ "mq.onlyResult": "Наразі надійшла лише відповідь на одну команду, а не повний стан — список може бути неповним.",
355
+ "mq.repair": "Присутній, але мовчазний",
356
+ "mq.repairHint": "Ці точки існують, але їх не можна використовувати для відправлення. Перемикання псевдонімів через них не дає жодного результату, і це ніяк не відображається.",
357
+ "mq.rowAllow": "дозволити надсилання",
358
+ "mq.rowCreate": "створити",
359
+ "mq.rowWorking": "…",
360
+ "mq.selectedOf": "{0} із {1} вибраних",
361
+ "mq.silent": "не повідомляють",
362
+ "mq.split": "з {0} гілок",
363
+ "mq.splitHint": "Цей пристрій не розміщується під одним вузлом, а розподілений між {0} гілками — саме так адаптер MQTT зберігає його, коли FullTopic пристрою має вигляд «%prefix%/%topic%/» (заводські налаштування Tasmota). Workbench розглядає ці гілки як одне пристрій; точки створюються під цим пристроєм, а не поруч із ним.",
364
+ "mq.stFine": "наразі, надсилає",
365
+ "mq.stMissing": "відсутня точка",
366
+ "mq.stMute": "не можна надіслати",
367
+ "mq.stOff": "ввімкнений, але вимкнений",
368
+ "mq.stUnknown": "наразі, надсилання невідомого",
369
+ "mq.title": "Пристрій MQTT",
370
+ "mq.unknownCommand": "невідома команда",
371
+ "mq.write": "Створити ({0})",
372
+ "pattern.allPatterns": "усі шаблони {0}",
373
+ "pattern.doesNotFit": "✕ не підходить",
374
+ "pattern.expectsType": ", очікується {0}",
375
+ "pattern.fitsNotType": "✕ {0}: введіть {1} замість {2}",
376
+ "pattern.fitsOn": "збіги ",
377
+ "pattern.freeSlots": "Безкоштовні слоти за схемою {0}",
378
+ "pattern.label": "Шаблон",
379
+ "pattern.manualInstead": "вручну замість {0}",
380
+ "pattern.missing": "{0} відсутнє",
381
+ "pattern.noMatch": "жодний шаблон не відповідає \"{0}\"",
382
+ "pattern.noPlaceBecauseType": "Шаблон {0} наразі не застосовується: {1} вимагає {2}, але встановлено {3}. Саме тому жоден рядок не має слота.",
383
+ "pattern.noPlaceLegend": "Рядки, зафарбовані таким чином, не містять слота у шаблоні {0}",
384
+ "pattern.noPlaceLong": "у шаблоні {0} немає слота — точка все одно створюється і є повністю придатною для використання, просто Alexa та інші сервіси враховують її окремо",
385
+ "pattern.notDetected": "не виявлено",
386
+ "pattern.offCandidate": "{0} відповідає {1}, але не позначено галочкою.",
387
+ "pattern.offCandidateType": "{0} відповідає {1} за своєю роллю, але не позначено галочкою і має тип {2} замість {3}.",
388
+ "pattern.offGuess": "З «{0}» це спрацює.",
389
+ "pattern.offMissing": "Шаблон {0} наразі не застосовується: бракує {1}. Саме тому жоден рядок не має слота.",
390
+ "pattern.orRole": "або {0}",
391
+ "pattern.pointsTaken": "✓ {0} балів",
392
+ "pattern.required": "ОБОВ'ЯЗКОВО — відсутнє",
393
+ "pattern.search": "введіть текст для пошуку …",
394
+ "pattern.slotHeldBy": "{1} вже займає {0} — у такому разі для цього рядка не залишиться місця. Виберіть вільне місце у розділі «Розмістити за схемою» вище.",
395
+ "pattern.slotName": "Ця точка знаходиться в слоті «{0}» шаблону {1}. Назви слотів походять від детектора типів і скрізь однакові — вони не перекладаються, оскільки точка даних «alias» називається саме так.",
396
+ "pattern.slotsTaken": "✓ {0}/{1} заповнено",
397
+ "pattern.tickIt": "постав галочку",
398
+ "pattern.tickItType": "постав галочку, {0}",
399
+ "pattern.toSlot": " → позиція {0} у шаблоні {1}",
400
+ "pattern.typeMismatch": "Слот {0} вимагає {1}, але встановлено {2} — стан випадає зі схеми, хоча роль вказано правильно.",
401
+ "pattern.typeOr": " або ",
402
+ "pattern.usualOnly": "тільки звичайні",
403
+ "pattern.viaRole": "роль {0}",
404
+ "result.addNeighbours": "Додати сусідні гілки ({0})",
405
+ "result.addNeighboursHint": "Деякі адаптери розподіляють пристрій по сусідніх гілках. Тут беруться всі; окремі обирають Ctrl-кліком у дереві.",
406
+ "result.addNeighboursSame": "За даними адаптера ці гілки належать одному пристрою — той самий ідентифікатор вузла і той самий пункт зʼєднання. Тут беруться всі; інакше Ctrl-клік.",
407
+ "result.allAnyway": "У будь-якому разі ",
408
+ "result.channelsHint": "Цей пристрій має {0} каналів. Оберіть один із варіантів нижче: розмістити все в одній папці або відтворити структуру джерела — папку для пристрою, а під нею по одному каналу.",
409
+ "result.extraSwitches": "Включено: {0} точок з інших каналів, для яких у шаблоні {1} немає місця. Вони створюються, але не враховуються як перемикач або зворотний зв’язок пристрою. Для окремого керування скористайтеся опцією «один пристрій на канал», наведеною нижче.",
410
+ "result.header": "Як це інтерпретує детектор типів",
411
+ "result.newlyCreated": "буде створено",
412
+ "result.noObjectShort": "без об’єкта",
413
+ "result.pickSource": "Куди стрибнути?",
414
+ "result.pointsFromBranches": "{0} точок даних із {1} філій. ",
415
+ "result.sourceCount": "{0} джерел",
416
+ "result.sourceCountHint": "Посилання цього псевдоніма ведуть до кількох вузлів. Посилання «до джерела» веде до того, звідки походить більшість із них; при натисканні відображаються всі вони.",
417
+ "result.sourceGone": "Джерело {0} більше не існує.",
418
+ "result.sourceGone1": "1 бал нікуди не веде",
419
+ "result.sourceGoneN": "{0} балів — це ні про що не свідчить",
420
+ "result.states": "{0} штатів",
421
+ "result.statesDirect": "{0} штатів ({1} безпосередньо)",
422
+ "result.toAlias": "до псевдоніма",
423
+ "result.toAliasHint": "Переходить до псевдоніма, створеного на основі цього пристрою.",
424
+ "result.toSource": "до джерела",
425
+ "result.toSourceHint": "Переходить до пристрою, на основі якого було створено цей псевдонім. Шаблони застосовуються лише там — у режимі псевдонімів псевдонім можна підтримувати, але не створювати заново на основі шаблону.",
426
+ "result.tooManyStates": "Це буде пристрій із {0} станами — зазвичай це означає, що обрано неправильний вузол. У дереві ліворуч вузли, які виглядають як окремий пристрій, позначені крапкою. Ви все одно можете побудувати його таким чином.",
427
+ "roles.leadsTo": "→ слот {0}",
428
+ "roles.noMatch": "не знайдено збігів для «{0}»",
429
+ "roles.patternOnly": "показати лише ролі шаблону",
430
+ "roles.search": "пошук посади …",
431
+ "roles.showAll": "показати всі {0} ролі",
432
+ "roles.slot": "слот {0} у шаблоні {1}",
433
+ "roles.slotFree": "безкоштовно",
434
+ "roles.slotTaken": "зроблено {0}",
435
+ "swap.blocked": "Спочатку вирішіть — ці точки не можуть бути присутніми: {0}. Або видаліть їх під час обміну, або залиште обмін без змін; точка, призначена для запису, потребує об’єкта запису.",
436
+ "swap.button": "Обміняти джерело …",
437
+ "swap.byHandCheck": "Формула, одиниця та діапазон залишаються як в аліасі — перевірте їх потім.",
438
+ "swap.byHandHint": "Цю точку ви вказали самі — верстат не зміг вивести її з нового пристрою.",
439
+ "swap.byHandMark": "вручну",
440
+ "swap.diffRange": "діапазон {0} → {1}",
441
+ "swap.diffType": "тип {0} → {1}",
442
+ "swap.diffUnit": "одиниця {0} → {1}",
443
+ "swap.done": "Обміняно. Псевдонім тепер зчитує дані з {0}.",
444
+ "swap.factorField": "Множник",
445
+ "swap.formula": "Формула",
446
+ "swap.formulaNone": "немає",
447
+ "swap.from": "Наразі читає з:",
448
+ "swap.fromAlias": "Зіставлено за самою точкою аліаса: під новим джерелом є рівно одна точка з назвою «{0}» і роллю «{1}».",
449
+ "swap.fromAliasMark": "з аліаса",
450
+ "swap.fromDetect": "Зіставлено як при кліку в дереві: нове джерело саме підписує свої точки, і детектор розпізнає там «{0}».",
451
+ "swap.fromDetectMark": "розпізнано",
452
+ "swap.fromTpl": "Зіставлено так само, як при кліку на пристрій у дереві: до нового джерела підходить шаблон «{0}», і він знає, яка точка належить цьому місцю — разом із формулою.",
453
+ "swap.fromTplMark": "із шаблону",
454
+ "swap.goHigher": "використовуйте рівень вище",
455
+ "swap.gone": "Цього пристрою вже не існує — і саме для цього й призначений цей пристрій.",
456
+ "swap.guessHint": "Рядки, позначені як «припущення», були зіставлені за іменем або посадою — будь ласка, перевірте їх окремо.",
457
+ "swap.guessedByAliasRole": "Припущення за роллю точки аліаса: під новим джерелом рівно одна точка має роль «{0}». Перевірте.",
458
+ "swap.guessedByName": "Як можна здогадатися з назви точки: щось у новому джерелі також називається «{0}». Це може бути далеко від істини — будь ласка, перевірте.",
459
+ "swap.guessedByRole": "Висновок на основі ролі: елемент під новим джерелом має ту саму роль «{0}». Будь ласка, перевірте.",
460
+ "swap.higherLevel": "На рівень вище ({0}) знайдено ціль для {1} з {2} балів, тут лише {3}.",
461
+ "swap.keeps": "Псевдонім зберігає свій ідентифікатор, імена, ролі та формули, історію в базі даних, а також кімнату та функцію. Змінюється лише те, звідки та куди кожна точка зчитує та записує дані.",
462
+ "swap.loadingValues": "Читання нового пристрою …",
463
+ "swap.mapping": "Картографування",
464
+ "swap.mind": "Будьте обережні:",
465
+ "swap.mindHint": "Формули псевдонімів залишаються без змін — якщо нове джерело масштабується інакше, значення згодом будуть неправильними. Формула розміщується у рядку детальної інформації про точку.",
466
+ "swap.noDevice": "Пристрій не знайдено.",
467
+ "swap.noMatch": "не знайдено відповідної точки",
468
+ "swap.noWriteMatch": "не знайдено об’єкта для запису — цей пункт нікуди не запишеться",
469
+ "swap.now": "Обміняти зараз",
470
+ "swap.pickByHand": "… або оберіть точку самі",
471
+ "swap.pickFirst": "Спочатку виберіть нове джерело.",
472
+ "swap.removeIt": "видалити цей пункт під час обміну місцями",
473
+ "swap.same": "Це те саме джерело, що й раніше.",
474
+ "swap.search": "Пошук (за ідентифікатором або назвою) …",
475
+ "swap.suggestionHint": "Підказка з підпису — клік вставить її в поле. Звірте з двома значеннями вище: підпис може бути хибним.",
476
+ "swap.title": "Обміняти джерело",
477
+ "swap.to": "Нове джерело",
478
+ "swap.tplDrop": "Прибрати також запам’ятований шаблон ({0} об’єктів)",
479
+ "swap.tplFormulas": "Формули {0} точок у будь-якому разі замінюються формулами нового пристрою — вони належать джерелу, а не аліасу. Кожен рядок показує, що там буде.",
480
+ "swap.tplGone": "Цього шаблону більше немає.",
481
+ "swap.tplOther": "До нового джерела підходить інший шаблон: «{0}». Його можна застосувати після заміни через вибір шаблону — він принесе власні формули та назви.",
482
+ "swap.tplStale": "Запам’ятований шаблон «{0}» не підходить новому джерелу",
483
+ "swap.unchanged": "без змін",
484
+ "swap.unitChanged": "Одиниця: в аліасі {0} · нове джерело: {1}",
485
+ "swap.unitField": "Одиниця в аліасі",
486
+ "swap.unitHistWarn": "До цієї точки привʼязаний запис. Історія — у старій одиниці; ряд, що на середині змінює множник, полагодити не можна.",
487
+ "swap.unitNoFactor": "Без перерахунку: ці дві одиниці — не відома пара.",
488
+ "swap.unitNone": "немає",
489
+ "swap.unitResult": "Результат: {0} {1}",
490
+ "swap.unitValOld": "Ваш аліас показує зараз: {0} {1}",
491
+ "swap.unknown": "(неможливо визначити)",
492
+ "target.alsoRoom": "Кімнату теж встановити на «{0}»?",
493
+ "target.alsoRoomNew": "Немає кімнати «{0}» — створити та призначити її?",
494
+ "target.clearField": "очистити поле",
495
+ "target.exists": "вже існує",
496
+ "target.folder": "Покладіть під",
497
+ "target.folderHint": "розділяйте підпапки крапкою, наприклад: House.GF.Kitchen",
498
+ "target.folderPlaceholder": "empty = безпосередньо під alias.0",
499
+ "target.moveInstead": "краще перенесіть його …",
500
+ "target.moveInsteadHint": "Перенесіть існуючий псевдонім на новий ідентифікатор, замість того щоб створювати другий поруч із ним.",
501
+ "target.name": "Ім'я",
502
+ "target.openFolder": "відкрити «{0}»",
503
+ "target.twinExists": "У цьому джерелі вже є {0} — воно залишається на своєму місці.",
504
+ "target.yes": "так",
505
+ "tpl.applyTemplate": "взяти значення з шаблону ({0})",
506
+ "tpl.applyTemplateHint": "Встановлює ролі, типи, одиниці виміру, формули та джерела відповідно до шаблону. Підпис залишається без змін — його ви вказали самі. До попереднього перегляду нічого не записується.",
507
+ "tpl.choose": "— вибрати шаблон —",
508
+ "tpl.contains": "{0} містить {1}",
509
+ "tpl.fits": "підходить",
510
+ "tpl.fitsNot": "✕ {0}",
511
+ "tpl.forbiddenThere": "{0} існує, але не повинно",
512
+ "tpl.forced": "примусовий",
513
+ "tpl.forcedHint": "Для цього шаблону виявлення не спрацьовує — обрано вручну.",
514
+ "tpl.identifiedAs": "Ідентифіковано як: {0}",
515
+ "tpl.label": "Шаблон",
516
+ "tpl.manuallyChosen": "відібрані вручну",
517
+ "tpl.missingPoint": "{0} відсутнє",
518
+ "tpl.nameHint": "ім'я збігається з \"{0}\" — не виявляється за допомогою MQTT",
519
+ "tpl.noJson": "{0} не повертає JSON",
520
+ "tpl.noNameHint": "назва ні про що не свідчить — «{0}» є значенням за замовчуванням, і за протоколом MQTT їх неможливо відрізнити",
521
+ "tpl.noOutputs": "результатів не знайдено",
522
+ "tpl.none": "— без шаблону —",
523
+ "tpl.noneDetected": "Шаблон не виявлено",
524
+ "tpl.nor": " ані в ",
525
+ "tpl.output": "Вихідні дані",
526
+ "tpl.outputsFound": "знайдено результатів: {0}",
527
+ "tpl.own": "власний",
528
+ "tpl.possibleIn": "{0} — це команда, яку пристрій розуміє (дані ще не створено)",
529
+ "tpl.presentIn": "{0} присутній",
530
+ "tpl.remembered": "запам'ятався",
531
+ "tpl.rememberedHint": "Цей псевдонім було створено на основі цього шаблону — він залишатиметься доти, доки ви його свідомо не зміните.",
532
+ "tpl.showAllPoints": "Завантажити всі дані пристрою",
533
+ "tpl.showAllPointsHelp": "Виводить пропозицію шаблону та перелічує всі дані, які є у пристрої, включаючи ті, що не згадуються в шаблоні. Звідси ви можете вибрати окремий елемент і додати його до псевдоніма.",
534
+ "tpl.showProposal": "Завантажити проект шаблону",
535
+ "tpl.showProposalHelp": "Повернемося до того, що передбачено в шаблоні для цього пристрою.",
536
+ "tpl.skippedChip": "{0} без джерела",
537
+ "tpl.skippedEmpty": "\"{0}\" отримав би вищий бал, але на цьому пристрої не створює жодного рядка — пропущено",
538
+ "tpl.skippedHead": "{0} опущено через відсутність джерела",
539
+ "tpl.skippedNowhere": "{0}: ні в {1}",
540
+ "tpl.skippedSource": "{0}: {1} відсутнє",
541
+ "tpl.skippedWhy": "{0}: {1}",
542
+ "tpl.whyNoField": "У {0} немає поля {1}",
543
+ "tpl.whyNoJson": "{0} не повертає JSON",
544
+ "tpl.whyNoPoint": "{0} не існує",
545
+ "tpl.whyNone": "Чому не застосовується жоден шаблон",
546
+ "tpl.whyThis": "Чому саме цей шаблон?",
547
+ "tpl.withoutField": "{0} без {1}",
548
+ "tpl.wouldNeed": "насправді відсутнє: {0}",
549
+ "tpls.absolute": "нерухомий об’єкт",
550
+ "tpls.absoluteText": "Він не зберігається в пам’яті пристрою, тому для всіх пристроїв він буде однаковим. Іноді це цілком доречно — наприклад, у випадку загального заданого значення. Цей параметр не враховується при виявленні.",
551
+ "tpls.absoluteTitle": "Один пункт стосується нерухомого об’єкта. ",
552
+ "tpls.andMore": "… та ще {0}, яких тут немає",
553
+ "tpls.beats": "ударів {0}",
554
+ "tpls.buildsNone": "не підходить — жоден рядок не має відповідного джерела",
555
+ "tpls.button": "Зберегти як шаблон …",
556
+ "tpls.channelName": "Канал на кожен вихід",
557
+ "tpls.colDefault": "За замовчуванням",
558
+ "tpls.colInTemplate": "у шаблоні",
559
+ "tpls.colName": "Ім'я",
560
+ "tpls.colPath": "Шлях, відносно пристрою",
561
+ "tpls.colRequired": "має існувати",
562
+ "tpls.content": "Перевірка вмісту",
563
+ "tpls.contentHelp": "Це підвищує точність виявлення — і виключає пристрої, які не надсилають цей блок. Саме це відрізняє «сокет» від «сокета з обліком».",
564
+ "tpls.contentRow": "{0} має містити {1}",
565
+ "tpls.contradiction": "Цей шаблон ні для чого не підійде.",
566
+ "tpls.contradictionText": "Ці пункти вказані одночасно як обов’язкові та як заборонені: {0}. Вилучіть їх з одного з цих двох списків.",
567
+ "tpls.deviceType": "Тип пристрою",
568
+ "tpls.dropOff": "Повністю виключити",
569
+ "tpls.dropOthers": "Інші виходи пропустіть",
570
+ "tpls.droppedCount": "{0} балів не враховано.",
571
+ "tpls.evidence": "{0} підтверджено",
572
+ "tpls.failed": "Збереження не вдалося:",
573
+ "tpls.fallbacks": "+{0} альтернативний варіант",
574
+ "tpls.fitsNot": "{0}× не підходить",
575
+ "tpls.function": "Функція",
576
+ "tpls.head": "Заголовок",
577
+ "tpls.hits": "Знайдено {0} пристроїв, {1} з них виграли",
578
+ "tpls.id": "Ідентифікатор",
579
+ "tpls.idTaken": "Цей ідентифікатор уже належить «{0}» (v{1}). Збереження призведе до його заміни.",
580
+ "tpls.json": "Ось що зберігається",
581
+ "tpls.loadFailed": "власні шаблони не завантажено",
582
+ "tpls.loadFailedHint": "Конфігурація екземпляра не відповіла або повідомила про помилку. Ваші власні шаблони не зникли — їх просто немає в цьому вікні. Поки це повідомлення залишається на екрані, збереження може замінити існуючий шаблон: спочатку перезавантажте сторінку.",
583
+ "tpls.lockBadHint": "Підказка щодо імені не є придатним виразом",
584
+ "tpls.lockIdTaken": "Ідентифікатор уже належить «{0}»",
585
+ "tpls.lockNoId": "Відсутній ідентифікатор",
586
+ "tpls.lockNoRequired": "Жодна точка не позначена як обов’язкова — шаблон не знайде жодного збігу",
587
+ "tpls.lockNoRows": "Не залишилося жодного рядка",
588
+ "tpls.lockedWhy": "Збереження заблоковано:",
589
+ "tpls.losesTo": "програє {0}",
590
+ "tpls.multiple": "Цей пристрій має кілька виходів",
591
+ "tpls.multipleHelp": "{0} у шляхах замінюється на %N% — лише в кінці сегмента, тому ENERGY.Power залишається без змін.",
592
+ "tpls.multipleNoNumber": "Вкажіть, яке число у шляхах є вихідним. Без цього шаблон залишається єдиним.",
593
+ "tpls.multipleOff": "Пристрій із POWER1, POWER2 … перетворюється на папку, у якій для кожного виходу передбачено окремий канал.",
594
+ "tpls.nameDe": "Назва (німецькою мовою)",
595
+ "tpls.nameEn": "Ім'я (англійською)",
596
+ "tpls.nameHint": "Підказка щодо імені",
597
+ "tpls.nameHintBad": "Вираз не є придатним для використання — він розцінюється як «не знайдено збігу».",
598
+ "tpls.nameHintHelp": "Використовується лише для розрішення рівнозначних варіантів шаблонів — наприклад, «лампа» проти «патрон». Слова слід розділяти символом |. Цей елемент називається «{0}».",
599
+ "tpls.needsRow": "не підходить — {0} нічого не знаходить",
600
+ "tpls.needsRowHint": "Обов’язковий рядок шаблону не знаходить свого джерела на цьому пристрої — зазвичай це поле, якого немає у повідомленні JSON на цьому пристрої. У цьому випадку шаблон навіть не бере участі в порівнянні; його місце займає наступний за якістю варіант.",
601
+ "tpls.noFunction": "— немає —",
602
+ "tpls.noHits": "Наразі не знайдено відповідних пристроїв. Перевірте необхідні параметри.",
603
+ "tpls.noInstance": "Екземпляр {0} не знайдено.",
604
+ "tpls.noRequired": "Жоден пункт не відмічений як обов’язковий — шаблон не відповідатиме жодному варіанту.",
605
+ "tpls.noType": "— немає —",
606
+ "tpls.onlyOne": "єдиний, що підходить",
607
+ "tpls.otherOutputs": "{0} балів припадає на інші результати ({1}).",
608
+ "tpls.otherOutputsText": "Шаблон для декількох виходів завжди описує лише один із них — решта виводів випливають із нього. Скасуйте вибір сторонніх точок на пристрої, інакше шаблон підійде лише для цього одного пристрою.",
609
+ "tpls.pickDeviceFirst": "спочатку виберіть пристрій",
610
+ "tpls.rank": "Ранг",
611
+ "tpls.rowBuilt": "1 рядок",
612
+ "tpls.rowsBuilt": "{0} рядків",
613
+ "tpls.saveAsNew": "Зберегти як новий шаблон",
614
+ "tpls.saveAsNewHint": "існуючий залишається без змін",
615
+ "tpls.saveNew": "Зберегти шаблон",
616
+ "tpls.saveUpdate": "Оновити шаблон",
617
+ "tpls.saved": "Шаблон «{0}» збережено, версія {1}.",
618
+ "tpls.savedWhere": "Він зберігається в конфігурації екземпляра ({0}) і, отже, входить до складу резервної копії.",
619
+ "tpls.saving": "збереження …",
620
+ "tpls.shadowsPackage": "тоді буде дублювати той, що постачається",
621
+ "tpls.someOff": "Знято з вибору на пристрої: {0}. Ці пункти за замовчуванням вимкнені — на наступному пристрої вони будуть відображатися у списку, але не будуть позначені галочкою.",
622
+ "tpls.states": "Дані",
623
+ "tpls.statesCount": "{0} з них",
624
+ "tpls.statesHelp": "Ліва галочка вказує, чи потрапляє ця точка до шаблону взагалі. «За замовчуванням» — це стан, у якому вона буде запропонована на наступному пристрої; він визначається вашим вибором на цьому пристрої. Права галочка вказує, чи повинна ця точка обов’язково бути присутньою, щоб шаблон взагалі збігався.",
625
+ "tpls.takesOver": "{0} змінити шаблон",
626
+ "tpls.title": "Зберегти як шаблон — {0}",
627
+ "tpls.tryout": "Пробне заняття",
628
+ "tpls.undrop": "скасувати",
629
+ "tpls.updateIt": "Оновлення шаблону «{0}» — він стає версією {1}",
630
+ "tpls.whatToDo": "Що має статися",
631
+ "tpls.whichNumber": "Номер цього випуску",
632
+ "tpls.wissen": "+ {0} додаткових станів як інформація про роль — використовується у вікні «Усі дані пристрою»",
633
+ "tree.aliases": "Редагувати псевдонім",
634
+ "tree.branchAdd": "Додати цю гілку до вибору",
635
+ "tree.branchForeign": "Ці гілки не в одному екземплярі. Пристрій живе в одному екземплярі — беріть гілки зі спільним батьківським вузлом.",
636
+ "tree.branchHint": "Деякі адаптери розподіляють пристрій по сусідніх гілках — Matter кладе вимикач в одну, а вимірювання в іншу. Кілька гілок разом утворюють один пристрій. Те саме, що Ctrl-клік.",
637
+ "tree.branchRemove": "Прибрати цю гілку з вибору",
638
+ "tree.collapseAll": "згорнути все",
639
+ "tree.emptyNode": "відсутні дані — вузол існує в базі даних, але не містить даних",
640
+ "tree.expandAll": "розгорнути все",
641
+ "tree.exportMock": "Вивантажити як макет пристрою",
642
+ "tree.exportMockHint": "Записує все нижче {0} у файл: об’єкти та поточні значення, без native",
643
+ "tree.filter": "фільтр …",
644
+ "tree.filterAria": "Фільтрувати об’єкти",
645
+ "tree.importMock": "Завантажити макет пристрою …",
646
+ "tree.importMockHint": "Завжди потрапляє під {0} — ніколи за початковим шляхом",
647
+ "tree.loading": "завантаження об’єктів …",
648
+ "tree.looksLikeDevice": "виглядає як окремий пристрій",
649
+ "tree.noObjectHint": "це не справжня папка",
650
+ "tree.nothingFound": "нічого не знайдено",
651
+ "tree.sourceGone": "{0} посилання цього псевдоніма ведуть на джерело, якого не існує. js-контролер запам’ятовує це назавжди — допомогти може лише видалення та повторне створення.",
652
+ "tree.sources": "Створити псевдонім",
653
+ "tree.templates": "Шаблони",
654
+ "tv.addFallback": "Додати резервне джерело",
655
+ "tv.addState": "Додати точку даних",
656
+ "tv.badContent": "«erkennung.inhalt» має бути об’єктом.",
657
+ "tv.badList": "«{0}» має бути списком точок.",
658
+ "tv.badName": "Ім'я має бути рядком або об'єктом мови.",
659
+ "tv.badNameHint": "Підказка щодо імені не є придатним для використання виразом.",
660
+ "tv.badNoId": "Відсутній ідентифікатор.",
661
+ "tv.badNoStates": "Відсутні дані (zustaende).",
662
+ "tv.badNotObject": "Очікується, що шаблон буде представлений у вигляді одного об’єкта JSON.",
663
+ "tv.badRecog": "«erkennung» має бути об’єктом.",
664
+ "tv.badState": "{0} точок даних без імені або без шляху для читання чи запису.",
665
+ "tv.badType": "Цей детектор не розпізнає тип пристрою «{0}».",
666
+ "tv.clickRow": "Клацніть на рядок, щоб відредагувати значення",
667
+ "tv.clickRowRead": "Клацніть на рядок, щоб переглянути його — відправлені шаблони не можна змінювати.",
668
+ "tv.delete": "Видалити",
669
+ "tv.deleteHint": "Якщо він замінює шаблон, що вже було відправлено, той шаблон згодом знову з’являється.",
670
+ "tv.deleteSure": "Остаточно видалити",
671
+ "tv.detection": "Виявлення",
672
+ "tv.discard": "Відмінити зміни",
673
+ "tv.duplicate": "Дублікат",
674
+ "tv.export": "Експортувати у файл",
675
+ "tv.fallback": "Резервні джерела",
676
+ "tv.fallbackHint": "Якщо робоча область не може знайти зазначену вище точку даних — або поле, що міститься в ній, — вона перевіряє ці варіанти по черзі. Використовується перший варіант, у якому обидва елементи дійсно існують.",
677
+ "tv.flagsHelp": "«За замовчуванням» = на наступному пристрої вже встановлено галочку. «Повинно бути» = без цього пункту шаблон взагалі не збігається — він переноситься до списку обов’язкових елементів вище. «Фіксований об’єкт» = шлях до читання не є відносним до пристрою, а являє собою повний ідентифікатор об’єкта, однаковий для всіх пристроїв.",
678
+ "tv.forbidden": "Не повинно існувати",
679
+ "tv.forbiddenHelp": "Ці точки НЕ повинні бути присутніми на пристрої, інакше шаблон не збігається. Саме це відрізняє розетку з одним гніздом від розетки з кількома гніздами. Кілька точок слід розділяти комами. Відсутні точки не вважаються доказом.",
680
+ "tv.hide": "приховати",
681
+ "tv.importAndSave": "Імпортувати та зберегти",
682
+ "tv.importBad": "Цей файл не є шаблоном.",
683
+ "tv.importFile": "Імпортувати …",
684
+ "tv.importNew": "Збереження створює файл «{0}».",
685
+ "tv.importReplaces": "Збереження замінює ваш шаблон «{0}» — версія {1} стає версією {2}.",
686
+ "tv.importShadows": "Збереження тіней у шаблоні «{0}», що входить до комплекту поставки.",
687
+ "tv.importTitle": "Ще нічого не збережено.",
688
+ "tv.imported": "імпортований",
689
+ "tv.inTemplate": "у шаблоні",
690
+ "tv.json": "Шаблон у форматі JSON",
691
+ "tv.makeOwn": "Створити копію для редагування",
692
+ "tv.multi": "кілька виходів, по одному каналу {0} на кожен вихід",
693
+ "tv.nameHintShort": "Використовується лише для розрішення рівнозначних варіантів шаблонів. Слова слід розділяти символом |.",
694
+ "tv.package": "відправлено",
695
+ "tv.packageText": "Його неможливо редагувати, тому він завжди залишається в тому стані, в якому був наданий. Функція «Дублювати» створює вашу власну копію, яка відтворює оригінал.",
696
+ "tv.packageTitle": "Шаблон відправлено.",
697
+ "tv.paneHead": "Шаблон та те, що він виявляє",
698
+ "tv.rank": "рейтинг {0}",
699
+ "tv.rankOwn": "Рейтинг визначається лише серед ваших власних шаблонів. У порівнянні з готовим шаблоном ваш завжди виграє — для цього не потрібен високий рейтинг.",
700
+ "tv.rankPackage": "Рейтинг враховується лише серед відправлених шаблонів, і навіть у цьому випадку — лише тоді, коли кількість доказів і підказка щодо імені збігаються.",
701
+ "tv.readOnlyRow": "Шаблон, що надійшов — скористайтеся опцією «Власна копія для редагування», щоб внести зміни.",
702
+ "tv.removeFallback": "видалити",
703
+ "tv.removeState": "Вилучити цей пункт",
704
+ "tv.required2": "Повинно існувати",
705
+ "tv.requiredCount": "{0} необхідних балів",
706
+ "tv.requiredHelp": "Ці дані повинні бути присутніми на пристрої, інакше шаблон не збігатиметься. Декілька елементів слід розділяти комами. Кожен обов’язковий елемент робить шаблон точнішим, але водночас і менш гнучким.",
707
+ "tv.save": "Зберегти",
708
+ "tv.show": "показати",
709
+ "tv.unsaved": "не збережено",
710
+ "use.again": "прочитати ще раз",
711
+ "use.aliasHead": "Псевдонім",
712
+ "use.custom": "Ведення журналу, «розумні» імена",
713
+ "use.enums": "Переліки",
714
+ "use.files": "Файли",
715
+ "use.head": "Цитується в",
716
+ "use.limits": "Пошук здійснюється у вигляді простого тексту. Пошук проводиться лише у папках екземплярів (vis.0, vis-2.0, web.0 …) — власні веб-інтерфейси адаптерів не враховуються, інакше робоча середа знайшла б їхні приклади та власні вихідні файли. Значення станів не враховуються, а під час текстового пошуку не виявляються ідентифікатори, сформовані під час виконання.",
717
+ "use.look": "пошукай це",
718
+ "use.lookHint": "Пошук ідентифікатора псевдоніма та його джерела — у скриптах, переліках, записах самого елемента, у кожному завантаженому об’єкті та у файлах папок екземпляра. Виконується лише при натисканні, оскільки для цього все зчитується лише один раз.",
719
+ "use.none": "—",
720
+ "use.objects": "Об’єкти",
721
+ "use.otherAliases": "інші псевдоніми, що містяться в ньому",
722
+ "use.scripts": "Сценарії",
723
+ "use.searching": "пошук…",
724
+ "use.sourceHead": "Джерело",
725
+ "use.sourceHint": "Те, що джерело досі згадується, не є помилкою: скрипт, який його використовує, має саме там знаходитися. Чи слід перемістити це місце до псевдоніма, можна вирішити лише, подивившись на нього.",
726
+ "write.aliasNowAt": "Псевдонім тепер знаходиться за адресою {0}.",
727
+ "write.cannotWrite": "Не можна писати так:",
728
+ "write.changes": "зміни",
729
+ "write.close": "Закрити",
730
+ "write.createAlias": "Створити псевдонім …",
731
+ "write.createAll": "Створити всі {0} …",
732
+ "write.createAsOne": "створити як один пристрій …",
733
+ "write.createNamed": "Створити {0} …",
734
+ "write.createPerChannel": "по одній підпапці на канал, їх {0} …",
735
+ "write.createSendPoints": "Створити {0} відсутніх точок даних про відправлення",
736
+ "write.deselected": "знято з вибору",
737
+ "write.diffNew": "після",
738
+ "write.diffOld": "до того, як",
739
+ "write.diffRaw": "показати оригінальне замовлення",
740
+ "write.diffSorted": "поля сортування",
741
+ "write.diffSortedHint": "Порядок полів усередині об’єкта не має значення — той самий адміністратор записує об’єкти-псевдоніми у чотирьох різних порядках. Після сортування залишаються лише реальні відмінності; початковий порядок показує, як об’єкт насправді зберігається.",
742
+ "write.done": "Записано {0} об’єктів.",
743
+ "write.doneWithRemoved": "Записано {0} об’єктів, видалено {1}.",
744
+ "write.dryOutputs": " — {0} результатів",
745
+ "write.dryTitleCreate": "Створити псевдонім — ось що з’явиться",
746
+ "write.dryTitleDoneCreate": "Псевдонім створено",
747
+ "write.dryTitleDoneUpdate": "Оновлено псевдонім",
748
+ "write.dryTitleFailed": "Не все пройшло",
749
+ "write.dryTitleUpdate": "Оновити псевдонім — ось що з’явиться",
750
+ "write.duplicateName": "{0}: ім'я з'являється двічі.",
751
+ "write.enumsUnknown": "Room та function не будуть записані: не вдалося завантажити переліки. Сам псевдонім створюється, як показано. Без надійного стану існуючий перелік буде замінено новим, що міститиме лише цей єдиний елемент.",
752
+ "write.failed": "{0} операцій завершилися невдало:",
753
+ "write.new": "новий",
754
+ "write.noName": "Один пункт не має назви.",
755
+ "write.noSourceChosen": "{0}: джерело не обрано.",
756
+ "write.noneSelected": "Не вибрано жодного елемента даних.",
757
+ "write.notInProposal": "не зазначено в пропозиції",
758
+ "write.notUnderAlias": "{0} не знаходиться нижче псевдоніма. — тут нічого не буде написано",
759
+ "write.now": "Створити зараз",
760
+ "write.nowUpdate": "Оновити зараз",
761
+ "write.pickDeviceFirst": "Спочатку виберіть пристрій",
762
+ "write.remove": "Видалити",
763
+ "write.removeCount": "дані: {0}",
764
+ "write.removeHint": "існують у псевдонімі, але більше не відображаються у чернетці",
765
+ "write.retry": "Спробуйте ще раз",
766
+ "write.rowSource": "джерело",
767
+ "write.rowTarget": "ціль",
768
+ "write.sourceMissing": "{0}: джерело {1} не існує.",
769
+ "write.summaryTail": "{0} новий, {1} буде перезаписано",
770
+ "write.summaryTail3": "{0} нове, {1} змінено, {2} без змін",
771
+ "write.unchanged": "без змін",
772
+ "write.updateAlias": "Оновити псевдонім …",
773
+ "write.updateAsOne": "оновити як один пристрій …",
774
+ "write.updateNamed": "Оновлення {0} …",
775
+ "write.willKeep": "збережено: {0}",
776
+ "write.willRemove": "видалено: {0}",
777
+ "write.writeSourceMissing": "{0}: точка даних відправлення {1} ще не існує",
778
+ "write.writing": "пишу …"
14
779
  }