iobroker.alias-workbench 0.9.9 → 0.9.11

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.
@@ -37,6 +37,11 @@
37
37
  "check.sendUnknown": "Whether {0} may publish is not stated in the object — the topic sits in `native` only. Normal for ioBroker.mqtt and sonoff.",
38
38
  "check.sourceExists": "source exists",
39
39
  "check.sourceHasValue": "source has a value",
40
+ "check.targetCan": "target can do what is asked",
41
+ "check.targetCanFine": "all fine",
42
+ "check.targetNoRead": "{0}: the read source reports nothing",
43
+ "check.targetNoWrite": "{0}: the target is not writable",
44
+ "check.targetVoidFormula": "{0}: write formula runs into nothing, the target is {1}",
40
45
  "check.title": "Checks — always running, never touching anything",
41
46
  "del.allOutputs": "Remove all {0} outputs of this device",
42
47
  "del.allOutputsHint": "Otherwise the rest stays behind, orphaned: {0}",
@@ -49,6 +54,9 @@
49
54
  "del.hint": "The alias and every datapoint below it is deleted. The sources stay untouched — only the shell goes, not the device. This cannot be undone.",
50
55
  "del.now": "Remove for good",
51
56
  "del.objects": "What disappears",
57
+ "del.scriptsHead": "{0} scripts mention this ID:",
58
+ "del.scriptsHead1": "One script mentions this ID:",
59
+ "del.scriptsHint": "Only the scripts of the javascript adapter were searched, as plain text. vis views, scenes and the settings of other adapters are not covered.",
52
60
  "del.title": "Remove alias",
53
61
  "detail.aliasEmpty": "The alias leaves this field empty.",
54
62
  "detail.aliasHas": "The alias has: ",
@@ -75,6 +83,7 @@
75
83
  "detail.noSource": "— no source known —",
76
84
  "detail.noValue": "no value",
77
85
  "detail.noWrite": "— do not write —",
86
+ "detail.notWritable": "not writable",
78
87
  "detail.objectId": "Object ID",
79
88
  "detail.otherObject": "… enter another object",
80
89
  "detail.ownFormula": "own formula",
@@ -83,6 +92,7 @@
83
92
  "detail.rawValue": "Raw value",
84
93
  "detail.readsFrom": "reads from",
85
94
  "detail.removePoint": "Remove this point",
95
+ "detail.reportsNothing": "reports nothing",
86
96
  "detail.role": "Role",
87
97
  "detail.sameAsRead": "— same as read —",
88
98
  "detail.separateHint": "separate — the switch shows the state, not the command",
@@ -90,6 +100,10 @@
90
100
  "detail.stateSays": "state says {0}",
91
101
  "detail.takeFromAlias": "Take this one value back from the stored alias",
92
102
  "detail.takeOne": "Take this one value from the template",
103
+ "detail.targetNoRead": "The read source carries read: false — it never reports a value. For a button press that is correct: it has no state. Then no read source belongs here at all.",
104
+ "detail.targetNoWrite": "The target point carries write: false — its adapter passes nothing on to the device. ioBroker stores the value anyway, but nothing will happen.",
105
+ "detail.targetTypeHint": "The target point is of type {0}. It decides what survives of the write formula: mixed and string take text, boolean and number convert it back.",
106
+ "detail.targetTypeVoid": "The target is {0} and takes no text. The write formula does produce text — the js-controller converts it back to {0} on write, so the formula has no effect. Switching still works.",
93
107
  "detail.tplWants": "The template wants: ",
94
108
  "detail.tplWantsEmpty": "The template leaves this field empty.",
95
109
  "detail.type": "Type",
@@ -130,6 +144,7 @@
130
144
  "enums.members": "{0} in it",
131
145
  "enums.newSuffix": "new",
132
146
  "enums.noMatch": "nothing found for \"{0}\"",
147
+ "enums.nowEmpty": "is empty afterwards and will be removed",
133
148
  "enums.placeholder": "empty = no assignment",
134
149
  "enums.removeFrom": "is taken out",
135
150
  "enums.room": "Room",
@@ -151,7 +166,12 @@
151
166
  "folder.nothingHere": "There is nothing here that could become a device.",
152
167
  "folder.withAlias": "{0} with alias",
153
168
  "folder.withoutTemplate": "{0} without template",
169
+ "guess.alsoRow": "with suggestions: fits",
154
170
  "guess.bar": "{0} slots guessed — please check",
