Fri, 19 Apr 2024 15:15:01 +0200
Modified the plugin for 'paho-mqtt' >=2.0.0.
--- a/ChangeLog Sat Jan 06 13:11:01 2024 +0100 +++ b/ChangeLog Fri Apr 19 15:15:01 2024 +0200 @@ -1,5 +1,8 @@ ChangeLog --------- +Version 11.0.0: +- modified the plugin for 'paho-mqtt' >=2.0.0 + Version 10.5.0 - adapted code to eric 24.2 and newer
--- a/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttClient.html Sat Jan 06 13:11:01 2024 +0100 +++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttClient.html Fri Apr 19 15:15:01 2024 +0200 @@ -27,10 +27,6 @@ <h3>Functions</h3> <table> <tr> -<td><a href="#mqttConnackMessage">mqttConnackMessage</a></td> -<td>Module function to get the string associated with a CONNACK result.</td> -</tr> -<tr> <td><a href="#mqttErrorMessage">mqttErrorMessage</a></td> <td>Module function to get the error string associated with an MQTT error number.</td> </tr> @@ -56,59 +52,40 @@ emitted to indicate, that a connection attempt timed out </dd> -<dt>onConnectV3(flags, rc)</dt> -<dd> -emitted after the client has connected to - the broker (MQTT v3) -</dd> -<dt>onConnectV5(flags, rc, packetType, properties emitted after theclient has connected to the broker (MQTT v5)</dt> +<dt>onConnect(connectFlags, rc, packetType, properties)</dt> <dd> - +emitted after the + client has connected to the broker </dd> -<dt>onDisconnectedV3(rc)</dt> -<dd> -emitted after the client has disconnected from - the broker (MQTT v3) -</dd> -<dt>onDisconnectedV5(rc, packetType)</dt> +<dt>onDisconnected(rc, packetType)</dt> <dd> emitted after the client has - disconnected from the broker (MQTT v5) + disconnected from the broker </dd> <dt>onLog(level, message)</dt> <dd> emitted to send client log data </dd> -<dt>onMessageV3(topic, payload, qos, retain)</dt> -<dd> -emitted after a message - has been received by the client (MQTT v3) -</dd> -<dt>onMessageV5(topic, payload, qos, retain, properties)</dt> +<dt>onMessage(topic, payload, qos, retain, properties)</dt> <dd> emitted after - a message has been received by the client (MQTT v5) + a message has been received by the client </dd> <dt>onPublish(mid)</dt> <dd> emitted after a message has been published </dd> -<dt>onSubscribeV3(mid, grantedQos)</dt> -<dd> -emitted after the client has - subscribed to some topics (MQTT v3) -</dd> -<dt>onSubscribeV5(mid, reasonCodes, properties)</dt> +<dt>onSubscribe(mid, reasonCodes, properties)</dt> <dd> emitted after the - client has subscribed to some topics (MQTT v5) + client has subscribed to some topics </dd> -<dt>onUnsubscribeV3(mid)</dt> +<dt>onUnsubscribe(mid)</dt> <dd> emitted after the client has unsubscribed from some topics (MQTT v3) </dd> -<dt>onUnsubscribeV5(mid, rc, packetType, properties)</dt> +<dt>onUnsubscribe(mid, rc, packetType, properties)</dt> <dd> emitted after the client has unsubscribed from some topics (MQTT v5) @@ -155,52 +132,32 @@ <td>Private method to initialize the MQTT callback methods.</td> </tr> <tr> -<td><a href="#MqttClient.__onConnectV3">__onConnectV3</a></td> -<td>Private method to handle the connect to the broker (MQTT v3.1 and v3.1.1).</td> +<td><a href="#MqttClient.__onConnect">__onConnect</a></td> +<td>Private method to handle the connect to the broker.</td> </tr> <tr> -<td><a href="#MqttClient.__onConnectV5">__onConnectV5</a></td> -<td>Private method to handle the connect to the broker (MQTT v5.0).</td> -</tr> -<tr> -<td><a href="#MqttClient.__onDisconnectedV3">__onDisconnectedV3</a></td> -<td>Private method to handle the disconnect from the broker (MQTT v3.1 and v3.1.1).</td> -</tr> -<tr> -<td><a href="#MqttClient.__onDisconnectedV5">__onDisconnectedV5</a></td> -<td>Private method to handle the disconnect from the broker (MQTT v5.0).</td> +<td><a href="#MqttClient.__onDisconnected">__onDisconnected</a></td> +<td>Private method to handle the disconnect from the broker.</td> </tr> <tr> <td><a href="#MqttClient.__onLog">__onLog</a></td> -<td>Private method to handle a log event (MQTT v3.1, v3.1.1 and v5.0).</td> +<td>Private method to handle a log event.</td> </tr> <tr> -<td><a href="#MqttClient.__onMessageV3">__onMessageV3</a></td> -<td>Private method to handle a new message received from the broker (MQTT v3.1 and v3.1.1).</td> -</tr> -<tr> -<td><a href="#MqttClient.__onMessageV5">__onMessageV5</a></td> -<td>Private method to handle a new message received from the broker (MQTT v5.0).</td> +<td><a href="#MqttClient.__onMessage">__onMessage</a></td> +<td>Private method to handle a new message received from the broker.</td> </tr> <tr> <td><a href="#MqttClient.__onPublish">__onPublish</a></td> -<td>Private method to handle the publishing of a message (MQTT v3.1, v3.1.1 and v5.0).</td> -</tr> -<tr> -<td><a href="#MqttClient.__onSubscribeV3">__onSubscribeV3</a></td> -<td>Private method to handle a subscribe event (MQTT v3.1 and v3.1.1).</td> +<td>Private method to handle the publishing of a message.</td> </tr> <tr> -<td><a href="#MqttClient.__onSubscribeV5">__onSubscribeV5</a></td> -<td>Private method to handle a subscribe event (MQTT v5.0).</td> +<td><a href="#MqttClient.__onSubscribe">__onSubscribe</a></td> +<td>Private method to handle a subscribe event.</td> </tr> <tr> -<td><a href="#MqttClient.__onUnsubscribeV3">__onUnsubscribeV3</a></td> -<td>Private method to handle an unsubscribe event (MQTT v3.1 and v3.1.1).</td> -</tr> -<tr> -<td><a href="#MqttClient.__onUnsubscribeV5">__onUnsubscribeV5</a></td> -<td>Private method to handle an unsubscribe event (MQTT v5.0).</td> +<td><a href="#MqttClient.__onUnsubscribe">__onUnsubscribe</a></td> +<td>Private method to handle an unsubscribe event.</td> </tr> <tr> <td><a href="#MqttClient.clearLastWill">clearLastWill</a></td> @@ -379,142 +336,89 @@ </dl> <a NAME="MqttClient.__initCallbacks" ID="MqttClient.__initCallbacks"></a> <h4>MqttClient.__initCallbacks</h4> -<b>__initCallbacks</b>(<i>protocol</i>) +<b>__initCallbacks</b>(<i></i>) <p> Private method to initialize the MQTT callback methods. </p> -<dl> - -<dt><i>protocol</i> (MqttProtocols)</dt> -<dd> -MQTT protocol version -</dd> -</dl> -<a NAME="MqttClient.__onConnectV3" ID="MqttClient.__onConnectV3"></a> -<h4>MqttClient.__onConnectV3</h4> -<b>__onConnectV3</b>(<i>client, userdata, flags, rc, properties=None, </i>) +<a NAME="MqttClient.__onConnect" ID="MqttClient.__onConnect"></a> +<h4>MqttClient.__onConnect</h4> +<b>__onConnect</b>(<i>_client, _userdata, connectFlags, rc, properties, </i>) <p> - Private method to handle the connect to the broker (MQTT v3.1 and v3.1.1). + Private method to handle the connect to the broker. </p> <dl> -<dt><i>client</i> (paho.mqtt.Client)</dt> -<dd> -reference to the client object -</dd> -<dt><i>userdata</i> (Any)</dt> -<dd> -user data -</dd> -<dt><i>flags</i> (dict)</dt> +<dt><i>_client</i> (paho.mqtt.Client)</dt> <dd> -dictionary containing the response flags sent by the broker -</dd> -<dt><i>rc</i> (int)</dt> -<dd> -result code -</dd> -<dt><i>properties</i> (dict (optional))</dt> -<dd> -optional properties (defaults to None) +reference to the client object (unused) </dd> -</dl> -<a NAME="MqttClient.__onConnectV5" ID="MqttClient.__onConnectV5"></a> -<h4>MqttClient.__onConnectV5</h4> -<b>__onConnectV5</b>(<i>client, userdata, flags, rc, properties=None, </i>) -<p> - Private method to handle the connect to the broker (MQTT v5.0). -</p> - -<dl> - -<dt><i>client</i> (paho.mqtt.Client)</dt> +<dt><i>_userdata</i> (Any)</dt> <dd> -reference to the client object +user data (unused) </dd> -<dt><i>userdata</i> (Any)</dt> +<dt><i>connectFlags</i> (mqtt.ConnectFlags)</dt> <dd> -user data -</dd> -<dt><i>flags</i> (dict)</dt> -<dd> -dictionary containing the response flags sent by the broker +response flags sent by the broker </dd> <dt><i>rc</i> (paho.mqtt.ReasonCodes)</dt> <dd> reason code </dd> -<dt><i>properties</i> (dict (optional))</dt> +<dt><i>properties</i> (dict)</dt> <dd> -optional properties (defaults to None) +MQTT v5.0 properties received from the broker </dd> </dl> -<a NAME="MqttClient.__onDisconnectedV3" ID="MqttClient.__onDisconnectedV3"></a> -<h4>MqttClient.__onDisconnectedV3</h4> -<b>__onDisconnectedV3</b>(<i>client, userdata, rc, </i>) +<a NAME="MqttClient.__onDisconnected" ID="MqttClient.__onDisconnected"></a> +<h4>MqttClient.__onDisconnected</h4> +<b>__onDisconnected</b>(<i>_client, _userdata, _flags, rc, _properties=None, </i>) <p> - Private method to handle the disconnect from the broker (MQTT v3.1 and v3.1.1). + Private method to handle the disconnect from the broker. </p> <dl> -<dt><i>client</i> (paho.mqtt.Client)</dt> -<dd> -reference to the client object -</dd> -<dt><i>userdata</i> (Any)</dt> +<dt><i>_client</i> (paho.mqtt.Client)</dt> <dd> -user data -</dd> -<dt><i>rc</i> (int)</dt> -<dd> -result code +reference to the client object (unused) </dd> -</dl> -<a NAME="MqttClient.__onDisconnectedV5" ID="MqttClient.__onDisconnectedV5"></a> -<h4>MqttClient.__onDisconnectedV5</h4> -<b>__onDisconnectedV5</b>(<i>client, userdata, rc, properties=None, </i>) -<p> - Private method to handle the disconnect from the broker (MQTT v5.0). -</p> - -<dl> - -<dt><i>client</i> (paho.mqtt.Client)</dt> +<dt><i>_userdata</i> (Any)</dt> <dd> -reference to the client object +user data (unused) </dd> -<dt><i>userdata</i> (Any)</dt> +<dt><i>_flags</i> (dict)</dt> <dd> -user data +dictionary containing the response flags sent by the broker + (unused) </dd> <dt><i>rc</i> (int or paho.mqtt.ReasonCodes)</dt> <dd> result code or reason code </dd> -<dt><i>properties</i> (dict (optional))</dt> +<dt><i>_properties</i> (dict (optional))</dt> <dd> -optional properties (defaults to None) +MQTT v5.0 properties received from the broker + (defaults to None) (unused) </dd> </dl> <a NAME="MqttClient.__onLog" ID="MqttClient.__onLog"></a> <h4>MqttClient.__onLog</h4> -<b>__onLog</b>(<i>client, userdata, level, buf, </i>) +<b>__onLog</b>(<i>_client, _userdata, level, buf, </i>) <p> - Private method to handle a log event (MQTT v3.1, v3.1.1 and v5.0). + Private method to handle a log event. </p> <dl> -<dt><i>client</i> (paho.mqtt.Client)</dt> +<dt><i>_client</i> (paho.mqtt.Client)</dt> <dd> -reference to the client object +reference to the client object (unused) </dd> -<dt><i>userdata</i> (Any)</dt> +<dt><i>_userdata</i> (Any)</dt> <dd> -user data +user data (unused) </dd> <dt><i>level</i> (int)</dt> <dd> @@ -525,45 +429,22 @@ log message </dd> </dl> -<a NAME="MqttClient.__onMessageV3" ID="MqttClient.__onMessageV3"></a> -<h4>MqttClient.__onMessageV3</h4> -<b>__onMessageV3</b>(<i>client, userdata, message, </i>) +<a NAME="MqttClient.__onMessage" ID="MqttClient.__onMessage"></a> +<h4>MqttClient.__onMessage</h4> +<b>__onMessage</b>(<i>_client, _userdata, message, </i>) <p> - Private method to handle a new message received from the broker (MQTT v3.1 - and v3.1.1). + Private method to handle a new message received from the broker. </p> <dl> -<dt><i>client</i> (paho.mqtt.Client)</dt> -<dd> -reference to the client object -</dd> -<dt><i>userdata</i> (Any)</dt> +<dt><i>_client</i> (paho.mqtt.Client)</dt> <dd> -user data -</dd> -<dt><i>message</i> (paho.mqtt.MQTTMessage)</dt> -<dd> -received message object +reference to the client object (unused) </dd> -</dl> -<a NAME="MqttClient.__onMessageV5" ID="MqttClient.__onMessageV5"></a> -<h4>MqttClient.__onMessageV5</h4> -<b>__onMessageV5</b>(<i>client, userdata, message, </i>) -<p> - Private method to handle a new message received from the broker (MQTT v5.0). -</p> - -<dl> - -<dt><i>client</i> (paho.mqtt.Client)</dt> +<dt><i>_userdata</i> (Any)</dt> <dd> -reference to the client object -</dd> -<dt><i>userdata</i> (Any)</dt> -<dd> -user data +user data (unused) </dd> <dt><i>message</i> (paho.mqtt.MQTTMessage)</dt> <dd> @@ -572,69 +453,50 @@ </dl> <a NAME="MqttClient.__onPublish" ID="MqttClient.__onPublish"></a> <h4>MqttClient.__onPublish</h4> -<b>__onPublish</b>(<i>client, userdata, mid, </i>) +<b>__onPublish</b>(<i>_client, _userdata, mid, _reasonCode, _properties, </i>) <p> - Private method to handle the publishing of a message (MQTT v3.1, v3.1.1 - and v5.0). + Private method to handle the publishing of a message. </p> <dl> -<dt><i>client</i> (paho.mqtt.Client)</dt> +<dt><i>_client</i> (paho.mqtt.Client)</dt> <dd> -reference to the client object +reference to the client object (unused) </dd> -<dt><i>userdata</i> (Any)</dt> +<dt><i>_userdata</i> (Any)</dt> <dd> -user data +user data (unused) </dd> <dt><i>mid</i> (int)</dt> <dd> message ID </dd> +<dt><i>_reasonCode</i> (paho.mqtt.ReasonCodes)</dt> +<dd> +reason code (unused) +</dd> +<dt><i>_properties</i> (dict)</dt> +<dd> +MQTT v5.0 properties received from the broker (unused) +</dd> </dl> -<a NAME="MqttClient.__onSubscribeV3" ID="MqttClient.__onSubscribeV3"></a> -<h4>MqttClient.__onSubscribeV3</h4> -<b>__onSubscribeV3</b>(<i>client, userdata, mid, grantedQos, </i>) +<a NAME="MqttClient.__onSubscribe" ID="MqttClient.__onSubscribe"></a> +<h4>MqttClient.__onSubscribe</h4> +<b>__onSubscribe</b>(<i>_client, _userdata, mid, reasonCodes, properties, </i>) <p> - Private method to handle a subscribe event (MQTT v3.1 and v3.1.1). + Private method to handle a subscribe event. </p> <dl> -<dt><i>client</i> (paho.mqtt.Client)</dt> -<dd> -reference to the client object -</dd> -<dt><i>userdata</i> (Any)</dt> +<dt><i>_client</i> (paho.mqtt.Client)</dt> <dd> -user data -</dd> -<dt><i>mid</i> (int)</dt> -<dd> -message ID -</dd> -<dt><i>grantedQos</i> (list of int)</dt> -<dd> -list of granted QoS for each subscription request +reference to the client object (unused) </dd> -</dl> -<a NAME="MqttClient.__onSubscribeV5" ID="MqttClient.__onSubscribeV5"></a> -<h4>MqttClient.__onSubscribeV5</h4> -<b>__onSubscribeV5</b>(<i>client, userdata, mid, reasonCodes, properties=None, </i>) -<p> - Private method to handle a subscribe event (MQTT v5.0). -</p> - -<dl> - -<dt><i>client</i> (paho.mqtt.Client)</dt> +<dt><i>_userdata</i> (Any)</dt> <dd> -reference to the client object -</dd> -<dt><i>userdata</i> (Any)</dt> -<dd> -user data +user data (unused) </dd> <dt><i>mid</i> (int)</dt> <dd> @@ -644,62 +506,40 @@ <dd> list of reason code for each subscribed topic </dd> -<dt><i>properties</i> (dict (optional))</dt> +<dt><i>properties</i> (dict)</dt> <dd> -optional properties (defaults to None) +MQTT v5.0 properties received from the broker </dd> </dl> -<a NAME="MqttClient.__onUnsubscribeV3" ID="MqttClient.__onUnsubscribeV3"></a> -<h4>MqttClient.__onUnsubscribeV3</h4> -<b>__onUnsubscribeV3</b>(<i>client, userdata, mid, </i>) +<a NAME="MqttClient.__onUnsubscribe" ID="MqttClient.__onUnsubscribe"></a> +<h4>MqttClient.__onUnsubscribe</h4> +<b>__onUnsubscribe</b>(<i>_client, _userdata, mid, reasonCodes, properties, </i>) <p> - Private method to handle an unsubscribe event (MQTT v3.1 and v3.1.1). + Private method to handle an unsubscribe event. </p> <dl> -<dt><i>client</i> (paho.mqtt.Client)</dt> +<dt><i>_client</i> (paho.mqtt.Client)</dt> <dd> -reference to the client object +reference to the client object (unused) </dd> -<dt><i>userdata</i> (Any)</dt> +<dt><i>_userdata</i> (Any)</dt> <dd> -user data +user data (unused) </dd> <dt><i>mid</i> (int)</dt> <dd> message ID </dd> -</dl> -<a NAME="MqttClient.__onUnsubscribeV5" ID="MqttClient.__onUnsubscribeV5"></a> -<h4>MqttClient.__onUnsubscribeV5</h4> -<b>__onUnsubscribeV5</b>(<i>client, userdata, mid, properties, reasonCodes, </i>) -<p> - Private method to handle an unsubscribe event (MQTT v5.0). -</p> - -<dl> - -<dt><i>client</i> (paho.mqtt.Client)</dt> -<dd> -reference to the client object -</dd> -<dt><i>userdata</i> (Any)</dt> -<dd> -user data -</dd> -<dt><i>mid</i> (int)</dt> -<dd> -message ID -</dd> -<dt><i>properties</i> (dict (optional))</dt> -<dd> -optional properties (defaults to None) -</dd> <dt><i>reasonCodes</i> (list of paho.mqtt.ReasonCodes)</dt> <dd> list of reason code for each unsubscribed topic </dd> +<dt><i>properties</i> (dict)</dt> +<dd> +MQTT v5.0 properties received from the broker +</dd> </dl> <a NAME="MqttClient.clearLastWill" ID="MqttClient.clearLastWill"></a> <h4>MqttClient.clearLastWill</h4> @@ -1088,35 +928,6 @@ <div align="right"><a href="#top">Up</a></div> <hr /> <hr /> -<a NAME="mqttConnackMessage" ID="mqttConnackMessage"></a> -<h2>mqttConnackMessage</h2> -<b>mqttConnackMessage</b>(<i>connackCode</i>) -<p> - Module function to get the string associated with a CONNACK result. -</p> - -<dl> - -<dt><i>connackCode</i> (int)</dt> -<dd> -result code of the connection request -</dd> -</dl> -<dl> -<dt>Return:</dt> -<dd> -textual representation for the result code -</dd> -</dl> -<dl> -<dt>Return Type:</dt> -<dd> -str -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /> -<hr /> <a NAME="mqttErrorMessage" ID="mqttErrorMessage"></a> <h2>mqttErrorMessage</h2> <b>mqttErrorMessage</b>(<i>mqttErrno</i>)
--- a/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttMonitorWidget.html Sat Jan 06 13:11:01 2024 +0100 +++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttMonitorWidget.html Fri Apr 19 15:15:01 2024 +0200 @@ -191,10 +191,6 @@ </tr> <tr> <td><a href="#MqttMonitorWidget.__topicUnsubscribed">__topicUnsubscribed</a></td> -<td>Private slot to handle being unsubcribed from a topic (MQTT v3.1, MQTT v3.1.1).</td> -</tr> -<tr> -<td><a href="#MqttMonitorWidget.__topicUnsubscribedV5">__topicUnsubscribedV5</a></td> <td>Private slot to handle being unsubscribed to topics (MQTT v5).</td> </tr> <tr> @@ -394,16 +390,16 @@ </dl> <a NAME="MqttMonitorWidget.__brokerConnected" ID="MqttMonitorWidget.__brokerConnected"></a> <h4>MqttMonitorWidget.__brokerConnected</h4> -<b>__brokerConnected</b>(<i>flags, rc, packetType=None, properties=None</i>) +<b>__brokerConnected</b>(<i>sessionPresent, rc, packetType, properties</i>) <p> Private slot to handle being connected to a broker. </p> <dl> -<dt><i>flags</i> (dict)</dt> +<dt><i>sessionPresent</i> (bool)</dt> <dd> -flags set for the connection +flag indicating an already present session </dd> <dt><i>rc</i> (int)</dt> <dd> @@ -912,22 +908,7 @@ </dl> <a NAME="MqttMonitorWidget.__topicUnsubscribed" ID="MqttMonitorWidget.__topicUnsubscribed"></a> <h4>MqttMonitorWidget.__topicUnsubscribed</h4> -<b>__topicUnsubscribed</b>(<i>mid</i>) -<p> - Private slot to handle being unsubcribed from a topic (MQTT v3.1, - MQTT v3.1.1). -</p> - -<dl> - -<dt><i>mid</i> (int)</dt> -<dd> -ID of the unsubscribe request -</dd> -</dl> -<a NAME="MqttMonitorWidget.__topicUnsubscribedV5" ID="MqttMonitorWidget.__topicUnsubscribedV5"></a> -<h4>MqttMonitorWidget.__topicUnsubscribedV5</h4> -<b>__topicUnsubscribedV5</b>(<i>mid, rc, packetType, properties</i>) +<b>__topicUnsubscribed</b>(<i>mid, rc=None, packetType=None, properties=None</i>) <p> Private slot to handle being unsubscribed to topics (MQTT v5). </p>
--- a/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.PluginMqttMonitor.html Sat Jan 06 13:11:01 2024 +0100 +++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.PluginMqttMonitor.html Fri Apr 19 15:15:01 2024 +0200 @@ -233,16 +233,16 @@ <hr /> <a NAME="createMqttPage" ID="createMqttPage"></a> <h2>createMqttPage</h2> -<b>createMqttPage</b>(<i>configDlg, </i>) +<b>createMqttPage</b>(<i>_configDlg, </i>) <p> Module function to create the autocompletion configuration page. </p> <dl> -<dt><i>configDlg</i> (ConfigurationWidget)</dt> +<dt><i>_configDlg</i> (ConfigurationWidget)</dt> <dd> -reference to the configuration dialog +reference to the configuration dialog (unused) </dd> </dl> <dl>
--- a/MqttMonitor/MqttClient.py Sat Jan 06 13:11:01 2024 +0100 +++ b/MqttMonitor/MqttClient.py Fri Apr 19 15:15:01 2024 +0200 @@ -22,44 +22,31 @@ """ Class implementing a PyQt wrapper around the paho MQTT client. - @signal onConnectV3(flags, rc) emitted after the client has connected to - the broker (MQTT v3) - @signal onConnectV5(flags, rc, packetType, properties emitted after the - client has connected to the broker (MQTT v5) - @signal onDisconnectedV3(rc) emitted after the client has disconnected from - the broker (MQTT v3) - @signal onDisconnectedV5(rc, packetType) emitted after the client has - disconnected from the broker (MQTT v5) + @signal onConnect(connectFlags, rc, packetType, properties) emitted after the + client has connected to the broker + @signal onDisconnected(rc, packetType) emitted after the client has + disconnected from the broker @signal onLog(level, message) emitted to send client log data - @signal onMessageV3(topic, payload, qos, retain) emitted after a message - has been received by the client (MQTT v3) - @signal onMessageV5(topic, payload, qos, retain, properties) emitted after - a message has been received by the client (MQTT v5) + @signal onMessage(topic, payload, qos, retain, properties) emitted after + a message has been received by the client @signal onPublish(mid) emitted after a message has been published - @signal onSubscribeV3(mid, grantedQos) emitted after the client has - subscribed to some topics (MQTT v3) - @signal onSubscribeV5(mid, reasonCodes, properties) emitted after the - client has subscribed to some topics (MQTT v5) - @signal onUnsubscribeV3(mid) emitted after the client has unsubscribed from + @signal onSubscribe(mid, reasonCodes, properties) emitted after the + client has subscribed to some topics + @signal onUnsubscribe(mid) emitted after the client has unsubscribed from some topics (MQTT v3) - @signal onUnsubscribeV5(mid, rc, packetType, properties) emitted after the + @signal onUnsubscribe(mid, rc, packetType, properties) emitted after the client has unsubscribed from some topics (MQTT v5) @signal connectTimeout() emitted to indicate, that a connection attempt timed out """ - onConnectV3 = pyqtSignal(dict, int) - onConnectV5 = pyqtSignal(dict, int, int, dict) - onDisconnectedV3 = pyqtSignal(int) - onDisconnectedV5 = pyqtSignal(int, int) + onConnect = pyqtSignal(bool, int, int, dict) + onDisconnected = pyqtSignal(int, int) onLog = pyqtSignal(int, str) - onMessageV3 = pyqtSignal(str, bytes, int, bool) - onMessageV5 = pyqtSignal(str, bytes, int, bool, dict) + onMessage = pyqtSignal(str, bytes, int, bool, dict) onPublish = pyqtSignal(int) - onSubscribeV3 = pyqtSignal(int, tuple) - onSubscribeV5 = pyqtSignal(int, list, dict) - onUnsubscribeV3 = pyqtSignal(int) - onUnsubscribeV5 = pyqtSignal(int, int, int, dict) + onSubscribe = pyqtSignal(int, list, dict) + onUnsubscribe = pyqtSignal((int,), (int, int, int, dict)) connectTimeout = pyqtSignal() @@ -113,8 +100,7 @@ self.__connectTimeoutTimer.setInterval(MqttClient.DefaultConnectTimeout * 1000) self.__connectTimeoutTimer.timeout.connect(self.__connectTimeout) - self.onConnectV3.connect(self.__connectTimeoutTimer.stop) - self.onConnectV5.connect(self.__connectTimeoutTimer.stop) + self.onConnect.connect(self.__connectTimeoutTimer.stop) self.__cleanSession = cleanSession self.__protocol = protocol @@ -124,6 +110,7 @@ cleanSession = None self.__mqttClient = mqtt.Client( + mqtt.CallbackAPIVersion.VERSION2, client_id=clientId, clean_session=cleanSession, userdata=userdata, @@ -131,179 +118,68 @@ transport=transport, ) - self.__initCallbacks(protocol) + self.__initCallbacks() - def __initCallbacks(self, protocol): + def __initCallbacks(self): """ Private method to initialize the MQTT callback methods. - - @param protocol MQTT protocol version - @type MqttProtocols """ - if protocol in (MqttProtocols.MQTTv31, MqttProtocols.MQTTv311): - self.__mqttClient.on_connect = self.__onConnectV3 - self.__mqttClient.on_disconnect = self.__onDisconnectedV3 - self.__mqttClient.on_subscribe = self.__onSubscribeV3 - self.__mqttClient.on_unsubscribe = self.__onUnsubscribeV3 - self.__mqttClient.on_message = self.__onMessageV3 - else: - self.__mqttClient.on_connect = self.__onConnectV5 - self.__mqttClient.on_disconnect = self.__onDisconnectedV5 - self.__mqttClient.on_subscribe = self.__onSubscribeV5 - self.__mqttClient.on_unsubscribe = self.__onUnsubscribeV5 - self.__mqttClient.on_message = self.__onMessageV5 - + self.__mqttClient.on_connect = self.__onConnect + self.__mqttClient.on_disconnect = self.__onDisconnected self.__mqttClient.on_log = self.__onLog + self.__mqttClient.on_message = self.__onMessage self.__mqttClient.on_publish = self.__onPublish - - def __onConnectV3( - self, - client, # noqa: U100 - userdata, # noqa: U100 - flags, - rc, - properties=None, # noqa: U100 - ): - """ - Private method to handle the connect to the broker (MQTT v3.1 and v3.1.1). + self.__mqttClient.on_subscribe = self.__onSubscribe + self.__mqttClient.on_unsubscribe = self.__onUnsubscribe - @param client reference to the client object - @type paho.mqtt.Client - @param userdata user data - @type Any - @param flags dictionary containing the response flags sent by the broker - @type dict - @param rc result code - @type int - @param properties optional properties (defaults to None) - @type dict (optional) - """ - self.onConnectV3.emit(flags, rc) - - def __onDisconnectedV3( + def __onConnect( self, - client, # noqa: U100 - userdata, # noqa: U100 + _client, + _userdata, + connectFlags, rc, - ): - """ - Private method to handle the disconnect from the broker (MQTT v3.1 and v3.1.1). - - @param client reference to the client object - @type paho.mqtt.Client - @param userdata user data - @type Any - @param rc result code - @type int - """ - self.onDisconnectedV3.emit(rc) - - def __onSubscribeV3( - self, - client, # noqa: U100 - userdata, # noqa: U100 - mid, - grantedQos, + properties, ): """ - Private method to handle a subscribe event (MQTT v3.1 and v3.1.1). + Private method to handle the connect to the broker. - @param client reference to the client object + @param _client reference to the client object (unused) @type paho.mqtt.Client - @param userdata user data + @param _userdata user data (unused) @type Any - @param mid message ID - @type int - @param grantedQos list of granted QoS for each subscription request - @type list of int + @param connectFlags response flags sent by the broker + @type mqtt.ConnectFlags + @param rc reason code + @type paho.mqtt.ReasonCodes + @param properties MQTT v5.0 properties received from the broker + @type dict """ - self.onSubscribeV3.emit(mid, grantedQos) + self.onConnect.emit( + connectFlags.session_present, rc.value, rc.packetType, properties.json() + ) - def __onUnsubscribeV3( + def __onDisconnected( self, - client, # noqa: U100 - userdata, # noqa: U100 - mid, - ): - """ - Private method to handle an unsubscribe event (MQTT v3.1 and v3.1.1). - - @param client reference to the client object - @type paho.mqtt.Client - @param userdata user data - @type Any - @param mid message ID - @type int - """ - self.onUnsubscribeV3.emit(mid) - - def __onMessageV3( - self, - client, # noqa: U100 - userdata, # noqa: U100 - message, + _client, + _userdata, + _flags, + rc, + _properties=None, ): """ - Private method to handle a new message received from the broker (MQTT v3.1 - and v3.1.1). - - @param client reference to the client object - @type paho.mqtt.Client - @param userdata user data - @type Any - @param message received message object - @type paho.mqtt.MQTTMessage - """ - self.onMessageV3.emit( - message.topic, message.payload, message.qos, message.retain - ) + Private method to handle the disconnect from the broker. - def __onConnectV5( - self, - client, # noqa: U100 - userdata, # noqa: U100 - flags, - rc, - properties=None, - ): - """ - Private method to handle the connect to the broker (MQTT v5.0). - - @param client reference to the client object + @param _client reference to the client object (unused) @type paho.mqtt.Client - @param userdata user data + @param _userdata user data (unused) @type Any - @param flags dictionary containing the response flags sent by the broker + @param _flags dictionary containing the response flags sent by the broker + (unused) @type dict - @param rc reason code - @type paho.mqtt.ReasonCodes - @param properties optional properties (defaults to None) - @type dict (optional) - """ - self.onConnectV5.emit( - flags, - rc.value, - rc.packetType, - properties.json() if properties is not None else {}, - ) - - def __onDisconnectedV5( - self, - client, # noqa: U100 - userdata, # noqa: U100 - rc, - properties=None, # noqa: U100 - ): - """ - Private method to handle the disconnect from the broker (MQTT v5.0). - - @param client reference to the client object - @type paho.mqtt.Client - @param userdata user data - @type Any @param rc result code or reason code @type int or paho.mqtt.ReasonCodes - @param properties optional properties (defaults to None) + @param _properties MQTT v5.0 properties received from the broker + (defaults to None) (unused) @type dict (optional) """ if isinstance(rc, int): @@ -312,102 +188,98 @@ else: packetType = rc.packetType resultCode = rc.value - self.onDisconnectedV5.emit(resultCode, packetType) + self.onDisconnected.emit(resultCode, packetType) - def __onSubscribeV5( + def __onSubscribe( self, - client, # noqa: U100 - userdata, # noqa: U100 + _client, + _userdata, mid, reasonCodes, - properties=None, + properties, ): """ - Private method to handle a subscribe event (MQTT v5.0). + Private method to handle a subscribe event. - @param client reference to the client object + @param _client reference to the client object (unused) @type paho.mqtt.Client - @param userdata user data + @param _userdata user data (unused) @type Any @param mid message ID @type int @param reasonCodes list of reason code for each subscribed topic @type list of paho.mqtt.ReasonCodes - @param properties optional properties (defaults to None) - @type dict (optional) + @param properties MQTT v5.0 properties received from the broker + @type dict """ - self.onSubscribeV5.emit( - mid, - reasonCodes, - properties.json() if properties is not None else {}, - ) + self.onSubscribe.emit(mid, reasonCodes, properties.json()) - def __onUnsubscribeV5( + def __onUnsubscribe( self, - client, # noqa: U100 - userdata, # noqa: U100 + _client, + _userdata, mid, + reasonCodes, properties, - reasonCodes, ): """ - Private method to handle an unsubscribe event (MQTT v5.0). + Private method to handle an unsubscribe event. - @param client reference to the client object + @param _client reference to the client object (unused) @type paho.mqtt.Client - @param userdata user data + @param _userdata user data (unused) @type Any @param mid message ID @type int - @param properties optional properties (defaults to None) - @type dict (optional) @param reasonCodes list of reason code for each unsubscribed topic @type list of paho.mqtt.ReasonCodes + @param properties MQTT v5.0 properties received from the broker + @type dict """ - self.onUnsubscribeV5.emit( - mid, - reasonCodes.value, - reasonCodes.packetType, - properties.json() if properties is not None else {}, - ) + if reasonCodes: + self.onUnsubscribe[int, int, int, dict].emit( + mid, reasonCodes[0].value, reasonCodes[0].packetType, properties.json() + ) + else: + self.onUnsubscribe[int].emit(mid) - def __onMessageV5( + def __onMessage( self, - client, # noqa: U100 - userdata, # noqa: U100 + _client, + _userdata, message, ): """ - Private method to handle a new message received from the broker (MQTT v5.0). + Private method to handle a new message received from the broker. - @param client reference to the client object + @param _client reference to the client object (unused) @type paho.mqtt.Client - @param userdata user data + @param _userdata user data (unused) @type Any @param message received message object @type paho.mqtt.MQTTMessage """ - self.onMessageV5.emit( + self.onMessage.emit( message.topic, message.payload, message.qos, message.retain, - message.properties.json(), + message.properties.json() if message.properties is not None else {}, ) def __onLog( self, - client, # noqa: U100 - userdata, # noqa: U100 + _client, + _userdata, level, buf, ): """ - Private method to handle a log event (MQTT v3.1, v3.1.1 and v5.0). + Private method to handle a log event. - @param client reference to the client object + @param _client reference to the client object (unused) @type paho.mqtt.Client - @param userdata user data + @param _userdata user data (unused) @type Any @param level severity of the log message @type int @@ -418,20 +290,25 @@ def __onPublish( self, - client, # noqa: U100 - userdata, # noqa: U100 + _client, + _userdata, mid, + _reasonCode, + _properties, ): """ - Private method to handle the publishing of a message (MQTT v3.1, v3.1.1 - and v5.0). + Private method to handle the publishing of a message. - @param client reference to the client object + @param _client reference to the client object (unused) @type paho.mqtt.Client - @param userdata user data + @param _userdata user data (unused) @type Any @param mid message ID @type int + @param _reasonCode reason code (unused) + @type paho.mqtt.ReasonCodes + @param _properties MQTT v5.0 properties received from the broker (unused) + @type dict """ self.onPublish.emit(mid) @@ -745,7 +622,7 @@ "TlsCaCert", "TlsClientCert", "TlsClientKey", "UserProperties". @rtype dict """ - from PluginMqttMonitor import mqttPluginObject + from PluginMqttMonitor import mqttPluginObject # noqa: I102 return { "ClientId": "ERIC7_MQTT_MONITOR_CLIENT", @@ -882,43 +759,6 @@ return props -def mqttConnackMessage(connackCode): - """ - Module function to get the string associated with a CONNACK result. - - @param connackCode result code of the connection request - @type int - @return textual representation for the result code - @rtype str - """ - if connackCode == mqtt.CONNACK_ACCEPTED: - return QCoreApplication.translate("MqttConnackMessage", "Connection Accepted.") - elif connackCode == mqtt.CONNACK_REFUSED_PROTOCOL_VERSION: - return QCoreApplication.translate( - "MqttConnackMessage", "Connection Refused: unacceptable protocol version." - ) - elif connackCode == mqtt.CONNACK_REFUSED_IDENTIFIER_REJECTED: - return QCoreApplication.translate( - "MqttConnackMessage", "Connection Refused: identifier rejected." - ) - elif connackCode == mqtt.CONNACK_REFUSED_SERVER_UNAVAILABLE: - return QCoreApplication.translate( - "MqttConnackMessage", "Connection Refused: broker unavailable." - ) - elif connackCode == mqtt.CONNACK_REFUSED_BAD_USERNAME_PASSWORD: - return QCoreApplication.translate( - "MqttConnackMessage", "Connection Refused: bad user name or password." - ) - elif connackCode == mqtt.CONNACK_REFUSED_NOT_AUTHORIZED: - return QCoreApplication.translate( - "MqttConnackMessage", "Connection Refused: not authorised." - ) - else: - return QCoreApplication.translate( - "MqttConnackMessage", "Connection Refused: unknown reason." - ) - - def mqttErrorMessage(mqttErrno): """ Module function to get the error string associated with an MQTT error
--- a/MqttMonitor/MqttConnectionOptionsDialog.py Sat Jan 06 13:11:01 2024 +0100 +++ b/MqttMonitor/MqttConnectionOptionsDialog.py Fri Apr 19 15:15:01 2024 +0200 @@ -166,9 +166,9 @@ if checked: # handle the selection only if self.connectPropertiesButton.isChecked(): - self.__userProperties[ - "disconnect" - ] = self.propertiesWidget.getProperties() + self.__userProperties["disconnect"] = ( + self.propertiesWidget.getProperties() + ) self.propertiesWidget.setProperties(self.__userProperties["connect"]) else: self.__userProperties["connect"] = self.propertiesWidget.getProperties() @@ -272,12 +272,12 @@ if self.connectPropertiesButton.isChecked(): self.__userProperties["connect"] = self.propertiesWidget.getProperties() else: - self.__userProperties[ - "disconnect" - ] = self.propertiesWidget.getProperties() - self.__userProperties[ - "use_connect" - ] = self.samePropertiesCheckBox.isChecked() + self.__userProperties["disconnect"] = ( + self.propertiesWidget.getProperties() + ) + self.__userProperties["use_connect"] = ( + self.samePropertiesCheckBox.isChecked() + ) else: self.__userProperties = {} self.__willProperties = []
--- a/MqttMonitor/MqttConnectionProfilesDialog.py Sat Jan 06 13:11:01 2024 +0100 +++ b/MqttMonitor/MqttConnectionProfilesDialog.py Fri Apr 19 15:15:01 2024 +0200 @@ -306,12 +306,12 @@ if self.connectPropertiesButton.isChecked(): self.__userProperties["connect"] = self.propertiesWidget.getProperties() else: - self.__userProperties[ - "disconnect" - ] = self.propertiesWidget.getProperties() - self.__userProperties[ - "use_connect" - ] = self.samePropertiesCheckBox.isChecked() + self.__userProperties["disconnect"] = ( + self.propertiesWidget.getProperties() + ) + self.__userProperties["use_connect"] = ( + self.samePropertiesCheckBox.isChecked() + ) else: self.__userProperties = {} self.__willProperties = [] @@ -342,15 +342,15 @@ if self.tlsCertsFileButton.isChecked(): connectionProfile["TlsCaCert"] = self.tlsCertsFilePicker.text() elif self.tlsSelfSignedCertsButton.isChecked(): - connectionProfile[ - "TlsCaCert" - ] = self.tlsSelfSignedCertsFilePicker.text() - connectionProfile[ - "TlsClientCert" - ] = self.tlsSelfSignedClientCertFilePicker.text() - connectionProfile[ - "TlsClientKey" - ] = self.tlsSelfSignedClientKeyFilePicker.text() + connectionProfile["TlsCaCert"] = ( + self.tlsSelfSignedCertsFilePicker.text() + ) + connectionProfile["TlsClientCert"] = ( + self.tlsSelfSignedClientCertFilePicker.text() + ) + connectionProfile["TlsClientKey"] = ( + self.tlsSelfSignedClientKeyFilePicker.text() + ) self.__profiles[profileName] = connectionProfile self.__profilesChanged = True @@ -902,9 +902,9 @@ if checked: # handle the selection only if self.connectPropertiesButton.isChecked(): - self.__userProperties[ - "disconnect" - ] = self.propertiesWidget.getProperties() + self.__userProperties["disconnect"] = ( + self.propertiesWidget.getProperties() + ) self.propertiesWidget.setProperties(self.__userProperties["connect"]) else: self.__userProperties["connect"] = self.propertiesWidget.getProperties()
--- a/MqttMonitor/MqttMonitorWidget.py Sat Jan 06 13:11:01 2024 +0100 +++ b/MqttMonitor/MqttMonitorWidget.py Fri Apr 19 15:15:01 2024 +0200 @@ -33,12 +33,7 @@ # imports for eric < 23.1 from eric7.Utilities import toNativeSeparators -from .MqttClient import ( - MqttClient, - mqttConnackMessage, - mqttErrorMessage, - mqttLogLevelString, -) +from .MqttClient import MqttClient, mqttErrorMessage, mqttLogLevelString from .MqttProtocols import MqttProtocols from .MqttReasonCodes import mqttReasonCode from .Ui_MqttMonitorWidget import Ui_MqttMonitorWidget @@ -145,7 +140,7 @@ MqttClient.LogNotice: QBrush(Qt.GlobalColor.green), MqttClient.LogWarning: QBrush(Qt.GlobalColor.yellow), MqttClient.LogError: QBrush(Qt.GlobalColor.red), - MqttClient.LogDisabled: QBrush(Qt.GlobalColor.magenta) + MqttClient.LogDisabled: QBrush(Qt.GlobalColor.magenta), # reuse LogDisabled for unknown log levels } @@ -307,18 +302,14 @@ ) # connect the MQTT client signals - client.onConnectV3.connect(self.__brokerConnected) - client.onConnectV5.connect(self.__brokerConnected) - client.onDisconnectedV3.connect(self.__brokerDisconnected) - client.onDisconnectedV5.connect(self.__brokerDisconnected) + client.onConnect.connect(self.__brokerConnected) + client.onDisconnected.connect(self.__brokerDisconnected) client.onLog.connect(self.__clientLog) - client.onMessageV3.connect(self.__messageReceived) - client.onMessageV5.connect(self.__messageReceived) + client.onMessage.connect(self.__messageReceived) client.onPublish.connect(self.__messagePublished) - client.onSubscribeV3.connect(self.__topicSubscribed) - client.onSubscribeV5.connect(self.__topicSubscribedV5) - client.onUnsubscribeV3.connect(self.__topicUnsubscribed) - client.onUnsubscribeV5.connect(self.__topicUnsubscribedV5) + client.onSubscribe.connect(self.__topicSubscribedV5) + client.onUnsubscribe[int].connect(self.__topicUnsubscribed) + client.onUnsubscribe[int, int, int, dict].connect(self.__topicUnsubscribed) client.connectTimeout.connect(self.__connectTimeout) @@ -355,14 +346,13 @@ ## Slots handling MQTT related signals ####################################################################### - @pyqtSlot(dict, int) - @pyqtSlot(dict, int, int, dict) - def __brokerConnected(self, flags, rc, packetType=None, properties=None): + @pyqtSlot(bool, int, int, dict) + def __brokerConnected(self, sessionPresent, rc, packetType, properties): """ Private slot to handle being connected to a broker. - @param flags flags set for the connection - @type dict + @param sessionPresent flag indicating an already present session + @type bool @param rc CONNACK result code or MQTTv5 reason code @type int @param packetType packet type as reported by the client @@ -377,16 +367,7 @@ self.__connectedToBroker = True self.__connectionOptions = None - try: - sessionPresent = flags["session present"] == 1 - except KeyError: - sessionPresent = False - - msg = ( - mqttReasonCode(rc, packetType) - if packetType is not None - else mqttConnackMessage(rc) - ) + msg = mqttReasonCode(rc, packetType) if sessionPresent: msg = self.tr("{0} - Session still present").format(msg) self.__flashBrokerStatusLabel(msg) @@ -595,23 +576,8 @@ self.__topicSubscribed(mid) @pyqtSlot(int) - def __topicUnsubscribed(self, mid): - """ - Private slot to handle being unsubcribed from a topic (MQTT v3.1, - MQTT v3.1.1). - - @param mid ID of the unsubscribe request - @type int - """ - if mid in self.__topicQueue: - topic = self.__topicQueue.pop(mid) - with contextlib.suppress(ValueError): - self.__subscribedTopics.remove(topic) - self.__updateUnsubscribeTopicComboBox() - self.__updatePublishTopicComboBox() - @pyqtSlot(int, int, int, dict) - def __topicUnsubscribedV5(self, mid, rc, packetType, properties): + def __topicUnsubscribed(self, mid, rc=None, packetType=None, properties=None): """ Private slot to handle being unsubscribed to topics (MQTT v5). @@ -625,13 +591,19 @@ properties @type dict """ - msg = mqttReasonCode(rc, packetType) - self.__flashBrokerStatusLabel(msg) + if rc is not None: + msg = mqttReasonCode(rc, packetType) + self.__flashBrokerStatusLabel(msg) + + if properties: + self.__showProperties("Unsubscribe", properties) - if properties: - self.__showProperties("Unsubscribe", properties) - - self.__topicUnsubscribed(mid) + if mid in self.__topicQueue: + topic = self.__topicQueue.pop(mid) + with contextlib.suppress(ValueError): + self.__subscribedTopics.remove(topic) + self.__updateUnsubscribeTopicComboBox() + self.__updatePublishTopicComboBox() ####################################################################### ## Slots handling UI interactions
--- a/MqttMonitor/i18n/mqttmonitor_de.ts Sat Jan 06 13:11:01 2024 +0100 +++ b/MqttMonitor/i18n/mqttmonitor_de.ts Fri Apr 19 15:15:01 2024 +0200 @@ -1,1888 +1,1850 @@ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.1" language="de_DE"> -<context> - <name>MqttConnackMessage</name> - <message> - <location filename="../MqttClient.py" line="826"/> - <source>Connection Accepted.</source> - <translation>Verbindung akzeptiert.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="828"/> - <source>Connection Refused: unacceptable protocol version.</source> - <translation>Verbindung abgelehnt: inakzeptable Protokollversion.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="832"/> - <source>Connection Refused: identifier rejected.</source> - <translation>Verbindung abgelehnt: Identifizierer abgelehnt.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="836"/> - <source>Connection Refused: broker unavailable.</source> - <translation>Verbindung abgelehnt: Broker nicht verfügbar.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="840"/> - <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="844"/> - <source>Connection Refused: not authorised.</source> - <translation>Verbindung abgelehnt: nicht autorisiert.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="848"/> - <source>Connection Refused: unknown reason.</source> - <translation>Verbindung abgelehnt: unbekante Ursache.</translation> - </message> -</context> -<context> + <context> <name>MqttConnectionOptionsDialog</name> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>MQTT Connection Options</source> - <translation>MQTT Verbindungsoptionen</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>MQTT Connection Options</source> + <translation>MQTT Verbindungsoptionen</translation> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>General</source> + <translation>Allgemein</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>General</source> - <translation>Allgemein</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Client ID:</source> + <translation>Client ID:</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Client ID:</source> - <translation>Client ID:</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Enter the ID string for this client</source> + <translation>Gib eine ID für diesen Client ein</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Enter the ID string for this client</source> - <translation>Gib eine ID für diesen Client ein</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Press to generate a client ID</source> + <translation>Drücken, um eine Client ID zu erzeugen</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Press to generate a client ID</source> - <translation>Drücken, um eine Client ID zu erzeugen</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Generate</source> + <translation>Erzeugen</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Generate</source> - <translation>Erzeugen</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>MQTT Protocol</source> + <translation>MQTT Protokoll</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>MQTT Protocol</source> - <translation>MQTT Protokoll</translation> + <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>Select to use the MQTT 3.1 protocol</source> - <translation>Auswählen, um das MQTT 3.1 Protokoll zu verwenden</translation> + <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>v 3.1</source> - <translation>v 3.1</translation> + <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 3.1.1 protocol</source> - <translation>Auswählen, um das MQTT 3.1.1 Protokoll zu verwenden</translation> + <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 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> + <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> - <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Enter the connection timeout in seconds</source> - <translation>Gib das Verbindungszeitlimit in Sekunden ein</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Connection Timeout:</source> + <translation>Verbindungszeitlimit:</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source> s</source> - <translation> s</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Enter the connection timeout in seconds</source> + <translation>Gib das Verbindungszeitlimit in Sekunden ein</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Keep Alive Interval:</source> - <translation>Keepalive Intervall:</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source> s</source> + <translation> s</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Enter the keep alive interval in seconds</source> - <translation>Gib das Keepalive Intervall in Sekunden ein</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Keep Alive Interval:</source> + <translation>Keepalive Intervall:</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Select to start with a clean session</source> - <translation>Auswählen, um mit einer neuen Sitzung zu starten</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Enter the keep alive interval in seconds</source> + <translation>Gib das Keepalive Intervall in Sekunden ein</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Clean Session</source> - <translation>Neue Sitzung</translation> - </message> - <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>User Credentials</source> - <translation>Nutzerberechtigungen</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to start with a clean session</source> + <translation>Auswählen, um mit einer neuen Sitzung zu starten</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>User Name:</source> - <translation>Nutzername:</translation> - </message> - <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Enter the user name</source> - <translation>Gib den Nutzernamen ein</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Clean Session</source> + <translation>Neue Sitzung</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Password:</source> - <translation>Kennwort:</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>User Credentials</source> + <translation>Nutzerberechtigungen</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Enter the password</source> - <translation>Gib das Kennwort ein</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>User Name:</source> + <translation>Nutzername:</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Last Will</source> - <translation>Letzter Wille</translation> - </message> - <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Enter the topic of the last will</source> - <translation>Gib das Thema für den letzten Willen ein</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Enter the user name</source> + <translation>Gib den Nutzernamen ein</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>QoS:</source> - <translation>QoS:</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Password:</source> + <translation>Kennwort:</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Enter the desired QoS value</source> - <translation>Gib den gewünschten QoS Wert ein</translation> - </message> - <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Select to retain the last will message</source> - <translation>Auswählen, um die Nachricht des letzten Willens zu behalten</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Enter the password</source> + <translation>Gib das Kennwort ein</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Retain</source> - <translation>Behalten</translation> - </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> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Last Will</source> + <translation>Letzter Wille</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> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Enter the topic of the last will</source> + <translation>Gib das Thema für den letzten Willen ein</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>SSL/TLS</source> - <translation>SSL/TLS</translation> - </message> - <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Select to enable SSL/TLS connections</source> - <translation>Auswählen, um SSL/TLS Verbindungen zu aktivieren</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>QoS:</source> + <translation>QoS:</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>SSL/TLS Enabled</source> - <translation>SSL/TLS aktiviert</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Enter the desired QoS value</source> + <translation>Gib den gewünschten QoS Wert ein</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>CA File:</source> - <translation>CA Zertifikatsdatei:</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to retain the last will message</source> + <translation>Auswählen, um die Nachricht des letzten Willens zu behalten</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Enter the full path to the CA certificate file; leave empty to use platform default</source> - <translation>Gib den vollständigen Pfad zur CA Zertifikatsdatei ein; leer lassen, um den Plattformstandard zu verwenden</translation> - </message> - <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>User Properties</source> - <translation>Benutzereigenschaften</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Retain</source> + <translation>Behalten</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> + <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>Select to edit the DISCONNECT user properties</source> - <translation>Auswählen, um die DISCONNECT Benutzereigenschaften zu bearbeiten</translation> + <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> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>DISCONNECT</source> - <translation>DISCONNECT</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>SSL/TLS</source> + <translation>SSL/TLS</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> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to enable SSL/TLS connections</source> + <translation>Auswählen, um SSL/TLS Verbindungen zu aktivieren</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="53"/> - <source>Certificate Files (*.crt *.pem);;All Files (*)</source> - <translation>Zertifikatdateien (*.crt *.pem);;Alle Dateien (*)</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>SSL/TLS Enabled</source> + <translation>SSL/TLS aktiviert</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="82"/> - <source>Invalid Connection Parameters</source> - <translation>Ungültige Verbindungsparameter</translation> - </message> - <message> - <location filename="../MqttConnectionOptionsDialog.py" line="83"/> - <source>An empty Client ID requires a clean session.</source> - <translation>Eine leere Client ID setzt eine neue Session voraus.</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>CA File:</source> + <translation>CA Zertifikatsdatei:</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="185"/> - <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="84"/> - <location filename="../MqttConnectionProfilesDialog.py" line="78"/> - <location filename="../MqttConnectionProfilesDialog.py" line="74"/> - <source>Certificate Files (*.crt *.pem);;All Files (*)</source> - <translation>Zertifikatdateien (*.crt *.pem);;Alle Dateien (*)</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Enter the full path to the CA certificate file; leave empty to use platform default</source> + <translation>Gib den vollständigen Pfad zur CA Zertifikatsdatei ein; leer lassen, um den Plattformstandard zu verwenden</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="90"/> - <source>Key Files (*.key *.pem);;All Files (*)</source> - <translation>Schlüsseldateien (*.key *.pem);;Alle Dateien (*)</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>User Properties</source> + <translation>Benutzereigenschaften</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="959"/> - <location filename="../MqttConnectionProfilesDialog.py" line="921"/> - <location filename="../MqttConnectionProfilesDialog.py" line="167"/> - <source>Changed Connection Profile</source> - <translation>Verbindungsprofil geändert</translation> + <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="../MqttConnectionProfilesDialog.py" line="960"/> - <location filename="../MqttConnectionProfilesDialog.py" line="922"/> - <location filename="../MqttConnectionProfilesDialog.py" line="168"/> - <source>The current profile has unsaved changes. Shall these be saved?</source> - <translation>Das aktuelle Profil hat ungesicherte Änderungen. Sollen diese gesichert werden?</translation> + <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="../MqttConnectionProfilesDialog.py" line="199"/> - <location filename="../MqttConnectionProfilesDialog.py" line="191"/> - <source>New Connection Profile</source> - <translation>Neues Verbindungsprofil</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>DISCONNECT</source> + <translation>DISCONNECT</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="192"/> - <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="229"/> - <location filename="../MqttConnectionProfilesDialog.py" line="200"/> - <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> + <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="../MqttConnectionProfilesDialog.py" line="228"/> - <location filename="../MqttConnectionProfilesDialog.py" line="220"/> - <source>Copy Connection Profile</source> - <translation>Verbindungsprofil kopieren</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="221"/> - <source>Enter name for the copied Connection Profile:</source> - <translation>Gib eine Bezeichnung für das kopierte Verbindungsprofil ein:</translation> + <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="../MqttConnectionProfilesDialog.py" line="256"/> - <source>Delete Connection Profile</source> - <translation>Verbindungsprofil löschen</translation> + <location filename="../MqttConnectionOptionsDialog.py" line="53" /> + <source>Certificate Files (*.crt *.pem);;All Files (*)</source> + <translation>Zertifikatdateien (*.crt *.pem);;Alle Dateien (*)</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="257"/> - <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> + <location filename="../MqttConnectionOptionsDialog.py" line="82" /> + <source>Invalid Connection Parameters</source> + <translation>Ungültige Verbindungsparameter</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="664"/> - <source>Invalid Connection Parameters</source> - <translation>Ungültige Verbindungsparameter</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="665"/> - <source>An empty Client ID requires a clean session.</source> - <translation>Eine leere Client ID setzt eine neue Session voraus.</translation> + <location filename="../MqttConnectionOptionsDialog.py" line="83" /> + <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="760"/> - <source>Last Will User Properties</source> - <translation>Benutzereigenschaften für Letzter Wille</translation> + <location filename="../MqttConnectionOptionsDialog.py" line="185" /> + <source>Last Will User Properties</source> + <translation>Benutzereigenschaften für Letzter Wille</translation> </message> + </context> + <context> + <name>MqttConnectionProfilesDialog</name> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <location filename="../MqttConnectionProfilesDialog.py" line="817"/> - <source>SSL/TLS Enabled</source> - <translation>SSL/TLS aktiviert</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="818"/> - <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> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>MQTT Connection Profiles</source> + <translation>MQTT Verbindungsprofile</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="833"/> - <source>SSL/TLS Disabled</source> - <translation>SSL/TLS deaktiviert</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="834"/> - <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> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Press to add a new profile</source> + <translation>Drücken, um ein neues Profil hinzuzufügen</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="936"/> - <source>Changed Connection Profiles</source> - <translation>Verbindungsprofile geändert</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Press to copy the selected profile</source> + <translation>Drücken, um das ausgewählte Profil zu kopieren</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="937"/> - <source>The list of connection profiles has unsaved changes.</source> - <translation>Die Liste der Verbindungsprofile hat ungesicherte Änderungen.</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>MQTT Connection Profiles</source> - <translation>MQTT Verbindungsprofile</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Press to delete the selected profile</source> + <translation>Drücken, um das ausgewählte Profil zu löschen</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Press to add a new profile</source> - <translation>Drücken, um ein neues Profil hinzuzufügen</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Profile Name:</source> + <translation>Profilbezeichnung:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Press to copy the selected profile</source> - <translation>Drücken, um das ausgewählte Profil zu kopieren</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Press to delete the selected profile</source> - <translation>Drücken, um das ausgewählte Profil zu löschen</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Profile Name:</source> - <translation>Profilbezeichnung:</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Broker Address:</source> + <translation>Brokeradresse:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Broker Address:</source> - <translation>Brokeradresse:</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the broker server address</source> - <translation>Gib die Serveradresse des Broker ein</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the broker server address</source> + <translation>Gib die Serveradresse des Broker ein</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Broker Port:</source> - <translation>Brokerport:</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Broker Port:</source> + <translation>Brokerport:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the broker port number (default 1883)</source> - <translation>Gib die Portnummer des Broker ein (Standard 1883)</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the broker port number (default 1883)</source> + <translation>Gib die Portnummer des Broker ein (Standard 1883)</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Client ID:</source> - <translation>Client ID:</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Client ID:</source> + <translation>Client ID:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the ID string for this client</source> - <translation>Gib eine ID für diesen Client ein</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the ID string for this client</source> + <translation>Gib eine ID für diesen Client ein</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Press to generate a client ID</source> - <translation>Drücken, um eine Client ID zu erzeugen</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Generate</source> - <translation>Erzeugen</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>General</source> - <translation>Allgemein</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Press to generate a client ID</source> + <translation>Drücken, um eine Client ID zu erzeugen</translation> </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> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Generate</source> + <translation>Erzeugen</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>v 3.1</source> - <translation>v 3.1</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>General</source> + <translation>Allgemein</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> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>MQTT Protocol</source> + <translation>MQTT Protokoll</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>v 3.1.1</source> - <translation>v 3.1.1</translation> + <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>Select to use the MQTT 5.0 protocol</source> - <translation>Auswählen, um das MQTT 5.0 Protokoll zu verwenden</translation> + <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>v 5.0</source> - <translation>v 5.0</translation> + <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>Connection Timeout:</source> - <translation>Verbindungszeitlimit:</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the connection timeout in seconds</source> - <translation>Gib das Verbindungszeitlimit in Sekunden ein</translation> + <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"/> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source> s</source> - <translation> s</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Keep Alive Interval:</source> - <translation>Keepalive Intervall:</translation> + <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>Enter the keep alive interval in seconds</source> - <translation>Gib das Keepalive Intervall in Sekunden ein</translation> + <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>Select to start with a clean session</source> - <translation>Auswählen, um mit einer neuen Sitzung zu starten</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Connection Timeout:</source> + <translation>Verbindungszeitlimit:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Clean Session</source> - <translation>Neue Sitzung</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>User Credentials</source> - <translation>Nutzerberechtigungen</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the connection timeout in seconds</source> + <translation>Gib das Verbindungszeitlimit in Sekunden ein</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>User Name:</source> - <translation>Nutzername:</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source> s</source> + <translation> s</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the user name</source> - <translation>Gib den Nutzernamen ein</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Password:</source> - <translation>Kennwort:</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Keep Alive Interval:</source> + <translation>Keepalive Intervall:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the password</source> - <translation>Gib das Kennwort ein</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Toggle to show the password</source> - <translation>Drücken, um das Kennwort anzuzeigen</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the keep alive interval in seconds</source> + <translation>Gib das Keepalive Intervall in Sekunden ein</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Last Will</source> - <translation>Letzter Wille</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to start with a clean session</source> + <translation>Auswählen, um mit einer neuen Sitzung zu starten</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the topic of the last will</source> - <translation>Gib das Thema für den letzten Willen ein</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>QoS:</source> - <translation>QoS:</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Clean Session</source> + <translation>Neue Sitzung</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> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>User Credentials</source> + <translation>Nutzerberechtigungen</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Select to retain the last will message</source> - <translation>Auswählen, um die Nachricht des letzten Willens zu behalten</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>User Name:</source> + <translation>Nutzername:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Retain</source> - <translation>Behalten</translation> - </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> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the user name</source> + <translation>Gib den Nutzernamen ein</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> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>SSL/TLS</source> - <translation>SSL/TLS</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Password:</source> + <translation>Kennwort:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Select to enable SSL/TLS connections</source> - <translation>Auswählen, um SSL/TLS Verbindungen zu aktivieren</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the password</source> + <translation>Gib das Kennwort ein</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Select to use the default certificate file of the client</source> - <translation>Auswählen, um die Standardzertifikatsdatei des Client zu verwenden</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Toggle to show the password</source> + <translation>Drücken, um das Kennwort anzuzeigen</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>CA signed server certificate</source> - <translation>CA signiertes Serverzertifikat</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Select to use a specific certificate file</source> - <translation>Auswählen, um eine spezifische Zertifikatsdatei zu verwenden</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Last Will</source> + <translation>Letzter Wille</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>CA certificate file</source> - <translation>CA Zertifikatsdatei</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the topic of the last will</source> + <translation>Gib das Thema für den letzten Willen ein</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>CA File:</source> - <translation>CA Datei:</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>QoS:</source> + <translation>QoS:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the full path to the CA certificate file</source> - <translation>Gib den vollständigen Pfad zur CA Zertifikatsdatei ein</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Select to use a self signed client certificate</source> - <translation>Auswählen, um ein selbst signiertes Clientzertifikat zu verwenden</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the desired QoS value</source> + <translation>Gib den gewünschten QoS Wert ein</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Self signed certificates</source> - <translation>Selbst signierte Zertifikate</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Client Certificate File:</source> - <translation>Client Zertifikatsdatei:</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to retain the last will message</source> + <translation>Auswählen, um die Nachricht des letzten Willens zu behalten</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the full path to the client certificate file</source> - <translation>Gib den vollständigen Pfad zur Zertifikatsdatei des Client ein</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Retain</source> + <translation>Behalten</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Client Key File:</source> - <translation>Client Schlüssekdatei:</translation> + <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 full path to the client key file</source> - <translation>Gib den vollständigen Pfad zur Schlüsseldatei des Client ein</translation> + <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> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>User Properties</source> - <translation>Benutzereigenschaften</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>SSL/TLS</source> + <translation>SSL/TLS</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> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to enable SSL/TLS connections</source> + <translation>Auswählen, um SSL/TLS Verbindungen zu aktivieren</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> + <location filename="../MqttConnectionProfilesDialog.py" line="817" /> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>SSL/TLS Enabled</source> + <translation>SSL/TLS aktiviert</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> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to use the default certificate file of the client</source> + <translation>Auswählen, um die Standardzertifikatsdatei des Client 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="864"/> - <source>No error.</source> - <translation>Kein Fehler.</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>CA signed server certificate</source> + <translation>CA signiertes Serverzertifikat</translation> </message> <message> - <location filename="../MqttClient.py" line="866"/> - <source>Out of memory.</source> - <translation>Nicht genügend Speicher.</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to use a specific certificate file</source> + <translation>Auswählen, um eine spezifische Zertifikatsdatei zu verwenden</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>CA certificate file</source> + <translation>CA Zertifikatsdatei</translation> </message> <message> - <location filename="../MqttClient.py" line="868"/> - <source>A network protocol error occurred when communicating with the broker.</source> - <translation>Bei der Kommunikation mit dem Broker ist ein Netzprotokollfehler aufgetreten.</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>CA File:</source> + <translation>CA Datei:</translation> </message> <message> - <location filename="../MqttClient.py" line="873"/> - <source>Invalid function arguments provided.</source> - <translation>Ungültige Funktionsargumente angegeben.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="877"/> - <source>The client is not currently connected.</source> - <translation>Der Client ist momentan nicht verbunden.</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the full path to the CA certificate file</source> + <translation>Gib den vollständigen Pfad zur CA Zertifikatsdatei ein</translation> </message> <message> - <location filename="../MqttClient.py" line="881"/> - <source>The connection was refused.</source> - <translation>Die Verbindung wurde abgelehnt.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="885"/> - <source>Message not found (internal error).</source> - <translation>Nachricht nicht gefunden (interner Fehler).</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to use a self signed client certificate</source> + <translation>Auswählen, um ein selbst signiertes Clientzertifikat zu verwenden</translation> </message> <message> - <location filename="../MqttClient.py" line="889"/> - <source>The connection was lost.</source> - <translation>Die Verbindung wurde unterbrochen.</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Self signed certificates</source> + <translation>Selbst signierte Zertifikate</translation> </message> <message> - <location filename="../MqttClient.py" line="893"/> - <source>A TLS error occurred.</source> - <translation>Es ist ein TLS-Fehler aufgetreten.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="895"/> - <source>Payload too large.</source> - <translation>Nutzdaten zu groß.</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Client Certificate File:</source> + <translation>Client Zertifikatsdatei:</translation> </message> <message> - <location filename="../MqttClient.py" line="897"/> - <source>This feature is not supported.</source> - <translation>Diese Funktion wird nicht unterstützt.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="901"/> - <source>Authorisation failed.</source> - <translation>Authorisierung fehlgeschlagen.</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the full path to the client certificate file</source> + <translation>Gib den vollständigen Pfad zur Zertifikatsdatei des Client ein</translation> </message> <message> - <location filename="../MqttClient.py" line="903"/> - <source>Access denied by ACL.</source> - <translation>Zugriff durch ACL verweigert.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="911"/> - <location filename="../MqttClient.py" line="905"/> - <source>Unknown error.</source> - <translation>Unbekannter Fehler.</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Client Key File:</source> + <translation>Client Schlüssekdatei:</translation> </message> <message> - <location filename="../MqttClient.py" line="907"/> - <source>Error defined by errno.</source> - <translation>Fehler durch errno definiert.</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <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="../MqttClient.py" line="909"/> - <source>Message queue full.</source> - <translation>Warteschlange ist voll.</translation> - </message> -</context> -<context> - <name>MqttLogLevelString</name> - <message> - <location filename="../MqttClient.py" line="947"/> - <location filename="../MqttClient.py" line="930"/> - <source>Unknown</source> - <translation>Unbekannt</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>User Properties</source> + <translation>Benutzereigenschaften</translation> </message> <message> - <location filename="../MqttClient.py" line="935"/> - <source>Info</source> - <translation>Info</translation> + <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="../MqttClient.py" line="937"/> - <source>Notice</source> - <translation>Notiz</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>CONNECT</source> + <translation>CONNECT</translation> </message> <message> - <location filename="../MqttClient.py" line="939"/> - <source>Warning</source> - <translation>Warnung</translation> + <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="../MqttClient.py" line="941"/> - <source>Error</source> - <translation>Fehler</translation> - </message> - <message> - <location filename="../MqttClient.py" line="943"/> - <source>Debug</source> - <translation>Debug</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>DISCONNECT</source> + <translation>DISCONNECT</translation> </message> <message> - <location filename="../MqttClient.py" line="945"/> - <source>Logging Disabled</source> - <translation>Protokollierung aus</translation> - </message> -</context> -<context> - <name>MqttMonitorPlugin</name> - <message> - <location filename="../../PluginMqttMonitor.py" line="202"/> - <location filename="../../PluginMqttMonitor.py" line="198"/> - <location filename="../../PluginMqttMonitor.py" line="81"/> - <source>MQTT Monitor</source> - <translation>MQTT Monitor</translation> + <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="../../PluginMqttMonitor.py" line="103"/> - <source>(package not available)</source> - <translation>(Paket nicht verfügbar)</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Use CONNECT properties for DISCONNECT</source> + <translation>Verwende CONNECT Benutzereigenschaften für DISCONNECT</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="109"/> - <source>MQTT</source> - <translation>MQTT</translation> - </message> - <message> - <location filename="../../PluginMqttMonitor.py" line="110"/> - <source>paho-mqtt</source> - <translation>paho-mqtt</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="84" /> + <location filename="../MqttConnectionProfilesDialog.py" line="78" /> + <location filename="../MqttConnectionProfilesDialog.py" line="74" /> + <source>Certificate Files (*.crt *.pem);;All Files (*)</source> + <translation>Zertifikatdateien (*.crt *.pem);;Alle Dateien (*)</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="180"/> - <source>The 'paho-mqtt' package is not available.</source> - <translation>Das 'paho-mqtt' Paket ist nicht verfügbar.</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="90" /> + <source>Key Files (*.key *.pem);;All Files (*)</source> + <translation>Schlüsseldateien (*.key *.pem);;Alle Dateien (*)</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="203"/> - <source>M&QTT Monitor</source> - <translation>M&QTT Monitor</translation> - </message> - <message> - <location filename="../../PluginMqttMonitor.py" line="204"/> - <source>Alt+Shift+Q</source> - <translation>Alt+Shift+Q</translation> - </message> - <message> - <location filename="../../PluginMqttMonitor.py" line="210"/> - <source>Switch the input focus to the MQTT Monitor window.</source> - <translation>Schaltet den Eingabefokus auf das MQTT-Überwachungsfenster um.</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="957" /> + <location filename="../MqttConnectionProfilesDialog.py" line="921" /> + <location filename="../MqttConnectionProfilesDialog.py" line="167" /> + <source>Changed Connection Profile</source> + <translation>Verbindungsprofil geändert</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="213"/> - <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> -</context> -<context> - <name>MqttMonitorWidget</name> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source><b>MQTT Monitor</b></source> - <translation><b>MQTT Monitor</b></translation> + <location filename="../MqttConnectionProfilesDialog.py" line="958" /> + <location filename="../MqttConnectionProfilesDialog.py" line="922" /> + <location filename="../MqttConnectionProfilesDialog.py" line="168" /> + <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="../MqttMonitorWidget.ui" line="0"/> - <source>Broker</source> - <translation>Broker</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="199" /> + <location filename="../MqttConnectionProfilesDialog.py" line="191" /> + <source>New Connection Profile</source> + <translation>Neues Verbindungsprofil</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to switch the mode between profiles and direct connection</source> - <translation>Drücken, um den Modus zwischen Profil und Direktverbindung umzuschalten</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="192" /> + <source>Enter name for the new Connection Profile:</source> + <translation>Gib eine Bezeichnung für das neue Verbindungsprofil ein:</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Select the profile to be used to connect to the broker</source> - <translation>Wähle das für die Verbindung mit dem Broker zu nutzende Profil aus</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="229" /> + <location filename="../MqttConnectionProfilesDialog.py" line="200" /> + <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="../MqttMonitorWidget.ui" line="0"/> - <source>Enter the host name of the broker</source> - <translation>Gib den Hostnamen des Brokers ein</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="228" /> + <location filename="../MqttConnectionProfilesDialog.py" line="220" /> + <source>Copy Connection Profile</source> + <translation>Verbindungsprofil kopieren</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Enter the broker port to connect to</source> - <translation>Geben Sie den zu verbindenden Broker-Port ein</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to open a dialog to enter connection options</source> - <translation>Drücken, um einen Dialog zur Eingabe von Verbindungsoptionen zu öffnen</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to connect to/disconnect from the broker</source> - <translation>Drücken, um die Verbindung zum Broker herzustellen/zu trennen</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="221" /> + <source>Enter name for the copied Connection Profile:</source> + <translation>Gib eine Bezeichnung für das kopierte Verbindungsprofil ein:</translation> </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> + <location filename="../MqttConnectionProfilesDialog.py" line="256" /> + <source>Delete Connection Profile</source> + <translation>Verbindungsprofil löschen</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1101"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Subscribe</source> - <translation>Abonnieren</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="257" /> + <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="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Topic:</source> - <translation>Thema:</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="664" /> + <source>Invalid Connection Parameters</source> + <translation>Ungültige Verbindungsparameter</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Enter the topic</source> - <translation>Gib das Thema ein</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="665" /> + <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="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>QoS:</source> - <translation>QoS:</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Enter the desired QoS value</source> - <translation>Gib den gewünschten QoS Wert ein</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to subscribe to the given topic</source> - <translation>Drücken, um das eingegebene Thema zu abonieren</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="760" /> + <source>Last Will User Properties</source> + <translation>Benutzereigenschaften für Letzter Wille</translation> </message> <message> - <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> + <location filename="../MqttConnectionProfilesDialog.py" line="818" /> + <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="../MqttMonitorWidget.py" line="1096"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Unsubscribe</source> - <translation>Abo kündigen</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="833" /> + <source>SSL/TLS Disabled</source> + <translation>SSL/TLS deaktiviert</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Select the topic to unsubscribe</source> - <translation>Wählen ein zu kündigendes Thema aus</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="834" /> + <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="../MqttMonitorWidget.ui" line="0"/> - <source>Press to unsubscribe the selected topic</source> - <translation>Drücken, um das ausgewählte Thema zu kündigen</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="936" /> + <source>Changed Connection Profiles</source> + <translation>Verbindungsprofile geändert</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Publish</source> - <translation>Veröffentlichen</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="937" /> + <source>The list of connection profiles has unsaved changes.</source> + <translation>Die Liste der Verbindungsprofile hat ungesicherte Änderungen.</translation> </message> + </context> + <context> + <name>MqttErrorMessage</name> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Enter the topic to publish to</source> - <translation>Gib das Thema der Veröffentlichung ein</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Select to retain the published message</source> - <translation>Auswählen, um die Nachricht zu behalten</translation> + <location filename="../MqttClient.py" line="773" /> + <source>No error.</source> + <translation>Kein Fehler.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Retain</source> - <translation>Behalten</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Enter the string data to be sent</source> - <translation>Gib die zu sendende Nachricht ein</translation> + <location filename="../MqttClient.py" line="775" /> + <source>Out of memory.</source> + <translation>Nicht genügend Speicher.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Payload File:</source> - <translation>Nutzdatendatei:</translation> + <location filename="../MqttClient.py" line="777" /> + <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="../MqttMonitorWidget.ui" line="0"/> - <source>Enter the full path to a file containing the message payload</source> - <translation>Gib den vollständigen Pfad zu einer Datei mit den Nachrichtennutzdaten ein</translation> + <location filename="../MqttClient.py" line="782" /> + <source>Invalid function arguments provided.</source> + <translation>Ungültige Funktionsargumente angegeben.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to clear the publish data</source> - <translation>Drücken, um die Veröffentlichungsdaten zu löschen</translation> + <location filename="../MqttClient.py" line="786" /> + <source>The client is not currently connected.</source> + <translation>Der Client ist momentan nicht verbunden.</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="346"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Clear</source> - <translation>Löschen</translation> + <location filename="../MqttClient.py" line="790" /> + <source>The connection was refused.</source> + <translation>Die Verbindung wurde abgelehnt.</translation> </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> + <location filename="../MqttClient.py" line="794" /> + <source>Message not found (internal error).</source> + <translation>Nachricht nicht gefunden (interner Fehler).</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> + <location filename="../MqttClient.py" line="798" /> + <source>The connection was lost.</source> + <translation>Die Verbindung wurde unterbrochen.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Clear when sent</source> - <translation>Nach dem Senden löschen</translation> + <location filename="../MqttClient.py" line="802" /> + <source>A TLS error occurred.</source> + <translation>Es ist ein TLS-Fehler aufgetreten.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Properties</source> - <translation>Eigenschaften</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>MQTT V5 Properties</source> - <translation>MQTT v5 Eigenschaften</translation> + <location filename="../MqttClient.py" line="804" /> + <source>Payload too large.</source> + <translation>Nutzdaten zu groß.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Messages</source> - <translation>Meldungen</translation> + <location filename="../MqttClient.py" line="806" /> + <source>This feature is not supported.</source> + <translation>Diese Funktion wird nicht unterstützt.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to save the received messages to a file</source> - <translation>Drücken, um die empfangenen Meldungen in eine Datei zu speichern</translation> + <location filename="../MqttClient.py" line="810" /> + <source>Authorisation failed.</source> + <translation>Authorisierung fehlgeschlagen.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Save</source> - <translation>Speichern</translation> + <location filename="../MqttClient.py" line="812" /> + <source>Access denied by ACL.</source> + <translation>Zugriff durch ACL verweigert.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to clear the list of received messages</source> - <translation>Drücken, um die Liste der empfangenen Meldungen zu löschen</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Select to scroll to the most recently received message</source> - <translation>Auswählen, um zur zuletzt empfangenen Meldung zu blättern</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Follow received messages</source> - <translation>Empfangenen Meldungen folgen</translation> + <location filename="../MqttClient.py" line="820" /> + <location filename="../MqttClient.py" line="814" /> + <source>Unknown error.</source> + <translation>Unbekannter Fehler.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Status</source> - <translation>Status</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1103"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to activate the status display</source> - <translation>Drücken, um die Statusanzeige zu aktivieren</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source><b>Broker</b></source> - <translation><b>Broker</b></translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Version</source> - <translation>Version</translation> + <location filename="../MqttClient.py" line="816" /> + <source>Error defined by errno.</source> + <translation>Fehler durch errno definiert.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>-</source> - <translation>-</translation> + <location filename="../MqttClient.py" line="818" /> + <source>Message queue full.</source> + <translation>Warteschlange ist voll.</translation> + </message> + </context> + <context> + <name>MqttLogLevelString</name> + <message> + <location filename="../MqttClient.py" line="856" /> + <location filename="../MqttClient.py" line="839" /> + <source>Unknown</source> + <translation>Unbekannt</translation> + </message> + <message> + <location filename="../MqttClient.py" line="844" /> + <source>Info</source> + <translation>Info</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Timestamp</source> - <translation>Zeitstempel</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Uptime</source> - <translation>Betriebszeit</translation> + <location filename="../MqttClient.py" line="846" /> + <source>Notice</source> + <translation>Notiz</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Subscriptions</source> - <translation>Abonnements</translation> + <location filename="../MqttClient.py" line="848" /> + <source>Warning</source> + <translation>Warnung</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source><b>Clients</b></source> - <translation><b>Klienten</b></translation> + <location filename="../MqttClient.py" line="850" /> + <source>Error</source> + <translation>Fehler</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Connected</source> - <translation>Verbunden</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Disconnected</source> - <translation>Nicht Verbunden</translation> + <location filename="../MqttClient.py" line="852" /> + <source>Debug</source> + <translation>Debug</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Expired</source> - <translation>Abgelaufen</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Maximum</source> - <translation>Maximum</translation> + <location filename="../MqttClient.py" line="854" /> + <source>Logging Disabled</source> + <translation>Protokollierung aus</translation> </message> + </context> + <context> + <name>MqttMonitorPlugin</name> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Total</source> - <translation>Gesamt</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source><b>Messages</b></source> - <translation><b>Mitteilungen</b></translation> + <location filename="../../PluginMqttMonitor.py" line="214" /> + <location filename="../../PluginMqttMonitor.py" line="210" /> + <location filename="../../PluginMqttMonitor.py" line="93" /> + <source>MQTT Monitor</source> + <translation>MQTT Monitor</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Sent</source> - <translation>Gesendet</translation> + <location filename="../../PluginMqttMonitor.py" line="115" /> + <source>(package not available)</source> + <translation>(Paket nicht verfügbar)</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Received</source> - <translation>Empfangen</translation> + <location filename="../../PluginMqttMonitor.py" line="121" /> + <source>MQTT</source> + <translation>MQTT</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Stored</source> - <translation>Gespeichert</translation> + <location filename="../../PluginMqttMonitor.py" line="122" /> + <source>paho-mqtt</source> + <translation>paho-mqtt</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Inflight</source> - <translation>In Übertragung</translation> + <location filename="../../PluginMqttMonitor.py" line="192" /> + <source>The 'paho-mqtt' package is not available.</source> + <translation>Das 'paho-mqtt' Paket ist nicht verfügbar.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Retained</source> - <translation>Aufgehoben</translation> + <location filename="../../PluginMqttMonitor.py" line="215" /> + <source>M&QTT Monitor</source> + <translation>M&QTT Monitor</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source><b>PUBLISH Messages</b></source> - <translation><b>PUBLISH Mitteilungen</b></translation> + <location filename="../../PluginMqttMonitor.py" line="216" /> + <source>Alt+Shift+Q</source> + <translation>Alt+Shift+Q</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Dropped</source> - <translation>Gelöscht</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source><b>Traffic</b></source> - <translation><b>Verkehr</b></translation> + <location filename="../../PluginMqttMonitor.py" line="222" /> + <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="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Bytes Sent</source> - <translation>Bytes Gesendet</translation> + <location filename="../../PluginMqttMonitor.py" line="225" /> + <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> + </context> + <context> + <name>MqttMonitorWidget</name> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Bytes Received</source> - <translation>Bytes Empfangen</translation> + <location filename="../MqttMonitorWidget.py" line="88" /> + <source>All Files (*)</source> + <translation>Alle Dateien (*)</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source><b>Load</b> (1 min / 5 min / 15 min)</source> - <translation><b>Last</b> (1 Min / 5 Min / 15 Min)</translation> + <location filename="../MqttMonitorWidget.py" line="325" /> + <source>Copy</source> + <translation>Kopieren</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>- / - / -</source> - <translation>- / - / -</translation> + <location filename="../MqttMonitorWidget.py" line="331" /> + <source>Select All</source> + <translation>Alles auswählen</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Messages Sent</source> - <translation>Mitteilungen Gesendet</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.py" line="337" /> + <source>Clear</source> + <translation>Löschen</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Messages Received</source> - <translation>Mitteilungen Empfangen</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>PUBLISH Sent</source> - <translation>PUBLISH Gesendet</translation> + <location filename="../MqttMonitorWidget.py" line="372" /> + <source>{0} - Session still present</source> + <translation>{0} - Sitzung existiert noch</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>PUBLISH Received</source> - <translation>PUBLISH Empfangen</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>PUBLISH Dropped</source> - <translation>PUBLISH Gelöscht</translation> + <location filename="../MqttMonitorWidget.py" line="410" /> + <source>Connection timed out</source> + <translation>Zeitlimit für Verbindung überschritten</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Connections</source> - <translation>Verbindungen</translation> + <location filename="../MqttMonitorWidget.py" line="438" /> + <source>Connection to Broker shut down cleanly.</source> + <translation>Die Verbindung zum Broker wurde ordnungsgemäß beendet.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Sockets</source> - <translation>Sockets</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Log</source> - <translation>Protokoll</translation> + <location filename="../MqttMonitorWidget.py" line="498" /> + <source>{0}: {1}</source> + <translation>{0}: {1}</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Max. Log Level:</source> - <translation>Max. Protokollebene:</translation> + <location filename="../MqttMonitorWidget.py" line="709" /> + <source>SUBSCRIBE: User Properties for '{0}'</source> + <translation>SUBSCRIBE: Benutzereigenschaften für '{0}'</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Select the maximum log level to show</source> - <translation>Die maximal anzuzeigende Protokollebene auswählen</translation> + <location filename="../MqttMonitorWidget.py" line="735" /> + <source>Subscribe to Topic</source> + <translation>Thema abonnieren</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to save the received log messages to a file</source> - <translation>Drücken, um die empfangenen Protokollmeldungen in eine Datei zu speichern</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to clear the list of received log messages</source> - <translation>Drücken, um die Liste der empfangenen Protokollmeldungen zu löschen</translation> + <location filename="../MqttMonitorWidget.py" line="736" /> + <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.ui" line="0"/> - <source>Select to scroll to the most recently received log message</source> - <translation>Auswählen, um zur zuletzt empfangenen Protokollmeldungen zu blättern</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Follow received log messages</source> - <translation>Empfangenen Protokollmeldungen folgen</translation> + <location filename="../MqttMonitorWidget.py" line="760" /> + <source>UNSUBSCRIBE: User Properties for '{0}'</source> + <translation>UNSUBSCRIBE: Benutzereigenschaften für '{0}'</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="93"/> - <source>All Files (*)</source> - <translation>Alle Dateien (*)</translation> + <location filename="../MqttMonitorWidget.py" line="798" /> + <source>PUBLISH: User Properties for '{0}'</source> + <translation>PUBLISH: Benutzereigenschaften für '{0}'</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="334"/> - <source>Copy</source> - <translation>Kopieren</translation> + <location filename="../MqttMonitorWidget.py" line="834" /> + <source>Read Payload from File</source> + <translation>Nutzdaten aus Datei lesen</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="340"/> - <source>Select All</source> - <translation>Alles auswählen</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="391"/> - <source>{0} - Session still present</source> - <translation>{0} - Sitzung existiert noch</translation> + <location filename="../MqttMonitorWidget.py" line="835" /> + <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="429"/> - <source>Connection timed out</source> - <translation>Zeitlimit für Verbindung überschritten</translation> + <location filename="../MqttMonitorWidget.py" line="986" /> + <location filename="../MqttMonitorWidget.py" line="970" /> + <location filename="../MqttMonitorWidget.py" line="951" /> + <source>Save Messages</source> + <translation>Meldungen speichern</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="457"/> - <source>Connection to Broker shut down cleanly.</source> - <translation>Die Verbindung zum Broker wurde ordnungsgemäß beendet.</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="517"/> - <source>{0}: {1}</source> - <translation>{0}: {1}</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="737"/> - <source>SUBSCRIBE: User Properties for '{0}'</source> - <translation>SUBSCRIBE: Benutzereigenschaften für '{0}'</translation> + <location filename="../MqttMonitorWidget.py" line="953" /> + <source>Messages Files (*.txt);;All Files (*)</source> + <translation>Meldungsdateien (*.txt);;Alle Dateien (*)</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="763"/> - <source>Subscribe to Topic</source> - <translation>Thema abonnieren</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="764"/> - <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> + <location filename="../MqttMonitorWidget.py" line="1032" /> + <location filename="../MqttMonitorWidget.py" line="971" /> + <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="788"/> - <source>UNSUBSCRIBE: User Properties for '{0}'</source> - <translation>UNSUBSCRIBE: Benutzereigenschaften für '{0}'</translation> + <location filename="../MqttMonitorWidget.py" line="1048" /> + <location filename="../MqttMonitorWidget.py" line="987" /> + <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="826"/> - <source>PUBLISH: User Properties for '{0}'</source> - <translation>PUBLISH: Benutzereigenschaften für '{0}'</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="862"/> - <source>Read Payload from File</source> - <translation>Nutzdaten aus Datei lesen</translation> + <location filename="../MqttMonitorWidget.py" line="1047" /> + <location filename="../MqttMonitorWidget.py" line="1031" /> + <location filename="../MqttMonitorWidget.py" line="1012" /> + <source>Save Log Messages</source> + <translation>Protokollmeldungen speichern</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="863"/> - <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> + <location filename="../MqttMonitorWidget.py" line="1014" /> + <source>Log Files (*.log);;All Files (*)</source> + <translation>Protokolldateien (*.log);;Alle Dateien (*)</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1014"/> - <location filename="../MqttMonitorWidget.py" line="998"/> - <location filename="../MqttMonitorWidget.py" line="979"/> - <source>Save Messages</source> - <translation>Meldungen speichern</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.py" line="1068" /> + <source>Unsubscribe</source> + <translation>Abo kündigen</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="981"/> - <source>Messages Files (*.txt);;All Files (*)</source> - <translation>Meldungsdateien (*.txt);;Alle Dateien (*)</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1060"/> - <location filename="../MqttMonitorWidget.py" line="999"/> - <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> + <location filename="../MqttMonitorWidget.py" line="1070" /> + <source>Press to deactivate the status display</source> + <translation>Drücken, um die Statusanzeige zu deaktivieren</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1076"/> - <location filename="../MqttMonitorWidget.py" line="1015"/> - <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="1075"/> - <location filename="../MqttMonitorWidget.py" line="1059"/> - <location filename="../MqttMonitorWidget.py" line="1040"/> - <source>Save Log Messages</source> - <translation>Protokollmeldungen speichern</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.py" line="1073" /> + <source>Subscribe</source> + <translation>Abonnieren</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1042"/> - <source>Log Files (*.log);;All Files (*)</source> - <translation>Protokolldateien (*.log);;Alle Dateien (*)</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.py" line="1075" /> + <source>Press to activate the status display</source> + <translation>Drücken, um die Statusanzeige zu aktivieren</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1098"/> - <source>Press to deactivate the status display</source> - <translation>Drücken, um die Statusanzeige zu deaktivieren</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1265"/> - <source>QoS: {0} + <location filename="../MqttMonitorWidget.py" line="1237" /> + <source>QoS: {0} </source> - <translation>QoS: {0} + <translation>QoS: {0} </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1269"/> - <source>Retained Message + <location filename="../MqttMonitorWidget.py" line="1241" /> + <source>Retained Message </source> - <translation>Gemerkte Meldung + <translation>Gemerkte Meldung </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1273"/> - <source>Properties: + <location filename="../MqttMonitorWidget.py" line="1245" /> + <source>Properties: </source> - <translation>Eigenschaften: + <translation>Eigenschaften: </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1277"/> - <source>{0}: {1} + <location filename="../MqttMonitorWidget.py" line="1249" /> + <source>{0}: {1} </source> - <comment>property name, property value</comment> - <translation>{0}: {1} + <comment>property name, property value</comment> + <translation>{0}: {1} </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1283"/> - <source>Message: + <location filename="../MqttMonitorWidget.py" line="1255" /> + <source>Message: </source> - <translation>Meldung: + <translation>Meldung: </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1290"/> - <source><empty></source> - <translation><leer></translation> + <location filename="../MqttMonitorWidget.py" line="1262" /> + <source><empty></source> + <translation><leer></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1468" /> + <location filename="../MqttMonitorWidget.py" line="1419" /> + <source>Connecting to {0}:{1} ...</source> + <translation>Verbinde zu {0}:{1} ...</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1613" /> + <source>{0} Bytes</source> + <translation>{0} Bytes</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1618" /> + <source>{0} KiB</source> + <translation>{0} KiB</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1496"/> - <location filename="../MqttMonitorWidget.py" line="1447"/> - <source>Connecting to {0}:{1} ...</source> - <translation>Verbinde zu {0}:{1} ...</translation> + <location filename="../MqttMonitorWidget.py" line="1623" /> + <source>{0} MiB</source> + <translation>{0} MiB</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1628" /> + <source>{0} GiB</source> + <translation>{0} GiB</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1641"/> - <source>{0} Bytes</source> - <translation>{0} Bytes</translation> + <location filename="../MqttMonitorWidget.py" line="1633" /> + <source>{0} TiB</source> + <translation>{0} TiB</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1646"/> - <source>{0} KiB</source> - <translation>{0} KiB</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source><b>MQTT Monitor</b></source> + <translation><b>MQTT Monitor</b></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Broker</source> + <translation>Broker</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1651"/> - <source>{0} MiB</source> - <translation>{0} MiB</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to switch the mode between profiles and direct connection</source> + <translation>Drücken, um den Modus zwischen Profil und Direktverbindung umzuschalten</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Select the profile to be used to connect to the broker</source> + <translation>Wähle das für die Verbindung mit dem Broker zu nutzende Profil aus</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1656"/> - <source>{0} GiB</source> - <translation>{0} GiB</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Enter the host name of the broker</source> + <translation>Gib den Hostnamen des Brokers ein</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Enter the broker port to connect to</source> + <translation>Geben Sie den zu verbindenden Broker-Port ein</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to open a dialog to enter connection options</source> + <translation>Drücken, um einen Dialog zur Eingabe von Verbindungsoptionen zu öffnen</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1661"/> - <source>{0} TiB</source> - <translation>{0} TiB</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to connect to/disconnect from the broker</source> + <translation>Drücken, um die Verbindung zum Broker herzustellen/zu trennen</translation> + </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> -</context> -<context> - <name>MqttPage</name> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Pub/Sub</source> + <translation>Pub/Sub</translation> + </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source><b>Configure MQTT Monitor</b></source> - <translation><b>Konfiguration des MQTT Monitor</b></translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Topic:</source> + <translation>Thema:</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Enter the topic</source> + <translation>Gib das Thema ein</translation> </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source>Default MQTT Protocol</source> - <translation>Standard MQTT Protokoll</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>QoS:</source> + <translation>QoS:</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Enter the desired QoS value</source> + <translation>Gib den gewünschten QoS Wert ein</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to subscribe to the given topic</source> + <translation>Drücken, um das eingegebene Thema zu abonieren</translation> + </message> + <message> + <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="../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> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Select the topic to unsubscribe</source> + <translation>Wählen ein zu kündigendes Thema aus</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to unsubscribe the selected topic</source> + <translation>Drücken, um das ausgewählte Thema zu kündigen</translation> </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source>v 3.1</source> - <translation>v 3.1</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Publish</source> + <translation>Veröffentlichen</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> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Enter the topic to publish to</source> + <translation>Gib das Thema der Veröffentlichung ein</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Select to retain the published message</source> + <translation>Auswählen, um die Nachricht zu behalten</translation> </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source>v 3.1.1</source> - <translation>v 3.1.1</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Retain</source> + <translation>Behalten</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Enter the string data to be sent</source> + <translation>Gib die zu sendende Nachricht ein</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> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Payload File:</source> + <translation>Nutzdatendatei:</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Enter the full path to a file containing the message payload</source> + <translation>Gib den vollständigen Pfad zu einer Datei mit den Nachrichtennutzdaten ein</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to clear the publish data</source> + <translation>Drücken, um die Veröffentlichungsdaten zu löschen</translation> </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source>v 5.0</source> - <translation>v 5.0</translation> + <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="../ConfigurationPage/MqttPage.ui" line="0"/> - <source>Recent Brokers</source> - <translation>Zuletzte genutzte Broker</translation> + <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> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source>Number of recent brokers:</source> - <translation>Anzahl zuletzt genutzter Broker:</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Clear when sent</source> + <translation>Nach dem Senden löschen</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> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Properties</source> + <translation>Eigenschaften</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>MQTT V5 Properties</source> + <translation>MQTT v5 Eigenschaften</translation> </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source>Recent Topics</source> - <translation>Zuletzt abonnierte Themen</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Messages</source> + <translation>Meldungen</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to save the received messages to a file</source> + <translation>Drücken, um die empfangenen Meldungen in eine Datei zu speichern</translation> </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source>Number of recent topics:</source> - <translation>Anzahl zuletzt abonnierter Themen:</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Save</source> + <translation>Speichern</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to clear the list of received messages</source> + <translation>Drücken, um die Liste der empfangenen Meldungen zu löschen</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> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Select to scroll to the most recently received message</source> + <translation>Auswählen, um zur zuletzt empfangenen Meldung zu blättern</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Follow received messages</source> + <translation>Empfangenen Meldungen folgen</translation> </message> -</context> -<context> - <name>MqttReasonCodeNames</name> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Status</source> + <translation>Status</translation> + </message> <message> - <location filename="../MqttReasonCodes.py" line="15"/> - <source>Success</source> - <translation>Erfolg</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source><b>Broker</b></source> + <translation><b>Broker</b></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Version</source> + <translation>Version</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="24"/> - <source>Normal disconnection</source> - <translation>Normale Trennung</translation> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="27"/> - <source>Granted QoS 0</source> - <translation>QoS 0 genehmigt</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>-</source> + <translation>-</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="32"/> - <source>Granted QoS 1</source> - <translation>QoS 1 genehmigt</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Timestamp</source> + <translation>Zeitstempel</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Uptime</source> + <translation>Betriebszeit</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="37"/> - <source>Granted QoS 2</source> - <translation>QoS 2 genehmigt</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Subscriptions</source> + <translation>Abonnements</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="42"/> - <source>Disconnect with will message</source> - <translation>Trennung mit letztem Willen</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source><b>Clients</b></source> + <translation><b>Klienten</b></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Connected</source> + <translation>Verbunden</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Disconnected</source> + <translation>Nicht Verbunden</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="47"/> - <source>No matching subscribers</source> - <translation>Keine passenden Abonnenten</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Expired</source> + <translation>Abgelaufen</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Maximum</source> + <translation>Maximum</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Total</source> + <translation>Gesamt</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source><b>Messages</b></source> + <translation><b>Mitteilungen</b></translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="53"/> - <source>No subscription found</source> - <translation>Kein Abonnement gefunden</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Sent</source> + <translation>Gesendet</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Received</source> + <translation>Empfangen</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="58"/> - <source>Continue authentication</source> - <translation>Authentisierung fortsetzen</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Stored</source> + <translation>Gespeichert</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="63"/> - <source>Re-authenticate</source> - <translation>Neuauthentisierung</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Inflight</source> + <translation>In Übertragung</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Retained</source> + <translation>Aufgehoben</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source><b>PUBLISH Messages</b></source> + <translation><b>PUBLISH Mitteilungen</b></translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="68"/> - <source>Unspecified error</source> - <translation>Unspezifizierter Fehler</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Dropped</source> + <translation>Gelöscht</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source><b>Traffic</b></source> + <translation><b>Verkehr</b></translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="78"/> - <source>Malformed packet</source> - <translation>Fehlerhaftes Paket</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Bytes Sent</source> + <translation>Bytes Gesendet</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Bytes Received</source> + <translation>Bytes Empfangen</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <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="../MqttReasonCodes.py" line="84"/> - <source>Protocol error</source> - <translation>Protokollfehler</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>- / - / -</source> + <translation>- / - / -</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="90"/> - <source>Implementation specific error</source> - <translation>Implementierungsspezifischer Fehler</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Messages Sent</source> + <translation>Mitteilungen Gesendet</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="102"/> - <source>Unsupported protocol version</source> - <translation>Nicht unterstützte Protokollversion</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Messages Received</source> + <translation>Mitteilungen Empfangen</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="107"/> - <source>Client identifier not valid</source> - <translation>Client-ID nicht gültig</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>PUBLISH Sent</source> + <translation>PUBLISH Gesendet</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="112"/> - <source>Bad user name or password</source> - <translation>Ungültiger Nutzername oder Kennwort</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>PUBLISH Received</source> + <translation>PUBLISH Empfangen</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>PUBLISH Dropped</source> + <translation>PUBLISH Gelöscht</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Connections</source> + <translation>Verbindungen</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Sockets</source> + <translation>Sockets</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="117"/> - <source>Not authorized</source> - <translation>Nicht authorisiert</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Log</source> + <translation>Protokoll</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Max. Log Level:</source> + <translation>Max. Protokollebene:</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="127"/> - <source>Server unavailable</source> - <translation>Server nicht verfügbar</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Select the maximum log level to show</source> + <translation>Die maximal anzuzeigende Protokollebene auswählen</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="132"/> - <source>Server busy</source> - <translation>Server ausgelastet</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to save the received log messages to a file</source> + <translation>Drücken, um die empfangenen Protokollmeldungen in eine Datei zu speichern</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to clear the list of received log messages</source> + <translation>Drücken, um die Liste der empfangenen Protokollmeldungen zu löschen</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="138"/> - <source>Banned</source> - <translation>Gebannt</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Select to scroll to the most recently received log message</source> + <translation>Auswählen, um zur zuletzt empfangenen Protokollmeldungen zu blättern</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="143"/> - <source>Server shutting down</source> - <translation>Server fährt herunter</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Follow received log messages</source> + <translation>Empfangenen Protokollmeldungen folgen</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="../MqttReasonCodes.py" line="148"/> - <source>Bad authentication method</source> - <translation>Ungültige Authentifizierungsmethode</translation> + <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="../MqttReasonCodes.py" line="153"/> - <source>Keep alive timeout</source> - <translation>Keep Alive Timeout</translation> + <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="../MqttReasonCodes.py" line="158"/> - <source>Session taken over</source> - <translation>Sitzung übernommen</translation> + <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="../MqttReasonCodes.py" line="163"/> - <source>Topic filter invalid</source> - <translation>Themenfilter ungültig</translation> + <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="../MqttReasonCodes.py" line="170"/> - <source>Topic name invalid</source> - <translation>Themenname ungültig</translation> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Number of recent topics:</source> + <translation>Anzahl zuletzt abonnierter Themen:</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="178"/> - <source>Packet identifier in use</source> - <translation>Paketkennung in Verwendung</translation> + <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="15" /> + <source>Success</source> + <translation>Erfolg</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="186"/> - <source>Packet identifier not found</source> - <translation>Paketkennung nicht gefunden</translation> + <location filename="../MqttReasonCodes.py" line="24" /> + <source>Normal disconnection</source> + <translation>Normale Trennung</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="27" /> + <source>Granted QoS 0</source> + <translation>QoS 0 genehmigt</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="191"/> - <source>Receive maximum exceeded</source> - <translation>Empfangsmaximum überschritten</translation> + <location filename="../MqttReasonCodes.py" line="32" /> + <source>Granted QoS 1</source> + <translation>QoS 1 genehmigt</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="37" /> + <source>Granted QoS 2</source> + <translation>QoS 2 genehmigt</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="196"/> - <source>Topic alias invalid</source> - <translation>Themenalias ungültig</translation> + <location filename="../MqttReasonCodes.py" line="42" /> + <source>Disconnect with will message</source> + <translation>Trennung mit letztem Willen</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="47" /> + <source>No matching subscribers</source> + <translation>Keine passenden Abonnenten</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="53" /> + <source>No subscription found</source> + <translation>Kein Abonnement gefunden</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="201"/> - <source>Packet too large</source> - <translation>Paket zu groß</translation> + <location filename="../MqttReasonCodes.py" line="58" /> + <source>Continue authentication</source> + <translation>Authentisierung fortsetzen</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="63" /> + <source>Re-authenticate</source> + <translation>Neuauthentisierung</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="207"/> - <source>Message rate too high</source> - <translation>Meldungsrate zu hoch</translation> + <location filename="../MqttReasonCodes.py" line="68" /> + <source>Unspecified error</source> + <translation>Unspezifizierter Fehler</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="212"/> - <source>Quota exceeded</source> - <translation>Quota überschritten</translation> + <location filename="../MqttReasonCodes.py" line="78" /> + <source>Malformed packet</source> + <translation>Fehlerhaftes Paket</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="221"/> - <source>Administrative action</source> - <translation>Administrative Aktion</translation> + <location filename="../MqttReasonCodes.py" line="84" /> + <source>Protocol error</source> + <translation>Protokollfehler</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="90" /> + <source>Implementation specific error</source> + <translation>Implementierungsspezifischer Fehler</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="226"/> - <source>Payload format invalid</source> - <translation>Nutzlastformat ungültig</translation> + <location filename="../MqttReasonCodes.py" line="102" /> + <source>Unsupported protocol version</source> + <translation>Nicht unterstützte Protokollversion</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="107" /> + <source>Client identifier not valid</source> + <translation>Client-ID nicht gültig</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="112" /> + <source>Bad user name or password</source> + <translation>Ungültiger Nutzername oder Kennwort</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="117" /> + <source>Not authorized</source> + <translation>Nicht authorisiert</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="233"/> - <source>Retain not supported</source> - <translation>Merken nicht unterstützt</translation> + <location filename="../MqttReasonCodes.py" line="127" /> + <source>Server unavailable</source> + <translation>Server nicht verfügbar</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="132" /> + <source>Server busy</source> + <translation>Server ausgelastet</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="239"/> - <source>QoS not supported</source> - <translation>QoS nicht unterstützt</translation> + <location filename="../MqttReasonCodes.py" line="138" /> + <source>Banned</source> + <translation>Gebannt</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="245"/> - <source>Use another server</source> - <translation>Verwende anderen Server</translation> + <location filename="../MqttReasonCodes.py" line="143" /> + <source>Server shutting down</source> + <translation>Server fährt herunter</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="148" /> + <source>Bad authentication method</source> + <translation>Ungültige Authentifizierungsmethode</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="251"/> - <source>Server moved</source> - <translation>Server umgezogen</translation> + <location filename="../MqttReasonCodes.py" line="153" /> + <source>Keep alive timeout</source> + <translation>Keep Alive Timeout</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="158" /> + <source>Session taken over</source> + <translation>Sitzung übernommen</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="257"/> - <source>Shared subscription not supported</source> - <translation>Geteiltes Abonnement nicht unterstützt</translation> + <location filename="../MqttReasonCodes.py" line="163" /> + <source>Topic filter invalid</source> + <translation>Themenfilter ungültig</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="170" /> + <source>Topic name invalid</source> + <translation>Themenname ungültig</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="178" /> + <source>Packet identifier in use</source> + <translation>Paketkennung in Verwendung</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="262"/> - <source>Connection rate exceeded</source> - <translation>Verbindungsrate überschritten</translation> + <location filename="../MqttReasonCodes.py" line="186" /> + <source>Packet identifier not found</source> + <translation>Paketkennung nicht gefunden</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="191" /> + <source>Receive maximum exceeded</source> + <translation>Empfangsmaximum überschritten</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="268"/> - <source>Maximum connect time</source> - <translation>Maximale Verbindungszeit</translation> + <location filename="../MqttReasonCodes.py" line="196" /> + <source>Topic alias invalid</source> + <translation>Themenalias ungültig</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="273"/> - <source>Subscription identifiers not supported</source> - <translation>Abonnement-IDs nicht unterstützt</translation> + <location filename="../MqttReasonCodes.py" line="201" /> + <source>Packet too large</source> + <translation>Paket zu groß</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="278"/> - <source>Wildcard subscription not supported</source> - <translation>Wildcard-Abonnement nicht unterstützt</translation> + <location filename="../MqttReasonCodes.py" line="207" /> + <source>Message rate too high</source> + <translation>Meldungsrate zu hoch</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="212" /> + <source>Quota exceeded</source> + <translation>Quota überschritten</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="298"/> - <source>Unknown result code ({0})</source> - <translation>Unbekannter Ergebniscode ({0})</translation> + <location filename="../MqttReasonCodes.py" line="221" /> + <source>Administrative action</source> + <translation>Administrative Aktion</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="226" /> + <source>Payload format invalid</source> + <translation>Nutzlastformat ungültig</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="233" /> + <source>Retain not supported</source> + <translation>Merken nicht unterstützt</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="239" /> + <source>QoS not supported</source> + <translation>QoS nicht unterstützt</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="307"/> - <source>Unknown result code ({0}) for packet type '{1}'</source> - <translation>Unbekannter Ergebniscode ({0}) für Pakettyp '{1}'</translation> + <location filename="../MqttReasonCodes.py" line="245" /> + <source>Use another server</source> + <translation>Verwende anderen Server</translation> </message> -</context> -<context> - <name>MqttUserPropertiesEditor</name> <message> - <location filename="../MqttUserPropertiesEditor.ui" line="0"/> - <source>User Properties</source> - <translation>Benutzereigenschaften</translation> + <location filename="../MqttReasonCodes.py" line="251" /> + <source>Server moved</source> + <translation>Server umgezogen</translation> </message> <message> - <location filename="../MqttUserPropertiesEditor.ui" line="0"/> - <source>Key</source> - <translation>Schlüssel</translation> + <location filename="../MqttReasonCodes.py" line="257" /> + <source>Shared subscription not supported</source> + <translation>Geteiltes Abonnement nicht unterstützt</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="262" /> + <source>Connection rate exceeded</source> + <translation>Verbindungsrate überschritten</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="268" /> + <source>Maximum connect time</source> + <translation>Maximale Verbindungszeit</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="273" /> + <source>Subscription identifiers not supported</source> + <translation>Abonnement-IDs nicht unterstützt</translation> </message> <message> - <location filename="../MqttUserPropertiesEditor.ui" line="0"/> - <source>Value</source> - <translation>Wert</translation> + <location filename="../MqttReasonCodes.py" line="278" /> + <source>Wildcard subscription not supported</source> + <translation>Wildcard-Abonnement nicht unterstützt</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="298" /> + <source>Unknown result code ({0})</source> + <translation>Unbekannter Ergebniscode ({0})</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> + <location filename="../MqttReasonCodes.py" line="307" /> + <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>Press to delete the selected properties</source> - <translation>Drücken, um die ausgewählten Eigenschaften zu löschen</translation> + <location filename="../MqttUserPropertiesEditor.ui" line="0" /> + <source>Key</source> + <translation>Schlüssel</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> + <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> -</context> -<context> + <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="142"/> - <source>User Properties</source> - <translation>Benutzereigenschaften</translation> + <location filename="../MqttUserPropertiesEditor.py" line="142" /> + <source>User Properties</source> + <translation>Benutzereigenschaften</translation> </message> -</context> + </context> </TS>
--- a/MqttMonitor/i18n/mqttmonitor_empty.ts Sat Jan 06 13:11:01 2024 +0100 +++ b/MqttMonitor/i18n/mqttmonitor_empty.ts Fri Apr 19 15:15:01 2024 +0200 @@ -2,44 +2,6 @@ <!DOCTYPE TS> <TS version="2.0"> <context> - <name>MqttConnackMessage</name> - <message> - <location filename="../MqttClient.py" line="826" /> - <source>Connection Accepted.</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttClient.py" line="828" /> - <source>Connection Refused: unacceptable protocol version.</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttClient.py" line="832" /> - <source>Connection Refused: identifier rejected.</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttClient.py" line="836" /> - <source>Connection Refused: broker unavailable.</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttClient.py" line="840" /> - <source>Connection Refused: bad user name or password.</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttClient.py" line="844" /> - <source>Connection Refused: not authorised.</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttClient.py" line="848" /> - <source>Connection Refused: unknown reason.</source> - <translation type="unfinished" /> - </message> - </context> - <context> <name>MqttConnectionOptionsDialog</name> <message> <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> @@ -291,116 +253,6 @@ <context> <name>MqttConnectionProfilesDialog</name> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="84" /> - <location filename="../MqttConnectionProfilesDialog.py" line="78" /> - <location filename="../MqttConnectionProfilesDialog.py" line="74" /> - <source>Certificate Files (*.crt *.pem);;All Files (*)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="90" /> - <source>Key Files (*.key *.pem);;All Files (*)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="959" /> - <location filename="../MqttConnectionProfilesDialog.py" line="921" /> - <location filename="../MqttConnectionProfilesDialog.py" line="167" /> - <source>Changed Connection Profile</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="960" /> - <location filename="../MqttConnectionProfilesDialog.py" line="922" /> - <location filename="../MqttConnectionProfilesDialog.py" line="168" /> - <source>The current profile has unsaved changes. Shall these be saved?</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="199" /> - <location filename="../MqttConnectionProfilesDialog.py" line="191" /> - <source>New Connection Profile</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="192" /> - <source>Enter name for the new Connection Profile:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="229" /> - <location filename="../MqttConnectionProfilesDialog.py" line="200" /> - <source><p>A connection named <b>{0}</b> exists already. Aborting...</p></source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="228" /> - <location filename="../MqttConnectionProfilesDialog.py" line="220" /> - <source>Copy Connection Profile</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="221" /> - <source>Enter name for the copied Connection Profile:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="256" /> - <source>Delete Connection Profile</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="257" /> - <source><p>Shall the Connection Profile <b>{0}</b> really be deleted?</p></source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="664" /> - <source>Invalid Connection Parameters</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="665" /> - <source>An empty Client ID requires a clean session.</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="760" /> - <source>Last Will User Properties</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <location filename="../MqttConnectionProfilesDialog.py" line="817" /> - <source>SSL/TLS Enabled</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="818" /> - <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 type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="833" /> - <source>SSL/TLS Disabled</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="834" /> - <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 type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="936" /> - <source>Changed Connection Profiles</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="937" /> - <source>The list of connection profiles has unsaved changes.</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> <source>MQTT Connection Profiles</source> <translation type="unfinished" /> @@ -622,6 +474,12 @@ <translation type="unfinished" /> </message> <message> + <location filename="../MqttConnectionProfilesDialog.py" line="817" /> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>SSL/TLS Enabled</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> <source>Select to use the default certificate file of the client</source> <translation type="unfinished" /> @@ -718,87 +576,191 @@ <source>Use CONNECT properties for DISCONNECT</source> <translation type="unfinished" /> </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="84" /> + <location filename="../MqttConnectionProfilesDialog.py" line="78" /> + <location filename="../MqttConnectionProfilesDialog.py" line="74" /> + <source>Certificate Files (*.crt *.pem);;All Files (*)</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="90" /> + <source>Key Files (*.key *.pem);;All Files (*)</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="957" /> + <location filename="../MqttConnectionProfilesDialog.py" line="921" /> + <location filename="../MqttConnectionProfilesDialog.py" line="167" /> + <source>Changed Connection Profile</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="958" /> + <location filename="../MqttConnectionProfilesDialog.py" line="922" /> + <location filename="../MqttConnectionProfilesDialog.py" line="168" /> + <source>The current profile has unsaved changes. Shall these be saved?</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="199" /> + <location filename="../MqttConnectionProfilesDialog.py" line="191" /> + <source>New Connection Profile</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="192" /> + <source>Enter name for the new Connection Profile:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="229" /> + <location filename="../MqttConnectionProfilesDialog.py" line="200" /> + <source><p>A connection named <b>{0}</b> exists already. Aborting...</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="228" /> + <location filename="../MqttConnectionProfilesDialog.py" line="220" /> + <source>Copy Connection Profile</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="221" /> + <source>Enter name for the copied Connection Profile:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="256" /> + <source>Delete Connection Profile</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="257" /> + <source><p>Shall the Connection Profile <b>{0}</b> really be deleted?</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="664" /> + <source>Invalid Connection Parameters</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="665" /> + <source>An empty Client ID requires a clean session.</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="760" /> + <source>Last Will User Properties</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="818" /> + <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 type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="833" /> + <source>SSL/TLS Disabled</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="834" /> + <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 type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="936" /> + <source>Changed Connection Profiles</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="937" /> + <source>The list of connection profiles has unsaved changes.</source> + <translation type="unfinished" /> + </message> </context> <context> <name>MqttErrorMessage</name> <message> - <location filename="../MqttClient.py" line="864" /> + <location filename="../MqttClient.py" line="773" /> <source>No error.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="866" /> + <location filename="../MqttClient.py" line="775" /> <source>Out of memory.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="868" /> + <location filename="../MqttClient.py" line="777" /> <source>A network protocol error occurred when communicating with the broker.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="873" /> + <location filename="../MqttClient.py" line="782" /> <source>Invalid function arguments provided.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="877" /> + <location filename="../MqttClient.py" line="786" /> <source>The client is not currently connected.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="881" /> + <location filename="../MqttClient.py" line="790" /> <source>The connection was refused.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="885" /> + <location filename="../MqttClient.py" line="794" /> <source>Message not found (internal error).</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="889" /> + <location filename="../MqttClient.py" line="798" /> <source>The connection was lost.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="893" /> + <location filename="../MqttClient.py" line="802" /> <source>A TLS error occurred.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="895" /> + <location filename="../MqttClient.py" line="804" /> <source>Payload too large.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="897" /> + <location filename="../MqttClient.py" line="806" /> <source>This feature is not supported.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="901" /> + <location filename="../MqttClient.py" line="810" /> <source>Authorisation failed.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="903" /> + <location filename="../MqttClient.py" line="812" /> <source>Access denied by ACL.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="911" /> - <location filename="../MqttClient.py" line="905" /> + <location filename="../MqttClient.py" line="820" /> + <location filename="../MqttClient.py" line="814" /> <source>Unknown error.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="907" /> + <location filename="../MqttClient.py" line="816" /> <source>Error defined by errno.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="909" /> + <location filename="../MqttClient.py" line="818" /> <source>Message queue full.</source> <translation type="unfinished" /> </message> @@ -806,38 +768,38 @@ <context> <name>MqttLogLevelString</name> <message> - <location filename="../MqttClient.py" line="947" /> - <location filename="../MqttClient.py" line="930" /> + <location filename="../MqttClient.py" line="856" /> + <location filename="../MqttClient.py" line="839" /> <source>Unknown</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="935" /> + <location filename="../MqttClient.py" line="844" /> <source>Info</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="937" /> + <location filename="../MqttClient.py" line="846" /> <source>Notice</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="939" /> + <location filename="../MqttClient.py" line="848" /> <source>Warning</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="941" /> + <location filename="../MqttClient.py" line="850" /> <source>Error</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="943" /> + <location filename="../MqttClient.py" line="852" /> <source>Debug</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="945" /> + <location filename="../MqttClient.py" line="854" /> <source>Logging Disabled</source> <translation type="unfinished" /> </message> @@ -845,49 +807,49 @@ <context> <name>MqttMonitorPlugin</name> <message> - <location filename="../../PluginMqttMonitor.py" line="202" /> - <location filename="../../PluginMqttMonitor.py" line="198" /> - <location filename="../../PluginMqttMonitor.py" line="81" /> + <location filename="../../PluginMqttMonitor.py" line="214" /> + <location filename="../../PluginMqttMonitor.py" line="210" /> + <location filename="../../PluginMqttMonitor.py" line="93" /> <source>MQTT Monitor</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="103" /> + <location filename="../../PluginMqttMonitor.py" line="115" /> <source>(package not available)</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="109" /> + <location filename="../../PluginMqttMonitor.py" line="121" /> <source>MQTT</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="110" /> + <location filename="../../PluginMqttMonitor.py" line="122" /> <source>paho-mqtt</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="180" /> + <location filename="../../PluginMqttMonitor.py" line="192" /> <source>The 'paho-mqtt' package is not available.</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="203" /> + <location filename="../../PluginMqttMonitor.py" line="215" /> <source>M&QTT Monitor</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="204" /> + <location filename="../../PluginMqttMonitor.py" line="216" /> <source>Alt+Shift+Q</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="210" /> + <location filename="../../PluginMqttMonitor.py" line="222" /> <source>Switch the input focus to the MQTT Monitor window.</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="213" /> + <location filename="../../PluginMqttMonitor.py" line="225" /> <source><b>Activate MQTT Monitor</b><p>This switches the input focus to the MQTT Monitor window.</p></source> <translation type="unfinished" /> </message> @@ -895,6 +857,211 @@ <context> <name>MqttMonitorWidget</name> <message> + <location filename="../MqttMonitorWidget.py" line="88" /> + <source>All Files (*)</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="325" /> + <source>Copy</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="331" /> + <source>Select All</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.py" line="337" /> + <source>Clear</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="372" /> + <source>{0} - Session still present</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="410" /> + <source>Connection timed out</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="438" /> + <source>Connection to Broker shut down cleanly.</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="498" /> + <source>{0}: {1}</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="709" /> + <source>SUBSCRIBE: User Properties for '{0}'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="735" /> + <source>Subscribe to Topic</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="736" /> + <source>Subscriptions to the Status topic '$SYS' shall be done on the 'Status' tab.</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="760" /> + <source>UNSUBSCRIBE: User Properties for '{0}'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="798" /> + <source>PUBLISH: User Properties for '{0}'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="834" /> + <source>Read Payload from File</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="835" /> + <source><p>The file <b>{0}</b> could not be read. Aborting...</p><p>Reason: {1}</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="986" /> + <location filename="../MqttMonitorWidget.py" line="970" /> + <location filename="../MqttMonitorWidget.py" line="951" /> + <source>Save Messages</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="953" /> + <source>Messages Files (*.txt);;All Files (*)</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1032" /> + <location filename="../MqttMonitorWidget.py" line="971" /> + <source><p>The file <b>{0}</b> already exists. Overwrite it?</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1048" /> + <location filename="../MqttMonitorWidget.py" line="987" /> + <source><p>The file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1047" /> + <location filename="../MqttMonitorWidget.py" line="1031" /> + <location filename="../MqttMonitorWidget.py" line="1012" /> + <source>Save Log Messages</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1014" /> + <source>Log Files (*.log);;All Files (*)</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.py" line="1068" /> + <source>Unsubscribe</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1070" /> + <source>Press to deactivate the status display</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.py" line="1073" /> + <source>Subscribe</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.py" line="1075" /> + <source>Press to activate the status display</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1237" /> + <source>QoS: {0} +</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1241" /> + <source>Retained Message +</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1245" /> + <source>Properties: +</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1249" /> + <source>{0}: {1} +</source> + <comment>property name, property value</comment> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1255" /> + <source>Message: +</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1262" /> + <source><empty></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1468" /> + <location filename="../MqttMonitorWidget.py" line="1419" /> + <source>Connecting to {0}:{1} ...</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1613" /> + <source>{0} Bytes</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1618" /> + <source>{0} KiB</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1623" /> + <source>{0} MiB</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1628" /> + <source>{0} GiB</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1633" /> + <source>{0} TiB</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../MqttMonitorWidget.ui" line="0" /> <source><b>MQTT Monitor</b></source> <translation type="unfinished" /> @@ -945,13 +1112,6 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1101" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Subscribe</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../MqttMonitorWidget.ui" line="0" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <location filename="../MqttMonitorWidget.ui" line="0" /> @@ -988,12 +1148,6 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1096" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Unsubscribe</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Select the topic to unsubscribe</source> <translation type="unfinished" /> @@ -1045,14 +1199,6 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="346" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Clear</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Press to clear the retained messages of the selected topic</source> <translation type="unfinished" /> @@ -1119,12 +1265,6 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1103" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Press to activate the status display</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../MqttMonitorWidget.ui" line="0" /> <source><b>Broker</b></source> <translation type="unfinished" /> @@ -1349,184 +1489,6 @@ <source>Follow received log messages</source> <translation type="unfinished" /> </message> - <message> - <location filename="../MqttMonitorWidget.py" line="93" /> - <source>All Files (*)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="334" /> - <source>Copy</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="340" /> - <source>Select All</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="391" /> - <source>{0} - Session still present</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="429" /> - <source>Connection timed out</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="457" /> - <source>Connection to Broker shut down cleanly.</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="517" /> - <source>{0}: {1}</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="737" /> - <source>SUBSCRIBE: User Properties for '{0}'</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="763" /> - <source>Subscribe to Topic</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="764" /> - <source>Subscriptions to the Status topic '$SYS' shall be done on the 'Status' tab.</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="788" /> - <source>UNSUBSCRIBE: User Properties for '{0}'</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="826" /> - <source>PUBLISH: User Properties for '{0}'</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="862" /> - <source>Read Payload from File</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="863" /> - <source><p>The file <b>{0}</b> could not be read. Aborting...</p><p>Reason: {1}</p></source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1014" /> - <location filename="../MqttMonitorWidget.py" line="998" /> - <location filename="../MqttMonitorWidget.py" line="979" /> - <source>Save Messages</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="981" /> - <source>Messages Files (*.txt);;All Files (*)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1060" /> - <location filename="../MqttMonitorWidget.py" line="999" /> - <source><p>The file <b>{0}</b> already exists. Overwrite it?</p></source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1076" /> - <location filename="../MqttMonitorWidget.py" line="1015" /> - <source><p>The file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1075" /> - <location filename="../MqttMonitorWidget.py" line="1059" /> - <location filename="../MqttMonitorWidget.py" line="1040" /> - <source>Save Log Messages</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1042" /> - <source>Log Files (*.log);;All Files (*)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1098" /> - <source>Press to deactivate the status display</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1265" /> - <source>QoS: {0} -</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1269" /> - <source>Retained Message -</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1273" /> - <source>Properties: -</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1277" /> - <source>{0}: {1} -</source> - <comment>property name, property value</comment> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1283" /> - <source>Message: -</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1290" /> - <source><empty></source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1496" /> - <location filename="../MqttMonitorWidget.py" line="1447" /> - <source>Connecting to {0}:{1} ...</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1641" /> - <source>{0} Bytes</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1646" /> - <source>{0} KiB</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1651" /> - <source>{0} MiB</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1656" /> - <source>{0} GiB</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1661" /> - <source>{0} TiB</source> - <translation type="unfinished" /> - </message> </context> <context> <name>MqttPage</name>
--- a/MqttMonitor/i18n/mqttmonitor_en.ts Sat Jan 06 13:11:01 2024 +0100 +++ b/MqttMonitor/i18n/mqttmonitor_en.ts Fri Apr 19 15:15:01 2024 +0200 @@ -2,44 +2,6 @@ <!DOCTYPE TS> <TS version="2.0" language="en_US" sourcelanguage=""> <context> - <name>MqttConnackMessage</name> - <message> - <location filename="../MqttClient.py" line="826" /> - <source>Connection Accepted.</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttClient.py" line="828" /> - <source>Connection Refused: unacceptable protocol version.</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttClient.py" line="832" /> - <source>Connection Refused: identifier rejected.</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttClient.py" line="836" /> - <source>Connection Refused: broker unavailable.</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttClient.py" line="840" /> - <source>Connection Refused: bad user name or password.</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttClient.py" line="844" /> - <source>Connection Refused: not authorised.</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttClient.py" line="848" /> - <source>Connection Refused: unknown reason.</source> - <translation type="unfinished" /> - </message> - </context> - <context> <name>MqttConnectionOptionsDialog</name> <message> <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> @@ -291,116 +253,6 @@ <context> <name>MqttConnectionProfilesDialog</name> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="84" /> - <location filename="../MqttConnectionProfilesDialog.py" line="78" /> - <location filename="../MqttConnectionProfilesDialog.py" line="74" /> - <source>Certificate Files (*.crt *.pem);;All Files (*)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="90" /> - <source>Key Files (*.key *.pem);;All Files (*)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="959" /> - <location filename="../MqttConnectionProfilesDialog.py" line="921" /> - <location filename="../MqttConnectionProfilesDialog.py" line="167" /> - <source>Changed Connection Profile</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="960" /> - <location filename="../MqttConnectionProfilesDialog.py" line="922" /> - <location filename="../MqttConnectionProfilesDialog.py" line="168" /> - <source>The current profile has unsaved changes. Shall these be saved?</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="199" /> - <location filename="../MqttConnectionProfilesDialog.py" line="191" /> - <source>New Connection Profile</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="192" /> - <source>Enter name for the new Connection Profile:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="229" /> - <location filename="../MqttConnectionProfilesDialog.py" line="200" /> - <source><p>A connection named <b>{0}</b> exists already. Aborting...</p></source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="228" /> - <location filename="../MqttConnectionProfilesDialog.py" line="220" /> - <source>Copy Connection Profile</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="221" /> - <source>Enter name for the copied Connection Profile:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="256" /> - <source>Delete Connection Profile</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="257" /> - <source><p>Shall the Connection Profile <b>{0}</b> really be deleted?</p></source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="664" /> - <source>Invalid Connection Parameters</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="665" /> - <source>An empty Client ID requires a clean session.</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="760" /> - <source>Last Will User Properties</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <location filename="../MqttConnectionProfilesDialog.py" line="817" /> - <source>SSL/TLS Enabled</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="818" /> - <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 type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="833" /> - <source>SSL/TLS Disabled</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="834" /> - <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 type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="936" /> - <source>Changed Connection Profiles</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="937" /> - <source>The list of connection profiles has unsaved changes.</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> <source>MQTT Connection Profiles</source> <translation type="unfinished" /> @@ -622,6 +474,12 @@ <translation type="unfinished" /> </message> <message> + <location filename="../MqttConnectionProfilesDialog.py" line="817" /> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>SSL/TLS Enabled</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> <source>Select to use the default certificate file of the client</source> <translation type="unfinished" /> @@ -718,87 +576,191 @@ <source>Use CONNECT properties for DISCONNECT</source> <translation type="unfinished" /> </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="84" /> + <location filename="../MqttConnectionProfilesDialog.py" line="78" /> + <location filename="../MqttConnectionProfilesDialog.py" line="74" /> + <source>Certificate Files (*.crt *.pem);;All Files (*)</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="90" /> + <source>Key Files (*.key *.pem);;All Files (*)</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="957" /> + <location filename="../MqttConnectionProfilesDialog.py" line="921" /> + <location filename="../MqttConnectionProfilesDialog.py" line="167" /> + <source>Changed Connection Profile</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="958" /> + <location filename="../MqttConnectionProfilesDialog.py" line="922" /> + <location filename="../MqttConnectionProfilesDialog.py" line="168" /> + <source>The current profile has unsaved changes. Shall these be saved?</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="199" /> + <location filename="../MqttConnectionProfilesDialog.py" line="191" /> + <source>New Connection Profile</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="192" /> + <source>Enter name for the new Connection Profile:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="229" /> + <location filename="../MqttConnectionProfilesDialog.py" line="200" /> + <source><p>A connection named <b>{0}</b> exists already. Aborting...</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="228" /> + <location filename="../MqttConnectionProfilesDialog.py" line="220" /> + <source>Copy Connection Profile</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="221" /> + <source>Enter name for the copied Connection Profile:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="256" /> + <source>Delete Connection Profile</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="257" /> + <source><p>Shall the Connection Profile <b>{0}</b> really be deleted?</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="664" /> + <source>Invalid Connection Parameters</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="665" /> + <source>An empty Client ID requires a clean session.</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="760" /> + <source>Last Will User Properties</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="818" /> + <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 type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="833" /> + <source>SSL/TLS Disabled</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="834" /> + <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 type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="936" /> + <source>Changed Connection Profiles</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="937" /> + <source>The list of connection profiles has unsaved changes.</source> + <translation type="unfinished" /> + </message> </context> <context> <name>MqttErrorMessage</name> <message> - <location filename="../MqttClient.py" line="864" /> + <location filename="../MqttClient.py" line="773" /> <source>No error.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="866" /> + <location filename="../MqttClient.py" line="775" /> <source>Out of memory.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="868" /> + <location filename="../MqttClient.py" line="777" /> <source>A network protocol error occurred when communicating with the broker.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="873" /> + <location filename="../MqttClient.py" line="782" /> <source>Invalid function arguments provided.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="877" /> + <location filename="../MqttClient.py" line="786" /> <source>The client is not currently connected.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="881" /> + <location filename="../MqttClient.py" line="790" /> <source>The connection was refused.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="885" /> + <location filename="../MqttClient.py" line="794" /> <source>Message not found (internal error).</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="889" /> + <location filename="../MqttClient.py" line="798" /> <source>The connection was lost.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="893" /> + <location filename="../MqttClient.py" line="802" /> <source>A TLS error occurred.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="895" /> + <location filename="../MqttClient.py" line="804" /> <source>Payload too large.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="897" /> + <location filename="../MqttClient.py" line="806" /> <source>This feature is not supported.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="901" /> + <location filename="../MqttClient.py" line="810" /> <source>Authorisation failed.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="903" /> + <location filename="../MqttClient.py" line="812" /> <source>Access denied by ACL.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="911" /> - <location filename="../MqttClient.py" line="905" /> + <location filename="../MqttClient.py" line="820" /> + <location filename="../MqttClient.py" line="814" /> <source>Unknown error.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="907" /> + <location filename="../MqttClient.py" line="816" /> <source>Error defined by errno.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="909" /> + <location filename="../MqttClient.py" line="818" /> <source>Message queue full.</source> <translation type="unfinished" /> </message> @@ -806,38 +768,38 @@ <context> <name>MqttLogLevelString</name> <message> - <location filename="../MqttClient.py" line="947" /> - <location filename="../MqttClient.py" line="930" /> + <location filename="../MqttClient.py" line="856" /> + <location filename="../MqttClient.py" line="839" /> <source>Unknown</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="935" /> + <location filename="../MqttClient.py" line="844" /> <source>Info</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="937" /> + <location filename="../MqttClient.py" line="846" /> <source>Notice</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="939" /> + <location filename="../MqttClient.py" line="848" /> <source>Warning</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="941" /> + <location filename="../MqttClient.py" line="850" /> <source>Error</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="943" /> + <location filename="../MqttClient.py" line="852" /> <source>Debug</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="945" /> + <location filename="../MqttClient.py" line="854" /> <source>Logging Disabled</source> <translation type="unfinished" /> </message> @@ -845,49 +807,49 @@ <context> <name>MqttMonitorPlugin</name> <message> - <location filename="../../PluginMqttMonitor.py" line="202" /> - <location filename="../../PluginMqttMonitor.py" line="198" /> - <location filename="../../PluginMqttMonitor.py" line="81" /> + <location filename="../../PluginMqttMonitor.py" line="214" /> + <location filename="../../PluginMqttMonitor.py" line="210" /> + <location filename="../../PluginMqttMonitor.py" line="93" /> <source>MQTT Monitor</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="103" /> + <location filename="../../PluginMqttMonitor.py" line="115" /> <source>(package not available)</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="109" /> + <location filename="../../PluginMqttMonitor.py" line="121" /> <source>MQTT</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="110" /> + <location filename="../../PluginMqttMonitor.py" line="122" /> <source>paho-mqtt</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="180" /> + <location filename="../../PluginMqttMonitor.py" line="192" /> <source>The 'paho-mqtt' package is not available.</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="203" /> + <location filename="../../PluginMqttMonitor.py" line="215" /> <source>M&QTT Monitor</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="204" /> + <location filename="../../PluginMqttMonitor.py" line="216" /> <source>Alt+Shift+Q</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="210" /> + <location filename="../../PluginMqttMonitor.py" line="222" /> <source>Switch the input focus to the MQTT Monitor window.</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="213" /> + <location filename="../../PluginMqttMonitor.py" line="225" /> <source><b>Activate MQTT Monitor</b><p>This switches the input focus to the MQTT Monitor window.</p></source> <translation type="unfinished" /> </message> @@ -895,6 +857,211 @@ <context> <name>MqttMonitorWidget</name> <message> + <location filename="../MqttMonitorWidget.py" line="88" /> + <source>All Files (*)</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="325" /> + <source>Copy</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="331" /> + <source>Select All</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.py" line="337" /> + <source>Clear</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="372" /> + <source>{0} - Session still present</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="410" /> + <source>Connection timed out</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="438" /> + <source>Connection to Broker shut down cleanly.</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="498" /> + <source>{0}: {1}</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="709" /> + <source>SUBSCRIBE: User Properties for '{0}'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="735" /> + <source>Subscribe to Topic</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="736" /> + <source>Subscriptions to the Status topic '$SYS' shall be done on the 'Status' tab.</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="760" /> + <source>UNSUBSCRIBE: User Properties for '{0}'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="798" /> + <source>PUBLISH: User Properties for '{0}'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="834" /> + <source>Read Payload from File</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="835" /> + <source><p>The file <b>{0}</b> could not be read. Aborting...</p><p>Reason: {1}</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="986" /> + <location filename="../MqttMonitorWidget.py" line="970" /> + <location filename="../MqttMonitorWidget.py" line="951" /> + <source>Save Messages</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="953" /> + <source>Messages Files (*.txt);;All Files (*)</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1032" /> + <location filename="../MqttMonitorWidget.py" line="971" /> + <source><p>The file <b>{0}</b> already exists. Overwrite it?</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1048" /> + <location filename="../MqttMonitorWidget.py" line="987" /> + <source><p>The file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1047" /> + <location filename="../MqttMonitorWidget.py" line="1031" /> + <location filename="../MqttMonitorWidget.py" line="1012" /> + <source>Save Log Messages</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1014" /> + <source>Log Files (*.log);;All Files (*)</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.py" line="1068" /> + <source>Unsubscribe</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1070" /> + <source>Press to deactivate the status display</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.py" line="1073" /> + <source>Subscribe</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.py" line="1075" /> + <source>Press to activate the status display</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1237" /> + <source>QoS: {0} +</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1241" /> + <source>Retained Message +</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1245" /> + <source>Properties: +</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1249" /> + <source>{0}: {1} +</source> + <comment>property name, property value</comment> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1255" /> + <source>Message: +</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1262" /> + <source><empty></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1468" /> + <location filename="../MqttMonitorWidget.py" line="1419" /> + <source>Connecting to {0}:{1} ...</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1613" /> + <source>{0} Bytes</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1618" /> + <source>{0} KiB</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1623" /> + <source>{0} MiB</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1628" /> + <source>{0} GiB</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1633" /> + <source>{0} TiB</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../MqttMonitorWidget.ui" line="0" /> <source><b>MQTT Monitor</b></source> <translation type="unfinished" /> @@ -945,13 +1112,6 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1101" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Subscribe</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../MqttMonitorWidget.ui" line="0" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <location filename="../MqttMonitorWidget.ui" line="0" /> @@ -988,12 +1148,6 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1096" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Unsubscribe</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Select the topic to unsubscribe</source> <translation type="unfinished" /> @@ -1045,14 +1199,6 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="346" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Clear</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Press to clear the retained messages of the selected topic</source> <translation type="unfinished" /> @@ -1119,12 +1265,6 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1103" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Press to activate the status display</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../MqttMonitorWidget.ui" line="0" /> <source><b>Broker</b></source> <translation type="unfinished" /> @@ -1349,184 +1489,6 @@ <source>Follow received log messages</source> <translation type="unfinished" /> </message> - <message> - <location filename="../MqttMonitorWidget.py" line="93" /> - <source>All Files (*)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="334" /> - <source>Copy</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="340" /> - <source>Select All</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="391" /> - <source>{0} - Session still present</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="429" /> - <source>Connection timed out</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="457" /> - <source>Connection to Broker shut down cleanly.</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="517" /> - <source>{0}: {1}</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="737" /> - <source>SUBSCRIBE: User Properties for '{0}'</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="763" /> - <source>Subscribe to Topic</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="764" /> - <source>Subscriptions to the Status topic '$SYS' shall be done on the 'Status' tab.</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="788" /> - <source>UNSUBSCRIBE: User Properties for '{0}'</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="826" /> - <source>PUBLISH: User Properties for '{0}'</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="862" /> - <source>Read Payload from File</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="863" /> - <source><p>The file <b>{0}</b> could not be read. Aborting...</p><p>Reason: {1}</p></source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1014" /> - <location filename="../MqttMonitorWidget.py" line="998" /> - <location filename="../MqttMonitorWidget.py" line="979" /> - <source>Save Messages</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="981" /> - <source>Messages Files (*.txt);;All Files (*)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1060" /> - <location filename="../MqttMonitorWidget.py" line="999" /> - <source><p>The file <b>{0}</b> already exists. Overwrite it?</p></source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1076" /> - <location filename="../MqttMonitorWidget.py" line="1015" /> - <source><p>The file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1075" /> - <location filename="../MqttMonitorWidget.py" line="1059" /> - <location filename="../MqttMonitorWidget.py" line="1040" /> - <source>Save Log Messages</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1042" /> - <source>Log Files (*.log);;All Files (*)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1098" /> - <source>Press to deactivate the status display</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1265" /> - <source>QoS: {0} -</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1269" /> - <source>Retained Message -</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1273" /> - <source>Properties: -</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1277" /> - <source>{0}: {1} -</source> - <comment>property name, property value</comment> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1283" /> - <source>Message: -</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1290" /> - <source><empty></source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1496" /> - <location filename="../MqttMonitorWidget.py" line="1447" /> - <source>Connecting to {0}:{1} ...</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1641" /> - <source>{0} Bytes</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1646" /> - <source>{0} KiB</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1651" /> - <source>{0} MiB</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1656" /> - <source>{0} GiB</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1661" /> - <source>{0} TiB</source> - <translation type="unfinished" /> - </message> </context> <context> <name>MqttPage</name>
--- a/MqttMonitor/i18n/mqttmonitor_es.ts Sat Jan 06 13:11:01 2024 +0100 +++ b/MqttMonitor/i18n/mqttmonitor_es.ts Fri Apr 19 15:15:01 2024 +0200 @@ -2,44 +2,6 @@ <!DOCTYPE TS> <TS version="2.1" language="es_ES"> <context> - <name>MqttConnackMessage</name> - <message> - <location filename="../MqttClient.py" line="826" /> - <source>Connection Accepted.</source> - <translation>Conexión Aceptada.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="828" /> - <source>Connection Refused: unacceptable protocol version.</source> - <translation>Conexión Rechazada: versión de protocolo no aceptable.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="832" /> - <source>Connection Refused: identifier rejected.</source> - <translation>Conexión Rechazada: identificador rechazado.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="836" /> - <source>Connection Refused: broker unavailable.</source> - <translation>Conexión Rechazada: broker no disponible.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="840" /> - <source>Connection Refused: bad user name or password.</source> - <translation>Conexión Rechazada: nombre de usuario o contraseña no válidos.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="844" /> - <source>Connection Refused: not authorised.</source> - <translation>Conexión Rechazada: no autorizado.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="848" /> - <source>Connection Refused: unknown reason.</source> - <translation>Conexión Rechazada: razón desconocida.</translation> - </message> - </context> - <context> <name>MqttConnectionOptionsDialog</name> <message> <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> @@ -291,116 +253,6 @@ <context> <name>MqttConnectionProfilesDialog</name> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="84" /> - <location filename="../MqttConnectionProfilesDialog.py" line="78" /> - <location filename="../MqttConnectionProfilesDialog.py" line="74" /> - <source>Certificate Files (*.crt *.pem);;All Files (*)</source> - <translation>Archivos de Certificado (*.crt *.pem);;Todos los Archivos (*)</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="90" /> - <source>Key Files (*.key *.pem);;All Files (*)</source> - <translation>Archivos de Clave (*.key *.pem);;Todos los Archivos (*)</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="959" /> - <location filename="../MqttConnectionProfilesDialog.py" line="921" /> - <location filename="../MqttConnectionProfilesDialog.py" line="167" /> - <source>Changed Connection Profile</source> - <translation>Perfil de Conexión Cambiado</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="960" /> - <location filename="../MqttConnectionProfilesDialog.py" line="922" /> - <location filename="../MqttConnectionProfilesDialog.py" line="168" /> - <source>The current profile has unsaved changes. Shall these be saved?</source> - <translation>El perfil actual tiene cambios sin guardar. ¿Desea guardarlos?</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="199" /> - <location filename="../MqttConnectionProfilesDialog.py" line="191" /> - <source>New Connection Profile</source> - <translation>Nuevo Perfil de Conexión</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="192" /> - <source>Enter name for the new Connection Profile:</source> - <translation>ntroducir nombre para el nuevo Perfil de Conexión:</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="229" /> - <location filename="../MqttConnectionProfilesDialog.py" line="200" /> - <source><p>A connection named <b>{0}</b> exists already. Aborting...</p></source> - <translation><p>Una conexión llamada <b>{0}</b> ya existe. Abortando...</p></translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="228" /> - <location filename="../MqttConnectionProfilesDialog.py" line="220" /> - <source>Copy Connection Profile</source> - <translation>Copiar Perfil de Conexión</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="221" /> - <source>Enter name for the copied Connection Profile:</source> - <translation>Introducir nombre para el Perfil de Conexión copiado:</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="256" /> - <source>Delete Connection Profile</source> - <translation>Borrar Perfil de Conexión</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="257" /> - <source><p>Shall the Connection Profile <b>{0}</b> really be deleted?</p></source> - <translation><p>¿Realmente desea eliminar el Perfil de Conexión <b>{0}</b>?</p></translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="664" /> - <source>Invalid Connection Parameters</source> - <translation>Parámetros de Conexión No Válidos</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="665" /> - <source>An empty Client ID requires a clean session.</source> - <translation>Un ID de Cliente vacío requiere una sesión limpia.</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="760" /> - <source>Last Will User Properties</source> - <translation>Propiedades de Usuario de Última Voluntad</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <location filename="../MqttConnectionProfilesDialog.py" line="817" /> - <source>SSL/TLS Enabled</source> - <translation>SSL/TLS Habilitado</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="818" /> - <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>Se ha habilitado conexión encriptada utilizando SSL/TLS. Sin embargo, el puerto del broker sigue siendo el puerto por defecto no encriptado (puerto 1883). ¿Desea cambiarlo?</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="833" /> - <source>SSL/TLS Disabled</source> - <translation>SSL/TLS Deshabilitado</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="834" /> - <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>Se ha deshabilitado conexión encriptada utilizando SSL/TLS. Sin embargo, el puerto del broker sigue siendo el puerto por defecto no encriptado (puerto 1883). ¿Desea cambiarlo?</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="936" /> - <source>Changed Connection Profiles</source> - <translation>Perfiles de Conexión Cambiados</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="937" /> - <source>The list of connection profiles has unsaved changes.</source> - <translation>La lista de perfiles de conexión tienen cambios sin guardar.</translation> - </message> - <message> <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> <source>MQTT Connection Profiles</source> <translation>Perfiles de Conexión MQTT</translation> @@ -622,6 +474,12 @@ <translation>Seleccionar para habilitar conexiones SSL/TLS</translation> </message> <message> + <location filename="../MqttConnectionProfilesDialog.py" line="817" /> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>SSL/TLS Enabled</source> + <translation>SSL/TLS Habilitado</translation> + </message> + <message> <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> <source>Select to use the default certificate file of the client</source> <translation>Seleccionar para utilizar el archivo de certificado por defecto del cliente</translation> @@ -718,87 +576,191 @@ <source>Use CONNECT properties for DISCONNECT</source> <translation>Usar propiedades de CONNECT para DISCONNECT</translation> </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="84" /> + <location filename="../MqttConnectionProfilesDialog.py" line="78" /> + <location filename="../MqttConnectionProfilesDialog.py" line="74" /> + <source>Certificate Files (*.crt *.pem);;All Files (*)</source> + <translation>Archivos de Certificado (*.crt *.pem);;Todos los Archivos (*)</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="90" /> + <source>Key Files (*.key *.pem);;All Files (*)</source> + <translation>Archivos de Clave (*.key *.pem);;Todos los Archivos (*)</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="957" /> + <location filename="../MqttConnectionProfilesDialog.py" line="921" /> + <location filename="../MqttConnectionProfilesDialog.py" line="167" /> + <source>Changed Connection Profile</source> + <translation>Perfil de Conexión Cambiado</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="958" /> + <location filename="../MqttConnectionProfilesDialog.py" line="922" /> + <location filename="../MqttConnectionProfilesDialog.py" line="168" /> + <source>The current profile has unsaved changes. Shall these be saved?</source> + <translation>El perfil actual tiene cambios sin guardar. ¿Desea guardarlos?</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="199" /> + <location filename="../MqttConnectionProfilesDialog.py" line="191" /> + <source>New Connection Profile</source> + <translation>Nuevo Perfil de Conexión</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="192" /> + <source>Enter name for the new Connection Profile:</source> + <translation>ntroducir nombre para el nuevo Perfil de Conexión:</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="229" /> + <location filename="../MqttConnectionProfilesDialog.py" line="200" /> + <source><p>A connection named <b>{0}</b> exists already. Aborting...</p></source> + <translation><p>Una conexión llamada <b>{0}</b> ya existe. Abortando...</p></translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="228" /> + <location filename="../MqttConnectionProfilesDialog.py" line="220" /> + <source>Copy Connection Profile</source> + <translation>Copiar Perfil de Conexión</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="221" /> + <source>Enter name for the copied Connection Profile:</source> + <translation>Introducir nombre para el Perfil de Conexión copiado:</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="256" /> + <source>Delete Connection Profile</source> + <translation>Borrar Perfil de Conexión</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="257" /> + <source><p>Shall the Connection Profile <b>{0}</b> really be deleted?</p></source> + <translation><p>¿Realmente desea eliminar el Perfil de Conexión <b>{0}</b>?</p></translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="664" /> + <source>Invalid Connection Parameters</source> + <translation>Parámetros de Conexión No Válidos</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="665" /> + <source>An empty Client ID requires a clean session.</source> + <translation>Un ID de Cliente vacío requiere una sesión limpia.</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="760" /> + <source>Last Will User Properties</source> + <translation>Propiedades de Usuario de Última Voluntad</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="818" /> + <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>Se ha habilitado conexión encriptada utilizando SSL/TLS. Sin embargo, el puerto del broker sigue siendo el puerto por defecto no encriptado (puerto 1883). ¿Desea cambiarlo?</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="833" /> + <source>SSL/TLS Disabled</source> + <translation>SSL/TLS Deshabilitado</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="834" /> + <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>Se ha deshabilitado conexión encriptada utilizando SSL/TLS. Sin embargo, el puerto del broker sigue siendo el puerto por defecto no encriptado (puerto 1883). ¿Desea cambiarlo?</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="936" /> + <source>Changed Connection Profiles</source> + <translation>Perfiles de Conexión Cambiados</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.py" line="937" /> + <source>The list of connection profiles has unsaved changes.</source> + <translation>La lista de perfiles de conexión tienen cambios sin guardar.</translation> + </message> </context> <context> <name>MqttErrorMessage</name> <message> - <location filename="../MqttClient.py" line="864" /> + <location filename="../MqttClient.py" line="773" /> <source>No error.</source> <translation>No error.</translation> </message> <message> - <location filename="../MqttClient.py" line="866" /> + <location filename="../MqttClient.py" line="775" /> <source>Out of memory.</source> <translation>Out of memory.</translation> </message> <message> - <location filename="../MqttClient.py" line="868" /> + <location filename="../MqttClient.py" line="777" /> <source>A network protocol error occurred when communicating with the broker.</source> <translation>Ha ocurrido un error de protocolo de red con la comunicación con el broker.</translation> </message> <message> - <location filename="../MqttClient.py" line="873" /> + <location filename="../MqttClient.py" line="782" /> <source>Invalid function arguments provided.</source> <translation>Se han proporcionado argumentos de función no válidos.</translation> </message> <message> - <location filename="../MqttClient.py" line="877" /> + <location filename="../MqttClient.py" line="786" /> <source>The client is not currently connected.</source> <translation>El cliente no está actualmente conectado.</translation> </message> <message> - <location filename="../MqttClient.py" line="881" /> + <location filename="../MqttClient.py" line="790" /> <source>The connection was refused.</source> <translation>La conexión se ha rechazado.</translation> </message> <message> - <location filename="../MqttClient.py" line="885" /> + <location filename="../MqttClient.py" line="794" /> <source>Message not found (internal error).</source> <translation>Mensaje no encontrado (error interno).</translation> </message> <message> - <location filename="../MqttClient.py" line="889" /> + <location filename="../MqttClient.py" line="798" /> <source>The connection was lost.</source> <translation>Se ha perdido la conexión.</translation> </message> <message> - <location filename="../MqttClient.py" line="893" /> + <location filename="../MqttClient.py" line="802" /> <source>A TLS error occurred.</source> <translation>Ha ocurrido un error de TLS .</translation> </message> <message> - <location filename="../MqttClient.py" line="895" /> + <location filename="../MqttClient.py" line="804" /> <source>Payload too large.</source> <translation>Carga útil demasiado grande.</translation> </message> <message> - <location filename="../MqttClient.py" line="897" /> + <location filename="../MqttClient.py" line="806" /> <source>This feature is not supported.</source> <translation>Esta característica no está soportada.</translation> </message> <message> - <location filename="../MqttClient.py" line="901" /> + <location filename="../MqttClient.py" line="810" /> <source>Authorisation failed.</source> <translation>Ha fallado la Autorización.</translation> </message> <message> - <location filename="../MqttClient.py" line="903" /> + <location filename="../MqttClient.py" line="812" /> <source>Access denied by ACL.</source> <translation>Acceso denegado por ACL.</translation> </message> <message> - <location filename="../MqttClient.py" line="911" /> - <location filename="../MqttClient.py" line="905" /> + <location filename="../MqttClient.py" line="820" /> + <location filename="../MqttClient.py" line="814" /> <source>Unknown error.</source> <translation>Error desconocido.</translation> </message> <message> - <location filename="../MqttClient.py" line="907" /> + <location filename="../MqttClient.py" line="816" /> <source>Error defined by errno.</source> <translation>Error definido por errno.</translation> </message> <message> - <location filename="../MqttClient.py" line="909" /> + <location filename="../MqttClient.py" line="818" /> <source>Message queue full.</source> <translation>Cola de mensajes completa.</translation> </message> @@ -806,38 +768,38 @@ <context> <name>MqttLogLevelString</name> <message> - <location filename="../MqttClient.py" line="947" /> - <location filename="../MqttClient.py" line="930" /> + <location filename="../MqttClient.py" line="856" /> + <location filename="../MqttClient.py" line="839" /> <source>Unknown</source> <translation>Desconocido</translation> </message> <message> - <location filename="../MqttClient.py" line="935" /> + <location filename="../MqttClient.py" line="844" /> <source>Info</source> <translation>Info</translation> </message> <message> - <location filename="../MqttClient.py" line="937" /> + <location filename="../MqttClient.py" line="846" /> <source>Notice</source> <translation>Nota</translation> </message> <message> - <location filename="../MqttClient.py" line="939" /> + <location filename="../MqttClient.py" line="848" /> <source>Warning</source> <translation>Advertencia</translation> </message> <message> - <location filename="../MqttClient.py" line="941" /> + <location filename="../MqttClient.py" line="850" /> <source>Error</source> <translation>Error</translation> </message> <message> - <location filename="../MqttClient.py" line="943" /> + <location filename="../MqttClient.py" line="852" /> <source>Debug</source> <translation>Debug</translation> </message> <message> - <location filename="../MqttClient.py" line="945" /> + <location filename="../MqttClient.py" line="854" /> <source>Logging Disabled</source> <translation>Logging Deshabilitado</translation> </message> @@ -845,49 +807,49 @@ <context> <name>MqttMonitorPlugin</name> <message> - <location filename="../../PluginMqttMonitor.py" line="202" /> - <location filename="../../PluginMqttMonitor.py" line="198" /> - <location filename="../../PluginMqttMonitor.py" line="81" /> + <location filename="../../PluginMqttMonitor.py" line="214" /> + <location filename="../../PluginMqttMonitor.py" line="210" /> + <location filename="../../PluginMqttMonitor.py" line="93" /> <source>MQTT Monitor</source> <translation>MQTT Monitor</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="103" /> + <location filename="../../PluginMqttMonitor.py" line="115" /> <source>(package not available)</source> <translation>(package no disponible)</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="109" /> + <location filename="../../PluginMqttMonitor.py" line="121" /> <source>MQTT</source> <translation>MQTT</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="110" /> + <location filename="../../PluginMqttMonitor.py" line="122" /> <source>paho-mqtt</source> <translation>paho-mqtt</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="180" /> + <location filename="../../PluginMqttMonitor.py" line="192" /> <source>The 'paho-mqtt' package is not available.</source> <translation>El package 'paho-mqtt' no está disponible.</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="203" /> + <location filename="../../PluginMqttMonitor.py" line="215" /> <source>M&QTT Monitor</source> <translation>M&QTT Monitor</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="204" /> + <location filename="../../PluginMqttMonitor.py" line="216" /> <source>Alt+Shift+Q</source> <translation>Alt+Shift+Q</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="210" /> + <location filename="../../PluginMqttMonitor.py" line="222" /> <source>Switch the input focus to the MQTT Monitor window.</source> <translation>Cambiar el foco de input a la ventana de MQTT Monitor.</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="213" /> + <location filename="../../PluginMqttMonitor.py" line="225" /> <source><b>Activate MQTT Monitor</b><p>This switches the input focus to the MQTT Monitor window.</p></source> <translation><b>Activar MQTT Monitor</b><p>Cambia el foco de input a la ventana de MQTT Monitor.</p></translation> </message> @@ -895,6 +857,216 @@ <context> <name>MqttMonitorWidget</name> <message> + <location filename="../MqttMonitorWidget.py" line="88" /> + <source>All Files (*)</source> + <translation>Todos los Archivos (*)</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="325" /> + <source>Copy</source> + <translation>Copiar</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="331" /> + <source>Select All</source> + <translation>Seleccionar Todo</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.py" line="337" /> + <source>Clear</source> + <translation>Limpiar</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="372" /> + <source>{0} - Session still present</source> + <translation>{0} - Sesión todavía presente</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="410" /> + <source>Connection timed out</source> + <translation>Se ha agotado el tiempo de conexión</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="438" /> + <source>Connection to Broker shut down cleanly.</source> + <translation>Conexión a Broker detenida limpiamente.</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="498" /> + <source>{0}: {1}</source> + <translation>{0}: {1}</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="709" /> + <source>SUBSCRIBE: User Properties for '{0}'</source> + <translation>SUBSCRIBE: Propiedades de Usuario para '{0}'</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="735" /> + <source>Subscribe to Topic</source> + <translation>Subscribir a Tema</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="736" /> + <source>Subscriptions to the Status topic '$SYS' shall be done on the 'Status' tab.</source> + <translation>Las subscripciones al tema de Status '$SYS' se deben hacer en la pestaña de 'Status'.</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="760" /> + <source>UNSUBSCRIBE: User Properties for '{0}'</source> + <translation>UNSUBSCRIBE: Propiedades de Usuario para '{0}'</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="798" /> + <source>PUBLISH: User Properties for '{0}'</source> + <translation>PUBLISH: Propiedades de Usuario para '{0}'</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="834" /> + <source>Read Payload from File</source> + <translation>Leer Payload desde Archivo</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="835" /> + <source><p>The file <b>{0}</b> could not be read. Aborting...</p><p>Reason: {1}</p></source> + <translation><p>El archivo <b>{0}</b> no se ha podido leer. Abortando...</p><p>Razón: {1}</p></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="986" /> + <location filename="../MqttMonitorWidget.py" line="970" /> + <location filename="../MqttMonitorWidget.py" line="951" /> + <source>Save Messages</source> + <translation>Guardar Mensajes</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="953" /> + <source>Messages Files (*.txt);;All Files (*)</source> + <translation>Archivos de Mensaje (*.txt);;Todos los Archivos (*)</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1032" /> + <location filename="../MqttMonitorWidget.py" line="971" /> + <source><p>The file <b>{0}</b> already exists. Overwrite it?</p></source> + <translation><p>El archivo <b>{0}</b> ya existe. ¿Sobreescribirlo?</p></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1048" /> + <location filename="../MqttMonitorWidget.py" line="987" /> + <source><p>The file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> + <translation><p>El archivo <b>{0}</b> no se ha podido guardar.</p><p>Razón: {1}</p></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1047" /> + <location filename="../MqttMonitorWidget.py" line="1031" /> + <location filename="../MqttMonitorWidget.py" line="1012" /> + <source>Save Log Messages</source> + <translation>Guardar Mensajes de Log</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1014" /> + <source>Log Files (*.log);;All Files (*)</source> + <translation>Archivos de Log (*.log);;Todos los Archivos (*)</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.py" line="1068" /> + <source>Unsubscribe</source> + <translation>Retirar subscripción</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1070" /> + <source>Press to deactivate the status display</source> + <translation>Pulsar para activar la visualización de status</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.py" line="1073" /> + <source>Subscribe</source> + <translation>Subscribir</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.py" line="1075" /> + <source>Press to activate the status display</source> + <translation>Pulsar para activar la visualización de status</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1237" /> + <source>QoS: {0} +</source> + <translation>QoS: {0} +</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1241" /> + <source>Retained Message +</source> + <translation>Mensaje Retenido +</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1245" /> + <source>Properties: +</source> + <translation>Propiedades: +</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1249" /> + <source>{0}: {1} +</source> + <comment>property name, property value</comment> + <translation>{0}: {1} +</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1255" /> + <source>Message: +</source> + <translation>Mensaje: +</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1262" /> + <source><empty></source> + <translation><empty></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1468" /> + <location filename="../MqttMonitorWidget.py" line="1419" /> + <source>Connecting to {0}:{1} ...</source> + <translation>Connectando a {0}:{1} ...</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1613" /> + <source>{0} Bytes</source> + <translation>{0} Bytes</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1618" /> + <source>{0} KiB</source> + <translation>{0} KiB</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1623" /> + <source>{0} MiB</source> + <translation>{0} MiB</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1628" /> + <source>{0} GiB</source> + <translation>{0} GiB</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1633" /> + <source>{0} TiB</source> + <translation>{0} TiB</translation> + </message> + <message> <location filename="../MqttMonitorWidget.ui" line="0" /> <source><b>MQTT Monitor</b></source> <translation><b>MQTT Monitor</b></translation> @@ -945,13 +1117,6 @@ <translation>Pub/Sub</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1101" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Subscribe</source> - <translation>Subscribir</translation> - </message> - <message> <location filename="../MqttMonitorWidget.ui" line="0" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <location filename="../MqttMonitorWidget.ui" line="0" /> @@ -988,12 +1153,6 @@ <translation>Pulsar para editar las propiedades de usuario</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1096" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Unsubscribe</source> - <translation>Retirar subscripción</translation> - </message> - <message> <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Select the topic to unsubscribe</source> <translation>Seleccionar el tema del que retirar subscripción</translation> @@ -1045,14 +1204,6 @@ <translation>Pulsar para limpiar los datos de publicación</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="346" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Clear</source> - <translation>Limpiar</translation> - </message> - <message> <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Press to clear the retained messages of the selected topic</source> <translation>Pulsar para limpiar los mensajes retenidos del tema seleccionado</translation> @@ -1119,12 +1270,6 @@ <translation>Estado</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1103" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Press to activate the status display</source> - <translation>Pulsar para activar la visualización de status</translation> - </message> - <message> <location filename="../MqttMonitorWidget.ui" line="0" /> <source><b>Broker</b></source> <translation><b>Broker</b></translation> @@ -1349,189 +1494,6 @@ <source>Follow received log messages</source> <translation>Seguir mensajes de log recibidos</translation> </message> - <message> - <location filename="../MqttMonitorWidget.py" line="93" /> - <source>All Files (*)</source> - <translation>Todos los Archivos (*)</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="334" /> - <source>Copy</source> - <translation>Copiar</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="340" /> - <source>Select All</source> - <translation>Seleccionar Todo</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="391" /> - <source>{0} - Session still present</source> - <translation>{0} - Sesión todavía presente</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="429" /> - <source>Connection timed out</source> - <translation>Se ha agotado el tiempo de conexión</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="457" /> - <source>Connection to Broker shut down cleanly.</source> - <translation>Conexión a Broker detenida limpiamente.</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="517" /> - <source>{0}: {1}</source> - <translation>{0}: {1}</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="737" /> - <source>SUBSCRIBE: User Properties for '{0}'</source> - <translation>SUBSCRIBE: Propiedades de Usuario para '{0}'</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="763" /> - <source>Subscribe to Topic</source> - <translation>Subscribir a Tema</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="764" /> - <source>Subscriptions to the Status topic '$SYS' shall be done on the 'Status' tab.</source> - <translation>Las subscripciones al tema de Status '$SYS' se deben hacer en la pestaña de 'Status'.</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="788" /> - <source>UNSUBSCRIBE: User Properties for '{0}'</source> - <translation>UNSUBSCRIBE: Propiedades de Usuario para '{0}'</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="826" /> - <source>PUBLISH: User Properties for '{0}'</source> - <translation>PUBLISH: Propiedades de Usuario para '{0}'</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="862" /> - <source>Read Payload from File</source> - <translation>Leer Payload desde Archivo</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="863" /> - <source><p>The file <b>{0}</b> could not be read. Aborting...</p><p>Reason: {1}</p></source> - <translation><p>El archivo <b>{0}</b> no se ha podido leer. Abortando...</p><p>Razón: {1}</p></translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1014" /> - <location filename="../MqttMonitorWidget.py" line="998" /> - <location filename="../MqttMonitorWidget.py" line="979" /> - <source>Save Messages</source> - <translation>Guardar Mensajes</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="981" /> - <source>Messages Files (*.txt);;All Files (*)</source> - <translation>Archivos de Mensaje (*.txt);;Todos los Archivos (*)</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1060" /> - <location filename="../MqttMonitorWidget.py" line="999" /> - <source><p>The file <b>{0}</b> already exists. Overwrite it?</p></source> - <translation><p>El archivo <b>{0}</b> ya existe. ¿Sobreescribirlo?</p></translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1076" /> - <location filename="../MqttMonitorWidget.py" line="1015" /> - <source><p>The file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> - <translation><p>El archivo <b>{0}</b> no se ha podido guardar.</p><p>Razón: {1}</p></translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1075" /> - <location filename="../MqttMonitorWidget.py" line="1059" /> - <location filename="../MqttMonitorWidget.py" line="1040" /> - <source>Save Log Messages</source> - <translation>Guardar Mensajes de Log</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1042" /> - <source>Log Files (*.log);;All Files (*)</source> - <translation>Archivos de Log (*.log);;Todos los Archivos (*)</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1098" /> - <source>Press to deactivate the status display</source> - <translation>Pulsar para activar la visualización de status</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1265" /> - <source>QoS: {0} -</source> - <translation>QoS: {0} -</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1269" /> - <source>Retained Message -</source> - <translation>Mensaje Retenido -</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1273" /> - <source>Properties: -</source> - <translation>Propiedades: -</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1277" /> - <source>{0}: {1} -</source> - <comment>property name, property value</comment> - <translation>{0}: {1} -</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1283" /> - <source>Message: -</source> - <translation>Mensaje: -</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1290" /> - <source><empty></source> - <translation><empty></translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1496" /> - <location filename="../MqttMonitorWidget.py" line="1447" /> - <source>Connecting to {0}:{1} ...</source> - <translation>Connectando a {0}:{1} ...</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1641" /> - <source>{0} Bytes</source> - <translation>{0} Bytes</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1646" /> - <source>{0} KiB</source> - <translation>{0} KiB</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1651" /> - <source>{0} MiB</source> - <translation>{0} MiB</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1656" /> - <source>{0} GiB</source> - <translation>{0} GiB</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1661" /> - <source>{0} TiB</source> - <translation>{0} TiB</translation> - </message> </context> <context> <name>MqttPage</name>
--- a/MqttMonitor/i18n/mqttmonitor_ru.ts Sat Jan 06 13:11:01 2024 +0100 +++ b/MqttMonitor/i18n/mqttmonitor_ru.ts Fri Apr 19 15:15:01 2024 +0200 @@ -1,1888 +1,1850 @@ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.1" language="ru_RU"> -<context> - <name>MqttConnackMessage</name> - <message> - <location filename="../MqttClient.py" line="826"/> - <source>Connection Accepted.</source> - <translation>Соединение установлено.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="828"/> - <source>Connection Refused: unacceptable protocol version.</source> - <translation>Соединение отклонено: неприемлемая версия протокола.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="832"/> - <source>Connection Refused: identifier rejected.</source> - <translation>Соединение отклонено: идентификатор отклонен.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="836"/> - <source>Connection Refused: broker unavailable.</source> - <translation>Соединение отклонено: брокер недоступен.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="840"/> - <source>Connection Refused: bad user name or password.</source> - <translation>Соединение отклонено: неправильное имя пользователя или пароль.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="844"/> - <source>Connection Refused: not authorised.</source> - <translation>Соединение отклонено: нет авторизации.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="848"/> - <source>Connection Refused: unknown reason.</source> - <translation>Соединение отклонено: неизвестная причина.</translation> - </message> -</context> -<context> + <context> <name>MqttConnectionOptionsDialog</name> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>MQTT Connection Options</source> - <translation>Параметры подключения MQTT</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>MQTT Connection Options</source> + <translation>Параметры подключения MQTT</translation> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>General</source> + <translation>Главное</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>General</source> - <translation>Главное</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Client ID:</source> + <translation>ID клиента:</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Client ID:</source> - <translation>ID клиента:</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Enter the ID string for this client</source> + <translation>Введите ID для этого клиента</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Enter the ID string for this client</source> - <translation>Введите ID для этого клиента</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Press to generate a client ID</source> + <translation>Генерировать ID клиента</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Press to generate a client ID</source> - <translation>Генерировать ID клиента</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Generate</source> + <translation>Генерировать</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Generate</source> - <translation>Генерировать</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>MQTT Protocol</source> + <translation>Протокол MQTT</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>MQTT Protocol</source> - <translation>Протокол MQTT</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to use the MQTT 3.1 protocol</source> + <translation>Выбор протокола MQTT 3.1</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Select to use the MQTT 3.1 protocol</source> - <translation>Выбор протокола MQTT 3.1</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>v 3.1</source> + <translation>вер 3.1</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>v 3.1</source> - <translation>вер 3.1</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to use the MQTT 3.1.1 protocol</source> + <translation>Выбор протокола MQTT 3.1.1</translation> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>v 3.1.1</source> + <translation>вер. 3.1.1</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Select to use the MQTT 3.1.1 protocol</source> - <translation>Выбор протокола MQTT 3.1.1</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to use the MQTT 5.0 protocol</source> + <translation>Выбор протокола MQTT 5.0</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>v 3.1.1</source> - <translation>вер. 3.1.1</translation> - </message> - <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Select to use the MQTT 5.0 protocol</source> - <translation>Выбор протокола MQTT 5.0</translation> - </message> - <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>v 5.0</source> - <translation>вер. 5.0</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>v 5.0</source> + <translation>вер. 5.0</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Connection Timeout:</source> - <translation>Время ожидания соединения:</translation> - </message> - <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Enter the connection timeout in seconds</source> - <translation>Задайте время ожидания соединения, в секундах</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Connection Timeout:</source> + <translation>Время ожидания соединения:</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source> s</source> - <translation> сек</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Enter the connection timeout in seconds</source> + <translation>Задайте время ожидания соединения, в секундах</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Keep Alive Interval:</source> - <translation>Интервал удержания:</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source> s</source> + <translation> сек</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Enter the keep alive interval in seconds</source> - <translation>Задайте интервал удержания, в секундах</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Keep Alive Interval:</source> + <translation>Интервал удержания:</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Select to start with a clean session</source> - <translation>Разрешить начинать чистый сеанс</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Enter the keep alive interval in seconds</source> + <translation>Задайте интервал удержания, в секундах</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Clean Session</source> - <translation>Очищать сеанс</translation> - </message> - <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>User Credentials</source> - <translation>Учетные данные пользователя</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to start with a clean session</source> + <translation>Разрешить начинать чистый сеанс</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>User Name:</source> - <translation>Имя пользователя:</translation> - </message> - <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Enter the user name</source> - <translation>Введите имя пользователя</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Clean Session</source> + <translation>Очищать сеанс</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Password:</source> - <translation>Пароль:</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>User Credentials</source> + <translation>Учетные данные пользователя</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Enter the password</source> - <translation>Введите пароль</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>User Name:</source> + <translation>Имя пользователя:</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Last Will</source> - <translation>'Последняя воля'</translation> - </message> - <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Enter the topic of the last will</source> - <translation>Введите тему 'последней воли'</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Enter the user name</source> + <translation>Введите имя пользователя</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>QoS:</source> - <translation>QoS:</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Password:</source> + <translation>Пароль:</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Enter the desired QoS value</source> - <translation>Задайте желаемое значение уровня обслуживания QoS</translation> - </message> - <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Select to retain the last will message</source> - <translation>Разрешить удерживать сообщение 'последней воли'</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Enter the password</source> + <translation>Введите пароль</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Retain</source> - <translation>Удерживать</translation> - </message> - <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Press to edit the user properties</source> - <translation>Правка пользовательских свойств</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Last Will</source> + <translation>'Последняя воля'</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Enter the last will message to be sent</source> - <translation>Введите сообщение 'последней воли' для отправки</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Enter the topic of the last will</source> + <translation>Введите тему 'последней воли'</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>SSL/TLS</source> - <translation>SSL/TLS</translation> - </message> - <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Select to enable SSL/TLS connections</source> - <translation>Разрешить SSL/TLS соединения</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>QoS:</source> + <translation>QoS:</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>SSL/TLS Enabled</source> - <translation>Разрешить SSL/TLS</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Enter the desired QoS value</source> + <translation>Задайте желаемое значение уровня обслуживания QoS</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>CA File:</source> - <translation>Файл CA:</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to retain the last will message</source> + <translation>Разрешить удерживать сообщение 'последней воли'</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Enter the full path to the CA certificate file; leave empty to use platform default</source> - <translation>Введите полный путь к файлу сертификата CA; оставьте поле пустым, чтобы использовать платформу по умолчанию</translation> - </message> - <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>User Properties</source> - <translation>Пользовательские свойства</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Retain</source> + <translation>Удерживать</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Select to edit the CONNECT user properties</source> - <translation>Разрешить редактировать пользовательские свойства пакета CONNECT</translation> - </message> - <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>CONNECT</source> - <translation>CONNECT</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Press to edit the user properties</source> + <translation>Правка пользовательских свойств</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Select to edit the DISCONNECT user properties</source> - <translation>Разрешить редактировать пользовательские свойства пакета DISCONNECT</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Enter the last will message to be sent</source> + <translation>Введите сообщение 'последней воли' для отправки</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>DISCONNECT</source> - <translation>DISCONNECT</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>SSL/TLS</source> + <translation>SSL/TLS</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Select to use the CONNECT user properties when disconnecting</source> - <translation>Разрешить использовать пользовательские свойства пакета CONNECT при отключении</translation> - </message> - <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> - <source>Use CONNECT properties for DISCONNECT</source> - <translation>Использовать свойства CONNECT для DISCONNECT</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to enable SSL/TLS connections</source> + <translation>Разрешить SSL/TLS соединения</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="53"/> - <source>Certificate Files (*.crt *.pem);;All Files (*)</source> - <translation>Файлы сертификатов (*.crt *.pem);;Все файлы (*)</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>SSL/TLS Enabled</source> + <translation>Разрешить SSL/TLS</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="82"/> - <source>Invalid Connection Parameters</source> - <translation>Недопустимые параметры соединения</translation> - </message> - <message> - <location filename="../MqttConnectionOptionsDialog.py" line="83"/> - <source>An empty Client ID requires a clean session.</source> - <translation>При незаданном ID клиента требуется чистый сеанс.</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>CA File:</source> + <translation>Файл CA:</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="185"/> - <source>Last Will User Properties</source> - <translation>Пользовательские свойства 'последней воли'</translation> - </message> -</context> -<context> - <name>MqttConnectionProfilesDialog</name> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="84"/> - <location filename="../MqttConnectionProfilesDialog.py" line="78"/> - <location filename="../MqttConnectionProfilesDialog.py" line="74"/> - <source>Certificate Files (*.crt *.pem);;All Files (*)</source> - <translation>Файлы сертификатов (*.crt *.pem);;Все файлы (*)</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Enter the full path to the CA certificate file; leave empty to use platform default</source> + <translation>Введите полный путь к файлу сертификата CA; оставьте поле пустым, чтобы использовать платформу по умолчанию</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="90"/> - <source>Key Files (*.key *.pem);;All Files (*)</source> - <translation>Файлы ключей (*.key *.pem);;Все файлы (*)</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>User Properties</source> + <translation>Пользовательские свойства</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="959"/> - <location filename="../MqttConnectionProfilesDialog.py" line="921"/> - <location filename="../MqttConnectionProfilesDialog.py" line="167"/> - <source>Changed Connection Profile</source> - <translation>Измененный профиль соединения</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to edit the CONNECT user properties</source> + <translation>Разрешить редактировать пользовательские свойства пакета CONNECT</translation> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>CONNECT</source> + <translation>CONNECT</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="960"/> - <location filename="../MqttConnectionProfilesDialog.py" line="922"/> - <location filename="../MqttConnectionProfilesDialog.py" line="168"/> - <source>The current profile has unsaved changes. Shall these be saved?</source> - <translation>В текущем профиле есть несохраненные изменения. Должны ли они быть сохранены?</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to edit the DISCONNECT user properties</source> + <translation>Разрешить редактировать пользовательские свойства пакета DISCONNECT</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="199"/> - <location filename="../MqttConnectionProfilesDialog.py" line="191"/> - <source>New Connection Profile</source> - <translation>Новый профиль соединения</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>DISCONNECT</source> + <translation>DISCONNECT</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="192"/> - <source>Enter name for the new Connection Profile:</source> - <translation>Введите имя нового профиля соединения:</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="229"/> - <location filename="../MqttConnectionProfilesDialog.py" line="200"/> - <source><p>A connection named <b>{0}</b> exists already. Aborting...</p></source> - <translation><p>Уже существует соединение с именем <b>{0}</b>. Прерывание... </ p></translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to use the CONNECT user properties when disconnecting</source> + <translation>Разрешить использовать пользовательские свойства пакета CONNECT при отключении</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="228"/> - <location filename="../MqttConnectionProfilesDialog.py" line="220"/> - <source>Copy Connection Profile</source> - <translation>Копировать профиль соединения</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="221"/> - <source>Enter name for the copied Connection Profile:</source> - <translation>Введите имя для скопированного профиля соединения:</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Use CONNECT properties for DISCONNECT</source> + <translation>Использовать свойства CONNECT для DISCONNECT</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="256"/> - <source>Delete Connection Profile</source> - <translation>Удалить профиль соединения</translation> + <location filename="../MqttConnectionOptionsDialog.py" line="53" /> + <source>Certificate Files (*.crt *.pem);;All Files (*)</source> + <translation>Файлы сертификатов (*.crt *.pem);;Все файлы (*)</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="257"/> - <source><p>Shall the Connection Profile <b>{0}</b> really be deleted?</p></source> - <translation><p>Действительно удалить профиль соединения <b>{0}</b>?</p></translation> + <location filename="../MqttConnectionOptionsDialog.py" line="82" /> + <source>Invalid Connection Parameters</source> + <translation>Недопустимые параметры соединения</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="664"/> - <source>Invalid Connection Parameters</source> - <translation>Недопустимые параметры соединения</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="665"/> - <source>An empty Client ID requires a clean session.</source> - <translation>При незаданном ID клиента требуется чистый сеанс.</translation> + <location filename="../MqttConnectionOptionsDialog.py" line="83" /> + <source>An empty Client ID requires a clean session.</source> + <translation>При незаданном ID клиента требуется чистый сеанс.</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="760"/> - <source>Last Will User Properties</source> - <translation>Пользовательские свойства 'последней воли'</translation> + <location filename="../MqttConnectionOptionsDialog.py" line="185" /> + <source>Last Will User Properties</source> + <translation>Пользовательские свойства 'последней воли'</translation> </message> + </context> + <context> + <name>MqttConnectionProfilesDialog</name> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <location filename="../MqttConnectionProfilesDialog.py" line="817"/> - <source>SSL/TLS Enabled</source> - <translation>Разрешить SSL/TLS</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="818"/> - <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>Разрешено соединение с использованием шифрования SSL/TLS. Однако по-прежнему задействован порт брокера без шифрования, по умолчанию порт 1883. Изменить?</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>MQTT Connection Profiles</source> + <translation>Профили подключения MQTT</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="833"/> - <source>SSL/TLS Disabled</source> - <translation>SSL/TLS запрещено</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.py" line="834"/> - <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>Соединение с использованием шифрования SSL/TLS запрещено. Однако по-прежнему задействован порт брокера с шифрованием, по умолчанию порт 8883. Изменить?</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Press to add a new profile</source> + <translation>Добавить новый профиль</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="936"/> - <source>Changed Connection Profiles</source> - <translation>Измененные профили соединений</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Press to copy the selected profile</source> + <translation>Копировать выбранный профиль</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="937"/> - <source>The list of connection profiles has unsaved changes.</source> - <translation>В списке профилей соединений имеются несохраненные изменения.</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>MQTT Connection Profiles</source> - <translation>Профили подключения MQTT</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Press to delete the selected profile</source> + <translation>Удалить выбранный профиль</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Press to add a new profile</source> - <translation>Добавить новый профиль</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Profile Name:</source> + <translation>Имя профиля:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Press to copy the selected profile</source> - <translation>Копировать выбранный профиль</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Press to delete the selected profile</source> - <translation>Удалить выбранный профиль</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Profile Name:</source> - <translation>Имя профиля:</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Broker Address:</source> + <translation>Адрес брокера:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Broker Address:</source> - <translation>Адрес брокера:</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the broker server address</source> - <translation>Введите адрес брокер-сервера</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the broker server address</source> + <translation>Введите адрес брокер-сервера</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Broker Port:</source> - <translation>Порт брокера:</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Broker Port:</source> + <translation>Порт брокера:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the broker port number (default 1883)</source> - <translation>Задайте номер порта брокера (по умолчанию 1883)</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the broker port number (default 1883)</source> + <translation>Задайте номер порта брокера (по умолчанию 1883)</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Client ID:</source> - <translation>ID клиента:</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Client ID:</source> + <translation>ID клиента:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the ID string for this client</source> - <translation>Введите ID для этого клиента</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the ID string for this client</source> + <translation>Введите ID для этого клиента</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Press to generate a client ID</source> - <translation>Генерировать ID клиента</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Generate</source> - <translation>Генерировать</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>General</source> - <translation>Главное</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Press to generate a client ID</source> + <translation>Генерировать ID клиента</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>MQTT Protocol</source> - <translation>Протокол MQTT</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Select to use the MQTT 3.1 protocol</source> - <translation>Выбор протокола MQTT 3.1</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Generate</source> + <translation>Генерировать</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>v 3.1</source> - <translation>вер. 3.1</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>General</source> + <translation>Главное</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Select to use the MQTT 3.1.1 protocol</source> - <translation>Выбор протокола MQTT 3.1.1</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>MQTT Protocol</source> + <translation>Протокол MQTT</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>v 3.1.1</source> - <translation>вер. 3.1.1</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to use the MQTT 3.1 protocol</source> + <translation>Выбор протокола MQTT 3.1</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Select to use the MQTT 5.0 protocol</source> - <translation>Выбор протокола MQTT 5.0</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>v 3.1</source> + <translation>вер. 3.1</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>v 5.0</source> - <translation>вер. 5.0</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to use the MQTT 3.1.1 protocol</source> + <translation>Выбор протокола MQTT 3.1.1</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Connection Timeout:</source> - <translation>Время ожидания соединения:</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the connection timeout in seconds</source> - <translation>Задайте время ожидания соединения, в секундах</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>v 3.1.1</source> + <translation>вер. 3.1.1</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source> s</source> - <translation> сек</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Keep Alive Interval:</source> - <translation>Интервал удержания:</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to use the MQTT 5.0 protocol</source> + <translation>Выбор протокола MQTT 5.0</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the keep alive interval in seconds</source> - <translation>Задайте интервал удержания, в секундах</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>v 5.0</source> + <translation>вер. 5.0</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Select to start with a clean session</source> - <translation>Разрешить начинать чистый сеанс</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Connection Timeout:</source> + <translation>Время ожидания соединения:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Clean Session</source> - <translation>Очищать сеанс</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>User Credentials</source> - <translation>Учетные данные пользователя</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the connection timeout in seconds</source> + <translation>Задайте время ожидания соединения, в секундах</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>User Name:</source> - <translation>Имя пользователя:</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source> s</source> + <translation> сек</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the user name</source> - <translation>Введите имя пользователя</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Password:</source> - <translation>Пароль:</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Keep Alive Interval:</source> + <translation>Интервал удержания:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the password</source> - <translation>Введите пароль</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Toggle to show the password</source> - <translation>Отображение пароля</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the keep alive interval in seconds</source> + <translation>Задайте интервал удержания, в секундах</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Last Will</source> - <translation>'Последняя воля'</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to start with a clean session</source> + <translation>Разрешить начинать чистый сеанс</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the topic of the last will</source> - <translation>Введите тему 'последней воли'</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>QoS:</source> - <translation>QoS:</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Clean Session</source> + <translation>Очищать сеанс</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the desired QoS value</source> - <translation>Задайте желаемое значение уровня обслуживания QoS</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>User Credentials</source> + <translation>Учетные данные пользователя</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Select to retain the last will message</source> - <translation>Разрешить удерживать сообщение 'последней воли'</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>User Name:</source> + <translation>Имя пользователя:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Retain</source> - <translation>Удерживать</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Press to edit the user properties</source> - <translation>Правка пользовательских свойств</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the user name</source> + <translation>Введите имя пользователя</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the last will message to be sent</source> - <translation>Введите сообщение 'последней воли' для отправки</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>SSL/TLS</source> - <translation>SSL/TLS</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Password:</source> + <translation>Пароль:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Select to enable SSL/TLS connections</source> - <translation>Разрешить SSL/TLS соединения</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the password</source> + <translation>Введите пароль</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Select to use the default certificate file of the client</source> - <translation>Разрешить использовать файл сертификата клиента по умолчанию</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Toggle to show the password</source> + <translation>Отображение пароля</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>CA signed server certificate</source> - <translation>Сертификат подписываемый сервером CA</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Select to use a specific certificate file</source> - <translation>Разрешить использовать определенный файл сертификата</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Last Will</source> + <translation>'Последняя воля'</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>CA certificate file</source> - <translation>Файл сертификата CA</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the topic of the last will</source> + <translation>Введите тему 'последней воли'</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>CA File:</source> - <translation>Файл CA:</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>QoS:</source> + <translation>QoS:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the full path to the CA certificate file</source> - <translation>Введите полный путь к файлу сертификата CA</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Select to use a self signed client certificate</source> - <translation>Разрешить использовать самостоятельно подписываемый сертификат клиента</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the desired QoS value</source> + <translation>Задайте желаемое значение уровня обслуживания QoS</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Self signed certificates</source> - <translation>Самостоятельно подписываемые сертификаты</translation> - </message> - <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Client Certificate File:</source> - <translation>Файл сертификата клиента:</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to retain the last will message</source> + <translation>Разрешить удерживать сообщение 'последней воли'</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the full path to the client certificate file</source> - <translation>Введите полный путь к файлу сертификата клиента</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Retain</source> + <translation>Удерживать</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Client Key File:</source> - <translation>Файл ключа клиента:</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Press to edit the user properties</source> + <translation>Правка пользовательских свойств</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Enter the full path to the client key file</source> - <translation>Введите полный путь к файлу ключа клиента</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the last will message to be sent</source> + <translation>Введите сообщение 'последней воли' для отправки</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>User Properties</source> - <translation>Пользовательские свойства</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>SSL/TLS</source> + <translation>SSL/TLS</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Select to edit the CONNECT user properties</source> - <translation>Разрешить редактировать пользовательские свойства пакета CONNECT</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to enable SSL/TLS connections</source> + <translation>Разрешить SSL/TLS соединения</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>Разрешить редактировать пользовательские свойства пакета DISCONNECT</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="817" /> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>SSL/TLS Enabled</source> + <translation>Разрешить SSL/TLS</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>Разрешить использовать пользовательские свойства CONNECT при отключении</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to use the default certificate file of the client</source> + <translation>Разрешить использовать файл сертификата клиента по умолчанию</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <source>Use CONNECT properties for DISCONNECT</source> - <translation>Использовать свойства CONNECT для DISCONNECT</translation> - </message> -</context> -<context> - <name>MqttErrorMessage</name> - <message> - <location filename="../MqttClient.py" line="864"/> - <source>No error.</source> - <translation>Нет ошибки.</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>CA signed server certificate</source> + <translation>Сертификат подписываемый сервером CA</translation> </message> <message> - <location filename="../MqttClient.py" line="866"/> - <source>Out of memory.</source> - <translation>Недостаточно памяти.</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to use a specific certificate file</source> + <translation>Разрешить использовать определенный файл сертификата</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>CA certificate file</source> + <translation>Файл сертификата CA</translation> </message> <message> - <location filename="../MqttClient.py" line="868"/> - <source>A network protocol error occurred when communicating with the broker.</source> - <translation>Во время общения с брокером произошла ошибка сетевого протокола.</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>CA File:</source> + <translation>Файл CA:</translation> </message> <message> - <location filename="../MqttClient.py" line="873"/> - <source>Invalid function arguments provided.</source> - <translation>Предоставлены недопустимые аргументы функции.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="877"/> - <source>The client is not currently connected.</source> - <translation>В настоящее время клиент не подключен.</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the full path to the CA certificate file</source> + <translation>Введите полный путь к файлу сертификата CA</translation> </message> <message> - <location filename="../MqttClient.py" line="881"/> - <source>The connection was refused.</source> - <translation>Соединение было отклонено.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="885"/> - <source>Message not found (internal error).</source> - <translation>Сообщение не найдено (внутренняя ошибка).</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to use a self signed client certificate</source> + <translation>Разрешить использовать самостоятельно подписываемый сертификат клиента</translation> </message> <message> - <location filename="../MqttClient.py" line="889"/> - <source>The connection was lost.</source> - <translation>Соединение было потеряно.</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Self signed certificates</source> + <translation>Самостоятельно подписываемые сертификаты</translation> </message> <message> - <location filename="../MqttClient.py" line="893"/> - <source>A TLS error occurred.</source> - <translation>Произошла ошибка TLS.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="895"/> - <source>Payload too large.</source> - <translation>Слишком большая полезная нагрузка.</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Client Certificate File:</source> + <translation>Файл сертификата клиента:</translation> </message> <message> - <location filename="../MqttClient.py" line="897"/> - <source>This feature is not supported.</source> - <translation>Эта функция не поддерживается.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="901"/> - <source>Authorisation failed.</source> - <translation>Ошибка авторизации.</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the full path to the client certificate file</source> + <translation>Введите полный путь к файлу сертификата клиента</translation> </message> <message> - <location filename="../MqttClient.py" line="903"/> - <source>Access denied by ACL.</source> - <translation>Отказано в доступе к ACL.</translation> - </message> - <message> - <location filename="../MqttClient.py" line="911"/> - <location filename="../MqttClient.py" line="905"/> - <source>Unknown error.</source> - <translation>Неизвестная ошибка.</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Client Key File:</source> + <translation>Файл ключа клиента:</translation> </message> <message> - <location filename="../MqttClient.py" line="907"/> - <source>Error defined by errno.</source> - <translation>Ошибка, определяемая errno.</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Enter the full path to the client key file</source> + <translation>Введите полный путь к файлу ключа клиента</translation> </message> <message> - <location filename="../MqttClient.py" line="909"/> - <source>Message queue full.</source> - <translation>Очередь сообщений заполнена.</translation> - </message> -</context> -<context> - <name>MqttLogLevelString</name> - <message> - <location filename="../MqttClient.py" line="947"/> - <location filename="../MqttClient.py" line="930"/> - <source>Unknown</source> - <translation>Unknown</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>User Properties</source> + <translation>Пользовательские свойства</translation> </message> <message> - <location filename="../MqttClient.py" line="935"/> - <source>Info</source> - <translation>Info</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to edit the CONNECT user properties</source> + <translation>Разрешить редактировать пользовательские свойства пакета CONNECT</translation> </message> <message> - <location filename="../MqttClient.py" line="937"/> - <source>Notice</source> - <translation>Notice</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>CONNECT</source> + <translation>CONNECT</translation> </message> <message> - <location filename="../MqttClient.py" line="939"/> - <source>Warning</source> - <translation>Warning</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to edit the DISCONNECT user properties</source> + <translation>Разрешить редактировать пользовательские свойства пакета DISCONNECT</translation> </message> <message> - <location filename="../MqttClient.py" line="941"/> - <source>Error</source> - <translation>Error</translation> - </message> - <message> - <location filename="../MqttClient.py" line="943"/> - <source>Debug</source> - <translation>Debug</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>DISCONNECT</source> + <translation>DISCONNECT</translation> </message> <message> - <location filename="../MqttClient.py" line="945"/> - <source>Logging Disabled</source> - <translation>Ведение журнала запрещено</translation> - </message> -</context> -<context> - <name>MqttMonitorPlugin</name> - <message> - <location filename="../../PluginMqttMonitor.py" line="202"/> - <location filename="../../PluginMqttMonitor.py" line="198"/> - <location filename="../../PluginMqttMonitor.py" line="81"/> - <source>MQTT Monitor</source> - <translation>MQTT Monitor</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to use the CONNECT user properties when disconnecting</source> + <translation>Разрешить использовать пользовательские свойства CONNECT при отключении</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="103"/> - <source>(package not available)</source> - <translation>(пакет не доступен)</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Use CONNECT properties for DISCONNECT</source> + <translation>Использовать свойства CONNECT для DISCONNECT</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="109"/> - <source>MQTT</source> - <translation>MQTT - клиентская библиотека Python</translation> - </message> - <message> - <location filename="../../PluginMqttMonitor.py" line="110"/> - <source>paho-mqtt</source> - <translation>paho-mqtt</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="84" /> + <location filename="../MqttConnectionProfilesDialog.py" line="78" /> + <location filename="../MqttConnectionProfilesDialog.py" line="74" /> + <source>Certificate Files (*.crt *.pem);;All Files (*)</source> + <translation>Файлы сертификатов (*.crt *.pem);;Все файлы (*)</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="180"/> - <source>The 'paho-mqtt' package is not available.</source> - <translation>Пакет 'paho-mqtt' недоступен.</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="90" /> + <source>Key Files (*.key *.pem);;All Files (*)</source> + <translation>Файлы ключей (*.key *.pem);;Все файлы (*)</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="203"/> - <source>M&QTT Monitor</source> - <translation>M&QTT Monitor</translation> - </message> - <message> - <location filename="../../PluginMqttMonitor.py" line="204"/> - <source>Alt+Shift+Q</source> - <translation>Alt+Shift+Q</translation> - </message> - <message> - <location filename="../../PluginMqttMonitor.py" line="210"/> - <source>Switch the input focus to the MQTT Monitor window.</source> - <translation>Переключить фокус ввода в окно MQTT Monitor.</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="957" /> + <location filename="../MqttConnectionProfilesDialog.py" line="921" /> + <location filename="../MqttConnectionProfilesDialog.py" line="167" /> + <source>Changed Connection Profile</source> + <translation>Измененный профиль соединения</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="213"/> - <source><b>Activate MQTT Monitor</b><p>This switches the input focus to the MQTT Monitor window.</p></source> - <translation><b>Активировать MQTT Monitor</b><p>Переключение фокуса ввода в окно MQTT Monitor.</p></translation> - </message> -</context> -<context> - <name>MqttMonitorWidget</name> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source><b>MQTT Monitor</b></source> - <translation><b>MQTT Monitor</b></translation> + <location filename="../MqttConnectionProfilesDialog.py" line="958" /> + <location filename="../MqttConnectionProfilesDialog.py" line="922" /> + <location filename="../MqttConnectionProfilesDialog.py" line="168" /> + <source>The current profile has unsaved changes. Shall these be saved?</source> + <translation>В текущем профиле есть несохраненные изменения. Должны ли они быть сохранены?</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Broker</source> - <translation>Брокер</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="199" /> + <location filename="../MqttConnectionProfilesDialog.py" line="191" /> + <source>New Connection Profile</source> + <translation>Новый профиль соединения</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to switch the mode between profiles and direct connection</source> - <translation>Переключить режим подключения - профили или прямое соединение</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="192" /> + <source>Enter name for the new Connection Profile:</source> + <translation>Введите имя нового профиля соединения:</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Select the profile to be used to connect to the broker</source> - <translation>Выберите профиль, который будет использоваться для соединения с брокером</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="229" /> + <location filename="../MqttConnectionProfilesDialog.py" line="200" /> + <source><p>A connection named <b>{0}</b> exists already. Aborting...</p></source> + <translation><p>Уже существует соединение с именем <b>{0}</b>. Прерывание... </ p></translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Enter the host name of the broker</source> - <translation>Введите имя хоста брокера</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="228" /> + <location filename="../MqttConnectionProfilesDialog.py" line="220" /> + <source>Copy Connection Profile</source> + <translation>Копировать профиль соединения</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Enter the broker port to connect to</source> - <translation>Задайте порт брокера для соединения</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to open a dialog to enter connection options</source> - <translation>Открыть диалог ввода параметров соединения</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to connect to/disconnect from the broker</source> - <translation>Подключиться к брокеру/отключиться от брокера</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="221" /> + <source>Enter name for the copied Connection Profile:</source> + <translation>Введите имя для скопированного профиля соединения:</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Select to clear a previously set last will message</source> - <translation>Разрешить очищать установленные ранее сообщения 'последней воли'</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Pub/Sub</source> - <translation>Подписки/Публикации</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="256" /> + <source>Delete Connection Profile</source> + <translation>Удалить профиль соединения</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1101"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Subscribe</source> - <translation>Подписаться</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="257" /> + <source><p>Shall the Connection Profile <b>{0}</b> really be deleted?</p></source> + <translation><p>Действительно удалить профиль соединения <b>{0}</b>?</p></translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Topic:</source> - <translation>Тема:</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="664" /> + <source>Invalid Connection Parameters</source> + <translation>Недопустимые параметры соединения</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Enter the topic</source> - <translation>Введите тему</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="665" /> + <source>An empty Client ID requires a clean session.</source> + <translation>При незаданном ID клиента требуется чистый сеанс.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>QoS:</source> - <translation>QoS:</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Enter the desired QoS value</source> - <translation>Задайте желаемое значение уровня обслуживания QoS</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to subscribe to the given topic</source> - <translation>Подписаться на данную тему</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="760" /> + <source>Last Will User Properties</source> + <translation>Пользовательские свойства 'последней воли'</translation> </message> <message> - <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>Разрешить редактировать пользовательские свойства</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="818" /> + <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>Разрешено соединение с использованием шифрования SSL/TLS. Однако по-прежнему задействован порт брокера без шифрования, по умолчанию порт 1883. Изменить?</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1096"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Unsubscribe</source> - <translation>Отписаться</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="833" /> + <source>SSL/TLS Disabled</source> + <translation>SSL/TLS запрещено</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Select the topic to unsubscribe</source> - <translation>Выберите тему для отписки</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="834" /> + <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>Соединение с использованием шифрования SSL/TLS запрещено. Однако по-прежнему задействован порт брокера с шифрованием, по умолчанию порт 8883. Изменить?</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to unsubscribe the selected topic</source> - <translation>Отписаться от выбранной темы</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="936" /> + <source>Changed Connection Profiles</source> + <translation>Измененные профили соединений</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Publish</source> - <translation>Опубликовать</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="937" /> + <source>The list of connection profiles has unsaved changes.</source> + <translation>В списке профилей соединений имеются несохраненные изменения.</translation> </message> + </context> + <context> + <name>MqttErrorMessage</name> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Enter the topic to publish to</source> - <translation>Введите тему для публикации</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Select to retain the published message</source> - <translation>Разрешить удерживать опубликованное сообщение</translation> + <location filename="../MqttClient.py" line="773" /> + <source>No error.</source> + <translation>Нет ошибки.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Retain</source> - <translation>Удерживать</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Enter the string data to be sent</source> - <translation>Введите строку данных для отправки</translation> + <location filename="../MqttClient.py" line="775" /> + <source>Out of memory.</source> + <translation>Недостаточно памяти.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Payload File:</source> - <translation>Файл полезной нагрузки:</translation> + <location filename="../MqttClient.py" line="777" /> + <source>A network protocol error occurred when communicating with the broker.</source> + <translation>Во время общения с брокером произошла ошибка сетевого протокола.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Enter the full path to a file containing the message payload</source> - <translation>Введите полный путь к файлу, содержащему полезную нагрузку сообщения</translation> + <location filename="../MqttClient.py" line="782" /> + <source>Invalid function arguments provided.</source> + <translation>Предоставлены недопустимые аргументы функции.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to clear the publish data</source> - <translation>Очистить данные публикации</translation> + <location filename="../MqttClient.py" line="786" /> + <source>The client is not currently connected.</source> + <translation>В настоящее время клиент не подключен.</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="346"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Clear</source> - <translation>Очистить</translation> + <location filename="../MqttClient.py" line="790" /> + <source>The connection was refused.</source> + <translation>Соединение было отклонено.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to clear the retained messages of the selected topic</source> - <translation>Разрешить очищать сохраненные сообщения выбранной темы</translation> + <location filename="../MqttClient.py" line="794" /> + <source>Message not found (internal error).</source> + <translation>Сообщение не найдено (внутренняя ошибка).</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Clear Retained</source> - <translation>Очищать сохраненные</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Select to clear the publish data after the message was published</source> - <translation>Разрешить очищать данные публикации после опубликования сообщения</translation> + <location filename="../MqttClient.py" line="798" /> + <source>The connection was lost.</source> + <translation>Соединение было потеряно.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Clear when sent</source> - <translation>Очищать после отправки</translation> + <location filename="../MqttClient.py" line="802" /> + <source>A TLS error occurred.</source> + <translation>Произошла ошибка TLS.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Properties</source> - <translation>Свойства</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>MQTT V5 Properties</source> - <translation>Свойства MQTT вер. 5</translation> + <location filename="../MqttClient.py" line="804" /> + <source>Payload too large.</source> + <translation>Слишком большая полезная нагрузка.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Messages</source> - <translation>Сообщения</translation> + <location filename="../MqttClient.py" line="806" /> + <source>This feature is not supported.</source> + <translation>Эта функция не поддерживается.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to save the received messages to a file</source> - <translation>Сохранить полученные сообщения в файл</translation> + <location filename="../MqttClient.py" line="810" /> + <source>Authorisation failed.</source> + <translation>Ошибка авторизации.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Save</source> - <translation>Сохранить</translation> + <location filename="../MqttClient.py" line="812" /> + <source>Access denied by ACL.</source> + <translation>Отказано в доступе к ACL.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to clear the list of received messages</source> - <translation>Очистить список полученных сообщений</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Select to scroll to the most recently received message</source> - <translation>Разрешить прокручивать список до последнего полученного сообщения</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Follow received messages</source> - <translation>Следовать за получаемыми сообщениями</translation> + <location filename="../MqttClient.py" line="820" /> + <location filename="../MqttClient.py" line="814" /> + <source>Unknown error.</source> + <translation>Неизвестная ошибка.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Status</source> - <translation>Статус</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1103"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to activate the status display</source> - <translation>Активировать отображение статуса</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source><b>Broker</b></source> - <translation><b>Брокер</b></translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Version</source> - <translation>Версия</translation> + <location filename="../MqttClient.py" line="816" /> + <source>Error defined by errno.</source> + <translation>Ошибка, определяемая errno.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>-</source> - <translation>-</translation> + <location filename="../MqttClient.py" line="818" /> + <source>Message queue full.</source> + <translation>Очередь сообщений заполнена.</translation> + </message> + </context> + <context> + <name>MqttLogLevelString</name> + <message> + <location filename="../MqttClient.py" line="856" /> + <location filename="../MqttClient.py" line="839" /> + <source>Unknown</source> + <translation>Unknown</translation> + </message> + <message> + <location filename="../MqttClient.py" line="844" /> + <source>Info</source> + <translation>Info</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Timestamp</source> - <translation>Метки времени</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Uptime</source> - <translation>Время работы</translation> + <location filename="../MqttClient.py" line="846" /> + <source>Notice</source> + <translation>Notice</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Subscriptions</source> - <translation>Подписки</translation> + <location filename="../MqttClient.py" line="848" /> + <source>Warning</source> + <translation>Warning</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source><b>Clients</b></source> - <translation><b>Клиенты</b></translation> + <location filename="../MqttClient.py" line="850" /> + <source>Error</source> + <translation>Error</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Connected</source> - <translation>Подключено</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Disconnected</source> - <translation>Отключено</translation> + <location filename="../MqttClient.py" line="852" /> + <source>Debug</source> + <translation>Debug</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Expired</source> - <translation>Завершено</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Maximum</source> - <translation>Максимум</translation> + <location filename="../MqttClient.py" line="854" /> + <source>Logging Disabled</source> + <translation>Ведение журнала запрещено</translation> </message> + </context> + <context> + <name>MqttMonitorPlugin</name> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Total</source> - <translation>Всего</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source><b>Messages</b></source> - <translation><b>Сообщения</b></translation> + <location filename="../../PluginMqttMonitor.py" line="214" /> + <location filename="../../PluginMqttMonitor.py" line="210" /> + <location filename="../../PluginMqttMonitor.py" line="93" /> + <source>MQTT Monitor</source> + <translation>MQTT Monitor</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Sent</source> - <translation>Отправлено</translation> + <location filename="../../PluginMqttMonitor.py" line="115" /> + <source>(package not available)</source> + <translation>(пакет не доступен)</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Received</source> - <translation>Получено</translation> + <location filename="../../PluginMqttMonitor.py" line="121" /> + <source>MQTT</source> + <translation>MQTT - клиентская библиотека Python</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Stored</source> - <translation>Сохранено</translation> + <location filename="../../PluginMqttMonitor.py" line="122" /> + <source>paho-mqtt</source> + <translation>paho-mqtt</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Inflight</source> - <translation>В полете</translation> + <location filename="../../PluginMqttMonitor.py" line="192" /> + <source>The 'paho-mqtt' package is not available.</source> + <translation>Пакет 'paho-mqtt' недоступен.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Retained</source> - <translation>Удержано</translation> + <location filename="../../PluginMqttMonitor.py" line="215" /> + <source>M&QTT Monitor</source> + <translation>M&QTT Monitor</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source><b>PUBLISH Messages</b></source> - <translation><b>PUBLISH сообщения</b></translation> + <location filename="../../PluginMqttMonitor.py" line="216" /> + <source>Alt+Shift+Q</source> + <translation>Alt+Shift+Q</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Dropped</source> - <translation>Сброшено</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source><b>Traffic</b></source> - <translation><b>Трафик</b></translation> + <location filename="../../PluginMqttMonitor.py" line="222" /> + <source>Switch the input focus to the MQTT Monitor window.</source> + <translation>Переключить фокус ввода в окно MQTT Monitor.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Bytes Sent</source> - <translation>Байт отправлено</translation> + <location filename="../../PluginMqttMonitor.py" line="225" /> + <source><b>Activate MQTT Monitor</b><p>This switches the input focus to the MQTT Monitor window.</p></source> + <translation><b>Активировать MQTT Monitor</b><p>Переключение фокуса ввода в окно MQTT Monitor.</p></translation> </message> + </context> + <context> + <name>MqttMonitorWidget</name> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Bytes Received</source> - <translation>Байт принято</translation> + <location filename="../MqttMonitorWidget.py" line="88" /> + <source>All Files (*)</source> + <translation>Все файлы (*)</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source><b>Load</b> (1 min / 5 min / 15 min)</source> - <translation><b>Загрузка</b> (1 мин / 5 мин / 15 мин)</translation> + <location filename="../MqttMonitorWidget.py" line="325" /> + <source>Copy</source> + <translation>Копировать</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>- / - / -</source> - <translation>- / - / -</translation> + <location filename="../MqttMonitorWidget.py" line="331" /> + <source>Select All</source> + <translation>Выбрать все</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Messages Sent</source> - <translation>Сообщений отправлено</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.py" line="337" /> + <source>Clear</source> + <translation>Очистить</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Messages Received</source> - <translation>Сообщений принято</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>PUBLISH Sent</source> - <translation>PUBLISH отправлено</translation> + <location filename="../MqttMonitorWidget.py" line="372" /> + <source>{0} - Session still present</source> + <translation>{0} - Сеанс установлен</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>PUBLISH Received</source> - <translation>PUBLISH принято</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>PUBLISH Dropped</source> - <translation>PUBLISH сброшено</translation> + <location filename="../MqttMonitorWidget.py" line="410" /> + <source>Connection timed out</source> + <translation>Время ожидания соединения истекло</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Connections</source> - <translation>Соединения</translation> + <location filename="../MqttMonitorWidget.py" line="438" /> + <source>Connection to Broker shut down cleanly.</source> + <translation>Соединение с брокером закрыто. Очистка произведена.</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Sockets</source> - <translation>Сокеты</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Log</source> - <translation>Журнал</translation> + <location filename="../MqttMonitorWidget.py" line="498" /> + <source>{0}: {1}</source> + <translation>{0}: {1}</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Max. Log Level:</source> - <translation>Максимальный уровень журнала:</translation> + <location filename="../MqttMonitorWidget.py" line="709" /> + <source>SUBSCRIBE: User Properties for '{0}'</source> + <translation>SUBSCRIBE: Пользовательские свойства '{0}'</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Select the maximum log level to show</source> - <translation>Выберите максимальный уровень журнала для показа</translation> + <location filename="../MqttMonitorWidget.py" line="735" /> + <source>Subscribe to Topic</source> + <translation>Подписаться на тему</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to save the received log messages to a file</source> - <translation>Сохранить полученные сообщения журнала в файл</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Press to clear the list of received log messages</source> - <translation>Очистить список принятых сообщений журнала</translation> + <location filename="../MqttMonitorWidget.py" line="736" /> + <source>Subscriptions to the Status topic '$SYS' shall be done on the 'Status' tab.</source> + <translation>Подписки на тему статуса «$ SYS» должны быть сделаны на вкладке «Статус».</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Select to scroll to the most recently received log message</source> - <translation>Разрешить прокручивать список до последнего полученного сообщения журнала</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.ui" line="0"/> - <source>Follow received log messages</source> - <translation>Следовать за получаемыми сообщениями</translation> + <location filename="../MqttMonitorWidget.py" line="760" /> + <source>UNSUBSCRIBE: User Properties for '{0}'</source> + <translation>UNSUBSCRIBE: Пользовательские свойства '{0}'</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="93"/> - <source>All Files (*)</source> - <translation>Все файлы (*)</translation> + <location filename="../MqttMonitorWidget.py" line="798" /> + <source>PUBLISH: User Properties for '{0}'</source> + <translation>PUBLISH: Пользовательские свойства '{0}'</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="334"/> - <source>Copy</source> - <translation>Копировать</translation> + <location filename="../MqttMonitorWidget.py" line="834" /> + <source>Read Payload from File</source> + <translation>Чтение полезной нагрузки из файла</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="340"/> - <source>Select All</source> - <translation>Выбрать все</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="391"/> - <source>{0} - Session still present</source> - <translation>{0} - Сеанс установлен</translation> + <location filename="../MqttMonitorWidget.py" line="835" /> + <source><p>The file <b>{0}</b> could not be read. Aborting...</p><p>Reason: {1}</p></source> + <translation><p>Не удалось прочитать файл <b>{0}</b>. Отмена...</p><p>Причина: {1}</p></translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="429"/> - <source>Connection timed out</source> - <translation>Время ожидания соединения истекло</translation> + <location filename="../MqttMonitorWidget.py" line="986" /> + <location filename="../MqttMonitorWidget.py" line="970" /> + <location filename="../MqttMonitorWidget.py" line="951" /> + <source>Save Messages</source> + <translation>Сохранить сообщения</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="457"/> - <source>Connection to Broker shut down cleanly.</source> - <translation>Соединение с брокером закрыто. Очистка произведена.</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="517"/> - <source>{0}: {1}</source> - <translation>{0}: {1}</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="737"/> - <source>SUBSCRIBE: User Properties for '{0}'</source> - <translation>SUBSCRIBE: Пользовательские свойства '{0}'</translation> + <location filename="../MqttMonitorWidget.py" line="953" /> + <source>Messages Files (*.txt);;All Files (*)</source> + <translation>Файлы сообщений (*.txt);;Все файлы (*)</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="763"/> - <source>Subscribe to Topic</source> - <translation>Подписаться на тему</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="764"/> - <source>Subscriptions to the Status topic '$SYS' shall be done on the 'Status' tab.</source> - <translation>Подписки на тему статуса «$ SYS» должны быть сделаны на вкладке «Статус».</translation> + <location filename="../MqttMonitorWidget.py" line="1032" /> + <location filename="../MqttMonitorWidget.py" line="971" /> + <source><p>The file <b>{0}</b> already exists. Overwrite it?</p></source> + <translation><p>Файл <b>{0}</b> уже существует. Переписать его?</p></translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="788"/> - <source>UNSUBSCRIBE: User Properties for '{0}'</source> - <translation>UNSUBSCRIBE: Пользовательские свойства '{0}'</translation> + <location filename="../MqttMonitorWidget.py" line="1048" /> + <location filename="../MqttMonitorWidget.py" line="987" /> + <source><p>The file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> + <translation><p>Файл <b>{0}</b> не может быть записан.</p><p>Причина: {1}</p></translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="826"/> - <source>PUBLISH: User Properties for '{0}'</source> - <translation>PUBLISH: Пользовательские свойства '{0}'</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="862"/> - <source>Read Payload from File</source> - <translation>Чтение полезной нагрузки из файла</translation> + <location filename="../MqttMonitorWidget.py" line="1047" /> + <location filename="../MqttMonitorWidget.py" line="1031" /> + <location filename="../MqttMonitorWidget.py" line="1012" /> + <source>Save Log Messages</source> + <translation>Сохранить сообщения журнала</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="863"/> - <source><p>The file <b>{0}</b> could not be read. Aborting...</p><p>Reason: {1}</p></source> - <translation><p>Не удалось прочитать файл <b>{0}</b>. Отмена...</p><p>Причина: {1}</p></translation> + <location filename="../MqttMonitorWidget.py" line="1014" /> + <source>Log Files (*.log);;All Files (*)</source> + <translation>Файлы журнала (*.log);;Все файлы (*)</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1014"/> - <location filename="../MqttMonitorWidget.py" line="998"/> - <location filename="../MqttMonitorWidget.py" line="979"/> - <source>Save Messages</source> - <translation>Сохранить сообщения</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.py" line="1068" /> + <source>Unsubscribe</source> + <translation>Отписаться</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="981"/> - <source>Messages Files (*.txt);;All Files (*)</source> - <translation>Файлы сообщений (*.txt);;Все файлы (*)</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1060"/> - <location filename="../MqttMonitorWidget.py" line="999"/> - <source><p>The file <b>{0}</b> already exists. Overwrite it?</p></source> - <translation><p>Файл <b>{0}</b> уже существует. Переписать его?</p></translation> + <location filename="../MqttMonitorWidget.py" line="1070" /> + <source>Press to deactivate the status display</source> + <translation>Деактивировать отображение статуса</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1076"/> - <location filename="../MqttMonitorWidget.py" line="1015"/> - <source><p>The file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> - <translation><p>Файл <b>{0}</b> не может быть записан.</p><p>Причина: {1}</p></translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1075"/> - <location filename="../MqttMonitorWidget.py" line="1059"/> - <location filename="../MqttMonitorWidget.py" line="1040"/> - <source>Save Log Messages</source> - <translation>Сохранить сообщения журнала</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.py" line="1073" /> + <source>Subscribe</source> + <translation>Подписаться</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1042"/> - <source>Log Files (*.log);;All Files (*)</source> - <translation>Файлы журнала (*.log);;Все файлы (*)</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.py" line="1075" /> + <source>Press to activate the status display</source> + <translation>Активировать отображение статуса</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1098"/> - <source>Press to deactivate the status display</source> - <translation>Деактивировать отображение статуса</translation> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="1265"/> - <source>QoS: {0} + <location filename="../MqttMonitorWidget.py" line="1237" /> + <source>QoS: {0} </source> - <translation>QoS: {0} + <translation>QoS: {0} </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1269"/> - <source>Retained Message + <location filename="../MqttMonitorWidget.py" line="1241" /> + <source>Retained Message </source> - <translation>Сохраненное сообщение + <translation>Сохраненное сообщение </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1273"/> - <source>Properties: + <location filename="../MqttMonitorWidget.py" line="1245" /> + <source>Properties: </source> - <translation>Свойства: + <translation>Свойства: </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1277"/> - <source>{0}: {1} + <location filename="../MqttMonitorWidget.py" line="1249" /> + <source>{0}: {1} </source> - <comment>property name, property value</comment> - <translation>{0}: {1} + <comment>property name, property value</comment> + <translation>{0}: {1} </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1283"/> - <source>Message: + <location filename="../MqttMonitorWidget.py" line="1255" /> + <source>Message: </source> - <translation>Сообщение: + <translation>Сообщение: </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1290"/> - <source><empty></source> - <translation><empty></translation> + <location filename="../MqttMonitorWidget.py" line="1262" /> + <source><empty></source> + <translation><empty></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1468" /> + <location filename="../MqttMonitorWidget.py" line="1419" /> + <source>Connecting to {0}:{1} ...</source> + <translation>Соединение с {0}:{1} ...</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1613" /> + <source>{0} Bytes</source> + <translation>{0} байтов</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1618" /> + <source>{0} KiB</source> + <translation>{0} KiB</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1496"/> - <location filename="../MqttMonitorWidget.py" line="1447"/> - <source>Connecting to {0}:{1} ...</source> - <translation>Соединение с {0}:{1} ...</translation> + <location filename="../MqttMonitorWidget.py" line="1623" /> + <source>{0} MiB</source> + <translation>{0} MiB</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1628" /> + <source>{0} GiB</source> + <translation>{0} GiB</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1641"/> - <source>{0} Bytes</source> - <translation>{0} байтов</translation> + <location filename="../MqttMonitorWidget.py" line="1633" /> + <source>{0} TiB</source> + <translation>{0} TiB</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1646"/> - <source>{0} KiB</source> - <translation>{0} KiB</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source><b>MQTT Monitor</b></source> + <translation><b>MQTT Monitor</b></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Broker</source> + <translation>Брокер</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1651"/> - <source>{0} MiB</source> - <translation>{0} MiB</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to switch the mode between profiles and direct connection</source> + <translation>Переключить режим подключения - профили или прямое соединение</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Select the profile to be used to connect to the broker</source> + <translation>Выберите профиль, который будет использоваться для соединения с брокером</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1656"/> - <source>{0} GiB</source> - <translation>{0} GiB</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Enter the host name of the broker</source> + <translation>Введите имя хоста брокера</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Enter the broker port to connect to</source> + <translation>Задайте порт брокера для соединения</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to open a dialog to enter connection options</source> + <translation>Открыть диалог ввода параметров соединения</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1661"/> - <source>{0} TiB</source> - <translation>{0} TiB</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to connect to/disconnect from the broker</source> + <translation>Подключиться к брокеру/отключиться от брокера</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Select to clear a previously set last will message</source> + <translation>Разрешить очищать установленные ранее сообщения 'последней воли'</translation> </message> -</context> -<context> - <name>MqttPage</name> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Pub/Sub</source> + <translation>Подписки/Публикации</translation> + </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source><b>Configure MQTT Monitor</b></source> - <translation><b>Настройка MQTT Monitor</b></translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Topic:</source> + <translation>Тема:</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Enter the topic</source> + <translation>Введите тему</translation> </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source>Default MQTT Protocol</source> - <translation>Протокол MQTT по умолчанию</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>QoS:</source> + <translation>QoS:</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Enter the desired QoS value</source> + <translation>Задайте желаемое значение уровня обслуживания QoS</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to subscribe to the given topic</source> + <translation>Подписаться на данную тему</translation> + </message> + <message> + <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>Разрешить редактировать пользовательские свойства</translation> </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source>Select to use the MQTT 3.1 protocol</source> - <translation>Выбор протокола MQTT 3.1</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Select the topic to unsubscribe</source> + <translation>Выберите тему для отписки</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to unsubscribe the selected topic</source> + <translation>Отписаться от выбранной темы</translation> </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source>v 3.1</source> - <translation>вер. 3.1</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Publish</source> + <translation>Опубликовать</translation> </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source>Select to use the MQTT 3.1.1 protocol</source> - <translation>Выбор протокола MQTT 3.1.1</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Enter the topic to publish to</source> + <translation>Введите тему для публикации</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Select to retain the published message</source> + <translation>Разрешить удерживать опубликованное сообщение</translation> </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source>v 3.1.1</source> - <translation>вер. 3.1.1</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Retain</source> + <translation>Удерживать</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Enter the string data to be sent</source> + <translation>Введите строку данных для отправки</translation> </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source>Select to use the MQTT 5.0 protocol</source> - <translation>Выбор протокола MQTT 5.0</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Payload File:</source> + <translation>Файл полезной нагрузки:</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Enter the full path to a file containing the message payload</source> + <translation>Введите полный путь к файлу, содержащему полезную нагрузку сообщения</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to clear the publish data</source> + <translation>Очистить данные публикации</translation> </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source>v 5.0</source> - <translation>вер. 5.0</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to clear the retained messages of the selected topic</source> + <translation>Разрешить очищать сохраненные сообщения выбранной темы</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Clear Retained</source> + <translation>Очищать сохраненные</translation> </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source>Recent Brokers</source> - <translation>Недавние брокеры</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Select to clear the publish data after the message was published</source> + <translation>Разрешить очищать данные публикации после опубликования сообщения</translation> </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source>Number of recent brokers:</source> - <translation>Количество недавних брокеров:</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Clear when sent</source> + <translation>Очищать после отправки</translation> </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source>Enter the number of recent brokers to remember</source> - <translation>Задайте количество брокеров для запоминания</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Properties</source> + <translation>Свойства</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>MQTT V5 Properties</source> + <translation>Свойства MQTT вер. 5</translation> </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source>Recent Topics</source> - <translation>Недавние темы</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Messages</source> + <translation>Сообщения</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to save the received messages to a file</source> + <translation>Сохранить полученные сообщения в файл</translation> </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source>Number of recent topics:</source> - <translation>Количество недавних тем:</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Save</source> + <translation>Сохранить</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to clear the list of received messages</source> + <translation>Очистить список полученных сообщений</translation> </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> - <source>Enter the number of recent topics to remember</source> - <translation>Задайте количество тем для запоминания</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Select to scroll to the most recently received message</source> + <translation>Разрешить прокручивать список до последнего полученного сообщения</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Follow received messages</source> + <translation>Следовать за получаемыми сообщениями</translation> </message> -</context> -<context> - <name>MqttReasonCodeNames</name> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Status</source> + <translation>Статус</translation> + </message> <message> - <location filename="../MqttReasonCodes.py" line="15"/> - <source>Success</source> - <translation>Успешно</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source><b>Broker</b></source> + <translation><b>Брокер</b></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Version</source> + <translation>Версия</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="24"/> - <source>Normal disconnection</source> - <translation>Нормальное разъединение</translation> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="27"/> - <source>Granted QoS 0</source> - <translation>Предоставлен QoS 0</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>-</source> + <translation>-</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="32"/> - <source>Granted QoS 1</source> - <translation>Предоставлен QoS 1</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Timestamp</source> + <translation>Метки времени</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Uptime</source> + <translation>Время работы</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="37"/> - <source>Granted QoS 2</source> - <translation>Предоставлен QoS 2</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Subscriptions</source> + <translation>Подписки</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="42"/> - <source>Disconnect with will message</source> - <translation>Отключить посредством сообщения 'последней воли'</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source><b>Clients</b></source> + <translation><b>Клиенты</b></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Connected</source> + <translation>Подключено</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Disconnected</source> + <translation>Отключено</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="47"/> - <source>No matching subscribers</source> - <translation>Нет соответствующих подписчиков</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Expired</source> + <translation>Завершено</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Maximum</source> + <translation>Максимум</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Total</source> + <translation>Всего</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source><b>Messages</b></source> + <translation><b>Сообщения</b></translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="53"/> - <source>No subscription found</source> - <translation>Подписка не найдена</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Sent</source> + <translation>Отправлено</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Received</source> + <translation>Получено</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="58"/> - <source>Continue authentication</source> - <translation>Продолжить аутентификацию</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Stored</source> + <translation>Сохранено</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="63"/> - <source>Re-authenticate</source> - <translation>Повторить аутентификацию</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Inflight</source> + <translation>В полете</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Retained</source> + <translation>Удержано</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source><b>PUBLISH Messages</b></source> + <translation><b>PUBLISH сообщения</b></translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="68"/> - <source>Unspecified error</source> - <translation>Неопределенная ошибка</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Dropped</source> + <translation>Сброшено</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source><b>Traffic</b></source> + <translation><b>Трафик</b></translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="78"/> - <source>Malformed packet</source> - <translation>Плохо сформированный пакет</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Bytes Sent</source> + <translation>Байт отправлено</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Bytes Received</source> + <translation>Байт принято</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source><b>Load</b> (1 min / 5 min / 15 min)</source> + <translation><b>Загрузка</b> (1 мин / 5 мин / 15 мин)</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="84"/> - <source>Protocol error</source> - <translation>Ошибка протокола</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>- / - / -</source> + <translation>- / - / -</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="90"/> - <source>Implementation specific error</source> - <translation>Ошибка конкретной реализации</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Messages Sent</source> + <translation>Сообщений отправлено</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="102"/> - <source>Unsupported protocol version</source> - <translation>Неподдерживаемая версия протокола</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Messages Received</source> + <translation>Сообщений принято</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="107"/> - <source>Client identifier not valid</source> - <translation>Недействительный идентификатор клиента</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>PUBLISH Sent</source> + <translation>PUBLISH отправлено</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="112"/> - <source>Bad user name or password</source> - <translation>Неверное имя пользователя или пароль</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>PUBLISH Received</source> + <translation>PUBLISH принято</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>PUBLISH Dropped</source> + <translation>PUBLISH сброшено</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Connections</source> + <translation>Соединения</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Sockets</source> + <translation>Сокеты</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="117"/> - <source>Not authorized</source> - <translation>Не авторизован</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Log</source> + <translation>Журнал</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Max. Log Level:</source> + <translation>Максимальный уровень журнала:</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="127"/> - <source>Server unavailable</source> - <translation>Сервер недоступен</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Select the maximum log level to show</source> + <translation>Выберите максимальный уровень журнала для показа</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="132"/> - <source>Server busy</source> - <translation>Сервер занят</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to save the received log messages to a file</source> + <translation>Сохранить полученные сообщения журнала в файл</translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to clear the list of received log messages</source> + <translation>Очистить список принятых сообщений журнала</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="138"/> - <source>Banned</source> - <translation>Запрещено</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Select to scroll to the most recently received log message</source> + <translation>Разрешить прокручивать список до последнего полученного сообщения журнала</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="143"/> - <source>Server shutting down</source> - <translation>Выключение сервера</translation> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Follow received log messages</source> + <translation>Следовать за получаемыми сообщениями</translation> + </message> + </context> + <context> + <name>MqttPage</name> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source><b>Configure MQTT Monitor</b></source> + <translation><b>Настройка MQTT Monitor</b></translation> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Default MQTT Protocol</source> + <translation>Протокол MQTT по умолчанию</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="148"/> - <source>Bad authentication method</source> - <translation>Неверный метод аутентификации</translation> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Select to use the MQTT 3.1 protocol</source> + <translation>Выбор протокола MQTT 3.1</translation> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>v 3.1</source> + <translation>вер. 3.1</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="153"/> - <source>Keep alive timeout</source> - <translation>Период сохранения активности</translation> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Select to use the MQTT 3.1.1 protocol</source> + <translation>Выбор протокола MQTT 3.1.1</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="158"/> - <source>Session taken over</source> - <translation>Сессия завершена</translation> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>v 3.1.1</source> + <translation>вер. 3.1.1</translation> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Select to use the MQTT 5.0 protocol</source> + <translation>Выбор протокола MQTT 5.0</translation> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>v 5.0</source> + <translation>вер. 5.0</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="163"/> - <source>Topic filter invalid</source> - <translation>Неверный фильтр тем</translation> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Recent Brokers</source> + <translation>Недавние брокеры</translation> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Number of recent brokers:</source> + <translation>Количество недавних брокеров:</translation> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Enter the number of recent brokers to remember</source> + <translation>Задайте количество брокеров для запоминания</translation> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Recent Topics</source> + <translation>Недавние темы</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="170"/> - <source>Topic name invalid</source> - <translation>Недопустимое имя темы</translation> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Number of recent topics:</source> + <translation>Количество недавних тем:</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="178"/> - <source>Packet identifier in use</source> - <translation>Идентификатор пакета используется</translation> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Enter the number of recent topics to remember</source> + <translation>Задайте количество тем для запоминания</translation> + </message> + </context> + <context> + <name>MqttReasonCodeNames</name> + <message> + <location filename="../MqttReasonCodes.py" line="15" /> + <source>Success</source> + <translation>Успешно</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="186"/> - <source>Packet identifier not found</source> - <translation>Идентификатор пакета не найден</translation> + <location filename="../MqttReasonCodes.py" line="24" /> + <source>Normal disconnection</source> + <translation>Нормальное разъединение</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="27" /> + <source>Granted QoS 0</source> + <translation>Предоставлен QoS 0</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="191"/> - <source>Receive maximum exceeded</source> - <translation>Превышено максимальное количество</translation> + <location filename="../MqttReasonCodes.py" line="32" /> + <source>Granted QoS 1</source> + <translation>Предоставлен QoS 1</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="37" /> + <source>Granted QoS 2</source> + <translation>Предоставлен QoS 2</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="196"/> - <source>Topic alias invalid</source> - <translation>Недействительный псевдоним темы</translation> + <location filename="../MqttReasonCodes.py" line="42" /> + <source>Disconnect with will message</source> + <translation>Отключить посредством сообщения 'последней воли'</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="47" /> + <source>No matching subscribers</source> + <translation>Нет соответствующих подписчиков</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="53" /> + <source>No subscription found</source> + <translation>Подписка не найдена</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="201"/> - <source>Packet too large</source> - <translation>Слишком большой пакет</translation> + <location filename="../MqttReasonCodes.py" line="58" /> + <source>Continue authentication</source> + <translation>Продолжить аутентификацию</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="63" /> + <source>Re-authenticate</source> + <translation>Повторить аутентификацию</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="207"/> - <source>Message rate too high</source> - <translation>Скорость получения сообщений слишком высока</translation> + <location filename="../MqttReasonCodes.py" line="68" /> + <source>Unspecified error</source> + <translation>Неопределенная ошибка</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="212"/> - <source>Quota exceeded</source> - <translation>Превышена квота</translation> + <location filename="../MqttReasonCodes.py" line="78" /> + <source>Malformed packet</source> + <translation>Плохо сформированный пакет</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="221"/> - <source>Administrative action</source> - <translation>Административное действие</translation> + <location filename="../MqttReasonCodes.py" line="84" /> + <source>Protocol error</source> + <translation>Ошибка протокола</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="90" /> + <source>Implementation specific error</source> + <translation>Ошибка конкретной реализации</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="226"/> - <source>Payload format invalid</source> - <translation>Неверный формат полезной нагрузки</translation> + <location filename="../MqttReasonCodes.py" line="102" /> + <source>Unsupported protocol version</source> + <translation>Неподдерживаемая версия протокола</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="107" /> + <source>Client identifier not valid</source> + <translation>Недействительный идентификатор клиента</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="112" /> + <source>Bad user name or password</source> + <translation>Неверное имя пользователя или пароль</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="117" /> + <source>Not authorized</source> + <translation>Не авторизован</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="233"/> - <source>Retain not supported</source> - <translation>Сохранение не поддерживается</translation> + <location filename="../MqttReasonCodes.py" line="127" /> + <source>Server unavailable</source> + <translation>Сервер недоступен</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="132" /> + <source>Server busy</source> + <translation>Сервер занят</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="239"/> - <source>QoS not supported</source> - <translation>QoS не поддерживается</translation> + <location filename="../MqttReasonCodes.py" line="138" /> + <source>Banned</source> + <translation>Запрещено</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="245"/> - <source>Use another server</source> - <translation>Используйте другой сервер</translation> + <location filename="../MqttReasonCodes.py" line="143" /> + <source>Server shutting down</source> + <translation>Выключение сервера</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="148" /> + <source>Bad authentication method</source> + <translation>Неверный метод аутентификации</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="251"/> - <source>Server moved</source> - <translation>Сервер перемещен</translation> + <location filename="../MqttReasonCodes.py" line="153" /> + <source>Keep alive timeout</source> + <translation>Период сохранения активности</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="158" /> + <source>Session taken over</source> + <translation>Сессия завершена</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="257"/> - <source>Shared subscription not supported</source> - <translation>Общая подписка не поддерживается</translation> + <location filename="../MqttReasonCodes.py" line="163" /> + <source>Topic filter invalid</source> + <translation>Неверный фильтр тем</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="170" /> + <source>Topic name invalid</source> + <translation>Недопустимое имя темы</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="178" /> + <source>Packet identifier in use</source> + <translation>Идентификатор пакета используется</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="262"/> - <source>Connection rate exceeded</source> - <translation>Превышена скорость соединения</translation> + <location filename="../MqttReasonCodes.py" line="186" /> + <source>Packet identifier not found</source> + <translation>Идентификатор пакета не найден</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="191" /> + <source>Receive maximum exceeded</source> + <translation>Превышено максимальное количество</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="268"/> - <source>Maximum connect time</source> - <translation>Максимальное время соединения</translation> + <location filename="../MqttReasonCodes.py" line="196" /> + <source>Topic alias invalid</source> + <translation>Недействительный псевдоним темы</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="273"/> - <source>Subscription identifiers not supported</source> - <translation>Идентификаторы подписки не поддерживаются</translation> + <location filename="../MqttReasonCodes.py" line="201" /> + <source>Packet too large</source> + <translation>Слишком большой пакет</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="278"/> - <source>Wildcard subscription not supported</source> - <translation>Подписка с подстановочными знаками не поддерживается</translation> + <location filename="../MqttReasonCodes.py" line="207" /> + <source>Message rate too high</source> + <translation>Скорость получения сообщений слишком высока</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="212" /> + <source>Quota exceeded</source> + <translation>Превышена квота</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="298"/> - <source>Unknown result code ({0})</source> - <translation>Неизвестный код результата ({0})</translation> + <location filename="../MqttReasonCodes.py" line="221" /> + <source>Administrative action</source> + <translation>Административное действие</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="226" /> + <source>Payload format invalid</source> + <translation>Неверный формат полезной нагрузки</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="233" /> + <source>Retain not supported</source> + <translation>Сохранение не поддерживается</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="239" /> + <source>QoS not supported</source> + <translation>QoS не поддерживается</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="307"/> - <source>Unknown result code ({0}) for packet type '{1}'</source> - <translation>Неизвестный код результата ({0}) для типа пакета '{1}'</translation> + <location filename="../MqttReasonCodes.py" line="245" /> + <source>Use another server</source> + <translation>Используйте другой сервер</translation> </message> -</context> -<context> - <name>MqttUserPropertiesEditor</name> <message> - <location filename="../MqttUserPropertiesEditor.ui" line="0"/> - <source>User Properties</source> - <translation>Пользовательские свойства</translation> + <location filename="../MqttReasonCodes.py" line="251" /> + <source>Server moved</source> + <translation>Сервер перемещен</translation> </message> <message> - <location filename="../MqttUserPropertiesEditor.ui" line="0"/> - <source>Key</source> - <translation>Ключ</translation> + <location filename="../MqttReasonCodes.py" line="257" /> + <source>Shared subscription not supported</source> + <translation>Общая подписка не поддерживается</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="262" /> + <source>Connection rate exceeded</source> + <translation>Превышена скорость соединения</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="268" /> + <source>Maximum connect time</source> + <translation>Максимальное время соединения</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="273" /> + <source>Subscription identifiers not supported</source> + <translation>Идентификаторы подписки не поддерживаются</translation> </message> <message> - <location filename="../MqttUserPropertiesEditor.ui" line="0"/> - <source>Value</source> - <translation>Значение</translation> + <location filename="../MqttReasonCodes.py" line="278" /> + <source>Wildcard subscription not supported</source> + <translation>Подписка с подстановочными знаками не поддерживается</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="298" /> + <source>Unknown result code ({0})</source> + <translation>Неизвестный код результата ({0})</translation> </message> <message> - <location filename="../MqttUserPropertiesEditor.ui" line="0"/> - <source>Press to add a new empty row</source> - <translation>Добавить новую пустую строку</translation> + <location filename="../MqttReasonCodes.py" line="307" /> + <source>Unknown result code ({0}) for packet type '{1}'</source> + <translation>Неизвестный код результата ({0}) для типа пакета '{1}'</translation> + </message> + </context> + <context> + <name>MqttUserPropertiesEditor</name> + <message> + <location filename="../MqttUserPropertiesEditor.ui" line="0" /> + <source>User Properties</source> + <translation>Пользовательские свойства</translation> </message> <message> - <location filename="../MqttUserPropertiesEditor.ui" line="0"/> - <source>Press to delete the selected properties</source> - <translation>Удалить выбранные свойства</translation> + <location filename="../MqttUserPropertiesEditor.ui" line="0" /> + <source>Key</source> + <translation>Ключ</translation> </message> <message> - <location filename="../MqttUserPropertiesEditor.ui" line="0"/> - <source>Press to delete all properties</source> - <translation>Удалить все свойства</translation> + <location filename="../MqttUserPropertiesEditor.ui" line="0" /> + <source>Value</source> + <translation>Значение</translation> + </message> + <message> + <location filename="../MqttUserPropertiesEditor.ui" line="0" /> + <source>Press to add a new empty row</source> + <translation>Добавить новую пустую строку</translation> </message> -</context> -<context> + <message> + <location filename="../MqttUserPropertiesEditor.ui" line="0" /> + <source>Press to delete the selected properties</source> + <translation>Удалить выбранные свойства</translation> + </message> + <message> + <location filename="../MqttUserPropertiesEditor.ui" line="0" /> + <source>Press to delete all properties</source> + <translation>Удалить все свойства</translation> + </message> + </context> + <context> <name>MqttUserPropertiesEditorDialog</name> <message> - <location filename="../MqttUserPropertiesEditor.py" line="142"/> - <source>User Properties</source> - <translation>Пользовательские свойства</translation> + <location filename="../MqttUserPropertiesEditor.py" line="142" /> + <source>User Properties</source> + <translation>Пользовательские свойства</translation> </message> -</context> + </context> </TS>
--- a/PluginMqttMonitor.epj Sat Jan 06 13:11:01 2024 +0100 +++ b/PluginMqttMonitor.epj Fri Apr 19 15:15:01 2024 +0200 @@ -1,7 +1,7 @@ { "header": { "comment": "eric project file for project PluginMqttMonitor", - "copyright": "Copyright (C) 2023 Detlev Offenbach, detlev@die-offenbachs.de" + "copyright": "Copyright (C) 2024 Detlev Offenbach, detlev@die-offenbachs.de" }, "project": { "AUTHOR": "Detlev Offenbach", @@ -68,7 +68,7 @@ "DocstringType": "eric_black", "EnabledCheckerCategories": "C, D, E, I, L, M, NO, N, Y, U, W", "ExcludeFiles": "*/Ui_*.py", - "ExcludeMessages": "C101,E203,E265,E266,E305,E402,M201,M301,M302,M303,M304,M305,M306,M307,M308,M311,M312,M313,M314,M315,M321,M701,M702,M811,M834,M852,N802,N803,N807,N808,N821,W293,W503,Y119,Y401,Y402", + "ExcludeMessages": "C101,E203,E265,E266,E305,E402,M201,M301,M302,M303,M304,M305,M306,M307,M308,M311,M312,M313,M314,M315,M321,M701,M702,M811,M834,M852,N802,N803,N807,N808,N821,U101,W293,W503,Y119,Y401,Y402", "FixCodes": "", "FixIssues": false, "FutureChecker": "", @@ -367,4 +367,4 @@ "VCSOTHERDATA": {}, "VERSION": "" } -} \ No newline at end of file +}
--- a/PluginMqttMonitor.py Sat Jan 06 13:11:01 2024 +0100 +++ b/PluginMqttMonitor.py Fri Apr 19 15:15:01 2024 +0200 @@ -39,7 +39,7 @@ author = "Detlev Offenbach <detlev@die-offenbachs.de>" autoactivate = True deactivateable = True -version = "10.5.0" +version = "11.0.0" className = "MqttMonitorPlugin" packageName = "MqttMonitor" shortDescription = "Plug-in implementing a tool to connect to a MQTT broker" @@ -61,12 +61,12 @@ def createMqttPage( - configDlg, # noqa: U100 + _configDlg, ): """ Module function to create the autocompletion configuration page. - @param configDlg reference to the configuration dialog + @param _configDlg reference to the configuration dialog (unused) @type ConfigurationWidget @return reference to the configuration page @rtype AutoCompletionRopePage @@ -365,7 +365,7 @@ try: import paho.mqtt # __IGNORE_WARNING__ except ImportError: - pipInstall(["paho-mqtt"]) + pipInstall(["paho-mqtt>=2.0.0"]) #