rework of DE translation (#2806)

* started rework of translation to DE, added translation rules and dictionary

* reworks DE translation of JSONata /editor-client/locales/de/jsonata.json

* rework DE translation of editor-client

* moved /editor-client/locales/de/README.md to Wiki https://github.com/node-red/node-red/wiki/Design:-i18n-de

* Update README.md

* Update README.md

* Create README.md

* Create README.md

* fixed #2: "Sie müssen ..., um ... zu können"

* fixed #3

* fixed #4 and removed unnecessary spaces

* fixed #5

* fixed #6, added missing dots, removed unnecessary spaces

* fixed #7, #8, #9

* fixed #10, #11, #12, #13, #14, #15

* fixed #17, #18, 19

* fixed #19

* moved /editor-client/locales/de/dictionary.csv to https://github.com/heikokue/node-red-designs/blob/i18n-de/designs/i18n-de/dictionary.csv

* reworked DE translation of runtime

* fine-tuned DE translation of editor-client

* reworked DE translation of common nodes, fine-tuned editor-client

* reworked DE translation of all nodes, fine-tuned editor-client, intotips, jsonata & runtime

* small i18n fixes
This commit is contained in:
heikokue
2021-03-12 14:07:12 +01:00
committed by GitHub
parent 5bbd3d6273
commit 827f8d4d51
49 changed files with 3432 additions and 2882 deletions

View File

@@ -15,41 +15,47 @@
-->
<script type="text/html" data-help-name="function">
<p> Ein JavaScript-Funktionsblock, der für die Nachrichten ausgeführt werden soll, die vom Node empfangen werden. </p>
<p> Die Nachrichten werden als JavaScript-Objekt mit dem Namen <code>msg</code> übergeben. </p>
<p> Er erwartet eine Eigenschaft <code> msg.payload </code> , die den Hauptteil der Nachricht enthält. </p>
<p> Die Funktion wird erwartet, dass ein Nachrichtenobjekt (oder mehrere Nachrichtenobjekte) zurückgegeben werden, kann aber
auch nichts zurückzugeben, um einen Flow zu stoppen. </p>
<h3> Details </h3>
<p> Siehe <a target="_blank" href="http://nodered.org/docs/writing-functions.html"> Onlinedokumentation </a> für weitere Informationen
zum Schreiben von Funktionen. </p>
<h4> Nachrichten senden </h4>
<p> Die Funktion kann die Nachrichten zurückgeben, die sie an die nächsten Node inm Flow weitergeben möchte
oder kann <code>node.send (msg)</code> aufrufen. </p>
<p> Es kann Folgendes zurückgeben/senden: </p>
<ul>
<li> Ein einzelnes Nachrichtenobjekt-übergeben an Node, die mit der ersten Ausgabe verbunden sind </li>
<li> ein Array von Nachrichtenobjekten, die an Nodes übergeben werden, die mit den entsprechenden Ausgaben verbunden sind </li>
</ul>
<p> Wenn ein Element des Arrays selbst ein Array von Nachrichten ist, werden mehrere Nachrichten an die entsprechende Ausgabe gesendet. </p>
<p> Wenn null zurückgegeben wird, entweder durch sich selbst oder als Element des Arrays, wird die Nachricht nicht weitergegeben. </p>
<h4> Protokollierung und Fehlerbehandlung </h4>
<p>Um alle Informationen zu protokollieren oder einen Fehler zu melden, sind die folgenden Funktionen verfügbar: </p>
<p>JavaScript-Funktion zur Weiterverarbeitung eingehender Nachrichten.</p>
<p>Die empfangenen Nachrichten werden der Funktion als JavaScript-Objekt mit dem Namen <code>msg</code> übergeben.</p>
<p>Per Konvention enthält die <code>msg.payload</code>-Eigenschaft die eigentliche Nachricht.</p>
<p>Von der Funktion wird erwartet, dass sie ein (oder mehrere) Nachrichtenobjekt(e) zurückgibt.
Es kann aber auch nichts zurückgeben werden, um einen Flow zu stoppen.</p>
<p>In den <b>Start</b>-Tab kann Code eingetragen werden, der beim Node-Start ausgeführt wird.
In den <b>Stopp</b>-Tab kann Code eingetragen werden, der beim Node-Stopp ausgeführt wird.</p>
<p>Wenn ein promise-Objekt aus dem Start-Code zurückgegeben wird,
beginnt danach die reguläre Verarbeitung der Eingangsnachrichten.</p>
<h3>Details</h3>
<p>Siehe <a target="_blank" href="http://nodered.org/docs/writing-functions.html">Onlinedokumentation</a>
für weitere Informationen zum Schreiben von Funktionen.</p>
<h4>Nachrichten senden</h4>
<p>Die Funktion kann die Nachrichten zurückgeben, die sie an die nächsten Nodes im Flow weitergeben möchte,
oder kann <code>node.send(msg)</code> aufrufen.</p>
<p>Es kann folgendes zurückgeben/senden werden:</p>
<ul>
<li> <code>node.log ("Protokollnachricht")</code> </li>
<li> <code>node.warn (" Warning")</code> </li>
<li> <code>node.error ("Error")</code> </li>
<li>Ein einzelnes Nachrichtenobjekt, das an Nodes am ersten Ausgang übergeben wird</li>
<li>Ein Array von Nachrichtenobjekten, die an die Nodes an den entsprechenden Ausgängen übergeben werden</li>
</ul>
</p>
<p> Der Catch-Node kann auch zur Bearbeitung von Fehlern verwendet werden. So rufen Sie einen Catch-Node auf:
Übergeben Sie <code>msg</code> als zweites Argument an <code>node.error</code>:</p>
<pre>node.error ("Error" ,msg);</pre>
<h4> Auf Node-Informationen zugreifen </h4>
<p> Im Funktionsblock können die ID und der Name des Nodes mit den folgenden Eigenschaften referenziert werden: </p>
<ul>
<li> <code>node.id</code> - ID des Nodes </li>
<li> <code>node.name</code> - Name des Nodes </li>
</ul>
<h4> Umgebungsvariablen verwenden </h4>
<p> Auf Umgebungsvariablen kann mit <code>env.get ("MY_ENV_VAR")</code> zugegriffen werden. </p>
<p><b>Hinweis:</b> Der Start-Code wird nur während der Initialisierung des Nodes ausgeführt.
Wenn <code>node.send</code> im Start-Code aufgerufen wird, können nachfolgende Nodes die Nachricht möglicherweise nicht empfangen.</p>
<p>Wenn ein Element des Arrays selbst ein Array von Nachrichten ist, werden mehrere Nachrichten an den entsprechenden Ausgang gesendet.</p>
<p>Wenn null zurückgegeben wird, entweder direkt oder als ein Array-Element, wird keine Nachricht weitergegeben.</p>
<h4>Protokollierung und Fehlerbehandlung</h4>
<p>Um alle Informationen zu protokollieren oder einen Fehler zu melden, sind die folgenden Funktionen verfügbar:</p>
<ul>
<li><code>node.log("Protokollnachricht")</code></li>
<li><code>node.warn("Warnmeldungstext")</code></li>
<li><code>node.error("Fehlermeldungstext")</code></li>
</ul>
</p>
<p>Der <span style="background-color:Gainsboro">catch</span>-Node kann auch zur Bearbeitung von Fehlern verwendet werden.
Er wird aufgerufen, indem <code>msg</code> als zweites Argument an <code>node.error</code> übergeben wird:</p>
<pre>node.error("Fehlermeldungstext" ,msg);</pre>
<h4>Zugriff auf Node-Informationen</h4>
<p>Im Funktionsblock können die ID und der Name des Nodes mit den folgenden Eigenschaften referenziert werden:</p>
<ul>
<li><code>node.id</code> - ID des Nodes</li>
<li><code>node.name</code> - Name des Nodes</li>
</ul>
<h4>Umgebungsvariablen verwenden</h4>
<p>Auf Umgebungsvariablen kann mit <code>env.get("Umgebungsvariablenname")</code> zugegriffen werden.</p>
</script>

View File

@@ -15,36 +15,33 @@
-->
<script type="text/html" data-help-name="switch">
<p>Weiterleitung von Nachrichten basierend auf den Werten ihrer Eigenschaften oder der Position der Sequenz.</p>
<p>Weiterleitung von Nachrichten basierend auf den Werten ihrer Eigenschaften oder Position in der Sequenz.</p>
<h3>Details</h3>
<p>Wenn eine Nachricht ankommt, wertet der Node jede der definierten Regeln aus
und leitet die Nachricht an die entsprechenden Ausgänge der übereinstimmenden Regeln weiter.</p>
<p>Optional kann der Node so eingestellt werden, dass er die Auswertung von Regeln einstellt,
sobald er eine passende Regel findet.</p>
<p>Die Regeln können anhand einer einzelnen Nachrichteneigenschaft,
einer Flow- oder globalen Kontext-Eigenschaft oder dem Ergebniss eines JSONata-Ausdrucks ausgewertet werden.</p>
<p>Bei Eingang einer Nachricht wertet der Node einstellbare Regeln aus und
leitet die Nachricht an den entsprechenden Ausgang der erfüllten Regel weiter.</p>
<p>Optional kann der Node so eingestellt werden, dass er die Auswertung nach der ersten erfüllten Regel beendet.</p>
<p>Die Regeln können anhand einer einzelnen Nachrichteneigenschaft, einer Flow- oder globalen Kontext-Eigenschaft oder
anhand dem Ergebnis eines JSONata-Ausdrucks ausgewertet werden.</p>
<h4>Regeln</h4>
<p>Es gibt vier Regeltypen:</p>
<ol>
<li><b>Value</b> Regeln werden gegen die konfigurierte Eigenschaft ausgewertet.</li>
<li><b>Sequence</b> Regeln können auf Nachrichtenfolgen verwendet werden,
wie sie beispielsweise durch den Split-Node erzeugt werden.</li>
<li>Es kann ein JSONata <b>Expression</b> bereitgestellt werden,
der anhand der gesamten Nachricht bewertet wird und eine Übereinstimmung erzeugt,
wenn der Ausdruck einen wahren Wert zurückgibt.</li>
<li>Eine <b>Andernfalls</b> Regel kann verwendet werden, um eine Übereinstimmung herzustellen,
wenn keine der vorhergehenden Regeln übereinstimmt.</li>
<li><b>value rules:</b> Regeln werden hinsichtlich einer eingestellten Eigenschaft ausgewertet</li>
<li><b>sequence rules:</b> Regeln beziehen sich auf Nachrichtensequenzen,
wie sie beispielsweise durch den <span style="background-color:Gainsboro">split</span>-Node erzeugt werden</li>
<li>Ein <b>JSONata-Ausdruck</b> kann die gesamte Eingangsnachricht auswerten und einen <code>true</code>-Wert zurückliefern,
um eine Regelerfüllung zu signalisieren</li>
<li>Die <b>ansonsten</b>-Regel wird angewendet, wenn keine vorhergehende Regel übereinstimmt</li>
</ol>
<h4>Bemerkungen</h4>
<p>Die <code>is true/false</code> und <code>is null</code> Regeln führen strenge Vergleiche mit diesen Typen durch.
Sie konvertieren nicht zwischen den Typen.</p>
<p>Die <code>is empty</code>Regel passt nur für Strings, Arrays und Buffer, die eine Länge von 0 haben
oder Objekte, die keine Eigenschaften haben aber nicht r <code>null</code> oder <code>undefiniert</code>.</p>
<h4>Behandlung von Nachrichtenfolgen</h4>
<p>Standardmäßig ändert der Node nicht die Eigenschaft <code>msg.parts</code> für Nachrichten,
die Teil einer Sequenz sind.</p>
<p>Die Option <b>Nachrichtenfolgen neu erstellen</b> kann aktiviert werden, um neue Nachrichtenfolgen für jede passende Regel zu generieren.
In diesem Modus puffert der Node die gesamte eingehende Sequenz, bevor er die neuen Sequenzen weiter sendet.
Mit der Laufzeiteinstellung <code>nodeMessageBufferMaxLength</code> kann begrenzt werden,
wie viele Nachrichten im Node zwischengespeichert werden sollen.</p>
<p>Die Regeln <code>ist true/false</code> und <code>ist null</code> führen strenge Vergleiche mit diesen Typen durch.
Sie konvertieren nicht zwischen den Typen.</p>
<p>Die Regeln <code>ist leer</code> und <code>ist nicht leer</code> können nur für Zeichenfolgen (string), Datenfelder (array) und binäre Puffer (buffer) benutzt werden,
sowie r Objekte, bei denen auf die Anzahl der Eigenschaften geprüft wird.
Die Regel ist niemals erfült, wenn die Eigenschaft einen <code>boolean</code>-, <code>null</code>- oder <code>undefined</code>-Wert hat.
<h4>Behandlung von Nachrichtensequenzen</h4>
<p>Standardmäßig ändert der Node nicht die <code>msg.parts</code>-Eigenschaft für Nachrichten, die Teil einer Sequenz sind.</p>
<p>Bei aktivierter Option <b>Nachrichtensequenzen erzeugen</b> werden Nachrichtensequenzen für jede passende Regel erzeugt.
In diesem Modus puffert der Node die gesamte eingehende Sequenz, bevor er die neuen Sequenzen weiter sendet.
Mit der Laufzeiteinstellung <code>nodeMessageBufferMaxLength</code> kann begrenzt werden,
wie viele Nachrichten im Node zwischengespeichert werden sollen.</p>
</script>

View File

@@ -15,24 +15,24 @@
-->
<script type="text/html" data-help-name="change">
<p>Setzen, Ändern, Löschen oder Verschieben von Eigenschaften einer Nachricht, eines Flow-Kontextes oder eines globalen Kontextes.</p>
<p>Der Node kann mehrere Regeln angeben, die in der Reihenfolge ihrer Definition angewendet werden.</p>
<p>Setzen, Ändern, Löschen oder Verschieben von Eigenschaften einer Nachricht, eines Flow- oder eines globalen Kontextes.</p>
<p>Im Node können mehrere Regeln definiert werden, die in vorgegebener Reihenfolge abgearbeitet werden.</p>
<h3>Details</h3>
<p>Die verfügbaren Operationen sind:</p>
<dl class="message-properties">
<dt>Setze</dt>
<dd>Setzt eine Eigenschaft. Der Wert kann eine Vielzahl von verschiedenen Typen sein
oder aus einer bestehenden Nachricht oder einer Kontext-Eigenschaft übernommen werden.</dd>
<dt>Ändere</dt>
<dd>Suchen und Ersetzen von Teilen der Eigenschaft. Wenn reguläre Ausdrücke aktiviert sind,
kann die Eigenschaft "Ersetzen mit" sogenante Capture groups beinhalten, z.B. <code>$1</code>.
Ersetzen ändert den Typ nur, wenn eine vollständige Übereinstimmung vorliegt.</dd>
<dt>Löschen</dt>
<dd>Löscht eine Eigenschaft.</dd>
<dt>Verschiebe</dt>
<dd>Verschiebt eine Eigneschft oder benennt sie um.</dd>
<dt>Setze</dt>
<dd>Setzen einer Eigenschaft.
Der Wert kann eine Vielzahl von verschiedenen Typen sein oder
von einer bestehenden Nachricht- oder einer Kontext-Eigenschaft übernommen werden</dd>
<dt>Ändere</dt>
<dd>Suchen und Ersetzen von Teilen einer Eigenschaft.
Wenn reguläre Ausdrücke verwendet werden, kann auch durch sogenannte Capture Groups ersetzt werden, z. B. <code>$1</code>.
Beim Ersetzen wird der Typ nur geändert, wenn eine vollständige Übereinstimmung vorliegt.</dd>
<dt>Lösche</dt>
<dd>Löschen einer Eigenschaft</dd>
<dt>Verschiebe</dt>
<dd>Verschieben oder umbenennen einer Eigenschaft</dd>
</dl>
<p>Der Typ "expression" verwendet die Abfrage- und Ausdruckssprache
<a href="http://jsonata.org/" target="_new">JSONata</a>.
</p>
<!-- <p>Der Typ "expression" verwendet die Abfrage- und Ausdruckssprache <a href="http://jsonata.org/" target="_new">JSONata</a>.</p> -->
<!-- was ist mit "expression" gemeint?!? vermutlich nicht mehr aktuell -->
</script>

View File

@@ -15,23 +15,30 @@
-->
<script type="text/html" data-help-name="range">
<p>Ordnet einen numerischen Wert einem anderen Bereich zu..</p>
<h3>Eingaben</h3>
<p>Umskalierung eines Zahlenwertes auf einen anderen Wertebereich.</p>
<h3>Eingangsdaten</h3>
<dl class="message-properties">
<dt>payload <span class="property-type">Zahl</span></dt>
<dt>payload<span class="property-type">number</span></dt>
<dd>Der Payload <i>muss</i> eine Zahl sein.
Alles andere wird versucht als Zahl interpretiert zu werden und abgelehnt, wenn das fehlschlägt.</dd>
Alles andere wird versucht als Zahl interpretiert zu werden und bei Fehlschlag abgelehnt.</dd>
</dl>
<h3>Ausgaben</h3>
<h3>Ausgangsdaten</h3>
<dl class="message-properties">
<dt>payload <span class="property-type">Zahl</span></dt>
<dd>Der Wert, der dem neuen Bereich zugeordnet ist.</dd>
<dt>payload<span class="property-type">number</span></dt>
<dd>Der auf den neuen Wertebereich umgerechnete Zahlenwert</dd>
</dl>
<h3>Details</h3>
<p>Dieser Node skaliert den empfangenen Wert linear.
Standardmäßig ist das Ergebnis nicht auf den im Node definierten Bereich beschränkt.</p>
<p><i>Skalieren und begrenzen auf den Zielbereich</i> bedeutet,
dass das Ergebnis niemals außerhalb des im Ergebnisbereich angegebenen Bereichs liegt.</p>
<p><Skalieren und Umhüllen innerhalb des Zielbereichs</i> bedeutet,
dass das Ergebnis innerhalb des Ergebnisbereichs umgepackt wird.</p>
Standardmäßig ist das Ergebnis nicht auf Ausgangswertebereich beschränkt.</p>
<p><i>Skalierung und Begrenzung</i> bedeutet,
dass das Ergebnis niemals außerhalb des Ausgangswertebereich liegt.</p>
<p><i>Skalieren und Begrenzung mit Überlauf</i> bedeutet,
dass das Ergebnis in den Ausgangswertebereich <i>über- bzw. umlaufend gepackt</i> wird.</p>
<p>Beispiel einer Skalierung vom Eingangswerterbereich 0-10 auf Ausgangswertebereich 0-100:</p>
<table style="outline-width:#888 solid thin">
<tr><th width="260px">Modus</th><th width="110px">Eingangswert</th><th width="110px">Ausgangswert</th></tr>
<tr><td><center>Skalieren</center></td><td><center>12</center></td><td><center>120</center></td></tr>
<tr><td><center>Skalieren und begrenzen</center></td><td><center>12</center></td><td><center>100</center></td></tr>
<tr><td><center>Skalieren und begrenzen mit Überlauf</center></td><td><center>12</center></td><td><center>20</center></td></tr>
</table>
</script>

View File

@@ -15,39 +15,43 @@
-->
<script type="text/html" data-help-name="template">
<p> Legt eine Eigenschaft fest, die auf der bereitgestellten Vorlage basiert. </p>
<h3> Eingaben </h3>
<dl class="message-properties">
<dt> msg <span class="property-type"> Objekt </span> </dt>
<dd> Ein msg Objekt, das Informationen zum Füllen der Vorlage enthält. </dd>
<dt class="optional"> template <span class="property-type">Zeichenfolge</span> </dt>
<dd> Eine Schablone, die aus msg.payload gefüllt werden soll. Falls es nicht in der Editieranzeige konfiguriert ist, kann
kann es als Eigenschaft von msg gesetzt werden. </dd>
</dl>
<h3> Ausgaben </h3>
<dl class="message-properties">
<dt> msg <span class="property-type"> Objekt </span> </dt>
<dd> Eine Nachricht die durch Verbindung der konfigurierten Vorlage mit den Eigenschaften aus der eingehenden Nachricht gebildet wird. </dd>
</dl>
<h3> Details </h3>
<p> Die Vorlage verwendet standardmäßig das <i> <a href="http://mustache.github.io/mustache.5.html" target="_blank"> mustache </a> </i>
Format, das kann aber bei Bedarf ausgeschaltet werden. </p>
<p> Beispiel: Wenn eine Vorlage von:
<pre> Hallo {{payload.name}}. Heute ist {{date}} </pre>
<p> eine Nachricht empfangt, die folgendes enthält:
<pre>{
<p>Festlegen einer Eigenschaft anhand einer Vorlage (template).</p>
<h3>Eingangsdaten</h3>
<dl class="message-properties">
<dt>msg<span class="property-type">object</span></dt>
<dd>msg-Objekt mit Informationen zum Befüllen der Vorlage</dd>
<dt class="optional">template<span class="property-type">string</span></dt>
<dd>Mit msg.payload zu befüllende Vorlage.
Falls nicht im Editorfenster angegeben, kann die Vorlage auch als Eigenschaft von msg vorgegeben werden.</dd>
</dl>
<h3>Ausgangsdaten</h3>
<dl class="message-properties">
<dt>msg<span class="property-type">object</span></dt>
<dd>Nachricht auf Basis der Vorlage und gefüllt mit Eigenschaften aus der eingehenden Nachricht</dd>
</dl>
<h3>Details</h3>
<p>Die Vorlage verwendet standardmäßig das
<i><a href="http://mustache.github.io/mustache.5.html" target="_blank">Mustache</a></i>-Format,
was aber bei Bedarf ausgeschaltet werden kann.</p>
<p>Beispiel: Wenn die Vorlage</p>
<pre>Hallo {{payload.name}}. Heute ist {{date}}</pre>
<p>die Nachricht</p>
<pre>
{
date: "Montag",
payload: {
name: "Fred"
}
}</pre>
<p> wird die resultierende Nachrich wie folgt sein:
<pre> Hallo Fred. Heute ist Montag </pre>
<p> Es ist möglich, eine Eigenschaft aus dem Flowkontext oder dem globalen Kontext zu verwenden.
Verwenden Sie einfach <code>{{flow.name}}</code> oder
<code>{{global.name}}</code> oder für den persistenten Speicher <code>store</code> verwenden <code>{{flow[store].name}}</code> oder
<code>{{global[store].name}}</code>.
<p> <b>Hinweis: </b> Standardmäßig wird <i>mustache</i> alle HTML-Entitäten in den Werten die es ersetzt mit Escape behandeln.
Um dies zu verhindern, verwenden Sie <code>{{{triple}}}</code> Klammern.
}
</pre>
<p>empfängt, wird die resultierende Ausgangsnachricht wie folgt sein:</p>
<pre>Hallo Fred. Heute ist Montag</pre>
<p>Es ist möglich, eine Eigenschaft aus dem Flowkontext oder dem globalen Kontext zu verwenden,
indem <code>{{flow.name}}</code> oder <code>{{global.name}}</code> verwendet wird.
Oder für den persistenten Speicher <code>store</code> kann <code>{{flow[store].name}}</code> oder
<code>{{global[store].name}}</code> verwendet werden.
<p><b>Hinweis:</b> Standardmäßig werden bei <i>Mustache</i> sog. <i>Escaper</i>
bei allen nicht-numerischen und HTML-Entitäten erzeugt.
Z. B. <code>&</code> wird durch <code>&amp;amp;</code> ersetzt.
Um dies zu verhindern, müssen <code>{{{dreifache}}}</code> Klammern verwendet werden.
</script>

View File

@@ -13,33 +13,29 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
<script type="text/html" data-help-name="delay">
<p> Verzögert jede Nachricht, die den Node durchläuft oder begrenzt die Geschwindigkeit, mit der sie übergeben werden können. </p>
<h3> Eingaben </h3>
<p>Verzögerung von Nachrichten oder Begrenzung ihrer Durchlaufrate.</p>
<h3>Eingangsdaten</h3>
<dl class="message-properties">
<dt class="optional"> delay <span class="property-type"> Zahl </span> </dt>
<dd> Legt die Verzögerung (in Millisekunden) fest, die auf die Nachricht angewendet werden soll. Dies
Option gilt nur, wenn der Node so konfiguriert ist, dass er Nachrichten zulässt,
die das konfigurierte Standardverzögerungsintervall überschreiben. </dd>
<dt class="optional"> zurücksetzen </dt>
<dd> Wenn für die empfangene Nachricht diese Eigenschaft auf einen beliebigen Wert gesetzt ist, werden alle
ausstehende Nachrichten gelöscht, die vom Node noch gehalten werden. </dd>
<dt class="optional"> Flush </dt>
<dd> Wenn für die empfangene Nachricht diese Eigenschaft auf einen beliebigen Wert gesetzt ist, werden alle
ausstehende Nachrichten, die vom noch Node gehalten werden, sofort gesendet. </dd>
<dt class="optional">delay<span class="property-type">number</span></dt>
<dd>Legt die Verzögerung in Millisekunden fest, die auf die Nachricht angewendet werden soll.
Zur Nutzung dieser Option muss <i>Verzög. mit msg.delay überschreibbar</i> aktiviert sein.</dd>
<dt class="optional">reset</dt>
<dd>Wenn bei der empfangenen Nachricht diese Eigenschaft auf einen beliebigen Wert gesetzt ist,
werden alle im Node gepufferten Nachrichten gelöscht</dd>
<dt class="optional">flush</dt>
<dd>Wenn bei der empfangenen Nachricht diese Eigenschaft auf einen beliebigen Wert gesetzt ist,
werden alle im Node gepufferten Nachrichten sofort gesendet</dd>
</dl>
<h3> Details </h3>
<p> Wenn das Verzögerungsintervall für die Verzögerung von Nachrichten konfiguriert ist, kann es sich um einen festen Wert,
einen Zufallswert innerhalb eines Bereichs oder einen dynamisch für jede Nachricht festgelegten Wert handeln. </p>
<p> Bei der Konfiguration von Begrenzungen werden die Nachrichten über den konfigurierten Zeitraum verteilt.
Der Status zeigt die Anzahl der Nachrichten an, die sich derzeit in der Warteschlange befinden.
Zwíschenzeitlich entreffende Nachrichten können gegebenenfalls verworfen werden.</p>
</p>
<p> Die Ratenbegrenzung kann auf alle Nachrichten angewendet werden
oder sie werden gemäß des Wertes von <code>msg.topic</code> gruppiert.
Bei der Gruppierung werden zwíschenzeitlich eintreffende Nachrichten automatisch gelöscht.
In jedes Zeitintervall kann der Node entweder die aktuellste Nachricht für alle Themen
oder die neueste Nachricht für das nächste Topic freigeben.
</p>
<h3>Details</h3>
<p>Wenn Verzögerung als Nachrichtenaktion eingestellt ist, kann die Verzögerungszeit ein fixer Wert,
ein Zufallswert innerhalb eines Bereichs oder ein für jede Nachricht dynamisch vorgebbarer Wert handeln.</p>
<p>Bei Begrenzung auf Nachrichtenrate werden die Nachrichten über den eingestellten Zeitraum verteilt.
Der Status zeigt die Anzahl der sich aktuell in der Warteschlange befindlichen Nachrichten an.
Zwischenzeitlich eintreffende Nachrichten können optional beim Eintreffen verworfen werden.</p>
<p>Die Ratenbegrenzung kann auf alle Nachrichten angewendet werden oder
die Nachrichten werden anhand des <code>msg.topic</code>-Wertes gruppiert.
Bei der Gruppierung werden zwischenzeitlich eintreffende Nachrichten automatisch gelöscht.
In jedem Zeitintervall werden die neuesten Nachricht entweder für alle oder
für das nächste Thema (Topic) in der Reihe gesendet.</p>
</script>

View File

@@ -15,30 +15,36 @@
-->
<script type="text/html" data-help-name="trigger">
<p> Wenn der Trigger ausgelöst wird, kann eine Nachricht gesendet werden und dann optional eine weitere Nachricht ,
sofern der Trigger nicht verlängert oder zurückgesetzt wird. </p>
<h3> Eingaben </h3>
<p>Senden einer und optional einer weiteren verzögerten Nachricht bei Auslösung (Trigger),
sofern der Trigger nicht verlängert oder zurückgesetzt wird.</p>
<h3>Eingangsdaten</h3>
<dl class="message-properties">
<dt class="optional"> reset </dt>
<dd> Wenn eine Nachricht mit dieser Eigenschaft empfangen wird, wird jeder aktuelle Zeitlimit oder Wiederholung
zrückgesetzt und es wird keine Nachricht ausgelöst. </dd>
<dt class="optional">delay<span class="property-type">number</span></dt>
<dd>Legt die Verzögerung in Millisekunden fest, die auf die Nachricht angewendet werden soll.
Zur Nutzung dieser Funktion muss die Option <i>Verzögerung mit msg.delay überschreibbar</i> aktiviert sein.</dd>
<dt class="optional">reset</dt>
<dd>Bei Empfang einer Nachricht mit dieser Eigenschaft wird jede Verzögerung oder Wiederholung
rückgesetzt und keine weitere Nachricht gesendet</dd>
</dl>
<h3> Details </h3>
<p> Dieser Node kann verwendet werden, um ein Zeitlimit in einem Flow zu erstellen. Wenn er eine Nachricht empfängt, wird
standardmäßig wird eine Nachricht mit einer <code>payload</code> von <code>1</code> versandt.
Anschließend wartet er 250 ms, bevor er eine zweite Nachricht mit einer <code>payload</code> von <code>0</code> sendet.
Dies kann beispielsweise zum Blinken einer LED verwendet werden, die an einen Raspberry Pi GPIO-Pin angeschlossen ist.</p>
<p> Die Nutzdaten jeder gesendeten Nachricht können für eine Vielzahl von Werten konfiguriert werden,
einschließlich der Option, nichts zu senden. Wenn Sie beispielsweise die Anfangsnachricht auf <i>nichts</i> setzen und
Auswahl der Option zum Erweitern des Zeitgebers mit jeder empfangenen Nachricht dann wird der Node als Überwachungszeitgeber agieren
und nur dann eine Nachricht senden, wenn innerhalb des konfigurierten Erweiterungszeitraums keine Nachricht empfangen wird. </p>
<p> Wenn der Node auf den Typ <i>Zeichenfolge</i> gesetzt ist, unterstützt der Node die Syntax der Mustache-Vorlage. </p>
<p> Wenn der Node eine Nachricht mit einer Eigenschaft <code>reset</code> oder einer <code>payload</code> die mit dem Wert in der
Node-Konfiguration übereinstimmt, wird jede beliebige Zeitlimitüberschreitung oder Wiederholung gelöscht,
die sich derzeit in Bearbeitung befindet und es wird keine Nachricht ausgelöst. </p>
<p> Der Node kann so konfiguriert werden, dass er eine Nachricht in einem regulären Intervall sendet,
bis er durch eine empfangene Nachricht zurückgesetzt wird. </p>
<p> Optional kann der Node so konfiguriert werden, dass er Nachrichten für jedes <code>msg.topic</code> als separate Datenströme behandelt. </p>
<h3>Details</h3>
<p>Dieser Node kann verwendet werden, um ein Zeitlimit in einem Flow zu erstellen.
Bei Empfang einer Nachricht wird standardmäßig eine Nachricht mit einem <code>payload</code> von <code>1</code> versendet.
Optional wird nach einer einstellbaren Wartezeit (standardmäßig 250 ms) eine zweite Nachricht
mit einem <code>payload</code> von <code>0</code> sendet.
Dies kann beispielsweise zum Blinken einer LED verwendet werden, die an einen GPIO-Pin des Raspberry Pi angeschlossen ist.</p>
<p>Als Nutzdaten (Payload) jeder zu sendenen Nachricht können eine Vielzahl von Werten eingestellt werden inklusive der Option,
überhaupt nicht zu senden.
Wenn beispielsweise die erste Ausgnagsnachricht auf <i>nichts</i> gesetzt und die Option
<i>Verzögerung verlängern bei Eingang neuer Nachrichten</i> aktiviert ist,
agiert der Node als Überwachungszeitgeber (Watchdog-Timer).
Er sendet hier nur dann eine Nachricht, wenn innerhalb der eingestellten Verzögerungszeit keine Nachricht empfangen wird.</p>
<p>Beim Nachrichtentyp <i>Zeichenfolge (string)</i> werden auch <i><a href="http://mustache.github.io/mustache.5.html" target="_blank">Mustache</a></i>-Vorlagen unterstützt.</p>
<p>Wenn eine Nachricht mit der <code>reset</code> oder <code>payload</code>-Eigenschaft gleich dem konfigurierten Wert empfangen wird,
wird eine laufende Verzögerung oder Wiederholung rückgesetzt und keine Nachricht gesendet.</p>
<p>Der Node kann auch so eingestellt werden, dass er eine Nachricht normal in den vorgegebenen Intervallen sendet,
bis er durch eine empfangene Nachricht rückgesetzt wird.</p>
<p>Außerdem kann der Node auch so eingestellt werden, dass er Nachrichten anhand einer einstellbaren <code>msg</code>-Eigenschaft
als separate Nachrichtenströme behandelt.</p>
<p>Der Status zeigt die Aktivität des Nodes an.
Bei Verwendung mehrerer Nachrichtenströme zeigt der Status deren aktuelle Anzahl an.</p>
</script>

View File

@@ -15,69 +15,75 @@
-->
<script type="text/html" data-help-name="exec">
<p> Führt einen Systembefehl aus und gibt seine Ausgabe zurück. </p>
<p> Der Node kann so konfiguriert werden, dass er entweder wartet, bis der Befehl abgeschlossen ist,
oder die Ausgabe so sendet wie der Befehl sie generiert. </p>
<p> Der Befehl, der ausgeführt wird, kann im Node konfiguriert oder von der empfangenen Nachricht übergeben werden. </p>
<h3> Eingaben </h3>
<p>Ausführung eines Systembefehls und Rückgabe seiner Ausgabe.</p>
<p>Der Node kann so eingestellt werden, dass er entweder bis zum Befehlabschluss wartet (exec) oder
die Ausgabe sogleich sendet (spawn), wie der Befehl sie generiert.</p>
<p>Der auszuführende Befehl kann im Node eingestellt und/oder
über die empfangene Nachricht übergeben werden.</p>
<h3>Eingangsdaten</h3>
<dl class="message-properties">
<dt class="optional">payload<span class="property-type"> Zeichenfolge </span> </dt>
<dd> wird an den ausgeführten Befehl angehängt </dd>
<dt class="optional"> kill <span class="property-type"> Zeichenfolge </span> </dt>
<dd> Der Typ des Kill-Signals, das einen vorhandenen exec-Node-Prozess gesendet wird. </dd>
<dt class="optional"> pid <span class="property-type"> Zahl|Zeichenfolge </span> </dt>
<dd> Die Prozess-ID eines vorhandenen exec-Node-Prozesses, der beendet werden soll. </dd>
<dt class="optional">payload<span class="property-type">string</span></dt>
<dd>Wird an auszuführenden Befehl angehängt, sofern im Node aktiviert</dd>
<dt class="optional">kill<span class="property-type">string</span></dt>
<dd>Typ des Kill-Signals, das an den zu beendenden <span style="background-color:Gainsboro">exec</span>-Node-Prozess gesendet wird</dd>
<dt class="optional">pid<span class="property-type">number | string</span></dt>
<dd>Prozess-ID des zu beendenden <span style="background-color:Gainsboro">exec</span>-Node-Prozesses</dd>
</dl>
<h3> Ausgaben </h3>
<h3>Ausgangsdaten</h3>
<ol class="node-ports">
<li> Standardausgabe
<li>Standardausgabe (stdout)
<dl class="message-properties">
<dt> payload <span class="property-type"> Zeichenfolge </span> </dt>
<dd> die Standardausgabe des Befehls. </dd>
<dt>payload<span class="property-type">string</span></dt>
<dd>Standardausgabe des Befehls</dd>
</dl>
<dl class="message-properties">
<dt> rc <span class="property-type"> Objekt </span> </dt>
<dd> Eine Kopie des Rückkehrcodeobjekts (auch an Port 3 verfügbar) - nur im Ausführungsmodus verfügbar </dd>
<dt>rc<span class="property-type">object</span></dt>
<dd>Rückgabe-Code-Objekts (auch an Port 3 verfügbar) - nur im exec-Modus verfügbar</dd>
</dl>
</li>
<li> Standardfehler
<li>Standardfehlerausgabe (stderr)
<dl class="message-properties">
<dt> payload <span class="property-type"> Zeichenfolge </span> </dt>
<dd> Standardfehlerausgabe des Befehls. </dd>
<dt>payload<span class="property-type">string</span></dt>
<dd>Standardfehlerausgabe des Befehls</dd>
</dl>
<dl class="message-properties">
<dt> rc <span class="property-type"> Objekt </span> </dt>
<dd> Eine Kopie des Rückkehrcodeobjekts (auch an Port 3 verfügbar) - nur im Ausführungsmodus verfügbar </dd>
<dt>rc<span class="property-type">object</span></dt>
<dd>Rückgabe-Code-Objekts (auch an Port 3 verfügbar) - nur im exec-Modus verfügbar</dd>
</dl>
</li>
<li> Rückkehrcode
<li>Rückgabe-Code
<dl class="message-properties">
<dt> payload <span class="property-type"> Objekt </span> </dt>
<dd> ein Objekt, das den Rückkehrcode und gegebenfals <code>Nachricht</code>, <code>Signal</code> Eigenschaften enthält. </dd>
<dt>payload<span class="property-type">object</span></dt>
<dd>Objekt mit dem Rückgabe-Code und gegebenenfalls <code>message</code> oder <code>signal</code>-Eigenschaften</dd>
</dl>
</li>
</ol>
<h3> Details </h3>
<p> Standardmäßig verwendet der Systemaufruf <code>exec</code> , der den Befehl aufruft, darauf wartet, dass er ausgeführt wird und anschließend
gibt dessen Ausgabe zurück. Ein erfolgreicher Befehl sollte z. B. den Rückkehrcode <code>{ code: 0 }</code> haben. </p>
<p> Optional kann stattdessen <code>spawn</code> verwendet werden, wodurch die Ausgaben von Standardausgabe und Standardfehler zurückgegeben werden während
der Befehl ausgeführt wird, in der Regel Zeile für Zeile. Nach Abschluss des Befehles gibt sie ein Objekt
am 3. Port zurück. Ein erfolgreicher Befehl sollte z. B. <code>{ code: 0 }</code> zurückgeben. </p>
<p> Fehler können zusätzliche Informationen über den dritten Port als <code>msg.payload</code> zurückgeben,
z. B. eine <code>message</code> Zeichenfolge oder <code>Signal</code> zeichenfolge. </p>
<p> Der Befehl, der ausgeführt wird, ist innerhalb des Nodes definiert, mit einer Option zum Anhängen von <code> msg.payload </code>
und einer weiteren Gruppe von Parametern. </p>
<p> Befehle oder Parameter mit Leerzeichen müssen in Anführungszeichen eingeschlossen werden: <code> "Dies ist ein einzelner Parameter" </code> </p>
<p> Die zurückgegebenen <code>Nutzdaten</code> sind in der Regel ein <i>string</i>, es sei denn, es werden nicht UTF8-Zeichen erkannt, in denen
falls es sich um einen <i>Buffer</i> handelt. </p>
<p> Das Statussymbol und die PID des Nodes werden angezeigt, während der Node aktiv ist. Änderungen an dieser Funktion können vom Node <code> Status </code> gelesen werden. </p>
<h4> Prozesse beenden </h4>
<p> Wird <code>msg.kill</code> gesendet, wird ein einzelner aktiver Prozess beendet. <code>msg.kill</code> sollte eine Zeichenfolge sein, die
Der Typ des Signals, der gesendet werden soll, z. B. <code>SIGINT</code>, <code>SIGQUIT</code> oder <code>SIGHUP</code>.
Der Standardwert ist <code>SIGTERM</code> , wenn er auf eine leere Zeichenfolge gesetzt ist. </p>
<p> Wenn der Node mehr als einen Prozess ausführt, muss <code>msg.pid</code> ebenfalls mit dem Wert der zu ermordenen PID festgelegt werden. </p>
<p> Wenn ein Wert im Feld <code>Zeitlimit</code> angegeben wird, wird der Prozess automatisch beendet, wenn der Prozess nicht abgeschlossen ist, wenn die angegebene Anzahl von Sekunden abgelaufen ist. </p>
<p> Tipp: Wenn Sie eine Python-App ausführen, müssen Sie möglicherweise den Parameter <code>-u</code> verwenden, um die Ausgabe zu stoppen, die gepuffert wird. </p>
<h3>Details</h3>
<p>Standardmäßig wartet der zur Befehlsausführung genutzte Systemaufruf <code>exec</code>,
bis die Ausführung abgeschlossen ist, und gibt anschließend dessen Ausgaben zurück.
Ein erfolgreich ausgeführter Befehl sollte z. B. den Rückgabe-Code <code>{ code: 0 }</code> haben.</p>
<p>Optional kann stattdessen <code>spawn</code> verwendet werden, wodurch die Standardausgabe und Standardfehlerausgabe
bereits während der Befehlsausführung in der Regel Zeile für Zeile rückgegeben werden.
Nach Befehlsabschluss wird ein Objekt am 3. Port ausgegeben.
Ein erfolgreich ausgeführter Befehl sollte z. B. <code>{ code: 0 }</code> zurückgeben.</p>
<p>Fehler können zusätzliche Informationen über den dritten Port als <code>msg.payload</code> zurückgeben,
z. B. eine <code>message</code>- oder <code>signal</code>-Zeichenfolge.</p>
<p>Der auszuführende Befehl wird innerhalb des Nodes mit der Option zum Anhängen von
<code>msg.payload</code> und weiteren Parametern definiert.</p>
<p>Befehle oder Parameter mit Leerzeichen sollten in Anführungszeichen eingeschlossen werden,
z. B. <code>"Dies ist ein einzelner Parameter"</code></p>
<p>Die zurückgegebenen Daten (Payload) sind in der Regel eine <i>Zeichenfolge (string)</i>,
außer es werden nicht UTF-8-Zeichen wie bei einem <i>binären Puffer (buffer)</i> erkannt.</p>
<p>Bei einem aktiven Node werden Status und die PID angezeigt.
Änderungen können mittels <span style="background-color:Gainsboro">status</span>-Node gelesen werden.</p>
<h4>Prozesse beenden</h4>
<p>Durch Senden von <code>msg.kill</code> wird ein einzelner aktiver Prozess beendet.
<code>msg.kill</code> sollte als Zeichenfolge (string) den Signaltyp enthalten,
z. B. <code>SIGINT</code>, <code>SIGQUIT</code> oder <code>SIGHUP</code>.
Der Standardwert ist <code>SIGTERM</code>, wenn die Zeichenfolge leer ist.</p>
<p>Wenn der Node mehr als einen Befehl bzw. Prozess ausführt,
muss zusätzlich über <code>msg.pid</code> die PID des zu beendenden Prozesses übergeben werden.</p>
<p>Wenn ein <code>Zeitlimit</code> angegeben ist, wird der Prozess automatisch nach Ablauf der Zeit beendet.</p>
<p>Tipp: Wenn Sie eine Python-App ausführen, müssen Sie möglicherweise den Parameter <code>-u</code> verwenden,
um die Ausgabepufferung zu stoppen.</p>
</script>