--- a/MqttMonitor/i18n/mqttmonitor_ru.ts Sun Sep 16 18:08:53 2018 +0200 +++ b/MqttMonitor/i18n/mqttmonitor_ru.ts Sun Sep 16 19:02:12 2018 +0200 @@ -1,40 +1,39 @@ <?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="ru_RU"> +<!DOCTYPE TS><TS version="2.0" language="ru_RU" sourcelanguage=""> <context> <name>MqttConnackMessage</name> <message> - <location filename="../MqttClient.py" line="462"/> + <location filename="../MqttClient.py" line="467"/> <source>Connection Accepted.</source> <translation>Соединение установлено.</translation> </message> <message> - <location filename="../MqttClient.py" line="466"/> + <location filename="../MqttClient.py" line="471"/> <source>Connection Refused: unacceptable protocol version.</source> <translation>Соединение отклонено: неприемлемая версия протокола.</translation> </message> <message> - <location filename="../MqttClient.py" line="470"/> + <location filename="../MqttClient.py" line="475"/> <source>Connection Refused: identifier rejected.</source> <translation>Соединение отклонено: идентификатор отклонен.</translation> </message> <message> - <location filename="../MqttClient.py" line="474"/> + <location filename="../MqttClient.py" line="479"/> <source>Connection Refused: broker unavailable.</source> <translation>Соединение отклонено: брокер недоступен.</translation> </message> <message> - <location filename="../MqttClient.py" line="478"/> + <location filename="../MqttClient.py" line="483"/> <source>Connection Refused: bad user name or password.</source> <translation>Соединение отклонено: неправильное имя пользователя или пароль.</translation> </message> <message> - <location filename="../MqttClient.py" line="482"/> + <location filename="../MqttClient.py" line="487"/> <source>Connection Refused: not authorised.</source> <translation>Соединение отклонено: нет авторизации.</translation> </message> <message> - <location filename="../MqttClient.py" line="486"/> + <location filename="../MqttClient.py" line="491"/> <source>Connection Refused: unknown reason.</source> <translation>Соединение отклонено: неизвестная причина.</translation> </message> @@ -538,77 +537,77 @@ <context> <name>MqttErrorMessage</name> <message> - <location filename="../MqttClient.py" line="502"/> + <location filename="../MqttClient.py" line="507"/> <source>No error.</source> <translation>Нет ошибки.</translation> </message> <message> - <location filename="../MqttClient.py" line="506"/> + <location filename="../MqttClient.py" line="511"/> <source>Out of memory.</source> <translation>Недостаточно памяти.</translation> </message> <message> - <location filename="../MqttClient.py" line="510"/> + <location filename="../MqttClient.py" line="515"/> <source>A network protocol error occurred when communicating with the broker.</source> <translation>Во время общения с брокером произошла ошибка сетевого протокола.</translation> </message> <message> - <location filename="../MqttClient.py" line="515"/> + <location filename="../MqttClient.py" line="520"/> <source>Invalid function arguments provided.</source> <translation>Предоставлены недопустимые аргументы функции.</translation> </message> <message> - <location filename="../MqttClient.py" line="519"/> + <location filename="../MqttClient.py" line="524"/> <source>The client is not currently connected.</source> <translation>В настоящее время клиент не подключен.</translation> </message> <message> - <location filename="../MqttClient.py" line="523"/> + <location filename="../MqttClient.py" line="528"/> <source>The connection was refused.</source> <translation>Соединение было отклонено.</translation> </message> <message> - <location filename="../MqttClient.py" line="527"/> + <location filename="../MqttClient.py" line="532"/> <source>Message not found (internal error).</source> <translation>Сообщение не найдено (внутренняя ошибка).</translation> </message> <message> - <location filename="../MqttClient.py" line="531"/> + <location filename="../MqttClient.py" line="536"/> <source>The connection was lost.</source> <translation>Соединение было потеряно.</translation> </message> <message> - <location filename="../MqttClient.py" line="535"/> + <location filename="../MqttClient.py" line="540"/> <source>A TLS error occurred.</source> <translation>Произошла ошибка TLS.</translation> </message> <message> - <location filename="../MqttClient.py" line="539"/> + <location filename="../MqttClient.py" line="544"/> <source>Payload too large.</source> <translation>Слишком большая полезная нагрузка.</translation> </message> <message> - <location filename="../MqttClient.py" line="543"/> + <location filename="../MqttClient.py" line="548"/> <source>This feature is not supported.</source> <translation>Эта функция не поддерживается.</translation> </message> <message> - <location filename="../MqttClient.py" line="547"/> + <location filename="../MqttClient.py" line="552"/> <source>Authorisation failed.</source> <translation>Ошибка авторизации.</translation> </message> <message> - <location filename="../MqttClient.py" line="551"/> + <location filename="../MqttClient.py" line="556"/> <source>Access denied by ACL.</source> <translation>Отказано в доступе к ACL.</translation> </message> <message> - <location filename="../MqttClient.py" line="563"/> + <location filename="../MqttClient.py" line="568"/> <source>Unknown error.</source> <translation>Неизвестная ошибка.</translation> </message> <message> - <location filename="../MqttClient.py" line="559"/> + <location filename="../MqttClient.py" line="564"/> <source>Error defined by errno.</source> <translation>Ошибка, определяемая errno.</translation> </message> @@ -616,37 +615,37 @@ <context> <name>MqttLogLevelString</name> <message> - <location filename="../MqttClient.py" line="602"/> + <location filename="../MqttClient.py" line="607"/> <source>Unknown</source> <translation>Unknown</translation> </message> <message> - <location filename="../MqttClient.py" line="589"/> + <location filename="../MqttClient.py" line="594"/> <source>Info</source> <translation>Info</translation> </message> <message> - <location filename="../MqttClient.py" line="591"/> + <location filename="../MqttClient.py" line="596"/> <source>Notice</source> <translation>Notice</translation> </message> <message> - <location filename="../MqttClient.py" line="593"/> + <location filename="../MqttClient.py" line="598"/> <source>Warning</source> <translation>Warning</translation> </message> <message> - <location filename="../MqttClient.py" line="595"/> + <location filename="../MqttClient.py" line="600"/> <source>Error</source> <translation>Error</translation> </message> <message> - <location filename="../MqttClient.py" line="597"/> + <location filename="../MqttClient.py" line="602"/> <source>Debug</source> <translation>Debug</translation> </message> <message> - <location filename="../MqttClient.py" line="599"/> + <location filename="../MqttClient.py" line="604"/> <source>Logging Disabled</source> <translation>Ведение журнала запрещено</translation> </message> @@ -747,7 +746,7 @@ <translation>Публикации/Подписки</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="640"/> + <location filename="../MqttMonitorWidget.py" line="760"/> <source>Subscribe</source> <translation>Подписаться</translation> </message> @@ -777,7 +776,7 @@ <translation>Подписаться на данную тему</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="636"/> + <location filename="../MqttMonitorWidget.py" line="756"/> <source>Unsubscribe</source> <translation>Отписаться</translation> </message> @@ -792,7 +791,7 @@ <translation>Отписаться от выбранной темы</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="380"/> + <location filename="../MqttMonitorWidget.ui" line="383"/> <source>Publish</source> <translation>Опубликовать</translation> </message> @@ -817,247 +816,247 @@ <translation>Введите строку данных для отправки</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="330"/> + <location filename="../MqttMonitorWidget.ui" line="333"/> <source>Payload File:</source> <translation>Файл полезной нагрузки:</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="346"/> + <location filename="../MqttMonitorWidget.ui" line="349"/> <source>Enter the full path to a file containing the message payload</source> <translation>Введите полный путь к файлу, содержащему полезную нагрузку сообщения</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="357"/> + <location filename="../MqttMonitorWidget.ui" line="360"/> <source>Press to clear the publish data</source> <translation>Очистить данные публикации</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="1306"/> + <location filename="../MqttMonitorWidget.ui" line="1355"/> <source>Clear</source> <translation>Очистить</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="389"/> + <location filename="../MqttMonitorWidget.ui" line="392"/> <source>Select to clear the publish data after the message was published</source> <translation>Разрешить очищать данные публикации после публикации сообщения</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="392"/> + <location filename="../MqttMonitorWidget.ui" line="395"/> <source>Clear when sent</source> <translation>Очищать после отправки</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="416"/> + <location filename="../MqttMonitorWidget.ui" line="419"/> <source>Messages</source> <translation>Сообщения</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="453"/> + <location filename="../MqttMonitorWidget.ui" line="479"/> <source>Press to clear the list of received messages</source> <translation>Очистить список полученных сообщений</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="465"/> + <location filename="../MqttMonitorWidget.ui" line="491"/> <source>Select to scroll to the most recently received message</source> <translation>Разрешить прокручивать список до последнего полученного сообщения журнала</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="1318"/> + <location filename="../MqttMonitorWidget.ui" line="494"/> <source>Follow received messages</source> <translation>Следовать за получаемыми сообщениями</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="479"/> + <location filename="../MqttMonitorWidget.ui" line="505"/> <source>Status</source> <translation>Статус</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="641"/> + <location filename="../MqttMonitorWidget.py" line="761"/> <source>Press to activate the status display</source> <translation>Активировать отображение статуса</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="535"/> + <location filename="../MqttMonitorWidget.ui" line="561"/> <source><b>Broker</b></source> <translation><b>Брокер</b></translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="557"/> + <location filename="../MqttMonitorWidget.ui" line="583"/> <source>Version</source> <translation>Версия</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="1026"/> + <location filename="../MqttMonitorWidget.ui" line="1052"/> <source>-</source> <translation>-</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="577"/> + <location filename="../MqttMonitorWidget.ui" line="603"/> <source>Timestamp</source> <translation>Метки времени</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="597"/> + <location filename="../MqttMonitorWidget.ui" line="623"/> <source>Uptime</source> <translation>Время работы</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="617"/> + <location filename="../MqttMonitorWidget.ui" line="643"/> <source>Subscriptions</source> <translation>Подписки</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="639"/> + <location filename="../MqttMonitorWidget.ui" line="665"/> <source><b>Clients</b></source> <translation><b>Клиенты</b></translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="661"/> + <location filename="../MqttMonitorWidget.ui" line="687"/> <source>Connected</source> <translation>Подключено</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="681"/> + <location filename="../MqttMonitorWidget.ui" line="707"/> <source>Disconnected</source> <translation>Отключено</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="701"/> + <location filename="../MqttMonitorWidget.ui" line="727"/> <source>Expired</source> <translation>Завершено</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="721"/> + <location filename="../MqttMonitorWidget.ui" line="747"/> <source>Maximum</source> <translation>Максимум</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="741"/> + <location filename="../MqttMonitorWidget.ui" line="767"/> <source>Total</source> <translation>Всего</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="763"/> + <location filename="../MqttMonitorWidget.ui" line="789"/> <source><b>Messages</b></source> <translation><b>Сообщения</b></translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="909"/> + <location filename="../MqttMonitorWidget.ui" line="935"/> <source>Sent</source> <translation>Отправлено</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="929"/> + <location filename="../MqttMonitorWidget.ui" line="955"/> <source>Received</source> <translation>Получено</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="825"/> + <location filename="../MqttMonitorWidget.ui" line="851"/> <source>Stored</source> <translation>Сохранено</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="845"/> + <location filename="../MqttMonitorWidget.ui" line="871"/> <source>Inflight</source> <translation>В полете</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="865"/> + <location filename="../MqttMonitorWidget.ui" line="891"/> <source>Retained</source> <translation>Удержано</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="887"/> + <location filename="../MqttMonitorWidget.ui" line="913"/> <source><b>PUBLISH Messages</b></source> <translation><b>PUBLISH сообщения</b></translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="949"/> + <location filename="../MqttMonitorWidget.ui" line="975"/> <source>Dropped</source> <translation>Сброшено</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="971"/> + <location filename="../MqttMonitorWidget.ui" line="997"/> <source><b>Traffic</b></source> <translation><b>Трафик</b></translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="1057"/> + <location filename="../MqttMonitorWidget.ui" line="1083"/> <source>Bytes Sent</source> <translation>Байт отправлено</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="1077"/> + <location filename="../MqttMonitorWidget.ui" line="1103"/> <source>Bytes Received</source> <translation>Байт принято</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="1035"/> + <location filename="../MqttMonitorWidget.ui" line="1061"/> <source><b>Load</b></source> <translation><b>Нагрузка</b></translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="1230"/> + <location filename="../MqttMonitorWidget.ui" line="1256"/> <source>- / - / -</source> <translation>- / - / -</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="1097"/> + <location filename="../MqttMonitorWidget.ui" line="1123"/> <source>Messages Sent</source> <translation>Сообщений отправлено</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="1117"/> + <location filename="../MqttMonitorWidget.ui" line="1143"/> <source>Messages Received</source> <translation>Сообщений принято</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="1137"/> + <location filename="../MqttMonitorWidget.ui" line="1163"/> <source>PUBLISH Sent</source> <translation>PUBLISH отправлено</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="1157"/> + <location filename="../MqttMonitorWidget.ui" line="1183"/> <source>PUBLISH Received</source> <translation>PUBLISH принято</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="1177"/> + <location filename="../MqttMonitorWidget.ui" line="1203"/> <source>PUBLISH Dropped</source> <translation>PUBLISH сброшено</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="1197"/> + <location filename="../MqttMonitorWidget.ui" line="1223"/> <source>Connections</source> <translation>Соединения</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="1217"/> + <location filename="../MqttMonitorWidget.ui" line="1243"/> <source>Sockets</source> <translation>Сокеты</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="1242"/> + <location filename="../MqttMonitorWidget.ui" line="1268"/> <source>Log</source> <translation>Журнал</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="1250"/> + <location filename="../MqttMonitorWidget.ui" line="1276"/> <source>Max. Log Level:</source> <translation>Максимальный уровень журнала:</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="1263"/> + <location filename="../MqttMonitorWidget.ui" line="1289"/> <source>Select the maximum log level to show</source> <translation>Выберите максимальный уровень журнала для показа</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="1303"/> + <location filename="../MqttMonitorWidget.ui" line="1352"/> <source>Press to clear the list of received log messages</source> <translation>Очистить список принятых сообщений журнала</translation> </message> <message> - <location filename="../MqttMonitorWidget.ui" line="1315"/> + <location filename="../MqttMonitorWidget.ui" line="1364"/> <source>Select to scroll to the most recently received log message</source> <translation>Разрешить прокручивать список до последнего полученного сообщения журнала</translation> </message> @@ -1067,56 +1066,106 @@ <translation>Все файлы (*)</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="236"/> + <location filename="../MqttMonitorWidget.py" line="242"/> <source>Connection timed out</source> <translation>Время ожидания соединения истекло</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="255"/> + <location filename="../MqttMonitorWidget.py" line="261"/> <source>Connection to Broker shut down cleanly.</source> <translation>Соединение с брокером закрыто. Очистка произведена.</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="310"/> + <location filename="../MqttMonitorWidget.py" line="316"/> <source>{0}: {1}</source> <translation>{0}: {1}</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="503"/> + <location filename="../MqttMonitorWidget.py" line="509"/> <source>Subscribe to Topic</source> <translation>Подписаться на тему</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="503"/> + <location filename="../MqttMonitorWidget.py" line="509"/> <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="559"/> + <location filename="../MqttMonitorWidget.py" line="565"/> <source>Read Payload from File</source> <translation>Чтение полезной нагрузки из файла</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="559"/> + <location filename="../MqttMonitorWidget.py" line="565"/> <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="637"/> + <location filename="../MqttMonitorWidget.py" line="757"/> <source>Press to deactivate the status display</source> <translation>Деактивировать отображение статуса</translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="777"/> + <location filename="../MqttMonitorWidget.py" line="897"/> <source>QoS: {0} </source> <translation>QoS: {0} </translation> </message> <message> - <location filename="../MqttMonitorWidget.py" line="930"/> + <location filename="../MqttMonitorWidget.py" line="1050"/> <source>Connecting to {0}:{1} ...</source> <translation>Соединение с {0}:{1} ...</translation> </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="453"/> + <source>Press to save the received messages to a file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="1329"/> + <source>Save</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="1326"/> + <source>Press to save the received log messages to a file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.ui" line="1367"/> + <source>Follow received log messages</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="678"/> + <source>Save Messages</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="645"/> + <source>Messages Files (*.txt);;All Files (*)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="720"/> + <source><p>The file <b>{0}</b> already exists. Overwrite it?</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="735"/> + <source><p>The file <b>{0}</b> could not be written.</p><p>Reason: {1}</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="735"/> + <source>Save Log Messages</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../MqttMonitorWidget.py" line="702"/> + <source>Log Files (*.log);;All Files (*)</source> + <translation type="unfinished"></translation> + </message> </context> </TS>