171
+ "guess.better": "{0} might fit better",
172
+ "guess.betterGoHint": "Switches to {0} and presses “{1}” right away. Every assignment then shows as “guessed” and needs checking one by one; discarding stays possible. Nothing changes on the device — only roles in the draft are set.",
173
+ "guess.betterHint": "{0} would reach {1} filled slots, {2} only {3} — both numbers after suggesting. Switch to it, then press “Suggest free slots”; every assignment needs checking.",
174
+ "guess.betterHintNone": "{0} would reach {1} filled slots after suggesting; {2} does not fit even then. Switch to it, then press “Suggest free slots”; every assignment needs checking.",
155
175
  "guess.button": "Suggest free slots",
156
176
  "guess.drop": "discard",
157
177
  "guess.hint": "Fills the pattern’s free slots from the remaining datapoints — an attempt, not knowledge. Guessed by name, value list, unit and type; every assignment is marked “guessed” and can be discarded one by one.",
@@ -159,10 +179,14 @@
159
179
  "guess.keepAll": "keep all",
160
180
  "guess.locked": "{0}× guessed, still undecided — keep (✓) or discard (✕) first, then creating and saving unlock.",
161
181
  "guess.mark": "guessed",
162
- "guess.none": "Nothing to suggest: either every slot is taken, or no remaining datapoint fits a free slot.",
163
- "guess.tplAsk": "This device is identified as “{0}”, so the assignment is already settled. The suggestion guesses additional slots from the remaining data points — an attempt, not knowledge, and every match would need checking. Meant for special cases, e.g. when the device can do more than the template covers.",
182
+ "guess.noneFit": "{0} stays free. No remaining datapoint fits — guessing goes by name, value list, unit and type, and nothing cleared the threshold.",
183
+ "guess.noneFull": "Every slot of the pattern is taken — there is nothing left to suggest.",
184
+ "guess.noneHand": "{0} rows were decided by hand and are left untouched.",
185
+ "guess.noneUsed": "{0} stays free. Every remaining datapoint already serves as a read or write source in a filled row.",
186
+ "guess.slotsMore": "{0} and {1} more",
187
+ "guess.tplAsk": "This device is identified as “{0}”, so the assignment is already settled. The suggestion fills additional slots from the remaining data points — an attempt, not knowledge, and every match would need checking. Meant for special cases, e.g. when the device can do more than the template covers.",
164
188
  "guess.tplGo": "Suggest anyway",
165
- "guess.tplHint": "The template already covers this device — guessing here is for special cases only.",
189
+ "guess.tplHint": "The template already covers this device — suggesting here is for special cases only.",
166
190
  "guess.tplTitle": "Suggest free slots despite a template?",
167
191
  "guess.undo": "Discard suggestions",
168
192
  "help.aliases": "Pick an existing alias on the left. Remove points, change roles, sources and formulas — or move, rename and delete it.",
@@ -179,6 +203,7 @@
179
203
  "list.addByHand": "Add datapoint by hand",
180
204
  "list.aliasDiffers": "differs from the stored alias",
181
205
  "list.all": "all",
206
+ "list.buttonOnly": "write only",
182
207
  "list.byHand": "by hand",
183
208
  "list.changed": "changed",
184
209
  "list.colOn": "on",
@@ -198,6 +223,7 @@
198
223
  "list.reset": "reset",
199
224
  "list.resetHint": "Discards every change made here — checkboxes, roles, formulas, sources — and shows the state as stored again.",
200
225
  "list.sendPointMissing": "send datapoint not created yet",
226
+ "list.sourceGone": "source does not exist",
201
227
  "list.sourceHint": "This point reads from {0}.",
202
228
  "list.sourceMissing": "source missing",
203
229
  "list.tpl": "template",
@@ -288,6 +314,7 @@
288
314
  "pattern.manualInstead": "by hand instead of {0}",
289
315
  "pattern.missing": "{0} missing",
290
316
  "pattern.noMatch": "no pattern matches \"{0}\"",
317
+ "pattern.noPlaceBecauseType": "The {0} pattern does not apply right now: {1} requires {2}, but {3} is set. That is why no row has a slot.",
291
318
  "pattern.noPlaceLegend": "Rows shaded like this have no slot in the {0} pattern",
292
319
  "pattern.noPlaceLong": "no slot in the {0} pattern — the point is still created and fully usable, only Alexa and friends count it separately",
293
320
  "pattern.notDetected": "not detected",
@@ -311,6 +338,8 @@
311
338
  "result.sourceCount": "{0} sources",
312
339
  "result.sourceCountHint": "The points of this alias read from more than one node. \"to the source\" leads to the one most of them come from; a click shows all of them.",
313
340
  "result.sourceGone": "The source {0} no longer exists.",
341
+ "result.sourceGone1": "1 point points nowhere",
342
+ "result.sourceGoneN": "{0} points point nowhere",
314
343
  "result.states": "{0} states",
315
344
  "result.statesDirect": "{0} states ({1} directly)",
316
345
  "result.toAlias": "to the alias",
