Ported the plug-in to PyQt6 for eric7. eric7

Sun, 30 May 2021 18:21:40 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 30 May 2021 18:21:40 +0200
branch
eric7
changeset 92
2fb5c08019fd
parent 91
3cb08e5db764
child 93
38f7959ec9f9

Ported the plug-in to PyQt6 for eric7.

.hgignore file | annotate | diff | comparison | revisions
ChangeLog file | annotate | diff | comparison | revisions
MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttClient.html file | annotate | diff | comparison | revisions
MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttConnectionOptionsDialog.html file | annotate | diff | comparison | revisions
MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttMonitorWidget.html file | annotate | diff | comparison | revisions
MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.PluginMqttMonitor.html file | annotate | diff | comparison | revisions
MqttMonitor/MqttClient.py file | annotate | diff | comparison | revisions
MqttMonitor/MqttConnectionOptionsDialog.py file | annotate | diff | comparison | revisions
MqttMonitor/MqttConnectionOptionsDialog.ui file | annotate | diff | comparison | revisions
MqttMonitor/MqttConnectionProfilesDialog.py file | annotate | diff | comparison | revisions
MqttMonitor/MqttConnectionProfilesDialog.ui file | annotate | diff | comparison | revisions
MqttMonitor/MqttMonitorWidget.py file | annotate | diff | comparison | revisions
MqttMonitor/MqttMonitorWidget.ui file | annotate | diff | comparison | revisions
MqttMonitor/i18n/mqttmonitor_de.qm file | annotate | diff | comparison | revisions
MqttMonitor/i18n/mqttmonitor_de.ts file | annotate | diff | comparison | revisions
MqttMonitor/i18n/mqttmonitor_empty.ts file | annotate | diff | comparison | revisions
MqttMonitor/i18n/mqttmonitor_en.ts file | annotate | diff | comparison | revisions
MqttMonitor/i18n/mqttmonitor_es.ts file | annotate | diff | comparison | revisions
MqttMonitor/i18n/mqttmonitor_ru.ts file | annotate | diff | comparison | revisions
PluginMqttMonitor.e4p file | annotate | diff | comparison | revisions
PluginMqttMonitor.epj file | annotate | diff | comparison | revisions
PluginMqttMonitor.py file | annotate | diff | comparison | revisions
PluginMqttMonitor.zip file | annotate | diff | comparison | revisions
diff -r 3cb08e5db764 -r 2fb5c08019fd .hgignore
--- a/.hgignore	Sun May 30 17:40:40 2021 +0200
+++ b/.hgignore	Sun May 30 18:21:40 2021 +0200
@@ -1,4 +1,5 @@
 glob:.eric6project
+glob:.eric7project
 glob:.ropeproject
 glob:.directory
 glob:**.pyc
diff -r 3cb08e5db764 -r 2fb5c08019fd ChangeLog
--- a/ChangeLog	Sun May 30 17:40:40 2021 +0200
+++ b/ChangeLog	Sun May 30 18:21:40 2021 +0200
@@ -1,5 +1,10 @@
 ChangeLog
 ---------
+Version 1.0.0:
+- first release of the eric7 variant
+
+************************************************************
+
 Version 3.1.0:
 - added code to install the 'paho-mqtt' library as a plug-in dependency
   (eric > 21.5)
diff -r 3cb08e5db764 -r 2fb5c08019fd MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttClient.html
--- a/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttClient.html	Sun May 30 17:40:40 2021 +0200
+++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttClient.html	Sun May 30 18:21:40 2021 +0200
@@ -238,7 +238,7 @@
 <dd>
 user data
 </dd>
-<dt><i>protocol</i> (int, one of mqtt.MQTTv31 or mqtt.MQTTv311)</dt>
+<dt><i>protocol</i> (int, one of mqtt.MQTTv3, mqtt.MQTTv311 or mqtt.MQTTv5)</dt>
 <dd>
 version of the MQTT protocol to use
 </dd>
diff -r 3cb08e5db764 -r 2fb5c08019fd MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttConnectionOptionsDialog.html
--- a/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttConnectionOptionsDialog.html	Sun May 30 17:40:40 2021 +0200
+++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttConnectionOptionsDialog.html	Sun May 30 18:21:40 2021 +0200
@@ -181,7 +181,7 @@
 <dl>
 <dt>Return Type:</dt>
 <dd>
-tuple of (int, dict)
+dict
 </dd>
 </dl>
 <a NAME="MqttConnectionOptionsDialog.on_buttonBox_clicked" ID="MqttConnectionOptionsDialog.on_buttonBox_clicked"></a>
diff -r 3cb08e5db764 -r 2fb5c08019fd MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttMonitorWidget.html
--- a/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttMonitorWidget.html	Sun May 30 17:40:40 2021 +0200
+++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.MqttMonitor.MqttMonitorWidget.html	Sun May 30 18:21:40 2021 +0200
@@ -253,7 +253,7 @@
 
 <a NAME="MqttMonitorWidget.__init__" ID="MqttMonitorWidget.__init__"></a>
 <h4>MqttMonitorWidget (Constructor)</h4>
-<b>MqttMonitorWidget</b>(<i>plugin, iconSuffix, parent=None</i>)
+<b>MqttMonitorWidget</b>(<i>plugin, usesDarkPalette, parent=None</i>)
 
 <p>
         Constructor
@@ -264,9 +264,10 @@
 <dd>
 reference to the plug-in object
 </dd>
-<dt><i>iconSuffix</i> (str)</dt>
+<dt><i>usesDarkPalette</i> (bool)</dt>
 <dd>
-suffix for the icons
+flag indicating the use of a dark application
+            palette
 </dd>
 <dt><i>parent</i> (QWidget)</dt>
 <dd>
diff -r 3cb08e5db764 -r 2fb5c08019fd MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.PluginMqttMonitor.html
--- a/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.PluginMqttMonitor.html	Sun May 30 17:40:40 2021 +0200
+++ b/MqttMonitor/Documentation/source/Plugin_Mqtt_Monitor.PluginMqttMonitor.html	Sun May 30 18:21:40 2021 +0200
@@ -170,7 +170,7 @@
 <dl>
 <dt>Return Type:</dt>
 <dd>
-bool
+tuple of (None, bool)
 </dd>
 </dl>
 <a NAME="MqttMonitorPlugin.deactivate" ID="MqttMonitorPlugin.deactivate"></a>
@@ -189,15 +189,21 @@
 </p>
 <dl>
 
-<dt><i>key</i></dt>
+<dt><i>key</i> (str)</dt>
 <dd>
-the key of the value to get
+key of the setting
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-the requested setting
+value of the requested setting
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+Any
 </dd>
 </dl>
 <a NAME="MqttMonitorPlugin.setPreferences" ID="MqttMonitorPlugin.setPreferences"></a>
@@ -209,13 +215,13 @@
 </p>
 <dl>
 
-<dt><i>key</i></dt>
+<dt><i>key</i> (str)</dt>
 <dd>
-the key of the setting to be set (string)
+key of the setting to be set
 </dd>
-<dt><i>value</i></dt>
+<dt><i>value</i> (Any)</dt>
 <dd>
-the value to be set
+value to be set
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
diff -r 3cb08e5db764 -r 2fb5c08019fd MqttMonitor/MqttClient.py
--- a/MqttMonitor/MqttClient.py	Sun May 30 17:40:40 2021 +0200
+++ b/MqttMonitor/MqttClient.py	Sun May 30 18:21:40 2021 +0200
@@ -7,7 +7,7 @@
 Module implementing a PyQt wrapper around the paho MQTT client.
 """
 
-from PyQt5.QtCore import (
+from PyQt6.QtCore import (
     pyqtSignal, pyqtSlot, QObject, QCoreApplication, QTimer
 )
 
@@ -73,7 +73,7 @@
         @param userdata user data
         @type any
         @param protocol version of the MQTT protocol to use
-        @type int, one of mqtt.MQTTv31 or mqtt.MQTTv311
+        @type int, one of mqtt.MQTTv3, mqtt.MQTTv311 or mqtt.MQTTv5
         @param transport transport to be used
         @type str, one of "tcp" or "websockets"
         @param parent reference to the parent object
@@ -91,6 +91,7 @@
         
         self.onConnect.connect(self.__connectTimeoutTimer.stop)
         
+        # TODO: MQTTv5: set clean_session to None and remember cleanSession
         self.__mqttClient = mqtt.Client(
             client_id=clientId, clean_session=cleanSession, userdata=None,
             protocol=mqtt.MQTTv311, transport="tcp")
@@ -101,9 +102,12 @@
         """
         Private method to initialize the MQTT callback methods.
         """
+        # TODO: add properties to signal
+        # TODO: MQTTv5: add support for MQTTv5 signature
         self.__mqttClient.on_connect = (
-            lambda client, userdata, flags, rc: self.onConnect.emit(
-                flags, rc))
+            lambda client, userdata, flags, rc, properties:
+                self.onConnect.emit(flags, rc))
+        # TODO: MQTTv5: add support for MQTTv5 signature
         self.__mqttClient.on_disconnect = (
             lambda client, userdata, rc: self.onDisconnected.emit(rc))
         self.__mqttClient.on_log = (
@@ -113,9 +117,12 @@
                 message.topic, message.payload, message.qos, message.retain))
         self.__mqttClient.on_publish = (
             lambda client, userdata, mid: self.onPublish.emit(mid))
+        # TODO: add properties to signal
+        # TODO: MQTTv5: add support for MQTTv5 signature
         self.__mqttClient.on_subscribe = (
-            lambda client, userdata, mid, grantedQos: self.onSubscribe.emit(
-                mid, grantedQos))
+            lambda client, userdata, mid, grantedQos, properties:
+                self.onSubscribe.emit(mid, grantedQos))
+        # TODO: MQTTv5: add support for MQTTv5 signature
         self.__mqttClient.on_unsubscribe = (
             lambda client, userdata, mid: self.onUnsubscribe.emit(mid))
     
@@ -192,6 +199,7 @@
         """
         self.__mqttClient.user_data_set(userdata)
     
+    # TODO: MQTTv5: add support for properties
     def setLastWill(self, topic, payload=None, qos=0, retain=False):
         """
         Public method to set the last will of the client.
@@ -275,6 +283,8 @@
         """
         if reinit:
             self.reinitialise()
+        # TODO: MQTTv5: use 'clean_start' set to the remembered 'cleanSession'
+        # TODO: MQTTv5: add support for MQTTv5 properties
         self.__mqttClient.connect_async(
             host, port=port, keepalive=keepalive, bind_address=bindAddress)
         
@@ -374,7 +384,7 @@
         @rtype dict
         """
         return {
-            "ClientId": "ERIC6_MQTT_MONITOR_CLIENT",
+            "ClientId": "ERIC7_MQTT_MONITOR_CLIENT",
             "ConnectionTimeout": MqttClient.DefaultConnectTimeout,
             "Keepalive": 60,
             "CleanSession": True,
@@ -407,8 +417,12 @@
         """
         self.__connectTimeoutTimer.stop()
         
+        # TODO: MQTTv5: add support for properties (?)
+        # TODO: MQTTv5: add support for reason code
         self.__mqttClient.disconnect()
     
+    # TODO: MQTTv5: add support for properties
+    # TODO: MQTTv5: add support for subscribe options
     def subscribe(self, topic, qos=0):
         """
         Public method to subscribe to topics with quality of service.
@@ -423,6 +437,7 @@
         """
         return self.__mqttClient.subscribe(topic, qos=qos)
     
+    # TODO: MQTTv5: add support for properties (?)
     def unsubscribe(self, topic):
         """
         Public method to unsubscribe topics.
@@ -434,6 +449,7 @@
         """
         return self.__mqttClient.unsubscribe(topic)
     
+    # TODO: MQTTv5: add support for properties
     def publish(self, topic, payload=None, qos=0, retain=False):
         """
         Public method to publish to a topic.
@@ -564,6 +580,10 @@
         return QCoreApplication.translate(
             "MqttErrorMessage",
             "Error defined by errno.")
+    elif mqttErrno == mqtt.MQTT_ERR_QUEUE_SIZE:
+        return QCoreApplication.translate(
+            "MqttErrorMessage",
+            "Message queue full.")
     else:
         return QCoreApplication.translate(
             "MqttErrorMessage",
diff -r 3cb08e5db764 -r 2fb5c08019fd MqttMonitor/MqttConnectionOptionsDialog.py
--- a/MqttMonitor/MqttConnectionOptionsDialog.py	Sun May 30 17:40:40 2021 +0200
+++ b/MqttMonitor/MqttConnectionOptionsDialog.py	Sun May 30 18:21:40 2021 +0200
@@ -7,11 +7,11 @@
 Module implementing a dialog to enter MQTT connection options.
 """
 
-from PyQt5.QtCore import pyqtSlot, QUuid
-from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QAbstractButton
+from PyQt6.QtCore import pyqtSlot, QUuid
+from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QAbstractButton
 
-from E5Gui import E5MessageBox
-from E5Gui.E5PathPicker import E5PathPickerModes
+from EricWidgets import EricMessageBox
+from EricWidgets.EricPathPicker import EricPathPickerModes
 
 from .Ui_MqttConnectionOptionsDialog import Ui_MqttConnectionOptionsDialog
 
@@ -42,7 +42,7 @@
         
         self.__client = client
         
-        self.tlsCertsFilePicker.setMode(E5PathPickerModes.OpenFileMode)
+        self.tlsCertsFilePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.tlsCertsFilePicker.setFilters(
             self.tr("Certificate Files (*.crt *.pem);;All Files (*)"))
         
@@ -59,14 +59,15 @@
             not self.cleanSessionCheckBox.isChecked()
         ):
             enable = False
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Invalid Connection Parameters"),
                 self.tr("""An empty Client ID requires a clean session."""))
         else:
             enable = True
         
-        self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(enable)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Ok).setEnabled(enable)
     
     @pyqtSlot()
     def on_generateIdButton_clicked(self):
@@ -74,7 +75,8 @@
         Private slot to generate a client ID.
         """
         uuid = QUuid.createUuid()
-        self.clientIdEdit.setText(uuid.toString(QUuid.WithoutBraces))
+        self.clientIdEdit.setText(
+            uuid.toString(QUuid.StringFormat.WithoutBraces))
     
     @pyqtSlot(QAbstractButton)
     def on_buttonBox_clicked(self, button):
@@ -84,7 +86,9 @@
         @param button button that has been pressed
         @type QAbstractButton
         """
-        if button == self.buttonBox.button(QDialogButtonBox.RestoreDefaults):
+        if button == self.buttonBox.button(
+            QDialogButtonBox.StandardButton.RestoreDefaults
+        ):
             self.__populateDefaults(options=None)
     
     def __populateDefaults(self, options=None):
@@ -132,7 +136,7 @@
             "ClientId", "Keepalive", "CleanSession", "Username", "Password",
             "WillTopic", "WillMessage", "WillQos", "WillRetain", "TlsEnable",
             "TlsCaCert", "ConnectionTimeout".
-        @rtype tuple of (int, dict)
+        @rtype dict
         """
         return {
             "ClientId": self.clientIdEdit.text(),
diff -r 3cb08e5db764 -r 2fb5c08019fd MqttMonitor/MqttConnectionOptionsDialog.ui
--- a/MqttMonitor/MqttConnectionOptionsDialog.ui	Sun May 30 17:40:40 2021 +0200
+++ b/MqttMonitor/MqttConnectionOptionsDialog.ui	Sun May 30 18:21:40 2021 +0200
@@ -31,10 +31,13 @@
        </widget>
       </item>
       <item row="0" column="1">
-       <widget class="E5ClearableLineEdit" name="clientIdEdit">
+       <widget class="QLineEdit" name="clientIdEdit">
         <property name="toolTip">
          <string>Enter the ID string for this client</string>
         </property>
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
        </widget>
       </item>
       <item row="0" column="2">
@@ -166,10 +169,13 @@
        </widget>
       </item>
       <item row="0" column="1">
-       <widget class="E5ClearableLineEdit" name="usernameEdit">
+       <widget class="QLineEdit" name="usernameEdit">
         <property name="toolTip">
          <string>Enter the user name</string>
         </property>
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
        </widget>
       </item>
       <item row="1" column="0">
@@ -180,13 +186,16 @@
        </widget>
       </item>
       <item row="1" column="1">
-       <widget class="E5ClearableLineEdit" name="passwordEdit">
+       <widget class="QLineEdit" name="passwordEdit">
         <property name="toolTip">
          <string>Enter the password</string>
         </property>
         <property name="echoMode">
          <enum>QLineEdit::Password</enum>
         </property>
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
        </widget>
       </item>
      </layout>
@@ -199,10 +208,13 @@
      </property>
      <layout class="QGridLayout" name="gridLayout_3">
       <item row="0" column="0">
-       <widget class="E5ClearableLineEdit" name="willTopicEdit">
+       <widget class="QLineEdit" name="willTopicEdit">
         <property name="toolTip">
          <string>Enter the topic of the last will</string>
         </property>
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
        </widget>
       </item>
       <item row="0" column="1">
@@ -275,7 +287,7 @@
        </widget>
       </item>
       <item row="1" column="1">
-       <widget class="E5PathPicker" name="tlsCertsFilePicker" native="true">
+       <widget class="EricPathPicker" name="tlsCertsFilePicker" native="true">
         <property name="enabled">
          <bool>false</bool>
         </property>
@@ -310,14 +322,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5ClearableLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>E5Gui/E5LineEdit.h</header>
-  </customwidget>
-  <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>EricWidgets/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff -r 3cb08e5db764 -r 2fb5c08019fd MqttMonitor/MqttConnectionProfilesDialog.py
--- a/MqttMonitor/MqttConnectionProfilesDialog.py	Sun May 30 17:40:40 2021 +0200
+++ b/MqttMonitor/MqttConnectionProfilesDialog.py	Sun May 30 18:21:40 2021 +0200
@@ -9,14 +9,14 @@
 
 import collections
 
-from PyQt5.QtCore import pyqtSlot, Qt, QUuid
-from PyQt5.QtWidgets import (
+from PyQt6.QtCore import pyqtSlot, Qt, QUuid
+from PyQt6.QtWidgets import (
     QDialog, QDialogButtonBox, QAbstractButton, QListWidgetItem, QInputDialog,
     QLineEdit
 )
 
-from E5Gui import E5MessageBox
-from E5Gui.E5PathPicker import E5PathPickerModes
+from EricWidgets import EricMessageBox
+from EricWidgets.EricPathPicker import EricPathPickerModes
 
 from .Ui_MqttConnectionProfilesDialog import Ui_MqttConnectionProfilesDialog
 
@@ -53,23 +53,23 @@
         self.__profiles.update(profiles)
         self.__profilesChanged = False
         
-        self.plusButton.setIcon(UI.PixmapCache.getIcon("plus.png"))
-        self.copyButton.setIcon(UI.PixmapCache.getIcon("editCopy.png"))
-        self.minusButton.setIcon(UI.PixmapCache.getIcon("minus.png"))
+        self.plusButton.setIcon(UI.PixmapCache.getIcon("plus"))
+        self.copyButton.setIcon(UI.PixmapCache.getIcon("editCopy"))
+        self.minusButton.setIcon(UI.PixmapCache.getIcon("minus"))
         
-        self.tlsCertsFilePicker.setMode(E5PathPickerModes.OpenFileMode)
+        self.tlsCertsFilePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.tlsCertsFilePicker.setFilters(
             self.tr("Certificate Files (*.crt *.pem);;All Files (*)"))
         self.tlsSelfSignedCertsFilePicker.setMode(
-            E5PathPickerModes.OpenFileMode)
+            EricPathPickerModes.OPEN_FILE_MODE)
         self.tlsSelfSignedCertsFilePicker.setFilters(
             self.tr("Certificate Files (*.crt *.pem);;All Files (*)"))
         self.tlsSelfSignedClientCertFilePicker.setMode(
-            E5PathPickerModes.OpenFileMode)
+            EricPathPickerModes.OPEN_FILE_MODE)
         self.tlsSelfSignedClientCertFilePicker.setFilters(
             self.tr("Certificate Files (*.crt *.pem);;All Files (*)"))
         self.tlsSelfSignedClientKeyFilePicker.setMode(
-            E5PathPickerModes.OpenFileMode)
+            EricPathPickerModes.OPEN_FILE_MODE)
         self.tlsSelfSignedClientKeyFilePicker.setFilters(
             self.tr("Key Files (*.key *.pem);;All Files (*)"))
         
@@ -103,15 +103,20 @@
         @param button reference to the pressed button
         @type QAbstractButton
         """
-        if button == self.profileButtonBox.button(QDialogButtonBox.Apply):
+        if button == self.profileButtonBox.button(
+            QDialogButtonBox.StandardButton.Apply
+        ):
             currentProfile = self.__applyProfile()
             self.__populateProfilesList(currentProfile)
         
-        elif button == self.profileButtonBox.button(QDialogButtonBox.Reset):
+        elif button == self.profileButtonBox.button(
+            QDialogButtonBox.StandardButton.Reset
+        ):
             self.__resetProfile()
         
         elif button == self.profileButtonBox.button(
-                QDialogButtonBox.RestoreDefaults):
+                QDialogButtonBox.StandardButton.RestoreDefaults
+        ):
             self.__populateProfileDefault()
     
     @pyqtSlot(QListWidgetItem, QListWidgetItem)
@@ -133,12 +138,12 @@
             self.__isChangedProfile()
         ):
             # modified profile belongs to previous
-            yes = E5MessageBox.yesNo(
+            yes = EricMessageBox.yesNo(
                 self,
                 self.tr("Changed Connection Profile"),
                 self.tr("""The current profile has unsaved changes."""
                         """ Shall these be saved?"""),
-                icon=E5MessageBox.Warning,
+                icon=EricMessageBox.Warning,
                 yesDefault=True)
             if yes:
                 self.__applyProfile()
@@ -158,10 +163,10 @@
             self,
             self.tr("New Connection Profile"),
             self.tr("Enter name for the new Connection Profile:"),
-            QLineEdit.Normal)
+            QLineEdit.EchoMode.Normal)
         if ok and bool(profileName):
             if profileName in self.__profiles:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("New Connection Profile"),
                     self.tr("""<p>A connection named <b>{0}</b> exists"""
@@ -170,7 +175,8 @@
             else:
                 itm = QListWidgetItem(profileName, self.profilesList)
                 self.profilesList.setCurrentItem(itm)
-                self.brokerAddressEdit.setFocus(Qt.OtherFocusReason)
+                self.brokerAddressEdit.setFocus(
+                    Qt.FocusReason.OtherFocusReason)
     
     @pyqtSlot()
     def on_copyButton_clicked(self):
@@ -184,10 +190,10 @@
                 self,
                 self.tr("Copy Connection Profile"),
                 self.tr("Enter name for the copied Connection Profile:"),
-                QLineEdit.Normal)
+                QLineEdit.EchoMode.Normal)
             if ok and bool(newProfileName):
                 if newProfileName in self.__profiles:
