diff --git a/cypress/e2e/working area/design_functions.cy.js b/cypress/e2e/01_working_area/design_functions.cy.js
similarity index 100%
rename from cypress/e2e/working area/design_functions.cy.js
rename to cypress/e2e/01_working_area/design_functions.cy.js
diff --git a/cypress/e2e/working area/designs/dxf_laser_job.cy.js b/cypress/e2e/01_working_area/designs/dxf_laser_job.cy.js
similarity index 100%
rename from cypress/e2e/working area/designs/dxf_laser_job.cy.js
rename to cypress/e2e/01_working_area/designs/dxf_laser_job.cy.js
diff --git a/cypress/e2e/working area/designs/jpg_laser_job.cy.js b/cypress/e2e/01_working_area/designs/jpg_laser_job.cy.js
similarity index 100%
rename from cypress/e2e/working area/designs/jpg_laser_job.cy.js
rename to cypress/e2e/01_working_area/designs/jpg_laser_job.cy.js
diff --git a/cypress/e2e/working area/designs/png_laser_job.cy.js b/cypress/e2e/01_working_area/designs/png_laser_job.cy.js
similarity index 100%
rename from cypress/e2e/working area/designs/png_laser_job.cy.js
rename to cypress/e2e/01_working_area/designs/png_laser_job.cy.js
diff --git a/cypress/e2e/working area/designs/quick_text_laser_job.cy.js b/cypress/e2e/01_working_area/designs/quick_text_laser_job.cy.js
similarity index 100%
rename from cypress/e2e/working area/designs/quick_text_laser_job.cy.js
rename to cypress/e2e/01_working_area/designs/quick_text_laser_job.cy.js
diff --git a/cypress/e2e/working area/designs/shapes/circle_shape.cy.js b/cypress/e2e/01_working_area/designs/shapes/circle_shape.cy.js
similarity index 100%
rename from cypress/e2e/working area/designs/shapes/circle_shape.cy.js
rename to cypress/e2e/01_working_area/designs/shapes/circle_shape.cy.js
diff --git a/cypress/e2e/working area/designs/shapes/heart_shape.cy.js b/cypress/e2e/01_working_area/designs/shapes/heart_shape.cy.js
similarity index 100%
rename from cypress/e2e/working area/designs/shapes/heart_shape.cy.js
rename to cypress/e2e/01_working_area/designs/shapes/heart_shape.cy.js
diff --git a/cypress/e2e/working area/designs/shapes/line_shape.cy.js b/cypress/e2e/01_working_area/designs/shapes/line_shape.cy.js
similarity index 100%
rename from cypress/e2e/working area/designs/shapes/line_shape.cy.js
rename to cypress/e2e/01_working_area/designs/shapes/line_shape.cy.js
diff --git a/cypress/e2e/working area/designs/shapes/rectangle_shape.cy.js b/cypress/e2e/01_working_area/designs/shapes/rectangle_shape.cy.js
similarity index 100%
rename from cypress/e2e/working area/designs/shapes/rectangle_shape.cy.js
rename to cypress/e2e/01_working_area/designs/shapes/rectangle_shape.cy.js
diff --git a/cypress/e2e/working area/designs/shapes/star_shape.cy.js b/cypress/e2e/01_working_area/designs/shapes/star_shape.cy.js
similarity index 100%
rename from cypress/e2e/working area/designs/shapes/star_shape.cy.js
rename to cypress/e2e/01_working_area/designs/shapes/star_shape.cy.js
diff --git a/cypress/e2e/working area/designs/svg_laser_job.cy.js b/cypress/e2e/01_working_area/designs/svg_laser_job.cy.js
similarity index 100%
rename from cypress/e2e/working area/designs/svg_laser_job.cy.js
rename to cypress/e2e/01_working_area/designs/svg_laser_job.cy.js
diff --git a/cypress/e2e/working area/designs/text/filled_text.cy.js b/cypress/e2e/01_working_area/designs/text/filled_text.cy.js
similarity index 100%
rename from cypress/e2e/working area/designs/text/filled_text.cy.js
rename to cypress/e2e/01_working_area/designs/text/filled_text.cy.js
diff --git a/cypress/e2e/working area/designs/text/stroke_text.cy.js b/cypress/e2e/01_working_area/designs/text/stroke_text.cy.js
similarity index 100%
rename from cypress/e2e/working area/designs/text/stroke_text.cy.js
rename to cypress/e2e/01_working_area/designs/text/stroke_text.cy.js
diff --git a/cypress/e2e/working area/left_side.cy.js b/cypress/e2e/01_working_area/left_side.cy.js
similarity index 100%
rename from cypress/e2e/working area/left_side.cy.js
rename to cypress/e2e/01_working_area/left_side.cy.js
diff --git a/cypress/e2e/working area/right_side.cy.js b/cypress/e2e/01_working_area/right_side.cy.js
similarity index 100%
rename from cypress/e2e/working area/right_side.cy.js
rename to cypress/e2e/01_working_area/right_side.cy.js
diff --git a/cypress/e2e/working area/settings/cut_engrave.cy.js b/cypress/e2e/01_working_area/settings/cut_engrave.cy.js
similarity index 100%
rename from cypress/e2e/working area/settings/cut_engrave.cy.js
rename to cypress/e2e/01_working_area/settings/cut_engrave.cy.js
diff --git a/cypress/e2e/working area/settings/cut_skip_another.cy.js b/cypress/e2e/01_working_area/settings/cut_skip_another.cy.js
similarity index 100%
rename from cypress/e2e/working area/settings/cut_skip_another.cy.js
rename to cypress/e2e/01_working_area/settings/cut_skip_another.cy.js
diff --git a/cypress/e2e/working area/settings/material_selection.cy.js b/cypress/e2e/01_working_area/settings/material_selection.cy.js
similarity index 100%
rename from cypress/e2e/working area/settings/material_selection.cy.js
rename to cypress/e2e/01_working_area/settings/material_selection.cy.js
diff --git a/cypress/e2e/settings/maintenance.cy.js b/cypress/e2e/settings/maintenance.cy.js
index 62e55f1f5..2a504e620 100644
--- a/cypress/e2e/settings/maintenance.cy.js
+++ b/cypress/e2e/settings/maintenance.cy.js
@@ -37,6 +37,13 @@ describe("Maintenance", function () {
expect(resp.status).to.eq(200);
});
});
+ cy.get('[data-test="maintenance-links-buy-now-heavy-duty-pre-filter"]')
+ .invoke("attr", "href")
+ .then((myLink) => {
+ cy.request(myLink).then((resp) => {
+ expect(resp.status).to.eq(200);
+ });
+ });
});
// status code no exist
it("Air Filter: Main-filter", function () {
diff --git a/octoprint_mrbeam/analytics/usage_handler.py b/octoprint_mrbeam/analytics/usage_handler.py
index a1c45607f..eb614bc97 100644
--- a/octoprint_mrbeam/analytics/usage_handler.py
+++ b/octoprint_mrbeam/analytics/usage_handler.py
@@ -979,11 +979,9 @@ def _calculate_af3_filter_usage(self, filter_stage):
logger = self._logger
# get the global values
- pressure_loss = usage_data.get(
- self.PRESSURE_KEY, AirFilter.MAX_PRESSURE_DIFFERENCE
- )
+ pressure_loss = usage_data.get(self.PRESSURE_KEY, 0)
rpm_filter_test = self._get_airfilter_carbon_filter_usage_data().get(
- self.FAN_TEST_RPM_KEY, AirFilter.MAX_FAN_TEST_RPM
+ self.FAN_TEST_RPM_KEY, 0
) # this is saved in carbon filter stage
# calculate the percentages
diff --git a/octoprint_mrbeam/iobeam/airfilter.py b/octoprint_mrbeam/iobeam/airfilter.py
index bada656a7..3b1a6c601 100644
--- a/octoprint_mrbeam/iobeam/airfilter.py
+++ b/octoprint_mrbeam/iobeam/airfilter.py
@@ -7,6 +7,7 @@
from flask_babel import gettext
from octoprint_mrbeam.iobeam.iobeam_handler import IoBeamEvents
+from octoprint_mrbeam.model.iobeam import exhaust
from octoprint_mrbeam.mrbeam_events import MrBeamEvents
from octoprint_mrbeam.mrb_logger import mrb_logger
@@ -50,8 +51,7 @@ class AirFilter(object):
FILTERSTAGES = [PREFILTER, CARBONFILTER]
PRESSURE_VALUES_LIST_SIZE = 5
- MAX_PRESSURE_DIFFERENCE = 1880
- MAX_FAN_TEST_RPM = 10750
+
AF3_MAX_PREFILTER_PRESSURE_CHANGE = (
100 # The maximum pressure change in Pa for the prefilter of the AF3
)
@@ -69,7 +69,7 @@ class AirFilter(object):
(950, 40),
(1150, 60),
(1500, 80),
- (MAX_PRESSURE_DIFFERENCE, 100),
+ (1880, 100),
]
AF3_PRESSURE_GRAPH_PREFILTER = [
(100, 0),
@@ -83,7 +83,7 @@ class AirFilter(object):
(9860, 0),
(9900, 20),
(10200, 70),
- (MAX_FAN_TEST_RPM, 100),
+ (10750, 100),
]
class ProfileParameters(Enum):
@@ -128,8 +128,33 @@ def __init__(self, plugin):
self._connected = None
self._last_pressure_values = deque(maxlen=self.PRESSURE_VALUES_LIST_SIZE)
self._profile = None
+ self._external_power = None
+ self._iobeam = None
self._load_current_profile()
+ self._event_bus.subscribe(
+ MrBeamEvents.MRB_PLUGIN_INITIALIZED, self._on_mrbeam_plugin_initialized
+ )
+
+ def reset_data(self):
+ """Resets all data of the air filter."""
+ self._serial = None
+ self._model_id = None
+ self._pressure1 = None
+ self._pressure2 = None
+ self._pressure3 = None
+ self._pressure4 = None
+ self._temperature1 = None
+ self._temperature2 = None
+ self._temperature3 = None
+ self._temperature4 = None
+ self._profile = None
+ self._connected = None
+ self._last_pressure_values = deque(maxlen=self.PRESSURE_VALUES_LIST_SIZE)
+ self._external_power = None
+
+ def _on_mrbeam_plugin_initialized(self, event, payload):
+ self._iobeam = self._plugin.iobeam
@property
def model(self):
@@ -223,7 +248,10 @@ def set_airfilter(self, model_id, serial):
def _airfilter_changed(self):
self._plugin.send_mrb_state()
- self._event_bus.fire(MrBeamEvents.AIRFILTER_CHANGED)
+ self._event_bus.fire(
+ MrBeamEvents.AIRFILTER_CHANGED,
+ {"model_id": self._model_id, "serial": self.serial},
+ )
def set_pressure(
self,
@@ -260,6 +288,29 @@ def set_pressure(
elif self._pressure1 is not None and self.model_id in self.AIRFILTER2_MODELS:
self._last_pressure_values.append(self._pressure1)
+ def set_device(self, device):
+ """
+ Sets the device data of the air filter.
+
+ Args:
+ device (exhaust.Device):
+
+ Returns:
+ None
+ """
+ if (
+ self._external_power != device.ext_power
+ and device.ext_power
+ and device.serial_num == 0
+ ):
+ self._logger.info(
+ "Exhaust fan is now connected to external power -> reset exhaust"
+ )
+ self._iobeam.reset_exhaust()
+ return None
+ else:
+ self._external_power = device.ext_power
+
def _get_avg_pressure_differences(self):
"""Returns the average pressure differences of the last pressure readings.
@@ -296,7 +347,7 @@ def pressure_drop_mainfilter(self):
Returns:
int: Pressure drop of the main filter
"""
- if self.model_id in self.AIRFILTER3_MODELS:
+ if self.is_airfilter3():
(
_,
mainfilter_pressure_avg,
@@ -306,8 +357,17 @@ def pressure_drop_mainfilter(self):
return mainfilter_pressure_avg - fan_pressure_avg
return None
+ def is_airfilter3(self):
+ """
+ Return True if the current air filter is an air filter 3
+
+ Returns:
+ bool: True if the current air filter is an air filter 3
+ """
+ return self.model_id in self.AIRFILTER3_MODELS
+
def exhaust_hose_is_blocked(self):
- if self.model_id in self.AIRFILTER3_MODELS:
+ if self.is_airfilter3():
return self._pressure2 < self.AF3_PRESSURE2_MIN
return None
@@ -318,7 +378,7 @@ def pressure_drop_prefilter(self):
Returns:
int: Pressure drop of the prefilter
"""
- if self.model_id in self.AIRFILTER3_MODELS:
+ if self.is_airfilter3():
(
prefilter_pressure_avg,
mainfilter_pressure_avg,
@@ -330,6 +390,8 @@ def pressure_drop_prefilter(self):
@property
def connected(self):
+ if self.is_airfilter3() and not self._external_power:
+ return False
return self._connected
@connected.setter
@@ -346,7 +408,10 @@ def connected(self, connected):
if self._connected != connected:
self._connected = connected
if connected:
- self._event_bus.fire(IoBeamEvents.FAN_CONNECTED)
+ self._event_bus.fire(
+ IoBeamEvents.FAN_CONNECTED,
+ {"serial": self.serial, "model_id": self.model_id},
+ )
# If the fan gets marked as connected but we don't have a serial number or model id
# Then the af used is a non smart => AF1 or single
if self.serial is None and self.model_id is None:
@@ -361,7 +426,10 @@ def connected(self, connected):
)
self._connected = connected # need to set it here again as the set_airfilter resets it
else:
- self._event_bus.fire(IoBeamEvents.FAN_DISCONNECTED)
+ self._event_bus.fire(
+ IoBeamEvents.FAN_DISCONNECTED,
+ {"serial": self.serial, "model_id": self.model_id},
+ )
def set_temperatures(
self,
@@ -387,22 +455,6 @@ def set_temperatures(
if temperature4 is not None:
self._temperature4 = temperature4
- def reset_data(self):
- """Resets all data of the air filter."""
- self._serial = None
- self._model_id = None
- self._pressure1 = None
- self._pressure2 = None
- self._pressure3 = None
- self._pressure4 = None
- self._temperature1 = None
- self._temperature2 = None
- self._temperature3 = None
- self._temperature4 = None
- self._profile = None
- self._connected = None
- self._last_pressure_values = deque(maxlen=self.PRESSURE_VALUES_LIST_SIZE)
-
def _load_current_profile(self):
"""Loads the current profile of the air filter and safes it in self._profile.
diff --git a/octoprint_mrbeam/iobeam/iobeam_handler.py b/octoprint_mrbeam/iobeam/iobeam_handler.py
index 50ad61668..2e730d8c4 100644
--- a/octoprint_mrbeam/iobeam/iobeam_handler.py
+++ b/octoprint_mrbeam/iobeam/iobeam_handler.py
@@ -15,6 +15,7 @@
HwMalfunction,
HwMalfunctionHandler,
)
+from octoprint_mrbeam.model.iobeam import exhaust
from octoprint_mrbeam.mrb_logger import mrb_logger
from octoprint_mrbeam.lib.rwlock import RWLock
from flask.ext.babel import gettext
@@ -140,6 +141,7 @@ class IoBeamHandler(object):
MESSAGE_ACTION_FAN_TYPE = "type"
MESSAGE_ACTION_FAN_EXHAUST = "exhaust"
MESSAGE_ACTION_FAN_LINK_QUALITY = "link_quality"
+ MESSAGE_ACTION_EXHAUST_RESET = "reset"
MESSAGE_ACTION_COMPRESSOR_ON = "on"
# Possible datasets
@@ -232,6 +234,12 @@ def shutdown(self, *args):
def shutdown_fan(self):
self.send_fan_command(self.MESSAGE_ACTION_FAN_OFF)
+ def reset_exhaust(self):
+ """
+ Reset the exhaust fan.
+ """
+ self.send_fan_command(self.MESSAGE_ACTION_EXHAUST_RESET)
+
def is_interlock_closed(self):
return len(self._interlocks.keys()) == 0
@@ -1107,12 +1115,12 @@ def _handle_exhaust(self, dataset):
:param dataset:
:return: error count
"""
- device_dataset = dataset.get("device", {})
+ device_dataset = exhaust.Device.from_dict(dataset.get("device", {}))
pressure_dataset = dataset.get("pressure", {})
temperature_dataset = dataset.get("temperature", {})
if (
- device_dataset.get("serial_num") is None
- and device_dataset.get("type") is None
+ device_dataset.serial_num is None
+ and device_dataset.type is None
and "error" in pressure_dataset
and "error" in temperature_dataset
):
@@ -1122,9 +1130,10 @@ def _handle_exhaust(self, dataset):
self._airfilter.set_airfilter(serial=self.UNKNOWN_SERIAL_KEY, model_id=1)
else:
self._airfilter.set_airfilter(
- serial=device_dataset.get("serial_num"),
- model_id=device_dataset.get("type"),
+ serial=device_dataset.serial_num,
+ model_id=device_dataset.type,
)
+ self._airfilter.set_device(device_dataset)
self._airfilter.set_pressure(
pressure1=pressure_dataset.get("pressure1"),
pressure2=pressure_dataset.get("pressure2"),
@@ -1138,10 +1147,10 @@ def _handle_exhaust(self, dataset):
temperature4=temperature_dataset.get("temp4"),
)
# get the pressure sensor reading this will come as dust with the current iobeam version
- if "pressure" in device_dataset:
- self._airfilter.set_pressure(pressure=device_dataset.get("pressure"))
+ if device_dataset:
+ self._airfilter.set_pressure(pressure=device_dataset.pressure)
vals = {
- "pressure": device_dataset.get("pressure"),
+ "pressure": device_dataset.pressure,
}
self._call_callback(IoBeamValueEvents.EXHAUST_DYNAMIC_VALUE, dataset, vals)
return 0
diff --git a/octoprint_mrbeam/model/iobeam/__init__.py b/octoprint_mrbeam/model/iobeam/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/octoprint_mrbeam/model/iobeam/exhaust.py b/octoprint_mrbeam/model/iobeam/exhaust.py
new file mode 100644
index 000000000..357ccc092
--- /dev/null
+++ b/octoprint_mrbeam/model/iobeam/exhaust.py
@@ -0,0 +1,67 @@
+class ExhaustModelInitializationError(Exception):
+ pass
+
+
+class Device:
+ # FOR PYTHON3
+ # dataset_type: int
+ # ext_power: bool
+ # ext_voltage: float
+ # fan_power: float
+ # mode: str
+ # pressure: int
+ # serial_num: int
+ # smart_lock: bool
+ # type: int
+
+ def __init__(
+ self,
+ dataset_type,
+ ext_power,
+ ext_voltage,
+ fan_power,
+ mode,
+ pressure,
+ serial_num,
+ smart_lock,
+ type,
+ ):
+ self.dataset_type = dataset_type
+ self.ext_power = ext_power
+ self.ext_voltage = ext_voltage
+ self.fan_power = fan_power
+ self.mode = mode
+ self.pressure = pressure
+ self.serial_num = serial_num
+ self.smart_lock = smart_lock
+ self.type = type
+
+ @staticmethod
+ # FOR PYTHON3
+ # def from_dict(dictonary: dict) -> Device:
+ def from_dict(dictonary):
+ """
+ Creates a Device object from a dict.
+
+ Args:
+ dictonary (dict): dict with the device data
+
+ Returns:
+ Device: Device object
+ """
+ try:
+ return Device(
+ dictonary.get("dataset_type"),
+ dictonary.get("ext_power"),
+ dictonary.get("ext_voltage"),
+ dictonary.get("fan_power"),
+ dictonary.get("mode"),
+ dictonary.get("pressure"),
+ dictonary.get("serial_num"),
+ dictonary.get("smart_lock"),
+ dictonary.get("type"),
+ )
+ except TypeError as e:
+ raise ExhaustModelInitializationError(
+ "Can't init device from dict: {} - e:{}".format(dictonary, e)
+ )
diff --git a/octoprint_mrbeam/static/img/air_filter/af3-mainfilter.png b/octoprint_mrbeam/static/img/air_filter/af3-mainfilter.png
index 5978def28..32716f20b 100644
Binary files a/octoprint_mrbeam/static/img/air_filter/af3-mainfilter.png and b/octoprint_mrbeam/static/img/air_filter/af3-mainfilter.png differ
diff --git a/octoprint_mrbeam/static/js/app/view-models/modal/ready-to-laser.js b/octoprint_mrbeam/static/js/app/view-models/modal/ready-to-laser.js
index 39003ff23..886a69aca 100644
--- a/octoprint_mrbeam/static/js/app/view-models/modal/ready-to-laser.js
+++ b/octoprint_mrbeam/static/js/app/view-models/modal/ready-to-laser.js
@@ -312,6 +312,8 @@ $(function () {
if ("fan_connected" in mrb_state) {
if (mrb_state["fan_connected"] !== null) {
self.is_fan_connected(mrb_state["fan_connected"]);
+ } else {
+ self.is_fan_connected(false);
}
}
if ("rtl_mode" in mrb_state) {
diff --git a/octoprint_mrbeam/static/js/app/view-models/settings/about.js b/octoprint_mrbeam/static/js/app/view-models/settings/about.js
index f9674eb37..e2b19234a 100644
--- a/octoprint_mrbeam/static/js/app/view-models/settings/about.js
+++ b/octoprint_mrbeam/static/js/app/view-models/settings/about.js
@@ -11,7 +11,6 @@ $(function () {
let self = this;
window.mrbeam.viewModels["aboutSettingsViewModel"] = self;
self.mrb_state = params[0];
- self.airfilter_serial = self.mrb_state.airfilter_serial;
self.airfilter_model = self.mrb_state.airfilter_model;
}
diff --git a/octoprint_mrbeam/templates/calibration/user/view_corner_calibration.jinja2 b/octoprint_mrbeam/templates/calibration/user/view_corner_calibration.jinja2
index dc40eec17..48ff1c426 100644
--- a/octoprint_mrbeam/templates/calibration/user/view_corner_calibration.jinja2
+++ b/octoprint_mrbeam/templates/calibration/user/view_corner_calibration.jinja2
@@ -34,7 +34,7 @@
{{ _('Please perform a homing cycle first') }}
-
{{ _('Wait until the engraving is finished and Mr Beam Status Lights are green. Open the safety lid again and be carefult NOT to touch the engraved material. The camera will now take a picture of the engraving.') }}
+ {{ _('Wait until the engraving is finished and Mr Beam Status Lights are green. Open the safety lid again and be careful NOT to touch the engraved material. The camera will now take a picture of the engraving.') }}
{{ _('Start the calibration by clicking on the button, and then follow these steps:') }}
- {{ _('Click on the arrow head of the marker in the magnified picture.') }}
diff --git a/octoprint_mrbeam/templates/settings/about_settings.jinja2 b/octoprint_mrbeam/templates/settings/about_settings.jinja2
index 54e2c0e05..a69386f69 100644
--- a/octoprint_mrbeam/templates/settings/about_settings.jinja2
+++ b/octoprint_mrbeam/templates/settings/about_settings.jinja2
@@ -24,11 +24,9 @@
{% endif %}
-
+
{{ _('Air Filter System') }}:
- - {{ _('Serial number') }}:
-
{{ _('Model') }}:
diff --git a/octoprint_mrbeam/templates/settings/maintenance_settings.jinja2 b/octoprint_mrbeam/templates/settings/maintenance_settings.jinja2
index 809eb595f..b62903d7c 100644
--- a/octoprint_mrbeam/templates/settings/maintenance_settings.jinja2
+++ b/octoprint_mrbeam/templates/settings/maintenance_settings.jinja2
@@ -16,7 +16,7 @@
+ target="_blank" id="carbon_filter_shop_link" data-test="maintenance-links-buy-now-main-filter-af3" class="maintenance-link-shop">
{{ _('Buy now') }}
@@ -101,7 +101,7 @@
+ target="_blank" id="prefilter_shop_link" data-test="maintenance-links-buy-now-heavy-duty-pre-filter" class="maintenance-link-shop">
{{ _('Buy now') }}
diff --git a/octoprint_mrbeam/translations/de/LC_MESSAGES/messages.mo b/octoprint_mrbeam/translations/de/LC_MESSAGES/messages.mo
index 4bbce080e..6bf291320 100644
Binary files a/octoprint_mrbeam/translations/de/LC_MESSAGES/messages.mo and b/octoprint_mrbeam/translations/de/LC_MESSAGES/messages.mo differ
diff --git a/octoprint_mrbeam/translations/de/LC_MESSAGES/messages.po b/octoprint_mrbeam/translations/de/LC_MESSAGES/messages.po
index 25fb96b2c..04dc2a144 100644
--- a/octoprint_mrbeam/translations/de/LC_MESSAGES/messages.po
+++ b/octoprint_mrbeam/translations/de/LC_MESSAGES/messages.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Mr_Beam 0.1.61\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-16 11:15+0200\n"
-"PO-Revision-Date: 2023-08-16 15:14+0200\n"
+"POT-Creation-Date: 2023-10-19 12:12+0200\n"
+"PO-Revision-Date: 2023-10-19 12:13+0200\n"
"Last-Translator: Andy Werner
\n"
"Language-Team: \n"
"Language: de\n"
@@ -17,63 +17,63 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.2.2\n"
-#: octoprint_mrbeam/__init__.py:974
+#: octoprint_mrbeam/__init__.py:1042
#: octoprint_mrbeam/static/js/app/view-models/mother.js:731
#: octoprint_mrbeam/static/js/app/view-models/mother.js:742
#: octoprint_mrbeam/templates/settings/file_settings.jinja2:2
msgid "Files"
msgstr "Dateien"
-#: octoprint_mrbeam/__init__.py:981
+#: octoprint_mrbeam/__init__.py:1049
#: octoprint_mrbeam/templates/settings/camera_settings.jinja2:4
msgid "Camera"
msgstr "Kamera"
-#: octoprint_mrbeam/__init__.py:988
+#: octoprint_mrbeam/__init__.py:1056
#: octoprint_mrbeam/templates/settings/backlash_settings.jinja2:2
msgid "Precision Calibration"
msgstr "Feinjustierung"
-#: octoprint_mrbeam/__init__.py:995
+#: octoprint_mrbeam/__init__.py:1063
#: octoprint_mrbeam/templates/calibration/watterott/calibration_tool.jinja2:56
#: octoprint_mrbeam/templates/settings/debug_settings.jinja2:5
msgid "Debug"
msgstr "Debug"
-#: octoprint_mrbeam/__init__.py:1002
+#: octoprint_mrbeam/__init__.py:1070
#: octoprint_mrbeam/templates/settings/about_settings.jinja2:2
msgid "About This Mr Beam"
msgstr "Über diesen Mr Beam"
-#: octoprint_mrbeam/__init__.py:1009
+#: octoprint_mrbeam/__init__.py:1077
msgid "Better Together"
msgstr "Gemeinsam Vorankommen"
-#: octoprint_mrbeam/__init__.py:1016
+#: octoprint_mrbeam/__init__.py:1084
#: octoprint_mrbeam/templates/settings/reminders_settings.jinja2:2
msgid "Reminders"
msgstr "Erinnerungen"
-#: octoprint_mrbeam/__init__.py:1023
+#: octoprint_mrbeam/__init__.py:1091
#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:2
msgid "Maintenance"
msgstr "Wartung"
-#: octoprint_mrbeam/__init__.py:1030
+#: octoprint_mrbeam/__init__.py:1098
#: octoprint_mrbeam/templates/settings/leds_settings.jinja2:2
msgid "Mr Beam Lights"
msgstr "Mr Beam Lights"
-#: octoprint_mrbeam/__init__.py:1037
+#: octoprint_mrbeam/__init__.py:1105
#: octoprint_mrbeam/templates/settings/custom_material_settings.jinja2:2
msgid "Custom Material Settings"
msgstr "Benutzerdefinierte Materialeinstellungen"
-#: octoprint_mrbeam/__init__.py:2456
+#: octoprint_mrbeam/__init__.py:2537
msgid "A new picture is being taken, please wait a little..."
msgstr "Es wird ein neues Bild gemacht, bitte warte einen Moment..."
-#: octoprint_mrbeam/__init__.py:2461
+#: octoprint_mrbeam/__init__.py:2542
msgid "Either the camera is busy or the lid is not open."
msgstr ""
"Entweder ist die Kamera nicht erreichbar oder der Deckel ist nicht geöffnet."
@@ -122,6 +122,11 @@ msgstr "Automatisches GCode-Löschen"
msgid "...and more!"
msgstr "...und mehr!"
+# don’t change the link
+#: octoprint_mrbeam/iobeam/airfilter.py:652
+msgid "https://www.mr-beam.org/en/"
+msgstr "https://www.mr-beam.org/"
+
#: octoprint_mrbeam/printing/comm_acc2.py:428
#: octoprint_mrbeam/printing/comm_acc2.py:487
msgid "Please contact Mr Beam support team and attach octoprint.log."
@@ -310,7 +315,7 @@ msgid "Unable to start conversion because a parameter is missing."
msgstr ""
"Die Konvertierung konnte nicht gestartet werden, da ein Parameter fehlt."
-#: octoprint_mrbeam/static/js/app/view-models/convert.js:2193
+#: octoprint_mrbeam/static/js/app/view-models/convert.js:2194
msgid ""
"To free up some disk space you may want to perform one or all of the "
"following suggestions:"
@@ -318,7 +323,7 @@ msgstr ""
"Um etwas Speicherplatz freizugeben, könntest Du einen oder alle der "
"folgenden Vorschläge ausführen:"
-#: octoprint_mrbeam/static/js/app/view-models/convert.js:2199
+#: octoprint_mrbeam/static/js/app/view-models/convert.js:2200
msgid ""
"Delete GCode files: Go to design library and click 'Only show GCode files' "
"on the left. Here you can delete files from the according context menu."
@@ -327,7 +332,7 @@ msgstr ""
"„Nur GCode-Dateien anzeigen“. Hier kannst Du Dateien über das entsprechende "
"Kontextmenü löschen."
-#: octoprint_mrbeam/static/js/app/view-models/convert.js:2205
+#: octoprint_mrbeam/static/js/app/view-models/convert.js:2206
msgid ""
"Delete design files: Go to design library and click 'Only show design files' "
"on the left. Here you can delete files from the according context menu."
@@ -336,7 +341,7 @@ msgstr ""
"\"Nur Designdateien anzeigen'. Hier kannst Du Dateien aus dem entsprechenden "
"Kontextmenü löschen."
-#: octoprint_mrbeam/static/js/app/view-models/convert.js:2211
+#: octoprint_mrbeam/static/js/app/view-models/convert.js:2212
msgid ""
"Delete log files: Go to Settings -> logs and delete old log files per click "
"on the trash bin icon."
@@ -344,16 +349,16 @@ msgstr ""
"Löschen von log-Dateien: Gehe zu Einstellungen -> logs und lösche alte log-"
"Dateien, indem Du auf das Papierkorbsymbol klickst."
-#: octoprint_mrbeam/static/js/app/view-models/convert.js:2217
+#: octoprint_mrbeam/static/js/app/view-models/convert.js:2218
#, python-format
msgid "Find more details %(open)sonline%(close)s."
msgstr "Mehr Details findest Du %(open)sonline%(close)s."
-#: octoprint_mrbeam/static/js/app/view-models/convert.js:2224
+#: octoprint_mrbeam/static/js/app/view-models/convert.js:2225
msgid "Get more free disk space"
msgstr "Mehr Disk-Speicherplatz frei machen"
-#: octoprint_mrbeam/static/js/app/view-models/convert.js:2497
+#: octoprint_mrbeam/static/js/app/view-models/convert.js:2498
#: octoprint_mrbeam/templates/conversion_dialog.jinja2:515
msgid "Cut "
msgstr "Schneiden "
@@ -385,7 +390,7 @@ msgid "Do you still want to cancel?"
msgstr "Willst du immer noch abbrechen?"
#: octoprint_mrbeam/static/js/app/view-models/mother.js:64
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:168
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:225
msgid "No"
msgstr "Nein"
@@ -395,7 +400,7 @@ msgstr "Nein"
#: octoprint_mrbeam/templates/calibration/watterott/tab_camera_alignment.jinja2:42
#: octoprint_mrbeam/templates/calibration/watterott/tab_corner_calibration.jinja2:71
#: octoprint_mrbeam/templates/calibration/watterott/tab_lens_calibration.jinja2:110
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:169
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:226
msgid "Yes"
msgstr "Ja"
@@ -475,42 +480,42 @@ msgstr ""
msgid "Please confirm to proceed."
msgstr "Bitte bestätige, um fortzufahren."
-#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:238
+#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:244
#: octoprint_mrbeam/static/js/app/view-models/wizard/wizard-acl.js:178
#: octoprint_mrbeam/templates/wizard/wizard_acl.jinja2:23
msgid "Invalid e-mail address"
msgstr "Ungültige E-Mail-Adresse"
-#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:300
+#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:306
#: octoprint_mrbeam/templates/loginscreen_viewmodel.jinja2:20
#: octoprint_mrbeam/templates/loginscreen_viewmodel.jinja2:22
#: octoprint_mrbeam/templates/wizard/wizard_acl.jinja2:21
msgid "E-mail address"
msgstr "E-Mail-Adresse"
-#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:499
-#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:513
-#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:524
+#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:505
+#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:519
+#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:530
msgid "Session expired"
msgstr "Sitzung abgelaufen"
-#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:500
+#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:506
msgid "Trying to do a re-login..."
msgstr "Ich versuche, mich neu anzumelden..."
-#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:514
+#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:520
msgid "Re-login successful.
Please repeat the last action."
msgstr "Re-login erfolgreich.
Bitte wiederhole die letzte Aktion."
-#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:525
+#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:531
msgid "Please login again."
msgstr "Bitte logge dich erneut ein."
-#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:582
+#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:588
msgid "Browser not supported."
msgstr "Browser wird nicht unterstützt."
-#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:584
+#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:590
#, python-format
msgid ""
"Mr Beam makes use of latest web technologies which might not be fully "
@@ -521,11 +526,11 @@ msgstr ""
"vollständig unterstützt werden.%(br)sBitte verwende die neueste Version von "
"%(open)sGoogle Chrome%(close)s für Mr Beam."
-#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:605
+#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:611
msgid "Beta user: Please consider enabling Mr Beam Better Together!"
msgstr "Beta-Nutzer: Bitte aktiviere Mr Beam Gemeinsam Vorankommen!"
-#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:609
+#: octoprint_mrbeam/static/js/app/view-models/mrbeam.js:615
#, python-format
msgid ""
"As you are currently in our Beta channel, you would help us tremendously "
@@ -537,11 +542,11 @@ msgstr ""
"deines Mr Beams hilft es uns enorm, wenn du mit uns Diagnosedaten teilst. "
"Danke! Direkt %(br)s%(open)szu Gemeinsam Vorankommen%(close)s"
-#: octoprint_mrbeam/static/js/app/view-models/review.js:236
+#: octoprint_mrbeam/static/js/app/view-models/review.js:245
msgid "Error while saving review!"
msgstr "Fehler beim Speichern deine Bewertung!"
-#: octoprint_mrbeam/static/js/app/view-models/review.js:238
+#: octoprint_mrbeam/static/js/app/view-models/review.js:247
#, python-format
msgid ""
"Unable to save your review at the moment.%(br)sCheck connection to Mr Beam "
@@ -902,12 +907,13 @@ msgstr "Schließen"
# don’t change the link
#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:19
#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:58
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:76
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:94
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:125
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:158
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:208
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:352
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:77
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:96
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:129
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:164
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:215
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:281
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:380
#: octoprint_mrbeam/templates/calibration/user/view_corner_calibration.jinja2:16
#: octoprint_mrbeam/templates/laserhead_changed.jinja2:25
#: octoprint_mrbeam/templates/laserhead_changed.jinja2:41
@@ -945,11 +951,11 @@ msgstr ""
"Wenn dies das Problem nicht löst, eröffne bitte %(opening_tag_support)sein "
"Support-Ticket%(closing_tag_support)s."
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:66
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:67
msgid "Bottom plate not detected"
msgstr "Bodenplatte nicht erkannt"
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:68
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:69
#, python-format
msgid ""
"The device is currently not able to start any laser job.\n"
@@ -968,13 +974,13 @@ msgstr ""
"Wenn dies das Problem nicht löst, eröffne bitte %(opening_tag_support)sein "
"Support-Ticket%(closing_tag_support)s."
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:84
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:232
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:247
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:86
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:240
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:256
msgid "Hardware malfunction"
msgstr "Hardware-Funktionsstörung"
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:86
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:88
#, python-format
msgid ""
"The device is currently not able to start any laser job.\n"
@@ -993,11 +999,11 @@ msgstr ""
"Wenn dies das Problem nicht löst, eröffne bitte %(opening_tag_support)sein "
"Support-Ticket%(closing_tag_support)s."
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:102
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:105
msgid "Unknown malfunction"
msgstr "Unbekannte Fehlfunktion"
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:104
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:107
#, python-format
msgid ""
"The device is properly currently not able to start any laser job.\n"
@@ -1009,11 +1015,11 @@ msgstr ""
"Bitte %(opening_tag_support)söffnen Sie ein Support-"
"Ticket%(closing_tag_support)s."
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:115
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:119
msgid "Compressor malfunction"
msgstr "Kompressor Funktionsstörung"
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:117
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:121
#, python-format
msgid ""
"The device is currently not able to start any laser job.\n"
@@ -1034,11 +1040,11 @@ msgstr ""
"Wenn dies das Problem nicht löst, eröffne bitte %(opening_tag_support)sein "
"Support-Ticket%(closing_tag_support)s."
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:133
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:138
msgid "One Button malfunction"
msgstr "One Button Funktionsstörung"
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:135
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:140
#, python-format
msgid ""
"The device is currently not able to start any laser job.\n"
@@ -1054,11 +1060,11 @@ msgstr ""
"Bitte %(opening_tag_support)söffnen ein Support-"
"Ticket%(closing_tag_support)s."
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:148
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:154
msgid "Interlock malfunction"
msgstr "Interlock Funktionsstörung"
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:150
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:156
#, python-format
msgid ""
"The device is currently not able to start any laser job.\n"
@@ -1077,21 +1083,21 @@ msgstr ""
"Wenn dies das Problem nicht löst, eröffne bitte %(opening_tag_support)sein "
"Support-Ticket%(closing_tag_support)s."
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:166
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:173
msgid "Camera busy"
msgstr "Kamera beschäftigt"
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:167
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:174
msgid "The camera was stopped recently, it will take a few seconds to restart."
msgstr ""
"Die Kamera wurde vor kurzem gestoppt, es wird einige Sekunden dauern, bis "
"sie wieder startet."
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:174
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:181
msgid "No update information"
msgstr "Keine Informationen für Updates"
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:175
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:182
msgid ""
"No information about available updates could be retrieved, please try again "
"later. Errorcode: E-1000"
@@ -1099,19 +1105,19 @@ msgstr ""
"Es konnten keine Informationen über updates ermittelt werden, probiere es "
"später noch einmal. Errorcode: E-1000"
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:182
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:190
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:189
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:197
msgid "Error during fetching update information"
msgstr "Fehler währen der Ermittlung von update Informationen"
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:183
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:190
msgid ""
"There was a error during fetching the update information Errorcode: E-1001"
msgstr ""
"Es gab einen Fehler währen der Ermittlung von update Informationen. "
"Errorcode: E-1001"
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:191
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:198
msgid ""
"There was a error during fetching the update information, please try again "
"later."
@@ -1119,11 +1125,11 @@ msgstr ""
"Es gab einen Fehler währen der Ermittlung von update Informationen, probiere "
"es später noch einmal."
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:198
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:205
msgid "Camera malfunction"
msgstr "Kamera Funktionsstörung"
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:200
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:207
#, python-format
msgid ""
"You can still use the device by aligning manually without camera support. "
@@ -1143,11 +1149,11 @@ msgstr ""
"Wenn dies das Problem nicht löst, kannst du %(opening_tag_support)sein "
"Support-Ticket%(closing_tag_support)s eröffnen."
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:216
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:224
msgid "Laser job canceled"
msgstr "Der Laservorgang wurde abgebrochen"
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:218
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:226
#, python-format
msgid ""
"The job was canceled due to an error - we apologize for any inconvenience.\n"
@@ -1165,7 +1171,7 @@ msgstr ""
"Wenn dies das Problem nicht löst, öffnen bitte %(opening_tag_support)sein "
"Support-Ticket%(closing_tag_support)s."
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:234
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:242
#, python-format
msgid ""
"The device is currently not able to start any laser job.\n"
@@ -1182,7 +1188,7 @@ msgstr ""
"Wenn dies das Problem nicht löst, öffne bitte %(opening_tag_support)sein "
"Support-Ticket%(closing_tag_support)s."
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:249
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:258
#, python-format
msgid ""
"Your Air Filter or single Fan is not spinning properly.\n"
@@ -1197,11 +1203,33 @@ msgstr ""
"\n"
"Bitte %(opening_tag_support)söffne ein Support-Ticket%(closing_tag_support)s."
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:262
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:272
+msgid "Check Air Filter System hose"
+msgstr "Überprüfe den Schlauch vom Air Filter System"
+
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:274
+#, python-format
+msgid ""
+"The hose of your Air Filter System might be blocked or is clogged.\n"
+"Please check the hose by following the %(opening_tag)sKnowledgebase "
+"article%(closing_tag)s.\n"
+"\n"
+"If this doesn’t solve the problem, please %(opening_tag_support)sopen a "
+"support ticket%(closing_tag_support)s."
+msgstr ""
+"Der Schlauch vom Air Filter System ist vermutlich verstopft oder verknickt.\n"
+"\n"
+"Bitte überprüfe den Schlauch anhand des %(opening_tag)sKnowledgebase-"
+"Artikels%(closing_tag)s.\n"
+"\n"
+"Wenn dies das Problem nicht löst, eröffne bitte %(opening_tag_support)sein "
+"Support-Ticket%(closing_tag_support)s."
+
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:290
msgid "Thank you"
msgstr "Danke"
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:263
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:291
msgid ""
"The last image from your camera was submitted to Mr Beam and is going to be "
"uploaded silently in the background."
@@ -1209,16 +1237,16 @@ msgstr ""
"Das letzte Bild der Kamera wurde an Mr Beam übermittelt und wird nun still "
"im Hintergrund hochgeladen."
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:269
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:297
msgid "Lens Calibration Over"
msgstr "Linsenkalibrierung abgeschlossen"
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:270
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:298
msgid "A new lens calibration file has been created and is now being used."
msgstr ""
"Eine neue Linsenkalibrierungs-Datei wurde erstellt und wird nun verwendet."
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:367
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:395
#, python-format
msgid ""
"For more information check out this %(opening_tag)sKnowledge Base "
@@ -1227,16 +1255,16 @@ msgstr ""
"Weitere Informationen findest Du in diesem %(opening_tag)sKnowledge Base-"
"Artikel%(closing_tag)s"
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:384
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:412
#, python-format
msgid "Browse our %(opening_tag)sKnowledge Base%(closing_tag)s"
msgstr "Gehe zu unserer %(opening_tag)sKnowledge Base%(closing_tag)s"
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:404
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:432
msgid "Error:"
msgstr "Fehler:"
-#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:418
+#: octoprint_mrbeam/static/js/app/view-models/user-notification.js:446
msgid "Error Code:"
msgstr "Fehler-Code:"
@@ -2016,15 +2044,15 @@ msgstr ""
"Datei laden. Bitte stelle sicher, dass es sich um eine Sicherungsdatei der "
"Mr Beam benutzerdefinierten Materialeinstellungen handelt."
-#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:11
+#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:12
msgid "pre-filter"
msgstr "Vorfilter"
-#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:12
+#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:13
msgid "Pre-Filter capacity reached 70%"
msgstr "Vorfilter hat 70 % Kapazität erreicht"
-#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:15
+#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:16
msgid ""
"At this level, we highly recommend having a visual check on the pre-filter "
"to make sure the estimation is representing the fill level of your filter. "
@@ -2036,15 +2064,15 @@ msgstr ""
"deinem Gerät verarbeitest."
# Filters fmessages in the terminal
-#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:18
+#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:19
msgid "main filter"
msgstr "Hauptfilter"
-#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:19
+#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:20
msgid "Main-Filter capacity reached 70%"
msgstr "Hauptfilter hat 70 % Kapazität erreicht"
-#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:22
+#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:23
msgid ""
"At this level, we highly recommend to have a visual check on the main-filter "
"to make sure the estimation is representing the fill level of your filter. "
@@ -2056,43 +2084,35 @@ msgstr ""
"Material Du mit deinem Gerät verarbeitest."
# Settings > About Screen
-#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:25
+#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:26
msgid "laser head"
msgstr "Laserkopf"
-#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:26
+#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:27
msgid "mechanics"
msgstr "Mechanik"
-#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:56
-#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:60
-#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:63
-#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:66
-#, python-format
-msgid "/%(lifespan)s hrs"
-msgstr "/%(lifespan)s h"
-
-#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:147
+#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:139
msgid "Did you change the pre-filter?"
msgstr "Hast du den Vorfilter gewechselt?"
-#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:149
+#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:141
msgid "Did you change the main filter?"
msgstr "Hast du den Hauptfilter gewechselt?"
-#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:151
+#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:143
msgid "Did you clean the laser head?"
msgstr "Hast Du den Laserkopf gereinigt?"
-#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:153
+#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:145
msgid "Did you clean the mechanics?"
msgstr "Hast du die Mechanik gereinigt?"
-#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:444
+#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:420
msgid "Maintenance required"
msgstr "Wartungsbedarf"
-#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:446
+#: octoprint_mrbeam/static/js/app/view-models/settings/maintenance.js:422
#, python-format
msgid ""
"Regular maintenance on your Mr Beam is due.%(br)s Please check the "
@@ -4543,7 +4563,7 @@ msgstr ""
"Mr Beam Lasers wird das Bild weder veröffentlichen noch an Dritte verkaufen."
# URL - do not translate/modify
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:86
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:97
#: octoprint_mrbeam/templates/tab_workingarea.jinja2:226
msgid "/plugin/mrbeam/static/docs/MrBeamAnalytics-PrivacyPolicy_en.pdf"
msgstr "/plugin/mrbeam/static/docs/MrBeamAnalytics-PrivacyPolicy_de.pdf"
@@ -4909,8 +4929,8 @@ msgstr "Bitte führe zuerst einen Homing-Zyklus durch"
#: octoprint_mrbeam/templates/calibration/user/view_corner_calibration.jinja2:37
msgid ""
"Wait until the engraving is finished and Mr Beam Status Lights are green. "
-"Open the safety lid again and be carefult NOT to touch the engraved "
-"material. The camera will now take a picture of the engraving."
+"Open the safety lid again and be careful NOT to touch the engraved material. "
+"The camera will now take a picture of the engraving."
msgstr ""
"Warte, bis die Gravur beendet ist und die Mr Beam Status Lights grün "
"leuchten. Öffne den Sicherheitsdeckel wieder OHNE dabei das gravierte "
@@ -5287,130 +5307,132 @@ msgid "Laser head"
msgstr "Laserkopf"
#: octoprint_mrbeam/templates/settings/about_settings.jinja2:22
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:31
msgid "Model"
msgstr "Modell"
#: octoprint_mrbeam/templates/settings/about_settings.jinja2:28
+msgid "Air Filter System"
+msgstr "Air Filter System"
+
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:36
msgid "Network interfaces"
msgstr "Netzwerk-Schnittstellen"
# Settings > About Screen
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:44
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:52
msgid "Mr Beam Plugin"
msgstr "Mr Beam Plugin"
# do not translate
# Settings > About Screen
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:46
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:54
msgid "Image fingerprint"
msgstr "Image-Fingerprint"
# Settings > About Screen
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:47
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:55
msgid "Software channel"
msgstr "Software-Channel"
# do not translate
# Settings > About Screen
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:48
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:56
msgid "Environment"
msgstr "Environment"
# do not translate
# Settings > About Screen
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:49
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:57
msgid "grbl"
msgstr "grbl"
# Settings > About Screen
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:67
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:78
msgid "Documentation, Support and Privacy"
msgstr "Dokumentation, Support und Datenschutz"
# Settings > About Screen
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:77
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:88
msgid "get the latest versions"
msgstr "Bekomme die neuesten Versionen"
# Settings > About Screen
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:77
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:88
msgid "online"
msgstr "online"
# Settings > About Screen
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:82
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:93
msgid "Online Support Portal"
msgstr "Online Support Portal"
# Settings > About Screen
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:83
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:94
msgid "Privacy Policies"
msgstr "Datenschutzbestimmungen"
# don’t change the link
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:84
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:27
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:46
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:76
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:104
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:95
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:161
msgid "https://www.mr-beam.org/en"
msgstr "https://www.mr-beam.org"
# Settings > About Screen
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:84
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:95
msgid "Mr Beam Web Site"
msgstr "Mr Beam Website"
# Settings > About Screen
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:85
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:108
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:96
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:119
msgid "find.mr-beam service"
msgstr "find.mr-beam Service"
# Settings > About Screen
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:86
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:97
msgid "Mr Beam Analytics"
msgstr "Mr Beam Analytics"
# Settings > About Screen
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:94
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:105
msgid "Links"
msgstr "Links"
# Settings > About Screen
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:97
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:108
msgid "Website"
msgstr "Webseite"
# Settings > About Screen
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:98
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:109
msgid "Social media"
msgstr "Soziale Medien"
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:107
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:118
msgid "Official user group"
msgstr "Offizielle User-Group"
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:107
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:118
msgid "on Facebook"
msgstr "auf Facebook"
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:107
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:118
msgid "German"
msgstr "Deutsch"
# Settings > About Screen
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:109
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:120
msgid "Online resources"
msgstr "Online-Ressourcen"
# Settings > About Screen
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:109
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:120
msgid "Mr Beam Downloads"
msgstr "Mr Beam Downloads"
# Settings > About Screen
-#: octoprint_mrbeam/templates/settings/about_settings.jinja2:110
+#: octoprint_mrbeam/templates/settings/about_settings.jinja2:121
msgid "Source code"
msgstr "Quellcode"
@@ -5939,11 +5961,52 @@ msgstr "Animationsgeschwindigkeit"
msgid "Adjust the animation speed of Mr Beam Lights."
msgstr "Passe die Animationsgeschwindigkeit der Mr Beam Lights an."
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:11
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:12
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:68
msgid "Air Filter: Pre-filter"
msgstr "Air Filter: Vorfilter"
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:13
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:14
+msgid ""
+"The pre filter filters all coarse particles from the exhaust air. Regular "
+"changing improves the air flow and preserves the main filter.*"
+msgstr ""
+"Der Vorfilter filtert alle groben Partikel aus der Abluft. Ein regelmäßiger "
+"Wechsel verbessert den Luftdurchsatz und schont den Hauptfilter. *"
+
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:21
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:50
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:87
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:106
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:136
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:164
+msgid "Buy now"
+msgstr "Jetzt kaufen"
+
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:31
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:60
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:119
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:146
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:179
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:206
+msgid "used"
+msgstr "verbraucht"
+
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:41
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:128
+msgid "Air Filter: Main filter"
+msgstr "Air Filter: Hauptfilter"
+
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:43
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:130
+msgid ""
+"The main filter is a combined hepa and activated carbon filter. It filters "
+"both tiny particles and odours from the exhaust air.*"
+msgstr ""
+"Der Hauptfilter ist ein kombinierter Hepa- und Aktivkohlefilter. Er filtert "
+"sowohl winzig kleine Partikel, als auch die Gerüche aus der Abluft. *"
+
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:70
msgid ""
"Please choose which pre-filter you are using, so the maintenance counter can "
"be adjusted accordingly."
@@ -5951,11 +6014,11 @@ msgstr ""
"Bitte wähle aus, welchen Vorfilter du nutzt, damit die Wartungsintervalle "
"angepasst werden können."
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:22
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:79
msgid "Pre-filter mat (pink)"
msgstr "Vorfiltermatte (rosa)"
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:24
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:81
msgid ""
"The pink pre-filter mat is suitable for all those who use materials that "
"cause little material abrasion (acrylic felt, slate, concrete, foam rubber, "
@@ -5965,18 +6028,11 @@ msgstr ""
"arbeiten, die wenig Materialabrieb verursachen (Acrylfilz, Schiefer, Beton, "
"Moosgummi, Acryl, etc.)."
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:30
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:49
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:79
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:107
-msgid "Buy now"
-msgstr "Jetzt kaufen"
-
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:41
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:98
msgid "Pre-filter (cartridge)"
msgstr "Vorfilter (Kartusche)"
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:43
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:100
msgid ""
"The pre-filter cartridge is best suited for power users who process a lot of "
"wood, cardboard, Kraftplex or also stamp rubber."
@@ -5984,38 +6040,19 @@ msgstr ""
"Die Vorfilterpatrone eignet sich am besten für Power-User, die viel Holz, "
"Karton, Kraftplex oder auch Stempelgummi verarbeiten."
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:62
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:89
#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:122
#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:149
-msgid "used"
-msgstr "verbraucht"
-
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:65
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:92
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:125
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:152
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:182
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:209
msgid "Reset"
msgstr "Zurücksetzen"
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:71
-msgid "Air Filter: Main filter"
-msgstr "Air Filter: Hauptfilter"
-
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:73
-msgid ""
-"The main filter is a combined hepa and activated carbon filter. It filters "
-"both tiny particles and odours from the exhaust air.*"
-msgstr ""
-"Der Hauptfilter ist ein kombinierter Hepa- und Aktivkohlefilter. Er filtert "
-"sowohl winzig kleine Partikel, als auch die Gerüche aus der Abluft. *"
-
# Settings > About Screen
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:98
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:155
msgid "Laser head cleaning"
msgstr "Laserkopf-Reinigung"
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:101
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:158
msgid ""
"Clean the laser head regularly to maintain its full performance. You can "
"either do it yourself or you can send it to us and we clean it for you!"
@@ -6024,26 +6061,26 @@ msgstr ""
"Das kannst du entweder selber durchführen oder du schickst ihn zu uns und "
"wir reinigen ihn für dich!"
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:112
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:169
msgid "How to clean a laser head"
msgstr "So reinigst Du einen Laserkopf"
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:131
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:188
msgid "Mechanics"
msgstr "Mechanik"
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:133
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:190
msgid ""
"The gantry should always be clean. Oil it regularly with an acid-free oil."
msgstr ""
"Die Linearführungen sollten immer sauber sein und regelmäßig mit einem "
"säurefreien Öl geölt werden."
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:139
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:196
msgid "Caring of the mechanical parts"
msgstr "Pflege der mechanischen Teile"
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:156
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:213
msgid ""
"*Users without a Mr Beam Air Filter System can safely ignore and reset this "
"counter."
@@ -6051,7 +6088,7 @@ msgstr ""
"* Benutzer ohne Mr. Beam Air Filter System können diesen Zähler ignorieren "
"und zurücksetzen."
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:164
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:221
#, python-format
msgid ""
"The hour counter for the following component will now be reset: "
@@ -6060,7 +6097,7 @@ msgstr ""
"Der Stundenzähler für folgende Komponente wird zurückgesetzt: "
"%(component_to_reset)s."
-#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:165
+#: octoprint_mrbeam/templates/settings/maintenance_settings.jinja2:222
msgid "Please notice that there is no way to undo this operation"
msgstr "Dies kann nicht rückgängig gemacht werden"
@@ -6635,6 +6672,10 @@ msgstr ""
msgid "We hope you enjoy this new experience!"
msgstr "Wir hoffen, dass Du viel Freude mit diesem Update hast!"
+#, python-format
+#~ msgid "/%(lifespan)s hrs"
+#~ msgstr "/%(lifespan)s h"
+
#~ msgid ""
#~ "\n"
#~ "