@@ -326,14 +355,19 @@
326
355
  "roles.slot": "slot {0} in the {1} pattern",
327
356
  "roles.slotFree": "free",
328
357
  "roles.slotTaken": "taken by {0}",
358
+ "swap.blocked": "Decide first — these points cannot come along: {0}. Either remove them during the swap or leave the swap be; a point that is meant to write needs a write target.",
329
359
  "swap.button": "Swap source …",
330
360
  "swap.diffRange": "range {0} → {1}",
331
361
  "swap.diffType": "type {0} → {1}",
332
362
  "swap.diffUnit": "unit {0} → {1}",
333
363
  "swap.done": "Swapped. The alias now reads from {0}.",
334
364
  "swap.from": "Currently reads from:",
365
+ "swap.goHigher": "use the level above",
335
366
  "swap.gone": "This device no longer exists — which is exactly what this is for.",
336
367
  "swap.guessHint": "Rows marked “guessed” were matched by name or role — please check those individually.",
368
+ "swap.guessedByName": "Guessed from the point name: something under the new source is also called \"{0}\". That can be far off — please check.",
369
+ "swap.guessedByRole": "Guessed from the role: a point under the new source carries the same role \"{0}\". Please check.",
370
+ "swap.higherLevel": "One level up ({0}) finds a target for {1} of {2} points, here only {3}.",
337
371
  "swap.keeps": "The alias keeps its id, names, roles and formulas, its history in the database and its room and function. Only where each point reads from and writes to changes.",
338
372
  "swap.mapping": "Mapping",
339
373
  "swap.mind": "Watch out:",
@@ -393,6 +427,7 @@
393
427
  "tpl.showAllPointsHelp": "Leaves the template proposal and lists every datapoint the device has, including those no template mentions. From here you can pull a single one into the alias.",
394
428
  "tpl.showProposal": "show proposal",
395
429
  "tpl.showProposalHelp": "Back to what the template proposes for this device.",
430
+ "tpl.skippedEmpty": "\"{0}\" would score higher but builds not a single row on this device — skipped",
396
431
  "tpl.skippedHead": "Left out because the source is missing: {0}",
397
432
  "tpl.skippedNowhere": "{0}: neither in {1}",
398
433
  "tpl.skippedSource": "{0}: {1} missing",
@@ -406,6 +441,7 @@
406
441
  "tpls.absoluteTitle": "One point refers to a fixed object. ",
407
442
  "tpls.andMore": "… and {0} more, not listed here",
408
443
  "tpls.beats": "beats {0}",
444
+ "tpls.buildsNone": "does not fit — no row finds its source",
409
445
  "tpls.button": "Save as template …",
410
446
  "tpls.channelName": "Channel per output",
411
447
  "tpls.colDefault": "Default",
@@ -424,6 +460,7 @@
424
460
  "tpls.droppedCount": "{0} points left out.",
425
461
  "tpls.evidence": "{0} verified",
426
462
  "tpls.failed": "Saving failed:",
463
+ "tpls.fitsNot": "{0}× does not fit",
427
464
  "tpls.function": "Function",
428
465
  "tpls.head": "Header",
429
466
  "tpls.hits": "{0} devices matched, {1} of them won",
@@ -432,6 +469,12 @@
432
469
  "tpls.json": "This is what gets stored",
433
470
  "tpls.loadFailed": "own templates not loaded",
434
471
  "tpls.loadFailedHint": "The instance configuration did not answer or reported an error. Your own templates are not gone — they are only missing from this view. While this notice stands, saving may overwrite an existing template: reload first.",
472
+ "tpls.lockBadHint": "The name hint is not a usable expression",
473
+ "tpls.lockIdTaken": "The id already belongs to \"{0}\"",
474
+ "tpls.lockNoId": "The id is missing",
475
+ "tpls.lockNoRequired": "No point is ticked as required — the template would match nothing",
476
+ "tpls.lockNoRows": "No row is left",
477
+ "tpls.lockedWhy": "Saving is locked:",
435
478
  "tpls.losesTo": "loses to {0}",
436
479
  "tpls.multiple": "This device has several outputs",
437
480
  "tpls.multipleHelp": "The {0} in the paths is replaced by %N% — only at the end of a segment, so ENERGY.Power stays intact.",
@@ -442,6 +485,8 @@
442
485
  "tpls.nameHint": "Name hint",
443
486
  "tpls.nameHintBad": "Not a usable expression — it counts as “no match”.",
444
487
  "tpls.nameHintHelp": "Only breaks ties between templates that fit equally well — light versus socket, for instance. Separate words with |. This device is called \"{0}\".",
488
+ "tpls.needsRow": "does not fit — {0} finds nothing",
489
+ "tpls.needsRowHint": "A mandatory row of the template does not find its source on this device — usually a field that does not exist in the JSON message there. The template does not even enter the race here; the next best one takes the place.",
445
490
  "tpls.noFunction": "— none —",
