diff --git a/src/revpicommander/aclmanager.py b/src/revpicommander/aclmanager.py index 348e264..966a7c8 100644 --- a/src/revpicommander/aclmanager.py +++ b/src/revpicommander/aclmanager.py @@ -57,10 +57,10 @@ class AclManager(QtWidgets.QDialog, Ui_diag_aclmanager): self.__mrk_message_shown += 1 QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "There are errors in the ACL list!\nCheck the ALC levels of the " - "red lines in the table. The ACL levels or ip addresses are " - "invalid. If you save this dialog again, we will remove the " - "wrong entries automatically." + "ACL list contains errors.\nCheck rows highlighted in red. " + "The ACL levels or IP addresses are invalid. " + "If you save this dialog, invalid entries will be " + "removed automatically." ) ) return True @@ -97,7 +97,7 @@ class AclManager(QtWidgets.QDialog, Ui_diag_aclmanager): if self._changes_done(): ask = QtWidgets.QMessageBox.question( self, self.tr("Question"), self.tr( - "Do you really want to quit? \nUnsaved changes will be lost" + "Quit without saving?\nUnsaved changes will be lost." ) ) == QtWidgets.QMessageBox.Yes @@ -126,7 +126,7 @@ class AclManager(QtWidgets.QDialog, Ui_diag_aclmanager): while self.tb_acls.rowCount() > 0: self.tb_acls.removeRow(0) self.cbb_level.clear() - self.cbb_level.addItem(self.tr("Select..."), -1) + self.cbb_level.addItem(self.tr("Select"), -1) self.lbl_level_info.clear() self.__re_ipacl = compile( @@ -186,9 +186,9 @@ class AclManager(QtWidgets.QDialog, Ui_diag_aclmanager): has_error = False tool_tip = "" else: - brush = QtGui.QBrush(QtGui.QColor("red")) + brush = QtGui.QBrush(QtGui.QColor("#CC6666")) has_error = True - tool_tip = self.tr("This entry has an invalid ACL level or wrong IP format!") + tool_tip = self.tr("Invalid ACL level or IP address format.") for row in range(self.tb_acls.rowCount()): item_0 = self.tb_acls.item(row, 0) @@ -370,8 +370,8 @@ class AclManager(QtWidgets.QDialog, Ui_diag_aclmanager): else: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "Can not save new ACL entry! Check format of ip address " - "and acl level is in value list." + "Cannot save ACL entry. Check IP address format " + "and ACL level." ) ) diff --git a/src/revpicommander/avahisearch.py b/src/revpicommander/avahisearch.py index 6c93953..dc20d4f 100644 --- a/src/revpicommander/avahisearch.py +++ b/src/revpicommander/avahisearch.py @@ -167,7 +167,7 @@ class AvahiSearch(QtWidgets.QDialog, Ui_diag_search): return None settings = RevPiSettings() - settings.folder = self.tr("Auto discovered") + settings.folder = self.tr("Automatically discovered") settings.name = item.data(WidgetData.host_name) settings.address = item.data(WidgetData.address) settings.port = item.data(WidgetData.port) diff --git a/src/revpicommander/backgroundworker.py b/src/revpicommander/backgroundworker.py index 5e55311..546a560 100644 --- a/src/revpicommander/backgroundworker.py +++ b/src/revpicommander/backgroundworker.py @@ -20,7 +20,7 @@ class BackgroundWorker(QtCore.QThread): def __init__(self, parent=None, interruption_text: str = None): super().__init__(parent) - self._interruption_text = interruption_text or self.tr("User requested cancellation...") + self._interruption_text = interruption_text or self.tr("Cancellation requested") def check_cancel(self) -> bool: """ diff --git a/src/revpicommander/debugcontrol.py b/src/revpicommander/debugcontrol.py index bfccec0..2e52a35 100644 --- a/src/revpicommander/debugcontrol.py +++ b/src/revpicommander/debugcontrol.py @@ -135,7 +135,7 @@ class DebugControl(QtWidgets.QWidget, Ui_wid_debugcontrol): self.cbx_refresh.setChecked(False) for win in self.dict_windows.values(): # type: DebugIos win.stat_bar.showMessage( - self.tr("Driver reset for piControl detected."), + self.tr("piControl driver reset detected"), 10000 ) self.reload_devices() @@ -175,7 +175,7 @@ class DebugControl(QtWidgets.QWidget, Ui_wid_debugcontrol): for win in self.dict_windows.values(): # type: DebugIos win.stat_bar.setStyleSheet("background-color: red;") win.stat_bar.showMessage(self.tr( - "Error while getting values from Revolution Pi." + "Error while getting values from RevPi" ), 5000) return @@ -229,9 +229,9 @@ class DebugControl(QtWidgets.QWidget, Ui_wid_debugcontrol): win.set_value(io[0], value_procimg) if self.cbx_refresh.isChecked(): - win.stat_bar.showMessage(self.tr("Auto update values..."), 1000) + win.stat_bar.showMessage(self.tr("Updating values"), 1000) else: - win.stat_bar.showMessage(self.tr("Values updated..."), 2000) + win.stat_bar.showMessage(self.tr("Values updated"), 2000) if self.driver_reset_detected: # Show values, which we can recover to empty process image @@ -269,7 +269,7 @@ class DebugControl(QtWidgets.QWidget, Ui_wid_debugcontrol): # Create error message device_name = self.dict_devices[lst_result[0]] str_errmsg += self.tr( - "Error set value of device '{0}' Output '{1}': {2}\n" + "Error setting value for device '{0}', output '{1}': {2}\n" ).format(device_name, lst_result[1], lst_result[3]) else: self.dict_windows[lst_result[0]].reset_change_value_colors(lst_result[1]) diff --git a/src/revpicommander/debugios.py b/src/revpicommander/debugios.py index 2dd99ec..0e99182 100644 --- a/src/revpicommander/debugios.py +++ b/src/revpicommander/debugios.py @@ -266,12 +266,12 @@ class DebugIos(QtWidgets.QMainWindow, Ui_win_debugios): switching_cycles = helper.cm.call_remote_function( "ps_switching_cycles", sender.objectName(), - default_value=self.tr("Can not display"), + default_value=self.tr("Cannot display"), ) if type(switching_cycles) is not list: switching_cycles = [switching_cycles] for i in range(len(switching_cycles)): - relais_counter = self.tr(" Relais {0}").format(i + 1) + relais_counter = self.tr(" Relay {0}").format(i + 1) if len(switching_cycles) == 1: relais_counter = "" men.addAction( @@ -284,29 +284,29 @@ class DebugIos(QtWidgets.QMainWindow, Ui_win_debugios): if sender.property("byte_length") > 4: # Textbox needs format buttons - act_as_text = QtWidgets.QAction(self.tr("as text")) + act_as_text = QtWidgets.QAction(self.tr("As text")) men.addAction(act_as_text) - act_as_number = QtWidgets.QAction(self.tr("as number")) + act_as_number = QtWidgets.QAction(self.tr("As number")) men.addAction(act_as_number) men.addSeparator() else: act_as_text = None act_as_number = None - act_signed = QtWidgets.QAction(self.tr("signed"), men) + act_signed = QtWidgets.QAction(self.tr("Signed"), men) act_signed.setCheckable(True) act_signed.setChecked(sender.property("signed") or False) if sender.property("bit_address") == -1: men.addAction(act_signed) - act_byteorder = QtWidgets.QAction(self.tr("big_endian"), men) + act_byteorder = QtWidgets.QAction(self.tr("Big-endian"), men) act_byteorder.setCheckable(True) act_byteorder.setChecked(sender.property("big_endian") or False) if sender.property("bit_address") == -1: men.addAction(act_byteorder) if sender.property("byte_length") > 2: - act_wordorder = QtWidgets.QAction(self.tr("switch wordorder")) + act_wordorder = QtWidgets.QAction(self.tr("Swap word order")) act_wordorder.setCheckable(True) act_wordorder.setChecked(sender.property("word_order") == "big") men.addAction(act_wordorder) @@ -338,7 +338,7 @@ class DebugIos(QtWidgets.QMainWindow, Ui_win_debugios): helper.cm.call_remote_function("ps_reset_counter", sender.objectName(), raise_exception=True) except Exception as e: log.error(e) - QtWidgets.QMessageBox.critical(self, self.tr("Error"), self.tr("Could not reset the counter value")) + QtWidgets.QMessageBox.critical(self, self.tr("Error"), self.tr("Cannot reset counter value.")) if sender.property("frm"): sender.setProperty("frm", "{0}{1}".format( @@ -451,8 +451,8 @@ class DebugIos(QtWidgets.QMainWindow, Ui_win_debugios): except UnicodeDecodeError: child.setProperty("struct_type", "number") QtWidgets.QMessageBox.warning( - self, self.tr("Can not use format text"), self.tr( - "Can not convert bytes {0} to a text for IO '{1}'. Switch to number format instead!" + self, self.tr("Cannot use text format."), self.tr( + "Cannot convert bytes {0} to text for I/O '{1}'. Switch to number format instead." ).format(value, io_name) ) if child.property("struct_type") == "number": diff --git a/src/revpicommander/helper.py b/src/revpicommander/helper.py index dd747e0..cf01c23 100644 --- a/src/revpicommander/helper.py +++ b/src/revpicommander/helper.py @@ -372,7 +372,7 @@ class ConnectionManager(QtCore.QThread): self._clear_settings() self.connect_error.emit( self.tr("Error"), self.tr( - "Could not establish a SSH connection to server:\n\n{0}" + "Cannot connect to SSH server:\n\n{0}" ).format(str(e)), ConnectionFail.SSH_CONNECT, revpi_settings, @@ -398,11 +398,11 @@ class ConnectionManager(QtCore.QThread): if revpi_settings.ssh_use_tunnel: self.connect_error.emit( self.tr("Error"), self.tr( - "Can not connect to RevPiPyLoad service through SSH tunnel!\n\n" - "This could have the following reasons:\n" - "- The RevPiPyLoad service is not running (activate it on your Revolution Pi)\n" - "- The RevPiPyLoad XML-RPC service is NOT bind to localhost\n" - "- The ACL permission is not set for 127.0.0.1!!!" + "Cannot connect to RevPiPyLoad service through SSH tunnel.\n\n" + "Possible reasons:\n" + "- RevPiPyLoad service is not running. Activate service on your RevPi.\n" + "- RevPiPyLoad XML-RPC service is not bound to localhost.\n" + "- ACL permission is not set for 127.0.0.1." ), ConnectionFail.NO_XML_RPC_VIA_TUNNEL, revpi_settings, @@ -410,14 +410,14 @@ class ConnectionManager(QtCore.QThread): else: self.connect_error.emit( self.tr("Error"), self.tr( - "Can not connect to RevPiPyLoad XML-RPC service! \n\n" - "This could have the following reasons:\n" - "- The Revolution Pi is not online\n" - "- The RevPiPyLoad service is not running (activate it on your Revolution Pi)\n" - "- The RevPiPyLoad XML-RPC service is bind to localhost, only\n" - "- The ACL permission is not set for your IP!!!\n\n" - "Use 'Connect via SSH' to use an encrypted connection or run " - "'sudo revpipyload_secure_installation' on Revolution Pi to setup direct remote access!" + "Cannot connect to RevPiPyLoad XML-RPC service.\n\n" + "Possible reasons:\n" + "- RevPi is offline.\n" + "- RevPiPyLoad service is not running. Activate service on your RevPi.\n" + "- RevPiPyLoad XML-RPC service is bound to localhost only.\n" + "- The ACL permission is not set for your IP.\n\n" + "Use 'Connect via SSH' to use encrypted connection or run " + "'sudo revpipyload_secure_installation' on RevPi to set up direct remote access." ), ConnectionFail.NO_XML_RPC, revpi_settings, @@ -546,10 +546,10 @@ class ConnectionManager(QtCore.QThread): if self._revpi is not None: sp = None - self.status_changed.emit(self.tr("SIMULATING"), "yellow") + self.status_changed.emit(self.tr("Simulating"), "#E3DE48") elif self._cli is None: sp = None - self.status_changed.emit(self.tr("NOT CONNECTED"), "lightblue") + self.status_changed.emit(self.tr("Not connected"), "lightblue") elif not self._cli_connect.empty(): # Get new connection information to create object in this thread item = self._cli_connect.get() @@ -566,7 +566,7 @@ class ConnectionManager(QtCore.QThread): log.warning(e) except Exception as e: log.warning(e) - self.status_changed.emit(self.tr("SERVER ERROR"), "red") + self.status_changed.emit(self.tr("Server error"), "#CC6666") self._has_error = True self.connection_error_observed.emit("{0} | {1}".format(e, type(e))) @@ -596,19 +596,19 @@ class ConnectionManager(QtCore.QThread): self.connection_recovered.emit() if plc_exit_code == -1: - self.status_changed.emit(self.tr("RUNNING"), "green") + self.status_changed.emit(self.tr("Running"), "green") elif plc_exit_code == -2: - self.status_changed.emit(self.tr("PLC FILE NOT FOUND"), "red") + self.status_changed.emit(self.tr("PLC file not found"), "#CC6666") elif plc_exit_code == -3: - self.status_changed.emit(self.tr("NOT RUNNING (NO STATUS)"), "yellow") + self.status_changed.emit(self.tr("Not running (no status)"), "#E3DE48") elif plc_exit_code == -9: - self.status_changed.emit(self.tr("PROGRAM KILLED"), "red") + self.status_changed.emit(self.tr("Program killed"), "#CC6666") elif plc_exit_code == -15: - self.status_changed.emit(self.tr("PROGRAM TERMED"), "red") + self.status_changed.emit(self.tr("Program terminated"), "#CC6666") elif plc_exit_code == 0: - self.status_changed.emit(self.tr("NOT RUNNING"), "yellow") + self.status_changed.emit(self.tr("Not running"), "#E3DE48") else: - self.status_changed.emit(self.tr("FINISHED WITH CODE {0}").format(plc_exit_code), "yellow") + self.status_changed.emit(self.tr("Finished with exit code {0}").format(plc_exit_code), "#E3DE48") self.msleep(self._cycle_time) diff --git a/src/revpicommander/locale/revpicommander_de.qm b/src/revpicommander/locale/revpicommander_de.qm index 059aa47..6d5c636 100644 Binary files a/src/revpicommander/locale/revpicommander_de.qm and b/src/revpicommander/locale/revpicommander_de.qm differ diff --git a/src/revpicommander/locale/revpicommander_de.ts b/src/revpicommander/locale/revpicommander_de.ts index 4f61164..c6f9f7e 100644 --- a/src/revpicommander/locale/revpicommander_de.ts +++ b/src/revpicommander/locale/revpicommander_de.ts @@ -8,18 +8,18 @@ Error Fehler - - - There are errors in the ACL list! -Check the ALC levels of the red lines in the table. The ACL levels or ip addresses are invalid. If you save this dialog again, we will remove the wrong entries automatically. - Es gibt Fehler in der ACL Liste -Prüfe die roten Einträge in der Tabelle. ACL Level oder IP Adressen sind nicht gültig. Beim erneuten Speichern werden ungültige Einträge automatisch gelöscht. - Unsaved entry Nicht gespeicherter Eintrag + + + ACL list contains errors. +Check rows highlighted in red. The ACL levels or IP addresses are invalid. If you save this dialog, invalid entries will be removed automatically. + Die ACL-Liste enthält Fehler. +Überprüfe die ACL-Stufen der rot markierten Zeilen. Die ACL-Stufen oder IP-Adressen sind ungültig. Beim erneuten Speichern werden die ungültigen Einträge automatisch entfernt. + You worked on a new ACL entry. Do you want to save that entry, too? @@ -32,25 +32,30 @@ Prüfe die roten Einträge in der Tabelle. ACL Level oder IP Adressen sind nicht - Do you really want to quit? -Unsaved changes will be lost - Soll das Fenster wirklich geschlossen werden? -Nicht gespeicherte Änderunen gehen verloren + Quit without saving? +Unsaved changes will be lost. + Ohne Speichern schließen? +Nicht gespeicherte Änderungen gehen verloren. + + + + Invalid ACL level or IP address format. + Ungültige ACL-Stufe oder IP-Adressformat. + + + + Cannot save ACL entry. Check IP address format and ACL level. + ACL-Eintrag kann nicht gespeichert werden. IP-Adressformat und ACL-Stufe prüfen. - Select... - Auswahl... + Select + Auswählen Level - - - - - This entry has an invalid ACL level or wrong IP format! - Dieser Eintrag hat ein ungütiges ACL Lebel oder ein falsches IP Format! + Stufe @@ -59,17 +64,12 @@ Nicht gespeicherte Änderunen gehen verloren Sollen die folgenden Einträge wirklich gelöscht werden? {0} - - - Can not save new ACL entry! Check format of ip address and acl level is in value list. - Kann neuen ACL Eintrag nicht speichern! Bitte IP Adresse und ACL Level prüfen. - AvahiSearch - Auto discovered + Automatically discovered Automatisch erkannt @@ -80,56 +80,6 @@ Nicht gespeicherte Änderunen gehen verloren ConnectionManager - - - SIMULATING - SIMULATION - - - - NOT CONNECTED - NICHT VERBUNDEN - - - - SERVER ERROR - SERVER FEHLER - - - - RUNNING - LÄUFT - - - - PLC FILE NOT FOUND - SPS PROGRAMM NICHT GEFUNDEN - - - - NOT RUNNING (NO STATUS) - LÄUFT NICHT (KEIN STATUS) - - - - PROGRAM KILLED - PROGRAMM GETÖTET - - - - PROGRAM TERMED - PROGRAMM BEENDET - - - - NOT RUNNING - LÄUFT NICHT - - - - FINISHED WITH CODE {0} - BEENDET MIT CODE {0} - Error @@ -140,83 +90,133 @@ Nicht gespeicherte Änderunen gehen verloren The combination of username and password was rejected from the SSH server. Try again. - Die Kombination aus Benutzername und Password wurden vom SSH Server abgelehnt + Die Kombination aus Benutzername und Passwort wurde vom SSH-Server abgelehnt. -Bitte erneut versuchen. +Erneut versuchen. - Could not establish a SSH connection to server: + Cannot connect to SSH server: {0} - Konnte keine Verbindung zum SSH Server herstellen: + Kann keine Verbindung zum SSH-Server herstellen: {0} - - Can not connect to RevPiPyLoad XML-RPC service! + + Cannot connect to RevPiPyLoad service through SSH tunnel. -This could have the following reasons: -- The Revolution Pi is not online -- The RevPiPyLoad service is not running (activate it on your Revolution Pi) -- The RevPiPyLoad XML-RPC service is bind to localhost, only -- The ACL permission is not set for your IP!!! +Possible reasons: +- RevPiPyLoad service is not running. Activate service on your RevPi. +- RevPiPyLoad XML-RPC service is not bound to localhost. +- ACL permission is not set for 127.0.0.1. + Verbindung zum RevPiPyLoad-Dienst über den SSH-Tunnel kann nicht hergestellt werden. -Use 'Connect via SSH' to use an encrypted connection or run 'sudo revpipyload_secure_installation' on Revolution Pi to setup direct remote access! - Kann keine Verbindung zum RevPiPyLoad XML-RPC Dienst herstellen! - -Das kann eine der folgenden Ursachen haben: -- Der Revolution Pi ist nicht online -- Der RevPiPyLoad Dienst läuft nicht (aktiviere Diesen auf dem Revolution Pi) -- Der RevPiPyLoad XML-RPC Dienst ist nur an localhost gebunden -- Die Berechtigungen sind nicht für diese IP gesetzt!!! - -Benutze "Über SSH verbinden" um eine verschlüsselte Verbindung aufzubauen oder führe 'sudo revpipyload_secure_installation' auf dem Revolution Pi aus, um eine direkte Verbindung zu konfigurieren! +Mögliche Ursachen: +- Der RevPiPyLoad-Dienst läuft nicht. Dienst auf dem RevPi aktivieren. +- Der XML-RPC-Dienst von RevPiPyLoad ist nicht an localhost gebunden. +- Für 127.0.0.1 ist keine ACL-Berechtigung gesetzt. - - Can not connect to RevPiPyLoad service through SSH tunnel! + + Cannot connect to RevPiPyLoad XML-RPC service. -This could have the following reasons: -- The RevPiPyLoad service is not running (activate it on your Revolution Pi) -- The RevPiPyLoad XML-RPC service is NOT bind to localhost -- The ACL permission is not set for 127.0.0.1!!! - Kann keine Verbindung zum RevPiPyLoad Dienst über SSH herstellen! +Possible reasons: +- RevPi is offline. +- RevPiPyLoad service is not running. Activate service on your RevPi. +- RevPiPyLoad XML-RPC service is bound to localhost only. +- The ACL permission is not set for your IP. -Das kann eine der folgenden Ursachen haben: -- Der RevPiPyLoad Dienst läuft nicht (aktiviere Diesen auf dem Revolution Pi) -- Der RevPiPyLoad XML-RPC Dienst ist NICHT an localhost gebunden -- Die Berechtigungen sind nicht für 127.0.0.1 gesetzt!!! +Use 'Connect via SSH' to use encrypted connection or run 'sudo revpipyload_secure_installation' on RevPi to set up direct remote access. + Verbindung zum RevPiPyLoad-XML-RPC-Dienst kann nicht hergestellt werden. + +Mögliche Ursachen: +- RevPi ist offline. +- Der RevPiPyLoad-Dienst läuft nicht. Dienst auf dem RevPi aktivieren. +- Der RevPiPyLoad-XML-RPC-Dienst ist nur an localhost gebunden. +- Für die eigene IP-Adresse ist keine ACL-Berechtigung gesetzt. + +Für eine verschlüsselte Verbindung 'Über SSH verbinden' verwenden oder auf dem RevPi 'sudo revpipyload_secure_installation' ausführen, um den direkten Fernzugriff einzurichten. + + + + Simulating + Simulation läuft + + + + Not connected + Nicht verbunden + + + + Server error + Serverfehler + + + + Running + Läuft + + + + PLC file not found + PLC-Datei nicht gefunden + + + + Not running (no status) + Nicht aktiv (kein Status) + + + + Program killed + Programm zwangsweise beendet + + + + Program terminated + Programm beendet + + + + Not running + Nicht gestartet + + + + Finished with exit code {0} + Beendet mit Exit-Code {0} DebugControl - Driver reset for piControl detected. - Treiberneustart in piCtory erkannt. + piControl driver reset detected + Reset des piControl Treibers erkannt - Error while getting values from Revolution Pi. - Fehler bei Werteempfang von RevPi. + Error while getting values from RevPi + Fehler beim Abrufen der Werte vom RevPi - Auto update values... - Werte automatisch aktualisiert... + Updating values + Werte aktualisieren - Values updated... - Werte aktualisiert... + Values updated + Werte aktualisiert - Error set value of device '{0}' Output '{1}': {2} + Error setting value for device '{0}', output '{1}': {2} - Fehler beim Setzen des Ausgangs '{1}' auf Modul '{0}': {2} + Fehler beim Setzen des Werts für Gerät '{0}', Ausgang '{1}': {2} @@ -228,74 +228,69 @@ Das kann eine der folgenden Ursachen haben: DebugIos - - signed - - - - - big_endian - - - - - as text - - - - - as number - - - - - Can not use format text - Formatierung nicht möglich - - - - Can not convert bytes {0} to a text for IO '{1}'. Switch to number format instead! - Kann bytes {0} für '{1}' nicht in Text konvertieren. Wechseln Sie auf Nummernformat! - - - - switch wordorder - Wordorder tauschen - - - + Reset counter Zähler zurücksetzen - - can not display - kann nicht angezeigt werden + + Cannot display + Anzeige nicht möglich - - Relais {0} - + + Relay {0} + Relais {0} - + Switching cycles{0}: {1} Schaltzyklen{0}: {1} - + + As text + Als Text + + + + As number + Als Zahl + + + + Signed + Signiert + + + + Big-endian + Big-Endian + + + + Swap word order + Wortreihenfolge tauschen + + + Error Fehler - - Could not reset the counter value - Kann Zähler nicht zurücksetzen + + Cannot reset counter value. + Zählerwert kann nicht zurückgesetzt werden. - - Can not display - Kann nicht angezeigt werden + + Cannot use text format. + Textformat kann nicht verwendet werden. + + + + Cannot convert bytes {0} to text for I/O '{1}'. Switch to number format instead. + Bytes {0} können für I/O „{1}“ nicht in Text umgewandelt werden. Stattdessen das Zahlenformat verwenden. @@ -305,6 +300,13 @@ Das kann eine der folgenden Ursachen haben: Question Frage + + + Quit without saving? +Unsaved changes will be lost. + Ohne Speichern beenden? +Nicht gespeicherte Änderungen gehen verloren. + Error @@ -312,133 +314,141 @@ Das kann eine der folgenden Ursachen haben: - Can not load the MQTT settings dialog. Missing values! - Kann MQTT Einstellungen nicht laden. Es fehlen Werte! - - - - Do you really want to quit? -Unsaved changes will be lost. - Soll das Fenster wirklich geschlossen werden? -Ungesicherte Änderungen gehen verloren. + Cannot load the MQTT settings dialog. Missing values. + MQTT-Einstellungsdialog kann nicht geladen werden. Fehlende Werte. RevPiCommander - - - Simulator started... - Simulator gestartet... - - - - Can not start... - Kann nicht gestartet werden... - Warning Warnung - - - This version of Logviewer ist not supported in version {0} of RevPiPyLoad on your RevPi! You need at least version 0.4.1. - Diese Version vom Logbetrachter wird in RevPiPyLoad Version {0} nicht unterstützt! Es wird mindestens Version 0.4.1 benötigt. - - - - XML-RPC access mode in the RevPiPyLoad configuration is too small to access this dialog! - XML-RPC Zugriffsberechtigung in der RevPiPyLoad Konfiguraiton ist zu klein für diese Einstellungen! - Error Fehler - - - The Version of RevPiPyLoad on your Revolution Pi ({0}) is to old. This Version of RevPiCommander require at least version 0.6.0 of RevPiPyLoad. Please update your Revolution Pi! - Die Version von RevPiPyLoad ({0}) auf dem Revolution Pi ist zu alt. Diese Version vom RevPiCommander braucht mindestens Version 0.6.0. Bitte aktualisiere deinen Revolution Pi! - Question Frage - - - Are you sure to reset piControl? -The pictory configuration will be reloaded. During that time the process image will be interrupted and could rise errors on running control programs! - Soll piControl wirklich zurückgesetzt werden? -Die piCtory Konfiguration wird neu geladen. Das Prozessabbild wird in dieser Zeit nicht verfügbar sein und es könnten Fehler in Steuerungsprogrammen ausgelöst werden! - Success - Erfolgreich + Erfolg - - piControl reset executed successfully - piControl wurde erfolgreich zurückgesetzt + + Connecting to RevPi + Verbindung zum RevPi wird hergestellt - - piControl reset could not be executed successfully - piControl konnte nicht zurückgesetzt werden + + Connected to RevPi + Mit dem RevPi verbunden - - Reset to piCtory defaults... - Standardwerte von piCtory laden... + + Connecting + Verbinden - - The watch mode ist not supported in version {0} of RevPiPyLoad on your RevPi! You need at least version 0.5.3! Maybe the python3-revpimodio2 module is not installed on your RevPi at least version 2.0.0. - Der SPS Betrachter ist in Version {0} von RevPiPyLoad auf dem Rev Pi nicht unterstützt! Es muss mindestens Version 0.5.3 installiert sein! Vielleicht fehlt auch das python3-revpimodio2 Modul, welches mindestens Version 2.0.0 haben muss. - - - - Can not load this function, because your ACL level is to low! -You need at least level 1 to read or level 3 to write. - Für diese Funktion ist das Berechtigungslevel zu gering! -Es muss mindestens Level 1 zum Lesen oder Level 3 zu Schreiben sein. - - - - Can not load piCtory configuration. -Did you create a hardware configuration? Please check this in piCtory! - Kann piCtory Konfiguration nicht laden. -Wurde eine Hardwarekonfiguration in piCtory erzeugt? Bitte prüfe dies in piCtory! + + Cannot connect to the RevPiPyLoad service through the SSH tunnel. + +Service activation and reconnection in progress. The settings can be changed at any time via Cockpit. + Kann keine Verbindung zum RevPiPyLoad-Dienst über den SSH-Tunnel hergestellt werden. Dienstaktivierung und Wiederanbindung in Arbeit. Die Einstellungen können jederzeit über Cockpit geändert werden. - The simulator is running! - -You can work with this simulator if your call RevPiModIO with this additional parameters: -procimg={0} -configrsc={1} - -You can copy that from header textbox. - Der Simulator läuft! - -Du kannst mit der Simulation arbeiten, wenn du RevPiModIO mit diesen zusätzlichen Parametern instantiierst: -procimg={0} -configrsc={1} - -Dies kann aus der Textbox oben kopiert werden. + Simulator started + Simulator gestartet - Can not start the simulator! Maybe the piCtory file is corrupt or you have no write permissions for '{0}'. - Kann Simulator nicht starten! Vielleicht ist die piCtory Datei defekt oder es gibt keine Schreibberechtigung für '{0}'. + Cannot start + Kann nicht starten + + + + Simulator is running. + +Use the additional RevPiModIO parameters: +procimg={0} +configrsc={1} + +from the header text box. + Simulator läuft. + +Die zusätzlichen RevPiModIO-Parameter: +procimg={0} +configrsc={1} + +aus dem Textfeld in der Kopfzeile verwenden. + + + + Cannot start the simulator. The PiCtory file might be invalid or you do not have write permissions for '{0}'. + Simulator kann nicht gestartet werden. Die PiCtory Datei ist möglicherweise ungültig oder für „{0}“ fehlen Schreibrechte. + + + + This version of Log Viewer is not supported in version {0} of RevPiPyLoad on your RevPi. At least version 0.4.1 is required. + Diese Version des Log Viewers wird von RevPiPyLoad {0} auf dem RevPi nicht unterstützt. Mindestens Version 0.4.1 ist erforderlich. + + + + XML-RPC access mode in the RevPiPyLoad configuration is too low to access this dialog. + Der XML-RPC-Zugriffsmodus in der RevPiPyLoad Konfiguration ist zu niedrig, um auf diesen Dialog zuzugreifen. + + + + The version of RevPiPyLoad on your RevPi ({0}) is too old. This version of RevPi Commander requires at least version 0.6.0 of RevPiPyLoad. Update your RevPi. + Die Version von RevPiPyLoad auf dem RevPi ({0}) ist zu alt. Für diese Version von RevPi Commander wird mindestens RevPiPyLoad 0.6.0 benötigt. RevPi aktualisieren. + + + + Are you sure you want to reset piControl? +The PiCtory configuration will be reloaded. During that time, the process image will be interrupted and could cause errors on running control programs. + piControl wirklich zurücksetzen? +Die PiCtory-Konfiguration wird neu geladen. Das Prozessabbild wird dabei kurzzeitig unterbrochen und kann Fehler in laufenden Steuerungsprogrammen verursachen. + + + + piControl reset completed successfully. + piControl wurde erfolgreich zurückgesetzt. + + + + piControl reset could not be completed. + piControl konnte nicht zurückgesetzt werden. + + + + Reset to PiCtory defaults + Auf PiCtory Standardwerte zurücksetzen + + + + The watch mode is not supported in version {0} of RevPiPyLoad on your RevPi. At least version 0.5.3 is required. The python3-revpimodio2 module may be missing or older than version 2.0.0. + Der Watch-Modus wird von RevPiPyLoad {0} auf dem RevPi nicht unterstützt. Mindestens Version 0.5.3 ist erforderlich. Das Modul python3-revpimodio2 fehlt möglicherweise oder ist älter als Version 2.0.0. + + + + Cannot load this function, because your ACL level is too low. +At least level 1 to read or level 3 to write is required. + Diese Funktion kann nicht verwendet werden, da die ACL-Stufe zu niedrig ist. +Zum Lesen ist mindestens Stufe 1, zum Schreiben mindestens Stufe 3 erforderlich. Do you want to reset your process image to {0} values? You have to stop other RevPiModIO programs before doing that, because they could reset the outputs. - Soll das virtuelle Prozessabbild auf {0} zurückgesetzt werden? -Es sollten alle RevPiModIO Programme vorher beendet werden, da diese ihre IO Werte sofort wieder schreiben würden. + Prozessabbild auf die Werte aus {0} zurücksetzen? +Vorher müssen alle anderen RevPiModIO-Programme beendet werden, da diese die Ausgänge zurücksetzen könnten. @@ -447,154 +457,109 @@ Es sollten alle RevPiModIO Programme vorher beendet werden, da diese ihre IO Wer - piCtory default - piCtory Standardwerte + PiCtory defaults + PiCtory Standardwerte - - Revolution Pi connected! - Revolution Pi verbunden! - - - - Connecting... - Verbinde... - - - - Establish a connection to the Revolution Pi... - Baue eine Verbindung zum Revolution Pi auf... + + Cannot load PiCtory configuration. +Check hardware configuration in PiCtory. + PiCtory Konfiguration kann nicht geladen werden. +Hardwarekonfiguration in PiCtory prüfen. Information Information - - - Can not connect to RevPiPyLoad service through SSH tunnel! - -We are trying to activate this service now and reconnect. The settings can be changed at any time via 'webstatus'. - Vielleicht läuft der RevPiPyLoad Dienst nicht. - -Wir versuchen diesen Dienst jetzt zu aktivieren und verbinden uns neu. Die Einstellungen können über 'Webstatus' jederzeit geändert werden. - RevPiFiles - - - Please select... - Bitte auswählen... - Error Fehler - - - Can not stop plc program on Revolution Pi. - Kann SPS Programm auf Rev Pi nicht stoppen. - - - - The Revolution Pi could not process some parts of the transmission. - Der Revolution Pi hat Teile der Übertragung nicht durchgeführt. - - - - Errors occurred during transmission - Fehler bei Übertragung aufgetreten - Warning Warnung - - Could not start the plc program on Revolution Pi. - Kann das SPS Programm auf dem Revolution Pi nicht starten. + + Select + Auswählen - - Can not open last directory '{0}'. - Kann letztes Verzeichnis '{0}' nicht öffnen. + + Cannot stop PLC program on RevPi. + SPS-Programm auf dem RevPi kann nicht gestoppt werden. - - Stop scanning for files, because we found more than {0} files. - Dateisuche wurde angehalten, da mehr als {0} Dateien gefunden wurden. - - - - Could not load path of working dir - Kann Arbeitsverzeichnis nicht laden - - - - Can not load file list from Revolution Pi. - Kann Dateiliste vom Revolution Pi nicht laden. - - - - Select folder... - Ordner auswählen... - - - - Can not access the folder '{0}' to read files. - Keine Berechtigung für Zugriff auf Ordner '{0}'. - - - - Error... - Fehler... - - - - Error while download file '{0}'. - Fehler beim Herunterladen der Datei '{0}'. - - - - Override files... - Dateien überschreiben... - - - - One or more files does exist on your computer! Do you want to override the existingfiles? - -Select 'Yes' to override, 'No' to download only missing files. - Eine oder mehrere Dateien existieren auf diesem Computer! Sollen bestehende Dateien überschrieben werden? - -Wählen Sie 'Ja' zum Überschreiben, 'Nein' um nur fehlende Dateien zu laden. - - - - Delete files from Revolution Pi... - Dateien auf Rev Pi löschen... - - - - Do you want to delete {0} files from revolution pi? - Sollen {0} Dateien vom Revolution Pi gelöscht werden? - - - - Error while delete file '{0}'. - Fehler beim Löschen der Datei '{0}'. + + File transfer + Dateiübertragung Information Information + + + RevPi cannot process some parts of the transmission. + RevPi kann einige Teile der Übertragung nicht verarbeiten. + + + + Cannot start the PLC program on RevPi. + Es kann kein PLC-Programm auf RevPi gestartet werden. + + + + Deletes selected files immediately on RevPi. + Ausgewählte Dateien werden sofort von RevPi gelöscht. + + + + Cannot load the working directory path. + Der Arbeitsverzeichnispfad kann nicht geladen werden. + + + + Overwrite files + Überschreiben Dateien + + + + Cannot save settings on RevPi. +Try saving the values one more time and check the RevPiPyLoad log files if the error occurs again. + Es kann keine Einstellungen auf RevPi gespeichert werden. Versuche die Werte noch einmal zu speichern und überprüfe die Logdateien von RevPiPyLoad, wenn der Fehler erneut auftreten sollte. + + + + Errors occurred during transmission. + Fehler bei Übertragung aufgetreten. + - A PLC program has been uploaded. Please check the PLC program settings to see if the correct program is specified as the start program. - Ein SPS Programm wurde hochgeladen. Bitte prüfe die SPS Programmeinstellungen ob das richtige Startprogramm gewählt ist. + A PLC program has been uploaded. Check the PLC program settings to see if the correct program is specified as the start program. + Ein SPS-Programm wurde hochgeladen. Prüfen, ob das richtige Programm als Startprogramm festgelegt ist. + + + + Set as start program. + Als Startprogramm festlegen. + + + + Upgrade your RevPi. This function needs at least 'revpipyload' 0.11.0. + Aktualisiere dein RevPi. Diese Funktion benötigt mindestens 'revpipyload' 0.11.0. + + + + Upgrade your RevPi. This function needs at least 'revpipyload' 0.9.5. + Aktualisiere dein RevPi. Diese Funktion benötigt mindestens 'revpipyload' 0.9.5. @@ -602,44 +567,64 @@ Wählen Sie 'Ja' zum Überschreiben, 'Nein' um nur fehlende Lokales Verzeichnis wählen. - - File transfer... - Dateiübertragung... + + Cannot open last directory '{0}'. + Letztes Verzeichnis '{0}' kann nicht geöffnet werden. - - Upgrade your Revolution Pi! This function needs at least 'revpipyload' 0.11.0 - Aktualisiere deinen Revolution Pi! Diese Funktion benötigt mindestens 'revpipyload' 0.11.0 + + Stopped scanning for files because more than {0} files were found. + Die Suche nach Dateien wurde beendet, weil mehr als {0} Dateien gefunden wurden. - - Upgrade your Revolution Pi! This function needs at least 'revpipyload' 0.9.5 - Aktualisiere deinen Revolution Pi! Diese Funktion benötigt mindestens 'revpipyload' 0.9.5 + + Cannot load file list from RevPi. + Es kann keine Dateiliste von RevPi geladen werden. - - Deletes selected files immediately on the Revolution Pi - Löscht ausgewählte Dateien sofort auf dem Revolution Pi + + Select folder + Verzeichnis wählen - - The settings could not be saved on the Revolution Pi! -Try to save the values one mor time and check the log files of RevPiPyLoad if the error rises again. - Die Einstellungen konnten nicht auf dem Revolution Pi gespeichert werden! -Versuche es erneut und prüfe die Logdateien von RevPiPyLoad, wenn der Fehler erneut auftritt. + + Cannot access the folder '{0}' to read files. + Kann das Verzeichnis '{0}' nicht zum Lesen von Dateien zugreifen. - - Set as start file - Als Startdatei festlegen + + Error while downloading file '{0}'. + Fehler beim Herunterladen der Datei '{0}'. + + + + One or more files already exist on your computer. Do you want to overwrite the existing files? + +Select 'Yes' to overwrite, 'No' to download only missing files. + Eine oder mehrere Dateien sind bereits auf dem Computer vorhanden. Vorhandene Dateien überschreiben? 'Ja' überschreibt vorhandene Dateien, 'Nein', lädt nur fehlende Dateien herunter. + + + + Delete files from RevPi + Lösche Dateien von RevPi + + + + Do you want to delete {0} files from RevPi? + Möchten Sie {0} Dateien von RevPi löschen? + + + + Error while deleting file '{0}'. + Fehler beim Löschen der Dateis '{0}'. RevPiInfo - Can not load file list - Kann Dateiliste nicht laden + Cannot load file list. + Kann Dateiliste nicht laden. @@ -651,8 +636,8 @@ Versuche es erneut und prüfe die Logdateien von RevPiPyLoad, wenn der Fehler er RevPiLogfile - Can not access log file on the RevPi - Kann auf Logbuch vom RevPi nicht zugreifen + Cannot access log file on RevPi. + Auf die Logdatei auf dem RevPi kann nicht zugegriffen werden. @@ -662,89 +647,89 @@ Versuche es erneut und prüfe die Logdateien von RevPiPyLoad, wenn der Fehler er Question Frage + + + Running + Läuft + + + + Stopped + Gestoppt + + + + Read-only + Schreibgeschützt + + + + Read/write + Lesen/Schreiben + + + + Start/stop PLC program and read log files + SPS-Programm starten/stoppen und Logdateien lesen + - The settings will be set on the Revolution Pi now. + Applying settings on RevPi. ACL changes and service settings are applied immediately. - Die Einstellungen werden jetzt auf dem Revolution Pi angewendet. + Einstellungen werden auf dem RevPi angewendet. -Berechtigungseinstellungen werden sofort gesetzt. +ACL-Änderungen und Diensteinstellungen werden sofort übernommen. + + + + Cannot save settings on RevPi +Try saving the values one more time and check the RevPiPyLoad log files if the error occurs again. + Einstellungen können nicht auf dem RevPi gespeichert werden. +Speichern erneut versuchen. Tritt der Fehler erneut auf, die RevPiPyLoad-Logdateien prüfen. + + + + Quit without saving? +Unsaved changes will be lost. + Beenden ohne Speichern? +Nicht gespeicherte Änderungen gehen verloren. + + + + Are you sure you want to deactivate the XML-RPC server? RevPi will no longer be accessible from this program after saving settings. + XML-RPC-Server wirklich deaktivieren? Nach dem Speichern der Einstellungen kann nicht mehr über dieses Programm auf den RevPi zugegriffen werden. + + + + + Read I/Os in watch mode + + I/Os im Monitor-Modus lesen + + + + + Read properties and download PLC program + + Eigenschaften lesen und PLC-Programm herunterladen + + + + + Upload PLC program + + PLC-Programm hochladen + + + + + Set properties + + Eigenschaften setzen Error Fehler - - - The settings could not be saved on the Revolution Pi! -Try to save the values one mor time and check the log files of RevPiPyLoad if the error rises again. - Die Einstellungen konnten nicht auf dem Revolution Pi gespeichert werden! -Versuche es erneut und prüfe die Logdateien von RevPiPyLoad, wenn der Fehler erneut auftritt. - - - - Do you really want to quit? -Unsaved changes will be lost. - Soll das Fenster wirklich geschlossen werden? -Ungesicherte Änderungen gehen verloren. - - - - running - läuft - - - - stopped - angehalten - The MQTT service is not available on your RevPiPyLoad version. MQTT ist in der RevPiPyLoad Version nicht verfügbar. - - - read only - Nur lesen - - - - read and write - lesen und schreiben - - - - Are you sure you want to deactivate the XML-RPC server? You will NOT be able to access the Revolution Pi with this program after saving the options! - Willst du den XML-RPC Server wirklich deaktivieren? Du wirst dich NICHT mehr mit diesem Programm zum Revolution Pi verbinden können! - - - - Start/Stop PLC program and read logs - SPS Programm starten/stoppen und Logs lesen - - - - + read IOs in watch mode - + EAs in SPS Betrachter lesen - - - - + read properties and download PLC program - + Einstellungen lesen und SPS Programm herunterladen - - - - + upload PLC program - + SPS Programm hochladen - - - - + set properties - + Einstellungen ändern - RevPiPlcList @@ -755,19 +740,18 @@ Ungesicherte Änderungen gehen verloren. - Do you really want to quit? + Quit without saving? Unsaved changes will be lost. - Soll das Fenster wirklich geschlossen werden? -Ungesicherte Änderungen gehen verloren. + Ohne Speichern schließen? Nicht gespeicherte Änderungen gehen verloren. - If you remote this folder, all containing elements will be removed, too. + If you remove this folder, all contained items will be removed as well. -Do you want to delete folder and all elements? - Wird dieser Ordner gelöscht, betrifft dies auch alle Elemente im Ordner. +Do you want to delete the folder and all contained items? + Beim Löschen dieses Ordners werden auch alle enthaltenen Elemente gelöscht. -Wollen sie den Ordner und alle Elemente löschen? +Ordner und alle enthaltenen Elemente löschen? @@ -782,288 +766,289 @@ Wollen sie den Ordner und alle Elemente löschen? Error Fehler - - - You have to select a start program, before uploading the settings. - Es muss erst ein Startprogramm gewählt werden. - Question Frage - - - The settings will be set on the Revolution Pi now. - -If you made changes on the 'PCL Program' section, your plc program will restart now! - Die Einstellungen werden jetzt auf dem Revolution Pi angewendet. - -Sollte es Änderungen in dem SPS Programmabschnitt geben, wird das SPS Programm neu gestartet! - - - - The settings could not be saved on the Revolution Pi! -Try to save the values one mor time and check the log files of RevPiPyLoad if the error rises again. - Die Einstellungen konnten nicht auf dem Revolution Pi gespeichert werden! -Versuche es erneut und prüfe die Logdateien von RevPiPyLoad, wenn der Fehler erneut auftritt. - - - - Do you really want to quit? -Unsaved changes will be lost. - Soll das Fenster wirklich geschlossen werden? -Ungesicherte Änderungen gehen verloren. - - - - Reset driver... - Treiber zurücksetzen... - - - - Reset piControl driver after successful uploading new piCtory configuration? -The process image will be interrupted for a short time! - Soll piControl nach dem erfolgreichen Hochladen der neuen piCtory Konfiguration zurückgesetzt werden? -Das Prozessabbild wird kurzzeitig nicht verfügbar sein! - - - - Got an network error while send data to Revolution Pi. -Please try again. - Beim Senden der Daten an den Revolution Pi trat ein Netzwerkfehler auf. -Versuche es erneut. - Success - Erfolgreich - - - - The transfer of the piCtory configuration and the reset of piControl have been successfully executed. - Die piCtory Übertragung und der Reset von piControl wurden erfolgreich durchgeführt. - - - - The piCtory configuration was successfully transferred. - Die piCtory Konfiguration wurde erfolgreich übertragen. - - - - Can not process the transferred file. - Kann die Übertragene Datei nicht verarbeiten. - - - - Can not find main elements in piCtory file. - Konnte piCtory Struktur nicht erkennen. - - - - Contained devices could not be found on Revolution Pi. The configuration may be from a newer piCtory version! - Enthaltene Module können auf dem Revolution Pi nicht gefunden werden. Die Konfiguraiton könnte von einer neueren piCtory Version stammen! - - - - Could not load RAP catalog on Revolution Pi. - Kann RAP Katalog auf dem Revolution Pi nicht laden. - - - - The piCtory configuration could not be written on the Revolution Pi. - Die piCtory Konfiguration konnte nicht auf dem Revolution Pi geschrieben werden. + Erfolg Warning Warnung - - - The piCtroy configuration has been saved successfully. -An error occurred on piControl reset! - Die piCtory Konfiguration wurde erfolgreich hochgeladen. -Es trat jedoch ein Fehler beim Zurücksetzen von piControl auf! - - - - Save ZIP archive... - ZIP Archiv speichern... - ZIP archive (*.zip);;All files (*.*) - ZIP Archive (*.zip);;Alle Dateien (*.*) - - - - Save TGZ archive... - TGZ Archiv speichern... + ZIP-Archiv (*.zip);;Alle Dateien (*.*) TGZ archive (*.tgz);;All files (*.*) - TAR Archive (*.tgz);;Alle Dateien (*.*) - - - - Could not load PLC program from Revolution Pi. - Kann SPS Programm nicht vom Revolution Pi laden. - - - - Coud not save the archive or extract the files! -Please retry. - Konnte das Archiv nicht speichern oder extrahieren! -Versuche es erneut. + TAR-Archiv (*.tgz);;Alle Dateien (*.*) Transfer successfully completed. Übertragung erfolgreich abgeschlossen. - - - Upload content of ZIP archive... - ZIP Archiv hochladen... - - - - The selected file ist not a ZIP archive. - Die ausgewählte Datei ist kein ZIP Archiv. - - - - Upload content of TAR archive... - TAR Archiv hochladen... - TAR archive (*.tgz);;All files (*.*) - TAR Archive (*.tgz);;Alle Dateien (*.*) + TAR-Archiv (*.tgz);;Alle Dateien (*.*) - - The selected file ist not a TAR archive. - Die ausgewählte Datei ist kein TAR Archiv. + + You must select a start program before uploading the settings. + Vor dem Hochladen der Einstellungen muss ein Startprogramm ausgewählt werden. + + + + Saving settings on RevPi. + +If you made changes in the 'PLC Program' section, your PLC program will be restarted. + Einstellungen werden auf dem RevPi gespeichert. + +Bei Änderungen im Abschnitt „SPS-Programm“ wird das SPS-Programm neu gestartet. + + + + Cannot save settings on RevPi. +Try saving the values one more time and check the RevPiPyLoad log files if the error occurs again. + Einstellungen können nicht auf dem RevPi gespeichert werden. + +Speichern erneut versuchen. Tritt der Fehler weiterhin auf, die RevPiPyLoad-Logdateien prüfen. + + + + Quit without saving? +Unsaved changes will be lost. + Ohne Speichern beenden? +Nicht gespeicherte Änderungen gehen verloren. + + + + Reset driver + Treiber zurücksetzen + + + + Reset piControl driver after successfully uploading the new PiCtory configuration? +The process image will be interrupted for a short time. + piControl Treiber nach dem Hochladen der neuen PiCtory Konfiguration zurücksetzen? +Das Prozessabbild wird kurzzeitig unterbrochen. + + + + The transfer of the PiCtory configuration and the reset of piControl have been successfully executed. + Die Übertragung der PiCtory Konfiguration und das Zurücksetzen von piControl wurden erfolgreich ausgeführt. + + + + The PiCtory configuration was successfully transferred. + Die PiCtory Konfiguration wurde erfolgreich übertragen. + + + + Cannot process the transferred file. + Die übertragene Datei kann nicht verarbeitet werden. + + + + Cannot find main elements in PiCtory file. + Hauptelemente in der PiCtory Datei können nicht gefunden werden. + + + + Cannot find contained devices on RevPi. +The configuration may be from a newer PiCtory version. + Die auf dem RevPi vorhandenen Geräte können nicht gefunden werden. +Die Konfiguration stammt möglicherweise aus einer neueren PiCtory Version. + + + + Cannot load RAP catalog on RevPi. + RAP-Katalog kann auf dem RevPi nicht geladen werden. + + + + Cannot write PiCtory configuration on RevPi. + PiCtory Konfiguration kann nicht auf den RevPi geschrieben werden. + + + + Cannot load PLC program from RevPi. + SPS-Programm kann nicht vom RevPi geladen werden. + + + + Cannot save the archive or extract the files. +Try again. + Archiv kann nicht gespeichert oder Dateien können nicht entpackt werden. +Erneut versuchen. - No files to upload... - Keine Dateien zum Hochladen... - - - - Found no files to upload in given location or archive. - Konnte keine Dateien in der Quelle zum Hochladen finden. + No files to upload + Keine Dateien zum Hochladen vorhanden - There was an error deleting the files on the Revolution Pi. -Upload aborted! Please try again. - Beim Löschen der Dateien auf dem Revolution Pi ist ein Fehler aufgetreten. -Hochladen abgebrochen! Versuche es erneut. + Cannot delete files on RevPi. +Upload aborted. Try again. + Dateien auf dem RevPi können nicht gelöscht werden. +Hochladen abgebrochen. Erneut versuchen. + + + + Cannot find the selected PLC start program in the uploaded files. +This is not an error if the file already exists on RevPi. Check the PLC start program field. + Das ausgewählte SPS-Startprogramm wurde in den hochgeladenen Dateien nicht gefunden. +Dies ist kein Fehler, wenn die Datei bereits auf dem RevPi vorhanden ist. Das Feld SPS-Startprogramm prüfen. + + + + RevPi cannot process some parts of the transmission. + Der RevPi kann Teile der übertragenen Daten nicht verarbeiten. + + + + Cannot load PiCtory file from RevPi. + PiCtory Datei kann nicht vom RevPi geladen werden. + + + + PiCtory configuration saved to: +{0}. + Die PiCtory Konfiguration wurde gespeichert unter: {0}. + + + + Cannot load process image from RevPi. + Prozessabbild kann nicht vom RevPi geladen werden. + + + + Process image saved to: +{0}. + Das Prozessabbbild wurde gespeichert unter: {0}. + + + + The PiCtory configuration has been saved successfully. +An error occurred on piControl reset. + Die PiCtory-Konfiguration wurde erfolgreich gespeichert. +Beim Zurücksetzen von piControl ist ein Fehler aufgetreten. + + + + Network error while sending data to RevPi. +Try again. + Netzwerkfehler beim Senden von Daten an den RevPi. +Erneut versuchen. + + + + Save ZIP archive + ZIP-Archiv speichern + + + + Save TGZ archive + TGZ-Archiv speichern + + + + Upload content of ZIP archive + Inhalt des ZIP-Archivs hochladen + + + + The selected file is not a ZIP archive. + Die ausgewählte Datei ist kein ZIP-Archiv. + + + + Upload content of TAR archive + Inhalt des TAR-Archivs hochladen + + + + The selected file is not a TAR archive. + Die ausgewählte Datei ist kein TAR-Archiv. + + + + No files found in the selected location or archive. + Keine Dateien am ausgewählten Speicherort oder im Archiv gefunden. The PLC program was transferred successfully. - Das SPS Programm wurde erfolgreich übertragen. + Das SPS-Programm wurde erfolgreich übertragen. Information Information - - - Could not find the selected PLC start program in uploaded files. -This is not an error, if the file was already on the Revolution Pi. Check PLC start program field - Konnte eingestelltes SPS Starprogramm in hochgeladenen Dateien nicht finden. -Dies ist kein Fehler, wenn das SPS Startprogramm bereits auf dem Rev Pi ist. Prüfe SPS Programm Einstellungen - - There is no piCtory configuration in this archive. - Kann keine piCtory Konfiguration im Archiv finden. + There is no PiCtory configuration in this archive. + Keine PiCtory Konfiguration im Archiv gefunden. - - The Revolution Pi could not process some parts of the transmission. - Der Revolution Pi konnte Teile der Übertragung nicht verarbeiten. + + Save PiCtory file + PiCtory Datei speichern + + + + PiCtory file (*.rsc);;All files (*.*) + PiCtory Datei (*.rsc); Alle Dateien (*.*) + + + + Upload PiCtory file + PiCtory Datei hochladen + + + + Save piControl file + piControl Datei speichern Errors occurred during transmission. - Fehler bei Übertragung aufgetreten. - - - - Save piCtory file... - piCtory Datei speichern... - - - - piCtory file (*.rsc);;All files (*.*) - piCtory Datei (*.rsc);;Alle Dateien (*.*) - - - - Could not load piCtory file from Revolution Pi. - Kann piCtory Konfiguration nicht vom Revolution Pi laden. - - - - piCtory configuration successfully loaded and saved to: -{0}. - piCtory Konfiguration erfolgreich geladen und gespeichert als: -{0}. - - - - Upload piCtory file... - piCtory datei hochladen... - - - - Save piControl file... - piCtory Datei speichern... + Bei der Übertragung sind Fehler aufgetreten. Process image file (*.img);;All files (*.*) - Processabbild (*.img);;Alle Dateien (*.*) - - - - Could not load process image from Revolution Pi. - Kann Prozessabbild von Revolution Pi nicht laden. - - - - Process image successfully loaded and saved to: -{0}. - Prozessabbild erfolgreich geladen und gespeichert als: -{0}. + Prozessabbild (*.img);;Alle Dateien (*.*) SSHAuth - Could not save password - Konnte Kennwort nicht speichern + Cannot save password + Passwort kann nicht gespeichert werden - Could not save password to operating systems password save. + Cannot save password to operating system's password store. -Maybe your operating system does not support saving passwords. This could be due to missing libraries or programs. +The operating system may not support saving passwords. This could be due to missing libraries or programs. -This is not an error of RevPi Commander. - Konnte das Kennwort nicht im Kennwortspeicher des Betriebssystems speichern. +This is not a RevPi Commander error. + Passwort kann nicht im Passwortspeicher des Betriebssystems gespeichert werden. -Vielleicht untersützt das Betriebssystem keine Kennwortspeicherung. Dies könnte an fehlenden Bibliotheken oder Programmen liegen. +Das Betriebssystem unterstützt das Speichern von Passwörtern möglicherweise nicht. Ursache können fehlende Bibliotheken oder Programme sein. Dies ist kein Fehler von RevPi Commander. @@ -1072,31 +1057,26 @@ Dies ist kein Fehler von RevPi Commander. Simulator - Select downloaded piCtory file... - Heruntergeladene piCtory Datei auswählen... + Select downloaded PiCtory file + Heruntergeladene PiCtory Datei auswählen - piCtory file (*.rsc);;All files (*.*) - piCtory Datei (*.rsc);;Alle Dateien (*.*) + PiCtory file (*.rsc);;All files (*.*) + PiCtory Datei (*.rsc);;Alle Dateien (*.*) diag_aclmanager - IP access control list - IP Berechtigungsliste + IP Access Control List + IP-Zugriffsliste Existing ACLs - Aktuelle ACLs - - - - IP Address - IP Adresse + Vorhandene ACLs @@ -1113,10 +1093,15 @@ Dies ist kein Fehler von RevPi Commander. &Remove &Löschen + + + IP address + IP-Adresse + - Add / Edit access entry - Eintrag hinzufügen / bearbeiten + Add/Edit Access Entry + Zugriffseintrag hinzufügen/bearbeiten @@ -1126,12 +1111,12 @@ Dies ist kein Fehler von RevPi Commander. &Save entry - Eintrag &Speichern + Eintrag &speichern IP address: - IP Adresse: + IP-Adresse: @@ -1141,16 +1126,6 @@ Dies ist kein Fehler von RevPi Commander. diag_connections - - - Revolution Pi connections - Revolution Pi Verbindungen - - - - Connection name - Verbindungsname - Address @@ -1161,36 +1136,41 @@ Dies ist kein Fehler von RevPi Commander. Display name: Anzeigename: - - - Sub folder: - Unterordner: - Address (DNS/IP): Adresse (DNS/IP): - - - Port (Default {0}): - Port (Standard {0}): - Connection timeout: Verbindungs-Timeout: - - sec. - Sek. + + RevPi Connections + RevPi Verbindungen Connection Verbindung + + + Port (default {0}): + Port (Standardwert {0}): + + + + s + s + + + + Subfolder: + Unterordner: + Over SSH @@ -1199,17 +1179,22 @@ Dies ist kein Fehler von RevPi Commander. Connect over SSH tunnel: - Über SSH Tunnel verbinden: + Über SSH-Tunnel verbinden: SSH port: - SSH Port: + SSH-Port: SSH user name: - SSH Benutzername: + SSH-Benutzername: + + + + Connection Name + Verbindungsname @@ -1217,52 +1202,70 @@ Dies ist kein Fehler von RevPi Commander. MQTT settings - MQTT Einstellungen + MQTT-Einstellungen Base topic - Basistopic + Basis-Topic + + + + Base topic is the prefix for MQTT topics published by RevPi. Use "/" to structure broker topics. + +For example: revpi0000/data + Das Basis-Topic dient als Präfix für die von RevPi veröffentlichten MQTT-Topics. Zur Strukturierung der Topics im Broker "/" verwenden. + +Beispiel: revpi0000/data Base topic: - Basistopic: + Basis-Topic: Publish settings - Publish Einstellungen + Publish-Einstellungen Publish all exported values every n seconds: - Exportierte Werte all n Sekunden senden: + Alle exportierten Werte alle n Sekunden veröffentlichen: Send exported values immediately on value change - Exportierte Werte sofort bei Änderung senden + Exportierte Werte bei Änderung sofort senden Set outputs Ausgänge setzen + + + RevPi subscribes to an MQTT topic for setting output values. Publish the new I/O value as payload. + +Publish values with topic: [basetopic]/set/[outputname] + RevPi abonniert ein MQTT-Topic zum Setzen von Ausgangswerten. Den neuen I/O-Wert als Payload veröffentlichen. + +Topic für die Veröffentlichung von Werten: [basetopic]/set/[outputname] + - Allow MQTT to to set outputs on Revolution Pi - Erlaube per MQTT Ausgänge auf dem RevPi zu setzen + Allow MQTT to set outputs on RevPi + MQTT-Schreibzugriff auf Ausgänge erlauben Broker address: - Broker Adresse: + Broker-Adresse: Broker port: - Broker Port: + Broker-Port: @@ -1282,16 +1285,7 @@ Dies ist kein Fehler von RevPi Commander. Broker settings - Broker Einstellungen - - - - The base topic is the first part of any mqtt topic, the Revolution Pi will publish. You can use any character includig '/' to structure the messages on your broker. - -For example: revpi0000/data - Der Basistopic wird allen MQTT Topics vorangestellt, welche der Revolution Pi veröffentlicht. Es können alle Zeichen inklusive '/' verwendet werden, um die Nachrichten auf dem Broker zu strukturieren. - -Zum Beispiel: revpi0000/data + Broker-Einstellungen @@ -1303,19 +1297,10 @@ Zum Beispiel: revpi0000/data Topic: [basetopic]/event/[ioname] Topic: [basistopic]/io/[eaname] - - - The Revolution Pi will subscribe a topic on which your mqtt client can publish messages with the new io value as payload. - -Publish values with topic: [basetopic]/set/[outputname] - Der Revolution Pi abonniert ein Topic, auf dem die MQTT Clients über den Inhalt einer Nachricht einen neuen Ausgangswert setzen können. - -Sende Werte mit Topic: [basistopic]/set/[ausgangsname] - Client ID: - + Client-ID: @@ -1323,71 +1308,86 @@ Sende Werte mit Topic: [basistopic]/set/[ausgangsname] RevPi Python PLC Options - RevPi Python SPS Einstellungen - - - - Start / Stop behavior of PLC program - Start- / Stopverhalten des SPS Programms - - - - Replace IO file: - EA Ersetzungsdatei: - - - - ... sucessfully without error - ... erfolgreich beendet wird - - - - ... after exception and errors - ...durch Fehler abstürzt + RevPi Python-SPS-Einstellungen Start PLC program automatically - Starte SPS Programm automatisch + SPS-Programm automatisch starten Restart PLC program after exit or crash - Starte SPS Programm nach Absturz neu - - - - Set process image to NULL if program terminates... - Setze Prozessabbild auf NULL, wenn das Programm... - - - - Do not use replace io file - Keine Ersetzungsdatei verwenden + SPS-Programm nach Beenden oder Absturz neu starten Use static file from RevPiPyLoad - Statische Datei von RevPiPyLoad + Statische RevPiPyLoad Datei verwenden Use dynamic file from work directory - Dynamisch aus Arbeitsverzeichnis - - - - Give own path and filename - Eigener Pfad und Dateiname + Dynamische Datei aus dem Arbeitsverzeichnis verwenden Restart delay in seconds: - Neustartverzögerung in Sekunden: + Neustart-Verzögerung in Sekunden: + + + + PLC Start/Stop Behavior + SPS-Start und -Stopp-Verhalten + + + + Replace I/O file: + IO-Datei ersetzen: + + + + Restart after PiCtory changes + Nach PiCtory Änderungen neu starten + + + + Set process image to NULL if the program terminates + Prozessabbild beim Beenden des Programms auf NULL setzen + + + + Do not replace I/O file + IO-Datei nicht ersetzen + + + + Use custom path and file name + Benutzerdefinierten Pfad und Dateinamen verwenden + + + + Start piControl server + piControl Server starten + + + + after exceptions or errors + nach Ausnahmen oder Fehlern + + + + without errors + ohne Fehler + + + + PLC program behavior after PiCtory driver reset + Verhalten nach PiCtory Treiber-Reset - RevPiPyLoad server services + RevPiPyLoad Server Services RevPiPyLoad Serverdienste @@ -1398,12 +1398,7 @@ Sende Werte mit Topic: [basistopic]/set/[ausgangsname] MQTT process image publisher - MQTT Processabbild Publisher - - - - Start RevPi piControl server - Starte RevPi piControl Server + MQTT-Prozessabbild-Publisher @@ -1412,61 +1407,51 @@ Sende Werte mit Topic: [basistopic]/set/[ausgangsname] - piControl server is: - piControl Serverstatus: + piControl server: + piControl Server: - MQTT publish service is: - MQTT Servicestatus: + MQTT publish service: + MQTT-Publish-Dienst: Settings Einstellungen + + + Activate XML-RPC for RevPi Commander + XML-RPC für RevPi Commander aktivieren + Do nothing Keine Aktion - - - Restart after piCtory changed - Neustart nach piCtory Änderungen - Always restart the PLC program - SPS Programm immer neu starten + SPS-Programm immer neu starten Driver reset action: - Aktion bei Treiberneustart: - - - - PLC program behavior after piCtory driver reset clicked - Aktion nach piCtory Neustart mit SPS Programm - - - - Activate XML-RPC for RevPiCommander - Aktiviere XML-RPC für RevPiCommander + Aktion bei Treiber-Reset: diag_oss_licenses - Open-Source licenses - Open-Source Lizenzen + Open source licenses + Open-Source-Lizenzen Software - + Software @@ -1475,51 +1460,61 @@ Sende Werte mit Topic: [basistopic]/set/[ausgangsname] - More licenses... - Weitere Lizenzen... + More licenses + Weitere Lizenzen - Show more open-source software licenses - Weitere Open-Source Software Lizenzen anzeigen + Show more open source software licenses + Weitere Open-Source-Software-Lizenzen anzeigen diag_program - - - PLC program - PLC Programm - Python PLC start program: - Python PLC Startprogramm: + Python-SPS-Startprogramm: - - Set write permissions for plc program to workdirectory - Schreibberechtigung für Arbeitsverzeichnis auf RevPi setzen + + PLC Program + SPS-Programm - Program arguments: - Programargumente: + Arguments: + Argumente: + + + + Software watchdog (0 = disabled): + Software-Watchdog (0 = deaktiviert): + + + + Set write permissions for PLC program working directory + Schreibrechte für SPS-Arbeitsverzeichnis festlegen + + + + s + s - Transfair PLC program - PLC Programm übertragen + Transfer PLC program + Übertragung SPS-Programm ZIP archive - ZIP Archiv + ZIP-Archiv TGZ archive - TGZ Archiv + TGZ-Archiv @@ -1533,103 +1528,85 @@ Sende Werte mit Topic: [basistopic]/set/[ausgangsname] - Transfair format: + Transfer format: Übertragungsformat: - Including piCtory configuration - Inklusive piCtory Konfiguraiton + Include PiCtory configuration + PiCtory Konfiguration einbeziehen - Remove all files on Revolution Pi before upload - Alle Dateien auf Revolution Pi vor dem Hochladen löschen + Remove all files on RevPi before upload + Alle Dateien auf RevPi vor dem Hochladen löschen - Control files - Steuerdateien + Control Files + Datei-Steuerung - piCtory configuraiton - piCtory Konfiguration + PiCtory configuration + PiCtory Konfiguration - Process image from piControl0 - Prozessabbild von piControl0 - - - - sec. - Sek. - - - - Software watchdog (0=disabled): - Software watchdog (0=deaktiviert): + Process image from piControl + piControl Prozessabbild diag_revpiinfo + + + Program Information + Programminformation + + + + RevPi Commander (Python/PLC) + RevPi Commander (Python/PLC) + RevPiPyLoad version on RevPi: RevPiPyLoad Version auf RevPi: - - Program information - Programminformationen - - - - RevPi Python PLC - Commander - RevPi Python SPS - Commander + + RevPiModIO, RevPiPyLoad and RevPiPyControl are community driven projects. They are all free and open source software. +All of them come with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. + +(c) Sven Sager, License: GPLv2 + RevPiModIO, RevPiPyLoad und RevPiPyControl sind Community-Projekte. Sie sind freie Open-Source-Software. +Für diese Software wird, soweit gesetzlich zulässig, keinerlei Gewährleistung übernommen. + +(c) Sven Sager, License: GPLv Version: - - - - - RevPiModIO, RevPiPyLoad and RevPiPyControl are community driven projects. They are all free and open source software. -All of them comes with ABSOLUTELY NO WARRANTY, to the extent permitted by -applicable law. - -(c) Sven Sager, License: GPLv2 - + Version: diag_search - - - Search Revolution Pi devices - Revolution Pi Geräte suchen - - - - Searching for Revolution Pi devices in your network... - Netzwerk nach Revolution Pi Geräten durchsuchen... - Restart search Suche neu starten - - IP address - IP Adresse + + ZeroConf name + ZeroConf Name - - &Connect to Revolution Pi - Mit RevPi &verbinden + + IP address + IP-Adresse @@ -1637,9 +1614,19 @@ applicable law. Verbindung &speichern - - Zero-conf name - Zero-conf Name + + RevPi device search + RevPi Gerät suchen + + + + Searching for RevPi devices on the network + Suche nach RevPi Geräten im Netzwerk + + + + &Connect to RevPi + Mit RevPi &verbinden @@ -1649,70 +1636,70 @@ applicable law. Copy IP address - IP Adresse kopieren + IP-Adresse kopieren - Open piCtory - piCtory öffnen + Open PiCtory + PiCtory öffnen + + + + Connect via an encrypted SSH tunnel. + Verbinden über verschlüsselten SSH-Tunnel. + + + + Enable these connections on RevPi. + Aktiviere diese Verbindungen auf RevPi. + + + + Connect to RevPi + Verbinden mit RevPi Connect via SSH (recommended) Über SSH verbinden (empfohlen) - - - Establish a connection via encrypted SSH tunnel - Verbindung über verschlüsselten SSH Tunnel herstellen - Connect via XML-RPC Über XML-RPC verbinden - - - You have to configure your Revolution Pi to accept this connections - Sie müssen den Revolution Pi für diese Art der Verbindung konfigurieren - Connect Verbinden - - - Connect to Revoluton Pi - Mit Revolution Pi verbinden - diag_simulator - - - piControl simulator - piControl Simulator - - - - Simulator settings - Simulatoreinstellungen - Last used: Zuletzt verwendet: + + + piControl Simulator + piControl Simulator + + + + Simulator Settings + Simulatoreinstellungen + - piCtory file: - piCtory Datei: + PiCtory file: + Pictory Datei: - select... - auswählen... + Select + Auswählen @@ -1722,151 +1709,151 @@ applicable law. Stop action: - Stopaktion: + Stopp-Aktion: Restart action: - Neustartaktion: + Neustart-Aktion: - Restore piCtory default values - piCtory Standardwerte setzen + Restore PiCtory default values + PiCtory Standardwerte wiederherstellen - Reset everything to ZERO - Alles auf NULL setzen + Reset all values to NULL + Alle Werte auf NULL setzen - RevPiModIO integration + RevPiModIO Integration RevPiModIO Integration + + + To use this simulator, call RevPiModIO with the following additional parameters: + Zum Verwenden dieses Simulators RevPiModIO mit den folgenden zusätzlichen Parametern aufrufen: + - Start with piCtory default values - Start mit piCtory Standardwerten + Start with PiCtory default values + Mit PiCtory Standardwerten starten + + + + Start without changing the current process image + Mit aktuellem Prozessabbild starten Start with empty process image - Start mit leerem Prozessabbild - - - - Start without changing actual process image - Start ohne Veränderung des Prozessabbilds + Mit leerem Prozessabbild starten Remove process image file Prozessabbilddatei löschen - - - You can work with this simulator if you call RevPiModIO with this additional parameters: - Mit diesem Simulator kann gearbeitet werden, indem zum Aufruf von RevPiModIO folgende Parameter hinzugefügt werden: - diag_sshauth SSH authentication - SSH Authentifizierung + SSH-Authentifizierung - SSH username: - SSH Benutzername: + SSH user name: + SSH-Benutzername: SSH password: - SSH Passwort: + SSH-Passwort: - Username and password will be saved in secured operating systems's password storage. - Benutzername und Kennwort werden im Passwortspeicher vom Betriebssystem gesichert. - - - - Save username and password - Benutzername und Kennwort merken + Save user name and password in secure password storage. + Benutzername und Kennwort im sicheren Passwortspeicher speichern. - Note: The default user for SSH is "pi" which differs from the web configuration. You can find the password on the sticker on the device. - Hinweis: Der Standardbenutzer für SSH ist "pi" dies weicht von der Web-Konfiguration ab. Das Kennwort finden sie auf dem Aufkleber am Gerät. + Default SSH user is "pi". The device password is on the RevPi housing sticker. + Der Standardbenutzer für SSH ist "pi". Das Gerätepasswort befindet sich auf dem Aufkleber am RevPi Gehäuse. + + + + Save user name and password + Benutzername und Kennwort speichern wid_debugcontrol - Revolution Pi devices - Revolution Pi Module + RevPi Devices + RevPi Geräte - Open to stay on top + Keep window on top Immer im Vordergrund - IO Control - EA Übertragung + I/O Control + I/O-Steuerung + + + + Read all I/O values and discard local changes (F4). + +Hold this button to refresh the I/Os every 200 ms. + Alle I/O-Werte lesen und lokale Änderungen verwerfen (F4). + +Gedrückt halten, um die I/O-Werte alle 200 ms zu aktualisieren. - Read &all IO values - &Alle EA Werte lesen + Read &all I/O values + &Alle I/O-Werte lesen + + + + Refresh all I/O values that have not been modified locally (F5). + +Hold this button to refresh the I/Os every 200 ms. + Alle lokal unveränderten I/O-Werte aktualisieren (F5). + +Gedrückt halten, um die I/O-Werte alle 200 ms zu aktualisieren. - &Refresh unchanged IOs - Unve&ränderte EAs lesen + &Refresh unchanged I/Os + &Ungeänderte I/Os aktualisieren - Write locally changed output values to process image (F6) - Schreibe lokal veränderte Ausgangswerte in das Prozessabbild (F6) + Write locally modified output values to process image (F6). + Lokal geänderte Ausgangswerte in das Prozessabbild übertragen (F6). &Write changed outputs - Ausgänge &schreiben + &Geänderte Ausgänge schreiben &Auto refresh values - &Automatisch aktualisieren + &Werte automatisch aktualisieren - and write outputs - und Ausgänge schreiben - - - - Read all IO values and discard local changes (F4) - -Hold this button pressed and it will refresh the IOs every 200 ms. - Alle EA Werte lesen und lokale Änderungen überschreiben (F4) - -Wird der Button gehalten, aktualisieren sich die EAs alle 200 ms. - - - - Refresh all IO values which are locally not changed (F5) - -Hold this button pressed and it will refresh the IOs every 200 ms. - Alle EA Werte aktualisieren, die lokal nicht geändert sind (F5) - -Wird der Button gehalten, aktualisieren sich die EAs alle 200 ms. + Write outputs + Ausgänge schreiben @@ -1881,12 +1868,12 @@ Wird der Button gehalten, aktualisieren sich die EAs alle 200 ms. win_files - File manager + File Manager Dateimanager - Local computer + Local Computer Lokaler Computer @@ -1904,6 +1891,11 @@ Wird der Button gehalten, aktualisieren sich die EAs alle 200 ms. Reload file list Dateiliste neu laden + + + RevPi + RevPi + RevPiPyLoad working directory: @@ -1911,13 +1903,8 @@ Wird der Button gehalten, aktualisieren sich die EAs alle 200 ms. - Stop - Upload - Start - Stoppen - Hochladen -Starten - - - - Revolution Pi - + Stop, upload, start + Stoppen, hochladen, starten @@ -1925,22 +1912,22 @@ Wird der Button gehalten, aktualisieren sich die EAs alle 200 ms. PLC &start - SPS &start + SPS &starten PLC s&top - SPS s&top + SPS s&toppen PLC restart - SPS Neustart + SPS neu starten PLC &logs - SPS &Logdateien + SPS-&Logdateien @@ -1950,7 +1937,7 @@ Wird der Button gehalten, aktualisieren sich die EAs alle 200 ms. PLC watch &mode - SPS &Monitor + SPS-&Monitor-Modus @@ -1973,59 +1960,104 @@ Wird der Button gehalten, aktualisieren sich die EAs alle 200 ms. &Verbindungen - - &Connections... - &Verbindungen... + + &Search RevPi + RevPi &suchen - - &Search Revolution Pi... - &Suche Revolution Pi... + + Visit &website + Zur &Website + + + + &Info + &Info + + + + PLC &options + SPS-&Optionen + + + + PLC progra&m + SPS-Progra&mm + + + + PLC de&veloper + SPS-Ent&wickler + + + + PiCtory configuration + PiCtory Konfiguration + + + + Reset driver + Treiber zurücksetzen + + + + RevPi si&mulator + RevPi Si&mulator &Quit &Beenden - - - Visit &webpage... - &Webseite besuchen... - - - - PLC &logs... - SPS &Logdateien... - - - - PLC &options... - SPS &Optionen... - - - - PLC progra&m... - SPS Progra&mm... - - - - PLC de&veloper... - SPS Ent&wickler... - - - - piCtory configuraiton... - piCtory Konfiguration... - &Disconnect &Trennen + + + &Connections... + &Verbindungen... + + + + &Search RevPi... + RevPi &suchen... + + + + Visit &website... + Zur &Website... + + + + &Info... + &Info... + + + + PLC &logs... + SPS-&Logdateien... + + + + PLC &options... + SPS-&Optionen... + + + + PLC progra&m... + SPS-Progra&mm... + + + + PiCtory configuration... + PiCtory Konfiguration... + Reset driver... - Treiber zurücksetzen... + Treiber zurücksetzen... @@ -2033,17 +2065,17 @@ Wird der Button gehalten, aktualisieren sich die EAs alle 200 ms. RevPi Si&mulator... - - &Info... - + + PLC de&veloper... + SPS-Ent&wickler... win_revpilogfile - RevPi Python PLC Logfiles - RevPi Python PLC Logdateien + RevPi Python PLC Log Files + RevPi Python SPS-Logdateien @@ -2052,23 +2084,23 @@ Wird der Button gehalten, aktualisieren sich die EAs alle 200 ms. - Linewrap + Line wrap Zeilenumbruch - RevPiPyLoad - Logfile - RevPiPyLoad - Logdatei + RevPiPyLoad Log File + RevPiPyLoad Logdatei + + + + Python PLC Program Log File + Python-SPS-Programm-Logdatei Clear view Ansicht leeren - - - Python PLC program - Logfile - Python PLC Programm - Logdatei - diff --git a/src/revpicommander/mqttmanager.py b/src/revpicommander/mqttmanager.py index c8c5287..1505051 100644 --- a/src/revpicommander/mqttmanager.py +++ b/src/revpicommander/mqttmanager.py @@ -81,7 +81,7 @@ class MqttManager(QtWidgets.QDialog, Ui_diag_mqtt): if self._changesdone(): ask = QtWidgets.QMessageBox.question( self, self.tr("Question"), self.tr( - "Do you really want to quit? \nUnsaved changes will be lost." + "Quit without saving?\nUnsaved changes will be lost." ) ) == QtWidgets.QMessageBox.Yes if ask: @@ -94,7 +94,7 @@ class MqttManager(QtWidgets.QDialog, Ui_diag_mqtt): if not self._load_settings(): QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "Can not load the MQTT settings dialog. Missing values!" + "Cannot load the MQTT settings dialog. Missing values." ) ) return QtWidgets.QDialog.Rejected diff --git a/src/revpicommander/revpicommander.py b/src/revpicommander/revpicommander.py index d848c6d..f9ee948 100644 --- a/src/revpicommander/revpicommander.py +++ b/src/revpicommander/revpicommander.py @@ -142,9 +142,9 @@ class RevPiCommander(QtWidgets.QMainWindow, Ui_win_revpicommander): # If RevPiPyLoad is not running, we can try to activate it via ssh QtWidgets.QMessageBox.information( self, self.tr("Information"), self.tr( - "Can not connect to RevPiPyLoad service through SSH tunnel!\n\n" - "We are trying to activate this service now and reconnect. The settings can be " - "changed at any time via 'webstatus'." + "Cannot connect to the RevPiPyLoad service through the SSH tunnel.\n\n" + "Service activation and reconnection in progress. The settings can be " + "changed at any time via Cockpit." ), ) revpi_settings.ssh_enable_revpipyload = True @@ -259,9 +259,9 @@ class RevPiCommander(QtWidgets.QMainWindow, Ui_win_revpicommander): diag_connecting = BackgroundWaiter( revpi_settings.timeout, - self.tr("Establish a connection to the Revolution Pi..."), + self.tr("Connecting to RevPi"), self, - self.tr("Revolution Pi connected!"), + self.tr("Connected to RevPi"), ) helper.cm.connection_established.connect(diag_connecting.requestInterruption) @@ -294,7 +294,7 @@ class RevPiCommander(QtWidgets.QMainWindow, Ui_win_revpicommander): th_connecting.finished.connect(diag_connecting.requestInterruption) th_connecting.start() - diag_connecting.exec_dialog(self.tr("Connecting..."), False) + diag_connecting.exec_dialog(self.tr("Connecting"), False) @QtCore.pyqtSlot() def on_act_connections_triggered(self): @@ -328,18 +328,18 @@ class RevPiCommander(QtWidgets.QMainWindow, Ui_win_revpicommander): if helper.cm.pyload_simulate(configrsc_file, procimg_file, diag.clean_procimg): QtWidgets.QMessageBox.information( - self, self.tr("Simulator started..."), self.tr( - "The simulator is running!\n\nYou can work with this simulator if your call " - "RevPiModIO with this additional parameters:\nprocimg={0}\nconfigrsc={1}\n\n" - "You can copy that from header textbox." + self, self.tr("Simulator started"), self.tr( + "Simulator is running.\n\nUse the additional " + "RevPiModIO parameters:\nprocimg={0}\nconfigrsc={1}\n\n" + "from the header text box." ).format(procimg_file, configrsc_file) ) else: log.error("Can not start simulator") QtWidgets.QMessageBox.critical( - self, self.tr("Can not start..."), self.tr( - "Can not start the simulator! Maybe the piCtory file is corrupt " - "or you have no write permissions for '{0}'." + self, self.tr("Cannot start"), self.tr( + "Cannot start the simulator. The PiCtory file might be invalid " + "or you do not have write permissions for '{0}'." ).format(procimg_file) ) @@ -354,8 +354,8 @@ class RevPiCommander(QtWidgets.QMainWindow, Ui_win_revpicommander): if "load_plclog" not in helper.cm.xml_funcs: QtWidgets.QMessageBox.warning( self, self.tr("Warning"), self.tr( - "This version of Logviewer ist not supported in version {0} " - "of RevPiPyLoad on your RevPi! You need at least version 0.4.1." + "This version of Log Viewer is not supported in version {0} " + "of RevPiPyLoad on your RevPi. At least version 0.4.1 is required." ).format(helper.cm.call_remote_function("version", default_value="-")) ) return None @@ -375,7 +375,7 @@ class RevPiCommander(QtWidgets.QMainWindow, Ui_win_revpicommander): QtWidgets.QMessageBox.warning( self, self.tr("Warning"), self.tr( "XML-RPC access mode in the RevPiPyLoad " - "configuration is too small to access this dialog!" + "configuration is too low to access this dialog." ) ) return @@ -384,9 +384,9 @@ class RevPiCommander(QtWidgets.QMainWindow, Ui_win_revpicommander): if helper.cm.pyload_version < (0, 6, 0): QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "The Version of RevPiPyLoad on your Revolution Pi ({0}) is to old. " - "This Version of RevPiCommander require at least version 0.6.0 " - "of RevPiPyLoad. Please update your Revolution Pi!" + "The version of RevPiPyLoad on your RevPi ({0}) is too old. " + "This version of RevPi Commander requires at least version 0.6.0 " + "of RevPiPyLoad. Update your RevPi." ) ) return @@ -405,7 +405,7 @@ class RevPiCommander(QtWidgets.QMainWindow, Ui_win_revpicommander): QtWidgets.QMessageBox.warning( self, self.tr("Warning"), self.tr( "XML-RPC access mode in the RevPiPyLoad " - "configuration is too small to access this dialog!" + "configuration is too low to access this dialog." ) ) return @@ -414,7 +414,7 @@ class RevPiCommander(QtWidgets.QMainWindow, Ui_win_revpicommander): @QtCore.pyqtSlot() def on_act_developer_triggered(self): - """Extent developer mode to main window.""" + """Extend developer mode to main window.""" if not helper.cm.connected: return @@ -437,10 +437,10 @@ class RevPiCommander(QtWidgets.QMainWindow, Ui_win_revpicommander): ask = QtWidgets.QMessageBox.question( self, self.tr("Question"), self.tr( - "Are you sure to reset piControl?\n" - "The pictory configuration will be reloaded. During that time " - "the process image will be interrupted and could rise errors " - "on running control programs!" + "Are you sure you want to reset piControl?\n" + "The PiCtory configuration will be reloaded. During that time, " + "the process image will be interrupted and could cause errors " + "on running control programs." ) ) if ask != QtWidgets.QMessageBox.Yes: @@ -450,14 +450,14 @@ class RevPiCommander(QtWidgets.QMainWindow, Ui_win_revpicommander): if ec == 0: QtWidgets.QMessageBox.information( self, self.tr("Success"), self.tr( - "piControl reset executed successfully" + "piControl reset completed successfully." ) ) else: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "piControl reset could not be executed successfully" + "piControl reset could not be completed." ) ) @@ -474,7 +474,7 @@ class RevPiCommander(QtWidgets.QMainWindow, Ui_win_revpicommander): @QtCore.pyqtSlot() def on_act_webpage_triggered(self): """Open project page in default browser of operating system.""" - webbrowser.open("https://revpimodio.org") + webbrowser.open("https://revpimodio2.readthedocs.io/en/latest/") @QtCore.pyqtSlot() def on_act_info_triggered(self): @@ -504,13 +504,13 @@ class RevPiCommander(QtWidgets.QMainWindow, Ui_win_revpicommander): """Restart plc program on revolution pi.""" if helper.cm.simulating: rc = QtWidgets.QMessageBox.question( - self, self.tr("Reset to piCtory defaults..."), self.tr( + self, self.tr("Reset to PiCtory defaults"), self.tr( "Do you want to reset your process image to {0} values?\n" "You have to stop other RevPiModIO programs before doing that, " "because they could reset the outputs." ).format( self.tr("zero") if helper.settings.value("simulator/restart_zero", False, bool) - else self.tr("piCtory default")) + else self.tr("PiCtory defaults")) ) == QtWidgets.QMessageBox.Yes if rc: # Set piCtory default values in process image @@ -531,10 +531,10 @@ class RevPiCommander(QtWidgets.QMainWindow, Ui_win_revpicommander): elif "psstart" not in helper.cm.xml_funcs: QtWidgets.QMessageBox.warning( self, self.tr("Warning"), self.tr( - "The watch mode ist not supported in version {0} " - "of RevPiPyLoad on your RevPi! You need at least version " - "0.5.3! Maybe the python3-revpimodio2 module is not " - "installed on your RevPi at least version 2.0.0." + "The watch mode is not supported in version {0} " + "of RevPiPyLoad on your RevPi. At least version 0.5.3 " + "is required. The python3-revpimodio2 module may be missing " + "or older than version 2.0.0." ).format(helper.cm.call_remote_function("version", "-")) ) self.btn_plc_debug.setChecked(False) @@ -543,8 +543,8 @@ class RevPiCommander(QtWidgets.QMainWindow, Ui_win_revpicommander): elif helper.cm.xml_mode < 1 and not helper.cm.simulating: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "Can not load this function, because your ACL level is to low!\n" - "You need at least level 1 to read or level 3 to write." + "Cannot load this function, because your ACL level is too low.\n" + "At least level 1 to read or level 3 to write is required." ) ) self.btn_plc_debug.setChecked(False) @@ -558,9 +558,8 @@ class RevPiCommander(QtWidgets.QMainWindow, Ui_win_revpicommander): debugcontrol.deleteLater() QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "Can not load piCtory configuration. \n" - "Did you create a hardware configuration? " - "Please check this in piCtory!" + "Cannot load PiCtory configuration.\n" + "Check hardware configuration in PiCtory." ) ) self.btn_plc_debug.setChecked(False) diff --git a/src/revpicommander/revpifiles.py b/src/revpicommander/revpifiles.py index 591700e..bdfb637 100644 --- a/src/revpicommander/revpifiles.py +++ b/src/revpicommander/revpifiles.py @@ -84,7 +84,7 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files): self.dc_settings = {} self.tree_files_counter = 0 self.tree_files_counter_max = 10000 - self.lbl_path_local.setText(helper.cm.settings.watch_path or self.tr("Please select...")) + self.lbl_path_local.setText(helper.cm.settings.watch_path or self.tr("Select")) self.lbl_path_local.setToolTip(self.lbl_path_local.text()) self.btn_all.setEnabled(False) @@ -120,13 +120,13 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files): if stop_restart and helper.cm.call_remote_function("plcstop") is None: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "Can not stop plc program on Revolution Pi." + "Cannot stop PLC program on RevPi." ) ) return uploader = UploadFiles(self.file_list_local(), self) - if uploader.exec_dialog(self.tr("File transfer...")) == QtWidgets.QDialog.Rejected: + if uploader.exec_dialog(self.tr("File transfer")) == QtWidgets.QDialog.Rejected: return if uploader.ec == 0: @@ -134,7 +134,7 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files): if not uploader.plc_program_included: QtWidgets.QMessageBox.information( self, self.tr("Information"), self.tr( - "A PLC program has been uploaded. Please check the " + "A PLC program has been uploaded. Check the " "PLC program settings to see if the correct program " "is specified as the start program." ) @@ -143,7 +143,7 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files): elif uploader.ec == -1: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "The Revolution Pi could not process some parts of the " + "RevPi cannot process some parts of the " "transmission." ) ) @@ -151,13 +151,13 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files): elif uploader.ec == -2: QtWidgets.QMessageBox.critical( self, self.tr("Error"), - self.tr("Errors occurred during transmission") + self.tr("Errors occurred during transmission.") ) if stop_restart and helper.cm.call_remote_function("plcstart", default_value=1) != 0: QtWidgets.QMessageBox.warning( self, self.tr("Warning"), self.tr( - "Could not start the plc program on Revolution Pi." + "Cannot start the PLC program on RevPi." ) ) @@ -169,7 +169,7 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files): if "set_plcprogram" in helper.cm.xml_funcs: self.btn_mark_plcprogram.setEnabled(False) self.btn_mark_plcprogram.setToolTip(self.tr( - "Set as start file" + "Set as start program." )) if len(self.tree_files_revpi.selectedItems()) == 1: item = self.tree_files_revpi.selectedItems()[0] @@ -177,7 +177,7 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files): else: self.btn_mark_plcprogram.setEnabled(False) self.btn_mark_plcprogram.setToolTip(self.tr( - "Upgrade your Revolution Pi! This function needs at least 'revpipyload' 0.11.0" + "Upgrade your RevPi. This function needs at least 'revpipyload' 0.11.0." )) self.btn_all.setEnabled(state_local) @@ -186,17 +186,17 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files): if "plcdeletefile" not in helper.cm.xml_funcs: self.btn_delete_revpi.setEnabled(False) self.btn_delete_revpi.setToolTip(self.tr( - "Upgrade your Revolution Pi! This function needs at least 'revpipyload' 0.9.5" + "Upgrade your RevPi. This function needs at least 'revpipyload' 0.9.5." )) else: self.btn_delete_revpi.setEnabled(state_revpi) self.btn_delete_revpi.setToolTip(self.tr( - "Deletes selected files immediately on the Revolution Pi" + "Deletes selected files immediately on RevPi." )) if "plcdownload_file" not in helper.cm.xml_funcs: self.btn_to_left.setEnabled(False) self.btn_to_left.setToolTip(self.tr( - "Upgrade your Revolution Pi! This function needs at least 'revpipyload' 0.9.5" + "Upgrade your RevPi. This function needs at least 'revpipyload' 0.9.5." )) elif not helper.cm.settings.watch_path: self.btn_to_left.setEnabled(False) @@ -275,7 +275,7 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files): if not os.path.exists(base_dir): QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "Can not open last directory '{0}'." + "Cannot open last directory '{0}'." ).format(base_dir) ) return @@ -332,7 +332,7 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files): if not silent and self.tree_files_counter > self.tree_files_counter_max: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "Stop scanning for files, because we found more than {0} files." + "Stopped scanning for files because more than {0} files were found." ).format(self.tree_files_counter_max) ) @@ -373,7 +373,7 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files): lst_revpi = helper.cm.call_remote_function("get_filelist") self.dc_settings = helper.cm.call_remote_function("get_config", default_value={}) self.lbl_path_revpi.setText( - self.dc_settings.get("plcworkdir", self.tr("Could not load path of working dir")) + self.dc_settings.get("plcworkdir", self.tr("Cannot load the working directory path.")) ) self.lbl_path_revpi.setToolTip(self.lbl_path_revpi.text()) @@ -439,7 +439,7 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files): elif not silent: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "Can not load file list from Revolution Pi." + "Cannot load file list from RevPi." ) ) @@ -470,7 +470,7 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files): log.debug("RevPiFiles.on_btn_select_clicked") diag_folder = QtWidgets.QFileDialog( - self, self.tr("Select folder..."), + self, self.tr("Select folder"), helper.cm.settings.watch_path, ) diag_folder.setFileMode(QtWidgets.QFileDialog.DirectoryOnly) @@ -482,7 +482,7 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files): if not os.access(selected_dir, os.R_OK): QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "Can not access the folder '{0}' to read files." + "Cannot access the folder '{0}' to read files." ) ) helper.cm.settings.watch_files = [] @@ -531,17 +531,17 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files): rc = rc.data if not rc: QtWidgets.QMessageBox.critical( - self, self.tr("Error..."), self.tr( - "Error while download file '{0}'." + self, self.tr("Error"), self.tr( + "Error while downloading file '{0}'." ).format(file_name) ) else: file_name = os.path.join(helper.cm.settings.watch_path, file_name) if override is None and os.path.exists(file_name): rc_diag = QtWidgets.QMessageBox.question( - self, self.tr("Override files..."), self.tr( - "One or more files does exist on your computer! Do you want to override the existing" - "files?\n\nSelect 'Yes' to override, 'No' to download only missing files." + self, self.tr("Overwrite files"), self.tr( + "One or more files already exist on your computer. Do you want to overwrite the existing " + "files?\n\nSelect 'Yes' to overwrite, 'No' to download only missing files." ), buttons=QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No | QtWidgets.QMessageBox.Cancel ) @@ -571,8 +571,8 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files): lst_delete.append(item.data(0, WidgetData.file_name)) rc = QtWidgets.QMessageBox.question( - self, self.tr("Delete files from Revolution Pi..."), self.tr( - "Do you want to delete {0} files from revolution pi?" + self, self.tr("Delete files from RevPi"), self.tr( + "Do you want to delete {0} files from RevPi?" ).format(len(lst_delete)) ) if rc != QtWidgets.QMessageBox.Yes: @@ -582,8 +582,8 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files): rc = helper.cm.call_remote_function("plcdeletefile", file_name, default_value=False) if not rc: QtWidgets.QMessageBox.critical( - self, self.tr("Error..."), self.tr( - "Error while delete file '{0}'." + self, self.tr("Error"), self.tr( + "Error while deleting file '{0}'." ).format(file_name) ) @@ -601,9 +601,9 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files): if saved is None: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "The settings could not be saved on the Revolution Pi!\n" - "Try to save the values one mor time and check the log " - "files of RevPiPyLoad if the error rises again." + "Cannot save settings on RevPi.\n" + "Try saving the values one more time and check the " + "RevPiPyLoad log files if the error occurs again." ) ) diff --git a/src/revpicommander/revpiinfo.py b/src/revpicommander/revpiinfo.py index 9959bfd..7d8ee33 100644 --- a/src/revpicommander/revpiinfo.py +++ b/src/revpicommander/revpiinfo.py @@ -44,7 +44,7 @@ class RevPiInfo(QtWidgets.QDialog, Ui_diag_revpiinfo): elif helper.cm.connected: lst = helper.cm.call_remote_function( "get_filelist", - default_value=[self.tr("Can not load file list")] + default_value=[self.tr("Cannot load file list.")] ) else: lst = [self.tr("Not connected")] diff --git a/src/revpicommander/revpilogfile.py b/src/revpicommander/revpilogfile.py index 14b8e14..a1d9b61 100644 --- a/src/revpicommander/revpilogfile.py +++ b/src/revpicommander/revpilogfile.py @@ -207,7 +207,7 @@ class RevPiLogfile(QtWidgets.QMainWindow, Ui_win_revpilogfile): if not success: textwidget.clear() - textwidget.setPlainText(self.tr("Can not access log file on the RevPi")) + textwidget.setPlainText(self.tr("Cannot access log file on RevPi.")) elif text != "": # Function will add \n automatically textwidget.appendPlainText(text.strip("\n")) diff --git a/src/revpicommander/revpioption.py b/src/revpicommander/revpioption.py index 69f7543..6e9c3b4 100644 --- a/src/revpicommander/revpioption.py +++ b/src/revpicommander/revpioption.py @@ -187,7 +187,7 @@ class RevPiOption(QtWidgets.QDialog, Ui_diag_options): ask = QtWidgets.QMessageBox.question( self, self.tr("Question"), self.tr( - "The settings will be set on the Revolution Pi now.\n\n" + "Applying settings on RevPi.\n\n" "ACL changes and service settings are applied immediately." ) ) == QtWidgets.QMessageBox.Yes @@ -234,9 +234,9 @@ class RevPiOption(QtWidgets.QDialog, Ui_diag_options): else: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "The settings could not be saved on the Revolution Pi!\n" - "Try to save the values one mor time and check the log " - "files of RevPiPyLoad if the error rises again." + "Cannot save settings on RevPi\n" + "Try saving the values one more time and check the " + "RevPiPyLoad log files if the error occurs again." ) ) @@ -244,7 +244,7 @@ class RevPiOption(QtWidgets.QDialog, Ui_diag_options): if self._changesdone(): ask = QtWidgets.QMessageBox.question( self, self.tr("Question"), self.tr( - "Do you really want to quit? \nUnsaved changes will be lost." + "Quit without saving?\nUnsaved changes will be lost." ) ) == QtWidgets.QMessageBox.Yes @@ -273,7 +273,7 @@ class RevPiOption(QtWidgets.QDialog, Ui_diag_options): default_value=False ) self.lbl_server_status.setText( - self.tr("running") if running else self.tr("stopped") + self.tr("Running") if running else self.tr("Stopped") ) self.lbl_server_status.setStyleSheet( "color: green" if running else "color: red" @@ -292,7 +292,7 @@ class RevPiOption(QtWidgets.QDialog, Ui_diag_options): self.cbx_mqtt.setToolTip("") self.btn_mqtt.setVisible(True) self.lbl_mqtt_status.setText( - self.tr("running") if running else self.tr("stopped") + self.tr("Running") if running else self.tr("Stopped") ) self.lbl_mqtt_status.setStyleSheet( "color: green" if running else "color: red" @@ -323,8 +323,8 @@ class RevPiOption(QtWidgets.QDialog, Ui_diag_options): def on_btn_aclplcserver_clicked(self): """Start ACL manager to edit ACL entries.""" self.diag_aclmanager.setup_acl_manager(self.acl_plcserver, { - 0: self.tr("read only"), - 1: self.tr("read and write"), + 0: self.tr("Read-only"), + 1: self.tr("Read/write"), }) self.diag_aclmanager.read_only = helper.cm.xml_mode < 4 if self.diag_aclmanager.exec() == QtWidgets.QDialog.Accepted: @@ -345,8 +345,8 @@ class RevPiOption(QtWidgets.QDialog, Ui_diag_options): self.mrk_xml_ask = QtWidgets.QMessageBox.question( self, self.tr("Question"), self.tr( "Are you sure you want to deactivate the XML-RPC server? " - "You will NOT be able to access the Revolution Pi with " - "this program after saving the options!" + "RevPi will no longer be accessible from " + "this program after saving settings." ) ) == QtWidgets.QMessageBox.No if self.mrk_xml_ask: @@ -355,11 +355,11 @@ class RevPiOption(QtWidgets.QDialog, Ui_diag_options): @QtCore.pyqtSlot() def on_btn_aclxmlrpc_clicked(self): self.diag_aclmanager.setup_acl_manager(self.acl_xmlrpc, { - 0: self.tr("Start/Stop PLC program and read logs"), - 1: self.tr("+ read IOs in watch mode"), - 2: self.tr("+ read properties and download PLC program"), - 3: self.tr("+ upload PLC program"), - 4: self.tr("+ set properties") + 0: self.tr("Start/stop PLC program and read log files"), + 1: self.tr("+ Read I/Os in watch mode"), + 2: self.tr("+ Read properties and download PLC program"), + 3: self.tr("+ Upload PLC program"), + 4: self.tr("+ Set properties") }) self.diag_aclmanager.read_only = helper.cm.xml_mode < 4 if self.diag_aclmanager.exec() == QtWidgets.QDialog.Accepted: diff --git a/src/revpicommander/revpiplclist.py b/src/revpicommander/revpiplclist.py index 977b5de..6c3a81c 100644 --- a/src/revpicommander/revpiplclist.py +++ b/src/revpicommander/revpiplclist.py @@ -134,7 +134,7 @@ class RevPiPlcList(QtWidgets.QDialog, Ui_diag_connections): if self.changes: ask = QtWidgets.QMessageBox.question( self, self.tr("Question"), self.tr( - "Do you really want to quit? \nUnsaved changes will be lost." + "Quit without saving?\nUnsaved changes will be lost." ) ) == QtWidgets.QMessageBox.Yes @@ -303,8 +303,8 @@ class RevPiPlcList(QtWidgets.QDialog, Ui_diag_connections): if item_to_remove.childCount(): rc = QtWidgets.QMessageBox.question( self, self.tr("Question"), self.tr( - "If you remote this folder, all containing elements will be removed, too. \n\n" - "Do you want to delete folder and all elements?" + "If you remove this folder, all contained items will be removed as well.\n\n" + "Do you want to delete the folder and all contained items?" ), ) if rc != QtWidgets.QMessageBox.Yes: diff --git a/src/revpicommander/revpiprogram.py b/src/revpicommander/revpiprogram.py index 13b2089..9fc4b50 100644 --- a/src/revpicommander/revpiprogram.py +++ b/src/revpicommander/revpiprogram.py @@ -105,7 +105,7 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): if self.cbb_plcprogram.currentText() == "": QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "You have to select a start program, before uploading the " + "You must select a start program before uploading the " "settings." ) ) @@ -113,9 +113,9 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): ask = QtWidgets.QMessageBox.question( self, self.tr("Question"), self.tr( - "The settings will be set on the Revolution Pi now.\n\n" - "If you made changes on the 'PCL Program' section, your plc " - "program will restart now!" + "Saving settings on RevPi.\n\n" + "If you made changes in the 'PLC Program' section, your PLC " + "program will be restarted." ) ) == QtWidgets.QMessageBox.Yes @@ -137,9 +137,9 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): else: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "The settings could not be saved on the Revolution Pi!\n" - "Try to save the values one mor time and check the log " - "files of RevPiPyLoad if the error rises again." + "Cannot save settings on RevPi.\n" + "Try saving the values one more time and check the " + "RevPiPyLoad log files if the error occurs again." ) ) @@ -147,7 +147,7 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): if self._changesdone(): ask = QtWidgets.QMessageBox.question( self, self.tr("Question"), self.tr( - "Do you really want to quit? \nUnsaved changes will be lost." + "Quit without saving?\nUnsaved changes will be lost." ) ) == QtWidgets.QMessageBox.Yes @@ -186,10 +186,10 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): fh.close() ask = QtWidgets.QMessageBox.question( - self, self.tr("Reset driver..."), self.tr( - "Reset piControl driver after successful uploading new piCtory " + self, self.tr("Reset driver"), self.tr( + "Reset piControl driver after successfully uploading the new PiCtory " "configuration?\nThe process image will be interrupted for a " - "short time!" + "short time." ), QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No | QtWidgets.QMessageBox.Cancel ) if ask == QtWidgets.QMessageBox.Cancel: @@ -202,8 +202,8 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): if ec is None: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "Got an network error while send data to Revolution Pi.\n" - "Please try again." + "Network error while sending data to RevPi.\n" + "Try again." ) ) elif ec == 0: @@ -211,7 +211,7 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): if ask == QtWidgets.QMessageBox.Yes: QtWidgets.QMessageBox.information( self, self.tr("Success"), self.tr( - "The transfer of the piCtory configuration " + "The transfer of the PiCtory configuration " "and the reset of piControl have been " "successfully executed." ), @@ -219,47 +219,47 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): else: QtWidgets.QMessageBox.information( self, self.tr("Success"), self.tr( - "The piCtory configuration was successfully transferred." + "The PiCtory configuration was successfully transferred." ) ) elif ec == -1: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "Can not process the transferred file." + "Cannot process the transferred file." ) ) elif ec == -2: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "Can not find main elements in piCtory file." + "Cannot find main elements in PiCtory file." ) ) elif ec == -4: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "Contained devices could not be found on Revolution " - "Pi. The configuration may be from a newer piCtory version!" + "Cannot find contained devices on RevPi.\n" + "The configuration may be from a newer PiCtory version." ) ) elif ec == -5: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "Could not load RAP catalog on Revolution Pi." + "Cannot load RAP catalog on RevPi." ) ) elif ec < 0: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "The piCtory configuration could not be " - "written on the Revolution Pi." + "Cannot write PiCtory configuration " + "on RevPi." ) ) elif ec > 0: QtWidgets.QMessageBox.warning( self, self.tr("Warning"), self.tr( - "The piCtroy configuration has been saved successfully.\n" - "An error occurred on piControl reset!" + "The PiCtory configuration has been saved successfully.\n" + "An error occurred on piControl reset." ) ) @@ -321,7 +321,7 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): if self.cbb_format.currentIndex() == 0: # Save files as zip archive diag_save = QtWidgets.QFileDialog( - self, self.tr("Save ZIP archive..."), + self, self.tr("Save ZIP archive"), helper.cm.settings.last_zip_file or "{0}.zip".format(helper.cm.settings.name), self.tr("ZIP archive (*.zip);;All files (*.*)") ) @@ -339,7 +339,7 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): elif self.cbb_format.currentIndex() == 1: # Save files as TarGz archive diag_save = QtWidgets.QFileDialog( - self, self.tr("Save TGZ archive..."), + self, self.tr("Save TGZ archive"), helper.cm.settings.last_tar_file or "{0}.tgz".format(helper.cm.settings.name), self.tr("TGZ archive (*.tgz);;All files (*.*)") ) @@ -367,7 +367,7 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): if plcfile is None: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "Could not load PLC program from Revolution Pi." + "Cannot load PLC program from RevPi." ) ) @@ -380,8 +380,8 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): log.error(e) QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "Coud not save the archive or extract the files!\n" - "Please retry.") + "Cannot save the archive or extract the files.\n" + "Try again.") ) else: QtWidgets.QMessageBox.information( @@ -411,7 +411,7 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): if self.cbb_format.currentIndex() == 0: # Upload zip archive content diag_open = QtWidgets.QFileDialog( - self, self.tr("Upload content of ZIP archive..."), + self, self.tr("Upload content of ZIP archive"), helper.cm.settings.last_file_upload, self.tr("ZIP archive (*.zip);;All files (*.*)") ) @@ -437,7 +437,7 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): else: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "The selected file ist not a ZIP archive." + "The selected file is not a ZIP archive." ) ) return @@ -445,7 +445,7 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): elif self.cbb_format.currentIndex() == 1: # Upload TarGz content diag_open = QtWidgets.QFileDialog( - self, self.tr("Upload content of TAR archive..."), + self, self.tr("Upload content of TAR archive"), helper.cm.settings.last_file_upload, self.tr("TAR archive (*.tgz);;All files (*.*)") ) @@ -471,7 +471,7 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): else: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "The selected file ist not a TAR archive." + "The selected file is not a TAR archive." ) ) return @@ -479,8 +479,8 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): # No files selected if len(lst_files) == 0: QtWidgets.QMessageBox.warning( - self, self.tr("No files to upload..."), self.tr( - "Found no files to upload in given location or archive." + self, self.tr("No files to upload"), self.tr( + "No files found in the selected location or archive." ) ) remove_temp() @@ -491,8 +491,8 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): if self.cbx_clear.isChecked() and not clean_revpi: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "There was an error deleting the files on the Revolution Pi.\n" - "Upload aborted! Please try again." + "Cannot delete files on RevPi.\n" + "Upload aborted. Try again." ) ) remove_temp() @@ -545,10 +545,10 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): if plc_program_not_in_upload: QtWidgets.QMessageBox.warning( self, self.tr("Information"), self.tr( - "Could not find the selected PLC start program in " - "uploaded files.\nThis is not an error, if the file " - "was already on the Revolution Pi. Check PLC start " - "program field" + "Cannot find the selected PLC start program in " + "the uploaded files.\nThis is not an error if the file " + "already exists on RevPi. Check the PLC start program " + "field." ) ) @@ -558,14 +558,14 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): else: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "There is no piCtory configuration in this archive." + "There is no PiCtory configuration in this archive." ) ) elif ec == -1: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "The Revolution Pi could not process some parts of the transmission." + "RevPi cannot process some parts of the transmission." ) ) @@ -590,12 +590,12 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): return diag_save = QtWidgets.QFileDialog( - self, self.tr("Save piCtory file..."), + self, self.tr("Save PiCtory file"), os.path.join( helper.cm.settings.last_dir_pictory, "{0}.rsc".format(helper.cm.settings.name) ), - self.tr("piCtory file (*.rsc);;All files (*.*)") + self.tr("PiCtory file (*.rsc);;All files (*.*)") ) diag_save.setAcceptMode(QtWidgets.QFileDialog.AcceptSave) diag_save.setDefaultSuffix("rsc") @@ -610,7 +610,7 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): if bin_buffer is None: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "Could not load piCtory file from Revolution Pi." + "Cannot load PiCtory file from RevPi." ) ) else: @@ -620,7 +620,7 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): QtWidgets.QMessageBox.information( self, self.tr("Success"), self.tr( - "piCtory configuration successfully loaded and saved to:\n{0}." + "PiCtory configuration saved to:\n{0}." ).format(filename) ) @@ -630,9 +630,9 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): return diag_open = QtWidgets.QFileDialog( - self, self.tr("Upload piCtory file..."), + self, self.tr("Upload PiCtory file"), helper.cm.settings.last_pictory_file or "{0}.rsc".format(helper.cm.settings.name), - self.tr("piCtory file (*.rsc);;All files (*.*)") + self.tr("PiCtory file (*.rsc);;All files (*.*)") ) diag_open.setAcceptMode(QtWidgets.QFileDialog.AcceptOpen) diag_open.setFileMode(QtWidgets.QFileDialog.ExistingFile) @@ -652,7 +652,7 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): diag_save = QtWidgets.QFileDialog( self, - self.tr("Save piControl file..."), + self.tr("Save piControl file"), os.path.join( helper.cm.settings.last_dir_picontrol, "{0}.img".format(helper.cm.settings.name) @@ -673,7 +673,7 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): if bin_buffer is None: QtWidgets.QMessageBox.critical( self, self.tr("Error"), self.tr( - "Could not load process image from Revolution Pi." + "Cannot load process image from RevPi." ) ) else: @@ -683,7 +683,7 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program): QtWidgets.QMessageBox.information( self, self.tr("Success"), self.tr( - "Process image successfully loaded and saved to:\n{0}." + "Process image saved to:\n{0}." ).format(filename) ) diff --git a/src/revpicommander/simulator.py b/src/revpicommander/simulator.py index 6aa2c4b..3b7f462 100644 --- a/src/revpicommander/simulator.py +++ b/src/revpicommander/simulator.py @@ -77,9 +77,9 @@ class Simulator(QtWidgets.QDialog, Ui_diag_simulator): @QtCore.pyqtSlot() def on_btn_configrsc_clicked(self) -> None: diag_open = QtWidgets.QFileDialog( - self, self.tr("Select downloaded piCtory file..."), + self, self.tr("Select downloaded PiCtory file"), helper.settings.value("simulator/last_dir", ".", str), - self.tr("piCtory file (*.rsc);;All files (*.*)") + self.tr("PiCtory file (*.rsc);;All files (*.*)") ) diag_open.setAcceptMode(QtWidgets.QFileDialog.AcceptOpen) diag_open.setFileMode(QtWidgets.QFileDialog.ExistingFile) diff --git a/src/revpicommander/sshauth.py b/src/revpicommander/sshauth.py index 8598d3c..7aaa3c9 100644 --- a/src/revpicommander/sshauth.py +++ b/src/revpicommander/sshauth.py @@ -49,11 +49,11 @@ class SSHAuth(QtWidgets.QDialog, Ui_diag_sshauth): log.error(e) self._in_keyring = False QtWidgets.QMessageBox.warning( - self, self.tr("Could not save password"), self.tr( - "Could not save password to operating systems password save.\n\n" - "Maybe your operating system does not support saving passwords. " + self, self.tr("Cannot save password"), self.tr( + "Cannot save password to operating system's password store.\n\n" + "The operating system may not support saving passwords. " "This could be due to missing libraries or programs.\n\n" - "This is not an error of RevPi Commander." + "This is not a RevPi Commander error." ) ) else: diff --git a/src/revpicommander/ui/aclmanager_ui.py b/src/revpicommander/ui/aclmanager_ui.py index 1a6c777..bd2dffa 100644 --- a/src/revpicommander/ui/aclmanager_ui.py +++ b/src/revpicommander/ui/aclmanager_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'aclmanager.ui' # -# Created by: PyQt5 UI code generator 5.15.9 +# Created by: PyQt5 UI code generator 5.15.11 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. @@ -137,15 +137,15 @@ class Ui_diag_aclmanager(object): def retranslateUi(self, diag_aclmanager): _translate = QtCore.QCoreApplication.translate - diag_aclmanager.setWindowTitle(_translate("diag_aclmanager", "IP access control list")) + diag_aclmanager.setWindowTitle(_translate("diag_aclmanager", "IP Access Control List")) self.gb_acls.setTitle(_translate("diag_aclmanager", "Existing ACLs")) item = self.tb_acls.horizontalHeaderItem(0) - item.setText(_translate("diag_aclmanager", "IP Address")) + item.setText(_translate("diag_aclmanager", "IP address")) item = self.tb_acls.horizontalHeaderItem(1) item.setText(_translate("diag_aclmanager", "Access Level")) self.btn_edit.setText(_translate("diag_aclmanager", "&Edit")) self.btn_remove.setText(_translate("diag_aclmanager", "&Remove")) - self.gb_edit.setTitle(_translate("diag_aclmanager", "Add / Edit access entry")) + self.gb_edit.setTitle(_translate("diag_aclmanager", "Add/Edit Access Entry")) self.btn_clear.setText(_translate("diag_aclmanager", "Clear fields")) self.btn_add.setText(_translate("diag_aclmanager", "&Save entry")) self.lbl_ip.setText(_translate("diag_aclmanager", "IP address:")) diff --git a/src/revpicommander/ui/avahisearch_ui.py b/src/revpicommander/ui/avahisearch_ui.py index 7e5fa50..6ed1e4e 100644 --- a/src/revpicommander/ui/avahisearch_ui.py +++ b/src/revpicommander/ui/avahisearch_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'avahisearch.ui' # -# Created by: PyQt5 UI code generator 5.15.9 +# Created by: PyQt5 UI code generator 5.15.11 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. @@ -84,25 +84,25 @@ class Ui_diag_search(object): def retranslateUi(self, diag_search): _translate = QtCore.QCoreApplication.translate - diag_search.setWindowTitle(_translate("diag_search", "Search Revolution Pi devices")) - self.lbl_search.setText(_translate("diag_search", "Searching for Revolution Pi devices in your network...")) + diag_search.setWindowTitle(_translate("diag_search", "RevPi device search")) + self.lbl_search.setText(_translate("diag_search", "Searching for RevPi devices on the network")) self.btn_restart.setToolTip(_translate("diag_search", "Restart search")) self.tb_revpi.setSortingEnabled(True) item = self.tb_revpi.horizontalHeaderItem(0) - item.setText(_translate("diag_search", "Zero-conf name")) + item.setText(_translate("diag_search", "ZeroConf name")) item = self.tb_revpi.horizontalHeaderItem(1) item.setText(_translate("diag_search", "IP address")) - self.btn_connect.setText(_translate("diag_search", "&Connect to Revolution Pi")) + self.btn_connect.setText(_translate("diag_search", "&Connect to RevPi")) self.btn_save.setText(_translate("diag_search", "&Save connection")) self.act_copy_host.setText(_translate("diag_search", "Copy host name")) self.act_copy_ip.setText(_translate("diag_search", "Copy IP address")) - self.act_open_pictory.setText(_translate("diag_search", "Open piCtory")) + self.act_open_pictory.setText(_translate("diag_search", "Open PiCtory")) self.act_connect_ssh.setText(_translate("diag_search", "Connect via SSH (recommended)")) - self.act_connect_ssh.setToolTip(_translate("diag_search", "Establish a connection via encrypted SSH tunnel")) + self.act_connect_ssh.setToolTip(_translate("diag_search", "Connect via an encrypted SSH tunnel.")) self.act_connect_xmlrpc.setText(_translate("diag_search", "Connect via XML-RPC")) - self.act_connect_xmlrpc.setToolTip(_translate("diag_search", "You have to configure your Revolution Pi to accept this connections")) + self.act_connect_xmlrpc.setToolTip(_translate("diag_search", "Enable these connections on RevPi.")) self.act_connect.setText(_translate("diag_search", "Connect")) - self.act_connect.setToolTip(_translate("diag_search", "Connect to Revoluton Pi")) + self.act_connect.setToolTip(_translate("diag_search", "Connect to RevPi")) from . import ressources_rc diff --git a/src/revpicommander/ui/backgroundworker_ui.py b/src/revpicommander/ui/backgroundworker_ui.py index c0e78f1..7d1200f 100644 --- a/src/revpicommander/ui/backgroundworker_ui.py +++ b/src/revpicommander/ui/backgroundworker_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'backgroundworker.ui' # -# Created by: PyQt5 UI code generator 5.15.9 +# Created by: PyQt5 UI code generator 5.15.11 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. @@ -19,7 +19,7 @@ class Ui_diag_backgroundworker(object): self.verticalLayout = QtWidgets.QVBoxLayout(diag_backgroundworker) self.verticalLayout.setObjectName("verticalLayout") self.lbl_status = QtWidgets.QLabel(diag_backgroundworker) - self.lbl_status.setText("Status message...") + self.lbl_status.setText("Status message") self.lbl_status.setObjectName("lbl_status") self.verticalLayout.addWidget(self.lbl_status) self.pgb_status = QtWidgets.QProgressBar(diag_backgroundworker) diff --git a/src/revpicommander/ui/debugcontrol_ui.py b/src/revpicommander/ui/debugcontrol_ui.py index f1556fb..44d42d0 100644 --- a/src/revpicommander/ui/debugcontrol_ui.py +++ b/src/revpicommander/ui/debugcontrol_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'debugcontrol.ui' # -# Created by: PyQt5 UI code generator 5.15.9 +# Created by: PyQt5 UI code generator 5.15.11 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. @@ -65,21 +65,21 @@ class Ui_wid_debugcontrol(object): def retranslateUi(self, wid_debugcontrol): _translate = QtCore.QCoreApplication.translate - self.gb_devices.setTitle(_translate("wid_debugcontrol", "Revolution Pi devices")) - self.cbx_stay_on_top.setText(_translate("wid_debugcontrol", "Open to stay on top")) - self.gb_control.setTitle(_translate("wid_debugcontrol", "IO Control")) - self.btn_read_io.setToolTip(_translate("wid_debugcontrol", "Read all IO values and discard local changes (F4)\n" + self.gb_devices.setTitle(_translate("wid_debugcontrol", "RevPi Devices")) + self.cbx_stay_on_top.setText(_translate("wid_debugcontrol", "Keep window on top")) + self.gb_control.setTitle(_translate("wid_debugcontrol", "I/O Control")) + self.btn_read_io.setToolTip(_translate("wid_debugcontrol", "Read all I/O values and discard local changes (F4).\n" "\n" -"Hold this button pressed and it will refresh the IOs every 200 ms.")) - self.btn_read_io.setText(_translate("wid_debugcontrol", "Read &all IO values")) - self.btn_refresh_io.setToolTip(_translate("wid_debugcontrol", "Refresh all IO values which are locally not changed (F5)\n" +"Hold this button to refresh the I/Os every 200 ms.")) + self.btn_read_io.setText(_translate("wid_debugcontrol", "Read &all I/O values")) + self.btn_refresh_io.setToolTip(_translate("wid_debugcontrol", "Refresh all I/O values that have not been modified locally (F5).\n" "\n" -"Hold this button pressed and it will refresh the IOs every 200 ms.")) - self.btn_refresh_io.setText(_translate("wid_debugcontrol", "&Refresh unchanged IOs")) - self.btn_write_o.setToolTip(_translate("wid_debugcontrol", "Write locally changed output values to process image (F6)")) +"Hold this button to refresh the I/Os every 200 ms.")) + self.btn_refresh_io.setText(_translate("wid_debugcontrol", "&Refresh unchanged I/Os")) + self.btn_write_o.setToolTip(_translate("wid_debugcontrol", "Write locally modified output values to process image (F6).")) self.btn_write_o.setText(_translate("wid_debugcontrol", "&Write changed outputs")) self.cbx_refresh.setText(_translate("wid_debugcontrol", "&Auto refresh values")) - self.cbx_write.setText(_translate("wid_debugcontrol", "and write outputs")) + self.cbx_write.setText(_translate("wid_debugcontrol", "Write outputs")) if __name__ == "__main__": diff --git a/src/revpicommander/ui/debugios_ui.py b/src/revpicommander/ui/debugios_ui.py index 7ed9cd8..62be264 100644 --- a/src/revpicommander/ui/debugios_ui.py +++ b/src/revpicommander/ui/debugios_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'debugios.ui' # -# Created by: PyQt5 UI code generator 5.15.9 +# Created by: PyQt5 UI code generator 5.15.11 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. diff --git a/src/revpicommander/ui/files_ui.py b/src/revpicommander/ui/files_ui.py index 7a074ee..157d7cb 100644 --- a/src/revpicommander/ui/files_ui.py +++ b/src/revpicommander/ui/files_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'files.ui' # -# Created by: PyQt5 UI code generator 5.15.9 +# Created by: PyQt5 UI code generator 5.15.11 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. @@ -169,17 +169,17 @@ class Ui_win_files(object): def retranslateUi(self, win_files): _translate = QtCore.QCoreApplication.translate - win_files.setWindowTitle(_translate("win_files", "File manager")) - self.gb_select_local.setTitle(_translate("win_files", "Local computer")) + win_files.setWindowTitle(_translate("win_files", "File Manager")) + self.gb_select_local.setTitle(_translate("win_files", "Local Computer")) self.lbl_select_local.setText(_translate("win_files", "Path to development root:")) self.btn_select_local.setToolTip(_translate("win_files", "Open developer root directory")) self.btn_refresh_local.setToolTip(_translate("win_files", "Reload file list")) self.tree_files_local.setSortingEnabled(True) - self.gb_select_revpi.setTitle(_translate("win_files", "Revolution Pi")) + self.gb_select_revpi.setTitle(_translate("win_files", "RevPi")) self.lbl_select_revpi.setText(_translate("win_files", "RevPiPyLoad working directory:")) self.btn_refresh_revpi.setToolTip(_translate("win_files", "Reload file list")) self.tree_files_revpi.setSortingEnabled(True) - self.btn_all.setText(_translate("win_files", "Stop - Upload - Start")) + self.btn_all.setText(_translate("win_files", "Stop, upload, start")) from . import ressources_rc diff --git a/src/revpicommander/ui/mqttmanager_ui.py b/src/revpicommander/ui/mqttmanager_ui.py index 2ddc421..84e0755 100644 --- a/src/revpicommander/ui/mqttmanager_ui.py +++ b/src/revpicommander/ui/mqttmanager_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'mqttmanager.ui' # -# Created by: PyQt5 UI code generator 5.15.9 +# Created by: PyQt5 UI code generator 5.15.11 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. @@ -126,7 +126,7 @@ class Ui_diag_mqtt(object): _translate = QtCore.QCoreApplication.translate diag_mqtt.setWindowTitle(_translate("diag_mqtt", "MQTT settings")) self.gb_basetopic.setTitle(_translate("diag_mqtt", "Base topic")) - self.lbl_basetopic_description.setText(_translate("diag_mqtt", "The base topic is the first part of any mqtt topic, the Revolution Pi will publish. You can use any character includig \'/\' to structure the messages on your broker.\n" + self.lbl_basetopic_description.setText(_translate("diag_mqtt", "Base topic is the prefix for MQTT topics published by RevPi. Use \"/\" to structure broker topics.\n" "\n" "For example: revpi0000/data")) self.lbl_basetopic.setText(_translate("diag_mqtt", "Base topic:")) @@ -136,10 +136,10 @@ class Ui_diag_mqtt(object): self.cbx_send_on_event.setText(_translate("diag_mqtt", "Send exported values immediately on value change")) self.lbl_topic_event.setText(_translate("diag_mqtt", "Topic: [basetopic]/event/[ioname]")) self.gb_write_outputs.setTitle(_translate("diag_mqtt", "Set outputs")) - self.lbl_write_outputs.setText(_translate("diag_mqtt", "The Revolution Pi will subscribe a topic on which your mqtt client can publish messages with the new io value as payload.\n" + self.lbl_write_outputs.setText(_translate("diag_mqtt", "RevPi subscribes to an MQTT topic for setting output values. Publish the new I/O value as payload.\n" "\n" "Publish values with topic: [basetopic]/set/[outputname]")) - self.cbx_write_outputs.setText(_translate("diag_mqtt", "Allow MQTT to to set outputs on Revolution Pi")) + self.cbx_write_outputs.setText(_translate("diag_mqtt", "Allow MQTT to set outputs on RevPi")) self.gb_broker.setTitle(_translate("diag_mqtt", "Broker settings")) self.lbl_broker_address.setText(_translate("diag_mqtt", "Broker address:")) self.lbl_port.setText(_translate("diag_mqtt", "Broker port:")) diff --git a/src/revpicommander/ui/oss_licenses_ui.py b/src/revpicommander/ui/oss_licenses_ui.py index 06217ed..2b83b0f 100644 --- a/src/revpicommander/ui/oss_licenses_ui.py +++ b/src/revpicommander/ui/oss_licenses_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'oss_licenses.ui' # -# Created by: PyQt5 UI code generator 5.15.9 +# Created by: PyQt5 UI code generator 5.15.11 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. @@ -59,14 +59,14 @@ class Ui_diag_oss_licenses(object): def retranslateUi(self, diag_oss_licenses): _translate = QtCore.QCoreApplication.translate - diag_oss_licenses.setWindowTitle(_translate("diag_oss_licenses", "Open-Source licenses")) + diag_oss_licenses.setWindowTitle(_translate("diag_oss_licenses", "Open source licenses")) self.tb_oss_licenses.setSortingEnabled(True) item = self.tb_oss_licenses.horizontalHeaderItem(0) item.setText(_translate("diag_oss_licenses", "Software")) item = self.tb_oss_licenses.horizontalHeaderItem(1) item.setText(_translate("diag_oss_licenses", "License")) - self.action_start.setText(_translate("diag_oss_licenses", "More licenses...")) - self.action_start.setToolTip(_translate("diag_oss_licenses", "Show more open-source software licenses")) + self.action_start.setText(_translate("diag_oss_licenses", "More licenses")) + self.action_start.setToolTip(_translate("diag_oss_licenses", "Show more open source software licenses")) if __name__ == "__main__": diff --git a/src/revpicommander/ui/revpicommander_ui.py b/src/revpicommander/ui/revpicommander_ui.py index 5d488b4..04754fc 100644 --- a/src/revpicommander/ui/revpicommander_ui.py +++ b/src/revpicommander/ui/revpicommander_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'revpicommander.ui' # -# Created by: PyQt5 UI code generator 5.15.9 +# Created by: PyQt5 UI code generator 5.15.11 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. @@ -177,17 +177,17 @@ class Ui_win_revpicommander(object): self.men_plc.setTitle(_translate("win_revpicommander", "&PLC")) self.men_connections.setTitle(_translate("win_revpicommander", "&Connections")) self.act_connections.setText(_translate("win_revpicommander", "&Connections...")) - self.act_search.setText(_translate("win_revpicommander", "&Search Revolution Pi...")) + self.act_search.setText(_translate("win_revpicommander", "&Search RevPi...")) self.act_quit.setText(_translate("win_revpicommander", "&Quit")) - self.act_webpage.setText(_translate("win_revpicommander", "Visit &webpage...")) - self.act_info.setText(_translate("win_revpicommander", "&Info...")) + self.act_webpage.setText(_translate("win_revpicommander", "Visit &website")) + self.act_info.setText(_translate("win_revpicommander", "&Info")) self.act_logs.setText(_translate("win_revpicommander", "PLC &logs...")) self.act_options.setText(_translate("win_revpicommander", "PLC &options...")) self.act_program.setText(_translate("win_revpicommander", "PLC progra&m...")) self.act_developer.setText(_translate("win_revpicommander", "PLC de&veloper...")) - self.act_pictory.setText(_translate("win_revpicommander", "piCtory configuraiton...")) + self.act_pictory.setText(_translate("win_revpicommander", "PiCtory configuration")) self.act_disconnect.setText(_translate("win_revpicommander", "&Disconnect")) - self.act_reset.setText(_translate("win_revpicommander", "Reset driver...")) + self.act_reset.setText(_translate("win_revpicommander", "Reset driver")) self.act_simulator.setText(_translate("win_revpicommander", "RevPi si&mulator...")) from . import ressources_rc diff --git a/src/revpicommander/ui/revpiinfo_ui.py b/src/revpicommander/ui/revpiinfo_ui.py index 7494cdc..2963236 100644 --- a/src/revpicommander/ui/revpiinfo_ui.py +++ b/src/revpicommander/ui/revpiinfo_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'revpiinfo.ui' # -# Created by: PyQt5 UI code generator 5.15.9 +# Created by: PyQt5 UI code generator 5.15.11 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. @@ -75,7 +75,7 @@ class Ui_diag_revpiinfo(object): spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.gridLayout.addItem(spacerItem, 5, 0, 1, 1) self.lbl_link = QtWidgets.QLabel(diag_revpiinfo) - self.lbl_link.setText("

https://revpimodio.org/

") + self.lbl_link.setText("

https://revpimodio2.readthedocs.io/en/latest/

") self.lbl_link.setOpenExternalLinks(True) self.lbl_link.setObjectName("lbl_link") self.gridLayout.addWidget(self.lbl_link, 6, 0, 1, 2) @@ -87,13 +87,12 @@ class Ui_diag_revpiinfo(object): def retranslateUi(self, diag_revpiinfo): _translate = QtCore.QCoreApplication.translate - diag_revpiinfo.setWindowTitle(_translate("diag_revpiinfo", "Program information")) - self.lbl_head.setText(_translate("diag_revpiinfo", "RevPi Python PLC - Commander")) + diag_revpiinfo.setWindowTitle(_translate("diag_revpiinfo", "Program Information")) + self.lbl_head.setText(_translate("diag_revpiinfo", "RevPi Commander (Python/PLC)")) self.lbl_lbl_version_pyload.setText(_translate("diag_revpiinfo", "RevPiPyLoad version on RevPi:")) self.lbl_lbl_version_control.setText(_translate("diag_revpiinfo", "Version:")) self.lbl_info.setText(_translate("diag_revpiinfo", "RevPiModIO, RevPiPyLoad and RevPiPyControl are community driven projects. They are all free and open source software.\n" -"All of them comes with ABSOLUTELY NO WARRANTY, to the extent permitted by\n" -"applicable law.\n" +"All of them come with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.\n" "\n" "(c) Sven Sager, License: GPLv2")) diff --git a/src/revpicommander/ui/revpilogfile_ui.py b/src/revpicommander/ui/revpilogfile_ui.py index 179a22a..099c0ea 100644 --- a/src/revpicommander/ui/revpilogfile_ui.py +++ b/src/revpicommander/ui/revpilogfile_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'revpilogfile.ui' # -# Created by: PyQt5 UI code generator 5.15.9 +# Created by: PyQt5 UI code generator 5.15.11 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. @@ -79,13 +79,13 @@ class Ui_win_revpilogfile(object): def retranslateUi(self, win_revpilogfile): _translate = QtCore.QCoreApplication.translate - win_revpilogfile.setWindowTitle(_translate("win_revpilogfile", "RevPi Python PLC Logfiles")) + win_revpilogfile.setWindowTitle(_translate("win_revpilogfile", "RevPi Python PLC Log Files")) self.cbx_stay_on_top.setText(_translate("win_revpilogfile", "Stay on top of all windows")) - self.cbx_wrap.setText(_translate("win_revpilogfile", "Linewrap")) - self.lbl_daemon.setText(_translate("win_revpilogfile", "RevPiPyLoad - Logfile")) + self.cbx_wrap.setText(_translate("win_revpilogfile", "Line wrap")) + self.lbl_daemon.setText(_translate("win_revpilogfile", "RevPiPyLoad Log File")) self.btn_daemon.setText(_translate("win_revpilogfile", "Clear view")) self.btn_app.setText(_translate("win_revpilogfile", "Clear view")) - self.lbl_app.setText(_translate("win_revpilogfile", "Python PLC program - Logfile")) + self.lbl_app.setText(_translate("win_revpilogfile", "Python PLC Program Log File")) if __name__ == "__main__": diff --git a/src/revpicommander/ui/revpioption_ui.py b/src/revpicommander/ui/revpioption_ui.py index 59b4583..cd07174 100644 --- a/src/revpicommander/ui/revpioption_ui.py +++ b/src/revpicommander/ui/revpioption_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'revpioption.ui' # -# Created by: PyQt5 UI code generator 5.15.9 +# Created by: PyQt5 UI code generator 5.15.11 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. @@ -123,34 +123,34 @@ class Ui_diag_options(object): def retranslateUi(self, diag_options): _translate = QtCore.QCoreApplication.translate diag_options.setWindowTitle(_translate("diag_options", "RevPi Python PLC Options")) - self.gb_plc.setTitle(_translate("diag_options", "Start / Stop behavior of PLC program")) - self.lbl_replace_io.setText(_translate("diag_options", "Replace IO file:")) - self.cbx_zeroonerror.setText(_translate("diag_options", "... after exception and errors")) + self.gb_plc.setTitle(_translate("diag_options", "PLC Start/Stop Behavior")) + self.lbl_replace_io.setText(_translate("diag_options", "Replace I/O file:")) + self.cbx_zeroonerror.setText(_translate("diag_options", "after exceptions or errors")) self.cbx_autostart.setText(_translate("diag_options", "Start PLC program automatically")) self.cbb_reset_driver_action.setItemText(0, _translate("diag_options", "Do nothing")) - self.cbb_reset_driver_action.setItemText(1, _translate("diag_options", "Restart after piCtory changed")) + self.cbb_reset_driver_action.setItemText(1, _translate("diag_options", "Restart after PiCtory changes")) self.cbb_reset_driver_action.setItemText(2, _translate("diag_options", "Always restart the PLC program")) self.lbl_reset_driver_action.setText(_translate("diag_options", "Driver reset action:")) - self.lbl_plc_zero.setText(_translate("diag_options", "Set process image to NULL if program terminates...")) - self.cbb_replace_io.setItemText(0, _translate("diag_options", "Do not use replace io file")) + self.lbl_plc_zero.setText(_translate("diag_options", "Set process image to NULL if the program terminates")) + self.cbb_replace_io.setItemText(0, _translate("diag_options", "Do not replace I/O file")) self.cbb_replace_io.setItemText(1, _translate("diag_options", "Use static file from RevPiPyLoad")) self.cbb_replace_io.setItemText(2, _translate("diag_options", "Use dynamic file from work directory")) - self.cbb_replace_io.setItemText(3, _translate("diag_options", "Give own path and filename")) - self.cbx_zeroonexit.setText(_translate("diag_options", "... sucessfully without error")) + self.cbb_replace_io.setItemText(3, _translate("diag_options", "Use custom path and file name")) + self.cbx_zeroonexit.setText(_translate("diag_options", "without errors")) self.lbl_plc_delay.setText(_translate("diag_options", "Restart delay in seconds:")) self.cbx_autoreload.setText(_translate("diag_options", "Restart PLC program after exit or crash")) - self.lbl_lbl_reset_driver_action.setText(_translate("diag_options", "PLC program behavior after piCtory driver reset clicked")) - self.gb_server.setTitle(_translate("diag_options", "RevPiPyLoad server services")) + self.lbl_lbl_reset_driver_action.setText(_translate("diag_options", "PLC program behavior after PiCtory driver reset")) + self.gb_server.setTitle(_translate("diag_options", "RevPiPyLoad Server Services")) self.btn_aclplcserver.setText(_translate("diag_options", "Edit ACL")) self.cbx_mqtt.setText(_translate("diag_options", "MQTT process image publisher")) - self.cbx_plcserver.setText(_translate("diag_options", "Start RevPi piControl server")) + self.cbx_plcserver.setText(_translate("diag_options", "Start piControl server")) self.lbl_server_status.setText(_translate("diag_options", "status")) - self.lbl_lbl_server_status.setText(_translate("diag_options", "piControl server is:")) + self.lbl_lbl_server_status.setText(_translate("diag_options", "piControl server:")) self.lbl_mqtt_status.setText(_translate("diag_options", "status")) - self.lbl_lbl_mqtt_status.setText(_translate("diag_options", "MQTT publish service is:")) + self.lbl_lbl_mqtt_status.setText(_translate("diag_options", "MQTT publish service:")) self.btn_mqtt.setText(_translate("diag_options", "Settings")) self.btn_aclxmlrpc.setText(_translate("diag_options", "Edit ACL")) - self.cbx_xmlrpc.setText(_translate("diag_options", "Activate XML-RPC for RevPiCommander")) + self.cbx_xmlrpc.setText(_translate("diag_options", "Activate XML-RPC for RevPi Commander")) if __name__ == "__main__": diff --git a/src/revpicommander/ui/revpiplclist_ui.py b/src/revpicommander/ui/revpiplclist_ui.py index cb943fe..325970d 100644 --- a/src/revpicommander/ui/revpiplclist_ui.py +++ b/src/revpicommander/ui/revpiplclist_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'revpiplclist.ui' # -# Created by: PyQt5 UI code generator 5.15.9 +# Created by: PyQt5 UI code generator 5.15.11 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. @@ -155,19 +155,19 @@ class Ui_diag_connections(object): def retranslateUi(self, diag_connections): _translate = QtCore.QCoreApplication.translate - diag_connections.setWindowTitle(_translate("diag_connections", "Revolution Pi connections")) + diag_connections.setWindowTitle(_translate("diag_connections", "RevPi Connections")) self.lbl_name.setText(_translate("diag_connections", "Display name:")) self.lbl_address.setText(_translate("diag_connections", "Address (DNS/IP):")) - self.lbl_port.setText(_translate("diag_connections", "Port (Default {0}):")) + self.lbl_port.setText(_translate("diag_connections", "Port (default {0}):")) self.lbl_timeout.setText(_translate("diag_connections", "Connection timeout:")) - self.sbx_timeout.setSuffix(_translate("diag_connections", " sec.")) - self.lbl_folder.setText(_translate("diag_connections", "Sub folder:")) + self.sbx_timeout.setSuffix(_translate("diag_connections", " s")) + self.lbl_folder.setText(_translate("diag_connections", "Subfolder:")) self.tab_properties.setTabText(self.tab_properties.indexOf(self.tab_connection), _translate("diag_connections", "Connection")) self.lbl_ssh_use_tunnel.setText(_translate("diag_connections", "Connect over SSH tunnel:")) self.lbl_ssh_port.setText(_translate("diag_connections", "SSH port:")) self.lbl_ssh_user.setText(_translate("diag_connections", "SSH user name:")) self.tab_properties.setTabText(self.tab_properties.indexOf(self.tab_ssh), _translate("diag_connections", "Over SSH")) - self.tre_connections.headerItem().setText(0, _translate("diag_connections", "Connection name")) + self.tre_connections.headerItem().setText(0, _translate("diag_connections", "Connection Name")) self.tre_connections.headerItem().setText(1, _translate("diag_connections", "Address")) from . import ressources_rc diff --git a/src/revpicommander/ui/revpiprogram_ui.py b/src/revpicommander/ui/revpiprogram_ui.py index 4b57bf6..0e43c6c 100644 --- a/src/revpicommander/ui/revpiprogram_ui.py +++ b/src/revpicommander/ui/revpiprogram_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'revpiprogram.ui' # -# Created by: PyQt5 UI code generator 5.15.9 +# Created by: PyQt5 UI code generator 5.15.11 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. @@ -112,27 +112,27 @@ class Ui_diag_program(object): def retranslateUi(self, diag_program): _translate = QtCore.QCoreApplication.translate - diag_program.setWindowTitle(_translate("diag_program", "PLC program")) - self.gb_plc.setTitle(_translate("diag_program", "PLC program")) - self.lbl_plcarguments.setText(_translate("diag_program", "Program arguments:")) - self.lbl_plcprogram_watchdog.setText(_translate("diag_program", "Software watchdog (0=disabled):")) - self.cbx_plcworkdir_set_uid.setText(_translate("diag_program", "Set write permissions for plc program to workdirectory")) + diag_program.setWindowTitle(_translate("diag_program", "PLC Program")) + self.gb_plc.setTitle(_translate("diag_program", "PLC Program")) + self.lbl_plcarguments.setText(_translate("diag_program", "Arguments:")) + self.lbl_plcprogram_watchdog.setText(_translate("diag_program", "Software watchdog (0 = disabled):")) + self.cbx_plcworkdir_set_uid.setText(_translate("diag_program", "Set write permissions for PLC program working directory")) self.lbl_plcprogram.setText(_translate("diag_program", "Python PLC start program:")) - self.sbx_plcprogram_watchdog.setSuffix(_translate("diag_program", " sec.")) - self.cb_transfair.setTitle(_translate("diag_program", "Transfair PLC program")) + self.sbx_plcprogram_watchdog.setSuffix(_translate("diag_program", " s")) + self.cb_transfair.setTitle(_translate("diag_program", "Transfer PLC program")) self.cbb_format.setItemText(0, _translate("diag_program", "ZIP archive")) self.cbb_format.setItemText(1, _translate("diag_program", "TGZ archive")) self.btn_program_upload.setText(_translate("diag_program", "Upload")) self.btn_program_download.setText(_translate("diag_program", "Download")) - self.lbl_format.setText(_translate("diag_program", "Transfair format:")) - self.cbx_pictory.setText(_translate("diag_program", "Including piCtory configuration")) - self.cbx_clear.setText(_translate("diag_program", "Remove all files on Revolution Pi before upload")) - self.gb_control.setTitle(_translate("diag_program", "Control files")) + self.lbl_format.setText(_translate("diag_program", "Transfer format:")) + self.cbx_pictory.setText(_translate("diag_program", "Include PiCtory configuration")) + self.cbx_clear.setText(_translate("diag_program", "Remove all files on RevPi before upload")) + self.gb_control.setTitle(_translate("diag_program", "Control Files")) self.btn_procimg_download.setText(_translate("diag_program", "Download")) self.btn_pictory_download.setText(_translate("diag_program", "Download")) self.btn_pictory_upload.setText(_translate("diag_program", "Upload")) - self.lbl_pictory.setText(_translate("diag_program", "piCtory configuraiton")) - self.lbl_procimg.setText(_translate("diag_program", "Process image from piControl0")) + self.lbl_pictory.setText(_translate("diag_program", "PiCtory configuration")) + self.lbl_procimg.setText(_translate("diag_program", "Process image from piControl")) if __name__ == "__main__": diff --git a/src/revpicommander/ui/simulator_ui.py b/src/revpicommander/ui/simulator_ui.py index 591331d..37fb002 100644 --- a/src/revpicommander/ui/simulator_ui.py +++ b/src/revpicommander/ui/simulator_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'simulator.ui' # -# Created by: PyQt5 UI code generator 5.15.9 +# Created by: PyQt5 UI code generator 5.15.11 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. @@ -108,22 +108,22 @@ class Ui_diag_simulator(object): def retranslateUi(self, diag_simulator): _translate = QtCore.QCoreApplication.translate - diag_simulator.setWindowTitle(_translate("diag_simulator", "piControl simulator")) - self.gb_settings.setTitle(_translate("diag_simulator", "Simulator settings")) + diag_simulator.setWindowTitle(_translate("diag_simulator", "piControl Simulator")) + self.gb_settings.setTitle(_translate("diag_simulator", "Simulator Settings")) self.lbl_history.setText(_translate("diag_simulator", "Last used:")) - self.lbl_configrsc.setText(_translate("diag_simulator", "piCtory file:")) - self.btn_configrsc.setText(_translate("diag_simulator", "select...")) + self.lbl_configrsc.setText(_translate("diag_simulator", "PiCtory file:")) + self.btn_configrsc.setText(_translate("diag_simulator", "Select")) self.lbl_procimg.setText(_translate("diag_simulator", "Process image:")) self.lbl_stop.setText(_translate("diag_simulator", "Stop action:")) self.lbl_restart.setText(_translate("diag_simulator", "Restart action:")) self.cbx_stop_remove.setText(_translate("diag_simulator", "Remove process image file")) - self.rb_restart_pictory.setText(_translate("diag_simulator", "Restore piCtory default values")) - self.rb_restart_zero.setText(_translate("diag_simulator", "Reset everything to ZERO")) - self.gb_info.setTitle(_translate("diag_simulator", "RevPiModIO integration")) - self.lbl_info.setText(_translate("diag_simulator", "You can work with this simulator if you call RevPiModIO with this additional parameters:")) - self.btn_start_pictory.setText(_translate("diag_simulator", "Start with piCtory default values")) + self.rb_restart_pictory.setText(_translate("diag_simulator", "Restore PiCtory default values")) + self.rb_restart_zero.setText(_translate("diag_simulator", "Reset all values to NULL")) + self.gb_info.setTitle(_translate("diag_simulator", "RevPiModIO Integration")) + self.lbl_info.setText(_translate("diag_simulator", "To use this simulator, call RevPiModIO with the following additional parameters:")) + self.btn_start_pictory.setText(_translate("diag_simulator", "Start with PiCtory default values")) self.btn_start_empty.setText(_translate("diag_simulator", "Start with empty process image")) - self.btn_start_nochange.setText(_translate("diag_simulator", "Start without changing actual process image")) + self.btn_start_nochange.setText(_translate("diag_simulator", "Start without changing the current process image")) if __name__ == "__main__": diff --git a/src/revpicommander/ui/sshauth_ui.py b/src/revpicommander/ui/sshauth_ui.py index 63c6e8b..dda43fa 100644 --- a/src/revpicommander/ui/sshauth_ui.py +++ b/src/revpicommander/ui/sshauth_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'sshauth.ui' # -# Created by: PyQt5 UI code generator 5.15.9 +# Created by: PyQt5 UI code generator 5.15.11 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. @@ -64,11 +64,11 @@ class Ui_diag_sshauth(object): def retranslateUi(self, diag_sshauth): _translate = QtCore.QCoreApplication.translate diag_sshauth.setWindowTitle(_translate("diag_sshauth", "SSH authentication")) - self.lbl_username.setText(_translate("diag_sshauth", "SSH username:")) + self.lbl_username.setText(_translate("diag_sshauth", "SSH user name:")) self.lbl_password.setText(_translate("diag_sshauth", "SSH password:")) - self.cbx_save_password.setToolTip(_translate("diag_sshauth", "Username and password will be saved in secured operating systems\'s password storage.")) - self.cbx_save_password.setText(_translate("diag_sshauth", "Save username and password")) - self.lbl_info.setText(_translate("diag_sshauth", "Note: The default user for SSH is \"pi\" which differs from the web configuration. You can find the password on the sticker on the device.")) + self.cbx_save_password.setToolTip(_translate("diag_sshauth", "Save user name and password in secure password storage.")) + self.cbx_save_password.setText(_translate("diag_sshauth", "Save user name and password")) + self.lbl_info.setText(_translate("diag_sshauth", "Default SSH user is \"pi\". The device password is on the RevPi housing sticker.")) if __name__ == "__main__": diff --git a/ui_dev/aclmanager.ui b/ui_dev/aclmanager.ui index d3a91c3..5a54ac9 100644 --- a/ui_dev/aclmanager.ui +++ b/ui_dev/aclmanager.ui @@ -11,7 +11,7 @@ - IP access control list + IP Access Control List @@ -51,7 +51,7 @@ - IP Address + IP address @@ -97,7 +97,7 @@ - Add / Edit access entry + Add/Edit Access Entry diff --git a/ui_dev/avahisearch.ui b/ui_dev/avahisearch.ui index 35ce2e9..cb91156 100644 --- a/ui_dev/avahisearch.ui +++ b/ui_dev/avahisearch.ui @@ -11,7 +11,7 @@ - Search Revolution Pi devices + RevPi device search @@ -19,7 +19,7 @@ - Searching for Revolution Pi devices in your network... + Searching for RevPi devices on the network @@ -85,7 +85,7 @@ - Zero-conf name + ZeroConf name @@ -98,7 +98,7 @@ - &Connect to Revolution Pi + &Connect to RevPi @@ -132,7 +132,7 @@ - Open piCtory + Open PiCtory @@ -140,7 +140,7 @@ Connect via SSH (recommended) - Establish a connection via encrypted SSH tunnel + Connect via an encrypted SSH tunnel. @@ -148,7 +148,7 @@ Connect via XML-RPC - You have to configure your Revolution Pi to accept this connections + Enable these connections on RevPi. @@ -156,7 +156,7 @@ Connect - Connect to Revoluton Pi + Connect to RevPi diff --git a/ui_dev/backgroundworker.ui b/ui_dev/backgroundworker.ui index 67b7841..ac16b08 100644 --- a/ui_dev/backgroundworker.ui +++ b/ui_dev/backgroundworker.ui @@ -17,7 +17,7 @@ - Status message... + Status message diff --git a/ui_dev/debugcontrol.ui b/ui_dev/debugcontrol.ui index f7a429a..3933649 100644 --- a/ui_dev/debugcontrol.ui +++ b/ui_dev/debugcontrol.ui @@ -32,7 +32,7 @@ - Revolution Pi devices + RevPi Devices @@ -40,25 +40,25 @@ - Open to stay on top + Keep window on top - IO Control + I/O Control - Read all IO values and discard local changes (F4) + Read all I/O values and discard local changes (F4). -Hold this button pressed and it will refresh the IOs every 200 ms. +Hold this button to refresh the I/Os every 200 ms. - Read &all IO values + Read &all I/O values true @@ -74,12 +74,12 @@ Hold this button pressed and it will refresh the IOs every 200 ms. - Refresh all IO values which are locally not changed (F5) + Refresh all I/O values that have not been modified locally (F5). -Hold this button pressed and it will refresh the IOs every 200 ms. +Hold this button to refresh the I/Os every 200 ms. - &Refresh unchanged IOs + &Refresh unchanged I/Os true @@ -95,7 +95,7 @@ Hold this button pressed and it will refresh the IOs every 200 ms. - Write locally changed output values to process image (F6) + Write locally modified output values to process image (F6). &Write changed outputs @@ -112,7 +112,7 @@ Hold this button pressed and it will refresh the IOs every 200 ms. - and write outputs + Write outputs diff --git a/ui_dev/files.ui b/ui_dev/files.ui index 03297e5..c5936c2 100644 --- a/ui_dev/files.ui +++ b/ui_dev/files.ui @@ -11,7 +11,7 @@ - File manager + File Manager @@ -28,7 +28,7 @@ - Local computer + Local Computer @@ -168,7 +168,7 @@ - Revolution Pi + RevPi @@ -328,7 +328,7 @@ - Stop - Upload - Start + Stop, upload, start diff --git a/ui_dev/mqttmanager.ui b/ui_dev/mqttmanager.ui index ff683a5..1015364 100644 --- a/ui_dev/mqttmanager.ui +++ b/ui_dev/mqttmanager.ui @@ -29,7 +29,7 @@ - The base topic is the first part of any mqtt topic, the Revolution Pi will publish. You can use any character includig '/' to structure the messages on your broker. + Base topic is the prefix for MQTT topics published by RevPi. Use "/" to structure broker topics. For example: revpi0000/data @@ -113,7 +113,7 @@ For example: revpi0000/data - The Revolution Pi will subscribe a topic on which your mqtt client can publish messages with the new io value as payload. + RevPi subscribes to an MQTT topic for setting output values. Publish the new I/O value as payload. Publish values with topic: [basetopic]/set/[outputname] @@ -125,7 +125,7 @@ Publish values with topic: [basetopic]/set/[outputname] - Allow MQTT to to set outputs on Revolution Pi + Allow MQTT to set outputs on RevPi diff --git a/ui_dev/oss_licenses.ui b/ui_dev/oss_licenses.ui index e3f2fdd..e0af404 100644 --- a/ui_dev/oss_licenses.ui +++ b/ui_dev/oss_licenses.ui @@ -11,7 +11,7 @@ - Open-Source licenses + Open source licenses @@ -87,10 +87,10 @@ - More licenses... + More licenses - Show more open-source software licenses + Show more open source software licenses diff --git a/ui_dev/revpicommander.ui b/ui_dev/revpicommander.ui index d41eff6..c5a964b 100644 --- a/ui_dev/revpicommander.ui +++ b/ui_dev/revpicommander.ui @@ -210,7 +210,7 @@ - &Search Revolution Pi... + &Search RevPi... Ctrl+F @@ -223,12 +223,12 @@ - Visit &webpage... + Visit &website - &Info... + &Info @@ -265,7 +265,7 @@ - piCtory configuraiton... + PiCtory configuration @@ -278,7 +278,7 @@ - Reset driver... + Reset driver diff --git a/ui_dev/revpiinfo.ui b/ui_dev/revpiinfo.ui index 93ba128..0d2a7d9 100644 --- a/ui_dev/revpiinfo.ui +++ b/ui_dev/revpiinfo.ui @@ -11,7 +11,7 @@ - Program information + Program Information @@ -24,7 +24,7 @@ - RevPi Python PLC - Commander + RevPi Commander (Python/PLC) Qt::AlignCenter @@ -114,8 +114,7 @@ RevPiModIO, RevPiPyLoad and RevPiPyControl are community driven projects. They are all free and open source software. -All of them comes with ABSOLUTELY NO WARRANTY, to the extent permitted by -applicable law. +All of them come with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. (c) Sven Sager, License: GPLv2 @@ -140,7 +139,7 @@ applicable law. - <html><head/><body><p><a href="https://revpimodio.org/"><span style=" text-decoration: underline; color:#0000ff;">https://revpimodio.org/</span></a></p></body></html> + <html><head/><body><p><a href="https://revpimodio2.readthedocs.io/en/latest/"><span style=" text-decoration: underline; color:#0000ff;">https://revpimodio2.readthedocs.io/en/latest/</span></a></p></body></html> true diff --git a/ui_dev/revpilogfile.ui b/ui_dev/revpilogfile.ui index 6d837f0..ef8814f 100644 --- a/ui_dev/revpilogfile.ui +++ b/ui_dev/revpilogfile.ui @@ -11,7 +11,7 @@ - RevPi Python PLC Logfiles + RevPi Python PLC Log Files @@ -25,7 +25,7 @@ - Linewrap + Line wrap @@ -42,7 +42,7 @@ - RevPiPyLoad - Logfile + RevPiPyLoad Log File @@ -89,7 +89,7 @@ - Python PLC program - Logfile + Python PLC Program Log File diff --git a/ui_dev/revpioption.ui b/ui_dev/revpioption.ui index 4b4946f..76662d1 100644 --- a/ui_dev/revpioption.ui +++ b/ui_dev/revpioption.ui @@ -17,20 +17,20 @@ - Start / Stop behavior of PLC program + PLC Start/Stop Behavior - Replace IO file: + Replace I/O file: - ... after exception and errors + after exceptions or errors @@ -50,7 +50,7 @@ - Restart after piCtory changed + Restart after PiCtory changes @@ -70,7 +70,7 @@ - Set process image to NULL if program terminates... + Set process image to NULL if the program terminates @@ -78,7 +78,7 @@ - Do not use replace io file + Do not replace I/O file @@ -93,7 +93,7 @@ - Give own path and filename + Use custom path and file name @@ -101,7 +101,7 @@ - ... sucessfully without error + without errors @@ -135,7 +135,7 @@ - PLC program behavior after piCtory driver reset clicked + PLC program behavior after PiCtory driver reset @@ -145,7 +145,7 @@ - RevPiPyLoad server services + RevPiPyLoad Server Services @@ -165,7 +165,7 @@ - Start RevPi piControl server + Start piControl server @@ -182,7 +182,7 @@ - piControl server is: + piControl server: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -202,7 +202,7 @@ - MQTT publish service is: + MQTT publish service: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -226,7 +226,7 @@ - Activate XML-RPC for RevPiCommander + Activate XML-RPC for RevPi Commander diff --git a/ui_dev/revpiplclist.ui b/ui_dev/revpiplclist.ui index bdb0901..9dfd1fa 100644 --- a/ui_dev/revpiplclist.ui +++ b/ui_dev/revpiplclist.ui @@ -11,7 +11,7 @@ - Revolution Pi connections + RevPi Connections @@ -47,7 +47,7 @@ - Port (Default {0}): + Port (default {0}): @@ -86,7 +86,7 @@ - sec. + s 5 @@ -99,7 +99,7 @@ - Sub folder: + Subfolder: @@ -194,7 +194,7 @@ - Connection name + Connection Name diff --git a/ui_dev/revpiprogram.ui b/ui_dev/revpiprogram.ui index 1d67d19..a22640f 100644 --- a/ui_dev/revpiprogram.ui +++ b/ui_dev/revpiprogram.ui @@ -11,33 +11,33 @@ - PLC program + PLC Program - PLC program + PLC Program - Program arguments: + Arguments: - Software watchdog (0=disabled): + Software watchdog (0 = disabled): - Set write permissions for plc program to workdirectory + Set write permissions for PLC program working directory @@ -57,7 +57,7 @@ - sec. + s 600 @@ -70,7 +70,7 @@ - Transfair PLC program + Transfer PLC program @@ -104,21 +104,21 @@ - Transfair format: + Transfer format: - Including piCtory configuration + Include PiCtory configuration - Remove all files on Revolution Pi before upload + Remove all files on RevPi before upload @@ -128,7 +128,7 @@ - Control files + Control Files @@ -155,14 +155,14 @@ - piCtory configuraiton + PiCtory configuration - Process image from piControl0 + Process image from piControl diff --git a/ui_dev/simulator.ui b/ui_dev/simulator.ui index f7a549c..21dcb9a 100644 --- a/ui_dev/simulator.ui +++ b/ui_dev/simulator.ui @@ -11,13 +11,13 @@ - piControl simulator + piControl Simulator - Simulator settings + Simulator Settings @@ -30,7 +30,7 @@ - piCtory file: + PiCtory file: @@ -47,7 +47,7 @@ - select... + Select @@ -99,7 +99,7 @@ - Restore piCtory default values + Restore PiCtory default values true @@ -109,7 +109,7 @@ - Reset everything to ZERO + Reset all values to NULL @@ -119,13 +119,13 @@ - RevPiModIO integration + RevPiModIO Integration - You can work with this simulator if you call RevPiModIO with this additional parameters: + To use this simulator, call RevPiModIO with the following additional parameters: true @@ -151,7 +151,7 @@ - Start with piCtory default values + Start with PiCtory default values Ctrl+1 @@ -171,7 +171,7 @@ - Start without changing actual process image + Start without changing the current process image Ctrl+3 diff --git a/ui_dev/sshauth.ui b/ui_dev/sshauth.ui index 2c061b1..965f903 100644 --- a/ui_dev/sshauth.ui +++ b/ui_dev/sshauth.ui @@ -26,7 +26,7 @@ - SSH username: + SSH user name: @@ -53,10 +53,10 @@ - Username and password will be saved in secured operating systems's password storage. + Save user name and password in secure password storage. - Save username and password + Save user name and password @@ -79,7 +79,7 @@ - Note: The default user for SSH is "pi" which differs from the web configuration. You can find the password on the sticker on the device. + Default SSH user is "pi". The device password is on the RevPi housing sticker. true