Merge branch 'maintenance' into devel

Conflicts:
	CHANGELOG.md
	src/octoprint/plugins/virtual_printer/virtual.py
	src/octoprint/static/js/app/viewmodels/gcode.js
This commit is contained in:
Gina Häußge 2016-06-21 16:10:02 +02:00
commit b32c231c47
11 changed files with 161 additions and 119 deletions

View file

@ -16,11 +16,11 @@ rc
HEAD
\(detached.*
# maintenance is currently the branch for preparation of maintenance release 1.2.13
# maintenance is currently the branch for preparation of maintenance release 1.2.14
# so are any fix/... and improve/... branches
maintenance 1.2.13 685ce16c85eea9c4f11586ea99c9a84aca382bd4 pep440-dev
fix/.* 1.2.13 685ce16c85eea9c4f11586ea99c9a84aca382bd4 pep440-dev
improve/.* 1.2.13 685ce16c85eea9c4f11586ea99c9a84aca382bd4 pep440-dev
maintenance 1.2.14 cb2e0d449f607bbc89c7ad13c983a0cf11bbfdee pep440-dev
fix/.* 1.2.14 cb2e0d449f607bbc89c7ad13c983a0cf11bbfdee pep440-dev
improve/.* 1.2.14 cb2e0d449f607bbc89c7ad13c983a0cf11bbfdee pep440-dev
# every other branch is a development branch and thus gets resolved to 1.3.0-dev for now
.* 1.3.0 198d3450d94be1a2 pep440-dev

View file

@ -74,6 +74,18 @@
* [#1047](https://github.com/foosel/OctoPrint/issues/1047) - Fixed 90 degree
webcam rotation for iOS Safari.
## 1.2.13 (2016-06-16)
### Bug Fixes
* [#1373](https://github.com/foosel/OctoPrint/issues/1373): Don't parse `B:` as bed temperature when it shows up as part of a position report from `M114`.
* [#1374](https://github.com/foosel/OctoPrint/issues/1374): Don't try to perform a passive login when the components we'd need to inform about a change in login state aren't yet available. Solves a bug that lead - among other things - to the Plugin Manager and the Software Update Plugin not showing anything but misleading errors until the user logged out and back in.
* Fixed the temperature graph staying uninitialized until a connection to a printer was established.
* Fixed an error causing issues during frontend startup if the browser doesn't support tracking browser visibility.
* Fixed an error causing issues during frontend startup if the browser doesn't support the capabilities needed for the GCODE viewer.
([Commits](https://github.com/foosel/OctoPrint/compare/1.2.12...1.2.13))
## 1.2.12 (2016-06-09)
### Improvements

View file

@ -332,7 +332,7 @@ class VirtualPrinter(object):
self._deleteSdFile(filename)
def _gcode_M114(self, data):
output = "C: X:{} Y:{} Z:{} E:{}".format(self._lastX, self._lastY, self._lastZ, self._lastE)
output = "X:{} Y:{} Z:{} E:{} Count: A:{} B:{} C:{}".format(self._lastX, self._lastY, self._lastZ, self._lastE, int(self._lastX*100), int(self.lastY*100), int(self.lastZ*100))
if not self._okBeforeCommandOutput:
output = "ok " + output
self._send(output)

View file

@ -104,8 +104,11 @@ GCODE.ui = (function(){
if(!Modernizr.webworkers)fatal.push("<li>Your browser doesn't seem to support HTML5 Web Workers, this application won't work without it.</li>");
if(!Modernizr.svg)fatal.push("<li>Your browser doesn't seem to support HTML5 SVG, this application won't work without it.</li>");
var errorList = document.getElementById("errorList");
if(fatal.length>0){
document.getElementById('errorList').innerHTML = '<ul>' + fatal.join('') + '</ul>';
if (errorList) {
errorList.innerHTML = '<ul>' + fatal.join('') + '</ul>';
}
console.log("Initialization failed: unsupported browser.")
return false;
}
@ -117,8 +120,10 @@ GCODE.ui = (function(){
if(!Modernizr.draganddrop)warnings.push("<li>Your browser doesn't seem to support HTML5 Drag'n'Drop, Drop area will not work.</li>");
if(warnings.length>0){
document.getElementById('errorList').innerHTML = '<ul>' + wanings.join('') + '</ul>';
console.log("Initialization succeeded with warnings.")
if (errorList) {
errorList.innerHTML = '<ul>' + warnings.join('') + '</ul>';
}
console.log("Initialization succeeded with warnings.", warnings);
}
return true;
};
@ -138,12 +143,12 @@ GCODE.ui = (function(){
init: function(options){
if (options) setOptions(options);
if (!options.container) {
return;
return false;
}
var capabilitiesResult = checkCapabilities();
if (!capabilitiesResult) {
return;
return false;
}
setProgress("", 0);
@ -159,6 +164,8 @@ GCODE.ui = (function(){
toolOffsets: options.toolOffsets
});
GCODE.renderer.render(0, 0);
return true;
},
clear: function() {
@ -196,4 +203,4 @@ GCODE.ui = (function(){
switchCommands(layerNum, first, last);
}
}
}());
}());

View file

@ -74,12 +74,12 @@ $(function() {
// register for browser visibility tracking
var prop = getHiddenProp();
if (!prop) return undefined;
if (prop) {
var eventName = prop.replace(/[H|h]idden/, "") + "visibilitychange";
document.addEventListener(eventName, updateBrowserVisibility);
var eventName = prop.replace(/[H|h]idden/, "") + "visibilitychange";
document.addEventListener(eventName, updateBrowserVisibility);
updateBrowserVisibility();
updateBrowserVisibility();
}
// exports

View file

@ -236,7 +236,7 @@ $(function() {
self.settings.requestData()
.done(function() {
GCODE.ui.init({
var initResult = GCODE.ui.init({
container: "#gcode_canvas",
onProgress: self._onProgress,
onModelLoaded: self._onModelLoaded,
@ -245,6 +245,12 @@ $(function() {
toolOffsets: self._retrieveToolOffsets(),
invertAxes: self._retrieveAxesConfiguration()
});
if (!initResult) {
log.info("Could not initialize GCODE viewer component");
return;
}
self.synchronizeOptions();
self.enabled = true;
});

View file

@ -111,7 +111,8 @@ $(function() {
self.allViewModels = allViewModels;
};
self.onServerConnect = self.onServerReconnect = function() {
self.onStartupComplete = self.onServerConnect = self.onServerReconnect = function() {
if (self.allViewModels == undefined) return;
self.requestData();
};

View file

@ -40,13 +40,15 @@ $(function() {
var graphColors = ["red", "orange", "green", "brown", "purple"];
var heaterOptions = {};
var tools = self.tools();
var color;
// tools
var numExtruders = self.settingsViewModel.printerProfiles.currentProfileData().extruder.count();
var currentProfileData = self.settingsViewModel.printerProfiles.currentProfileData();
var numExtruders = (currentProfileData ? currentProfileData.extruder.count() : 0);
if (numExtruders && numExtruders > 1) {
// multiple extruders
for (var extruder = 0; extruder < numExtruders; extruder++) {
var color = graphColors.shift();
color = graphColors.shift();
if (!color) color = "black";
heaterOptions["tool" + extruder] = {name: "T" + extruder, color: color};
@ -56,9 +58,9 @@ $(function() {
tools[extruder]["name"](gettext("Tool") + " " + extruder);
tools[extruder]["key"]("tool" + extruder);
}
} else {
} else if (numExtruders == 1) {
// only one extruder, no need to add numbers
var color = graphColors[0];
color = graphColors[0];
heaterOptions["tool0"] = {name: "T", color: color};
if (tools.length < 1 || !tools[0]) {
@ -69,7 +71,7 @@ $(function() {
}
// print bed
if (self.settingsViewModel.printerProfiles.currentProfileData().heatedBed()) {
if (currentProfileData && currentProfileData.heatedBed()) {
self.hasBed(true);
heaterOptions["bed"] = {name: gettext("Bed"), color: "blue"};
} else {
@ -79,11 +81,12 @@ $(function() {
// write back
self.heaterOptions(heaterOptions);
self.tools(tools);
self.updatePlot();
};
self.settingsViewModel.printerProfiles.currentProfileData.subscribe(function() {
self._printerProfileUpdated();
self.settingsViewModel.printerProfiles.currentProfileData().extruder.count.subscribe(self._printerProfileUpdated);
self.settingsViewModel.printerProfiles.currentProfileData().heatedBed.subscribe(self._printerProfileUpdated());
self.settingsViewModel.printerProfiles.currentProfileData().heatedBed.subscribe(self._printerProfileUpdated);
});
self.temperatures = [];
@ -386,7 +389,11 @@ $(function() {
return;
}
self.updatePlot();
}
};
self.onStartupComplete = function() {
self._printerProfileUpdated();
};
}

View file

@ -1075,8 +1075,17 @@ class MachineCom(object):
if handled and self._state not in (self.STATE_CONNECTING, self.STATE_DETECT_BAUDRATE):
continue
##~~ Temperature processing
if ' T:' in line or line.startswith('T:') or ' T0:' in line or line.startswith('T0:') or ' B:' in line or line.startswith('B:'):
# position report processing
if 'X:' in line and 'Y:' in line and 'Z:' in line:
# currently only here to prevent any "B:"s in a position report from
# triggering temperature processing and being interpreted as a bed
# temperature - can happen with COREXY in current Marlin
#
# see also issue #1373
pass
# temperature processing
elif ' T:' in line or line.startswith('T:') or ' T0:' in line or line.startswith('T0:') or ((' B:' in line or line.startswith('B:')) and not 'A:' in line):
if not disable_external_heatup_detection and not line.strip().startswith("ok") and not self._heating:
self._logger.debug("Externally triggered heatup detected")
self._heating = True

View file

@ -5,21 +5,20 @@
#
msgid ""
msgstr ""
"Project-Id-Version: OctoPrint\n"
"Project-Id-Version: OctoPrint\n"
"Report-Msgid-Bugs-To: i18n@octoprint.org\n"
"POT-Creation-Date: 2016-06-08 11:03+0200\n"
"POT-Creation-Date: 2016-06-16 12:18+0200\n"
"PO-Revision-Date: 2016-06-08 11:04+0100\n"
"Last-Translator: Gina Häußge <osd@foosel.net>\n"
"Language: de\n"
"Language-Team: German (http://www.transifex.com/projects/p/octoprint/language/de/)\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.2.0\n"
"X-Generator: Poedit 1.6.8\n"
#: src/octoprint/plugins/announcements/__init__.py:85
#: src/octoprint/plugins/announcements/__init__.py:89
#: src/octoprint/plugins/announcements/templates/announcements.jinja2:4
#: src/octoprint/plugins/announcements/templates/announcements_navbar.jinja2:1
msgid "Announcements"
@ -976,73 +975,73 @@ msgstr "Zugriff"
msgid "Interface"
msgstr "Interface"
#: src/octoprint/static/js/app/dataupdater.js:92
#: src/octoprint/static/js/app/dataupdater.js:127
#: src/octoprint/static/js/app/dataupdater.js:96
#: src/octoprint/static/js/app/dataupdater.js:131
#: src/octoprint/static/js/app/helpers.js:451
#: src/octoprint/templates/overlays/offline.jinja2:6
msgid "Server is offline"
msgstr "Der Server ist offline"
#: src/octoprint/static/js/app/dataupdater.js:93
#: src/octoprint/static/js/app/dataupdater.js:97
msgid "The server appears to be offline, at least I'm not getting any response from it. I'll try to reconnect automatically <strong>over the next couple of minutes</strong>, however you are welcome to try a manual reconnect anytime using the button below."
msgstr "Der Server scheint offline zu sein, zumindest kann ich mich nicht mit ihm verbinden. Ich werde <strong>in den nächsten Minuten</strong> versuchen mich erneut zu verbinden, aber Du kannst mittels des folgenden Buttons auch jederzeit einen manuellen Verbindungsversuch anstoßen."
#: src/octoprint/static/js/app/dataupdater.js:128
#: src/octoprint/static/js/app/dataupdater.js:132
msgid "The server appears to be offline, at least I'm not getting any response from it. I <strong>could not reconnect automatically</strong>, but you may try a manual reconnect using the button below."
msgstr "Der Server scheint offline zu sein, zumindest kann ich mich nicht mit ihm verbinden. Ich <strong>konnte mich nicht automatisch neu verbinden</strong>, aber Du kannst mittels des folgenden Buttons einen manuellen Verbindungsversuch anstoßen."
#: src/octoprint/static/js/app/dataupdater.js:206
#: src/octoprint/static/js/app/dataupdater.js:226
#: src/octoprint/static/js/app/dataupdater.js:217
#: src/octoprint/static/js/app/dataupdater.js:237
#, python-format
msgid "Slicing ... (%(percentage)d%%)"
msgstr "Slice ... (%(percentage)d%%)"
#: src/octoprint/static/js/app/dataupdater.js:228
#: src/octoprint/static/js/app/dataupdater.js:239
msgid "Slicing ..."
msgstr "Slice ..."
#: src/octoprint/static/js/app/dataupdater.js:234
#: src/octoprint/static/js/app/dataupdater.js:245
msgid "Slicing done"
msgstr "Slicing abgeschlossen"
#: src/octoprint/static/js/app/dataupdater.js:234
#: src/octoprint/static/js/app/dataupdater.js:245
#, python-format
msgid "Sliced %(stl)s to %(gcode)s, took %(time).2f seconds"
msgstr "%(stl)s nach %(gcode)s geslicet, dauerte %(time).2f Sekunden"
#: src/octoprint/static/js/app/dataupdater.js:244
#: src/octoprint/static/js/app/dataupdater.js:255
#, python-format
msgid "Could not slice %(stl)s to %(gcode)s: %(reason)s"
msgstr "Konnte %(stl)s nicht nach %(gcode)s slicen: %(reason)s"
#: src/octoprint/static/js/app/dataupdater.js:245
#: src/octoprint/static/js/app/dataupdater.js:256
msgid "Slicing failed"
msgstr "Slicing fehlgeschlagen"
#: src/octoprint/static/js/app/dataupdater.js:249
#: src/octoprint/static/js/app/dataupdater.js:260
msgid "Streaming ..."
msgstr "Streaming ..."
#: src/octoprint/static/js/app/dataupdater.js:255
#: src/octoprint/static/js/app/dataupdater.js:266
msgid "Streaming done"
msgstr "Streaming abgeschlossen"
#: src/octoprint/static/js/app/dataupdater.js:256
#: src/octoprint/static/js/app/dataupdater.js:267
#, python-format
msgid "Streamed %(local)s to %(remote)s on SD, took %(time).2f seconds"
msgstr "%(local)s nach %(remote)s gestreamt, dauerte %(time).2f Sekunden"
#: src/octoprint/static/js/app/dataupdater.js:262
#: src/octoprint/static/js/app/dataupdater.js:270
#: src/octoprint/static/js/app/dataupdater.js:273
#: src/octoprint/static/js/app/dataupdater.js:281
msgid "Unhandled communication error"
msgstr "Unbehandelter Kommunikationsfehler"
#: src/octoprint/static/js/app/dataupdater.js:263
#: src/octoprint/static/js/app/dataupdater.js:274
#, python-format
msgid "There was an unhandled error while talking to the printer. Due to that the ongoing print job was cancelled. Error: %(firmwareError)s"
msgstr "Es gab einen unbehandelten Fehler bei der Kommunikation mit dem Drucker. Daher wurder der laufende Druckauftrag abgebrochen. Fehler: %(firmwareError)s"
#: src/octoprint/static/js/app/dataupdater.js:271
#: src/octoprint/static/js/app/dataupdater.js:282
#, python-format
msgid "The was an unhandled error while talking to the printer. Due to that OctoPrint disconnected. Error: %(error)s"
msgstr "Es gab einen unbehandelten Fehler bei der Kommunikation mit dem Drucker. Daher hat OctoPrint die Verbindung getrennt. Fehler: %(error)s"
@ -1120,14 +1119,14 @@ msgstr "Trennen"
#: src/octoprint/static/js/app/viewmodels/control.js:65
#: src/octoprint/static/js/app/viewmodels/files.js:329
#: src/octoprint/static/js/app/viewmodels/gcode.js:465
#: src/octoprint/static/js/app/viewmodels/gcode.js:471
#: src/octoprint/static/js/app/viewmodels/printerstate.js:177
#: src/octoprint/static/js/app/viewmodels/temperature.js:56
#: src/octoprint/static/js/app/viewmodels/temperature.js:58
msgid "Tool"
msgstr "Werkzeug"
#: src/octoprint/static/js/app/viewmodels/control.js:71
#: src/octoprint/static/js/app/viewmodels/temperature.js:67
#: src/octoprint/static/js/app/viewmodels/temperature.js:69
msgid "Hotend"
msgstr "Hotend"
@ -1160,15 +1159,15 @@ msgstr "Zuletzt gedruckt"
msgid "Last Print Time"
msgstr "Letzte Druckdauer"
#: src/octoprint/static/js/app/viewmodels/files.js:520
#: src/octoprint/static/js/app/viewmodels/files.js:515
msgid "Could not upload the file. Make sure that it is a GCODE file and has the extension \".gcode\" or \".gco\" or that it is an STL file with the extension \".stl\"."
msgstr "Konnte die Datei nicht hochladen. Bitte stelle sicher, dass es sich um eine GCODE-Datei mit der Extension \".gcode\" oder \".gco\" oder um eine STL-Datei mit der Extension \".stl\" handelt."
#: src/octoprint/static/js/app/viewmodels/files.js:541
#: src/octoprint/static/js/app/viewmodels/files.js:536
msgid "Uploading ..."
msgstr "Uploade ..."
#: src/octoprint/static/js/app/viewmodels/files.js:548
#: src/octoprint/static/js/app/viewmodels/files.js:543
msgid "Saving ..."
msgstr "Speichere ..."
@ -1188,52 +1187,52 @@ msgstr "Analysiere..."
msgid "Analyzed"
msgstr "Analysiert"
#: src/octoprint/static/js/app/viewmodels/gcode.js:431
#: src/octoprint/static/js/app/viewmodels/gcode.js:437
msgid "Model size"
msgstr "Modelgröße"
#: src/octoprint/static/js/app/viewmodels/gcode.js:432
#: src/octoprint/static/js/app/viewmodels/gcode.js:438
msgid "Estimated total print time"
msgstr "Geschätzte Gesamtdruckdauer"
#: src/octoprint/static/js/app/viewmodels/gcode.js:433
#: src/octoprint/static/js/app/viewmodels/gcode.js:439
msgid "Estimated layer height"
msgstr "Geschätzte Schichthöhe"
#: src/octoprint/static/js/app/viewmodels/gcode.js:433
#: src/octoprint/static/js/app/viewmodels/gcode.js:439
msgid "mm"
msgstr "mm"
#: src/octoprint/static/js/app/viewmodels/gcode.js:434
#: src/octoprint/static/js/app/viewmodels/gcode.js:440
msgid "Layer count"
msgstr "Schichtanzahl"
#: src/octoprint/static/js/app/viewmodels/gcode.js:434
#: src/octoprint/static/js/app/viewmodels/gcode.js:440
msgid "printed"
msgstr "gedruckt"
#: src/octoprint/static/js/app/viewmodels/gcode.js:434
#: src/octoprint/static/js/app/viewmodels/gcode.js:440
msgid "visited"
msgstr "besucht"
#: src/octoprint/static/js/app/viewmodels/gcode.js:457
#: src/octoprint/static/js/app/viewmodels/gcode.js:463
msgid "Layer number"
msgstr "Schichtnummer"
#: src/octoprint/static/js/app/viewmodels/gcode.js:458
#: src/octoprint/static/js/app/viewmodels/gcode.js:464
msgid "Layer height"
msgstr "Schichthöhe"
#: src/octoprint/static/js/app/viewmodels/gcode.js:459
#: src/octoprint/static/js/app/viewmodels/gcode.js:465
msgid "GCODE commands in layer"
msgstr "GCODE Befehle in Schicht"
#: src/octoprint/static/js/app/viewmodels/gcode.js:462
#: src/octoprint/static/js/app/viewmodels/gcode.js:465
#: src/octoprint/static/js/app/viewmodels/gcode.js:468
#: src/octoprint/static/js/app/viewmodels/gcode.js:471
msgid "Filament used by layer"
msgstr "Genutztes Filament in Schicht"
#: src/octoprint/static/js/app/viewmodels/gcode.js:469
#: src/octoprint/static/js/app/viewmodels/gcode.js:475
msgid "Print time for layer"
msgstr "Druckdauer für Schicht"
@ -1452,25 +1451,25 @@ msgid "Slicing %(filename)s"
msgstr "Slice %(filename)s"
#: src/octoprint/static/js/app/viewmodels/temperature.js:23
#: src/octoprint/static/js/app/viewmodels/temperature.js:74
#: src/octoprint/static/js/app/viewmodels/temperature.js:76
#: src/octoprint/templates/dialogs/settings/temperatures.jinja2:16
msgid "Bed"
msgstr "Bett"
#: src/octoprint/static/js/app/viewmodels/temperature.js:112
#: src/octoprint/static/js/app/viewmodels/temperature.js:115
msgid "just now"
msgstr "gerade eben"
#: src/octoprint/static/js/app/viewmodels/temperature.js:114
#: src/octoprint/static/js/app/viewmodels/temperature.js:117
msgid "min"
msgstr "Min"
#: src/octoprint/static/js/app/viewmodels/temperature.js:253
#: src/octoprint/static/js/app/viewmodels/temperature.js:256
#: src/octoprint/templates/tabs/temperature.jinja2:11
msgid "Actual"
msgstr "Ist"
#: src/octoprint/static/js/app/viewmodels/temperature.js:258
#: src/octoprint/static/js/app/viewmodels/temperature.js:261
#: src/octoprint/templates/tabs/temperature.jinja2:12
msgid "Target"
msgstr "Soll"
@ -2927,3 +2926,4 @@ msgstr "Zeitrafferaufnahme rendern"
#~ msgid "Show Announcements..."
#~ msgstr "Ankündigungen anzeigen..."

View file

@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OctoPrint 1.2.12.dev21+g5006b01.dirty\n"
"Project-Id-Version: OctoPrint 1.2.13.dev7+g6c20e58\n"
"Report-Msgid-Bugs-To: i18n@octoprint.org\n"
"POT-Creation-Date: 2016-06-08 11:03+0200\n"
"POT-Creation-Date: 2016-06-16 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.2.0\n"
#: src/octoprint/plugins/announcements/__init__.py:85
#: src/octoprint/plugins/announcements/__init__.py:89
#: src/octoprint/plugins/announcements/templates/announcements.jinja2:4
#: src/octoprint/plugins/announcements/templates/announcements_navbar.jinja2:1
msgid "Announcements"
@ -1045,14 +1045,14 @@ msgstr ""
msgid "Interface"
msgstr ""
#: src/octoprint/static/js/app/dataupdater.js:92
#: src/octoprint/static/js/app/dataupdater.js:127
#: src/octoprint/static/js/app/dataupdater.js:96
#: src/octoprint/static/js/app/dataupdater.js:131
#: src/octoprint/static/js/app/helpers.js:451
#: src/octoprint/templates/overlays/offline.jinja2:6
msgid "Server is offline"
msgstr ""
#: src/octoprint/static/js/app/dataupdater.js:93
#: src/octoprint/static/js/app/dataupdater.js:97
msgid ""
"The server appears to be offline, at least I'm not getting any response "
"from it. I'll try to reconnect automatically <strong>over the next couple"
@ -1060,67 +1060,67 @@ msgid ""
"anytime using the button below."
msgstr ""
#: src/octoprint/static/js/app/dataupdater.js:128
#: src/octoprint/static/js/app/dataupdater.js:132
msgid ""
"The server appears to be offline, at least I'm not getting any response "
"from it. I <strong>could not reconnect automatically</strong>, but you "
"may try a manual reconnect using the button below."
msgstr ""
#: src/octoprint/static/js/app/dataupdater.js:206
#: src/octoprint/static/js/app/dataupdater.js:226
#: src/octoprint/static/js/app/dataupdater.js:217
#: src/octoprint/static/js/app/dataupdater.js:237
#, python-format
msgid "Slicing ... (%(percentage)d%%)"
msgstr ""
#: src/octoprint/static/js/app/dataupdater.js:228
#: src/octoprint/static/js/app/dataupdater.js:239
msgid "Slicing ..."
msgstr ""
#: src/octoprint/static/js/app/dataupdater.js:234
#: src/octoprint/static/js/app/dataupdater.js:245
msgid "Slicing done"
msgstr ""
#: src/octoprint/static/js/app/dataupdater.js:234
#: src/octoprint/static/js/app/dataupdater.js:245
#, python-format
msgid "Sliced %(stl)s to %(gcode)s, took %(time).2f seconds"
msgstr ""
#: src/octoprint/static/js/app/dataupdater.js:244
#: src/octoprint/static/js/app/dataupdater.js:255
#, python-format
msgid "Could not slice %(stl)s to %(gcode)s: %(reason)s"
msgstr ""
#: src/octoprint/static/js/app/dataupdater.js:245
#: src/octoprint/static/js/app/dataupdater.js:256
msgid "Slicing failed"
msgstr ""
#: src/octoprint/static/js/app/dataupdater.js:249
#: src/octoprint/static/js/app/dataupdater.js:260
msgid "Streaming ..."
msgstr ""
#: src/octoprint/static/js/app/dataupdater.js:255
#: src/octoprint/static/js/app/dataupdater.js:266
msgid "Streaming done"
msgstr ""
#: src/octoprint/static/js/app/dataupdater.js:256
#: src/octoprint/static/js/app/dataupdater.js:267
#, python-format
msgid "Streamed %(local)s to %(remote)s on SD, took %(time).2f seconds"
msgstr ""
#: src/octoprint/static/js/app/dataupdater.js:262
#: src/octoprint/static/js/app/dataupdater.js:270
#: src/octoprint/static/js/app/dataupdater.js:273
#: src/octoprint/static/js/app/dataupdater.js:281
msgid "Unhandled communication error"
msgstr ""
#: src/octoprint/static/js/app/dataupdater.js:263
#: src/octoprint/static/js/app/dataupdater.js:274
#, python-format
msgid ""
"There was an unhandled error while talking to the printer. Due to that "
"the ongoing print job was cancelled. Error: %(firmwareError)s"
msgstr ""
#: src/octoprint/static/js/app/dataupdater.js:271
#: src/octoprint/static/js/app/dataupdater.js:282
#, python-format
msgid ""
"The was an unhandled error while talking to the printer. Due to that "
@ -1200,14 +1200,14 @@ msgstr ""
#: src/octoprint/static/js/app/viewmodels/control.js:65
#: src/octoprint/static/js/app/viewmodels/files.js:329
#: src/octoprint/static/js/app/viewmodels/gcode.js:465
#: src/octoprint/static/js/app/viewmodels/gcode.js:471
#: src/octoprint/static/js/app/viewmodels/printerstate.js:177
#: src/octoprint/static/js/app/viewmodels/temperature.js:56
#: src/octoprint/static/js/app/viewmodels/temperature.js:58
msgid "Tool"
msgstr ""
#: src/octoprint/static/js/app/viewmodels/control.js:71
#: src/octoprint/static/js/app/viewmodels/temperature.js:67
#: src/octoprint/static/js/app/viewmodels/temperature.js:69
msgid "Hotend"
msgstr ""
@ -1240,18 +1240,18 @@ msgstr ""
msgid "Last Print Time"
msgstr ""
#: src/octoprint/static/js/app/viewmodels/files.js:520
#: src/octoprint/static/js/app/viewmodels/files.js:515
msgid ""
"Could not upload the file. Make sure that it is a GCODE file and has the "
"extension \".gcode\" or \".gco\" or that it is an STL file with the "
"extension \".stl\"."
msgstr ""
#: src/octoprint/static/js/app/viewmodels/files.js:541
#: src/octoprint/static/js/app/viewmodels/files.js:536
msgid "Uploading ..."
msgstr ""
#: src/octoprint/static/js/app/viewmodels/files.js:548
#: src/octoprint/static/js/app/viewmodels/files.js:543
msgid "Saving ..."
msgstr ""
@ -1274,52 +1274,52 @@ msgstr ""
msgid "Analyzed"
msgstr ""
#: src/octoprint/static/js/app/viewmodels/gcode.js:431
#: src/octoprint/static/js/app/viewmodels/gcode.js:437
msgid "Model size"
msgstr ""
#: src/octoprint/static/js/app/viewmodels/gcode.js:432
#: src/octoprint/static/js/app/viewmodels/gcode.js:438
msgid "Estimated total print time"
msgstr ""
#: src/octoprint/static/js/app/viewmodels/gcode.js:433
#: src/octoprint/static/js/app/viewmodels/gcode.js:439
msgid "Estimated layer height"
msgstr ""
#: src/octoprint/static/js/app/viewmodels/gcode.js:433
#: src/octoprint/static/js/app/viewmodels/gcode.js:439
msgid "mm"
msgstr ""
#: src/octoprint/static/js/app/viewmodels/gcode.js:434
#: src/octoprint/static/js/app/viewmodels/gcode.js:440
msgid "Layer count"
msgstr ""
#: src/octoprint/static/js/app/viewmodels/gcode.js:434
#: src/octoprint/static/js/app/viewmodels/gcode.js:440
msgid "printed"
msgstr ""
#: src/octoprint/static/js/app/viewmodels/gcode.js:434
#: src/octoprint/static/js/app/viewmodels/gcode.js:440
msgid "visited"
msgstr ""
#: src/octoprint/static/js/app/viewmodels/gcode.js:457
#: src/octoprint/static/js/app/viewmodels/gcode.js:463
msgid "Layer number"
msgstr ""
#: src/octoprint/static/js/app/viewmodels/gcode.js:458
#: src/octoprint/static/js/app/viewmodels/gcode.js:464
msgid "Layer height"
msgstr ""
#: src/octoprint/static/js/app/viewmodels/gcode.js:459
#: src/octoprint/static/js/app/viewmodels/gcode.js:465
msgid "GCODE commands in layer"
msgstr ""
#: src/octoprint/static/js/app/viewmodels/gcode.js:462
#: src/octoprint/static/js/app/viewmodels/gcode.js:465
#: src/octoprint/static/js/app/viewmodels/gcode.js:468
#: src/octoprint/static/js/app/viewmodels/gcode.js:471
msgid "Filament used by layer"
msgstr ""
#: src/octoprint/static/js/app/viewmodels/gcode.js:469
#: src/octoprint/static/js/app/viewmodels/gcode.js:475
msgid "Print time for layer"
msgstr ""
@ -1544,25 +1544,25 @@ msgid "Slicing %(filename)s"
msgstr ""
#: src/octoprint/static/js/app/viewmodels/temperature.js:23
#: src/octoprint/static/js/app/viewmodels/temperature.js:74
#: src/octoprint/static/js/app/viewmodels/temperature.js:76
#: src/octoprint/templates/dialogs/settings/temperatures.jinja2:16
msgid "Bed"
msgstr ""
#: src/octoprint/static/js/app/viewmodels/temperature.js:112
#: src/octoprint/static/js/app/viewmodels/temperature.js:115
msgid "just now"
msgstr ""
#: src/octoprint/static/js/app/viewmodels/temperature.js:114
#: src/octoprint/static/js/app/viewmodels/temperature.js:117
msgid "min"
msgstr ""
#: src/octoprint/static/js/app/viewmodels/temperature.js:253
#: src/octoprint/static/js/app/viewmodels/temperature.js:256
#: src/octoprint/templates/tabs/temperature.jinja2:11
msgid "Actual"
msgstr ""
#: src/octoprint/static/js/app/viewmodels/temperature.js:258
#: src/octoprint/static/js/app/viewmodels/temperature.js:261
#: src/octoprint/templates/tabs/temperature.jinja2:12
msgid "Target"
msgstr ""