446
491
  "tpls.noHits": "Matches no device right now. Check the required points.",
447
492
  "tpls.noInstance": "Instance {0} not found.",
@@ -452,6 +497,8 @@
452
497
  "tpls.otherOutputsText": "A template for several outputs always describes just one — the rest are derived from it. Deselect the foreign points on the device, otherwise the template will only ever fit this one device.",
453
498
  "tpls.pickDeviceFirst": "pick a device first",
454
499
  "tpls.rank": "Rank",
500
+ "tpls.rowBuilt": "1 row",
501
+ "tpls.rowsBuilt": "{0} rows",
455
502
  "tpls.saveAsNew": "Save as a new template",
456
503
  "tpls.saveAsNewHint": "the existing one stays as it is",
457
504
  "tpls.saveNew": "Save template",
@@ -482,6 +529,7 @@
482
529
  "tree.looksLikeDevice": "looks like a single device",
483
530
  "tree.noObjectHint": "no object — derived from the ID only",
484
531
  "tree.nothingFound": "nothing found",
532
+ "tree.sourceGone": "{0} point(s) of this alias refer to a source that does not exist. The js-controller remembers this permanently — only deleting and recreating helps.",
485
533
  "tree.sources": "Create alias",
486
534
  "tree.templates": "Templates",
487
535
  "tv.addFallback": "Add fallback source",
@@ -538,6 +586,22 @@
538
586
  "tv.save": "Save",
539
587
  "tv.show": "show",
540
588
  "tv.unsaved": "not saved",
589
+ "use.again": "read again",
590
+ "use.aliasHead": "The alias",
591
+ "use.custom": "Logging, smart names",
592
+ "use.enums": "Enumerations",
593
+ "use.files": "Files",
594
+ "use.head": "Referenced in",
595
+ "use.limits": "The search is plain text. Files only in instance folders (vis.0, vis-2.0, web.0 …) — the adapters' own web interfaces stay out, otherwise the workbench would find their examples and its own source files. State values are not searched, and no text search finds IDs assembled at runtime.",
596
+ "use.look": "look it up",
597
+ "use.lookHint": "Searches for the ID of the alias and of its source — in the scripts, the enumerations, the entries on the point itself, in every loaded object and in the files of the instance folders. Done on click only, because everything is read once for it.",
598
+ "use.none": "—",
599
+ "use.objects": "Objects",
600
+ "use.otherAliases": "further aliases on it",
601
+ "use.scripts": "Scripts",
602
+ "use.searching": "searching …",
603
+ "use.sourceHead": "The source",
604
+ "use.sourceHint": "A source that is still mentioned is not a fault: a script that feeds it belongs exactly there. Whether a place should move to the alias is only decided by looking at it.",
541
605
  "write.aliasNowAt": "The alias is now at {0}.",
542
606
  "write.cannotWrite": "Cannot be written like this:",
543
607
  "write.changes": "changes",
@@ -113,7 +113,8 @@
113
113
  "einheit": "dBm",
114
114
  "lesen": "tele.STATE",
115
115
  "feld": "Wifi.Signal",
116
- "optional": true
116
+ "optional": true,
117
+ "vorgabeAus": true
117
118
  },
118
119
  {
119
120
  "name": "UPTIME",
@@ -145,7 +145,8 @@
145
145
  "einheit": "dBm",
146
146
  "lesen": "tele.STATE",
147
147
  "feld": "Wifi.Signal",
148
- "optional": true
148
+ "optional": true,
149
+ "vorgabeAus": true
149
150
  },
150
151
  {
151
152
  "name": "UPTIME",
@@ -85,7 +85,8 @@
85
85
  "einheit": "dBm",
86
86
  "lesen": "tele.STATE",
87
87
  "feld": "Wifi.Signal",
88
- "optional": true
88
+ "optional": true,
89
+ "vorgabeAus": true
89
90
  },
90
91
  {
91
92
  "name": "UPTIME",
@@ -118,7 +118,8 @@
118
118
  "einheit": "dBm",
119
119
  "lesen": "tele.STATE",
120
120
  "feld": "Wifi.Signal",
121
- "optional": true
121
+ "optional": true,
122
+ "vorgabeAus": true
122
123
  },
123
124
  {
124
125
  "name": "UPTIME",
@@ -147,7 +147,8 @@
147
147
  "einheit": "dBm",
148
148
  "lesen": "tele.STATE",
149
149
  "feld": "Wifi.Signal",
150
- "optional": true
150
+ "optional": true,
151
+ "vorgabeAus": true
151
152
  },
152
153
  {
153
154
  "name": "UPTIME",