-                    E5MessageBox.warning(
+                    EricMessageBox.warning(
                         self,
                         self.tr("Copy Connection Profile"),
                         self.tr("""<p>A connection named <b>{0}</b> exists"""
@@ -200,7 +206,8 @@
                     
                     itm = QListWidgetItem(newProfileName, self.profilesList)
                     self.profilesList.setCurrentItem(itm)
-                    self.brokerAddressEdit.setFocus(Qt.OtherFocusReason)
+                    self.brokerAddressEdit.setFocus(
+                        Qt.FocusReason.OtherFocusReason)
     
     @pyqtSlot()
     def on_minusButton_clicked(self):
@@ -210,7 +217,7 @@
         itm = self.profilesList.currentItem()
         if itm:
             profileName = itm.text()
-            yes = E5MessageBox.yesNo(
+            yes = EricMessageBox.yesNo(
                 self,
                 self.tr("Delete Connection Profile"),
                 self.tr("""<p>Shall the Connection Profile <b>{0}</b>"""
@@ -223,7 +230,7 @@
                 self.__populateProfilesList()
                 self.__deletingProfile = False
         
-        self.profilesList.setFocus(Qt.OtherFocusReason)
+        self.profilesList.setFocus(Qt.FocusReason.OtherFocusReason)
     
     def getProfiles(self):
         """
@@ -316,7 +323,7 @@
         
         if currentProfile:
             items = self.profilesList.findItems(
-                currentProfile, Qt.MatchExactly)
+                currentProfile, Qt.MatchFlag.MatchExactly)
             if items:
                 self.profilesList.setCurrentItem(items[0])
         
@@ -481,7 +488,7 @@
             not self.cleanSessionCheckBox.isChecked()
         ):
             enable = False
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Invalid Connection Parameters"),
                 self.tr("An empty Client ID requires a clean session."))
@@ -500,7 +507,8 @@
                     bool(self.tlsSelfSignedClientKeyFilePicker.text())
                 )
         
-        self.profileButtonBox.button(QDialogButtonBox.Apply).setEnabled(enable)
+        self.profileButtonBox.button(
+            QDialogButtonBox.StandardButton.Apply).setEnabled(enable)
     
     @pyqtSlot(str)
     def on_brokerAddressEdit_textChanged(self, address):
@@ -518,7 +526,8 @@
         Private slot to generate a client ID.
         """
         uuid = QUuid.createUuid()
-        self.clientIdEdit.setText(uuid.toString(QUuid.WithoutBraces))
+        self.clientIdEdit.setText(
+            uuid.toString(QUuid.StringFormat.WithoutBraces))
     
     @pyqtSlot(str)
     def on_clientIdEdit_textChanged(self, clientId):
@@ -590,7 +599,7 @@
         """
         if checked and self.brokerPortSpinBox.value() == 1883:
             # port is still standard non-TLS port
-            yes = E5MessageBox.yesNo(
+            yes = EricMessageBox.yesNo(
                 self,
                 self.tr("SSL/TLS Enabled"),
                 self.tr(
@@ -598,13 +607,13 @@
                     """ However, the broker port is still the default"""
                     """ unencrypted port (port 1883). Shall this be"""
                     """ changed?"""),
-                icon=E5MessageBox.Warning,
+                icon=EricMessageBox.Warning,
                 yesDefault=True)
             if yes:
                 self.brokerPortSpinBox.setValue(8883)
         elif not checked and self.brokerPortSpinBox.value() == 8883:
             # port is still standard TLS port
-            yes = E5MessageBox.yesNo(
+            yes = EricMessageBox.yesNo(
                 self,
                 self.tr("SSL/TLS Disabled"),
                 self.tr(
@@ -612,7 +621,7 @@
                     """ However, the broker port is still the default"""
                     """ encrypted port (port 8883). Shall this be"""
                     """ changed?"""),
-                icon=E5MessageBox.Warning,
+                icon=EricMessageBox.Warning,
                 yesDefault=True)
             if yes:
                 self.brokerPortSpinBox.setValue(1883)
@@ -658,34 +667,32 @@
         Public slot to reject the dialog changes.
         """
         if self.__isChangedProfile():
-            button = E5MessageBox.warning(
+            button = EricMessageBox.warning(
                 self,
                 self.tr("Changed Connection Profile"),
                 self.tr("""The current profile has unsaved changes. Shall"""
                         """ these be saved?"""),
-                E5MessageBox.StandardButtons(
-                    E5MessageBox.Discard |
-                    E5MessageBox.Save),
-                E5MessageBox.Save)
-            if button == E5MessageBox.Save:
+                EricMessageBox.Discard |
+                EricMessageBox.Save,
+                EricMessageBox.Save)
+            if button == EricMessageBox.Save:
                 self.__applyProfile()
                 return
         
         if self.__profilesChanged:
-            button = E5MessageBox.warning(
+            button = EricMessageBox.warning(
                 self,
                 self.tr("Changed Connection Profiles"),
                 self.tr("""The list of connection profiles has unsaved"""
                         """ changes."""),
-                E5MessageBox.StandardButtons(
-                    E5MessageBox.Abort |
-                    E5MessageBox.Discard |
-                    E5MessageBox.Save),
-                E5MessageBox.Save)
-            if button == E5MessageBox.Save:
+                EricMessageBox.Abort |
+                EricMessageBox.Discard |
+                EricMessageBox.Save,
+                EricMessageBox.Save)
+            if button == EricMessageBox.Save:
                 super().accept()
                 return
-            elif button == E5MessageBox.Abort:
+            elif button == EricMessageBox.Abort:
                 return
         
         super().reject()
@@ -696,12 +703,12 @@
         Public slot to accept the dialog.
         """
         if self.__isChangedProfile():
-            yes = E5MessageBox.yesNo(
+            yes = EricMessageBox.yesNo(
                 self,
                 self.tr("Changed Connection Profile"),
                 self.tr("""The current profile has unsaved changes. Shall"""
                         """ these be saved?"""),
-                icon=E5MessageBox.Warning,
+                icon=EricMessageBox.Warning,
                 yesDefault=True)
             if yes:
                 self.__applyProfile()
diff -r 3cb08e5db764 -r 2fb5c08019fd MqttMonitor/MqttConnectionProfilesDialog.ui
--- a/MqttMonitor/MqttConnectionProfilesDialog.ui	Sun May 30 17:40:40 2021 +0200
+++ b/MqttMonitor/MqttConnectionProfilesDialog.ui	Sun May 30 18:21:40 2021 +0200
@@ -105,6 +105,9 @@
            <property name="readOnly">
             <bool>true</bool>
            </property>
+           <property name="clearButtonEnabled">
+            <bool>true</bool>
+           </property>
           </widget>
          </item>
          <item row="1" column="0" colspan="2">
@@ -122,10 +125,13 @@
           </widget>
          </item>
          <item row="2" column="1">
-          <widget class="E5ClearableLineEdit" name="brokerAddressEdit">
+          <widget class="QLineEdit" name="brokerAddressEdit">
            <property name="toolTip">
             <string>Enter the broker server address</string>
            </property>
+           <property name="clearButtonEnabled">
+            <bool>true</bool>
+           </property>
           </widget>
          </item>
          <item row="3" column="0">
@@ -178,10 +184,13 @@
          <item row="4" column="1">
           <layout class="QHBoxLayout" name="horizontalLayout_3">
            <item>
-            <widget class="E5ClearableLineEdit" name="clientIdEdit">
+            <widget class="QLineEdit" name="clientIdEdit">
              <property name="toolTip">
               <string>Enter the ID string for this client</string>
              </property>
+             <property name="clearButtonEnabled">
+              <bool>true</bool>
+             </property>
             </widget>
            </item>
            <item>
@@ -208,7 +217,7 @@
        <item>
         <widget class="QTabWidget" name="profileTabWidget">
          <property name="currentIndex">
-          <number>3</number>
+          <number>2</number>
          </property>
          <widget class="QWidget" name="generalTab">
           <attribute name="title">
@@ -345,10 +354,13 @@
             </widget>
            </item>
            <item row="0" column="1">
-            <widget class="E5ClearableLineEdit" name="usernameEdit">
+            <widget class="QLineEdit" name="usernameEdit">
              <property name="toolTip">
               <string>Enter the user name</string>
              </property>
+             <property name="clearButtonEnabled">
+              <bool>true</bool>
+             </property>
             </widget>
            </item>
            <item row="1" column="0">
@@ -359,13 +371,16 @@
             </widget>
            </item>
            <item row="1" column="1">
-            <widget class="E5ClearableLineEdit" name="passwordEdit">
+            <widget class="QLineEdit" name="passwordEdit">
              <property name="toolTip">
               <string>Enter the password</string>
              </property>
              <property name="echoMode">
               <enum>QLineEdit::Password</enum>
              </property>
+             <property name="clearButtonEnabled">
+              <bool>true</bool>
+             </property>
             </widget>
            </item>
            <item row="2" column="0">
@@ -389,10 +404,13 @@
           </attribute>
           <layout class="QGridLayout" name="gridLayout_4">
            <item row="0" column="0">
-            <widget class="E5ClearableLineEdit" name="willTopicEdit">
+            <widget class="QLineEdit" name="willTopicEdit">
              <property name="toolTip">
               <string>Enter the topic of the last will</string>
              </property>
+             <property name="clearButtonEnabled">
+              <bool>true</bool>
+             </property>
             </widget>
            </item>
            <item row="0" column="1">
@@ -518,7 +536,7 @@
                   </widget>
                  </item>
                  <item>
-                  <widget class="E5PathPicker" name="tlsCertsFilePicker" native="true">
+                  <widget class="EricPathPicker" name="tlsCertsFilePicker" native="true">
                    <property name="sizePolicy">
                     <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
                      <horstretch>0</horstretch>
@@ -588,7 +606,7 @@
                   </widget>
                  </item>
                  <item row="0" column="2">
-                  <widget class="E5PathPicker" name="tlsSelfSignedCertsFilePicker" native="true">
+                  <widget class="EricPathPicker" name="tlsSelfSignedCertsFilePicker" native="true">
                    <property name="sizePolicy">
                     <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
                      <horstretch>0</horstretch>
@@ -611,7 +629,7 @@
                   </widget>
                  </item>
                  <item row="1" column="2">
-                  <widget class="E5PathPicker" name="tlsSelfSignedClientCertFilePicker" native="true">
+                  <widget class="EricPathPicker" name="tlsSelfSignedClientCertFilePicker" native="true">
                    <property name="sizePolicy">
                     <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
                      <horstretch>0</horstretch>
@@ -634,7 +652,7 @@
                   </widget>
                  </item>
                  <item row="2" column="2">
-                  <widget class="E5PathPicker" name="tlsSelfSignedClientKeyFilePicker" native="true">
+                  <widget class="EricPathPicker" name="tlsSelfSignedClientKeyFilePicker" native="true">
                    <property name="sizePolicy">
                     <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
                      <horstretch>0</horstretch>
@@ -697,14 +715,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5ClearableLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>E5Gui/E5LineEdit.h</header>
-  </customwidget>
-  <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>EricWidgets/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff -r 3cb08e5db764 -r 2fb5c08019fd MqttMonitor/MqttMonitorWidget.py
--- a/MqttMonitor/MqttMonitorWidget.py	Sun May 30 17:40:40 2021 +0200
+++ b/MqttMonitor/MqttMonitorWidget.py	Sun May 30 18:21:40 2021 +0200
@@ -12,12 +12,12 @@
 import copy
 import contextlib
 
-from PyQt5.QtCore import pyqtSlot, Qt, QTimer, QFileInfo
-from PyQt5.QtGui import QFont, QTextCursor, QBrush
-from PyQt5.QtWidgets import QWidget, QDialog
+from PyQt6.QtCore import pyqtSlot, Qt, QTimer, QFileInfo
+from PyQt6.QtGui import QFont, QTextCursor, QBrush, QColor
+from PyQt6.QtWidgets import QWidget, QDialog
 
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5PathPicker import E5PathPickerModes
+from EricWidgets import EricMessageBox, EricFileDialog
+from EricWidgets.EricPathPicker import EricPathPickerModes
 
 from .Ui_MqttMonitorWidget import Ui_MqttMonitorWidget
 
@@ -37,14 +37,15 @@
     BrokerStatusTopic = "$SYS/broker/#"
     BrokerStatusTopicLoadPrefix = "$SYS/broker/load/"
     
-    def __init__(self, plugin, iconSuffix, parent=None):
+    def __init__(self, plugin, usesDarkPalette, parent=None):
         """
         Constructor
         
         @param plugin reference to the plug-in object
         @type MqttMonitorPlugin
-        @param iconSuffix suffix for the icons
-        @type str
+        @param usesDarkPalette flag indicating the use of a dark application
+            palette
+        @type bool
         @param parent reference to the parent widget
         @type QWidget
         """
@@ -52,7 +53,7 @@
         self.setupUi(self)
         
         self.__plugin = plugin
-        self.__iconSuffix = iconSuffix
+        self.__iconSuffix = "dark" if usesDarkPalette else "light"
         
         self.__connectedToBroker = False
         self.__brokerStatusTopicSubscribed = False
@@ -62,12 +63,13 @@
                          "mqtt48-{0}".format(self.__iconSuffix))
         ))
         
-        self.publishPayloadFilePicker.setMode(E5PathPickerModes.OpenFileMode)
+        self.publishPayloadFilePicker.setMode(
+            EricPathPickerModes.OPEN_FILE_MODE)
         self.publishPayloadFilePicker.setFilters(self.tr("All Files (*)"))
         
         self.__messagesFormat = self.messagesEdit.currentCharFormat()
         self.__messagesTopicFormat = self.messagesEdit.currentCharFormat()
-        self.__messagesTopicFormat.setFontWeight(QFont.Bold)
+        self.__messagesTopicFormat.setFontWeight(QFont.Weight.Bold)
         self.__messagesQosFormat = self.messagesEdit.currentCharFormat()
         self.__messagesQosFormat.setFontItalic(True)
         
@@ -87,15 +89,26 @@
         self.logLevelComboBox.setCurrentIndex(
             self.logLevelComboBox.count() - 1)
         
-        self.__logMessagesBackgrounds = {
-            MqttClient.LogDebug: QBrush(Qt.white),
-            MqttClient.LogInfo: QBrush(Qt.lightGray),
-            MqttClient.LogNotice: QBrush(Qt.green),
-            MqttClient.LogWarning: QBrush(Qt.yellow),
-            MqttClient.LogError: QBrush(Qt.red),
-            MqttClient.LogDisabled: QBrush(Qt.magenta)
-            # reuse LogDisabled for unknown log levels
-        }
+        if usesDarkPalette:
+            self.__logMessagesBackgrounds = {
+                MqttClient.LogDebug: QBrush(QColor("#2f2f2f")),
+                MqttClient.LogInfo: QBrush(QColor("#868686")),
+                MqttClient.LogNotice: QBrush(QColor("#009900")),
+                MqttClient.LogWarning: QBrush(QColor("#999900")),
+                MqttClient.LogError: QBrush(QColor("#990000")),
+                MqttClient.LogDisabled: QBrush(QColor("#990099")),
+                # reuse LogDisabled for unknown log levels
+            }
+        else:
+            self.__logMessagesBackgrounds = {
+                MqttClient.LogDebug: QBrush(Qt.GlobalColor.white),
+                MqttClient.LogInfo: QBrush(Qt.GlobalColor.lightGray),
+                MqttClient.LogNotice: QBrush(Qt.GlobalColor.green),
+                MqttClient.LogWarning: QBrush(Qt.GlobalColor.yellow),
+                MqttClient.LogError: QBrush(Qt.GlobalColor.red),
+                MqttClient.LogDisabled: QBrush(Qt.GlobalColor.magenta)
+                # reuse LogDisabled for unknown log levels
+            }
         
         self.logSearchWidget.attachTextEdit(self.logEdit)
         self.logSearchWidget.setWidthForHeight(False)
@@ -106,7 +119,7 @@
         self.__setConnectionMode(True)  # initial mode is 'profile connection'
         self.__populateProfileComboBox()
         
-        self.connectButton.setIcon(UI.PixmapCache.getIcon("ircConnect.png"))
+        self.connectButton.setIcon(UI.PixmapCache.getIcon("ircConnect"))
         self.brokerConnectionOptionsButton.setIcon(UI.PixmapCache.getIcon(
             os.path.join("MqttMonitor", "icons",
                          "connectionOptions-{0}".format(self.__iconSuffix))
@@ -114,9 +127,9 @@
         self.__populateBrokerComboBoxes()
         self.brokerStatusLabel.hide()
         
-        self.subscribeButton.setIcon(UI.PixmapCache.getIcon("plus.png"))
+        self.subscribeButton.setIcon(UI.PixmapCache.getIcon("plus"))
         self.subscribeButton.setEnabled(False)
-        self.unsubscribeButton.setIcon(UI.PixmapCache.getIcon("minus.png"))
+        self.unsubscribeButton.setIcon(UI.PixmapCache.getIcon("minus"))
         
         self.__subscribedTopics = []
         self.__topicQueue = {}
@@ -215,7 +228,7 @@
             self.__connectionOptions = None
             
             self.connectButton.setIcon(
-                UI.PixmapCache.getIcon("ircDisconnect.png"))
+                UI.PixmapCache.getIcon("ircDisconnect"))
             
             self.subscribeGroup.setEnabled(True)
             self.unsubscribeGroup.setEnabled(True)
@@ -256,7 +269,7 @@
         )
         self.__flashBrokerStatusLabel(msg)
         
-        self.connectButton.setIcon(UI.PixmapCache.getIcon("ircConnect.png"))
+        self.connectButton.setIcon(UI.PixmapCache.getIcon("ircConnect"))
         self.__setConnectButtonState()
 
         self.__subscribedTopics = []
@@ -290,7 +303,7 @@
         
         textCursor = self.logEdit.textCursor()
         if not self.logEdit.document().isEmpty():
-            textCursor.movePosition(QTextCursor.End)
+            textCursor.movePosition(QTextCursor.MoveOperation.End)
             self.logEdit.setTextCursor(textCursor)
             self.logEdit.insertPlainText("\n")
         
@@ -302,7 +315,7 @@
             textBlockFormat.setBackground(
                 self.__logMessagesBackgrounds[MqttClient.LogDisabled])
         textCursor.setBlockFormat(textBlockFormat)
-        textCursor.movePosition(QTextCursor.End)
+        textCursor.movePosition(QTextCursor.MoveOperation.End)
         self.logEdit.setTextCursor(textCursor)
         
         txt = self.tr("{0}: {1}").format(mqttLogLevelString(level), message)
@@ -341,6 +354,7 @@
         @param mid ID of the published message
         @type int
         """
+        # TODO: check this 'pass' statement
         pass
     
     @pyqtSlot(int, tuple)
@@ -434,7 +448,7 @@
             dlg = MqttConnectionProfilesDialog(
                 self.__client, self.__plugin.getPreferences("BrokerProfiles"),
                 parent=self)
-            if dlg.exec() == QDialog.Accepted:
+            if dlg.exec() == QDialog.DialogCode.Accepted:
                 profilesDict = dlg.getProfiles()
                 self.__plugin.setPreferences("BrokerProfiles", profilesDict)
                 self.__populateProfileComboBox()
@@ -444,7 +458,7 @@
             )
             dlg = MqttConnectionOptionsDialog(
                 self.__client, self.__connectionOptions, parent=self)
-            if dlg.exec() == QDialog.Accepted:
+            if dlg.exec() == QDialog.DialogCode.Accepted:
                 self.__connectionOptions = dlg.getConnectionOptions()
                 if self.__connectionOptions["TlsEnable"]:
                     port = self.brokerPortComboBox.currentText().strip()
@@ -497,7 +511,7 @@
         qos = self.subscribeQosSpinBox.value()
         if topic:
             if topic.startswith(MqttMonitorWidget.BrokerStatusTopicPrefix):
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Subscribe to Topic"),
                     self.tr("Subscriptions to the Status topic '$SYS' shall"
@@ -555,7 +569,7 @@
                 with open(payloadFile, "rb") as f:
                     payloadStr = f.read()
             except EnvironmentError as err:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Read Payload from File"),
                     self.tr("""<p>The file <b>{0}</b> could not be read."""
@@ -635,13 +649,13 @@
         """
         Private slot to save the received messages.
         """
-        fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fn, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Save Messages"),
             "",
             self.tr("Messages Files (*.txt);;All Files (*)"),
             "",
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            EricFileDialog.DontConfirmOverwrite)
         
         if fn:
             if fn.endswith("."):
@@ -653,12 +667,12 @@
                 if ex:
                     fn += ex
             if QFileInfo(fn).exists():
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     self,
                     self.tr("Save Messages"),
                     self.tr("<p>The file <b>{0}</b> already exists."
                             " Overwrite it?</p>").format(fn),
-                    icon=E5MessageBox.Warning)
+                    icon=EricMessageBox.Warning)
                 if not res:
                     return
             
@@ -667,7 +681,7 @@
                 with open(fn, "w") as f:
                     f.write(self.messagesEdit.toPlainText())
             except EnvironmentError as err:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Save Messages"),
                     self.tr("""<p>The file <b>{0}</b> could not be written."""
@@ -691,13 +705,13 @@
         """
         Private slot to save the log messages.
         """
-        fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fn, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Save Log Messages"),
             "",
             self.tr("Log Files (*.log);;All Files (*)"),
             "",
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            EricFileDialog.DontConfirmOverwrite)
         
         if fn:
             if fn.endswith("."):
@@ -709,12 +723,12 @@
                 if ex:
                     fn += ex
             if QFileInfo(fn).exists():
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     self,
                     self.tr("Save Log Messages"),
                     self.tr("<p>The file <b>{0}</b> already exists."
                             " Overwrite it?</p>").format(fn),
-                    icon=E5MessageBox.Warning)
+                    icon=EricMessageBox.Warning)
                 if not res:
                     return
             
@@ -723,7 +737,7 @@
                 with open(fn, "w") as f:
                     f.write(self.logEdit.toPlainText())
             except EnvironmentError as err:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Save Log Messages"),
                     self.tr("""<p>The file <b>{0}</b> could not be written."""
@@ -859,7 +873,7 @@
         
         textCursor = self.messagesEdit.textCursor()
         if not self.messagesEdit.document().isEmpty():
-            textCursor.movePosition(QTextCursor.End)
+            textCursor.movePosition(QTextCursor.MoveOperation.End)
             self.messagesEdit.setTextCursor(textCursor)
             self.messagesEdit.insertPlainText("\n")
         
@@ -871,7 +885,7 @@
             textBlockFormat.setBackground(
                 self.messagesEdit.palette().base())
         textCursor.setBlockFormat(textBlockFormat)
-        textCursor.movePosition(QTextCursor.End)
+        textCursor.movePosition(QTextCursor.MoveOperation.End)
         self.messagesEdit.setTextCursor(textCursor)
         
         self.messagesEdit.setCurrentCharFormat(self.__messagesTopicFormat)
diff -r 3cb08e5db764 -r 2fb5c08019fd MqttMonitor/MqttMonitorWidget.ui
--- a/MqttMonitor/MqttMonitorWidget.ui	Sun May 30 17:40:40 2021 +0200
+++ b/MqttMonitor/MqttMonitorWidget.ui	Sun May 30 18:21:40 2021 +0200
@@ -81,7 +81,7 @@
             <number>0</number>
            </property>
            <item>
-            <widget class="E5ClearableComboBox" name="brokerComboBox">
+            <widget class="QComboBox" name="brokerComboBox">
              <property name="sizePolicy">
               <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
                <horstretch>0</horstretch>
@@ -144,7 +144,7 @@
    <item>
     <widget class="QTabWidget" name="brokerWidget">
      <property name="currentIndex">
-      <number>3</number>
+      <number>0</number>
      </property>
      <widget class="QWidget" name="pubSubTab">
       <attribute name="title">
@@ -168,10 +168,13 @@
            </widget>
           </item>
           <item>
-           <widget class="E5ClearableLineEdit" name="subscribeTopicEdit">
+           <widget class="QLineEdit" name="subscribeTopicEdit">
             <property name="toolTip">
              <string>Enter the topic</string>
             </property>
+            <property name="clearButtonEnabled">
+             <bool>true</bool>
+            </property>
            </widget>
           </item>
           <item>
@@ -262,7 +265,7 @@
              </widget>
             </item>
             <item>
-             <widget class="E5ClearableComboBox" name="publishTopicComboBox">
+             <widget class="QComboBox" name="publishTopicComboBox">
               <property name="sizePolicy">
                <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
                 <horstretch>0</horstretch>
@@ -335,7 +338,7 @@
              </widget>
             </item>
             <item>
-             <widget class="E5PathPicker" name="publishPayloadFilePicker" native="true">
+             <widget class="EricPathPicker" name="publishPayloadFilePicker" native="true">
               <property name="sizePolicy">
                <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
                 <horstretch>0</horstretch>
@@ -420,7 +423,7 @@
       </attribute>
       <layout class="QVBoxLayout" name="verticalLayout_3">
        <item>
-        <widget class="E5TextEditSearchWidget" name="messagesSearchWidget" native="true">
+        <widget class="EricTextEditSearchWidget" name="messagesSearchWidget" native="true">
          <property name="focusPolicy">
           <enum>Qt::WheelFocus</enum>
          </property>
@@ -545,7 +548,7 @@
            <rect>
             <x>0</x>
             <y>0</y>
-            <width>344</width>
+            <width>178</width>
             <height>840</height>
            </rect>
           </property>
@@ -1293,7 +1296,7 @@
         </layout>
        </item>
        <item>
-        <widget class="E5TextEditSearchWidget" name="logSearchWidget" native="true">
+        <widget class="EricTextEditSearchWidget" name="logSearchWidget" native="true">
          <property name="focusPolicy">
           <enum>Qt::WheelFocus</enum>
          </property>
@@ -1379,25 +1382,15 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5ClearableLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>E5Gui/E5LineEdit.h</header>
-  </customwidget>
-  <customwidget>
-   <class>E5ClearableComboBox</class>
-   <extends>QComboBox</extends>
-   <header>E5Gui/E5ComboBox.h</header>
-  </customwidget>
-  <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>EricWidgets/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
   <customwidget>
-   <class>E5TextEditSearchWidget</class>
+   <class>EricTextEditSearchWidget</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5TextEditSearchWidget.h</header>
+   <header>EricWidgets/EricTextEditSearchWidget.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
diff -r 3cb08e5db764 -r 2fb5c08019fd MqttMonitor/i18n/mqttmonitor_de.qm
Binary file MqttMonitor/i18n/mqttmonitor_de.qm has changed
diff -r 3cb08e5db764 -r 2fb5c08019fd MqttMonitor/i18n/mqttmonitor_de.ts
--- a/MqttMonitor/i18n/mqttmonitor_de.ts	Sun May 30 17:40:40 2021 +0200
+++ b/MqttMonitor/i18n/mqttmonitor_de.ts	Sun May 30 18:21:40 2021 +0200
@@ -1,1171 +1,1243 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="de_DE" sourcelanguage="">
-<context>
+<!DOCTYPE TS>
+<TS version="2.1" language="de_DE">
+  <context>
     <name>MqttConnackMessage</name>
     <message>
-        <location filename="../MqttClient.py" line="467"/>
-        <source>Connection Accepted.</source>
-        <translation>Verbindung akzeptiert.</translation>
+      <location filename="../MqttClient.py" line="483" />
+      <source>Connection Accepted.</source>
+      <translation>Verbindung akzeptiert.</translation>
+    </message>
+    <message>
+      <location filename="../MqttClient.py" line="487" />
+      <source>Connection Refused: unacceptable protocol version.</source>
+      <translation>Verbindung abgelehnt: inakzeptable Protokollversion.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="471"/>
-        <source>Connection Refused: unacceptable protocol version.</source>
-        <translation>Verbindung abgelehnt: inakzeptable Protokollversion.</translation>
+      <location filename="../MqttClient.py" line="491" />
+      <source>Connection Refused: identifier rejected.</source>
+      <translation>Verbindung abgelehnt: Identifizierer abgelehnt.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="475"/>
-        <source>Connection Refused: identifier rejected.</source>
-        <translation>Verbindung abgelehnt: Identifizierer abgelehnt.</translation>
+      <location filename="../MqttClient.py" line="495" />
+      <source>Connection Refused: broker unavailable.</source>
+      <translation>Verbindung abgelehnt: Broker nicht verfügbar.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="479"/>
-        <source>Connection Refused: broker unavailable.</source>
-        <translation>Verbindung abgelehnt: Broker nicht verfügbar.</translation>
+      <location filename="../MqttClient.py" line="499" />
+      <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="483"/>
-        <source>Connection Refused: bad user name or password.</source>
-        <translation>Verbindung abgelehnt: Nutzername oder Kennwort ungültig.</translation>
+      <location filename="../MqttClient.py" line="503" />
+      <source>Connection Refused: not authorised.</source>
+      <translation>Verbindung abgelehnt: nicht autorisiert.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="487"/>
-        <source>Connection Refused: not authorised.</source>
-        <translation>Verbindung abgelehnt: nicht autorisiert.</translation>
+      <location filename="../MqttClient.py" line="507" />
+      <source>Connection Refused: unknown reason.</source>
+      <translation>Verbindung abgelehnt: unbekante Ursache.</translation>
+    </message>
+  </context>
+  <context>
+    <name>MqttConnectionOptionsDialog</name>
+    <message>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>MQTT Connection Options</source>
+      <translation>MQTT Verbindungsoptionen</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="491"/>
-        <source>Connection Refused: unknown reason.</source>
-        <translation>Verbindung abgelehnt: unbekante Ursache.</translation>
-    </message>
-</context>
-<context>
-    <name>MqttConnectionOptionsDialog</name>
-    <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="14"/>
-        <source>MQTT Connection Options</source>
-        <translation>MQTT Verbindungsoptionen</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>General</source>
+      <translation>Allgemein</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="23"/>
-        <source>General</source>
-        <translation>Allgemein</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Client ID:</source>
+      <translation>Client ID:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="29"/>
-        <source>Client ID:</source>
-        <translation>Client ID:</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the ID string for this client</source>
+      <translation>Gib eine ID für diesen Client ein</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="36"/>
-        <source>Enter the ID string for this client</source>
-        <translation>Gib eine ID für diesen Client ein</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Press to generate a client ID</source>
+      <translation>Drücken, um eine Client ID zu erzeugen</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="43"/>
-        <source>Press to generate a client ID</source>
-        <translation>Drücken, um eine Client ID zu erzeugen</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Generate</source>
+      <translation>Erzeugen</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="46"/>
-        <source>Generate</source>
-        <translation>Erzeugen</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Connection Timeout:</source>
+      <translation>Verbindungszeitlimit:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="99"/>
-        <source>Keep Alive Interval:</source>
-        <translation>Keepalive Intervall:</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the connection timeout in seconds</source>
+      <translation>Gib das Verbindungszeitlimit in Sekunden ein</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="108"/>
-        <source>Enter the keep alive interval in seconds</source>
-        <translation>Gib das Keepalive Intervall in Sekunden ein</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source> s</source>
+      <translation> s</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="114"/>
-        <source> s</source>
-        <translation> s</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Keep Alive Interval:</source>
+      <translation>Keepalive Intervall:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="148"/>
-        <source>Clean Session</source>
-        <translation>Neue Sitzung</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the keep alive interval in seconds</source>
+      <translation>Gib das Keepalive Intervall in Sekunden ein</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="158"/>
-        <source>User Credentials</source>
-        <translation>Nutzerberechtigungen</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Select to start with a clean session</source>
+      <translation>Auswählen, um mit einer neuen Sitzung zu starten</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="164"/>
-        <source>User Name:</source>
-        <translation>Nutzername:</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Clean Session</source>
+      <translation>Neue Sitzung</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="171"/>
-        <source>Enter the user name</source>
-        <translation>Gib den Nutzernamen ein</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>User Credentials</source>
+      <translation>Nutzerberechtigungen</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="178"/>
-        <source>Password:</source>
-        <translation>Kennwort:</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>User Name:</source>
+      <translation>Nutzername:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="185"/>
-        <source>Enter the password</source>
-        <translation>Gib das Kennwort ein</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the user name</source>
+      <translation>Gib den Nutzernamen ein</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="198"/>
-        <source>Last Will and Testament</source>
-        <translation>Letzter Wille und Testament</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Password:</source>
+      <translation>Kennwort:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="204"/>
-        <source>Enter the topic of the last will</source>
-        <translation>Gib das Thema für den letzten Willen ein</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the password</source>
+      <translation>Gib das Kennwort ein</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="211"/>
-        <source>QoS:</source>
-        <translation>QoS:</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Last Will and Testament</source>
+      <translation>Letzter Wille und Testament</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="218"/>
-        <source>Enter the desired QoS value</source>
-        <translation>Gib den gewünschten QoS Wert ein</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the topic of the last will</source>
+      <translation>Gib das Thema für den letzten Willen ein</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="231"/>
-        <source>Select to retain the last will message</source>
-        <translation>Auswählen, um die Nachricht des letzten Willens zu behalten</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>QoS:</source>
+      <translation>QoS:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="234"/>
-        <source>Retain</source>
-        <translation>Behalten</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the desired QoS value</source>
+      <translation>Gib den gewünschten QoS Wert ein</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="247"/>
-        <source>Enter the last will message to be sent</source>
-        <translation>Gib die zu sendende Nachricht des letzten Willens ein</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Select to retain the last will message</source>
+      <translation>Auswählen, um die Nachricht des letzten Willens zu behalten</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="53"/>
-        <source>Connection Timeout:</source>
-        <translation>Verbindungszeitlimit:</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Retain</source>
+      <translation>Behalten</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="62"/>
-        <source>Enter the connection timeout in seconds</source>
-        <translation>Gib das Verbindungszeitlimit in Sekunden ein</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the last will message to be sent</source>
+      <translation>Gib die zu sendende Nachricht des letzten Willens ein</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="145"/>
-        <source>Select to start with a clean session</source>
-        <translation>Auswählen, um mit einer neuen Sitzung zu starten</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>SSL/TLS</source>
+      <translation>SSL/TLS</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="257"/>
-        <source>SSL/TLS</source>
-        <translation>SSL/TLS</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Select to enable SSL/TLS connections</source>
+      <translation>Auswählen, um SSL/TLS Verbindungen zu aktivieren</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="263"/>
-        <source>Select to enable SSL/TLS connections</source>
-        <translation>Auswählen, um SSL/TLS Verbindungen zu aktivieren</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>SSL/TLS Enabled</source>
+      <translation>SSL/TLS aktiviert</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="266"/>
-        <source>SSL/TLS Enabled</source>
-        <translation>SSL/TLS aktiviert</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>CA File:</source>
+      <translation>CA Zertifikatsdatei:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="273"/>
-        <source>CA File:</source>
-        <translation>CA Zertifikatsdatei:</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the full path to the CA certificate file; leave empty to use platform default</source>
+      <translation>Gib den vollständigen Pfad zur CA Zertifikatsdatei ein; leer lassen, um den Plattformstandard zu verwenden</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="292"/>
-        <source>Enter the full path to the CA certificate file; leave empty to use platform default</source>
-        <translation>Gib den vollständigen Pfad zur CA Zertifikatsdatei ein; leer lassen, um den Plattformstandard zu verwenden</translation>
+      <location filename="../MqttConnectionOptionsDialog.py" line="47" />
+      <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
+      <translation>Zertifikatdateien (*.crt *.pem);;Alle Dateien (*)</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.py" line="46"/>
-        <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
-        <translation>Zertifikatdateien (*.crt *.pem);;Alle Dateien (*)</translation>
-    </message>
-    <message>
-        <location filename="../MqttConnectionOptionsDialog.py" line="62"/>
-        <source>Invalid Connection Parameters</source>
-        <translation>Ungültige Verbindungsparameter</translation>
+      <location filename="../MqttConnectionOptionsDialog.py" line="64" />
+      <source>Invalid Connection Parameters</source>
+      <translation>Ungültige Verbindungsparameter</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.py" line="62"/>
-        <source>An empty Client ID requires a clean session.</source>
-        <translation>Eine leere Client ID setzt eine neue Session voraus.</translation>
+      <location filename="../MqttConnectionOptionsDialog.py" line="65" />
+      <source>An empty Client ID requires a clean session.</source>
+      <translation>Eine leere Client ID setzt eine neue Session voraus.</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>MqttConnectionProfilesDialog</name>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="14"/>
-        <source>MQTT Connection Profiles</source>
-        <translation>MQTT Verbindungsprofile</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="70" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="66" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="62" />
+      <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
+      <translation>Zertifikatdateien (*.crt *.pem);;Alle Dateien (*)</translation>
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.py" line="74" />
+      <source>Key Files (*.key *.pem);;All Files (*)</source>
+      <translation>Schlüsseldateien (*.key *.pem);;Alle Dateien (*)</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="51"/>
-        <source>Press to add a new profile</source>
-        <translation>Drücken, um ein neues Profil hinzuzufügen</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="708" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="672" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="143" />
+      <source>Changed Connection Profile</source>
+      <translation>Verbindungsprofil geändert</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="58"/>
-        <source>Press to copy the selected profile</source>
-        <translation>Drücken, um das ausgewählte Profil zu kopieren</translation>
-    </message>
-    <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="65"/>
-        <source>Press to delete the selected profile</source>
-        <translation>Drücken, um das ausgewählte Profil zu löschen</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="709" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="673" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="144" />
+      <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.ui" line="99"/>
-        <source>Profile Name:</source>
-        <translation>Profilbezeichnung:</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="171" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="164" />
+      <source>New Connection Profile</source>
+      <translation>Neues Verbindungsprofil</translation>
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.py" line="165" />
+      <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.ui" line="120"/>
-        <source>Broker Address:</source>
-        <translation>Brokeradresse:</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="199" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="172" />
+      <source>&lt;p&gt;A connection named &lt;b&gt;{0}&lt;/b&gt; exists already. Aborting...&lt;/p&gt;</source>
+      <translation>&lt;p&gt;Eine Verbindung mit der Bezeichnung &lt;b&gt;{0}&lt;/b&gt; existiert bereits. Abbruch...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="127"/>
-        <source>Enter the broker server address</source>
-        <translation>Gib die Serveradresse des Broker ein</translation>
-    </message>
-    <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="134"/>
-        <source>Broker Port:</source>
-        <translation>Brokerport:</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="198" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="191" />
+      <source>Copy Connection Profile</source>
+      <translation>Verbindungsprofil kopieren</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="143"/>
-        <source>Enter the broker port number (default 1883)</source>
-        <translation>Gib die Portnummer des Broker ein (Standard 1883)</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="192" />
+      <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.ui" line="174"/>
-        <source>Client ID:</source>
-        <translation>Client ID:</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="222" />
+      <source>Delete Connection Profile</source>
+      <translation>Verbindungsprofil löschen</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="183"/>
-        <source>Enter the ID string for this client</source>
-        <translation>Gib eine ID für diesen Client ein</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="223" />
+      <source>&lt;p&gt;Shall the Connection Profile &lt;b&gt;{0}&lt;/b&gt; really be deleted?&lt;/p&gt;</source>
+      <translation>&lt;p&gt;Soll das Verbindungsprofil &lt;b&gt;{0}&lt;/b&gt; wirklich gelöscht werden?&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.py" line="493" />
+      <source>Invalid Connection Parameters</source>
+      <translation>Ungültige Verbindungsparameter</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="190"/>
-        <source>Press to generate a client ID</source>
-        <translation>Drücken, um eine Client ID zu erzeugen</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="494" />
+      <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.ui" line="193"/>
-        <source>Generate</source>
-        <translation>Erzeugen</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="604" />
+      <source>SSL/TLS Enabled</source>
+      <translation>SSL/TLS aktiviert</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="215"/>
-        <source>General</source>
-        <translation>Allgemein</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="605" />
+      <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.ui" line="221"/>
-        <source>Connection Timeout:</source>
-        <translation>Verbindungszeitlimit:</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="618" />
+      <source>SSL/TLS Disabled</source>
+      <translation>SSL/TLS deaktiviert</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="230"/>
-        <source>Enter the connection timeout in seconds</source>
-        <translation>Gib das Verbindungszeitlimit in Sekunden ein</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="619" />
+      <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.ui" line="282"/>
-        <source> s</source>
-        <translation> s</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="685" />
+      <source>Changed Connection Profiles</source>
+      <translation>Verbindungsprofile geändert</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="267"/>
-        <source>Keep Alive Interval:</source>
-        <translation>Keepalive Intervall:</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="686" />
+      <source>The list of connection profiles has unsaved changes.</source>
+      <translation>Die Liste der Verbindungsprofile hat ungesicherte Änderungen.</translation>
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>MQTT Connection Profiles</source>
+      <translation>MQTT Verbindungsprofile</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="276"/>
-        <source>Enter the keep alive interval in seconds</source>
-        <translation>Gib das Keepalive Intervall in Sekunden ein</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Press to add a new profile</source>
+      <translation>Drücken, um ein neues Profil hinzuzufügen</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="313"/>
-        <source>Select to start with a clean session</source>
-        <translation>Auswählen, um mit einer neuen Sitzung zu starten</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Press to copy the selected profile</source>
+      <translation>Drücken, um das ausgewählte Profil zu kopieren</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="316"/>
-        <source>Clean Session</source>
-        <translation>Neue Sitzung</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Press to delete the selected profile</source>
+      <translation>Drücken, um das ausgewählte Profil zu löschen</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="337"/>
-        <source>User Credentials</source>
-        <translation>Nutzerberechtigungen</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Profile Name:</source>
+      <translation>Profilbezeichnung:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="343"/>
-        <source>User Name:</source>
-        <translation>Nutzername:</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Broker Address:</source>
+      <translation>Brokeradresse:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="350"/>
-        <source>Enter the user name</source>
-        <translation>Gib den Nutzernamen ein</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the broker server address</source>
+      <translation>Gib die Serveradresse des Broker ein</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="357"/>
-        <source>Password:</source>
-        <translation>Kennwort:</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Broker Port:</source>
+      <translation>Brokerport:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="364"/>
-        <source>Enter the password</source>
-        <translation>Gib das Kennwort ein</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the broker port number (default 1883)</source>
+      <translation>Gib die Portnummer des Broker ein (Standard 1883)</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="388"/>
-        <source>Last Will</source>
-        <translation>Letzter Wille</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Client ID:</source>
+      <translation>Client ID:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="394"/>
-        <source>Enter the topic of the last will</source>
-        <translation>Gib das Thema für den letzten Willen ein</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the ID string for this client</source>
+      <translation>Gib eine ID für diesen Client ein</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="401"/>
-        <source>Enter the desired QoS value</source>
-        <translation>Gib den gewünschten QoS Wert ein</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Press to generate a client ID</source>
+      <translation>Drücken, um eine Client ID zu erzeugen</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="414"/>
-        <source>Select to retain the last will message</source>
-        <translation>Auswählen, um die Nachricht des letzten Willens zu behalten</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Generate</source>
+      <translation>Erzeugen</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="417"/>
-        <source>Retain</source>
-        <translation>Behalten</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>General</source>
+      <translation>Allgemein</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="430"/>
-        <source>Enter the last will message to be sent</source>
-        <translation>Gib die zu sendende Nachricht des letzten Willens ein</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Connection Timeout:</source>
+      <translation>Verbindungszeitlimit:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="438"/>
-        <source>SSL/TLS</source>
-        <translation>SSL/TLS</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the connection timeout in seconds</source>
+      <translation>Gib das Verbindungszeitlimit in Sekunden ein</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="444"/>
-        <source>Select to enable SSL/TLS connections</source>
-        <translation>Auswählen, um SSL/TLS Verbindungen zu aktivieren</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source> s</source>
+      <translation> s</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="590"/>
-        <source>SSL/TLS Enabled</source>
-        <translation>SSL/TLS aktiviert</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Keep Alive Interval:</source>
+      <translation>Keepalive Intervall:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="459"/>
-        <source>Select to use the default certificate file of the client</source>
-        <translation>Auswählen, um die Standardzertifikatsdatei des Client zu verwenden</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the keep alive interval in seconds</source>
+      <translation>Gib das Keepalive Intervall in Sekunden ein</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="462"/>
-        <source>CA signed server certificate</source>
-        <translation>CA signiertes Serverzertifikat</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to start with a clean session</source>
+      <translation>Auswählen, um mit einer neuen Sitzung zu starten</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="472"/>
-        <source>Select to use a specific certificate file</source>
-        <translation>Auswählen, um eine spezifische Zertifikatsdatei zu verwenden</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Clean Session</source>
+      <translation>Neue Sitzung</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="475"/>
-        <source>CA certificate file</source>
-        <translation>CA Zertifikatsdatei</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>User Credentials</source>
+      <translation>Nutzerberechtigungen</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="586"/>
-        <source>CA File:</source>
-        <translation>CA Datei:</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>User Name:</source>
+      <translation>Nutzername:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="602"/>
-        <source>Enter the full path to the CA certificate file</source>
-        <translation>Gib den vollständigen Pfad zur CA Zertifikatsdatei ein</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the user name</source>
+      <translation>Gib den Nutzernamen ein</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="542"/>
-        <source>Select to use a self signed client certificate</source>
-        <translation>Auswählen, um ein selbst signiertes Clientzertifikat zu verwenden</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Password:</source>
+      <translation>Kennwort:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="545"/>
-        <source>Self signed certificates</source>
-        <translation>Selbst signierte Zertifikate</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the password</source>
+      <translation>Gib das Kennwort ein</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="609"/>
-        <source>Client Certificate File:</source>
-        <translation>Client Zertifikatsdatei:</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Last Will</source>
+      <translation>Letzter Wille</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="625"/>
-        <source>Enter the full path to the client certificate file</source>
-        <translation>Gib den vollständigen Pfad zur Zertifikatsdatei des Client ein</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the topic of the last will</source>
+      <translation>Gib das Thema für den letzten Willen ein</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="632"/>
-        <source>Client Key File:</source>
-        <translation>Client Schlüssekdatei:</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the desired QoS value</source>
+      <translation>Gib den gewünschten QoS Wert ein</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="648"/>
-        <source>Enter the full path to the client key file</source>
-        <translation>Gib den vollständigen Pfad zur Schlüsseldatei des Client ein</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to retain the last will message</source>
+      <translation>Auswählen, um die Nachricht des letzten Willens zu behalten</translation>
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Retain</source>
+      <translation>Behalten</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="69"/>
-        <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
-        <translation>Zertifikatdateien (*.crt *.pem);;Alle Dateien (*)</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the last will message to be sent</source>
+      <translation>Gib die zu sendende Nachricht des letzten Willens ein</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="73"/>
-        <source>Key Files (*.key *.pem);;All Files (*)</source>
-        <translation>Schlüsseldateien (*.key *.pem);;Alle Dateien (*)</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>SSL/TLS</source>
+      <translation>SSL/TLS</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="696"/>
-        <source>Changed Connection Profile</source>
-        <translation>Verbindungsprofil geändert</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to enable SSL/TLS connections</source>
+      <translation>Auswählen, um SSL/TLS Verbindungen zu aktivieren</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="696"/>
-        <source>The current profile has unsaved changes. Shall these be saved?</source>
-        <translation>Das aktuelle Profil hat ungesicherte Änderungen. Sollen diese gesichert werden?</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to use the default certificate file of the client</source>
+      <translation>Auswählen, um die Standardzertifikatsdatei des Client zu verwenden</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="161"/>
-        <source>New Connection Profile</source>
-        <translation>Neues Verbindungsprofil</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>CA signed server certificate</source>
+      <translation>CA signiertes Serverzertifikat</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="154"/>
-        <source>Enter name for the new Connection Profile:</source>
-        <translation>Gib eine Bezeichnung für das neue Verbindungsprofil ein:</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to use a specific certificate file</source>
+      <translation>Auswählen, um eine spezifische Zertifikatsdatei zu verwenden</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="187"/>
-        <source>&lt;p&gt;A connection named &lt;b&gt;{0}&lt;/b&gt; exists already. Aborting...&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Eine Verbindung mit der Bezeichnung &lt;b&gt;{0}&lt;/b&gt; existiert bereits. Abbruch...&lt;/p&gt;</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>CA certificate file</source>
+      <translation>CA Zertifikatsdatei</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="187"/>
-        <source>Copy Connection Profile</source>
-        <translation>Verbindungsprofil kopieren</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>CA File:</source>
+      <translation>CA Datei:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="180"/>
-        <source>Enter name for the copied Connection Profile:</source>
-        <translation>Gib eine Bezeichnung für das kopierte Verbindungsprofil ein:</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the full path to the CA certificate file</source>
+      <translation>Gib den vollständigen Pfad zur CA Zertifikatsdatei ein</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="210"/>
-        <source>Delete Connection Profile</source>
-        <translation>Verbindungsprofil löschen</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to use a self signed client certificate</source>
+      <translation>Auswählen, um ein selbst signiertes Clientzertifikat zu verwenden</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="210"/>
-        <source>&lt;p&gt;Shall the Connection Profile &lt;b&gt;{0}&lt;/b&gt; really be deleted?&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Soll das Verbindungsprofil &lt;b&gt;{0}&lt;/b&gt; wirklich gelöscht werden?&lt;/p&gt;</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Self signed certificates</source>
+      <translation>Selbst signierte Zertifikate</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="481"/>
-        <source>Invalid Connection Parameters</source>
-        <translation>Ungültige Verbindungsparameter</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Client Certificate File:</source>
+      <translation>Client Zertifikatsdatei:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="481"/>
-        <source>An empty Client ID requires a clean session.</source>
-        <translation>Eine leere Client ID setzt eine neue Session voraus.</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the full path to the client certificate file</source>
+      <translation>Gib den vollständigen Pfad zur Zertifikatsdatei des Client ein</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="590"/>
-        <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="604"/>
-        <source>SSL/TLS Disabled</source>
-        <translation>SSL/TLS deaktiviert</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Client Key File:</source>
+      <translation>Client Schlüssekdatei:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="604"/>
-        <source>Encrypted connection using SSL/TLS has been disabled. However, the broker port is still the default encrypted port (port 8883). Shall this be changed?</source>
-        <translation>Eine mit SSL/TLS verschlüsselte Verbindung wurde deaktiviert. Jedoch ist der Brokerport noch auf den standardmäßigen, verschlüsselten Port (Port 8883) eingestellt. Soll dies geändert werden?</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the full path to the client key file</source>
+      <translation>Gib den vollständigen Pfad zur Schlüsseldatei des Client ein</translation>
     </message>
+  </context>
+  <context>
+    <name>MqttErrorMessage</name>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="672"/>
-        <source>Changed Connection Profiles</source>
-        <translation>Verbindungsprofile geändert</translation>
+      <location filename="../MqttClient.py" line="523" />
+      <source>No error.</source>
+      <translation>Kein Fehler.</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="672"/>
-        <source>The list of connection profiles has unsaved changes.</source>
-        <translation>Die Liste der Verbindungsprofile hat ungesicherte Änderungen.</translation>
+      <location filename="../MqttClient.py" line="527" />
+      <source>Out of memory.</source>
+      <translation>Nicht genügend Speicher.</translation>
     </message>
-</context>
-<context>
-    <name>MqttErrorMessage</name>
     <message>
-        <location filename="../MqttClient.py" line="507"/>
-        <source>No error.</source>
-        <translation>Kein Fehler.</translation>
+      <location filename="../MqttClient.py" line="531" />
+      <source>A network protocol error occurred when communicating with the broker.</source>
+      <translation>Bei der Kommunikation mit dem Broker ist ein Netzprotokollfehler aufgetreten.</translation>
+    </message>
+    <message>
+      <location filename="../MqttClient.py" line="536" />
+      <source>Invalid function arguments provided.</source>
+      <translation>Ungültige Funktionsargumente angegeben.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="511"/>
-        <source>Out of memory.</source>
-        <translation>Nicht genügend Speicher.</translation>
+      <location filename="../MqttClient.py" line="540" />
+      <source>The client is not currently connected.</source>
+      <translation>Der Client ist momentan nicht verbunden.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="515"/>
-        <source>A network protocol error occurred when communicating with the broker.</source>
-        <translation>Bei der Kommunikation mit dem Broker ist ein Netzprotokollfehler aufgetreten.</translation>
+      <location filename="../MqttClient.py" line="544" />
+      <source>The connection was refused.</source>
+      <translation>Die Verbindung wurde abgelehnt.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="520"/>
-        <source>Invalid function arguments provided.</source>
-        <translation>Ungültige Funktionsargumente angegeben.</translation>
+      <location filename="../MqttClient.py" line="548" />
+      <source>Message not found (internal error).</source>
+      <translation>Nachricht nicht gefunden (interner Fehler).</translation>
+    </message>
+    <message>
+      <location filename="../MqttClient.py" line="552" />
+      <source>The connection was lost.</source>
+      <translation>Die Verbindung wurde unterbrochen.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="524"/>
-        <source>The client is not currently connected.</source>
-        <translation>Der Client ist momentan nicht verbunden.</translation>
+      <location filename="../MqttClient.py" line="556" />
+      <source>A TLS error occurred.</source>
+      <translation>Es ist ein TLS-Fehler aufgetreten.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="528"/>
-        <source>The connection was refused.</source>
-        <translation>Die Verbindung wurde abgelehnt.</translation>
+      <location filename="../MqttClient.py" line="560" />
+      <source>Payload too large.</source>
+      <translation>Nutzdaten zu groß.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="532"/>
-        <source>Message not found (internal error).</source>
-        <translation>Nachricht nicht gefunden (interner Fehler).</translation>
+      <location filename="../MqttClient.py" line="564" />
+      <source>This feature is not supported.</source>
+      <translation>Diese Funktion wird nicht unterstützt.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="536"/>
-        <source>The connection was lost.</source>
-        <translation>Die Verbindung wurde unterbrochen.</translation>
+      <location filename="../MqttClient.py" line="568" />
+      <source>Authorisation failed.</source>
+      <translation>Authorisierung fehlgeschlagen.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="540"/>
-        <source>A TLS error occurred.</source>
-        <translation>Es ist ein TLS-Fehler aufgetreten.</translation>
+      <location filename="../MqttClient.py" line="572" />
+      <source>Access denied by ACL.</source>
+      <translation>Zugriff durch ACL verweigert.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="544"/>
-        <source>Payload too large.</source>
-        <translation>Nutzdaten zu groß.</translation>
-    </message>
-    <message>
-        <location filename="../MqttClient.py" line="548"/>
-        <source>This feature is not supported.</source>
-        <translation>Diese Funktion wird nicht unterstützt.</translation>
-    </message>
-    <message>
-        <location filename="../MqttClient.py" line="552"/>
-        <source>Authorisation failed.</source>
-        <translation>Authorisierung fehlgeschlagen.</translation>
+      <location filename="../MqttClient.py" line="588" />
+      <location filename="../MqttClient.py" line="576" />
+      <source>Unknown error.</source>
+      <translation>Unbekannter Fehler.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="556"/>
-        <source>Access denied by ACL.</source>
-        <translation>Zugriff durch ACL verweigert.</translation>
+      <location filename="../MqttClient.py" line="580" />
+      <source>Error defined by errno.</source>
+      <translation>Fehler durch errno definiert.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="568"/>
-        <source>Unknown error.</source>
-        <translation>Unbekannter Fehler.</translation>
+      <location filename="../MqttClient.py" line="584" />
+      <source>Message queue full.</source>
+      <translation>Warteschlange ist voll.</translation>
     </message>
-    <message>
-        <location filename="../MqttClient.py" line="564"/>
-        <source>Error defined by errno.</source>
-        <translation>Fehler durch errno definiert.</translation>
-    </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>MqttLogLevelString</name>
     <message>
-        <location filename="../MqttClient.py" line="607"/>
-        <source>Unknown</source>
-        <translation>Unbekannt</translation>
+      <location filename="../MqttClient.py" line="627" />
+      <location filename="../MqttClient.py" line="609" />
+      <source>Unknown</source>
+      <translation>Unbekannt</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="594"/>
-        <source>Info</source>
-        <translation>Info</translation>
+      <location filename="../MqttClient.py" line="614" />
+      <source>Info</source>
+      <translation>Info</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="596"/>
-        <source>Notice</source>
-        <translation>Notiz</translation>
+      <location filename="../MqttClient.py" line="616" />
+      <source>Notice</source>
+      <translation>Notiz</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="598"/>
-        <source>Warning</source>
-        <translation>Warnung</translation>
+      <location filename="../MqttClient.py" line="618" />
+      <source>Warning</source>
+      <translation>Warnung</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="600"/>
-        <source>Error</source>
-        <translation>Fehler</translation>
+      <location filename="../MqttClient.py" line="620" />
+      <source>Error</source>
+      <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="602"/>
-        <source>Debug</source>
-        <translation>Debug</translation>
+      <location filename="../MqttClient.py" line="622" />
+      <source>Debug</source>
+      <translation>Debug</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="604"/>
-        <source>Logging Disabled</source>
-        <translation>Protokollierung aus</translation>
+      <location filename="../MqttClient.py" line="624" />
+      <source>Logging Disabled</source>
+      <translation>Protokollierung aus</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>MqttMonitorPlugin</name>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="64"/>
-        <source>MQTT</source>
-        <translation>MQTT</translation>
+      <location filename="../../PluginMqttMonitor.py" line="58" />
+      <source>(package not available)</source>
+      <translation>(Paket nicht verfügbar)</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="65"/>
-        <source>paho-mqtt</source>
-        <translation>paho-mqtt</translation>
+      <location filename="../../PluginMqttMonitor.py" line="63" />
+      <source>MQTT</source>
+      <translation>MQTT</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="123"/>
-        <source>The &apos;paho-mqtt&apos; package is not available.</source>
-        <translation>Das &apos;paho-mqtt&apos; Paket ist nicht verfügbar.</translation>
+      <location filename="../../PluginMqttMonitor.py" line="64" />
+      <source>paho-mqtt</source>
+      <translation>paho-mqtt</translation>
+    </message>
+    <message>
+      <location filename="../../PluginMqttMonitor.py" line="122" />
+      <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="148"/>
-        <source>MQTT Monitor</source>
-        <translation>MQTT Monitor</translation>
+      <location filename="../../PluginMqttMonitor.py" line="139" />
+      <location filename="../../PluginMqttMonitor.py" line="136" />
+      <source>MQTT Monitor</source>
+      <translation>MQTT Monitor</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="148"/>
-        <source>M&amp;QTT Monitor</source>
-        <translation>M&amp;QTT Monitor</translation>
+      <location filename="../../PluginMqttMonitor.py" line="140" />
+      <source>M&amp;QTT Monitor</source>
+      <translation>M&amp;QTT Monitor</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="148"/>
-        <source>Alt+Shift+Q</source>
-        <translation>Alt+Shift+Q</translation>
+      <location filename="../../PluginMqttMonitor.py" line="141" />
+      <source>Alt+Shift+Q</source>
+      <translation>Alt+Shift+Q</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="154"/>
-        <source>Switch the input focus to the MQTT Monitor window.</source>
-        <translation>Schaltet den Eingabefokus auf das MQTT-Überwachungsfenster um.</translation>
+      <location filename="../../PluginMqttMonitor.py" line="144" />
+      <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="156"/>
-        <source>&lt;b&gt;Activate MQTT Monitor&lt;/b&gt;&lt;p&gt;This switches the input focus to the MQTT Monitor window.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;MQTT Monitor aktivieren&lt;/b&gt;&lt;p&gt;Dies schaltet den Eingabefokus auf das MQTT-Überwachungsfenster um.&lt;/p&gt;</translation>
+      <location filename="../../PluginMqttMonitor.py" line="146" />
+      <source>&lt;b&gt;Activate MQTT Monitor&lt;/b&gt;&lt;p&gt;This switches the input focus to the MQTT Monitor window.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;MQTT Monitor aktivieren&lt;/b&gt;&lt;p&gt;Dies schaltet den Eingabefokus auf das MQTT-Überwachungsfenster um.&lt;/p&gt;</translation>
+    </message>
+  </context>
+  <context>
+    <name>MqttMonitorWidget</name>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;MQTT Monitor&lt;/b&gt;</source>
+      <translation>&lt;b&gt;MQTT Monitor&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="59"/>
-        <source>(package not available)</source>
-        <translation>(Paket nicht verfügbar)</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Broker</source>
+      <translation>Broker</translation>
     </message>
-</context>
-<context>
-    <name>MqttMonitorWidget</name>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="28"/>
-        <source>&lt;b&gt;MQTT Monitor&lt;/b&gt;</source>
-        <translation>&lt;b&gt;MQTT Monitor&lt;/b&gt;</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to switch the mode between profiles and direct connection</source>
+      <translation>Drücken, um den Modus zwischen Profil und Direktverbindung umzuschalten</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="40"/>
-        <source>Broker</source>
-        <translation>Broker</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select the profile to be used to connect to the broker</source>
+      <translation>Wähle das für die Verbindung mit dem Broker zu nutzende Profil aus</translation>
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the host name of the broker</source>
+      <translation>Gib den Hostnamen des Brokers ein</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="92"/>
-        <source>Enter the host name of the broker</source>
-        <translation>Gib den Hostnamen des Brokers ein</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the broker port to connect to</source>
+      <translation>Geben Sie den zu verbindenden Broker-Port ein</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="127"/>
-        <source>Press to connect to/disconnect from the broker</source>
-        <translation>Drücken, um die Verbindung zum Broker herzustellen/zu trennen</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to open a dialog to enter connection options</source>
+      <translation>Drücken, um einen Dialog zur Eingabe von Verbindungsoptionen zu öffnen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="102"/>
-        <source>Enter the broker port to connect to</source>
-        <translation>Geben Sie den zu verbindenden Broker-Port ein</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to connect to/disconnect from the broker</source>
+      <translation>Drücken, um die Verbindung zum Broker herzustellen/zu trennen</translation>
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Pub/Sub</source>
+      <translation>Pub/Sub</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="120"/>
-        <source>Press to open a dialog to enter connection options</source>
-        <translation>Drücken, um einen Dialog zur Eingabe von Verbindungsoptionen zu öffnen</translation>
+      <location filename="../MqttMonitorWidget.py" line="765" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Subscribe</source>
+      <translation>Abonnieren</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="151"/>
-        <source>Pub/Sub</source>
-        <translation>Pub/Sub</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Topic:</source>
+      <translation>Thema:</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="766"/>
-        <source>Subscribe</source>
-        <translation>Abonnieren</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the topic</source>
+      <translation>Gib das Thema ein</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="260"/>
-        <source>Topic:</source>
-        <translation>Thema:</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="173"/>
-        <source>Enter the topic</source>
-        <translation>Gib das Thema ein</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the desired QoS value</source>
+      <translation>Gib den gewünschten QoS Wert ein</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="283"/>
-        <source>QoS:</source>
-        <translation>QoS:</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to subscribe to the given topic</source>
+      <translation>Drücken, um das eingegebene Thema zu abonieren</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="290"/>
-        <source>Enter the desired QoS value</source>
-        <translation>Gib den gewünschten QoS Wert ein</translation>
+      <location filename="../MqttMonitorWidget.py" line="761" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Unsubscribe</source>
+      <translation>Abo kündigen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="200"/>
-        <source>Press to subscribe to the given topic</source>
-        <translation>Drücken, um das eingegebene Thema zu abonieren</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select the topic to unsubscribe</source>
+      <translation>Wählen ein zu kündigendes Thema aus</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="762"/>
-        <source>Unsubscribe</source>
-        <translation>Abo kündigen</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to unsubscribe the selected topic</source>
+      <translation>Drücken, um das ausgewählte Thema zu kündigen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="232"/>
-        <source>Select the topic to unsubscribe</source>
-        <translation>Wählen ein zu kündigendes Thema aus</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Publish</source>
+      <translation>Veröffentlichen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="239"/>
-        <source>Press to unsubscribe the selected topic</source>
-        <translation>Drücken, um das ausgewählte Thema zu kündigen</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the topic to publish to</source>
+      <translation>Gib das Thema der Veröffentlichung ein</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="383"/>
-        <source>Publish</source>
-        <translation>Veröffentlichen</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select to retain the published message</source>
+      <translation>Auswählen, um die Nachricht zu behalten</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="273"/>
-        <source>Enter the topic to publish to</source>
-        <translation>Gib das Thema der Veröffentlichung ein</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Retain</source>
+      <translation>Behalten</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="303"/>
-        <source>Select to retain the published message</source>
-        <translation>Auswählen, um die Nachricht zu behalten</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the string data to be sent</source>
+      <translation>Gib die zu sendende Nachricht ein</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="306"/>
-        <source>Retain</source>
-        <translation>Behalten</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Payload File:</source>
+      <translation>Nutzdatendatei:</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="321"/>
-        <source>Enter the string data to be sent</source>
-        <translation>Gib die zu sendende Nachricht ein</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the full path to a file containing the message payload</source>
+      <translation>Gib den vollständigen Pfad zu einer Datei mit den Nachrichtennutzdaten ein</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="360"/>
-        <source>Press to clear the publish data</source>
-        <translation>Drücken, um die Veröffentlichungsdaten zu löschen</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to clear the publish data</source>
+      <translation>Drücken, um die Veröffentlichungsdaten zu löschen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1355"/>
-        <source>Clear</source>
-        <translation>Löschen</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Clear</source>
+      <translation>Löschen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="419"/>
-        <source>Messages</source>
-        <translation>Meldungen</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select to clear the publish data after the message was published</source>
+      <translation>Auswählen, um die Veröffentlichungsdaten nach dem Senden zu löschen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="505"/>
-        <source>Status</source>
-        <translation>Status</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Clear when sent</source>
+      <translation>Nach dem Senden löschen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="767"/>
-        <source>Press to activate the status display</source>
-        <translation>Drücken, um die Statusanzeige zu aktivieren</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Messages</source>
+      <translation>Meldungen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="561"/>
-        <source>&lt;b&gt;Broker&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Broker&lt;/b&gt;</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to save the received messages to a file</source>
+      <translation>Drücken, um die empfangenen Meldungen in eine Datei zu speichern</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="583"/>
-        <source>Version</source>
-        <translation>Version</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Save</source>
+      <translation>Speichern</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1052"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="603"/>
-        <source>Timestamp</source>
-        <translation>Zeitstempel</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to clear the list of received messages</source>
+      <translation>Drücken, um die Liste der empfangenen Meldungen zu löschen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="623"/>
-        <source>Uptime</source>
-        <translation>Betriebszeit</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select to scroll to the most recently received message</source>
+      <translation>Auswählen, um zur zuletzt empfangenen Meldung zu blättern</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="643"/>
-        <source>Subscriptions</source>
-        <translation>Abonnements</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Follow received messages</source>
+      <translation>Empfangenen Meldungen folgen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="665"/>
-        <source>&lt;b&gt;Clients&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Klienten&lt;/b&gt;</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Status</source>
+      <translation>Status</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="687"/>
-        <source>Connected</source>
-        <translation>Verbunden</translation>
+      <location filename="../MqttMonitorWidget.py" line="767" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to activate the status display</source>
+      <translation>Drücken, um die Statusanzeige zu aktivieren</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="707"/>
-        <source>Disconnected</source>
-        <translation>Nicht Verbunden</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Broker&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Broker&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="727"/>
-        <source>Expired</source>
-        <translation>Abgelaufen</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="747"/>
-        <source>Maximum</source>
-        <translation>Maximum</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Version</source>
+      <translation>Version</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="767"/>
-        <source>Total</source>
-        <translation>Gesamt</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="789"/>
-        <source>&lt;b&gt;Messages&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Mitteilungen&lt;/b&gt;</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="935"/>
-        <source>Sent</source>
-        <translation>Gesendet</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="955"/>
-        <source>Received</source>
-        <translation>Empfangen</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Timestamp</source>
+      <translation>Zeitstempel</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="851"/>
-        <source>Stored</source>
-        <translation>Gespeichert</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Uptime</source>
+      <translation>Betriebszeit</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="871"/>
-        <source>Inflight</source>
-        <translation>In Übertragung</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Subscriptions</source>
+      <translation>Abonnements</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="891"/>
-        <source>Retained</source>
-        <translation>Aufgehoben</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Clients&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Klienten&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="913"/>
-        <source>&lt;b&gt;PUBLISH Messages&lt;/b&gt;</source>
-        <translation>&lt;b&gt;PUBLISH Mitteilungen&lt;/b&gt;</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Connected</source>
+      <translation>Verbunden</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="975"/>
-        <source>Dropped</source>
-        <translation>Gelöscht</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Disconnected</source>
+      <translation>Nicht Verbunden</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="997"/>
-        <source>&lt;b&gt;Traffic&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Verkehr&lt;/b&gt;</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Expired</source>
+      <translation>Abgelaufen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1083"/>
-        <source>Bytes Sent</source>
-        <translation>Bytes Gesendet</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Maximum</source>
+      <translation>Maximum</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1103"/>
-        <source>Bytes Received</source>
-        <translation>Bytes Empfangen</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Total</source>
+      <translation>Gesamt</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1061"/>
-        <source>&lt;b&gt;Load&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Last&lt;/b&gt;</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Messages&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Mitteilungen&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1256"/>
-        <source>- / - / -</source>
-        <translation>- / - / -</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Sent</source>
+      <translation>Gesendet</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1123"/>
-        <source>Messages Sent</source>
-        <translation>Mitteilungen Gesendet</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Received</source>
+      <translation>Empfangen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1143"/>
-        <source>Messages Received</source>
-        <translation>Mitteilungen Empfangen</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Stored</source>
+      <translation>Gespeichert</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1163"/>
-        <source>PUBLISH Sent</source>
-        <translation>PUBLISH Gesendet</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Inflight</source>
+      <translation>In Übertragung</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1183"/>
-        <source>PUBLISH Received</source>
-        <translation>PUBLISH Empfangen</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Retained</source>
+      <translation>Aufgehoben</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1203"/>
-        <source>PUBLISH Dropped</source>
-        <translation>PUBLISH Gelöscht</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;PUBLISH Messages&lt;/b&gt;</source>
+      <translation>&lt;b&gt;PUBLISH Mitteilungen&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1223"/>
-        <source>Connections</source>
-        <translation>Verbindungen</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Dropped</source>
+      <translation>Gelöscht</translation>
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Traffic&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Verkehr&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1243"/>
-        <source>Sockets</source>
-        <translation>Sockets</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Bytes Sent</source>
+      <translation>Bytes Gesendet</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="262"/>
-        <source>Connection to Broker shut down cleanly.</source>
-        <translation>Die Verbindung zum Broker wurde ordnungsgemäß beendet.</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Bytes Received</source>
+      <translation>Bytes Empfangen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="512"/>
-        <source>Subscribe to Topic</source>
-        <translation>Thema abonnieren</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.py" line="512"/>
-        <source>Subscriptions to the Status topic &apos;$SYS&apos; shall be done on the &apos;Status&apos; tab.</source>
-        <translation>Abonnements zum Statusthema &apos;$SYS&apos; werden auf der Registerkarte &apos;Status&apos; ausgeführt.</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Load&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Last&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="763"/>
-        <source>Press to deactivate the status display</source>
-        <translation>Drücken, um die Statusanzeige zu deaktivieren</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="46"/>
-        <source>Press to switch the mode between profiles and direct connection</source>
-        <translation>Drücken, um den Modus zwischen Profil und Direktverbindung umzuschalten</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="64"/>
-        <source>Select the profile to be used to connect to the broker</source>
-        <translation>Wähle das für die Verbindung mit dem Broker zu nutzende Profil aus</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Messages Sent</source>
+      <translation>Mitteilungen Gesendet</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="392"/>
-        <source>Select to clear the publish data after the message was published</source>
-        <translation>Auswählen, um die Veröffentlichungsdaten nach dem Senden zu löschen</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Messages Received</source>
+      <translation>Mitteilungen Empfangen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="395"/>
-        <source>Clear when sent</source>
-        <translation>Nach dem Senden löschen</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>PUBLISH Sent</source>
+      <translation>PUBLISH Gesendet</translation>
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>PUBLISH Received</source>
+      <translation>PUBLISH Empfangen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="479"/>
-        <source>Press to clear the list of received messages</source>
-        <translation>Drücken, um die Liste der empfangenen Meldungen zu löschen</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>PUBLISH Dropped</source>
+      <translation>PUBLISH Gelöscht</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1268"/>
-        <source>Log</source>
-        <translation>Protokoll</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Connections</source>
+      <translation>Verbindungen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1276"/>
-        <source>Max. Log Level:</source>
-        <translation>Max. Protokollebene:</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Sockets</source>
+      <translation>Sockets</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1289"/>
-        <source>Select the maximum log level to show</source>
-        <translation>Die maximal anzuzeigende Protokollebene auswählen</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Log</source>
+      <translation>Protokoll</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1352"/>
-        <source>Press to clear the list of received log messages</source>
-        <translation>Drücken, um die Liste der empfangenen Protokollmeldungen zu löschen</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Max. Log Level:</source>
+      <translation>Max. Protokollebene:</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="243"/>
-        <source>Connection timed out</source>
-        <translation>Zeitlimit für Verbindung überschritten</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select the maximum log level to show</source>
+      <translation>Die maximal anzuzeigende Protokollebene auswählen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="317"/>
-        <source>{0}: {1}</source>
-        <translation>{0}: {1}</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to save the received log messages to a file</source>
+      <translation>Drücken, um die empfangenen Protokollmeldungen in eine Datei zu speichern</translation>
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to clear the list of received log messages</source>
+      <translation>Drücken, um die Liste der empfangenen Protokollmeldungen zu löschen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="1059"/>
-        <source>Connecting to {0}:{1} ...</source>
-        <translation>Verbinde zu {0}:{1} ...</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select to scroll to the most recently received log message</source>
+      <translation>Auswählen, um zur zuletzt empfangenen Protokollmeldungen zu blättern</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="333"/>
-        <source>Payload File:</source>
-        <translation>Nutzdatendatei:</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Follow received log messages</source>
+      <translation>Empfangenen Protokollmeldungen folgen</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="349"/>
-        <source>Enter the full path to a file containing the message payload</source>
-        <translation>Gib den vollständigen Pfad zu einer Datei mit den Nachrichtennutzdaten ein</translation>
+      <location filename="../MqttMonitorWidget.py" line="68" />
+      <source>All Files (*)</source>
+      <translation>Alle Dateien (*)</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="453"/>
-        <source>Press to save the received messages to a file</source>
-        <translation>Drücken, um die empfangenen Meldungen in eine Datei zu speichern</translation>
+      <location filename="../MqttMonitorWidget.py" line="249" />
+      <source>Connection timed out</source>
+      <translation>Zeitlimit für Verbindung überschritten</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1329"/>
-        <source>Save</source>
-        <translation>Speichern</translation>
+      <location filename="../MqttMonitorWidget.py" line="268" />
+      <source>Connection to Broker shut down cleanly.</source>
+      <translation>Die Verbindung zum Broker wurde ordnungsgemäß beendet.</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="491"/>
-        <source>Select to scroll to the most recently received message</source>
-        <translation>Auswählen, um zur zuletzt empfangenen Meldung zu blättern</translation>
+      <location filename="../MqttMonitorWidget.py" line="321" />
+      <source>{0}: {1}</source>
+      <translation>{0}: {1}</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="494"/>
-        <source>Follow received messages</source>
-        <translation>Empfangenen Meldungen folgen</translation>
+      <location filename="../MqttMonitorWidget.py" line="516" />
+      <source>Subscribe to Topic</source>
+      <translation>Thema abonnieren</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1326"/>
-        <source>Press to save the received log messages to a file</source>
-        <translation>Drücken, um die empfangenen Protokollmeldungen in eine Datei zu speichern</translation>
+      <location filename="../MqttMonitorWidget.py" line="517" />
+      <source>Subscriptions to the Status topic '$SYS' shall be done on the 'Status' tab.</source>
+      <translation>Abonnements zum Statusthema '$SYS' werden auf der Registerkarte 'Status' ausgeführt.</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1364"/>
-        <source>Select to scroll to the most recently received log message</source>
-        <translation>Auswählen, um zur zuletzt empfangenen Protokollmeldungen zu blättern</translation>
+      <location filename="../MqttMonitorWidget.py" line="574" />
+      <source>Read Payload from File</source>
+      <translation>Nutzdaten aus Datei lesen</translation>
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="575" />
+      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be read. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+      <translation>&lt;p&gt;Die Datei &lt;b&gt;{0}&lt;/b&gt; konnte nicht gelesen werden. Abbruch...&lt;/p&gt;&lt;p&gt;Ursache: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1367"/>
-        <source>Follow received log messages</source>
-        <translation>Empfangenen Protokollmeldungen folgen</translation>
+      <location filename="../MqttMonitorWidget.py" line="686" />
+      <location filename="../MqttMonitorWidget.py" line="672" />
+      <location filename="../MqttMonitorWidget.py" line="654" />
+      <source>Save Messages</source>
+      <translation>Meldungen speichern</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="65"/>
-        <source>All Files (*)</source>
-        <translation>Alle Dateien (*)</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.py" line="571"/>
-        <source>Read Payload from File</source>
-        <translation>Nutzdaten aus Datei lesen</translation>
+      <location filename="../MqttMonitorWidget.py" line="656" />
+      <source>Messages Files (*.txt);;All Files (*)</source>
+      <translation>Meldungsdateien (*.txt);;Alle Dateien (*)</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="571"/>
-        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be read. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Die Datei &lt;b&gt;{0}&lt;/b&gt; konnte nicht gelesen werden. Abbruch...&lt;/p&gt;&lt;p&gt;Ursache: {1}&lt;/p&gt;</translation>
+      <location filename="../MqttMonitorWidget.py" line="729" />
+      <location filename="../MqttMonitorWidget.py" line="673" />
+      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
+      <translation>&lt;p&gt;Die Datei &lt;b&gt;{0}&lt;/b&gt; existiert bereits. Überschreiben?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="684"/>
-        <source>Save Messages</source>
-        <translation>Meldungen speichern</translation>
+      <location filename="../MqttMonitorWidget.py" line="743" />
+      <location filename="../MqttMonitorWidget.py" line="687" />
+      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+      <translation>&lt;p&gt;Die Datei &lt;b&gt;{0}&lt;/b&gt; konnte nicht geschrieben werden.&lt;/p&gt;&lt;p&gt;Ursache: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="651"/>
-        <source>Messages Files (*.txt);;All Files (*)</source>
-        <translation>Meldungsdateien (*.txt);;Alle Dateien (*)</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.py" line="726"/>
-        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Die Datei &lt;b&gt;{0}&lt;/b&gt; existiert bereits. Überschreiben?&lt;/p&gt;</translation>
+      <location filename="../MqttMonitorWidget.py" line="742" />
+      <location filename="../MqttMonitorWidget.py" line="728" />
+      <location filename="../MqttMonitorWidget.py" line="710" />
+      <source>Save Log Messages</source>
+      <translation>Protokollmeldungen speichern</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="741"/>
-        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Die Datei &lt;b&gt;{0}&lt;/b&gt; konnte nicht geschrieben werden.&lt;/p&gt;&lt;p&gt;Ursache: {1}&lt;/p&gt;</translation>
+      <location filename="../MqttMonitorWidget.py" line="712" />
+      <source>Log Files (*.log);;All Files (*)</source>
+      <translation>Protokolldateien (*.log);;Alle Dateien (*)</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="741"/>
-        <source>Save Log Messages</source>
-        <translation>Protokollmeldungen speichern</translation>
+      <location filename="../MqttMonitorWidget.py" line="763" />
+      <source>Press to deactivate the status display</source>
+      <translation>Drücken, um die Statusanzeige zu deaktivieren</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="708"/>
-        <source>Log Files (*.log);;All Files (*)</source>
-        <translation>Protokolldateien (*.log);;Alle Dateien (*)</translation>
+      <location filename="../MqttMonitorWidget.py" line="895" />
+      <source>QoS: {0}
+</source>
+      <translation>QoS: {0}
+</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="902"/>
-        <source>QoS: {0}
-</source>
-        <translation>QoS: {0}
-</translation>
+      <location filename="../MqttMonitorWidget.py" line="1048" />
+      <location filename="../MqttMonitorWidget.py" line="1022" />
+      <source>Connecting to {0}:{1} ...</source>
+      <translation>Verbinde zu {0}:{1} ...</translation>
     </message>
-</context>
+  </context>
 </TS>
diff -r 3cb08e5db764 -r 2fb5c08019fd MqttMonitor/i18n/mqttmonitor_empty.ts
--- a/MqttMonitor/i18n/mqttmonitor_empty.ts	Sun May 30 17:40:40 2021 +0200
+++ b/MqttMonitor/i18n/mqttmonitor_empty.ts	Sun May 30 18:21:40 2021 +0200
@@ -1,1170 +1,1242 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0">
-<context>
+<!DOCTYPE TS>
+<TS version="2.0">
+  <context>
     <name>MqttConnackMessage</name>
     <message>
-        <location filename="../MqttClient.py" line="467"/>
-        <source>Connection Accepted.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="483" />
+      <source>Connection Accepted.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttClient.py" line="487" />
+      <source>Connection Refused: unacceptable protocol version.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="471"/>
-        <source>Connection Refused: unacceptable protocol version.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="491" />
+      <source>Connection Refused: identifier rejected.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="475"/>
-        <source>Connection Refused: identifier rejected.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="495" />
+      <source>Connection Refused: broker unavailable.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="479"/>
-        <source>Connection Refused: broker unavailable.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="499" />
+      <source>Connection Refused: bad user name or password.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="483"/>
-        <source>Connection Refused: bad user name or password.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="503" />
+      <source>Connection Refused: not authorised.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="487"/>
-        <source>Connection Refused: not authorised.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="507" />
+      <source>Connection Refused: unknown reason.</source>
+      <translation type="unfinished" />
+    </message>
+  </context>
+  <context>
+    <name>MqttConnectionOptionsDialog</name>
+    <message>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>MQTT Connection Options</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="491"/>
-        <source>Connection Refused: unknown reason.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>MqttConnectionOptionsDialog</name>
-    <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="14"/>
-        <source>MQTT Connection Options</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>General</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="23"/>
-        <source>General</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Client ID:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="29"/>
-        <source>Client ID:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the ID string for this client</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="36"/>
-        <source>Enter the ID string for this client</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Press to generate a client ID</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="43"/>
-        <source>Press to generate a client ID</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Generate</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="46"/>
-        <source>Generate</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Connection Timeout:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="99"/>
-        <source>Keep Alive Interval:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the connection timeout in seconds</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="108"/>
-        <source>Enter the keep alive interval in seconds</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source> s</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="114"/>
-        <source> s</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Keep Alive Interval:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="148"/>
-        <source>Clean Session</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the keep alive interval in seconds</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="158"/>
-        <source>User Credentials</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Select to start with a clean session</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="164"/>
-        <source>User Name:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Clean Session</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="171"/>
-        <source>Enter the user name</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>User Credentials</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="178"/>
-        <source>Password:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>User Name:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="185"/>
-        <source>Enter the password</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the user name</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="198"/>
-        <source>Last Will and Testament</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Password:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="204"/>
-        <source>Enter the topic of the last will</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the password</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="211"/>
-        <source>QoS:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Last Will and Testament</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="218"/>
-        <source>Enter the desired QoS value</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the topic of the last will</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="231"/>
-        <source>Select to retain the last will message</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>QoS:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="234"/>
-        <source>Retain</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the desired QoS value</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="247"/>
-        <source>Enter the last will message to be sent</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Select to retain the last will message</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="53"/>
-        <source>Connection Timeout:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Retain</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="62"/>
-        <source>Enter the connection timeout in seconds</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the last will message to be sent</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="145"/>
-        <source>Select to start with a clean session</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>SSL/TLS</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="257"/>
-        <source>SSL/TLS</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Select to enable SSL/TLS connections</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="263"/>
-        <source>Select to enable SSL/TLS connections</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>SSL/TLS Enabled</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="266"/>
-        <source>SSL/TLS Enabled</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>CA File:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="273"/>
-        <source>CA File:</source>
-        <translation type="unfinished"></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 type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="292"/>
-        <source>Enter the full path to the CA certificate file; leave empty to use platform default</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.py" line="47" />
+      <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.py" line="46"/>
-        <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttConnectionOptionsDialog.py" line="62"/>
-        <source>Invalid Connection Parameters</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.py" line="64" />
+      <source>Invalid Connection Parameters</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.py" line="62"/>
-        <source>An empty Client ID requires a clean session.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.py" line="65" />
+      <source>An empty Client ID requires a clean session.</source>
+      <translation type="unfinished" />
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>MqttConnectionProfilesDialog</name>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="14"/>
-        <source>MQTT Connection Profiles</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="70" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="66" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="62" />
+      <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.py" line="74" />
+      <source>Key Files (*.key *.pem);;All Files (*)</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="51"/>
-        <source>Press to add a new profile</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="708" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="672" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="143" />
+      <source>Changed Connection Profile</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="58"/>
-        <source>Press to copy the selected profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="65"/>
-        <source>Press to delete the selected profile</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="709" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="673" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="144" />
+      <source>The current profile has unsaved changes. Shall these be saved?</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="99"/>
-        <source>Profile Name:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="171" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="164" />
+      <source>New Connection Profile</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.py" line="165" />
+      <source>Enter name for the new Connection Profile:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="120"/>
-        <source>Broker Address:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="199" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="172" />
+      <source>&lt;p&gt;A connection named &lt;b&gt;{0}&lt;/b&gt; exists already. Aborting...&lt;/p&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="127"/>
-        <source>Enter the broker server address</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="134"/>
-        <source>Broker Port:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="198" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="191" />
+      <source>Copy Connection Profile</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="143"/>
-        <source>Enter the broker port number (default 1883)</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="192" />
+      <source>Enter name for the copied Connection Profile:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="174"/>
-        <source>Client ID:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="222" />
+      <source>Delete Connection Profile</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="183"/>
-        <source>Enter the ID string for this client</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="223" />
+      <source>&lt;p&gt;Shall the Connection Profile &lt;b&gt;{0}&lt;/b&gt; really be deleted?&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.py" line="493" />
+      <source>Invalid Connection Parameters</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="190"/>
-        <source>Press to generate a client ID</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="494" />
+      <source>An empty Client ID requires a clean session.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="193"/>
-        <source>Generate</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="604" />
+      <source>SSL/TLS Enabled</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="215"/>
-        <source>General</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="605" />
+      <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.ui" line="221"/>
-        <source>Connection Timeout:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="618" />
+      <source>SSL/TLS Disabled</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="230"/>
-        <source>Enter the connection timeout in seconds</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="619" />
+      <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.ui" line="282"/>
-        <source> s</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="685" />
+      <source>Changed Connection Profiles</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="267"/>
-        <source>Keep Alive Interval:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="686" />
+      <source>The list of connection profiles has unsaved changes.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>MQTT Connection Profiles</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="276"/>
-        <source>Enter the keep alive interval in seconds</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Press to add a new profile</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="313"/>
-        <source>Select to start with a clean session</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Press to copy the selected profile</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="316"/>
-        <source>Clean Session</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Press to delete the selected profile</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="337"/>
-        <source>User Credentials</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Profile Name:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="343"/>
-        <source>User Name:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Broker Address:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="350"/>
-        <source>Enter the user name</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the broker server address</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="357"/>
-        <source>Password:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Broker Port:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="364"/>
-        <source>Enter the password</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the broker port number (default 1883)</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="388"/>
-        <source>Last Will</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Client ID:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="394"/>
-        <source>Enter the topic of the last will</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the ID string for this client</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="401"/>
-        <source>Enter the desired QoS value</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Press to generate a client ID</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="414"/>
-        <source>Select to retain the last will message</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Generate</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="417"/>
-        <source>Retain</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>General</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="430"/>
-        <source>Enter the last will message to be sent</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Connection Timeout:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="438"/>
-        <source>SSL/TLS</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the connection timeout in seconds</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="444"/>
-        <source>Select to enable SSL/TLS connections</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source> s</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="590"/>
-        <source>SSL/TLS Enabled</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Keep Alive Interval:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="459"/>
-        <source>Select to use the default certificate file of the client</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the keep alive interval in seconds</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="462"/>
-        <source>CA signed server certificate</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to start with a clean session</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="472"/>
-        <source>Select to use a specific certificate file</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Clean Session</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="475"/>
-        <source>CA certificate file</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>User Credentials</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="586"/>
-        <source>CA File:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>User Name:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="602"/>
-        <source>Enter the full path to the CA certificate file</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the user name</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="542"/>
-        <source>Select to use a self signed client certificate</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Password:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="545"/>
-        <source>Self signed certificates</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the password</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="609"/>
-        <source>Client Certificate File:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Last Will</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="625"/>
-        <source>Enter the full path to the client certificate file</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the topic of the last will</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="632"/>
-        <source>Client Key File:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the desired QoS value</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="648"/>
-        <source>Enter the full path to the client key file</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to retain the last will message</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Retain</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="69"/>
-        <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the last will message to be sent</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="73"/>
-        <source>Key Files (*.key *.pem);;All Files (*)</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>SSL/TLS</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="696"/>
-        <source>Changed Connection Profile</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to enable SSL/TLS connections</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="696"/>
-        <source>The current profile has unsaved changes. Shall these be saved?</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to use the default certificate file of the client</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="161"/>
-        <source>New Connection Profile</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>CA signed server certificate</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="154"/>
-        <source>Enter name for the new Connection Profile:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to use a specific certificate file</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="187"/>
-        <source>&lt;p&gt;A connection named &lt;b&gt;{0}&lt;/b&gt; exists already. Aborting...&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>CA certificate file</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="187"/>
-        <source>Copy Connection Profile</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>CA File:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="180"/>
-        <source>Enter name for the copied Connection Profile:</source>
-        <translation type="unfinished"></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 type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="210"/>
-        <source>Delete Connection Profile</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to use a self signed client certificate</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="210"/>
-        <source>&lt;p&gt;Shall the Connection Profile &lt;b&gt;{0}&lt;/b&gt; really be deleted?&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Self signed certificates</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="481"/>
-        <source>Invalid Connection Parameters</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Client Certificate File:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="481"/>
-        <source>An empty Client ID requires a clean session.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the full path to the client certificate file</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="590"/>
-        <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"></translation>
-    </message>
-    <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="604"/>
-        <source>SSL/TLS Disabled</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Client Key File:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="604"/>
-        <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"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the full path to the client key file</source>
+      <translation type="unfinished" />
     </message>
+  </context>
+  <context>
+    <name>MqttErrorMessage</name>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="672"/>
-        <source>Changed Connection Profiles</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="523" />
+      <source>No error.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="672"/>
-        <source>The list of connection profiles has unsaved changes.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="527" />
+      <source>Out of memory.</source>
+      <translation type="unfinished" />
     </message>
-</context>
-<context>
-    <name>MqttErrorMessage</name>
     <message>
-        <location filename="../MqttClient.py" line="507"/>
-        <source>No error.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="531" />
+      <source>A network protocol error occurred when communicating with the broker.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttClient.py" line="536" />
+      <source>Invalid function arguments provided.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="511"/>
-        <source>Out of memory.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="540" />
+      <source>The client is not currently connected.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="515"/>
-        <source>A network protocol error occurred when communicating with the broker.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="544" />
+      <source>The connection was refused.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="520"/>
-        <source>Invalid function arguments provided.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="548" />
+      <source>Message not found (internal error).</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttClient.py" line="552" />
+      <source>The connection was lost.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="524"/>
-        <source>The client is not currently connected.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="556" />
+      <source>A TLS error occurred.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="528"/>
-        <source>The connection was refused.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="560" />
+      <source>Payload too large.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="532"/>
-        <source>Message not found (internal error).</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="564" />
+      <source>This feature is not supported.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="536"/>
-        <source>The connection was lost.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="568" />
+      <source>Authorisation failed.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="540"/>
-        <source>A TLS error occurred.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="572" />
+      <source>Access denied by ACL.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="544"/>
-        <source>Payload too large.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttClient.py" line="548"/>
-        <source>This feature is not supported.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttClient.py" line="552"/>
-        <source>Authorisation failed.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="588" />
+      <location filename="../MqttClient.py" line="576" />
+      <source>Unknown error.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="556"/>
-        <source>Access denied by ACL.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="580" />
+      <source>Error defined by errno.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="568"/>
-        <source>Unknown error.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="584" />
+      <source>Message queue full.</source>
+      <translation type="unfinished" />
     </message>
-    <message>
-        <location filename="../MqttClient.py" line="564"/>
-        <source>Error defined by errno.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>MqttLogLevelString</name>
     <message>
-        <location filename="../MqttClient.py" line="607"/>
-        <source>Unknown</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="627" />
+      <location filename="../MqttClient.py" line="609" />
+      <source>Unknown</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="594"/>
-        <source>Info</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="614" />
+      <source>Info</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="596"/>
-        <source>Notice</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="616" />
+      <source>Notice</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="598"/>
-        <source>Warning</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="618" />
+      <source>Warning</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="600"/>
-        <source>Error</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="620" />
+      <source>Error</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="602"/>
-        <source>Debug</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="622" />
+      <source>Debug</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="604"/>
-        <source>Logging Disabled</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="624" />
+      <source>Logging Disabled</source>
+      <translation type="unfinished" />
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>MqttMonitorPlugin</name>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="64"/>
-        <source>MQTT</source>
-        <translation type="unfinished"></translation>
+      <location filename="../../PluginMqttMonitor.py" line="58" />
+      <source>(package not available)</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="65"/>
-        <source>paho-mqtt</source>
-        <translation type="unfinished"></translation>
+      <location filename="../../PluginMqttMonitor.py" line="63" />
+      <source>MQTT</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="123"/>
-        <source>The &apos;paho-mqtt&apos; package is not available.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../../PluginMqttMonitor.py" line="64" />
+      <source>paho-mqtt</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../../PluginMqttMonitor.py" line="122" />
+      <source>The 'paho-mqtt' package is not available.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="148"/>
-        <source>MQTT Monitor</source>
-        <translation type="unfinished"></translation>
+      <location filename="../../PluginMqttMonitor.py" line="139" />
+      <location filename="../../PluginMqttMonitor.py" line="136" />
+      <source>MQTT Monitor</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="148"/>
-        <source>M&amp;QTT Monitor</source>
-        <translation type="unfinished"></translation>
+      <location filename="../../PluginMqttMonitor.py" line="140" />
+      <source>M&amp;QTT Monitor</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="148"/>
-        <source>Alt+Shift+Q</source>
-        <translation type="unfinished"></translation>
+      <location filename="../../PluginMqttMonitor.py" line="141" />
+      <source>Alt+Shift+Q</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="154"/>
-        <source>Switch the input focus to the MQTT Monitor window.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../../PluginMqttMonitor.py" line="144" />
+      <source>Switch the input focus to the MQTT Monitor window.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="156"/>
-        <source>&lt;b&gt;Activate MQTT Monitor&lt;/b&gt;&lt;p&gt;This switches the input focus to the MQTT Monitor window.&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../../PluginMqttMonitor.py" line="146" />
+      <source>&lt;b&gt;Activate MQTT Monitor&lt;/b&gt;&lt;p&gt;This switches the input focus to the MQTT Monitor window.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+  </context>
+  <context>
+    <name>MqttMonitorWidget</name>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;MQTT Monitor&lt;/b&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="59"/>
-        <source>(package not available)</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Broker</source>
+      <translation type="unfinished" />
     </message>
-</context>
-<context>
-    <name>MqttMonitorWidget</name>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="28"/>
-        <source>&lt;b&gt;MQTT Monitor&lt;/b&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to switch the mode between profiles and direct connection</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="40"/>
-        <source>Broker</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select the profile to be used to connect to the broker</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the host name of the broker</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="92"/>
-        <source>Enter the host name of the broker</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the broker port to connect to</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="127"/>
-        <source>Press to connect to/disconnect from the broker</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to open a dialog to enter connection options</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="102"/>
-        <source>Enter the broker port to connect to</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to connect to/disconnect from the broker</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Pub/Sub</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="120"/>
-        <source>Press to open a dialog to enter connection options</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="765" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Subscribe</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="151"/>
-        <source>Pub/Sub</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Topic:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="766"/>
-        <source>Subscribe</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the topic</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="260"/>
-        <source>Topic:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>QoS:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="173"/>
-        <source>Enter the topic</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the desired QoS value</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="283"/>
-        <source>QoS:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to subscribe to the given topic</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="290"/>
-        <source>Enter the desired QoS value</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="761" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Unsubscribe</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="200"/>
-        <source>Press to subscribe to the given topic</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select the topic to unsubscribe</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="762"/>
-        <source>Unsubscribe</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to unsubscribe the selected topic</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="232"/>
-        <source>Select the topic to unsubscribe</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Publish</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="239"/>
-        <source>Press to unsubscribe the selected topic</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the topic to publish to</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="383"/>
-        <source>Publish</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select to retain the published message</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="273"/>
-        <source>Enter the topic to publish to</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Retain</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="303"/>
-        <source>Select to retain the published message</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the string data to be sent</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="306"/>
-        <source>Retain</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Payload File:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="321"/>
-        <source>Enter the string data to be sent</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the full path to a file containing the message payload</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="360"/>
-        <source>Press to clear the publish data</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to clear the publish data</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1355"/>
-        <source>Clear</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Clear</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="419"/>
-        <source>Messages</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select to clear the publish data after the message was published</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="505"/>
-        <source>Status</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Clear when sent</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="767"/>
-        <source>Press to activate the status display</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Messages</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="561"/>
-        <source>&lt;b&gt;Broker&lt;/b&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to save the received messages to a file</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="583"/>
-        <source>Version</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Save</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1052"/>
-        <source>-</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to clear the list of received messages</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="603"/>
-        <source>Timestamp</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select to scroll to the most recently received message</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="623"/>
-        <source>Uptime</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Follow received messages</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="643"/>
-        <source>Subscriptions</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Status</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="665"/>
-        <source>&lt;b&gt;Clients&lt;/b&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="767" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to activate the status display</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="687"/>
-        <source>Connected</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Broker&lt;/b&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="707"/>
-        <source>Disconnected</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="727"/>
-        <source>Expired</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Version</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="747"/>
-        <source>Maximum</source>
-        <translation type="unfinished"></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 type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="767"/>
-        <source>Total</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="789"/>
-        <source>&lt;b&gt;Messages&lt;/b&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="935"/>
-        <source>Sent</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Timestamp</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="955"/>
-        <source>Received</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Uptime</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="851"/>
-        <source>Stored</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Subscriptions</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="871"/>
-        <source>Inflight</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Clients&lt;/b&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="891"/>
-        <source>Retained</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Connected</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="913"/>
-        <source>&lt;b&gt;PUBLISH Messages&lt;/b&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Disconnected</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="975"/>
-        <source>Dropped</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Expired</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="997"/>
-        <source>&lt;b&gt;Traffic&lt;/b&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Maximum</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1083"/>
-        <source>Bytes Sent</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Total</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1103"/>
-        <source>Bytes Received</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Messages&lt;/b&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1061"/>
-        <source>&lt;b&gt;Load&lt;/b&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Sent</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1256"/>
-        <source>- / - / -</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Received</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1123"/>
-        <source>Messages Sent</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Stored</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1143"/>
-        <source>Messages Received</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Inflight</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1163"/>
-        <source>PUBLISH Sent</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Retained</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1183"/>
-        <source>PUBLISH Received</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;PUBLISH Messages&lt;/b&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1203"/>
-        <source>PUBLISH Dropped</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Dropped</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Traffic&lt;/b&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1223"/>
-        <source>Connections</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Bytes Sent</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1243"/>
-        <source>Sockets</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Bytes Received</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="262"/>
-        <source>Connection to Broker shut down cleanly.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.py" line="512"/>
-        <source>Subscribe to Topic</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Load&lt;/b&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="512"/>
-        <source>Subscriptions to the Status topic &apos;$SYS&apos; shall be done on the &apos;Status&apos; tab.</source>
-        <translation type="unfinished"></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 type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="763"/>
-        <source>Press to deactivate the status display</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="46"/>
-        <source>Press to switch the mode between profiles and direct connection</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Messages Sent</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="64"/>
-        <source>Select the profile to be used to connect to the broker</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Messages Received</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="392"/>
-        <source>Select to clear the publish data after the message was published</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>PUBLISH Sent</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="395"/>
-        <source>Clear when sent</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>PUBLISH Received</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="479"/>
-        <source>Press to clear the list of received messages</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>PUBLISH Dropped</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1268"/>
-        <source>Log</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Connections</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1276"/>
-        <source>Max. Log Level:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Sockets</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1289"/>
-        <source>Select the maximum log level to show</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Log</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1352"/>
-        <source>Press to clear the list of received log messages</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Max. Log Level:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="243"/>
-        <source>Connection timed out</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select the maximum log level to show</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="317"/>
-        <source>{0}: {1}</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to save the received log messages to a file</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to clear the list of received log messages</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="1059"/>
-        <source>Connecting to {0}:{1} ...</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select to scroll to the most recently received log message</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="333"/>
-        <source>Payload File:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Follow received log messages</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="349"/>
-        <source>Enter the full path to a file containing the message payload</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="68" />
+      <source>All Files (*)</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="453"/>
-        <source>Press to save the received messages to a file</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="249" />
+      <source>Connection timed out</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1329"/>
-        <source>Save</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="268" />
+      <source>Connection to Broker shut down cleanly.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="491"/>
-        <source>Select to scroll to the most recently received message</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="321" />
+      <source>{0}: {1}</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="494"/>
-        <source>Follow received messages</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="516" />
+      <source>Subscribe to Topic</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1326"/>
-        <source>Press to save the received log messages to a file</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="517" />
+      <source>Subscriptions to the Status topic '$SYS' shall be done on the 'Status' tab.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1364"/>
-        <source>Select to scroll to the most recently received log message</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="574" />
+      <source>Read Payload from File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="575" />
+      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be read. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1367"/>
-        <source>Follow received log messages</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="686" />
+      <location filename="../MqttMonitorWidget.py" line="672" />
+      <location filename="../MqttMonitorWidget.py" line="654" />
+      <source>Save Messages</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="65"/>
-        <source>All Files (*)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.py" line="571"/>
-        <source>Read Payload from File</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="656" />
+      <source>Messages Files (*.txt);;All Files (*)</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="571"/>
-        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be read. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="729" />
+      <location filename="../MqttMonitorWidget.py" line="673" />
+      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="684"/>
-        <source>Save Messages</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="743" />
+      <location filename="../MqttMonitorWidget.py" line="687" />
+      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="651"/>
-        <source>Messages Files (*.txt);;All Files (*)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.py" line="726"/>
-        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="742" />
+      <location filename="../MqttMonitorWidget.py" line="728" />
+      <location filename="../MqttMonitorWidget.py" line="710" />
+      <source>Save Log Messages</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="741"/>
-        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="712" />
+      <source>Log Files (*.log);;All Files (*)</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="741"/>
-        <source>Save Log Messages</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="763" />
+      <source>Press to deactivate the status display</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="708"/>
-        <source>Log Files (*.log);;All Files (*)</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="895" />
+      <source>QoS: {0}
+</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="902"/>
-        <source>QoS: {0}
-</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="1048" />
+      <location filename="../MqttMonitorWidget.py" line="1022" />
+      <source>Connecting to {0}:{1} ...</source>
+      <translation type="unfinished" />
     </message>
-</context>
+  </context>
 </TS>
diff -r 3cb08e5db764 -r 2fb5c08019fd MqttMonitor/i18n/mqttmonitor_en.ts
--- a/MqttMonitor/i18n/mqttmonitor_en.ts	Sun May 30 17:40:40 2021 +0200
+++ b/MqttMonitor/i18n/mqttmonitor_en.ts	Sun May 30 18:21:40 2021 +0200
@@ -1,1170 +1,1242 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="en_US" sourcelanguage="">
-<context>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US" sourcelanguage="">
+  <context>
     <name>MqttConnackMessage</name>
     <message>
-        <location filename="../MqttClient.py" line="467"/>
-        <source>Connection Accepted.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="483" />
+      <source>Connection Accepted.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttClient.py" line="487" />
+      <source>Connection Refused: unacceptable protocol version.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="471"/>
-        <source>Connection Refused: unacceptable protocol version.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="491" />
+      <source>Connection Refused: identifier rejected.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="475"/>
-        <source>Connection Refused: identifier rejected.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="495" />
+      <source>Connection Refused: broker unavailable.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="479"/>
-        <source>Connection Refused: broker unavailable.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="499" />
+      <source>Connection Refused: bad user name or password.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="483"/>
-        <source>Connection Refused: bad user name or password.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="503" />
+      <source>Connection Refused: not authorised.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="487"/>
-        <source>Connection Refused: not authorised.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="507" />
+      <source>Connection Refused: unknown reason.</source>
+      <translation type="unfinished" />
+    </message>
+  </context>
+  <context>
+    <name>MqttConnectionOptionsDialog</name>
+    <message>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>MQTT Connection Options</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="491"/>
-        <source>Connection Refused: unknown reason.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>MqttConnectionOptionsDialog</name>
-    <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="14"/>
-        <source>MQTT Connection Options</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>General</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="23"/>
-        <source>General</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Client ID:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="29"/>
-        <source>Client ID:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the ID string for this client</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="36"/>
-        <source>Enter the ID string for this client</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Press to generate a client ID</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="43"/>
-        <source>Press to generate a client ID</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Generate</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="46"/>
-        <source>Generate</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Connection Timeout:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="99"/>
-        <source>Keep Alive Interval:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the connection timeout in seconds</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="108"/>
-        <source>Enter the keep alive interval in seconds</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source> s</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="114"/>
-        <source> s</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Keep Alive Interval:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="148"/>
-        <source>Clean Session</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the keep alive interval in seconds</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="158"/>
-        <source>User Credentials</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Select to start with a clean session</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="164"/>
-        <source>User Name:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Clean Session</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="171"/>
-        <source>Enter the user name</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>User Credentials</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="178"/>
-        <source>Password:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>User Name:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="185"/>
-        <source>Enter the password</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the user name</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="198"/>
-        <source>Last Will and Testament</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Password:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="204"/>
-        <source>Enter the topic of the last will</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the password</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="211"/>
-        <source>QoS:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Last Will and Testament</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="218"/>
-        <source>Enter the desired QoS value</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the topic of the last will</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="231"/>
-        <source>Select to retain the last will message</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>QoS:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="234"/>
-        <source>Retain</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the desired QoS value</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="247"/>
-        <source>Enter the last will message to be sent</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Select to retain the last will message</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="53"/>
-        <source>Connection Timeout:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Retain</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="62"/>
-        <source>Enter the connection timeout in seconds</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the last will message to be sent</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="145"/>
-        <source>Select to start with a clean session</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>SSL/TLS</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="257"/>
-        <source>SSL/TLS</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Select to enable SSL/TLS connections</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="263"/>
-        <source>Select to enable SSL/TLS connections</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>SSL/TLS Enabled</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="266"/>
-        <source>SSL/TLS Enabled</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>CA File:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="273"/>
-        <source>CA File:</source>
-        <translation type="unfinished"></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 type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="292"/>
-        <source>Enter the full path to the CA certificate file; leave empty to use platform default</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.py" line="47" />
+      <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.py" line="46"/>
-        <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttConnectionOptionsDialog.py" line="62"/>
-        <source>Invalid Connection Parameters</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.py" line="64" />
+      <source>Invalid Connection Parameters</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.py" line="62"/>
-        <source>An empty Client ID requires a clean session.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionOptionsDialog.py" line="65" />
+      <source>An empty Client ID requires a clean session.</source>
+      <translation type="unfinished" />
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>MqttConnectionProfilesDialog</name>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="14"/>
-        <source>MQTT Connection Profiles</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="70" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="66" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="62" />
+      <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.py" line="74" />
+      <source>Key Files (*.key *.pem);;All Files (*)</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="51"/>
-        <source>Press to add a new profile</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="708" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="672" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="143" />
+      <source>Changed Connection Profile</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="58"/>
-        <source>Press to copy the selected profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="65"/>
-        <source>Press to delete the selected profile</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="709" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="673" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="144" />
+      <source>The current profile has unsaved changes. Shall these be saved?</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="99"/>
-        <source>Profile Name:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="171" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="164" />
+      <source>New Connection Profile</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.py" line="165" />
+      <source>Enter name for the new Connection Profile:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="120"/>
-        <source>Broker Address:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="199" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="172" />
+      <source>&lt;p&gt;A connection named &lt;b&gt;{0}&lt;/b&gt; exists already. Aborting...&lt;/p&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="127"/>
-        <source>Enter the broker server address</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="134"/>
-        <source>Broker Port:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="198" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="191" />
+      <source>Copy Connection Profile</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="143"/>
-        <source>Enter the broker port number (default 1883)</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="192" />
+      <source>Enter name for the copied Connection Profile:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="174"/>
-        <source>Client ID:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="222" />
+      <source>Delete Connection Profile</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="183"/>
-        <source>Enter the ID string for this client</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="223" />
+      <source>&lt;p&gt;Shall the Connection Profile &lt;b&gt;{0}&lt;/b&gt; really be deleted?&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.py" line="493" />
+      <source>Invalid Connection Parameters</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="190"/>
-        <source>Press to generate a client ID</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="494" />
+      <source>An empty Client ID requires a clean session.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="193"/>
-        <source>Generate</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="604" />
+      <source>SSL/TLS Enabled</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="215"/>
-        <source>General</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="605" />
+      <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.ui" line="221"/>
-        <source>Connection Timeout:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="618" />
+      <source>SSL/TLS Disabled</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="230"/>
-        <source>Enter the connection timeout in seconds</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="619" />
+      <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.ui" line="282"/>
-        <source> s</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="685" />
+      <source>Changed Connection Profiles</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="267"/>
-        <source>Keep Alive Interval:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="686" />
+      <source>The list of connection profiles has unsaved changes.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>MQTT Connection Profiles</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="276"/>
-        <source>Enter the keep alive interval in seconds</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Press to add a new profile</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="313"/>
-        <source>Select to start with a clean session</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Press to copy the selected profile</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="316"/>
-        <source>Clean Session</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Press to delete the selected profile</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="337"/>
-        <source>User Credentials</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Profile Name:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="343"/>
-        <source>User Name:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Broker Address:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="350"/>
-        <source>Enter the user name</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the broker server address</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="357"/>
-        <source>Password:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Broker Port:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="364"/>
-        <source>Enter the password</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the broker port number (default 1883)</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="388"/>
-        <source>Last Will</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Client ID:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="394"/>
-        <source>Enter the topic of the last will</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the ID string for this client</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="401"/>
-        <source>Enter the desired QoS value</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Press to generate a client ID</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="414"/>
-        <source>Select to retain the last will message</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Generate</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="417"/>
-        <source>Retain</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>General</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="430"/>
-        <source>Enter the last will message to be sent</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Connection Timeout:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="438"/>
-        <source>SSL/TLS</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the connection timeout in seconds</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="444"/>
-        <source>Select to enable SSL/TLS connections</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source> s</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="590"/>
-        <source>SSL/TLS Enabled</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Keep Alive Interval:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="459"/>
-        <source>Select to use the default certificate file of the client</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the keep alive interval in seconds</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="462"/>
-        <source>CA signed server certificate</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to start with a clean session</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="472"/>
-        <source>Select to use a specific certificate file</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Clean Session</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="475"/>
-        <source>CA certificate file</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>User Credentials</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="586"/>
-        <source>CA File:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>User Name:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="602"/>
-        <source>Enter the full path to the CA certificate file</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the user name</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="542"/>
-        <source>Select to use a self signed client certificate</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Password:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="545"/>
-        <source>Self signed certificates</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the password</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="609"/>
-        <source>Client Certificate File:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Last Will</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="625"/>
-        <source>Enter the full path to the client certificate file</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the topic of the last will</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="632"/>
-        <source>Client Key File:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the desired QoS value</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="648"/>
-        <source>Enter the full path to the client key file</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to retain the last will message</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Retain</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="69"/>
-        <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the last will message to be sent</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="73"/>
-        <source>Key Files (*.key *.pem);;All Files (*)</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>SSL/TLS</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="696"/>
-        <source>Changed Connection Profile</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to enable SSL/TLS connections</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="696"/>
-        <source>The current profile has unsaved changes. Shall these be saved?</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to use the default certificate file of the client</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="161"/>
-        <source>New Connection Profile</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>CA signed server certificate</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="154"/>
-        <source>Enter name for the new Connection Profile:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to use a specific certificate file</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="187"/>
-        <source>&lt;p&gt;A connection named &lt;b&gt;{0}&lt;/b&gt; exists already. Aborting...&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>CA certificate file</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="187"/>
-        <source>Copy Connection Profile</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>CA File:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="180"/>
-        <source>Enter name for the copied Connection Profile:</source>
-        <translation type="unfinished"></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 type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="210"/>
-        <source>Delete Connection Profile</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to use a self signed client certificate</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="210"/>
-        <source>&lt;p&gt;Shall the Connection Profile &lt;b&gt;{0}&lt;/b&gt; really be deleted?&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Self signed certificates</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="481"/>
-        <source>Invalid Connection Parameters</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Client Certificate File:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="481"/>
-        <source>An empty Client ID requires a clean session.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the full path to the client certificate file</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="590"/>
-        <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"></translation>
-    </message>
-    <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="604"/>
-        <source>SSL/TLS Disabled</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Client Key File:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="604"/>
-        <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"></translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the full path to the client key file</source>
+      <translation type="unfinished" />
     </message>
+  </context>
+  <context>
+    <name>MqttErrorMessage</name>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="672"/>
-        <source>Changed Connection Profiles</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="523" />
+      <source>No error.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="672"/>
-        <source>The list of connection profiles has unsaved changes.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="527" />
+      <source>Out of memory.</source>
+      <translation type="unfinished" />
     </message>
-</context>
-<context>
-    <name>MqttErrorMessage</name>
     <message>
-        <location filename="../MqttClient.py" line="507"/>
-        <source>No error.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="531" />
+      <source>A network protocol error occurred when communicating with the broker.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttClient.py" line="536" />
+      <source>Invalid function arguments provided.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="511"/>
-        <source>Out of memory.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="540" />
+      <source>The client is not currently connected.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="515"/>
-        <source>A network protocol error occurred when communicating with the broker.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="544" />
+      <source>The connection was refused.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="520"/>
-        <source>Invalid function arguments provided.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="548" />
+      <source>Message not found (internal error).</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttClient.py" line="552" />
+      <source>The connection was lost.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="524"/>
-        <source>The client is not currently connected.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="556" />
+      <source>A TLS error occurred.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="528"/>
-        <source>The connection was refused.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="560" />
+      <source>Payload too large.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="532"/>
-        <source>Message not found (internal error).</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="564" />
+      <source>This feature is not supported.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="536"/>
-        <source>The connection was lost.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="568" />
+      <source>Authorisation failed.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="540"/>
-        <source>A TLS error occurred.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="572" />
+      <source>Access denied by ACL.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="544"/>
-        <source>Payload too large.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttClient.py" line="548"/>
-        <source>This feature is not supported.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttClient.py" line="552"/>
-        <source>Authorisation failed.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="588" />
+      <location filename="../MqttClient.py" line="576" />
+      <source>Unknown error.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="556"/>
-        <source>Access denied by ACL.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="580" />
+      <source>Error defined by errno.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="568"/>
-        <source>Unknown error.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="584" />
+      <source>Message queue full.</source>
+      <translation type="unfinished" />
     </message>
-    <message>
-        <location filename="../MqttClient.py" line="564"/>
-        <source>Error defined by errno.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>MqttLogLevelString</name>
     <message>
-        <location filename="../MqttClient.py" line="607"/>
-        <source>Unknown</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="627" />
+      <location filename="../MqttClient.py" line="609" />
+      <source>Unknown</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="594"/>
-        <source>Info</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="614" />
+      <source>Info</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="596"/>
-        <source>Notice</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="616" />
+      <source>Notice</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="598"/>
-        <source>Warning</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="618" />
+      <source>Warning</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="600"/>
-        <source>Error</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="620" />
+      <source>Error</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="602"/>
-        <source>Debug</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="622" />
+      <source>Debug</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttClient.py" line="604"/>
-        <source>Logging Disabled</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttClient.py" line="624" />
+      <source>Logging Disabled</source>
+      <translation type="unfinished" />
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>MqttMonitorPlugin</name>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="64"/>
-        <source>MQTT</source>
-        <translation type="unfinished"></translation>
+      <location filename="../../PluginMqttMonitor.py" line="58" />
+      <source>(package not available)</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="65"/>
-        <source>paho-mqtt</source>
-        <translation type="unfinished"></translation>
+      <location filename="../../PluginMqttMonitor.py" line="63" />
+      <source>MQTT</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="123"/>
-        <source>The &apos;paho-mqtt&apos; package is not available.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../../PluginMqttMonitor.py" line="64" />
+      <source>paho-mqtt</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../../PluginMqttMonitor.py" line="122" />
+      <source>The 'paho-mqtt' package is not available.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="148"/>
-        <source>MQTT Monitor</source>
-        <translation type="unfinished"></translation>
+      <location filename="../../PluginMqttMonitor.py" line="139" />
+      <location filename="../../PluginMqttMonitor.py" line="136" />
+      <source>MQTT Monitor</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="148"/>
-        <source>M&amp;QTT Monitor</source>
-        <translation type="unfinished"></translation>
+      <location filename="../../PluginMqttMonitor.py" line="140" />
+      <source>M&amp;QTT Monitor</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="148"/>
-        <source>Alt+Shift+Q</source>
-        <translation type="unfinished"></translation>
+      <location filename="../../PluginMqttMonitor.py" line="141" />
+      <source>Alt+Shift+Q</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="154"/>
-        <source>Switch the input focus to the MQTT Monitor window.</source>
-        <translation type="unfinished"></translation>
+      <location filename="../../PluginMqttMonitor.py" line="144" />
+      <source>Switch the input focus to the MQTT Monitor window.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="156"/>
-        <source>&lt;b&gt;Activate MQTT Monitor&lt;/b&gt;&lt;p&gt;This switches the input focus to the MQTT Monitor window.&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../../PluginMqttMonitor.py" line="146" />
+      <source>&lt;b&gt;Activate MQTT Monitor&lt;/b&gt;&lt;p&gt;This switches the input focus to the MQTT Monitor window.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+  </context>
+  <context>
+    <name>MqttMonitorWidget</name>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;MQTT Monitor&lt;/b&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="59"/>
-        <source>(package not available)</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Broker</source>
+      <translation type="unfinished" />
     </message>
-</context>
-<context>
-    <name>MqttMonitorWidget</name>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="28"/>
-        <source>&lt;b&gt;MQTT Monitor&lt;/b&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to switch the mode between profiles and direct connection</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="40"/>
-        <source>Broker</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select the profile to be used to connect to the broker</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the host name of the broker</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="92"/>
-        <source>Enter the host name of the broker</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the broker port to connect to</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="127"/>
-        <source>Press to connect to/disconnect from the broker</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to open a dialog to enter connection options</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="102"/>
-        <source>Enter the broker port to connect to</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to connect to/disconnect from the broker</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Pub/Sub</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="120"/>
-        <source>Press to open a dialog to enter connection options</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="765" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Subscribe</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="151"/>
-        <source>Pub/Sub</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Topic:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="766"/>
-        <source>Subscribe</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the topic</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="260"/>
-        <source>Topic:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>QoS:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="173"/>
-        <source>Enter the topic</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the desired QoS value</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="283"/>
-        <source>QoS:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to subscribe to the given topic</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="290"/>
-        <source>Enter the desired QoS value</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="761" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Unsubscribe</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="200"/>
-        <source>Press to subscribe to the given topic</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select the topic to unsubscribe</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="762"/>
-        <source>Unsubscribe</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to unsubscribe the selected topic</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="232"/>
-        <source>Select the topic to unsubscribe</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Publish</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="239"/>
-        <source>Press to unsubscribe the selected topic</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the topic to publish to</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="383"/>
-        <source>Publish</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select to retain the published message</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="273"/>
-        <source>Enter the topic to publish to</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Retain</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="303"/>
-        <source>Select to retain the published message</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the string data to be sent</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="306"/>
-        <source>Retain</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Payload File:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="321"/>
-        <source>Enter the string data to be sent</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the full path to a file containing the message payload</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="360"/>
-        <source>Press to clear the publish data</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to clear the publish data</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1355"/>
-        <source>Clear</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Clear</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="419"/>
-        <source>Messages</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select to clear the publish data after the message was published</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="505"/>
-        <source>Status</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Clear when sent</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="767"/>
-        <source>Press to activate the status display</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Messages</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="561"/>
-        <source>&lt;b&gt;Broker&lt;/b&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to save the received messages to a file</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="583"/>
-        <source>Version</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Save</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1052"/>
-        <source>-</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to clear the list of received messages</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="603"/>
-        <source>Timestamp</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select to scroll to the most recently received message</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="623"/>
-        <source>Uptime</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Follow received messages</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="643"/>
-        <source>Subscriptions</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Status</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="665"/>
-        <source>&lt;b&gt;Clients&lt;/b&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="767" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to activate the status display</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="687"/>
-        <source>Connected</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Broker&lt;/b&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="707"/>
-        <source>Disconnected</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="727"/>
-        <source>Expired</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Version</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="747"/>
-        <source>Maximum</source>
-        <translation type="unfinished"></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 type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="767"/>
-        <source>Total</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="789"/>
-        <source>&lt;b&gt;Messages&lt;/b&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="935"/>
-        <source>Sent</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Timestamp</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="955"/>
-        <source>Received</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Uptime</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="851"/>
-        <source>Stored</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Subscriptions</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="871"/>
-        <source>Inflight</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Clients&lt;/b&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="891"/>
-        <source>Retained</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Connected</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="913"/>
-        <source>&lt;b&gt;PUBLISH Messages&lt;/b&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Disconnected</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="975"/>
-        <source>Dropped</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Expired</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="997"/>
-        <source>&lt;b&gt;Traffic&lt;/b&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Maximum</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1083"/>
-        <source>Bytes Sent</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Total</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1103"/>
-        <source>Bytes Received</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Messages&lt;/b&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1061"/>
-        <source>&lt;b&gt;Load&lt;/b&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Sent</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1256"/>
-        <source>- / - / -</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Received</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1123"/>
-        <source>Messages Sent</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Stored</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1143"/>
-        <source>Messages Received</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Inflight</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1163"/>
-        <source>PUBLISH Sent</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Retained</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1183"/>
-        <source>PUBLISH Received</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;PUBLISH Messages&lt;/b&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1203"/>
-        <source>PUBLISH Dropped</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Dropped</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Traffic&lt;/b&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1223"/>
-        <source>Connections</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Bytes Sent</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1243"/>
-        <source>Sockets</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Bytes Received</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="262"/>
-        <source>Connection to Broker shut down cleanly.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.py" line="512"/>
-        <source>Subscribe to Topic</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Load&lt;/b&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="512"/>
-        <source>Subscriptions to the Status topic &apos;$SYS&apos; shall be done on the &apos;Status&apos; tab.</source>
-        <translation type="unfinished"></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 type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="763"/>
-        <source>Press to deactivate the status display</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="46"/>
-        <source>Press to switch the mode between profiles and direct connection</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Messages Sent</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="64"/>
-        <source>Select the profile to be used to connect to the broker</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Messages Received</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="392"/>
-        <source>Select to clear the publish data after the message was published</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>PUBLISH Sent</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="395"/>
-        <source>Clear when sent</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>PUBLISH Received</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="479"/>
-        <source>Press to clear the list of received messages</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>PUBLISH Dropped</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1268"/>
-        <source>Log</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Connections</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1276"/>
-        <source>Max. Log Level:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Sockets</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1289"/>
-        <source>Select the maximum log level to show</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Log</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1352"/>
-        <source>Press to clear the list of received log messages</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Max. Log Level:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="243"/>
-        <source>Connection timed out</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select the maximum log level to show</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="317"/>
-        <source>{0}: {1}</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to save the received log messages to a file</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to clear the list of received log messages</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="1059"/>
-        <source>Connecting to {0}:{1} ...</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select to scroll to the most recently received log message</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="333"/>
-        <source>Payload File:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Follow received log messages</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="349"/>
-        <source>Enter the full path to a file containing the message payload</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="68" />
+      <source>All Files (*)</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="453"/>
-        <source>Press to save the received messages to a file</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="249" />
+      <source>Connection timed out</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1329"/>
-        <source>Save</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="268" />
+      <source>Connection to Broker shut down cleanly.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="491"/>
-        <source>Select to scroll to the most recently received message</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="321" />
+      <source>{0}: {1}</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="494"/>
-        <source>Follow received messages</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="516" />
+      <source>Subscribe to Topic</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1326"/>
-        <source>Press to save the received log messages to a file</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="517" />
+      <source>Subscriptions to the Status topic '$SYS' shall be done on the 'Status' tab.</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1364"/>
-        <source>Select to scroll to the most recently received log message</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="574" />
+      <source>Read Payload from File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="575" />
+      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be read. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1367"/>
-        <source>Follow received log messages</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="686" />
+      <location filename="../MqttMonitorWidget.py" line="672" />
+      <location filename="../MqttMonitorWidget.py" line="654" />
+      <source>Save Messages</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="65"/>
-        <source>All Files (*)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.py" line="571"/>
-        <source>Read Payload from File</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="656" />
+      <source>Messages Files (*.txt);;All Files (*)</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="571"/>
-        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be read. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="729" />
+      <location filename="../MqttMonitorWidget.py" line="673" />
+      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="684"/>
-        <source>Save Messages</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="743" />
+      <location filename="../MqttMonitorWidget.py" line="687" />
+      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="651"/>
-        <source>Messages Files (*.txt);;All Files (*)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.py" line="726"/>
-        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="742" />
+      <location filename="../MqttMonitorWidget.py" line="728" />
+      <location filename="../MqttMonitorWidget.py" line="710" />
+      <source>Save Log Messages</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="741"/>
-        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="712" />
+      <source>Log Files (*.log);;All Files (*)</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="741"/>
-        <source>Save Log Messages</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="763" />
+      <source>Press to deactivate the status display</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="708"/>
-        <source>Log Files (*.log);;All Files (*)</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="895" />
+      <source>QoS: {0}
+</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="902"/>
-        <source>QoS: {0}
-</source>
-        <translation type="unfinished"></translation>
+      <location filename="../MqttMonitorWidget.py" line="1048" />
+      <location filename="../MqttMonitorWidget.py" line="1022" />
+      <source>Connecting to {0}:{1} ...</source>
+      <translation type="unfinished" />
     </message>
-</context>
+  </context>
 </TS>
diff -r 3cb08e5db764 -r 2fb5c08019fd MqttMonitor/i18n/mqttmonitor_es.ts
--- a/MqttMonitor/i18n/mqttmonitor_es.ts	Sun May 30 17:40:40 2021 +0200
+++ b/MqttMonitor/i18n/mqttmonitor_es.ts	Sun May 30 18:21:40 2021 +0200
@@ -1,1176 +1,1247 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="es_ES" sourcelanguage="">
-<context>
+<!DOCTYPE TS>
+<TS version="2.0" language="es_ES" sourcelanguage="">
+  <context>
     <name>MqttConnackMessage</name>
     <message>
-        <location filename="../MqttClient.py" line="467"/>
-        <source>Connection Accepted.</source>
-        <translation>Conexión Aceptada.</translation>
+      <location filename="../MqttClient.py" line="483" />
+      <source>Connection Accepted.</source>
+      <translation>Conexión Aceptada.</translation>
+    </message>
+    <message>
+      <location filename="../MqttClient.py" line="487" />
+      <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="471"/>
-        <source>Connection Refused: unacceptable protocol version.</source>
-        <translation>Conexión Rechazada: versión de protocolo no aceptable.</translation>
+      <location filename="../MqttClient.py" line="491" />
+      <source>Connection Refused: identifier rejected.</source>
+      <translation>Conexión Rechazada: identificador rechazado.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="475"/>
-        <source>Connection Refused: identifier rejected.</source>
-        <translation>Conexión Rechazada: identificador rechazado.</translation>
+      <location filename="../MqttClient.py" line="495" />
+      <source>Connection Refused: broker unavailable.</source>
+      <translation>Conexión Rechazada: broker no disponible.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="479"/>
-        <source>Connection Refused: broker unavailable.</source>
-        <translation>Conexión Rechazada: broker no disponible.</translation>
+      <location filename="../MqttClient.py" line="499" />
+      <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="483"/>
-        <source>Connection Refused: bad user name or password.</source>
-        <translation>Conexión Rechazada: nombre de usuario o contraseña no válidos.</translation>
+      <location filename="../MqttClient.py" line="503" />
+      <source>Connection Refused: not authorised.</source>
+      <translation>Conexión Rechazada: no autorizado.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="487"/>
-        <source>Connection Refused: not authorised.</source>
-        <translation>Conexión Rechazada: no autorizado.</translation>
+      <location filename="../MqttClient.py" line="507" />
+      <source>Connection Refused: unknown reason.</source>
+      <translation>Conexión Rechazada: razón desconocida.</translation>
+    </message>
+  </context>
+  <context>
+    <name>MqttConnectionOptionsDialog</name>
+    <message>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>MQTT Connection Options</source>
+      <translation>Opciones de Conexión MQTT</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="491"/>
-        <source>Connection Refused: unknown reason.</source>
-        <translation>Conexión Rechazada: razón desconocida.</translation>
-    </message>
-</context>
-<context>
-    <name>MqttConnectionOptionsDialog</name>
-    <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="14"/>
-        <source>MQTT Connection Options</source>
-        <translation>Opciones de Conexión MQTT</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>General</source>
+      <translation>General</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="23"/>
-        <source>General</source>
-        <translation>General</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Client ID:</source>
+      <translation>ID de Cliente:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="29"/>
-        <source>Client ID:</source>
-        <translation>ID de Cliente:</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the ID string for this client</source>
+      <translation>Introducir la cadena de ID para este cliente</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="36"/>
-        <source>Enter the ID string for this client</source>
-        <translation>Introducir la cadena de ID para este cliente</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Press to generate a client ID</source>
+      <translation>Pulsar para generar un ID de cliente</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="43"/>
-        <source>Press to generate a client ID</source>
-        <translation>Pulsar para generar un ID de cliente</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Generate</source>
+      <translation>Generar</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="46"/>
-        <source>Generate</source>
-        <translation>Generar</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Connection Timeout:</source>
+      <translation>Timeout para la Conexión:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="99"/>
-        <source>Keep Alive Interval:</source>
-        <translation>Intervalo Keep Alive:</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the connection timeout in seconds</source>
+      <translation>Introducir en segundos el tiempo máximo para intentar la conexión</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="108"/>
-        <source>Enter the keep alive interval in seconds</source>
-        <translation>Introducir el intervalo keep alive en segundos</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source> s</source>
+      <translation> s</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="114"/>
-        <source> s</source>
-        <translation> s</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Keep Alive Interval:</source>
+      <translation>Intervalo Keep Alive:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="148"/>
-        <source>Clean Session</source>
-        <translation>Sesión Limpia</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the keep alive interval in seconds</source>
+      <translation>Introducir el intervalo keep alive en segundos</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="158"/>
-        <source>User Credentials</source>
-        <translation>Credenciales de Usuario</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Select to start with a clean session</source>
+      <translation>Seleccionar para empezar con una sesión limpia</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="164"/>
-        <source>User Name:</source>
-        <translation>Nombre de Usuario:</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Clean Session</source>
+      <translation>Sesión Limpia</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="171"/>
-        <source>Enter the user name</source>
-        <translation>Introducir nombre de usuario</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>User Credentials</source>
+      <translation>Credenciales de Usuario</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="178"/>
-        <source>Password:</source>
-        <translation>Contraseña:</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>User Name:</source>
+      <translation>Nombre de Usuario:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="185"/>
-        <source>Enter the password</source>
-        <translation>Introducir contraseña</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the user name</source>
+      <translation>Introducir nombre de usuario</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="198"/>
-        <source>Last Will and Testament</source>
-        <translation>Last Will and Testament</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Password:</source>
+      <translation>Contraseña:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="204"/>
-        <source>Enter the topic of the last will</source>
-        <translation>Introducir el tema de &apos;last will&apos;</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the password</source>
+      <translation>Introducir contraseña</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="211"/>
-        <source>QoS:</source>
-        <translation>QoS:</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Last Will and Testament</source>
+      <translation>Last Will and Testament</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="218"/>
-        <source>Enter the desired QoS value</source>
-        <translation>Introducir el valor deseado de QoS</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the topic of the last will</source>
+      <translation>Introducir el tema de 'last will'</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="231"/>
-        <source>Select to retain the last will message</source>
-        <translation>Seleccionar para retener el último &apos;will message&apos;</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>QoS:</source>
+      <translation>QoS:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="234"/>
-        <source>Retain</source>
-        <translation>Retener</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the desired QoS value</source>
+      <translation>Introducir el valor deseado de QoS</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="247"/>
-        <source>Enter the last will message to be sent</source>
-        <translation>Introducir el último &apos;last will message&apos; a enviar</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Select to retain the last will message</source>
+      <translation>Seleccionar para retener el último 'will message'</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="53"/>
-        <source>Connection Timeout:</source>
-        <translation>Timeout para la Conexión:</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Retain</source>
+      <translation>Retener</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="62"/>
-        <source>Enter the connection timeout in seconds</source>
-        <translation>Introducir en segundos el tiempo máximo para intentar la conexión</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the last will message to be sent</source>
+      <translation>Introducir el último 'last will message' a enviar</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="145"/>
-        <source>Select to start with a clean session</source>
-        <translation>Seleccionar para empezar con una sesión limpia</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>SSL/TLS</source>
+      <translation>SSL/TLS</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="257"/>
-        <source>SSL/TLS</source>
-        <translation>SSL/TLS</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Select to enable SSL/TLS connections</source>
+      <translation>Seleccionar para habilitar conexiones SSL/TLS</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="263"/>
-        <source>Select to enable SSL/TLS connections</source>
-        <translation>Seleccionar para habilitar conexiones SSL/TLS</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>SSL/TLS Enabled</source>
+      <translation>SSL/TLS Habilitado</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="266"/>
-        <source>SSL/TLS Enabled</source>
-        <translation>SSL/TLS Habilitado</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>CA File:</source>
+      <translation>Archivo CA:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="273"/>
-        <source>CA File:</source>
-        <translation>Archivo 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>Introducir la ruta completa al archivo de certificado CA; dejar en blanco para utilizar el valor por defecto de la plataforma</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="292"/>
-        <source>Enter the full path to the CA certificate file; leave empty to use platform default</source>
-        <translation>Introducir la ruta completa al archivo de certificado CA; dejar en blanco para utilizar el valor por defecto de la plataforma</translation>
+      <location filename="../MqttConnectionOptionsDialog.py" line="47" />
+      <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="46"/>
-        <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="62"/>
-        <source>Invalid Connection Parameters</source>
-        <translation>Parámetros de Conexión No Válidos</translation>
+      <location filename="../MqttConnectionOptionsDialog.py" line="64" />
+      <source>Invalid Connection Parameters</source>
+      <translation>Parámetros de Conexión No Válidos</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.py" line="62"/>
-        <source>An empty Client ID requires a clean session.</source>
-        <translation>Un ID de Cliente vacío requiere una sesión limpia.</translation>
+      <location filename="../MqttConnectionOptionsDialog.py" line="65" />
+      <source>An empty Client ID requires a clean session.</source>
+      <translation>Un ID de Cliente vacío requiere una sesión limpia.</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>MqttConnectionProfilesDialog</name>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="14"/>
-        <source>MQTT Connection Profiles</source>
-        <translation>Perfiles de Conexión MQTT</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="70" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="66" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="62" />
+      <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="74" />
+      <source>Key Files (*.key *.pem);;All Files (*)</source>
+      <translation>Archivos de Clave (*.key *.pem);;Todos los Archivos (*)</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="51"/>
-        <source>Press to add a new profile</source>
-        <translation>Pulsar para añadir un nuevo perfil</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="708" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="672" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="143" />
+      <source>Changed Connection Profile</source>
+      <translation>Perfil de Conexión Cambiado</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="58"/>
-        <source>Press to copy the selected profile</source>
-        <translation>Pulsar para copiar el perfil seleccionado</translation>
-    </message>
-    <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="65"/>
-        <source>Press to delete the selected profile</source>
-        <translation>Pulsar para borrar el perfil seleccionado</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="709" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="673" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="144" />
+      <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.ui" line="99"/>
-        <source>Profile Name:</source>
-        <translation>Nombre de Perfil:</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="171" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="164" />
+      <source>New Connection Profile</source>
+      <translation>Nuevo Perfil de Conexión</translation>
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.py" line="165" />
+      <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.ui" line="120"/>
-        <source>Broker Address:</source>
-        <translation>Dirección del Broker:</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="199" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="172" />
+      <source>&lt;p&gt;A connection named &lt;b&gt;{0}&lt;/b&gt; exists already. Aborting...&lt;/p&gt;</source>
+      <translation>&lt;p&gt;Una conexión llamada &lt;b&gt;{0}&lt;/b&gt; ya existe. Abortando...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="127"/>
-        <source>Enter the broker server address</source>
-        <translation>Introducir la dirección del servidor broker</translation>
-    </message>
-    <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="134"/>
-        <source>Broker Port:</source>
-        <translation>Puerto del Broker:</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="198" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="191" />
+      <source>Copy Connection Profile</source>
+      <translation>Copiar Perfil de Conexión</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="143"/>
-        <source>Enter the broker port number (default 1883)</source>
-        <translation>Introducir el número de puerto de broker (por defecto 1883)</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="192" />
+      <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.ui" line="174"/>
-        <source>Client ID:</source>
-        <translation>ID de Cliente:</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="222" />
+      <source>Delete Connection Profile</source>
+      <translation>Borrar Perfil de Conexión</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="183"/>
-        <source>Enter the ID string for this client</source>
-        <translation>Introducir la cadena de ID para este cliente</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="223" />
+      <source>&lt;p&gt;Shall the Connection Profile &lt;b&gt;{0}&lt;/b&gt; really be deleted?&lt;/p&gt;</source>
+      <translation>&lt;p&gt;¿Realmente desea eliminar el Perfil de Conexión &lt;b&gt;{0}&lt;/b&gt;?&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.py" line="493" />
+      <source>Invalid Connection Parameters</source>
+      <translation>Parámetros de Conexión No Válidos</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="190"/>
-        <source>Press to generate a client ID</source>
-        <translation>Pulsar para generar un ID de cliente</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="494" />
+      <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.ui" line="193"/>
-        <source>Generate</source>
-        <translation>Generar</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="604" />
+      <source>SSL/TLS Enabled</source>
+      <translation>SSL/TLS Habilitado</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="215"/>
-        <source>General</source>
-        <translation>General</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="605" />
+      <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.ui" line="221"/>
-        <source>Connection Timeout:</source>
-        <translation>Timeout para la Conexión:</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="618" />
+      <source>SSL/TLS Disabled</source>
+      <translation>SSL/TLS Deshabilitado</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="230"/>
-        <source>Enter the connection timeout in seconds</source>
-        <translation>Introducir en segundos el tiempo máximo para intentar la conexión</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="619" />
+      <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.ui" line="282"/>
-        <source> s</source>
-        <translation> s</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="685" />
+      <source>Changed Connection Profiles</source>
+      <translation>Perfiles de Conexión Cambiados</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="267"/>
-        <source>Keep Alive Interval:</source>
-        <translation>Intervalo Keep Alive:</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="686" />
+      <source>The list of connection profiles has unsaved changes.</source>
+      <translation>La lista de perfiles de conexión tienen cambios sin guardar.</translation>
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>MQTT Connection Profiles</source>
+      <translation>Perfiles de Conexión MQTT</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="276"/>
-        <source>Enter the keep alive interval in seconds</source>
-        <translation>Introducir el intervalo keep alive en segundos</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Press to add a new profile</source>
+      <translation>Pulsar para añadir un nuevo perfil</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="313"/>
-        <source>Select to start with a clean session</source>
-        <translation>Seleccionar para empezar con una sesión limpia</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Press to copy the selected profile</source>
+      <translation>Pulsar para copiar el perfil seleccionado</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="316"/>
-        <source>Clean Session</source>
-        <translation>Sesión Limpia</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Press to delete the selected profile</source>
+      <translation>Pulsar para borrar el perfil seleccionado</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="337"/>
-        <source>User Credentials</source>
-        <translation>Credenciales de Usuario</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Profile Name:</source>
+      <translation>Nombre de Perfil:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="343"/>
-        <source>User Name:</source>
-        <translation>Nombre de Usuario:</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Broker Address:</source>
+      <translation>Dirección del Broker:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="350"/>
-        <source>Enter the user name</source>
-        <translation>Introducir nombre de usuario</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the broker server address</source>
+      <translation>Introducir la dirección del servidor broker</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="357"/>
-        <source>Password:</source>
-        <translation>Contraseña:</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Broker Port:</source>
+      <translation>Puerto del Broker:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="364"/>
-        <source>Enter the password</source>
-        <translation>Introducir contraseña</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the broker port number (default 1883)</source>
+      <translation>Introducir el número de puerto de broker (por defecto 1883)</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="388"/>
-        <source>Last Will</source>
-        <translation>Last Will</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Client ID:</source>
+      <translation>ID de Cliente:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="394"/>
-        <source>Enter the topic of the last will</source>
-        <translation>Introducir el tema de &apos;last will&apos;</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the ID string for this client</source>
+      <translation>Introducir la cadena de ID para este cliente</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="401"/>
-        <source>Enter the desired QoS value</source>
-        <translation>Introducir el valor deseado de QoS</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Press to generate a client ID</source>
+      <translation>Pulsar para generar un ID de cliente</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="414"/>
-        <source>Select to retain the last will message</source>
-        <translation>Seleccionar para retener el último &apos;will message&apos;</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Generate</source>
+      <translation>Generar</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="417"/>
-        <source>Retain</source>
-        <translation>Retener</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>General</source>
+      <translation>General</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="430"/>
-        <source>Enter the last will message to be sent</source>
-        <translation>Introducir el último &apos;last will message&apos; a enviar</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Connection Timeout:</source>
+      <translation>Timeout para la Conexión:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="438"/>
-        <source>SSL/TLS</source>
-        <translation>SSL/TLS</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the connection timeout in seconds</source>
+      <translation>Introducir en segundos el tiempo máximo para intentar la conexión</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="444"/>
-        <source>Select to enable SSL/TLS connections</source>
-        <translation>Seleccionar para habilitar conexiones SSL/TLS</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source> s</source>
+      <translation> s</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="590"/>
-        <source>SSL/TLS Enabled</source>
-        <translation>SSL/TLS Habilitado</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Keep Alive Interval:</source>
+      <translation>Intervalo Keep Alive:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="459"/>
-        <source>Select to use the default certificate file of the client</source>
-        <translation>Seleccionar para utilizar el archivo de certificado por defecto del cliente</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the keep alive interval in seconds</source>
+      <translation>Introducir el intervalo keep alive en segundos</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="462"/>
-        <source>CA signed server certificate</source>
-        <translation>Certificado CA firmado en el servidor</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to start with a clean session</source>
+      <translation>Seleccionar para empezar con una sesión limpia</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="472"/>
-        <source>Select to use a specific certificate file</source>
-        <translation>Seleccionar para utilizar un archivo de certificado específico</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Clean Session</source>
+      <translation>Sesión Limpia</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="475"/>
-        <source>CA certificate file</source>
-        <translation>Archivo de certificado CA</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>User Credentials</source>
+      <translation>Credenciales de Usuario</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="586"/>
-        <source>CA File:</source>
-        <translation>Archivo CA:</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>User Name:</source>
+      <translation>Nombre de Usuario:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="602"/>
-        <source>Enter the full path to the CA certificate file</source>
-        <translation>Introducir la ruta completa al archivo de certificado CA</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the user name</source>
+      <translation>Introducir nombre de usuario</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="542"/>
-        <source>Select to use a self signed client certificate</source>
-        <translation>Seleccionar para utilizar un certificado firmado por el propio cliente</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Password:</source>
+      <translation>Contraseña:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="545"/>
-        <source>Self signed certificates</source>
-        <translation>Certificados auto-firmados</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the password</source>
+      <translation>Introducir contraseña</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="609"/>
-        <source>Client Certificate File:</source>
-        <translation>Archivo de certificado de Cliente:</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Last Will</source>
+      <translation>Last Will</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="625"/>
-        <source>Enter the full path to the client certificate file</source>
-        <translation>Introducir la ruta completa al archivo de certificado de cliente</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the topic of the last will</source>
+      <translation>Introducir el tema de 'last will'</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="632"/>
-        <source>Client Key File:</source>
-        <translation>Archivo de Clave del Cliente:</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the desired QoS value</source>
+      <translation>Introducir el valor deseado de QoS</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="648"/>
-        <source>Enter the full path to the client key file</source>
-        <translation>Introducir la ruta completa al archivo de clave del cliente</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to retain the last will message</source>
+      <translation>Seleccionar para retener el último 'will message'</translation>
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Retain</source>
+      <translation>Retener</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="69"/>
-        <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
-        <translation>Archivos de Certificado (*.crt *.pem);;Todos los Archivos (*)</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the last will message to be sent</source>
+      <translation>Introducir el último 'last will message' a enviar</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="73"/>
-        <source>Key Files (*.key *.pem);;All Files (*)</source>
-        <translation>Archivos de Clave (*.key *.pem);;Todos los Archivos (*)</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>SSL/TLS</source>
+      <translation>SSL/TLS</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="696"/>
-        <source>Changed Connection Profile</source>
-        <translation>Perfil de Conexión Cambiado</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to enable SSL/TLS connections</source>
+      <translation>Seleccionar para habilitar conexiones SSL/TLS</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="696"/>
-        <source>The current profile has unsaved changes. Shall these be saved?</source>
-        <translation>El perfil actual tiene cambios sin guardar. ¿Desea guardarlos?</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to use the default certificate file of the client</source>
+      <translation>Seleccionar para utilizar el archivo de certificado por defecto del cliente</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="161"/>
-        <source>New Connection Profile</source>
-        <translation>Nuevo Perfil de Conexión</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>CA signed server certificate</source>
+      <translation>Certificado CA firmado en el servidor</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="154"/>
-        <source>Enter name for the new Connection Profile:</source>
-        <translation>ntroducir nombre para el nuevo Perfil de Conexión:</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to use a specific certificate file</source>
+      <translation>Seleccionar para utilizar un archivo de certificado específico</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="187"/>
-        <source>&lt;p&gt;A connection named &lt;b&gt;{0}&lt;/b&gt; exists already. Aborting...&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Una conexión llamada &lt;b&gt;{0}&lt;/b&gt; ya existe. Abortando...&lt;/p&gt;</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>CA certificate file</source>
+      <translation>Archivo de certificado CA</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="187"/>
-        <source>Copy Connection Profile</source>
-        <translation>Copiar Perfil de Conexión</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>CA File:</source>
+      <translation>Archivo CA:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="180"/>
-        <source>Enter name for the copied Connection Profile:</source>
-        <translation>Introducir nombre para el Perfil de Conexión copiado:</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>Introducir la ruta completa al archivo de certificado CA</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="210"/>
-        <source>Delete Connection Profile</source>
-        <translation>Borrar Perfil de Conexión</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to use a self signed client certificate</source>
+      <translation>Seleccionar para utilizar un certificado firmado por el propio cliente</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="210"/>
-        <source>&lt;p&gt;Shall the Connection Profile &lt;b&gt;{0}&lt;/b&gt; really be deleted?&lt;/p&gt;</source>
-        <translation>&lt;p&gt;¿Realmente desea eliminar el Perfil de Conexión &lt;b&gt;{0}&lt;/b&gt;?&lt;/p&gt;</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Self signed certificates</source>
+      <translation>Certificados auto-firmados</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="481"/>
-        <source>Invalid Connection Parameters</source>
-        <translation>Parámetros de Conexión No Válidos</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Client Certificate File:</source>
+      <translation>Archivo de certificado de Cliente:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="481"/>
-        <source>An empty Client ID requires a clean session.</source>
-        <translation>Un ID de Cliente vacío requiere una sesión limpia.</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the full path to the client certificate file</source>
+      <translation>Introducir la ruta completa al archivo de certificado de cliente</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="590"/>
-        <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="604"/>
-        <source>SSL/TLS Disabled</source>
-        <translation>SSL/TLS Deshabilitado</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Client Key File:</source>
+      <translation>Archivo de Clave del Cliente:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="604"/>
-        <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>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the full path to the client key file</source>
+      <translation>Introducir la ruta completa al archivo de clave del cliente</translation>
     </message>
+  </context>
+  <context>
+    <name>MqttErrorMessage</name>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="672"/>
-        <source>Changed Connection Profiles</source>
-        <translation>Perfiles de Conexión Cambiados</translation>
+      <location filename="../MqttClient.py" line="523" />
+      <source>No error.</source>
+      <translation>No error.</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="672"/>
-        <source>The list of connection profiles has unsaved changes.</source>
-        <translation>La lista de perfiles de conexión tienen cambios sin guardar.</translation>
+      <location filename="../MqttClient.py" line="527" />
+      <source>Out of memory.</source>
+      <translation>Out of memory.</translation>
     </message>
-</context>
-<context>
-    <name>MqttErrorMessage</name>
     <message>
-        <location filename="../MqttClient.py" line="507"/>
-        <source>No error.</source>
-        <translation>No error.</translation>
+      <location filename="../MqttClient.py" line="531" />
+      <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="536" />
+      <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="511"/>
-        <source>Out of memory.</source>
-        <translation>Out of memory.</translation>
+      <location filename="../MqttClient.py" line="540" />
+      <source>The client is not currently connected.</source>
+      <translation>El cliente no está actualmente conectado.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="515"/>
-        <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>
+      <location filename="../MqttClient.py" line="544" />
+      <source>The connection was refused.</source>
+      <translation>La conexión se ha rechazado.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="520"/>
-        <source>Invalid function arguments provided.</source>
-        <translation>Se han proporcionado argumentos de función no válidos.</translation>
+      <location filename="../MqttClient.py" line="548" />
+      <source>Message not found (internal error).</source>
+      <translation>Mensaje no encontrado (error interno).</translation>
+    </message>
+    <message>
+      <location filename="../MqttClient.py" line="552" />
+      <source>The connection was lost.</source>
+      <translation>Se ha perdido la conexión.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="524"/>
-        <source>The client is not currently connected.</source>
-        <translation>El cliente no está actualmente conectado.</translation>
+      <location filename="../MqttClient.py" line="556" />
+      <source>A TLS error occurred.</source>
+      <translation>Ha ocurrido un error de TLS .</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="528"/>
-        <source>The connection was refused.</source>
-        <translation>La conexión se ha rechazado.</translation>
+      <location filename="../MqttClient.py" line="560" />
+      <source>Payload too large.</source>
+      <translation>Carga útil demasiado grande.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="532"/>
-        <source>Message not found (internal error).</source>
-        <translation>Mensaje no encontrado (error interno).</translation>
+      <location filename="../MqttClient.py" line="564" />
+      <source>This feature is not supported.</source>
+      <translation>Esta característica no está soportada.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="536"/>
-        <source>The connection was lost.</source>
-        <translation>Se ha perdido la conexión.</translation>
+      <location filename="../MqttClient.py" line="568" />
+      <source>Authorisation failed.</source>
+      <translation>Ha fallado la Autorización.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="540"/>
-        <source>A TLS error occurred.</source>
-        <translation>Ha ocurrido un error de TLS .</translation>
+      <location filename="../MqttClient.py" line="572" />
+      <source>Access denied by ACL.</source>
+      <translation>Acceso denegado por ACL.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="544"/>
-        <source>Payload too large.</source>
-        <translation>Carga útil demasiado grande.</translation>
-    </message>
-    <message>
-        <location filename="../MqttClient.py" line="548"/>
-        <source>This feature is not supported.</source>
-        <translation>Esta característica no está soportada.</translation>
-    </message>
-    <message>
-        <location filename="../MqttClient.py" line="552"/>
-        <source>Authorisation failed.</source>
-        <translation>Ha fallado la Autorización.</translation>
+      <location filename="../MqttClient.py" line="588" />
+      <location filename="../MqttClient.py" line="576" />
+      <source>Unknown error.</source>
+      <translation>Error desconocido.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="556"/>
-        <source>Access denied by ACL.</source>
-        <translation>Acceso denegado por ACL.</translation>
+      <location filename="../MqttClient.py" line="580" />
+      <source>Error defined by errno.</source>
+      <translation>Error definido por errno.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="568"/>
-        <source>Unknown error.</source>
-        <translation>Error desconocido.</translation>
+      <location filename="../MqttClient.py" line="584" />
+      <source>Message queue full.</source>
+      <translation type="unfinished" />
     </message>
-    <message>
-        <location filename="../MqttClient.py" line="564"/>
-        <source>Error defined by errno.</source>
-        <translation>Error definido por errno.</translation>
-    </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>MqttLogLevelString</name>
     <message>
-        <location filename="../MqttClient.py" line="607"/>
-        <source>Unknown</source>
-        <translation>Desconocido</translation>
+      <location filename="../MqttClient.py" line="627" />
+      <location filename="../MqttClient.py" line="609" />
+      <source>Unknown</source>
+      <translation>Desconocido</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="594"/>
-        <source>Info</source>
-        <translation>Info</translation>
+      <location filename="../MqttClient.py" line="614" />
+      <source>Info</source>
+      <translation>Info</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="596"/>
-        <source>Notice</source>
-        <translation>Nota</translation>
+      <location filename="../MqttClient.py" line="616" />
+      <source>Notice</source>
+      <translation>Nota</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="598"/>
-        <source>Warning</source>
-        <translation>Advertencia</translation>
+      <location filename="../MqttClient.py" line="618" />
+      <source>Warning</source>
+      <translation>Advertencia</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="600"/>
-        <source>Error</source>
-        <translation>Error</translation>
+      <location filename="../MqttClient.py" line="620" />
+      <source>Error</source>
+      <translation>Error</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="602"/>
-        <source>Debug</source>
-        <translation>Debug</translation>
+      <location filename="../MqttClient.py" line="622" />
+      <source>Debug</source>
+      <translation>Debug</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="604"/>
-        <source>Logging Disabled</source>
-        <translation>Logging Deshabilitado</translation>
+      <location filename="../MqttClient.py" line="624" />
+      <source>Logging Disabled</source>
+      <translation>Logging Deshabilitado</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>MqttMonitorPlugin</name>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="63"/>
-        <source>package not available</source>
-        <translation type="obsolete">package no disponible</translation>
+      <location filename="../../PluginMqttMonitor.py" line="58" />
+      <source>(package not available)</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="64"/>
-        <source>MQTT</source>
-        <translation>MQTT</translation>
+      <location filename="../../PluginMqttMonitor.py" line="63" />
+      <source>MQTT</source>
+      <translation>MQTT</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="65"/>
-        <source>paho-mqtt</source>
-        <translation>paho-mqtt</translation>
+      <location filename="../../PluginMqttMonitor.py" line="64" />
+      <source>paho-mqtt</source>
+      <translation>paho-mqtt</translation>
+    </message>
+    <message>
+      <location filename="../../PluginMqttMonitor.py" line="122" />
+      <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="123"/>
-        <source>The &apos;paho-mqtt&apos; package is not available.</source>
-        <translation>El package &apos;paho-mqtt&apos; no está disponible.</translation>
+      <location filename="../../PluginMqttMonitor.py" line="139" />
+      <location filename="../../PluginMqttMonitor.py" line="136" />
+      <source>MQTT Monitor</source>
+      <translation>MQTT Monitor</translation>
+    </message>
+    <message>
+      <location filename="../../PluginMqttMonitor.py" line="140" />
+      <source>M&amp;QTT Monitor</source>
+      <translation>M&amp;QTT Monitor</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="148"/>
-        <source>MQTT Monitor</source>
-        <translation>MQTT Monitor</translation>
+      <location filename="../../PluginMqttMonitor.py" line="141" />
+      <source>Alt+Shift+Q</source>
+      <translation>Alt+Shift+Q</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="148"/>
-        <source>M&amp;QTT Monitor</source>
-        <translation>M&amp;QTT Monitor</translation>
+      <location filename="../../PluginMqttMonitor.py" line="144" />
+      <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="148"/>
-        <source>Alt+Shift+Q</source>
-        <translation>Alt+Shift+Q</translation>
+      <location filename="../../PluginMqttMonitor.py" line="146" />
+      <source>&lt;b&gt;Activate MQTT Monitor&lt;/b&gt;&lt;p&gt;This switches the input focus to the MQTT Monitor window.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;Activar MQTT Monitor&lt;/b&gt;&lt;p&gt;Cambia el foco de input a la ventana de MQTT Monitor.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="154"/>
-        <source>Switch the input focus to the MQTT Monitor window.</source>
-        <translation>Cambiar el foco de input a la ventana de MQTT Monitor.</translation>
+      <source>package not available</source>
+      <translation type="vanished">package no disponible</translation>
     </message>
-    <message>
-        <location filename="../../PluginMqttMonitor.py" line="156"/>
-        <source>&lt;b&gt;Activate MQTT Monitor&lt;/b&gt;&lt;p&gt;This switches the input focus to the MQTT Monitor window.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Activar MQTT Monitor&lt;/b&gt;&lt;p&gt;Cambia el foco de input a la ventana de MQTT Monitor.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../../PluginMqttMonitor.py" line="59"/>
-        <source>(package not available)</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>MqttMonitorWidget</name>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="28"/>
-        <source>&lt;b&gt;MQTT Monitor&lt;/b&gt;</source>
-        <translation>&lt;b&gt;MQTT Monitor&lt;/b&gt;</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;MQTT Monitor&lt;/b&gt;</source>
+      <translation>&lt;b&gt;MQTT Monitor&lt;/b&gt;</translation>
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Broker</source>
+      <translation />
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to switch the mode between profiles and direct connection</source>
+      <translation>Pulsar para cambiar de modo entre perfiles y conexión directa</translation>
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select the profile to be used to connect to the broker</source>
+      <translation>Seleccionar el perfil a utilizar para conectar al broker</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="40"/>
-        <source>Broker</source>
-        <translation></translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the host name of the broker</source>
+      <translation>Introducir nombre de host del broker</translation>
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the broker port to connect to</source>
+      <translation>Introducir puerto de broker al que conectarse</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="92"/>
-        <source>Enter the host name of the broker</source>
-        <translation>Introducir nombre de host del broker</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to open a dialog to enter connection options</source>
+      <translation>Pulsar para abrir un diálogo para introducir opciones de conexión</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="127"/>
-        <source>Press to connect to/disconnect from the broker</source>
-        <translation>Pulsar para conectar/desconectar del broker</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to connect to/disconnect from the broker</source>
+      <translation>Pulsar para conectar/desconectar del broker</translation>
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Pub/Sub</source>
+      <translation>Pub/Sub</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="102"/>
-        <source>Enter the broker port to connect to</source>
-        <translation>Introducir puerto de broker al que conectarse</translation>
+      <location filename="../MqttMonitorWidget.py" line="765" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Subscribe</source>
+      <translation>Subscribir</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="120"/>
-        <source>Press to open a dialog to enter connection options</source>
-        <translation>Pulsar para abrir un diálogo para introducir opciones de conexión</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Topic:</source>
+      <translation>Tema:</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="151"/>
-        <source>Pub/Sub</source>
-        <translation>Pub/Sub</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the topic</source>
+      <translation>Introducir el tema</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="766"/>
-        <source>Subscribe</source>
-        <translation>Subscribir</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="260"/>
-        <source>Topic:</source>
-        <translation>Tema:</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the desired QoS value</source>
+      <translation>Introducir el valor deseado de QoS</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="173"/>
-        <source>Enter the topic</source>
-        <translation>Introducir el tema</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to subscribe to the given topic</source>
+      <translation>Pulsar para subscribir al tópico dado</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="283"/>
-        <source>QoS:</source>
-        <translation>QoS:</translation>
+      <location filename="../MqttMonitorWidget.py" line="761" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Unsubscribe</source>
+      <translation>Retirar subscripción</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="290"/>
-        <source>Enter the desired QoS value</source>
-        <translation>Introducir el valor deseado de QoS</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select the topic to unsubscribe</source>
+      <translation>Seleccionar el tema del que retirar subscripción</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="200"/>
-        <source>Press to subscribe to the given topic</source>
-        <translation>Pulsar para subscribir al tópico dado</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to unsubscribe the selected topic</source>
+      <translation>Pulsar para retirar subscripción del tema seleccionado</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="762"/>
-        <source>Unsubscribe</source>
-        <translation>Retirar subscripción</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Publish</source>
+      <translation>Publicar</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="232"/>
-        <source>Select the topic to unsubscribe</source>
-        <translation>Seleccionar el tema del que retirar subscripción</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the topic to publish to</source>
+      <translation>Introducir el tema al que publicar</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="239"/>
-        <source>Press to unsubscribe the selected topic</source>
-        <translation>Pulsar para retirar subscripción del tema seleccionado</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select to retain the published message</source>
+      <translation>Seleccionar para retener el mensaje publicado</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="383"/>
-        <source>Publish</source>
-        <translation>Publicar</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Retain</source>
+      <translation>Retener</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="273"/>
-        <source>Enter the topic to publish to</source>
-        <translation>Introducir el tema al que publicar</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the string data to be sent</source>
+      <translation>Introducir la cadena de datos a enviar</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="303"/>
-        <source>Select to retain the published message</source>
-        <translation>Seleccionar para retener el mensaje publicado</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Payload File:</source>
+      <translation>Archivo de Payload:</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="306"/>
-        <source>Retain</source>
-        <translation>Retener</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the full path to a file containing the message payload</source>
+      <translation>Introducir la ruta compleata al archivo que contiene el payload del mensaje</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="321"/>
-        <source>Enter the string data to be sent</source>
-        <translation>Introducir la cadena de datos a enviar</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to clear the publish data</source>
+      <translation>Pulsar para limpiar los datos de publicación</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="360"/>
-        <source>Press to clear the publish data</source>
-        <translation>Pulsar para limpiar los datos de publicación</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Clear</source>
+      <translation>Limpiar</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1355"/>
-        <source>Clear</source>
-        <translation>Limpiar</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select to clear the publish data after the message was published</source>
+      <translation>Seleccionar para limpiar los datos de publicación despues de publicar el mensaje</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="419"/>
-        <source>Messages</source>
-        <translation>Mensajes</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Clear when sent</source>
+      <translation>Limpiar tras enviar</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="505"/>
-        <source>Status</source>
-        <translation>Estado</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Messages</source>
+      <translation>Mensajes</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="767"/>
-        <source>Press to activate the status display</source>
-        <translation>Pulsar para activar la visualización de status</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to save the received messages to a file</source>
+      <translation>Pulsar para guardar los mensajes recibidos en un archivo</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="561"/>
-        <source>&lt;b&gt;Broker&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Broker&lt;/b&gt;</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Save</source>
+      <translation>Guardar</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="583"/>
-        <source>Version</source>
-        <translation>Versión</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="1052"/>
-        <source>-</source>
-        <translation>-</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to clear the list of received messages</source>
+      <translation>Pulsar para limpiar la lista de mensajes recibidos</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="603"/>
-        <source>Timestamp</source>
-        <translation>Timestamp</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select to scroll to the most recently received message</source>
+      <translation>Seleccionar para desplazar hasta el mensaje recibido más recientemente</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="623"/>
-        <source>Uptime</source>
-        <translation>Uptime</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Follow received messages</source>
+      <translation>Seguir mensajes recibidos</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="643"/>
-        <source>Subscriptions</source>
-        <translation>Subscripciones</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Status</source>
+      <translation>Estado</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="665"/>
-        <source>&lt;b&gt;Clients&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Clientes&lt;/b&gt;</translation>
+      <location filename="../MqttMonitorWidget.py" line="767" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to activate the status display</source>
+      <translation>Pulsar para activar la visualización de status</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="687"/>
-        <source>Connected</source>
-        <translation>Conectado</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Broker&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Broker&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="707"/>
-        <source>Disconnected</source>
-        <translation>Desconectado</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="727"/>
-        <source>Expired</source>
-        <translation>Expirado</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Version</source>
+      <translation>Versión</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="747"/>
-        <source>Maximum</source>
-        <translation>Máximo</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="767"/>
-        <source>Total</source>
-        <translation>Total</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="789"/>
-        <source>&lt;b&gt;Messages&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Messages&lt;/b&gt;</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="935"/>
-        <source>Sent</source>
-        <translation>Enviado</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Timestamp</source>
+      <translation>Timestamp</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="955"/>
-        <source>Received</source>
-        <translation>Recibido</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Uptime</source>
+      <translation>Uptime</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="851"/>
-        <source>Stored</source>
-        <translation>Almacenado</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Subscriptions</source>
+      <translation>Subscripciones</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="871"/>
-        <source>Inflight</source>
-        <translation>En vuelo</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Clients&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Clientes&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="891"/>
-        <source>Retained</source>
-        <translation>Retenido</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Connected</source>
+      <translation>Conectado</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="913"/>
-        <source>&lt;b&gt;PUBLISH Messages&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Mensajes PUBLISH&lt;/b&gt;</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Disconnected</source>
+      <translation>Desconectado</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="975"/>
-        <source>Dropped</source>
-        <translation>Descartado</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Expired</source>
+      <translation>Expirado</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="997"/>
-        <source>&lt;b&gt;Traffic&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Tráfico&lt;/b&gt;</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Maximum</source>
+      <translation>Máximo</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1083"/>
-        <source>Bytes Sent</source>
-        <translation>Bytes Enviados</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Total</source>
+      <translation>Total</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1103"/>
-        <source>Bytes Received</source>
-        <translation>Bytes Recibidos</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Messages&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Messages&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1061"/>
-        <source>&lt;b&gt;Load&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Carga&lt;/b&gt;</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Sent</source>
+      <translation>Enviado</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1256"/>
-        <source>- / - / -</source>
-        <translation>- / - / -</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Received</source>
+      <translation>Recibido</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1123"/>
-        <source>Messages Sent</source>
-        <translation>Mensajes Enviados</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Stored</source>
+      <translation>Almacenado</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1143"/>
-        <source>Messages Received</source>
-        <translation>Mensajes Recibidos</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Inflight</source>
+      <translation>En vuelo</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1163"/>
-        <source>PUBLISH Sent</source>
-        <translation>PUBLISH Enviado</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Retained</source>
+      <translation>Retenido</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1183"/>
-        <source>PUBLISH Received</source>
-        <translation>PUBLISH Recibido</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;PUBLISH Messages&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Mensajes PUBLISH&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1203"/>
-        <source>PUBLISH Dropped</source>
-        <translation>PUBLISH Descartado</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Dropped</source>
+      <translation>Descartado</translation>
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Traffic&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Tráfico&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1223"/>
-        <source>Connections</source>
-        <translation>Conexiones</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Bytes Sent</source>
+      <translation>Bytes Enviados</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1243"/>
-        <source>Sockets</source>
-        <translation>Sockets</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Bytes Received</source>
+      <translation>Bytes Recibidos</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="262"/>
-        <source>Connection to Broker shut down cleanly.</source>
-        <translation>Conexión a Broker detenida limpiamente.</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.py" line="512"/>
-        <source>Subscribe to Topic</source>
-        <translation>Subscribir a Tema</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Load&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Carga&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="512"/>
-        <source>Subscriptions to the Status topic &apos;$SYS&apos; shall be done on the &apos;Status&apos; tab.</source>
-        <translation>Las subscripciones al tema de Status &apos;$SYS&apos; se deben hacer en la pestaña de &apos;Status&apos;.</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.py" line="763"/>
-        <source>Press to deactivate the status display</source>
-        <translation>Pulsar para activar la visualización de status</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="46"/>
-        <source>Press to switch the mode between profiles and direct connection</source>
-        <translation>Pulsar para cambiar de modo entre perfiles y conexión directa</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Messages Sent</source>
+      <translation>Mensajes Enviados</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="64"/>
-        <source>Select the profile to be used to connect to the broker</source>
-        <translation>Seleccionar el perfil a utilizar para conectar al broker</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Messages Received</source>
+      <translation>Mensajes Recibidos</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="392"/>
-        <source>Select to clear the publish data after the message was published</source>
-        <translation>Seleccionar para limpiar los datos de publicación despues de publicar el mensaje</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>PUBLISH Sent</source>
+      <translation>PUBLISH Enviado</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="395"/>
-        <source>Clear when sent</source>
-        <translation>Limpiar tras enviar</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>PUBLISH Received</source>
+      <translation>PUBLISH Recibido</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="479"/>
-        <source>Press to clear the list of received messages</source>
-        <translation>Pulsar para limpiar la lista de mensajes recibidos</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>PUBLISH Dropped</source>
+      <translation>PUBLISH Descartado</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1268"/>
-        <source>Log</source>
-        <translation>Log</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Connections</source>
+      <translation>Conexiones</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1276"/>
-        <source>Max. Log Level:</source>
-        <translation>Máx Nivel de Log:</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Sockets</source>
+      <translation>Sockets</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1289"/>
-        <source>Select the maximum log level to show</source>
-        <translation>Seleccioanr el máximo nivel de log a mostrar</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Log</source>
+      <translation>Log</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1352"/>
-        <source>Press to clear the list of received log messages</source>
-        <translation>Pulsar para limpiar la lista de mensajes de log recibidos</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Max. Log Level:</source>
+      <translation>Máx Nivel de Log:</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="243"/>
-        <source>Connection timed out</source>
-        <translation>Se ha agotado el tiempo de conexión</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select the maximum log level to show</source>
+      <translation>Seleccioanr el máximo nivel de log a mostrar</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="317"/>
-        <source>{0}: {1}</source>
-        <translation>{0}: {1}</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to save the received log messages to a file</source>
+      <translation>Pulsar para guardar los mensajes de log recibidos en un archivo</translation>
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to clear the list of received log messages</source>
+      <translation>Pulsar para limpiar la lista de mensajes de log recibidos</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="1059"/>
-        <source>Connecting to {0}:{1} ...</source>
-        <translation>Connectando a {0}:{1} ...</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select to scroll to the most recently received log message</source>
+      <translation>Seleccionar para desplazar hasta el mensaje de log recibido más recientemente</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="333"/>
-        <source>Payload File:</source>
-        <translation>Archivo de Payload:</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Follow received log messages</source>
+      <translation>Seguir mensajes de log recibidos</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="349"/>
-        <source>Enter the full path to a file containing the message payload</source>
-        <translation>Introducir la ruta compleata al archivo que contiene el payload del mensaje</translation>
+      <location filename="../MqttMonitorWidget.py" line="68" />
+      <source>All Files (*)</source>
+      <translation>Todos los Archivos (*)</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="453"/>
-        <source>Press to save the received messages to a file</source>
-        <translation>Pulsar para guardar los mensajes recibidos en un archivo</translation>
+      <location filename="../MqttMonitorWidget.py" line="249" />
+      <source>Connection timed out</source>
+      <translation>Se ha agotado el tiempo de conexión</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1329"/>
-        <source>Save</source>
-        <translation>Guardar</translation>
+      <location filename="../MqttMonitorWidget.py" line="268" />
+      <source>Connection to Broker shut down cleanly.</source>
+      <translation>Conexión a Broker detenida limpiamente.</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="491"/>
-        <source>Select to scroll to the most recently received message</source>
-        <translation>Seleccionar para desplazar hasta el mensaje recibido más recientemente</translation>
+      <location filename="../MqttMonitorWidget.py" line="321" />
+      <source>{0}: {1}</source>
+      <translation>{0}: {1}</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="494"/>
-        <source>Follow received messages</source>
-        <translation>Seguir mensajes recibidos</translation>
+      <location filename="../MqttMonitorWidget.py" line="516" />
+      <source>Subscribe to Topic</source>
+      <translation>Subscribir a Tema</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1326"/>
-        <source>Press to save the received log messages to a file</source>
-        <translation>Pulsar para guardar los mensajes de log recibidos en un archivo</translation>
+      <location filename="../MqttMonitorWidget.py" line="517" />
+      <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.ui" line="1364"/>
-        <source>Select to scroll to the most recently received log message</source>
-        <translation>Seleccionar para desplazar hasta el mensaje de log recibido más recientemente</translation>
+      <location filename="../MqttMonitorWidget.py" line="574" />
+      <source>Read Payload from File</source>
+      <translation>Leer Payload desde Archivo</translation>
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="575" />
+      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be read. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+      <translation>&lt;p&gt;El archivo &lt;b&gt;{0}&lt;/b&gt; no se ha podido leer. Abortando...&lt;/p&gt;&lt;p&gt;Razón: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1367"/>
-        <source>Follow received log messages</source>
-        <translation>Seguir mensajes de log recibidos</translation>
+      <location filename="../MqttMonitorWidget.py" line="686" />
+      <location filename="../MqttMonitorWidget.py" line="672" />
+      <location filename="../MqttMonitorWidget.py" line="654" />
+      <source>Save Messages</source>
+      <translation>Guardar Mensajes</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="65"/>
-        <source>All Files (*)</source>
-        <translation>Todos los Archivos (*)</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.py" line="571"/>
-        <source>Read Payload from File</source>
-        <translation>Leer Payload desde Archivo</translation>
+      <location filename="../MqttMonitorWidget.py" line="656" />
+      <source>Messages Files (*.txt);;All Files (*)</source>
+      <translation>Archivos de Mensaje (*.txt);;Todos los Archivos (*)</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="571"/>
-        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be read. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
-        <translation>&lt;p&gt;El archivo &lt;b&gt;{0}&lt;/b&gt; no se ha podido leer. Abortando...&lt;/p&gt;&lt;p&gt;Razón: {1}&lt;/p&gt;</translation>
+      <location filename="../MqttMonitorWidget.py" line="729" />
+      <location filename="../MqttMonitorWidget.py" line="673" />
+      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
+      <translation>&lt;p&gt;El archivo &lt;b&gt;{0}&lt;/b&gt; ya existe. ¿Sobreescribirlo?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="684"/>
-        <source>Save Messages</source>
-        <translation>Guardar Mensajes</translation>
+      <location filename="../MqttMonitorWidget.py" line="743" />
+      <location filename="../MqttMonitorWidget.py" line="687" />
+      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+      <translation>&lt;p&gt;El archivo &lt;b&gt;{0}&lt;/b&gt; no se ha podido guardar.&lt;/p&gt;&lt;p&gt;Razón: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="651"/>
-        <source>Messages Files (*.txt);;All Files (*)</source>
-        <translation>Archivos de Mensaje (*.txt);;Todos los Archivos (*)</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.py" line="726"/>
-        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
-        <translation>&lt;p&gt;El archivo &lt;b&gt;{0}&lt;/b&gt; ya existe. ¿Sobreescribirlo?&lt;/p&gt;</translation>
+      <location filename="../MqttMonitorWidget.py" line="742" />
+      <location filename="../MqttMonitorWidget.py" line="728" />
+      <location filename="../MqttMonitorWidget.py" line="710" />
+      <source>Save Log Messages</source>
+      <translation>Guardar Mensajes de Log</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="741"/>
-        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
-        <translation>&lt;p&gt;El archivo &lt;b&gt;{0}&lt;/b&gt; no se ha podido guardar.&lt;/p&gt;&lt;p&gt;Razón: {1}&lt;/p&gt;</translation>
+      <location filename="../MqttMonitorWidget.py" line="712" />
+      <source>Log Files (*.log);;All Files (*)</source>
+      <translation>Archivos de Log (*.log);;Todos los Archivos (*)</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="741"/>
-        <source>Save Log Messages</source>
-        <translation>Guardar Mensajes de Log</translation>
+      <location filename="../MqttMonitorWidget.py" line="763" />
+      <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="708"/>
-        <source>Log Files (*.log);;All Files (*)</source>
-        <translation>Archivos de Log (*.log);;Todos los Archivos (*)</translation>
+      <location filename="../MqttMonitorWidget.py" line="895" />
+      <source>QoS: {0}
+</source>
+      <translation>QoS: {0}
+</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="902"/>
-        <source>QoS: {0}
-</source>
-        <translation>QoS: {0}
-</translation>
+      <location filename="../MqttMonitorWidget.py" line="1048" />
+      <location filename="../MqttMonitorWidget.py" line="1022" />
+      <source>Connecting to {0}:{1} ...</source>
+      <translation>Connectando a {0}:{1} ...</translation>
     </message>
-</context>
+  </context>
 </TS>
diff -r 3cb08e5db764 -r 2fb5c08019fd MqttMonitor/i18n/mqttmonitor_ru.ts
--- a/MqttMonitor/i18n/mqttmonitor_ru.ts	Sun May 30 17:40:40 2021 +0200
+++ b/MqttMonitor/i18n/mqttmonitor_ru.ts	Sun May 30 18:21:40 2021 +0200
@@ -1,1171 +1,1243 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="ru_RU" sourcelanguage="">
-<context>
+<!DOCTYPE TS>
+<TS version="2.0" language="ru_RU" sourcelanguage="">
+  <context>
     <name>MqttConnackMessage</name>
     <message>
-        <location filename="../MqttClient.py" line="467"/>
-        <source>Connection Accepted.</source>
-        <translation>Соединение установлено.</translation>
+      <location filename="../MqttClient.py" line="483" />
+      <source>Connection Accepted.</source>
+      <translation>Соединение установлено.</translation>
+    </message>
+    <message>
+      <location filename="../MqttClient.py" line="487" />
+      <source>Connection Refused: unacceptable protocol version.</source>
+      <translation>Соединение отклонено: неприемлемая версия протокола.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="471"/>
-        <source>Connection Refused: unacceptable protocol version.</source>
-        <translation>Соединение отклонено: неприемлемая версия протокола.</translation>
+      <location filename="../MqttClient.py" line="491" />
+      <source>Connection Refused: identifier rejected.</source>
+      <translation>Соединение отклонено: идентификатор отклонен.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="475"/>
-        <source>Connection Refused: identifier rejected.</source>
-        <translation>Соединение отклонено: идентификатор отклонен.</translation>
+      <location filename="../MqttClient.py" line="495" />
+      <source>Connection Refused: broker unavailable.</source>
+      <translation>Соединение отклонено: брокер недоступен.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="479"/>
-        <source>Connection Refused: broker unavailable.</source>
-        <translation>Соединение отклонено: брокер недоступен.</translation>
+      <location filename="../MqttClient.py" line="499" />
+      <source>Connection Refused: bad user name or password.</source>
+      <translation>Соединение отклонено: неправильное имя пользователя или пароль.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="483"/>
-        <source>Connection Refused: bad user name or password.</source>
-        <translation>Соединение отклонено: неправильное имя пользователя или пароль.</translation>
+      <location filename="../MqttClient.py" line="503" />
+      <source>Connection Refused: not authorised.</source>
+      <translation>Соединение отклонено: нет авторизации.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="487"/>
-        <source>Connection Refused: not authorised.</source>
-        <translation>Соединение отклонено: нет авторизации.</translation>
+      <location filename="../MqttClient.py" line="507" />
+      <source>Connection Refused: unknown reason.</source>
+      <translation>Соединение отклонено: неизвестная причина.</translation>
+    </message>
+  </context>
+  <context>
+    <name>MqttConnectionOptionsDialog</name>
+    <message>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>MQTT Connection Options</source>
+      <translation>Параметры подключения MQTT</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="491"/>
-        <source>Connection Refused: unknown reason.</source>
-        <translation>Соединение отклонено: неизвестная причина.</translation>
-    </message>
-</context>
-<context>
-    <name>MqttConnectionOptionsDialog</name>
-    <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="14"/>
-        <source>MQTT Connection Options</source>
-        <translation>Параметры подключения MQTT</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>General</source>
+      <translation>Главное</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="23"/>
-        <source>General</source>
-        <translation>Главное</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Client ID:</source>
+      <translation>ID клиента:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="29"/>
-        <source>Client ID:</source>
-        <translation>ID клиента:</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the ID string for this client</source>
+      <translation>Введите строку ID для этого клиента</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="36"/>
-        <source>Enter the ID string for this client</source>
-        <translation>Введите строку ID для этого клиента</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Press to generate a client ID</source>
+      <translation>Генерировать ID клиента</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="43"/>
-        <source>Press to generate a client ID</source>
-        <translation>Генерировать ID клиента</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Generate</source>
+      <translation>Генерировать</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="46"/>
-        <source>Generate</source>
-        <translation>Генерировать</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Connection Timeout:</source>
+      <translation>Время ожидания соединения:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="53"/>
-        <source>Connection Timeout:</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>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="62"/>
-        <source>Enter the connection timeout in seconds</source>
-        <translation>Задайте время ожидания соединения, в секундах</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Keep Alive Interval:</source>
+      <translation>Интервал удержания:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="114"/>
-        <source> s</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="99"/>
-        <source>Keep Alive Interval:</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="108"/>
-        <source>Enter the keep alive interval in seconds</source>
-        <translation>Задайте интервал удержания, в секундах</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Clean Session</source>
+      <translation>Очищать сеанс</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="145"/>
-        <source>Select to start with a clean session</source>
-        <translation>Разрешить начинать чистый сеанс</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>User Credentials</source>
+      <translation>Учетные данные пользователя</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="148"/>
-        <source>Clean Session</source>
-        <translation>Очищать сеанс</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>User Name:</source>
+      <translation>Имя пользователя:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="158"/>
-        <source>User Credentials</source>
-        <translation>Учетные данные пользователя</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the user name</source>
+      <translation>Введите имя пользователя</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="164"/>
-        <source>User Name:</source>
-        <translation>Имя пользователя:</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Password:</source>
+      <translation>Пароль:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="171"/>
-        <source>Enter the user name</source>
-        <translation>Введите имя пользователя</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the password</source>
+      <translation>Введите пароль</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="178"/>
-        <source>Password:</source>
-        <translation>Пароль:</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Last Will and Testament</source>
+      <translation>Последнее желание и завещание</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="185"/>
-        <source>Enter the password</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="198"/>
-        <source>Last Will and Testament</source>
-        <translation>Последнее желание и завещание</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>QoS:</source>
+      <translation>QoS:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="204"/>
-        <source>Enter the topic of the last will</source>
-        <translation>Введите тему для сообщения последнего желания</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Enter the desired QoS value</source>
+      <translation>Задайте желаемое значение уровня обслуживания QoS</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="211"/>
-        <source>QoS:</source>
-        <translation>QoS:</translation>
-    </message>
-    <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="218"/>
-        <source>Enter the desired QoS value</source>
-        <translation>Задайте желаемое значение уровня обслуживания QoS</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="231"/>
-        <source>Select to retain the last will message</source>
-        <translation>Разрешить удерживать сообщение последнего желания</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>Retain</source>
+      <translation>Удерживать</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="234"/>
-        <source>Retain</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="247"/>
-        <source>Enter the last will message to be sent</source>
-        <translation>Введите сообщение последнего желания</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>SSL/TLS</source>
+      <translation>SSL/TLS</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="257"/>
-        <source>SSL/TLS</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="263"/>
-        <source>Select to enable SSL/TLS connections</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="266"/>
-        <source>SSL/TLS Enabled</source>
-        <translation>Разрешить SSL/TLS</translation>
+      <location filename="../MqttConnectionOptionsDialog.ui" line="0" />
+      <source>CA File:</source>
+      <translation>Файл CA:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.ui" line="273"/>
-        <source>CA File:</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="292"/>
-        <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.py" line="46"/>
-        <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
-        <translation>Файлы сертификатов (*.crt *.pem);;Все файлы (*)</translation>
+      <location filename="../MqttConnectionOptionsDialog.py" line="47" />
+      <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
+      <translation>Файлы сертификатов (*.crt *.pem);;Все файлы (*)</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.py" line="62"/>
-        <source>Invalid Connection Parameters</source>
-        <translation>Недопустимые параметры соединения</translation>
+      <location filename="../MqttConnectionOptionsDialog.py" line="64" />
+      <source>Invalid Connection Parameters</source>
+      <translation>Недопустимые параметры соединения</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionOptionsDialog.py" line="62"/>
-        <source>An empty Client ID requires a clean session.</source>
-        <translation>При незаданном ID клиента требуется чистый сеанс.</translation>
+      <location filename="../MqttConnectionOptionsDialog.py" line="65" />
+      <source>An empty Client ID requires a clean session.</source>
+      <translation>При незаданном ID клиента требуется чистый сеанс.</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>MqttConnectionProfilesDialog</name>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="14"/>
-        <source>MQTT Connection Profiles</source>
-        <translation>Профили подключения MQTT</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="70" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="66" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="62" />
+      <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
+      <translation>Файлы сертификатов (*.crt *.pem);;Все файлы (*)</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="51"/>
-        <source>Press to add a new profile</source>
-        <translation>Добавить новый профиль</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="74" />
+      <source>Key Files (*.key *.pem);;All Files (*)</source>
+      <translation>Файлы ключей (*.key *.pem);;Все файлы (*)</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="58"/>
-        <source>Press to copy the selected profile</source>
-        <translation>Копировать выбранный профиль</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="708" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="672" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="143" />
+      <source>Changed Connection Profile</source>
+      <translation>Измененный профиль соединения</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="65"/>
-        <source>Press to delete the selected profile</source>
-        <translation>Удалить выбранный профиль</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="709" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="673" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="144" />
+      <source>The current profile has unsaved changes. Shall these be saved?</source>
+      <translation>В текущем профиле есть несохраненные изменения. Должны ли они быть сохранены?</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="99"/>
-        <source>Profile Name:</source>
-        <translation>Имя профиля:</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="171" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="164" />
+      <source>New Connection Profile</source>
+      <translation>Новый профиль соединения</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="120"/>
-        <source>Broker Address:</source>
-        <translation>Адрес брокера:</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="165" />
+      <source>Enter name for the new Connection Profile:</source>
+      <translation>Введите имя нового профиля соединения:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="127"/>
-        <source>Enter the broker server address</source>
-        <translation>Введите адрес брокер-сервера</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="199" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="172" />
+      <source>&lt;p&gt;A connection named &lt;b&gt;{0}&lt;/b&gt; exists already. Aborting...&lt;/p&gt;</source>
+      <translation>&lt;p&gt;Уже существует соединение с именем &lt;b&gt;{0}&lt;/b&gt;. Прерывание... &lt;/ p&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="134"/>
-        <source>Broker Port:</source>
-        <translation>Порт брокера:</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="198" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="191" />
+      <source>Copy Connection Profile</source>
+      <translation>Копировать профиль соединения</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="143"/>
-        <source>Enter the broker port number (default 1883)</source>
-        <translation>Задайте номер порта брокера (по умолчанию 1883)</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="192" />
+      <source>Enter name for the copied Connection Profile:</source>
+      <translation>Введите имя для скопированного профиля соединения:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="174"/>
-        <source>Client ID:</source>
-        <translation>ID клиента:</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="222" />
+      <source>Delete Connection Profile</source>
+      <translation>Удалить профиль соединения</translation>
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.py" line="223" />
+      <source>&lt;p&gt;Shall the Connection Profile &lt;b&gt;{0}&lt;/b&gt; really be deleted?&lt;/p&gt;</source>
+      <translation>&lt;p&gt;Действительно удалить профиль соединения &lt;b&gt;{0}&lt;/b&gt;?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="183"/>
-        <source>Enter the ID string for this client</source>
-        <translation>Введите строку ID для этого клиента</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="493" />
+      <source>Invalid Connection Parameters</source>
+      <translation>Недопустимые параметры соединения</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="190"/>
-        <source>Press to generate a client ID</source>
-        <translation>Генерировать ID клиента</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="494" />
+      <source>An empty Client ID requires a clean session.</source>
+      <translation>При незаданном ID клиента требуется чистый сеанс.</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="193"/>
-        <source>Generate</source>
-        <translation>Генерировать</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <location filename="../MqttConnectionProfilesDialog.py" line="604" />
+      <source>SSL/TLS Enabled</source>
+      <translation>Разрешить SSL/TLS</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="215"/>
-        <source>General</source>
-        <translation>Главное</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="605" />
+      <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.ui" line="221"/>
-        <source>Connection Timeout:</source>
-        <translation>Время ожидания соединения:</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="618" />
+      <source>SSL/TLS Disabled</source>
+      <translation>SSL/TLS запрещено</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="230"/>
-        <source>Enter the connection timeout in seconds</source>
-        <translation>Задайте время ожидания соединения, в секундах</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="619" />
+      <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.ui" line="282"/>
-        <source> s</source>
-        <translation> сек</translation>
+      <location filename="../MqttConnectionProfilesDialog.py" line="685" />
+      <source>Changed Connection Profiles</source>
+      <translation>Измененные профили соединений</translation>
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.py" line="686" />
+      <source>The list of connection profiles has unsaved changes.</source>
+      <translation>В списке профилей соединений имеются несохраненные изменения.</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="267"/>
-        <source>Keep Alive Interval:</source>
-        <translation>Интервал удержания:</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>MQTT Connection Profiles</source>
+      <translation>Профили подключения MQTT</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="276"/>
-        <source>Enter the keep alive interval in seconds</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="313"/>
-        <source>Select to start with a clean session</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="316"/>
-        <source>Clean Session</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="337"/>
-        <source>User Credentials</source>
-        <translation>Учетные данные пользователя</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Profile Name:</source>
+      <translation>Имя профиля:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="343"/>
-        <source>User Name:</source>
-        <translation>Имя пользователя:</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Broker Address:</source>
+      <translation>Адрес брокера:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="350"/>
-        <source>Enter the user name</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="357"/>
-        <source>Password:</source>
-        <translation>Пароль:</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Broker Port:</source>
+      <translation>Порт брокера:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="364"/>
-        <source>Enter the password</source>
-        <translation>Введите пароль</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="388"/>
-        <source>Last Will</source>
-        <translation>Последнее желание</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Client ID:</source>
+      <translation>ID клиента:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="394"/>
-        <source>Enter the topic of the last will</source>
-        <translation>Введите тему для сообщения последнего желания</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="401"/>
-        <source>Enter the desired QoS value</source>
-        <translation>Задайте желаемое значение уровня обслуживания QoS</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="414"/>
-        <source>Select to retain the last will message</source>
-        <translation>Разрешить удерживать сообщение последнего желания</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Generate</source>
+      <translation>Генерировать</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="417"/>
-        <source>Retain</source>
-        <translation>Удерживать</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>General</source>
+      <translation>Главное</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="430"/>
-        <source>Enter the last will message to be sent</source>
-        <translation>Введите сообщение последнего желания</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Connection Timeout:</source>
+      <translation>Время ожидания соединения:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="438"/>
-        <source>SSL/TLS</source>
-        <translation>SSL/TLS</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the connection timeout in seconds</source>
+      <translation>Задайте время ожидания соединения, в секундах</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="444"/>
-        <source>Select to enable SSL/TLS connections</source>
-        <translation>Разрешить SSL/TLS соединения</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source> s</source>
+      <translation> сек</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="590"/>
-        <source>SSL/TLS Enabled</source>
-        <translation>Разрешить SSL/TLS</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Keep Alive Interval:</source>
+      <translation>Интервал удержания:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="459"/>
-        <source>Select to use the default certificate file of the client</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="462"/>
-        <source>CA signed server certificate</source>
-        <translation>Сертификат подписываемый сервером CA</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="472"/>
-        <source>Select to use a specific certificate file</source>
-        <translation>Разрешить использовать определенный файл сертификата</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Clean Session</source>
+      <translation>Очищать сеанс</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="475"/>
-        <source>CA certificate file</source>
-        <translation>Файл сертификата CA</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>User Credentials</source>
+      <translation>Учетные данные пользователя</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="586"/>
-        <source>CA File:</source>
-        <translation>Файл CA:</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>User Name:</source>
+      <translation>Имя пользователя:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="602"/>
-        <source>Enter the full path to the CA certificate file</source>
-        <translation>Введите полный путь к файлу сертификата CA</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the user name</source>
+      <translation>Введите имя пользователя</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="542"/>
-        <source>Select to use a self signed client certificate</source>
-        <translation>Разрешить использовать самостоятельно подписываемый сертификат клиента</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Password:</source>
+      <translation>Пароль:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="545"/>
-        <source>Self signed certificates</source>
-        <translation>Самостоятельно подписываемые сертификаты</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the password</source>
+      <translation>Введите пароль</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="609"/>
-        <source>Client Certificate File:</source>
-        <translation>Файл сертификата клиента:</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Last Will</source>
+      <translation>Последнее желание</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="625"/>
-        <source>Enter the full path to the client certificate file</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="632"/>
-        <source>Client Key File:</source>
-        <translation>Файл ключа клиента:</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the desired QoS value</source>
+      <translation>Задайте желаемое значение уровня обслуживания QoS</translation>
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to retain the last will message</source>
+      <translation>Разрешить удерживать сообщение последнего желания</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.ui" line="648"/>
-        <source>Enter the full path to the client key file</source>
-        <translation>Введите полный путь к файлу ключа клиента</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Retain</source>
+      <translation>Удерживать</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="69"/>
-        <source>Certificate Files (*.crt *.pem);;All Files (*)</source>
-        <translation>Файлы сертификатов (*.crt *.pem);;Все файлы (*)</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the last will message to be sent</source>
+      <translation>Введите сообщение последнего желания</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="73"/>
-        <source>Key Files (*.key *.pem);;All Files (*)</source>
-        <translation>Файлы ключей (*.key *.pem);;Все файлы (*)</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>SSL/TLS</source>
+      <translation>SSL/TLS</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="696"/>
-        <source>Changed Connection Profile</source>
-        <translation>Измененный профиль соединения</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to enable SSL/TLS connections</source>
+      <translation>Разрешить SSL/TLS соединения</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="696"/>
-        <source>The current profile has unsaved changes. Shall these be saved?</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.py" line="161"/>
-        <source>New Connection Profile</source>
-        <translation>Новый профиль соединения</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>CA signed server certificate</source>
+      <translation>Сертификат подписываемый сервером CA</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="154"/>
-        <source>Enter name for the new Connection Profile:</source>
-        <translation>Введите имя нового профиля соединения:</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Select to use a specific certificate file</source>
+      <translation>Разрешить использовать определенный файл сертификата</translation>
+    </message>
+    <message>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>CA certificate file</source>
+      <translation>Файл сертификата CA</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="187"/>
-        <source>&lt;p&gt;A connection named &lt;b&gt;{0}&lt;/b&gt; exists already. Aborting...&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Уже существует соединение с именем &lt;b&gt;{0}&lt;/b&gt;. Прерывание... &lt;/ p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="187"/>
-        <source>Copy Connection Profile</source>
-        <translation>Копировать профиль соединения</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>CA File:</source>
+      <translation>Файл CA:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="180"/>
-        <source>Enter name for the copied Connection Profile:</source>
-        <translation>Введите имя для скопированного профиля соединения:</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the full path to the CA certificate file</source>
+      <translation>Введите полный путь к файлу сертификата CA</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="210"/>
-        <source>Delete Connection Profile</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.py" line="210"/>
-        <source>&lt;p&gt;Shall the Connection Profile &lt;b&gt;{0}&lt;/b&gt; really be deleted?&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Действительно удалить профиль соединения &lt;b&gt;{0}&lt;/b&gt;?&lt;/p&gt;</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Self signed certificates</source>
+      <translation>Самостоятельно подписываемые сертификаты</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="481"/>
-        <source>Invalid Connection Parameters</source>
-        <translation>Недопустимые параметры соединения</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Client Certificate File:</source>
+      <translation>Файл сертификата клиента:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="481"/>
-        <source>An empty Client ID requires a clean session.</source>
-        <translation>При незаданном ID клиента требуется чистый сеанс.</translation>
-    </message>
-    <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="590"/>
-        <source>Encrypted connection using SSL/TLS has been enabled. However, the broker port is still the default unencrypted port (port 1883). Shall this be changed?</source>
-        <translation>Разрешено соединение с использованием шифрования SSL/TLS. Однако по-прежнему задействован порт брокера без шифрования, по умолчанию порт 1883. Изменить?</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Enter the full path to the client certificate file</source>
+      <translation>Введите полный путь к файлу сертификата клиента</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="604"/>
-        <source>SSL/TLS Disabled</source>
-        <translation>SSL/TLS запрещено</translation>
-    </message>
-    <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="604"/>
-        <source>Encrypted connection using SSL/TLS has been disabled. However, the broker port is still the default encrypted port (port 8883). Shall this be changed?</source>
-        <translation>Соединение с использованием шифрования SSL/TLS запрещено. Однако по-прежнему задействован порт брокера с шифрованием, по умолчанию порт 8883. Изменить?</translation>
+      <location filename="../MqttConnectionProfilesDialog.ui" line="0" />
+      <source>Client Key File:</source>
+      <translation>Файл ключа клиента:</translation>
     </message>
     <message>
-        <location filename="../MqttConnectionProfilesDialog.py" line="672"/>
-        <source>Changed Connection Profiles</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.py" line="672"/>
-        <source>The list of connection profiles has unsaved changes.</source>
-        <translation>В списке профилей соединений имеются несохраненные изменения.</translation>
-    </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>MqttErrorMessage</name>
     <message>
-        <location filename="../MqttClient.py" line="507"/>
-        <source>No error.</source>
-        <translation>Нет ошибки.</translation>
+      <location filename="../MqttClient.py" line="523" />
+      <source>No error.</source>
+      <translation>Нет ошибки.</translation>
+    </message>
+    <message>
+      <location filename="../MqttClient.py" line="527" />
+      <source>Out of memory.</source>
+      <translation>Недостаточно памяти.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="511"/>
-        <source>Out of memory.</source>
-        <translation>Недостаточно памяти.</translation>
+      <location filename="../MqttClient.py" line="531" />
+      <source>A network protocol error occurred when communicating with the broker.</source>
+      <translation>Во время общения с брокером произошла ошибка сетевого протокола.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="515"/>
-        <source>A network protocol error occurred when communicating with the broker.</source>
-        <translation>Во время общения с брокером произошла ошибка сетевого протокола.</translation>
+      <location filename="../MqttClient.py" line="536" />
+      <source>Invalid function arguments provided.</source>
+      <translation>Предоставлены недопустимые аргументы функции.</translation>
+    </message>
+    <message>
+      <location filename="../MqttClient.py" line="540" />
+      <source>The client is not currently connected.</source>
+      <translation>В настоящее время клиент не подключен.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="520"/>
-        <source>Invalid function arguments provided.</source>
-        <translation>Предоставлены недопустимые аргументы функции.</translation>
+      <location filename="../MqttClient.py" line="544" />
+      <source>The connection was refused.</source>
+      <translation>Соединение было отклонено.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="524"/>
-        <source>The client is not currently connected.</source>
-        <translation>В настоящее время клиент не подключен.</translation>
+      <location filename="../MqttClient.py" line="548" />
+      <source>Message not found (internal error).</source>
+      <translation>Сообщение не найдено (внутренняя ошибка).</translation>
+    </message>
+    <message>
+      <location filename="../MqttClient.py" line="552" />
+      <source>The connection was lost.</source>
+      <translation>Соединение было потеряно.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="528"/>
-        <source>The connection was refused.</source>
-        <translation>Соединение было отклонено.</translation>
+      <location filename="../MqttClient.py" line="556" />
+      <source>A TLS error occurred.</source>
+      <translation>Произошла ошибка TLS.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="532"/>
-        <source>Message not found (internal error).</source>
-        <translation>Сообщение не найдено (внутренняя ошибка).</translation>
+      <location filename="../MqttClient.py" line="560" />
+      <source>Payload too large.</source>
+      <translation>Слишком большая полезная нагрузка.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="536"/>
-        <source>The connection was lost.</source>
-        <translation>Соединение было потеряно.</translation>
+      <location filename="../MqttClient.py" line="564" />
+      <source>This feature is not supported.</source>
+      <translation>Эта функция не поддерживается.</translation>
+    </message>
+    <message>
+      <location filename="../MqttClient.py" line="568" />
+      <source>Authorisation failed.</source>
+      <translation>Ошибка авторизации.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="540"/>
-        <source>A TLS error occurred.</source>
-        <translation>Произошла ошибка TLS.</translation>
+      <location filename="../MqttClient.py" line="572" />
+      <source>Access denied by ACL.</source>
+      <translation>Отказано в доступе к ACL.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="544"/>
-        <source>Payload too large.</source>
-        <translation>Слишком большая полезная нагрузка.</translation>
+      <location filename="../MqttClient.py" line="588" />
+      <location filename="../MqttClient.py" line="576" />
+      <source>Unknown error.</source>
+      <translation>Неизвестная ошибка.</translation>
+    </message>
+    <message>
+      <location filename="../MqttClient.py" line="580" />
+      <source>Error defined by errno.</source>
+      <translation>Ошибка, определяемая errno.</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="548"/>
-        <source>This feature is not supported.</source>
-        <translation>Эта функция не поддерживается.</translation>
+      <location filename="../MqttClient.py" line="584" />
+      <source>Message queue full.</source>
+      <translation type="unfinished" />
+    </message>
+  </context>
+  <context>
+    <name>MqttLogLevelString</name>
+    <message>
+      <location filename="../MqttClient.py" line="627" />
+      <location filename="../MqttClient.py" line="609" />
+      <source>Unknown</source>
+      <translation>Unknown</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="552"/>
-        <source>Authorisation failed.</source>
-        <translation>Ошибка авторизации.</translation>
-    </message>
-    <message>
-        <location filename="../MqttClient.py" line="556"/>
-        <source>Access denied by ACL.</source>
-        <translation>Отказано в доступе к ACL.</translation>
-    </message>
-    <message>
-        <location filename="../MqttClient.py" line="568"/>
-        <source>Unknown error.</source>
-        <translation>Неизвестная ошибка.</translation>
+      <location filename="../MqttClient.py" line="614" />
+      <source>Info</source>
+      <translation>Info</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="564"/>
-        <source>Error defined by errno.</source>
-        <translation>Ошибка, определяемая errno.</translation>
-    </message>
-</context>
-<context>
-    <name>MqttLogLevelString</name>
-    <message>
-        <location filename="../MqttClient.py" line="607"/>
-        <source>Unknown</source>
-        <translation>Unknown</translation>
+      <location filename="../MqttClient.py" line="616" />
+      <source>Notice</source>
+      <translation>Notice</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="594"/>
-        <source>Info</source>
-        <translation>Info</translation>
+      <location filename="../MqttClient.py" line="618" />
+      <source>Warning</source>
+      <translation>Warning</translation>
+    </message>
+    <message>
+      <location filename="../MqttClient.py" line="620" />
+      <source>Error</source>
+      <translation>Error</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="596"/>
-        <source>Notice</source>
-        <translation>Notice</translation>
+      <location filename="../MqttClient.py" line="622" />
+      <source>Debug</source>
+      <translation>Debug</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="598"/>
-        <source>Warning</source>
-        <translation>Warning</translation>
+      <location filename="../MqttClient.py" line="624" />
+      <source>Logging Disabled</source>
+      <translation>Ведение журнала запрещено</translation>
+    </message>
+  </context>
+  <context>
+    <name>MqttMonitorPlugin</name>
+    <message>
+      <location filename="../../PluginMqttMonitor.py" line="58" />
+      <source>(package not available)</source>
+      <translation>(пакет недоступен)</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="600"/>
-        <source>Error</source>
-        <translation>Error</translation>
-    </message>
-    <message>
-        <location filename="../MqttClient.py" line="602"/>
-        <source>Debug</source>
-        <translation>Debug</translation>
+      <location filename="../../PluginMqttMonitor.py" line="63" />
+      <source>MQTT</source>
+      <translation>MQTT - клиентская библиотека Python</translation>
     </message>
     <message>
-        <location filename="../MqttClient.py" line="604"/>
-        <source>Logging Disabled</source>
-        <translation>Ведение журнала запрещено</translation>
+      <location filename="../../PluginMqttMonitor.py" line="64" />
+      <source>paho-mqtt</source>
+      <translation>paho-mqtt</translation>
     </message>
-</context>
-<context>
-    <name>MqttMonitorPlugin</name>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="64"/>
-        <source>MQTT</source>
-        <translation>MQTT - клиентская библиотека Python</translation>
+      <location filename="../../PluginMqttMonitor.py" line="122" />
+      <source>The 'paho-mqtt' package is not available.</source>
+      <translation>Пакет 'paho-mqtt' недоступен.</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="65"/>
-        <source>paho-mqtt</source>
-        <translation>paho-mqtt</translation>
+      <location filename="../../PluginMqttMonitor.py" line="139" />
+      <location filename="../../PluginMqttMonitor.py" line="136" />
+      <source>MQTT Monitor</source>
+      <translation>MQTT Monitor</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="123"/>
-        <source>The &apos;paho-mqtt&apos; package is not available.</source>
-        <translation>Пакет &apos;paho-mqtt&apos; недоступен.</translation>
+      <location filename="../../PluginMqttMonitor.py" line="140" />
+      <source>M&amp;QTT Monitor</source>
+      <translation>M&amp;QTT Monitor</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="148"/>
-        <source>MQTT Monitor</source>
-        <translation>MQTT Monitor</translation>
+      <location filename="../../PluginMqttMonitor.py" line="141" />
+      <source>Alt+Shift+Q</source>
+      <translation>Alt+Shift+Q</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="148"/>
-        <source>M&amp;QTT Monitor</source>
-        <translation>M&amp;QTT Monitor</translation>
+      <location filename="../../PluginMqttMonitor.py" line="144" />
+      <source>Switch the input focus to the MQTT Monitor window.</source>
+      <translation>Переключить фокус ввода в окно MQTT Monitor.</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="148"/>
-        <source>Alt+Shift+Q</source>
-        <translation>Alt+Shift+Q</translation>
+      <location filename="../../PluginMqttMonitor.py" line="146" />
+      <source>&lt;b&gt;Activate MQTT Monitor&lt;/b&gt;&lt;p&gt;This switches the input focus to the MQTT Monitor window.&lt;/p&gt;</source>
+      <translation>&lt;b&gt;Активировать MQTT Monitor&lt;/b&gt;&lt;p&gt;Переключение фокуса ввода в окно MQTT Monitor.&lt;/p&gt;</translation>
+    </message>
+  </context>
+  <context>
+    <name>MqttMonitorWidget</name>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;MQTT Monitor&lt;/b&gt;</source>
+      <translation>&lt;b&gt;MQTT Monitor&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="154"/>
-        <source>Switch the input focus to the MQTT Monitor window.</source>
-        <translation>Переключить фокус ввода в окно MQTT Monitor.</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Broker</source>
+      <translation>Брокер</translation>
     </message>
     <message>
-        <location filename="../../PluginMqttMonitor.py" line="156"/>
-        <source>&lt;b&gt;Activate MQTT Monitor&lt;/b&gt;&lt;p&gt;This switches the input focus to the MQTT Monitor window.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Активировать MQTT Monitor&lt;/b&gt;&lt;p&gt;Переключение фокуса ввода в окно MQTT Monitor.&lt;/p&gt;</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="../../PluginMqttMonitor.py" line="59"/>
-        <source>(package not available)</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>
-</context>
-<context>
-    <name>MqttMonitorWidget</name>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="28"/>
-        <source>&lt;b&gt;MQTT Monitor&lt;/b&gt;</source>
-        <translation>&lt;b&gt;MQTT Monitor&lt;/b&gt;</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="40"/>
-        <source>Broker</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="46"/>
-        <source>Press to switch the mode between profiles and direct connection</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="64"/>
-        <source>Select the profile to be used to connect to 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="92"/>
-        <source>Enter the host name of the broker</source>
-        <translation>Введите имя хоста брокера</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Pub/Sub</source>
+      <translation>Подписки/Публикации</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="102"/>
-        <source>Enter the broker port to connect to</source>
-        <translation>Задайте порт брокера для соединения</translation>
+      <location filename="../MqttMonitorWidget.py" line="765" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Subscribe</source>
+      <translation>Подписаться</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="120"/>
-        <source>Press to open a dialog to enter connection options</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="127"/>
-        <source>Press to connect to/disconnect from the broker</source>
-        <translation>Подключиться к брокеру/отключиться от брокера</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Enter the topic</source>
+      <translation>Введите тему</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="151"/>
-        <source>Pub/Sub</source>
-        <translation>Подписки/Публикации</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>QoS:</source>
+      <translation>QoS:</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="766"/>
-        <source>Subscribe</source>
-        <translation>Подписаться</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="260"/>
-        <source>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="173"/>
-        <source>Enter the topic</source>
-        <translation>Введите тему</translation>
+      <location filename="../MqttMonitorWidget.py" line="761" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Unsubscribe</source>
+      <translation>Отписаться</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="283"/>
-        <source>QoS:</source>
-        <translation>QoS:</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Select the topic to unsubscribe</source>
+      <translation>Выберите тему для отписки</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="290"/>
-        <source>Enter the desired QoS value</source>
-        <translation>Задайте желаемое значение уровня обслуживания QoS</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to unsubscribe the selected topic</source>
+      <translation>Отписаться от выбранной темы</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="200"/>
-        <source>Press to subscribe to the given topic</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.py" line="762"/>
-        <source>Unsubscribe</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="232"/>
-        <source>Select the topic to unsubscribe</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="239"/>
-        <source>Press to unsubscribe the selected topic</source>
-        <translation>Отписаться от выбранной темы</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Retain</source>
+      <translation>Удерживать</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="383"/>
-        <source>Publish</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="273"/>
-        <source>Enter the topic to publish to</source>
-        <translation>Введите тему для публикации в нее</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Payload File:</source>
+      <translation>Файл полезной нагрузки:</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="303"/>
-        <source>Select to retain the published message</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="306"/>
-        <source>Retain</source>
-        <translation>Удерживать</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to clear the publish data</source>
+      <translation>Очистить данные публикации</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="321"/>
-        <source>Enter the string data to be sent</source>
-        <translation>Введите строку данных для отправки</translation>
+      <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="333"/>
-        <source>Payload File:</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="349"/>
-        <source>Enter the full path to a file containing the message payload</source>
-        <translation>Введите полный путь к файлу, содержащему полезную нагрузку сообщения</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Clear when sent</source>
+      <translation>Очищать после отправки</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="360"/>
-        <source>Press to clear the publish data</source>
-        <translation>Очистить данные публикации</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Messages</source>
+      <translation>Сообщения</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1355"/>
-        <source>Clear</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="392"/>
-        <source>Select to clear the publish data after the message was published</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="395"/>
-        <source>Clear when sent</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="419"/>
-        <source>Messages</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="453"/>
-        <source>Press to save the received messages to a file</source>
-        <translation>Сохранить полученные сообщения в файл</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Follow received messages</source>
+      <translation>Следовать за получаемыми сообщениями</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1329"/>
-        <source>Save</source>
-        <translation>Сохранить</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Status</source>
+      <translation>Статус</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="479"/>
-        <source>Press to clear the list of received messages</source>
-        <translation>Очистить список полученных сообщений</translation>
+      <location filename="../MqttMonitorWidget.py" line="767" />
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Press to activate the status display</source>
+      <translation>Активировать отображение статуса</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="491"/>
-        <source>Select to scroll to the most recently received message</source>
-        <translation>Разрешить прокручивать список до последнего полученного сообщения</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Broker&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Брокер&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="494"/>
-        <source>Follow received messages</source>
-        <translation>Следовать за получаемыми сообщениями</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Version</source>
+      <translation>Версия</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="505"/>
-        <source>Status</source>
-        <translation>Статус</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.py" line="767"/>
-        <source>Press to activate the status display</source>
-        <translation>Активировать отображение статуса</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="561"/>
-        <source>&lt;b&gt;Broker&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Брокер&lt;/b&gt;</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="583"/>
-        <source>Version</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="1052"/>
-        <source>-</source>
-        <translation>-</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Timestamp</source>
+      <translation>Метки времени</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="603"/>
-        <source>Timestamp</source>
-        <translation>Метки времени</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Uptime</source>
+      <translation>Время работы</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="623"/>
-        <source>Uptime</source>
-        <translation>Время работы</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Subscriptions</source>
+      <translation>Подписки</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="643"/>
-        <source>Subscriptions</source>
-        <translation>Подписки</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Clients&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Клиенты&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="665"/>
-        <source>&lt;b&gt;Clients&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Клиенты&lt;/b&gt;</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Connected</source>
+      <translation>Подключено</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="687"/>
-        <source>Connected</source>
-        <translation>Подключено</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Disconnected</source>
+      <translation>Отключено</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="707"/>
-        <source>Disconnected</source>
-        <translation>Отключено</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Expired</source>
+      <translation>Завершено</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="727"/>
-        <source>Expired</source>
-        <translation>Завершено</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Maximum</source>
+      <translation>Максимум</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="747"/>
-        <source>Maximum</source>
-        <translation>Максимум</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Total</source>
+      <translation>Всего</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="767"/>
-        <source>Total</source>
-        <translation>Всего</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Messages&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Сообщения&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="789"/>
-        <source>&lt;b&gt;Messages&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Сообщения&lt;/b&gt;</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="935"/>
-        <source>Sent</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="955"/>
-        <source>Received</source>
-        <translation>Получено</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Stored</source>
+      <translation>Сохранено</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="851"/>
-        <source>Stored</source>
-        <translation>Сохранено</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Inflight</source>
+      <translation>В полете</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="871"/>
-        <source>Inflight</source>
-        <translation>В полете</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Retained</source>
+      <translation>Удержано</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="891"/>
-        <source>Retained</source>
-        <translation>Удержано</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;PUBLISH Messages&lt;/b&gt;</source>
+      <translation>&lt;b&gt;PUBLISH сообщения&lt;/b&gt;</translation>
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Dropped</source>
+      <translation>Сброшено</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="913"/>
-        <source>&lt;b&gt;PUBLISH Messages&lt;/b&gt;</source>
-        <translation>&lt;b&gt;PUBLISH сообщения&lt;/b&gt;</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Traffic&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Трафик&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="975"/>
-        <source>Dropped</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="997"/>
-        <source>&lt;b&gt;Traffic&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Трафик&lt;/b&gt;</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="1083"/>
-        <source>Bytes Sent</source>
-        <translation>Байт отправлено</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>&lt;b&gt;Load&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Нагрузка&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1103"/>
-        <source>Bytes Received</source>
-        <translation>Байт принято</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="1061"/>
-        <source>&lt;b&gt;Load&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Нагрузка&lt;/b&gt;</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.ui" line="1256"/>
-        <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="1123"/>
-        <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="1143"/>
-        <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="1163"/>
-        <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="1183"/>
-        <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="1203"/>
-        <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="1223"/>
-        <source>Connections</source>
-        <translation>Соединения</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Connections</source>
+      <translation>Соединения</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1243"/>
-        <source>Sockets</source>
-        <translation>Сокеты</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Sockets</source>
+      <translation>Сокеты</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1268"/>
-        <source>Log</source>
-        <translation>Журнал</translation>
+      <location filename="../MqttMonitorWidget.ui" line="0" />
+      <source>Log</source>
+      <translation>Журнал</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.ui" line="1276"/>
-        <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="1289"/>
-        <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="1326"/>
-        <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="1352"/>
-        <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="1364"/>
-        <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="1367"/>
-        <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="65"/>
-        <source>All Files (*)</source>
-        <translation>Все файлы (*)</translation>
+      <location filename="../MqttMonitorWidget.py" line="68" />
+      <source>All Files (*)</source>
+      <translation>Все файлы (*)</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="243"/>
-        <source>Connection timed out</source>
-        <translation>Время ожидания соединения истекло</translation>
+      <location filename="../MqttMonitorWidget.py" line="249" />
+      <source>Connection timed out</source>
+      <translation>Время ожидания соединения истекло</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="262"/>
-        <source>Connection to Broker shut down cleanly.</source>
-        <translation>Соединение с брокером закрыто. Очистка произведена.</translation>
+      <location filename="../MqttMonitorWidget.py" line="268" />
+      <source>Connection to Broker shut down cleanly.</source>
+      <translation>Соединение с брокером закрыто. Очистка произведена.</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="317"/>
-        <source>{0}: {1}</source>
-        <translation>{0}: {1}</translation>
+      <location filename="../MqttMonitorWidget.py" line="321" />
+      <source>{0}: {1}</source>
+      <translation>{0}: {1}</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="512"/>
-        <source>Subscribe to Topic</source>
-        <translation>Подписаться на тему</translation>
+      <location filename="../MqttMonitorWidget.py" line="516" />
+      <source>Subscribe to Topic</source>
+      <translation>Подписаться на тему</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="512"/>
-        <source>Subscriptions to the Status topic &apos;$SYS&apos; shall be done on the &apos;Status&apos; tab.</source>
-        <translation>Подписки на тему статуса «$ SYS» должны быть сделаны на вкладке «Статус».</translation>
+      <location filename="../MqttMonitorWidget.py" line="517" />
+      <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="571"/>
-        <source>Read Payload from File</source>
-        <translation>Чтение полезной нагрузки из файла</translation>
+      <location filename="../MqttMonitorWidget.py" line="574" />
+      <source>Read Payload from File</source>
+      <translation>Чтение полезной нагрузки из файла</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="571"/>
-        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be read. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Не удалось прочитать файл &lt;b&gt;{0}&lt;/b&gt;. Отмена...&lt;/p&gt;&lt;p&gt;Причина: {1}&lt;/p&gt;</translation>
+      <location filename="../MqttMonitorWidget.py" line="575" />
+      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be read. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+      <translation>&lt;p&gt;Не удалось прочитать файл &lt;b&gt;{0}&lt;/b&gt;. Отмена...&lt;/p&gt;&lt;p&gt;Причина: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="684"/>
-        <source>Save Messages</source>
-        <translation>Сохранить сообщения</translation>
+      <location filename="../MqttMonitorWidget.py" line="686" />
+      <location filename="../MqttMonitorWidget.py" line="672" />
+      <location filename="../MqttMonitorWidget.py" line="654" />
+      <source>Save Messages</source>
+      <translation>Сохранить сообщения</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="651"/>
-        <source>Messages Files (*.txt);;All Files (*)</source>
-        <translation>Файлы сообщений (*.txt);;Все файлы (*)</translation>
+      <location filename="../MqttMonitorWidget.py" line="656" />
+      <source>Messages Files (*.txt);;All Files (*)</source>
+      <translation>Файлы сообщений (*.txt);;Все файлы (*)</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="726"/>
-        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Файл &lt;b&gt;{0}&lt;/b&gt; уже существует. Переписать его?&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../MqttMonitorWidget.py" line="741"/>
-        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Файл &lt;b&gt;{0}&lt;/b&gt; не может быть записан.&lt;/p&gt;&lt;p&gt;Причина: {1}&lt;/p&gt;</translation>
+      <location filename="../MqttMonitorWidget.py" line="729" />
+      <location filename="../MqttMonitorWidget.py" line="673" />
+      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
+      <translation>&lt;p&gt;Файл &lt;b&gt;{0}&lt;/b&gt; уже существует. Переписать его?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="741"/>
-        <source>Save Log Messages</source>
-        <translation>Сохранить сообщения журнала</translation>
+      <location filename="../MqttMonitorWidget.py" line="743" />
+      <location filename="../MqttMonitorWidget.py" line="687" />
+      <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
+      <translation>&lt;p&gt;Файл &lt;b&gt;{0}&lt;/b&gt; не может быть записан.&lt;/p&gt;&lt;p&gt;Причина: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="708"/>
-        <source>Log Files (*.log);;All Files (*)</source>
-        <translation>Файлы журнала (*.log);;Все файлы (*)</translation>
+      <location filename="../MqttMonitorWidget.py" line="742" />
+      <location filename="../MqttMonitorWidget.py" line="728" />
+      <location filename="../MqttMonitorWidget.py" line="710" />
+      <source>Save Log Messages</source>
+      <translation>Сохранить сообщения журнала</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="763"/>
-        <source>Press to deactivate the status display</source>
-        <translation>Деактивировать отображение статуса</translation>
+      <location filename="../MqttMonitorWidget.py" line="712" />
+      <source>Log Files (*.log);;All Files (*)</source>
+      <translation>Файлы журнала (*.log);;Все файлы (*)</translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="902"/>
-        <source>QoS: {0}
+      <location filename="../MqttMonitorWidget.py" line="763" />
+      <source>Press to deactivate the status display</source>
+      <translation>Деактивировать отображение статуса</translation>
+    </message>
+    <message>
+      <location filename="../MqttMonitorWidget.py" line="895" />
+      <source>QoS: {0}
 </source>
-        <translation>QoS: {0}
+      <translation>QoS: {0}
 </translation>
     </message>
     <message>
-        <location filename="../MqttMonitorWidget.py" line="1059"/>
-        <source>Connecting to {0}:{1} ...</source>
-        <translation>Соединение с {0}:{1} ...</translation>
+      <location filename="../MqttMonitorWidget.py" line="1048" />
+      <location filename="../MqttMonitorWidget.py" line="1022" />
+      <source>Connecting to {0}:{1} ...</source>
+      <translation>Соединение с {0}:{1} ...</translation>
     </message>
-</context>
+  </context>
 </TS>
diff -r 3cb08e5db764 -r 2fb5c08019fd PluginMqttMonitor.e4p
--- a/PluginMqttMonitor.e4p	Sun May 30 17:40:40 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,533 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE Project SYSTEM "Project-5.1.dtd">
-<!-- eric project file for project PluginMqttMonitor -->
-<!-- Copyright (C) 2020 Detlev Offenbach, detlev@die-offenbachs.de -->
-<Project version="5.1">
-  <Language>en</Language>
-  <Hash>8b864e3e4a3495e242eae3cb3ef4dc8522bf6ce7</Hash>
-  <ProgLanguage mixed="0">Python3</ProgLanguage>
-  <ProjectType>E6Plugin</ProjectType>
-  <Description>Plug-in implementing a tool to connect to a MQTT broker, subscribe to topics, present received messages and publish messages.
-
-Note: The paho-mqtt Python package must be installed. </Description>
-  <Version>1.x</Version>
-  <Author>Detlev Offenbach</Author>
-  <Email>detlev@die-offenbachs.de</Email>
-  <TranslationPattern>MqttMonitor/i18n/mqttmonitor_%language%.ts</TranslationPattern>
-  <Eol index="1"/>
-  <Sources>
-    <Source>MqttMonitor/MqttClient.py</Source>
-    <Source>MqttMonitor/MqttConnectionOptionsDialog.py</Source>
-    <Source>MqttMonitor/MqttConnectionProfilesDialog.py</Source>
-    <Source>MqttMonitor/MqttMonitorWidget.py</Source>
-    <Source>MqttMonitor/__init__.py</Source>
-    <Source>PluginMqttMonitor.py</Source>
-    <Source>__init__.py</Source>
-  </Sources>
-  <Forms>
-    <Form>MqttMonitor/MqttConnectionOptionsDialog.ui</Form>
-    <Form>MqttMonitor/MqttConnectionProfilesDialog.ui</Form>
-    <Form>MqttMonitor/MqttMonitorWidget.ui</Form>
-  </Forms>
-  <Translations>
-    <Translation>MqttMonitor/i18n/mqttmonitor_de.qm</Translation>
-    <Translation>MqttMonitor/i18n/mqttmonitor_de.ts</Translation>
-    <Translation>MqttMonitor/i18n/mqttmonitor_empty.ts</Translation>
-    <Translation>MqttMonitor/i18n/mqttmonitor_en.qm</Translation>
-    <Translation>MqttMonitor/i18n/mqttmonitor_en.ts</Translation>
-    <Translation>MqttMonitor/i18n/mqttmonitor_es.qm</Translation>
-    <Translation>MqttMonitor/i18n/mqttmonitor_es.ts</Translation>
-    <Translation>MqttMonitor/i18n/mqttmonitor_ru.qm</Translation>
-    <Translation>MqttMonitor/i18n/mqttmonitor_ru.ts</Translation>
-  </Translations>
-  <Others>
-    <Other>.hgignore</Other>
-    <Other>ChangeLog</Other>
-    <Other>MqttMonitor/Documentation/LICENSE.GPL3</Other>
-    <Other>MqttMonitor/Documentation/source</Other>
-    <Other>MqttMonitor/icons/connectionOptions-dark.svg</Other>
-    <Other>MqttMonitor/icons/connectionOptions-light.svg</Other>
-    <Other>MqttMonitor/icons/mqtt22-dark.svg</Other>
-    <Other>MqttMonitor/icons/mqtt22-light.svg</Other>
-    <Other>MqttMonitor/icons/mqtt48-dark.svg</Other>
-    <Other>MqttMonitor/icons/mqtt48-light.svg</Other>
-    <Other>MqttMonitor/icons/profiles-dark.svg</Other>
-    <Other>MqttMonitor/icons/profiles-light.svg</Other>
-    <Other>MqttMonitor/icons/quickopen-dark.svg</Other>
-    <Other>MqttMonitor/icons/quickopen-light.svg</Other>
-    <Other>PKGLIST</Other>
-    <Other>PluginMqttMonitor.e4p</Other>
-    <Other>PluginMqttMonitor.zip</Other>
-  </Others>
-  <MainScript>PluginMqttMonitor.py</MainScript>
-  <Vcs>
-    <VcsType>Mercurial</VcsType>
-    <VcsOptions>
-      <dict>
-        <key>
-          <string>add</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>checkout</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>commit</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>diff</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>export</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>global</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>history</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>log</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>remove</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>status</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>tag</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>update</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-      </dict>
-    </VcsOptions>
-  </Vcs>
-  <FiletypeAssociations>
-    <FiletypeAssociation pattern="*.e4p" type="OTHERS"/>
-    <FiletypeAssociation pattern="*.idl" type="INTERFACES"/>
-    <FiletypeAssociation pattern="*.md" type="OTHERS"/>
-    <FiletypeAssociation pattern="*.proto" type="PROTOCOLS"/>
-    <FiletypeAssociation pattern="*.py" type="SOURCES"/>
-    <FiletypeAssociation pattern="*.py3" type="SOURCES"/>
-    <FiletypeAssociation pattern="*.pyw" type="SOURCES"/>
-    <FiletypeAssociation pattern="*.pyw3" type="SOURCES"/>
-    <FiletypeAssociation pattern="*.qm" type="TRANSLATIONS"/>
-    <FiletypeAssociation pattern="*.qrc" type="RESOURCES"/>
-    <FiletypeAssociation pattern="*.rst" type="OTHERS"/>
-    <FiletypeAssociation pattern="*.ts" type="TRANSLATIONS"/>
-    <FiletypeAssociation pattern="*.txt" type="OTHERS"/>
-    <FiletypeAssociation pattern="*.ui" type="FORMS"/>
-    <FiletypeAssociation pattern="GNUmakefile" type="OTHERS"/>
-    <FiletypeAssociation pattern="Makefile" type="OTHERS"/>
-    <FiletypeAssociation pattern="README" type="OTHERS"/>
-    <FiletypeAssociation pattern="README.*" type="OTHERS"/>
-    <FiletypeAssociation pattern="Ui_*.py" type="__IGNORE__"/>
-    <FiletypeAssociation pattern="makefile" type="OTHERS"/>
-  </FiletypeAssociations>
-  <Documentation>
-    <DocumentationParams>
-      <dict>
-        <key>
-          <string>ERIC4DOC</string>
-        </key>
-        <value>
-          <dict>
-            <key>
-              <string>cssFile</string>
-            </key>
-            <value>
-              <string>%PYTHON%/eric6/CSSs/default.css</string>
-            </value>
-            <key>
-              <string>ignoreDirectories</string>
-            </key>
-            <value>
-              <list>
-                <string>.hg</string>
-                <string>.eric6project</string>
-                <string>.ropeproject</string>
-              </list>
-            </value>
-            <key>
-              <string>ignoreFilePatterns</string>
-            </key>
-            <value>
-              <list>
-                <string>Ui_*.py</string>
-              </list>
-            </value>
-            <key>
-              <string>outputDirectory</string>
-            </key>
-            <value>
-              <string>MqttMonitor/Documentation/source</string>
-            </value>
-            <key>
-              <string>qtHelpEnabled</string>
-            </key>
-            <value>
-              <bool>False</bool>
-            </value>
-            <key>
-              <string>useRecursion</string>
-            </key>
-            <value>
-              <bool>True</bool>
-            </value>
-          </dict>
-        </value>
-      </dict>
-    </DocumentationParams>
-  </Documentation>
-  <Checkers>
-    <CheckersParams>
-      <dict>
-        <key>
-          <string>Pep8Checker</string>
-        </key>
-        <value>
-          <dict>
-            <key>
-              <string>AnnotationsChecker</string>
-            </key>
-            <value>
-              <dict>
-                <key>
-                  <string>MaximumComplexity</string>
-                </key>
-                <value>
-                  <int>3</int>
-                </value>
-                <key>
-                  <string>MinimumCoverage</string>
-                </key>
-                <value>
-                  <int>75</int>
-                </value>
-              </dict>
-            </value>
-            <key>
-              <string>BlankLines</string>
-            </key>
-            <value>
-              <tuple>
-                <int>2</int>
-                <int>1</int>
-              </tuple>
-            </value>
-            <key>
-              <string>BuiltinsChecker</string>
-            </key>
-            <value>
-              <dict>
-                <key>
-                  <string>bytes</string>
-                </key>
-                <value>
-                  <list>
-                    <string>unicode</string>
-                  </list>
-                </value>
-                <key>
-                  <string>chr</string>
-                </key>
-                <value>
-                  <list>
-                    <string>unichr</string>
-                  </list>
-                </value>
-                <key>
-                  <string>str</string>
-                </key>
-                <value>
-                  <list>
-                    <string>unicode</string>
-                  </list>
-                </value>
-              </dict>
-            </value>
-            <key>
-              <string>CommentedCodeChecker</string>
-            </key>
-            <value>
-              <dict>
-                <key>
-                  <string>Aggressive</string>
-                </key>
-                <value>
-                  <bool>False</bool>
-                </value>
-              </dict>
-            </value>
-            <key>
-              <string>CopyrightAuthor</string>
-            </key>
-            <value>
-              <string></string>
-            </value>
-            <key>
-              <string>CopyrightMinFileSize</string>
-            </key>
-            <value>
-              <int>0</int>
-            </value>
-            <key>
-              <string>DocstringType</string>
-            </key>
-            <value>
-              <string>eric</string>
-            </value>
-            <key>
-              <string>EnabledCheckerCategories</string>
-            </key>
-            <value>
-              <string>C, D, E, M, N, S, W</string>
-            </value>
-            <key>
-              <string>ExcludeFiles</string>
-            </key>
-            <value>
-              <string>*/Ui_*.py, */*_rc.py</string>
-            </value>
-            <key>
-              <string>ExcludeMessages</string>
-            </key>
-            <value>
-              <string>C101,E265,E266,E305,E402,M201,M811,N802,N803,N807,N808,N821,W293,W504</string>
-            </value>
-            <key>
-              <string>FixCodes</string>
-            </key>
-            <value>
-              <string></string>
-            </value>
-            <key>
-              <string>FixIssues</string>
-            </key>
-            <value>
-              <bool>False</bool>
-            </value>
-            <key>
-              <string>FutureChecker</string>
-            </key>
-            <value>
-              <string></string>
-            </value>
-            <key>
-              <string>HangClosing</string>
-            </key>
-            <value>
-              <bool>False</bool>
-            </value>
-            <key>
-              <string>IncludeMessages</string>
-            </key>
-            <value>
-              <string></string>
-            </value>
-            <key>
-              <string>LineComplexity</string>
-            </key>
-            <value>
-              <int>20</int>
-            </value>
-            <key>
-              <string>LineComplexityScore</string>
-            </key>
-            <value>
-              <int>10</int>
-            </value>
-            <key>
-              <string>MaxCodeComplexity</string>
-            </key>
-            <value>
-              <int>10</int>
-            </value>
-            <key>
-              <string>MaxDocLineLength</string>
-            </key>
-            <value>
-              <int>79</int>
-            </value>
-            <key>
-              <string>MaxLineLength</string>
-            </key>
-            <value>
-              <int>79</int>
-            </value>
-            <key>
-              <string>NoFixCodes</string>
-            </key>
-            <value>
-              <string>E501</string>
-            </value>
-            <key>
-              <string>RepeatMessages</string>
-            </key>
-            <value>
-              <bool>True</bool>
-            </value>
-            <key>
-              <string>SecurityChecker</string>
-            </key>
-            <value>
-              <dict>
-                <key>
-                  <string>CheckTypedException</string>
-                </key>
-                <value>
-                  <bool>False</bool>
-                </value>
-                <key>
-                  <string>HardcodedTmpDirectories</string>
-                </key>
-                <value>
-                  <list>
-                    <string>/tmp</string>
-                    <string>/var/tmp</string>
-                    <string>/dev/shm</string>
-                    <string>~/tmp</string>
-                  </list>
-                </value>
-                <key>
-                  <string>InsecureHashes</string>
-                </key>
-                <value>
-                  <list>
-                    <string>md4</string>
-                    <string>md5</string>
-                    <string>sha</string>
-                    <string>sha1</string>
-                  </list>
-                </value>
-                <key>
-                  <string>InsecureSslProtocolVersions</string>
-                </key>
-                <value>
-                  <list>
-                    <string>PROTOCOL_SSLv2</string>
-                    <string>SSLv2_METHOD</string>
-                    <string>SSLv23_METHOD</string>
-                    <string>PROTOCOL_SSLv3</string>
-                    <string>PROTOCOL_TLSv1</string>
-                    <string>SSLv3_METHOD</string>
-                    <string>TLSv1_METHOD</string>
-                  </list>
-                </value>
-                <key>
-                  <string>WeakKeySizeDsaHigh</string>
-                </key>
-                <value>
-                  <string>1024</string>
-                </value>
-                <key>
-                  <string>WeakKeySizeDsaMedium</string>
-                </key>
-                <value>
-                  <string>2048</string>
-                </value>
-                <key>
-                  <string>WeakKeySizeEcHigh</string>
-                </key>
-                <value>
-                  <string>160</string>
-                </value>
-                <key>
-                  <string>WeakKeySizeEcMedium</string>
-                </key>
-                <value>
-                  <string>224</string>
-                </value>
-                <key>
-                  <string>WeakKeySizeRsaHigh</string>
-                </key>
-                <value>
-                  <string>1024</string>
-                </value>
-                <key>
-                  <string>WeakKeySizeRsaMedium</string>
-                </key>
-                <value>
-                  <string>2048</string>
-                </value>
-              </dict>
-            </value>
-            <key>
-              <string>ShowIgnored</string>
-            </key>
-            <value>
-              <bool>False</bool>
-            </value>
-            <key>
-              <string>ValidEncodings</string>
-            </key>
-            <value>
-              <string>latin-1, utf-8</string>
-            </value>
-          </dict>
-        </value>
-      </dict>
-    </CheckersParams>
-  </Checkers>
-</Project>
diff -r 3cb08e5db764 -r 2fb5c08019fd PluginMqttMonitor.epj
--- a/PluginMqttMonitor.epj	Sun May 30 17:40:40 2021 +0200
+++ b/PluginMqttMonitor.epj	Sun May 30 18:21:40 2021 +0200
@@ -113,11 +113,12 @@
     "DOCSTRING": "",
     "DOCUMENTATIONPARMS": {
       "ERIC4DOC": {
-        "cssFile": "%PYTHON%/eric6/CSSs/default.css",
+        "cssFile": "%PYTHON%/eric7/CSSs/default.css",
         "ignoreDirectories": [
           ".hg",
           ".eric6project",
-          ".ropeproject"
+          ".ropeproject",
+          ".eric7project"
         ],
         "ignoreFilePatterns": [
           "Ui_*.py"
@@ -130,7 +131,7 @@
     "EMAIL": "detlev@die-offenbachs.de",
     "EOL": 1,
     "FILETYPES": {
-      "*.e4p": "OTHERS",
+      "*.epj": "OTHERS",
       "*.idl": "INTERFACES",
       "*.md": "OTHERS",
       "*.proto": "PROTOCOLS",
@@ -139,7 +140,6 @@
       "*.pyw": "SOURCES",
       "*.pyw3": "SOURCES",
       "*.qm": "TRANSLATIONS",
-      "*.qrc": "RESOURCES",
       "*.rst": "OTHERS",
       "*.ts": "TRANSLATIONS",
       "*.txt": "OTHERS",
@@ -190,14 +190,13 @@
       "MqttMonitor/icons/quickopen-dark.svg",
       "MqttMonitor/icons/quickopen-light.svg",
       "PKGLIST",
-      "PluginMqttMonitor.e4p",
       "PluginMqttMonitor.zip",
       "PluginMqttMonitor.epj"
     ],
     "OTHERTOOLSPARMS": {},
     "PACKAGERSPARMS": {},
     "PROGLANGUAGE": "Python3",
-    "PROJECTTYPE": "E6Plugin",
+    "PROJECTTYPE": "E7Plugin",
     "PROJECTTYPESPECIFICDATA": {},
     "PROTOCOLS": [],
     "RCCPARAMS": {
@@ -278,6 +277,6 @@
       ]
     },
     "VCSOTHERDATA": {},
-    "VERSION": "1.x"
+    "VERSION": ""
   }
 }
\ No newline at end of file
diff -r 3cb08e5db764 -r 2fb5c08019fd PluginMqttMonitor.py
--- a/PluginMqttMonitor.py	Sun May 30 17:40:40 2021 +0200
+++ b/PluginMqttMonitor.py	Sun May 30 18:21:40 2021 +0200
@@ -10,11 +10,11 @@
 import os
 import json
 
-from PyQt5.QtCore import Qt, QObject, QTranslator, QCoreApplication
-from PyQt5.QtGui import QKeySequence
+from PyQt6.QtCore import Qt, QObject, QTranslator, QCoreApplication
+from PyQt6.QtGui import QKeySequence
 
-from E5Gui.E5Application import e5App
-from E5Gui.E5Action import E5Action
+from EricWidgets.EricApplication import ericApp
+from EricGui.EricAction import EricAction
 
 import UI.PixmapCache
 import Preferences
@@ -24,7 +24,7 @@
 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
 autoactivate = True
 deactivateable = True
-version = "3.1.0"
+version = "1.0.0"
 className = "MqttMonitorPlugin"
 packageName = "MqttMonitor"
 shortDescription = "Plug-in implementing a tool to connect to a MQTT broker"
@@ -33,9 +33,8 @@
     """ to topics, present received messages and publish messages."""
     """ It displays broker statistics (the $SYS/# topic tree) and"""
     """ log messages of the underlying paho-mqtt client. This tool"""
-    """ support unencrypted connections (port 1883) as well as encrypted"""
-    """ SSL/TLS connections (port 8883)\n\n"""
-    """Note: The paho-mqtt Python package must be installed."""
+    """ supports unencrypted connections (port 1883) as well as encrypted"""
+    """ SSL/TLS connections (port 8883)."""
 )
 needsRestart = False
 pyqtApi = 2
@@ -112,7 +111,7 @@
         Public method to activate this plug-in.
         
         @return tuple of None and activation status
-        @rtype bool
+        @rtype tuple of (None, bool)
         """
         global error
         error = ""     # clear previous error
@@ -125,17 +124,10 @@
         
         from MqttMonitor.MqttMonitorWidget import MqttMonitorWidget
         
-        try:
-            usesDarkPalette = e5App().usesDarkPalette()
-        except AttributeError:
-            # eric6 < 20.4
-            from PyQt5.QtGui import QPalette
-            palette = e5App().palette()
-            lightness = palette.color(QPalette.Window).lightness()
-            usesDarkPalette = lightness <= 128
+        usesDarkPalette = ericApp().usesDarkPalette()
         iconSuffix = "dark" if usesDarkPalette else "light"
         
-        self.__widget = MqttMonitorWidget(self, iconSuffix)
+        self.__widget = MqttMonitorWidget(self, usesDarkPalette)
         self.__ui.addSideWidget(
             self.__ui.RightSide, self.__widget,
             UI.PixmapCache.getIcon(
@@ -143,7 +135,7 @@
                              "mqtt22-{0}".format(iconSuffix))),
             self.tr("MQTT Monitor"))
         
-        self.__activateAct = E5Action(
+        self.__activateAct = EricAction(
             self.tr('MQTT Monitor'),
             self.tr('M&QTT Monitor'),
             QKeySequence(self.tr("Alt+Shift+Q")),
@@ -158,7 +150,7 @@
         ))
         self.__activateAct.triggered.connect(self.__activateWidget)
         
-        self.__ui.addE5Actions([self.__activateAct], 'ui')
+        self.__ui.addEricActions([self.__activateAct], 'ui')
         menu = self.__ui.getMenu("subwindow")
         menu.addAction(self.__activateAct)
         
@@ -170,7 +162,7 @@
         """
         menu = self.__ui.getMenu("subwindow")
         menu.removeAction(self.__activateAct)
-        self.__ui.removeE5Actions([self.__activateAct], 'ui')
+        self.__ui.removeEricActions([self.__activateAct], 'ui')
         self.__ui.removeSideWidget(self.__widget)
         
         self.__initialize()
@@ -189,7 +181,7 @@
                 loaded = translator.load(translation, locale_dir)
                 if loaded:
                     self.__translator = translator
-                    e5App().installTranslator(self.__translator)
+                    ericApp().installTranslator(self.__translator)
                 else:
                     print("Warning: translation file '{0}' could not be"
                           " loaded.".format(translation))
@@ -209,14 +201,16 @@
             self.__ui.rightSidebar.setCurrentWidget(self.__widget)
         else:
             self.__widget.show()
-        self.__widget.setFocus(Qt.ActiveWindowFocusReason)
+        self.__widget.setFocus(Qt.FocusReason.ActiveWindowFocusReason)
     
     def getPreferences(self, key):
         """
         Public method to retrieve the various settings.
         
-        @param key the key of the value to get
-        @return the requested setting
+        @param key key of the setting
+        @type str
+        @return value of the requested setting
+        @rtype Any
         """
         if key in ["RecentBrokersWithPort", "BrokerProfiles"]:
             return json.loads(Preferences.Prefs.settings.value(
@@ -229,8 +223,10 @@
         """
         Public method to store the various settings.
         
-        @param key the key of the setting to be set (string)
-        @param value the value to be set
+        @param key key of the setting to be set
+        @type str
+        @param value value to be set
+        @type Any
         """
         if key in ["RecentBrokersWithPort", "BrokerProfiles"]:
             Preferences.Prefs.settings.setValue(
diff -r 3cb08e5db764 -r 2fb5c08019fd PluginMqttMonitor.zip
Binary file PluginMqttMonitor.zip has changed

eric ide

mercurial