Tue, 04 Jul 2023 15:13:37 +0200
- Changed the data shown on the status tab to use localized values.
- Corrected some code style issues.
--- a/ChangeLog Sat Dec 31 16:27:45 2022 +0100 +++ b/ChangeLog Tue Jul 04 15:13:37 2023 +0200 @@ -1,5 +1,8 @@ ChangeLog --------- +Version 10.4.1 +- changed the data shown on the status tab to use localized values + Version 10.4.0 - adapted some import statements to eric 23.1 and newer
--- a/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttClient.html Sat Dec 31 16:27:45 2022 +0100 +++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttClient.html Tue Jul 04 15:13:37 2023 +0200 @@ -154,51 +154,51 @@ </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></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> +<td></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> +<td></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></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></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> +<td></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></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> +<td></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></td> </tr> <tr> <td><a href="#MqttClient.__onSubscribeV5">__onSubscribeV5</a></td> -<td>Private method to handle a subscribe event (MQTT v5.0).</td> +<td></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> +<td></td> </tr> <tr> <td><a href="#MqttClient.__onUnsubscribeV5">__onUnsubscribeV5</a></td> -<td>Private method to handle an unsubscribe event (MQTT v5.0).</td> +<td></td> </tr> <tr> <td><a href="#MqttClient.clearLastWill">clearLastWill</a></td> @@ -392,312 +392,50 @@ <h4>MqttClient.__onConnectV3</h4> <b>__onConnectV3</b>(<i>client, userdata, flags, rc, properties=None</i>) -<p> - Private method to handle the connect to the broker (MQTT v3.1 and v3.1.1). -</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> -<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) -</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> -<dd> -reference to the client object -</dd> -<dt><i>userdata</i> (Any)</dt> -<dd> -user data -</dd> -<dt><i>flags</i> (dict)</dt> -<dd> -dictionary containing the 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> -<dd> -optional properties (defaults to None) -</dd> -</dl> <a NAME="MqttClient.__onDisconnectedV3" ID="MqttClient.__onDisconnectedV3"></a> <h4>MqttClient.__onDisconnectedV3</h4> <b>__onDisconnectedV3</b>(<i>client, userdata, rc</i>) -<p> - Private method to handle the disconnect from the broker (MQTT v3.1 and v3.1.1). -</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>rc</i> (int)</dt> -<dd> -result code -</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> -<dd> -reference to the client object -</dd> -<dt><i>userdata</i> (Any)</dt> -<dd> -user data -</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> -<dd> -optional properties (defaults to None) -</dd> -</dl> <a NAME="MqttClient.__onLog" ID="MqttClient.__onLog"></a> <h4>MqttClient.__onLog</h4> <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). -</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>level</i> (int)</dt> -<dd> -severity of the log message -</dd> -<dt><i>buf</i> (str)</dt> -<dd> -log message -</dd> -</dl> <a NAME="MqttClient.__onMessageV3" ID="MqttClient.__onMessageV3"></a> <h4>MqttClient.__onMessageV3</h4> <b>__onMessageV3</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). -</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>message</i> (paho.mqtt.MQTTMessage)</dt> -<dd> -received message object -</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> -<dd> -reference to the client object -</dd> -<dt><i>userdata</i> (Any)</dt> -<dd> -user data -</dd> -<dt><i>message</i> (paho.mqtt.MQTTMessage)</dt> -<dd> -received message object -</dd> -</dl> <a NAME="MqttClient.__onPublish" ID="MqttClient.__onPublish"></a> <h4>MqttClient.__onPublish</h4> <b>__onPublish</b>(<i>client, userdata, mid</i>) -<p> - Private method to handle the publishing of a message (MQTT v3.1, v3.1.1 - and 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> -</dl> <a NAME="MqttClient.__onSubscribeV3" ID="MqttClient.__onSubscribeV3"></a> <h4>MqttClient.__onSubscribeV3</h4> <b>__onSubscribeV3</b>(<i>client, userdata, mid, grantedQos</i>) -<p> - Private method to handle a subscribe event (MQTT v3.1 and v3.1.1). -</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>grantedQos</i> (list of int)</dt> -<dd> -list of granted QoS for each subscription request -</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> -<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>reasonCodes</i> (list of paho.mqtt.ReasonCodes)</dt> -<dd> -list of reason code for each subscribed topic -</dd> -<dt><i>properties</i> (dict (optional))</dt> -<dd> -optional properties (defaults to None) -</dd> -</dl> <a NAME="MqttClient.__onUnsubscribeV3" ID="MqttClient.__onUnsubscribeV3"></a> <h4>MqttClient.__onUnsubscribeV3</h4> <b>__onUnsubscribeV3</b>(<i>client, userdata, mid</i>) -<p> - Private method to handle an unsubscribe event (MQTT v3.1 and v3.1.1). -</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> -</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> -</dl> <a NAME="MqttClient.clearLastWill" ID="MqttClient.clearLastWill"></a> <h4>MqttClient.clearLastWill</h4> <b>clearLastWill</b>(<i></i>)
--- a/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttMonitorWidget.html Sat Dec 31 16:27:45 2022 +0100 +++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttMonitorWidget.html Tue Jul 04 15:13:37 2023 +0200 @@ -107,6 +107,26 @@ <td>Private slot to show the broker status label with some text for 5 seconds.</td> </tr> <tr> +<td><a href="#MqttMonitorWidget.__formatBrokerStatusValue">__formatBrokerStatusValue</a></td> +<td>Private method to format the value reported for a topic.</td> +</tr> +<tr> +<td><a href="#MqttMonitorWidget.__formatData">__formatData</a></td> +<td>Private method to format the uptime string.</td> +</tr> +<tr> +<td><a href="#MqttMonitorWidget.__formatFloat">__formatFloat</a></td> +<td>Private method to format the uptime string.</td> +</tr> +<tr> +<td><a href="#MqttMonitorWidget.__formatInt">__formatInt</a></td> +<td>Private method to format the uptime string.</td> +</tr> +<tr> +<td><a href="#MqttMonitorWidget.__formatUptime">__formatUptime</a></td> +<td>Private method to format the uptime string.</td> +</tr> +<tr> <td><a href="#MqttMonitorWidget.__handleBrokerLoadStatusMessage">__handleBrokerLoadStatusMessage</a></td> <td>Private method to append a received message to the output.</td> </tr> @@ -528,6 +548,140 @@ message to be shown </dd> </dl> +<a NAME="MqttMonitorWidget.__formatBrokerStatusValue" ID="MqttMonitorWidget.__formatBrokerStatusValue"></a> +<h4>MqttMonitorWidget.__formatBrokerStatusValue</h4> +<b>__formatBrokerStatusValue</b>(<i>topic, value</i>) + +<p> + Private method to format the value reported for a topic. +</p> +<dl> + +<dt><i>topic</i> (str)</dt> +<dd> +topic name +</dd> +<dt><i>value</i> (str)</dt> +<dd> +value of the topic +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +reformatted value string +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +str +</dd> +</dl> +<a NAME="MqttMonitorWidget.__formatData" ID="MqttMonitorWidget.__formatData"></a> +<h4>MqttMonitorWidget.__formatData</h4> +<b>__formatData</b>(<i>valStr</i>) + +<p> + Private method to format the uptime string. +</p> +<dl> + +<dt><i>valStr</i> (str)</dt> +<dd> +string to be formatted +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +formatted string +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +str +</dd> +</dl> +<a NAME="MqttMonitorWidget.__formatFloat" ID="MqttMonitorWidget.__formatFloat"></a> +<h4>MqttMonitorWidget.__formatFloat</h4> +<b>__formatFloat</b>(<i>valStr</i>) + +<p> + Private method to format the uptime string. +</p> +<dl> + +<dt><i>valStr</i> (str)</dt> +<dd> +string to be formatted +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +formatted string +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +str +</dd> +</dl> +<a NAME="MqttMonitorWidget.__formatInt" ID="MqttMonitorWidget.__formatInt"></a> +<h4>MqttMonitorWidget.__formatInt</h4> +<b>__formatInt</b>(<i>valStr</i>) + +<p> + Private method to format the uptime string. +</p> +<dl> + +<dt><i>valStr</i> (str)</dt> +<dd> +string to be formatted +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +formatted string +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +str +</dd> +</dl> +<a NAME="MqttMonitorWidget.__formatUptime" ID="MqttMonitorWidget.__formatUptime"></a> +<h4>MqttMonitorWidget.__formatUptime</h4> +<b>__formatUptime</b>(<i>valStr</i>) + +<p> + Private method to format the uptime string. +</p> +<dl> + +<dt><i>valStr</i> (str)</dt> +<dd> +string to be formatted +</dd> +</dl> +<dl> +<dt>Return:</dt> +<dd> +formatted string +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +str +</dd> +</dl> <a NAME="MqttMonitorWidget.__handleBrokerLoadStatusMessage" ID="MqttMonitorWidget.__handleBrokerLoadStatusMessage"></a> <h4>MqttMonitorWidget.__handleBrokerLoadStatusMessage</h4> <b>__handleBrokerLoadStatusMessage</b>(<i>topic, payloadStr</i>)
--- a/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.PluginMqttMonitor.html Sat Dec 31 16:27:45 2022 +0100 +++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.PluginMqttMonitor.html Tue Jul 04 15:13:37 2023 +0200 @@ -31,7 +31,7 @@ <tr> <td><a href="#createMqttPage">createMqttPage</a></td> -<td>Module function to create the autocompletion configuration page.</td> +<td></td> </tr> <tr> <td><a href="#exeDisplayData">exeDisplayData</a></td> @@ -225,28 +225,6 @@ <h2>createMqttPage</h2> <b>createMqttPage</b>(<i>configDlg</i>) -<p> - Module function to create the autocompletion configuration page. -</p> -<dl> - -<dt><i>configDlg</i> (ConfigurationWidget)</dt> -<dd> -reference to the configuration dialog -</dd> -</dl> -<dl> -<dt>Return:</dt> -<dd> -reference to the configuration page -</dd> -</dl> -<dl> -<dt>Return Type:</dt> -<dd> -AutoCompletionRopePage -</dd> -</dl> <div align="right"><a href="#top">Up</a></div> <hr /> <hr />
--- a/MqttMonitor/MqttClient.py Sat Dec 31 16:27:45 2022 +0100 +++ b/MqttMonitor/MqttClient.py Tue Jul 04 15:13:37 2023 +0200 @@ -156,7 +156,7 @@ self.__mqttClient.on_log = self.__onLog self.__mqttClient.on_publish = self.__onPublish - def __onConnectV3(self, client, userdata, flags, rc, properties=None): + def __onConnectV3(self, client, userdata, flags, rc, properties=None): # noqa: U100 """ Private method to handle the connect to the broker (MQTT v3.1 and v3.1.1). @@ -173,7 +173,7 @@ """ self.onConnectV3.emit(flags, rc) - def __onDisconnectedV3(self, client, userdata, rc): + def __onDisconnectedV3(self, client, userdata, rc): # noqa: U100 """ Private method to handle the disconnect from the broker (MQTT v3.1 and v3.1.1). @@ -186,7 +186,7 @@ """ self.onDisconnectedV3.emit(rc) - def __onSubscribeV3(self, client, userdata, mid, grantedQos): + def __onSubscribeV3(self, client, userdata, mid, grantedQos): # noqa: U100 """ Private method to handle a subscribe event (MQTT v3.1 and v3.1.1). @@ -201,7 +201,7 @@ """ self.onSubscribeV3.emit(mid, grantedQos) - def __onUnsubscribeV3(self, client, userdata, mid): + def __onUnsubscribeV3(self, client, userdata, mid): # noqa: U100 """ Private method to handle an unsubscribe event (MQTT v3.1 and v3.1.1). @@ -214,7 +214,7 @@ """ self.onUnsubscribeV3.emit(mid) - def __onMessageV3(self, client, userdata, message): + def __onMessageV3(self, client, userdata, message): # noqa: U100 """ Private method to handle a new message received from the broker (MQTT v3.1 and v3.1.1). @@ -230,7 +230,7 @@ message.topic, message.payload, message.qos, message.retain ) - def __onConnectV5(self, client, userdata, flags, rc, properties=None): + def __onConnectV5(self, client, userdata, flags, rc, properties=None): # noqa: U100 """ Private method to handle the connect to the broker (MQTT v5.0). @@ -252,7 +252,7 @@ properties.json() if properties is not None else {}, ) - def __onDisconnectedV5(self, client, userdata, rc, properties=None): + def __onDisconnectedV5(self, client, userdata, rc, properties=None): # noqa: U100 """ Private method to handle the disconnect from the broker (MQTT v5.0). @@ -274,6 +274,7 @@ self.onDisconnectedV5.emit(resultCode, packetType) def __onSubscribeV5(self, client, userdata, mid, reasonCodes, properties=None): + # noqa: U100 """ Private method to handle a subscribe event (MQTT v5.0). @@ -295,6 +296,7 @@ ) def __onUnsubscribeV5(self, client, userdata, mid, properties, reasonCodes): + # noqa: U100 """ Private method to handle an unsubscribe event (MQTT v5.0). @@ -316,7 +318,7 @@ properties.json() if properties is not None else {}, ) - def __onMessageV5(self, client, userdata, message): + def __onMessageV5(self, client, userdata, message): # noqa: U100 """ Private method to handle a new message received from the broker (MQTT v5.0). @@ -335,7 +337,7 @@ message.properties.json(), ) - def __onLog(self, client, userdata, level, buf): + def __onLog(self, client, userdata, level, buf): # noqa: U100 """ Private method to handle a log event (MQTT v3.1, v3.1.1 and v5.0). @@ -350,7 +352,7 @@ """ self.onLog.emit(level, buf) - def __onPublish(self, client, userdata, mid): + def __onPublish(self, client, userdata, mid): # noqa: U100 """ Private method to handle the publishing of a message (MQTT v3.1, v3.1.1 and v5.0). @@ -468,7 +470,7 @@ ca_certs=caCerts, certfile=certFile, keyfile=keyFile ) return True, "" - except (ValueError, FileNotFoundError) as err: + except (FileNotFoundError, ValueError) as err: return False, str(err) return False, "unspecific error occurred"
--- a/MqttMonitor/MqttMonitorWidget.py Sat Dec 31 16:27:45 2022 +0100 +++ b/MqttMonitor/MqttMonitorWidget.py Tue Jul 04 15:13:37 2023 +0200 @@ -12,7 +12,7 @@ import copy import os -from PyQt6.QtCore import QFileInfo, QPoint, Qt, QTimer, pyqtSlot +from PyQt6.QtCore import QFileInfo, QLocale, QPoint, Qt, QTimer, pyqtSlot from PyQt6.QtGui import QBrush, QColor, QFont, QTextCursor from PyQt6.QtWidgets import QDialog, QMenu, QWidget @@ -245,8 +245,46 @@ prefix + "load/connections": self.loadConnectionsLabel, prefix + "load/sockets": self.loadSocketsLabel, } + self.__statusFormatMapping = { + # broker + prefix + "version": None, + prefix + "timestamp": None, + prefix + "uptime": self.__formatUptime, + prefix + "subscriptions/count": self.__formatInt, + # clients + prefix + "clients/connected": self.__formatInt, + prefix + "clients/disconnected": self.__formatInt, + prefix + "clients/expired": self.__formatInt, + prefix + "clients/maximum": self.__formatInt, + prefix + "clients/total": self.__formatInt, + # messages + prefix + "messages/sent": self.__formatInt, + prefix + "messages/received": self.__formatInt, + prefix + "messages/stored": self.__formatInt, + prefix + "store/messages/count": self.__formatInt, + prefix + "messages/inflight": self.__formatInt, + prefix + "retained messages/count": self.__formatInt, + # publish messages + prefix + "publish/messages/sent": self.__formatInt, + prefix + "publish/messages/received": self.__formatInt, + prefix + "publish/messages/dropped": self.__formatInt, + # traffic + prefix + "bytes/sent": self.__formatData, + prefix + "bytes/received": self.__formatData, + # load + prefix + "load/bytes/sent": self.__formatFloat, + prefix + "load/bytes/received": self.__formatFloat, + prefix + "load/messages/sent": self.__formatFloat, + prefix + "load/messages/received": self.__formatFloat, + prefix + "load/publish/sent": self.__formatFloat, + prefix + "load/publish/received": self.__formatFloat, + prefix + "load/publish/dropped": self.__formatFloat, + prefix + "load/connections": self.__formatFloat, + prefix + "load/sockets": self.__formatFloat, + } self.__statusLoadValues = collections.defaultdict(self.__loadDefaultDictFactory) + self.__statusLocale = QLocale() def __createClient(self, clientId="", cleanSession=None, protocol=None): """ @@ -646,9 +684,10 @@ Private slot to show a dialog to modify connection options or a dialog to edit connection profiles. """ + from .MqttConnectionProfilesDialog import MqttConnectionProfilesDialog + from .MqttConnectionOptionsDialog import MqttConnectionOptionsDialog + if self.__connectionModeProfile: - from .MqttConnectionProfilesDialog import MqttConnectionProfilesDialog - profileName = self.profileComboBox.currentText() dlg = MqttConnectionProfilesDialog( self.__plugin.getPreferences("BrokerProfiles"), @@ -660,8 +699,6 @@ self.__plugin.setPreferences("BrokerProfiles", profilesDict) self.__populateProfileComboBox() else: - from .MqttConnectionOptionsDialog import MqttConnectionOptionsDialog - dlg = MqttConnectionOptionsDialog(self.__connectionOptions, parent=self) if dlg.exec() == QDialog.DialogCode.Accepted: self.__connectionOptions = dlg.getConnectionOptions() @@ -1276,7 +1313,7 @@ else: with contextlib.suppress(KeyError): label = self.__statusLabelMapping[topic] - label.setText(payloadStr) + label.setText(self.__formatBrokerStatusValue(topic, payloadStr)) def __handleBrokerLoadStatusMessage(self, topic, payloadStr): """ @@ -1295,12 +1332,38 @@ label = self.__statusLabelMapping[subtopic] label.setText( "{0} / {1} / {2}".format( - self.__statusLoadValues[subtopic]["1min"], - self.__statusLoadValues[subtopic]["5min"], - self.__statusLoadValues[subtopic]["15min"], + self.__formatBrokerStatusValue( + subtopic, self.__statusLoadValues[subtopic]["1min"] + ), + self.__formatBrokerStatusValue( + subtopic, self.__statusLoadValues[subtopic]["5min"] + ), + self.__formatBrokerStatusValue( + subtopic, self.__statusLoadValues[subtopic]["15min"] + ), ) ) + def __formatBrokerStatusValue(self, topic, value): + """ + Private method to format the value reported for a topic. + + @param topic topic name + @type str + @param value value of the topic + @type str + @return reformatted value string + @rtype str + """ + try: + formatFunc = self.__statusFormatMapping[topic] + if formatFunc is None: + return value + else: + return formatFunc(value) + except KeyError: + return value + def __clearBrokerStatusLabels(self): """ Private method to clear the broker status labels. @@ -1508,3 +1571,95 @@ if dlg.exec() == QDialog.DialogCode.Accepted: properties[key] = dlg.getProperties() self.__plugin.setPreferences(preferencesKey, properties) + + ####################################################################### + ## some helper methods below + ####################################################################### + + def __formatInt(self, valStr): + """ + Private method to format the uptime string. + + @param valStr string to be formatted + @type str + @return formatted string + @rtype str + """ + try: + val = int(valStr) + return self.__statusLocale.toString(val) + except ValueError: + return valStr + + def __formatFloat(self, valStr): + """ + Private method to format the uptime string. + + @param valStr string to be formatted + @type str + @return formatted string + @rtype str + """ + try: + val = float(valStr) + return self.__statusLocale.toString(val) + except ValueError: + return valStr + + def __formatUptime(self, valStr): + """ + Private method to format the uptime string. + + @param valStr string to be formatted + @type str + @return formatted string + @rtype str + """ + val, *suffix = valStr.split() + try: + val = int(val) + vloc = self.__statusLocale.toString(val) + if suffix: + return f"{vloc} {' '.join(suffix)}" + else: + return vloc + except ValueError: + return valStr + + def __formatData(self, valStr): + """ + Private method to format the uptime string. + + @param valStr string to be formatted + @type str + @return formatted string + @rtype str + """ + try: + size = int(valStr) + if size < 1024: + return self.tr("{0} Bytes").format( + self.__statusLocale.toString(size, "f", 2) + ) + elif size < 1024 * 1024: + size /= 1024 + return self.tr("{0} KiB").format( + self.__statusLocale.toString(size, "f", 2) + ) + elif size < 1024 * 1024 * 1024: + size /= 1024 * 1024 + return self.tr("{0} MiB").format( + self.__statusLocale.toString(size, "f", 2) + ) + elif size < 1024 * 1024 * 1024 * 1024: + size /= 1024 * 1024 * 1024 + return self.tr("{0} GiB").format( + self.__statusLocale.toString(size, "f", 2) + ) + else: + size /= 1024 * 1024 * 1024 * 1024 + return self.tr("{0} TiB").format( + self.__statusLocale.toString(size, "f", 2) + ) + except ValueError: + return valStr
--- a/MqttMonitor/i18n/mqttmonitor_de.ts Sat Dec 31 16:27:45 2022 +0100 +++ b/MqttMonitor/i18n/mqttmonitor_de.ts Tue Jul 04 15:13:37 2023 +0200 @@ -4,37 +4,37 @@ <context> <name>MqttConnackMessage</name> <message> - <location filename="../MqttClient.py" line="647"/> + <location filename="../MqttClient.py" line="826"/> <source>Connection Accepted.</source> <translation>Verbindung akzeptiert.</translation> </message> <message> - <location filename="../MqttClient.py" line="651"/> + <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="655"/> + <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="659"/> + <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="663"/> + <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="667"/> + <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="671"/> + <location filename="../MqttClient.py" line="848"/> <source>Connection Refused: unknown reason.</source> <translation>Verbindung abgelehnt: unbekante Ursache.</translation> </message> @@ -268,22 +268,22 @@ <translation>Verwende CONNECT Benutzereigenschaften für DISCONNECT</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="50"/> + <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="../MqttConnectionOptionsDialog.py" line="80"/> + <location filename="../MqttConnectionOptionsDialog.py" line="82"/> <source>Invalid Connection Parameters</source> <translation>Ungültige Verbindungsparameter</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="81"/> + <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="../MqttConnectionOptionsDialog.py" line="187"/> + <location filename="../MqttConnectionOptionsDialog.py" line="185"/> <source>Last Will User Properties</source> <translation>Benutzereigenschaften für Letzter Wille</translation> </message> @@ -291,112 +291,112 @@ <context> <name>MqttConnectionProfilesDialog</name> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="76"/> - <location filename="../MqttConnectionProfilesDialog.py" line="72"/> - <location filename="../MqttConnectionProfilesDialog.py" line="68"/> + <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="../MqttConnectionProfilesDialog.py" line="80"/> + <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="../MqttConnectionProfilesDialog.py" line="926"/> - <location filename="../MqttConnectionProfilesDialog.py" line="890"/> - <location filename="../MqttConnectionProfilesDialog.py" line="154"/> + <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> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="927"/> - <location filename="../MqttConnectionProfilesDialog.py" line="891"/> - <location filename="../MqttConnectionProfilesDialog.py" line="155"/> + <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> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="182"/> - <location filename="../MqttConnectionProfilesDialog.py" line="175"/> + <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="../MqttConnectionProfilesDialog.py" line="176"/> + <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="210"/> - <location filename="../MqttConnectionProfilesDialog.py" line="183"/> + <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="../MqttConnectionProfilesDialog.py" line="209"/> - <location filename="../MqttConnectionProfilesDialog.py" line="202"/> + <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="203"/> + <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="../MqttConnectionProfilesDialog.py" line="235"/> + <location filename="../MqttConnectionProfilesDialog.py" line="256"/> <source>Delete Connection Profile</source> <translation>Verbindungsprofil löschen</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="236"/> + <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="../MqttConnectionProfilesDialog.py" line="636"/> + <location filename="../MqttConnectionProfilesDialog.py" line="664"/> <source>Invalid Connection Parameters</source> <translation>Ungültige Verbindungsparameter</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="637"/> + <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="../MqttConnectionProfilesDialog.py" line="732"/> + <location filename="../MqttConnectionProfilesDialog.py" line="760"/> <source>Last Will User Properties</source> <translation>Benutzereigenschaften für Letzter Wille</translation> </message> <message> <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> - <location filename="../MqttConnectionProfilesDialog.py" line="788"/> + <location filename="../MqttConnectionProfilesDialog.py" line="817"/> <source>SSL/TLS Enabled</source> <translation>SSL/TLS aktiviert</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="789"/> + <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="../MqttConnectionProfilesDialog.py" line="802"/> + <location filename="../MqttConnectionProfilesDialog.py" line="833"/> <source>SSL/TLS Disabled</source> <translation>SSL/TLS deaktiviert</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="803"/> + <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="../MqttConnectionProfilesDialog.py" line="903"/> + <location filename="../MqttConnectionProfilesDialog.py" line="936"/> <source>Changed Connection Profiles</source> <translation>Verbindungsprofile geändert</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="904"/> + <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> @@ -722,83 +722,83 @@ <context> <name>MqttErrorMessage</name> <message> - <location filename="../MqttClient.py" line="687"/> + <location filename="../MqttClient.py" line="864"/> <source>No error.</source> <translation>Kein Fehler.</translation> </message> <message> - <location filename="../MqttClient.py" line="691"/> + <location filename="../MqttClient.py" line="866"/> <source>Out of memory.</source> <translation>Nicht genügend Speicher.</translation> </message> <message> - <location filename="../MqttClient.py" line="695"/> + <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> </message> <message> - <location filename="../MqttClient.py" line="700"/> + <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="704"/> + <location filename="../MqttClient.py" line="877"/> <source>The client is not currently connected.</source> <translation>Der Client ist momentan nicht verbunden.</translation> </message> <message> - <location filename="../MqttClient.py" line="708"/> + <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="712"/> + <location filename="../MqttClient.py" line="885"/> <source>Message not found (internal error).</source> <translation>Nachricht nicht gefunden (interner Fehler).</translation> </message> <message> - <location filename="../MqttClient.py" line="716"/> + <location filename="../MqttClient.py" line="889"/> <source>The connection was lost.</source> <translation>Die Verbindung wurde unterbrochen.</translation> </message> <message> - <location filename="../MqttClient.py" line="720"/> + <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="724"/> + <location filename="../MqttClient.py" line="895"/> <source>Payload too large.</source> <translation>Nutzdaten zu groß.</translation> </message> <message> - <location filename="../MqttClient.py" line="728"/> + <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="732"/> + <location filename="../MqttClient.py" line="901"/> <source>Authorisation failed.</source> <translation>Authorisierung fehlgeschlagen.</translation> </message> <message> - <location filename="../MqttClient.py" line="736"/> + <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="752"/> - <location filename="../MqttClient.py" line="740"/> + <location filename="../MqttClient.py" line="911"/> + <location filename="../MqttClient.py" line="905"/> <source>Unknown error.</source> <translation>Unbekannter Fehler.</translation> </message> <message> - <location filename="../MqttClient.py" line="744"/> + <location filename="../MqttClient.py" line="907"/> <source>Error defined by errno.</source> <translation>Fehler durch errno definiert.</translation> </message> <message> - <location filename="../MqttClient.py" line="748"/> + <location filename="../MqttClient.py" line="909"/> <source>Message queue full.</source> <translation>Warteschlange ist voll.</translation> </message> @@ -806,38 +806,38 @@ <context> <name>MqttLogLevelString</name> <message> - <location filename="../MqttClient.py" line="791"/> - <location filename="../MqttClient.py" line="773"/> + <location filename="../MqttClient.py" line="947"/> + <location filename="../MqttClient.py" line="930"/> <source>Unknown</source> <translation>Unbekannt</translation> </message> <message> - <location filename="../MqttClient.py" line="778"/> + <location filename="../MqttClient.py" line="935"/> <source>Info</source> <translation>Info</translation> </message> <message> - <location filename="../MqttClient.py" line="780"/> + <location filename="../MqttClient.py" line="937"/> <source>Notice</source> <translation>Notiz</translation> </message> <message> - <location filename="../MqttClient.py" line="782"/> + <location filename="../MqttClient.py" line="939"/> <source>Warning</source> <translation>Warnung</translation> </message> <message> - <location filename="../MqttClient.py" line="784"/> + <location filename="../MqttClient.py" line="941"/> <source>Error</source> <translation>Fehler</translation> </message> <message> - <location filename="../MqttClient.py" line="786"/> + <location filename="../MqttClient.py" line="943"/> <source>Debug</source> <translation>Debug</translation> </message> <message> - <location filename="../MqttClient.py" line="788"/> + <location filename="../MqttClient.py" line="945"/> <source>Logging Disabled</source> <translation>Protokollierung aus</translation> </message> @@ -845,49 +845,49 @@ <context> <name>MqttMonitorPlugin</name> <message> - <location filename="../../PluginMqttMonitor.py" line="193"/> - <location filename="../../PluginMqttMonitor.py" line="190"/> - <location filename="../../PluginMqttMonitor.py" line="78"/> + <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> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="97"/> + <location filename="../../PluginMqttMonitor.py" line="103"/> <source>(package not available)</source> <translation>(Paket nicht verfügbar)</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="102"/> + <location filename="../../PluginMqttMonitor.py" line="109"/> <source>MQTT</source> <translation>MQTT</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="103"/> + <location filename="../../PluginMqttMonitor.py" line="110"/> <source>paho-mqtt</source> <translation>paho-mqtt</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="172"/> + <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> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="194"/> + <location filename="../../PluginMqttMonitor.py" line="203"/> <source>M&QTT Monitor</source> <translation>M&QTT Monitor</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="195"/> + <location filename="../../PluginMqttMonitor.py" line="204"/> <source>Alt+Shift+Q</source> <translation>Alt+Shift+Q</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="198"/> + <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> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="200"/> + <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> @@ -945,7 +945,7 @@ <translation>Pub/Sub</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1022"/> + <location filename="../MqttMonitorWidget.py" line="1101"/> <location filename="../MqttMonitorWidget.ui" line="0"/> <location filename="../MqttMonitorWidget.ui" line="0"/> <source>Subscribe</source> @@ -988,7 +988,7 @@ <translation>Drücken, um die 'User Properties' zu bearbeiten</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1018"/> + <location filename="../MqttMonitorWidget.py" line="1096"/> <location filename="../MqttMonitorWidget.ui" line="0"/> <source>Unsubscribe</source> <translation>Abo kündigen</translation> @@ -1045,7 +1045,7 @@ <translation>Drücken, um die Veröffentlichungsdaten zu löschen</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="284"/> + <location filename="../MqttMonitorWidget.py" line="346"/> <location filename="../MqttMonitorWidget.ui" line="0"/> <location filename="../MqttMonitorWidget.ui" line="0"/> <location filename="../MqttMonitorWidget.ui" line="0"/> @@ -1119,7 +1119,7 @@ <translation>Status</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1024"/> + <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> @@ -1350,139 +1350,139 @@ <translation>Empfangenen Protokollmeldungen folgen</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="76"/> + <location filename="../MqttMonitorWidget.py" line="93"/> <source>All Files (*)</source> <translation>Alle Dateien (*)</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="276"/> + <location filename="../MqttMonitorWidget.py" line="334"/> <source>Copy</source> <translation>Kopieren</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="280"/> + <location filename="../MqttMonitorWidget.py" line="340"/> <source>Select All</source> <translation>Alles auswählen</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="328"/> + <location filename="../MqttMonitorWidget.py" line="391"/> <source>{0} - Session still present</source> <translation>{0} - Sitzung existiert noch</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="364"/> + <location filename="../MqttMonitorWidget.py" line="429"/> <source>Connection timed out</source> <translation>Zeitlimit für Verbindung überschritten</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="391"/> + <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="448"/> + <location filename="../MqttMonitorWidget.py" line="517"/> <source>{0}: {1}</source> <translation>{0}: {1}</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="671"/> + <location filename="../MqttMonitorWidget.py" line="737"/> <source>SUBSCRIBE: User Properties for '{0}'</source> <translation>SUBSCRIBE: Benutzereigenschaften für '{0}'</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="697"/> + <location filename="../MqttMonitorWidget.py" line="763"/> <source>Subscribe to Topic</source> <translation>Thema abonnieren</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="698"/> + <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> </message> <message> - <location filename="../MqttMonitorWidget.py" line="719"/> + <location filename="../MqttMonitorWidget.py" line="788"/> <source>UNSUBSCRIBE: User Properties for '{0}'</source> <translation>UNSUBSCRIBE: Benutzereigenschaften für '{0}'</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="759"/> + <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="795"/> + <location filename="../MqttMonitorWidget.py" line="862"/> <source>Read Payload from File</source> <translation>Nutzdaten aus Datei lesen</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="796"/> + <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> </message> <message> - <location filename="../MqttMonitorWidget.py" line="943"/> - <location filename="../MqttMonitorWidget.py" line="929"/> - <location filename="../MqttMonitorWidget.py" line="911"/> + <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> </message> <message> - <location filename="../MqttMonitorWidget.py" line="913"/> + <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="986"/> - <location filename="../MqttMonitorWidget.py" line="930"/> + <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> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1000"/> - <location filename="../MqttMonitorWidget.py" line="944"/> + <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="999"/> - <location filename="../MqttMonitorWidget.py" line="985"/> - <location filename="../MqttMonitorWidget.py" line="967"/> + <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> </message> <message> - <location filename="../MqttMonitorWidget.py" line="969"/> + <location filename="../MqttMonitorWidget.py" line="1042"/> <source>Log Files (*.log);;All Files (*)</source> <translation>Protokolldateien (*.log);;Alle Dateien (*)</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1020"/> + <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="1189"/> + <location filename="../MqttMonitorWidget.py" line="1265"/> <source>QoS: {0} </source> <translation>QoS: {0} </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1193"/> + <location filename="../MqttMonitorWidget.py" line="1269"/> <source>Retained Message </source> <translation>Gemerkte Meldung </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1198"/> + <location filename="../MqttMonitorWidget.py" line="1273"/> <source>Properties: </source> <translation>Eigenschaften: </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1202"/> + <location filename="../MqttMonitorWidget.py" line="1277"/> <source>{0}: {1} </source> <comment>property name, property value</comment> @@ -1490,23 +1490,48 @@ </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1207"/> + <location filename="../MqttMonitorWidget.py" line="1283"/> <source>Message: </source> <translation>Meldung: </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1214"/> + <location filename="../MqttMonitorWidget.py" line="1290"/> <source><empty></source> <translation><leer></translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1382"/> - <location filename="../MqttMonitorWidget.py" line="1336"/> + <location filename="../MqttMonitorWidget.py" line="1496"/> + <location filename="../MqttMonitorWidget.py" line="1447"/> <source>Connecting to {0}:{1} ...</source> <translation>Verbinde zu {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> @@ -1584,237 +1609,237 @@ <context> <name>MqttReasonCodeNames</name> <message> - <location filename="../MqttReasonCodes.py" line="16"/> + <location filename="../MqttReasonCodes.py" line="15"/> <source>Success</source> <translation>Erfolg</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="21"/> + <location filename="../MqttReasonCodes.py" line="24"/> <source>Normal disconnection</source> <translation>Normale Trennung</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="24"/> + <location filename="../MqttReasonCodes.py" line="27"/> <source>Granted QoS 0</source> <translation>QoS 0 genehmigt</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="28"/> + <location filename="../MqttReasonCodes.py" line="32"/> <source>Granted QoS 1</source> <translation>QoS 1 genehmigt</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="32"/> + <location filename="../MqttReasonCodes.py" line="37"/> <source>Granted QoS 2</source> <translation>QoS 2 genehmigt</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="36"/> + <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="40"/> + <location filename="../MqttReasonCodes.py" line="47"/> <source>No matching subscribers</source> <translation>Keine passenden Abonnenten</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="44"/> + <location filename="../MqttReasonCodes.py" line="53"/> <source>No subscription found</source> <translation>Kein Abonnement gefunden</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="48"/> + <location filename="../MqttReasonCodes.py" line="58"/> <source>Continue authentication</source> <translation>Authentisierung fortsetzen</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="52"/> + <location filename="../MqttReasonCodes.py" line="63"/> <source>Re-authenticate</source> <translation>Neuauthentisierung</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="56"/> + <location filename="../MqttReasonCodes.py" line="68"/> <source>Unspecified error</source> <translation>Unspezifizierter Fehler</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="62"/> + <location filename="../MqttReasonCodes.py" line="78"/> <source>Malformed packet</source> <translation>Fehlerhaftes Paket</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="66"/> + <location filename="../MqttReasonCodes.py" line="84"/> <source>Protocol error</source> <translation>Protokollfehler</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="70"/> + <location filename="../MqttReasonCodes.py" line="90"/> <source>Implementation specific error</source> <translation>Implementierungsspezifischer Fehler</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="76"/> + <location filename="../MqttReasonCodes.py" line="102"/> <source>Unsupported protocol version</source> <translation>Nicht unterstützte Protokollversion</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="80"/> + <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="84"/> + <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="88"/> + <location filename="../MqttReasonCodes.py" line="117"/> <source>Not authorized</source> <translation>Nicht authorisiert</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="94"/> + <location filename="../MqttReasonCodes.py" line="127"/> <source>Server unavailable</source> <translation>Server nicht verfügbar</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="98"/> + <location filename="../MqttReasonCodes.py" line="132"/> <source>Server busy</source> <translation>Server ausgelastet</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="102"/> + <location filename="../MqttReasonCodes.py" line="138"/> <source>Banned</source> <translation>Gebannt</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="106"/> + <location filename="../MqttReasonCodes.py" line="143"/> <source>Server shutting down</source> <translation>Server fährt herunter</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="110"/> + <location filename="../MqttReasonCodes.py" line="148"/> <source>Bad authentication method</source> <translation>Ungültige Authentifizierungsmethode</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="114"/> + <location filename="../MqttReasonCodes.py" line="153"/> <source>Keep alive timeout</source> <translation>Keep Alive Timeout</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="118"/> + <location filename="../MqttReasonCodes.py" line="158"/> <source>Session taken over</source> <translation>Sitzung übernommen</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="122"/> + <location filename="../MqttReasonCodes.py" line="163"/> <source>Topic filter invalid</source> <translation>Themenfilter ungültig</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="127"/> + <location filename="../MqttReasonCodes.py" line="170"/> <source>Topic name invalid</source> <translation>Themenname ungültig</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="132"/> + <location filename="../MqttReasonCodes.py" line="178"/> <source>Packet identifier in use</source> <translation>Paketkennung in Verwendung</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="137"/> + <location filename="../MqttReasonCodes.py" line="186"/> <source>Packet identifier not found</source> <translation>Paketkennung nicht gefunden</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="141"/> + <location filename="../MqttReasonCodes.py" line="191"/> <source>Receive maximum exceeded</source> <translation>Empfangsmaximum überschritten</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="145"/> + <location filename="../MqttReasonCodes.py" line="196"/> <source>Topic alias invalid</source> <translation>Themenalias ungültig</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="149"/> + <location filename="../MqttReasonCodes.py" line="201"/> <source>Packet too large</source> <translation>Paket zu groß</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="153"/> + <location filename="../MqttReasonCodes.py" line="207"/> <source>Message rate too high</source> <translation>Meldungsrate zu hoch</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="157"/> + <location filename="../MqttReasonCodes.py" line="212"/> <source>Quota exceeded</source> <translation>Quota überschritten</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="163"/> + <location filename="../MqttReasonCodes.py" line="221"/> <source>Administrative action</source> <translation>Administrative Aktion</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="167"/> + <location filename="../MqttReasonCodes.py" line="226"/> <source>Payload format invalid</source> <translation>Nutzlastformat ungültig</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="171"/> + <location filename="../MqttReasonCodes.py" line="233"/> <source>Retain not supported</source> <translation>Merken nicht unterstützt</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="175"/> + <location filename="../MqttReasonCodes.py" line="239"/> <source>QoS not supported</source> <translation>QoS nicht unterstützt</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="179"/> + <location filename="../MqttReasonCodes.py" line="245"/> <source>Use another server</source> <translation>Verwende anderen Server</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="183"/> + <location filename="../MqttReasonCodes.py" line="251"/> <source>Server moved</source> <translation>Server umgezogen</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="187"/> + <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="191"/> + <location filename="../MqttReasonCodes.py" line="262"/> <source>Connection rate exceeded</source> <translation>Verbindungsrate überschritten</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="195"/> + <location filename="../MqttReasonCodes.py" line="268"/> <source>Maximum connect time</source> <translation>Maximale Verbindungszeit</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="199"/> + <location filename="../MqttReasonCodes.py" line="273"/> <source>Subscription identifiers not supported</source> <translation>Abonnement-IDs nicht unterstützt</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="203"/> + <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="222"/> + <location filename="../MqttReasonCodes.py" line="298"/> <source>Unknown result code ({0})</source> <translation>Unbekannter Ergebniscode ({0})</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="229"/> + <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> @@ -1855,7 +1880,7 @@ <context> <name>MqttUserPropertiesEditorDialog</name> <message> - <location filename="../MqttUserPropertiesEditor.py" line="134"/> + <location filename="../MqttUserPropertiesEditor.py" line="142"/> <source>User Properties</source> <translation>Benutzereigenschaften</translation> </message>
--- a/MqttMonitor/i18n/mqttmonitor_empty.ts Sat Dec 31 16:27:45 2022 +0100 +++ b/MqttMonitor/i18n/mqttmonitor_empty.ts Tue Jul 04 15:13:37 2023 +0200 @@ -4,37 +4,37 @@ <context> <name>MqttConnackMessage</name> <message> - <location filename="../MqttClient.py" line="647" /> + <location filename="../MqttClient.py" line="826" /> <source>Connection Accepted.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="651" /> + <location filename="../MqttClient.py" line="828" /> <source>Connection Refused: unacceptable protocol version.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="655" /> + <location filename="../MqttClient.py" line="832" /> <source>Connection Refused: identifier rejected.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="659" /> + <location filename="../MqttClient.py" line="836" /> <source>Connection Refused: broker unavailable.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="663" /> + <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="667" /> + <location filename="../MqttClient.py" line="844" /> <source>Connection Refused: not authorised.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="671" /> + <location filename="../MqttClient.py" line="848" /> <source>Connection Refused: unknown reason.</source> <translation type="unfinished" /> </message> @@ -268,22 +268,22 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="50" /> + <location filename="../MqttConnectionOptionsDialog.py" line="53" /> <source>Certificate Files (*.crt *.pem);;All Files (*)</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="80" /> + <location filename="../MqttConnectionOptionsDialog.py" line="82" /> <source>Invalid Connection Parameters</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="81" /> + <location filename="../MqttConnectionOptionsDialog.py" line="83" /> <source>An empty Client ID requires a clean session.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="187" /> + <location filename="../MqttConnectionOptionsDialog.py" line="185" /> <source>Last Will User Properties</source> <translation type="unfinished" /> </message> @@ -291,112 +291,112 @@ <context> <name>MqttConnectionProfilesDialog</name> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="76" /> - <location filename="../MqttConnectionProfilesDialog.py" line="72" /> - <location filename="../MqttConnectionProfilesDialog.py" line="68" /> + <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="80" /> + <location filename="../MqttConnectionProfilesDialog.py" line="90" /> <source>Key Files (*.key *.pem);;All Files (*)</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="926" /> - <location filename="../MqttConnectionProfilesDialog.py" line="890" /> - <location filename="../MqttConnectionProfilesDialog.py" line="154" /> + <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="927" /> - <location filename="../MqttConnectionProfilesDialog.py" line="891" /> - <location filename="../MqttConnectionProfilesDialog.py" line="155" /> + <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="182" /> - <location filename="../MqttConnectionProfilesDialog.py" line="175" /> + <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="176" /> + <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="210" /> - <location filename="../MqttConnectionProfilesDialog.py" line="183" /> + <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="209" /> - <location filename="../MqttConnectionProfilesDialog.py" line="202" /> + <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="203" /> + <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="235" /> + <location filename="../MqttConnectionProfilesDialog.py" line="256" /> <source>Delete Connection Profile</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="236" /> + <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="636" /> + <location filename="../MqttConnectionProfilesDialog.py" line="664" /> <source>Invalid Connection Parameters</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="637" /> + <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="732" /> + <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="788" /> + <location filename="../MqttConnectionProfilesDialog.py" line="817" /> <source>SSL/TLS Enabled</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="789" /> + <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="802" /> + <location filename="../MqttConnectionProfilesDialog.py" line="833" /> <source>SSL/TLS Disabled</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="803" /> + <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="903" /> + <location filename="../MqttConnectionProfilesDialog.py" line="936" /> <source>Changed Connection Profiles</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="904" /> + <location filename="../MqttConnectionProfilesDialog.py" line="937" /> <source>The list of connection profiles has unsaved changes.</source> <translation type="unfinished" /> </message> @@ -722,83 +722,83 @@ <context> <name>MqttErrorMessage</name> <message> - <location filename="../MqttClient.py" line="687" /> + <location filename="../MqttClient.py" line="864" /> <source>No error.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="691" /> + <location filename="../MqttClient.py" line="866" /> <source>Out of memory.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="695" /> + <location filename="../MqttClient.py" line="868" /> <source>A network protocol error occurred when communicating with the broker.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="700" /> + <location filename="../MqttClient.py" line="873" /> <source>Invalid function arguments provided.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="704" /> + <location filename="../MqttClient.py" line="877" /> <source>The client is not currently connected.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="708" /> + <location filename="../MqttClient.py" line="881" /> <source>The connection was refused.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="712" /> + <location filename="../MqttClient.py" line="885" /> <source>Message not found (internal error).</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="716" /> + <location filename="../MqttClient.py" line="889" /> <source>The connection was lost.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="720" /> + <location filename="../MqttClient.py" line="893" /> <source>A TLS error occurred.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="724" /> + <location filename="../MqttClient.py" line="895" /> <source>Payload too large.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="728" /> + <location filename="../MqttClient.py" line="897" /> <source>This feature is not supported.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="732" /> + <location filename="../MqttClient.py" line="901" /> <source>Authorisation failed.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="736" /> + <location filename="../MqttClient.py" line="903" /> <source>Access denied by ACL.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="752" /> - <location filename="../MqttClient.py" line="740" /> + <location filename="../MqttClient.py" line="911" /> + <location filename="../MqttClient.py" line="905" /> <source>Unknown error.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="744" /> + <location filename="../MqttClient.py" line="907" /> <source>Error defined by errno.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="748" /> + <location filename="../MqttClient.py" line="909" /> <source>Message queue full.</source> <translation type="unfinished" /> </message> @@ -806,38 +806,38 @@ <context> <name>MqttLogLevelString</name> <message> - <location filename="../MqttClient.py" line="791" /> - <location filename="../MqttClient.py" line="773" /> + <location filename="../MqttClient.py" line="947" /> + <location filename="../MqttClient.py" line="930" /> <source>Unknown</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="778" /> + <location filename="../MqttClient.py" line="935" /> <source>Info</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="780" /> + <location filename="../MqttClient.py" line="937" /> <source>Notice</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="782" /> + <location filename="../MqttClient.py" line="939" /> <source>Warning</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="784" /> + <location filename="../MqttClient.py" line="941" /> <source>Error</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="786" /> + <location filename="../MqttClient.py" line="943" /> <source>Debug</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="788" /> + <location filename="../MqttClient.py" line="945" /> <source>Logging Disabled</source> <translation type="unfinished" /> </message> @@ -845,49 +845,49 @@ <context> <name>MqttMonitorPlugin</name> <message> - <location filename="../../PluginMqttMonitor.py" line="193" /> - <location filename="../../PluginMqttMonitor.py" line="190" /> - <location filename="../../PluginMqttMonitor.py" line="78" /> + <location filename="../../PluginMqttMonitor.py" line="202" /> + <location filename="../../PluginMqttMonitor.py" line="198" /> + <location filename="../../PluginMqttMonitor.py" line="81" /> <source>MQTT Monitor</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="97" /> + <location filename="../../PluginMqttMonitor.py" line="103" /> <source>(package not available)</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="102" /> + <location filename="../../PluginMqttMonitor.py" line="109" /> <source>MQTT</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="103" /> + <location filename="../../PluginMqttMonitor.py" line="110" /> <source>paho-mqtt</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="172" /> + <location filename="../../PluginMqttMonitor.py" line="180" /> <source>The 'paho-mqtt' package is not available.</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="194" /> + <location filename="../../PluginMqttMonitor.py" line="203" /> <source>M&QTT Monitor</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="195" /> + <location filename="../../PluginMqttMonitor.py" line="204" /> <source>Alt+Shift+Q</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="198" /> + <location filename="../../PluginMqttMonitor.py" line="210" /> <source>Switch the input focus to the MQTT Monitor window.</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="200" /> + <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 type="unfinished" /> </message> @@ -945,7 +945,7 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1022" /> + <location filename="../MqttMonitorWidget.py" line="1101" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Subscribe</source> @@ -988,7 +988,7 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1018" /> + <location filename="../MqttMonitorWidget.py" line="1096" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Unsubscribe</source> <translation type="unfinished" /> @@ -1045,7 +1045,7 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="284" /> + <location filename="../MqttMonitorWidget.py" line="346" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <location filename="../MqttMonitorWidget.ui" line="0" /> @@ -1119,7 +1119,7 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1024" /> + <location filename="../MqttMonitorWidget.py" line="1103" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Press to activate the status display</source> <translation type="unfinished" /> @@ -1350,158 +1350,183 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="76" /> + <location filename="../MqttMonitorWidget.py" line="93" /> <source>All Files (*)</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="276" /> + <location filename="../MqttMonitorWidget.py" line="334" /> <source>Copy</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="280" /> + <location filename="../MqttMonitorWidget.py" line="340" /> <source>Select All</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="328" /> - <source>{0} - Session still present</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="364" /> - <source>Connection timed out</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="448" /> + <location filename="../MqttMonitorWidget.py" line="517" /> <source>{0}: {1}</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="671" /> + <location filename="../MqttMonitorWidget.py" line="737" /> <source>SUBSCRIBE: User Properties for '{0}'</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="697" /> + <location filename="../MqttMonitorWidget.py" line="763" /> <source>Subscribe to Topic</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="698" /> + <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="719" /> + <location filename="../MqttMonitorWidget.py" line="788" /> <source>UNSUBSCRIBE: User Properties for '{0}'</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="759" /> + <location filename="../MqttMonitorWidget.py" line="826" /> <source>PUBLISH: User Properties for '{0}'</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="795" /> + <location filename="../MqttMonitorWidget.py" line="862" /> <source>Read Payload from File</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="796" /> + <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="943" /> - <location filename="../MqttMonitorWidget.py" line="929" /> - <location filename="../MqttMonitorWidget.py" line="911" /> + <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="913" /> + <location filename="../MqttMonitorWidget.py" line="981" /> <source>Messages Files (*.txt);;All Files (*)</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="986" /> - <location filename="../MqttMonitorWidget.py" line="930" /> + <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="1000" /> - <location filename="../MqttMonitorWidget.py" line="944" /> + <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="999" /> - <location filename="../MqttMonitorWidget.py" line="985" /> - <location filename="../MqttMonitorWidget.py" line="967" /> + <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="969" /> + <location filename="../MqttMonitorWidget.py" line="1042" /> <source>Log Files (*.log);;All Files (*)</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1020" /> + <location filename="../MqttMonitorWidget.py" line="1098" /> <source>Press to deactivate the status display</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1189" /> + <location filename="../MqttMonitorWidget.py" line="1265" /> <source>QoS: {0} </source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1193" /> + <location filename="../MqttMonitorWidget.py" line="1269" /> <source>Retained Message </source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1198" /> + <location filename="../MqttMonitorWidget.py" line="1273" /> <source>Properties: </source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1202" /> + <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="1207" /> + <location filename="../MqttMonitorWidget.py" line="1283" /> <source>Message: </source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1214" /> + <location filename="../MqttMonitorWidget.py" line="1290" /> <source><empty></source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1382" /> - <location filename="../MqttMonitorWidget.py" line="1336" /> + <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> @@ -1579,237 +1604,237 @@ <context> <name>MqttReasonCodeNames</name> <message> - <location filename="../MqttReasonCodes.py" line="16" /> + <location filename="../MqttReasonCodes.py" line="15" /> <source>Success</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="21" /> - <source>Normal disconnection</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../MqttReasonCodes.py" line="24" /> + <source>Normal disconnection</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="27" /> <source>Granted QoS 0</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="28" /> + <location filename="../MqttReasonCodes.py" line="32" /> <source>Granted QoS 1</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="32" /> + <location filename="../MqttReasonCodes.py" line="37" /> <source>Granted QoS 2</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="36" /> + <location filename="../MqttReasonCodes.py" line="42" /> <source>Disconnect with will message</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="40" /> + <location filename="../MqttReasonCodes.py" line="47" /> <source>No matching subscribers</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="44" /> + <location filename="../MqttReasonCodes.py" line="53" /> <source>No subscription found</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="48" /> + <location filename="../MqttReasonCodes.py" line="58" /> <source>Continue authentication</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="52" /> + <location filename="../MqttReasonCodes.py" line="63" /> <source>Re-authenticate</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="56" /> + <location filename="../MqttReasonCodes.py" line="68" /> <source>Unspecified error</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="62" /> + <location filename="../MqttReasonCodes.py" line="78" /> <source>Malformed packet</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="66" /> - <source>Protocol error</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="70" /> - <source>Implementation specific error</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="76" /> - <source>Unsupported protocol version</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="80" /> - <source>Client identifier not valid</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../MqttReasonCodes.py" line="84" /> + <source>Protocol error</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="90" /> + <source>Implementation specific error</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="102" /> + <source>Unsupported protocol version</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="107" /> + <source>Client identifier not valid</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="112" /> <source>Bad user name or password</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="88" /> + <location filename="../MqttReasonCodes.py" line="117" /> <source>Not authorized</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="94" /> + <location filename="../MqttReasonCodes.py" line="127" /> <source>Server unavailable</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="98" /> + <location filename="../MqttReasonCodes.py" line="132" /> <source>Server busy</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="102" /> + <location filename="../MqttReasonCodes.py" line="138" /> <source>Banned</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="106" /> + <location filename="../MqttReasonCodes.py" line="143" /> <source>Server shutting down</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="110" /> + <location filename="../MqttReasonCodes.py" line="148" /> <source>Bad authentication method</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="114" /> + <location filename="../MqttReasonCodes.py" line="153" /> <source>Keep alive timeout</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="118" /> + <location filename="../MqttReasonCodes.py" line="158" /> <source>Session taken over</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="122" /> - <source>Topic filter invalid</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="127" /> - <source>Topic name invalid</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="132" /> - <source>Packet identifier in use</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="137" /> - <source>Packet identifier not found</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="141" /> - <source>Receive maximum exceeded</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="145" /> - <source>Topic alias invalid</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="149" /> - <source>Packet too large</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="153" /> - <source>Message rate too high</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="157" /> - <source>Quota exceeded</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../MqttReasonCodes.py" line="163" /> + <source>Topic filter invalid</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="170" /> + <source>Topic name invalid</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="178" /> + <source>Packet identifier in use</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="186" /> + <source>Packet identifier not found</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="191" /> + <source>Receive maximum exceeded</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="196" /> + <source>Topic alias invalid</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="201" /> + <source>Packet too large</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="207" /> + <source>Message rate too high</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="212" /> + <source>Quota exceeded</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="221" /> <source>Administrative action</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="167" /> + <location filename="../MqttReasonCodes.py" line="226" /> <source>Payload format invalid</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="171" /> + <location filename="../MqttReasonCodes.py" line="233" /> <source>Retain not supported</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="175" /> + <location filename="../MqttReasonCodes.py" line="239" /> <source>QoS not supported</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="179" /> + <location filename="../MqttReasonCodes.py" line="245" /> <source>Use another server</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="183" /> + <location filename="../MqttReasonCodes.py" line="251" /> <source>Server moved</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="187" /> + <location filename="../MqttReasonCodes.py" line="257" /> <source>Shared subscription not supported</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="191" /> + <location filename="../MqttReasonCodes.py" line="262" /> <source>Connection rate exceeded</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="195" /> + <location filename="../MqttReasonCodes.py" line="268" /> <source>Maximum connect time</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="199" /> + <location filename="../MqttReasonCodes.py" line="273" /> <source>Subscription identifiers not supported</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="203" /> + <location filename="../MqttReasonCodes.py" line="278" /> <source>Wildcard subscription not supported</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="222" /> + <location filename="../MqttReasonCodes.py" line="298" /> <source>Unknown result code ({0})</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="229" /> + <location filename="../MqttReasonCodes.py" line="307" /> <source>Unknown result code ({0}) for packet type '{1}'</source> <translation type="unfinished" /> </message> @@ -1850,7 +1875,7 @@ <context> <name>MqttUserPropertiesEditorDialog</name> <message> - <location filename="../MqttUserPropertiesEditor.py" line="134" /> + <location filename="../MqttUserPropertiesEditor.py" line="142" /> <source>User Properties</source> <translation type="unfinished" /> </message>
--- a/MqttMonitor/i18n/mqttmonitor_en.ts Sat Dec 31 16:27:45 2022 +0100 +++ b/MqttMonitor/i18n/mqttmonitor_en.ts Tue Jul 04 15:13:37 2023 +0200 @@ -4,37 +4,37 @@ <context> <name>MqttConnackMessage</name> <message> - <location filename="../MqttClient.py" line="647" /> + <location filename="../MqttClient.py" line="826" /> <source>Connection Accepted.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="651" /> + <location filename="../MqttClient.py" line="828" /> <source>Connection Refused: unacceptable protocol version.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="655" /> + <location filename="../MqttClient.py" line="832" /> <source>Connection Refused: identifier rejected.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="659" /> + <location filename="../MqttClient.py" line="836" /> <source>Connection Refused: broker unavailable.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="663" /> + <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="667" /> + <location filename="../MqttClient.py" line="844" /> <source>Connection Refused: not authorised.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="671" /> + <location filename="../MqttClient.py" line="848" /> <source>Connection Refused: unknown reason.</source> <translation type="unfinished" /> </message> @@ -268,22 +268,22 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="50" /> + <location filename="../MqttConnectionOptionsDialog.py" line="53" /> <source>Certificate Files (*.crt *.pem);;All Files (*)</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="80" /> + <location filename="../MqttConnectionOptionsDialog.py" line="82" /> <source>Invalid Connection Parameters</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="81" /> + <location filename="../MqttConnectionOptionsDialog.py" line="83" /> <source>An empty Client ID requires a clean session.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="187" /> + <location filename="../MqttConnectionOptionsDialog.py" line="185" /> <source>Last Will User Properties</source> <translation type="unfinished" /> </message> @@ -291,112 +291,112 @@ <context> <name>MqttConnectionProfilesDialog</name> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="76" /> - <location filename="../MqttConnectionProfilesDialog.py" line="72" /> - <location filename="../MqttConnectionProfilesDialog.py" line="68" /> + <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="80" /> + <location filename="../MqttConnectionProfilesDialog.py" line="90" /> <source>Key Files (*.key *.pem);;All Files (*)</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="926" /> - <location filename="../MqttConnectionProfilesDialog.py" line="890" /> - <location filename="../MqttConnectionProfilesDialog.py" line="154" /> + <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="927" /> - <location filename="../MqttConnectionProfilesDialog.py" line="891" /> - <location filename="../MqttConnectionProfilesDialog.py" line="155" /> + <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="182" /> - <location filename="../MqttConnectionProfilesDialog.py" line="175" /> + <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="176" /> + <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="210" /> - <location filename="../MqttConnectionProfilesDialog.py" line="183" /> + <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="209" /> - <location filename="../MqttConnectionProfilesDialog.py" line="202" /> + <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="203" /> + <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="235" /> + <location filename="../MqttConnectionProfilesDialog.py" line="256" /> <source>Delete Connection Profile</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="236" /> + <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="636" /> + <location filename="../MqttConnectionProfilesDialog.py" line="664" /> <source>Invalid Connection Parameters</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="637" /> + <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="732" /> + <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="788" /> + <location filename="../MqttConnectionProfilesDialog.py" line="817" /> <source>SSL/TLS Enabled</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="789" /> + <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="802" /> + <location filename="../MqttConnectionProfilesDialog.py" line="833" /> <source>SSL/TLS Disabled</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="803" /> + <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="903" /> + <location filename="../MqttConnectionProfilesDialog.py" line="936" /> <source>Changed Connection Profiles</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="904" /> + <location filename="../MqttConnectionProfilesDialog.py" line="937" /> <source>The list of connection profiles has unsaved changes.</source> <translation type="unfinished" /> </message> @@ -722,83 +722,83 @@ <context> <name>MqttErrorMessage</name> <message> - <location filename="../MqttClient.py" line="687" /> + <location filename="../MqttClient.py" line="864" /> <source>No error.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="691" /> + <location filename="../MqttClient.py" line="866" /> <source>Out of memory.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="695" /> + <location filename="../MqttClient.py" line="868" /> <source>A network protocol error occurred when communicating with the broker.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="700" /> + <location filename="../MqttClient.py" line="873" /> <source>Invalid function arguments provided.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="704" /> + <location filename="../MqttClient.py" line="877" /> <source>The client is not currently connected.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="708" /> + <location filename="../MqttClient.py" line="881" /> <source>The connection was refused.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="712" /> + <location filename="../MqttClient.py" line="885" /> <source>Message not found (internal error).</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="716" /> + <location filename="../MqttClient.py" line="889" /> <source>The connection was lost.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="720" /> + <location filename="../MqttClient.py" line="893" /> <source>A TLS error occurred.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="724" /> + <location filename="../MqttClient.py" line="895" /> <source>Payload too large.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="728" /> + <location filename="../MqttClient.py" line="897" /> <source>This feature is not supported.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="732" /> + <location filename="../MqttClient.py" line="901" /> <source>Authorisation failed.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="736" /> + <location filename="../MqttClient.py" line="903" /> <source>Access denied by ACL.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="752" /> - <location filename="../MqttClient.py" line="740" /> + <location filename="../MqttClient.py" line="911" /> + <location filename="../MqttClient.py" line="905" /> <source>Unknown error.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="744" /> + <location filename="../MqttClient.py" line="907" /> <source>Error defined by errno.</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="748" /> + <location filename="../MqttClient.py" line="909" /> <source>Message queue full.</source> <translation type="unfinished" /> </message> @@ -806,38 +806,38 @@ <context> <name>MqttLogLevelString</name> <message> - <location filename="../MqttClient.py" line="791" /> - <location filename="../MqttClient.py" line="773" /> + <location filename="../MqttClient.py" line="947" /> + <location filename="../MqttClient.py" line="930" /> <source>Unknown</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="778" /> + <location filename="../MqttClient.py" line="935" /> <source>Info</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="780" /> + <location filename="../MqttClient.py" line="937" /> <source>Notice</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="782" /> + <location filename="../MqttClient.py" line="939" /> <source>Warning</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="784" /> + <location filename="../MqttClient.py" line="941" /> <source>Error</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="786" /> + <location filename="../MqttClient.py" line="943" /> <source>Debug</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttClient.py" line="788" /> + <location filename="../MqttClient.py" line="945" /> <source>Logging Disabled</source> <translation type="unfinished" /> </message> @@ -845,49 +845,49 @@ <context> <name>MqttMonitorPlugin</name> <message> - <location filename="../../PluginMqttMonitor.py" line="193" /> - <location filename="../../PluginMqttMonitor.py" line="190" /> - <location filename="../../PluginMqttMonitor.py" line="78" /> + <location filename="../../PluginMqttMonitor.py" line="202" /> + <location filename="../../PluginMqttMonitor.py" line="198" /> + <location filename="../../PluginMqttMonitor.py" line="81" /> <source>MQTT Monitor</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="97" /> + <location filename="../../PluginMqttMonitor.py" line="103" /> <source>(package not available)</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="102" /> + <location filename="../../PluginMqttMonitor.py" line="109" /> <source>MQTT</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="103" /> + <location filename="../../PluginMqttMonitor.py" line="110" /> <source>paho-mqtt</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="172" /> + <location filename="../../PluginMqttMonitor.py" line="180" /> <source>The 'paho-mqtt' package is not available.</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="194" /> + <location filename="../../PluginMqttMonitor.py" line="203" /> <source>M&QTT Monitor</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="195" /> + <location filename="../../PluginMqttMonitor.py" line="204" /> <source>Alt+Shift+Q</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="198" /> + <location filename="../../PluginMqttMonitor.py" line="210" /> <source>Switch the input focus to the MQTT Monitor window.</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="200" /> + <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 type="unfinished" /> </message> @@ -945,7 +945,7 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1022" /> + <location filename="../MqttMonitorWidget.py" line="1101" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Subscribe</source> @@ -988,7 +988,7 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1018" /> + <location filename="../MqttMonitorWidget.py" line="1096" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Unsubscribe</source> <translation type="unfinished" /> @@ -1045,7 +1045,7 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="284" /> + <location filename="../MqttMonitorWidget.py" line="346" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <location filename="../MqttMonitorWidget.ui" line="0" /> @@ -1119,7 +1119,7 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1024" /> + <location filename="../MqttMonitorWidget.py" line="1103" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Press to activate the status display</source> <translation type="unfinished" /> @@ -1350,158 +1350,183 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="76" /> + <location filename="../MqttMonitorWidget.py" line="93" /> <source>All Files (*)</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="276" /> + <location filename="../MqttMonitorWidget.py" line="334" /> <source>Copy</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="280" /> + <location filename="../MqttMonitorWidget.py" line="340" /> <source>Select All</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="328" /> - <source>{0} - Session still present</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttMonitorWidget.py" line="364" /> - <source>Connection timed out</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="448" /> + <location filename="../MqttMonitorWidget.py" line="517" /> <source>{0}: {1}</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="671" /> + <location filename="../MqttMonitorWidget.py" line="737" /> <source>SUBSCRIBE: User Properties for '{0}'</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="697" /> + <location filename="../MqttMonitorWidget.py" line="763" /> <source>Subscribe to Topic</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="698" /> + <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="719" /> + <location filename="../MqttMonitorWidget.py" line="788" /> <source>UNSUBSCRIBE: User Properties for '{0}'</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="759" /> + <location filename="../MqttMonitorWidget.py" line="826" /> <source>PUBLISH: User Properties for '{0}'</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="795" /> + <location filename="../MqttMonitorWidget.py" line="862" /> <source>Read Payload from File</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="796" /> + <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="943" /> - <location filename="../MqttMonitorWidget.py" line="929" /> - <location filename="../MqttMonitorWidget.py" line="911" /> + <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="913" /> + <location filename="../MqttMonitorWidget.py" line="981" /> <source>Messages Files (*.txt);;All Files (*)</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="986" /> - <location filename="../MqttMonitorWidget.py" line="930" /> + <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="1000" /> - <location filename="../MqttMonitorWidget.py" line="944" /> + <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="999" /> - <location filename="../MqttMonitorWidget.py" line="985" /> - <location filename="../MqttMonitorWidget.py" line="967" /> + <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="969" /> + <location filename="../MqttMonitorWidget.py" line="1042" /> <source>Log Files (*.log);;All Files (*)</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1020" /> + <location filename="../MqttMonitorWidget.py" line="1098" /> <source>Press to deactivate the status display</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1189" /> + <location filename="../MqttMonitorWidget.py" line="1265" /> <source>QoS: {0} </source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1193" /> + <location filename="../MqttMonitorWidget.py" line="1269" /> <source>Retained Message </source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1198" /> + <location filename="../MqttMonitorWidget.py" line="1273" /> <source>Properties: </source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1202" /> + <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="1207" /> + <location filename="../MqttMonitorWidget.py" line="1283" /> <source>Message: </source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1214" /> + <location filename="../MqttMonitorWidget.py" line="1290" /> <source><empty></source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1382" /> - <location filename="../MqttMonitorWidget.py" line="1336" /> + <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> @@ -1579,237 +1604,237 @@ <context> <name>MqttReasonCodeNames</name> <message> - <location filename="../MqttReasonCodes.py" line="16" /> + <location filename="../MqttReasonCodes.py" line="15" /> <source>Success</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="21" /> - <source>Normal disconnection</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../MqttReasonCodes.py" line="24" /> + <source>Normal disconnection</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="27" /> <source>Granted QoS 0</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="28" /> + <location filename="../MqttReasonCodes.py" line="32" /> <source>Granted QoS 1</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="32" /> + <location filename="../MqttReasonCodes.py" line="37" /> <source>Granted QoS 2</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="36" /> + <location filename="../MqttReasonCodes.py" line="42" /> <source>Disconnect with will message</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="40" /> + <location filename="../MqttReasonCodes.py" line="47" /> <source>No matching subscribers</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="44" /> + <location filename="../MqttReasonCodes.py" line="53" /> <source>No subscription found</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="48" /> + <location filename="../MqttReasonCodes.py" line="58" /> <source>Continue authentication</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="52" /> + <location filename="../MqttReasonCodes.py" line="63" /> <source>Re-authenticate</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="56" /> + <location filename="../MqttReasonCodes.py" line="68" /> <source>Unspecified error</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="62" /> + <location filename="../MqttReasonCodes.py" line="78" /> <source>Malformed packet</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="66" /> - <source>Protocol error</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="70" /> - <source>Implementation specific error</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="76" /> - <source>Unsupported protocol version</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="80" /> - <source>Client identifier not valid</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../MqttReasonCodes.py" line="84" /> + <source>Protocol error</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="90" /> + <source>Implementation specific error</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="102" /> + <source>Unsupported protocol version</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="107" /> + <source>Client identifier not valid</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="112" /> <source>Bad user name or password</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="88" /> + <location filename="../MqttReasonCodes.py" line="117" /> <source>Not authorized</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="94" /> + <location filename="../MqttReasonCodes.py" line="127" /> <source>Server unavailable</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="98" /> + <location filename="../MqttReasonCodes.py" line="132" /> <source>Server busy</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="102" /> + <location filename="../MqttReasonCodes.py" line="138" /> <source>Banned</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="106" /> + <location filename="../MqttReasonCodes.py" line="143" /> <source>Server shutting down</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="110" /> + <location filename="../MqttReasonCodes.py" line="148" /> <source>Bad authentication method</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="114" /> + <location filename="../MqttReasonCodes.py" line="153" /> <source>Keep alive timeout</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="118" /> + <location filename="../MqttReasonCodes.py" line="158" /> <source>Session taken over</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="122" /> - <source>Topic filter invalid</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="127" /> - <source>Topic name invalid</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="132" /> - <source>Packet identifier in use</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="137" /> - <source>Packet identifier not found</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="141" /> - <source>Receive maximum exceeded</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="145" /> - <source>Topic alias invalid</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="149" /> - <source>Packet too large</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="153" /> - <source>Message rate too high</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="157" /> - <source>Quota exceeded</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../MqttReasonCodes.py" line="163" /> + <source>Topic filter invalid</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="170" /> + <source>Topic name invalid</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="178" /> + <source>Packet identifier in use</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="186" /> + <source>Packet identifier not found</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="191" /> + <source>Receive maximum exceeded</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="196" /> + <source>Topic alias invalid</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="201" /> + <source>Packet too large</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="207" /> + <source>Message rate too high</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="212" /> + <source>Quota exceeded</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="221" /> <source>Administrative action</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="167" /> + <location filename="../MqttReasonCodes.py" line="226" /> <source>Payload format invalid</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="171" /> + <location filename="../MqttReasonCodes.py" line="233" /> <source>Retain not supported</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="175" /> + <location filename="../MqttReasonCodes.py" line="239" /> <source>QoS not supported</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="179" /> + <location filename="../MqttReasonCodes.py" line="245" /> <source>Use another server</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="183" /> + <location filename="../MqttReasonCodes.py" line="251" /> <source>Server moved</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="187" /> + <location filename="../MqttReasonCodes.py" line="257" /> <source>Shared subscription not supported</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="191" /> + <location filename="../MqttReasonCodes.py" line="262" /> <source>Connection rate exceeded</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="195" /> + <location filename="../MqttReasonCodes.py" line="268" /> <source>Maximum connect time</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="199" /> + <location filename="../MqttReasonCodes.py" line="273" /> <source>Subscription identifiers not supported</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="203" /> + <location filename="../MqttReasonCodes.py" line="278" /> <source>Wildcard subscription not supported</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="222" /> + <location filename="../MqttReasonCodes.py" line="298" /> <source>Unknown result code ({0})</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="229" /> + <location filename="../MqttReasonCodes.py" line="307" /> <source>Unknown result code ({0}) for packet type '{1}'</source> <translation type="unfinished" /> </message> @@ -1850,7 +1875,7 @@ <context> <name>MqttUserPropertiesEditorDialog</name> <message> - <location filename="../MqttUserPropertiesEditor.py" line="134" /> + <location filename="../MqttUserPropertiesEditor.py" line="142" /> <source>User Properties</source> <translation type="unfinished" /> </message>
--- a/MqttMonitor/i18n/mqttmonitor_es.ts Sat Dec 31 16:27:45 2022 +0100 +++ b/MqttMonitor/i18n/mqttmonitor_es.ts Tue Jul 04 15:13:37 2023 +0200 @@ -4,37 +4,37 @@ <context> <name>MqttConnackMessage</name> <message> - <location filename="../MqttClient.py" line="647" /> + <location filename="../MqttClient.py" line="826" /> <source>Connection Accepted.</source> <translation>Conexión Aceptada.</translation> </message> <message> - <location filename="../MqttClient.py" line="651" /> + <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="655" /> + <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="659" /> + <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="663" /> + <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="667" /> + <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="671" /> + <location filename="../MqttClient.py" line="848" /> <source>Connection Refused: unknown reason.</source> <translation>Conexión Rechazada: razón desconocida.</translation> </message> @@ -268,22 +268,22 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="50" /> + <location filename="../MqttConnectionOptionsDialog.py" line="53" /> <source>Certificate Files (*.crt *.pem);;All Files (*)</source> <translation>Archivos de Certificado (*.crt *.pem);;Todos los Archivos (*)</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="80" /> + <location filename="../MqttConnectionOptionsDialog.py" line="82" /> <source>Invalid Connection Parameters</source> <translation>Parámetros de Conexión No Válidos</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="81" /> + <location filename="../MqttConnectionOptionsDialog.py" line="83" /> <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="../MqttConnectionOptionsDialog.py" line="187" /> + <location filename="../MqttConnectionOptionsDialog.py" line="185" /> <source>Last Will User Properties</source> <translation type="unfinished" /> </message> @@ -295,112 +295,112 @@ <context> <name>MqttConnectionProfilesDialog</name> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="76" /> - <location filename="../MqttConnectionProfilesDialog.py" line="72" /> - <location filename="../MqttConnectionProfilesDialog.py" line="68" /> + <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="80" /> + <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="926" /> - <location filename="../MqttConnectionProfilesDialog.py" line="890" /> - <location filename="../MqttConnectionProfilesDialog.py" line="154" /> + <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="927" /> - <location filename="../MqttConnectionProfilesDialog.py" line="891" /> - <location filename="../MqttConnectionProfilesDialog.py" line="155" /> + <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="182" /> - <location filename="../MqttConnectionProfilesDialog.py" line="175" /> + <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="176" /> + <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="210" /> - <location filename="../MqttConnectionProfilesDialog.py" line="183" /> + <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="209" /> - <location filename="../MqttConnectionProfilesDialog.py" line="202" /> + <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="203" /> + <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="235" /> + <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="236" /> + <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="636" /> + <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="637" /> + <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="732" /> + <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="788" /> + <location filename="../MqttConnectionProfilesDialog.py" line="817" /> <source>SSL/TLS Enabled</source> <translation>SSL/TLS Habilitado</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="789" /> + <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="802" /> + <location filename="../MqttConnectionProfilesDialog.py" line="833" /> <source>SSL/TLS Disabled</source> <translation>SSL/TLS Deshabilitado</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="803" /> + <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="903" /> + <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="904" /> + <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> @@ -726,83 +726,83 @@ <context> <name>MqttErrorMessage</name> <message> - <location filename="../MqttClient.py" line="687" /> + <location filename="../MqttClient.py" line="864" /> <source>No error.</source> <translation>No error.</translation> </message> <message> - <location filename="../MqttClient.py" line="691" /> + <location filename="../MqttClient.py" line="866" /> <source>Out of memory.</source> <translation>Out of memory.</translation> </message> <message> - <location filename="../MqttClient.py" line="695" /> + <location filename="../MqttClient.py" line="868" /> <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="700" /> + <location filename="../MqttClient.py" line="873" /> <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="704" /> + <location filename="../MqttClient.py" line="877" /> <source>The client is not currently connected.</source> <translation>El cliente no está actualmente conectado.</translation> </message> <message> - <location filename="../MqttClient.py" line="708" /> + <location filename="../MqttClient.py" line="881" /> <source>The connection was refused.</source> <translation>La conexión se ha rechazado.</translation> </message> <message> - <location filename="../MqttClient.py" line="712" /> + <location filename="../MqttClient.py" line="885" /> <source>Message not found (internal error).</source> <translation>Mensaje no encontrado (error interno).</translation> </message> <message> - <location filename="../MqttClient.py" line="716" /> + <location filename="../MqttClient.py" line="889" /> <source>The connection was lost.</source> <translation>Se ha perdido la conexión.</translation> </message> <message> - <location filename="../MqttClient.py" line="720" /> + <location filename="../MqttClient.py" line="893" /> <source>A TLS error occurred.</source> <translation>Ha ocurrido un error de TLS .</translation> </message> <message> - <location filename="../MqttClient.py" line="724" /> + <location filename="../MqttClient.py" line="895" /> <source>Payload too large.</source> <translation>Carga útil demasiado grande.</translation> </message> <message> - <location filename="../MqttClient.py" line="728" /> + <location filename="../MqttClient.py" line="897" /> <source>This feature is not supported.</source> <translation>Esta característica no está soportada.</translation> </message> <message> - <location filename="../MqttClient.py" line="732" /> + <location filename="../MqttClient.py" line="901" /> <source>Authorisation failed.</source> <translation>Ha fallado la Autorización.</translation> </message> <message> - <location filename="../MqttClient.py" line="736" /> + <location filename="../MqttClient.py" line="903" /> <source>Access denied by ACL.</source> <translation>Acceso denegado por ACL.</translation> </message> <message> - <location filename="../MqttClient.py" line="752" /> - <location filename="../MqttClient.py" line="740" /> + <location filename="../MqttClient.py" line="911" /> + <location filename="../MqttClient.py" line="905" /> <source>Unknown error.</source> <translation>Error desconocido.</translation> </message> <message> - <location filename="../MqttClient.py" line="744" /> + <location filename="../MqttClient.py" line="907" /> <source>Error defined by errno.</source> <translation>Error definido por errno.</translation> </message> <message> - <location filename="../MqttClient.py" line="748" /> + <location filename="../MqttClient.py" line="909" /> <source>Message queue full.</source> <translation>Cola de mensajes completa.</translation> </message> @@ -810,38 +810,38 @@ <context> <name>MqttLogLevelString</name> <message> - <location filename="../MqttClient.py" line="791" /> - <location filename="../MqttClient.py" line="773" /> + <location filename="../MqttClient.py" line="947" /> + <location filename="../MqttClient.py" line="930" /> <source>Unknown</source> <translation>Desconocido</translation> </message> <message> - <location filename="../MqttClient.py" line="778" /> + <location filename="../MqttClient.py" line="935" /> <source>Info</source> <translation>Info</translation> </message> <message> - <location filename="../MqttClient.py" line="780" /> + <location filename="../MqttClient.py" line="937" /> <source>Notice</source> <translation>Nota</translation> </message> <message> - <location filename="../MqttClient.py" line="782" /> + <location filename="../MqttClient.py" line="939" /> <source>Warning</source> <translation>Advertencia</translation> </message> <message> - <location filename="../MqttClient.py" line="784" /> + <location filename="../MqttClient.py" line="941" /> <source>Error</source> <translation>Error</translation> </message> <message> - <location filename="../MqttClient.py" line="786" /> + <location filename="../MqttClient.py" line="943" /> <source>Debug</source> <translation>Debug</translation> </message> <message> - <location filename="../MqttClient.py" line="788" /> + <location filename="../MqttClient.py" line="945" /> <source>Logging Disabled</source> <translation>Logging Deshabilitado</translation> </message> @@ -849,49 +849,49 @@ <context> <name>MqttMonitorPlugin</name> <message> - <location filename="../../PluginMqttMonitor.py" line="193" /> - <location filename="../../PluginMqttMonitor.py" line="190" /> - <location filename="../../PluginMqttMonitor.py" line="78" /> + <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> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="97" /> + <location filename="../../PluginMqttMonitor.py" line="103" /> <source>(package not available)</source> <translation>(package no disponible)</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="102" /> + <location filename="../../PluginMqttMonitor.py" line="109" /> <source>MQTT</source> <translation>MQTT</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="103" /> + <location filename="../../PluginMqttMonitor.py" line="110" /> <source>paho-mqtt</source> <translation>paho-mqtt</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="172" /> + <location filename="../../PluginMqttMonitor.py" line="180" /> <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="194" /> + <location filename="../../PluginMqttMonitor.py" line="203" /> <source>M&QTT Monitor</source> <translation>M&QTT Monitor</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="195" /> + <location filename="../../PluginMqttMonitor.py" line="204" /> <source>Alt+Shift+Q</source> <translation>Alt+Shift+Q</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="198" /> + <location filename="../../PluginMqttMonitor.py" line="210" /> <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="200" /> + <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>Activar MQTT Monitor</b><p>Cambia el foco de input a la ventana de MQTT Monitor.</p></translation> </message> @@ -949,7 +949,7 @@ <translation>Pub/Sub</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1022" /> + <location filename="../MqttMonitorWidget.py" line="1101" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Subscribe</source> @@ -992,7 +992,7 @@ <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1018" /> + <location filename="../MqttMonitorWidget.py" line="1096" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Unsubscribe</source> <translation>Retirar subscripción</translation> @@ -1049,7 +1049,7 @@ <translation>Pulsar para limpiar los datos de publicación</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="284" /> + <location filename="../MqttMonitorWidget.py" line="346" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <location filename="../MqttMonitorWidget.ui" line="0" /> @@ -1123,7 +1123,7 @@ <translation>Estado</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1024" /> + <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> @@ -1354,160 +1354,185 @@ <translation>Seguir mensajes de log recibidos</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="76" /> + <location filename="../MqttMonitorWidget.py" line="93" /> <source>All Files (*)</source> <translation>Todos los Archivos (*)</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="276" /> + <location filename="../MqttMonitorWidget.py" line="334" /> <source>Copy</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="280" /> + <location filename="../MqttMonitorWidget.py" line="340" /> <source>Select All</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="328" /> + <location filename="../MqttMonitorWidget.py" line="391" /> <source>{0} - Session still present</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="364" /> + <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="391" /> + <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="448" /> + <location filename="../MqttMonitorWidget.py" line="517" /> <source>{0}: {1}</source> <translation>{0}: {1}</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="671" /> + <location filename="../MqttMonitorWidget.py" line="737" /> <source>SUBSCRIBE: User Properties for '{0}'</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="697" /> + <location filename="../MqttMonitorWidget.py" line="763" /> <source>Subscribe to Topic</source> <translation>Subscribir a Tema</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="698" /> + <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="719" /> + <location filename="../MqttMonitorWidget.py" line="788" /> <source>UNSUBSCRIBE: User Properties for '{0}'</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="759" /> + <location filename="../MqttMonitorWidget.py" line="826" /> <source>PUBLISH: User Properties for '{0}'</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="795" /> + <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="796" /> + <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="943" /> - <location filename="../MqttMonitorWidget.py" line="929" /> - <location filename="../MqttMonitorWidget.py" line="911" /> + <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="913" /> + <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="986" /> - <location filename="../MqttMonitorWidget.py" line="930" /> + <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="1000" /> - <location filename="../MqttMonitorWidget.py" line="944" /> + <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="999" /> - <location filename="../MqttMonitorWidget.py" line="985" /> - <location filename="../MqttMonitorWidget.py" line="967" /> + <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="969" /> + <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="1020" /> + <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="1189" /> + <location filename="../MqttMonitorWidget.py" line="1265" /> <source>QoS: {0} </source> <translation>QoS: {0} </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1193" /> + <location filename="../MqttMonitorWidget.py" line="1269" /> <source>Retained Message </source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1198" /> + <location filename="../MqttMonitorWidget.py" line="1273" /> <source>Properties: </source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1202" /> + <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="1207" /> + <location filename="../MqttMonitorWidget.py" line="1283" /> <source>Message: </source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1214" /> + <location filename="../MqttMonitorWidget.py" line="1290" /> <source><empty></source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1382" /> - <location filename="../MqttMonitorWidget.py" line="1336" /> + <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 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> + <message> <source><b>Load</b></source> <translation type="vanished"><b>Carga</b></translation> </message> @@ -1588,237 +1613,237 @@ <context> <name>MqttReasonCodeNames</name> <message> - <location filename="../MqttReasonCodes.py" line="16" /> + <location filename="../MqttReasonCodes.py" line="15" /> <source>Success</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="21" /> - <source>Normal disconnection</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../MqttReasonCodes.py" line="24" /> + <source>Normal disconnection</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="27" /> <source>Granted QoS 0</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="28" /> + <location filename="../MqttReasonCodes.py" line="32" /> <source>Granted QoS 1</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="32" /> + <location filename="../MqttReasonCodes.py" line="37" /> <source>Granted QoS 2</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="36" /> + <location filename="../MqttReasonCodes.py" line="42" /> <source>Disconnect with will message</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="40" /> + <location filename="../MqttReasonCodes.py" line="47" /> <source>No matching subscribers</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="44" /> + <location filename="../MqttReasonCodes.py" line="53" /> <source>No subscription found</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="48" /> + <location filename="../MqttReasonCodes.py" line="58" /> <source>Continue authentication</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="52" /> + <location filename="../MqttReasonCodes.py" line="63" /> <source>Re-authenticate</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="56" /> + <location filename="../MqttReasonCodes.py" line="68" /> <source>Unspecified error</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="62" /> + <location filename="../MqttReasonCodes.py" line="78" /> <source>Malformed packet</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="66" /> - <source>Protocol error</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="70" /> - <source>Implementation specific error</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="76" /> - <source>Unsupported protocol version</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="80" /> - <source>Client identifier not valid</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../MqttReasonCodes.py" line="84" /> + <source>Protocol error</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="90" /> + <source>Implementation specific error</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="102" /> + <source>Unsupported protocol version</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="107" /> + <source>Client identifier not valid</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="112" /> <source>Bad user name or password</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="88" /> + <location filename="../MqttReasonCodes.py" line="117" /> <source>Not authorized</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="94" /> + <location filename="../MqttReasonCodes.py" line="127" /> <source>Server unavailable</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="98" /> + <location filename="../MqttReasonCodes.py" line="132" /> <source>Server busy</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="102" /> + <location filename="../MqttReasonCodes.py" line="138" /> <source>Banned</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="106" /> + <location filename="../MqttReasonCodes.py" line="143" /> <source>Server shutting down</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="110" /> + <location filename="../MqttReasonCodes.py" line="148" /> <source>Bad authentication method</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="114" /> + <location filename="../MqttReasonCodes.py" line="153" /> <source>Keep alive timeout</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="118" /> + <location filename="../MqttReasonCodes.py" line="158" /> <source>Session taken over</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="122" /> - <source>Topic filter invalid</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="127" /> - <source>Topic name invalid</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="132" /> - <source>Packet identifier in use</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="137" /> - <source>Packet identifier not found</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="141" /> - <source>Receive maximum exceeded</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="145" /> - <source>Topic alias invalid</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="149" /> - <source>Packet too large</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="153" /> - <source>Message rate too high</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="157" /> - <source>Quota exceeded</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../MqttReasonCodes.py" line="163" /> + <source>Topic filter invalid</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="170" /> + <source>Topic name invalid</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="178" /> + <source>Packet identifier in use</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="186" /> + <source>Packet identifier not found</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="191" /> + <source>Receive maximum exceeded</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="196" /> + <source>Topic alias invalid</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="201" /> + <source>Packet too large</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="207" /> + <source>Message rate too high</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="212" /> + <source>Quota exceeded</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="221" /> <source>Administrative action</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="167" /> + <location filename="../MqttReasonCodes.py" line="226" /> <source>Payload format invalid</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="171" /> + <location filename="../MqttReasonCodes.py" line="233" /> <source>Retain not supported</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="175" /> + <location filename="../MqttReasonCodes.py" line="239" /> <source>QoS not supported</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="179" /> + <location filename="../MqttReasonCodes.py" line="245" /> <source>Use another server</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="183" /> + <location filename="../MqttReasonCodes.py" line="251" /> <source>Server moved</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="187" /> + <location filename="../MqttReasonCodes.py" line="257" /> <source>Shared subscription not supported</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="191" /> + <location filename="../MqttReasonCodes.py" line="262" /> <source>Connection rate exceeded</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="195" /> + <location filename="../MqttReasonCodes.py" line="268" /> <source>Maximum connect time</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="199" /> + <location filename="../MqttReasonCodes.py" line="273" /> <source>Subscription identifiers not supported</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="203" /> + <location filename="../MqttReasonCodes.py" line="278" /> <source>Wildcard subscription not supported</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="222" /> + <location filename="../MqttReasonCodes.py" line="298" /> <source>Unknown result code ({0})</source> <translation type="unfinished" /> </message> <message> - <location filename="../MqttReasonCodes.py" line="229" /> + <location filename="../MqttReasonCodes.py" line="307" /> <source>Unknown result code ({0}) for packet type '{1}'</source> <translation type="unfinished" /> </message> @@ -1859,7 +1884,7 @@ <context> <name>MqttUserPropertiesEditorDialog</name> <message> - <location filename="../MqttUserPropertiesEditor.py" line="134" /> + <location filename="../MqttUserPropertiesEditor.py" line="142" /> <source>User Properties</source> <translation type="unfinished" /> </message>
--- a/MqttMonitor/i18n/mqttmonitor_ru.ts Sat Dec 31 16:27:45 2022 +0100 +++ b/MqttMonitor/i18n/mqttmonitor_ru.ts Tue Jul 04 15:13:37 2023 +0200 @@ -1,1863 +1,1888 @@ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.1" language="ru_RU"> - <context> +<context> <name>MqttConnackMessage</name> <message> - <location filename="../MqttClient.py" line="647" /> - <source>Connection Accepted.</source> - <translation>Соединение установлено.</translation> + <location filename="../MqttClient.py" line="826"/> + <source>Connection Accepted.</source> + <translation>Соединение установлено.</translation> </message> <message> - <location filename="../MqttClient.py" line="651" /> - <source>Connection Refused: unacceptable protocol version.</source> - <translation>Соединение отклонено: неприемлемая версия протокола.</translation> + <location filename="../MqttClient.py" line="828"/> + <source>Connection Refused: unacceptable protocol version.</source> + <translation>Соединение отклонено: неприемлемая версия протокола.</translation> </message> <message> - <location filename="../MqttClient.py" line="655" /> - <source>Connection Refused: identifier rejected.</source> - <translation>Соединение отклонено: идентификатор отклонен.</translation> + <location filename="../MqttClient.py" line="832"/> + <source>Connection Refused: identifier rejected.</source> + <translation>Соединение отклонено: идентификатор отклонен.</translation> </message> <message> - <location filename="../MqttClient.py" line="659" /> - <source>Connection Refused: broker unavailable.</source> - <translation>Соединение отклонено: брокер недоступен.</translation> + <location filename="../MqttClient.py" line="836"/> + <source>Connection Refused: broker unavailable.</source> + <translation>Соединение отклонено: брокер недоступен.</translation> </message> <message> - <location filename="../MqttClient.py" line="663" /> - <source>Connection Refused: bad user name or password.</source> - <translation>Соединение отклонено: неправильное имя пользователя или пароль.</translation> + <location filename="../MqttClient.py" line="840"/> + <source>Connection Refused: bad user name or password.</source> + <translation>Соединение отклонено: неправильное имя пользователя или пароль.</translation> </message> <message> - <location filename="../MqttClient.py" line="667" /> - <source>Connection Refused: not authorised.</source> - <translation>Соединение отклонено: нет авторизации.</translation> + <location filename="../MqttClient.py" line="844"/> + <source>Connection Refused: not authorised.</source> + <translation>Соединение отклонено: нет авторизации.</translation> </message> <message> - <location filename="../MqttClient.py" line="671" /> - <source>Connection Refused: unknown reason.</source> - <translation>Соединение отклонено: неизвестная причина.</translation> + <location filename="../MqttClient.py" line="848"/> + <source>Connection Refused: unknown reason.</source> + <translation>Соединение отклонено: неизвестная причина.</translation> </message> - </context> - <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> + <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> + <source>General</source> + <translation>Главное</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> - <source>Client ID:</source> - <translation>ID клиента:</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> + <source>Client ID:</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>Enter the ID string for this client</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>Press to generate a client ID</source> + <translation>Генерировать ID клиента</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> - <source>Generate</source> - <translation>Генерировать</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> + <source>Generate</source> + <translation>Генерировать</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> - <source>MQTT Protocol</source> - <translation>Протокол MQTT</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> + <source>MQTT Protocol</source> + <translation>Протокол MQTT</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>Select to use the MQTT 3.1 protocol</source> + <translation>Выбор протокола MQTT 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>v 3.1</source> + <translation>вер 3.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 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> + <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> + <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> + <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>Enter the connection timeout in seconds</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"/> + <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> + <source> s</source> + <translation> сек</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> - <source>Keep Alive Interval:</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>Enter the keep alive interval in seconds</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>Select to start with a clean session</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>Clean Session</source> - <translation>Очищать сеанс</translation> + <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>User Credentials</source> + <translation>Учетные данные пользователя</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> - <source>User Name:</source> - <translation>Имя пользователя:</translation> + <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>Enter the user name</source> + <translation>Введите имя пользователя</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> - <source>Password:</source> - <translation>Пароль:</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> + <source>Password:</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>Enter the password</source> + <translation>Введите пароль</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> - <source>Last Will</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 topic of the last will</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>QoS:</source> - <translation>QoS:</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> + <source>QoS:</source> + <translation>QoS:</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> - <source>Enter the desired QoS value</source> - <translation>Задайте желаемое значение уровня обслуживания QoS</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>Select to retain the last will message</source> - <translation>Разрешить удерживать сообщение 'последней воли'</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>Retain</source> - <translation>Удерживать</translation> + <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>Press to edit the user properties</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 last will message to be sent</source> + <translation>Введите сообщение 'последней воли' для отправки</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> - <source>SSL/TLS</source> - <translation>SSL/TLS</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 enable SSL/TLS connections</source> - <translation>Разрешить SSL/TLS соединения</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> + <source>Select to enable SSL/TLS connections</source> + <translation>Разрешить SSL/TLS соединения</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>SSL/TLS Enabled</source> + <translation>Разрешить SSL/TLS</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> - <source>CA File:</source> - <translation>Файл CA:</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> + <source>CA File:</source> + <translation>Файл CA:</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> + <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>User Properties</source> + <translation>Пользовательские свойства</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> - <source>Select to edit the CONNECT user properties</source> - <translation>Разрешить редактировать пользовательские свойства пакета CONNECT</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> + <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> + <source>CONNECT</source> + <translation>CONNECT</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> - <source>Select to edit the DISCONNECT user properties</source> - <translation>Разрешить редактировать пользовательские свойства пакета DISCONNECT</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> + <source>Select to edit the DISCONNECT user properties</source> + <translation>Разрешить редактировать пользовательские свойства пакета DISCONNECT</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> - <source>DISCONNECT</source> - <translation>DISCONNECT</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> + <source>DISCONNECT</source> + <translation>DISCONNECT</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> - <source>Select to use the CONNECT user properties when disconnecting</source> - <translation>Разрешить использовать пользовательские свойства пакета CONNECT при отключении</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="../MqttConnectionOptionsDialog.ui" line="0" /> - <source>Use CONNECT properties for DISCONNECT</source> - <translation>Использовать свойства CONNECT для DISCONNECT</translation> + <location filename="../MqttConnectionOptionsDialog.ui" line="0"/> + <source>Use CONNECT properties for DISCONNECT</source> + <translation>Использовать свойства CONNECT для DISCONNECT</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="50" /> - <source>Certificate Files (*.crt *.pem);;All Files (*)</source> - <translation>Файлы сертификатов (*.crt *.pem);;Все файлы (*)</translation> + <location filename="../MqttConnectionOptionsDialog.py" line="53"/> + <source>Certificate Files (*.crt *.pem);;All Files (*)</source> + <translation>Файлы сертификатов (*.crt *.pem);;Все файлы (*)</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="80" /> - <source>Invalid Connection Parameters</source> - <translation>Недопустимые параметры соединения</translation> + <location filename="../MqttConnectionOptionsDialog.py" line="82"/> + <source>Invalid Connection Parameters</source> + <translation>Недопустимые параметры соединения</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="81" /> - <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="../MqttConnectionOptionsDialog.py" line="187" /> - <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> +</context> +<context> <name>MqttConnectionProfilesDialog</name> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="76" /> - <location filename="../MqttConnectionProfilesDialog.py" line="72" /> - <location filename="../MqttConnectionProfilesDialog.py" line="68" /> - <source>Certificate Files (*.crt *.pem);;All Files (*)</source> - <translation>Файлы сертификатов (*.crt *.pem);;Все файлы (*)</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="../MqttConnectionProfilesDialog.py" line="80" /> - <source>Key Files (*.key *.pem);;All Files (*)</source> - <translation>Файлы ключей (*.key *.pem);;Все файлы (*)</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="90"/> + <source>Key Files (*.key *.pem);;All Files (*)</source> + <translation>Файлы ключей (*.key *.pem);;Все файлы (*)</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="926" /> - <location filename="../MqttConnectionProfilesDialog.py" line="890" /> - <location filename="../MqttConnectionProfilesDialog.py" line="154" /> - <source>Changed Connection Profile</source> - <translation>Измененный профиль соединения</translation> + <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> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="927" /> - <location filename="../MqttConnectionProfilesDialog.py" line="891" /> - <location filename="../MqttConnectionProfilesDialog.py" line="155" /> - <source>The current profile has unsaved changes. Shall these be saved?</source> - <translation>В текущем профиле есть несохраненные изменения. Должны ли они быть сохранены?</translation> + <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> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="182" /> - <location filename="../MqttConnectionProfilesDialog.py" line="175" /> - <source>New Connection Profile</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="../MqttConnectionProfilesDialog.py" line="176" /> - <source>Enter name for the new Connection Profile:</source> - <translation>Введите имя нового профиля соединения:</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="192"/> + <source>Enter name for the new Connection Profile:</source> + <translation>Введите имя нового профиля соединения:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="210" /> - <location filename="../MqttConnectionProfilesDialog.py" line="183" /> - <source><p>A connection named <b>{0}</b> exists already. Aborting...</p></source> - <translation><p>Уже существует соединение с именем <b>{0}</b>. Прерывание... </ p></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="../MqttConnectionProfilesDialog.py" line="209" /> - <location filename="../MqttConnectionProfilesDialog.py" line="202" /> - <source>Copy Connection Profile</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="../MqttConnectionProfilesDialog.py" line="203" /> - <source>Enter name for the copied Connection Profile:</source> - <translation>Введите имя для скопированного профиля соединения:</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="221"/> + <source>Enter name for the copied Connection Profile:</source> + <translation>Введите имя для скопированного профиля соединения:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="235" /> - <source>Delete Connection Profile</source> - <translation>Удалить профиль соединения</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="256"/> + <source>Delete Connection Profile</source> + <translation>Удалить профиль соединения</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="236" /> - <source><p>Shall the Connection Profile <b>{0}</b> really be deleted?</p></source> - <translation><p>Действительно удалить профиль соединения <b>{0}</b>?</p></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="../MqttConnectionProfilesDialog.py" line="636" /> - <source>Invalid Connection Parameters</source> - <translation>Недопустимые параметры соединения</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="664"/> + <source>Invalid Connection Parameters</source> + <translation>Недопустимые параметры соединения</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="637" /> - <source>An empty Client ID requires a clean session.</source> - <translation>При незаданном ID клиента требуется чистый сеанс.</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="665"/> + <source>An empty Client ID requires a clean session.</source> + <translation>При незаданном ID клиента требуется чистый сеанс.</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="732" /> - <source>Last Will User Properties</source> - <translation>Пользовательские свойства 'последней воли'</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="760"/> + <source>Last Will User Properties</source> + <translation>Пользовательские свойства 'последней воли'</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <location filename="../MqttConnectionProfilesDialog.py" line="788" /> - <source>SSL/TLS Enabled</source> - <translation>Разрешить SSL/TLS</translation> + <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="789" /> - <source>Encrypted connection using SSL/TLS has been enabled. However, the broker port is still the default unencrypted port (port 1883). Shall this be changed?</source> - <translation>Разрешено соединение с использованием шифрования SSL/TLS. Однако по-прежнему задействован порт брокера без шифрования, по умолчанию порт 1883. Изменить?</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="../MqttConnectionProfilesDialog.py" line="802" /> - <source>SSL/TLS Disabled</source> - <translation>SSL/TLS запрещено</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="833"/> + <source>SSL/TLS Disabled</source> + <translation>SSL/TLS запрещено</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="803" /> - <source>Encrypted connection using SSL/TLS has been disabled. However, the broker port is still the default encrypted port (port 8883). Shall this be changed?</source> - <translation>Соединение с использованием шифрования SSL/TLS запрещено. Однако по-прежнему задействован порт брокера с шифрованием, по умолчанию порт 8883. Изменить?</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="../MqttConnectionProfilesDialog.py" line="903" /> - <source>Changed Connection Profiles</source> - <translation>Измененные профили соединений</translation> + <location filename="../MqttConnectionProfilesDialog.py" line="936"/> + <source>Changed Connection Profiles</source> + <translation>Измененные профили соединений</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="904" /> - <source>The list of connection profiles has unsaved changes.</source> - <translation>В списке профилей соединений имеются несохраненные изменения.</translation> + <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>MQTT Connection Profiles</source> + <translation>Профили подключения MQTT</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>Press to add a new profile</source> + <translation>Добавить новый профиль</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <source>Press to copy the selected profile</source> - <translation>Копировать выбранный профиль</translation> + <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> + <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>Profile Name:</source> + <translation>Имя профиля:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <source>Broker Address:</source> - <translation>Адрес брокера:</translation> + <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> + <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> + <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>General</source> + <translation>Главное</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <source>MQTT Protocol</source> - <translation>Протокол MQTT</translation> + <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>Select to use the MQTT 3.1 protocol</source> + <translation>Выбор протокола MQTT 3.1</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>v 3.1</source> + <translation>вер. 3.1</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>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>v 3.1.1</source> - <translation>вер. 3.1.1</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" /> - <source>Select to use the MQTT 5.0 protocol</source> - <translation>Выбор протокола MQTT 5.0</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>v 5.0</source> - <translation>вер. 5.0</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>Connection Timeout:</source> - <translation>Время ожидания соединения:</translation> + <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>Enter the connection timeout in seconds</source> + <translation>Задайте время ожидания соединения, в секундах</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <source> s</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>Keep Alive Interval:</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 keep alive interval in seconds</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>Select to start with a clean session</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>Clean Session</source> - <translation>Очищать сеанс</translation> + <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>User Credentials</source> + <translation>Учетные данные пользователя</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <source>User Name:</source> - <translation>Имя пользователя:</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> + <source>User Name:</source> + <translation>Имя пользователя:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <source>Enter the user name</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>Password:</source> - <translation>Пароль:</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> + <source>Password:</source> + <translation>Пароль:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <source>Enter the password</source> - <translation>Введите пароль</translation> + <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>Toggle to show the password</source> + <translation>Отображение пароля</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <source>Last Will</source> - <translation>'Последняя воля'</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> + <source>Last Will</source> + <translation>'Последняя воля'</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <source>Enter the topic of the last will</source> - <translation>Введите тему 'последней воли'</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" /> - <source>QoS:</source> - <translation>QoS:</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> + <source>QoS:</source> + <translation>QoS:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <source>Enter the desired QoS value</source> - <translation>Задайте желаемое значение уровня обслуживания QoS</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>Select to retain the last will message</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>Retain</source> - <translation>Удерживать</translation> + <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>Press to edit the user properties</source> + <translation>Правка пользовательских свойств</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <source>Enter the last will message to be sent</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>SSL/TLS</source> - <translation>SSL/TLS</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 enable SSL/TLS connections</source> - <translation>Разрешить SSL/TLS соединения</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>Select to use the default certificate file of the client</source> - <translation>Разрешить использовать файл сертификата клиента по умолчанию</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>CA signed server certificate</source> - <translation>Сертификат подписываемый сервером CA</translation> + <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>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> + <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> + <source>CA certificate file</source> + <translation>Файл сертификата CA</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"/> + <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> + <source>CA File:</source> + <translation>Файл CA:</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> + <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>Select to use a self signed client certificate</source> + <translation>Разрешить использовать самостоятельно подписываемый сертификат клиента</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <source>Self signed certificates</source> - <translation>Самостоятельно подписываемые сертификаты</translation> + <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>Client Certificate File:</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>Enter the full path to the client certificate file</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>Client Key File:</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 full path to the client key file</source> + <translation>Введите полный путь к файлу ключа клиента</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <source>User Properties</source> - <translation>Пользовательские свойства</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> + <source>User Properties</source> + <translation>Пользовательские свойства</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 edit the CONNECT user properties</source> + <translation>Разрешить редактировать пользовательские свойства пакета CONNECT</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <source>CONNECT</source> - <translation>CONNECT</translation> + <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.ui" line="0"/> + <source>Select to edit the DISCONNECT user properties</source> + <translation>Разрешить редактировать пользовательские свойства пакета DISCONNECT</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <source>DISCONNECT</source> - <translation>DISCONNECT</translation> + <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 CONNECT user properties when disconnecting</source> + <translation>Разрешить использовать пользовательские свойства CONNECT при отключении</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <source>Use CONNECT properties for DISCONNECT</source> - <translation>Использовать свойства CONNECT для DISCONNECT</translation> + <location filename="../MqttConnectionProfilesDialog.ui" line="0"/> + <source>Use CONNECT properties for DISCONNECT</source> + <translation>Использовать свойства CONNECT для DISCONNECT</translation> </message> - </context> - <context> +</context> +<context> <name>MqttErrorMessage</name> <message> - <location filename="../MqttClient.py" line="687" /> - <source>No error.</source> - <translation>Нет ошибки.</translation> + <location filename="../MqttClient.py" line="864"/> + <source>No error.</source> + <translation>Нет ошибки.</translation> </message> <message> - <location filename="../MqttClient.py" line="691" /> - <source>Out of memory.</source> - <translation>Недостаточно памяти.</translation> + <location filename="../MqttClient.py" line="866"/> + <source>Out of memory.</source> + <translation>Недостаточно памяти.</translation> </message> <message> - <location filename="../MqttClient.py" line="695" /> - <source>A network protocol error occurred when communicating with the broker.</source> - <translation>Во время общения с брокером произошла ошибка сетевого протокола.</translation> + <location filename="../MqttClient.py" line="868"/> + <source>A network protocol error occurred when communicating with the broker.</source> + <translation>Во время общения с брокером произошла ошибка сетевого протокола.</translation> </message> <message> - <location filename="../MqttClient.py" line="700" /> - <source>Invalid function arguments provided.</source> - <translation>Предоставлены недопустимые аргументы функции.</translation> + <location filename="../MqttClient.py" line="873"/> + <source>Invalid function arguments provided.</source> + <translation>Предоставлены недопустимые аргументы функции.</translation> </message> <message> - <location filename="../MqttClient.py" line="704" /> - <source>The client is not currently connected.</source> - <translation>В настоящее время клиент не подключен.</translation> + <location filename="../MqttClient.py" line="877"/> + <source>The client is not currently connected.</source> + <translation>В настоящее время клиент не подключен.</translation> </message> <message> - <location filename="../MqttClient.py" line="708" /> - <source>The connection was refused.</source> - <translation>Соединение было отклонено.</translation> + <location filename="../MqttClient.py" line="881"/> + <source>The connection was refused.</source> + <translation>Соединение было отклонено.</translation> </message> <message> - <location filename="../MqttClient.py" line="712" /> - <source>Message not found (internal error).</source> - <translation>Сообщение не найдено (внутренняя ошибка).</translation> + <location filename="../MqttClient.py" line="885"/> + <source>Message not found (internal error).</source> + <translation>Сообщение не найдено (внутренняя ошибка).</translation> </message> <message> - <location filename="../MqttClient.py" line="716" /> - <source>The connection was lost.</source> - <translation>Соединение было потеряно.</translation> + <location filename="../MqttClient.py" line="889"/> + <source>The connection was lost.</source> + <translation>Соединение было потеряно.</translation> </message> <message> - <location filename="../MqttClient.py" line="720" /> - <source>A TLS error occurred.</source> - <translation>Произошла ошибка TLS.</translation> + <location filename="../MqttClient.py" line="893"/> + <source>A TLS error occurred.</source> + <translation>Произошла ошибка TLS.</translation> </message> <message> - <location filename="../MqttClient.py" line="724" /> - <source>Payload too large.</source> - <translation>Слишком большая полезная нагрузка.</translation> + <location filename="../MqttClient.py" line="895"/> + <source>Payload too large.</source> + <translation>Слишком большая полезная нагрузка.</translation> </message> <message> - <location filename="../MqttClient.py" line="728" /> - <source>This feature is not supported.</source> - <translation>Эта функция не поддерживается.</translation> + <location filename="../MqttClient.py" line="897"/> + <source>This feature is not supported.</source> + <translation>Эта функция не поддерживается.</translation> </message> <message> - <location filename="../MqttClient.py" line="732" /> - <source>Authorisation failed.</source> - <translation>Ошибка авторизации.</translation> + <location filename="../MqttClient.py" line="901"/> + <source>Authorisation failed.</source> + <translation>Ошибка авторизации.</translation> </message> <message> - <location filename="../MqttClient.py" line="736" /> - <source>Access denied by ACL.</source> - <translation>Отказано в доступе к ACL.</translation> + <location filename="../MqttClient.py" line="903"/> + <source>Access denied by ACL.</source> + <translation>Отказано в доступе к ACL.</translation> </message> <message> - <location filename="../MqttClient.py" line="752" /> - <location filename="../MqttClient.py" line="740" /> - <source>Unknown error.</source> - <translation>Неизвестная ошибка.</translation> + <location filename="../MqttClient.py" line="911"/> + <location filename="../MqttClient.py" line="905"/> + <source>Unknown error.</source> + <translation>Неизвестная ошибка.</translation> </message> <message> - <location filename="../MqttClient.py" line="744" /> - <source>Error defined by errno.</source> - <translation>Ошибка, определяемая errno.</translation> + <location filename="../MqttClient.py" line="907"/> + <source>Error defined by errno.</source> + <translation>Ошибка, определяемая errno.</translation> </message> <message> - <location filename="../MqttClient.py" line="748" /> - <source>Message queue full.</source> - <translation>Очередь сообщений заполнена.</translation> + <location filename="../MqttClient.py" line="909"/> + <source>Message queue full.</source> + <translation>Очередь сообщений заполнена.</translation> </message> - </context> - <context> +</context> +<context> <name>MqttLogLevelString</name> <message> - <location filename="../MqttClient.py" line="791" /> - <location filename="../MqttClient.py" line="773" /> - <source>Unknown</source> - <translation>Unknown</translation> + <location filename="../MqttClient.py" line="947"/> + <location filename="../MqttClient.py" line="930"/> + <source>Unknown</source> + <translation>Unknown</translation> </message> <message> - <location filename="../MqttClient.py" line="778" /> - <source>Info</source> - <translation>Info</translation> + <location filename="../MqttClient.py" line="935"/> + <source>Info</source> + <translation>Info</translation> </message> <message> - <location filename="../MqttClient.py" line="780" /> - <source>Notice</source> - <translation>Notice</translation> + <location filename="../MqttClient.py" line="937"/> + <source>Notice</source> + <translation>Notice</translation> </message> <message> - <location filename="../MqttClient.py" line="782" /> - <source>Warning</source> - <translation>Warning</translation> + <location filename="../MqttClient.py" line="939"/> + <source>Warning</source> + <translation>Warning</translation> </message> <message> - <location filename="../MqttClient.py" line="784" /> - <source>Error</source> - <translation>Error</translation> + <location filename="../MqttClient.py" line="941"/> + <source>Error</source> + <translation>Error</translation> </message> <message> - <location filename="../MqttClient.py" line="786" /> - <source>Debug</source> - <translation>Debug</translation> + <location filename="../MqttClient.py" line="943"/> + <source>Debug</source> + <translation>Debug</translation> </message> <message> - <location filename="../MqttClient.py" line="788" /> - <source>Logging Disabled</source> - <translation>Ведение журнала запрещено</translation> + <location filename="../MqttClient.py" line="945"/> + <source>Logging Disabled</source> + <translation>Ведение журнала запрещено</translation> </message> - </context> - <context> +</context> +<context> <name>MqttMonitorPlugin</name> <message> - <location filename="../../PluginMqttMonitor.py" line="193" /> - <location filename="../../PluginMqttMonitor.py" line="190" /> - <location filename="../../PluginMqttMonitor.py" line="78" /> - <source>MQTT Monitor</source> - <translation>MQTT Monitor</translation> + <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> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="97" /> - <source>(package not available)</source> - <translation>(пакет не доступен)</translation> + <location filename="../../PluginMqttMonitor.py" line="103"/> + <source>(package not available)</source> + <translation>(пакет не доступен)</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="102" /> - <source>MQTT</source> - <translation>MQTT - клиентская библиотека Python</translation> + <location filename="../../PluginMqttMonitor.py" line="109"/> + <source>MQTT</source> + <translation>MQTT - клиентская библиотека Python</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="103" /> - <source>paho-mqtt</source> - <translation>paho-mqtt</translation> + <location filename="../../PluginMqttMonitor.py" line="110"/> + <source>paho-mqtt</source> + <translation>paho-mqtt</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="172" /> - <source>The 'paho-mqtt' package is not available.</source> - <translation>Пакет 'paho-mqtt' недоступен.</translation> + <location filename="../../PluginMqttMonitor.py" line="180"/> + <source>The 'paho-mqtt' package is not available.</source> + <translation>Пакет 'paho-mqtt' недоступен.</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="194" /> - <source>M&QTT Monitor</source> - <translation>M&QTT Monitor</translation> + <location filename="../../PluginMqttMonitor.py" line="203"/> + <source>M&QTT Monitor</source> + <translation>M&QTT Monitor</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="195" /> - <source>Alt+Shift+Q</source> - <translation>Alt+Shift+Q</translation> + <location filename="../../PluginMqttMonitor.py" line="204"/> + <source>Alt+Shift+Q</source> + <translation>Alt+Shift+Q</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="198" /> - <source>Switch the input focus to the MQTT Monitor window.</source> - <translation>Переключить фокус ввода в окно MQTT Monitor.</translation> + <location filename="../../PluginMqttMonitor.py" line="210"/> + <source>Switch the input focus to the MQTT Monitor window.</source> + <translation>Переключить фокус ввода в окно MQTT Monitor.</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="200" /> - <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> + <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> +</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="../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> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Broker</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="../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> + <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.ui" line="0" /> - <source>Enter the host name of the broker</source> - <translation>Введите имя хоста брокера</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> + <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> + <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="../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> + <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="../MqttMonitorWidget.ui" line="0"/> + <source>Pub/Sub</source> + <translation>Подписки/Публикации</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1022" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Subscribe</source> - <translation>Подписаться</translation> + <location filename="../MqttMonitorWidget.py" line="1101"/> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Subscribe</source> + <translation>Подписаться</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="../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> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Enter the topic</source> + <translation>Введите тему</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>QoS:</source> - <translation>QoS:</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> + <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="../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> + <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="../MqttMonitorWidget.py" line="1018" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Unsubscribe</source> - <translation>Отписаться</translation> + <location filename="../MqttMonitorWidget.py" line="1096"/> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Unsubscribe</source> + <translation>Отписаться</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Select the topic to unsubscribe</source> - <translation>Выберите тему для отписки</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> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Press to unsubscribe the selected topic</source> + <translation>Отписаться от выбранной темы</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Publish</source> - <translation>Опубликовать</translation> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Publish</source> + <translation>Опубликовать</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Enter the topic to publish to</source> - <translation>Введите тему для публикации</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> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Select to retain the published message</source> + <translation>Разрешить удерживать опубликованное сообщение</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Retain</source> - <translation>Удерживать</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> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Enter the string data to be sent</source> + <translation>Введите строку данных для отправки</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Payload File:</source> - <translation>Файл полезной нагрузки:</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> + <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> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Press to clear the publish data</source> + <translation>Очистить данные публикации</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="284" /> - <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="../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> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Press to clear the retained messages of the selected topic</source> - <translation>Разрешить очищать сохраненные сообщения выбранной темы</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> + <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="../MqttMonitorWidget.ui" line="0"/> + <source>Select to clear the publish data after the message was published</source> + <translation>Разрешить очищать данные публикации после опубликования сообщения</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Clear when sent</source> - <translation>Очищать после отправки</translation> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Clear when sent</source> + <translation>Очищать после отправки</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Properties</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> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>MQTT V5 Properties</source> + <translation>Свойства MQTT вер. 5</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Messages</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> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Press to save the received messages to a file</source> + <translation>Сохранить полученные сообщения в файл</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Save</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> + <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> + <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="../MqttMonitorWidget.ui" line="0"/> + <source>Follow received messages</source> + <translation>Следовать за получаемыми сообщениями</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Status</source> - <translation>Статус</translation> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Status</source> + <translation>Статус</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1024" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Press to activate the status display</source> - <translation>Активировать отображение статуса</translation> + <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> + <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="../MqttMonitorWidget.ui" line="0"/> + <source>Version</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" /> - <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="../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="../MqttMonitorWidget.ui" line="0" /> - <source>Timestamp</source> - <translation>Метки времени</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> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Uptime</source> + <translation>Время работы</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Subscriptions</source> - <translation>Подписки</translation> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Subscriptions</source> + <translation>Подписки</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source><b>Clients</b></source> - <translation><b>Клиенты</b></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> + <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="../MqttMonitorWidget.ui" line="0"/> + <source>Disconnected</source> + <translation>Отключено</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Expired</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> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Maximum</source> + <translation>Максимум</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Total</source> - <translation>Всего</translation> + <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="../MqttMonitorWidget.ui" line="0"/> + <source><b>Messages</b></source> + <translation><b>Сообщения</b></translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Sent</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> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Received</source> + <translation>Получено</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Stored</source> - <translation>Сохранено</translation> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Stored</source> + <translation>Сохранено</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Inflight</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> + <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> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source><b>PUBLISH Messages</b></source> + <translation><b>PUBLISH сообщения</b></translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Dropped</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> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source><b>Traffic</b></source> + <translation><b>Трафик</b></translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Bytes Sent</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> + <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> + <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="../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.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="../MqttMonitorWidget.ui" line="0" /> - <source>Messages Sent</source> - <translation>Сообщений отправлено</translation> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Messages Sent</source> + <translation>Сообщений отправлено</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Messages Received</source> - <translation>Сообщений принято</translation> + <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.ui" line="0"/> + <source>PUBLISH Sent</source> + <translation>PUBLISH отправлено</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>PUBLISH Received</source> - <translation>PUBLISH принято</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> + <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> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Connections</source> + <translation>Соединения</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Sockets</source> - <translation>Сокеты</translation> + <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.ui" line="0"/> + <source>Log</source> + <translation>Журнал</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Max. Log Level:</source> - <translation>Максимальный уровень журнала:</translation> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Max. Log Level:</source> + <translation>Максимальный уровень журнала:</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Select the maximum log level to show</source> - <translation>Выберите максимальный уровень журнала для показа</translation> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Select the maximum log level to show</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> + <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.ui" line="0"/> + <source>Press to clear the list of received log messages</source> + <translation>Очистить список принятых сообщений журнала</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="0" /> - <source>Select to scroll to the most recently received log message</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="../MqttMonitorWidget.ui" line="0" /> - <source>Follow received log messages</source> - <translation>Следовать за получаемыми сообщениями</translation> + <location filename="../MqttMonitorWidget.ui" line="0"/> + <source>Follow received log messages</source> + <translation>Следовать за получаемыми сообщениями</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="76" /> - <source>All Files (*)</source> - <translation>Все файлы (*)</translation> + <location filename="../MqttMonitorWidget.py" line="93"/> + <source>All Files (*)</source> + <translation>Все файлы (*)</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="276" /> - <source>Copy</source> - <translation>Копировать</translation> + <location filename="../MqttMonitorWidget.py" line="334"/> + <source>Copy</source> + <translation>Копировать</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="280" /> - <source>Select All</source> - <translation>Выбрать все</translation> + <location filename="../MqttMonitorWidget.py" line="340"/> + <source>Select All</source> + <translation>Выбрать все</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="328" /> - <source>{0} - Session still present</source> - <translation>{0} - Сеанс установлен</translation> + <location filename="../MqttMonitorWidget.py" line="391"/> + <source>{0} - Session still present</source> + <translation>{0} - Сеанс установлен</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="364" /> - <source>Connection timed out</source> - <translation>Время ожидания соединения истекло</translation> + <location filename="../MqttMonitorWidget.py" line="429"/> + <source>Connection timed out</source> + <translation>Время ожидания соединения истекло</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="391" /> - <source>Connection to Broker shut down cleanly.</source> - <translation>Соединение с брокером закрыто. Очистка произведена.</translation> + <location filename="../MqttMonitorWidget.py" line="457"/> + <source>Connection to Broker shut down cleanly.</source> + <translation>Соединение с брокером закрыто. Очистка произведена.</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="448" /> - <source>{0}: {1}</source> - <translation>{0}: {1}</translation> + <location filename="../MqttMonitorWidget.py" line="517"/> + <source>{0}: {1}</source> + <translation>{0}: {1}</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="671" /> - <source>SUBSCRIBE: User Properties for '{0}'</source> - <translation>SUBSCRIBE: Пользовательские свойства '{0}'</translation> + <location filename="../MqttMonitorWidget.py" line="737"/> + <source>SUBSCRIBE: User Properties for '{0}'</source> + <translation>SUBSCRIBE: Пользовательские свойства '{0}'</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="697" /> - <source>Subscribe to Topic</source> - <translation>Подписаться на тему</translation> + <location filename="../MqttMonitorWidget.py" line="763"/> + <source>Subscribe to Topic</source> + <translation>Подписаться на тему</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="698" /> - <source>Subscriptions to the Status topic '$SYS' shall be done on the 'Status' tab.</source> - <translation>Подписки на тему статуса «$ SYS» должны быть сделаны на вкладке «Статус».</translation> + <location filename="../MqttMonitorWidget.py" line="764"/> + <source>Subscriptions to the Status topic '$SYS' shall be done on the 'Status' tab.</source> + <translation>Подписки на тему статуса «$ SYS» должны быть сделаны на вкладке «Статус».</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="719" /> - <source>UNSUBSCRIBE: User Properties for '{0}'</source> - <translation>UNSUBSCRIBE: Пользовательские свойства '{0}'</translation> + <location filename="../MqttMonitorWidget.py" line="788"/> + <source>UNSUBSCRIBE: User Properties for '{0}'</source> + <translation>UNSUBSCRIBE: Пользовательские свойства '{0}'</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="759" /> - <source>PUBLISH: User Properties for '{0}'</source> - <translation>PUBLISH: Пользовательские свойства '{0}'</translation> + <location filename="../MqttMonitorWidget.py" line="826"/> + <source>PUBLISH: User Properties for '{0}'</source> + <translation>PUBLISH: Пользовательские свойства '{0}'</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="795" /> - <source>Read Payload from File</source> - <translation>Чтение полезной нагрузки из файла</translation> + <location filename="../MqttMonitorWidget.py" line="862"/> + <source>Read Payload from File</source> + <translation>Чтение полезной нагрузки из файла</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="796" /> - <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="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> </message> <message> - <location filename="../MqttMonitorWidget.py" line="943" /> - <location filename="../MqttMonitorWidget.py" line="929" /> - <location filename="../MqttMonitorWidget.py" line="911" /> - <source>Save Messages</source> - <translation>Сохранить сообщения</translation> + <location filename="../MqttMonitorWidget.py" line="1014"/> + <location filename="../MqttMonitorWidget.py" line="998"/> + <location filename="../MqttMonitorWidget.py" line="979"/> + <source>Save Messages</source> + <translation>Сохранить сообщения</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="913" /> - <source>Messages Files (*.txt);;All Files (*)</source> - <translation>Файлы сообщений (*.txt);;Все файлы (*)</translation> + <location filename="../MqttMonitorWidget.py" line="981"/> + <source>Messages Files (*.txt);;All Files (*)</source> + <translation>Файлы сообщений (*.txt);;Все файлы (*)</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="986" /> - <location filename="../MqttMonitorWidget.py" line="930" /> - <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="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> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1000" /> - <location filename="../MqttMonitorWidget.py" line="944" /> - <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> + <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="999" /> - <location filename="../MqttMonitorWidget.py" line="985" /> - <location filename="../MqttMonitorWidget.py" line="967" /> - <source>Save Log Messages</source> - <translation>Сохранить сообщения журнала</translation> + <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> </message> <message> - <location filename="../MqttMonitorWidget.py" line="969" /> - <source>Log Files (*.log);;All Files (*)</source> - <translation>Файлы журнала (*.log);;Все файлы (*)</translation> + <location filename="../MqttMonitorWidget.py" line="1042"/> + <source>Log Files (*.log);;All Files (*)</source> + <translation>Файлы журнала (*.log);;Все файлы (*)</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1020" /> - <source>Press to deactivate the status display</source> - <translation>Деактивировать отображение статуса</translation> + <location filename="../MqttMonitorWidget.py" line="1098"/> + <source>Press to deactivate the status display</source> + <translation>Деактивировать отображение статуса</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1189" /> - <source>QoS: {0} + <location filename="../MqttMonitorWidget.py" line="1265"/> + <source>QoS: {0} </source> - <translation>QoS: {0} + <translation>QoS: {0} </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1193" /> - <source>Retained Message + <location filename="../MqttMonitorWidget.py" line="1269"/> + <source>Retained Message </source> - <translation>Сохраненное сообщение + <translation>Сохраненное сообщение </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1198" /> - <source>Properties: + <location filename="../MqttMonitorWidget.py" line="1273"/> + <source>Properties: </source> - <translation>Свойства: + <translation>Свойства: </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1202" /> - <source>{0}: {1} + <location filename="../MqttMonitorWidget.py" line="1277"/> + <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="1207" /> - <source>Message: + <location filename="../MqttMonitorWidget.py" line="1283"/> + <source>Message: </source> - <translation>Сообщение: + <translation>Сообщение: </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1214" /> - <source><empty></source> - <translation><empty></translation> + <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>Соединение с {0}:{1} ...</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1382" /> - <location filename="../MqttMonitorWidget.py" line="1336" /> - <source>Connecting to {0}:{1} ...</source> - <translation>Соединение с {0}:{1} ...</translation> + <location filename="../MqttMonitorWidget.py" line="1641"/> + <source>{0} Bytes</source> + <translation>{0} байтов</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> + <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="../ConfigurationPage/MqttPage.ui" line="0" /> - <source>Default MQTT Protocol</source> - <translation>Протокол MQTT по умолчанию</translation> + <location filename="../MqttMonitorWidget.py" line="1656"/> + <source>{0} GiB</source> + <translation>{0} GiB</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.py" line="1661"/> + <source>{0} TiB</source> + <translation>{0} TiB</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>v 3.1</source> - <translation>вер. 3.1</translation> + <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> + <source>Default MQTT Protocol</source> + <translation>Протокол MQTT по умолчанию</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="../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.1</source> - <translation>вер. 3.1.1</translation> + <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> + <source>v 3.1</source> + <translation>вер. 3.1</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> </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="../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>v 5.0</source> - <translation>вер. 5.0</translation> + <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>Recent Brokers</source> - <translation>Недавние брокеры</translation> + <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> + <source>v 5.0</source> + <translation>вер. 5.0</translation> </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> - <source>Number of recent brokers:</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>Enter the number of recent brokers to remember</source> - <translation>Задайте количество брокеров для запоминания</translation> + <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> + <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> + <source>Recent Topics</source> + <translation>Недавние темы</translation> </message> <message> - <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> - <source>Number of recent topics:</source> - <translation>Количество недавних тем:</translation> + <location filename="../ConfigurationPage/MqttPage.ui" line="0"/> + <source>Number of recent topics:</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="../ConfigurationPage/MqttPage.ui" line="0"/> + <source>Enter the number of recent topics to remember</source> + <translation>Задайте количество тем для запоминания</translation> </message> - </context> - <context> +</context> +<context> <name>MqttReasonCodeNames</name> <message> - <location filename="../MqttReasonCodes.py" line="16" /> - <source>Success</source> - <translation>Успешно</translation> + <location filename="../MqttReasonCodes.py" line="15"/> + <source>Success</source> + <translation>Успешно</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="21" /> - <source>Normal disconnection</source> - <translation>Нормальное разъединение</translation> + <location filename="../MqttReasonCodes.py" line="24"/> + <source>Normal disconnection</source> + <translation>Нормальное разъединение</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="24" /> - <source>Granted QoS 0</source> - <translation>Предоставлен QoS 0</translation> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="28" /> - <source>Granted QoS 1</source> - <translation>Предоставлен QoS 1</translation> + <location filename="../MqttReasonCodes.py" line="27"/> + <source>Granted QoS 0</source> + <translation>Предоставлен QoS 0</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="32" /> - <source>Granted QoS 2</source> - <translation>Предоставлен QoS 2</translation> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="36" /> - <source>Disconnect with will message</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="40" /> - <source>No matching subscribers</source> - <translation>Нет соответствующих подписчиков</translation> + <location filename="../MqttReasonCodes.py" line="37"/> + <source>Granted QoS 2</source> + <translation>Предоставлен QoS 2</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="44" /> - <source>No subscription found</source> - <translation>Подписка не найдена</translation> + <location filename="../MqttReasonCodes.py" line="42"/> + <source>Disconnect with will message</source> + <translation>Отключить посредством сообщения 'последней воли'</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="48" /> - <source>Continue authentication</source> - <translation>Продолжить аутентификацию</translation> + <location filename="../MqttReasonCodes.py" line="47"/> + <source>No matching subscribers</source> + <translation>Нет соответствующих подписчиков</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="52" /> - <source>Re-authenticate</source> - <translation>Повторить аутентификацию</translation> + <location filename="../MqttReasonCodes.py" line="53"/> + <source>No subscription found</source> + <translation>Подписка не найдена</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="56" /> - <source>Unspecified error</source> - <translation>Неопределенная ошибка</translation> + <location filename="../MqttReasonCodes.py" line="58"/> + <source>Continue authentication</source> + <translation>Продолжить аутентификацию</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="62" /> - <source>Malformed packet</source> - <translation>Плохо сформированный пакет</translation> + <location filename="../MqttReasonCodes.py" line="63"/> + <source>Re-authenticate</source> + <translation>Повторить аутентификацию</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="66" /> - <source>Protocol error</source> - <translation>Ошибка протокола</translation> + <location filename="../MqttReasonCodes.py" line="68"/> + <source>Unspecified error</source> + <translation>Неопределенная ошибка</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="70" /> - <source>Implementation specific error</source> - <translation>Ошибка конкретной реализации</translation> + <location filename="../MqttReasonCodes.py" line="78"/> + <source>Malformed packet</source> + <translation>Плохо сформированный пакет</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="76" /> - <source>Unsupported protocol version</source> - <translation>Неподдерживаемая версия протокола</translation> + <location filename="../MqttReasonCodes.py" line="84"/> + <source>Protocol error</source> + <translation>Ошибка протокола</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="80" /> - <source>Client identifier not valid</source> - <translation>Недействительный идентификатор клиента</translation> + <location filename="../MqttReasonCodes.py" line="90"/> + <source>Implementation specific error</source> + <translation>Ошибка конкретной реализации</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="84" /> - <source>Bad user name or password</source> - <translation>Неверное имя пользователя или пароль</translation> + <location filename="../MqttReasonCodes.py" line="102"/> + <source>Unsupported protocol version</source> + <translation>Неподдерживаемая версия протокола</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="88" /> - <source>Not authorized</source> - <translation>Не авторизован</translation> - </message> - <message> - <location filename="../MqttReasonCodes.py" line="94" /> - <source>Server unavailable</source> - <translation>Сервер недоступен</translation> + <location filename="../MqttReasonCodes.py" line="107"/> + <source>Client identifier not valid</source> + <translation>Недействительный идентификатор клиента</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="98" /> - <source>Server busy</source> - <translation>Сервер занят</translation> + <location filename="../MqttReasonCodes.py" line="112"/> + <source>Bad user name or password</source> + <translation>Неверное имя пользователя или пароль</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="102" /> - <source>Banned</source> - <translation>Запрещено</translation> + <location filename="../MqttReasonCodes.py" line="117"/> + <source>Not authorized</source> + <translation>Не авторизован</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="106" /> - <source>Server shutting down</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="110" /> - <source>Bad authentication method</source> - <translation>Неверный метод аутентификации</translation> + <location filename="../MqttReasonCodes.py" line="138"/> + <source>Banned</source> + <translation>Запрещено</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="114" /> - <source>Keep alive timeout</source> - <translation>Период сохранения активности</translation> + <location filename="../MqttReasonCodes.py" line="143"/> + <source>Server shutting down</source> + <translation>Выключение сервера</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="118" /> - <source>Session taken over</source> - <translation>Сессия завершена</translation> + <location filename="../MqttReasonCodes.py" line="148"/> + <source>Bad authentication method</source> + <translation>Неверный метод аутентификации</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="122" /> - <source>Topic filter invalid</source> - <translation>Неверный фильтр тем</translation> + <location filename="../MqttReasonCodes.py" line="153"/> + <source>Keep alive timeout</source> + <translation>Период сохранения активности</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="127" /> - <source>Topic name invalid</source> - <translation>Недопустимое имя темы</translation> + <location filename="../MqttReasonCodes.py" line="158"/> + <source>Session taken over</source> + <translation>Сессия завершена</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="132" /> - <source>Packet identifier in use</source> - <translation>Идентификатор пакета используется</translation> + <location filename="../MqttReasonCodes.py" line="163"/> + <source>Topic filter invalid</source> + <translation>Неверный фильтр тем</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="137" /> - <source>Packet identifier not found</source> - <translation>Идентификатор пакета не найден</translation> + <location filename="../MqttReasonCodes.py" line="170"/> + <source>Topic name invalid</source> + <translation>Недопустимое имя темы</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="141" /> - <source>Receive maximum exceeded</source> - <translation>Превышено максимальное количество</translation> + <location filename="../MqttReasonCodes.py" line="178"/> + <source>Packet identifier in use</source> + <translation>Идентификатор пакета используется</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="145" /> - <source>Topic alias invalid</source> - <translation>Недействительный псевдоним темы</translation> + <location filename="../MqttReasonCodes.py" line="186"/> + <source>Packet identifier not found</source> + <translation>Идентификатор пакета не найден</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="149" /> - <source>Packet too large</source> - <translation>Слишком большой пакет</translation> + <location filename="../MqttReasonCodes.py" line="191"/> + <source>Receive maximum exceeded</source> + <translation>Превышено максимальное количество</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="153" /> - <source>Message rate too high</source> - <translation>Скорость получения сообщений слишком высока</translation> + <location filename="../MqttReasonCodes.py" line="196"/> + <source>Topic alias invalid</source> + <translation>Недействительный псевдоним темы</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="157" /> - <source>Quota exceeded</source> - <translation>Превышена квота</translation> + <location filename="../MqttReasonCodes.py" line="201"/> + <source>Packet too large</source> + <translation>Слишком большой пакет</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="163" /> - <source>Administrative action</source> - <translation>Административное действие</translation> + <location filename="../MqttReasonCodes.py" line="207"/> + <source>Message rate too high</source> + <translation>Скорость получения сообщений слишком высока</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="167" /> - <source>Payload format invalid</source> - <translation>Неверный формат полезной нагрузки</translation> + <location filename="../MqttReasonCodes.py" line="212"/> + <source>Quota exceeded</source> + <translation>Превышена квота</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="171" /> - <source>Retain not supported</source> - <translation>Сохранение не поддерживается</translation> + <location filename="../MqttReasonCodes.py" line="221"/> + <source>Administrative action</source> + <translation>Административное действие</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="175" /> - <source>QoS not supported</source> - <translation>QoS не поддерживается</translation> + <location filename="../MqttReasonCodes.py" line="226"/> + <source>Payload format invalid</source> + <translation>Неверный формат полезной нагрузки</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="179" /> - <source>Use another server</source> - <translation>Используйте другой сервер</translation> + <location filename="../MqttReasonCodes.py" line="233"/> + <source>Retain not supported</source> + <translation>Сохранение не поддерживается</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="183" /> - <source>Server moved</source> - <translation>Сервер перемещен</translation> + <location filename="../MqttReasonCodes.py" line="239"/> + <source>QoS not supported</source> + <translation>QoS не поддерживается</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="187" /> - <source>Shared subscription not supported</source> - <translation>Общая подписка не поддерживается</translation> + <location filename="../MqttReasonCodes.py" line="245"/> + <source>Use another server</source> + <translation>Используйте другой сервер</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="191" /> - <source>Connection rate exceeded</source> - <translation>Превышена скорость соединения</translation> + <location filename="../MqttReasonCodes.py" line="251"/> + <source>Server moved</source> + <translation>Сервер перемещен</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="195" /> - <source>Maximum connect time</source> - <translation>Максимальное время соединения</translation> + <location filename="../MqttReasonCodes.py" line="257"/> + <source>Shared subscription not supported</source> + <translation>Общая подписка не поддерживается</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="199" /> - <source>Subscription identifiers not supported</source> - <translation>Идентификаторы подписки не поддерживаются</translation> + <location filename="../MqttReasonCodes.py" line="262"/> + <source>Connection rate exceeded</source> + <translation>Превышена скорость соединения</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="203" /> - <source>Wildcard subscription not supported</source> - <translation>Подписка с подстановочными знаками не поддерживается</translation> + <location filename="../MqttReasonCodes.py" line="268"/> + <source>Maximum connect time</source> + <translation>Максимальное время соединения</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="222" /> - <source>Unknown result code ({0})</source> - <translation>Неизвестный код результата ({0})</translation> + <location filename="../MqttReasonCodes.py" line="273"/> + <source>Subscription identifiers not supported</source> + <translation>Идентификаторы подписки не поддерживаются</translation> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="278"/> + <source>Wildcard subscription not supported</source> + <translation>Подписка с подстановочными знаками не поддерживается</translation> </message> <message> - <location filename="../MqttReasonCodes.py" line="229" /> - <source>Unknown result code ({0}) for packet type '{1}'</source> - <translation>Неизвестный код результата ({0}) для типа пакета '{1}'</translation> + <location filename="../MqttReasonCodes.py" line="298"/> + <source>Unknown result code ({0})</source> + <translation>Неизвестный код результата ({0})</translation> </message> - </context> - <context> + <message> + <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> + <location filename="../MqttUserPropertiesEditor.ui" line="0"/> + <source>User Properties</source> + <translation>Пользовательские свойства</translation> </message> <message> - <location filename="../MqttUserPropertiesEditor.ui" line="0" /> - <source>Key</source> - <translation>Ключ</translation> - </message> - <message> - <location filename="../MqttUserPropertiesEditor.ui" line="0" /> - <source>Value</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 add a new empty row</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 delete the selected properties</source> - <translation>Удалить выбранные свойства</translation> + <location filename="../MqttUserPropertiesEditor.ui" line="0"/> + <source>Press to add a new empty row</source> + <translation>Добавить новую пустую строку</translation> + </message> + <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> + <location filename="../MqttUserPropertiesEditor.ui" line="0"/> + <source>Press to delete all properties</source> + <translation>Удалить все свойства</translation> </message> - </context> - <context> +</context> +<context> <name>MqttUserPropertiesEditorDialog</name> <message> - <location filename="../MqttUserPropertiesEditor.py" line="134" /> - <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 Dec 31 16:27:45 2022 +0100 +++ b/PluginMqttMonitor.epj Tue Jul 04 15:13:37 2023 +0200 @@ -1,7 +1,7 @@ { "header": { "comment": "eric project file for project PluginMqttMonitor", - "copyright": "Copyright (C) 2022 Detlev Offenbach, detlev@die-offenbachs.de" + "copyright": "Copyright (C) 2023 Detlev Offenbach, detlev@die-offenbachs.de" }, "project": { "AUTHOR": "Detlev Offenbach", @@ -11,10 +11,14 @@ "AllowStarArgAny": false, "AllowUntypedDefs": false, "AllowUntypedNested": false, + "CheckFutureAnnotations": false, "DispatchDecorators": [ "singledispatch", "singledispatchmethod" ], + "ExemptedTypingSymbols": [ + "" + ], "ForceFutureAnnotations": false, "MaximumComplexity": 3, "MaximumLength": 7, @@ -62,15 +66,19 @@ "CopyrightAuthor": "", "CopyrightMinFileSize": 0, "DocstringType": "eric_black", - "EnabledCheckerCategories": "C, D, E, M, N, S, Y, W", - "ExcludeFiles": "*/Ui_*.py, */*_rc.py", - "ExcludeMessages": "C101,E265,E266,E305,E402,M201,M301,M302,M303,M304,M305,M306,M307,M308,M311,M312,M313,M314,M315,M321,M701,M702,M811,M834,N802,N803,N807,N808,N821,W293,W503,Y119,Y401,Y402", + "EnabledCheckerCategories": "C, D, E, I, 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,N802,N803,N807,N808,N821,W293,W503,Y119,Y401,Y402", "FixCodes": "", "FixIssues": false, "FutureChecker": "", "HangClosing": false, "ImportsChecker": { - "ApplicationPackageNames": [], + "ApplicationPackageNames": [ + "MqttMonitor", + "PluginMqttMonitor", + "eric7" + ], "BanRelativeImports": "", "BannedModules": [] }, @@ -80,6 +88,18 @@ "MaxCodeComplexity": 10, "MaxDocLineLength": 88, "MaxLineLength": 88, + "NameOrderChecker": { + "ApplicationPackageNames": [ + "MqttMonitor", + "PluginMqttMonitor", + "eric7" + ], + "CombinedAsImports": true, + "SortCaseSensitive": false, + "SortFromFirst": false, + "SortIgnoringStyle": false, + "SortOrder": "natural" + }, "NoFixCodes": "E501", "RepeatMessages": true, "SecurityChecker": { @@ -113,6 +133,19 @@ "WeakKeySizeRsaMedium": "2048" }, "ShowIgnored": false, + "UnusedChecker": { + "IgnoreAbstract": true, + "IgnoreDunderGlobals": true, + "IgnoreDunderMethods": true, + "IgnoreEventHandlerMethods": true, + "IgnoreLambdas": false, + "IgnoreNestedFunctions": false, + "IgnoreOverload": true, + "IgnoreOverride": true, + "IgnoreSlotMethods": true, + "IgnoreStubs": true, + "IgnoreVariadicNames": false + }, "ValidEncodings": "latin-1, utf-8" } },
--- a/PluginMqttMonitor.py Sat Dec 31 16:27:45 2022 +0100 +++ b/PluginMqttMonitor.py Tue Jul 04 15:13:37 2023 +0200 @@ -29,7 +29,7 @@ author = "Detlev Offenbach <detlev@die-offenbachs.de>" autoactivate = True deactivateable = True -version = "10.4.0" +version = "10.4.1" className = "MqttMonitorPlugin" packageName = "MqttMonitor" shortDescription = "Plug-in implementing a tool to connect to a MQTT broker" @@ -50,7 +50,7 @@ mqttPluginObject = None -def createMqttPage(configDlg): +def createMqttPage(configDlg): # noqa: U100 """ Module function to create the autocompletion configuration page. @@ -60,7 +60,7 @@ @rtype AutoCompletionRopePage """ global mqttPluginObject - from MqttMonitor.ConfigurationPage.MqttPage import MqttPage + from MqttMonitor.ConfigurationPage.MqttPage import MqttPage # noqa: I101 page = MqttPage(mqttPluginObject) return page @@ -96,7 +96,7 @@ @rtype dict """ try: - import paho.mqtt + import paho.mqtt # noqa: I101, I102 version = paho.mqtt.__version__ except ImportError: @@ -180,7 +180,7 @@ error = self.tr("The 'paho-mqtt' package is not available.") return None, False - from MqttMonitor.MqttMonitorWidget import MqttMonitorWidget + from MqttMonitor.MqttMonitorWidget import MqttMonitorWidget # noqa: I101 usesDarkPalette = ericApp().usesDarkPalette() iconSuffix = "dark" if usesDarkPalette else "light" @@ -357,4 +357,4 @@ # -# eflag: noqa = M801 +# eflag: noqa = M801, U200