--- a/MqttMonitor/i18n/mqttmonitor_de.ts Sat Jul 24 16:12:05 2021 +0200 +++ b/MqttMonitor/i18n/mqttmonitor_de.ts Sat Jul 24 16:50:10 2021 +0200 @@ -4,37 +4,37 @@ <context> <name>MqttConnackMessage</name> <message> - <location filename="../MqttClient.py" line="483" /> + <location filename="../MqttClient.py" line="647" /> <source>Connection Accepted.</source> <translation>Verbindung akzeptiert.</translation> </message> <message> - <location filename="../MqttClient.py" line="487" /> + <location filename="../MqttClient.py" line="651" /> <source>Connection Refused: unacceptable protocol version.</source> <translation>Verbindung abgelehnt: inakzeptable Protokollversion.</translation> </message> <message> - <location filename="../MqttClient.py" line="491" /> + <location filename="../MqttClient.py" line="655" /> <source>Connection Refused: identifier rejected.</source> <translation>Verbindung abgelehnt: Identifizierer abgelehnt.</translation> </message> <message> - <location filename="../MqttClient.py" line="495" /> + <location filename="../MqttClient.py" line="659" /> <source>Connection Refused: broker unavailable.</source> <translation>Verbindung abgelehnt: Broker nicht verfügbar.</translation> </message> <message> - <location filename="../MqttClient.py" line="499" /> + <location filename="../MqttClient.py" line="663" /> <source>Connection Refused: bad user name or password.</source> <translation>Verbindung abgelehnt: Nutzername oder Kennwort ungültig.</translation> </message> <message> - <location filename="../MqttClient.py" line="503" /> + <location filename="../MqttClient.py" line="667" /> <source>Connection Refused: not authorised.</source> <translation>Verbindung abgelehnt: nicht autorisiert.</translation> </message> <message> - <location filename="../MqttClient.py" line="507" /> + <location filename="../MqttClient.py" line="671" /> <source>Connection Refused: unknown reason.</source> <translation>Verbindung abgelehnt: unbekante Ursache.</translation> </message> @@ -73,6 +73,41 @@ </message> <message> <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>MQTT Protocol</source> + <translation>MQTT Protokoll</translation> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to use the MQTT 3.1 protocol</source> + <translation>Auswählen, um das MQTT 3.1 Protokoll zu verwenden</translation> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>v 3.1</source> + <translation>v 3.1</translation> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to use the MQTT 3.1.1 protocol</source> + <translation>Auswählen, um das MQTT 3.1.1 Protokoll zu verwenden</translation> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>v 3.1.1</source> + <translation>v 3.1.1</translation> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to use the MQTT 5.0 protocol</source> + <translation>Auswählen, um das MQTT 5.0 Protokoll zu verwenden</translation> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>v 5.0</source> + <translation>v 5.0</translation> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> <source>Connection Timeout:</source> <translation>Verbindungszeitlimit:</translation> </message> @@ -134,8 +169,8 @@ </message> <message> <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> - <source>Last Will and Testament</source> - <translation>Letzter Wille und Testament</translation> + <source>Last Will</source> + <translation>Letzter Wille</translation> </message> <message> <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> @@ -164,6 +199,11 @@ </message> <message> <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Press to edit the user properties</source> + <translation>Drücken, um die 'User Properties' zu bearbeiten</translation> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> <source>Enter the last will message to be sent</source> <translation>Gib die zu sendende Nachricht des letzten Willens ein</translation> </message> @@ -193,125 +233,170 @@ <translation>Gib den vollständigen Pfad zur CA Zertifikatsdatei ein; leer lassen, um den Plattformstandard zu verwenden</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="47" /> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>User Properties</source> + <translation>Benutzereigenschaften</translation> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to edit the CONNECT user properties</source> + <translation>Auswählen, um die CONNECT Benutzereigenschaften zu bearbeiten</translation> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>CONNECT</source> + <translation>CONNECT</translation> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to edit the DISCONNECT user properties</source> + <translation>Auswählen, um die DISCONNECT Benutzereigenschaften zu bearbeiten</translation> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>DISCONNECT</source> + <translation>DISCONNECT</translation> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to use the CONNECT user properties when disconnecting</source> + <translation>Auswählen, um die CONNECT Benutzereigenschaften auch zur Trennung zu verwenden</translation> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Use CONNECT properties for DISCONNECT</source> + <translation>Verwende CONNECT Benutzereigenschaften für DISCONNECT</translation> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.py" line="50" /> <source>Certificate Files (*.crt *.pem);;All Files (*)</source> <translation>Zertifikatdateien (*.crt *.pem);;Alle Dateien (*)</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="64" /> + <location filename="../MqttConnectionOptionsDialog.py" line="80" /> <source>Invalid Connection Parameters</source> <translation>Ungültige Verbindungsparameter</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="65" /> + <location filename="../MqttConnectionOptionsDialog.py" line="81" /> <source>An empty Client ID requires a clean session.</source> <translation>Eine leere Client ID setzt eine neue Session voraus.</translation> </message> + <message> + <location filename="../MqttConnectionOptionsDialog.py" line="187" /> + <source>Last Will User Properties</source> + <translation>Benutzereigenschaften für Letzter Wille</translation> + </message> </context> <context> <name>MqttConnectionProfilesDialog</name> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="71" /> - <location filename="../MqttConnectionProfilesDialog.py" line="67" /> - <location filename="../MqttConnectionProfilesDialog.py" line="63" /> + <location filename="../MqttConnectionProfilesDialog.py" line="76" /> + <location filename="../MqttConnectionProfilesDialog.py" line="72" /> + <location filename="../MqttConnectionProfilesDialog.py" line="68" /> <source>Certificate Files (*.crt *.pem);;All Files (*)</source> <translation>Zertifikatdateien (*.crt *.pem);;Alle Dateien (*)</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="75" /> + <location filename="../MqttConnectionProfilesDialog.py" line="80" /> <source>Key Files (*.key *.pem);;All Files (*)</source> <translation>Schlüsseldateien (*.key *.pem);;Alle Dateien (*)</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="725" /> - <location filename="../MqttConnectionProfilesDialog.py" line="689" /> - <location filename="../MqttConnectionProfilesDialog.py" line="144" /> + <location filename="../MqttConnectionProfilesDialog.py" line="926" /> + <location filename="../MqttConnectionProfilesDialog.py" line="890" /> + <location filename="../MqttConnectionProfilesDialog.py" line="154" /> <source>Changed Connection Profile</source> <translation>Verbindungsprofil geändert</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="726" /> - <location filename="../MqttConnectionProfilesDialog.py" line="690" /> - <location filename="../MqttConnectionProfilesDialog.py" line="145" /> + <location filename="../MqttConnectionProfilesDialog.py" line="927" /> + <location filename="../MqttConnectionProfilesDialog.py" line="891" /> + <location filename="../MqttConnectionProfilesDialog.py" line="155" /> <source>The current profile has unsaved changes. Shall these be saved?</source> <translation>Das aktuelle Profil hat ungesicherte Änderungen. Sollen diese gesichert werden?</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="172" /> - <location filename="../MqttConnectionProfilesDialog.py" line="165" /> + <location filename="../MqttConnectionProfilesDialog.py" line="182" /> + <location filename="../MqttConnectionProfilesDialog.py" line="175" /> <source>New Connection Profile</source> <translation>Neues Verbindungsprofil</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="166" /> + <location filename="../MqttConnectionProfilesDialog.py" line="176" /> <source>Enter name for the new Connection Profile:</source> <translation>Gib eine Bezeichnung für das neue Verbindungsprofil ein:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="200" /> - <location filename="../MqttConnectionProfilesDialog.py" line="173" /> + <location filename="../MqttConnectionProfilesDialog.py" line="210" /> + <location filename="../MqttConnectionProfilesDialog.py" line="183" /> <source><p>A connection named <b>{0}</b> exists already. Aborting...</p></source> <translation><p>Eine Verbindung mit der Bezeichnung <b>{0}</b> existiert bereits. Abbruch...</p></translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="199" /> - <location filename="../MqttConnectionProfilesDialog.py" line="192" /> + <location filename="../MqttConnectionProfilesDialog.py" line="209" /> + <location filename="../MqttConnectionProfilesDialog.py" line="202" /> <source>Copy Connection Profile</source> <translation>Verbindungsprofil kopieren</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="193" /> + <location filename="../MqttConnectionProfilesDialog.py" line="203" /> <source>Enter name for the copied Connection Profile:</source> <translation>Gib eine Bezeichnung für das kopierte Verbindungsprofil ein:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="223" /> + <location filename="../MqttConnectionProfilesDialog.py" line="235" /> <source>Delete Connection Profile</source> <translation>Verbindungsprofil löschen</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="224" /> + <location filename="../MqttConnectionProfilesDialog.py" line="236" /> <source><p>Shall the Connection Profile <b>{0}</b> really be deleted?</p></source> <translation><p>Soll das Verbindungsprofil <b>{0}</b> wirklich gelöscht werden?</p></translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="496" /> + <location filename="../MqttConnectionProfilesDialog.py" line="636" /> <source>Invalid Connection Parameters</source> <translation>Ungültige Verbindungsparameter</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="497" /> + <location filename="../MqttConnectionProfilesDialog.py" line="637" /> <source>An empty Client ID requires a clean session.</source> <translation>Eine leere Client ID setzt eine neue Session voraus.</translation> </message> <message> + <location filename="../MqttConnectionProfilesDialog.py" line="732" /> + <source>Last Will User Properties</source> + <translation>Benutzereigenschaften für Letzter Wille</translation> + </message> + <message> <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <location filename="../MqttConnectionProfilesDialog.py" line="621" /> + <location filename="../MqttConnectionProfilesDialog.py" line="788" /> <source>SSL/TLS Enabled</source> <translation>SSL/TLS aktiviert</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="622" /> + <location filename="../MqttConnectionProfilesDialog.py" line="789" /> <source>Encrypted connection using SSL/TLS has been enabled. However, the broker port is still the default unencrypted port (port 1883). Shall this be changed?</source> <translation>Eine mit SSL/TLS verschlüsselte Verbindung wurde aktiviert. Jedoch ist der Brokerport noch auf den standardmäßigen, unverschlüsselten Port (Port 1883) eingestellt. Soll dies geändert werden?</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="635" /> + <location filename="../MqttConnectionProfilesDialog.py" line="802" /> <source>SSL/TLS Disabled</source> <translation>SSL/TLS deaktiviert</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="636" /> + <location filename="../MqttConnectionProfilesDialog.py" line="803" /> <source>Encrypted connection using SSL/TLS has been disabled. However, the broker port is still the default encrypted port (port 8883). Shall this be changed?</source> <translation>Eine mit SSL/TLS verschlüsselte Verbindung wurde deaktiviert. Jedoch ist der Brokerport noch auf den standardmäßigen, verschlüsselten Port (Port 8883) eingestellt. Soll dies geändert werden?</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="702" /> + <location filename="../MqttConnectionProfilesDialog.py" line="903" /> <source>Changed Connection Profiles</source> <translation>Verbindungsprofile geändert</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="703" /> + <location filename="../MqttConnectionProfilesDialog.py" line="904" /> <source>The list of connection profiles has unsaved changes.</source> <translation>Die Liste der Verbindungsprofile hat ungesicherte Änderungen.</translation> </message> @@ -387,6 +472,41 @@ </message> <message> <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>MQTT Protocol</source> + <translation>MQTT Protokoll</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to use the MQTT 3.1 protocol</source> + <translation>Auswählen, um das MQTT 3.1 Protokoll zu verwenden</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>v 3.1</source> + <translation>v 3.1</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to use the MQTT 3.1.1 protocol</source> + <translation>Auswählen, um das MQTT 3.1.1 Protokoll zu verwenden</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>v 3.1.1</source> + <translation>v 3.1.1</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to use the MQTT 5.0 protocol</source> + <translation>Auswählen, um das MQTT 5.0 Protokoll zu verwenden</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>v 5.0</source> + <translation>v 5.0</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> <source>Connection Timeout:</source> <translation>Verbindungszeitlimit:</translation> </message> @@ -463,6 +583,11 @@ </message> <message> <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>QoS:</source> + <translation>QoS:</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> <source>Enter the desired QoS value</source> <translation>Gib den gewünschten QoS Wert ein</translation> </message> @@ -478,6 +603,11 @@ </message> <message> <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Press to edit the user properties</source> + <translation>Drücken, um die 'User Properties' zu bearbeiten</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> <source>Enter the last will message to be sent</source> <translation>Gib die zu sendende Nachricht des letzten Willens ein</translation> </message> @@ -553,87 +683,122 @@ <source>Enter the full path to the client key file</source> <translation>Gib den vollständigen Pfad zur Schlüsseldatei des Client ein</translation> </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>User Properties</source> + <translation>Benutzereigenschaften</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to edit the CONNECT user properties</source> + <translation>Auswählen, um die CONNECT Benutzereigenschaften zu bearbeiten</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>CONNECT</source> + <translation>CONNECT</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to edit the DISCONNECT user properties</source> + <translation>Auswählen, um die DISCONNECT Benutzereigenschaften zu bearbeiten</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>DISCONNECT</source> + <translation>DISCONNECT</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to use the CONNECT user properties when disconnecting</source> + <translation>Auswählen, um die CONNECT Benutzereigenschaften auch zur Trennung zu verwenden</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Use CONNECT properties for DISCONNECT</source> + <translation>Verwende CONNECT Benutzereigenschaften für DISCONNECT</translation> + </message> </context> <context> <name>MqttErrorMessage</name> <message> - <location filename="../MqttClient.py" line="523" /> + <location filename="../MqttClient.py" line="687" /> <source>No error.</source> <translation>Kein Fehler.</translation> </message> <message> - <location filename="../MqttClient.py" line="527" /> + <location filename="../MqttClient.py" line="691" /> <source>Out of memory.</source> <translation>Nicht genügend Speicher.</translation> </message> <message> - <location filename="../MqttClient.py" line="531" /> + <location filename="../MqttClient.py" line="695" /> <source>A network protocol error occurred when communicating with the broker.</source> <translation>Bei der Kommunikation mit dem Broker ist ein Netzprotokollfehler aufgetreten.</translation> </message> <message> - <location filename="../MqttClient.py" line="536" /> + <location filename="../MqttClient.py" line="700" /> <source>Invalid function arguments provided.</source> <translation>Ungültige Funktionsargumente angegeben.</translation> </message> <message> - <location filename="../MqttClient.py" line="540" /> + <location filename="../MqttClient.py" line="704" /> <source>The client is not currently connected.</source> <translation>Der Client ist momentan nicht verbunden.</translation> </message> <message> - <location filename="../MqttClient.py" line="544" /> + <location filename="../MqttClient.py" line="708" /> <source>The connection was refused.</source> <translation>Die Verbindung wurde abgelehnt.</translation> </message> <message> - <location filename="../MqttClient.py" line="548" /> + <location filename="../MqttClient.py" line="712" /> <source>Message not found (internal error).</source> <translation>Nachricht nicht gefunden (interner Fehler).</translation> </message> <message> - <location filename="../MqttClient.py" line="552" /> + <location filename="../MqttClient.py" line="716" /> <source>The connection was lost.</source> <translation>Die Verbindung wurde unterbrochen.</translation> </message> <message> - <location filename="../MqttClient.py" line="556" /> + <location filename="../MqttClient.py" line="720" /> <source>A TLS error occurred.</source> <translation>Es ist ein TLS-Fehler aufgetreten.</translation> </message> <message> - <location filename="../MqttClient.py" line="560" /> + <location filename="../MqttClient.py" line="724" /> <source>Payload too large.</source> <translation>Nutzdaten zu groß.</translation> </message> <message> - <location filename="../MqttClient.py" line="564" /> + <location filename="../MqttClient.py" line="728" /> <source>This feature is not supported.</source> <translation>Diese Funktion wird nicht unterstützt.</translation> </message> <message> - <location filename="../MqttClient.py" line="568" /> + <location filename="../MqttClient.py" line="732" /> <source>Authorisation failed.</source> <translation>Authorisierung fehlgeschlagen.</translation> </message> <message> - <location filename="../MqttClient.py" line="572" /> + <location filename="../MqttClient.py" line="736" /> <source>Access denied by ACL.</source> <translation>Zugriff durch ACL verweigert.</translation> </message> <message> - <location filename="../MqttClient.py" line="588" /> - <location filename="../MqttClient.py" line="576" /> + <location filename="../MqttClient.py" line="752" /> + <location filename="../MqttClient.py" line="740" /> <source>Unknown error.</source> <translation>Unbekannter Fehler.</translation> </message> <message> - <location filename="../MqttClient.py" line="580" /> + <location filename="../MqttClient.py" line="744" /> <source>Error defined by errno.</source> <translation>Fehler durch errno definiert.</translation> </message> <message> - <location filename="../MqttClient.py" line="584" /> + <location filename="../MqttClient.py" line="748" /> <source>Message queue full.</source> <translation>Warteschlange ist voll.</translation> </message> @@ -641,38 +806,38 @@ <context> <name>MqttLogLevelString</name> <message> - <location filename="../MqttClient.py" line="627" /> - <location filename="../MqttClient.py" line="609" /> + <location filename="../MqttClient.py" line="791" /> + <location filename="../MqttClient.py" line="773" /> <source>Unknown</source> <translation>Unbekannt</translation> </message> <message> - <location filename="../MqttClient.py" line="614" /> + <location filename="../MqttClient.py" line="778" /> <source>Info</source> <translation>Info</translation> </message> <message> - <location filename="../MqttClient.py" line="616" /> + <location filename="../MqttClient.py" line="780" /> <source>Notice</source> <translation>Notiz</translation> </message> <message> - <location filename="../MqttClient.py" line="618" /> + <location filename="../MqttClient.py" line="782" /> <source>Warning</source> <translation>Warnung</translation> </message> <message> - <location filename="../MqttClient.py" line="620" /> + <location filename="../MqttClient.py" line="784" /> <source>Error</source> <translation>Fehler</translation> </message> <message> - <location filename="../MqttClient.py" line="622" /> + <location filename="../MqttClient.py" line="786" /> <source>Debug</source> <translation>Debug</translation> </message> <message> - <location filename="../MqttClient.py" line="624" /> + <location filename="../MqttClient.py" line="788" /> <source>Logging Disabled</source> <translation>Protokollierung aus</translation> </message> @@ -680,48 +845,49 @@ <context> <name>MqttMonitorPlugin</name> <message> - <location filename="../../PluginMqttMonitor.py" line="58" /> + <location filename="../../PluginMqttMonitor.py" line="189" /> + <location filename="../../PluginMqttMonitor.py" line="186" /> + <location filename="../../PluginMqttMonitor.py" line="78" /> + <source>MQTT Monitor</source> + <translation>MQTT Monitor</translation> + </message> + <message> + <location filename="../../PluginMqttMonitor.py" line="97" /> <source>(package not available)</source> <translation>(Paket nicht verfügbar)</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="63" /> + <location filename="../../PluginMqttMonitor.py" line="102" /> <source>MQTT</source> <translation>MQTT</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="64" /> + <location filename="../../PluginMqttMonitor.py" line="103" /> <source>paho-mqtt</source> <translation>paho-mqtt</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="122" /> + <location filename="../../PluginMqttMonitor.py" line="172" /> <source>The 'paho-mqtt' package is not available.</source> <translation>Das 'paho-mqtt' Paket ist nicht verfügbar.</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="139" /> - <location filename="../../PluginMqttMonitor.py" line="136" /> - <source>MQTT Monitor</source> - <translation>MQTT Monitor</translation> - </message> - <message> - <location filename="../../PluginMqttMonitor.py" line="140" /> + <location filename="../../PluginMqttMonitor.py" line="190" /> <source>M&QTT Monitor</source> <translation>M&QTT Monitor</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="141" /> + <location filename="../../PluginMqttMonitor.py" line="191" /> <source>Alt+Shift+Q</source> <translation>Alt+Shift+Q</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="144" /> + <location filename="../../PluginMqttMonitor.py" line="194" /> <source>Switch the input focus to the MQTT Monitor window.</source> <translation>Schaltet den Eingabefokus auf das MQTT-Überwachungsfenster um.</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="146" /> + <location filename="../../PluginMqttMonitor.py" line="196" /> <source><b>Activate MQTT Monitor</b><p>This switches the input focus to the MQTT Monitor window.</p></source> <translation><b>MQTT Monitor aktivieren</b><p>Dies schaltet den Eingabefokus auf das MQTT-Überwachungsfenster um.</p></translation> </message> @@ -770,11 +936,16 @@ </message> <message> <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Select to clear a previously set last will message</source> + <translation>Auswählen, um einen zuvor festgelegten Letzten Willen zu löschen</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Pub/Sub</source> <translation>Pub/Sub</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="765" /> + <location filename="../MqttMonitorWidget.py" line="1016" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Subscribe</source> @@ -810,7 +981,14 @@ <translation>Drücken, um das eingegebene Thema zu abonieren</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="761" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to edit the user properties</source> + <translation>Drücken, um die 'User Properties' zu bearbeiten</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1012" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Unsubscribe</source> <translation>Abo kündigen</translation> @@ -867,6 +1045,7 @@ <translation>Drücken, um die Veröffentlichungsdaten zu löschen</translation> </message> <message> + <location filename="../MqttMonitorWidget.py" line="278" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <location filename="../MqttMonitorWidget.ui" line="0" /> @@ -875,6 +1054,16 @@ </message> <message> <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to clear the retained messages of the selected topic</source> + <translation>Drücken, um die gemerkten Meldungen des ausgewählten Themas zu löschen</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Clear Retained</source> + <translation>Gemerkte löschen</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Select to clear the publish data after the message was published</source> <translation>Auswählen, um die Veröffentlichungsdaten nach dem Senden zu löschen</translation> </message> @@ -885,6 +1074,11 @@ </message> <message> <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>MQTT V5 Properties</source> + <translation>MQTT v5 Eigenschaften</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Messages</source> <translation>Meldungen</translation> </message> @@ -920,7 +1114,7 @@ <translation>Status</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="767" /> + <location filename="../MqttMonitorWidget.py" line="1018" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Press to activate the status display</source> <translation>Drücken, um die Statusanzeige zu aktivieren</translation> @@ -1064,8 +1258,8 @@ </message> <message> <location filename="../MqttMonitorWidget.ui" line="0" /> - <source><b>Load</b></source> - <translation><b>Last</b></translation> + <source><b>Load</b> (1 min / 5 min / 15 min)</source> + <translation><b>Last</b> (1 Min / 5 Min / 15 Min)</translation> </message> <message> <location filename="../MqttMonitorWidget.ui" line="0" /> @@ -1151,98 +1345,514 @@ <translation>Empfangenen Protokollmeldungen folgen</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="68" /> + <location filename="../MqttMonitorWidget.py" line="70" /> <source>All Files (*)</source> <translation>Alle Dateien (*)</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="249" /> + <location filename="../MqttMonitorWidget.py" line="270" /> + <source>Copy</source> + <translation>Kopieren</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="274" /> + <source>Select All</source> + <translation>Alles auswählen</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="322" /> + <source>{0} - Session still present</source> + <translation>{0} - Sitzung existiert noch</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="358" /> <source>Connection timed out</source> <translation>Zeitlimit für Verbindung überschritten</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="268" /> + <location filename="../MqttMonitorWidget.py" line="385" /> <source>Connection to Broker shut down cleanly.</source> <translation>Die Verbindung zum Broker wurde ordnungsgemäß beendet.</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="321" /> + <location filename="../MqttMonitorWidget.py" line="442" /> <source>{0}: {1}</source> <translation>{0}: {1}</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="516" /> + <location filename="../MqttMonitorWidget.py" line="665" /> + <source>SUBSCRIBE: User Properties for '{0}'</source> + <translation>SUBSCRIBE: Benutzereigenschaften für '{0}'</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="691" /> <source>Subscribe to Topic</source> <translation>Thema abonnieren</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="517" /> + <location filename="../MqttMonitorWidget.py" line="692" /> <source>Subscriptions to the Status topic '$SYS' shall be done on the 'Status' tab.</source> <translation>Abonnements zum Statusthema '$SYS' werden auf der Registerkarte 'Status' ausgeführt.</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="574" /> + <location filename="../MqttMonitorWidget.py" line="713" /> + <source>UNSUBSCRIBE: User Properties for '{0}'</source> + <translation>UNSUBSCRIBE: Benutzereigenschaften für '{0}'</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="753" /> + <source>PUBLISH: User Properties for '{0}'</source> + <translation>PUBLISH: Benutzereigenschaften für '{0}'</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="789" /> <source>Read Payload from File</source> <translation>Nutzdaten aus Datei lesen</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="575" /> + <location filename="../MqttMonitorWidget.py" line="790" /> <source><p>The file <b>{0}</b> could not be read. Aborting...</p><p>Reason: {1}</p></source> <translation><p>Die Datei <b>{0}</b> konnte nicht gelesen werden. Abbruch...</p><p>Ursache: {1}</p></translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="686" /> - <location filename="../MqttMonitorWidget.py" line="672" /> - <location filename="../MqttMonitorWidget.py" line="654" /> + <location filename="../MqttMonitorWidget.py" line="937" /> + <location filename="../MqttMonitorWidget.py" line="923" /> + <location filename="../MqttMonitorWidget.py" line="905" /> <source>Save Messages</source> <translation>Meldungen speichern</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="656" /> + <location filename="../MqttMonitorWidget.py" line="907" /> <source>Messages Files (*.txt);;All Files (*)</source> <translation>Meldungsdateien (*.txt);;Alle Dateien (*)</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="729" /> - <location filename="../MqttMonitorWidget.py" line="673" /> + <location filename="../MqttMonitorWidget.py" line="980" /> + <location filename="../MqttMonitorWidget.py" line="924" /> <source><p>The file <b>{0}</b> already exists. Overwrite it?</p></source> <translation><p>Die Datei <b>{0}</b> existiert bereits. Überschreiben?</p></translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="743" /> - <location filename="../MqttMonitorWidget.py" line="687" /> + <location filename="../MqttMonitorWidget.py" line="994" /> + <location filename="../MqttMonitorWidget.py" line="938" /> <source><p>The file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> <translation><p>Die Datei <b>{0}</b> konnte nicht geschrieben werden.</p><p>Ursache: {1}</p></translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="742" /> - <location filename="../MqttMonitorWidget.py" line="728" /> - <location filename="../MqttMonitorWidget.py" line="710" /> + <location filename="../MqttMonitorWidget.py" line="993" /> + <location filename="../MqttMonitorWidget.py" line="979" /> + <location filename="../MqttMonitorWidget.py" line="961" /> <source>Save Log Messages</source> <translation>Protokollmeldungen speichern</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="712" /> + <location filename="../MqttMonitorWidget.py" line="963" /> <source>Log Files (*.log);;All Files (*)</source> <translation>Protokolldateien (*.log);;Alle Dateien (*)</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="763" /> + <location filename="../MqttMonitorWidget.py" line="1014" /> <source>Press to deactivate the status display</source> <translation>Drücken, um die Statusanzeige zu deaktivieren</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="895" /> + <location filename="../MqttMonitorWidget.py" line="1183" /> <source>QoS: {0} </source> <translation>QoS: {0} </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1048" /> - <location filename="../MqttMonitorWidget.py" line="1022" /> + <location filename="../MqttMonitorWidget.py" line="1187" /> + <source>Retained Message +</source> + <translation>Gemerkte Meldung +</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1192" /> + <source>Properties: +</source> + <translation>Eigenschaften: +</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1196" /> + <source>{0}: {1} +</source> + <comment>property name, property value</comment> + <translation>{0}: {1} +</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1201" /> + <source>Message: +</source> + <translation>Meldung: +</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1208" /> + <source><empty></source> + <translation><leer></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1376" /> + <location filename="../MqttMonitorWidget.py" line="1330" /> <source>Connecting to {0}:{1} ...</source> <translation>Verbinde zu {0}:{1} ...</translation> </message> </context> + <context> + <name>MqttPage</name> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source><b>Configure MQTT Monitor</b></source> + <translation><b>Konfiguration des MQTT Monitor</b></translation> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Default MQTT Protocol</source> + <translation>Standard MQTT Protokoll</translation> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Select to use the MQTT 3.1 protocol</source> + <translation>Auswählen, um das MQTT 3.1 Protokoll zu verwenden</translation> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>v 3.1</source> + <translation>v 3.1</translation> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Select to use the MQTT 3.1.1 protocol</source> + <translation>Auswählen, um das MQTT 3.1.1 Protokoll zu verwenden</translation> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>v 3.1.1</source> + <translation>v 3.1.1</translation> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Select to use the MQTT 5.0 protocol</source> + <translation>Auswählen, um das MQTT 5.0 Protokoll zu verwenden</translation> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>v 5.0</source> + <translation>v 5.0</translation> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Recent Brokers</source> + <translation>Zuletzte genutzte Broker</translation> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Number of recent brokers:</source> + <translation>Anzahl zuletzt genutzter Broker:</translation> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Enter the number of recent brokers to remember</source> + <translation>Gib die zu merkende Anzahl an zuletzt genutzten Broker ein</translation> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Recent Topics</source> + <translation>Zuletzt abonnierte Themen</translation> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Number of recent topics:</source> + <translation>Anzahl zuletzt abonnierter Themen:</translation> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Enter the number of recent topics to remember</source> + <translation>Gib die zu merkende Anzahl an zuletzt abonnierten Themen ein</translation> + </message> + </context> + <context> + <name>MqttReasonCodeNames</name> + <message> + <location filename="../MqttReasonCodes.py" line="16" /> + <source>Success</source> + <translation>Erfolg</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="21" /> + <source>Normal disconnection</source> + <translation>Normale Trennung</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="24" /> + <source>Granted QoS 0</source> + <translation>QoS 0 genehmigt</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="28" /> + <source>Granted QoS 1</source> + <translation>QoS 1 genehmigt</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="32" /> + <source>Granted QoS 2</source> + <translation>QoS 2 genehmigt</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="36" /> + <source>Disconnect with will message</source> + <translation>Trennung mit letztem Willen</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="40" /> + <source>No matching subscribers</source> + <translation>Keine passenden Abonnenten</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="44" /> + <source>No subscription found</source> + <translation>Kein Abonnement gefunden</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="48" /> + <source>Continue authentication</source> + <translation>Authentisierung fortsetzen</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="52" /> + <source>Re-authenticate</source> + <translation>Neuauthentisierung</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="56" /> + <source>Unspecified error</source> + <translation>Unspezifizierter Fehler</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="62" /> + <source>Malformed packet</source> + <translation>Fehlerhaftes Paket</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="66" /> + <source>Protocol error</source> + <translation>Protokollfehler</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="70" /> + <source>Implementation specific error</source> + <translation>Implementierungsspezifischer Fehler</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="76" /> + <source>Unsupported protocol version</source> + <translation>Nicht unterstützte Protokollversion</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="80" /> + <source>Client identifier not valid</source> + <translation>Client-ID nicht gültig</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="84" /> + <source>Bad user name or password</source> + <translation>Ungültiger Nutzername oder Kennwort</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="88" /> + <source>Not authorized</source> + <translation>Nicht authorisiert</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="94" /> + <source>Server unavailable</source> + <translation>Server nicht verfügbar</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="98" /> + <source>Server busy</source> + <translation>Server ausgelastet</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="102" /> + <source>Banned</source> + <translation>Gebannt</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="106" /> + <source>Server shutting down</source> + <translation>Server fährt herunter</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="110" /> + <source>Bad authentication method</source> + <translation>Ungültige Authentifizierungsmethode</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="114" /> + <source>Keep alive timeout</source> + <translation>Keep Alive Timeout</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="118" /> + <source>Session taken over</source> + <translation>Sitzung übernommen</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="122" /> + <source>Topic filter invalid</source> + <translation>Themenfilter ungültig</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="127" /> + <source>Topic name invalid</source> + <translation>Themenname ungültig</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="132" /> + <source>Packet identifier in use</source> + <translation>Paketkennung in Verwendung</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="137" /> + <source>Packet identifier not found</source> + <translation>Paketkennung nicht gefunden</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="141" /> + <source>Receive maximum exceeded</source> + <translation>Empfangsmaximum überschritten</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="145" /> + <source>Topic alias invalid</source> + <translation>Themenalias ungültig</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="149" /> + <source>Packet too large</source> + <translation>Paket zu groß</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="153" /> + <source>Message rate too high</source> + <translation>Meldungsrate zu hoch</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="157" /> + <source>Quota exceeded</source> + <translation>Quota überschritten</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="163" /> + <source>Administrative action</source> + <translation>Administrative Aktion</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="167" /> + <source>Payload format invalid</source> + <translation>Nutzlastformat ungültig</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="171" /> + <source>Retain not supported</source> + <translation>Merken nicht unterstützt</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="175" /> + <source>QoS not supported</source> + <translation>QoS nicht unterstützt</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="179" /> + <source>Use another server</source> + <translation>Verwende anderen Server</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="183" /> + <source>Server moved</source> + <translation>Server umgezogen</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="187" /> + <source>Shared subscription not supported</source> + <translation>Geteiltes Abonnement nicht unterstützt</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="191" /> + <source>Connection rate exceeded</source> + <translation>Verbindungsrate überschritten</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="195" /> + <source>Maximum connect time</source> + <translation>Maximale Verbindungszeit</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="199" /> + <source>Subscription identifiers not supported</source> + <translation>Abonnement-IDs nicht unterstützt</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="203" /> + <source>Wildcard subscription not supported</source> + <translation>Wildcard-Abonnement nicht unterstützt</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="222" /> + <source>Unknown result code ({0})</source> + <translation>Unbekannter Ergebniscode ({0})</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="229" /> + <source>Unknown result code ({0}) for packet type '{1}'</source> + <translation>Unbekannter Ergebniscode ({0}) für Pakettyp '{1}'</translation> + </message> + </context> + <context> + <name>MqttUserPropertiesEditor</name> + <message> + <location filename="../MqttUserPropertiesEditor.ui" line="0" /> + <source>User Properties</source> + <translation>Benutzereigenschaften</translation> + </message> + <message> + <location filename="../MqttUserPropertiesEditor.ui" line="0" /> + <source>Key</source> + <translation>Schlüssel</translation> + </message> + <message> + <location filename="../MqttUserPropertiesEditor.ui" line="0" /> + <source>Value</source> + <translation>Wert</translation> + </message> + <message> + <location filename="../MqttUserPropertiesEditor.ui" line="0" /> + <source>Press to add a new empty row</source> + <translation>Drücken, um eine neue, leere Zeile anzufügen</translation> + </message> + <message> + <location filename="../MqttUserPropertiesEditor.ui" line="0" /> + <source>Press to delete the selected properties</source> + <translation>Drücken, um die ausgewählten Eigenschaften zu löschen</translation> + </message> + <message> + <location filename="../MqttUserPropertiesEditor.ui" line="0" /> + <source>Press to delete all properties</source> + <translation>Drücken, um alle Eigenschaften zu löschen</translation> + </message> + </context> + <context> + <name>MqttUserPropertiesEditorDialog</name> + <message> + <location filename="../MqttUserPropertiesEditor.py" line="134" /> + <source>User Properties</source> + <translation>Benutzereigenschaften</translation> + </message> + </context> </TS>