diff --git a/DiscoverUM3Action.qml b/DiscoverUM3Action.qml
index d583842dcf..0cc6031e7f 100644
--- a/DiscoverUM3Action.qml
+++ b/DiscoverUM3Action.qml
@@ -54,7 +54,7 @@ Cura.MachineAction
{
id: pageTitle
width: parent.width
- text: catalog.i18nc("@title", "Connect to Networked Printer")
+ text: catalog.i18nc("@title:window", "Connect to Networked Printer")
wrapMode: Text.WordWrap
font.pointSize: 18
}
@@ -64,7 +64,7 @@ Cura.MachineAction
id: pageDescription
width: parent.width
wrapMode: Text.WordWrap
- text: catalog.i18nc("@label", "To print directly to your Ultimaker 3 printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your Ultimaker 3, you can still use a USB drive to transfer g-code files to your printer.\n\nSelect your Ultimaker 3 from the list below:")
+ text: catalog.i18nc("@label", "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n\nSelect your printer from the list below:")
}
Row
@@ -103,7 +103,7 @@ Cura.MachineAction
Button
{
id: rediscoverButton
- text: catalog.i18nc("@title", "Refresh")
+ text: catalog.i18nc("@action:button", "Refresh")
onClicked: manager.restartDiscovery()
}
}
@@ -195,7 +195,7 @@ Cura.MachineAction
wrapMode: Text.WordWrap
//: Tips label
//TODO: get actual link from webteam
- text: catalog.i18nc("@label", "If your Ultimaker 3 is not listed, read the Ultimaker 3 network troubleshooting guide").arg("https://ultimaker.com/en/troubleshooting");
+ text: catalog.i18nc("@label", "If your printer is not listed, read the network-printing troubleshooting guide").arg("https://ultimaker.com/en/troubleshooting");
onLinkActivated: Qt.openUrlExternally(link)
}
@@ -228,7 +228,7 @@ Cura.MachineAction
{
width: parent.width * 0.5
wrapMode: Text.WordWrap
- text: catalog.i18nc("@label", "Ultimaker 3")
+ text: true ? catalog.i18nc("@label", "Ultimaker 3") : catalog.i18nc("@label", "Ultimaker 3 Extended")
}
Label
{
@@ -246,7 +246,7 @@ Cura.MachineAction
{
width: parent.width * 0.5
wrapMode: Text.WordWrap
- text: catalog.i18nc("@label", "IP Address")
+ text: catalog.i18nc("@label", "Address")
}
Label
{
@@ -255,6 +255,13 @@ Cura.MachineAction
text: base.selectedPrinter ? base.selectedPrinter.ipAddress : ""
}
}
+ Label
+ {
+ width: parent.width
+ wrapMode: Text.WordWrap
+ visible: base.selectedPrinter && !base.completeProperties
+ text: catalog.i18nc("@label", "The printer at this address has not yet responded." )
+ }
Button
{
@@ -266,13 +273,20 @@ Cura.MachineAction
}
}
+ Label
+ {
+ // TODO: move use this in an appropriate location
+ visible: false
+ text: catalog.i18nc("@label:", "Print Again")
+ }
+
UM.Dialog
{
id: manualPrinterDialog
property string printerKey
property alias addressText: addressField.text
- title: catalog.i18nc("@label", "IP Address")
+ title: catalog.i18nc("@title:window", "Printer Address")
minimumWidth: 400 * Screen.devicePixelRatio
minimumHeight: 120 * Screen.devicePixelRatio
@@ -298,8 +312,17 @@ Cura.MachineAction
Column {
anchors.fill: parent
+ spacing: UM.Theme.getSize("default_margin").height
- TextField {
+ Label
+ {
+ text: catalog.i18nc("@alabel","Enter the IP address or hostname of your printer on the network.")
+ width: parent.width
+ wrapMode: Text.WordWrap
+ }
+
+ TextField
+ {
id: addressField
width: parent.width
maximumLength: 40
diff --git a/NetworkPrinterOutputDevice.py b/NetworkPrinterOutputDevice.py
index e3eb15f859..288d01f975 100644
--- a/NetworkPrinterOutputDevice.py
+++ b/NetworkPrinterOutputDevice.py
@@ -804,6 +804,13 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
self.setErrorText(i18n_catalog.i18nc("@label:MonitorStatus", "Print aborted. Please check the printer"))
state = "error"
+ # NB/TODO: the following two states are intentionally added for future proofing the i18n strings
+ # but are currently non-functional
+ if state == "!pausing":
+ self.setErrorText(i18n_catalog.i18nc("@label:MonitorStatus", "Pausing print..."))
+ if state == "!resuming":
+ self.setErrorText(i18n_catalog.i18nc("@label:MonitorStatus", "Resuming print..."))
+
self._updateJobState(state)
self.setTimeElapsed(json_data["time_elapsed"])
self.setTimeTotal(json_data["time_total"])