--- a/MqttMonitor/i18n/mqttmonitor_ru.ts Sat Jul 24 16:12:05 2021 +0200 +++ b/MqttMonitor/i18n/mqttmonitor_ru.ts Sat Jul 24 16:50:10 2021 +0200 @@ -4,37 +4,37 @@ <context> <name>MqttConnackMessage</name> <message> - <location filename="../MqttClient.py" line="483" /> + <location filename="../MqttClient.py" line="647" /> <source>Connection Accepted.</source> <translation>Соединение установлено.</translation> </message> <message> - <location filename="../MqttClient.py" line="487" /> + <location filename="../MqttClient.py" line="651" /> <source>Connection Refused: unacceptable protocol version.</source> <translation>Соединение отклонено: неприемлемая версия протокола.</translation> </message> <message> - <location filename="../MqttClient.py" line="491" /> + <location filename="../MqttClient.py" line="655" /> <source>Connection Refused: identifier rejected.</source> <translation>Соединение отклонено: идентификатор отклонен.</translation> </message> <message> - <location filename="../MqttClient.py" line="495" /> + <location filename="../MqttClient.py" line="659" /> <source>Connection Refused: broker unavailable.</source> <translation>Соединение отклонено: брокер недоступен.</translation> </message> <message> - <location filename="../MqttClient.py" line="499" /> + <location filename="../MqttClient.py" line="663" /> <source>Connection Refused: bad user name or password.</source> <translation>Соединение отклонено: неправильное имя пользователя или пароль.</translation> </message> <message> - <location filename="../MqttClient.py" line="503" /> + <location filename="../MqttClient.py" line="667" /> <source>Connection Refused: not authorised.</source> <translation>Соединение отклонено: нет авторизации.</translation> </message> <message> - <location filename="../MqttClient.py" line="507" /> + <location filename="../MqttClient.py" line="671" /> <source>Connection Refused: unknown reason.</source> <translation>Соединение отклонено: неизвестная причина.</translation> </message> @@ -73,6 +73,41 @@ </message> <message> <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>MQTT Protocol</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to use the MQTT 3.1 protocol</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>v 3.1</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to use the MQTT 3.1.1 protocol</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>v 3.1.1</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to use the MQTT 5.0 protocol</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>v 5.0</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> <source>Connection Timeout:</source> <translation>Время ожидания соединения:</translation> </message> @@ -134,8 +169,8 @@ </message> <message> <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> - <source>Last Will and Testament</source> - <translation>Последнее желание и завещание</translation> + <source>Last Will</source> + <translation type="unfinished">Последнее желание</translation> </message> <message> <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> @@ -164,6 +199,11 @@ </message> <message> <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Press to edit the user properties</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> <source>Enter the last will message to be sent</source> <translation>Введите сообщение последнего желания</translation> </message> @@ -193,125 +233,174 @@ <translation>Введите полный путь к файлу сертификата CA; оставьте поле пустым, чтобы использовать платформу по умолчанию</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="47" /> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>User Properties</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to edit the CONNECT user properties</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>CONNECT</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to edit the DISCONNECT user properties</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>DISCONNECT</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Select to use the CONNECT user properties when disconnecting</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.ui" line="0" /> + <source>Use CONNECT properties for DISCONNECT</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionOptionsDialog.py" line="50" /> <source>Certificate Files (*.crt *.pem);;All Files (*)</source> <translation>Файлы сертификатов (*.crt *.pem);;Все файлы (*)</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="64" /> + <location filename="../MqttConnectionOptionsDialog.py" line="80" /> <source>Invalid Connection Parameters</source> <translation>Недопустимые параметры соединения</translation> </message> <message> - <location filename="../MqttConnectionOptionsDialog.py" line="65" /> + <location filename="../MqttConnectionOptionsDialog.py" line="81" /> <source>An empty Client ID requires a clean session.</source> <translation>При незаданном ID клиента требуется чистый сеанс.</translation> </message> + <message> + <location filename="../MqttConnectionOptionsDialog.py" line="187" /> + <source>Last Will User Properties</source> + <translation type="unfinished" /> + </message> + <message> + <source>Last Will and Testament</source> + <translation type="vanished">Последнее желание и завещание</translation> + </message> </context> <context> <name>MqttConnectionProfilesDialog</name> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="71" /> - <location filename="../MqttConnectionProfilesDialog.py" line="67" /> - <location filename="../MqttConnectionProfilesDialog.py" line="63" /> + <location filename="../MqttConnectionProfilesDialog.py" line="76" /> + <location filename="../MqttConnectionProfilesDialog.py" line="72" /> + <location filename="../MqttConnectionProfilesDialog.py" line="68" /> <source>Certificate Files (*.crt *.pem);;All Files (*)</source> <translation>Файлы сертификатов (*.crt *.pem);;Все файлы (*)</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="75" /> + <location filename="../MqttConnectionProfilesDialog.py" line="80" /> <source>Key Files (*.key *.pem);;All Files (*)</source> <translation>Файлы ключей (*.key *.pem);;Все файлы (*)</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="725" /> - <location filename="../MqttConnectionProfilesDialog.py" line="689" /> - <location filename="../MqttConnectionProfilesDialog.py" line="144" /> + <location filename="../MqttConnectionProfilesDialog.py" line="926" /> + <location filename="../MqttConnectionProfilesDialog.py" line="890" /> + <location filename="../MqttConnectionProfilesDialog.py" line="154" /> <source>Changed Connection Profile</source> <translation>Измененный профиль соединения</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="726" /> - <location filename="../MqttConnectionProfilesDialog.py" line="690" /> - <location filename="../MqttConnectionProfilesDialog.py" line="145" /> + <location filename="../MqttConnectionProfilesDialog.py" line="927" /> + <location filename="../MqttConnectionProfilesDialog.py" line="891" /> + <location filename="../MqttConnectionProfilesDialog.py" line="155" /> <source>The current profile has unsaved changes. Shall these be saved?</source> <translation>В текущем профиле есть несохраненные изменения. Должны ли они быть сохранены?</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="172" /> - <location filename="../MqttConnectionProfilesDialog.py" line="165" /> + <location filename="../MqttConnectionProfilesDialog.py" line="182" /> + <location filename="../MqttConnectionProfilesDialog.py" line="175" /> <source>New Connection Profile</source> <translation>Новый профиль соединения</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="166" /> + <location filename="../MqttConnectionProfilesDialog.py" line="176" /> <source>Enter name for the new Connection Profile:</source> <translation>Введите имя нового профиля соединения:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="200" /> - <location filename="../MqttConnectionProfilesDialog.py" line="173" /> + <location filename="../MqttConnectionProfilesDialog.py" line="210" /> + <location filename="../MqttConnectionProfilesDialog.py" line="183" /> <source><p>A connection named <b>{0}</b> exists already. Aborting...</p></source> <translation><p>Уже существует соединение с именем <b>{0}</b>. Прерывание... </ p></translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="199" /> - <location filename="../MqttConnectionProfilesDialog.py" line="192" /> + <location filename="../MqttConnectionProfilesDialog.py" line="209" /> + <location filename="../MqttConnectionProfilesDialog.py" line="202" /> <source>Copy Connection Profile</source> <translation>Копировать профиль соединения</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="193" /> + <location filename="../MqttConnectionProfilesDialog.py" line="203" /> <source>Enter name for the copied Connection Profile:</source> <translation>Введите имя для скопированного профиля соединения:</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="223" /> + <location filename="../MqttConnectionProfilesDialog.py" line="235" /> <source>Delete Connection Profile</source> <translation>Удалить профиль соединения</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="224" /> + <location filename="../MqttConnectionProfilesDialog.py" line="236" /> <source><p>Shall the Connection Profile <b>{0}</b> really be deleted?</p></source> <translation><p>Действительно удалить профиль соединения <b>{0}</b>?</p></translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="496" /> + <location filename="../MqttConnectionProfilesDialog.py" line="636" /> <source>Invalid Connection Parameters</source> <translation>Недопустимые параметры соединения</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="497" /> + <location filename="../MqttConnectionProfilesDialog.py" line="637" /> <source>An empty Client ID requires a clean session.</source> <translation>При незаданном ID клиента требуется чистый сеанс.</translation> </message> <message> + <location filename="../MqttConnectionProfilesDialog.py" line="732" /> + <source>Last Will User Properties</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> - <location filename="../MqttConnectionProfilesDialog.py" line="621" /> + <location filename="../MqttConnectionProfilesDialog.py" line="788" /> <source>SSL/TLS Enabled</source> <translation>Разрешить SSL/TLS</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="622" /> + <location filename="../MqttConnectionProfilesDialog.py" line="789" /> <source>Encrypted connection using SSL/TLS has been enabled. However, the broker port is still the default unencrypted port (port 1883). Shall this be changed?</source> <translation>Разрешено соединение с использованием шифрования SSL/TLS. Однако по-прежнему задействован порт брокера без шифрования, по умолчанию порт 1883. Изменить?</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="635" /> + <location filename="../MqttConnectionProfilesDialog.py" line="802" /> <source>SSL/TLS Disabled</source> <translation>SSL/TLS запрещено</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="636" /> + <location filename="../MqttConnectionProfilesDialog.py" line="803" /> <source>Encrypted connection using SSL/TLS has been disabled. However, the broker port is still the default encrypted port (port 8883). Shall this be changed?</source> <translation>Соединение с использованием шифрования SSL/TLS запрещено. Однако по-прежнему задействован порт брокера с шифрованием, по умолчанию порт 8883. Изменить?</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="702" /> + <location filename="../MqttConnectionProfilesDialog.py" line="903" /> <source>Changed Connection Profiles</source> <translation>Измененные профили соединений</translation> </message> <message> - <location filename="../MqttConnectionProfilesDialog.py" line="703" /> + <location filename="../MqttConnectionProfilesDialog.py" line="904" /> <source>The list of connection profiles has unsaved changes.</source> <translation>В списке профилей соединений имеются несохраненные изменения.</translation> </message> @@ -387,6 +476,41 @@ </message> <message> <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>MQTT Protocol</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to use the MQTT 3.1 protocol</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>v 3.1</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to use the MQTT 3.1.1 protocol</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>v 3.1.1</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to use the MQTT 5.0 protocol</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>v 5.0</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> <source>Connection Timeout:</source> <translation>Время ожидания соединения:</translation> </message> @@ -463,6 +587,11 @@ </message> <message> <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>QoS:</source> + <translation type="unfinished">QoS:</translation> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> <source>Enter the desired QoS value</source> <translation>Задайте желаемое значение уровня обслуживания QoS</translation> </message> @@ -478,6 +607,11 @@ </message> <message> <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Press to edit the user properties</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> <source>Enter the last will message to be sent</source> <translation>Введите сообщение последнего желания</translation> </message> @@ -553,87 +687,122 @@ <source>Enter the full path to the client key file</source> <translation>Введите полный путь к файлу ключа клиента</translation> </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>User Properties</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to edit the CONNECT user properties</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>CONNECT</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to edit the DISCONNECT user properties</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>DISCONNECT</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Select to use the CONNECT user properties when disconnecting</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttConnectionProfilesDialog.ui" line="0" /> + <source>Use CONNECT properties for DISCONNECT</source> + <translation type="unfinished" /> + </message> </context> <context> <name>MqttErrorMessage</name> <message> - <location filename="../MqttClient.py" line="523" /> + <location filename="../MqttClient.py" line="687" /> <source>No error.</source> <translation>Нет ошибки.</translation> </message> <message> - <location filename="../MqttClient.py" line="527" /> + <location filename="../MqttClient.py" line="691" /> <source>Out of memory.</source> <translation>Недостаточно памяти.</translation> </message> <message> - <location filename="../MqttClient.py" line="531" /> + <location filename="../MqttClient.py" line="695" /> <source>A network protocol error occurred when communicating with the broker.</source> <translation>Во время общения с брокером произошла ошибка сетевого протокола.</translation> </message> <message> - <location filename="../MqttClient.py" line="536" /> + <location filename="../MqttClient.py" line="700" /> <source>Invalid function arguments provided.</source> <translation>Предоставлены недопустимые аргументы функции.</translation> </message> <message> - <location filename="../MqttClient.py" line="540" /> + <location filename="../MqttClient.py" line="704" /> <source>The client is not currently connected.</source> <translation>В настоящее время клиент не подключен.</translation> </message> <message> - <location filename="../MqttClient.py" line="544" /> + <location filename="../MqttClient.py" line="708" /> <source>The connection was refused.</source> <translation>Соединение было отклонено.</translation> </message> <message> - <location filename="../MqttClient.py" line="548" /> + <location filename="../MqttClient.py" line="712" /> <source>Message not found (internal error).</source> <translation>Сообщение не найдено (внутренняя ошибка).</translation> </message> <message> - <location filename="../MqttClient.py" line="552" /> + <location filename="../MqttClient.py" line="716" /> <source>The connection was lost.</source> <translation>Соединение было потеряно.</translation> </message> <message> - <location filename="../MqttClient.py" line="556" /> + <location filename="../MqttClient.py" line="720" /> <source>A TLS error occurred.</source> <translation>Произошла ошибка TLS.</translation> </message> <message> - <location filename="../MqttClient.py" line="560" /> + <location filename="../MqttClient.py" line="724" /> <source>Payload too large.</source> <translation>Слишком большая полезная нагрузка.</translation> </message> <message> - <location filename="../MqttClient.py" line="564" /> + <location filename="../MqttClient.py" line="728" /> <source>This feature is not supported.</source> <translation>Эта функция не поддерживается.</translation> </message> <message> - <location filename="../MqttClient.py" line="568" /> + <location filename="../MqttClient.py" line="732" /> <source>Authorisation failed.</source> <translation>Ошибка авторизации.</translation> </message> <message> - <location filename="../MqttClient.py" line="572" /> + <location filename="../MqttClient.py" line="736" /> <source>Access denied by ACL.</source> <translation>Отказано в доступе к ACL.</translation> </message> <message> - <location filename="../MqttClient.py" line="588" /> - <location filename="../MqttClient.py" line="576" /> + <location filename="../MqttClient.py" line="752" /> + <location filename="../MqttClient.py" line="740" /> <source>Unknown error.</source> <translation>Неизвестная ошибка.</translation> </message> <message> - <location filename="../MqttClient.py" line="580" /> + <location filename="../MqttClient.py" line="744" /> <source>Error defined by errno.</source> <translation>Ошибка, определяемая errno.</translation> </message> <message> - <location filename="../MqttClient.py" line="584" /> + <location filename="../MqttClient.py" line="748" /> <source>Message queue full.</source> <translation>Очередь сообщений заполнена.</translation> </message> @@ -641,38 +810,38 @@ <context> <name>MqttLogLevelString</name> <message> - <location filename="../MqttClient.py" line="627" /> - <location filename="../MqttClient.py" line="609" /> + <location filename="../MqttClient.py" line="791" /> + <location filename="../MqttClient.py" line="773" /> <source>Unknown</source> <translation>Unknown</translation> </message> <message> - <location filename="../MqttClient.py" line="614" /> + <location filename="../MqttClient.py" line="778" /> <source>Info</source> <translation>Info</translation> </message> <message> - <location filename="../MqttClient.py" line="616" /> + <location filename="../MqttClient.py" line="780" /> <source>Notice</source> <translation>Notice</translation> </message> <message> - <location filename="../MqttClient.py" line="618" /> + <location filename="../MqttClient.py" line="782" /> <source>Warning</source> <translation>Warning</translation> </message> <message> - <location filename="../MqttClient.py" line="620" /> + <location filename="../MqttClient.py" line="784" /> <source>Error</source> <translation>Error</translation> </message> <message> - <location filename="../MqttClient.py" line="622" /> + <location filename="../MqttClient.py" line="786" /> <source>Debug</source> <translation>Debug</translation> </message> <message> - <location filename="../MqttClient.py" line="624" /> + <location filename="../MqttClient.py" line="788" /> <source>Logging Disabled</source> <translation>Ведение журнала запрещено</translation> </message> @@ -680,48 +849,49 @@ <context> <name>MqttMonitorPlugin</name> <message> - <location filename="../../PluginMqttMonitor.py" line="58" /> + <location filename="../../PluginMqttMonitor.py" line="189" /> + <location filename="../../PluginMqttMonitor.py" line="186" /> + <location filename="../../PluginMqttMonitor.py" line="78" /> + <source>MQTT Monitor</source> + <translation>MQTT Monitor</translation> + </message> + <message> + <location filename="../../PluginMqttMonitor.py" line="97" /> <source>(package not available)</source> <translation>(пакет недоступен)</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="63" /> + <location filename="../../PluginMqttMonitor.py" line="102" /> <source>MQTT</source> <translation>MQTT - клиентская библиотека Python</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="64" /> + <location filename="../../PluginMqttMonitor.py" line="103" /> <source>paho-mqtt</source> <translation>paho-mqtt</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="122" /> + <location filename="../../PluginMqttMonitor.py" line="172" /> <source>The 'paho-mqtt' package is not available.</source> <translation>Пакет 'paho-mqtt' недоступен.</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="139" /> - <location filename="../../PluginMqttMonitor.py" line="136" /> - <source>MQTT Monitor</source> - <translation>MQTT Monitor</translation> - </message> - <message> - <location filename="../../PluginMqttMonitor.py" line="140" /> + <location filename="../../PluginMqttMonitor.py" line="190" /> <source>M&QTT Monitor</source> <translation>M&QTT Monitor</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="141" /> + <location filename="../../PluginMqttMonitor.py" line="191" /> <source>Alt+Shift+Q</source> <translation>Alt+Shift+Q</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="144" /> + <location filename="../../PluginMqttMonitor.py" line="194" /> <source>Switch the input focus to the MQTT Monitor window.</source> <translation>Переключить фокус ввода в окно MQTT Monitor.</translation> </message> <message> - <location filename="../../PluginMqttMonitor.py" line="146" /> + <location filename="../../PluginMqttMonitor.py" line="196" /> <source><b>Activate MQTT Monitor</b><p>This switches the input focus to the MQTT Monitor window.</p></source> <translation><b>Активировать MQTT Monitor</b><p>Переключение фокуса ввода в окно MQTT Monitor.</p></translation> </message> @@ -770,11 +940,16 @@ </message> <message> <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Select to clear a previously set last will message</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Pub/Sub</source> <translation>Подписки/Публикации</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="765" /> + <location filename="../MqttMonitorWidget.py" line="1016" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Subscribe</source> @@ -810,7 +985,14 @@ <translation>Подписаться на данную тему</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="761" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to edit the user properties</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1012" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Unsubscribe</source> <translation>Отписаться</translation> @@ -867,6 +1049,7 @@ <translation>Очистить данные публикации</translation> </message> <message> + <location filename="../MqttMonitorWidget.py" line="278" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <location filename="../MqttMonitorWidget.ui" line="0" /> @@ -875,6 +1058,16 @@ </message> <message> <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Press to clear the retained messages of the selected topic</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>Clear Retained</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Select to clear the publish data after the message was published</source> <translation>Разрешить очищать данные публикации после опубликования сообщения</translation> </message> @@ -885,6 +1078,11 @@ </message> <message> <location filename="../MqttMonitorWidget.ui" line="0" /> + <source>MQTT V5 Properties</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Messages</source> <translation>Сообщения</translation> </message> @@ -920,7 +1118,7 @@ <translation>Статус</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="767" /> + <location filename="../MqttMonitorWidget.py" line="1018" /> <location filename="../MqttMonitorWidget.ui" line="0" /> <source>Press to activate the status display</source> <translation>Активировать отображение статуса</translation> @@ -1064,8 +1262,8 @@ </message> <message> <location filename="../MqttMonitorWidget.ui" line="0" /> - <source><b>Load</b></source> - <translation><b>Нагрузка</b></translation> + <source><b>Load</b> (1 min / 5 min / 15 min)</source> + <translation type="unfinished" /> </message> <message> <location filename="../MqttMonitorWidget.ui" line="0" /> @@ -1151,98 +1349,514 @@ <translation>Следовать за получаемыми сообщениями</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="68" /> + <location filename="../MqttMonitorWidget.py" line="70" /> <source>All Files (*)</source> <translation>Все файлы (*)</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="249" /> + <location filename="../MqttMonitorWidget.py" line="270" /> + <source>Copy</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="274" /> + <source>Select All</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="322" /> + <source>{0} - Session still present</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="358" /> <source>Connection timed out</source> <translation>Время ожидания соединения истекло</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="268" /> + <location filename="../MqttMonitorWidget.py" line="385" /> <source>Connection to Broker shut down cleanly.</source> <translation>Соединение с брокером закрыто. Очистка произведена.</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="321" /> + <location filename="../MqttMonitorWidget.py" line="442" /> <source>{0}: {1}</source> <translation>{0}: {1}</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="516" /> + <location filename="../MqttMonitorWidget.py" line="665" /> + <source>SUBSCRIBE: User Properties for '{0}'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="691" /> <source>Subscribe to Topic</source> <translation>Подписаться на тему</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="517" /> + <location filename="../MqttMonitorWidget.py" line="692" /> <source>Subscriptions to the Status topic '$SYS' shall be done on the 'Status' tab.</source> <translation>Подписки на тему статуса «$ SYS» должны быть сделаны на вкладке «Статус».</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="574" /> + <location filename="../MqttMonitorWidget.py" line="713" /> + <source>UNSUBSCRIBE: User Properties for '{0}'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="753" /> + <source>PUBLISH: User Properties for '{0}'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="789" /> <source>Read Payload from File</source> <translation>Чтение полезной нагрузки из файла</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="575" /> + <location filename="../MqttMonitorWidget.py" line="790" /> <source><p>The file <b>{0}</b> could not be read. Aborting...</p><p>Reason: {1}</p></source> <translation><p>Не удалось прочитать файл <b>{0}</b>. Отмена...</p><p>Причина: {1}</p></translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="686" /> - <location filename="../MqttMonitorWidget.py" line="672" /> - <location filename="../MqttMonitorWidget.py" line="654" /> + <location filename="../MqttMonitorWidget.py" line="937" /> + <location filename="../MqttMonitorWidget.py" line="923" /> + <location filename="../MqttMonitorWidget.py" line="905" /> <source>Save Messages</source> <translation>Сохранить сообщения</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="656" /> + <location filename="../MqttMonitorWidget.py" line="907" /> <source>Messages Files (*.txt);;All Files (*)</source> <translation>Файлы сообщений (*.txt);;Все файлы (*)</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="729" /> - <location filename="../MqttMonitorWidget.py" line="673" /> + <location filename="../MqttMonitorWidget.py" line="980" /> + <location filename="../MqttMonitorWidget.py" line="924" /> <source><p>The file <b>{0}</b> already exists. Overwrite it?</p></source> <translation><p>Файл <b>{0}</b> уже существует. Переписать его?</p></translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="743" /> - <location filename="../MqttMonitorWidget.py" line="687" /> + <location filename="../MqttMonitorWidget.py" line="994" /> + <location filename="../MqttMonitorWidget.py" line="938" /> <source><p>The file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> <translation><p>Файл <b>{0}</b> не может быть записан.</p><p>Причина: {1}</p></translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="742" /> - <location filename="../MqttMonitorWidget.py" line="728" /> - <location filename="../MqttMonitorWidget.py" line="710" /> + <location filename="../MqttMonitorWidget.py" line="993" /> + <location filename="../MqttMonitorWidget.py" line="979" /> + <location filename="../MqttMonitorWidget.py" line="961" /> <source>Save Log Messages</source> <translation>Сохранить сообщения журнала</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="712" /> + <location filename="../MqttMonitorWidget.py" line="963" /> <source>Log Files (*.log);;All Files (*)</source> <translation>Файлы журнала (*.log);;Все файлы (*)</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="763" /> + <location filename="../MqttMonitorWidget.py" line="1014" /> <source>Press to deactivate the status display</source> <translation>Деактивировать отображение статуса</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="895" /> + <location filename="../MqttMonitorWidget.py" line="1183" /> <source>QoS: {0} </source> <translation>QoS: {0} </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="1048" /> - <location filename="../MqttMonitorWidget.py" line="1022" /> + <location filename="../MqttMonitorWidget.py" line="1187" /> + <source>Retained Message +</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1192" /> + <source>Properties: +</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1196" /> + <source>{0}: {1} +</source> + <comment>property name, property value</comment> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1201" /> + <source>Message: +</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1208" /> + <source><empty></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="1376" /> + <location filename="../MqttMonitorWidget.py" line="1330" /> <source>Connecting to {0}:{1} ...</source> <translation>Соединение с {0}:{1} ...</translation> </message> + <message> + <source><b>Load</b></source> + <translation type="vanished"><b>Нагрузка</b></translation> + </message> + </context> + <context> + <name>MqttPage</name> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source><b>Configure MQTT Monitor</b></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Default MQTT Protocol</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Select to use the MQTT 3.1 protocol</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>v 3.1</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Select to use the MQTT 3.1.1 protocol</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>v 3.1.1</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Select to use the MQTT 5.0 protocol</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>v 5.0</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Recent Brokers</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Number of recent brokers:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Enter the number of recent brokers to remember</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Recent Topics</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Number of recent topics:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/MqttPage.ui" line="0" /> + <source>Enter the number of recent topics to remember</source> + <translation type="unfinished" /> + </message> + </context> + <context> + <name>MqttReasonCodeNames</name> + <message> + <location filename="../MqttReasonCodes.py" line="16" /> + <source>Success</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="21" /> + <source>Normal disconnection</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="24" /> + <source>Granted QoS 0</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="28" /> + <source>Granted QoS 1</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="32" /> + <source>Granted QoS 2</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="36" /> + <source>Disconnect with will message</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="40" /> + <source>No matching subscribers</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="44" /> + <source>No subscription found</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="48" /> + <source>Continue authentication</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="52" /> + <source>Re-authenticate</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="56" /> + <source>Unspecified error</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="62" /> + <source>Malformed packet</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="66" /> + <source>Protocol error</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="70" /> + <source>Implementation specific error</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="76" /> + <source>Unsupported protocol version</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="80" /> + <source>Client identifier not valid</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="84" /> + <source>Bad user name or password</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="88" /> + <source>Not authorized</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="94" /> + <source>Server unavailable</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="98" /> + <source>Server busy</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="102" /> + <source>Banned</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="106" /> + <source>Server shutting down</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="110" /> + <source>Bad authentication method</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="114" /> + <source>Keep alive timeout</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="118" /> + <source>Session taken over</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="122" /> + <source>Topic filter invalid</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="127" /> + <source>Topic name invalid</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="132" /> + <source>Packet identifier in use</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="137" /> + <source>Packet identifier not found</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="141" /> + <source>Receive maximum exceeded</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="145" /> + <source>Topic alias invalid</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="149" /> + <source>Packet too large</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="153" /> + <source>Message rate too high</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="157" /> + <source>Quota exceeded</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="163" /> + <source>Administrative action</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="167" /> + <source>Payload format invalid</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="171" /> + <source>Retain not supported</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="175" /> + <source>QoS not supported</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="179" /> + <source>Use another server</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="183" /> + <source>Server moved</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="187" /> + <source>Shared subscription not supported</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="191" /> + <source>Connection rate exceeded</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="195" /> + <source>Maximum connect time</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="199" /> + <source>Subscription identifiers not supported</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="203" /> + <source>Wildcard subscription not supported</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="222" /> + <source>Unknown result code ({0})</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttReasonCodes.py" line="229" /> + <source>Unknown result code ({0}) for packet type '{1}'</source> + <translation type="unfinished" /> + </message> + </context> + <context> + <name>MqttUserPropertiesEditor</name> + <message> + <location filename="../MqttUserPropertiesEditor.ui" line="0" /> + <source>User Properties</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttUserPropertiesEditor.ui" line="0" /> + <source>Key</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttUserPropertiesEditor.ui" line="0" /> + <source>Value</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttUserPropertiesEditor.ui" line="0" /> + <source>Press to add a new empty row</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttUserPropertiesEditor.ui" line="0" /> + <source>Press to delete the selected properties</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../MqttUserPropertiesEditor.ui" line="0" /> + <source>Press to delete all properties</source> + <translation type="unfinished" /> + </message> + </context> + <context> + <name>MqttUserPropertiesEditorDialog</name> + <message> + <location filename="../MqttUserPropertiesEditor.py" line="134" /> + <source>User Properties</source> + <translation type="unfinished" /> + </message> </context> </TS>