Browse Source

fan error improvements

PavelSindler 6 years ago
parent
commit
a53428835a

+ 398 - 2310
Firmware/language_all.cpp

@@ -11,33 +11,13 @@ const char * const MSG_ACTIVE_EXTRUDER_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_ADJUSTZ_EN[] PROGMEM = "Auto adjust Z?";
-const char MSG_ADJUSTZ_CZ[] PROGMEM = "Auto doladit Z ?";
-const char MSG_ADJUSTZ_IT[] PROGMEM = "Autoregolare Z?";
-const char MSG_ADJUSTZ_ES[] PROGMEM = "Ajustar Eje Z";
-const char MSG_ADJUSTZ_PL[] PROGMEM = "Autodostroic Z?";
-const char MSG_ADJUSTZ_DE[] PROGMEM = "Auto Z einstellen?";
-const char * const MSG_ADJUSTZ_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_ADJUSTZ_EN,
-	MSG_ADJUSTZ_CZ,
-	MSG_ADJUSTZ_IT,
-	MSG_ADJUSTZ_ES,
-	MSG_ADJUSTZ_PL,
-	MSG_ADJUSTZ_DE
+const char * const MSG_ADJUSTZ_LANG_TABLE[1] PROGMEM = {
+	MSG_ADJUSTZ_EN
 };
 
 const char MSG_ALL_EN[] PROGMEM = "All";
-const char MSG_ALL_CZ[] PROGMEM = "Vse";
-const char MSG_ALL_IT[] PROGMEM = "Tutti";
-const char MSG_ALL_ES[] PROGMEM = "Todos";
-const char MSG_ALL_PL[] PROGMEM = "Wszystko";
-const char MSG_ALL_DE[] PROGMEM = "Alle";
-const char * const MSG_ALL_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_ALL_EN,
-	MSG_ALL_CZ,
-	MSG_ALL_IT,
-	MSG_ALL_ES,
-	MSG_ALL_PL,
-	MSG_ALL_DE
+const char * const MSG_ALL_LANG_TABLE[1] PROGMEM = {
+	MSG_ALL_EN
 };
 
 const char MSG_AMAX_EN[] PROGMEM = "Amax ";
@@ -51,16 +31,8 @@ const char * const MSG_AUTHOR_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_AUTO_HOME_EN[] PROGMEM = "Auto home";
-const char MSG_AUTO_HOME_IT[] PROGMEM = "Trova origine";
-const char MSG_AUTO_HOME_ES[] PROGMEM = "Llevar al origen";
-const char MSG_AUTO_HOME_DE[] PROGMEM = "Startposition";
-const char * const MSG_AUTO_HOME_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_AUTO_HOME_EN,
-	MSG_AUTO_HOME_EN,
-	MSG_AUTO_HOME_IT,
-	MSG_AUTO_HOME_ES,
-	MSG_AUTO_HOME_EN,
-	MSG_AUTO_HOME_DE
+const char * const MSG_AUTO_HOME_LANG_TABLE[1] PROGMEM = {
+	MSG_AUTO_HOME_EN
 };
 
 const char MSG_A_RETRACT_EN[] PROGMEM = "A-retract";
@@ -94,372 +66,128 @@ const char * const MSG_BABYSTEP_Y_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_BABYSTEP_Z_EN[] PROGMEM = "Live adjust Z";
-const char MSG_BABYSTEP_Z_CZ[] PROGMEM = "Doladeni osy Z";
-const char MSG_BABYSTEP_Z_IT[] PROGMEM = "Compensazione Z";
-const char MSG_BABYSTEP_Z_ES[] PROGMEM = "Micropaso Eje Z";
-const char MSG_BABYSTEP_Z_PL[] PROGMEM = "Dostrojenie osy Z";
-const char MSG_BABYSTEP_Z_DE[] PROGMEM = "Z einstellen";
-const char * const MSG_BABYSTEP_Z_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BABYSTEP_Z_EN,
-	MSG_BABYSTEP_Z_CZ,
-	MSG_BABYSTEP_Z_IT,
-	MSG_BABYSTEP_Z_ES,
-	MSG_BABYSTEP_Z_PL,
-	MSG_BABYSTEP_Z_DE
+const char * const MSG_BABYSTEP_Z_LANG_TABLE[1] PROGMEM = {
+	MSG_BABYSTEP_Z_EN
 };
 
 const char MSG_BABYSTEP_Z_NOT_SET_EN[] PROGMEM = "Distance between tip of the nozzle and the bed surface has not been set yet. Please follow the manual, chapter First steps, section First layer calibration.";
-const char MSG_BABYSTEP_Z_NOT_SET_CZ[] PROGMEM = "Neni zkalibrovana vzdalenost trysky od tiskove podlozky. Postupujte prosim podle manualu, kapitola Zaciname, odstavec Nastaveni prvni vrstvy.";
-const char MSG_BABYSTEP_Z_NOT_SET_IT[] PROGMEM = "Distanza tra la punta dell'ugello e la superficie del letto non ancora imposta. Si prega di seguire il manuale, capitolo First steps, sezione First layer calibration.";
-const char MSG_BABYSTEP_Z_NOT_SET_ES[] PROGMEM = "Distancia entre la punta de la boquilla y la superficie de la cama no fijada aun. Por favor siga el manual, capitulo First steps, seccion First layer calibration.";
-const char MSG_BABYSTEP_Z_NOT_SET_PL[] PROGMEM = "Odleglosc dyszy od podkladki nie jest skalibrowana. Postepuj zgodnie z instrukcja rozdzial Zaczynamy, podrozdzial Kalibracja pierwszej warstwy.";
-const char MSG_BABYSTEP_Z_NOT_SET_DE[] PROGMEM = "Der Abstand zwischen der Spitze der Duese und der Bed ist noch nicht eingestellt. Bitte folgen Sie dem Handbuch, First steps, section First layer calibration.";
-const char * const MSG_BABYSTEP_Z_NOT_SET_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BABYSTEP_Z_NOT_SET_EN,
-	MSG_BABYSTEP_Z_NOT_SET_CZ,
-	MSG_BABYSTEP_Z_NOT_SET_IT,
-	MSG_BABYSTEP_Z_NOT_SET_ES,
-	MSG_BABYSTEP_Z_NOT_SET_PL,
-	MSG_BABYSTEP_Z_NOT_SET_DE
+const char * const MSG_BABYSTEP_Z_NOT_SET_LANG_TABLE[1] PROGMEM = {
+	MSG_BABYSTEP_Z_NOT_SET_EN
 };
 
 const char MSG_BED_EN[] PROGMEM = "Bed";
-const char MSG_BED_IT[] PROGMEM = "Letto";
-const char MSG_BED_ES[] PROGMEM = "Base";
-const char MSG_BED_PL[] PROGMEM = "Stolik";
-const char * const MSG_BED_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_EN,
-	MSG_BED_EN,
-	MSG_BED_IT,
-	MSG_BED_ES,
-	MSG_BED_PL,
+const char * const MSG_BED_LANG_TABLE[1] PROGMEM = {
 	MSG_BED_EN
 };
 
 const char MSG_BED_CORRECTION_FRONT_EN[] PROGMEM = "Front side[um]";
-const char MSG_BED_CORRECTION_FRONT_CZ[] PROGMEM = "Vpredu [um]";
-const char MSG_BED_CORRECTION_FRONT_IT[] PROGMEM = "Fronte    [um]";
-const char MSG_BED_CORRECTION_FRONT_ES[] PROGMEM = "Adelante  [um]";
-const char MSG_BED_CORRECTION_FRONT_PL[] PROGMEM = "Do przodu [um]";
-const char MSG_BED_CORRECTION_FRONT_DE[] PROGMEM = "Vorne     [um]";
-const char * const MSG_BED_CORRECTION_FRONT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_CORRECTION_FRONT_EN,
-	MSG_BED_CORRECTION_FRONT_CZ,
-	MSG_BED_CORRECTION_FRONT_IT,
-	MSG_BED_CORRECTION_FRONT_ES,
-	MSG_BED_CORRECTION_FRONT_PL,
-	MSG_BED_CORRECTION_FRONT_DE
+const char * const MSG_BED_CORRECTION_FRONT_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_CORRECTION_FRONT_EN
 };
 
 const char MSG_BED_CORRECTION_LEFT_EN[] PROGMEM = "Left side [um]";
-const char MSG_BED_CORRECTION_LEFT_CZ[] PROGMEM = "Vlevo  [um]";
-const char MSG_BED_CORRECTION_LEFT_IT[] PROGMEM = "Sinistra  [um]";
-const char MSG_BED_CORRECTION_LEFT_ES[] PROGMEM = "Izquierda [um]";
-const char MSG_BED_CORRECTION_LEFT_PL[] PROGMEM = "W lewo  [um]";
-const char MSG_BED_CORRECTION_LEFT_DE[] PROGMEM = "Links     [um]";
-const char * const MSG_BED_CORRECTION_LEFT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_CORRECTION_LEFT_EN,
-	MSG_BED_CORRECTION_LEFT_CZ,
-	MSG_BED_CORRECTION_LEFT_IT,
-	MSG_BED_CORRECTION_LEFT_ES,
-	MSG_BED_CORRECTION_LEFT_PL,
-	MSG_BED_CORRECTION_LEFT_DE
+const char * const MSG_BED_CORRECTION_LEFT_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_CORRECTION_LEFT_EN
 };
 
 const char MSG_BED_CORRECTION_MENU_EN[] PROGMEM = "Bed level correct";
-const char MSG_BED_CORRECTION_MENU_CZ[] PROGMEM = "Korekce podlozky";
-const char MSG_BED_CORRECTION_MENU_IT[] PROGMEM = "Correz. liv.letto";
-const char MSG_BED_CORRECTION_MENU_ES[] PROGMEM = "Corr. de la cama";
-const char MSG_BED_CORRECTION_MENU_PL[] PROGMEM = "Korekta podkladki";
-const char MSG_BED_CORRECTION_MENU_DE[] PROGMEM = "Bed level Korrekt";
-const char * const MSG_BED_CORRECTION_MENU_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_CORRECTION_MENU_EN,
-	MSG_BED_CORRECTION_MENU_CZ,
-	MSG_BED_CORRECTION_MENU_IT,
-	MSG_BED_CORRECTION_MENU_ES,
-	MSG_BED_CORRECTION_MENU_PL,
-	MSG_BED_CORRECTION_MENU_DE
+const char * const MSG_BED_CORRECTION_MENU_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_CORRECTION_MENU_EN
 };
 
 const char MSG_BED_CORRECTION_REAR_EN[] PROGMEM = "Rear side [um]";
-const char MSG_BED_CORRECTION_REAR_CZ[] PROGMEM = "Vzadu  [um]";
-const char MSG_BED_CORRECTION_REAR_IT[] PROGMEM = "Retro     [um]";
-const char MSG_BED_CORRECTION_REAR_ES[] PROGMEM = "Atras     [um]";
-const char MSG_BED_CORRECTION_REAR_PL[] PROGMEM = "Do tylu  [um]";
-const char MSG_BED_CORRECTION_REAR_DE[] PROGMEM = "Hinten    [um]";
-const char * const MSG_BED_CORRECTION_REAR_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_CORRECTION_REAR_EN,
-	MSG_BED_CORRECTION_REAR_CZ,
-	MSG_BED_CORRECTION_REAR_IT,
-	MSG_BED_CORRECTION_REAR_ES,
-	MSG_BED_CORRECTION_REAR_PL,
-	MSG_BED_CORRECTION_REAR_DE
+const char * const MSG_BED_CORRECTION_REAR_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_CORRECTION_REAR_EN
 };
 
 const char MSG_BED_CORRECTION_RESET_EN[] PROGMEM = "Reset";
-const char MSG_BED_CORRECTION_RESET_DE[] PROGMEM = "Ruecksetzen";
-const char * const MSG_BED_CORRECTION_RESET_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_CORRECTION_RESET_EN,
-	MSG_BED_CORRECTION_RESET_EN,
-	MSG_BED_CORRECTION_RESET_EN,
-	MSG_BED_CORRECTION_RESET_EN,
-	MSG_BED_CORRECTION_RESET_EN,
-	MSG_BED_CORRECTION_RESET_DE
+const char * const MSG_BED_CORRECTION_RESET_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_CORRECTION_RESET_EN
 };
 
 const char MSG_BED_CORRECTION_RIGHT_EN[] PROGMEM = "Right side[um]";
-const char MSG_BED_CORRECTION_RIGHT_CZ[] PROGMEM = "Vpravo [um]";
-const char MSG_BED_CORRECTION_RIGHT_IT[] PROGMEM = "Destra    [um]";
-const char MSG_BED_CORRECTION_RIGHT_ES[] PROGMEM = "Derecha   [um]";
-const char MSG_BED_CORRECTION_RIGHT_PL[] PROGMEM = "W prawo [um]";
-const char MSG_BED_CORRECTION_RIGHT_DE[] PROGMEM = "Rechts    [um]";
-const char * const MSG_BED_CORRECTION_RIGHT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_CORRECTION_RIGHT_EN,
-	MSG_BED_CORRECTION_RIGHT_CZ,
-	MSG_BED_CORRECTION_RIGHT_IT,
-	MSG_BED_CORRECTION_RIGHT_ES,
-	MSG_BED_CORRECTION_RIGHT_PL,
-	MSG_BED_CORRECTION_RIGHT_DE
+const char * const MSG_BED_CORRECTION_RIGHT_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_CORRECTION_RIGHT_EN
 };
 
 const char MSG_BED_DONE_EN[] PROGMEM = "Bed done";
-const char MSG_BED_DONE_CZ[] PROGMEM = "Bed OK.";
-const char MSG_BED_DONE_IT[] PROGMEM = "Piatto fatto.";
-const char MSG_BED_DONE_ES[] PROGMEM = "Base preparada";
-const char MSG_BED_DONE_PL[] PROGMEM = "Stolik OK.";
-const char MSG_BED_DONE_DE[] PROGMEM = "Bed OK";
-const char * const MSG_BED_DONE_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_DONE_EN,
-	MSG_BED_DONE_CZ,
-	MSG_BED_DONE_IT,
-	MSG_BED_DONE_ES,
-	MSG_BED_DONE_PL,
-	MSG_BED_DONE_DE
+const char * const MSG_BED_DONE_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_DONE_EN
 };
 
 const char MSG_BED_HEATING_EN[] PROGMEM = "Bed Heating";
-const char MSG_BED_HEATING_CZ[] PROGMEM = "Zahrivani bed";
-const char MSG_BED_HEATING_IT[] PROGMEM = "Riscald. letto";
-const char MSG_BED_HEATING_ES[] PROGMEM = "Calentando Base";
-const char MSG_BED_HEATING_PL[] PROGMEM = "Grzanie stolika..";
-const char MSG_BED_HEATING_DE[] PROGMEM = "Bed aufwaermen";
-const char * const MSG_BED_HEATING_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_HEATING_EN,
-	MSG_BED_HEATING_CZ,
-	MSG_BED_HEATING_IT,
-	MSG_BED_HEATING_ES,
-	MSG_BED_HEATING_PL,
-	MSG_BED_HEATING_DE
+const char * const MSG_BED_HEATING_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_HEATING_EN
 };
 
 const char MSG_BED_LEVELING_FAILED_POINT_HIGH_EN[] PROGMEM = "Bed leveling failed. Sensor triggered too high. Waiting for reset.";
-const char MSG_BED_LEVELING_FAILED_POINT_HIGH_CZ[] PROGMEM = "Kalibrace Z selhala. Sensor sepnul prilis vysoko. Cekam na reset.";
-const char MSG_BED_LEVELING_FAILED_POINT_HIGH_IT[] PROGMEM = "Livellamento letto fallito.Risp sensore troppo prestoIn attesa di reset.";
-const char MSG_BED_LEVELING_FAILED_POINT_HIGH_ES[] PROGMEM = "Nivelacion fallada. Sensor funciona demasiado temprano. Esperando reset.";
-const char MSG_BED_LEVELING_FAILED_POINT_HIGH_PL[] PROGMEM = "Kalibracja Z nieudana. Sensor dotk. za wysoko. Czekam na reset.";
-const char MSG_BED_LEVELING_FAILED_POINT_HIGH_DE[] PROGMEM = "Z-Kalibrierung fehlgeschlg. Sensor zu hoch ausgeloest. Warte auf Reset.";
-const char * const MSG_BED_LEVELING_FAILED_POINT_HIGH_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_LEVELING_FAILED_POINT_HIGH_EN,
-	MSG_BED_LEVELING_FAILED_POINT_HIGH_CZ,
-	MSG_BED_LEVELING_FAILED_POINT_HIGH_IT,
-	MSG_BED_LEVELING_FAILED_POINT_HIGH_ES,
-	MSG_BED_LEVELING_FAILED_POINT_HIGH_PL,
-	MSG_BED_LEVELING_FAILED_POINT_HIGH_DE
+const char * const MSG_BED_LEVELING_FAILED_POINT_HIGH_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_LEVELING_FAILED_POINT_HIGH_EN
 };
 
 const char MSG_BED_LEVELING_FAILED_POINT_LOW_EN[] PROGMEM = "Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset.";
-const char MSG_BED_LEVELING_FAILED_POINT_LOW_CZ[] PROGMEM = "Kalibrace Z selhala. Sensor nesepnul. Znecistena tryska? Cekam na reset.";
-const char MSG_BED_LEVELING_FAILED_POINT_LOW_IT[] PROGMEM = "Livellamento letto fallito.NoRispSensor Residui su ugello? In attesa di reset.";
-const char MSG_BED_LEVELING_FAILED_POINT_LOW_ES[] PROGMEM = "Nivelacion fallada. Sensor no funciona. Escombros en Boqui.? Esperando reset.";
-const char MSG_BED_LEVELING_FAILED_POINT_LOW_PL[] PROGMEM = "Kalibracja nieudana. Sensor nie dotknal. Zanieczysz. dysza? Czekam na reset.";
-const char MSG_BED_LEVELING_FAILED_POINT_LOW_DE[] PROGMEM = "Z-Kal. fehlgeschlg. Sensor nicht ausgeloest. Schmutzige Duese? Warte auf Reset";
-const char * const MSG_BED_LEVELING_FAILED_POINT_LOW_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_LEVELING_FAILED_POINT_LOW_EN,
-	MSG_BED_LEVELING_FAILED_POINT_LOW_CZ,
-	MSG_BED_LEVELING_FAILED_POINT_LOW_IT,
-	MSG_BED_LEVELING_FAILED_POINT_LOW_ES,
-	MSG_BED_LEVELING_FAILED_POINT_LOW_PL,
-	MSG_BED_LEVELING_FAILED_POINT_LOW_DE
+const char * const MSG_BED_LEVELING_FAILED_POINT_LOW_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_LEVELING_FAILED_POINT_LOW_EN
 };
 
 const char MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_EN[] PROGMEM = "Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset.";
-const char MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_CZ[] PROGMEM = "Kalibrace Z selhala. Sensor je odpojeny nebo preruseny kabel. Cekam na reset.";
-const char MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_IT[] PROGMEM = "Livellamento letto fallito. Sensore discon. o Cavo Dann. In attesa di reset.";
-const char MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_ES[] PROGMEM = "Nivelacion fallada. Sensor desconectado o cables danados. Esperando reset.";
-const char MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_PL[] PROGMEM = "Kalibracja nieudana. Sensor odlaczony lub uszkodz. kabel. Czekam na reset.";
-const char MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_DE[] PROGMEM = "Z-Kalibrierung fehlgeschlg. Sensor nicht angeschlossen. Warte auf Reset.";
-const char * const MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_EN,
-	MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_CZ,
-	MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_IT,
-	MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_ES,
-	MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_PL,
-	MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_DE
+const char * const MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_EN
 };
 
 const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_EN[] PROGMEM = "XYZ calibration failed. Front calibration points not reachable.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_CZ[] PROGMEM = "Kalibrace XYZ selhala. Predni kalibracni body moc vpredu. Srovnejte tiskarnu.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_IT[] PROGMEM = "Calibrazione XYZ fallita. Punti anteriori non raggiungibili.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_ES[] PROGMEM = "Calibracion XYZ fallad. Punto delanteros no alcanzables.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_PL[] PROGMEM = "Kalibr. XYZ nieudana. Przed. punkty kalibr. zbyt do przodu. Wyrownac drukarke.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_DE[] PROGMEM = "XYZ-Kalibrierung fehlgeschlagen. Vordere Kalibrierpunkte sind zu weit vorne.";
-const char * const MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_EN,
-	MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_CZ,
-	MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_IT,
-	MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_ES,
-	MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_PL,
-	MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_DE
+const char * const MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_EN
 };
 
 const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_EN[] PROGMEM = "XYZ calibration failed. Left front calibration point not reachable.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_CZ[] PROGMEM = "Kalibrace XYZ selhala. Levy predni bod moc vpredu. Srovnejte tiskarnu.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_IT[] PROGMEM = "Calibrazione XYZ fallita. Punto anteriore sinistro non raggiungibile.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_ES[] PROGMEM = "Calibracion XYZ fallad. Punto delantero izquierdo no alcanzable.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_PL[] PROGMEM = "Kalibr. XYZ nieudana. Lewy przedni punkt zbyt do przodu. Wyrownac drukarke.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_DE[] PROGMEM = "XYZ-Kalibrierung fehlgeschlagen. Linker vorderer Kalibrierpunkt ist zu weit vorne.";
-const char * const MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_EN,
-	MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_CZ,
-	MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_IT,
-	MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_ES,
-	MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_PL,
-	MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_DE
+const char * const MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_EN
 };
 
 const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_EN[] PROGMEM = "XYZ calibration failed. Right front calibration point not reachable.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_CZ[] PROGMEM = "Kalibrace XYZ selhala. Pravy predni bod moc vpredu. Srovnejte tiskarnu.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_IT[] PROGMEM = "Calibrazione XYZ fallita. Punto anteriore destro non raggiungibile.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_ES[] PROGMEM = "Calibracion XYZ fallad. Punto delantero derecho no alcanzable.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_PL[] PROGMEM = "Kalibr. XYZ nieudana. Prawy przedni punkt zbyt do przodu. Wyrownac drukarke.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_DE[] PROGMEM = "XYZ-Kalibrierung fehlgeschlagen. Rechter vorderer Kalibrierpunkt ist zu weit vorne.";
-const char * const MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_EN,
-	MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_CZ,
-	MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_IT,
-	MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_ES,
-	MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_PL,
-	MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_DE
+const char * const MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_EN
 };
 
 const char MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_EN[] PROGMEM = "XYZ calibration failed. Please consult the manual.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_CZ[] PROGMEM = "Kalibrace XYZ selhala. Nahlednete do manualu.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_IT[] PROGMEM = "Calibrazione XYZ fallita. Si prega di consultare il manuale.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_ES[] PROGMEM = "Calibracion XYZ fallada. Consultar el manual por favor.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_PL[] PROGMEM = "Kalibracja XYZ niepowiedziona. Sprawdzic w instrukcji.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_DE[] PROGMEM = "XYZ-Kalibrierung fehlgeschlagen. Bitte schauen Sie in das Handbuch.";
-const char * const MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_EN,
-	MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_CZ,
-	MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_IT,
-	MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_ES,
-	MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_PL,
-	MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_DE
+const char * const MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_EN
 };
 
 const char MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_EN[] PROGMEM = "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!";
-const char MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_CZ[] PROGMEM = "Kalibrace XYZ v poradku. X/Y osy jsou kolme. Gratuluji!";
-const char MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_IT[] PROGMEM = "Calibrazione XYZ OK. Gli assi X/Y sono perpendicolari. Complimenti!";
-const char MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_ES[] PROGMEM = "Calibracion XYZ ok. Ejes X/Y perpendiculares. Felicitaciones!";
-const char MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_PL[] PROGMEM = "Kalibracja XYZ ok. Osie X/Y sa prostopadle. Gratulacje!";
-const char MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_DE[] PROGMEM = "XYZ-Kalibrierung ok. X/Y-Achsen sind senkrecht zueinander. Glueckwunsch!";
-const char * const MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_EN,
-	MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_CZ,
-	MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_IT,
-	MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_ES,
-	MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_PL,
-	MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_DE
+const char * const MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_EN
 };
 
 const char MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_EN[] PROGMEM = "XYZ calibration failed. Bed calibration point was not found.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_CZ[] PROGMEM = "Kalibrace XYZ selhala. Kalibracni bod podlozky nenalezen.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_IT[] PROGMEM = "Calibrazione XYZ fallita. Il punto di calibrazione sul letto non e' stato trovato.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_ES[] PROGMEM = "Calibracion XYZ fallada. Puntos de calibracion en la cama no encontrados.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_PL[] PROGMEM = "Kalibr. XYZ nieudana. Kalibracyjny punkt podkladki nieznaleziony.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_DE[] PROGMEM = "XYZ-Kalibrierung fehlgeschlagen. Bed-Kalibrierpunkt nicht gefunden.";
-const char * const MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_EN,
-	MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_CZ,
-	MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_IT,
-	MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_ES,
-	MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_PL,
-	MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_DE
+const char * const MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_EN
 };
 
 const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_EN[] PROGMEM = "XYZ calibration all right. Skew will be corrected automatically.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_CZ[] PROGMEM = "Kalibrace XYZ v poradku. Zkoseni bude automaticky vyrovnano pri tisku.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_IT[] PROGMEM = "Calibrazion XYZ corretta. La distorsione verra' automaticamente compensata.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_ES[] PROGMEM = "Calibracion XYZ correcta. La inclinacion se corregira automaticamente.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_PL[] PROGMEM = "Kalibracja XYZ prawidlowa. Skosy beda automatycznie wyrownane przy druku.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_DE[] PROGMEM = "XYZ Kalibrierung in Ordnung. Schiefheit wird automatisch korrigiert.";
-const char * const MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_EN,
-	MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_CZ,
-	MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_IT,
-	MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_ES,
-	MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_PL,
-	MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_DE
+const char * const MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_EN
 };
 
 const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_EN[] PROGMEM = "XYZ calibration all right. X/Y axes are slightly skewed. Good job!";
-const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_CZ[] PROGMEM = "Kalibrace XYZ v poradku. X/Y osy mirne zkosene. Dobra prace!";
-const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_IT[] PROGMEM = "Calibrazion XYZ corretta. Assi X/Y leggermente storti. Ben fatto!";
-const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_ES[] PROGMEM = "Calibracion XYZ correcta. Los ejes X / Y estan ligeramente inclinados. Buen trabajo!";
-const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_PL[] PROGMEM = "Kalibracja XYZ prawidlowa. Osie X/Y lekko skosne. Dobra robota!";
-const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_DE[] PROGMEM = "XYZ Kalibrierung in Ordnung. X/Y Achsen sind etwas schief.";
-const char * const MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_EN,
-	MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_CZ,
-	MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_IT,
-	MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_ES,
-	MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_PL,
-	MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_DE
+const char * const MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_EN
 };
 
 const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_EN[] PROGMEM = "XYZ calibration compromised. Front calibration points not reachable.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_CZ[] PROGMEM = "Kalibrace XYZ nepresna. Predni kalibracni body moc vpredu.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_IT[] PROGMEM = "Calibrazione XYZ compromessa. Punti anteriori non raggiungibili.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_ES[] PROGMEM = "Calibrazion XYZ comprometida. Punto delanteros no alcanzables.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_PL[] PROGMEM = "Kalibr. XYZ niedokladna. Przednie punkty kalibr. Zbyt wys. do przodu.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_DE[] PROGMEM = "XYZ-Kalibrierung ungenau. Vordere Kalibrierpunkte sind zu weit vorne.";
-const char * const MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_EN,
-	MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_CZ,
-	MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_IT,
-	MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_ES,
-	MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_PL,
-	MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_DE
+const char * const MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_EN
 };
 
 const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_EN[] PROGMEM = "XYZ calibration compromised. Left front calibration point not reachable.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_CZ[] PROGMEM = "Kalibrace XYZ nepresna. Levy predni bod moc vpredu.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_IT[] PROGMEM = "Calibrazione XYZ compromessa. Punto anteriore sinistro non raggiungibile.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_ES[] PROGMEM = "Calibrazion XYZ comprometida. Punto delantero izquierdo no alcanzable.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_PL[] PROGMEM = "Kalibracja XYZ niedokladna. Lewy przedni punkt zbyt wysuniety do przodu.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_DE[] PROGMEM = "XYZ-Kalibrierung ungenau. Linker vorderer Kalibrierpunkt ist zu weit vorne.";
-const char * const MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_EN,
-	MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_CZ,
-	MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_IT,
-	MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_ES,
-	MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_PL,
-	MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_DE
+const char * const MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_EN
 };
 
 const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_EN[] PROGMEM = "XYZ calibration compromised. Right front calibration point not reachable.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_CZ[] PROGMEM = "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_IT[] PROGMEM = "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_ES[] PROGMEM = "Calibrazion XYZ comprometida. Punto delantero derecho no alcanzable.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_PL[] PROGMEM = "Kalibracja XYZ niedokladna. Prawy przedni punkt zbyt wysuniety do przodu.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_DE[] PROGMEM = "XYZ-Kalibrierung ungenau. Rechter vorderer Kalibrierpunkt ist zu weit vorne.";
-const char * const MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_EN,
-	MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_CZ,
-	MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_IT,
-	MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_ES,
-	MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_PL,
-	MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_DE
+const char * const MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_LANG_TABLE[1] PROGMEM = {
+	MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_EN
 };
 
 const char MSG_BEGIN_FILE_LIST_EN[] PROGMEM = "Begin file list";
@@ -473,166 +201,63 @@ const char * const MSG_BROWNOUT_RESET_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_CALIBRATE_BED_EN[] PROGMEM = "Calibrate XYZ";
-const char MSG_CALIBRATE_BED_CZ[] PROGMEM = "Kalibrace XYZ";
-const char MSG_CALIBRATE_BED_IT[] PROGMEM = "Calibra XYZ";
-const char MSG_CALIBRATE_BED_ES[] PROGMEM = "Calibra XYZ";
-const char MSG_CALIBRATE_BED_PL[] PROGMEM = "Kalibracja XYZ";
-const char MSG_CALIBRATE_BED_DE[] PROGMEM = "Kalibrierung XYZ";
-const char * const MSG_CALIBRATE_BED_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_CALIBRATE_BED_EN,
-	MSG_CALIBRATE_BED_CZ,
-	MSG_CALIBRATE_BED_IT,
-	MSG_CALIBRATE_BED_ES,
-	MSG_CALIBRATE_BED_PL,
-	MSG_CALIBRATE_BED_DE
+const char * const MSG_CALIBRATE_BED_LANG_TABLE[1] PROGMEM = {
+	MSG_CALIBRATE_BED_EN
 };
 
 const char MSG_CALIBRATE_BED_RESET_EN[] PROGMEM = "Reset XYZ calibr.";
-const char MSG_CALIBRATE_BED_RESET_CZ[] PROGMEM = "Reset XYZ kalibr.";
-const char MSG_CALIBRATE_BED_RESET_PL[] PROGMEM = "Reset kalibr. XYZ";
-const char MSG_CALIBRATE_BED_RESET_DE[] PROGMEM = "Reset XYZ Kalibr.";
-const char * const MSG_CALIBRATE_BED_RESET_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_CALIBRATE_BED_RESET_EN,
-	MSG_CALIBRATE_BED_RESET_CZ,
-	MSG_CALIBRATE_BED_RESET_EN,
-	MSG_CALIBRATE_BED_RESET_EN,
-	MSG_CALIBRATE_BED_RESET_PL,
-	MSG_CALIBRATE_BED_RESET_DE
+const char * const MSG_CALIBRATE_BED_RESET_LANG_TABLE[1] PROGMEM = {
+	MSG_CALIBRATE_BED_RESET_EN
 };
 
 const char MSG_CALIBRATE_E_EN[] PROGMEM = "Calibrate E";
-const char MSG_CALIBRATE_E_CZ[] PROGMEM = "Kalibrovat E";
-const char MSG_CALIBRATE_E_IT[] PROGMEM = "Calibra E";
-const char MSG_CALIBRATE_E_ES[] PROGMEM = "Calibrar E";
-const char MSG_CALIBRATE_E_PL[] PROGMEM = "Kalibruj E";
-const char MSG_CALIBRATE_E_DE[] PROGMEM = "Kalibriere E";
-const char * const MSG_CALIBRATE_E_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_CALIBRATE_E_EN,
-	MSG_CALIBRATE_E_CZ,
-	MSG_CALIBRATE_E_IT,
-	MSG_CALIBRATE_E_ES,
-	MSG_CALIBRATE_E_PL,
-	MSG_CALIBRATE_E_DE
+const char * const MSG_CALIBRATE_E_LANG_TABLE[1] PROGMEM = {
+	MSG_CALIBRATE_E_EN
 };
 
 const char MSG_CALIBRATE_PINDA_EN[] PROGMEM = "Calibrate";
-const char MSG_CALIBRATE_PINDA_CZ[] PROGMEM = "Zkalibrovat";
-const char MSG_CALIBRATE_PINDA_IT[] PROGMEM = "Calibrare";
-const char MSG_CALIBRATE_PINDA_ES[] PROGMEM = "Calibrar";
-const char MSG_CALIBRATE_PINDA_PL[] PROGMEM = "Skalibrowac";
-const char MSG_CALIBRATE_PINDA_DE[] PROGMEM = "Kalibrieren";
-const char * const MSG_CALIBRATE_PINDA_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_CALIBRATE_PINDA_EN,
-	MSG_CALIBRATE_PINDA_CZ,
-	MSG_CALIBRATE_PINDA_IT,
-	MSG_CALIBRATE_PINDA_ES,
-	MSG_CALIBRATE_PINDA_PL,
-	MSG_CALIBRATE_PINDA_DE
+const char * const MSG_CALIBRATE_PINDA_LANG_TABLE[1] PROGMEM = {
+	MSG_CALIBRATE_PINDA_EN
+};
+
+const char MSG_CALIBRATE_Z_AUTO_EN[] PROGMEM = "msg calibrate z auto";
+const char * const MSG_CALIBRATE_Z_AUTO_LANG_TABLE[1] PROGMEM = {
+	MSG_CALIBRATE_Z_AUTO_EN
 };
 
 const char MSG_CALIBRATION_PINDA_MENU_EN[] PROGMEM = "Temp. calibration";
-const char MSG_CALIBRATION_PINDA_MENU_CZ[] PROGMEM = "Teplot. kalibrace";
-const char MSG_CALIBRATION_PINDA_MENU_IT[] PROGMEM = "Taratura temp.";
-const char MSG_CALIBRATION_PINDA_MENU_ES[] PROGMEM = "Calibracion temp.";
-const char MSG_CALIBRATION_PINDA_MENU_PL[] PROGMEM = "Cieplna kalibr.";
-const char MSG_CALIBRATION_PINDA_MENU_DE[] PROGMEM = "Temp. kalibrieren";
-const char * const MSG_CALIBRATION_PINDA_MENU_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_CALIBRATION_PINDA_MENU_EN,
-	MSG_CALIBRATION_PINDA_MENU_CZ,
-	MSG_CALIBRATION_PINDA_MENU_IT,
-	MSG_CALIBRATION_PINDA_MENU_ES,
-	MSG_CALIBRATION_PINDA_MENU_PL,
-	MSG_CALIBRATION_PINDA_MENU_DE
+const char * const MSG_CALIBRATION_PINDA_MENU_LANG_TABLE[1] PROGMEM = {
+	MSG_CALIBRATION_PINDA_MENU_EN
 };
 
 const char MSG_CARD_MENU_EN[] PROGMEM = "Print from SD";
-const char MSG_CARD_MENU_CZ[] PROGMEM = "Tisk z SD";
-const char MSG_CARD_MENU_IT[] PROGMEM = "Stampa da SD";
-const char MSG_CARD_MENU_ES[] PROGMEM = "Menu tarjeta SD";
-const char MSG_CARD_MENU_PL[] PROGMEM = "Druk z SD";
-const char MSG_CARD_MENU_DE[] PROGMEM = "Drucken von SD";
-const char * const MSG_CARD_MENU_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_CARD_MENU_EN,
-	MSG_CARD_MENU_CZ,
-	MSG_CARD_MENU_IT,
-	MSG_CARD_MENU_ES,
-	MSG_CARD_MENU_PL,
-	MSG_CARD_MENU_DE
+const char * const MSG_CARD_MENU_LANG_TABLE[1] PROGMEM = {
+	MSG_CARD_MENU_EN
 };
 
 const char MSG_CHANGE_EXTR_EN[] PROGMEM = "Change extruder";
-const char MSG_CHANGE_EXTR_CZ[] PROGMEM = "Zmenit extruder";
-const char MSG_CHANGE_EXTR_IT[] PROGMEM = "Cambio estrusore.";
-const char MSG_CHANGE_EXTR_ES[] PROGMEM = "Cambiar extrusor.";
-const char MSG_CHANGE_EXTR_PL[] PROGMEM = "Zmienic ekstruder";
-const char MSG_CHANGE_EXTR_DE[] PROGMEM = "Wechsel extruder";
-const char * const MSG_CHANGE_EXTR_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_CHANGE_EXTR_EN,
-	MSG_CHANGE_EXTR_CZ,
-	MSG_CHANGE_EXTR_IT,
-	MSG_CHANGE_EXTR_ES,
-	MSG_CHANGE_EXTR_PL,
-	MSG_CHANGE_EXTR_DE
+const char * const MSG_CHANGE_EXTR_LANG_TABLE[1] PROGMEM = {
+	MSG_CHANGE_EXTR_EN
 };
 
 const char MSG_CHANGE_SUCCESS_EN[] PROGMEM = "Change success!";
-const char MSG_CHANGE_SUCCESS_CZ[] PROGMEM = "Zmena uspesna!";
-const char MSG_CHANGE_SUCCESS_IT[] PROGMEM = "Cambio riuscito!";
-const char MSG_CHANGE_SUCCESS_ES[] PROGMEM = "Cambio correcto";
-const char MSG_CHANGE_SUCCESS_PL[] PROGMEM = "Wymiana ok!";
-const char MSG_CHANGE_SUCCESS_DE[] PROGMEM = "Wechsel erfolgr.!";
-const char * const MSG_CHANGE_SUCCESS_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_CHANGE_SUCCESS_EN,
-	MSG_CHANGE_SUCCESS_CZ,
-	MSG_CHANGE_SUCCESS_IT,
-	MSG_CHANGE_SUCCESS_ES,
-	MSG_CHANGE_SUCCESS_PL,
-	MSG_CHANGE_SUCCESS_DE
+const char * const MSG_CHANGE_SUCCESS_LANG_TABLE[1] PROGMEM = {
+	MSG_CHANGE_SUCCESS_EN
 };
 
 const char MSG_CHANGING_FILAMENT_EN[] PROGMEM = "Changing filament!";
-const char MSG_CHANGING_FILAMENT_CZ[] PROGMEM = "Vymena filamentu!";
-const char MSG_CHANGING_FILAMENT_IT[] PROGMEM = "Cambiando filam.";
-const char MSG_CHANGING_FILAMENT_ES[] PROGMEM = "Cambiando filamento";
-const char MSG_CHANGING_FILAMENT_PL[] PROGMEM = "Wymiana filamentu";
-const char MSG_CHANGING_FILAMENT_DE[] PROGMEM = "Filament-Wechsel!";
-const char * const MSG_CHANGING_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_CHANGING_FILAMENT_EN,
-	MSG_CHANGING_FILAMENT_CZ,
-	MSG_CHANGING_FILAMENT_IT,
-	MSG_CHANGING_FILAMENT_ES,
-	MSG_CHANGING_FILAMENT_PL,
-	MSG_CHANGING_FILAMENT_DE
+const char * const MSG_CHANGING_FILAMENT_LANG_TABLE[1] PROGMEM = {
+	MSG_CHANGING_FILAMENT_EN
 };
 
 const char MSG_CHOOSE_EXTRUDER_EN[] PROGMEM = "Choose extruder:";
-const char MSG_CHOOSE_EXTRUDER_CZ[] PROGMEM = "Vyberte extruder:";
-const char MSG_CHOOSE_EXTRUDER_IT[] PROGMEM = "Seleziona estrusore:";
-const char MSG_CHOOSE_EXTRUDER_ES[] PROGMEM = "Elegir extrusor:";
-const char MSG_CHOOSE_EXTRUDER_PL[] PROGMEM = "Wybierz ekstruder";
-const char MSG_CHOOSE_EXTRUDER_DE[] PROGMEM = "Waehlen Sie Extruder";
-const char * const MSG_CHOOSE_EXTRUDER_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_CHOOSE_EXTRUDER_EN,
-	MSG_CHOOSE_EXTRUDER_CZ,
-	MSG_CHOOSE_EXTRUDER_IT,
-	MSG_CHOOSE_EXTRUDER_ES,
-	MSG_CHOOSE_EXTRUDER_PL,
-	MSG_CHOOSE_EXTRUDER_DE
+const char * const MSG_CHOOSE_EXTRUDER_LANG_TABLE[1] PROGMEM = {
+	MSG_CHOOSE_EXTRUDER_EN
 };
 
 const char MSG_CLEAN_NOZZLE_E_EN[] PROGMEM = "E calibration finished. Please clean the nozzle. Click when done.";
-const char MSG_CLEAN_NOZZLE_E_CZ[] PROGMEM = "E kalibrace ukoncena. Prosim ocistete trysku. Po te potvrdte tlacitkem.";
-const char MSG_CLEAN_NOZZLE_E_IT[] PROGMEM = "Calibrazione E terminata. Si prega di pulire l'ugello. Click per continuare.";
-const char MSG_CLEAN_NOZZLE_E_ES[] PROGMEM = "E calibrado. Limpiar la boquilla. Haga clic una vez terminado.";
-const char MSG_CLEAN_NOZZLE_E_PL[] PROGMEM = "Kalibracja E skonczona. Prosze oczyscic dysze. Potem potwierdzic przyciskiem. ";
-const char MSG_CLEAN_NOZZLE_E_DE[] PROGMEM = "E-Kalibrierung beendet. Bitte reinigen Sie die Duese. Klicken wenn fertig.";
-const char * const MSG_CLEAN_NOZZLE_E_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_CLEAN_NOZZLE_E_EN,
-	MSG_CLEAN_NOZZLE_E_CZ,
-	MSG_CLEAN_NOZZLE_E_IT,
-	MSG_CLEAN_NOZZLE_E_ES,
-	MSG_CLEAN_NOZZLE_E_PL,
-	MSG_CLEAN_NOZZLE_E_DE
+const char * const MSG_CLEAN_NOZZLE_E_LANG_TABLE[1] PROGMEM = {
+	MSG_CLEAN_NOZZLE_E_EN
 };
 
 const char MSG_CNG_SDCARD_EN[] PROGMEM = "Change SD card";
@@ -646,48 +271,18 @@ const char * const MSG_CONFIGURATION_VER_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_EN[] PROGMEM = "Are left and right Z~carriages all up?";
-const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_CZ[] PROGMEM = "Dojely oba Z voziky k~hornimu dorazu?";
-const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_IT[] PROGMEM = "I carrelli Z sin/des sono altezza max?";
-const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_ES[] PROGMEM = "Carros Z izq./der. estan arriba maximo?";
-const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_PL[] PROGMEM = "Oba wozki dojechaly do gornej ramy?";
-const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_DE[] PROGMEM = "Ist der Schlitten ganz oben?";
-const char * const MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_CONFIRM_CARRIAGE_AT_THE_TOP_EN,
-	MSG_CONFIRM_CARRIAGE_AT_THE_TOP_CZ,
-	MSG_CONFIRM_CARRIAGE_AT_THE_TOP_IT,
-	MSG_CONFIRM_CARRIAGE_AT_THE_TOP_ES,
-	MSG_CONFIRM_CARRIAGE_AT_THE_TOP_PL,
-	MSG_CONFIRM_CARRIAGE_AT_THE_TOP_DE
+const char * const MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LANG_TABLE[1] PROGMEM = {
+	MSG_CONFIRM_CARRIAGE_AT_THE_TOP_EN
 };
 
 const char MSG_CONFIRM_NOZZLE_CLEAN_EN[] PROGMEM = "Please clean the nozzle for calibration. Click when done.";
-const char MSG_CONFIRM_NOZZLE_CLEAN_CZ[] PROGMEM = "Pro uspesnou kalibraci ocistete prosim tiskovou trysku. Potvrdte tlacitkem.";
-const char MSG_CONFIRM_NOZZLE_CLEAN_IT[] PROGMEM = "Pulire l'ugello per la calibrazione, poi fare click.";
-const char MSG_CONFIRM_NOZZLE_CLEAN_ES[] PROGMEM = "Limpiar boquilla para calibracion. Click cuando acabes.";
-const char MSG_CONFIRM_NOZZLE_CLEAN_PL[] PROGMEM = "Dla prawidl. kalibracji prosze oczyscic dysze. Potw. guzikiem.";
-const char MSG_CONFIRM_NOZZLE_CLEAN_DE[] PROGMEM = "Bitte entfernen Sie ueberstehendes Filament von der Duese. Klicken wenn sauber.";
-const char * const MSG_CONFIRM_NOZZLE_CLEAN_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_CONFIRM_NOZZLE_CLEAN_EN,
-	MSG_CONFIRM_NOZZLE_CLEAN_CZ,
-	MSG_CONFIRM_NOZZLE_CLEAN_IT,
-	MSG_CONFIRM_NOZZLE_CLEAN_ES,
-	MSG_CONFIRM_NOZZLE_CLEAN_PL,
-	MSG_CONFIRM_NOZZLE_CLEAN_DE
+const char * const MSG_CONFIRM_NOZZLE_CLEAN_LANG_TABLE[1] PROGMEM = {
+	MSG_CONFIRM_NOZZLE_CLEAN_EN
 };
 
 const char MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_EN[] PROGMEM = "Filaments are now adjusted. Please clean the nozzle for calibration. Click when done.";
-const char MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_CZ[] PROGMEM = "Filamenty jsou srovnany. Pro uspesnou kalibraci prosim ocistete trysku. Po te potvrdte tlacitkem.";
-const char MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_IT[] PROGMEM = "I filamenti sono regolati. Si prega di pulire l'ugello per la calibrazione. Click per continuare.";
-const char MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_ES[] PROGMEM = "Filamentos ajustados. Limpie la boquilla para calibracion. Haga clic una vez terminado.";
-const char MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_PL[] PROGMEM = "Dla prawidlowej kalibracji prosze oczyscic dysze. Potem potwierdzic przyciskiem.";
-const char MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_DE[] PROGMEM = "Filamente sind jetzt eingestellt. Bitte reinigen Sie die Duese zur Kalibrierung. Klicken wenn fertig.";
-const char * const MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_EN,
-	MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_CZ,
-	MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_IT,
-	MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_ES,
-	MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_PL,
-	MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_DE
+const char * const MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_LANG_TABLE[1] PROGMEM = {
+	MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_EN
 };
 
 const char MSG_CONTROL_EN[] PROGMEM = "Control";
@@ -696,33 +291,13 @@ const char * const MSG_CONTROL_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_COOLDOWN_EN[] PROGMEM = "Cooldown";
-const char MSG_COOLDOWN_CZ[] PROGMEM = "Zchladit";
-const char MSG_COOLDOWN_IT[] PROGMEM = "Raffredda";
-const char MSG_COOLDOWN_ES[] PROGMEM = "Enfriar";
-const char MSG_COOLDOWN_PL[] PROGMEM = "Wychlodzic";
-const char MSG_COOLDOWN_DE[] PROGMEM = "Abkuehlen";
-const char * const MSG_COOLDOWN_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_COOLDOWN_EN,
-	MSG_COOLDOWN_CZ,
-	MSG_COOLDOWN_IT,
-	MSG_COOLDOWN_ES,
-	MSG_COOLDOWN_PL,
-	MSG_COOLDOWN_DE
+const char * const MSG_COOLDOWN_LANG_TABLE[1] PROGMEM = {
+	MSG_COOLDOWN_EN
 };
 
 const char MSG_CORRECTLY_EN[] PROGMEM = "Changed correctly?";
-const char MSG_CORRECTLY_CZ[] PROGMEM = "Vymena ok?";
-const char MSG_CORRECTLY_IT[] PROGMEM = "Cambiato corr.?";
-const char MSG_CORRECTLY_ES[] PROGMEM = "Cambiado correct.?";
-const char MSG_CORRECTLY_PL[] PROGMEM = "Wymiana ok?";
-const char MSG_CORRECTLY_DE[] PROGMEM = "Wechsel ok?";
-const char * const MSG_CORRECTLY_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_CORRECTLY_EN,
-	MSG_CORRECTLY_CZ,
-	MSG_CORRECTLY_IT,
-	MSG_CORRECTLY_ES,
-	MSG_CORRECTLY_PL,
-	MSG_CORRECTLY_DE
+const char * const MSG_CORRECTLY_LANG_TABLE[1] PROGMEM = {
+	MSG_CORRECTLY_EN
 };
 
 const char MSG_COUNT_X_EN[] PROGMEM = " Count X: ";
@@ -731,46 +306,18 @@ const char * const MSG_COUNT_X_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_CURRENT_EN[] PROGMEM = "Current";
-const char MSG_CURRENT_CZ[] PROGMEM = "Pouze aktualni";
-const char MSG_CURRENT_IT[] PROGMEM = "Attuale";
-const char MSG_CURRENT_ES[] PROGMEM = "Actual";
-const char MSG_CURRENT_PL[] PROGMEM = "Tylko aktualne";
-const char MSG_CURRENT_DE[] PROGMEM = "Aktuelles";
-const char * const MSG_CURRENT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_CURRENT_EN,
-	MSG_CURRENT_CZ,
-	MSG_CURRENT_IT,
-	MSG_CURRENT_ES,
-	MSG_CURRENT_PL,
-	MSG_CURRENT_DE
+const char * const MSG_CURRENT_LANG_TABLE[1] PROGMEM = {
+	MSG_CURRENT_EN
 };
 
 const char MSG_DISABLE_STEPPERS_EN[] PROGMEM = "Disable steppers";
-const char MSG_DISABLE_STEPPERS_CZ[] PROGMEM = "Vypnout motory";
-const char MSG_DISABLE_STEPPERS_IT[] PROGMEM = "Disabilit motori";
-const char MSG_DISABLE_STEPPERS_ES[] PROGMEM = "Apagar motores";
-const char MSG_DISABLE_STEPPERS_PL[] PROGMEM = "Wylaczyc silniki";
-const char MSG_DISABLE_STEPPERS_DE[] PROGMEM = "Motoren aus";
-const char * const MSG_DISABLE_STEPPERS_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_DISABLE_STEPPERS_EN,
-	MSG_DISABLE_STEPPERS_CZ,
-	MSG_DISABLE_STEPPERS_IT,
-	MSG_DISABLE_STEPPERS_ES,
-	MSG_DISABLE_STEPPERS_PL,
-	MSG_DISABLE_STEPPERS_DE
+const char * const MSG_DISABLE_STEPPERS_LANG_TABLE[1] PROGMEM = {
+	MSG_DISABLE_STEPPERS_EN
 };
 
 const char MSG_DWELL_EN[] PROGMEM = "Sleep...";
-const char MSG_DWELL_IT[] PROGMEM = "Sospensione...";
-const char MSG_DWELL_ES[] PROGMEM = "En espera";
-const char MSG_DWELL_DE[] PROGMEM = "Einen Moment bitte.";
-const char * const MSG_DWELL_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_DWELL_EN,
-	MSG_DWELL_EN,
-	MSG_DWELL_IT,
-	MSG_DWELL_ES,
-	MSG_DWELL_EN,
-	MSG_DWELL_DE
+const char * const MSG_DWELL_LANG_TABLE[1] PROGMEM = {
+	MSG_DWELL_EN
 };
 
 const char MSG_ENDSTOPS_HIT_EN[] PROGMEM = "endstops hit: ";
@@ -794,17 +341,8 @@ const char * const MSG_END_FILE_LIST_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_ERROR_EN[] PROGMEM = "ERROR:";
-const char MSG_ERROR_CZ[] PROGMEM = "CHYBA:";
-const char MSG_ERROR_IT[] PROGMEM = "ERRORE:";
-const char MSG_ERROR_PL[] PROGMEM = "BLAD:";
-const char MSG_ERROR_DE[] PROGMEM = "FEHLER:";
-const char * const MSG_ERROR_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_ERROR_EN,
-	MSG_ERROR_CZ,
-	MSG_ERROR_IT,
-	MSG_ERROR_EN,
-	MSG_ERROR_PL,
-	MSG_ERROR_DE
+const char * const MSG_ERROR_LANG_TABLE[1] PROGMEM = {
+	MSG_ERROR_EN
 };
 
 const char MSG_ERR_CHECKSUM_MISMATCH_EN[] PROGMEM = "checksum mismatch, Last Line: ";
@@ -858,83 +396,33 @@ const char * const MSG_EXTERNAL_RESET_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_EXTRUDER_EN[] PROGMEM = "Extruder";
-const char MSG_EXTRUDER_IT[] PROGMEM = "Estrusore";
-const char MSG_EXTRUDER_ES[] PROGMEM = "Extrusor";
-const char MSG_EXTRUDER_PL[] PROGMEM = "Ekstruder";
-const char * const MSG_EXTRUDER_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_EXTRUDER_EN,
-	MSG_EXTRUDER_EN,
-	MSG_EXTRUDER_IT,
-	MSG_EXTRUDER_ES,
-	MSG_EXTRUDER_PL,
+const char * const MSG_EXTRUDER_LANG_TABLE[1] PROGMEM = {
 	MSG_EXTRUDER_EN
 };
 
 const char MSG_EXTRUDER_1_EN[] PROGMEM = "Extruder 1";
-const char MSG_EXTRUDER_1_IT[] PROGMEM = "Estrusore 1";
-const char MSG_EXTRUDER_1_ES[] PROGMEM = "Extrusor 1";
-const char MSG_EXTRUDER_1_PL[] PROGMEM = "Ekstruder 1";
-const char * const MSG_EXTRUDER_1_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_EXTRUDER_1_EN,
-	MSG_EXTRUDER_1_EN,
-	MSG_EXTRUDER_1_IT,
-	MSG_EXTRUDER_1_ES,
-	MSG_EXTRUDER_1_PL,
+const char * const MSG_EXTRUDER_1_LANG_TABLE[1] PROGMEM = {
 	MSG_EXTRUDER_1_EN
 };
 
 const char MSG_EXTRUDER_2_EN[] PROGMEM = "Extruder 2";
-const char MSG_EXTRUDER_2_IT[] PROGMEM = "Estrusore 2";
-const char MSG_EXTRUDER_2_ES[] PROGMEM = "Extrusor 2";
-const char MSG_EXTRUDER_2_PL[] PROGMEM = "Ekstruder 2";
-const char * const MSG_EXTRUDER_2_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_EXTRUDER_2_EN,
-	MSG_EXTRUDER_2_EN,
-	MSG_EXTRUDER_2_IT,
-	MSG_EXTRUDER_2_ES,
-	MSG_EXTRUDER_2_PL,
+const char * const MSG_EXTRUDER_2_LANG_TABLE[1] PROGMEM = {
 	MSG_EXTRUDER_2_EN
 };
 
 const char MSG_EXTRUDER_3_EN[] PROGMEM = "Extruder 3";
-const char MSG_EXTRUDER_3_IT[] PROGMEM = "Estrusore 3";
-const char MSG_EXTRUDER_3_ES[] PROGMEM = "Extrusor 3";
-const char MSG_EXTRUDER_3_PL[] PROGMEM = "Ekstruder 3";
-const char * const MSG_EXTRUDER_3_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_EXTRUDER_3_EN,
-	MSG_EXTRUDER_3_EN,
-	MSG_EXTRUDER_3_IT,
-	MSG_EXTRUDER_3_ES,
-	MSG_EXTRUDER_3_PL,
+const char * const MSG_EXTRUDER_3_LANG_TABLE[1] PROGMEM = {
 	MSG_EXTRUDER_3_EN
 };
 
 const char MSG_EXTRUDER_4_EN[] PROGMEM = "Extruder 4";
-const char MSG_EXTRUDER_4_IT[] PROGMEM = "Estrusore 4";
-const char MSG_EXTRUDER_4_ES[] PROGMEM = "Extrusor 4";
-const char MSG_EXTRUDER_4_PL[] PROGMEM = "Ekstruder 4";
-const char * const MSG_EXTRUDER_4_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_EXTRUDER_4_EN,
-	MSG_EXTRUDER_4_EN,
-	MSG_EXTRUDER_4_IT,
-	MSG_EXTRUDER_4_ES,
-	MSG_EXTRUDER_4_PL,
+const char * const MSG_EXTRUDER_4_LANG_TABLE[1] PROGMEM = {
 	MSG_EXTRUDER_4_EN
 };
 
 const char MSG_E_CAL_KNOB_EN[] PROGMEM = "Rotate knob until mark reaches extruder body. Click when done.";
-const char MSG_E_CAL_KNOB_CZ[] PROGMEM = "Otacejte tlacitkem dokud znacka nedosahne tela extruderu. Potvrdte tlacitkem.";
-const char MSG_E_CAL_KNOB_IT[] PROGMEM = "Girare la manopola affinche' il segno raggiunga il corpo dell'estrusore. Click per continuare.";
-const char MSG_E_CAL_KNOB_ES[] PROGMEM = "Rotar el mando hasta que la marca llegue al cuerpo del extrusor. Haga clic una vez terminado.";
-const char MSG_E_CAL_KNOB_PL[] PROGMEM = "Prosze otaczac przycisk poki znacznik nie dosiegnie ciala ekstrudera. Potwierdzic przyciskiem.";
-const char MSG_E_CAL_KNOB_DE[] PROGMEM = "Knopf drehen bis die Filamentmarkierung erreicht ist. Klicken wenn fertig.";
-const char * const MSG_E_CAL_KNOB_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_E_CAL_KNOB_EN,
-	MSG_E_CAL_KNOB_CZ,
-	MSG_E_CAL_KNOB_IT,
-	MSG_E_CAL_KNOB_ES,
-	MSG_E_CAL_KNOB_PL,
-	MSG_E_CAL_KNOB_DE
+const char * const MSG_E_CAL_KNOB_LANG_TABLE[1] PROGMEM = {
+	MSG_E_CAL_KNOB_EN
 };
 
 const char MSG_Enqueing_EN[] PROGMEM = "enqueing \"";
@@ -948,18 +436,8 @@ const char * const MSG_FACTOR_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_FAN_SPEED_EN[] PROGMEM = "Fan speed";
-const char MSG_FAN_SPEED_CZ[] PROGMEM = "Rychlost vent.";
-const char MSG_FAN_SPEED_IT[] PROGMEM = "Velocita vent.";
-const char MSG_FAN_SPEED_ES[] PROGMEM = "Velocidad Vent.";
-const char MSG_FAN_SPEED_PL[] PROGMEM = "Predkosc went.";
-const char MSG_FAN_SPEED_DE[] PROGMEM = "Luefter-Tempo";
-const char * const MSG_FAN_SPEED_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_FAN_SPEED_EN,
-	MSG_FAN_SPEED_CZ,
-	MSG_FAN_SPEED_IT,
-	MSG_FAN_SPEED_ES,
-	MSG_FAN_SPEED_PL,
-	MSG_FAN_SPEED_DE
+const char * const MSG_FAN_SPEED_LANG_TABLE[1] PROGMEM = {
+	MSG_FAN_SPEED_EN
 };
 
 const char MSG_FARM_CARD_MENU_EN[] PROGMEM = "Farm mode print";
@@ -968,93 +446,33 @@ const char * const MSG_FARM_CARD_MENU_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_FILAMENTCHANGE_EN[] PROGMEM = "Change filament";
-const char MSG_FILAMENTCHANGE_CZ[] PROGMEM = "Vymenit filament";
-const char MSG_FILAMENTCHANGE_IT[] PROGMEM = "Camb. filamento";
-const char MSG_FILAMENTCHANGE_ES[] PROGMEM = "Cambiar filamento";
-const char MSG_FILAMENTCHANGE_PL[] PROGMEM = "Wymienic filament";
-const char MSG_FILAMENTCHANGE_DE[] PROGMEM = "Filament-Wechsel";
-const char * const MSG_FILAMENTCHANGE_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_FILAMENTCHANGE_EN,
-	MSG_FILAMENTCHANGE_CZ,
-	MSG_FILAMENTCHANGE_IT,
-	MSG_FILAMENTCHANGE_ES,
-	MSG_FILAMENTCHANGE_PL,
-	MSG_FILAMENTCHANGE_DE
+const char * const MSG_FILAMENTCHANGE_LANG_TABLE[1] PROGMEM = {
+	MSG_FILAMENTCHANGE_EN
 };
 
 const char MSG_FILAMENT_CLEAN_EN[] PROGMEM = "Is color clear?";
-const char MSG_FILAMENT_CLEAN_CZ[] PROGMEM = "Je barva cista?";
-const char MSG_FILAMENT_CLEAN_IT[] PROGMEM = "Il colore e' nitido?";
-const char MSG_FILAMENT_CLEAN_ES[] PROGMEM = "Es el nuevo color nitido?";
-const char MSG_FILAMENT_CLEAN_PL[] PROGMEM = "Czy kolor jest czysty?";
-const char MSG_FILAMENT_CLEAN_DE[] PROGMEM = "Ist Farbe rein?";
-const char * const MSG_FILAMENT_CLEAN_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_FILAMENT_CLEAN_EN,
-	MSG_FILAMENT_CLEAN_CZ,
-	MSG_FILAMENT_CLEAN_IT,
-	MSG_FILAMENT_CLEAN_ES,
-	MSG_FILAMENT_CLEAN_PL,
-	MSG_FILAMENT_CLEAN_DE
+const char * const MSG_FILAMENT_CLEAN_LANG_TABLE[1] PROGMEM = {
+	MSG_FILAMENT_CLEAN_EN
 };
 
 const char MSG_FILAMENT_LOADING_T0_EN[] PROGMEM = "Insert filament into extruder 1. Click when done.";
-const char MSG_FILAMENT_LOADING_T0_CZ[] PROGMEM = "Vlozte filament do extruderu 1. Potvrdte tlacitkem.";
-const char MSG_FILAMENT_LOADING_T0_IT[] PROGMEM = "Inserire filamento nell'estrusore 1. Click per continuare.";
-const char MSG_FILAMENT_LOADING_T0_ES[] PROGMEM = "Insertar filamento en el extrusor 1. Haga clic una vez terminado.";
-const char MSG_FILAMENT_LOADING_T0_PL[] PROGMEM = "Wloz filament do ekstrudera 1. Potwierdz przyciskiem.";
-const char MSG_FILAMENT_LOADING_T0_DE[] PROGMEM = "Filament in extruder 1 einlegen. Klicken wenn fertig.";
-const char * const MSG_FILAMENT_LOADING_T0_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_FILAMENT_LOADING_T0_EN,
-	MSG_FILAMENT_LOADING_T0_CZ,
-	MSG_FILAMENT_LOADING_T0_IT,
-	MSG_FILAMENT_LOADING_T0_ES,
-	MSG_FILAMENT_LOADING_T0_PL,
-	MSG_FILAMENT_LOADING_T0_DE
+const char * const MSG_FILAMENT_LOADING_T0_LANG_TABLE[1] PROGMEM = {
+	MSG_FILAMENT_LOADING_T0_EN
 };
 
 const char MSG_FILAMENT_LOADING_T1_EN[] PROGMEM = "Insert filament into extruder 2. Click when done.";
-const char MSG_FILAMENT_LOADING_T1_CZ[] PROGMEM = "Vlozte filament do extruderu 2. Potvrdte tlacitkem.";
-const char MSG_FILAMENT_LOADING_T1_IT[] PROGMEM = "Inserire filamento nell'estrusore 2. Click per continuare.";
-const char MSG_FILAMENT_LOADING_T1_ES[] PROGMEM = "Insertar filamento en el extrusor 2. Haga clic una vez terminado.";
-const char MSG_FILAMENT_LOADING_T1_PL[] PROGMEM = "Wloz filament do ekstrudera 2. Potwierdz przyciskiem.";
-const char MSG_FILAMENT_LOADING_T1_DE[] PROGMEM = "Filament in extruder 2 einlegen. Klicken wenn fertig.";
-const char * const MSG_FILAMENT_LOADING_T1_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_FILAMENT_LOADING_T1_EN,
-	MSG_FILAMENT_LOADING_T1_CZ,
-	MSG_FILAMENT_LOADING_T1_IT,
-	MSG_FILAMENT_LOADING_T1_ES,
-	MSG_FILAMENT_LOADING_T1_PL,
-	MSG_FILAMENT_LOADING_T1_DE
+const char * const MSG_FILAMENT_LOADING_T1_LANG_TABLE[1] PROGMEM = {
+	MSG_FILAMENT_LOADING_T1_EN
 };
 
 const char MSG_FILAMENT_LOADING_T2_EN[] PROGMEM = "Insert filament into extruder 3. Click when done.";
-const char MSG_FILAMENT_LOADING_T2_CZ[] PROGMEM = "Vlozte filament do extruderu 3. Potvrdte tlacitkem.";
-const char MSG_FILAMENT_LOADING_T2_IT[] PROGMEM = "Inserire filamento nell'estrusore 3. Click per continuare.";
-const char MSG_FILAMENT_LOADING_T2_ES[] PROGMEM = "Insertar filamento en el extrusor 3. Haga clic una vez terminado.";
-const char MSG_FILAMENT_LOADING_T2_PL[] PROGMEM = "Wloz filament do ekstrudera 3. Potwierdz przyciskiem.";
-const char MSG_FILAMENT_LOADING_T2_DE[] PROGMEM = "Filament in extruder 3 einlegen. Klicken wenn fertig.";
-const char * const MSG_FILAMENT_LOADING_T2_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_FILAMENT_LOADING_T2_EN,
-	MSG_FILAMENT_LOADING_T2_CZ,
-	MSG_FILAMENT_LOADING_T2_IT,
-	MSG_FILAMENT_LOADING_T2_ES,
-	MSG_FILAMENT_LOADING_T2_PL,
-	MSG_FILAMENT_LOADING_T2_DE
+const char * const MSG_FILAMENT_LOADING_T2_LANG_TABLE[1] PROGMEM = {
+	MSG_FILAMENT_LOADING_T2_EN
 };
 
 const char MSG_FILAMENT_LOADING_T3_EN[] PROGMEM = "Insert filament into extruder 4. Click when done.";
-const char MSG_FILAMENT_LOADING_T3_CZ[] PROGMEM = "Vlozte filament do extruderu 4. Potvrdte tlacitkem.";
-const char MSG_FILAMENT_LOADING_T3_IT[] PROGMEM = "Inserire filamento nell'estrusore 4. Click per continuare.";
-const char MSG_FILAMENT_LOADING_T3_ES[] PROGMEM = "Insertar filamento en el extrusor 4. Haga clic una vez terminado.";
-const char MSG_FILAMENT_LOADING_T3_PL[] PROGMEM = "Wloz filament do ekstrudera 4. Potwierdz przyciskiem.";
-const char MSG_FILAMENT_LOADING_T3_DE[] PROGMEM = "Filament in extruder 4 einlegen. Klicken wenn fertig.";
-const char * const MSG_FILAMENT_LOADING_T3_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_FILAMENT_LOADING_T3_EN,
-	MSG_FILAMENT_LOADING_T3_CZ,
-	MSG_FILAMENT_LOADING_T3_IT,
-	MSG_FILAMENT_LOADING_T3_ES,
-	MSG_FILAMENT_LOADING_T3_PL,
-	MSG_FILAMENT_LOADING_T3_DE
+const char * const MSG_FILAMENT_LOADING_T3_LANG_TABLE[1] PROGMEM = {
+	MSG_FILAMENT_LOADING_T3_EN
 };
 
 const char MSG_FILE_PRINTED_EN[] PROGMEM = "Done printing file";
@@ -1068,107 +486,33 @@ const char * const MSG_FILE_SAVED_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_FIL_ADJUSTING_EN[] PROGMEM = "Adjusting filaments. Please wait.";
-const char MSG_FIL_ADJUSTING_CZ[] PROGMEM = "Probiha srovnani filamentu. Prosim cekejte.";
-const char MSG_FIL_ADJUSTING_IT[] PROGMEM = "Filamento in fase di regolazione. Attendere prego.";
-const char MSG_FIL_ADJUSTING_ES[] PROGMEM = "Ajustando filamentos. Esperar por favor.";
-const char MSG_FIL_ADJUSTING_PL[] PROGMEM = "Przebiega wyrownanie filamentow. Prosze czekac.";
-const char MSG_FIL_ADJUSTING_DE[] PROGMEM = "Filament positionieren. Bitte warten.";
-const char * const MSG_FIL_ADJUSTING_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_FIL_ADJUSTING_EN,
-	MSG_FIL_ADJUSTING_CZ,
-	MSG_FIL_ADJUSTING_IT,
-	MSG_FIL_ADJUSTING_ES,
-	MSG_FIL_ADJUSTING_PL,
-	MSG_FIL_ADJUSTING_DE
+const char * const MSG_FIL_ADJUSTING_LANG_TABLE[1] PROGMEM = {
+	MSG_FIL_ADJUSTING_EN
 };
 
 const char MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_EN[] PROGMEM = "Iteration ";
-const char MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_CZ[] PROGMEM = "Iterace ";
-const char MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_IT[] PROGMEM = "Reiterazione ";
-const char MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_ES[] PROGMEM = "Reiteracion ";
-const char MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_PL[] PROGMEM = "Iteracja ";
-const char * const MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_EN,
-	MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_CZ,
-	MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_IT,
-	MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_ES,
-	MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_PL,
+const char * const MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_LANG_TABLE[1] PROGMEM = {
 	MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_EN
 };
 
-const char MSG_CALIBRATE_Z_AUTO_EN[] PROGMEM = "Calibrating Z...";
-const char MSG_CALIBRATE_Z_AUTO_CZ[] PROGMEM = "Calibrating Z...";
-const char MSG_CALIBRATE_Z_AUTO_IT[] PROGMEM = "Calibrating Z...";
-const char MSG_CALIBRATE_Z_AUTO_ES[] PROGMEM = "Calibrating Z...";
-const char MSG_CALIBRATE_Z_AUTO_PL[] PROGMEM = "Calibrating Z...";
-const char MSG_CALIBRATE_Z_AUTO_DE[] PROGMEM = "Calibrating Z...";
-const char * const MSG_CALIBRATE_Z_AUTO_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_CALIBRATE_Z_AUTO_EN,
-	MSG_CALIBRATE_Z_AUTO_CZ,
-	MSG_CALIBRATE_Z_AUTO_IT,
-	MSG_CALIBRATE_Z_AUTO_ES,
-	MSG_CALIBRATE_Z_AUTO_PL,
-	MSG_CALIBRATE_Z_AUTO_DE
-};
-
 const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_EN[] PROGMEM = "Searching bed calibration point";
-const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_CZ[] PROGMEM = "Hledam kalibracni bod podlozky";
-const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_IT[] PROGMEM = "Ricerca del letto punto di calibraz.";
-const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_ES[] PROGMEM = "Buscando cama punto de calibracion";
-const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_PL[] PROGMEM = "Szukam punktu kalibracyjnego podkladki";
-const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_DE[] PROGMEM = "Suchen Bed Kalibrierpunkt";
-const char * const MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_EN,
-	MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_CZ,
-	MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_IT,
-	MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_ES,
-	MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_PL,
-	MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_DE
+const char * const MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_LANG_TABLE[1] PROGMEM = {
+	MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_EN
 };
 
 const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_EN[] PROGMEM = " of 4";
-const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_CZ[] PROGMEM = " z 4";
-const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_IT[] PROGMEM = " su 4";
-const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_ES[] PROGMEM = " de 4";
-const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_PL[] PROGMEM = " z 4";
-const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_DE[] PROGMEM = " von 4";
-const char * const MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_EN,
-	MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_CZ,
-	MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_IT,
-	MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_ES,
-	MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_PL,
-	MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_DE
+const char * const MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_LANG_TABLE[1] PROGMEM = {
+	MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_EN
 };
 
 const char MSG_FINISHING_MOVEMENTS_EN[] PROGMEM = "Finishing movements";
-const char MSG_FINISHING_MOVEMENTS_CZ[] PROGMEM = "Dokoncovani pohybu";
-const char MSG_FINISHING_MOVEMENTS_IT[] PROGMEM = "Arresto in corso";
-const char MSG_FINISHING_MOVEMENTS_ES[] PROGMEM = "Term. movimientos";
-const char MSG_FINISHING_MOVEMENTS_PL[] PROGMEM = "Konczenie druku";
-const char MSG_FINISHING_MOVEMENTS_DE[] PROGMEM = "Bewegung beenden";
-const char * const MSG_FINISHING_MOVEMENTS_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_FINISHING_MOVEMENTS_EN,
-	MSG_FINISHING_MOVEMENTS_CZ,
-	MSG_FINISHING_MOVEMENTS_IT,
-	MSG_FINISHING_MOVEMENTS_ES,
-	MSG_FINISHING_MOVEMENTS_PL,
-	MSG_FINISHING_MOVEMENTS_DE
+const char * const MSG_FINISHING_MOVEMENTS_LANG_TABLE[1] PROGMEM = {
+	MSG_FINISHING_MOVEMENTS_EN
 };
 
 const char MSG_FLOW_EN[] PROGMEM = "Flow";
-const char MSG_FLOW_CZ[] PROGMEM = "Prutok";
-const char MSG_FLOW_IT[] PROGMEM = "Flusso";
-const char MSG_FLOW_ES[] PROGMEM = "Flujo";
-const char MSG_FLOW_PL[] PROGMEM = "Przeplyw";
-const char MSG_FLOW_DE[] PROGMEM = "Durchfluss";
-const char * const MSG_FLOW_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_FLOW_EN,
-	MSG_FLOW_CZ,
-	MSG_FLOW_IT,
-	MSG_FLOW_ES,
-	MSG_FLOW_PL,
-	MSG_FLOW_DE
+const char * const MSG_FLOW_LANG_TABLE[1] PROGMEM = {
+	MSG_FLOW_EN
 };
 
 const char MSG_FLOW0_EN[] PROGMEM = "Flow 0";
@@ -1187,18 +531,8 @@ const char * const MSG_FLOW2_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_FOLLOW_CALIBRATION_FLOW_EN[] PROGMEM = "Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow.";
-const char MSG_FOLLOW_CALIBRATION_FLOW_CZ[] PROGMEM = "Tiskarna nebyla jeste zkalibrovana. Postupujte prosim podle manualu, kapitola Zaciname, odstavec Postup kalibrace.";
-const char MSG_FOLLOW_CALIBRATION_FLOW_IT[] PROGMEM = "Stampante ancora non calibrata. Si prega di seguire il manuale, capitolo PRIMI PASSI, sezione della calibrazione.";
-const char MSG_FOLLOW_CALIBRATION_FLOW_ES[] PROGMEM = "Impresora no esta calibrada todavia. Por favor usar el manual, el capitulo First steps, seleccion Calibration flow.";
-const char MSG_FOLLOW_CALIBRATION_FLOW_PL[] PROGMEM = "Drukarka nie zostala jeszcze skalibrowana. Prosze kierowac sie instrukcja, rozdzial Zaczynamy, podrozdzial Selftest.";
-const char MSG_FOLLOW_CALIBRATION_FLOW_DE[] PROGMEM = "Der Drucker wurde noch nicht kalibriert. Bitte folgen Sie dem Handbuch, Kapitel First steps, Abschnitt Calibration flow.";
-const char * const MSG_FOLLOW_CALIBRATION_FLOW_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_FOLLOW_CALIBRATION_FLOW_EN,
-	MSG_FOLLOW_CALIBRATION_FLOW_CZ,
-	MSG_FOLLOW_CALIBRATION_FLOW_IT,
-	MSG_FOLLOW_CALIBRATION_FLOW_ES,
-	MSG_FOLLOW_CALIBRATION_FLOW_PL,
-	MSG_FOLLOW_CALIBRATION_FLOW_DE
+const char * const MSG_FOLLOW_CALIBRATION_FLOW_LANG_TABLE[1] PROGMEM = {
+	MSG_FOLLOW_CALIBRATION_FLOW_EN
 };
 
 const char MSG_FREE_MEMORY_EN[] PROGMEM = " Free Memory: ";
@@ -1206,79 +540,39 @@ const char * const MSG_FREE_MEMORY_LANG_TABLE[1] PROGMEM = {
 	MSG_FREE_MEMORY_EN
 };
 
+const char MSG_FSENSOR_OFF_EN[] PROGMEM = "msg sensor off";
+const char * const MSG_FSENSOR_OFF_LANG_TABLE[1] PROGMEM = {
+	MSG_FSENSOR_OFF_EN
+};
+
+const char MSG_FSENSOR_ON_EN[] PROGMEM = "msg sensor on";
+const char * const MSG_FSENSOR_ON_LANG_TABLE[1] PROGMEM = {
+	MSG_FSENSOR_ON_EN
+};
+
 const char MSG_HEATING_EN[] PROGMEM = "Heating";
-const char MSG_HEATING_CZ[] PROGMEM = "Zahrivani";
-const char MSG_HEATING_IT[] PROGMEM = "Riscaldamento...";
-const char MSG_HEATING_ES[] PROGMEM = "Calentando...";
-const char MSG_HEATING_PL[] PROGMEM = "Grzanie...";
-const char MSG_HEATING_DE[] PROGMEM = "Aufwaermen";
-const char * const MSG_HEATING_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_HEATING_EN,
-	MSG_HEATING_CZ,
-	MSG_HEATING_IT,
-	MSG_HEATING_ES,
-	MSG_HEATING_PL,
-	MSG_HEATING_DE
+const char * const MSG_HEATING_LANG_TABLE[1] PROGMEM = {
+	MSG_HEATING_EN
 };
 
 const char MSG_HEATING_COMPLETE_EN[] PROGMEM = "Heating done.";
-const char MSG_HEATING_COMPLETE_CZ[] PROGMEM = "Zahrivani OK.";
-const char MSG_HEATING_COMPLETE_IT[] PROGMEM = "Riscald. completo";
-const char MSG_HEATING_COMPLETE_ES[] PROGMEM = "Calentamiento final.";
-const char MSG_HEATING_COMPLETE_PL[] PROGMEM = "Grzanie OK.";
-const char MSG_HEATING_COMPLETE_DE[] PROGMEM = "Aufwaermen OK";
-const char * const MSG_HEATING_COMPLETE_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_HEATING_COMPLETE_EN,
-	MSG_HEATING_COMPLETE_CZ,
-	MSG_HEATING_COMPLETE_IT,
-	MSG_HEATING_COMPLETE_ES,
-	MSG_HEATING_COMPLETE_PL,
-	MSG_HEATING_COMPLETE_DE
+const char * const MSG_HEATING_COMPLETE_LANG_TABLE[1] PROGMEM = {
+	MSG_HEATING_COMPLETE_EN
 };
 
 const char MSG_HOMEYZ_EN[] PROGMEM = "Calibrate Z";
-const char MSG_HOMEYZ_CZ[] PROGMEM = "Kalibrovat Z";
-const char MSG_HOMEYZ_IT[] PROGMEM = "Calibra Z";
-const char MSG_HOMEYZ_ES[] PROGMEM = "Calibrar Z";
-const char MSG_HOMEYZ_PL[] PROGMEM = "Kalibruj Z";
-const char MSG_HOMEYZ_DE[] PROGMEM = "Kalibrieren Z";
-const char * const MSG_HOMEYZ_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_HOMEYZ_EN,
-	MSG_HOMEYZ_CZ,
-	MSG_HOMEYZ_IT,
-	MSG_HOMEYZ_ES,
-	MSG_HOMEYZ_PL,
-	MSG_HOMEYZ_DE
+const char * const MSG_HOMEYZ_LANG_TABLE[1] PROGMEM = {
+	MSG_HOMEYZ_EN
 };
 
 const char MSG_HOMEYZ_DONE_EN[] PROGMEM = "Calibration done";
-const char MSG_HOMEYZ_DONE_CZ[] PROGMEM = "Kalibrace OK";
-const char MSG_HOMEYZ_DONE_IT[] PROGMEM = "Calibrazione OK";
-const char MSG_HOMEYZ_DONE_ES[] PROGMEM = "Calibracion OK";
-const char MSG_HOMEYZ_DONE_PL[] PROGMEM = "Kalibracja OK";
-const char MSG_HOMEYZ_DONE_DE[] PROGMEM = "Kalibrierung OK";
-const char * const MSG_HOMEYZ_DONE_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_HOMEYZ_DONE_EN,
-	MSG_HOMEYZ_DONE_CZ,
-	MSG_HOMEYZ_DONE_IT,
-	MSG_HOMEYZ_DONE_ES,
-	MSG_HOMEYZ_DONE_PL,
-	MSG_HOMEYZ_DONE_DE
+const char * const MSG_HOMEYZ_DONE_LANG_TABLE[1] PROGMEM = {
+	MSG_HOMEYZ_DONE_EN
 };
 
 const char MSG_HOMEYZ_PROGRESS_EN[] PROGMEM = "Calibrating Z";
-const char MSG_HOMEYZ_PROGRESS_CZ[] PROGMEM = "Kalibruji Z";
-const char MSG_HOMEYZ_PROGRESS_IT[] PROGMEM = "Calibrando Z";
-const char MSG_HOMEYZ_PROGRESS_ES[] PROGMEM = "Calibrando Z";
-const char MSG_HOMEYZ_PROGRESS_PL[] PROGMEM = "Kalibruje Z";
-const char MSG_HOMEYZ_PROGRESS_DE[] PROGMEM = "Kalibriere Z";
-const char * const MSG_HOMEYZ_PROGRESS_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_HOMEYZ_PROGRESS_EN,
-	MSG_HOMEYZ_PROGRESS_CZ,
-	MSG_HOMEYZ_PROGRESS_IT,
-	MSG_HOMEYZ_PROGRESS_ES,
-	MSG_HOMEYZ_PROGRESS_PL,
-	MSG_HOMEYZ_PROGRESS_DE
+const char * const MSG_HOMEYZ_PROGRESS_LANG_TABLE[1] PROGMEM = {
+	MSG_HOMEYZ_PROGRESS_EN
 };
 
 const char MSG_HOTEND_OFFSET_EN[] PROGMEM = "Hotend offsets:";
@@ -1287,33 +581,13 @@ const char * const MSG_HOTEND_OFFSET_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_EN[] PROGMEM = "Improving bed calibration point";
-const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_CZ[] PROGMEM = "Zlepsuji presnost kalibracniho bodu";
-const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_IT[] PROGMEM = "Perfezion. il letto punto di calibraz.";
-const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_ES[] PROGMEM = "Mejorando cama punto de calibracion";
-const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_PL[] PROGMEM = "Poprawiam precyzyjnosc punktu kalibracyjnego";
-const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_DE[] PROGMEM = "Verbesserung Bed Kalibrierpunkt";
-const char * const MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_EN,
-	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_CZ,
-	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_IT,
-	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_ES,
-	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_PL,
-	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_DE
+const char * const MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_LANG_TABLE[1] PROGMEM = {
+	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_EN
 };
 
 const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_EN[] PROGMEM = " of 9";
-const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_CZ[] PROGMEM = " z 9";
-const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_IT[] PROGMEM = " su 9";
-const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_ES[] PROGMEM = " de 9";
-const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_PL[] PROGMEM = " z 9";
-const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_DE[] PROGMEM = " von 9";
-const char * const MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_EN,
-	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_CZ,
-	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_IT,
-	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_ES,
-	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_PL,
-	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_DE
+const char * const MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_LANG_TABLE[1] PROGMEM = {
+	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_EN
 };
 
 const char MSG_INFO_EXTRUDER_EN[] PROGMEM = "Extruder info";
@@ -1321,7 +595,7 @@ const char * const MSG_INFO_EXTRUDER_LANG_TABLE[1] PROGMEM = {
 	MSG_INFO_EXTRUDER_EN
 };
 
-const char MSG_INFO_FILAMENT_XDIFF_EN[] PROGMEM = "Fil. Xdiff:";
+const char MSG_INFO_FILAMENT_XDIFF_EN[] PROGMEM = "Fil. Xd:";
 const char * const MSG_INFO_FILAMENT_XDIFF_LANG_TABLE[1] PROGMEM = {
 	MSG_INFO_FILAMENT_XDIFF_EN
 };
@@ -1347,18 +621,8 @@ const char * const MSG_INIT_SDCARD_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_INSERT_FILAMENT_EN[] PROGMEM = "Insert filament";
-const char MSG_INSERT_FILAMENT_CZ[] PROGMEM = "Vlozte filament";
-const char MSG_INSERT_FILAMENT_IT[] PROGMEM = "Inserire filamento";
-const char MSG_INSERT_FILAMENT_ES[] PROGMEM = "Introducir filamento";
-const char MSG_INSERT_FILAMENT_PL[] PROGMEM = "Wprowadz filament";
-const char MSG_INSERT_FILAMENT_DE[] PROGMEM = "Filament einlegen";
-const char * const MSG_INSERT_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_INSERT_FILAMENT_EN,
-	MSG_INSERT_FILAMENT_CZ,
-	MSG_INSERT_FILAMENT_IT,
-	MSG_INSERT_FILAMENT_ES,
-	MSG_INSERT_FILAMENT_PL,
-	MSG_INSERT_FILAMENT_DE
+const char * const MSG_INSERT_FILAMENT_LANG_TABLE[1] PROGMEM = {
+	MSG_INSERT_FILAMENT_EN
 };
 
 const char MSG_INVALID_EXTRUDER_EN[] PROGMEM = "Invalid extruder";
@@ -1367,24 +631,16 @@ const char * const MSG_INVALID_EXTRUDER_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_KILLED_EN[] PROGMEM = "KILLED. ";
-const char MSG_KILLED_IT[] PROGMEM = "IN TILT.";
-const char MSG_KILLED_ES[] PROGMEM = "PARADA DE EMERGENCIA";
-const char MSG_KILLED_DE[] PROGMEM = "ABGEBROCHEN. ";
-const char * const MSG_KILLED_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_KILLED_EN,
-	MSG_KILLED_EN,
-	MSG_KILLED_IT,
-	MSG_KILLED_ES,
-	MSG_KILLED_EN,
-	MSG_KILLED_DE
+const char * const MSG_KILLED_LANG_TABLE[1] PROGMEM = {
+	MSG_KILLED_EN
 };
 
 const char MSG_LANGUAGE_NAME_EN[] PROGMEM = "English";
-const char MSG_LANGUAGE_NAME_CZ[] PROGMEM = "Cestina";
-const char MSG_LANGUAGE_NAME_IT[] PROGMEM = "Italiano";
-const char MSG_LANGUAGE_NAME_ES[] PROGMEM = "Espanol";
-const char MSG_LANGUAGE_NAME_PL[] PROGMEM = "Polski";
-const char MSG_LANGUAGE_NAME_DE[] PROGMEM = "Deutsch";
+const char MSG_LANGUAGE_NAME_CZ[] PROGMEM = "cz";
+const char MSG_LANGUAGE_NAME_IT[] PROGMEM = "it";
+const char MSG_LANGUAGE_NAME_ES[] PROGMEM = "es";
+const char MSG_LANGUAGE_NAME_PL[] PROGMEM = "pl";
+const char MSG_LANGUAGE_NAME_DE[] PROGMEM = "de";
 const char * const MSG_LANGUAGE_NAME_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_LANGUAGE_NAME_EN,
 	MSG_LANGUAGE_NAME_CZ,
@@ -1395,63 +651,23 @@ const char * const MSG_LANGUAGE_NAME_LANG_TABLE[LANG_NUM] PROGMEM = {
 };
 
 const char MSG_LANGUAGE_SELECT_EN[] PROGMEM = "Select language";
-const char MSG_LANGUAGE_SELECT_CZ[] PROGMEM = "Vyber jazyka";
-const char MSG_LANGUAGE_SELECT_IT[] PROGMEM = "Seleziona lingua";
-const char MSG_LANGUAGE_SELECT_ES[] PROGMEM = "Cambiae el idioma";
-const char MSG_LANGUAGE_SELECT_PL[] PROGMEM = "Wybor jezyka";
-const char MSG_LANGUAGE_SELECT_DE[] PROGMEM = "Waehle Sprache";
-const char * const MSG_LANGUAGE_SELECT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_LANGUAGE_SELECT_EN,
-	MSG_LANGUAGE_SELECT_CZ,
-	MSG_LANGUAGE_SELECT_IT,
-	MSG_LANGUAGE_SELECT_ES,
-	MSG_LANGUAGE_SELECT_PL,
-	MSG_LANGUAGE_SELECT_DE
+const char * const MSG_LANGUAGE_SELECT_LANG_TABLE[1] PROGMEM = {
+	MSG_LANGUAGE_SELECT_EN
 };
 
 const char MSG_LOADING_COLOR_EN[] PROGMEM = "Loading color";
-const char MSG_LOADING_COLOR_CZ[] PROGMEM = "Cisteni barvy";
-const char MSG_LOADING_COLOR_IT[] PROGMEM = "Caricando colore";
-const char MSG_LOADING_COLOR_ES[] PROGMEM = "Cambiando color";
-const char MSG_LOADING_COLOR_PL[] PROGMEM = "Czyszcz. koloru";
-const char MSG_LOADING_COLOR_DE[] PROGMEM = "Lade Farbe";
-const char * const MSG_LOADING_COLOR_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_LOADING_COLOR_EN,
-	MSG_LOADING_COLOR_CZ,
-	MSG_LOADING_COLOR_IT,
-	MSG_LOADING_COLOR_ES,
-	MSG_LOADING_COLOR_PL,
-	MSG_LOADING_COLOR_DE
+const char * const MSG_LOADING_COLOR_LANG_TABLE[1] PROGMEM = {
+	MSG_LOADING_COLOR_EN
 };
 
 const char MSG_LOADING_FILAMENT_EN[] PROGMEM = "Loading filament";
-const char MSG_LOADING_FILAMENT_CZ[] PROGMEM = "Zavadeni filamentu";
-const char MSG_LOADING_FILAMENT_IT[] PROGMEM = "Caricando filam.";
-const char MSG_LOADING_FILAMENT_ES[] PROGMEM = "Introduciendo filam.";
-const char MSG_LOADING_FILAMENT_PL[] PROGMEM = "Wprow. filamentu";
-const char MSG_LOADING_FILAMENT_DE[] PROGMEM = "Filament leadt";
-const char * const MSG_LOADING_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_LOADING_FILAMENT_EN,
-	MSG_LOADING_FILAMENT_CZ,
-	MSG_LOADING_FILAMENT_IT,
-	MSG_LOADING_FILAMENT_ES,
-	MSG_LOADING_FILAMENT_PL,
-	MSG_LOADING_FILAMENT_DE
+const char * const MSG_LOADING_FILAMENT_LANG_TABLE[1] PROGMEM = {
+	MSG_LOADING_FILAMENT_EN
 };
 
 const char MSG_LOAD_ALL_EN[] PROGMEM = "Load all";
-const char MSG_LOAD_ALL_CZ[] PROGMEM = "Zavest vse";
-const char MSG_LOAD_ALL_IT[] PROGMEM = "Caricare tutti";
-const char MSG_LOAD_ALL_ES[] PROGMEM = "Intr. todos fil.";
-const char MSG_LOAD_ALL_PL[] PROGMEM = "Zalad. wszystkie";
-const char MSG_LOAD_ALL_DE[] PROGMEM = "Alle laden";
-const char * const MSG_LOAD_ALL_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_LOAD_ALL_EN,
-	MSG_LOAD_ALL_CZ,
-	MSG_LOAD_ALL_IT,
-	MSG_LOAD_ALL_ES,
-	MSG_LOAD_ALL_PL,
-	MSG_LOAD_ALL_DE
+const char * const MSG_LOAD_ALL_LANG_TABLE[1] PROGMEM = {
+	MSG_LOAD_ALL_EN
 };
 
 const char MSG_LOAD_EPROM_EN[] PROGMEM = "Load memory";
@@ -1460,93 +676,33 @@ const char * const MSG_LOAD_EPROM_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_LOAD_FILAMENT_EN[] PROGMEM = "Load filament";
-const char MSG_LOAD_FILAMENT_CZ[] PROGMEM = "Zavest filament";
-const char MSG_LOAD_FILAMENT_IT[] PROGMEM = "Carica filamento";
-const char MSG_LOAD_FILAMENT_ES[] PROGMEM = "Introducir filam.";
-const char MSG_LOAD_FILAMENT_PL[] PROGMEM = "Wprowadz filament";
-const char MSG_LOAD_FILAMENT_DE[] PROGMEM = "Filament laden";
-const char * const MSG_LOAD_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_LOAD_FILAMENT_EN,
-	MSG_LOAD_FILAMENT_CZ,
-	MSG_LOAD_FILAMENT_IT,
-	MSG_LOAD_FILAMENT_ES,
-	MSG_LOAD_FILAMENT_PL,
-	MSG_LOAD_FILAMENT_DE
+const char * const MSG_LOAD_FILAMENT_LANG_TABLE[1] PROGMEM = {
+	MSG_LOAD_FILAMENT_EN
 };
 
 const char MSG_LOAD_FILAMENT_1_EN[] PROGMEM = "Load filament 1";
-const char MSG_LOAD_FILAMENT_1_CZ[] PROGMEM = "Zavest filament 1";
-const char MSG_LOAD_FILAMENT_1_IT[] PROGMEM = "Caricare fil. 1";
-const char MSG_LOAD_FILAMENT_1_ES[] PROGMEM = "Introducir fil. 1";
-const char MSG_LOAD_FILAMENT_1_PL[] PROGMEM = "Zaladowac fil. 1";
-const char MSG_LOAD_FILAMENT_1_DE[] PROGMEM = "Filament 1 laden";
-const char * const MSG_LOAD_FILAMENT_1_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_LOAD_FILAMENT_1_EN,
-	MSG_LOAD_FILAMENT_1_CZ,
-	MSG_LOAD_FILAMENT_1_IT,
-	MSG_LOAD_FILAMENT_1_ES,
-	MSG_LOAD_FILAMENT_1_PL,
-	MSG_LOAD_FILAMENT_1_DE
+const char * const MSG_LOAD_FILAMENT_1_LANG_TABLE[1] PROGMEM = {
+	MSG_LOAD_FILAMENT_1_EN
 };
 
 const char MSG_LOAD_FILAMENT_2_EN[] PROGMEM = "Load filament 2";
-const char MSG_LOAD_FILAMENT_2_CZ[] PROGMEM = "Zavest filament 2";
-const char MSG_LOAD_FILAMENT_2_IT[] PROGMEM = "Caricare fil. 2";
-const char MSG_LOAD_FILAMENT_2_ES[] PROGMEM = "Introducir fil. 2";
-const char MSG_LOAD_FILAMENT_2_PL[] PROGMEM = "Zaladowac fil. 2";
-const char MSG_LOAD_FILAMENT_2_DE[] PROGMEM = "Filament 2 laden";
-const char * const MSG_LOAD_FILAMENT_2_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_LOAD_FILAMENT_2_EN,
-	MSG_LOAD_FILAMENT_2_CZ,
-	MSG_LOAD_FILAMENT_2_IT,
-	MSG_LOAD_FILAMENT_2_ES,
-	MSG_LOAD_FILAMENT_2_PL,
-	MSG_LOAD_FILAMENT_2_DE
+const char * const MSG_LOAD_FILAMENT_2_LANG_TABLE[1] PROGMEM = {
+	MSG_LOAD_FILAMENT_2_EN
 };
 
 const char MSG_LOAD_FILAMENT_3_EN[] PROGMEM = "Load filament 3";
-const char MSG_LOAD_FILAMENT_3_CZ[] PROGMEM = "Zavest filament 3";
-const char MSG_LOAD_FILAMENT_3_IT[] PROGMEM = "Caricare fil. 3";
-const char MSG_LOAD_FILAMENT_3_ES[] PROGMEM = "Introducir fil. 3";
-const char MSG_LOAD_FILAMENT_3_PL[] PROGMEM = "Zaladowac fil. 3";
-const char MSG_LOAD_FILAMENT_3_DE[] PROGMEM = "Filament 3 laden";
-const char * const MSG_LOAD_FILAMENT_3_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_LOAD_FILAMENT_3_EN,
-	MSG_LOAD_FILAMENT_3_CZ,
-	MSG_LOAD_FILAMENT_3_IT,
-	MSG_LOAD_FILAMENT_3_ES,
-	MSG_LOAD_FILAMENT_3_PL,
-	MSG_LOAD_FILAMENT_3_DE
+const char * const MSG_LOAD_FILAMENT_3_LANG_TABLE[1] PROGMEM = {
+	MSG_LOAD_FILAMENT_3_EN
 };
 
 const char MSG_LOAD_FILAMENT_4_EN[] PROGMEM = "Load filament 4";
-const char MSG_LOAD_FILAMENT_4_CZ[] PROGMEM = "Zavest filament 4";
-const char MSG_LOAD_FILAMENT_4_IT[] PROGMEM = "Caricare fil. 4";
-const char MSG_LOAD_FILAMENT_4_ES[] PROGMEM = "Introducir fil. 4";
-const char MSG_LOAD_FILAMENT_4_PL[] PROGMEM = "Zaladowac fil. 4";
-const char MSG_LOAD_FILAMENT_4_DE[] PROGMEM = "Filament 4 laden";
-const char * const MSG_LOAD_FILAMENT_4_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_LOAD_FILAMENT_4_EN,
-	MSG_LOAD_FILAMENT_4_CZ,
-	MSG_LOAD_FILAMENT_4_IT,
-	MSG_LOAD_FILAMENT_4_ES,
-	MSG_LOAD_FILAMENT_4_PL,
-	MSG_LOAD_FILAMENT_4_DE
+const char * const MSG_LOAD_FILAMENT_4_LANG_TABLE[1] PROGMEM = {
+	MSG_LOAD_FILAMENT_4_EN
 };
 
 const char MSG_LOOSE_PULLEY_EN[] PROGMEM = "Loose pulley";
-const char MSG_LOOSE_PULLEY_CZ[] PROGMEM = "Uvolnena remenicka";
-const char MSG_LOOSE_PULLEY_IT[] PROGMEM = "Puleggia lenta";
-const char MSG_LOOSE_PULLEY_ES[] PROGMEM = "Polea suelta";
-const char MSG_LOOSE_PULLEY_PL[] PROGMEM = "Kolo pasowe";
-const char MSG_LOOSE_PULLEY_DE[] PROGMEM = "Lose Riemenscheibe";
-const char * const MSG_LOOSE_PULLEY_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_LOOSE_PULLEY_EN,
-	MSG_LOOSE_PULLEY_CZ,
-	MSG_LOOSE_PULLEY_IT,
-	MSG_LOOSE_PULLEY_ES,
-	MSG_LOOSE_PULLEY_PL,
-	MSG_LOOSE_PULLEY_DE
+const char * const MSG_LOOSE_PULLEY_LANG_TABLE[1] PROGMEM = {
+	MSG_LOOSE_PULLEY_EN
 };
 
 const char MSG_M104_INVALID_EXTRUDER_EN[] PROGMEM = "M104 Invalid extruder ";
@@ -1590,33 +746,13 @@ const char * const MSG_M221_INVALID_EXTRUDER_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_MAIN_EN[] PROGMEM = "Main";
-const char MSG_MAIN_CZ[] PROGMEM = "Hlavni nabidka";
-const char MSG_MAIN_IT[] PROGMEM = "Menu principale";
-const char MSG_MAIN_ES[] PROGMEM = "Menu principal";
-const char MSG_MAIN_PL[] PROGMEM = "Menu glowne";
-const char MSG_MAIN_DE[] PROGMEM = "Hauptmenue";
-const char * const MSG_MAIN_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_MAIN_EN,
-	MSG_MAIN_CZ,
-	MSG_MAIN_IT,
-	MSG_MAIN_ES,
-	MSG_MAIN_PL,
-	MSG_MAIN_DE
+const char * const MSG_MAIN_LANG_TABLE[1] PROGMEM = {
+	MSG_MAIN_EN
 };
 
 const char MSG_MARK_FIL_EN[] PROGMEM = "Mark filament 100mm from extruder body. Click when done.";
-const char MSG_MARK_FIL_CZ[] PROGMEM = "Oznacte filament 100 mm od tela extruderu a po te potvrdte tlacitkem.";
-const char MSG_MARK_FIL_IT[] PROGMEM = "Segnare il filamento a 100 mm di distanza dal corpo dell'estrusore. Click per continuare.";
-const char MSG_MARK_FIL_ES[] PROGMEM = "Marque el filamento 100 mm por encima del final del extrusor. Hacer clic una vez terminado.";
-const char MSG_MARK_FIL_PL[] PROGMEM = "Prosze oznaczyc filament 100 mm od ciala ekstrudera. Potwierdzic przyciskiem.";
-const char MSG_MARK_FIL_DE[] PROGMEM = "Filament 100mm vom Extrudergehaeuse markieren. Klicken wenn Fertig.";
-const char * const MSG_MARK_FIL_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_MARK_FIL_EN,
-	MSG_MARK_FIL_CZ,
-	MSG_MARK_FIL_IT,
-	MSG_MARK_FIL_ES,
-	MSG_MARK_FIL_PL,
-	MSG_MARK_FIL_DE
+const char * const MSG_MARK_FIL_LANG_TABLE[1] PROGMEM = {
+	MSG_MARK_FIL_EN
 };
 
 const char MSG_MAX_EN[] PROGMEM = " \002 Max";
@@ -1625,58 +761,22 @@ const char * const MSG_MAX_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_EN[] PROGMEM = "Measuring reference height of calibration point";
-const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_CZ[] PROGMEM = "Merim referencni vysku kalibracniho bodu";
-const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_IT[] PROGMEM = "Misurare l'altezza di riferimento del punto di calibrazione";
-const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_ES[] PROGMEM = "Medir la altura del punto de la calibracion";
-const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_PL[] PROGMEM = "Okreslam wysokosc odniesienia punktu kalibracyjnego";
-const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_DE[] PROGMEM = "Messen der Referenzhoehe des Kalibrierpunktes";
-const char * const MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_EN,
-	MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_CZ,
-	MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_IT,
-	MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_ES,
-	MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_PL,
-	MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_DE
+const char * const MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_LANG_TABLE[1] PROGMEM = {
+	MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_EN
 };
 
 const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2_EN[] PROGMEM = " of 9";
-const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2_CZ[] PROGMEM = " z 9";
-const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2_IT[] PROGMEM = " su 9";
-const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2_ES[] PROGMEM = " de 9";
-const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2_PL[] PROGMEM = " z 9";
-const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2_DE[] PROGMEM = " von 9";
-const char * const MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2_EN,
-	MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2_CZ,
-	MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2_IT,
-	MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2_ES,
-	MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2_PL,
-	MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2_DE
+const char * const MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2_LANG_TABLE[1] PROGMEM = {
+	MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2_EN
 };
 
 const char MSG_MENU_CALIBRATION_EN[] PROGMEM = "Calibration";
-const char MSG_MENU_CALIBRATION_CZ[] PROGMEM = "Kalibrace";
-const char MSG_MENU_CALIBRATION_IT[] PROGMEM = "Calibrazione";
-const char MSG_MENU_CALIBRATION_ES[] PROGMEM = "Calibracion";
-const char MSG_MENU_CALIBRATION_PL[] PROGMEM = "Kalibracja";
-const char MSG_MENU_CALIBRATION_DE[] PROGMEM = "Kalibrierung";
-const char * const MSG_MENU_CALIBRATION_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_MENU_CALIBRATION_EN,
-	MSG_MENU_CALIBRATION_CZ,
-	MSG_MENU_CALIBRATION_IT,
-	MSG_MENU_CALIBRATION_ES,
-	MSG_MENU_CALIBRATION_PL,
-	MSG_MENU_CALIBRATION_DE
+const char * const MSG_MENU_CALIBRATION_LANG_TABLE[1] PROGMEM = {
+	MSG_MENU_CALIBRATION_EN
 };
 
 const char MSG_MESH_BED_LEVELING_EN[] PROGMEM = "Mesh Bed Leveling";
-const char MSG_MESH_BED_LEVELING_IT[] PROGMEM = "Mesh livel. letto";
-const char * const MSG_MESH_BED_LEVELING_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_MESH_BED_LEVELING_EN,
-	MSG_MESH_BED_LEVELING_EN,
-	MSG_MESH_BED_LEVELING_IT,
-	MSG_MESH_BED_LEVELING_EN,
-	MSG_MESH_BED_LEVELING_EN,
+const char * const MSG_MESH_BED_LEVELING_LANG_TABLE[1] PROGMEM = {
 	MSG_MESH_BED_LEVELING_EN
 };
 
@@ -1706,193 +806,68 @@ const char * const MSG_MOVE_1MM_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_MOVE_AXIS_EN[] PROGMEM = "Move axis";
-const char MSG_MOVE_AXIS_CZ[] PROGMEM = "Posunout osu";
-const char MSG_MOVE_AXIS_IT[] PROGMEM = "Muovi asse";
-const char MSG_MOVE_AXIS_ES[] PROGMEM = "Mover ejes";
-const char MSG_MOVE_AXIS_PL[] PROGMEM = "Ruch osi";
-const char MSG_MOVE_AXIS_DE[] PROGMEM = "Achsbewegung";
-const char * const MSG_MOVE_AXIS_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_MOVE_AXIS_EN,
-	MSG_MOVE_AXIS_CZ,
-	MSG_MOVE_AXIS_IT,
-	MSG_MOVE_AXIS_ES,
-	MSG_MOVE_AXIS_PL,
-	MSG_MOVE_AXIS_DE
+const char * const MSG_MOVE_AXIS_LANG_TABLE[1] PROGMEM = {
+	MSG_MOVE_AXIS_EN
 };
 
 const char MSG_MOVE_CARRIAGE_TO_THE_TOP_EN[] PROGMEM = "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done.";
-const char MSG_MOVE_CARRIAGE_TO_THE_TOP_CZ[] PROGMEM = "Kalibrace XYZ. Otacenim tlacitka posunte Z osu az k~hornimu dorazu. Potvrdte tlacitkem.";
-const char MSG_MOVE_CARRIAGE_TO_THE_TOP_IT[] PROGMEM = "Calibrazione XYZ. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare.";
-const char MSG_MOVE_CARRIAGE_TO_THE_TOP_ES[] PROGMEM = "Calibrando XYZ. Gira el boton para subir el carro Z hasta golpe piezas superioras. Despues haz clic.";
-const char MSG_MOVE_CARRIAGE_TO_THE_TOP_PL[] PROGMEM = "Kalibracja XYZ. Przekrec galke, aby przesunac os Z do gornych krancowek. Nacisnij, by potwierdzic.";
-const char MSG_MOVE_CARRIAGE_TO_THE_TOP_DE[] PROGMEM = "Kalibrieren von XYZ. Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Klicken wenn ganz oben.";
-const char * const MSG_MOVE_CARRIAGE_TO_THE_TOP_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_MOVE_CARRIAGE_TO_THE_TOP_EN,
-	MSG_MOVE_CARRIAGE_TO_THE_TOP_CZ,
-	MSG_MOVE_CARRIAGE_TO_THE_TOP_IT,
-	MSG_MOVE_CARRIAGE_TO_THE_TOP_ES,
-	MSG_MOVE_CARRIAGE_TO_THE_TOP_PL,
-	MSG_MOVE_CARRIAGE_TO_THE_TOP_DE
+const char * const MSG_MOVE_CARRIAGE_TO_THE_TOP_LANG_TABLE[1] PROGMEM = {
+	MSG_MOVE_CARRIAGE_TO_THE_TOP_EN
 };
 
 const char MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_EN[] PROGMEM = "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done.";
-const char MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_CZ[] PROGMEM = "Kalibrace Z. Otacenim tlacitka posunte Z osu az k~hornimu dorazu. Potvrdte tlacitkem.";
-const char MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_IT[] PROGMEM = "Calibrazione Z. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare.";
-const char MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_ES[] PROGMEM = "Calibrando Z. Gira el boton para subir el carro Z hasta golpe piezas superioras. Despues haz clic.";
-const char MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_PL[] PROGMEM = "Kalibracja Z. Przekrec galke, aby przesunac os Z do gornych krancowek. Nacisnij, by potwierdzic.";
-const char MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_DE[] PROGMEM = "Kalibrieren von Z. Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Klicken wenn ganz oben.";
-const char * const MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_EN,
-	MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_CZ,
-	MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_IT,
-	MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_ES,
-	MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_PL,
-	MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_DE
+const char * const MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_LANG_TABLE[1] PROGMEM = {
+	MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_EN
 };
 
 const char MSG_MOVE_E_EN[] PROGMEM = "Extruder";
-const char MSG_MOVE_E_IT[] PROGMEM = "Muovi Estrusore";
-const char MSG_MOVE_E_ES[] PROGMEM = "Extruir";
-const char * const MSG_MOVE_E_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_MOVE_E_EN,
-	MSG_MOVE_E_EN,
-	MSG_MOVE_E_IT,
-	MSG_MOVE_E_ES,
-	MSG_MOVE_E_EN,
+const char * const MSG_MOVE_E_LANG_TABLE[1] PROGMEM = {
 	MSG_MOVE_E_EN
 };
 
 const char MSG_MOVE_X_EN[] PROGMEM = "Move X";
-const char MSG_MOVE_X_CZ[] PROGMEM = "Posunout X";
-const char MSG_MOVE_X_IT[] PROGMEM = "Muovi X";
-const char MSG_MOVE_X_ES[] PROGMEM = "Mover X";
-const char MSG_MOVE_X_PL[] PROGMEM = "Przesunac X";
-const char MSG_MOVE_X_DE[] PROGMEM = "Bewege X";
-const char * const MSG_MOVE_X_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_MOVE_X_EN,
-	MSG_MOVE_X_CZ,
-	MSG_MOVE_X_IT,
-	MSG_MOVE_X_ES,
-	MSG_MOVE_X_PL,
-	MSG_MOVE_X_DE
+const char * const MSG_MOVE_X_LANG_TABLE[1] PROGMEM = {
+	MSG_MOVE_X_EN
 };
 
 const char MSG_MOVE_Y_EN[] PROGMEM = "Move Y";
-const char MSG_MOVE_Y_CZ[] PROGMEM = "Posunout Y";
-const char MSG_MOVE_Y_IT[] PROGMEM = "Muovi Y";
-const char MSG_MOVE_Y_ES[] PROGMEM = "Mover Y";
-const char MSG_MOVE_Y_PL[] PROGMEM = "Przesunac Y";
-const char MSG_MOVE_Y_DE[] PROGMEM = "Bewege Y";
-const char * const MSG_MOVE_Y_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_MOVE_Y_EN,
-	MSG_MOVE_Y_CZ,
-	MSG_MOVE_Y_IT,
-	MSG_MOVE_Y_ES,
-	MSG_MOVE_Y_PL,
-	MSG_MOVE_Y_DE
+const char * const MSG_MOVE_Y_LANG_TABLE[1] PROGMEM = {
+	MSG_MOVE_Y_EN
 };
 
 const char MSG_MOVE_Z_EN[] PROGMEM = "Move Z";
-const char MSG_MOVE_Z_CZ[] PROGMEM = "Posunout Z";
-const char MSG_MOVE_Z_IT[] PROGMEM = "Muovi Z";
-const char MSG_MOVE_Z_ES[] PROGMEM = "Mover Z";
-const char MSG_MOVE_Z_PL[] PROGMEM = "Przesunac Z";
-const char MSG_MOVE_Z_DE[] PROGMEM = "Bewege Z";
-const char * const MSG_MOVE_Z_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_MOVE_Z_EN,
-	MSG_MOVE_Z_CZ,
-	MSG_MOVE_Z_IT,
-	MSG_MOVE_Z_ES,
-	MSG_MOVE_Z_PL,
-	MSG_MOVE_Z_DE
+const char * const MSG_MOVE_Z_LANG_TABLE[1] PROGMEM = {
+	MSG_MOVE_Z_EN
 };
 
 const char MSG_NEW_FIRMWARE_AVAILABLE_EN[] PROGMEM = "New firmware version available:";
-const char MSG_NEW_FIRMWARE_AVAILABLE_CZ[] PROGMEM = "Vysla nova verze firmware:";
-const char MSG_NEW_FIRMWARE_AVAILABLE_IT[] PROGMEM = "Nuova versione del firmware disponibile";
-const char MSG_NEW_FIRMWARE_AVAILABLE_ES[] PROGMEM = "Nuevo firmware disponible:";
-const char MSG_NEW_FIRMWARE_AVAILABLE_PL[] PROGMEM = "Wyszla nowa wersja firmware:";
-const char MSG_NEW_FIRMWARE_AVAILABLE_DE[] PROGMEM = "Neue Firmware Version verfuegbar:";
-const char * const MSG_NEW_FIRMWARE_AVAILABLE_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_NEW_FIRMWARE_AVAILABLE_EN,
-	MSG_NEW_FIRMWARE_AVAILABLE_CZ,
-	MSG_NEW_FIRMWARE_AVAILABLE_IT,
-	MSG_NEW_FIRMWARE_AVAILABLE_ES,
-	MSG_NEW_FIRMWARE_AVAILABLE_PL,
-	MSG_NEW_FIRMWARE_AVAILABLE_DE
+const char * const MSG_NEW_FIRMWARE_AVAILABLE_LANG_TABLE[1] PROGMEM = {
+	MSG_NEW_FIRMWARE_AVAILABLE_EN
 };
 
 const char MSG_NEW_FIRMWARE_PLEASE_UPGRADE_EN[] PROGMEM = "Please upgrade.";
-const char MSG_NEW_FIRMWARE_PLEASE_UPGRADE_CZ[] PROGMEM = "Prosim aktualizujte.";
-const char MSG_NEW_FIRMWARE_PLEASE_UPGRADE_IT[] PROGMEM = "Prega aggiorna.";
-const char MSG_NEW_FIRMWARE_PLEASE_UPGRADE_ES[] PROGMEM = "Actualizar por favor";
-const char MSG_NEW_FIRMWARE_PLEASE_UPGRADE_PL[] PROGMEM = "Prosze zaktualizowac";
-const char MSG_NEW_FIRMWARE_PLEASE_UPGRADE_DE[] PROGMEM = "Bitte aktualisieren.";
-const char * const MSG_NEW_FIRMWARE_PLEASE_UPGRADE_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_NEW_FIRMWARE_PLEASE_UPGRADE_EN,
-	MSG_NEW_FIRMWARE_PLEASE_UPGRADE_CZ,
-	MSG_NEW_FIRMWARE_PLEASE_UPGRADE_IT,
-	MSG_NEW_FIRMWARE_PLEASE_UPGRADE_ES,
-	MSG_NEW_FIRMWARE_PLEASE_UPGRADE_PL,
-	MSG_NEW_FIRMWARE_PLEASE_UPGRADE_DE
+const char * const MSG_NEW_FIRMWARE_PLEASE_UPGRADE_LANG_TABLE[1] PROGMEM = {
+	MSG_NEW_FIRMWARE_PLEASE_UPGRADE_EN
 };
 
 const char MSG_NO_EN[] PROGMEM = "No";
-const char MSG_NO_CZ[] PROGMEM = "Ne";
-const char MSG_NO_PL[] PROGMEM = "Nie";
-const char MSG_NO_DE[] PROGMEM = "Nein";
-const char * const MSG_NO_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_NO_EN,
-	MSG_NO_CZ,
-	MSG_NO_EN,
-	MSG_NO_EN,
-	MSG_NO_PL,
-	MSG_NO_DE
+const char * const MSG_NO_LANG_TABLE[1] PROGMEM = {
+	MSG_NO_EN
 };
 
 const char MSG_NOT_COLOR_EN[] PROGMEM = "Color not clear";
-const char MSG_NOT_COLOR_CZ[] PROGMEM = "Barva neni cista";
-const char MSG_NOT_COLOR_IT[] PROGMEM = "Colore non puro";
-const char MSG_NOT_COLOR_ES[] PROGMEM = "Color no homogeneo";
-const char MSG_NOT_COLOR_PL[] PROGMEM = "Kolor zanieczysz.";
-const char MSG_NOT_COLOR_DE[] PROGMEM = "Farbe unklar";
-const char * const MSG_NOT_COLOR_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_NOT_COLOR_EN,
-	MSG_NOT_COLOR_CZ,
-	MSG_NOT_COLOR_IT,
-	MSG_NOT_COLOR_ES,
-	MSG_NOT_COLOR_PL,
-	MSG_NOT_COLOR_DE
+const char * const MSG_NOT_COLOR_LANG_TABLE[1] PROGMEM = {
+	MSG_NOT_COLOR_EN
 };
 
 const char MSG_NOT_LOADED_EN[] PROGMEM = "Filament not loaded";
-const char MSG_NOT_LOADED_CZ[] PROGMEM = "Filament nezaveden";
-const char MSG_NOT_LOADED_IT[] PROGMEM = "Fil. non caricato";
-const char MSG_NOT_LOADED_ES[] PROGMEM = "Fil. no introducido";
-const char MSG_NOT_LOADED_PL[] PROGMEM = "Brak filamentu";
-const char MSG_NOT_LOADED_DE[] PROGMEM = "Fil. nicht geladen";
-const char * const MSG_NOT_LOADED_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_NOT_LOADED_EN,
-	MSG_NOT_LOADED_CZ,
-	MSG_NOT_LOADED_IT,
-	MSG_NOT_LOADED_ES,
-	MSG_NOT_LOADED_PL,
-	MSG_NOT_LOADED_DE
+const char * const MSG_NOT_LOADED_LANG_TABLE[1] PROGMEM = {
+	MSG_NOT_LOADED_EN
 };
 
 const char MSG_NOZZLE_EN[] PROGMEM = "Nozzle";
-const char MSG_NOZZLE_CZ[] PROGMEM = "Tryska";
-const char MSG_NOZZLE_IT[] PROGMEM = "Ugello";
-const char MSG_NOZZLE_ES[] PROGMEM = "Boquilla";
-const char MSG_NOZZLE_PL[] PROGMEM = "Dysza";
-const char MSG_NOZZLE_DE[] PROGMEM = "Duese";
-const char * const MSG_NOZZLE_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_NOZZLE_EN,
-	MSG_NOZZLE_CZ,
-	MSG_NOZZLE_IT,
-	MSG_NOZZLE_ES,
-	MSG_NOZZLE_PL,
-	MSG_NOZZLE_DE
+const char * const MSG_NOZZLE_LANG_TABLE[1] PROGMEM = {
+	MSG_NOZZLE_EN
 };
 
 const char MSG_NOZZLE1_EN[] PROGMEM = "Nozzle2";
@@ -1906,31 +881,13 @@ const char * const MSG_NOZZLE2_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_NO_CARD_EN[] PROGMEM = "No SD card";
-const char MSG_NO_CARD_CZ[] PROGMEM = "Zadna SD karta";
-const char MSG_NO_CARD_IT[] PROGMEM = "Nessuna SD";
-const char MSG_NO_CARD_ES[] PROGMEM = "No hay tarjeta SD";
-const char MSG_NO_CARD_PL[] PROGMEM = "Brak karty SD";
-const char MSG_NO_CARD_DE[] PROGMEM = "Keine SD Karte";
-const char * const MSG_NO_CARD_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_NO_CARD_EN,
-	MSG_NO_CARD_CZ,
-	MSG_NO_CARD_IT,
-	MSG_NO_CARD_ES,
-	MSG_NO_CARD_PL,
-	MSG_NO_CARD_DE
+const char * const MSG_NO_CARD_LANG_TABLE[1] PROGMEM = {
+	MSG_NO_CARD_EN
 };
 
 const char MSG_NO_MOVE_EN[] PROGMEM = "No move.";
-const char MSG_NO_MOVE_IT[] PROGMEM = "Nessun movimento.";
-const char MSG_NO_MOVE_ES[] PROGMEM = "Sin movimiento";
-const char MSG_NO_MOVE_DE[] PROGMEM = "Keine Bewegung.";
-const char * const MSG_NO_MOVE_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_NO_MOVE_EN,
-	MSG_NO_MOVE_EN,
-	MSG_NO_MOVE_IT,
-	MSG_NO_MOVE_ES,
-	MSG_NO_MOVE_EN,
-	MSG_NO_MOVE_DE
+const char * const MSG_NO_MOVE_LANG_TABLE[1] PROGMEM = {
+	MSG_NO_MOVE_EN
 };
 
 const char MSG_OFF_EN[] PROGMEM = "Off";
@@ -1949,122 +906,43 @@ const char * const MSG_ON_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_PAPER_EN[] PROGMEM = "Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately.";
-const char MSG_PAPER_CZ[] PROGMEM = "Umistete list papiru na podlozku a udrzujte jej pod tryskou behem mereni prvnich 4 bodu. Pokud tryska zachyti papir, vypnete tiskarnu.";
-const char MSG_PAPER_IT[] PROGMEM = "Porre un foglio sotto l'ugello durante la calibrazione dei primi 4 punti. In caso l'ugello muova il foglio spegnere prontamente la stampante.";
-const char MSG_PAPER_ES[] PROGMEM = "Colocar una hoja de papel sobre la superficie de impresion durante la calibracion de los primeros 4 puntos. Si la boquilla mueve el papel, apagar impresora inmediatamente.";
-const char MSG_PAPER_PL[] PROGMEM = "Umiesc kartke papieru na podkladce i trzymaj pod dysza podczas pomiaru pierwszych 4 punktow. Jesli dysza zahaczy o papier, wylacz drukarke.";
-const char MSG_PAPER_DE[] PROGMEM = "Legen ein Blatt Papier unter die Duese waehrend der Kalibrierung der ersten 4 Punkte. Wenn die Duese das Papier einklemmt, Drucker sofort ausschalten";
-const char * const MSG_PAPER_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_PAPER_EN,
-	MSG_PAPER_CZ,
-	MSG_PAPER_IT,
-	MSG_PAPER_ES,
-	MSG_PAPER_PL,
-	MSG_PAPER_DE
+const char * const MSG_PAPER_LANG_TABLE[1] PROGMEM = {
+	MSG_PAPER_EN
 };
 
 const char MSG_PAUSE_PRINT_EN[] PROGMEM = "Pause print";
-const char MSG_PAUSE_PRINT_CZ[] PROGMEM = "Pozastavit tisk";
-const char MSG_PAUSE_PRINT_IT[] PROGMEM = "Metti in pausa";
-const char MSG_PAUSE_PRINT_ES[] PROGMEM = "Pausar impresion";
-const char MSG_PAUSE_PRINT_PL[] PROGMEM = "Przerwac druk";
-const char MSG_PAUSE_PRINT_DE[] PROGMEM = "Druck unterbrech.";
-const char * const MSG_PAUSE_PRINT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_PAUSE_PRINT_EN,
-	MSG_PAUSE_PRINT_CZ,
-	MSG_PAUSE_PRINT_IT,
-	MSG_PAUSE_PRINT_ES,
-	MSG_PAUSE_PRINT_PL,
-	MSG_PAUSE_PRINT_DE
+const char * const MSG_PAUSE_PRINT_LANG_TABLE[1] PROGMEM = {
+	MSG_PAUSE_PRINT_EN
 };
 
 const char MSG_PICK_Z_EN[] PROGMEM = "Pick print";
-const char MSG_PICK_Z_CZ[] PROGMEM = "Vyberte vytisk";
-const char MSG_PICK_Z_ES[] PROGMEM = "Esc. Modelo Adecuado";
-const char MSG_PICK_Z_PL[] PROGMEM = "Vyberte vytisk";
-const char MSG_PICK_Z_DE[] PROGMEM = "Waehle Abdruck";
-const char * const MSG_PICK_Z_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_PICK_Z_EN,
-	MSG_PICK_Z_CZ,
-	MSG_PICK_Z_EN,
-	MSG_PICK_Z_ES,
-	MSG_PICK_Z_PL,
-	MSG_PICK_Z_DE
+const char * const MSG_PICK_Z_LANG_TABLE[1] PROGMEM = {
+	MSG_PICK_Z_EN
 };
 
 const char MSG_PID_EXTRUDER_EN[] PROGMEM = "PID calibration";
-const char MSG_PID_EXTRUDER_CZ[] PROGMEM = "PID kalibrace";
-const char MSG_PID_EXTRUDER_IT[] PROGMEM = "Calibrazione PID";
-const char MSG_PID_EXTRUDER_ES[] PROGMEM = "Calibracion PID";
-const char MSG_PID_EXTRUDER_PL[] PROGMEM = "Kalibracja PID";
-const char MSG_PID_EXTRUDER_DE[] PROGMEM = "PID Kalibrierung";
-const char * const MSG_PID_EXTRUDER_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_PID_EXTRUDER_EN,
-	MSG_PID_EXTRUDER_CZ,
-	MSG_PID_EXTRUDER_IT,
-	MSG_PID_EXTRUDER_ES,
-	MSG_PID_EXTRUDER_PL,
-	MSG_PID_EXTRUDER_DE
+const char * const MSG_PID_EXTRUDER_LANG_TABLE[1] PROGMEM = {
+	MSG_PID_EXTRUDER_EN
 };
 
 const char MSG_PID_FINISHED_EN[] PROGMEM = "PID cal. finished";
-const char MSG_PID_FINISHED_CZ[] PROGMEM = "PID kal. ukoncena";
-const char MSG_PID_FINISHED_IT[] PROGMEM = "Cal. PID completa";
-const char MSG_PID_FINISHED_ES[] PROGMEM = "Cal. PID terminada";
-const char MSG_PID_FINISHED_PL[] PROGMEM = "Kal. PID zakonczona";
-const char MSG_PID_FINISHED_DE[] PROGMEM = "PID Kalib. fertig";
-const char * const MSG_PID_FINISHED_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_PID_FINISHED_EN,
-	MSG_PID_FINISHED_CZ,
-	MSG_PID_FINISHED_IT,
-	MSG_PID_FINISHED_ES,
-	MSG_PID_FINISHED_PL,
-	MSG_PID_FINISHED_DE
+const char * const MSG_PID_FINISHED_LANG_TABLE[1] PROGMEM = {
+	MSG_PID_FINISHED_EN
 };
 
 const char MSG_PID_RUNNING_EN[] PROGMEM = "PID cal.           ";
-const char MSG_PID_RUNNING_CZ[] PROGMEM = "PID kal.           ";
-const char MSG_PID_RUNNING_IT[] PROGMEM = "Cal. PID";
-const char MSG_PID_RUNNING_ES[] PROGMEM = "Cal. PID           ";
-const char MSG_PID_RUNNING_PL[] PROGMEM = "Kal. PID";
-const char MSG_PID_RUNNING_DE[] PROGMEM = "PID Kalib.";
-const char * const MSG_PID_RUNNING_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_PID_RUNNING_EN,
-	MSG_PID_RUNNING_CZ,
-	MSG_PID_RUNNING_IT,
-	MSG_PID_RUNNING_ES,
-	MSG_PID_RUNNING_PL,
-	MSG_PID_RUNNING_DE
+const char * const MSG_PID_RUNNING_LANG_TABLE[1] PROGMEM = {
+	MSG_PID_RUNNING_EN
 };
 
 const char MSG_PINDA_NOT_CALIBRATED_EN[] PROGMEM = "Temperature calibration has not been run yet";
-const char MSG_PINDA_NOT_CALIBRATED_CZ[] PROGMEM = "Tiskarna nebyla teplotne zkalibrovana";
-const char MSG_PINDA_NOT_CALIBRATED_IT[] PROGMEM = "Taratura della temperatura non ancora eseguita";
-const char MSG_PINDA_NOT_CALIBRATED_ES[] PROGMEM = "La temperatura de calibracion no ha sido ajustada";
-const char MSG_PINDA_NOT_CALIBRATED_PL[] PROGMEM = "Cieplna kalibracja nie byla przeprowadzona";
-const char MSG_PINDA_NOT_CALIBRATED_DE[] PROGMEM = "Temperatur wurde nicht kalibriert";
-const char * const MSG_PINDA_NOT_CALIBRATED_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_PINDA_NOT_CALIBRATED_EN,
-	MSG_PINDA_NOT_CALIBRATED_CZ,
-	MSG_PINDA_NOT_CALIBRATED_IT,
-	MSG_PINDA_NOT_CALIBRATED_ES,
-	MSG_PINDA_NOT_CALIBRATED_PL,
-	MSG_PINDA_NOT_CALIBRATED_DE
+const char * const MSG_PINDA_NOT_CALIBRATED_LANG_TABLE[1] PROGMEM = {
+	MSG_PINDA_NOT_CALIBRATED_EN
 };
 
 const char MSG_PINDA_PREHEAT_EN[] PROGMEM = "PINDA Heating";
-const char MSG_PINDA_PREHEAT_CZ[] PROGMEM = "Nahrivani PINDA";
-const char MSG_PINDA_PREHEAT_IT[] PROGMEM = "Riscald. PINDA";
-const char MSG_PINDA_PREHEAT_ES[] PROGMEM = "Calentando PINDA";
-const char MSG_PINDA_PREHEAT_PL[] PROGMEM = "Grzanie PINDA";
-const char MSG_PINDA_PREHEAT_DE[] PROGMEM = "PINDA erwaermen";
-const char * const MSG_PINDA_PREHEAT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_PINDA_PREHEAT_EN,
-	MSG_PINDA_PREHEAT_CZ,
-	MSG_PINDA_PREHEAT_IT,
-	MSG_PINDA_PREHEAT_ES,
-	MSG_PINDA_PREHEAT_PL,
-	MSG_PINDA_PREHEAT_DE
+const char * const MSG_PINDA_PREHEAT_LANG_TABLE[1] PROGMEM = {
+	MSG_PINDA_PREHEAT_EN
 };
 
 const char MSG_PLANNER_BUFFER_BYTES_EN[] PROGMEM = "  PlannerBufferBytes: ";
@@ -2073,18 +951,8 @@ const char * const MSG_PLANNER_BUFFER_BYTES_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_PLEASE_WAIT_EN[] PROGMEM = "Please wait";
-const char MSG_PLEASE_WAIT_CZ[] PROGMEM = "Prosim cekejte";
-const char MSG_PLEASE_WAIT_IT[] PROGMEM = "Aspetta";
-const char MSG_PLEASE_WAIT_ES[] PROGMEM = "Por Favor Esperar";
-const char MSG_PLEASE_WAIT_PL[] PROGMEM = "Prosze czekac";
-const char MSG_PLEASE_WAIT_DE[] PROGMEM = "Bitte warten";
-const char * const MSG_PLEASE_WAIT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_PLEASE_WAIT_EN,
-	MSG_PLEASE_WAIT_CZ,
-	MSG_PLEASE_WAIT_IT,
-	MSG_PLEASE_WAIT_ES,
-	MSG_PLEASE_WAIT_PL,
-	MSG_PLEASE_WAIT_DE
+const char * const MSG_PLEASE_WAIT_LANG_TABLE[1] PROGMEM = {
+	MSG_PLEASE_WAIT_EN
 };
 
 const char MSG_POSITION_UNKNOWN_EN[] PROGMEM = "Home X/Y before Z";
@@ -2098,63 +966,23 @@ const char * const MSG_POWERUP_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_PREHEAT_EN[] PROGMEM = "Preheat";
-const char MSG_PREHEAT_CZ[] PROGMEM = "Predehrev";
-const char MSG_PREHEAT_IT[] PROGMEM = "Preriscalda";
-const char MSG_PREHEAT_ES[] PROGMEM = "Precalentar";
-const char MSG_PREHEAT_PL[] PROGMEM = "Grzanie";
-const char MSG_PREHEAT_DE[] PROGMEM = "Vorwaermen";
-const char * const MSG_PREHEAT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_PREHEAT_EN,
-	MSG_PREHEAT_CZ,
-	MSG_PREHEAT_IT,
-	MSG_PREHEAT_ES,
-	MSG_PREHEAT_PL,
-	MSG_PREHEAT_DE
+const char * const MSG_PREHEAT_LANG_TABLE[1] PROGMEM = {
+	MSG_PREHEAT_EN
 };
 
 const char MSG_PREHEAT_NOZZLE_EN[] PROGMEM = "Preheat the nozzle!";
-const char MSG_PREHEAT_NOZZLE_CZ[] PROGMEM = "Predehrejte trysku!";
-const char MSG_PREHEAT_NOZZLE_IT[] PROGMEM = "Preris. ugello!";
-const char MSG_PREHEAT_NOZZLE_ES[] PROGMEM = "Precalentar extrusor";
-const char MSG_PREHEAT_NOZZLE_PL[] PROGMEM = "Nagrzej dysze!";
-const char MSG_PREHEAT_NOZZLE_DE[] PROGMEM = "Duese Vorwaermen";
-const char * const MSG_PREHEAT_NOZZLE_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_PREHEAT_NOZZLE_EN,
-	MSG_PREHEAT_NOZZLE_CZ,
-	MSG_PREHEAT_NOZZLE_IT,
-	MSG_PREHEAT_NOZZLE_ES,
-	MSG_PREHEAT_NOZZLE_PL,
-	MSG_PREHEAT_NOZZLE_DE
+const char * const MSG_PREHEAT_NOZZLE_LANG_TABLE[1] PROGMEM = {
+	MSG_PREHEAT_NOZZLE_EN
 };
 
 const char MSG_PREPARE_FILAMENT_EN[] PROGMEM = "Prepare new filament";
-const char MSG_PREPARE_FILAMENT_CZ[] PROGMEM = "Pripravte filament";
-const char MSG_PREPARE_FILAMENT_IT[] PROGMEM = "Preparare filamento";
-const char MSG_PREPARE_FILAMENT_ES[] PROGMEM = "Preparar filamento";
-const char MSG_PREPARE_FILAMENT_PL[] PROGMEM = "Przygotuj filament";
-const char MSG_PREPARE_FILAMENT_DE[] PROGMEM = "Filam. bereithalten";
-const char * const MSG_PREPARE_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_PREPARE_FILAMENT_EN,
-	MSG_PREPARE_FILAMENT_CZ,
-	MSG_PREPARE_FILAMENT_IT,
-	MSG_PREPARE_FILAMENT_ES,
-	MSG_PREPARE_FILAMENT_PL,
-	MSG_PREPARE_FILAMENT_DE
+const char * const MSG_PREPARE_FILAMENT_LANG_TABLE[1] PROGMEM = {
+	MSG_PREPARE_FILAMENT_EN
 };
 
 const char MSG_PRESS_EN[] PROGMEM = "and press the knob";
-const char MSG_PRESS_CZ[] PROGMEM = "a stisknete tlacitko";
-const char MSG_PRESS_IT[] PROGMEM = "e cliccare manopola";
-const char MSG_PRESS_ES[] PROGMEM = "Pulsar el mando";
-const char MSG_PRESS_PL[] PROGMEM = "Nacisnij przycisk";
-const char MSG_PRESS_DE[] PROGMEM = "und Knopf druecken";
-const char * const MSG_PRESS_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_PRESS_EN,
-	MSG_PRESS_CZ,
-	MSG_PRESS_IT,
-	MSG_PRESS_ES,
-	MSG_PRESS_PL,
-	MSG_PRESS_DE
+const char * const MSG_PRESS_LANG_TABLE[1] PROGMEM = {
+	MSG_PRESS_EN
 };
 
 const char MSG_PRINTER_DISCONNECTED_EN[] PROGMEM = "Printer disconnected";
@@ -2163,84 +991,33 @@ const char * const MSG_PRINTER_DISCONNECTED_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_PRINT_ABORTED_EN[] PROGMEM = "Print aborted";
-const char MSG_PRINT_ABORTED_CZ[] PROGMEM = "Tisk prerusen";
-const char MSG_PRINT_ABORTED_IT[] PROGMEM = "Stampa abortita";
-const char MSG_PRINT_ABORTED_ES[] PROGMEM = "Impresion cancelada";
-const char MSG_PRINT_ABORTED_PL[] PROGMEM = "Druk przerwany";
-const char MSG_PRINT_ABORTED_DE[] PROGMEM = "Druck abgebrochen";
-const char * const MSG_PRINT_ABORTED_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_PRINT_ABORTED_EN,
-	MSG_PRINT_ABORTED_CZ,
-	MSG_PRINT_ABORTED_IT,
-	MSG_PRINT_ABORTED_ES,
-	MSG_PRINT_ABORTED_PL,
-	MSG_PRINT_ABORTED_DE
+const char * const MSG_PRINT_ABORTED_LANG_TABLE[1] PROGMEM = {
+	MSG_PRINT_ABORTED_EN
 };
 
 const char MSG_PRINT_PAUSED_EN[] PROGMEM = "Print paused";
-const char MSG_PRINT_PAUSED_CZ[] PROGMEM = "Tisk pozastaven";
-const char MSG_PRINT_PAUSED_IT[] PROGMEM = "Stampa in pausa";
-const char MSG_PRINT_PAUSED_ES[] PROGMEM = "Impresion en pausa";
-const char MSG_PRINT_PAUSED_PL[] PROGMEM = "Druk zatrzymany";
-const char MSG_PRINT_PAUSED_DE[] PROGMEM = "Druck pausiert";
-const char * const MSG_PRINT_PAUSED_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_PRINT_PAUSED_EN,
-	MSG_PRINT_PAUSED_CZ,
-	MSG_PRINT_PAUSED_IT,
-	MSG_PRINT_PAUSED_ES,
-	MSG_PRINT_PAUSED_PL,
-	MSG_PRINT_PAUSED_DE
+const char * const MSG_PRINT_PAUSED_LANG_TABLE[1] PROGMEM = {
+	MSG_PRINT_PAUSED_EN
 };
 
 const char MSG_PRUSA3D_EN[] PROGMEM = "prusa3d.com";
-const char MSG_PRUSA3D_CZ[] PROGMEM = "prusa3d.cz";
-const char MSG_PRUSA3D_PL[] PROGMEM = "prusa3d.cz";
-const char * const MSG_PRUSA3D_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_PRUSA3D_EN,
-	MSG_PRUSA3D_CZ,
-	MSG_PRUSA3D_EN,
-	MSG_PRUSA3D_EN,
-	MSG_PRUSA3D_PL,
+const char * const MSG_PRUSA3D_LANG_TABLE[1] PROGMEM = {
 	MSG_PRUSA3D_EN
 };
 
 const char MSG_PRUSA3D_FORUM_EN[] PROGMEM = "forum.prusa3d.com";
-const char MSG_PRUSA3D_FORUM_CZ[] PROGMEM = "forum.prusa3d.cz";
-const char MSG_PRUSA3D_FORUM_PL[] PROGMEM = "forum.prusa3d.cz";
-const char * const MSG_PRUSA3D_FORUM_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_PRUSA3D_FORUM_EN,
-	MSG_PRUSA3D_FORUM_CZ,
-	MSG_PRUSA3D_FORUM_EN,
-	MSG_PRUSA3D_FORUM_EN,
-	MSG_PRUSA3D_FORUM_PL,
+const char * const MSG_PRUSA3D_FORUM_LANG_TABLE[1] PROGMEM = {
 	MSG_PRUSA3D_FORUM_EN
 };
 
 const char MSG_PRUSA3D_HOWTO_EN[] PROGMEM = "howto.prusa3d.com";
-const char MSG_PRUSA3D_HOWTO_CZ[] PROGMEM = "howto.prusa3d.cz";
-const char MSG_PRUSA3D_HOWTO_PL[] PROGMEM = "howto.prusa3d.cz";
-const char * const MSG_PRUSA3D_HOWTO_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_PRUSA3D_HOWTO_EN,
-	MSG_PRUSA3D_HOWTO_CZ,
-	MSG_PRUSA3D_HOWTO_EN,
-	MSG_PRUSA3D_HOWTO_EN,
-	MSG_PRUSA3D_HOWTO_PL,
+const char * const MSG_PRUSA3D_HOWTO_LANG_TABLE[1] PROGMEM = {
 	MSG_PRUSA3D_HOWTO_EN
 };
 
 const char MSG_REBOOT_EN[] PROGMEM = "Reboot the printer";
-const char MSG_REBOOT_CZ[] PROGMEM = "Restartujte tiskarnu";
-const char MSG_REBOOT_IT[] PROGMEM = "Riavvia stampante";
-const char MSG_REBOOT_ES[] PROGMEM = "Reiniciar impresora";
-const char MSG_REBOOT_PL[] PROGMEM = "Restart drukarki";
-const char MSG_REBOOT_DE[] PROGMEM = "Zum Uebernehmen ";
-const char * const MSG_REBOOT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_REBOOT_EN,
-	MSG_REBOOT_CZ,
-	MSG_REBOOT_IT,
-	MSG_REBOOT_ES,
-	MSG_REBOOT_PL,
-	MSG_REBOOT_DE
+const char * const MSG_REBOOT_LANG_TABLE[1] PROGMEM = {
+	MSG_REBOOT_EN
 };
 
 const char MSG_RECOVERING_PRINT_EN[] PROGMEM = "Recovering print    ";
@@ -2279,48 +1056,18 @@ const char * const MSG_RESTORE_FAILSAFE_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_RESUME_PRINT_EN[] PROGMEM = "Resume print";
-const char MSG_RESUME_PRINT_CZ[] PROGMEM = "Pokracovat";
-const char MSG_RESUME_PRINT_IT[] PROGMEM = "Riprendi stampa";
-const char MSG_RESUME_PRINT_ES[] PROGMEM = "Reanudar impres.";
-const char MSG_RESUME_PRINT_PL[] PROGMEM = "Kontynuowac";
-const char MSG_RESUME_PRINT_DE[] PROGMEM = "Fortsetzen";
-const char * const MSG_RESUME_PRINT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_RESUME_PRINT_EN,
-	MSG_RESUME_PRINT_CZ,
-	MSG_RESUME_PRINT_IT,
-	MSG_RESUME_PRINT_ES,
-	MSG_RESUME_PRINT_PL,
-	MSG_RESUME_PRINT_DE
+const char * const MSG_RESUME_PRINT_LANG_TABLE[1] PROGMEM = {
+	MSG_RESUME_PRINT_EN
 };
 
 const char MSG_RESUMING_EN[] PROGMEM = "Resuming print";
-const char MSG_RESUMING_CZ[] PROGMEM = "Obnoveni tisku";
-const char MSG_RESUMING_IT[] PROGMEM = "Riprendi stampa";
-const char MSG_RESUMING_ES[] PROGMEM = "Resumiendo impresion";
-const char MSG_RESUMING_PL[] PROGMEM = "Wznowienie druku";
-const char MSG_RESUMING_DE[] PROGMEM = "Druck fortgesetzt";
-const char * const MSG_RESUMING_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_RESUMING_EN,
-	MSG_RESUMING_CZ,
-	MSG_RESUMING_IT,
-	MSG_RESUMING_ES,
-	MSG_RESUMING_PL,
-	MSG_RESUMING_DE
+const char * const MSG_RESUMING_LANG_TABLE[1] PROGMEM = {
+	MSG_RESUMING_EN
 };
 
 const char MSG_RESUMING_PRINT_EN[] PROGMEM = "Resuming print";
-const char MSG_RESUMING_PRINT_CZ[] PROGMEM = "Obnovovani tisku";
-const char MSG_RESUMING_PRINT_IT[] PROGMEM = "Stampa in ripresa";
-const char MSG_RESUMING_PRINT_ES[] PROGMEM = "Reanudar impresion";
-const char MSG_RESUMING_PRINT_PL[] PROGMEM = "Wznawianie druku";
-const char MSG_RESUMING_PRINT_DE[] PROGMEM = "Druck weitergehen";
-const char * const MSG_RESUMING_PRINT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_RESUMING_PRINT_EN,
-	MSG_RESUMING_PRINT_CZ,
-	MSG_RESUMING_PRINT_IT,
-	MSG_RESUMING_PRINT_ES,
-	MSG_RESUMING_PRINT_PL,
-	MSG_RESUMING_PRINT_DE
+const char * const MSG_RESUMING_PRINT_LANG_TABLE[1] PROGMEM = {
+	MSG_RESUMING_PRINT_EN
 };
 
 const char MSG_SD_CANT_ENTER_SUBDIR_EN[] PROGMEM = "Cannot enter subdir: ";
@@ -2359,18 +1106,8 @@ const char * const MSG_SD_INIT_FAIL_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_SD_INSERTED_EN[] PROGMEM = "Card inserted";
-const char MSG_SD_INSERTED_CZ[] PROGMEM = "Karta vlozena";
-const char MSG_SD_INSERTED_IT[] PROGMEM = "SD inserita";
-const char MSG_SD_INSERTED_ES[] PROGMEM = "Tarjeta insertada";
-const char MSG_SD_INSERTED_PL[] PROGMEM = "Karta wlozona";
-const char MSG_SD_INSERTED_DE[] PROGMEM = "SD eingesetzt";
-const char * const MSG_SD_INSERTED_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SD_INSERTED_EN,
-	MSG_SD_INSERTED_CZ,
-	MSG_SD_INSERTED_IT,
-	MSG_SD_INSERTED_ES,
-	MSG_SD_INSERTED_PL,
-	MSG_SD_INSERTED_DE
+const char * const MSG_SD_INSERTED_LANG_TABLE[1] PROGMEM = {
+	MSG_SD_INSERTED_EN
 };
 
 const char MSG_SD_NOT_PRINTING_EN[] PROGMEM = "Not SD printing";
@@ -2394,18 +1131,8 @@ const char * const MSG_SD_PRINTING_BYTE_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_SD_REMOVED_EN[] PROGMEM = "Card removed";
-const char MSG_SD_REMOVED_CZ[] PROGMEM = "Karta vyjmuta";
-const char MSG_SD_REMOVED_IT[] PROGMEM = "SD rimossa";
-const char MSG_SD_REMOVED_ES[] PROGMEM = "Tarjeta retirada";
-const char MSG_SD_REMOVED_PL[] PROGMEM = "Karta wyjeta";
-const char MSG_SD_REMOVED_DE[] PROGMEM = "SD entfernt ";
-const char * const MSG_SD_REMOVED_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SD_REMOVED_EN,
-	MSG_SD_REMOVED_CZ,
-	MSG_SD_REMOVED_IT,
-	MSG_SD_REMOVED_ES,
-	MSG_SD_REMOVED_PL,
-	MSG_SD_REMOVED_DE
+const char * const MSG_SD_REMOVED_LANG_TABLE[1] PROGMEM = {
+	MSG_SD_REMOVED_EN
 };
 
 const char MSG_SD_SIZE_EN[] PROGMEM = " Size: ";
@@ -2429,16 +1156,8 @@ const char * const MSG_SD_WRITE_TO_FILE_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_SELFTEST_EN[] PROGMEM = "Selftest         ";
-const char MSG_SELFTEST_IT[] PROGMEM = "Autotest";
-const char MSG_SELFTEST_ES[] PROGMEM = "Autotest";
-const char MSG_SELFTEST_DE[] PROGMEM = "Selbsttest       ";
-const char * const MSG_SELFTEST_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_EN,
-	MSG_SELFTEST_EN,
-	MSG_SELFTEST_IT,
-	MSG_SELFTEST_ES,
-	MSG_SELFTEST_EN,
-	MSG_SELFTEST_DE
+const char * const MSG_SELFTEST_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_EN
 };
 
 const char MSG_SELFTEST_AXIS_EN[] PROGMEM = "Axis";
@@ -2452,355 +1171,128 @@ const char * const MSG_SELFTEST_AXIS_LENGTH_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_SELFTEST_BEDHEATER_EN[] PROGMEM = "Bed / Heater";
-const char MSG_SELFTEST_BEDHEATER_IT[] PROGMEM = "Letto/Riscald.";
-const char MSG_SELFTEST_BEDHEATER_ES[] PROGMEM = "Cama/Calentador";
-const char * const MSG_SELFTEST_BEDHEATER_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_BEDHEATER_EN,
-	MSG_SELFTEST_BEDHEATER_EN,
-	MSG_SELFTEST_BEDHEATER_IT,
-	MSG_SELFTEST_BEDHEATER_ES,
-	MSG_SELFTEST_BEDHEATER_EN,
+const char * const MSG_SELFTEST_BEDHEATER_LANG_TABLE[1] PROGMEM = {
 	MSG_SELFTEST_BEDHEATER_EN
 };
 
 const char MSG_SELFTEST_CHECK_ALLCORRECT_EN[] PROGMEM = "All correct      ";
-const char MSG_SELFTEST_CHECK_ALLCORRECT_CZ[] PROGMEM = "Vse OK           ";
-const char MSG_SELFTEST_CHECK_ALLCORRECT_IT[] PROGMEM = "Nessun errore";
-const char MSG_SELFTEST_CHECK_ALLCORRECT_ES[] PROGMEM = "Todo bie ";
-const char MSG_SELFTEST_CHECK_ALLCORRECT_PL[] PROGMEM = "Wszystko OK      ";
-const char MSG_SELFTEST_CHECK_ALLCORRECT_DE[] PROGMEM = "Alles richtig    ";
-const char * const MSG_SELFTEST_CHECK_ALLCORRECT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_CHECK_ALLCORRECT_EN,
-	MSG_SELFTEST_CHECK_ALLCORRECT_CZ,
-	MSG_SELFTEST_CHECK_ALLCORRECT_IT,
-	MSG_SELFTEST_CHECK_ALLCORRECT_ES,
-	MSG_SELFTEST_CHECK_ALLCORRECT_PL,
-	MSG_SELFTEST_CHECK_ALLCORRECT_DE
+const char * const MSG_SELFTEST_CHECK_ALLCORRECT_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_CHECK_ALLCORRECT_EN
 };
 
 const char MSG_SELFTEST_CHECK_BED_EN[] PROGMEM = "Checking bed     ";
-const char MSG_SELFTEST_CHECK_BED_CZ[] PROGMEM = "Kontrola bed     ";
-const char MSG_SELFTEST_CHECK_BED_IT[] PROGMEM = "Verifica letto";
-const char MSG_SELFTEST_CHECK_BED_ES[] PROGMEM = "Control de cama";
-const char MSG_SELFTEST_CHECK_BED_PL[] PROGMEM = "Kontrola bed     ";
-const char MSG_SELFTEST_CHECK_BED_DE[] PROGMEM = "Pr\x81fe Bed        ";
-const char * const MSG_SELFTEST_CHECK_BED_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_CHECK_BED_EN,
-	MSG_SELFTEST_CHECK_BED_CZ,
-	MSG_SELFTEST_CHECK_BED_IT,
-	MSG_SELFTEST_CHECK_BED_ES,
-	MSG_SELFTEST_CHECK_BED_PL,
-	MSG_SELFTEST_CHECK_BED_DE
+const char * const MSG_SELFTEST_CHECK_BED_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_CHECK_BED_EN
 };
 
 const char MSG_SELFTEST_CHECK_ENDSTOPS_EN[] PROGMEM = "Checking endstops";
-const char MSG_SELFTEST_CHECK_ENDSTOPS_CZ[] PROGMEM = "Kontrola endstops";
-const char MSG_SELFTEST_CHECK_ENDSTOPS_IT[] PROGMEM = "Verifica finecorsa";
-const char MSG_SELFTEST_CHECK_ENDSTOPS_ES[] PROGMEM = "Cont. topes final";
-const char MSG_SELFTEST_CHECK_ENDSTOPS_PL[] PROGMEM = "Kontrola endstops";
-const char MSG_SELFTEST_CHECK_ENDSTOPS_DE[] PROGMEM = "Pruefe Endschalter  ";
-const char * const MSG_SELFTEST_CHECK_ENDSTOPS_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_CHECK_ENDSTOPS_EN,
-	MSG_SELFTEST_CHECK_ENDSTOPS_CZ,
-	MSG_SELFTEST_CHECK_ENDSTOPS_IT,
-	MSG_SELFTEST_CHECK_ENDSTOPS_ES,
-	MSG_SELFTEST_CHECK_ENDSTOPS_PL,
-	MSG_SELFTEST_CHECK_ENDSTOPS_DE
+const char * const MSG_SELFTEST_CHECK_ENDSTOPS_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_CHECK_ENDSTOPS_EN
 };
 
 const char MSG_SELFTEST_CHECK_HOTEND_EN[] PROGMEM = "Checking hotend  ";
-const char MSG_SELFTEST_CHECK_HOTEND_CZ[] PROGMEM = "Kontrola hotend  ";
-const char MSG_SELFTEST_CHECK_HOTEND_IT[] PROGMEM = "Verifica ugello";
-const char MSG_SELFTEST_CHECK_HOTEND_ES[] PROGMEM = "Control hotend ";
-const char MSG_SELFTEST_CHECK_HOTEND_PL[] PROGMEM = "Kontrola hotend  ";
-const char MSG_SELFTEST_CHECK_HOTEND_DE[] PROGMEM = "Pruefe Hotend";
-const char * const MSG_SELFTEST_CHECK_HOTEND_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_CHECK_HOTEND_EN,
-	MSG_SELFTEST_CHECK_HOTEND_CZ,
-	MSG_SELFTEST_CHECK_HOTEND_IT,
-	MSG_SELFTEST_CHECK_HOTEND_ES,
-	MSG_SELFTEST_CHECK_HOTEND_PL,
-	MSG_SELFTEST_CHECK_HOTEND_DE
+const char * const MSG_SELFTEST_CHECK_HOTEND_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_CHECK_HOTEND_EN
 };
 
 const char MSG_SELFTEST_CHECK_X_EN[] PROGMEM = "Checking X axis  ";
-const char MSG_SELFTEST_CHECK_X_CZ[] PROGMEM = "Kontrola X axis  ";
-const char MSG_SELFTEST_CHECK_X_IT[] PROGMEM = "Verifica asse X";
-const char MSG_SELFTEST_CHECK_X_ES[] PROGMEM = "Control del eje X";
-const char MSG_SELFTEST_CHECK_X_PL[] PROGMEM = "Kontrola X axis  ";
-const char MSG_SELFTEST_CHECK_X_DE[] PROGMEM = "Pruefe X Achse    ";
-const char * const MSG_SELFTEST_CHECK_X_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_CHECK_X_EN,
-	MSG_SELFTEST_CHECK_X_CZ,
-	MSG_SELFTEST_CHECK_X_IT,
-	MSG_SELFTEST_CHECK_X_ES,
-	MSG_SELFTEST_CHECK_X_PL,
-	MSG_SELFTEST_CHECK_X_DE
+const char * const MSG_SELFTEST_CHECK_X_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_CHECK_X_EN
 };
 
 const char MSG_SELFTEST_CHECK_Y_EN[] PROGMEM = "Checking Y axis  ";
-const char MSG_SELFTEST_CHECK_Y_CZ[] PROGMEM = "Kontrola Y axis  ";
-const char MSG_SELFTEST_CHECK_Y_IT[] PROGMEM = "Verifica asse Y";
-const char MSG_SELFTEST_CHECK_Y_ES[] PROGMEM = "Control del eje Y";
-const char MSG_SELFTEST_CHECK_Y_PL[] PROGMEM = "Kontrola Y axis  ";
-const char MSG_SELFTEST_CHECK_Y_DE[] PROGMEM = "Pruefe Y Achse    ";
-const char * const MSG_SELFTEST_CHECK_Y_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_CHECK_Y_EN,
-	MSG_SELFTEST_CHECK_Y_CZ,
-	MSG_SELFTEST_CHECK_Y_IT,
-	MSG_SELFTEST_CHECK_Y_ES,
-	MSG_SELFTEST_CHECK_Y_PL,
-	MSG_SELFTEST_CHECK_Y_DE
+const char * const MSG_SELFTEST_CHECK_Y_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_CHECK_Y_EN
 };
 
 const char MSG_SELFTEST_CHECK_Z_EN[] PROGMEM = "Checking Z axis  ";
-const char MSG_SELFTEST_CHECK_Z_CZ[] PROGMEM = "Kontrola Z axis  ";
-const char MSG_SELFTEST_CHECK_Z_IT[] PROGMEM = "Verifica asse Z";
-const char MSG_SELFTEST_CHECK_Z_ES[] PROGMEM = "Control del eje Z";
-const char MSG_SELFTEST_CHECK_Z_PL[] PROGMEM = "Kontrola Z axis  ";
-const char MSG_SELFTEST_CHECK_Z_DE[] PROGMEM = "Pruefe Z Achse    ";
-const char * const MSG_SELFTEST_CHECK_Z_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_CHECK_Z_EN,
-	MSG_SELFTEST_CHECK_Z_CZ,
-	MSG_SELFTEST_CHECK_Z_IT,
-	MSG_SELFTEST_CHECK_Z_ES,
-	MSG_SELFTEST_CHECK_Z_PL,
-	MSG_SELFTEST_CHECK_Z_DE
+const char * const MSG_SELFTEST_CHECK_Z_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_CHECK_Z_EN
 };
 
 const char MSG_SELFTEST_COOLING_FAN_EN[] PROGMEM = "Front print fan?";;
-const char MSG_SELFTEST_COOLING_FAN_CZ[] PROGMEM = "Predni tiskovy vent?";;
-const char MSG_SELFTEST_COOLING_FAN_IT[] PROGMEM = "Vent di stampa ant.?";;
-const char MSG_SELFTEST_COOLING_FAN_ES[] PROGMEM = "Vent. al frente?";;
-const char MSG_SELFTEST_COOLING_FAN_PL[] PROGMEM = "Przodni went. druku?";;
-const char MSG_SELFTEST_COOLING_FAN_DE[] PROGMEM = "Vorderer Luefter?";
-const char * const MSG_SELFTEST_COOLING_FAN_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_COOLING_FAN_EN,
-	MSG_SELFTEST_COOLING_FAN_CZ,
-	MSG_SELFTEST_COOLING_FAN_IT,
-	MSG_SELFTEST_COOLING_FAN_ES,
-	MSG_SELFTEST_COOLING_FAN_PL,
-	MSG_SELFTEST_COOLING_FAN_DE
+const char * const MSG_SELFTEST_COOLING_FAN_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_COOLING_FAN_EN
 };
 
 const char MSG_SELFTEST_ENDSTOP_EN[] PROGMEM = "Endstop";
-const char MSG_SELFTEST_ENDSTOP_IT[] PROGMEM = "Finecorsa";
-const char MSG_SELFTEST_ENDSTOP_ES[] PROGMEM = "Tope final";
-const char * const MSG_SELFTEST_ENDSTOP_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_ENDSTOP_EN,
-	MSG_SELFTEST_ENDSTOP_EN,
-	MSG_SELFTEST_ENDSTOP_IT,
-	MSG_SELFTEST_ENDSTOP_ES,
-	MSG_SELFTEST_ENDSTOP_EN,
+const char * const MSG_SELFTEST_ENDSTOP_LANG_TABLE[1] PROGMEM = {
 	MSG_SELFTEST_ENDSTOP_EN
 };
 
 const char MSG_SELFTEST_ENDSTOPS_EN[] PROGMEM = "Endstops";
-const char MSG_SELFTEST_ENDSTOPS_IT[] PROGMEM = "Finecorsa (2)";
-const char MSG_SELFTEST_ENDSTOPS_ES[] PROGMEM = "Topes final";
-const char MSG_SELFTEST_ENDSTOPS_DE[] PROGMEM = "Endschalter";
-const char * const MSG_SELFTEST_ENDSTOPS_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_ENDSTOPS_EN,
-	MSG_SELFTEST_ENDSTOPS_EN,
-	MSG_SELFTEST_ENDSTOPS_IT,
-	MSG_SELFTEST_ENDSTOPS_ES,
-	MSG_SELFTEST_ENDSTOPS_EN,
-	MSG_SELFTEST_ENDSTOPS_DE
+const char * const MSG_SELFTEST_ENDSTOPS_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_ENDSTOPS_EN
 };
 
 const char MSG_SELFTEST_ENDSTOP_NOTHIT_EN[] PROGMEM = "Endstop not hit";
-const char MSG_SELFTEST_ENDSTOP_NOTHIT_IT[] PROGMEM = "Finec. fuori por.";
-const char MSG_SELFTEST_ENDSTOP_NOTHIT_ES[] PROGMEM = "Tope fin. no toc.";
-const char MSG_SELFTEST_ENDSTOP_NOTHIT_DE[] PROGMEM = "Ende nicht getrof.";
-const char * const MSG_SELFTEST_ENDSTOP_NOTHIT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_ENDSTOP_NOTHIT_EN,
-	MSG_SELFTEST_ENDSTOP_NOTHIT_EN,
-	MSG_SELFTEST_ENDSTOP_NOTHIT_IT,
-	MSG_SELFTEST_ENDSTOP_NOTHIT_ES,
-	MSG_SELFTEST_ENDSTOP_NOTHIT_EN,
-	MSG_SELFTEST_ENDSTOP_NOTHIT_DE
+const char * const MSG_SELFTEST_ENDSTOP_NOTHIT_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_ENDSTOP_NOTHIT_EN
 };
 
 const char MSG_SELFTEST_ERROR_EN[] PROGMEM = "Selftest error !";
-const char MSG_SELFTEST_ERROR_IT[] PROGMEM = "Autotest negativo";
-const char MSG_SELFTEST_ERROR_ES[] PROGMEM = "Autotest error!";
-const char MSG_SELFTEST_ERROR_DE[] PROGMEM = "Selbtest Fehler!";
-const char * const MSG_SELFTEST_ERROR_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_ERROR_EN,
-	MSG_SELFTEST_ERROR_EN,
-	MSG_SELFTEST_ERROR_IT,
-	MSG_SELFTEST_ERROR_ES,
-	MSG_SELFTEST_ERROR_EN,
-	MSG_SELFTEST_ERROR_DE
+const char * const MSG_SELFTEST_ERROR_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_ERROR_EN
 };
 
 const char MSG_SELFTEST_EXTRUDER_FAN_EN[] PROGMEM = "Left hotend fan?";;
-const char MSG_SELFTEST_EXTRUDER_FAN_CZ[] PROGMEM = "Levy vent na trysce?";;
-const char MSG_SELFTEST_EXTRUDER_FAN_IT[] PROGMEM = "Vent SX sull'ugello?";;
-const char MSG_SELFTEST_EXTRUDER_FAN_ES[] PROGMEM = "Vent. en la izg?";;
-const char MSG_SELFTEST_EXTRUDER_FAN_PL[] PROGMEM = "Lewy went na dysze?";;
-const char MSG_SELFTEST_EXTRUDER_FAN_DE[] PROGMEM = "Linker Luefter?";
-const char * const MSG_SELFTEST_EXTRUDER_FAN_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_EXTRUDER_FAN_EN,
-	MSG_SELFTEST_EXTRUDER_FAN_CZ,
-	MSG_SELFTEST_EXTRUDER_FAN_IT,
-	MSG_SELFTEST_EXTRUDER_FAN_ES,
-	MSG_SELFTEST_EXTRUDER_FAN_PL,
-	MSG_SELFTEST_EXTRUDER_FAN_DE
+const char * const MSG_SELFTEST_EXTRUDER_FAN_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_EXTRUDER_FAN_EN
 };
 
 const char MSG_SELFTEST_FAILED_EN[] PROGMEM = "Selftest failed  ";
-const char MSG_SELFTEST_FAILED_CZ[] PROGMEM = "Selftest selhal  ";
-const char MSG_SELFTEST_FAILED_IT[] PROGMEM = "Autotest fallito";
-const char MSG_SELFTEST_FAILED_ES[] PROGMEM = "Autotest fallado";
-const char MSG_SELFTEST_FAILED_PL[] PROGMEM = "Selftest nieudany";
-const char MSG_SELFTEST_FAILED_DE[] PROGMEM = "Selbsttest misslung.";
-const char * const MSG_SELFTEST_FAILED_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_FAILED_EN,
-	MSG_SELFTEST_FAILED_CZ,
-	MSG_SELFTEST_FAILED_IT,
-	MSG_SELFTEST_FAILED_ES,
-	MSG_SELFTEST_FAILED_PL,
-	MSG_SELFTEST_FAILED_DE
+const char * const MSG_SELFTEST_FAILED_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_FAILED_EN
 };
 
 const char MSG_SELFTEST_FAN_EN[] PROGMEM = "Fan test";;
-const char MSG_SELFTEST_FAN_CZ[] PROGMEM = "Test ventilatoru";;
-const char MSG_SELFTEST_FAN_IT[] PROGMEM = "Prova del ventilator";;
-const char MSG_SELFTEST_FAN_ES[] PROGMEM = "Test del ventilador";;
-const char MSG_SELFTEST_FAN_PL[] PROGMEM = "Test wentylatora";;
-const char MSG_SELFTEST_FAN_DE[] PROGMEM = "Lueftertest";
-const char * const MSG_SELFTEST_FAN_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_FAN_EN,
-	MSG_SELFTEST_FAN_CZ,
-	MSG_SELFTEST_FAN_IT,
-	MSG_SELFTEST_FAN_ES,
-	MSG_SELFTEST_FAN_PL,
-	MSG_SELFTEST_FAN_DE
+const char * const MSG_SELFTEST_FAN_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_FAN_EN
 };
 
 const char MSG_SELFTEST_FAN_NO_EN[] PROGMEM = "Not spinning";;
-const char MSG_SELFTEST_FAN_NO_CZ[] PROGMEM = "Netoci se";;
-const char MSG_SELFTEST_FAN_NO_IT[] PROGMEM = "Non si gira";;
-const char MSG_SELFTEST_FAN_NO_ES[] PROGMEM = "Ventilador no gira";;
-const char MSG_SELFTEST_FAN_NO_PL[] PROGMEM = "Nekreci sie";;
-const char MSG_SELFTEST_FAN_NO_DE[] PROGMEM = "Dreht nicht";
-const char * const MSG_SELFTEST_FAN_NO_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_FAN_NO_EN,
-	MSG_SELFTEST_FAN_NO_CZ,
-	MSG_SELFTEST_FAN_NO_IT,
-	MSG_SELFTEST_FAN_NO_ES,
-	MSG_SELFTEST_FAN_NO_PL,
-	MSG_SELFTEST_FAN_NO_DE
+const char * const MSG_SELFTEST_FAN_NO_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_FAN_NO_EN
 };
 
 const char MSG_SELFTEST_FAN_YES_EN[] PROGMEM = "Spinning";;
-const char MSG_SELFTEST_FAN_YES_CZ[] PROGMEM = "Toci se";;
-const char MSG_SELFTEST_FAN_YES_IT[] PROGMEM = "Gira";;
-const char MSG_SELFTEST_FAN_YES_ES[] PROGMEM = "Ventilador gira";;
-const char MSG_SELFTEST_FAN_YES_PL[] PROGMEM = "Kreci sie";;
-const char MSG_SELFTEST_FAN_YES_DE[] PROGMEM = "Dreht";
-const char * const MSG_SELFTEST_FAN_YES_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_FAN_YES_EN,
-	MSG_SELFTEST_FAN_YES_CZ,
-	MSG_SELFTEST_FAN_YES_IT,
-	MSG_SELFTEST_FAN_YES_ES,
-	MSG_SELFTEST_FAN_YES_PL,
-	MSG_SELFTEST_FAN_YES_DE
+const char * const MSG_SELFTEST_FAN_YES_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_FAN_YES_EN
 };
 
 const char MSG_SELFTEST_HEATERTHERMISTOR_EN[] PROGMEM = "Heater/Thermistor";
-const char MSG_SELFTEST_HEATERTHERMISTOR_IT[] PROGMEM = "Riscald./Termist.";
-const char MSG_SELFTEST_HEATERTHERMISTOR_ES[] PROGMEM = "Calent./Termistor";
-const char * const MSG_SELFTEST_HEATERTHERMISTOR_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_HEATERTHERMISTOR_EN,
-	MSG_SELFTEST_HEATERTHERMISTOR_EN,
-	MSG_SELFTEST_HEATERTHERMISTOR_IT,
-	MSG_SELFTEST_HEATERTHERMISTOR_ES,
-	MSG_SELFTEST_HEATERTHERMISTOR_EN,
+const char * const MSG_SELFTEST_HEATERTHERMISTOR_LANG_TABLE[1] PROGMEM = {
 	MSG_SELFTEST_HEATERTHERMISTOR_EN
 };
 
 const char MSG_SELFTEST_MOTOR_EN[] PROGMEM = "Motor";
-const char MSG_SELFTEST_MOTOR_IT[] PROGMEM = "Motore";
-const char MSG_SELFTEST_MOTOR_PL[] PROGMEM = "Silnik";
-const char * const MSG_SELFTEST_MOTOR_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_MOTOR_EN,
-	MSG_SELFTEST_MOTOR_EN,
-	MSG_SELFTEST_MOTOR_IT,
-	MSG_SELFTEST_MOTOR_EN,
-	MSG_SELFTEST_MOTOR_PL,
+const char * const MSG_SELFTEST_MOTOR_LANG_TABLE[1] PROGMEM = {
 	MSG_SELFTEST_MOTOR_EN
 };
 
 const char MSG_SELFTEST_NOTCONNECTED_EN[] PROGMEM = "Not connected";
-const char MSG_SELFTEST_NOTCONNECTED_CZ[] PROGMEM = "Nezapojeno    ";
-const char MSG_SELFTEST_NOTCONNECTED_IT[] PROGMEM = "Non connesso";
-const char MSG_SELFTEST_NOTCONNECTED_ES[] PROGMEM = "No hay conexion  ";
-const char MSG_SELFTEST_NOTCONNECTED_PL[] PROGMEM = "Nie podlaczono   ";
-const char MSG_SELFTEST_NOTCONNECTED_DE[] PROGMEM = "Nicht angeschlossen";
-const char * const MSG_SELFTEST_NOTCONNECTED_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_NOTCONNECTED_EN,
-	MSG_SELFTEST_NOTCONNECTED_CZ,
-	MSG_SELFTEST_NOTCONNECTED_IT,
-	MSG_SELFTEST_NOTCONNECTED_ES,
-	MSG_SELFTEST_NOTCONNECTED_PL,
-	MSG_SELFTEST_NOTCONNECTED_DE
+const char * const MSG_SELFTEST_NOTCONNECTED_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_NOTCONNECTED_EN
 };
 
 const char MSG_SELFTEST_OK_EN[] PROGMEM = "Self test OK";
-const char MSG_SELFTEST_OK_IT[] PROGMEM = "Autotest OK";
-const char MSG_SELFTEST_OK_DE[] PROGMEM = "Selbsttest OK";
-const char * const MSG_SELFTEST_OK_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_OK_EN,
-	MSG_SELFTEST_OK_EN,
-	MSG_SELFTEST_OK_IT,
-	MSG_SELFTEST_OK_EN,
-	MSG_SELFTEST_OK_EN,
-	MSG_SELFTEST_OK_DE
+const char * const MSG_SELFTEST_OK_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_OK_EN
 };
 
 const char MSG_SELFTEST_PLEASECHECK_EN[] PROGMEM = "Please check :";
-const char MSG_SELFTEST_PLEASECHECK_CZ[] PROGMEM = "Zkontrolujte :";
-const char MSG_SELFTEST_PLEASECHECK_IT[] PROGMEM = "Verificare:";
-const char MSG_SELFTEST_PLEASECHECK_ES[] PROGMEM = "Controla :";
-const char MSG_SELFTEST_PLEASECHECK_PL[] PROGMEM = "Skontroluj :";
-const char MSG_SELFTEST_PLEASECHECK_DE[] PROGMEM = "Bitte pruefe:";
-const char * const MSG_SELFTEST_PLEASECHECK_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_PLEASECHECK_EN,
-	MSG_SELFTEST_PLEASECHECK_CZ,
-	MSG_SELFTEST_PLEASECHECK_IT,
-	MSG_SELFTEST_PLEASECHECK_ES,
-	MSG_SELFTEST_PLEASECHECK_PL,
-	MSG_SELFTEST_PLEASECHECK_DE
+const char * const MSG_SELFTEST_PLEASECHECK_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_PLEASECHECK_EN
 };
 
 const char MSG_SELFTEST_START_EN[] PROGMEM = "Self test start  ";
-const char MSG_SELFTEST_START_IT[] PROGMEM = "Avvia autotest";
-const char MSG_SELFTEST_START_ES[] PROGMEM = "Autotest salida";
-const char MSG_SELFTEST_START_DE[] PROGMEM = "Selbsttest start ";
-const char * const MSG_SELFTEST_START_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_START_EN,
-	MSG_SELFTEST_START_EN,
-	MSG_SELFTEST_START_IT,
-	MSG_SELFTEST_START_ES,
-	MSG_SELFTEST_START_EN,
-	MSG_SELFTEST_START_DE
+const char * const MSG_SELFTEST_START_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_START_EN
 };
 
 const char MSG_SELFTEST_WIRINGERROR_EN[] PROGMEM = "Wiring error";
-const char MSG_SELFTEST_WIRINGERROR_CZ[] PROGMEM = "Chyba zapojeni";
-const char MSG_SELFTEST_WIRINGERROR_IT[] PROGMEM = "Errore cablaggio";
-const char MSG_SELFTEST_WIRINGERROR_ES[] PROGMEM = "Error de conexion";
-const char MSG_SELFTEST_WIRINGERROR_PL[] PROGMEM = "Blad polaczenia";
-const char MSG_SELFTEST_WIRINGERROR_DE[] PROGMEM = "Verdrahtungfehler";
-const char * const MSG_SELFTEST_WIRINGERROR_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SELFTEST_WIRINGERROR_EN,
-	MSG_SELFTEST_WIRINGERROR_CZ,
-	MSG_SELFTEST_WIRINGERROR_IT,
-	MSG_SELFTEST_WIRINGERROR_ES,
-	MSG_SELFTEST_WIRINGERROR_PL,
-	MSG_SELFTEST_WIRINGERROR_DE
+const char * const MSG_SELFTEST_WIRINGERROR_LANG_TABLE[1] PROGMEM = {
+	MSG_SELFTEST_WIRINGERROR_EN
 };
 
 const char MSG_SERIAL_ERROR_MENU_STRUCTURE_EN[] PROGMEM = "Error in menu structure";
@@ -2809,18 +1301,8 @@ const char * const MSG_SERIAL_ERROR_MENU_STRUCTURE_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_SETTINGS_EN[] PROGMEM = "Settings";
-const char MSG_SETTINGS_CZ[] PROGMEM = "Nastaveni";
-const char MSG_SETTINGS_IT[] PROGMEM = "Impostazioni";
-const char MSG_SETTINGS_ES[] PROGMEM = "Configuracion";
-const char MSG_SETTINGS_PL[] PROGMEM = "Ustawienia";
-const char MSG_SETTINGS_DE[] PROGMEM = "Einstellungen";
-const char * const MSG_SETTINGS_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SETTINGS_EN,
-	MSG_SETTINGS_CZ,
-	MSG_SETTINGS_IT,
-	MSG_SETTINGS_ES,
-	MSG_SETTINGS_PL,
-	MSG_SETTINGS_DE
+const char * const MSG_SETTINGS_LANG_TABLE[1] PROGMEM = {
+	MSG_SETTINGS_EN
 };
 
 const char MSG_SET_HOME_OFFSETS_EN[] PROGMEM = "Set home offsets";
@@ -2834,93 +1316,23 @@ const char * const MSG_SET_ORIGIN_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_SET_TEMPERATURE_EN[] PROGMEM = "Set temperature:";
-const char MSG_SET_TEMPERATURE_CZ[] PROGMEM = "Nastavte teplotu:";
-const char MSG_SET_TEMPERATURE_IT[] PROGMEM = "Imposta temperatura";
-const char MSG_SET_TEMPERATURE_ES[] PROGMEM = "Establecer temp.:";
-const char MSG_SET_TEMPERATURE_PL[] PROGMEM = "Ustawic temperature";
-const char MSG_SET_TEMPERATURE_DE[] PROGMEM = "Temp. einsetzen";
-const char * const MSG_SET_TEMPERATURE_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SET_TEMPERATURE_EN,
-	MSG_SET_TEMPERATURE_CZ,
-	MSG_SET_TEMPERATURE_IT,
-	MSG_SET_TEMPERATURE_ES,
-	MSG_SET_TEMPERATURE_PL,
-	MSG_SET_TEMPERATURE_DE
+const char * const MSG_SET_TEMPERATURE_LANG_TABLE[1] PROGMEM = {
+	MSG_SET_TEMPERATURE_EN
 };
 
 const char MSG_SHOW_END_STOPS_EN[] PROGMEM = "Show end stops";
-const char MSG_SHOW_END_STOPS_CZ[] PROGMEM = "Stav konc. spin.";
-const char MSG_SHOW_END_STOPS_IT[] PROGMEM = "Stato finecorsa";
-const char MSG_SHOW_END_STOPS_ES[] PROGMEM = "Ensena tope final";
-const char MSG_SHOW_END_STOPS_PL[] PROGMEM = "Pokaz krancowki";
-const char MSG_SHOW_END_STOPS_DE[] PROGMEM = "Endschalter Stat.";
-const char * const MSG_SHOW_END_STOPS_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SHOW_END_STOPS_EN,
-	MSG_SHOW_END_STOPS_CZ,
-	MSG_SHOW_END_STOPS_IT,
-	MSG_SHOW_END_STOPS_ES,
-	MSG_SHOW_END_STOPS_PL,
-	MSG_SHOW_END_STOPS_DE
-};
-
-const char MSG_FSENSOR_OFF_EN[] PROGMEM = "Fil. sensor [off]";
-const char MSG_FSENSOR_OFF_CZ[] PROGMEM = "Fil. sensor [off]";
-const char MSG_FSENSOR_OFF_IT[] PROGMEM = "Fil. sensor [off]";
-const char MSG_FSENSOR_OFF_ES[] PROGMEM = "Fil. sensor [off]";
-const char MSG_FSENSOR_OFF_PL[] PROGMEM = "Fil. sensor [off]";
-const char MSG_FSENSOR_OFF_DE[] PROGMEM = "Fil. sensor [off]";
-const char * const MSG_FSENSOR_OFF_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_FSENSOR_OFF_EN,
-	MSG_FSENSOR_OFF_CZ,
-	MSG_FSENSOR_OFF_IT,
-	MSG_FSENSOR_OFF_ES,
-	MSG_FSENSOR_OFF_PL,
-	MSG_FSENSOR_OFF_DE
-};
-
-const char MSG_FSENSOR_ON_EN[] PROGMEM = "Fil. sensor  [on]";
-const char MSG_FSENSOR_ON_CZ[] PROGMEM = "Fil. sensor  [on]";
-const char MSG_FSENSOR_ON_IT[] PROGMEM = "Fil. sensor  [on]";
-const char MSG_FSENSOR_ON_ES[] PROGMEM = "Fil. sensor  [on]";
-const char MSG_FSENSOR_ON_PL[] PROGMEM = "Fil. sensor  [on]";
-const char MSG_FSENSOR_ON_DE[] PROGMEM = "Fil. sensor  [on]";
-const char * const MSG_FSENSOR_ON_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_FSENSOR_ON_EN,
-	MSG_FSENSOR_ON_CZ,
-	MSG_FSENSOR_ON_IT,
-	MSG_FSENSOR_ON_ES,
-	MSG_FSENSOR_ON_PL,
-	MSG_FSENSOR_ON_DE
+const char * const MSG_SHOW_END_STOPS_LANG_TABLE[1] PROGMEM = {
+	MSG_SHOW_END_STOPS_EN
 };
 
 const char MSG_SILENT_MODE_OFF_EN[] PROGMEM = "Mode [high power]";
-const char MSG_SILENT_MODE_OFF_CZ[] PROGMEM = "Mod  [vys. vykon]";
-const char MSG_SILENT_MODE_OFF_IT[] PROGMEM = "Mode      [forte]";
-const char MSG_SILENT_MODE_OFF_ES[] PROGMEM = "Modo [rend.pleno]";
-const char MSG_SILENT_MODE_OFF_PL[] PROGMEM = "Mod [w wydajnosc]";
-const char MSG_SILENT_MODE_OFF_DE[] PROGMEM = "Mode [Hohe Leist]";
-const char * const MSG_SILENT_MODE_OFF_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SILENT_MODE_OFF_EN,
-	MSG_SILENT_MODE_OFF_CZ,
-	MSG_SILENT_MODE_OFF_IT,
-	MSG_SILENT_MODE_OFF_ES,
-	MSG_SILENT_MODE_OFF_PL,
-	MSG_SILENT_MODE_OFF_DE
+const char * const MSG_SILENT_MODE_OFF_LANG_TABLE[1] PROGMEM = {
+	MSG_SILENT_MODE_OFF_EN
 };
 
 const char MSG_SILENT_MODE_ON_EN[] PROGMEM = "Mode     [silent]";
-const char MSG_SILENT_MODE_ON_CZ[] PROGMEM = "Mod       [tichy]";
-const char MSG_SILENT_MODE_ON_IT[] PROGMEM = "Modo [silenzioso]";
-const char MSG_SILENT_MODE_ON_ES[] PROGMEM = "Modo   [silencio]";
-const char MSG_SILENT_MODE_ON_PL[] PROGMEM = "Mod       [cichy]";
-const char MSG_SILENT_MODE_ON_DE[] PROGMEM = "Mode     [leise]";
-const char * const MSG_SILENT_MODE_ON_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SILENT_MODE_ON_EN,
-	MSG_SILENT_MODE_ON_CZ,
-	MSG_SILENT_MODE_ON_IT,
-	MSG_SILENT_MODE_ON_ES,
-	MSG_SILENT_MODE_ON_PL,
-	MSG_SILENT_MODE_ON_DE
+const char * const MSG_SILENT_MODE_ON_LANG_TABLE[1] PROGMEM = {
+	MSG_SILENT_MODE_ON_EN
 };
 
 const char MSG_SOFTWARE_RESET_EN[] PROGMEM = " Software Reset";
@@ -2929,18 +1341,8 @@ const char * const MSG_SOFTWARE_RESET_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_SPEED_EN[] PROGMEM = "Speed";
-const char MSG_SPEED_CZ[] PROGMEM = "Rychlost";
-const char MSG_SPEED_IT[] PROGMEM = "Velocita";
-const char MSG_SPEED_ES[] PROGMEM = "Velocidad";
-const char MSG_SPEED_PL[] PROGMEM = "Predkosc";
-const char MSG_SPEED_DE[] PROGMEM = "Geschwindigkeit";
-const char * const MSG_SPEED_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SPEED_EN,
-	MSG_SPEED_CZ,
-	MSG_SPEED_IT,
-	MSG_SPEED_ES,
-	MSG_SPEED_PL,
-	MSG_SPEED_DE
+const char * const MSG_SPEED_LANG_TABLE[1] PROGMEM = {
+	MSG_SPEED_EN
 };
 
 const char MSG_STACK_ERROR_EN[] PROGMEM = "Error - static memory has been overwritten";
@@ -2949,78 +1351,28 @@ const char * const MSG_STACK_ERROR_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_STATISTICS_EN[] PROGMEM = "Statistics  ";
-const char MSG_STATISTICS_CZ[] PROGMEM = "Statistika  ";
-const char MSG_STATISTICS_IT[] PROGMEM = "Statistiche";
-const char MSG_STATISTICS_ES[] PROGMEM = "Estadistica  ";
-const char MSG_STATISTICS_PL[] PROGMEM = "Statystyka  ";
-const char MSG_STATISTICS_DE[] PROGMEM = "Statistiken ";
-const char * const MSG_STATISTICS_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_STATISTICS_EN,
-	MSG_STATISTICS_CZ,
-	MSG_STATISTICS_IT,
-	MSG_STATISTICS_ES,
-	MSG_STATISTICS_PL,
-	MSG_STATISTICS_DE
+const char * const MSG_STATISTICS_LANG_TABLE[1] PROGMEM = {
+	MSG_STATISTICS_EN
 };
 
 const char MSG_STATS_FILAMENTUSED_EN[] PROGMEM = "Filament used:  ";
-const char MSG_STATS_FILAMENTUSED_CZ[] PROGMEM = "Filament :  ";
-const char MSG_STATS_FILAMENTUSED_IT[] PROGMEM = "Filamento usato:";
-const char MSG_STATS_FILAMENTUSED_ES[] PROGMEM = "Filamento :  ";
-const char MSG_STATS_FILAMENTUSED_PL[] PROGMEM = "Filament :  ";
-const char MSG_STATS_FILAMENTUSED_DE[] PROGMEM = "Filamentverbrauch:";
-const char * const MSG_STATS_FILAMENTUSED_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_STATS_FILAMENTUSED_EN,
-	MSG_STATS_FILAMENTUSED_CZ,
-	MSG_STATS_FILAMENTUSED_IT,
-	MSG_STATS_FILAMENTUSED_ES,
-	MSG_STATS_FILAMENTUSED_PL,
-	MSG_STATS_FILAMENTUSED_DE
+const char * const MSG_STATS_FILAMENTUSED_LANG_TABLE[1] PROGMEM = {
+	MSG_STATS_FILAMENTUSED_EN
 };
 
 const char MSG_STATS_PRINTTIME_EN[] PROGMEM = "Print time:  ";
-const char MSG_STATS_PRINTTIME_CZ[] PROGMEM = "Cas tisku :  ";
-const char MSG_STATS_PRINTTIME_IT[] PROGMEM = "Tempo di stampa:";
-const char MSG_STATS_PRINTTIME_ES[] PROGMEM = "Tiempo de imp.:";
-const char MSG_STATS_PRINTTIME_PL[] PROGMEM = "Czas druku :  ";
-const char MSG_STATS_PRINTTIME_DE[] PROGMEM = "Druckzeit:  ";
-const char * const MSG_STATS_PRINTTIME_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_STATS_PRINTTIME_EN,
-	MSG_STATS_PRINTTIME_CZ,
-	MSG_STATS_PRINTTIME_IT,
-	MSG_STATS_PRINTTIME_ES,
-	MSG_STATS_PRINTTIME_PL,
-	MSG_STATS_PRINTTIME_DE
+const char * const MSG_STATS_PRINTTIME_LANG_TABLE[1] PROGMEM = {
+	MSG_STATS_PRINTTIME_EN
 };
 
 const char MSG_STATS_TOTALFILAMENT_EN[] PROGMEM = "Total filament :";
-const char MSG_STATS_TOTALFILAMENT_CZ[] PROGMEM = "Filament celkem :";
-const char MSG_STATS_TOTALFILAMENT_IT[] PROGMEM = "Filamento tot:";
-const char MSG_STATS_TOTALFILAMENT_ES[] PROGMEM = "Filamento total:";
-const char MSG_STATS_TOTALFILAMENT_PL[] PROGMEM = "Filament lacznie :";
-const char MSG_STATS_TOTALFILAMENT_DE[] PROGMEM = "Gesamtfilament:";
-const char * const MSG_STATS_TOTALFILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_STATS_TOTALFILAMENT_EN,
-	MSG_STATS_TOTALFILAMENT_CZ,
-	MSG_STATS_TOTALFILAMENT_IT,
-	MSG_STATS_TOTALFILAMENT_ES,
-	MSG_STATS_TOTALFILAMENT_PL,
-	MSG_STATS_TOTALFILAMENT_DE
+const char * const MSG_STATS_TOTALFILAMENT_LANG_TABLE[1] PROGMEM = {
+	MSG_STATS_TOTALFILAMENT_EN
 };
 
 const char MSG_STATS_TOTALPRINTTIME_EN[] PROGMEM = "Total print time :";
-const char MSG_STATS_TOTALPRINTTIME_CZ[] PROGMEM = "Celkovy cas :";
-const char MSG_STATS_TOTALPRINTTIME_IT[] PROGMEM = "Tempo stampa tot:";
-const char MSG_STATS_TOTALPRINTTIME_ES[] PROGMEM = "Tiempo total :";
-const char MSG_STATS_TOTALPRINTTIME_PL[] PROGMEM = "Czas calkowity :";
-const char MSG_STATS_TOTALPRINTTIME_DE[] PROGMEM = "Totale Druckzeit:";
-const char * const MSG_STATS_TOTALPRINTTIME_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_STATS_TOTALPRINTTIME_EN,
-	MSG_STATS_TOTALPRINTTIME_CZ,
-	MSG_STATS_TOTALPRINTTIME_IT,
-	MSG_STATS_TOTALPRINTTIME_ES,
-	MSG_STATS_TOTALPRINTTIME_PL,
-	MSG_STATS_TOTALPRINTTIME_DE
+const char * const MSG_STATS_TOTALPRINTTIME_LANG_TABLE[1] PROGMEM = {
+	MSG_STATS_TOTALPRINTTIME_EN
 };
 
 const char MSG_STEPPER_TOO_HIGH_EN[] PROGMEM = "Steprate too high: ";
@@ -3029,31 +1381,13 @@ const char * const MSG_STEPPER_TOO_HIGH_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_STOPPED_EN[] PROGMEM = "STOPPED. ";
-const char MSG_STOPPED_IT[] PROGMEM = "ARRESTATO.";
-const char MSG_STOPPED_ES[] PROGMEM = "PARADA";
-const char MSG_STOPPED_DE[] PROGMEM = "GESTOPPT. ";
-const char * const MSG_STOPPED_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_STOPPED_EN,
-	MSG_STOPPED_EN,
-	MSG_STOPPED_IT,
-	MSG_STOPPED_ES,
-	MSG_STOPPED_EN,
-	MSG_STOPPED_DE
+const char * const MSG_STOPPED_LANG_TABLE[1] PROGMEM = {
+	MSG_STOPPED_EN
 };
 
 const char MSG_STOP_PRINT_EN[] PROGMEM = "Stop print";
-const char MSG_STOP_PRINT_CZ[] PROGMEM = "Zastavit tisk";
-const char MSG_STOP_PRINT_IT[] PROGMEM = "Arresta stampa";
-const char MSG_STOP_PRINT_ES[] PROGMEM = "Detener impresion";
-const char MSG_STOP_PRINT_PL[] PROGMEM = "Zatrzymac druk";
-const char MSG_STOP_PRINT_DE[] PROGMEM = "Druck abbrechen";
-const char * const MSG_STOP_PRINT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_STOP_PRINT_EN,
-	MSG_STOP_PRINT_CZ,
-	MSG_STOP_PRINT_IT,
-	MSG_STOP_PRINT_ES,
-	MSG_STOP_PRINT_PL,
-	MSG_STOP_PRINT_DE
+const char * const MSG_STOP_PRINT_LANG_TABLE[1] PROGMEM = {
+	MSG_STOP_PRINT_EN
 };
 
 const char MSG_STORE_EPROM_EN[] PROGMEM = "Store memory";
@@ -3062,171 +1396,63 @@ const char * const MSG_STORE_EPROM_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_SUPPORT_EN[] PROGMEM = "Support";
-const char MSG_SUPPORT_CZ[] PROGMEM = "Podpora";
-const char MSG_SUPPORT_ES[] PROGMEM = "Soporte";
-const char MSG_SUPPORT_PL[] PROGMEM = "Pomoc";
-const char * const MSG_SUPPORT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SUPPORT_EN,
-	MSG_SUPPORT_CZ,
-	MSG_SUPPORT_EN,
-	MSG_SUPPORT_ES,
-	MSG_SUPPORT_PL,
+const char * const MSG_SUPPORT_LANG_TABLE[1] PROGMEM = {
 	MSG_SUPPORT_EN
 };
 
 const char MSG_SWITCH_PS_OFF_EN[] PROGMEM = "Switch power off";
-const char MSG_SWITCH_PS_OFF_CZ[] PROGMEM = "Zapnout zdroj";
-const char MSG_SWITCH_PS_OFF_PL[] PROGMEM = "Zapnout zdroj";
-const char MSG_SWITCH_PS_OFF_DE[] PROGMEM = "Netzteil AUS";
-const char * const MSG_SWITCH_PS_OFF_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SWITCH_PS_OFF_EN,
-	MSG_SWITCH_PS_OFF_CZ,
-	MSG_SWITCH_PS_OFF_EN,
-	MSG_SWITCH_PS_OFF_EN,
-	MSG_SWITCH_PS_OFF_PL,
-	MSG_SWITCH_PS_OFF_DE
+const char * const MSG_SWITCH_PS_OFF_LANG_TABLE[1] PROGMEM = {
+	MSG_SWITCH_PS_OFF_EN
 };
 
 const char MSG_SWITCH_PS_ON_EN[] PROGMEM = "Switch power on";
-const char MSG_SWITCH_PS_ON_CZ[] PROGMEM = "Vypnout zdroj";
-const char MSG_SWITCH_PS_ON_PL[] PROGMEM = "Vypnout zdroj";
-const char MSG_SWITCH_PS_ON_DE[] PROGMEM = "Netzteil EIN";
-const char * const MSG_SWITCH_PS_ON_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_SWITCH_PS_ON_EN,
-	MSG_SWITCH_PS_ON_CZ,
-	MSG_SWITCH_PS_ON_EN,
-	MSG_SWITCH_PS_ON_EN,
-	MSG_SWITCH_PS_ON_PL,
-	MSG_SWITCH_PS_ON_DE
+const char * const MSG_SWITCH_PS_ON_LANG_TABLE[1] PROGMEM = {
+	MSG_SWITCH_PS_ON_EN
 };
 
 const char MSG_TAKE_EFFECT_EN[] PROGMEM = " for take effect";
-const char MSG_TAKE_EFFECT_CZ[] PROGMEM = " pro projeveni zmen";
-const char MSG_TAKE_EFFECT_IT[] PROGMEM = " per attualizzare";
-const char MSG_TAKE_EFFECT_ES[] PROGMEM = " para aplicar cambios";
-const char MSG_TAKE_EFFECT_PL[] PROGMEM = " wprow. zmian";
-const char MSG_TAKE_EFFECT_DE[] PROGMEM = "Drucker neu starten";
-const char * const MSG_TAKE_EFFECT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_TAKE_EFFECT_EN,
-	MSG_TAKE_EFFECT_CZ,
-	MSG_TAKE_EFFECT_IT,
-	MSG_TAKE_EFFECT_ES,
-	MSG_TAKE_EFFECT_PL,
-	MSG_TAKE_EFFECT_DE
+const char * const MSG_TAKE_EFFECT_LANG_TABLE[1] PROGMEM = {
+	MSG_TAKE_EFFECT_EN
 };
 
 const char MSG_TEMPERATURE_EN[] PROGMEM = "Temperature";
-const char MSG_TEMPERATURE_CZ[] PROGMEM = "Teplota";
-const char MSG_TEMPERATURE_IT[] PROGMEM = "Temperatura";
-const char MSG_TEMPERATURE_ES[] PROGMEM = "Temperatura";
-const char MSG_TEMPERATURE_PL[] PROGMEM = "Temperatura";
-const char MSG_TEMPERATURE_DE[] PROGMEM = "Temperatur";
-const char * const MSG_TEMPERATURE_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_TEMPERATURE_EN,
-	MSG_TEMPERATURE_CZ,
-	MSG_TEMPERATURE_IT,
-	MSG_TEMPERATURE_ES,
-	MSG_TEMPERATURE_PL,
-	MSG_TEMPERATURE_DE
+const char * const MSG_TEMPERATURE_LANG_TABLE[1] PROGMEM = {
+	MSG_TEMPERATURE_EN
 };
 
 const char MSG_TEMP_CALIBRATION_EN[] PROGMEM = "Temp. cal.          ";
-const char MSG_TEMP_CALIBRATION_CZ[] PROGMEM = "Tepl. kal.          ";
-const char MSG_TEMP_CALIBRATION_IT[] PROGMEM = "Cal. temp.          ";
-const char MSG_TEMP_CALIBRATION_ES[] PROGMEM = "Cal. temp.          ";
-const char MSG_TEMP_CALIBRATION_PL[] PROGMEM = "Ciepl. kal.         ";
-const char MSG_TEMP_CALIBRATION_DE[] PROGMEM = "Temp Kalib.         ";
-const char * const MSG_TEMP_CALIBRATION_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_TEMP_CALIBRATION_EN,
-	MSG_TEMP_CALIBRATION_CZ,
-	MSG_TEMP_CALIBRATION_IT,
-	MSG_TEMP_CALIBRATION_ES,
-	MSG_TEMP_CALIBRATION_PL,
-	MSG_TEMP_CALIBRATION_DE
+const char * const MSG_TEMP_CALIBRATION_LANG_TABLE[1] PROGMEM = {
+	MSG_TEMP_CALIBRATION_EN
 };
 
 const char MSG_TEMP_CALIBRATION_DONE_EN[] PROGMEM = "Temperature calibration is finished. Click to continue.";
-const char MSG_TEMP_CALIBRATION_DONE_CZ[] PROGMEM = "Teplotni kalibrace dokoncena. Pokracujte stiskem tlacitka.";
-const char MSG_TEMP_CALIBRATION_DONE_IT[] PROGMEM = "Taratura temperatura terminata. Fare click per continuare.";
-const char MSG_TEMP_CALIBRATION_DONE_ES[] PROGMEM = "Calibracon temperatura terminada. Presionar para continuar.";
-const char MSG_TEMP_CALIBRATION_DONE_PL[] PROGMEM = "Cieplna kalibracja zakonczona. Kontynuuj przyciskiem";
-const char MSG_TEMP_CALIBRATION_DONE_DE[] PROGMEM = "Temp. Kalibrierung fertig. Klicken um weiter zu gehen.";
-const char * const MSG_TEMP_CALIBRATION_DONE_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_TEMP_CALIBRATION_DONE_EN,
-	MSG_TEMP_CALIBRATION_DONE_CZ,
-	MSG_TEMP_CALIBRATION_DONE_IT,
-	MSG_TEMP_CALIBRATION_DONE_ES,
-	MSG_TEMP_CALIBRATION_DONE_PL,
-	MSG_TEMP_CALIBRATION_DONE_DE
+const char * const MSG_TEMP_CALIBRATION_DONE_LANG_TABLE[1] PROGMEM = {
+	MSG_TEMP_CALIBRATION_DONE_EN
 };
 
 const char MSG_TEMP_CALIBRATION_OFF_EN[] PROGMEM = "Temp. cal. [OFF]";
-const char MSG_TEMP_CALIBRATION_OFF_CZ[] PROGMEM = "Tepl. kal. [OFF]";
-const char MSG_TEMP_CALIBRATION_OFF_IT[] PROGMEM = "Cal. temp. [OFF]";
-const char MSG_TEMP_CALIBRATION_OFF_ES[] PROGMEM = "Cal. temp. [OFF]";
-const char MSG_TEMP_CALIBRATION_OFF_PL[] PROGMEM = "Ciepl. kal. [OFF]";
-const char MSG_TEMP_CALIBRATION_OFF_DE[] PROGMEM = "Temp. Kal. [OFF]";
-const char * const MSG_TEMP_CALIBRATION_OFF_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_TEMP_CALIBRATION_OFF_EN,
-	MSG_TEMP_CALIBRATION_OFF_CZ,
-	MSG_TEMP_CALIBRATION_OFF_IT,
-	MSG_TEMP_CALIBRATION_OFF_ES,
-	MSG_TEMP_CALIBRATION_OFF_PL,
-	MSG_TEMP_CALIBRATION_OFF_DE
+const char * const MSG_TEMP_CALIBRATION_OFF_LANG_TABLE[1] PROGMEM = {
+	MSG_TEMP_CALIBRATION_OFF_EN
 };
 
 const char MSG_TEMP_CALIBRATION_ON_EN[] PROGMEM = "Temp. cal. [ON]";
-const char MSG_TEMP_CALIBRATION_ON_CZ[] PROGMEM = "Tepl. kal. [ON]";
-const char MSG_TEMP_CALIBRATION_ON_IT[] PROGMEM = "Cal. temp. [ON]";
-const char MSG_TEMP_CALIBRATION_ON_ES[] PROGMEM = "Cal. temp. [ON]";
-const char MSG_TEMP_CALIBRATION_ON_PL[] PROGMEM = "Ciepl. kal. [ON]";
-const char MSG_TEMP_CALIBRATION_ON_DE[] PROGMEM = "Temp. Kal. [ON]";
-const char * const MSG_TEMP_CALIBRATION_ON_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_TEMP_CALIBRATION_ON_EN,
-	MSG_TEMP_CALIBRATION_ON_CZ,
-	MSG_TEMP_CALIBRATION_ON_IT,
-	MSG_TEMP_CALIBRATION_ON_ES,
-	MSG_TEMP_CALIBRATION_ON_PL,
-	MSG_TEMP_CALIBRATION_ON_DE
+const char * const MSG_TEMP_CALIBRATION_ON_LANG_TABLE[1] PROGMEM = {
+	MSG_TEMP_CALIBRATION_ON_EN
 };
 
 const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_EN[] PROGMEM = "SD card [normal]";
-const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_PL[] PROGMEM = "karta SD [normal]";
-const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_DE[] PROGMEM = "SD Karte [normal]";
-const char * const MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_EN,
-	MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_EN,
-	MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_EN,
-	MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_EN,
-	MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_PL,
-	MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_DE
+const char * const MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_LANG_TABLE[1] PROGMEM = {
+	MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_EN
 };
 
 const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_EN[] PROGMEM = "SD card [FlshAir]";
-const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_PL[] PROGMEM = "karta SD[FlshAir]";
-const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_DE[] PROGMEM = "SD Karte [FlashAir]";
-const char * const MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_EN,
-	MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_EN,
-	MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_EN,
-	MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_EN,
-	MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_PL,
-	MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_DE
+const char * const MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_LANG_TABLE[1] PROGMEM = {
+	MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_EN
 };
 
 const char MSG_TUNE_EN[] PROGMEM = "Tune";
-const char MSG_TUNE_CZ[] PROGMEM = "Ladit";
-const char MSG_TUNE_IT[] PROGMEM = "Regola";
-const char MSG_TUNE_ES[] PROGMEM = "Ajustar";
-const char MSG_TUNE_PL[] PROGMEM = "Nastroic";
-const char MSG_TUNE_DE[] PROGMEM = "Feineinstellung";
-const char * const MSG_TUNE_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_TUNE_EN,
-	MSG_TUNE_CZ,
-	MSG_TUNE_IT,
-	MSG_TUNE_ES,
-	MSG_TUNE_PL,
-	MSG_TUNE_DE
+const char * const MSG_TUNE_LANG_TABLE[1] PROGMEM = {
+	MSG_TUNE_EN
 };
 
 const char MSG_UNKNOWN_COMMAND_EN[] PROGMEM = "Unknown command: \"";
@@ -3235,151 +1461,53 @@ const char * const MSG_UNKNOWN_COMMAND_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_UNLOADING_FILAMENT_EN[] PROGMEM = "Unloading filament";
-const char MSG_UNLOADING_FILAMENT_CZ[] PROGMEM = "Vysouvam filament";
-const char MSG_UNLOADING_FILAMENT_IT[] PROGMEM = "Rilasc. filamento";
-const char MSG_UNLOADING_FILAMENT_ES[] PROGMEM = "Soltando filamento";
-const char MSG_UNLOADING_FILAMENT_PL[] PROGMEM = "Wysuwam filament";
-const char MSG_UNLOADING_FILAMENT_DE[] PROGMEM = "Filament auswerfen";
-const char * const MSG_UNLOADING_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_UNLOADING_FILAMENT_EN,
-	MSG_UNLOADING_FILAMENT_CZ,
-	MSG_UNLOADING_FILAMENT_IT,
-	MSG_UNLOADING_FILAMENT_ES,
-	MSG_UNLOADING_FILAMENT_PL,
-	MSG_UNLOADING_FILAMENT_DE
+const char * const MSG_UNLOADING_FILAMENT_LANG_TABLE[1] PROGMEM = {
+	MSG_UNLOADING_FILAMENT_EN
 };
 
 const char MSG_UNLOAD_ALL_EN[] PROGMEM = "Unload all";
-const char MSG_UNLOAD_ALL_CZ[] PROGMEM = "Vyjmout vse";
-const char MSG_UNLOAD_ALL_IT[] PROGMEM = "Rilasciare tutti";
-const char MSG_UNLOAD_ALL_ES[] PROGMEM = "Soltar todos fil.";
-const char MSG_UNLOAD_ALL_PL[] PROGMEM = "Wyjac wszystkie";
-const char MSG_UNLOAD_ALL_DE[] PROGMEM = "Alles entladen";
-const char * const MSG_UNLOAD_ALL_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_UNLOAD_ALL_EN,
-	MSG_UNLOAD_ALL_CZ,
-	MSG_UNLOAD_ALL_IT,
-	MSG_UNLOAD_ALL_ES,
-	MSG_UNLOAD_ALL_PL,
-	MSG_UNLOAD_ALL_DE
+const char * const MSG_UNLOAD_ALL_LANG_TABLE[1] PROGMEM = {
+	MSG_UNLOAD_ALL_EN
 };
 
 const char MSG_UNLOAD_FILAMENT_EN[] PROGMEM = "Unload filament";
-const char MSG_UNLOAD_FILAMENT_CZ[] PROGMEM = "Vyjmout filament";
-const char MSG_UNLOAD_FILAMENT_IT[] PROGMEM = "Scarica filamento";
-const char MSG_UNLOAD_FILAMENT_ES[] PROGMEM = "Soltar filamento";
-const char MSG_UNLOAD_FILAMENT_PL[] PROGMEM = "Wyjac filament";
-const char MSG_UNLOAD_FILAMENT_DE[] PROGMEM = "Filament entladen";
-const char * const MSG_UNLOAD_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_UNLOAD_FILAMENT_EN,
-	MSG_UNLOAD_FILAMENT_CZ,
-	MSG_UNLOAD_FILAMENT_IT,
-	MSG_UNLOAD_FILAMENT_ES,
-	MSG_UNLOAD_FILAMENT_PL,
-	MSG_UNLOAD_FILAMENT_DE
+const char * const MSG_UNLOAD_FILAMENT_LANG_TABLE[1] PROGMEM = {
+	MSG_UNLOAD_FILAMENT_EN
 };
 
 const char MSG_UNLOAD_FILAMENT_1_EN[] PROGMEM = "Unload filament 1";
-const char MSG_UNLOAD_FILAMENT_1_CZ[] PROGMEM = "Vyjmout filam. 1";
-const char MSG_UNLOAD_FILAMENT_1_IT[] PROGMEM = "Rilasciare fil. 1";
-const char MSG_UNLOAD_FILAMENT_1_ES[] PROGMEM = "Soltar fil. 1";
-const char MSG_UNLOAD_FILAMENT_1_PL[] PROGMEM = "Wyjac filament 1";
-const char MSG_UNLOAD_FILAMENT_1_DE[] PROGMEM = "Filam. 1 entladen";
-const char * const MSG_UNLOAD_FILAMENT_1_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_UNLOAD_FILAMENT_1_EN,
-	MSG_UNLOAD_FILAMENT_1_CZ,
-	MSG_UNLOAD_FILAMENT_1_IT,
-	MSG_UNLOAD_FILAMENT_1_ES,
-	MSG_UNLOAD_FILAMENT_1_PL,
-	MSG_UNLOAD_FILAMENT_1_DE
+const char * const MSG_UNLOAD_FILAMENT_1_LANG_TABLE[1] PROGMEM = {
+	MSG_UNLOAD_FILAMENT_1_EN
 };
 
 const char MSG_UNLOAD_FILAMENT_2_EN[] PROGMEM = "Unload filament 2";
-const char MSG_UNLOAD_FILAMENT_2_CZ[] PROGMEM = "Vyjmout filam. 2";
-const char MSG_UNLOAD_FILAMENT_2_IT[] PROGMEM = "Rilasciare fil. 1";
-const char MSG_UNLOAD_FILAMENT_2_ES[] PROGMEM = "Soltar fil. 2";
-const char MSG_UNLOAD_FILAMENT_2_PL[] PROGMEM = "Wyjac filament 2";
-const char MSG_UNLOAD_FILAMENT_2_DE[] PROGMEM = "Filam. 2 entladen";
-const char * const MSG_UNLOAD_FILAMENT_2_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_UNLOAD_FILAMENT_2_EN,
-	MSG_UNLOAD_FILAMENT_2_CZ,
-	MSG_UNLOAD_FILAMENT_2_IT,
-	MSG_UNLOAD_FILAMENT_2_ES,
-	MSG_UNLOAD_FILAMENT_2_PL,
-	MSG_UNLOAD_FILAMENT_2_DE
+const char * const MSG_UNLOAD_FILAMENT_2_LANG_TABLE[1] PROGMEM = {
+	MSG_UNLOAD_FILAMENT_2_EN
 };
 
 const char MSG_UNLOAD_FILAMENT_3_EN[] PROGMEM = "Unload filament 3";
-const char MSG_UNLOAD_FILAMENT_3_CZ[] PROGMEM = "Vyjmout filam. 3";
-const char MSG_UNLOAD_FILAMENT_3_IT[] PROGMEM = "Rilasciare fil. 1";
-const char MSG_UNLOAD_FILAMENT_3_ES[] PROGMEM = "Soltar fil. 3";
-const char MSG_UNLOAD_FILAMENT_3_PL[] PROGMEM = "Wyjac filament 3";
-const char MSG_UNLOAD_FILAMENT_3_DE[] PROGMEM = "Filam. 3 entladen";
-const char * const MSG_UNLOAD_FILAMENT_3_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_UNLOAD_FILAMENT_3_EN,
-	MSG_UNLOAD_FILAMENT_3_CZ,
-	MSG_UNLOAD_FILAMENT_3_IT,
-	MSG_UNLOAD_FILAMENT_3_ES,
-	MSG_UNLOAD_FILAMENT_3_PL,
-	MSG_UNLOAD_FILAMENT_3_DE
+const char * const MSG_UNLOAD_FILAMENT_3_LANG_TABLE[1] PROGMEM = {
+	MSG_UNLOAD_FILAMENT_3_EN
 };
 
 const char MSG_UNLOAD_FILAMENT_4_EN[] PROGMEM = "Unload filament 4";
-const char MSG_UNLOAD_FILAMENT_4_CZ[] PROGMEM = "Vyjmout filam. 4";
-const char MSG_UNLOAD_FILAMENT_4_IT[] PROGMEM = "Rilasciare fil. 1";
-const char MSG_UNLOAD_FILAMENT_4_ES[] PROGMEM = "Soltar fil. 4";
-const char MSG_UNLOAD_FILAMENT_4_PL[] PROGMEM = "Wyjac filament 4";
-const char MSG_UNLOAD_FILAMENT_4_DE[] PROGMEM = "Filam. 4 entladen";
-const char * const MSG_UNLOAD_FILAMENT_4_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_UNLOAD_FILAMENT_4_EN,
-	MSG_UNLOAD_FILAMENT_4_CZ,
-	MSG_UNLOAD_FILAMENT_4_IT,
-	MSG_UNLOAD_FILAMENT_4_ES,
-	MSG_UNLOAD_FILAMENT_4_PL,
-	MSG_UNLOAD_FILAMENT_4_DE
+const char * const MSG_UNLOAD_FILAMENT_4_LANG_TABLE[1] PROGMEM = {
+	MSG_UNLOAD_FILAMENT_4_EN
 };
 
 const char MSG_USB_PRINTING_EN[] PROGMEM = "USB printing  ";
-const char MSG_USB_PRINTING_CZ[] PROGMEM = "Tisk z USB  ";
-const char MSG_USB_PRINTING_IT[] PROGMEM = "Stampa da USB";
-const char MSG_USB_PRINTING_ES[] PROGMEM = "Impresion de USB ";
-const char MSG_USB_PRINTING_PL[] PROGMEM = "Druk z USB  ";
-const char MSG_USB_PRINTING_DE[] PROGMEM = "Drucken ueber USB";
-const char * const MSG_USB_PRINTING_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_USB_PRINTING_EN,
-	MSG_USB_PRINTING_CZ,
-	MSG_USB_PRINTING_IT,
-	MSG_USB_PRINTING_ES,
-	MSG_USB_PRINTING_PL,
-	MSG_USB_PRINTING_DE
+const char * const MSG_USB_PRINTING_LANG_TABLE[1] PROGMEM = {
+	MSG_USB_PRINTING_EN
 };
 
 const char MSG_USED_EN[] PROGMEM = "Used during print";
-const char MSG_USED_CZ[] PROGMEM = "Pouzite behem tisku";
-const char MSG_USED_IT[] PROGMEM = "Usati nella stampa";
-const char MSG_USED_ES[] PROGMEM = "Usado en impresion";
-const char MSG_USED_PL[] PROGMEM = "Uzyte przy druku";
-const char MSG_USED_DE[] PROGMEM = "Beim Druck benutzte";
-const char * const MSG_USED_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_USED_EN,
-	MSG_USED_CZ,
-	MSG_USED_IT,
-	MSG_USED_ES,
-	MSG_USED_PL,
-	MSG_USED_DE
+const char * const MSG_USED_LANG_TABLE[1] PROGMEM = {
+	MSG_USED_EN
 };
 
 const char MSG_USERWAIT_EN[] PROGMEM = "Wait for user...";
-const char MSG_USERWAIT_IT[] PROGMEM = "Attendendo utente";
-const char MSG_USERWAIT_ES[] PROGMEM = "Esperando ordenes";
-const char MSG_USERWAIT_DE[] PROGMEM = "Warte auf user...";
-const char * const MSG_USERWAIT_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_USERWAIT_EN,
-	MSG_USERWAIT_EN,
-	MSG_USERWAIT_IT,
-	MSG_USERWAIT_ES,
-	MSG_USERWAIT_EN,
-	MSG_USERWAIT_DE
+const char * const MSG_USERWAIT_LANG_TABLE[1] PROGMEM = {
+	MSG_USERWAIT_EN
 };
 
 const char MSG_VMIN_EN[] PROGMEM = "Vmin";
@@ -3403,33 +1531,13 @@ const char * const MSG_VTRAV_MIN_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_WAITING_TEMP_EN[] PROGMEM = "Waiting for nozzle and bed cooling";
-const char MSG_WAITING_TEMP_CZ[] PROGMEM = "Cekani na zchladnuti trysky a podlozky.";
-const char MSG_WAITING_TEMP_IT[] PROGMEM = "In attesa del raffreddamento della testina e del piatto";
-const char MSG_WAITING_TEMP_ES[] PROGMEM = "Esperando enfriamiento de la cama y del extrusor.";
-const char MSG_WAITING_TEMP_PL[] PROGMEM = "Oczekiwanie na wychlodzenie dyszy i podkladki.";
-const char MSG_WAITING_TEMP_DE[] PROGMEM = "Warten auf Abkuehlung von Heater und Bed.";
-const char * const MSG_WAITING_TEMP_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_WAITING_TEMP_EN,
-	MSG_WAITING_TEMP_CZ,
-	MSG_WAITING_TEMP_IT,
-	MSG_WAITING_TEMP_ES,
-	MSG_WAITING_TEMP_PL,
-	MSG_WAITING_TEMP_DE
+const char * const MSG_WAITING_TEMP_LANG_TABLE[1] PROGMEM = {
+	MSG_WAITING_TEMP_EN
 };
 
 const char MSG_WATCH_EN[] PROGMEM = "Info screen";
-const char MSG_WATCH_CZ[] PROGMEM = "Informace";
-const char MSG_WATCH_IT[] PROGMEM = "Schermata info";
-const char MSG_WATCH_ES[] PROGMEM = "Monitorizar";
-const char MSG_WATCH_PL[] PROGMEM = "Informacje";
-const char MSG_WATCH_DE[] PROGMEM = "Information";
-const char * const MSG_WATCH_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_WATCH_EN,
-	MSG_WATCH_CZ,
-	MSG_WATCH_IT,
-	MSG_WATCH_ES,
-	MSG_WATCH_PL,
-	MSG_WATCH_DE
+const char * const MSG_WATCH_LANG_TABLE[1] PROGMEM = {
+	MSG_WATCH_EN
 };
 
 const char MSG_WATCHDOG_RESET_EN[] PROGMEM = " Watchdog Reset";
@@ -3448,18 +1556,8 @@ const char * const MSG_X_MIN_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_YES_EN[] PROGMEM = "Yes";
-const char MSG_YES_CZ[] PROGMEM = "Ano";
-const char MSG_YES_IT[] PROGMEM = "Si";
-const char MSG_YES_ES[] PROGMEM = "Si";
-const char MSG_YES_PL[] PROGMEM = "Tak";
-const char MSG_YES_DE[] PROGMEM = "Ja";
-const char * const MSG_YES_LANG_TABLE[LANG_NUM] PROGMEM = {
-	MSG_YES_EN,
-	MSG_YES_CZ,
-	MSG_YES_IT,
-	MSG_YES_ES,
-	MSG_YES_PL,
-	MSG_YES_DE
+const char * const MSG_YES_LANG_TABLE[1] PROGMEM = {
+	MSG_YES_EN
 };
 
 const char MSG_Y_MAX_EN[] PROGMEM = "y_max: ";
@@ -3493,18 +1591,8 @@ const char * const MSG_Z_MIN_LANG_TABLE[1] PROGMEM = {
 };
 
 const char WELCOME_MSG_EN[] PROGMEM = CUSTOM_MENDEL_NAME " ready.";
-const char WELCOME_MSG_CZ[] PROGMEM = CUSTOM_MENDEL_NAME " ok";
-const char WELCOME_MSG_IT[] PROGMEM = CUSTOM_MENDEL_NAME " pronta.";
-const char WELCOME_MSG_ES[] PROGMEM = CUSTOM_MENDEL_NAME " prep.";
-const char WELCOME_MSG_PL[] PROGMEM = CUSTOM_MENDEL_NAME " gotowa";
-const char WELCOME_MSG_DE[] PROGMEM = CUSTOM_MENDEL_NAME " bereit.";
-const char * const WELCOME_MSG_LANG_TABLE[LANG_NUM] PROGMEM = {
-	WELCOME_MSG_EN,
-	WELCOME_MSG_CZ,
-	WELCOME_MSG_IT,
-	WELCOME_MSG_ES,
-	WELCOME_MSG_PL,
-	WELCOME_MSG_DE
+const char * const WELCOME_MSG_LANG_TABLE[1] PROGMEM = {
+	WELCOME_MSG_EN
 };
 
 

+ 400 - 403
Firmware/language_all.h

@@ -28,16 +28,16 @@ extern unsigned char lang_selected;
 
 extern const char* const MSG_ACTIVE_EXTRUDER_LANG_TABLE[1];
 #define MSG_ACTIVE_EXTRUDER LANG_TABLE_SELECT_EXPLICIT(MSG_ACTIVE_EXTRUDER_LANG_TABLE, 0)
-extern const char* const MSG_ADJUSTZ_LANG_TABLE[LANG_NUM];
-#define MSG_ADJUSTZ LANG_TABLE_SELECT(MSG_ADJUSTZ_LANG_TABLE)
-extern const char* const MSG_ALL_LANG_TABLE[LANG_NUM];
-#define MSG_ALL LANG_TABLE_SELECT(MSG_ALL_LANG_TABLE)
+extern const char* const MSG_ADJUSTZ_LANG_TABLE[1];
+#define MSG_ADJUSTZ LANG_TABLE_SELECT_EXPLICIT(MSG_ADJUSTZ_LANG_TABLE, 0)
+extern const char* const MSG_ALL_LANG_TABLE[1];
+#define MSG_ALL LANG_TABLE_SELECT_EXPLICIT(MSG_ALL_LANG_TABLE, 0)
 extern const char* const MSG_AMAX_LANG_TABLE[1];
 #define MSG_AMAX LANG_TABLE_SELECT_EXPLICIT(MSG_AMAX_LANG_TABLE, 0)
 extern const char* const MSG_AUTHOR_LANG_TABLE[1];
 #define MSG_AUTHOR LANG_TABLE_SELECT_EXPLICIT(MSG_AUTHOR_LANG_TABLE, 0)
-extern const char* const MSG_AUTO_HOME_LANG_TABLE[LANG_NUM];
-#define MSG_AUTO_HOME LANG_TABLE_SELECT(MSG_AUTO_HOME_LANG_TABLE)
+extern const char* const MSG_AUTO_HOME_LANG_TABLE[1];
+#define MSG_AUTO_HOME LANG_TABLE_SELECT_EXPLICIT(MSG_AUTO_HOME_LANG_TABLE, 0)
 extern const char* const MSG_A_RETRACT_LANG_TABLE[1];
 #define MSG_A_RETRACT LANG_TABLE_SELECT_EXPLICIT(MSG_A_RETRACT_LANG_TABLE, 0)
 extern const char* const MSG_BABYSTEPPING_X_LANG_TABLE[1];
@@ -50,106 +50,108 @@ extern const char* const MSG_BABYSTEP_X_LANG_TABLE[1];
 #define MSG_BABYSTEP_X LANG_TABLE_SELECT_EXPLICIT(MSG_BABYSTEP_X_LANG_TABLE, 0)
 extern const char* const MSG_BABYSTEP_Y_LANG_TABLE[1];
 #define MSG_BABYSTEP_Y LANG_TABLE_SELECT_EXPLICIT(MSG_BABYSTEP_Y_LANG_TABLE, 0)
-extern const char* const MSG_BABYSTEP_Z_LANG_TABLE[LANG_NUM];
-#define MSG_BABYSTEP_Z LANG_TABLE_SELECT(MSG_BABYSTEP_Z_LANG_TABLE)
-extern const char* const MSG_BABYSTEP_Z_NOT_SET_LANG_TABLE[LANG_NUM];
-#define MSG_BABYSTEP_Z_NOT_SET LANG_TABLE_SELECT(MSG_BABYSTEP_Z_NOT_SET_LANG_TABLE)
-extern const char* const MSG_BED_LANG_TABLE[LANG_NUM];
-#define MSG_BED LANG_TABLE_SELECT(MSG_BED_LANG_TABLE)
-extern const char* const MSG_BED_CORRECTION_FRONT_LANG_TABLE[LANG_NUM];
-#define MSG_BED_CORRECTION_FRONT LANG_TABLE_SELECT(MSG_BED_CORRECTION_FRONT_LANG_TABLE)
-extern const char* const MSG_BED_CORRECTION_LEFT_LANG_TABLE[LANG_NUM];
-#define MSG_BED_CORRECTION_LEFT LANG_TABLE_SELECT(MSG_BED_CORRECTION_LEFT_LANG_TABLE)
-extern const char* const MSG_BED_CORRECTION_MENU_LANG_TABLE[LANG_NUM];
-#define MSG_BED_CORRECTION_MENU LANG_TABLE_SELECT(MSG_BED_CORRECTION_MENU_LANG_TABLE)
-extern const char* const MSG_BED_CORRECTION_REAR_LANG_TABLE[LANG_NUM];
-#define MSG_BED_CORRECTION_REAR LANG_TABLE_SELECT(MSG_BED_CORRECTION_REAR_LANG_TABLE)
-extern const char* const MSG_BED_CORRECTION_RESET_LANG_TABLE[LANG_NUM];
-#define MSG_BED_CORRECTION_RESET LANG_TABLE_SELECT(MSG_BED_CORRECTION_RESET_LANG_TABLE)
-extern const char* const MSG_BED_CORRECTION_RIGHT_LANG_TABLE[LANG_NUM];
-#define MSG_BED_CORRECTION_RIGHT LANG_TABLE_SELECT(MSG_BED_CORRECTION_RIGHT_LANG_TABLE)
-extern const char* const MSG_BED_DONE_LANG_TABLE[LANG_NUM];
-#define MSG_BED_DONE LANG_TABLE_SELECT(MSG_BED_DONE_LANG_TABLE)
-extern const char* const MSG_BED_HEATING_LANG_TABLE[LANG_NUM];
-#define MSG_BED_HEATING LANG_TABLE_SELECT(MSG_BED_HEATING_LANG_TABLE)
-extern const char* const MSG_BED_LEVELING_FAILED_POINT_HIGH_LANG_TABLE[LANG_NUM];
-#define MSG_BED_LEVELING_FAILED_POINT_HIGH LANG_TABLE_SELECT(MSG_BED_LEVELING_FAILED_POINT_HIGH_LANG_TABLE)
-extern const char* const MSG_BED_LEVELING_FAILED_POINT_LOW_LANG_TABLE[LANG_NUM];
-#define MSG_BED_LEVELING_FAILED_POINT_LOW LANG_TABLE_SELECT(MSG_BED_LEVELING_FAILED_POINT_LOW_LANG_TABLE)
-extern const char* const MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_LANG_TABLE[LANG_NUM];
-#define MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED LANG_TABLE_SELECT(MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_LANG_TABLE)
-extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_LANG_TABLE[LANG_NUM];
-#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR LANG_TABLE_SELECT(MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_LANG_TABLE)
-extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_LANG_TABLE[LANG_NUM];
-#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR LANG_TABLE_SELECT(MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_LANG_TABLE)
-extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_LANG_TABLE[LANG_NUM];
-#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR LANG_TABLE_SELECT(MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_LANG_TABLE)
-extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_LANG_TABLE[LANG_NUM];
-#define MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED LANG_TABLE_SELECT(MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_LANG_TABLE)
-extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_LANG_TABLE[LANG_NUM];
-#define MSG_BED_SKEW_OFFSET_DETECTION_PERFECT LANG_TABLE_SELECT(MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_LANG_TABLE)
-extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_LANG_TABLE[LANG_NUM];
-#define MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND LANG_TABLE_SELECT(MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_LANG_TABLE)
-extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_LANG_TABLE[LANG_NUM];
-#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME LANG_TABLE_SELECT(MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_LANG_TABLE)
-extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_LANG_TABLE[LANG_NUM];
-#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD LANG_TABLE_SELECT(MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_LANG_TABLE)
-extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_LANG_TABLE[LANG_NUM];
-#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR LANG_TABLE_SELECT(MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_LANG_TABLE)
-extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_LANG_TABLE[LANG_NUM];
-#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR LANG_TABLE_SELECT(MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_LANG_TABLE)
-extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_LANG_TABLE[LANG_NUM];
-#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR LANG_TABLE_SELECT(MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_LANG_TABLE)
+extern const char* const MSG_BABYSTEP_Z_LANG_TABLE[1];
+#define MSG_BABYSTEP_Z LANG_TABLE_SELECT_EXPLICIT(MSG_BABYSTEP_Z_LANG_TABLE, 0)
+extern const char* const MSG_BABYSTEP_Z_NOT_SET_LANG_TABLE[1];
+#define MSG_BABYSTEP_Z_NOT_SET LANG_TABLE_SELECT_EXPLICIT(MSG_BABYSTEP_Z_NOT_SET_LANG_TABLE, 0)
+extern const char* const MSG_BED_LANG_TABLE[1];
+#define MSG_BED LANG_TABLE_SELECT_EXPLICIT(MSG_BED_LANG_TABLE, 0)
+extern const char* const MSG_BED_CORRECTION_FRONT_LANG_TABLE[1];
+#define MSG_BED_CORRECTION_FRONT LANG_TABLE_SELECT_EXPLICIT(MSG_BED_CORRECTION_FRONT_LANG_TABLE, 0)
+extern const char* const MSG_BED_CORRECTION_LEFT_LANG_TABLE[1];
+#define MSG_BED_CORRECTION_LEFT LANG_TABLE_SELECT_EXPLICIT(MSG_BED_CORRECTION_LEFT_LANG_TABLE, 0)
+extern const char* const MSG_BED_CORRECTION_MENU_LANG_TABLE[1];
+#define MSG_BED_CORRECTION_MENU LANG_TABLE_SELECT_EXPLICIT(MSG_BED_CORRECTION_MENU_LANG_TABLE, 0)
+extern const char* const MSG_BED_CORRECTION_REAR_LANG_TABLE[1];
+#define MSG_BED_CORRECTION_REAR LANG_TABLE_SELECT_EXPLICIT(MSG_BED_CORRECTION_REAR_LANG_TABLE, 0)
+extern const char* const MSG_BED_CORRECTION_RESET_LANG_TABLE[1];
+#define MSG_BED_CORRECTION_RESET LANG_TABLE_SELECT_EXPLICIT(MSG_BED_CORRECTION_RESET_LANG_TABLE, 0)
+extern const char* const MSG_BED_CORRECTION_RIGHT_LANG_TABLE[1];
+#define MSG_BED_CORRECTION_RIGHT LANG_TABLE_SELECT_EXPLICIT(MSG_BED_CORRECTION_RIGHT_LANG_TABLE, 0)
+extern const char* const MSG_BED_DONE_LANG_TABLE[1];
+#define MSG_BED_DONE LANG_TABLE_SELECT_EXPLICIT(MSG_BED_DONE_LANG_TABLE, 0)
+extern const char* const MSG_BED_HEATING_LANG_TABLE[1];
+#define MSG_BED_HEATING LANG_TABLE_SELECT_EXPLICIT(MSG_BED_HEATING_LANG_TABLE, 0)
+extern const char* const MSG_BED_LEVELING_FAILED_POINT_HIGH_LANG_TABLE[1];
+#define MSG_BED_LEVELING_FAILED_POINT_HIGH LANG_TABLE_SELECT_EXPLICIT(MSG_BED_LEVELING_FAILED_POINT_HIGH_LANG_TABLE, 0)
+extern const char* const MSG_BED_LEVELING_FAILED_POINT_LOW_LANG_TABLE[1];
+#define MSG_BED_LEVELING_FAILED_POINT_LOW LANG_TABLE_SELECT_EXPLICIT(MSG_BED_LEVELING_FAILED_POINT_LOW_LANG_TABLE, 0)
+extern const char* const MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_LANG_TABLE[1];
+#define MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED LANG_TABLE_SELECT_EXPLICIT(MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_LANG_TABLE, 0)
+extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_LANG_TABLE[1];
+#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR LANG_TABLE_SELECT_EXPLICIT(MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR_LANG_TABLE, 0)
+extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_LANG_TABLE[1];
+#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR LANG_TABLE_SELECT_EXPLICIT(MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR_LANG_TABLE, 0)
+extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_LANG_TABLE[1];
+#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR LANG_TABLE_SELECT_EXPLICIT(MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR_LANG_TABLE, 0)
+extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_LANG_TABLE[1];
+#define MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED LANG_TABLE_SELECT_EXPLICIT(MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_LANG_TABLE, 0)
+extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_LANG_TABLE[1];
+#define MSG_BED_SKEW_OFFSET_DETECTION_PERFECT LANG_TABLE_SELECT_EXPLICIT(MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_LANG_TABLE, 0)
+extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_LANG_TABLE[1];
+#define MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND LANG_TABLE_SELECT_EXPLICIT(MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_LANG_TABLE, 0)
+extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_LANG_TABLE[1];
+#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME LANG_TABLE_SELECT_EXPLICIT(MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_LANG_TABLE, 0)
+extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_LANG_TABLE[1];
+#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD LANG_TABLE_SELECT_EXPLICIT(MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_LANG_TABLE, 0)
+extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_LANG_TABLE[1];
+#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR LANG_TABLE_SELECT_EXPLICIT(MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR_LANG_TABLE, 0)
+extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_LANG_TABLE[1];
+#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR LANG_TABLE_SELECT_EXPLICIT(MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR_LANG_TABLE, 0)
+extern const char* const MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_LANG_TABLE[1];
+#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR LANG_TABLE_SELECT_EXPLICIT(MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR_LANG_TABLE, 0)
 extern const char* const MSG_BEGIN_FILE_LIST_LANG_TABLE[1];
 #define MSG_BEGIN_FILE_LIST LANG_TABLE_SELECT_EXPLICIT(MSG_BEGIN_FILE_LIST_LANG_TABLE, 0)
 extern const char* const MSG_BROWNOUT_RESET_LANG_TABLE[1];
 #define MSG_BROWNOUT_RESET LANG_TABLE_SELECT_EXPLICIT(MSG_BROWNOUT_RESET_LANG_TABLE, 0)
-extern const char* const MSG_CALIBRATE_BED_LANG_TABLE[LANG_NUM];
-#define MSG_CALIBRATE_BED LANG_TABLE_SELECT(MSG_CALIBRATE_BED_LANG_TABLE)
-extern const char* const MSG_CALIBRATE_BED_RESET_LANG_TABLE[LANG_NUM];
-#define MSG_CALIBRATE_BED_RESET LANG_TABLE_SELECT(MSG_CALIBRATE_BED_RESET_LANG_TABLE)
-extern const char* const MSG_CALIBRATE_E_LANG_TABLE[LANG_NUM];
-#define MSG_CALIBRATE_E LANG_TABLE_SELECT(MSG_CALIBRATE_E_LANG_TABLE)
-extern const char* const MSG_CALIBRATE_PINDA_LANG_TABLE[LANG_NUM];
-#define MSG_CALIBRATE_PINDA LANG_TABLE_SELECT(MSG_CALIBRATE_PINDA_LANG_TABLE)
-extern const char* const MSG_CALIBRATION_PINDA_MENU_LANG_TABLE[LANG_NUM];
-#define MSG_CALIBRATION_PINDA_MENU LANG_TABLE_SELECT(MSG_CALIBRATION_PINDA_MENU_LANG_TABLE)
-extern const char* const MSG_CARD_MENU_LANG_TABLE[LANG_NUM];
-#define MSG_CARD_MENU LANG_TABLE_SELECT(MSG_CARD_MENU_LANG_TABLE)
-extern const char* const MSG_CHANGE_EXTR_LANG_TABLE[LANG_NUM];
-#define MSG_CHANGE_EXTR LANG_TABLE_SELECT(MSG_CHANGE_EXTR_LANG_TABLE)
-extern const char* const MSG_CHANGE_SUCCESS_LANG_TABLE[LANG_NUM];
-#define MSG_CHANGE_SUCCESS LANG_TABLE_SELECT(MSG_CHANGE_SUCCESS_LANG_TABLE)
-extern const char* const MSG_CHANGING_FILAMENT_LANG_TABLE[LANG_NUM];
-#define MSG_CHANGING_FILAMENT LANG_TABLE_SELECT(MSG_CHANGING_FILAMENT_LANG_TABLE)
-extern const char* const MSG_CHOOSE_EXTRUDER_LANG_TABLE[LANG_NUM];
-#define MSG_CHOOSE_EXTRUDER LANG_TABLE_SELECT(MSG_CHOOSE_EXTRUDER_LANG_TABLE)
-extern const char* const MSG_CLEAN_NOZZLE_E_LANG_TABLE[LANG_NUM];
-#define MSG_CLEAN_NOZZLE_E LANG_TABLE_SELECT(MSG_CLEAN_NOZZLE_E_LANG_TABLE)
+extern const char* const MSG_CALIBRATE_BED_LANG_TABLE[1];
+#define MSG_CALIBRATE_BED LANG_TABLE_SELECT_EXPLICIT(MSG_CALIBRATE_BED_LANG_TABLE, 0)
+extern const char* const MSG_CALIBRATE_BED_RESET_LANG_TABLE[1];
+#define MSG_CALIBRATE_BED_RESET LANG_TABLE_SELECT_EXPLICIT(MSG_CALIBRATE_BED_RESET_LANG_TABLE, 0)
+extern const char* const MSG_CALIBRATE_E_LANG_TABLE[1];
+#define MSG_CALIBRATE_E LANG_TABLE_SELECT_EXPLICIT(MSG_CALIBRATE_E_LANG_TABLE, 0)
+extern const char* const MSG_CALIBRATE_PINDA_LANG_TABLE[1];
+#define MSG_CALIBRATE_PINDA LANG_TABLE_SELECT_EXPLICIT(MSG_CALIBRATE_PINDA_LANG_TABLE, 0)
+extern const char* const MSG_CALIBRATE_Z_AUTO_LANG_TABLE[1];
+#define MSG_CALIBRATE_Z_AUTO LANG_TABLE_SELECT_EXPLICIT(MSG_CALIBRATE_Z_AUTO_LANG_TABLE, 0)
+extern const char* const MSG_CALIBRATION_PINDA_MENU_LANG_TABLE[1];
+#define MSG_CALIBRATION_PINDA_MENU LANG_TABLE_SELECT_EXPLICIT(MSG_CALIBRATION_PINDA_MENU_LANG_TABLE, 0)
+extern const char* const MSG_CARD_MENU_LANG_TABLE[1];
+#define MSG_CARD_MENU LANG_TABLE_SELECT_EXPLICIT(MSG_CARD_MENU_LANG_TABLE, 0)
+extern const char* const MSG_CHANGE_EXTR_LANG_TABLE[1];
+#define MSG_CHANGE_EXTR LANG_TABLE_SELECT_EXPLICIT(MSG_CHANGE_EXTR_LANG_TABLE, 0)
+extern const char* const MSG_CHANGE_SUCCESS_LANG_TABLE[1];
+#define MSG_CHANGE_SUCCESS LANG_TABLE_SELECT_EXPLICIT(MSG_CHANGE_SUCCESS_LANG_TABLE, 0)
+extern const char* const MSG_CHANGING_FILAMENT_LANG_TABLE[1];
+#define MSG_CHANGING_FILAMENT LANG_TABLE_SELECT_EXPLICIT(MSG_CHANGING_FILAMENT_LANG_TABLE, 0)
+extern const char* const MSG_CHOOSE_EXTRUDER_LANG_TABLE[1];
+#define MSG_CHOOSE_EXTRUDER LANG_TABLE_SELECT_EXPLICIT(MSG_CHOOSE_EXTRUDER_LANG_TABLE, 0)
+extern const char* const MSG_CLEAN_NOZZLE_E_LANG_TABLE[1];
+#define MSG_CLEAN_NOZZLE_E LANG_TABLE_SELECT_EXPLICIT(MSG_CLEAN_NOZZLE_E_LANG_TABLE, 0)
 extern const char* const MSG_CNG_SDCARD_LANG_TABLE[1];
 #define MSG_CNG_SDCARD LANG_TABLE_SELECT_EXPLICIT(MSG_CNG_SDCARD_LANG_TABLE, 0)
 extern const char* const MSG_CONFIGURATION_VER_LANG_TABLE[1];
 #define MSG_CONFIGURATION_VER LANG_TABLE_SELECT_EXPLICIT(MSG_CONFIGURATION_VER_LANG_TABLE, 0)
-extern const char* const MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LANG_TABLE[LANG_NUM];
-#define MSG_CONFIRM_CARRIAGE_AT_THE_TOP LANG_TABLE_SELECT(MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LANG_TABLE)
-extern const char* const MSG_CONFIRM_NOZZLE_CLEAN_LANG_TABLE[LANG_NUM];
-#define MSG_CONFIRM_NOZZLE_CLEAN LANG_TABLE_SELECT(MSG_CONFIRM_NOZZLE_CLEAN_LANG_TABLE)
-extern const char* const MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_LANG_TABLE[LANG_NUM];
-#define MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ LANG_TABLE_SELECT(MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_LANG_TABLE)
+extern const char* const MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LANG_TABLE[1];
+#define MSG_CONFIRM_CARRIAGE_AT_THE_TOP LANG_TABLE_SELECT_EXPLICIT(MSG_CONFIRM_CARRIAGE_AT_THE_TOP_LANG_TABLE, 0)
+extern const char* const MSG_CONFIRM_NOZZLE_CLEAN_LANG_TABLE[1];
+#define MSG_CONFIRM_NOZZLE_CLEAN LANG_TABLE_SELECT_EXPLICIT(MSG_CONFIRM_NOZZLE_CLEAN_LANG_TABLE, 0)
+extern const char* const MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_LANG_TABLE[1];
+#define MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ LANG_TABLE_SELECT_EXPLICIT(MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ_LANG_TABLE, 0)
 extern const char* const MSG_CONTROL_LANG_TABLE[1];
 #define MSG_CONTROL LANG_TABLE_SELECT_EXPLICIT(MSG_CONTROL_LANG_TABLE, 0)
-extern const char* const MSG_COOLDOWN_LANG_TABLE[LANG_NUM];
-#define MSG_COOLDOWN LANG_TABLE_SELECT(MSG_COOLDOWN_LANG_TABLE)
-extern const char* const MSG_CORRECTLY_LANG_TABLE[LANG_NUM];
-#define MSG_CORRECTLY LANG_TABLE_SELECT(MSG_CORRECTLY_LANG_TABLE)
+extern const char* const MSG_COOLDOWN_LANG_TABLE[1];
+#define MSG_COOLDOWN LANG_TABLE_SELECT_EXPLICIT(MSG_COOLDOWN_LANG_TABLE, 0)
+extern const char* const MSG_CORRECTLY_LANG_TABLE[1];
+#define MSG_CORRECTLY LANG_TABLE_SELECT_EXPLICIT(MSG_CORRECTLY_LANG_TABLE, 0)
 extern const char* const MSG_COUNT_X_LANG_TABLE[1];
 #define MSG_COUNT_X LANG_TABLE_SELECT_EXPLICIT(MSG_COUNT_X_LANG_TABLE, 0)
-extern const char* const MSG_CURRENT_LANG_TABLE[LANG_NUM];
-#define MSG_CURRENT LANG_TABLE_SELECT(MSG_CURRENT_LANG_TABLE)
-extern const char* const MSG_DISABLE_STEPPERS_LANG_TABLE[LANG_NUM];
-#define MSG_DISABLE_STEPPERS LANG_TABLE_SELECT(MSG_DISABLE_STEPPERS_LANG_TABLE)
-extern const char* const MSG_DWELL_LANG_TABLE[LANG_NUM];
-#define MSG_DWELL LANG_TABLE_SELECT(MSG_DWELL_LANG_TABLE)
+extern const char* const MSG_CURRENT_LANG_TABLE[1];
+#define MSG_CURRENT LANG_TABLE_SELECT_EXPLICIT(MSG_CURRENT_LANG_TABLE, 0)
+extern const char* const MSG_DISABLE_STEPPERS_LANG_TABLE[1];
+#define MSG_DISABLE_STEPPERS LANG_TABLE_SELECT_EXPLICIT(MSG_DISABLE_STEPPERS_LANG_TABLE, 0)
+extern const char* const MSG_DWELL_LANG_TABLE[1];
+#define MSG_DWELL LANG_TABLE_SELECT_EXPLICIT(MSG_DWELL_LANG_TABLE, 0)
 extern const char* const MSG_ENDSTOPS_HIT_LANG_TABLE[1];
 #define MSG_ENDSTOPS_HIT LANG_TABLE_SELECT_EXPLICIT(MSG_ENDSTOPS_HIT_LANG_TABLE, 0)
 extern const char* const MSG_ENDSTOP_HIT_LANG_TABLE[1];
@@ -158,8 +160,8 @@ extern const char* const MSG_ENDSTOP_OPEN_LANG_TABLE[1];
 #define MSG_ENDSTOP_OPEN LANG_TABLE_SELECT_EXPLICIT(MSG_ENDSTOP_OPEN_LANG_TABLE, 0)
 extern const char* const MSG_END_FILE_LIST_LANG_TABLE[1];
 #define MSG_END_FILE_LIST LANG_TABLE_SELECT_EXPLICIT(MSG_END_FILE_LIST_LANG_TABLE, 0)
-extern const char* const MSG_ERROR_LANG_TABLE[LANG_NUM];
-#define MSG_ERROR LANG_TABLE_SELECT(MSG_ERROR_LANG_TABLE)
+extern const char* const MSG_ERROR_LANG_TABLE[1];
+#define MSG_ERROR LANG_TABLE_SELECT_EXPLICIT(MSG_ERROR_LANG_TABLE, 0)
 extern const char* const MSG_ERR_CHECKSUM_MISMATCH_LANG_TABLE[1];
 #define MSG_ERR_CHECKSUM_MISMATCH LANG_TABLE_SELECT_EXPLICIT(MSG_ERR_CHECKSUM_MISMATCH_LANG_TABLE, 0)
 extern const char* const MSG_ERR_COLD_EXTRUDE_STOP_LANG_TABLE[1];
@@ -180,82 +182,84 @@ extern const char* const MSG_ERR_STOPPED_LANG_TABLE[1];
 #define MSG_ERR_STOPPED LANG_TABLE_SELECT_EXPLICIT(MSG_ERR_STOPPED_LANG_TABLE, 0)
 extern const char* const MSG_EXTERNAL_RESET_LANG_TABLE[1];
 #define MSG_EXTERNAL_RESET LANG_TABLE_SELECT_EXPLICIT(MSG_EXTERNAL_RESET_LANG_TABLE, 0)
-extern const char* const MSG_EXTRUDER_LANG_TABLE[LANG_NUM];
-#define MSG_EXTRUDER LANG_TABLE_SELECT(MSG_EXTRUDER_LANG_TABLE)
-extern const char* const MSG_EXTRUDER_1_LANG_TABLE[LANG_NUM];
-#define MSG_EXTRUDER_1 LANG_TABLE_SELECT(MSG_EXTRUDER_1_LANG_TABLE)
-extern const char* const MSG_EXTRUDER_2_LANG_TABLE[LANG_NUM];
-#define MSG_EXTRUDER_2 LANG_TABLE_SELECT(MSG_EXTRUDER_2_LANG_TABLE)
-extern const char* const MSG_EXTRUDER_3_LANG_TABLE[LANG_NUM];
-#define MSG_EXTRUDER_3 LANG_TABLE_SELECT(MSG_EXTRUDER_3_LANG_TABLE)
-extern const char* const MSG_EXTRUDER_4_LANG_TABLE[LANG_NUM];
-#define MSG_EXTRUDER_4 LANG_TABLE_SELECT(MSG_EXTRUDER_4_LANG_TABLE)
-extern const char* const MSG_E_CAL_KNOB_LANG_TABLE[LANG_NUM];
-#define MSG_E_CAL_KNOB LANG_TABLE_SELECT(MSG_E_CAL_KNOB_LANG_TABLE)
+extern const char* const MSG_EXTRUDER_LANG_TABLE[1];
+#define MSG_EXTRUDER LANG_TABLE_SELECT_EXPLICIT(MSG_EXTRUDER_LANG_TABLE, 0)
+extern const char* const MSG_EXTRUDER_1_LANG_TABLE[1];
+#define MSG_EXTRUDER_1 LANG_TABLE_SELECT_EXPLICIT(MSG_EXTRUDER_1_LANG_TABLE, 0)
+extern const char* const MSG_EXTRUDER_2_LANG_TABLE[1];
+#define MSG_EXTRUDER_2 LANG_TABLE_SELECT_EXPLICIT(MSG_EXTRUDER_2_LANG_TABLE, 0)
+extern const char* const MSG_EXTRUDER_3_LANG_TABLE[1];
+#define MSG_EXTRUDER_3 LANG_TABLE_SELECT_EXPLICIT(MSG_EXTRUDER_3_LANG_TABLE, 0)
+extern const char* const MSG_EXTRUDER_4_LANG_TABLE[1];
+#define MSG_EXTRUDER_4 LANG_TABLE_SELECT_EXPLICIT(MSG_EXTRUDER_4_LANG_TABLE, 0)
+extern const char* const MSG_E_CAL_KNOB_LANG_TABLE[1];
+#define MSG_E_CAL_KNOB LANG_TABLE_SELECT_EXPLICIT(MSG_E_CAL_KNOB_LANG_TABLE, 0)
 extern const char* const MSG_Enqueing_LANG_TABLE[1];
 #define MSG_Enqueing LANG_TABLE_SELECT_EXPLICIT(MSG_Enqueing_LANG_TABLE, 0)
 extern const char* const MSG_FACTOR_LANG_TABLE[1];
 #define MSG_FACTOR LANG_TABLE_SELECT_EXPLICIT(MSG_FACTOR_LANG_TABLE, 0)
-extern const char* const MSG_FAN_SPEED_LANG_TABLE[LANG_NUM];
-#define MSG_FAN_SPEED LANG_TABLE_SELECT(MSG_FAN_SPEED_LANG_TABLE)
+extern const char* const MSG_FAN_SPEED_LANG_TABLE[1];
+#define MSG_FAN_SPEED LANG_TABLE_SELECT_EXPLICIT(MSG_FAN_SPEED_LANG_TABLE, 0)
 extern const char* const MSG_FARM_CARD_MENU_LANG_TABLE[1];
 #define MSG_FARM_CARD_MENU LANG_TABLE_SELECT_EXPLICIT(MSG_FARM_CARD_MENU_LANG_TABLE, 0)
-extern const char* const MSG_FILAMENTCHANGE_LANG_TABLE[LANG_NUM];
-#define MSG_FILAMENTCHANGE LANG_TABLE_SELECT(MSG_FILAMENTCHANGE_LANG_TABLE)
-extern const char* const MSG_FILAMENT_CLEAN_LANG_TABLE[LANG_NUM];
-#define MSG_FILAMENT_CLEAN LANG_TABLE_SELECT(MSG_FILAMENT_CLEAN_LANG_TABLE)
-extern const char* const MSG_FILAMENT_LOADING_T0_LANG_TABLE[LANG_NUM];
-#define MSG_FILAMENT_LOADING_T0 LANG_TABLE_SELECT(MSG_FILAMENT_LOADING_T0_LANG_TABLE)
-extern const char* const MSG_FILAMENT_LOADING_T1_LANG_TABLE[LANG_NUM];
-#define MSG_FILAMENT_LOADING_T1 LANG_TABLE_SELECT(MSG_FILAMENT_LOADING_T1_LANG_TABLE)
-extern const char* const MSG_FILAMENT_LOADING_T2_LANG_TABLE[LANG_NUM];
-#define MSG_FILAMENT_LOADING_T2 LANG_TABLE_SELECT(MSG_FILAMENT_LOADING_T2_LANG_TABLE)
-extern const char* const MSG_FILAMENT_LOADING_T3_LANG_TABLE[LANG_NUM];
-#define MSG_FILAMENT_LOADING_T3 LANG_TABLE_SELECT(MSG_FILAMENT_LOADING_T3_LANG_TABLE)
+extern const char* const MSG_FILAMENTCHANGE_LANG_TABLE[1];
+#define MSG_FILAMENTCHANGE LANG_TABLE_SELECT_EXPLICIT(MSG_FILAMENTCHANGE_LANG_TABLE, 0)
+extern const char* const MSG_FILAMENT_CLEAN_LANG_TABLE[1];
+#define MSG_FILAMENT_CLEAN LANG_TABLE_SELECT_EXPLICIT(MSG_FILAMENT_CLEAN_LANG_TABLE, 0)
+extern const char* const MSG_FILAMENT_LOADING_T0_LANG_TABLE[1];
+#define MSG_FILAMENT_LOADING_T0 LANG_TABLE_SELECT_EXPLICIT(MSG_FILAMENT_LOADING_T0_LANG_TABLE, 0)
+extern const char* const MSG_FILAMENT_LOADING_T1_LANG_TABLE[1];
+#define MSG_FILAMENT_LOADING_T1 LANG_TABLE_SELECT_EXPLICIT(MSG_FILAMENT_LOADING_T1_LANG_TABLE, 0)
+extern const char* const MSG_FILAMENT_LOADING_T2_LANG_TABLE[1];
+#define MSG_FILAMENT_LOADING_T2 LANG_TABLE_SELECT_EXPLICIT(MSG_FILAMENT_LOADING_T2_LANG_TABLE, 0)
+extern const char* const MSG_FILAMENT_LOADING_T3_LANG_TABLE[1];
+#define MSG_FILAMENT_LOADING_T3 LANG_TABLE_SELECT_EXPLICIT(MSG_FILAMENT_LOADING_T3_LANG_TABLE, 0)
 extern const char* const MSG_FILE_PRINTED_LANG_TABLE[1];
 #define MSG_FILE_PRINTED LANG_TABLE_SELECT_EXPLICIT(MSG_FILE_PRINTED_LANG_TABLE, 0)
 extern const char* const MSG_FILE_SAVED_LANG_TABLE[1];
 #define MSG_FILE_SAVED LANG_TABLE_SELECT_EXPLICIT(MSG_FILE_SAVED_LANG_TABLE, 0)
-extern const char* const MSG_FIL_ADJUSTING_LANG_TABLE[LANG_NUM];
-#define MSG_FIL_ADJUSTING LANG_TABLE_SELECT(MSG_FIL_ADJUSTING_LANG_TABLE)
-extern const char* const MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_LANG_TABLE[LANG_NUM];
-#define MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION LANG_TABLE_SELECT(MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_LANG_TABLE)
-extern const char* const MSG_CALIBRATE_Z_AUTO_LANG_TABLE[LANG_NUM];
-#define MSG_CALIBRATE_Z_AUTO LANG_TABLE_SELECT(MSG_CALIBRATE_Z_AUTO_LANG_TABLE)
-extern const char* const MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_LANG_TABLE[LANG_NUM];
-#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 LANG_TABLE_SELECT(MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_LANG_TABLE)
-extern const char* const MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_LANG_TABLE[LANG_NUM];
-#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE2 LANG_TABLE_SELECT(MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_LANG_TABLE)
-extern const char* const MSG_FINISHING_MOVEMENTS_LANG_TABLE[LANG_NUM];
-#define MSG_FINISHING_MOVEMENTS LANG_TABLE_SELECT(MSG_FINISHING_MOVEMENTS_LANG_TABLE)
-extern const char* const MSG_FLOW_LANG_TABLE[LANG_NUM];
-#define MSG_FLOW LANG_TABLE_SELECT(MSG_FLOW_LANG_TABLE)
+extern const char* const MSG_FIL_ADJUSTING_LANG_TABLE[1];
+#define MSG_FIL_ADJUSTING LANG_TABLE_SELECT_EXPLICIT(MSG_FIL_ADJUSTING_LANG_TABLE, 0)
+extern const char* const MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_LANG_TABLE[1];
+#define MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION LANG_TABLE_SELECT_EXPLICIT(MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_LANG_TABLE, 0)
+extern const char* const MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_LANG_TABLE[1];
+#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 LANG_TABLE_SELECT_EXPLICIT(MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_LANG_TABLE, 0)
+extern const char* const MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_LANG_TABLE[1];
+#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE2 LANG_TABLE_SELECT_EXPLICIT(MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_LANG_TABLE, 0)
+extern const char* const MSG_FINISHING_MOVEMENTS_LANG_TABLE[1];
+#define MSG_FINISHING_MOVEMENTS LANG_TABLE_SELECT_EXPLICIT(MSG_FINISHING_MOVEMENTS_LANG_TABLE, 0)
+extern const char* const MSG_FLOW_LANG_TABLE[1];
+#define MSG_FLOW LANG_TABLE_SELECT_EXPLICIT(MSG_FLOW_LANG_TABLE, 0)
 extern const char* const MSG_FLOW0_LANG_TABLE[1];
 #define MSG_FLOW0 LANG_TABLE_SELECT_EXPLICIT(MSG_FLOW0_LANG_TABLE, 0)
 extern const char* const MSG_FLOW1_LANG_TABLE[1];
 #define MSG_FLOW1 LANG_TABLE_SELECT_EXPLICIT(MSG_FLOW1_LANG_TABLE, 0)
 extern const char* const MSG_FLOW2_LANG_TABLE[1];
 #define MSG_FLOW2 LANG_TABLE_SELECT_EXPLICIT(MSG_FLOW2_LANG_TABLE, 0)
-extern const char* const MSG_FOLLOW_CALIBRATION_FLOW_LANG_TABLE[LANG_NUM];
-#define MSG_FOLLOW_CALIBRATION_FLOW LANG_TABLE_SELECT(MSG_FOLLOW_CALIBRATION_FLOW_LANG_TABLE)
+extern const char* const MSG_FOLLOW_CALIBRATION_FLOW_LANG_TABLE[1];
+#define MSG_FOLLOW_CALIBRATION_FLOW LANG_TABLE_SELECT_EXPLICIT(MSG_FOLLOW_CALIBRATION_FLOW_LANG_TABLE, 0)
 extern const char* const MSG_FREE_MEMORY_LANG_TABLE[1];
 #define MSG_FREE_MEMORY LANG_TABLE_SELECT_EXPLICIT(MSG_FREE_MEMORY_LANG_TABLE, 0)
-extern const char* const MSG_HEATING_LANG_TABLE[LANG_NUM];
-#define MSG_HEATING LANG_TABLE_SELECT(MSG_HEATING_LANG_TABLE)
-extern const char* const MSG_HEATING_COMPLETE_LANG_TABLE[LANG_NUM];
-#define MSG_HEATING_COMPLETE LANG_TABLE_SELECT(MSG_HEATING_COMPLETE_LANG_TABLE)
-extern const char* const MSG_HOMEYZ_LANG_TABLE[LANG_NUM];
-#define MSG_HOMEYZ LANG_TABLE_SELECT(MSG_HOMEYZ_LANG_TABLE)
-extern const char* const MSG_HOMEYZ_DONE_LANG_TABLE[LANG_NUM];
-#define MSG_HOMEYZ_DONE LANG_TABLE_SELECT(MSG_HOMEYZ_DONE_LANG_TABLE)
-extern const char* const MSG_HOMEYZ_PROGRESS_LANG_TABLE[LANG_NUM];
-#define MSG_HOMEYZ_PROGRESS LANG_TABLE_SELECT(MSG_HOMEYZ_PROGRESS_LANG_TABLE)
+extern const char* const MSG_FSENSOR_OFF_LANG_TABLE[1];
+#define MSG_FSENSOR_OFF LANG_TABLE_SELECT_EXPLICIT(MSG_FSENSOR_OFF_LANG_TABLE, 0)
+extern const char* const MSG_FSENSOR_ON_LANG_TABLE[1];
+#define MSG_FSENSOR_ON LANG_TABLE_SELECT_EXPLICIT(MSG_FSENSOR_ON_LANG_TABLE, 0)
+extern const char* const MSG_HEATING_LANG_TABLE[1];
+#define MSG_HEATING LANG_TABLE_SELECT_EXPLICIT(MSG_HEATING_LANG_TABLE, 0)
+extern const char* const MSG_HEATING_COMPLETE_LANG_TABLE[1];
+#define MSG_HEATING_COMPLETE LANG_TABLE_SELECT_EXPLICIT(MSG_HEATING_COMPLETE_LANG_TABLE, 0)
+extern const char* const MSG_HOMEYZ_LANG_TABLE[1];
+#define MSG_HOMEYZ LANG_TABLE_SELECT_EXPLICIT(MSG_HOMEYZ_LANG_TABLE, 0)
+extern const char* const MSG_HOMEYZ_DONE_LANG_TABLE[1];
+#define MSG_HOMEYZ_DONE LANG_TABLE_SELECT_EXPLICIT(MSG_HOMEYZ_DONE_LANG_TABLE, 0)
+extern const char* const MSG_HOMEYZ_PROGRESS_LANG_TABLE[1];
+#define MSG_HOMEYZ_PROGRESS LANG_TABLE_SELECT_EXPLICIT(MSG_HOMEYZ_PROGRESS_LANG_TABLE, 0)
 extern const char* const MSG_HOTEND_OFFSET_LANG_TABLE[1];
 #define MSG_HOTEND_OFFSET LANG_TABLE_SELECT_EXPLICIT(MSG_HOTEND_OFFSET_LANG_TABLE, 0)
-extern const char* const MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_LANG_TABLE[LANG_NUM];
-#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1 LANG_TABLE_SELECT(MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_LANG_TABLE)
-extern const char* const MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_LANG_TABLE[LANG_NUM];
-#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 LANG_TABLE_SELECT(MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_LANG_TABLE)
+extern const char* const MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_LANG_TABLE[1];
+#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1 LANG_TABLE_SELECT_EXPLICIT(MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_LANG_TABLE, 0)
+extern const char* const MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_LANG_TABLE[1];
+#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 LANG_TABLE_SELECT_EXPLICIT(MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_LANG_TABLE, 0)
 extern const char* const MSG_INFO_EXTRUDER_LANG_TABLE[1];
 #define MSG_INFO_EXTRUDER LANG_TABLE_SELECT_EXPLICIT(MSG_INFO_EXTRUDER_LANG_TABLE, 0)
 extern const char* const MSG_INFO_FILAMENT_XDIFF_LANG_TABLE[1];
@@ -268,38 +272,37 @@ extern const char* const MSG_INFO_PRINT_FAN_LANG_TABLE[1];
 #define MSG_INFO_PRINT_FAN LANG_TABLE_SELECT_EXPLICIT(MSG_INFO_PRINT_FAN_LANG_TABLE, 0)
 extern const char* const MSG_INIT_SDCARD_LANG_TABLE[1];
 #define MSG_INIT_SDCARD LANG_TABLE_SELECT_EXPLICIT(MSG_INIT_SDCARD_LANG_TABLE, 0)
-extern const char* const MSG_INSERT_FILAMENT_LANG_TABLE[LANG_NUM];
-#define MSG_INSERT_FILAMENT LANG_TABLE_SELECT(MSG_INSERT_FILAMENT_LANG_TABLE)
+extern const char* const MSG_INSERT_FILAMENT_LANG_TABLE[1];
+#define MSG_INSERT_FILAMENT LANG_TABLE_SELECT_EXPLICIT(MSG_INSERT_FILAMENT_LANG_TABLE, 0)
 extern const char* const MSG_INVALID_EXTRUDER_LANG_TABLE[1];
 #define MSG_INVALID_EXTRUDER LANG_TABLE_SELECT_EXPLICIT(MSG_INVALID_EXTRUDER_LANG_TABLE, 0)
-extern const char* const MSG_KILLED_LANG_TABLE[LANG_NUM];
-#define MSG_KILLED LANG_TABLE_SELECT(MSG_KILLED_LANG_TABLE)
+extern const char* const MSG_KILLED_LANG_TABLE[1];
+#define MSG_KILLED LANG_TABLE_SELECT_EXPLICIT(MSG_KILLED_LANG_TABLE, 0)
 extern const char* const MSG_LANGUAGE_NAME_LANG_TABLE[LANG_NUM];
 #define MSG_LANGUAGE_NAME LANG_TABLE_SELECT(MSG_LANGUAGE_NAME_LANG_TABLE)
 #define MSG_LANGUAGE_NAME_EXPLICIT(LANG) LANG_TABLE_SELECT_EXPLICIT(MSG_LANGUAGE_NAME_LANG_TABLE, LANG)
-extern const char* const MSG_LANGUAGE_SELECT_LANG_TABLE[LANG_NUM];
-#define MSG_LANGUAGE_SELECT LANG_TABLE_SELECT(MSG_LANGUAGE_SELECT_LANG_TABLE)
-#define MSG_LANGUAGE_SELECT_EXPLICIT(LANG) LANG_TABLE_SELECT_EXPLICIT(MSG_LANGUAGE_SELECT_LANG_TABLE, LANG)
-extern const char* const MSG_LOADING_COLOR_LANG_TABLE[LANG_NUM];
-#define MSG_LOADING_COLOR LANG_TABLE_SELECT(MSG_LOADING_COLOR_LANG_TABLE)
-extern const char* const MSG_LOADING_FILAMENT_LANG_TABLE[LANG_NUM];
-#define MSG_LOADING_FILAMENT LANG_TABLE_SELECT(MSG_LOADING_FILAMENT_LANG_TABLE)
-extern const char* const MSG_LOAD_ALL_LANG_TABLE[LANG_NUM];
-#define MSG_LOAD_ALL LANG_TABLE_SELECT(MSG_LOAD_ALL_LANG_TABLE)
+extern const char* const MSG_LANGUAGE_SELECT_LANG_TABLE[1];
+#define MSG_LANGUAGE_SELECT LANG_TABLE_SELECT_EXPLICIT(MSG_LANGUAGE_SELECT_LANG_TABLE, 0)
+extern const char* const MSG_LOADING_COLOR_LANG_TABLE[1];
+#define MSG_LOADING_COLOR LANG_TABLE_SELECT_EXPLICIT(MSG_LOADING_COLOR_LANG_TABLE, 0)
+extern const char* const MSG_LOADING_FILAMENT_LANG_TABLE[1];
+#define MSG_LOADING_FILAMENT LANG_TABLE_SELECT_EXPLICIT(MSG_LOADING_FILAMENT_LANG_TABLE, 0)
+extern const char* const MSG_LOAD_ALL_LANG_TABLE[1];
+#define MSG_LOAD_ALL LANG_TABLE_SELECT_EXPLICIT(MSG_LOAD_ALL_LANG_TABLE, 0)
 extern const char* const MSG_LOAD_EPROM_LANG_TABLE[1];
 #define MSG_LOAD_EPROM LANG_TABLE_SELECT_EXPLICIT(MSG_LOAD_EPROM_LANG_TABLE, 0)
-extern const char* const MSG_LOAD_FILAMENT_LANG_TABLE[LANG_NUM];
-#define MSG_LOAD_FILAMENT LANG_TABLE_SELECT(MSG_LOAD_FILAMENT_LANG_TABLE)
-extern const char* const MSG_LOAD_FILAMENT_1_LANG_TABLE[LANG_NUM];
-#define MSG_LOAD_FILAMENT_1 LANG_TABLE_SELECT(MSG_LOAD_FILAMENT_1_LANG_TABLE)
-extern const char* const MSG_LOAD_FILAMENT_2_LANG_TABLE[LANG_NUM];
-#define MSG_LOAD_FILAMENT_2 LANG_TABLE_SELECT(MSG_LOAD_FILAMENT_2_LANG_TABLE)
-extern const char* const MSG_LOAD_FILAMENT_3_LANG_TABLE[LANG_NUM];
-#define MSG_LOAD_FILAMENT_3 LANG_TABLE_SELECT(MSG_LOAD_FILAMENT_3_LANG_TABLE)
-extern const char* const MSG_LOAD_FILAMENT_4_LANG_TABLE[LANG_NUM];
-#define MSG_LOAD_FILAMENT_4 LANG_TABLE_SELECT(MSG_LOAD_FILAMENT_4_LANG_TABLE)
-extern const char* const MSG_LOOSE_PULLEY_LANG_TABLE[LANG_NUM];
-#define MSG_LOOSE_PULLEY LANG_TABLE_SELECT(MSG_LOOSE_PULLEY_LANG_TABLE)
+extern const char* const MSG_LOAD_FILAMENT_LANG_TABLE[1];
+#define MSG_LOAD_FILAMENT LANG_TABLE_SELECT_EXPLICIT(MSG_LOAD_FILAMENT_LANG_TABLE, 0)
+extern const char* const MSG_LOAD_FILAMENT_1_LANG_TABLE[1];
+#define MSG_LOAD_FILAMENT_1 LANG_TABLE_SELECT_EXPLICIT(MSG_LOAD_FILAMENT_1_LANG_TABLE, 0)
+extern const char* const MSG_LOAD_FILAMENT_2_LANG_TABLE[1];
+#define MSG_LOAD_FILAMENT_2 LANG_TABLE_SELECT_EXPLICIT(MSG_LOAD_FILAMENT_2_LANG_TABLE, 0)
+extern const char* const MSG_LOAD_FILAMENT_3_LANG_TABLE[1];
+#define MSG_LOAD_FILAMENT_3 LANG_TABLE_SELECT_EXPLICIT(MSG_LOAD_FILAMENT_3_LANG_TABLE, 0)
+extern const char* const MSG_LOAD_FILAMENT_4_LANG_TABLE[1];
+#define MSG_LOAD_FILAMENT_4 LANG_TABLE_SELECT_EXPLICIT(MSG_LOAD_FILAMENT_4_LANG_TABLE, 0)
+extern const char* const MSG_LOOSE_PULLEY_LANG_TABLE[1];
+#define MSG_LOOSE_PULLEY LANG_TABLE_SELECT_EXPLICIT(MSG_LOOSE_PULLEY_LANG_TABLE, 0)
 extern const char* const MSG_M104_INVALID_EXTRUDER_LANG_TABLE[1];
 #define MSG_M104_INVALID_EXTRUDER LANG_TABLE_SELECT_EXPLICIT(MSG_M104_INVALID_EXTRUDER_LANG_TABLE, 0)
 extern const char* const MSG_M105_INVALID_EXTRUDER_LANG_TABLE[1];
@@ -316,20 +319,20 @@ extern const char* const MSG_M218_INVALID_EXTRUDER_LANG_TABLE[1];
 #define MSG_M218_INVALID_EXTRUDER LANG_TABLE_SELECT_EXPLICIT(MSG_M218_INVALID_EXTRUDER_LANG_TABLE, 0)
 extern const char* const MSG_M221_INVALID_EXTRUDER_LANG_TABLE[1];
 #define MSG_M221_INVALID_EXTRUDER LANG_TABLE_SELECT_EXPLICIT(MSG_M221_INVALID_EXTRUDER_LANG_TABLE, 0)
-extern const char* const MSG_MAIN_LANG_TABLE[LANG_NUM];
-#define MSG_MAIN LANG_TABLE_SELECT(MSG_MAIN_LANG_TABLE)
-extern const char* const MSG_MARK_FIL_LANG_TABLE[LANG_NUM];
-#define MSG_MARK_FIL LANG_TABLE_SELECT(MSG_MARK_FIL_LANG_TABLE)
+extern const char* const MSG_MAIN_LANG_TABLE[1];
+#define MSG_MAIN LANG_TABLE_SELECT_EXPLICIT(MSG_MAIN_LANG_TABLE, 0)
+extern const char* const MSG_MARK_FIL_LANG_TABLE[1];
+#define MSG_MARK_FIL LANG_TABLE_SELECT_EXPLICIT(MSG_MARK_FIL_LANG_TABLE, 0)
 extern const char* const MSG_MAX_LANG_TABLE[1];
 #define MSG_MAX LANG_TABLE_SELECT_EXPLICIT(MSG_MAX_LANG_TABLE, 0)
-extern const char* const MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_LANG_TABLE[LANG_NUM];
-#define MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 LANG_TABLE_SELECT(MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_LANG_TABLE)
-extern const char* const MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2_LANG_TABLE[LANG_NUM];
-#define MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 LANG_TABLE_SELECT(MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2_LANG_TABLE)
-extern const char* const MSG_MENU_CALIBRATION_LANG_TABLE[LANG_NUM];
-#define MSG_MENU_CALIBRATION LANG_TABLE_SELECT(MSG_MENU_CALIBRATION_LANG_TABLE)
-extern const char* const MSG_MESH_BED_LEVELING_LANG_TABLE[LANG_NUM];
-#define MSG_MESH_BED_LEVELING LANG_TABLE_SELECT(MSG_MESH_BED_LEVELING_LANG_TABLE)
+extern const char* const MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_LANG_TABLE[1];
+#define MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 LANG_TABLE_SELECT_EXPLICIT(MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1_LANG_TABLE, 0)
+extern const char* const MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2_LANG_TABLE[1];
+#define MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 LANG_TABLE_SELECT_EXPLICIT(MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2_LANG_TABLE, 0)
+extern const char* const MSG_MENU_CALIBRATION_LANG_TABLE[1];
+#define MSG_MENU_CALIBRATION LANG_TABLE_SELECT_EXPLICIT(MSG_MENU_CALIBRATION_LANG_TABLE, 0)
+extern const char* const MSG_MESH_BED_LEVELING_LANG_TABLE[1];
+#define MSG_MESH_BED_LEVELING LANG_TABLE_SELECT_EXPLICIT(MSG_MESH_BED_LEVELING_LANG_TABLE, 0)
 extern const char* const MSG_MIN_LANG_TABLE[1];
 #define MSG_MIN LANG_TABLE_SELECT_EXPLICIT(MSG_MIN_LANG_TABLE, 0)
 extern const char* const MSG_MOTION_LANG_TABLE[1];
@@ -340,92 +343,92 @@ extern const char* const MSG_MOVE_10MM_LANG_TABLE[1];
 #define MSG_MOVE_10MM LANG_TABLE_SELECT_EXPLICIT(MSG_MOVE_10MM_LANG_TABLE, 0)
 extern const char* const MSG_MOVE_1MM_LANG_TABLE[1];
 #define MSG_MOVE_1MM LANG_TABLE_SELECT_EXPLICIT(MSG_MOVE_1MM_LANG_TABLE, 0)
-extern const char* const MSG_MOVE_AXIS_LANG_TABLE[LANG_NUM];
-#define MSG_MOVE_AXIS LANG_TABLE_SELECT(MSG_MOVE_AXIS_LANG_TABLE)
-extern const char* const MSG_MOVE_CARRIAGE_TO_THE_TOP_LANG_TABLE[LANG_NUM];
-#define MSG_MOVE_CARRIAGE_TO_THE_TOP LANG_TABLE_SELECT(MSG_MOVE_CARRIAGE_TO_THE_TOP_LANG_TABLE)
-extern const char* const MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_LANG_TABLE[LANG_NUM];
-#define MSG_MOVE_CARRIAGE_TO_THE_TOP_Z LANG_TABLE_SELECT(MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_LANG_TABLE)
-extern const char* const MSG_MOVE_E_LANG_TABLE[LANG_NUM];
-#define MSG_MOVE_E LANG_TABLE_SELECT(MSG_MOVE_E_LANG_TABLE)
-extern const char* const MSG_MOVE_X_LANG_TABLE[LANG_NUM];
-#define MSG_MOVE_X LANG_TABLE_SELECT(MSG_MOVE_X_LANG_TABLE)
-extern const char* const MSG_MOVE_Y_LANG_TABLE[LANG_NUM];
-#define MSG_MOVE_Y LANG_TABLE_SELECT(MSG_MOVE_Y_LANG_TABLE)
-extern const char* const MSG_MOVE_Z_LANG_TABLE[LANG_NUM];
-#define MSG_MOVE_Z LANG_TABLE_SELECT(MSG_MOVE_Z_LANG_TABLE)
-extern const char* const MSG_NEW_FIRMWARE_AVAILABLE_LANG_TABLE[LANG_NUM];
-#define MSG_NEW_FIRMWARE_AVAILABLE LANG_TABLE_SELECT(MSG_NEW_FIRMWARE_AVAILABLE_LANG_TABLE)
-extern const char* const MSG_NEW_FIRMWARE_PLEASE_UPGRADE_LANG_TABLE[LANG_NUM];
-#define MSG_NEW_FIRMWARE_PLEASE_UPGRADE LANG_TABLE_SELECT(MSG_NEW_FIRMWARE_PLEASE_UPGRADE_LANG_TABLE)
-extern const char* const MSG_NO_LANG_TABLE[LANG_NUM];
-#define MSG_NO LANG_TABLE_SELECT(MSG_NO_LANG_TABLE)
-extern const char* const MSG_NOT_COLOR_LANG_TABLE[LANG_NUM];
-#define MSG_NOT_COLOR LANG_TABLE_SELECT(MSG_NOT_COLOR_LANG_TABLE)
-extern const char* const MSG_NOT_LOADED_LANG_TABLE[LANG_NUM];
-#define MSG_NOT_LOADED LANG_TABLE_SELECT(MSG_NOT_LOADED_LANG_TABLE)
-extern const char* const MSG_NOZZLE_LANG_TABLE[LANG_NUM];
-#define MSG_NOZZLE LANG_TABLE_SELECT(MSG_NOZZLE_LANG_TABLE)
+extern const char* const MSG_MOVE_AXIS_LANG_TABLE[1];
+#define MSG_MOVE_AXIS LANG_TABLE_SELECT_EXPLICIT(MSG_MOVE_AXIS_LANG_TABLE, 0)
+extern const char* const MSG_MOVE_CARRIAGE_TO_THE_TOP_LANG_TABLE[1];
+#define MSG_MOVE_CARRIAGE_TO_THE_TOP LANG_TABLE_SELECT_EXPLICIT(MSG_MOVE_CARRIAGE_TO_THE_TOP_LANG_TABLE, 0)
+extern const char* const MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_LANG_TABLE[1];
+#define MSG_MOVE_CARRIAGE_TO_THE_TOP_Z LANG_TABLE_SELECT_EXPLICIT(MSG_MOVE_CARRIAGE_TO_THE_TOP_Z_LANG_TABLE, 0)
+extern const char* const MSG_MOVE_E_LANG_TABLE[1];
+#define MSG_MOVE_E LANG_TABLE_SELECT_EXPLICIT(MSG_MOVE_E_LANG_TABLE, 0)
+extern const char* const MSG_MOVE_X_LANG_TABLE[1];
+#define MSG_MOVE_X LANG_TABLE_SELECT_EXPLICIT(MSG_MOVE_X_LANG_TABLE, 0)
+extern const char* const MSG_MOVE_Y_LANG_TABLE[1];
+#define MSG_MOVE_Y LANG_TABLE_SELECT_EXPLICIT(MSG_MOVE_Y_LANG_TABLE, 0)
+extern const char* const MSG_MOVE_Z_LANG_TABLE[1];
+#define MSG_MOVE_Z LANG_TABLE_SELECT_EXPLICIT(MSG_MOVE_Z_LANG_TABLE, 0)
+extern const char* const MSG_NEW_FIRMWARE_AVAILABLE_LANG_TABLE[1];
+#define MSG_NEW_FIRMWARE_AVAILABLE LANG_TABLE_SELECT_EXPLICIT(MSG_NEW_FIRMWARE_AVAILABLE_LANG_TABLE, 0)
+extern const char* const MSG_NEW_FIRMWARE_PLEASE_UPGRADE_LANG_TABLE[1];
+#define MSG_NEW_FIRMWARE_PLEASE_UPGRADE LANG_TABLE_SELECT_EXPLICIT(MSG_NEW_FIRMWARE_PLEASE_UPGRADE_LANG_TABLE, 0)
+extern const char* const MSG_NO_LANG_TABLE[1];
+#define MSG_NO LANG_TABLE_SELECT_EXPLICIT(MSG_NO_LANG_TABLE, 0)
+extern const char* const MSG_NOT_COLOR_LANG_TABLE[1];
+#define MSG_NOT_COLOR LANG_TABLE_SELECT_EXPLICIT(MSG_NOT_COLOR_LANG_TABLE, 0)
+extern const char* const MSG_NOT_LOADED_LANG_TABLE[1];
+#define MSG_NOT_LOADED LANG_TABLE_SELECT_EXPLICIT(MSG_NOT_LOADED_LANG_TABLE, 0)
+extern const char* const MSG_NOZZLE_LANG_TABLE[1];
+#define MSG_NOZZLE LANG_TABLE_SELECT_EXPLICIT(MSG_NOZZLE_LANG_TABLE, 0)
 extern const char* const MSG_NOZZLE1_LANG_TABLE[1];
 #define MSG_NOZZLE1 LANG_TABLE_SELECT_EXPLICIT(MSG_NOZZLE1_LANG_TABLE, 0)
 extern const char* const MSG_NOZZLE2_LANG_TABLE[1];
 #define MSG_NOZZLE2 LANG_TABLE_SELECT_EXPLICIT(MSG_NOZZLE2_LANG_TABLE, 0)
-extern const char* const MSG_NO_CARD_LANG_TABLE[LANG_NUM];
-#define MSG_NO_CARD LANG_TABLE_SELECT(MSG_NO_CARD_LANG_TABLE)
-extern const char* const MSG_NO_MOVE_LANG_TABLE[LANG_NUM];
-#define MSG_NO_MOVE LANG_TABLE_SELECT(MSG_NO_MOVE_LANG_TABLE)
+extern const char* const MSG_NO_CARD_LANG_TABLE[1];
+#define MSG_NO_CARD LANG_TABLE_SELECT_EXPLICIT(MSG_NO_CARD_LANG_TABLE, 0)
+extern const char* const MSG_NO_MOVE_LANG_TABLE[1];
+#define MSG_NO_MOVE LANG_TABLE_SELECT_EXPLICIT(MSG_NO_MOVE_LANG_TABLE, 0)
 extern const char* const MSG_OFF_LANG_TABLE[1];
 #define MSG_OFF LANG_TABLE_SELECT_EXPLICIT(MSG_OFF_LANG_TABLE, 0)
 extern const char* const MSG_OK_LANG_TABLE[1];
 #define MSG_OK LANG_TABLE_SELECT_EXPLICIT(MSG_OK_LANG_TABLE, 0)
 extern const char* const MSG_ON_LANG_TABLE[1];
 #define MSG_ON LANG_TABLE_SELECT_EXPLICIT(MSG_ON_LANG_TABLE, 0)
-extern const char* const MSG_PAPER_LANG_TABLE[LANG_NUM];
-#define MSG_PAPER LANG_TABLE_SELECT(MSG_PAPER_LANG_TABLE)
-extern const char* const MSG_PAUSE_PRINT_LANG_TABLE[LANG_NUM];
-#define MSG_PAUSE_PRINT LANG_TABLE_SELECT(MSG_PAUSE_PRINT_LANG_TABLE)
-extern const char* const MSG_PICK_Z_LANG_TABLE[LANG_NUM];
-#define MSG_PICK_Z LANG_TABLE_SELECT(MSG_PICK_Z_LANG_TABLE)
-extern const char* const MSG_PID_EXTRUDER_LANG_TABLE[LANG_NUM];
-#define MSG_PID_EXTRUDER LANG_TABLE_SELECT(MSG_PID_EXTRUDER_LANG_TABLE)
-extern const char* const MSG_PID_FINISHED_LANG_TABLE[LANG_NUM];
-#define MSG_PID_FINISHED LANG_TABLE_SELECT(MSG_PID_FINISHED_LANG_TABLE)
-extern const char* const MSG_PID_RUNNING_LANG_TABLE[LANG_NUM];
-#define MSG_PID_RUNNING LANG_TABLE_SELECT(MSG_PID_RUNNING_LANG_TABLE)
-extern const char* const MSG_PINDA_NOT_CALIBRATED_LANG_TABLE[LANG_NUM];
-#define MSG_PINDA_NOT_CALIBRATED LANG_TABLE_SELECT(MSG_PINDA_NOT_CALIBRATED_LANG_TABLE)
-extern const char* const MSG_PINDA_PREHEAT_LANG_TABLE[LANG_NUM];
-#define MSG_PINDA_PREHEAT LANG_TABLE_SELECT(MSG_PINDA_PREHEAT_LANG_TABLE)
+extern const char* const MSG_PAPER_LANG_TABLE[1];
+#define MSG_PAPER LANG_TABLE_SELECT_EXPLICIT(MSG_PAPER_LANG_TABLE, 0)
+extern const char* const MSG_PAUSE_PRINT_LANG_TABLE[1];
+#define MSG_PAUSE_PRINT LANG_TABLE_SELECT_EXPLICIT(MSG_PAUSE_PRINT_LANG_TABLE, 0)
+extern const char* const MSG_PICK_Z_LANG_TABLE[1];
+#define MSG_PICK_Z LANG_TABLE_SELECT_EXPLICIT(MSG_PICK_Z_LANG_TABLE, 0)
+extern const char* const MSG_PID_EXTRUDER_LANG_TABLE[1];
+#define MSG_PID_EXTRUDER LANG_TABLE_SELECT_EXPLICIT(MSG_PID_EXTRUDER_LANG_TABLE, 0)
+extern const char* const MSG_PID_FINISHED_LANG_TABLE[1];
+#define MSG_PID_FINISHED LANG_TABLE_SELECT_EXPLICIT(MSG_PID_FINISHED_LANG_TABLE, 0)
+extern const char* const MSG_PID_RUNNING_LANG_TABLE[1];
+#define MSG_PID_RUNNING LANG_TABLE_SELECT_EXPLICIT(MSG_PID_RUNNING_LANG_TABLE, 0)
+extern const char* const MSG_PINDA_NOT_CALIBRATED_LANG_TABLE[1];
+#define MSG_PINDA_NOT_CALIBRATED LANG_TABLE_SELECT_EXPLICIT(MSG_PINDA_NOT_CALIBRATED_LANG_TABLE, 0)
+extern const char* const MSG_PINDA_PREHEAT_LANG_TABLE[1];
+#define MSG_PINDA_PREHEAT LANG_TABLE_SELECT_EXPLICIT(MSG_PINDA_PREHEAT_LANG_TABLE, 0)
 extern const char* const MSG_PLANNER_BUFFER_BYTES_LANG_TABLE[1];
 #define MSG_PLANNER_BUFFER_BYTES LANG_TABLE_SELECT_EXPLICIT(MSG_PLANNER_BUFFER_BYTES_LANG_TABLE, 0)
-extern const char* const MSG_PLEASE_WAIT_LANG_TABLE[LANG_NUM];
-#define MSG_PLEASE_WAIT LANG_TABLE_SELECT(MSG_PLEASE_WAIT_LANG_TABLE)
+extern const char* const MSG_PLEASE_WAIT_LANG_TABLE[1];
+#define MSG_PLEASE_WAIT LANG_TABLE_SELECT_EXPLICIT(MSG_PLEASE_WAIT_LANG_TABLE, 0)
 extern const char* const MSG_POSITION_UNKNOWN_LANG_TABLE[1];
 #define MSG_POSITION_UNKNOWN LANG_TABLE_SELECT_EXPLICIT(MSG_POSITION_UNKNOWN_LANG_TABLE, 0)
 extern const char* const MSG_POWERUP_LANG_TABLE[1];
 #define MSG_POWERUP LANG_TABLE_SELECT_EXPLICIT(MSG_POWERUP_LANG_TABLE, 0)
-extern const char* const MSG_PREHEAT_LANG_TABLE[LANG_NUM];
-#define MSG_PREHEAT LANG_TABLE_SELECT(MSG_PREHEAT_LANG_TABLE)
-extern const char* const MSG_PREHEAT_NOZZLE_LANG_TABLE[LANG_NUM];
-#define MSG_PREHEAT_NOZZLE LANG_TABLE_SELECT(MSG_PREHEAT_NOZZLE_LANG_TABLE)
-extern const char* const MSG_PREPARE_FILAMENT_LANG_TABLE[LANG_NUM];
-#define MSG_PREPARE_FILAMENT LANG_TABLE_SELECT(MSG_PREPARE_FILAMENT_LANG_TABLE)
-extern const char* const MSG_PRESS_LANG_TABLE[LANG_NUM];
-#define MSG_PRESS LANG_TABLE_SELECT(MSG_PRESS_LANG_TABLE)
+extern const char* const MSG_PREHEAT_LANG_TABLE[1];
+#define MSG_PREHEAT LANG_TABLE_SELECT_EXPLICIT(MSG_PREHEAT_LANG_TABLE, 0)
+extern const char* const MSG_PREHEAT_NOZZLE_LANG_TABLE[1];
+#define MSG_PREHEAT_NOZZLE LANG_TABLE_SELECT_EXPLICIT(MSG_PREHEAT_NOZZLE_LANG_TABLE, 0)
+extern const char* const MSG_PREPARE_FILAMENT_LANG_TABLE[1];
+#define MSG_PREPARE_FILAMENT LANG_TABLE_SELECT_EXPLICIT(MSG_PREPARE_FILAMENT_LANG_TABLE, 0)
+extern const char* const MSG_PRESS_LANG_TABLE[1];
+#define MSG_PRESS LANG_TABLE_SELECT_EXPLICIT(MSG_PRESS_LANG_TABLE, 0)
 extern const char* const MSG_PRINTER_DISCONNECTED_LANG_TABLE[1];
 #define MSG_PRINTER_DISCONNECTED LANG_TABLE_SELECT_EXPLICIT(MSG_PRINTER_DISCONNECTED_LANG_TABLE, 0)
-extern const char* const MSG_PRINT_ABORTED_LANG_TABLE[LANG_NUM];
-#define MSG_PRINT_ABORTED LANG_TABLE_SELECT(MSG_PRINT_ABORTED_LANG_TABLE)
-extern const char* const MSG_PRINT_PAUSED_LANG_TABLE[LANG_NUM];
-#define MSG_PRINT_PAUSED LANG_TABLE_SELECT(MSG_PRINT_PAUSED_LANG_TABLE)
-extern const char* const MSG_PRUSA3D_LANG_TABLE[LANG_NUM];
-#define MSG_PRUSA3D LANG_TABLE_SELECT(MSG_PRUSA3D_LANG_TABLE)
-extern const char* const MSG_PRUSA3D_FORUM_LANG_TABLE[LANG_NUM];
-#define MSG_PRUSA3D_FORUM LANG_TABLE_SELECT(MSG_PRUSA3D_FORUM_LANG_TABLE)
-extern const char* const MSG_PRUSA3D_HOWTO_LANG_TABLE[LANG_NUM];
-#define MSG_PRUSA3D_HOWTO LANG_TABLE_SELECT(MSG_PRUSA3D_HOWTO_LANG_TABLE)
-extern const char* const MSG_REBOOT_LANG_TABLE[LANG_NUM];
-#define MSG_REBOOT LANG_TABLE_SELECT(MSG_REBOOT_LANG_TABLE)
+extern const char* const MSG_PRINT_ABORTED_LANG_TABLE[1];
+#define MSG_PRINT_ABORTED LANG_TABLE_SELECT_EXPLICIT(MSG_PRINT_ABORTED_LANG_TABLE, 0)
+extern const char* const MSG_PRINT_PAUSED_LANG_TABLE[1];
+#define MSG_PRINT_PAUSED LANG_TABLE_SELECT_EXPLICIT(MSG_PRINT_PAUSED_LANG_TABLE, 0)
+extern const char* const MSG_PRUSA3D_LANG_TABLE[1];
+#define MSG_PRUSA3D LANG_TABLE_SELECT_EXPLICIT(MSG_PRUSA3D_LANG_TABLE, 0)
+extern const char* const MSG_PRUSA3D_FORUM_LANG_TABLE[1];
+#define MSG_PRUSA3D_FORUM LANG_TABLE_SELECT_EXPLICIT(MSG_PRUSA3D_FORUM_LANG_TABLE, 0)
+extern const char* const MSG_PRUSA3D_HOWTO_LANG_TABLE[1];
+#define MSG_PRUSA3D_HOWTO LANG_TABLE_SELECT_EXPLICIT(MSG_PRUSA3D_HOWTO_LANG_TABLE, 0)
+extern const char* const MSG_REBOOT_LANG_TABLE[1];
+#define MSG_REBOOT LANG_TABLE_SELECT_EXPLICIT(MSG_REBOOT_LANG_TABLE, 0)
 extern const char* const MSG_RECOVERING_PRINT_LANG_TABLE[1];
 #define MSG_RECOVERING_PRINT LANG_TABLE_SELECT_EXPLICIT(MSG_RECOVERING_PRINT_LANG_TABLE, 0)
 extern const char* const MSG_RECOVER_PRINT_LANG_TABLE[1];
@@ -440,12 +443,12 @@ extern const char* const MSG_RESET_CALIBRATE_E_LANG_TABLE[1];
 #define MSG_RESET_CALIBRATE_E LANG_TABLE_SELECT_EXPLICIT(MSG_RESET_CALIBRATE_E_LANG_TABLE, 0)
 extern const char* const MSG_RESTORE_FAILSAFE_LANG_TABLE[1];
 #define MSG_RESTORE_FAILSAFE LANG_TABLE_SELECT_EXPLICIT(MSG_RESTORE_FAILSAFE_LANG_TABLE, 0)
-extern const char* const MSG_RESUME_PRINT_LANG_TABLE[LANG_NUM];
-#define MSG_RESUME_PRINT LANG_TABLE_SELECT(MSG_RESUME_PRINT_LANG_TABLE)
-extern const char* const MSG_RESUMING_LANG_TABLE[LANG_NUM];
-#define MSG_RESUMING LANG_TABLE_SELECT(MSG_RESUMING_LANG_TABLE)
-extern const char* const MSG_RESUMING_PRINT_LANG_TABLE[LANG_NUM];
-#define MSG_RESUMING_PRINT LANG_TABLE_SELECT(MSG_RESUMING_PRINT_LANG_TABLE)
+extern const char* const MSG_RESUME_PRINT_LANG_TABLE[1];
+#define MSG_RESUME_PRINT LANG_TABLE_SELECT_EXPLICIT(MSG_RESUME_PRINT_LANG_TABLE, 0)
+extern const char* const MSG_RESUMING_LANG_TABLE[1];
+#define MSG_RESUMING LANG_TABLE_SELECT_EXPLICIT(MSG_RESUMING_LANG_TABLE, 0)
+extern const char* const MSG_RESUMING_PRINT_LANG_TABLE[1];
+#define MSG_RESUMING_PRINT LANG_TABLE_SELECT_EXPLICIT(MSG_RESUMING_PRINT_LANG_TABLE, 0)
 extern const char* const MSG_SD_CANT_ENTER_SUBDIR_LANG_TABLE[1];
 #define MSG_SD_CANT_ENTER_SUBDIR LANG_TABLE_SELECT_EXPLICIT(MSG_SD_CANT_ENTER_SUBDIR_LANG_TABLE, 0)
 extern const char* const MSG_SD_CANT_OPEN_SUBDIR_LANG_TABLE[1];
@@ -460,8 +463,8 @@ extern const char* const MSG_SD_FILE_SELECTED_LANG_TABLE[1];
 #define MSG_SD_FILE_SELECTED LANG_TABLE_SELECT_EXPLICIT(MSG_SD_FILE_SELECTED_LANG_TABLE, 0)
 extern const char* const MSG_SD_INIT_FAIL_LANG_TABLE[1];
 #define MSG_SD_INIT_FAIL LANG_TABLE_SELECT_EXPLICIT(MSG_SD_INIT_FAIL_LANG_TABLE, 0)
-extern const char* const MSG_SD_INSERTED_LANG_TABLE[LANG_NUM];
-#define MSG_SD_INSERTED LANG_TABLE_SELECT(MSG_SD_INSERTED_LANG_TABLE)
+extern const char* const MSG_SD_INSERTED_LANG_TABLE[1];
+#define MSG_SD_INSERTED LANG_TABLE_SELECT_EXPLICIT(MSG_SD_INSERTED_LANG_TABLE, 0)
 extern const char* const MSG_SD_NOT_PRINTING_LANG_TABLE[1];
 #define MSG_SD_NOT_PRINTING LANG_TABLE_SELECT_EXPLICIT(MSG_SD_NOT_PRINTING_LANG_TABLE, 0)
 extern const char* const MSG_SD_OPENROOT_FAIL_LANG_TABLE[1];
@@ -470,8 +473,8 @@ extern const char* const MSG_SD_OPEN_FILE_FAIL_LANG_TABLE[1];
 #define MSG_SD_OPEN_FILE_FAIL LANG_TABLE_SELECT_EXPLICIT(MSG_SD_OPEN_FILE_FAIL_LANG_TABLE, 0)
 extern const char* const MSG_SD_PRINTING_BYTE_LANG_TABLE[1];
 #define MSG_SD_PRINTING_BYTE LANG_TABLE_SELECT_EXPLICIT(MSG_SD_PRINTING_BYTE_LANG_TABLE, 0)
-extern const char* const MSG_SD_REMOVED_LANG_TABLE[LANG_NUM];
-#define MSG_SD_REMOVED LANG_TABLE_SELECT(MSG_SD_REMOVED_LANG_TABLE)
+extern const char* const MSG_SD_REMOVED_LANG_TABLE[1];
+#define MSG_SD_REMOVED LANG_TABLE_SELECT_EXPLICIT(MSG_SD_REMOVED_LANG_TABLE, 0)
 extern const char* const MSG_SD_SIZE_LANG_TABLE[1];
 #define MSG_SD_SIZE LANG_TABLE_SELECT_EXPLICIT(MSG_SD_SIZE_LANG_TABLE, 0)
 extern const char* const MSG_SD_VOL_INIT_FAIL_LANG_TABLE[1];
@@ -480,154 +483,148 @@ extern const char* const MSG_SD_WORKDIR_FAIL_LANG_TABLE[1];
 #define MSG_SD_WORKDIR_FAIL LANG_TABLE_SELECT_EXPLICIT(MSG_SD_WORKDIR_FAIL_LANG_TABLE, 0)
 extern const char* const MSG_SD_WRITE_TO_FILE_LANG_TABLE[1];
 #define MSG_SD_WRITE_TO_FILE LANG_TABLE_SELECT_EXPLICIT(MSG_SD_WRITE_TO_FILE_LANG_TABLE, 0)
-extern const char* const MSG_SELFTEST_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST LANG_TABLE_SELECT(MSG_SELFTEST_LANG_TABLE)
+extern const char* const MSG_SELFTEST_LANG_TABLE[1];
+#define MSG_SELFTEST LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_LANG_TABLE, 0)
 extern const char* const MSG_SELFTEST_AXIS_LANG_TABLE[1];
 #define MSG_SELFTEST_AXIS LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_AXIS_LANG_TABLE, 0)
 extern const char* const MSG_SELFTEST_AXIS_LENGTH_LANG_TABLE[1];
 #define MSG_SELFTEST_AXIS_LENGTH LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_AXIS_LENGTH_LANG_TABLE, 0)
-extern const char* const MSG_SELFTEST_BEDHEATER_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_BEDHEATER LANG_TABLE_SELECT(MSG_SELFTEST_BEDHEATER_LANG_TABLE)
-extern const char* const MSG_SELFTEST_CHECK_ALLCORRECT_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_CHECK_ALLCORRECT LANG_TABLE_SELECT(MSG_SELFTEST_CHECK_ALLCORRECT_LANG_TABLE)
-extern const char* const MSG_SELFTEST_CHECK_BED_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_CHECK_BED LANG_TABLE_SELECT(MSG_SELFTEST_CHECK_BED_LANG_TABLE)
-extern const char* const MSG_SELFTEST_CHECK_ENDSTOPS_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_CHECK_ENDSTOPS LANG_TABLE_SELECT(MSG_SELFTEST_CHECK_ENDSTOPS_LANG_TABLE)
-extern const char* const MSG_SELFTEST_CHECK_HOTEND_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_CHECK_HOTEND LANG_TABLE_SELECT(MSG_SELFTEST_CHECK_HOTEND_LANG_TABLE)
-extern const char* const MSG_SELFTEST_CHECK_X_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_CHECK_X LANG_TABLE_SELECT(MSG_SELFTEST_CHECK_X_LANG_TABLE)
-extern const char* const MSG_SELFTEST_CHECK_Y_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_CHECK_Y LANG_TABLE_SELECT(MSG_SELFTEST_CHECK_Y_LANG_TABLE)
-extern const char* const MSG_SELFTEST_CHECK_Z_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_CHECK_Z LANG_TABLE_SELECT(MSG_SELFTEST_CHECK_Z_LANG_TABLE)
-extern const char* const MSG_SELFTEST_COOLING_FAN_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_COOLING_FAN LANG_TABLE_SELECT(MSG_SELFTEST_COOLING_FAN_LANG_TABLE)
-extern const char* const MSG_SELFTEST_ENDSTOP_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_ENDSTOP LANG_TABLE_SELECT(MSG_SELFTEST_ENDSTOP_LANG_TABLE)
-extern const char* const MSG_SELFTEST_ENDSTOPS_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_ENDSTOPS LANG_TABLE_SELECT(MSG_SELFTEST_ENDSTOPS_LANG_TABLE)
-extern const char* const MSG_SELFTEST_ENDSTOP_NOTHIT_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_ENDSTOP_NOTHIT LANG_TABLE_SELECT(MSG_SELFTEST_ENDSTOP_NOTHIT_LANG_TABLE)
-extern const char* const MSG_SELFTEST_ERROR_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_ERROR LANG_TABLE_SELECT(MSG_SELFTEST_ERROR_LANG_TABLE)
-extern const char* const MSG_SELFTEST_EXTRUDER_FAN_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_EXTRUDER_FAN LANG_TABLE_SELECT(MSG_SELFTEST_EXTRUDER_FAN_LANG_TABLE)
-extern const char* const MSG_SELFTEST_FAILED_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_FAILED LANG_TABLE_SELECT(MSG_SELFTEST_FAILED_LANG_TABLE)
-extern const char* const MSG_SELFTEST_FAN_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_FAN LANG_TABLE_SELECT(MSG_SELFTEST_FAN_LANG_TABLE)
-extern const char* const MSG_SELFTEST_FAN_NO_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_FAN_NO LANG_TABLE_SELECT(MSG_SELFTEST_FAN_NO_LANG_TABLE)
-extern const char* const MSG_SELFTEST_FAN_YES_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_FAN_YES LANG_TABLE_SELECT(MSG_SELFTEST_FAN_YES_LANG_TABLE)
-extern const char* const MSG_SELFTEST_HEATERTHERMISTOR_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_HEATERTHERMISTOR LANG_TABLE_SELECT(MSG_SELFTEST_HEATERTHERMISTOR_LANG_TABLE)
-extern const char* const MSG_SELFTEST_MOTOR_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_MOTOR LANG_TABLE_SELECT(MSG_SELFTEST_MOTOR_LANG_TABLE)
-extern const char* const MSG_SELFTEST_NOTCONNECTED_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_NOTCONNECTED LANG_TABLE_SELECT(MSG_SELFTEST_NOTCONNECTED_LANG_TABLE)
-extern const char* const MSG_SELFTEST_OK_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_OK LANG_TABLE_SELECT(MSG_SELFTEST_OK_LANG_TABLE)
-extern const char* const MSG_SELFTEST_PLEASECHECK_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_PLEASECHECK LANG_TABLE_SELECT(MSG_SELFTEST_PLEASECHECK_LANG_TABLE)
-extern const char* const MSG_SELFTEST_START_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_START LANG_TABLE_SELECT(MSG_SELFTEST_START_LANG_TABLE)
-extern const char* const MSG_SELFTEST_WIRINGERROR_LANG_TABLE[LANG_NUM];
-#define MSG_SELFTEST_WIRINGERROR LANG_TABLE_SELECT(MSG_SELFTEST_WIRINGERROR_LANG_TABLE)
+extern const char* const MSG_SELFTEST_BEDHEATER_LANG_TABLE[1];
+#define MSG_SELFTEST_BEDHEATER LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_BEDHEATER_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_CHECK_ALLCORRECT_LANG_TABLE[1];
+#define MSG_SELFTEST_CHECK_ALLCORRECT LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_CHECK_ALLCORRECT_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_CHECK_BED_LANG_TABLE[1];
+#define MSG_SELFTEST_CHECK_BED LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_CHECK_BED_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_CHECK_ENDSTOPS_LANG_TABLE[1];
+#define MSG_SELFTEST_CHECK_ENDSTOPS LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_CHECK_ENDSTOPS_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_CHECK_HOTEND_LANG_TABLE[1];
+#define MSG_SELFTEST_CHECK_HOTEND LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_CHECK_HOTEND_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_CHECK_X_LANG_TABLE[1];
+#define MSG_SELFTEST_CHECK_X LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_CHECK_X_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_CHECK_Y_LANG_TABLE[1];
+#define MSG_SELFTEST_CHECK_Y LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_CHECK_Y_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_CHECK_Z_LANG_TABLE[1];
+#define MSG_SELFTEST_CHECK_Z LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_CHECK_Z_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_COOLING_FAN_LANG_TABLE[1];
+#define MSG_SELFTEST_COOLING_FAN LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_COOLING_FAN_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_ENDSTOP_LANG_TABLE[1];
+#define MSG_SELFTEST_ENDSTOP LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_ENDSTOP_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_ENDSTOPS_LANG_TABLE[1];
+#define MSG_SELFTEST_ENDSTOPS LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_ENDSTOPS_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_ENDSTOP_NOTHIT_LANG_TABLE[1];
+#define MSG_SELFTEST_ENDSTOP_NOTHIT LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_ENDSTOP_NOTHIT_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_ERROR_LANG_TABLE[1];
+#define MSG_SELFTEST_ERROR LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_ERROR_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_EXTRUDER_FAN_LANG_TABLE[1];
+#define MSG_SELFTEST_EXTRUDER_FAN LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_EXTRUDER_FAN_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_FAILED_LANG_TABLE[1];
+#define MSG_SELFTEST_FAILED LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_FAILED_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_FAN_LANG_TABLE[1];
+#define MSG_SELFTEST_FAN LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_FAN_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_FAN_NO_LANG_TABLE[1];
+#define MSG_SELFTEST_FAN_NO LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_FAN_NO_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_FAN_YES_LANG_TABLE[1];
+#define MSG_SELFTEST_FAN_YES LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_FAN_YES_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_HEATERTHERMISTOR_LANG_TABLE[1];
+#define MSG_SELFTEST_HEATERTHERMISTOR LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_HEATERTHERMISTOR_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_MOTOR_LANG_TABLE[1];
+#define MSG_SELFTEST_MOTOR LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_MOTOR_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_NOTCONNECTED_LANG_TABLE[1];
+#define MSG_SELFTEST_NOTCONNECTED LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_NOTCONNECTED_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_OK_LANG_TABLE[1];
+#define MSG_SELFTEST_OK LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_OK_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_PLEASECHECK_LANG_TABLE[1];
+#define MSG_SELFTEST_PLEASECHECK LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_PLEASECHECK_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_START_LANG_TABLE[1];
+#define MSG_SELFTEST_START LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_START_LANG_TABLE, 0)
+extern const char* const MSG_SELFTEST_WIRINGERROR_LANG_TABLE[1];
+#define MSG_SELFTEST_WIRINGERROR LANG_TABLE_SELECT_EXPLICIT(MSG_SELFTEST_WIRINGERROR_LANG_TABLE, 0)
 extern const char* const MSG_SERIAL_ERROR_MENU_STRUCTURE_LANG_TABLE[1];
 #define MSG_SERIAL_ERROR_MENU_STRUCTURE LANG_TABLE_SELECT_EXPLICIT(MSG_SERIAL_ERROR_MENU_STRUCTURE_LANG_TABLE, 0)
-extern const char* const MSG_SETTINGS_LANG_TABLE[LANG_NUM];
-#define MSG_SETTINGS LANG_TABLE_SELECT(MSG_SETTINGS_LANG_TABLE)
+extern const char* const MSG_SETTINGS_LANG_TABLE[1];
+#define MSG_SETTINGS LANG_TABLE_SELECT_EXPLICIT(MSG_SETTINGS_LANG_TABLE, 0)
 extern const char* const MSG_SET_HOME_OFFSETS_LANG_TABLE[1];
 #define MSG_SET_HOME_OFFSETS LANG_TABLE_SELECT_EXPLICIT(MSG_SET_HOME_OFFSETS_LANG_TABLE, 0)
 extern const char* const MSG_SET_ORIGIN_LANG_TABLE[1];
 #define MSG_SET_ORIGIN LANG_TABLE_SELECT_EXPLICIT(MSG_SET_ORIGIN_LANG_TABLE, 0)
-extern const char* const MSG_SET_TEMPERATURE_LANG_TABLE[LANG_NUM];
-#define MSG_SET_TEMPERATURE LANG_TABLE_SELECT(MSG_SET_TEMPERATURE_LANG_TABLE)
-extern const char* const MSG_SHOW_END_STOPS_LANG_TABLE[LANG_NUM];
-#define MSG_SHOW_END_STOPS LANG_TABLE_SELECT(MSG_SHOW_END_STOPS_LANG_TABLE)
-
-extern const char* const MSG_FSENSOR_OFF_LANG_TABLE[LANG_NUM];
-#define MSG_FSENSOR_OFF LANG_TABLE_SELECT(MSG_FSENSOR_OFF_LANG_TABLE)
-extern const char* const MSG_FSENSOR_ON_LANG_TABLE[LANG_NUM];
-#define MSG_FSENSOR_ON LANG_TABLE_SELECT(MSG_FSENSOR_ON_LANG_TABLE)
-
-extern const char* const MSG_SILENT_MODE_OFF_LANG_TABLE[LANG_NUM];
-#define MSG_SILENT_MODE_OFF LANG_TABLE_SELECT(MSG_SILENT_MODE_OFF_LANG_TABLE)
-extern const char* const MSG_SILENT_MODE_ON_LANG_TABLE[LANG_NUM];
-#define MSG_SILENT_MODE_ON LANG_TABLE_SELECT(MSG_SILENT_MODE_ON_LANG_TABLE)
+extern const char* const MSG_SET_TEMPERATURE_LANG_TABLE[1];
+#define MSG_SET_TEMPERATURE LANG_TABLE_SELECT_EXPLICIT(MSG_SET_TEMPERATURE_LANG_TABLE, 0)
+extern const char* const MSG_SHOW_END_STOPS_LANG_TABLE[1];
+#define MSG_SHOW_END_STOPS LANG_TABLE_SELECT_EXPLICIT(MSG_SHOW_END_STOPS_LANG_TABLE, 0)
+extern const char* const MSG_SILENT_MODE_OFF_LANG_TABLE[1];
+#define MSG_SILENT_MODE_OFF LANG_TABLE_SELECT_EXPLICIT(MSG_SILENT_MODE_OFF_LANG_TABLE, 0)
+extern const char* const MSG_SILENT_MODE_ON_LANG_TABLE[1];
+#define MSG_SILENT_MODE_ON LANG_TABLE_SELECT_EXPLICIT(MSG_SILENT_MODE_ON_LANG_TABLE, 0)
 extern const char* const MSG_SOFTWARE_RESET_LANG_TABLE[1];
 #define MSG_SOFTWARE_RESET LANG_TABLE_SELECT_EXPLICIT(MSG_SOFTWARE_RESET_LANG_TABLE, 0)
-extern const char* const MSG_SPEED_LANG_TABLE[LANG_NUM];
-#define MSG_SPEED LANG_TABLE_SELECT(MSG_SPEED_LANG_TABLE)
+extern const char* const MSG_SPEED_LANG_TABLE[1];
+#define MSG_SPEED LANG_TABLE_SELECT_EXPLICIT(MSG_SPEED_LANG_TABLE, 0)
 extern const char* const MSG_STACK_ERROR_LANG_TABLE[1];
 #define MSG_STACK_ERROR LANG_TABLE_SELECT_EXPLICIT(MSG_STACK_ERROR_LANG_TABLE, 0)
-extern const char* const MSG_STATISTICS_LANG_TABLE[LANG_NUM];
-#define MSG_STATISTICS LANG_TABLE_SELECT(MSG_STATISTICS_LANG_TABLE)
-extern const char* const MSG_STATS_FILAMENTUSED_LANG_TABLE[LANG_NUM];
-#define MSG_STATS_FILAMENTUSED LANG_TABLE_SELECT(MSG_STATS_FILAMENTUSED_LANG_TABLE)
-extern const char* const MSG_STATS_PRINTTIME_LANG_TABLE[LANG_NUM];
-#define MSG_STATS_PRINTTIME LANG_TABLE_SELECT(MSG_STATS_PRINTTIME_LANG_TABLE)
-extern const char* const MSG_STATS_TOTALFILAMENT_LANG_TABLE[LANG_NUM];
-#define MSG_STATS_TOTALFILAMENT LANG_TABLE_SELECT(MSG_STATS_TOTALFILAMENT_LANG_TABLE)
-extern const char* const MSG_STATS_TOTALPRINTTIME_LANG_TABLE[LANG_NUM];
-#define MSG_STATS_TOTALPRINTTIME LANG_TABLE_SELECT(MSG_STATS_TOTALPRINTTIME_LANG_TABLE)
+extern const char* const MSG_STATISTICS_LANG_TABLE[1];
+#define MSG_STATISTICS LANG_TABLE_SELECT_EXPLICIT(MSG_STATISTICS_LANG_TABLE, 0)
+extern const char* const MSG_STATS_FILAMENTUSED_LANG_TABLE[1];
+#define MSG_STATS_FILAMENTUSED LANG_TABLE_SELECT_EXPLICIT(MSG_STATS_FILAMENTUSED_LANG_TABLE, 0)
+extern const char* const MSG_STATS_PRINTTIME_LANG_TABLE[1];
+#define MSG_STATS_PRINTTIME LANG_TABLE_SELECT_EXPLICIT(MSG_STATS_PRINTTIME_LANG_TABLE, 0)
+extern const char* const MSG_STATS_TOTALFILAMENT_LANG_TABLE[1];
+#define MSG_STATS_TOTALFILAMENT LANG_TABLE_SELECT_EXPLICIT(MSG_STATS_TOTALFILAMENT_LANG_TABLE, 0)
+extern const char* const MSG_STATS_TOTALPRINTTIME_LANG_TABLE[1];
+#define MSG_STATS_TOTALPRINTTIME LANG_TABLE_SELECT_EXPLICIT(MSG_STATS_TOTALPRINTTIME_LANG_TABLE, 0)
 extern const char* const MSG_STEPPER_TOO_HIGH_LANG_TABLE[1];
 #define MSG_STEPPER_TOO_HIGH LANG_TABLE_SELECT_EXPLICIT(MSG_STEPPER_TOO_HIGH_LANG_TABLE, 0)
-extern const char* const MSG_STOPPED_LANG_TABLE[LANG_NUM];
-#define MSG_STOPPED LANG_TABLE_SELECT(MSG_STOPPED_LANG_TABLE)
-extern const char* const MSG_STOP_PRINT_LANG_TABLE[LANG_NUM];
-#define MSG_STOP_PRINT LANG_TABLE_SELECT(MSG_STOP_PRINT_LANG_TABLE)
+extern const char* const MSG_STOPPED_LANG_TABLE[1];
+#define MSG_STOPPED LANG_TABLE_SELECT_EXPLICIT(MSG_STOPPED_LANG_TABLE, 0)
+extern const char* const MSG_STOP_PRINT_LANG_TABLE[1];
+#define MSG_STOP_PRINT LANG_TABLE_SELECT_EXPLICIT(MSG_STOP_PRINT_LANG_TABLE, 0)
 extern const char* const MSG_STORE_EPROM_LANG_TABLE[1];
 #define MSG_STORE_EPROM LANG_TABLE_SELECT_EXPLICIT(MSG_STORE_EPROM_LANG_TABLE, 0)
-extern const char* const MSG_SUPPORT_LANG_TABLE[LANG_NUM];
-#define MSG_SUPPORT LANG_TABLE_SELECT(MSG_SUPPORT_LANG_TABLE)
-extern const char* const MSG_SWITCH_PS_OFF_LANG_TABLE[LANG_NUM];
-#define MSG_SWITCH_PS_OFF LANG_TABLE_SELECT(MSG_SWITCH_PS_OFF_LANG_TABLE)
-extern const char* const MSG_SWITCH_PS_ON_LANG_TABLE[LANG_NUM];
-#define MSG_SWITCH_PS_ON LANG_TABLE_SELECT(MSG_SWITCH_PS_ON_LANG_TABLE)
-extern const char* const MSG_TAKE_EFFECT_LANG_TABLE[LANG_NUM];
-#define MSG_TAKE_EFFECT LANG_TABLE_SELECT(MSG_TAKE_EFFECT_LANG_TABLE)
-extern const char* const MSG_TEMPERATURE_LANG_TABLE[LANG_NUM];
-#define MSG_TEMPERATURE LANG_TABLE_SELECT(MSG_TEMPERATURE_LANG_TABLE)
-extern const char* const MSG_TEMP_CALIBRATION_LANG_TABLE[LANG_NUM];
-#define MSG_TEMP_CALIBRATION LANG_TABLE_SELECT(MSG_TEMP_CALIBRATION_LANG_TABLE)
-extern const char* const MSG_TEMP_CALIBRATION_DONE_LANG_TABLE[LANG_NUM];
-#define MSG_TEMP_CALIBRATION_DONE LANG_TABLE_SELECT(MSG_TEMP_CALIBRATION_DONE_LANG_TABLE)
-extern const char* const MSG_TEMP_CALIBRATION_OFF_LANG_TABLE[LANG_NUM];
-#define MSG_TEMP_CALIBRATION_OFF LANG_TABLE_SELECT(MSG_TEMP_CALIBRATION_OFF_LANG_TABLE)
-extern const char* const MSG_TEMP_CALIBRATION_ON_LANG_TABLE[LANG_NUM];
-#define MSG_TEMP_CALIBRATION_ON LANG_TABLE_SELECT(MSG_TEMP_CALIBRATION_ON_LANG_TABLE)
-extern const char* const MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_LANG_TABLE[LANG_NUM];
-#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF LANG_TABLE_SELECT(MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_LANG_TABLE)
-extern const char* const MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_LANG_TABLE[LANG_NUM];
-#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON LANG_TABLE_SELECT(MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_LANG_TABLE)
-extern const char* const MSG_TUNE_LANG_TABLE[LANG_NUM];
-#define MSG_TUNE LANG_TABLE_SELECT(MSG_TUNE_LANG_TABLE)
+extern const char* const MSG_SUPPORT_LANG_TABLE[1];
+#define MSG_SUPPORT LANG_TABLE_SELECT_EXPLICIT(MSG_SUPPORT_LANG_TABLE, 0)
+extern const char* const MSG_SWITCH_PS_OFF_LANG_TABLE[1];
+#define MSG_SWITCH_PS_OFF LANG_TABLE_SELECT_EXPLICIT(MSG_SWITCH_PS_OFF_LANG_TABLE, 0)
+extern const char* const MSG_SWITCH_PS_ON_LANG_TABLE[1];
+#define MSG_SWITCH_PS_ON LANG_TABLE_SELECT_EXPLICIT(MSG_SWITCH_PS_ON_LANG_TABLE, 0)
+extern const char* const MSG_TAKE_EFFECT_LANG_TABLE[1];
+#define MSG_TAKE_EFFECT LANG_TABLE_SELECT_EXPLICIT(MSG_TAKE_EFFECT_LANG_TABLE, 0)
+extern const char* const MSG_TEMPERATURE_LANG_TABLE[1];
+#define MSG_TEMPERATURE LANG_TABLE_SELECT_EXPLICIT(MSG_TEMPERATURE_LANG_TABLE, 0)
+extern const char* const MSG_TEMP_CALIBRATION_LANG_TABLE[1];
+#define MSG_TEMP_CALIBRATION LANG_TABLE_SELECT_EXPLICIT(MSG_TEMP_CALIBRATION_LANG_TABLE, 0)
+extern const char* const MSG_TEMP_CALIBRATION_DONE_LANG_TABLE[1];
+#define MSG_TEMP_CALIBRATION_DONE LANG_TABLE_SELECT_EXPLICIT(MSG_TEMP_CALIBRATION_DONE_LANG_TABLE, 0)
+extern const char* const MSG_TEMP_CALIBRATION_OFF_LANG_TABLE[1];
+#define MSG_TEMP_CALIBRATION_OFF LANG_TABLE_SELECT_EXPLICIT(MSG_TEMP_CALIBRATION_OFF_LANG_TABLE, 0)
+extern const char* const MSG_TEMP_CALIBRATION_ON_LANG_TABLE[1];
+#define MSG_TEMP_CALIBRATION_ON LANG_TABLE_SELECT_EXPLICIT(MSG_TEMP_CALIBRATION_ON_LANG_TABLE, 0)
+extern const char* const MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_LANG_TABLE[1];
+#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF LANG_TABLE_SELECT_EXPLICIT(MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_LANG_TABLE, 0)
+extern const char* const MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_LANG_TABLE[1];
+#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON LANG_TABLE_SELECT_EXPLICIT(MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_LANG_TABLE, 0)
+extern const char* const MSG_TUNE_LANG_TABLE[1];
+#define MSG_TUNE LANG_TABLE_SELECT_EXPLICIT(MSG_TUNE_LANG_TABLE, 0)
 extern const char* const MSG_UNKNOWN_COMMAND_LANG_TABLE[1];
 #define MSG_UNKNOWN_COMMAND LANG_TABLE_SELECT_EXPLICIT(MSG_UNKNOWN_COMMAND_LANG_TABLE, 0)
-extern const char* const MSG_UNLOADING_FILAMENT_LANG_TABLE[LANG_NUM];
-#define MSG_UNLOADING_FILAMENT LANG_TABLE_SELECT(MSG_UNLOADING_FILAMENT_LANG_TABLE)
-extern const char* const MSG_UNLOAD_ALL_LANG_TABLE[LANG_NUM];
-#define MSG_UNLOAD_ALL LANG_TABLE_SELECT(MSG_UNLOAD_ALL_LANG_TABLE)
-extern const char* const MSG_UNLOAD_FILAMENT_LANG_TABLE[LANG_NUM];
-#define MSG_UNLOAD_FILAMENT LANG_TABLE_SELECT(MSG_UNLOAD_FILAMENT_LANG_TABLE)
-extern const char* const MSG_UNLOAD_FILAMENT_1_LANG_TABLE[LANG_NUM];
-#define MSG_UNLOAD_FILAMENT_1 LANG_TABLE_SELECT(MSG_UNLOAD_FILAMENT_1_LANG_TABLE)
-extern const char* const MSG_UNLOAD_FILAMENT_2_LANG_TABLE[LANG_NUM];
-#define MSG_UNLOAD_FILAMENT_2 LANG_TABLE_SELECT(MSG_UNLOAD_FILAMENT_2_LANG_TABLE)
-extern const char* const MSG_UNLOAD_FILAMENT_3_LANG_TABLE[LANG_NUM];
-#define MSG_UNLOAD_FILAMENT_3 LANG_TABLE_SELECT(MSG_UNLOAD_FILAMENT_3_LANG_TABLE)
-extern const char* const MSG_UNLOAD_FILAMENT_4_LANG_TABLE[LANG_NUM];
-#define MSG_UNLOAD_FILAMENT_4 LANG_TABLE_SELECT(MSG_UNLOAD_FILAMENT_4_LANG_TABLE)
-extern const char* const MSG_USB_PRINTING_LANG_TABLE[LANG_NUM];
-#define MSG_USB_PRINTING LANG_TABLE_SELECT(MSG_USB_PRINTING_LANG_TABLE)
-extern const char* const MSG_USED_LANG_TABLE[LANG_NUM];
-#define MSG_USED LANG_TABLE_SELECT(MSG_USED_LANG_TABLE)
-extern const char* const MSG_USERWAIT_LANG_TABLE[LANG_NUM];
-#define MSG_USERWAIT LANG_TABLE_SELECT(MSG_USERWAIT_LANG_TABLE)
+extern const char* const MSG_UNLOADING_FILAMENT_LANG_TABLE[1];
+#define MSG_UNLOADING_FILAMENT LANG_TABLE_SELECT_EXPLICIT(MSG_UNLOADING_FILAMENT_LANG_TABLE, 0)
+extern const char* const MSG_UNLOAD_ALL_LANG_TABLE[1];
+#define MSG_UNLOAD_ALL LANG_TABLE_SELECT_EXPLICIT(MSG_UNLOAD_ALL_LANG_TABLE, 0)
+extern const char* const MSG_UNLOAD_FILAMENT_LANG_TABLE[1];
+#define MSG_UNLOAD_FILAMENT LANG_TABLE_SELECT_EXPLICIT(MSG_UNLOAD_FILAMENT_LANG_TABLE, 0)
+extern const char* const MSG_UNLOAD_FILAMENT_1_LANG_TABLE[1];
+#define MSG_UNLOAD_FILAMENT_1 LANG_TABLE_SELECT_EXPLICIT(MSG_UNLOAD_FILAMENT_1_LANG_TABLE, 0)
+extern const char* const MSG_UNLOAD_FILAMENT_2_LANG_TABLE[1];
+#define MSG_UNLOAD_FILAMENT_2 LANG_TABLE_SELECT_EXPLICIT(MSG_UNLOAD_FILAMENT_2_LANG_TABLE, 0)
+extern const char* const MSG_UNLOAD_FILAMENT_3_LANG_TABLE[1];
+#define MSG_UNLOAD_FILAMENT_3 LANG_TABLE_SELECT_EXPLICIT(MSG_UNLOAD_FILAMENT_3_LANG_TABLE, 0)
+extern const char* const MSG_UNLOAD_FILAMENT_4_LANG_TABLE[1];
+#define MSG_UNLOAD_FILAMENT_4 LANG_TABLE_SELECT_EXPLICIT(MSG_UNLOAD_FILAMENT_4_LANG_TABLE, 0)
+extern const char* const MSG_USB_PRINTING_LANG_TABLE[1];
+#define MSG_USB_PRINTING LANG_TABLE_SELECT_EXPLICIT(MSG_USB_PRINTING_LANG_TABLE, 0)
+extern const char* const MSG_USED_LANG_TABLE[1];
+#define MSG_USED LANG_TABLE_SELECT_EXPLICIT(MSG_USED_LANG_TABLE, 0)
+extern const char* const MSG_USERWAIT_LANG_TABLE[1];
+#define MSG_USERWAIT LANG_TABLE_SELECT_EXPLICIT(MSG_USERWAIT_LANG_TABLE, 0)
 extern const char* const MSG_VMIN_LANG_TABLE[1];
 #define MSG_VMIN LANG_TABLE_SELECT_EXPLICIT(MSG_VMIN_LANG_TABLE, 0)
 extern const char* const MSG_VOLUMETRIC_LANG_TABLE[1];
@@ -636,18 +633,18 @@ extern const char* const MSG_VOLUMETRIC_ENABLED_LANG_TABLE[1];
 #define MSG_VOLUMETRIC_ENABLED LANG_TABLE_SELECT_EXPLICIT(MSG_VOLUMETRIC_ENABLED_LANG_TABLE, 0)
 extern const char* const MSG_VTRAV_MIN_LANG_TABLE[1];
 #define MSG_VTRAV_MIN LANG_TABLE_SELECT_EXPLICIT(MSG_VTRAV_MIN_LANG_TABLE, 0)
-extern const char* const MSG_WAITING_TEMP_LANG_TABLE[LANG_NUM];
-#define MSG_WAITING_TEMP LANG_TABLE_SELECT(MSG_WAITING_TEMP_LANG_TABLE)
-extern const char* const MSG_WATCH_LANG_TABLE[LANG_NUM];
-#define MSG_WATCH LANG_TABLE_SELECT(MSG_WATCH_LANG_TABLE)
+extern const char* const MSG_WAITING_TEMP_LANG_TABLE[1];
+#define MSG_WAITING_TEMP LANG_TABLE_SELECT_EXPLICIT(MSG_WAITING_TEMP_LANG_TABLE, 0)
+extern const char* const MSG_WATCH_LANG_TABLE[1];
+#define MSG_WATCH LANG_TABLE_SELECT_EXPLICIT(MSG_WATCH_LANG_TABLE, 0)
 extern const char* const MSG_WATCHDOG_RESET_LANG_TABLE[1];
 #define MSG_WATCHDOG_RESET LANG_TABLE_SELECT_EXPLICIT(MSG_WATCHDOG_RESET_LANG_TABLE, 0)
 extern const char* const MSG_X_MAX_LANG_TABLE[1];
 #define MSG_X_MAX LANG_TABLE_SELECT_EXPLICIT(MSG_X_MAX_LANG_TABLE, 0)
 extern const char* const MSG_X_MIN_LANG_TABLE[1];
 #define MSG_X_MIN LANG_TABLE_SELECT_EXPLICIT(MSG_X_MIN_LANG_TABLE, 0)
-extern const char* const MSG_YES_LANG_TABLE[LANG_NUM];
-#define MSG_YES LANG_TABLE_SELECT(MSG_YES_LANG_TABLE)
+extern const char* const MSG_YES_LANG_TABLE[1];
+#define MSG_YES LANG_TABLE_SELECT_EXPLICIT(MSG_YES_LANG_TABLE, 0)
 extern const char* const MSG_Y_MAX_LANG_TABLE[1];
 #define MSG_Y_MAX LANG_TABLE_SELECT_EXPLICIT(MSG_Y_MAX_LANG_TABLE, 0)
 extern const char* const MSG_Y_MIN_LANG_TABLE[1];
@@ -660,8 +657,8 @@ extern const char* const MSG_Z_MAX_LANG_TABLE[1];
 #define MSG_Z_MAX LANG_TABLE_SELECT_EXPLICIT(MSG_Z_MAX_LANG_TABLE, 0)
 extern const char* const MSG_Z_MIN_LANG_TABLE[1];
 #define MSG_Z_MIN LANG_TABLE_SELECT_EXPLICIT(MSG_Z_MIN_LANG_TABLE, 0)
-extern const char* const WELCOME_MSG_LANG_TABLE[LANG_NUM];
-#define WELCOME_MSG LANG_TABLE_SELECT(WELCOME_MSG_LANG_TABLE)
+extern const char* const WELCOME_MSG_LANG_TABLE[1];
+#define WELCOME_MSG LANG_TABLE_SELECT_EXPLICIT(WELCOME_MSG_LANG_TABLE, 0)
 
 extern char* CAT2(const char *s1,const char *s2);
 extern char* CAT4(const char *s1,const char *s2,const char *s3,const char *s4);

+ 1 - 304
Firmware/language_cz.h

@@ -1,304 +1 @@
-/**
- * English
- *
- * LCD Menu Messages
- * Please note these are limited to 17 characters!
- *
- */
-#define WELCOME_MSG                         CUSTOM_MENDEL_NAME " ok"
-#define MSG_SD_INSERTED                     "Karta vlozena"
-#define MSG_SD_REMOVED                      "Karta vyjmuta"
-#define MSG_MAIN                            "Hlavni nabidka"
-#define MSG_DISABLE_STEPPERS                "Vypnout motory"
-#define MSG_AUTO_HOME                       "Auto home"
-#define MSG_SET_HOME_OFFSETS                "Nastav pocatek home"
-#define MSG_SET_ORIGIN                      "Nastav pocatek"
-#define MSG_COOLDOWN                        "Zchladit"
-#define MSG_SWITCH_PS_ON                    "Vypnout zdroj"
-#define MSG_SWITCH_PS_OFF                   "Zapnout zdroj"
-#define MSG_MOVE_AXIS                       "Posunout osu"
-#define MSG_MOVE_X                          "Posunout X"
-#define MSG_MOVE_Y                          "Posunout Y"
-#define MSG_MOVE_Z                          "Posunout Z"
-#define MSG_MOVE_E                          "Extruder"
-#define MSG_SPEED                           "Rychlost"
-#define MSG_NOZZLE                          "Tryska"
-#define MSG_NOZZLE1                         "Tryska2"
-#define MSG_NOZZLE2                         "Tryska3"
-#define MSG_BED                             "Bed"
-#define MSG_FAN_SPEED                       "Rychlost vent."
-#define MSG_FLOW                            "Prutok"
-#define MSG_FLOW0                           "Prutok 0"
-#define MSG_FLOW1                           "Prutok 1"
-#define MSG_FLOW2                           "Prutok 2"
-#define MSG_CONTROL                         "Kontrola"
-#define MSG_MIN                             " \002 Min"
-#define MSG_MAX                             " \002 Max"
-#define MSG_FACTOR                          " \002 Fact"
-#define MSG_TEMPERATURE                     "Teplota"
-#define MSG_MOTION                          "Pohyb"
-#define MSG_VOLUMETRIC                      "Filament"
-#define MSG_VOLUMETRIC_ENABLED		        "E in mm3"
-#define MSG_STORE_EPROM                     "Store memory"
-#define MSG_LOAD_EPROM                      "Ulozit pamet"
-#define MSG_RESTORE_FAILSAFE                "Obnovit vychozi"
-#define MSG_REFRESH                         "\xF8" "Obnovit"
-#define MSG_WATCH                           "Informace"
-#define MSG_TUNE                            "Ladit"
-#define MSG_PAUSE_PRINT                     "Pozastavit tisk"
-#define MSG_RESUME_PRINT                    "Pokracovat"
-#define MSG_STOP_PRINT                      "Zastavit tisk"
-#define MSG_CARD_MENU                       "Tisk z SD"
-#define MSG_NO_CARD                         "Zadna SD karta"
-#define MSG_DWELL                           "Sleep..."
-#define MSG_USERWAIT                        "Wait for user..."
-#define MSG_RESUMING                        "Obnoveni tisku"
-#define MSG_PRINT_ABORTED                   "Tisk prerusen"
-#define MSG_NO_MOVE                         "No move."
-#define MSG_KILLED                          "KILLED. "
-#define MSG_STOPPED                         "STOPPED. "
-#define MSG_FILAMENTCHANGE                  "Vymenit filament"
-#define MSG_INIT_SDCARD                     "Inic. SD"
-#define MSG_CNG_SDCARD                      "Vymenit SD"
-#define MSG_BABYSTEP_X                      "Babystep X"
-#define MSG_BABYSTEP_Y                      "Babystep Y"
-#define MSG_BABYSTEP_Z                      "Doladeni osy Z"
-#define MSG_ADJUSTZ							"Auto doladit Z ?"
-#define MSG_PICK_Z							"Vyberte vytisk"
-
-#define MSG_HOMEYZ                          "Kalibrovat Z"
-#define MSG_HOMEYZ_PROGRESS                 "Kalibruji Z"
-#define MSG_HOMEYZ_DONE		                "Kalibrace OK"
-
-#define MSG_SETTINGS                         "Nastaveni"
-#define MSG_PREHEAT                         "Predehrev"
-#define MSG_UNLOAD_FILAMENT                 "Vyjmout filament"
-#define MSG_LOAD_FILAMENT					"Zavest filament"
-#define MSG_LOAD_FILAMENT_1					"Zavest filament 1"
-#define MSG_LOAD_FILAMENT_2					"Zavest filament 2"
-#define MSG_LOAD_FILAMENT_3					"Zavest filament 3"
-#define MSG_LOAD_FILAMENT_4					"Zavest filament 4"
-#define MSG_UNLOAD_FILAMENT_1				"Vyjmout filam. 1"
-#define MSG_UNLOAD_FILAMENT_2				"Vyjmout filam. 2"
-#define MSG_UNLOAD_FILAMENT_3				"Vyjmout filam. 3"
-#define MSG_UNLOAD_FILAMENT_4				"Vyjmout filam. 4"
-#define MSG_UNLOAD_ALL						"Vyjmout vse"
-#define MSG_LOAD_ALL						"Zavest vse"
-
-#define MSG_RECTRACT                        "Rectract"
-#define MSG_ERROR                       "CHYBA:"
-#define MSG_PREHEAT_NOZZLE              "Predehrejte trysku!"
-#define MSG_SUPPORT                     "Podpora"
-#define MSG_CORRECTLY			"Vymena ok?"
-#define MSG_YES					"Ano"
-#define MSG_NO					"Ne"
-#define MSG_NOT_LOADED 			"Filament nezaveden"
-#define MSG_NOT_COLOR 			"Barva neni cista"
-#define MSG_LOADING_FILAMENT	        "Zavadeni filamentu"
-#define MSG_PLEASE_WAIT			"Prosim cekejte"
-#define MSG_LOADING_COLOR		"Cisteni barvy"
-#define MSG_CHANGE_SUCCESS		"Zmena uspesna!"
-#define MSG_PRESS				"a stisknete tlacitko"
-#define MSG_INSERT_FILAMENT		"Vlozte filament"
-#define MSG_CHANGING_FILAMENT	"Vymena filamentu!"
-
-#define MSG_SILENT_MODE_ON					"Mod       [tichy]"
-#define MSG_SILENT_MODE_OFF					"Mod  [vys. vykon]" 
-#define MSG_REBOOT							"Restartujte tiskarnu"
-#define MSG_TAKE_EFFECT						" pro projeveni zmen"	
-
-#define MSG_Enqueing                        "enqueing \""
-#define MSG_POWERUP                         "PowerUp"
-#define MSG_CONFIGURATION_VER               " Last Updated: "
-#define MSG_FREE_MEMORY                     " Free Memory: "
-#define MSG_PLANNER_BUFFER_BYTES            "  PlannerBufferBytes: "
-#define MSG_OK                              "ok"
-#define MSG_ERR_CHECKSUM_MISMATCH           "checksum mismatch, Last Line: "
-#define MSG_ERR_NO_CHECKSUM                 "No Checksum with line number, Last Line: "
-#define MSG_BEGIN_FILE_LIST                 "Begin file list"
-#define MSG_END_FILE_LIST                   "End file list"
-#define MSG_M104_INVALID_EXTRUDER           "M104 Invalid extruder "
-#define MSG_M105_INVALID_EXTRUDER           "M105 Invalid extruder "
-#define MSG_M200_INVALID_EXTRUDER           "M200 Invalid extruder "
-#define MSG_M218_INVALID_EXTRUDER           "M218 Invalid extruder "
-#define MSG_M221_INVALID_EXTRUDER           "M221 Invalid extruder "
-#define MSG_ERR_NO_THERMISTORS              "No thermistors - no temperature"
-#define MSG_M109_INVALID_EXTRUDER           "M109 Invalid extruder "
-#define MSG_HEATING                         "Zahrivani"
-#define MSG_HEATING_COMPLETE                "Zahrivani OK."
-#define MSG_BED_HEATING                     "Zahrivani bed"
-#define MSG_BED_DONE                        "Bed OK."
-#define MSG_M115_REPORT                     "FIRMWARE_NAME:Marlin V1.0.2; Sprinter/grbl mashup for gen6 FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" CUSTOM_MENDEL_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n"
-#define MSG_ERR_KILLED                      "Printer halted. kill() called!"
-#define MSG_ERR_STOPPED                     "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)"
-#define MSG_RESEND                          "Resend: "
-#define MSG_M119_REPORT                     "Reporting endstop status"
-#define MSG_ENDSTOP_HIT                     "TRIGGERED"
-#define MSG_ENDSTOP_OPEN                    "open"
-
-#define MSG_SD_CANT_OPEN_SUBDIR             "Cannot open subdir"
-#define MSG_SD_INIT_FAIL                    "SD init fail"
-#define MSG_SD_VOL_INIT_FAIL                "volume.init failed"
-#define MSG_SD_OPENROOT_FAIL                "openRoot failed"
-#define MSG_SD_CARD_OK                      "SD card ok"
-#define MSG_SD_WORKDIR_FAIL                 "workDir open failed"
-#define MSG_SD_OPEN_FILE_FAIL               "open failed, File: "
-#define MSG_SD_FILE_OPENED                  "File opened: "
-#define MSG_SD_FILE_SELECTED                "File selected"
-#define MSG_SD_WRITE_TO_FILE                "Writing to file: "
-#define MSG_SD_PRINTING_BYTE                "SD printing byte "
-#define MSG_SD_NOT_PRINTING                 "Not SD printing"
-#define MSG_SD_ERR_WRITE_TO_FILE            "error writing to file"
-#define MSG_SD_CANT_ENTER_SUBDIR            "Cannot enter subdir: "
-
-#define MSG_STEPPER_TOO_HIGH                "Steprate too high: "
-#define MSG_ENDSTOPS_HIT                    "endstops hit: "
-#define MSG_ERR_COLD_EXTRUDE_STOP           " cold extrusion prevented"
-#define MSG_BABYSTEPPING_X                  "Babystepping X"
-#define MSG_BABYSTEPPING_Y                  "Babystepping Y"
-#define MSG_BABYSTEPPING_Z                  "Dostavovani Z"
-#define MSG_SERIAL_ERROR_MENU_STRUCTURE     "Error in menu structure"
-
-#define MSG_LANGUAGE_NAME					"Cestina"
-#define MSG_LANGUAGE_SELECT					"Vyber jazyka"
- #define MSG_PRUSA3D						"prusa3d.cz"
- #define MSG_PRUSA3D_FORUM					"forum.prusa3d.cz"
- #define MSG_PRUSA3D_HOWTO					"howto.prusa3d.cz"
-
-#define MSG_HOMEYZ                          "Kalibrovat Z"
-#define MSG_HOMEYZ_PROGRESS                 "Kalibruji Z"
-#define MSG_HOMEYZ_DONE		                "Kalibrace OK"
-
-#define MSG_SELFTEST_ERROR					"Selftest error !"
-#define MSG_SELFTEST_PLEASECHECK			"Zkontrolujte :"	
-#define MSG_SELFTEST_NOTCONNECTED			"Nezapojeno    "
-#define MSG_SELFTEST_HEATERTHERMISTOR		"Heater/Thermistor"
-#define MSG_SELFTEST_BEDHEATER				"Bed / Heater"
-#define MSG_SELFTEST_WIRINGERROR			"Chyba zapojeni"
-#define MSG_SELFTEST_ENDSTOPS				"Endstops"
-#define MSG_SELFTEST_MOTOR					"Motor"
-#define MSG_SELFTEST_ENDSTOP				"Endstop"
-#define MSG_SELFTEST_ENDSTOP_NOTHIT			"Endstop not hit"
-#define MSG_SELFTEST_OK						"Self test OK"
-
-#define(length=20) MSG_SELFTEST_FAN					"Test ventilatoru";
-#define(length=20) MSG_SELFTEST_COOLING_FAN			"Predni tiskovy vent?";
-#define(length=20) MSG_SELFTEST_EXTRUDER_FAN			"Levy vent na trysce?";
-#define MSG_SELFTEST_FAN_YES				"Toci se";
-#define MSG_SELFTEST_FAN_NO					"Netoci se";
-
-#define MSG_STATS_TOTALFILAMENT				"Filament celkem :"
-#define MSG_STATS_TOTALPRINTTIME			"Celkovy cas :"
-#define MSG_STATS_FILAMENTUSED				"Filament :  "
-#define MSG_STATS_PRINTTIME					"Cas tisku :  "
-
-#define MSG_SELFTEST_START					"Self test start  "
-#define MSG_SELFTEST_CHECK_ENDSTOPS			"Kontrola endstops"
-#define MSG_SELFTEST_CHECK_HOTEND			"Kontrola hotend  "  
-#define MSG_SELFTEST_CHECK_X				"Kontrola X axis  "
-#define MSG_SELFTEST_CHECK_Y				"Kontrola Y axis  "
-#define MSG_SELFTEST_CHECK_Z				"Kontrola Z axis  "
-#define MSG_SELFTEST_CHECK_BED				"Kontrola bed     "
-#define MSG_SELFTEST_CHECK_ALLCORRECT		"Vse OK           "
-#define MSG_SELFTEST						"Selftest         "
-#define MSG_SELFTEST_FAILED					"Selftest selhal  "
-
-#define MSG_STATISTICS						"Statistika  "
-#define MSG_USB_PRINTING					"Tisk z USB  "
-
-#define MSG_SHOW_END_STOPS					"Stav konc. spin."
-#define MSG_CALIBRATE_BED					"Kalibrace XYZ"
-#define MSG_CALIBRATE_BED_RESET				"Reset XYZ kalibr."
-
-#define MSG_MOVE_CARRIAGE_TO_THE_TOP		"Kalibrace XYZ. Otacenim tlacitka posunte Z osu az k~hornimu dorazu. Potvrdte tlacitkem."
-#define MSG_MOVE_CARRIAGE_TO_THE_TOP_Z		"Kalibrace Z. Otacenim tlacitka posunte Z osu az k~hornimu dorazu. Potvrdte tlacitkem."
-
-#define MSG_CONFIRM_NOZZLE_CLEAN			"Pro uspesnou kalibraci ocistete prosim tiskovou trysku. Potvrdte tlacitkem."
-#define MSG_CONFIRM_CARRIAGE_AT_THE_TOP		"Dojely oba Z voziky k~hornimu dorazu?"
-
-#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE1	"Hledam kalibracni bod podlozky"
-#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE2	" z 4"
-#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1	"Zlepsuji presnost kalibracniho bodu"
-#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2	" z 9"
-#define MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1	"Merim referencni vysku kalibracniho bodu"
-#define MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2	" z 9"
-#define MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION	"Iterace "
-
-#define MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND			"Kalibrace XYZ selhala. Kalibracni bod podlozky nenalezen."
-#define MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED			"Kalibrace XYZ selhala. Nahlednete do manualu."
-#define MSG_BED_SKEW_OFFSET_DETECTION_PERFECT					"Kalibrace XYZ v poradku. X/Y osy jsou kolme. Gratuluji!"
-#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD					"Kalibrace XYZ v poradku. X/Y osy mirne zkosene. Dobra prace!"
-#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME				"Kalibrace XYZ v poradku. Zkoseni bude automaticky vyrovnano pri tisku."
-#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR		"Kalibrace XYZ selhala. Levy predni bod moc vpredu. Srovnejte tiskarnu."
-#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR	"Kalibrace XYZ selhala. Pravy predni bod moc vpredu. Srovnejte tiskarnu."
-#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR		"Kalibrace XYZ selhala. Predni kalibracni body moc vpredu. Srovnejte tiskarnu."
-#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR	"Kalibrace XYZ nepresna. Levy predni bod moc vpredu."
-#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR	"Kalibrace XYZ nepresna. Pravy predni bod moc vpredu."
-#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR	"Kalibrace XYZ nepresna. Predni kalibracni body moc vpredu."
-
-#define MSG_BED_LEVELING_FAILED_POINT_LOW						"Kalibrace Z selhala. Sensor nesepnul. Znecistena tryska? Cekam na reset."
-#define MSG_BED_LEVELING_FAILED_POINT_HIGH						"Kalibrace Z selhala. Sensor sepnul prilis vysoko. Cekam na reset."
-#define MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED				"Kalibrace Z selhala. Sensor je odpojeny nebo preruseny kabel. Cekam na reset."
-
-#define MSG_NEW_FIRMWARE_AVAILABLE								"Vysla nova verze firmware:"
-#define MSG_NEW_FIRMWARE_PLEASE_UPGRADE							"Prosim aktualizujte."
-#define MSG_FOLLOW_CALIBRATION_FLOW                        		"Tiskarna nebyla jeste zkalibrovana. Postupujte prosim podle manualu, kapitola Zaciname, odstavec Postup kalibrace."
-#define MSG_BABYSTEP_Z_NOT_SET                          		"Neni zkalibrovana vzdalenost trysky od tiskove podlozky. Postupujte prosim podle manualu, kapitola Zaciname, odstavec Nastaveni prvni vrstvy."
-
-#define MSG_BED_CORRECTION_MENU									"Korekce podlozky"
-#define MSG_BED_CORRECTION_LEFT									"Vlevo  [um]"
-#define MSG_BED_CORRECTION_RIGHT								"Vpravo [um]"
-#define MSG_BED_CORRECTION_FRONT								"Vpredu [um]"
-#define MSG_BED_CORRECTION_REAR									"Vzadu  [um]"
-#define MSG_BED_CORRECTION_RESET								"Reset"
-
-#define MSG_MESH_BED_LEVELING									"Mesh Bed Leveling"
-#define MSG_MENU_CALIBRATION									"Kalibrace"
-#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF					"SD card [normal]"
-#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON					"SD card [FlshAir]"
-
-#define MSG_LOOSE_PULLEY								"Uvolnena remenicka"
-#define MSG_FILAMENT_LOADING_T0							"Vlozte filament do extruderu 1. Potvrdte tlacitkem."
-#define MSG_FILAMENT_LOADING_T1							"Vlozte filament do extruderu 2. Potvrdte tlacitkem."
-#define MSG_FILAMENT_LOADING_T2							"Vlozte filament do extruderu 3. Potvrdte tlacitkem."
-#define MSG_FILAMENT_LOADING_T3							"Vlozte filament do extruderu 4. Potvrdte tlacitkem."
-#define MSG_CHANGE_EXTR									"Zmenit extruder"
-
-#define MSG_FIL_ADJUSTING								"Probiha srovnani filamentu. Prosim cekejte."
-#define MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ				"Filamenty jsou srovnany. Pro uspesnou kalibraci prosim ocistete trysku. Po te potvrdte tlacitkem."
-#define MSG_CALIBRATE_E									"Kalibrovat E"
-#define MSG_E_CAL_KNOB									"Otacejte tlacitkem dokud znacka nedosahne tela extruderu. Potvrdte tlacitkem."
-#define MSG_MARK_FIL									"Oznacte filament 100 mm od tela extruderu a po te potvrdte tlacitkem."
-#define MSG_CLEAN_NOZZLE_E								"E kalibrace ukoncena. Prosim ocistete trysku. Po te potvrdte tlacitkem."
-#define MSG_WAITING_TEMP								"Cekani na zchladnuti trysky a podlozky."
-#define MSG_FILAMENT_CLEAN								"Je barva cista?" 
-#define MSG_UNLOADING_FILAMENT							"Vysouvam filament"
-
-#define MSG_PAPER										"Umistete list papiru na podlozku a udrzujte jej pod tryskou behem mereni prvnich 4 bodu. Pokud tryska zachyti papir, vypnete tiskarnu."
-
-#define MSG_FINISHING_MOVEMENTS							"Dokoncovani pohybu"
-#define MSG_PRINT_PAUSED								"Tisk pozastaven"
-#define MSG_RESUMING_PRINT								"Obnovovani tisku"
-#define MSG_PID_EXTRUDER								"PID kalibrace"
-#define MSG_SET_TEMPERATURE								"Nastavte teplotu:"
-#define MSG_PID_FINISHED								"PID kal. ukoncena"
-#define MSG_PID_RUNNING									"PID kal.           "
-
-#define MSG_CALIBRATE_PINDA								"Zkalibrovat"
-#define MSG_CALIBRATION_PINDA_MENU						"Teplot. kalibrace"
-#define MSG_PINDA_NOT_CALIBRATED						"Tiskarna nebyla teplotne zkalibrovana"
-#define MSG_PINDA_PREHEAT								"Nahrivani PINDA"
-#define MSG_TEMP_CALIBRATION							"Tepl. kal.          "
-#define MSG_TEMP_CALIBRATION_DONE						"Teplotni kalibrace dokoncena. Pokracujte stiskem tlacitka."
-#define MSG_TEMP_CALIBRATION_ON							"Tepl. kal. [ON]"
-#define MSG_TEMP_CALIBRATION_OFF						"Tepl. kal. [OFF]"
-#define MSG_PREPARE_FILAMENT							"Pripravte filament"
-#define MSG_ALL											"Vse"
-#define MSG_USED										"Pouzite behem tisku"
-#define MSG_CURRENT										"Pouze aktualni"
-#define MSG_CHOOSE_EXTRUDER								"Vyberte extruder:"
-#define MSG_EXTRUDER									"Extruder"
-#define MSG_EXTRUDER_1									"Extruder 1"
-#define MSG_EXTRUDER_2									"Extruder 2"
-#define MSG_EXTRUDER_3									"Extruder 3"
-#define MSG_EXTRUDER_4									"Extruder 4"
+#define MSG_LANGUAGE_NAME					"cz"

+ 1 - 310
Firmware/language_de.h

@@ -5,313 +5,4 @@
  + * Please note these are limited to 17 characters!
  + *
  + */
-	+
-	+#define(length = 20) WELCOME_MSG              CUSTOM_MENDEL_NAME " bereit."
-	+ #define MSG_SD_INSERTED                     "SD eingesetzt"
-	+ #define MSG_SD_REMOVED                      "SD entfernt "
-	+ #define MSG_MAIN                            "Hauptmenue"
-	+ #define MSG_DISABLE_STEPPERS                "Motoren aus"
-	+ #define MSG_AUTO_HOME                       "Startposition"
-	+ #define MSG_SET_HOME_OFFSETS                "Abstand vom Ursprung einstellen"
-	+ #define MSG_SET_ORIGIN                      "Ursprung einstellen"
-	+ #define MSG_COOLDOWN                        "Abkuehlen"
-	+ #define MSG_SWITCH_PS_ON                    "Netzteil EIN"
-	+ #define MSG_SWITCH_PS_OFF                   "Netzteil AUS"
-	+ #define MSG_MOVE_AXIS                       "Achsbewegung"
-	+ #define MSG_MOVE_X                          "Bewege X"
-	+ #define MSG_MOVE_Y                          "Bewege Y"
-	+ #define MSG_MOVE_Z                          "Bewege Z"
-	+ #define MSG_MOVE_E                          "Extruder"
-	+ #define MSG_SPEED                           "Geschwindigkeit"
-	+ #define MSG_NOZZLE                          "Duese"
-	+ #define MSG_NOZZLE1                         "Duese2"
-	+ #define MSG_NOZZLE2                         "Duese3"
-	+ #define MSG_BED                             "Bed"
-	+ #define MSG_FAN_SPEED                       "Luefter-Tempo"
-	+ #define MSG_FLOW                            "Durchfluss"
-	+ #define MSG_FLOW0                           "Durchfluss 0"
-	+ #define MSG_FLOW1                           "Durchfluss 1"
-	+ #define MSG_FLOW2                           "Durchfluss 2"
-	+ #define MSG_CONTROL                         "Kontrolle"
-	+ #define MSG_MIN                             " \002 Min"
-	+ #define MSG_MAX                             " \002 Max"
-	+ #define MSG_FACTOR                          " \002 Fakt"
-	+ #define MSG_TEMPERATURE                     "Temperatur"
-	+ #define MSG_MOTION                          "Bewegung"
-	+ #define MSG_VOLUMETRIC                      "Filament"
-	+ #define MSG_VOLUMETRIC_ENABLED		        "E in mm3"
-	+ #define MSG_STORE_EPROM                     "Abspeichern"
-	+ #define MSG_LOAD_EPROM                      "Lade Speicher"
-	+ #define MSG_RESTORE_FAILSAFE                "Standardwerte setzen"
-	+ #define MSG_REFRESH                         "\xF8" "Erneuern"
-	+ #define MSG_WATCH                           "Information"
-	+ #define MSG_TUNE                            "Feineinstellung"
-	+ #define MSG_PAUSE_PRINT                     "Druck unterbrech."
-	+ #define MSG_RESUME_PRINT                    "Fortsetzen"
-	+ #define MSG_STOP_PRINT                      "Druck abbrechen"
-	+ #define MSG_CARD_MENU                       "Drucken von SD"
-	+ #define MSG_NO_CARD                         "Keine SD Karte"
-	+ #define MSG_DWELL                           "Einen Moment bitte."
-	+ #define MSG_USERWAIT                        "Warte auf user..."
-	+ #define MSG_RESUMING                        "Druck fortgesetzt"
-	+ #define(length = 20) MSG_PRINT_ABORTED        "Druck abgebrochen"
-	+ #define MSG_NO_MOVE                         "Keine Bewegung."
-	+ #define MSG_KILLED                          "ABGEBROCHEN. "
-	+ #define MSG_STOPPED                         "GESTOPPT. "
-	+ #define MSG_FILAMENTCHANGE                  "Filament-Wechsel"
-	+ #define MSG_INIT_SDCARD                     "Init SD Karte"
-	+ #define MSG_CNG_SDCARD                      "Wechsel SD Karte"
-	+ #define MSG_BABYSTEP_X                      "Babystep X"
-	+ #define MSG_BABYSTEP_Y                      "Babystep Y"
-	+ #define MSG_BABYSTEP_Z                      "Z einstellen"
-	+ #define MSG_ADJUSTZ							"Auto Z einstellen?"
-	+ #define MSG_PICK_Z							"Waehle Abdruck"
-	+
-	+#define MSG_SETTINGS                        "Einstellungen"
-	+ #define MSG_PREHEAT                         "Vorwaermen"
-	+ #define MSG_UNLOAD_FILAMENT                 "Filament entladen"
-	+ #define MSG_LOAD_FILAMENT                 "Filament laden"
-	+
-	+#define MSG_RECTRACT                        "Retract"
-	+ #define MSG_ERROR                        "FEHLER:"
-	+ #define(length = 20) MSG_PREHEAT_NOZZLE       "Duese Vorwaermen"
-	+ #define MSG_SUPPORT "Support"
-	+ #define(length = 20) MSG_CORRECTLY			"Wechsel ok?"
-	+ #define MSG_YES					"Ja"
-	+ #define MSG_NO					"Nein"
-	+ #define(length = 19) MSG_NOT_LOADED 			"Fil. nicht geladen"
-	+ #define MSG_NOT_COLOR 				"Farbe unklar"
-	+ #define(length = 20) MSG_LOADING_FILAMENT		"Filament leadt"
-	+ #define(length = 20) MSG_PLEASE_WAIT			"Bitte warten"
-	+ #define MSG_LOADING_COLOR		"Lade Farbe"
-	+ #define MSG_CHANGE_SUCCESS		"Wechsel erfolgr.!"
-	+ #define(length = 20) MSG_PRESS				"und Knopf druecken"
-	+ #define(length = 20) MSG_INSERT_FILAMENT		"Filament einlegen"
-	+ #define(length = 20) MSG_CHANGING_FILAMENT	"Filament-Wechsel!"
-	+
-	+
-	+#define MSG_SILENT_MODE_ON					"Mode     [leise]"
-	+ #define MSG_SILENT_MODE_OFF					"Mode [Hohe Leist]"
-	+ #define(length = 20) MSG_REBOOT				"Zum Uebernehmen "
-	+ #define(length = 22) MSG_TAKE_EFFECT			"Drucker neu starten"
-	+
-	+#define MSG_Enqueing                        "enqueuing \"
-	+ #define MSG_POWERUP                         "Einschalten"
-	+ #define MSG_CONFIGURATION_VER               " Letztes Update:"
-	+ #define MSG_FREE_MEMORY                     " Freier Speicher: "
-	+ #define MSG_PLANNER_BUFFER_BYTES            "  PlannerBufferBytes: "
-	+ #define MSG_OK                              "ok"
-	+ #define MSG_ERR_CHECKSUM_MISMATCH           "Pruefsummenfehler, Letzte Zeile: " //Checksum Fehler, Letzte Zeile: "
-	+ #define MSG_ERR_NO_CHECKSUM                 "Keine Pruefsumme mit Zeilennummer, Letzte Zeile: " //Keine Checksum mit Zeilennummer, Letzte Zeile: "
-	+ #define MSG_BEGIN_FILE_LIST                 "Beginn Dateiliste"
-	+ #define MSG_END_FILE_LIST                   "Ende Dateiliste"
-	+ #define MSG_M104_INVALID_EXTRUDER           "M104 Falscher Extruder"
-	+ #define MSG_M105_INVALID_EXTRUDER           "M105 Falscher Extruder"
-	+ #define MSG_M200_INVALID_EXTRUDER           "M200 Falscher Extruder"
-	+ #define MSG_M218_INVALID_EXTRUDER           "M218 Falscher Extruder"
-	+ #define MSG_M221_INVALID_EXTRUDER           "M221 Falscher Extruder"
-	+ #define MSG_ERR_NO_THERMISTORS              "Keine Thermistoren - keine Temperatur"
-	+ #define MSG_M109_INVALID_EXTRUDER           "M109 Falscher Extruder"
-	+ #define MSG_HEATING                         "Aufwaermen"
-	+ #define(length = 20) MSG_HEATING_COMPLETE   "Aufwaermen OK"
-	+ #define MSG_BED_HEATING                     "Bed aufwaermen"
-	+ #define MSG_BED_DONE                        "Bed OK"
-	+ #define MSG_M115_REPORT                     "FIRMWARE_NAME:Marlin V1.0.2; Sprinter/grbl mashup for gen6 FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" CUSTOM_MENDEL_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n"
-	+ #define MSG_ERR_KILLED                      "Printer gestoppt. kill() aufgerufen!"
-	+ #define MSG_ERR_STOPPED                     "Drucker aufgrund von Fehlern gestoppt. Fehler beheben und mit M999 neu starten. (Temperatur wird zurueckgesetzt. Nach dem Neustart neu einstellen!)"
-	+ #define MSG_RESEND                          "Wiederholen: "
-	+ #define MSG_M119_REPORT                     "Statusbericht Endanschlag"
-	+ #define MSG_ENDSTOP_HIT                     "AUSGELOEST"
-	+ #define MSG_ENDSTOP_OPEN                    "offen"
-	+
-	+#define MSG_SD_CANT_OPEN_SUBDIR             "Kann Unterverz. nicht oeffnen"
-	+ #define MSG_SD_INIT_FAIL                    "SD Init fehlerhaft"
-	+ #define MSG_SD_VOL_INIT_FAIL                "Dateisystem Init fehlerhaft"
-	+ #define MSG_SD_OPENROOT_FAIL                "Zugriff auf Basisverzeichnis misslungen"
-	+ #define MSG_SD_CARD_OK                      "SD Karte ok"
-	+ #define MSG_SD_WORKDIR_FAIL                 "Oeffnen Arbeitsverzeichnis misslungen"
-	+ #define MSG_SD_OPEN_FILE_FAIL               "Fehler beim Oeffnen der Datei: "
-	+ #define MSG_SD_FILE_OPENED                  "Datei geoeffnet: "
-	+ #define MSG_SD_FILE_SELECTED                "Datei ausgewaehlt"
-	+ #define MSG_SD_WRITE_TO_FILE                "Schreiben der Datei: "
-	+ #define MSG_SD_PRINTING_BYTE                "SD printing byte "
-	+ #define MSG_SD_NOT_PRINTING                 "Kein SD Print"
-	+ #define MSG_SD_ERR_WRITE_TO_FILE            "Fehler beim Schreiben in Datei"
-	+ #define MSG_SD_CANT_ENTER_SUBDIR            "Zugangsproblem Unterverzeichnis: "
-	+ #define MSG_STEPPER_TOO_HIGH                "Schrittrate zu hoch"
-	+ #define MSG_ENDSTOPS_HIT                    "Endanschlag erreicht"
-	+ #define MSG_ERR_COLD_EXTRUDE_STOP           "Stopp, Extruder kalt!"
-	+ #define MSG_BABYSTEPPING_X                  "Babystepping X"
-	+ #define MSG_BABYSTEPPING_Y                  "Babystepping Y"
-	+ #define MSG_BABYSTEPPING_Z                  "Z wurde eingestellt"
-	+ #define MSG_SERIAL_ERROR_MENU_STRUCTURE     "Menuestruktur fehlerhaft"
-	+
-	+#define MSG_LANGUAGE_NAME					"Deutsch"
-	+ #define MSG_LANGUAGE_SELECT					"Waehle Sprache"
-	+ #define MSG_PRUSA3D							"prusa3d.com"
-	+ #define MSG_PRUSA3D_FORUM					"forum.prusa3d.com"
-	+ #define MSG_PRUSA3D_HOWTO					"howto.prusa3d.com"
-	+
-	+#define MSG_SELFTEST_ERROR					"Selbtest Fehler!"
-	+ #define MSG_SELFTEST_PLEASECHECK			"Bitte pruefe:"
-	+ #define MSG_SELFTEST_NOTCONNECTED			"Nicht angeschlossen"
-	+ #define MSG_SELFTEST_HEATERTHERMISTOR		"Heater/Thermistor"
-	+ #define MSG_SELFTEST_BEDHEATER				"Bed / Heater"
-	+ #define MSG_SELFTEST_WIRINGERROR			"Verdrahtungfehler"
-	+ #define MSG_SELFTEST_ENDSTOPS				"Endschalter"
-	+ #define MSG_SELFTEST_MOTOR					"Motor"
-	+ #define MSG_SELFTEST_ENDSTOP				"Endstop"
-	+ #define MSG_SELFTEST_ENDSTOP_NOTHIT			"Ende nicht getrof."
-	+ #define MSG_SELFTEST_OK						"Selbsttest OK"
-	+ #define MSG_LOOSE_PULLEY					"Lose Riemenscheibe"
-	+
-	+#define MSG_SELFTEST_FAN					"Lueftertest"
-+#define(length = 20) MSG_SELFTEST_COOLING_FAN			"Vorderer Luefter?"
-+#define(length = 20) MSG_SELFTEST_EXTRUDER_FAN			"Linker Luefter?"
-+#define MSG_SELFTEST_FAN_YES				"Dreht"
-+#define MSG_SELFTEST_FAN_NO					"Dreht nicht"
-+
-+#define(length = 20) MSG_STATS_TOTALFILAMENT	"Gesamtfilament:"
-+ #define(length = 20) MSG_STATS_TOTALPRINTTIME "Totale Druckzeit:"
-+ #define(length = 20) MSG_STATS_FILAMENTUSED	"Filamentverbrauch:"
-+ #define(length = 20) MSG_STATS_PRINTTIME		"Druckzeit:  "
-+ #define(length = 20) MSG_SELFTEST_START				"Selbsttest start "
-+ #define(length = 20) MSG_SELFTEST_CHECK_ENDSTOPS	"Pruefe Endschalter  "
-+ #define(length = 20) MSG_SELFTEST_CHECK_HOTEND		"Pruefe Hotend" 
-+ #define(length = 20) MSG_SELFTEST_CHECK_X				"Pruefe X Achse    "
-+ #define(length = 20) MSG_SELFTEST_CHECK_Y				"Pruefe Y Achse    "
-+ #define(length = 20) MSG_SELFTEST_CHECK_Z				"Pruefe Z Achse    "
-+ #define(length = 20) MSG_SELFTEST_CHECK_BED			"Pr\x81fe Bed        "
-+ #define(length = 20) MSG_SELFTEST_CHECK_ALLCORRECT	"Alles richtig    "
-+ #define MSG_SELFTEST						"Selbsttest       "
-+ #define(length = 20) MSG_SELFTEST_FAILED		"Selbsttest misslung."
-+ #define MSG_STATISTICS						"Statistiken "
-+ #define MSG_USB_PRINTING					"Drucken ueber USB"
-+ #define MSG_HOMEYZ                          "Kalibrieren Z"
-+ #define MSG_HOMEYZ_PROGRESS                 "Kalibriere Z"
-+ #define MSG_HOMEYZ_DONE		                "Kalibrierung OK"
-+
-+#define MSG_SHOW_END_STOPS					"Endschalter Stat."
-+ #define MSG_CALIBRATE_BED					"Kalibrierung XYZ"
-+ #define MSG_CALIBRATE_BED_RESET				"Reset XYZ Kalibr."
-+
-
-+#define(length = 20, lines = 8) MSG_MOVE_CARRIAGE_TO_THE_TOP 	"Kalibrieren von XYZ. Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Klicken wenn ganz oben."
-+ #define(length = 20, lines = 8) MSG_MOVE_CARRIAGE_TO_THE_TOP_Z 	"Kalibrieren von Z. Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Klicken wenn ganz oben."
-+
-
-+#define(length = 20, lines = 8) MSG_CONFIRM_NOZZLE_CLEAN			"Bitte entfernen Sie ueberstehendes Filament von der Duese. Klicken wenn sauber."
-+ #define(length = 20, lines = 2) MSG_CONFIRM_CARRIAGE_AT_THE_TOP	"Ist der Schlitten ganz oben?"
-+
-+#define(length = 60) MSG_FIND_BED_OFFSET_AND_SKEW_LINE1		"Suchen Bed Kalibrierpunkt"
-+ #define(length = 14) MSG_FIND_BED_OFFSET_AND_SKEW_LINE2		" von 4"
-+ #define(length = 60) MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1	"Verbesserung Bed Kalibrierpunkt"
-+ #define(length = 14) MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2	" von 9"
-+ #define(length = 60) MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1	"Messen der Referenzhoehe des Kalibrierpunktes"
-+ #define(length = 14) MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2	" von 9"
-#define MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION	"Iteration "
-+
-+#define(length = 20, lines = 8) MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND			"XYZ-Kalibrierung fehlgeschlagen. Bed-Kalibrierpunkt nicht gefunden."
-+ #define(length = 20, lines = 8) MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED				"XYZ-Kalibrierung fehlgeschlagen. Bitte schauen Sie in das Handbuch."
-
-+ #define(length = 20, lines = 8) MSG_BED_SKEW_OFFSET_DETECTION_PERFECT					"XYZ-Kalibrierung ok. X/Y-Achsen sind senkrecht zueinander. Glueckwunsch!"
-+ #define(length = 20, lines = 8) MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD					"XYZ Kalibrierung in Ordnung. X/Y Achsen sind etwas schief."
-+ #define(length = 20, lines = 8) MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME					"XYZ Kalibrierung in Ordnung. Schiefheit wird automatisch korrigiert."
-
-+ #define(length = 20, lines = 8) MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR		"XYZ-Kalibrierung fehlgeschlagen. Linker vorderer Kalibrierpunkt ist zu weit vorne."
-+ #define(length = 20, lines = 8) MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR		"XYZ-Kalibrierung fehlgeschlagen. Rechter vorderer Kalibrierpunkt ist zu weit vorne."
-+ #define(length = 20, lines = 8) MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR		"XYZ-Kalibrierung fehlgeschlagen. Vordere Kalibrierpunkte sind zu weit vorne."
-+ #define(length = 20, lines = 8) MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR		"XYZ-Kalibrierung ungenau. Linker vorderer Kalibrierpunkt ist zu weit vorne."
-+ #define(length = 20, lines = 8) MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR		"XYZ-Kalibrierung ungenau. Rechter vorderer Kalibrierpunkt ist zu weit vorne."
-+ #define(length = 20, lines = 8) MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR		"XYZ-Kalibrierung ungenau. Vordere Kalibrierpunkte sind zu weit vorne."
-+
-+#define(length = 20, lines = 4) MSG_BED_LEVELING_FAILED_POINT_LOW						"Z-Kal. fehlgeschlg. Sensor nicht ausgeloest. Schmutzige Duese? Warte auf Reset"
-
-+ #define(length = 20, lines = 4) MSG_BED_LEVELING_FAILED_POINT_HIGH						"Z-Kalibrierung fehlgeschlg. Sensor zu hoch ausgeloest. Warte auf Reset."
-+ #define(length = 20, lines = 4) MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED				"Z-Kalibrierung fehlgeschlg. Sensor nicht angeschlossen. Warte auf Reset."
-+
-+#define(length = 20, lines = 2) MSG_NEW_FIRMWARE_AVAILABLE								"Neue Firmware Version verfuegbar:"
-+ #define(length = 20) MSG_NEW_FIRMWARE_PLEASE_UPGRADE									"Bitte aktualisieren."
-+
-+ #define(length = 20, lines = 8) MSG_FOLLOW_CALIBRATION_FLOW								"Der Drucker wurde noch nicht kalibriert. Bitte folgen Sie dem Handbuch, Kapitel First steps, Abschnitt Calibration flow."
-+ #define(length = 20, lines = 12) MSG_BABYSTEP_Z_NOT_SET									"Der Abstand zwischen der Spitze der Duese und der Bed ist noch nicht eingestellt. Bitte folgen Sie dem Handbuch, First steps, section First layer calibration."
-+ 
-+
-
-+ #define(length = 20, lines = 4) MSG_FILAMENT_LOADING_T0							"Filament in extruder 1 einlegen. Klicken wenn fertig."
-+ #define(length = 20, lines = 4) MSG_FILAMENT_LOADING_T1							"Filament in extruder 2 einlegen. Klicken wenn fertig."
-+ #define(length = 20, lines = 4) MSG_FILAMENT_LOADING_T2							"Filament in extruder 3 einlegen. Klicken wenn fertig."
-+ #define(length = 20, lines = 4) MSG_FILAMENT_LOADING_T3							"Filament in extruder 4 einlegen. Klicken wenn fertig."
-+ #define(length = 20, lines = 1) MSG_CHANGE_EXTR									"Wechsel extruder"
-+
-
-
-+ #define(length = 20, lines = 4) MSG_FIL_ADJUSTING								"Filament positionieren. Bitte warten."
-+ #define(length = 20, lines = 8) MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ			"Filamente sind jetzt eingestellt. Bitte reinigen Sie die Duese zur Kalibrierung. Klicken wenn fertig."
-+ 
-+ #define(length = 20, lines = 1) MSG_CALIBRATE_E						"Kalibriere E"
-+//#define(length=20, lines=1)				"Reset E Cal."
-
-+#define(length = 20, lines = 8) MSG_E_CAL_KNOB						"Knopf drehen bis die Filamentmarkierung erreicht ist. Klicken wenn fertig."
-+
-+//#define(length=20, lines=1) MSG_FARM_CARD_MENU					"Farm mode print"
-
-+#define(length = 20, lines = 8) MSG_MARK_FIL						"Filament 100mm vom Extrudergehaeuse markieren. Klicken wenn Fertig."
-+ #define(length = 20, lines = 8) MSG_CLEAN_NOZZLE_E				"E-Kalibrierung beendet. Bitte reinigen Sie die Duese. Klicken wenn fertig."
-+ #define(length = 20, lines = 3) MSG_WAITING_TEMP				"Warten auf Abkuehlung von Heater und Bed."
-
-+ #define(length = 20, lines = 2) MSG_FILAMENT_CLEAN				"Ist Farbe rein?"
-+ #define(lenght = 20, lines = 1) MSG_UNLOADING_FILAMENT			"Filament auswerfen"
-+ #define(length = 20, lines = 8) MSG_PAPER						"Legen ein Blatt Papier unter die Duese waehrend der Kalibrierung der ersten 4 Punkte. Wenn die Duese das Papier einklemmt, Drucker sofort ausschalten"
-+
-+#define MSG_BED_CORRECTION_MENU									"Bed level Korrekt"
-
-+ #define MSG_BED_CORRECTION_LEFT									"Links     [um]"
-+ #define MSG_BED_CORRECTION_RIGHT								"Rechts    [um]"
-+ #define MSG_BED_CORRECTION_FRONT								"Vorne     [um]"
-+ #define MSG_BED_CORRECTION_REAR									"Hinten    [um]"
-+ #define MSG_BED_CORRECTION_RESET								"Ruecksetzen"
-+
-+#define MSG_MESH_BED_LEVELING									"Mesh Bed Leveling"
-+ #define MSG_MENU_CALIBRATION									"Kalibrierung"
-
-+ #define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF					"SD Karte [normal]"
-+ #define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON					"SD Karte [FlashAir]"
-
-#define MSG_FINISHING_MOVEMENTS							"Bewegung beenden"
-#define MSG_PRINT_PAUSED								"Druck pausiert"
-#define MSG_RESUMING_PRINT								"Druck weitergehen"
-#define MSG_PID_EXTRUDER								"PID Kalibrierung"
-#define MSG_SET_TEMPERATURE								"Temp. einsetzen"
-#define MSG_PID_FINISHED								"PID Kalib. fertig"
-#define MSG_PID_RUNNING									"PID Kalib."
-
-#define MSG_CALIBRATE_PINDA								"Kalibrieren"
-#define MSG_CALIBRATION_PINDA_MENU						"Temp. kalibrieren"
-#define MSG_PINDA_NOT_CALIBRATED						"Temperatur wurde nicht kalibriert"
-#define MSG_PINDA_PREHEAT								"PINDA erwaermen"
-#define MSG_TEMP_CALIBRATION							"Temp Kalib.         "
-#define MSG_TEMP_CALIBRATION_DONE						"Temp. Kalibrierung fertig. Klicken um weiter zu gehen."
-#define MSG_TEMP_CALIBRATION_ON							"Temp. Kal. [ON]"
-#define MSG_TEMP_CALIBRATION_OFF						"Temp. Kal. [OFF]"
-
-#define MSG_LOAD_ALL									"Alle laden"
-#define MSG_LOAD_FILAMENT_1								"Filament 1 laden"
-#define MSG_LOAD_FILAMENT_2								"Filament 2 laden"
-#define MSG_LOAD_FILAMENT_3								"Filament 3 laden"
-#define MSG_LOAD_FILAMENT_4								"Filament 4 laden"
-#define MSG_UNLOAD_FILAMENT_1							"Filam. 1 entladen"
-#define MSG_UNLOAD_FILAMENT_2							"Filam. 2 entladen"
-#define MSG_UNLOAD_FILAMENT_3							"Filam. 3 entladen"
-#define MSG_UNLOAD_FILAMENT_4							"Filam. 4 entladen"
-#define MSG_UNLOAD_ALL									"Alles entladen"
-#define MSG_PREPARE_FILAMENT							"Filam. bereithalten"
-#define MSG_ALL											"Alle"
-#define MSG_USED										"Beim Druck benutzte"
-#define MSG_CURRENT										"Aktuelles"
-#define MSG_CHOOSE_EXTRUDER								"Waehlen Sie Extruder"
-#define MSG_EXTRUDER									"Extruder"
-#define MSG_EXTRUDER_1									"Extruder 1"
-#define MSG_EXTRUDER_2									"Extruder 2"
-#define MSG_EXTRUDER_3									"Extruder 3"
-#define MSG_EXTRUDER_4									"Extruder 4"
+#define MSG_LANGUAGE_NAME					"de"

+ 4 - 0
Firmware/language_en.h

@@ -313,3 +313,7 @@
 #define(length=11, lines=1) MSG_INFO_PRINT_FAN				"Print FAN: "
 #define(length=11, lines=1) MSG_INFO_FILAMENT_XDIFF				"Fil. Xd:"
 #define(length=11, lines=1) MSG_INFO_FILAMENT_YDIFF				"Fil. Ydiff:"
+
+#define MSG_CALIBRATE_Z_AUTO "msg calibrate z auto"
+#define MSG_FSENSOR_OFF "msg sensor off"
+#define MSG_FSENSOR_ON "msg sensor on"

+ 1 - 290
Firmware/language_es.h

@@ -6,293 +6,4 @@
  *
  */
 
-#define WELCOME_MSG                         CUSTOM_MENDEL_NAME " prep."
-#define MSG_SD_INSERTED                     "Tarjeta insertada"
-#define MSG_SD_REMOVED                      "Tarjeta retirada"
-#define MSG_MAIN                            "Menu principal"
-#define MSG_DISABLE_STEPPERS                "Apagar motores"
-#define MSG_AUTO_HOME                       "Llevar al origen"
-#define MSG_COOLDOWN                        "Enfriar"
-#define MSG_MOVE_AXIS                       "Mover ejes"
-#define MSG_MOVE_X                          "Mover X"
-#define MSG_MOVE_Y                          "Mover Y"
-#define MSG_MOVE_Z                          "Mover Z"
-#define MSG_MOVE_E                          "Extruir"
-#define MSG_SPEED                           "Velocidad"
-#define MSG_NOZZLE                          "Boquilla"
-#define MSG_BED                             "Base"
-#define MSG_FAN_SPEED                       "Velocidad Vent."
-#define MSG_FLOW                            "Flujo"
-#define MSG_TEMPERATURE                     "Temperatura"
-#define MSG_WATCH                           "Monitorizar"
-#define MSG_TUNE                            "Ajustar"
-#define MSG_PAUSE_PRINT                     "Pausar impresion"
-#define MSG_RESUME_PRINT                    "Reanudar impres."
-#define MSG_STOP_PRINT                      "Detener impresion"
-#define MSG_CARD_MENU                       "Menu tarjeta SD"
-#define MSG_NO_CARD                         "No hay tarjeta SD"
-#define MSG_DWELL                           "En espera"
-#define MSG_USERWAIT                        "Esperando ordenes"
-#define MSG_RESUMING                        "Resumiendo impresion"
-#define MSG_PRINT_ABORTED                   "Impresion cancelada" 
-#define MSG_NO_MOVE                         "Sin movimiento"
-#define MSG_KILLED                          "PARADA DE EMERGENCIA"
-#define MSG_STOPPED                         "PARADA"
-#define MSG_FILAMENTCHANGE                  "Cambiar filamento"
-#define MSG_BABYSTEP_Z                      "Micropaso Eje Z"
-#define MSG_ADJUSTZ			    "Ajustar Eje Z"			
-#define MSG_PICK_Z			    "Esc. Modelo Adecuado"
-
-#define MSG_SETTINGS                        "Configuracion"
-#define MSG_PREHEAT                         "Precalentar"
-#define MSG_UNLOAD_FILAMENT                 "Soltar filamento"
-#define MSG_LOAD_FILAMENT		    "Introducir filam."
-#define MSG_ERROR							"ERROR:"
-#define MSG_PREHEAT_NOZZLE                  "Precalentar extrusor"
-#define MSG_SUPPORT			    "Soporte"
-#define MSG_CORRECTLY			    "Cambiado correct.?"
-#define MSG_YES								"Si"
-#define MSG_NO								"No"
-#define MSG_NOT_LOADED 			    "Fil. no introducido"
-#define MSG_NOT_COLOR 			    "Color no homogeneo"
-#define MSG_LOADING_FILAMENT		    "Introduciendo filam."
-#define MSG_PLEASE_WAIT			    "Por Favor Esperar"
-#define MSG_LOADING_COLOR                   "Cambiando color" 
-#define MSG_CHANGE_SUCCESS		    "Cambio correcto"
-#define MSG_PRESS			    "Pulsar el mando"
-#define MSG_INSERT_FILAMENT		    "Introducir filamento"
-#define MSG_CHANGING_FILAMENT		    "Cambiando filamento"
-#define MSG_SILENT_MODE_ON					"Modo   [silencio]"
-#define MSG_SILENT_MODE_OFF		    "Modo [rend.pleno]" 
-#define MSG_REBOOT			    "Reiniciar impresora"
-#define MSG_TAKE_EFFECT			    " para aplicar cambios" 
-#define MSG_HEATING                         "Calentando..."
-#define MSG_HEATING_COMPLETE                "Calentamiento final."
-#define MSG_BED_HEATING                     "Calentando Base"
-#define MSG_BED_DONE                        "Base preparada"
-#define MSG_LANGUAGE_NAME					"Espanol"
-#define MSG_LANGUAGE_SELECT		    "Cambiae el idioma"
-#define MSG_PRUSA3D							"prusa3d.com"
-#define MSG_PRUSA3D_FORUM					"forum.prusa3d.com"
-#define MSG_PRUSA3D_HOWTO					"howto.prusa3d.com"
-
-
-// Do not translate those!
-
-#define MSG_Enqueing                        "enqueing \""
-#define MSG_POWERUP                         "PowerUp"
-#define MSG_CONFIGURATION_VER               " Last Updated: "
-#define MSG_FREE_MEMORY                     " Free Memory: "
-#define MSG_PLANNER_BUFFER_BYTES            "  PlannerBufferBytes: "
-#define MSG_OK                              "ok"
-#define MSG_ERR_CHECKSUM_MISMATCH           "checksum mismatch, Last Line: "
-#define MSG_ERR_NO_CHECKSUM                 "No Checksum with line number, Last Line: "
-#define MSG_BEGIN_FILE_LIST                 "Begin file list"
-#define MSG_END_FILE_LIST                   "End file list"
-#define MSG_M104_INVALID_EXTRUDER           "M104 Invalid extruder "
-#define MSG_M105_INVALID_EXTRUDER           "M105 Invalid extruder "
-#define MSG_M200_INVALID_EXTRUDER           "M200 Invalid extruder "
-#define MSG_M218_INVALID_EXTRUDER           "M218 Invalid extruder "
-#define MSG_M221_INVALID_EXTRUDER           "M221 Invalid extruder "
-#define MSG_ERR_NO_THERMISTORS              "No thermistors - no temperature"
-#define MSG_M109_INVALID_EXTRUDER           "M109 Invalid extruder "
-#define MSG_M115_REPORT                     "FIRMWARE_NAME:Marlin V1.0.2; Sprinter/grbl mashup for gen6 FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" CUSTOM_MENDEL_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n"
-#define MSG_ERR_KILLED                      "Printer halted. kill() called!"
-#define MSG_ERR_STOPPED                     "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)"
-#define MSG_RESEND                          "Resend: "
-#define MSG_M119_REPORT                     "Reporting endstop status"
-#define MSG_ENDSTOP_HIT                     "TRIGGERED"
-#define MSG_ENDSTOP_OPEN                    "open"
-#define MSG_SD_CANT_OPEN_SUBDIR             "Cannot open subdir"
-#define MSG_SD_INIT_FAIL                    "SD init fail"
-#define MSG_SD_VOL_INIT_FAIL                "volume.init failed"
-#define MSG_SD_OPENROOT_FAIL                "openRoot failed"
-#define MSG_SD_CARD_OK                      "SD card ok"
-#define MSG_SD_WORKDIR_FAIL                 "workDir open failed"
-#define MSG_SD_OPEN_FILE_FAIL               "open failed, File: "
-#define MSG_SD_FILE_OPENED                  "File opened: "
-#define MSG_SD_FILE_SELECTED                "File selected"
-#define MSG_SD_WRITE_TO_FILE                "Writing to file: "
-#define MSG_SD_PRINTING_BYTE                "SD printing byte "
-#define MSG_SD_NOT_PRINTING                 "Not SD printing"
-#define MSG_SD_ERR_WRITE_TO_FILE            "error writing to file"
-#define MSG_SD_CANT_ENTER_SUBDIR            "Cannot enter subdir: "
-#define MSG_STEPPER_TOO_HIGH                "Steprate too high: "
-#define MSG_ENDSTOPS_HIT                    "endstops hit: "
-#define MSG_ERR_COLD_EXTRUDE_STOP           " cold extrusion prevented"
-#define MSG_BABYSTEPPING_X                  "Babystepping X"
-#define MSG_BABYSTEPPING_Y                  "Babystepping Y"
-#define MSG_BABYSTEPPING_Z                  "Adjusting Z"
-#define MSG_SERIAL_ERROR_MENU_STRUCTURE     "Error in menu structure"
-#define MSG_SET_HOME_OFFSETS                "Set home offsets"
-#define MSG_SET_ORIGIN                      "Set origin"
-#define MSG_SWITCH_PS_ON                    "Switch power on"
-#define MSG_SWITCH_PS_OFF                   "Switch power off"
-#define MSG_NOZZLE1                         "Nozzle2"
-#define MSG_NOZZLE2                         "Nozzle3"
-#define MSG_FLOW0                           "Flow 0"
-#define MSG_FLOW1                           "Flow 1"
-#define MSG_FLOW2                           "Flow 2"
-#define MSG_CONTROL                         "Control"
-#define MSG_MIN                             " \002 Min"
-#define MSG_MAX                             " \002 Max"
-#define MSG_FACTOR                          " \002 Fact"
-#define MSG_MOTION                          "Motion"
-#define MSG_VOLUMETRIC                      "Filament"
-#define MSG_VOLUMETRIC_ENABLED		        "E in mm3"
-#define MSG_STORE_EPROM                     "Store memory"
-#define MSG_LOAD_EPROM                      "Load memory"
-#define MSG_RESTORE_FAILSAFE                "Restore failsafe"
-#define MSG_REFRESH                         "\xF8" "Refresh"
-#define MSG_INIT_SDCARD                     "Init. SD card"
-#define MSG_CNG_SDCARD                      "Change SD card"
-#define MSG_BABYSTEP_X                      "Babystep X"
-#define MSG_BABYSTEP_Y                      "Babystep Y"
-#define MSG_RECTRACT                        "Rectract"
-
-#define MSG_HOMEYZ                          "Calibrar Z"
-#define MSG_HOMEYZ_PROGRESS                 "Calibrando Z"
-#define MSG_HOMEYZ_DONE                     "Calibracion OK"
-
-#define MSG_SELFTEST_ERROR                  "Autotest error!"
-#define MSG_SELFTEST_PLEASECHECK            "Controla :"   
-#define MSG_SELFTEST_NOTCONNECTED           "No hay conexion  "
-#define MSG_SELFTEST_HEATERTHERMISTOR       "Calent./Termistor"
-#define MSG_SELFTEST_BEDHEATER              "Cama/Calentador"
-#define MSG_SELFTEST_WIRINGERROR            "Error de conexion"
-#define MSG_SELFTEST_ENDSTOPS               "Topes final"
-#define MSG_SELFTEST_MOTOR                  "Motor"
-#define MSG_SELFTEST_ENDSTOP                "Tope final"
-#define MSG_SELFTEST_ENDSTOP_NOTHIT         "Tope fin. no toc."
-#define MSG_SELFTEST_OK                     "Self test OK"
-
-#define(length=20) MSG_SELFTEST_FAN					"Test del ventilador";
-#define(length=20) MSG_SELFTEST_COOLING_FAN			"Vent. al frente?";
-#define(length=20) MSG_SELFTEST_EXTRUDER_FAN			"Vent. en la izg?";
-#define MSG_SELFTEST_FAN_YES				"Ventilador gira";
-#define MSG_SELFTEST_FAN_NO					"Ventilador no gira";
-
-#define MSG_STATS_TOTALFILAMENT             "Filamento total:"
-#define MSG_STATS_TOTALPRINTTIME            "Tiempo total :"
-#define MSG_STATS_FILAMENTUSED              "Filamento :  "
-#define MSG_STATS_PRINTTIME                 "Tiempo de imp.:"
-
-#define MSG_SELFTEST_START                  "Autotest salida"
-#define MSG_SELFTEST_CHECK_ENDSTOPS         "Cont. topes final"
-#define MSG_SELFTEST_CHECK_HOTEND           "Control hotend " 
-#define MSG_SELFTEST_CHECK_X                "Control del eje X"
-#define MSG_SELFTEST_CHECK_Y                "Control del eje Y"
-#define MSG_SELFTEST_CHECK_Z                "Control del eje Z"
-#define MSG_SELFTEST_CHECK_BED              "Control de cama"
-#define MSG_SELFTEST_CHECK_ALLCORRECT       "Todo bie "
-#define MSG_SELFTEST                        "Autotest"
-#define MSG_SELFTEST_FAILED                 "Autotest fallado"
-
-#define MSG_STATISTICS                      "Estadistica  "
-#define MSG_USB_PRINTING                    "Impresion de USB "
-
-#define MSG_SHOW_END_STOPS                  "Ensena tope final"
-#define MSG_CALIBRATE_BED                   "Calibra XYZ"
-#define MSG_CALIBRATE_BED_RESET             "Reset XYZ calibr."
-#define MSG_MOVE_CARRIAGE_TO_THE_TOP        "Calibrando XYZ. Gira el boton para subir el carro Z hasta golpe piezas superioras. Despues haz clic."
-#define MSG_MOVE_CARRIAGE_TO_THE_TOP_Z       "Calibrando Z. Gira el boton para subir el carro Z hasta golpe piezas superioras. Despues haz clic."
-
-#define MSG_CONFIRM_NOZZLE_CLEAN            "Limpiar boquilla para calibracion. Click cuando acabes."
-#define MSG_CONFIRM_CARRIAGE_AT_THE_TOP     "Carros Z izq./der. estan arriba maximo?"
-#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE1  "Buscando cama punto de calibracion"
-#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE2  " de 4"
-#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1   "Mejorando cama punto de calibracion"
-#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2   " de 9"
-#define MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1	"Medir la altura del punto de la calibracion"
-#define MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2	" de 9"
-
-#define MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION	"Reiteracion "
-#define MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND           "Calibracion XYZ fallada. Puntos de calibracion en la cama no encontrados."
-#define MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED            "Calibracion XYZ fallada. Consultar el manual por favor."
-#define MSG_BED_SKEW_OFFSET_DETECTION_PERFECT               "Calibracion XYZ ok. Ejes X/Y perpendiculares. Felicitaciones!"
-#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD             "Calibracion XYZ correcta. Los ejes X / Y estan ligeramente inclinados. Buen trabajo!"
-#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME          "Calibracion XYZ correcta. La inclinacion se corregira automaticamente."
-#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR     "Calibracion XYZ fallad. Punto delantero izquierdo no alcanzable."
-#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR        "Calibracion XYZ fallad. Punto delantero derecho no alcanzable."
-#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR     "Calibracion XYZ fallad. Punto delanteros no alcanzables."
-#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR        "Calibrazion XYZ comprometida. Punto delantero izquierdo no alcanzable."
-#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR       "Calibrazion XYZ comprometida. Punto delantero derecho no alcanzable."
-#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR        "Calibrazion XYZ comprometida. Punto delanteros no alcanzables."
-#define MSG_BED_LEVELING_FAILED_POINT_LOW           				"Nivelacion fallada. Sensor no funciona. Escombros en Boqui.? Esperando reset."
-#define MSG_BED_LEVELING_FAILED_POINT_HIGH          				"Nivelacion fallada. Sensor funciona demasiado temprano. Esperando reset."
-#define MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED      			"Nivelacion fallada. Sensor desconectado o cables danados. Esperando reset."
-#define MSG_NEW_FIRMWARE_AVAILABLE                  				"Nuevo firmware disponible:"
-#define MSG_NEW_FIRMWARE_PLEASE_UPGRADE                 			"Actualizar por favor"
-#define MSG_FOLLOW_CALIBRATION_FLOW                    			"Impresora no esta calibrada todavia. Por favor usar el manual, el capitulo First steps, seleccion Calibration flow."
-#define MSG_BABYSTEP_Z_NOT_SET                      			"Distancia entre la punta de la boquilla y la superficie de la cama no fijada aun. Por favor siga el manual, capitulo First steps, seccion First layer calibration."
-#define MSG_BED_CORRECTION_MENU                                 "Corr. de la cama"
-#define MSG_BED_CORRECTION_LEFT                                 "Izquierda [um]"
-#define MSG_BED_CORRECTION_RIGHT                                "Derecha   [um]"
-#define MSG_BED_CORRECTION_FRONT                                "Adelante  [um]"
-#define MSG_BED_CORRECTION_REAR                                 "Atras     [um]"
-#define MSG_BED_CORRECTION_RESET                                "Reset"
-
-#define MSG_MESH_BED_LEVELING									"Mesh Bed Leveling"
-#define MSG_MENU_CALIBRATION									"Calibracion"
-#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF					"SD card [normal]"
-#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON					"SD card [FlshAir]"
-
-#define MSG_LOOSE_PULLEY								"Polea suelta"
-#define MSG_FILAMENT_LOADING_T0							"Insertar filamento en el extrusor 1. Haga clic una vez terminado."
-#define MSG_FILAMENT_LOADING_T1							"Insertar filamento en el extrusor 2. Haga clic una vez terminado."
-#define MSG_FILAMENT_LOADING_T2							"Insertar filamento en el extrusor 3. Haga clic una vez terminado."
-#define MSG_FILAMENT_LOADING_T3							"Insertar filamento en el extrusor 4. Haga clic una vez terminado."
-#define MSG_CHANGE_EXTR									"Cambiar extrusor."
-
-#define MSG_FIL_ADJUSTING								"Ajustando filamentos. Esperar por favor."
-#define MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ				"Filamentos ajustados. Limpie la boquilla para calibracion. Haga clic una vez terminado."
-#define MSG_CALIBRATE_E									"Calibrar E"
-#define MSG_E_CAL_KNOB									"Rotar el mando hasta que la marca llegue al cuerpo del extrusor. Haga clic una vez terminado."
-#define MSG_MARK_FIL									"Marque el filamento 100 mm por encima del final del extrusor. Hacer clic una vez terminado."
-#define MSG_CLEAN_NOZZLE_E								"E calibrado. Limpiar la boquilla. Haga clic una vez terminado."
-#define MSG_WAITING_TEMP								"Esperando enfriamiento de la cama y del extrusor."
-#define MSG_FILAMENT_CLEAN								"Es el nuevo color nitido?"
-#define MSG_UNLOADING_FILAMENT							"Soltando filamento"
-#define MSG_PAPER										"Colocar una hoja de papel sobre la superficie de impresion durante la calibracion de los primeros 4 puntos. Si la boquilla mueve el papel, apagar impresora inmediatamente."
-
-#define MSG_FINISHING_MOVEMENTS							"Term. movimientos"
-#define MSG_PRINT_PAUSED								"Impresion en pausa"
-#define MSG_RESUMING_PRINT								"Reanudar impresion"
-#define MSG_PID_EXTRUDER								"Calibracion PID"
-#define MSG_SET_TEMPERATURE								"Establecer temp.:"
-#define MSG_PID_FINISHED								"Cal. PID terminada"
-#define MSG_PID_RUNNING									"Cal. PID           "
-
-#define MSG_CALIBRATE_PINDA								"Calibrar"
-#define MSG_CALIBRATION_PINDA_MENU						"Calibracion temp."
-#define MSG_PINDA_NOT_CALIBRATED						"La temperatura de calibracion no ha sido ajustada"
-#define MSG_PINDA_PREHEAT								"Calentando PINDA"
-#define MSG_TEMP_CALIBRATION							"Cal. temp.          "
-#define MSG_TEMP_CALIBRATION_DONE						"Calibracon temperatura terminada. Presionar para continuar."
-#define MSG_TEMP_CALIBRATION_ON							"Cal. temp. [ON]"
-#define MSG_TEMP_CALIBRATION_OFF						"Cal. temp. [OFF]"
-
-#define MSG_PREPARE_FILAMENT							"Preparar filamento"
-
-
-
-#define MSG_LOAD_ALL									"Intr. todos fil."
-#define MSG_LOAD_FILAMENT_1								"Introducir fil. 1"
-#define MSG_LOAD_FILAMENT_2								"Introducir fil. 2"
-#define MSG_LOAD_FILAMENT_3								"Introducir fil. 3"
-#define MSG_LOAD_FILAMENT_4								"Introducir fil. 4"
-#define MSG_UNLOAD_FILAMENT_1							"Soltar fil. 1"
-#define MSG_UNLOAD_FILAMENT_2							"Soltar fil. 2"
-#define MSG_UNLOAD_FILAMENT_3							"Soltar fil. 3"
-#define MSG_UNLOAD_FILAMENT_4							"Soltar fil. 4"
-#define MSG_UNLOAD_ALL									"Soltar todos fil."
-#define MSG_PREPARE_FILAMENT							"Preparar filamento"
-#define MSG_ALL											"Todos"
-#define MSG_USED										"Usado en impresion"
-#define MSG_CURRENT										"Actual"
-#define MSG_CHOOSE_EXTRUDER								"Elegir extrusor:"
-#define MSG_EXTRUDER									"Extrusor"
-#define MSG_EXTRUDER_1									"Extrusor 1"
-#define MSG_EXTRUDER_2									"Extrusor 2"
-#define MSG_EXTRUDER_3									"Extrusor 3"
-#define MSG_EXTRUDER_4									"Extrusor 4"
+#define MSG_LANGUAGE_NAME					"es"

+ 1 - 289
Firmware/language_it.h

@@ -1,289 +1 @@
-#define WELCOME_MSG                         CUSTOM_MENDEL_NAME " pronta."
-#define MSG_SD_INSERTED                     "SD inserita"
-#define MSG_SD_REMOVED                      "SD rimossa"
-#define MSG_MAIN                            "Menu principale"
-#define MSG_DISABLE_STEPPERS                "Disabilit motori"
-#define MSG_AUTO_HOME                       "Trova origine"
-#define MSG_SET_HOME_OFFSETS                "Set home offsets"
-#define MSG_SET_ORIGIN                      "Set origin"
-#define MSG_COOLDOWN                        "Raffredda"
-#define MSG_SWITCH_PS_ON                    "Switch power on"
-#define MSG_SWITCH_PS_OFF                   "Switch power off"
-#define MSG_MOVE_AXIS                       "Muovi asse"
-#define MSG_MOVE_X                          "Muovi X"
-#define MSG_MOVE_Y                          "Muovi Y"
-#define MSG_MOVE_Z                          "Muovi Z"
-#define MSG_MOVE_E                          "Muovi Estrusore"
-#define MSG_MOVE_01MM                       "Move 0.1mm"
-#define MSG_MOVE_1MM                        "Move 1mm"
-#define MSG_MOVE_10MM                       "Move 10mm"
-#define MSG_SPEED                           "Velocita"
-#define MSG_NOZZLE                          "Ugello"
-#define MSG_NOZZLE1                         "Nozzle2"
-#define MSG_NOZZLE2                         "Nozzle3"
-#define MSG_BED                             "Letto"
-#define MSG_FAN_SPEED                       "Velocita vent."
-#define MSG_FLOW                            "Flusso"
-#define MSG_TEMPERATURE                     "Temperatura"
-#define MSG_MOTION                          "Motion"
-#define MSG_VOLUMETRIC                      "Filament"
-#define MSG_VOLUMETRIC_ENABLED		    	"E in mm3"
-#define MSG_STORE_EPROM                     "Store memory"
-#define MSG_LOAD_EPROM                      "Load memory"
-#define MSG_RESTORE_FAILSAFE                "Restore failsafe"
-#define MSG_REFRESH                         "\xF8" "Refresh"
-#define MSG_WATCH                           "Schermata info"
-#define MSG_TUNE                            "Regola"
-#define MSG_PAUSE_PRINT                     "Metti in pausa"
-#define MSG_RESUME_PRINT                    "Riprendi stampa"
-#define MSG_STOP_PRINT                      "Arresta stampa"
-#define MSG_CARD_MENU                       "Stampa da SD"
-#define MSG_NO_CARD                         "Nessuna SD"
-#define MSG_DWELL                           "Sospensione..."
-#define MSG_USERWAIT                        "Attendendo utente"
-#define MSG_RESUMING                        "Riprendi stampa"
-#define MSG_PRINT_ABORTED                   "Stampa abortita"
-#define MSG_NO_MOVE                         "Nessun movimento."
-#define MSG_KILLED                          "IN TILT."
-#define MSG_STOPPED                         "ARRESTATO."
-#define MSG_FILAMENTCHANGE                  "Camb. filamento"
-#define MSG_INIT_SDCARD                     "Init. SD card"
-#define MSG_CNG_SDCARD                      "Change SD card"
-#define MSG_ZPROBE_OUT                      "Z probe out. bed"
-#define MSG_POSITION_UNKNOWN                "Home X/Y before Z"
-#define MSG_ZPROBE_ZOFFSET                  "Z Offset"
-#define MSG_BABYSTEP_X                      "Babystep X"
-#define MSG_BABYSTEP_Y                      "Babystep Y"
-#define MSG_BABYSTEP_Z                      "Compensazione Z"
-#define MSG_ADJUSTZ			    			"Autoregolare Z?"
-#define MSG_PICK_Z			    			"Pick print"
-
-#define MSG_SETTINGS                        "Impostazioni"
-#define MSG_PREHEAT                         "Preriscalda"
-#define MSG_HEATING                         "Riscaldamento..."
-#define MSG_SUPPORT 						"Support"
-#define MSG_YES								"Si"
-#define MSG_NO								"No"
-#define MSG_NOT_LOADED 						"Fil. non caricato"
-#define MSG_NOT_COLOR 						"Colore non puro"
-#define MSG_LOADING_COLOR					"Caricando colore"
-#define MSG_CHANGE_SUCCESS					"Cambio riuscito!"
-#define MSG_PRESS							"e cliccare manopola"
-#define MSG_INSERT_FILAMENT					"Inserire filamento"
-#define MSG_CHANGING_FILAMENT				"Cambiando filam."
-
-#define MSG_PLEASE_WAIT						"Aspetta"
-#define MSG_PREHEAT_NOZZLE                  "Preris. ugello!"
-#define MSG_HEATING_COMPLETE                "Riscald. completo"
-#define MSG_BED_HEATING                     "Riscald. letto"
-#define MSG_BED_DONE                        "Piatto fatto."
-#define MSG_ERROR                        	"ERRORE:"
-#define MSG_CORRECTLY						"Cambiato corr.?"
-#define MSG_LOADING_FILAMENT				"Caricando filam."
-#define MSG_UNLOAD_FILAMENT                 "Scarica filamento"
-#define MSG_LOAD_FILAMENT                   "Carica filamento"
-
-#define MSG_SILENT_MODE_ON		    "Modo [silenzioso]"
-#define MSG_SILENT_MODE_OFF		    "Mode      [forte]" 
-#define MSG_REBOOT			    "Riavvia stampante"
-#define MSG_TAKE_EFFECT			    " per attualizzare"
-
-#define MSG_Enqueing                        "enqueing \""
-#define MSG_POWERUP                         "PowerUp"
-#define MSG_CONFIGURATION_VER               " Last Updated: "
-#define MSG_FREE_MEMORY                     " Free Memory: "
-#define MSG_PLANNER_BUFFER_BYTES            "  PlannerBufferBytes: "
-#define MSG_OK                              "ok"
-#define MSG_ERR_CHECKSUM_MISMATCH           "checksum mismatch, Last Line: "
-#define MSG_ERR_NO_CHECKSUM                 "No Checksum with line number, Last Line: "
-#define MSG_BEGIN_FILE_LIST                 "Begin file list"
-#define MSG_END_FILE_LIST                   "End file list"
-#define MSG_M104_INVALID_EXTRUDER           "M104 Invalid extruder "
-#define MSG_M105_INVALID_EXTRUDER           "M105 Invalid extruder "
-#define MSG_M200_INVALID_EXTRUDER           "M200 Invalid extruder "
-#define MSG_M218_INVALID_EXTRUDER           "M218 Invalid extruder "
-#define MSG_M221_INVALID_EXTRUDER           "M221 Invalid extruder "
-#define MSG_ERR_NO_THERMISTORS              "No thermistors - no temperature"
-#define MSG_M109_INVALID_EXTRUDER           "M109 Invalid extruder "
-#define MSG_M115_REPORT                     "FIRMWARE_NAME:Marlin V1.0.2; Sprinter/grbl mashup for gen6 FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" CUSTOM_MENDEL_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n"
-#define MSG_ERR_KILLED                      "Printer halted. kill() called!"
-#define MSG_ERR_STOPPED                     "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)"
-#define MSG_RESEND                          "Resend: "
-#define MSG_M119_REPORT                     "Reporting endstop status"
-#define MSG_ENDSTOP_HIT                     "TRIGGERED"
-#define MSG_ENDSTOP_OPEN                    "open"
-#define MSG_SD_CANT_OPEN_SUBDIR             "Cannot open subdir"
-#define MSG_SD_INIT_FAIL                    "SD init fail"
-#define MSG_SD_VOL_INIT_FAIL                "volume.init failed"
-#define MSG_SD_OPENROOT_FAIL                "openRoot failed"
-#define MSG_SD_CARD_OK                      "SD card ok"
-#define MSG_SD_WORKDIR_FAIL                 "workDir open failed"
-#define MSG_SD_OPEN_FILE_FAIL               "open failed, File: "
-#define MSG_SD_FILE_OPENED                  "File opened: "
-#define MSG_SD_FILE_SELECTED                "File selected"
-#define MSG_SD_WRITE_TO_FILE                "Writing to file: "
-#define MSG_SD_PRINTING_BYTE                "SD printing byte "
-#define MSG_SD_NOT_PRINTING                 "Not SD printing"
-#define MSG_SD_ERR_WRITE_TO_FILE            "error writing to file"
-#define MSG_SD_CANT_ENTER_SUBDIR            "Cannot enter subdir: "
-#define MSG_STEPPER_TOO_HIGH                "Steprate too high: "
-#define MSG_ENDSTOPS_HIT                    "endstops hit: "
-#define MSG_ERR_COLD_EXTRUDE_STOP           " cold extrusion prevented"
-#define MSG_BABYSTEPPING_X                  "Babystepping X"
-#define MSG_BABYSTEPPING_Y                  "Babystepping Y"
-#define MSG_BABYSTEPPING_Z                  "Adjusting Z"
-#define MSG_SERIAL_ERROR_MENU_STRUCTURE     "Error in menu structure"
-
-#define MSG_LANGUAGE_NAME		    "Italiano"
-#define MSG_LANGUAGE_SELECT		    "Seleziona lingua"
-#define MSG_PRUSA3D			    "prusa3d.com"
-#define MSG_PRUSA3D_FORUM		    "forum.prusa3d.com"
-#define MSG_PRUSA3D_HOWTO		    "howto.prusa3d.com"
-
-#define MSG_SELFTEST_ERROR		    "Autotest negativo"
-#define MSG_SELFTEST_PLEASECHECK	    "Verificare:"	
-#define MSG_SELFTEST_NOTCONNECTED	    "Non connesso"
-#define MSG_SELFTEST_HEATERTHERMISTOR	    "Riscald./Termist."
-#define MSG_SELFTEST_BEDHEATER		    "Letto/Riscald."
-#define MSG_SELFTEST_WIRINGERROR	    "Errore cablaggio"
-#define MSG_SELFTEST_ENDSTOPS		    "Finecorsa (2)"
-#define MSG_SELFTEST_MOTOR		    "Motore"
-#define MSG_SELFTEST_ENDSTOP		    "Finecorsa"
-#define MSG_SELFTEST_ENDSTOP_NOTHIT	    "Finec. fuori por."
-#define MSG_SELFTEST_OK			    "Autotest OK"
-
-#define(length=20) MSG_SELFTEST_FAN					"Prova del ventilator";
-#define(length=20) MSG_SELFTEST_COOLING_FAN			"Vent di stampa ant.?";
-#define(length=20) MSG_SELFTEST_EXTRUDER_FAN        "Vent SX sull'ugello?";
-#define MSG_SELFTEST_FAN_YES				"Gira";
-#define MSG_SELFTEST_FAN_NO					"Non si gira";
-
-#define MSG_STATS_TOTALFILAMENT		    "Filamento tot:"
-#define MSG_STATS_TOTALPRINTTIME	    "Tempo stampa tot:"
-#define MSG_STATS_FILAMENTUSED		    "Filamento usato:"
-#define MSG_STATS_PRINTTIME		    "Tempo di stampa:"
-#define MSG_SELFTEST_START		    "Avvia autotest"
-#define MSG_SELFTEST_CHECK_ENDSTOPS	    "Verifica finecorsa"
-#define MSG_SELFTEST_CHECK_HOTEND	    "Verifica ugello"  
-#define MSG_SELFTEST_CHECK_X		    "Verifica asse X"
-#define MSG_SELFTEST_CHECK_Y		    "Verifica asse Y"
-#define MSG_SELFTEST_CHECK_Z		    "Verifica asse Z"
-#define MSG_SELFTEST_CHECK_BED		    "Verifica letto"
-#define MSG_SELFTEST_CHECK_ALLCORRECT	    "Nessun errore"
-#define MSG_SELFTEST			    "Autotest"
-#define MSG_SELFTEST_FAILED		    "Autotest fallito"
-#define MSG_STATISTICS			    "Statistiche"
-#define MSG_USB_PRINTING		    "Stampa da USB"
-#define MSG_HOMEYZ                          "Calibra Z"
-#define MSG_HOMEYZ_PROGRESS                 "Calibrando Z"
-#define MSG_HOMEYZ_DONE		            "Calibrazione OK"
-
-
-
-#define MSG_SHOW_END_STOPS					"Stato finecorsa"
-#define MSG_CALIBRATE_BED					"Calibra XYZ"
-#define MSG_CALIBRATE_BED_RESET					"Reset XYZ calibr."
-
-#define MSG_MOVE_CARRIAGE_TO_THE_TOP 				"Calibrazione XYZ. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare."
-#define MSG_MOVE_CARRIAGE_TO_THE_TOP_Z 				"Calibrazione Z. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare."
-
-#define MSG_CONFIRM_NOZZLE_CLEAN					"Pulire l'ugello per la calibrazione, poi fare click."
-#define MSG_CONFIRM_CARRIAGE_AT_THE_TOP				"I carrelli Z sin/des sono altezza max?"
-
-#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE1			"Ricerca del letto punto di calibraz."
-#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE2			" su 4"
-#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1		"Perfezion. il letto punto di calibraz."
-#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2		" su 9"
-#define MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1		"Misurare l'altezza di riferimento del punto di calibrazione"
-#define MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2		" su 9"
-#define MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION	"Reiterazione "
-
-#define MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND		"Calibrazione XYZ fallita. Il punto di calibrazione sul letto non e' stato trovato."
-#define MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED		"Calibrazione XYZ fallita. Si prega di consultare il manuale."
-#define MSG_BED_SKEW_OFFSET_DETECTION_PERFECT			"Calibrazione XYZ OK. Gli assi X/Y sono perpendicolari. Complimenti!"
-#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD			"Calibrazion XYZ corretta. Assi X/Y leggermente storti. Ben fatto!"
-#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME		"Calibrazion XYZ corretta. La distorsione verra' automaticamente compensata."
-#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR	"Calibrazione XYZ fallita. Punto anteriore sinistro non raggiungibile."
-#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR	"Calibrazione XYZ fallita. Punto anteriore destro non raggiungibile."
-#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR	"Calibrazione XYZ fallita. Punti anteriori non raggiungibili."
-#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR	"Calibrazione XYZ compromessa. Punto anteriore sinistro non raggiungibile."
-#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR	"Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile."
-#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR	"Calibrazione XYZ compromessa. Punti anteriori non raggiungibili."
-
-#define MSG_BED_LEVELING_FAILED_POINT_LOW				"Livellamento letto fallito.NoRispSensor Residui su ugello? In attesa di reset."
-#define MSG_BED_LEVELING_FAILED_POINT_HIGH				"Livellamento letto fallito.Risp sensore troppo prestoIn attesa di reset."
-#define MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED		"Livellamento letto fallito. Sensore discon. o Cavo Dann. In attesa di reset."
-
-#define MSG_NEW_FIRMWARE_AVAILABLE						"Nuova versione del firmware disponibile"
-#define MSG_NEW_FIRMWARE_PLEASE_UPGRADE					"Prega aggiorna."
-
-#define MSG_FOLLOW_CALIBRATION_FLOW						"Stampante ancora non calibrata. Si prega di seguire il manuale, capitolo PRIMI PASSI, sezione della calibrazione."
-#define MSG_BABYSTEP_Z_NOT_SET							"Distanza tra la punta dell'ugello e la superficie del letto non ancora imposta. Si prega di seguire il manuale, capitolo First steps, sezione First layer calibration."
-
-#define MSG_BED_CORRECTION_MENU							"Correz. liv.letto"
-#define MSG_BED_CORRECTION_LEFT							"Sinistra  [um]"
-#define MSG_BED_CORRECTION_RIGHT						"Destra    [um]"
-#define MSG_BED_CORRECTION_FRONT						"Fronte    [um]"
-#define MSG_BED_CORRECTION_REAR							"Retro     [um]"
-#define MSG_BED_CORRECTION_RESET						"Reset"			
-
-#define MSG_MESH_BED_LEVELING							"Mesh livel. letto"
-#define MSG_MENU_CALIBRATION							"Calibrazione"
-#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF					"SD card [normal]"
-#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON					"SD card [FlshAir]"
-
-#define MSG_LOOSE_PULLEY								"Puleggia lenta"
-#define MSG_FILAMENT_LOADING_T0							"Inserire filamento nell'estrusore 1. Click per continuare."
-#define MSG_FILAMENT_LOADING_T1							"Inserire filamento nell'estrusore 2. Click per continuare."
-#define MSG_FILAMENT_LOADING_T2							"Inserire filamento nell'estrusore 3. Click per continuare."
-#define MSG_FILAMENT_LOADING_T3							"Inserire filamento nell'estrusore 4. Click per continuare."
-#define MSG_CHANGE_EXTR									"Cambio estrusore."
-
-#define MSG_FIL_ADJUSTING								"Filamento in fase di regolazione. Attendere prego."
-#define MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ				"I filamenti sono regolati. Si prega di pulire l'ugello per la calibrazione. Click per continuare."
-#define MSG_CALIBRATE_E									"Calibra E"
-#define MSG_E_CAL_KNOB									"Girare la manopola affinche' il segno raggiunga il corpo dell'estrusore. Click per continuare."
-#define MSG_MARK_FIL									"Segnare il filamento a 100 mm di distanza dal corpo dell'estrusore. Click per continuare."
-#define MSG_CLEAN_NOZZLE_E								"Calibrazione E terminata. Si prega di pulire l'ugello. Click per continuare."
-#define MSG_WAITING_TEMP								"In attesa del raffreddamento della testina e del piatto"
-#define MSG_FILAMENT_CLEAN								"Il colore e' nitido?"
-#define MSG_UNLOADING_FILAMENT							"Rilasc. filamento"
-#define MSG_PAPER										"Porre un foglio sotto l'ugello durante la calibrazione dei primi 4 punti. In caso l'ugello muova il foglio spegnere prontamente la stampante."
-
-#define MSG_FINISHING_MOVEMENTS							"Arresto in corso"
-#define MSG_PRINT_PAUSED								"Stampa in pausa"
-#define MSG_RESUMING_PRINT								"Stampa in ripresa"
-#define MSG_PID_EXTRUDER								"Calibrazione PID"
-#define MSG_SET_TEMPERATURE								"Imposta temperatura"
-#define MSG_PID_FINISHED								"Cal. PID completa"
-#define MSG_PID_RUNNING									"Cal. PID"
-
-#define MSG_CALIBRATE_PINDA								"Calibrare"
-#define MSG_CALIBRATION_PINDA_MENU						"Taratura temp."
-#define MSG_PINDA_NOT_CALIBRATED						"Taratura della temperatura non ancora eseguita"
-#define MSG_PINDA_PREHEAT								"Riscald. PINDA"
-#define MSG_TEMP_CALIBRATION							"Cal. temp.          "
-#define MSG_TEMP_CALIBRATION_DONE						"Taratura temperatura terminata. Fare click per continuare."
-#define MSG_TEMP_CALIBRATION_ON							"Cal. temp. [ON]"
-#define MSG_TEMP_CALIBRATION_OFF						"Cal. temp. [OFF]"
-
-#define MSG_LOAD_ALL									"Caricare tutti"
-#define MSG_LOAD_FILAMENT_1								"Caricare fil. 1"
-#define MSG_LOAD_FILAMENT_2								"Caricare fil. 2"
-#define MSG_LOAD_FILAMENT_3								"Caricare fil. 3"
-#define MSG_LOAD_FILAMENT_4								"Caricare fil. 4"
-#define MSG_UNLOAD_FILAMENT_1							"Rilasciare fil. 1"
-#define MSG_UNLOAD_FILAMENT_2							"Rilasciare fil. 1"
-#define MSG_UNLOAD_FILAMENT_3							"Rilasciare fil. 1"
-#define MSG_UNLOAD_FILAMENT_4							"Rilasciare fil. 1"
-#define MSG_UNLOAD_ALL									"Rilasciare tutti"
-#define MSG_PREPARE_FILAMENT							"Preparare filamento"
-#define MSG_ALL											"Tutti"
-#define MSG_USED										"Usati nella stampa"
-#define MSG_CURRENT										"Attuale"
-#define MSG_CHOOSE_EXTRUDER								"Seleziona estrusore:"
-#define MSG_EXTRUDER									"Estrusore"
-#define MSG_EXTRUDER_1									"Estrusore 1"
-#define MSG_EXTRUDER_2									"Estrusore 2"
-#define MSG_EXTRUDER_3									"Estrusore 3"
-#define MSG_EXTRUDER_4									"Estrusore 4"
+#define MSG_LANGUAGE_NAME					"it"

+ 1 - 293
Firmware/language_pl.h

@@ -6,296 +6,4 @@
  *
  */
 
-#define WELCOME_MSG                         CUSTOM_MENDEL_NAME " gotowa"
-#define MSG_SD_INSERTED                     "Karta wlozona"
-#define MSG_SD_REMOVED                      "Karta wyjeta"
-#define MSG_MAIN                            "Menu glowne" 
-#define MSG_DISABLE_STEPPERS                "Wylaczyc silniki"
-#define MSG_AUTO_HOME                       "Auto home"
-#define MSG_COOLDOWN                        "Wychlodzic" 
-#define MSG_MOVE_AXIS                       "Ruch osi"
-#define MSG_MOVE_X                          "Przesunac X"
-#define MSG_MOVE_Y                          "Przesunac Y"
-#define MSG_MOVE_Z                          "Przesunac Z"
-#define MSG_MOVE_E                          "Extruder"
-#define MSG_SPEED                           "Predkosc"
-#define MSG_NOZZLE                          "Dysza"
-#define MSG_BED                             "Stolik"
-#define MSG_FAN_SPEED                       "Predkosc went."
-#define MSG_FLOW                            "Przeplyw"
-#define MSG_TEMPERATURE                     "Temperatura"
-#define MSG_WATCH                           "Informacje"
-#define MSG_TUNE                            "Nastroic"
-#define MSG_PAUSE_PRINT                     "Przerwac druk"
-#define MSG_RESUME_PRINT                    "Kontynuowac"
-#define MSG_STOP_PRINT                      "Zatrzymac druk"
-#define MSG_CARD_MENU                       "Druk z SD"
-#define MSG_NO_CARD                         "Brak karty SD"
-#define MSG_DWELL                           "Sleep..."
-#define MSG_USERWAIT                        "Wait for user..."
-#define MSG_RESUMING                        "Wznowienie druku"
-#define MSG_PRINT_ABORTED                   "Druk przerwany"
-#define MSG_NO_MOVE                         "No move."
-#define MSG_KILLED                          "KILLED. "
-#define MSG_STOPPED                         "STOPPED. "
-#define MSG_FILAMENTCHANGE                  "Wymienic filament"
-#define MSG_BABYSTEP_Z                      "Dostrojenie osy Z" 
-#define MSG_ADJUSTZ                                         "Autodostroic Z?"
-#define MSG_PICK_Z							"Vyberte vytisk"
-#define MSG_SETTINGS                         "Ustawienia"
-#define MSG_PREHEAT                         "Grzanie"
-#define MSG_UNLOAD_FILAMENT                 "Wyjac filament"
-#define MSG_LOAD_FILAMENT                 "Wprowadz filament"
-#define MSG_ERROR                       "BLAD:"
-#define MSG_PREHEAT_NOZZLE              "Nagrzej dysze!"
-#define MSG_SUPPORT                     "Pomoc" 
-#define MSG_CORRECTLY                   "Wymiana ok?"
-#define MSG_YES                                 "Tak"
-#define MSG_NO                                  "Nie"
-#define MSG_NOT_LOADED                  "Brak filamentu"
-#define MSG_NOT_COLOR                  "Kolor zanieczysz."
-#define MSG_LOADING_FILAMENT            "Wprow. filamentu"
-#define MSG_PLEASE_WAIT                 "Prosze czekac"
-#define MSG_LOADING_COLOR               "Czyszcz. koloru"
-#define MSG_CHANGE_SUCCESS              "Wymiana ok!"
-#define MSG_PRESS                               "Nacisnij przycisk"
-#define MSG_INSERT_FILAMENT             "Wprowadz filament"
-#define MSG_CHANGING_FILAMENT   "Wymiana filamentu"
-#define MSG_SILENT_MODE_ON                                      "Mod       [cichy]"
-#define MSG_SILENT_MODE_OFF                                     "Mod [w wydajnosc]" 
-#define MSG_REBOOT                                                      "Restart drukarki"
-#define MSG_TAKE_EFFECT                                         " wprow. zmian"   
-#define MSG_HEATING                         "Grzanie..."
-#define MSG_HEATING_COMPLETE                "Grzanie OK."
-#define MSG_BED_HEATING                     "Grzanie stolika.."
-#define MSG_BED_DONE                        "Stolik OK."
-#define MSG_LANGUAGE_NAME                                       "Polski"
-#define MSG_LANGUAGE_SELECT                                     "Wybor jezyka"
-#define MSG_PRUSA3D                                     "prusa3d.cz"
-#define MSG_PRUSA3D_FORUM                                       "forum.prusa3d.cz"
-#define MSG_PRUSA3D_HOWTO                                       "howto.prusa3d.cz"
-
-
-// Do not translate those!
- 
-#define MSG_Enqueing                        "enqueing \""
-#define MSG_POWERUP                         "PowerUp"
-#define MSG_CONFIGURATION_VER               " Last Updated: "
-#define MSG_FREE_MEMORY                     " Free Memory: "
-#define MSG_PLANNER_BUFFER_BYTES            "  PlannerBufferBytes: "
-#define MSG_OK                              "ok"
-#define MSG_ERR_CHECKSUM_MISMATCH           "checksum mismatch, Last Line: "
-#define MSG_ERR_NO_CHECKSUM                 "No Checksum with line number, Last Line: "
-#define MSG_BEGIN_FILE_LIST                 "Begin file list"
-#define MSG_END_FILE_LIST                   "End file list"
-#define MSG_M104_INVALID_EXTRUDER           "M104 Invalid extruder "
-#define MSG_M105_INVALID_EXTRUDER           "M105 Invalid extruder "
-#define MSG_M200_INVALID_EXTRUDER           "M200 Invalid extruder "
-#define MSG_M218_INVALID_EXTRUDER           "M218 Invalid extruder "
-#define MSG_M221_INVALID_EXTRUDER           "M221 Invalid extruder "
-#define MSG_ERR_NO_THERMISTORS              "No thermistors - no temperature"
-#define MSG_M109_INVALID_EXTRUDER           "M109 Invalid extruder "
-#define MSG_M115_REPORT                     "FIRMWARE_NAME:Marlin V1.0.2; Sprinter/grbl mashup for gen6 FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" CUSTOM_MENDEL_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n"
-#define MSG_ERR_KILLED                      "Printer halted. kill() called!"
-#define MSG_ERR_STOPPED                     "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)"
-#define MSG_RESEND                          "Resend: "
-#define MSG_M119_REPORT                     "Reporting endstop status"
-#define MSG_ENDSTOP_HIT                     "TRIGGERED"
-#define MSG_ENDSTOP_OPEN                    "open"
-#define MSG_SD_CANT_OPEN_SUBDIR             "Cannot open subdir"
-#define MSG_SD_INIT_FAIL                    "SD init fail"
-#define MSG_SD_VOL_INIT_FAIL                "volume.init failed"
-#define MSG_SD_OPENROOT_FAIL                "openRoot failed"
-#define MSG_SD_CARD_OK                      "SD card ok"
-#define MSG_SD_WORKDIR_FAIL                 "workDir open failed"
-#define MSG_SD_OPEN_FILE_FAIL               "open failed, File: "
-#define MSG_SD_FILE_OPENED                  "File opened: "
-#define MSG_SD_FILE_SELECTED                "File selected"
-#define MSG_SD_WRITE_TO_FILE                "Writing to file: "
-#define MSG_SD_PRINTING_BYTE                "SD printing byte "
-#define MSG_SD_NOT_PRINTING                 "Not SD printing"
-#define MSG_SD_ERR_WRITE_TO_FILE            "error writing to file"
-#define MSG_SD_CANT_ENTER_SUBDIR            "Cannot enter subdir: "
-#define MSG_STEPPER_TOO_HIGH                "Steprate too high: "
-#define MSG_ENDSTOPS_HIT                    "endstops hit: "
-#define MSG_ERR_COLD_EXTRUDE_STOP           " cold extrusion prevented"
-#define MSG_BABYSTEPPING_X                  "Babystepping X"
-#define MSG_BABYSTEPPING_Y                  "Babystepping Y"
-#define MSG_BABYSTEPPING_Z                  "Dostavovani Z"
-#define MSG_SERIAL_ERROR_MENU_STRUCTURE     "Error in menu structure"
-#define MSG_SET_HOME_OFFSETS                "Nastav pocatek home"
-#define MSG_SET_ORIGIN                      "Nastav pocatek"
-
-#define MSG_SWITCH_PS_ON                    "Vypnout zdroj"
-#define MSG_SWITCH_PS_OFF                   "Zapnout zdroj"
-
-#define MSG_NOZZLE1                         "Tryska2"
-#define MSG_NOZZLE2                         "Tryska3"
-
-
-#define MSG_FLOW0                           "Prutok 0"
-#define MSG_FLOW1                           "Prutok 1"
-#define MSG_FLOW2                           "Prutok 2"
-#define MSG_CONTROL                         "Kontrola"
-#define MSG_MIN                             " \002 Min"
-#define MSG_MAX                             " \002 Max"
-#define MSG_FACTOR                          " \002 Fact"
-
- #define MSG_MOTION                          "Pohyb"
-#define MSG_VOLUMETRIC                      "Filament"
-#define MSG_VOLUMETRIC_ENABLED                  "E in mm3"
-#define MSG_STORE_EPROM                     "Store memory"
-#define MSG_LOAD_EPROM                      "Ulozit pamet"
-#define MSG_RESTORE_FAILSAFE                "Obnovit vychozi"
-#define MSG_REFRESH                         "\xF8" "Obnovit"
-
-#define MSG_INIT_SDCARD                     "Inic. SD"
-#define MSG_CNG_SDCARD                      "Vymenit SD"
-#define MSG_BABYSTEP_X                      "Babystep X"
-#define MSG_BABYSTEP_Y                      "Babystep Y"
-
- #define MSG_RECTRACT                        "Rectract"
-
-#define MSG_HOMEYZ                          "Kalibruj Z"
-#define MSG_HOMEYZ_PROGRESS                 "Kalibruje Z"
-#define MSG_HOMEYZ_DONE                     "Kalibracja OK"
-
-#define MSG_SELFTEST_ERROR                  "Selftest error !"
-#define MSG_SELFTEST_PLEASECHECK            "Skontroluj :"   
-#define MSG_SELFTEST_NOTCONNECTED           "Nie podlaczono   "
-#define MSG_SELFTEST_HEATERTHERMISTOR       "Heater/Thermistor"
-#define MSG_SELFTEST_BEDHEATER              "Bed / Heater"
-#define MSG_SELFTEST_WIRINGERROR            "Blad polaczenia"
-#define MSG_SELFTEST_ENDSTOPS               "Endstops"
-#define MSG_SELFTEST_MOTOR                  "Silnik"
-#define MSG_SELFTEST_ENDSTOP                "Endstop"
-#define MSG_SELFTEST_ENDSTOP_NOTHIT         "Endstop not hit"
-#define MSG_SELFTEST_OK                     "Self test OK"
-
-#define(length=20) MSG_SELFTEST_FAN					"Test wentylatora";
-#define(length=20) MSG_SELFTEST_COOLING_FAN			"Przodni went. druku?";
-#define(length=20) MSG_SELFTEST_EXTRUDER_FAN			"Lewy went na dysze?";
-#define MSG_SELFTEST_FAN_YES				"Kreci sie";
-#define MSG_SELFTEST_FAN_NO					"Nekreci sie";
-
-#define MSG_STATS_TOTALFILAMENT             "Filament lacznie :"
-#define MSG_STATS_TOTALPRINTTIME            "Czas calkowity :"
-#define MSG_STATS_FILAMENTUSED              "Filament :  "
-#define MSG_STATS_PRINTTIME                 "Czas druku :  "
-
-#define MSG_SELFTEST_START                  "Self test start  "
-#define MSG_SELFTEST_CHECK_ENDSTOPS         "Kontrola endstops"
-#define MSG_SELFTEST_CHECK_HOTEND           "Kontrola hotend  " 
-#define MSG_SELFTEST_CHECK_X                "Kontrola X axis  "
-#define MSG_SELFTEST_CHECK_Y                "Kontrola Y axis  "
-#define MSG_SELFTEST_CHECK_Z                "Kontrola Z axis  "
-#define MSG_SELFTEST_CHECK_BED              "Kontrola bed     "
-#define MSG_SELFTEST_CHECK_ALLCORRECT       "Wszystko OK      "
-#define MSG_SELFTEST                        "Selftest         "
-#define MSG_SELFTEST_FAILED                 "Selftest nieudany"
-
-#define MSG_STATISTICS                      "Statystyka  "
-#define MSG_USB_PRINTING                    "Druk z USB  "
-
-#define MSG_SHOW_END_STOPS                  "Pokaz krancowki"
-#define MSG_CALIBRATE_BED                   "Kalibracja XYZ"
-#define MSG_CALIBRATE_BED_RESET             "Reset kalibr. XYZ"
-#define MSG_MOVE_CARRIAGE_TO_THE_TOP        "Kalibracja XYZ. Przekrec galke, aby przesunac os Z do gornych krancowek. Nacisnij, by potwierdzic."
-#define MSG_MOVE_CARRIAGE_TO_THE_TOP_Z      "Kalibracja Z. Przekrec galke, aby przesunac os Z do gornych krancowek. Nacisnij, by potwierdzic."
-
-#define MSG_CONFIRM_NOZZLE_CLEAN            		"Dla prawidl. kalibracji prosze oczyscic dysze. Potw. guzikiem."
-#define MSG_CONFIRM_CARRIAGE_AT_THE_TOP     		"Oba wozki dojechaly do gornej ramy?"
-#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE1  		"Szukam punktu kalibracyjnego podkladki"
-#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE2  		" z 4"
-#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1   	"Poprawiam precyzyjnosc punktu kalibracyjnego"
-#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2   	" z 9"
-#define MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1		"Okreslam wysokosc odniesienia punktu kalibracyjnego"
-#define MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2		" z 9"
-#define MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION	"Iteracja "
-
-#define MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND           "Kalibr. XYZ nieudana. Kalibracyjny punkt podkladki nieznaleziony."
-#define MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED            "Kalibracja XYZ niepowiedziona. Sprawdzic w instrukcji."
-#define MSG_BED_SKEW_OFFSET_DETECTION_PERFECT                   "Kalibracja XYZ ok. Osie X/Y sa prostopadle. Gratulacje!"
-#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD                 "Kalibracja XYZ prawidlowa. Osie X/Y lekko skosne. Dobra robota!"
-#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME              "Kalibracja XYZ prawidlowa. Skosy beda automatycznie wyrownane przy druku."
-#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR     "Kalibr. XYZ nieudana. Lewy przedni punkt zbyt do przodu. Wyrownac drukarke."
-#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR    "Kalibr. XYZ nieudana. Prawy przedni punkt zbyt do przodu. Wyrownac drukarke."
-#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR     "Kalibr. XYZ nieudana. Przed. punkty kalibr. zbyt do przodu. Wyrownac drukarke."
-#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR    "Kalibracja XYZ niedokladna. Lewy przedni punkt zbyt wysuniety do przodu."
-#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR   "Kalibracja XYZ niedokladna. Prawy przedni punkt zbyt wysuniety do przodu."
-#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR    "Kalibr. XYZ niedokladna. Przednie punkty kalibr. Zbyt wys. do przodu."
-#define MSG_BED_LEVELING_FAILED_POINT_LOW                       "Kalibracja nieudana. Sensor nie dotknal. Zanieczysz. dysza? Czekam na reset."
-#define MSG_BED_LEVELING_FAILED_POINT_HIGH                      "Kalibracja Z nieudana. Sensor dotk. za wysoko. Czekam na reset."
-#define MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED              "Kalibracja nieudana. Sensor odlaczony lub uszkodz. kabel. Czekam na reset."
-#define MSG_NEW_FIRMWARE_AVAILABLE                              "Wyszla nowa wersja firmware:"
-#define MSG_NEW_FIRMWARE_PLEASE_UPGRADE                         "Prosze zaktualizowac"
-#define MSG_FOLLOW_CALIBRATION_FLOW                             "Drukarka nie zostala jeszcze skalibrowana. Prosze kierowac sie instrukcja, rozdzial Zaczynamy, podrozdzial Selftest."
-#define MSG_BABYSTEP_Z_NOT_SET                                  "Odleglosc dyszy od podkladki nie jest skalibrowana. Postepuj zgodnie z instrukcja rozdzial Zaczynamy, podrozdzial Kalibracja pierwszej warstwy."
-#define MSG_BED_CORRECTION_MENU                                 "Korekta podkladki"
-#define MSG_BED_CORRECTION_LEFT                                 "W lewo  [um]"
-#define MSG_BED_CORRECTION_RIGHT                                "W prawo [um]"
-#define MSG_BED_CORRECTION_FRONT                                "Do przodu [um]"
-#define MSG_BED_CORRECTION_REAR                                 "Do tylu  [um]"
-#define MSG_BED_CORRECTION_RESET                                "Reset"
-
-#define MSG_MESH_BED_LEVELING									"Mesh Bed Leveling"
-#define MSG_MENU_CALIBRATION									"Kalibracja"
-#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF					"karta SD [normal]"
-#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON					"karta SD[FlshAir]"
-
-#define MSG_LOOSE_PULLEY										"Kolo pasowe"
-#define MSG_FILAMENT_LOADING_T0									"Wloz filament do ekstrudera 1. Potwierdz przyciskiem."
-#define MSG_FILAMENT_LOADING_T1									"Wloz filament do ekstrudera 2. Potwierdz przyciskiem."
-#define MSG_FILAMENT_LOADING_T2									"Wloz filament do ekstrudera 3. Potwierdz przyciskiem."
-#define MSG_FILAMENT_LOADING_T3									"Wloz filament do ekstrudera 4. Potwierdz przyciskiem."
-#define MSG_CHANGE_EXTR											"Zmienic ekstruder"
-
-#define MSG_FIL_ADJUSTING										"Przebiega wyrownanie filamentow. Prosze czekac."
-#define MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ						"Dla prawidlowej kalibracji prosze oczyscic dysze. Potem potwierdzic przyciskiem."
-#define MSG_CALIBRATE_E											"Kalibruj E"
-#define MSG_E_CAL_KNOB											"Prosze otaczac przycisk poki znacznik nie dosiegnie ciala ekstrudera. Potwierdzic przyciskiem."
-#define MSG_MARK_FIL											"Prosze oznaczyc filament 100 mm od ciala ekstrudera. Potwierdzic przyciskiem."
-#define MSG_CLEAN_NOZZLE_E										"Kalibracja E skonczona. Prosze oczyscic dysze. Potem potwierdzic przyciskiem. "
-#define MSG_WAITING_TEMP										"Oczekiwanie na wychlodzenie dyszy i podkladki."
-#define MSG_FILAMENT_CLEAN										"Czy kolor jest czysty?"
-#define MSG_UNLOADING_FILAMENT									"Wysuwam filament"
-#define MSG_PAPER												"Umiesc kartke papieru na podkladce i trzymaj pod dysza podczas pomiaru pierwszych 4 punktow. Jesli dysza zahaczy o papier, wylacz drukarke."
-
-#define MSG_FINISHING_MOVEMENTS									"Konczenie druku"
-#define MSG_PRINT_PAUSED										"Druk zatrzymany"
-#define MSG_RESUMING_PRINT										"Wznawianie druku"
-#define MSG_PID_EXTRUDER										"Kalibracja PID"
-#define MSG_SET_TEMPERATURE										"Ustawic temperature"
-#define MSG_PID_FINISHED										"Kal. PID zakonczona"
-#define MSG_PID_RUNNING											"Kal. PID"
-
-#define MSG_CALIBRATE_PINDA										"Skalibrowac"
-#define MSG_CALIBRATION_PINDA_MENU								"Cieplna kalibr."
-#define MSG_PINDA_NOT_CALIBRATED								"Cieplna kalibracja nie byla przeprowadzona"
-#define MSG_PINDA_PREHEAT										"Grzanie PINDA"
-#define MSG_TEMP_CALIBRATION									"Ciepl. kal.         "
-#define MSG_TEMP_CALIBRATION_DONE								"Cieplna kalibracja zakonczona. Kontynuuj przyciskiem"
-#define MSG_TEMP_CALIBRATION_ON									"Ciepl. kal. [ON]"
-#define MSG_TEMP_CALIBRATION_OFF								"Ciepl. kal. [OFF]"
-#define MSG_PREPARE_FILAMENT									"Przygotuj filament"
-
-#define MSG_LOAD_ALL											"Zalad. wszystkie"
-#define MSG_LOAD_FILAMENT_1										"Zaladowac fil. 1"
-#define MSG_LOAD_FILAMENT_2										"Zaladowac fil. 2"
-#define MSG_LOAD_FILAMENT_3										"Zaladowac fil. 3"
-#define MSG_LOAD_FILAMENT_4										"Zaladowac fil. 4"
-#define MSG_UNLOAD_FILAMENT_1									"Wyjac filament 1"
-#define MSG_UNLOAD_FILAMENT_2									"Wyjac filament 2"
-#define MSG_UNLOAD_FILAMENT_3									"Wyjac filament 3"
-#define MSG_UNLOAD_FILAMENT_4									"Wyjac filament 4"
-#define MSG_UNLOAD_ALL											"Wyjac wszystkie"
-#define MSG_PREPARE_FILAMENT									"Przygotuj filament"
-#define MSG_ALL													"Wszystko"
-#define MSG_USED												"Uzyte przy druku"
-#define MSG_CURRENT												"Tylko aktualne"
-#define MSG_CHOOSE_EXTRUDER										"Wybierz ekstruder"
-#define MSG_EXTRUDER											"Ekstruder"
-#define MSG_EXTRUDER_1											"Ekstruder 1"
-#define MSG_EXTRUDER_2											"Ekstruder 2"
-#define MSG_EXTRUDER_3											"Ekstruder 3"
-#define MSG_EXTRUDER_4											"Ekstruder 4"
+#define MSG_LANGUAGE_NAME					"pl"

+ 9 - 1
Firmware/temperature.cpp

@@ -456,13 +456,19 @@ void checkFanSpeed()
 	if ((fan_speed_errors[1] > 15) && fans_check_enabled) fanSpeedError(1); //print fan
 }
 
+extern void stop_and_save_print_to_ram(float z_move, float e_move);
+extern void restore_print_from_ram_and_continue(float e_move);
+
 void fanSpeedError(unsigned char _fan) {
 
 	if (card.sdprinting) {
-		card.pauseSDPrint();
+		if(heating_status != 0) lcd_print_stop();
+		//card.pauseSDPrint();
+		lcd_sdcard_pause();
 	}
 
 	setTargetHotend0(0);
+	
 	/*lcd_update();
 	WRITE(BEEPER, HIGH);
 	delayMicroseconds(500);
@@ -473,10 +479,12 @@ void fanSpeedError(unsigned char _fan) {
 	SERIAL_ERROR_START;
 	switch (_fan) {
 	case 0:
+		//lcd_print_stop();
 		SERIAL_ERRORLNPGM("ERROR: Extruder fan speed is lower then expected");
 		LCD_ALERTMESSAGEPGM("Err: EXTR. FAN ERROR");
 		break;
 	case 1:
+		//stop_and_save_print_to_ram(0, 0);
 		SERIAL_ERRORLNPGM("ERROR: Print fan speed is lower then expected");
 		LCD_ALERTMESSAGEPGM("Err: PRINT FAN ERROR");
 		break;

+ 36 - 33
Firmware/ultralcd.cpp

@@ -813,7 +813,7 @@ static void lcd_return_to_status() {
 }
 
 
-static void lcd_sdcard_pause() {
+void lcd_sdcard_pause() {
 	lcd_return_to_status();
 	lcd_commands_type = LCD_COMMAND_LONG_PAUSE;
 
@@ -2855,7 +2855,7 @@ void lcd_mylang_drawmenu(int cursor) {
 }
 */
 
-void lcd_mylang_drawmenu(int cursor) {
+void lcd_mylang_drawmenu(int cursor) {SG_LANGUAGE_NAME_EXPLICIT
   int first = 0;
   if (cursor>3) first = cursor-3;
   if (cursor==LANG_NUM && LANG_NUM>4) first = LANG_NUM-4;
@@ -4108,6 +4108,39 @@ static void lcd_sd_updir()
   currentMenuViewOffset = 0;
 }
 
+void lcd_print_stop() {
+	cancel_heatup = true;
+#ifdef MESH_BED_LEVELING
+	mbl.active = false;
+#endif
+	// Stop the stoppers, update the position from the stoppers.
+	if (mesh_bed_leveling_flag == false && homing_flag == false) {
+		planner_abort_hard();
+		// Because the planner_abort_hard() initialized current_position[Z] from the stepper,
+		// Z baystep is no more applied. Reset it.
+		babystep_reset();
+	}
+	// Clean the input command queue.
+	cmdqueue_reset();
+	lcd_setstatuspgm(MSG_PRINT_ABORTED);
+	lcd_update(2);
+	card.sdprinting = false;
+	card.closefile();
+
+	stoptime = millis();
+	unsigned long t = (stoptime - starttime - pause_time) / 1000; //time in s
+	pause_time = 0;
+	save_statistics(total_filament_used, t);
+
+	lcd_return_to_status();
+	lcd_ignore_click(true);
+	lcd_commands_type = LCD_COMMAND_STOP_PRINT;
+
+	// Turn off the print fan
+	SET_OUTPUT(FAN_PIN);
+	WRITE(FAN_PIN, 0);
+	fanSpeed = 0;
+}
 
 void lcd_sdcard_stop()
 {
@@ -4135,37 +4168,7 @@ void lcd_sdcard_stop()
 		}
 		if ((int32_t)encoderPosition == 2)
 		{
-		cancel_heatup = true;
-        #ifdef MESH_BED_LEVELING
-        mbl.active = false;
-        #endif
-        // Stop the stoppers, update the position from the stoppers.
-		if (mesh_bed_leveling_flag == false && homing_flag == false) {
-			planner_abort_hard();
-			// Because the planner_abort_hard() initialized current_position[Z] from the stepper,
-			// Z baystep is no more applied. Reset it.
-			babystep_reset();
-		}
-        // Clean the input command queue.
-        cmdqueue_reset();
-				lcd_setstatuspgm(MSG_PRINT_ABORTED);
-				lcd_update(2);
-				card.sdprinting = false;
-				card.closefile();
-
-				stoptime = millis();
-				unsigned long t = (stoptime - starttime - pause_time) / 1000; //time in s
-				pause_time = 0;
-				save_statistics(total_filament_used, t);
-
-				lcd_return_to_status();
-				lcd_ignore_click(true);
-				lcd_commands_type = LCD_COMMAND_STOP_PRINT;
-            
-                // Turn off the print fan
-                SET_OUTPUT(FAN_PIN);
-                WRITE(FAN_PIN, 0);
-                fanSpeed=0;
+			lcd_print_stop();
 		}
 	}
 

+ 2 - 0
Firmware/ultralcd.h

@@ -26,6 +26,8 @@
   void lcd_loading_color();
   void lcd_force_language_selection();
   void lcd_sdcard_stop();
+  void lcd_sdcard_pause();
+  void lcd_print_stop();
   void prusa_statistics(int _message);
   void lcd_confirm_print();
 void lcd_mylang();