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,148 +15,149 @@
-->
<script type="text/html" data-help-name="split">
<p>Teilt eine Nachricht in eine Folge von Nachrichten auf.</p>
<h3>Eingaben</h3>
<p>Aufteilung einer Nachricht in Nachrichtensequenzen.</p>
<h3>Eingangsdaten</h3>
<dl class="message-properties">
<dt>payload<span class="property-type">Objekt | String | Array | Buffer</span></dt>
<dd>Das Verhalten des Nodes wird durch den Typ der <code>msg.payload</code> bestimmt:
<dt>payload<span class="property-type">object | string | array | buffer</span></dt>
<dd>Das Node-Verhalten wird durch den <code>msg.payload</code>-Typ bestimmt:
<ul>
<li><b>String</b>/<b>Buffer</b> - die Nachricht wird anhand des angegebenen Zeichens (Standard: <code>\n</code>),
der Buffersequenz oder in feste Längen aufgeteilt.</li>
<li><b>Array</b> - die Nachricht wird entweder in einzelne Array-Elemente oder Arrays mit fester Länge aufgeteilt.</li>
<li><b>Objekt</b> - es wird für jedes Schlüssel-Wert-Paar des Objekts eine Nachricht gesendet.</li>
<li><b>Zeichenfolge (string) / Binärer Puffer (buffer):</b> Die Nachricht wird anhand des vorgegebenen Zeichens (Standard: <code>\n</code>),
der Buffer-Sequenz oder in feste Längen aufgeteilt</li>
<li><b>Datenfeld (array):</b> Die Nachricht wird entweder in einzelne Array-Elemente oder Arrays mit fester Länge aufgeteilt</li>
<li><b>Objekt (object):</b> Jedes Schlüssel/Wert-Paar wird einzeln als Nachricht gesendet</li>
</ul>
</dd>
</dl>
<h3>Ausgaben</h3>
<h3>Ausgangsdaten</h3>
<dl class="message-properties">
<dt>parts<span class="property-type">Objekt</span></dt>
<dd>Diese Eigenschaft enthält Informationen darüber, wie die Nachricht von der ursprünglichen Nachricht getrennt wurde.
Wenn sie an einen Node <b>join</b> übergeben werden,
kann die Sequenz wieder zu einer einzigen Nachricht zusammengefasst werden.
<dt>parts<span class="property-type">object</span></dt>
<dd>Diese Eigenschaft enthält Informationen darüber, wie die Nachricht von der ursprünglichen Nachricht abgeteilt wurde.
Bei Übergabe an ein <span style="background-color:Gainsboro">join</span>-Node kann die Sequenz wieder zu einer einzigen Nachricht zusammengeführt werden.
Diese Eigenschaft hat die folgenden Eigenschaften:
<ul>
<li><code>id</code> - ein Identifikator für die Gruppe der Nachrichten</li>
<li><code>index</code> - die Position innerhalb der Gruppep</li>
<li><code>count</code> - falls bekannt, die Gesamtzahl der Nachrichten in der Gruppe. Siehe dazu unten "Streaming-Modus".</li>
<li><code>type</code> - die Art der Nachricht - string/array/object/buffer</li>
<li><code>ch</code> - für ein String oder einen Buffer, die Daten, die für das Aufteilen der Nachricht verwendet wurden, entweder als String oder als Array von Bytes.</li>
<li><code>key</code> - für ein Objekt, den Schlüssel der Eigenschaft, aus der diese Nachricht erstellt wurde. Der Node kann konfiguriert werden, um diesen Wert auch in andere Nachrichteneigenschaften zu kopieren, wie z.B. <code>msg.topic</code>.</li>
<li><code>len</code> - die Länge jeder Nachricht, wenn sie durch einen Wert fester Länge aufgeteilt wird.</li>
</ul>
<ul>
<li><code>id</code>: Identifikator der Nachrichten-Gruppe</li>
<li><code>index</code>: Position innerhalb der Gruppe</li>
<li><code>count</code>: Gesamtzahl der Nachrichten in der Gruppe (sofern bekannt). Siehe dazu unten <i>Streaming-Modus</i>.</li>
<li><code>type</code>: Nachrichtentyp string/array/object/buffer</li>
<li><code>ch</code>: Die für das Aufteilen der String- oder Buffer-Nachricht verwendeten Daten, entweder als String oder als Byte-Array.</li>
<li><code>key</code>: Schlüssel der Eigenschaft, aus der diese Nachricht erstellt wurde (nur bei einem Objekt).
Optional kann dieser Wert auch in andere Nachrichteneigenschaft kopiert werden, wie z. B. <code>msg.topic</code>.</li>
<li><code>len</code>: Nachrichtenlänge bei Aufteilung in feste Längen</li>
</ul>
</dd>
</dl>
<h3>Details</h3>
<p>Dieser Node macht es einfach, einen Flow zu erstellen, der gemeinsame Aktionen über eine Sequenz von Nachrichten ausführt,
bevor er den Node <b>join</b> verwendet und die Sequenz zu einer einzigen Nachricht neu kombiniert.</p>
<p>Es verwendet die Eigenschaft <code>msg.parts</code>, um die einzelnen Teile einer Sequenz zu verfolgen.</p>
<h4>Streaming Modus</h4>
<p>Der Node kann auch zum Wiederaufbereiten eines Nachrichtenstroms verwendet werden.
So kann beispielsweise ein serielles Gerät, das <code><newline/code>-terminierte Befehle sendet,
eine einzelne Nachricht mit einem Teilbefehl am Ende liefern.
Im Streaming-Modus teilt dieser Node eine Nachricht auf und sendet jedes komplette Segment.
Befindet er sich am Ende eines Teilsegments, hält der Node es fest und wird es der nächsten empfangenen Nachricht voranstellen.
</p>
<p>Wenn der Node in diesem Modus arbeitet, setzt er die Eigenschaft <code>msg.parts.count</code> nicht, da er nicht weiß, wie viele Nachrichten im Stream zu erwarten sind.
Das bedeutet, dass er nicht mit dem <b>join</b> Node im Automatikmodus verwendet werden kann.</p>
bevor die Sequenz mittels <span style="background-color:Gainsboro">join</span>-Node wieder zu einer einzigen Nachricht neu kombiniert wird.</p>
<p>Der Node verwendet die <code>msg.parts</code>-Eigenschaft, um die einzelnen Sequenzteile nachzuverfolgen.</p>
<h4>Streaming-Modus</h4>
<p>Der Node kann auch zum Aufbereiten eines Nachrichtenstroms verwendet werden.
So kann beispielsweise ein serielles Gerät, das <code>newline</code>-terminierte Befehle sendet,
eine Nachricht mit einem noch unvollständigen Befehl am Ende liefern.
Im Streaming-Modus teilt der Node die Nachricht in komplette Befehlsegmente auf.
Befindet sich am Nachrichtenende ein unvollständiges Befehlsegment,
so wird es im Node aufbewahrt und der nächsten empfangenen Nachricht vorangestellt.</p>
<p>In diesem Modus wird die <code>msg.parts.count</code>-Eigenschaft nicht gesetzt,
da die Anzahl der zu erwartenden Nachrichten im Stream unbekannt ist.
Das bedeutet, dass ein nachfolgender <span style="background-color:Gainsboro">join</span>-Node nicht im Automatikmodus verwendet werden kann.</p>
</script>
<script type="text/html" data-help-name="join">
<p>Verbindet Sequenzen von Nachrichten zu einer einzigen Nachricht.</p>
<p>Verbindung von Nachrichtensequenzen zu einer einzigen Nachricht.</p>
<p>Es sind drei Modi verfügbar:</p>
<dl>
<dt>automatisch</dt>
<dd>Wenn es mit dem Node <b>split</b> gepaart wird, verbindet es automatisch die Nachrichten, um die durchgeführte Aufteilung rückgängig zu machen.</dd>
<dt>manual</dt>
<dd>Die Sequenzen von Nachrichten können auf verschiedene Weise verknüpft werden.</dd>
<dt>Reihenfolge reduzieren</dt>
<dd>Einen Ausdruck auf alle Nachrichten in einer Sequenz anwenden, um sie auf eine einzige Nachricht zu reduzieren.</dd>
<dt>Automatisch</dt>
<dd>In Kombination mit dem <span style="background-color:Gainsboro">split</span>-Node verbindet es automatisch die Nachrichten, um die zuvor durchgeführte Aufteilung rückgängig zu machen</dd>
<dt>Manuell</dt>
<dd>Die Nachrichtensequenzen können auf verschiedene Weisen verbunden werden</dd>
<dt>Sequenz reduzieren</dt>
<dd>Einen Ausdruck auf alle Nachrichten einer Sequenz anwenden, um sie auf eine einzige Nachricht zu reduzieren</dd>
</dl>
<h3>Eingaben</h3>
<h3>Eingangsdaten</h3>
<dl class="message-properties">
<dt class="optional">parts<span class="property-type">Objekt</span></dt>
<dd>Um automatisch einer Nachrichtensequenz beizutreten, sollten sie alle über diese Eigenschaft verfügen.
Der Node <b>split</b> erzeugt diese Eigenschaft, sie kann aber manuell erstellt werden.
Es hat die folgenden Eigenschaften:
<ul>
<li><code>id</code> - ein Identifikator für die Gruppe der Nachrichten</li>
<li><code>index</code> - die Position innerhalb der Gruppep</li>
<li><code>count</code> - fie Gesamtzahl der Nachrichten in der Gruppe.</li>
<li><code>type</code> - die Art der Nachricht - string/array/object/buffer</li>
<li><code>ch</code> - für ein String oder einen Buffer, die Daten, die für das Aufteilen der Nachricht verwendet wurden, entweder als String oder als Array von Bytes.</li>
<li><code>key</code> - für ein Objekt, den Schlüssel der Eigenschaft, aus der diese Nachricht erstellt wurde.</li>
<li><code>len</code> - die Länge jeder Nachricht, wenn sie durch einen Wert fester Länge aufgeteilt wird.</li>
</ul>
</dd>
<dt class="optional">parts<span class="property-type">object</span></dt>
<dd>Zur automatischen Verbindung einer Nachrichtensequenz sollten alle über diese Eigenschaft verfügen.
Der <span style="background-color:Gainsboro">split</span>-Node erzeugt diese Eigenschaft, sie kann aber auch manuell erstellt werden.
Sie hat die folgenden Eigenschaften:
<ul>
<li><code>id</code>: Identifikator der Nachrichten-Gruppe</li>
<li><code>index</code>: Position innerhalb der Gruppe</li>
<li><code>count</code>: Gesamtzahl der Nachrichten in der Gruppe (sofern bekannt). Siehe dazu unten "Streaming-Modus".</li>
<li><code>type</code>: Nachrichtentyp string/array/object/buffer</li>
<li><code>ch</code>: Die für das Aufteilen der String- oder Buffer-Nachricht verwendeten Daten, entweder als String oder als Byte-Array.</li>
<li><code>key</code>: Schlüssel der Eigenschaft, aus der diese Nachricht erstellt wurde (nur bei einem Objekt).
Optional kann dieser Wert auch in andere Nachrichteneigenschaft kopiert werden, wie z. B. <code>msg.topic</code>.</li>
<li><code>len</code>: Nachrichtenlänge bei Aufteilung in feste Längen</li>
</ul>
</dd>
<dt class="optional">complete</dt>
<dd>Wenn gesetzt, sendet der Node seine Ausgangsnachricht im aktuellen Zustand.</dd>
<dd>Wenn gesetzt, werden die Nutzdaten (Payload) hinzugefügt und die Ausgangsnachricht im aktuellen Zustand gesendet</dd>
</dl>
<h3>Details</h3>
<h4>Automatischer Modus</h4>
<p>Der automatische Modus verwendet die Eigenschaft <code>parts</code> der eingehenden Nachrichten, um festzulegen,
wie die Sequenz verknüpft werden soll.
Dies ermöglicht es ihm, die Aktion eines <b>split</b>-Nodes automatisch rückgängig zu machen.
</p>
<p>Der automatische Modus verwendet die <code>parts</code>-Eigenschaften der eingehenden Nachrichten,
um die Sequenz in richtiger Reihenfolge zu verknüpften.
Dies ermöglicht die Aufteilung des <span style="background-color:Gainsboro">split</span>-Nodes automatisch rückgängig zu machen.</p>
<h4>Manueller Modus</h4>
<p>Wenn der Node für die Zusammenführung im manuellen Modus konfiguriert ist,
kann er Sequenzen von Nachrichten zu einer Reihe von verschiedenen Ergebnissen zusammenfügen:</p>
<p>Im manuellen Modus werden Nachrichtensequenzen auf verschiedenen Arten zusammengefügt:</p>
<ul>
<li>ein <b>String </b> oder <b>Buffer</b> - erstellt durch Verbinden der ausgewählten Eigenschaft
jeder Nachricht mit den angegebenen Join-Zeichen oder dem angegebenen Buffer.</li>
<li>ein <b>Array</b> - erstellt durch Hinzufügen jeder ausgewählten Eigenschaft oder einer ganzen Nachricht zum Ausgangsarray.</li>
<li>ein <b>Schlüssel/Wert-Objekt</b> - erstellt durch Verwendung einer Eigenschaft jeder Nachricht, um den Schlüssel zu bestimmen,
unter dem der gewünschte Wert gespeichert ist.</li>
<li>ein <b>zusammengefügtes Objekt</b> - erstellt durch Zusammenführen der Eigenschaft jeder Nachricht unter einem einzigen Objekt.</li>
<li><b>String</b> oder <b>Buffer</b>: Verbinden der ausgewählten Eigenschaft jeder Nachricht
mit den vorgegebenen Join-Zeichen oder -Buffer</li>
<li><b>Array</b>: Erstellung eines Ausgangsarrays durch Hinzufügen jeder ausgewählten Eigenschaft oder ganzer Nachrichten</li>
<li><b>Schlüssel/Wert-Objekt</b>: Erzeugung von Schlüssel und Wert aus Eigenschaft jeder Nachricht</li>
<li><b>Zusammengeführtes Objekt</b>: Erzeugung durch Zusammenführen der Eigenschaften jeder Nachricht als ein einziges Objekt</li>
</ul>
<p>Die anderen Eigenschaften der Ausgangsnachricht werden aus der letzten empfangenen Nachricht entnommen, bevor das Ergebnis gesendet wird.</p>
<p>Mit <i>count</i> kann angegeben werden, wie viele Nachrichten vor dem Erzeugen der Ausgabemeldung empfangen werden sollen.
Bei Objektausgaben kann der Node nach Erreichen dieser Anzahl konfiguriert werden,
um für jede nachfolgende empfangene Nachricht eine Nachricht zu senden.</p>
<p>Ein <i>Timeout</i> kann so eingestellt werden, dass das Senden einer neuen Nachricht mit dem ausgelöst wird, was bisher empfangen wurde.</p>
<p>Wenn eine Nachricht mit der Eigenschaft <b>msg.complete</b> empfangen wird, wird die Ausgabemeldung finalisiert und gesendet.
Dadurch wird die Zählung aller Teile zurückgesetzt.</p>
<p>Wenn eine Nachricht mit der Eigenschaft <b>msg.reset</b> empfangen wird, wird die teilweise vollständige Nachricht gelöscht und nicht gesendet.
Dadurch wird die Zählung aller Teile zurückgesetzt.</p>
<h4>Reduktion der Sequenz Modus</h4>
<p>Wenn sie so konfiguriert sind, dass sie sich im Reduktionsmodus befinden, wird auf jede Nachricht in einer Sequenz ein Ausdruck angewendet
und das Ergebnis zu einer einzigen Nachricht zusammengefasst.</p>
<p>Die anderen Eigenschaften der Ausgangsnachricht werden von der zuletzt empfangenen Nachricht übernommen,
bevor das Ergebnis gesendet wird.</p>
<p>Mit <i>Anzahl</i> kann vorgegeben werden, wie viele Nachrichten vor dem Erzeugen der Ausgangsnadchricht empfangen werden sollen.
Bei Objektausgaben kann der Node nach Erreichen dieser Anzahl so eingestellt werden,
dass er bei jeder nachfolgenden empfangenen Nachricht eine weitere Nachricht sendet.</p>
<p>Mittels <i>Zeitablauf</i> kann das Senden einer neuen Nachricht mit dem Inhalt ausgelöst werden, was bisher empfangen wurde.</p>
<p>Wenn eine Nachricht mit der <code>msg.complete</code>-Eigenschaft empfangen wird,
wird die Ausgangsnachricht finalisiert und gesendet.
Dadurch wird die Zählung aller Teile zurückgesetzt.</p>
<p>Wenn eine Nachricht mit der <code>msg.reset</code>-Eigenschaft empfangen wird,
wird die unvollständige Nachricht gelöscht und nicht gesendet.
Dadurch wird die Zählung aller Teile zurückgesetzt.</p>
<h4>Modus Sequenz reduzieren</h4>
<p>In diesem Modus wird auf jede Nachricht einer Sequenz ein Ausdruck angewendet und
das Ergebnis zu einer einzigen Nachricht akkumuliert.</p>
<dl class="message-properties">
<dt>Anfangswert</dt>
<dd>Der Anfangswert des kumulierten Wertes (<code>$A</code>).</dd>
<dt>Reduktionsausdruck</dt>
<dd>Ein JSONata-Ausdruck, der für jede Nachricht in der Sequenz aufgerufen wird.
Das Ergebnis wird als kumulierter Wert an den nächsten Aufruf des Ausdrucks übergeben.
Im Ausdruck können die folgenden speziellen Variablen verwendet werden:
<dd>Anfangswert des akkumulierten Wertes (<code>$A</code>)</dd>
<dt>Reduktions-Ausdruck</dt>
<dd>JSONata-Ausdruck, der für jede Nachricht in der Sequenz aufgerufen wird.
Das Ergebnis wird als akkumulierter Wert an den nächsten Aufruf des Ausdrucks übergeben.
Im Ausdruck können folgende spezielle Variablen verwendet werden:
<ul>
<li><code>$A</code>: der kumulierte Wert, </li>
<li><code>$I</code>: Index der Nachricht innerhalb der Squenz, </li>
<li><code>$N</code>: Anzahl der Nachrichten in der Sequenz.</li>
<li><code>$A</code>: Akkumulierter Wert</li>
<li><code>$I</code>: Index der Nachricht innerhalb der Sequenz</li>
<li><code>$N</code>: Anzahl der Nachrichten der Sequenz</li>
</ul>
</dd>
<dt>Fix-up Ausdruck</dt>
<dd>Ein optionaler JSONata-Ausdruck, der angewendet wird, nachdem der Reduzierungsausdruck auf alle Nachrichten in der Sequenz angewendet wurde.
Im Ausdruck können folgende spezielle Variablen verwendet werden:
<dt>Fix-up-Ausdruck</dt>
<dd>Optionaler JSONata-Ausdruck, der nach Anwendung des Reduktions-Ausdrucks auf alle Nachrichten in der Sequenz angewendet wird.
Im Ausdruck können folgende spezielle Variablen verwendet werden:
<ul>
<li><code>$A</code>: der kumulierte Wert, </li>
<li><code>$N</code>: Anzahl der Nachrichten in der Sequenz.</li>
<li><code>$A</code>: Akkumulierter Wert</li>
<li><code>$N</code>: Anzahl der Nachrichten der Sequenz</li>
</ul>
</dd>
<p>Standardmäßig wird der Reduktionsausdruck in der Reihenfolge von der ersten bis zur letzten Nachricht der Sequenz angewendet.
Er kann optional in umgekehrter Reihenfolge angewendet werden.</p>
<p>Standardmäßig wird der Reduktions-Ausdruck in Reihenfolge von der ersten bis zur letzten Nachricht der Sequenz angewendet.
Er kann optional in umgekehrter Reihenfolge angewendet werden.</p>
</dl>
<p><b>Beispiel:</b> Die folgenden Einstellungen berechnen bei einer Folge von Zahlenwerten den Mittelwert:
<p><b>Beispiel:</b> Die folgenden Einstellungen berechnen bei einer Sequenz von Zahlenwerten den Mittelwert:
<ul>
<li><b>Reduce expression</b>: <code>$A+payload</code></li>
<li><b>Initial value</b>: <code>0</code></li>
<li><b>Fix-up expression</b>: <code>$A/$N</code></li>
<li><b>Reduktions-Ausdruck:</b> <code>$A+payload</code></li>
<li><b>Anfangswert:</b> <code>0</code></li>
<li><b>Fix-up-Ausdruck:</b> <code>$A/$N</code></li>
</ul>
</p>
<h4>Speichern von Nachrichtens</h4>
<h4>Speichern von Nachrichten</h4>
<p>Dieser Node puffert Nachrichten intern, um sequenzübergreifend zu arbeiten.
Mit der Laufzeiteinstellung <code>nodeMessageBufferMaxLength</code> kann begrenzt werden,
wie viele Nachrichten im Node zwischengespeichert werden sollen.</p>
Mit der Laufzeiteinstellung <code>nodeMessageBufferMaxLength</code> kann begrenzt werden,
wie viele Nachrichten im Node zwischengespeichert werden sollen.</p>
</script>