Pārlūkot izejas kodu

Update of Spanish and Italian.

bubnikv 7 gadi atpakaļ
vecāks
revīzija
ea646dce10

+ 29 - 12
Firmware/langtool.pl

@@ -62,13 +62,13 @@ sub pgm_is_whitespace
 sub pgm_is_interpunction
 {
 	my ($c) = @_;
-    return $c == ord('.') || $c == ord(',') || $c == ord(';') || $c == ord('?') || $c == ord('!');
+    return $c == ord('.') || $c == ord(',') || $c == ord(':') || $c == ord(';') || $c == ord('?') || $c == ord('!') || $c == ord('/');
 }
 
 sub break_text_fullscreen
 {
     my $lines = [];
-    my ($text_str) = @_;
+    my ($text_str, $max_linelen) = @_;
     if (! defined($text_str) || length($text_str) < 2) {
     	return $lines;
 	}
@@ -90,7 +90,7 @@ sub break_text_fullscreen
             # End of the message.
             last LINE;
         }
-        my $msgend2 = $i + ((20 > $len) ? $len : 20);
+        my $msgend2 = $i + (($max_linelen > $len) ? $len : $max_linelen);
         my $msgend = $msgend2;
         if ($msgend < $len && ! pgm_is_whitespace($msg[$msgend]) && ! pgm_is_interpunction($msg[$msgend])) {
             # Splitting a word. Find the start of the current word.
@@ -128,6 +128,9 @@ if (1)
 			delete ${$symbol_value}{value};
 			# Store an "is common" attribute.
 			${$symbol_value}{common} = 1;
+			# 4x 80 characters, 4 lines sent over serial line.
+			${$symbol_value}{length} = 320;
+			${$symbol_value}{lines} = 1;
  			$attributes{$key} = $symbol_value;
  		} else {
  			print "Duplicate key in language_common.h: $key\n";
@@ -160,7 +163,8 @@ foreach my $lang (@langs) {
  		my $strings = $texts{$key};
  		if (scalar(@$strings) < $num_languages) {
  			# die "Symbol $key undefined in $lang."
- 			print "Symbol $key undefined in language \"$lang\". Using the english variant.\n";
+ 			print "Symbol $key undefined in language \"$lang\". Using the english variant:\n";
+ 			print "\t", ${$strings}[0], "\n";
  			push @$strings, ${$strings}[0];
  		}
  	}
@@ -313,19 +317,32 @@ for my $lang (0 .. $#langs) {
 		my $strings = $texts{$key};
 		my %attrib = %{$attributes{$key}};
 		my $message = ${$strings}[$lang];
+		$message =~ /\S*"(.*)"\S*/;
+		$message = $1;
 		if ($lang == 0 || ${$strings}[0] ne $message) {
 			# If the language is not English, don't show the non-translated message.
-			my $lines = break_text_fullscreen($message);
-			my $nlines = @{$lines};
-			if (! $verify_only) {
-				if ($nlines > 1) {
-					print "Multi-line message: $message. Breaking to $nlines lines:\n";
+			my $max_nlines = $attrib{lines} // 1;
+			my $max_linelen = $attrib{length} // (($max_nlines > 1) ? 20 : 17);
+#			if (! $verify_only) {
+#				if ($nlines > 1) {
+#					print "Multi-line message: $message. Breaking to $nlines lines:\n";
+#					print "\t$_\n" foreach (@{$lines});
+#				}
+#			}
+			if ($max_nlines <= 1) {
+				my $linelen = length($message);
+				if ($linelen > $max_linelen) {
+					print "Key $key, language $langs[$lang], line length: $linelen, max length: $max_linelen\n";
+					print "\t$message\n";
+				}
+			} else {
+				my $lines = break_text_fullscreen($message, $max_linelen);
+				my $nlines = @{$lines};
+				if ($nlines > $max_nlines) {
+					print "Key $key, language $langs[$lang], lines: $nlines, max lines: $max_nlines\n";
 					print "\t$_\n" foreach (@{$lines});
 				}
 			}
-			if (defined $attrib{lines} && $nlines > $attrib{lines}) {
-				print "Key $key, language $langs[$lang], lines: $nlines, max lines: $attrib{lines}\n";
-			}
 		}
 	}
 }

+ 167 - 117
Firmware/language_all.cpp

@@ -12,7 +12,7 @@ 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 = "Auto regolare Z ?";
+const char MSG_ADJUSTZ_IT[] PROGMEM = "Autoregolare Z?";
 const char MSG_ADJUSTZ_ES[] PROGMEM = "Auto Micropaso Z?";
 const char MSG_ADJUSTZ_PL[] PROGMEM = "Autodostroic Z?";
 const char * const MSG_ADJUSTZ_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -34,7 +34,7 @@ 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 = "Auto Home";
+const char MSG_AUTO_HOME_IT[] PROGMEM = "Trova origine";
 const char MSG_AUTO_HOME_ES[] PROGMEM = "Llevar al origen";
 const char * const MSG_AUTO_HOME_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_AUTO_HOME_EN,
@@ -76,7 +76,7 @@ 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 = "Babystep Z";
+const char MSG_BABYSTEP_Z_IT[] PROGMEM = "Compensazione Z";
 const char MSG_BABYSTEP_Z_ES[] PROGMEM = "Micropaso Z";
 const char MSG_BABYSTEP_Z_PL[] PROGMEM = "Dostrojenie osy Z";
 const char * const MSG_BABYSTEP_Z_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -89,18 +89,19 @@ const char * const MSG_BABYSTEP_Z_LANG_TABLE[LANG_NUM] PROGMEM = {
 
 const char MSG_BABYSTEP_Z_NOT_SET_EN[] PROGMEM = "Printer has not been calibrated yet. Run calibration G-code to adjust Z height.";
 const char MSG_BABYSTEP_Z_NOT_SET_CZ[] PROGMEM = "Tiskarna nebyla jeste zkalibrovana. Spustte kalibracni G-kod a doladte Z.";
+const char MSG_BABYSTEP_Z_NOT_SET_IT[] PROGMEM = "Stampante non ancora calibrata. Eseguire il G-code di calibrazione per regolare l'altezza Z.";
 const char MSG_BABYSTEP_Z_NOT_SET_ES[] PROGMEM = "Impresora aun no calibrada. Ejecutar el G-code de calibracion para ajustar la altura de Z.";
 const char MSG_BABYSTEP_Z_NOT_SET_PL[] PROGMEM = "Drukarka nie byla kalibrowana. Wlaczyc kalibracyjny G-kod i dostroic Z.";
 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_EN,
+	MSG_BABYSTEP_Z_NOT_SET_IT,
 	MSG_BABYSTEP_Z_NOT_SET_ES,
 	MSG_BABYSTEP_Z_NOT_SET_PL
 };
 
 const char MSG_BED_EN[] PROGMEM = "Bed";
-const char MSG_BED_IT[] PROGMEM = "Piatto";
+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 = {
@@ -113,48 +114,52 @@ const char * const MSG_BED_LANG_TABLE[LANG_NUM] PROGMEM = {
 
 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_ES[] PROGMEM = "Hacia adelante um";
+const char MSG_BED_CORRECTION_FRONT_IT[] PROGMEM = "Lato ateriore um";
+const char MSG_BED_CORRECTION_FRONT_ES[] PROGMEM = "Adelante  [um]";
 const char MSG_BED_CORRECTION_FRONT_PL[] PROGMEM = "Do przodu [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_EN,
+	MSG_BED_CORRECTION_FRONT_IT,
 	MSG_BED_CORRECTION_FRONT_ES,
 	MSG_BED_CORRECTION_FRONT_PL
 };
 
 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_ES[] PROGMEM = "Hacia la izquierda  um";
+const char MSG_BED_CORRECTION_LEFT_IT[] PROGMEM = "Lato sinistro um";
+const char MSG_BED_CORRECTION_LEFT_ES[] PROGMEM = "Izquierda [um]";
 const char MSG_BED_CORRECTION_LEFT_PL[] PROGMEM = "W lewo  [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_EN,
+	MSG_BED_CORRECTION_LEFT_IT,
 	MSG_BED_CORRECTION_LEFT_ES,
 	MSG_BED_CORRECTION_LEFT_PL
 };
 
 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_ES[] PROGMEM = "Nivel de cama correcto";
+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 * const MSG_BED_CORRECTION_MENU_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_BED_CORRECTION_MENU_EN,
 	MSG_BED_CORRECTION_MENU_CZ,
-	MSG_BED_CORRECTION_MENU_EN,
+	MSG_BED_CORRECTION_MENU_IT,
 	MSG_BED_CORRECTION_MENU_ES,
 	MSG_BED_CORRECTION_MENU_PL
 };
 
 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_ES[] PROGMEM = "Hacia atras  um";
+const char MSG_BED_CORRECTION_REAR_IT[] PROGMEM = "Lato posteriore um";
+const char MSG_BED_CORRECTION_REAR_ES[] PROGMEM = "Atras     [um]";
 const char MSG_BED_CORRECTION_REAR_PL[] PROGMEM = "Do tylu  [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_EN,
+	MSG_BED_CORRECTION_REAR_IT,
 	MSG_BED_CORRECTION_REAR_ES,
 	MSG_BED_CORRECTION_REAR_PL
 };
@@ -166,12 +171,13 @@ const char * const MSG_BED_CORRECTION_RESET_LANG_TABLE[1] PROGMEM = {
 
 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_ES[] PROGMEM = "Hacia la derecha um";
+const char MSG_BED_CORRECTION_RIGHT_IT[] PROGMEM = "Lato destro um";
+const char MSG_BED_CORRECTION_RIGHT_ES[] PROGMEM = "Derecha   [um]";
 const char MSG_BED_CORRECTION_RIGHT_PL[] PROGMEM = "W prawo [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_EN,
+	MSG_BED_CORRECTION_RIGHT_IT,
 	MSG_BED_CORRECTION_RIGHT_ES,
 	MSG_BED_CORRECTION_RIGHT_PL
 };
@@ -204,167 +210,181 @@ const char * const MSG_BED_HEATING_LANG_TABLE[LANG_NUM] PROGMEM = {
 
 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_ES[] PROGMEM = "Nivelacion cama fallada. El sensor funcino' demasiado temprano. Pendiente el reset.";
-const char MSG_BED_LEVELING_FAILED_POINT_HIGH_PL[] PROGMEM = "Kalibracja Z niepowiedziona. Sensor dotknal zbyt wysoko. Czekam na reset.";
+const char MSG_BED_LEVELING_FAILED_POINT_HIGH_IT[] PROGMEM = "Livellamento letto fallito. Sensore scoccato troppo presto. In 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 * 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_EN,
+	MSG_BED_LEVELING_FAILED_POINT_HIGH_IT,
 	MSG_BED_LEVELING_FAILED_POINT_HIGH_ES,
 	MSG_BED_LEVELING_FAILED_POINT_HIGH_PL
 };
 
 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_ES[] PROGMEM = "Nivelacion cama fallada. El sensor no funciono'. Escombros en la boquilla? Pendiente el reset.";
-const char MSG_BED_LEVELING_FAILED_POINT_LOW_PL[] PROGMEM = "Kalibracja Z niepowiedziona. Sensor nie dotknal. Zanieczyszczona dysza? Czekam na reset.";
+const char MSG_BED_LEVELING_FAILED_POINT_LOW_IT[] PROGMEM = "Livellamento letto fallito. Sensore non scoccato. Detriti sull'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 * 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_EN,
+	MSG_BED_LEVELING_FAILED_POINT_LOW_IT,
 	MSG_BED_LEVELING_FAILED_POINT_LOW_ES,
 	MSG_BED_LEVELING_FAILED_POINT_LOW_PL
 };
 
 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_ES[] PROGMEM = "Nivelacion cama fallada. Sensor desconectado o cables danados. Pendiente el reset.";
-const char MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_PL[] PROGMEM = "Kalibracja Z niepowiedziona. Sensor jest odlaczony lub uszkodzony kabel. Czekam na reset.";
+const char MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_IT[] PROGMEM = "Livellamento letto fallito. Sensore disconnesso o con cavo danneggiato. 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 * 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_EN,
+	MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_IT,
 	MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_ES,
 	MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED_PL
 };
 
 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 = "Kalibracja XYZ niepowiedziona. Przednie punkty kalibracyjne zbyt wysuniete do przodu. Wyrownac drukarke.";
+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 * 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_EN,
+	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
 };
 
 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 = "Kalibracja XYZ niepowiedziona. Lewy przedni punkt zbyt wysuniety do przodu. Wyrownac drukarke.";
+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 * 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_EN,
+	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
 };
 
 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 = "Kalibracja XYZ niepowiedziona. Prawy przedni punkt zbyt wysuniety do przodu. Wyrownac drukarke.";
+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 * 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_EN,
+	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
 };
 
 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 * 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_EN,
+	MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_IT,
 	MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_ES,
 	MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED_PL
 };
 
 const char MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_EN[] PROGMEM = "XYZ calibration ok. X/Y axes are perpendicular.";
+const char MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_IT[] PROGMEM = "Calibrazione XYZ OK. Gli assi X/Y sono perpendicolari.";
 const char MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_ES[] PROGMEM = "Calibracion XYZ ok. Ejes X/Y perpendiculares.";
 const char MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_PL[] PROGMEM = "Kalibracja XYZ ok. Osie X/Y sa prostopadle.";
 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_EN,
-	MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_EN,
+	MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_IT,
 	MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_ES,
 	MSG_BED_SKEW_OFFSET_DETECTION_PERFECT_PL
 };
 
 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 = "Kalibracja XYZ niepowiedziona. Kalibracyjny punkt podkladki nieznaleziony.";
+const char MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND_PL[] PROGMEM = "Kalibr. XYZ nieudana. Kalibracyjny punkt podkladki nieznaleziony.";
 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_EN,
+	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
 };
 
 const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_EN[] PROGMEM = "X/Z skewed severly. Skew will be corrected automatically.";
 const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_CZ[] PROGMEM = "X/Y osy jsou silne zkosene. Zkoseni bude automaticky vyrovnano pri tisku.";
+const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_IT[] PROGMEM = "XYZ fortemente distorto. La distorsione verra' corretta automaticamente.";
 const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_ES[] PROGMEM = "X/Y muy distorsionado. La distorsion sera corregida automaticamente.";
-const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_PL[] PROGMEM = "Osie X/Y sa mocno skosne. Skos bedzie automatycznie wyrownany przy druku.";
+const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_PL[] PROGMEM = "Osie X/Y sa mocno skosne. Skos bedzie aut. wyrownany przy druku.";
 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_EN,
+	MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_IT,
 	MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_ES,
 	MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME_PL
 };
 
 const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_EN[] PROGMEM = "XYZ calibration all right. X/Y axes are slightly skewed.";
 const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_CZ[] PROGMEM = "Kalibrace XYZ v poradku. X/Y osy mirne zkosene.";
+const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_IT[] PROGMEM = "Calibrazione XYZ compiuta. Gli assi X/Y sono leggermente distorti.";
 const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_ES[] PROGMEM = "Calibracion XYZ conseguida. Ejes X/Y un poco torcidos.";
 const char MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_PL[] PROGMEM = "Kalibracja XYZ w porzadku. Osie X/Y lekko skosne.";
 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_EN,
+	MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_IT,
 	MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_ES,
 	MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD_PL
 };
 
 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 = "Kalibracja XYZ niedokladna. Przednie punkty kalibracyjne zbyt wysuniete do przodu.";
+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 * 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_EN,
+	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
 };
 
 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 * 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_EN,
+	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
 };
 
 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 * 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_EN,
+	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
 };
@@ -381,12 +401,13 @@ 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 * const MSG_CALIBRATE_BED_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_CALIBRATE_BED_EN,
 	MSG_CALIBRATE_BED_CZ,
-	MSG_CALIBRATE_BED_EN,
+	MSG_CALIBRATE_BED_IT,
 	MSG_CALIBRATE_BED_ES,
 	MSG_CALIBRATE_BED_PL
 };
@@ -404,7 +425,7 @@ const char * const MSG_CALIBRATE_BED_RESET_LANG_TABLE[LANG_NUM] PROGMEM = {
 
 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 = "Menu SD Carta";
+const char MSG_CARD_MENU_IT[] PROGMEM = "Stampa da SD";
 const char MSG_CARD_MENU_ES[] PROGMEM = "Menu de SD";
 const char MSG_CARD_MENU_PL[] PROGMEM = "Druk z SD";
 const char * const MSG_CARD_MENU_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -453,24 +474,26 @@ 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_ES[] PROGMEM = "Los carros Z izquierdo/derecho estan arriba al maximo?";
-const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_PL[] PROGMEM = "Oba wozki Z dojechaly do gornej ramy?";
+const char MSG_CONFIRM_CARRIAGE_AT_THE_TOP_IT[] PROGMEM = "I carrelli Z sinistro/destro sono alla massima atezza?";
+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 * 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_EN,
+	MSG_CONFIRM_CARRIAGE_AT_THE_TOP_IT,
 	MSG_CONFIRM_CARRIAGE_AT_THE_TOP_ES,
 	MSG_CONFIRM_CARRIAGE_AT_THE_TOP_PL
 };
 
 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 prawidlowej kalibracji prosze oczyscic dysze. Potwierdzic guzikiem.";
+const char MSG_CONFIRM_NOZZLE_CLEAN_PL[] PROGMEM = "Dla prawidl. kalibracji prosze oczyscic dysze. Potw. guzikiem.";
 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_EN,
+	MSG_CONFIRM_NOZZLE_CLEAN_IT,
 	MSG_CONFIRM_NOZZLE_CLEAN_ES,
 	MSG_CONFIRM_NOZZLE_CLEAN_PL
 };
@@ -513,7 +536,7 @@ const char * const MSG_COUNT_X_LANG_TABLE[1] PROGMEM = {
 
 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 = "Disabilita Motori";
+const char MSG_DISABLE_STEPPERS_IT[] PROGMEM = "Disablilita motori";
 const char MSG_DISABLE_STEPPERS_ES[] PROGMEM = "Apagar motores";
 const char MSG_DISABLE_STEPPERS_PL[] PROGMEM = "Wylaczyc silniki";
 const char * const MSG_DISABLE_STEPPERS_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -628,7 +651,7 @@ 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 = "Ventola";
+const char MSG_FAN_SPEED_IT[] PROGMEM = "Velocità ventola";
 const char MSG_FAN_SPEED_ES[] PROGMEM = "Ventilador";
 const char MSG_FAN_SPEED_PL[] PROGMEM = "Predkosc went.";
 const char * const MSG_FAN_SPEED_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -664,36 +687,39 @@ const char * const MSG_FILE_SAVED_LANG_TABLE[1] PROGMEM = {
 
 const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_EN[] PROGMEM = "Searching bed";
 const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_CZ[] PROGMEM = "Hledam kalibracni";
+const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_IT[] PROGMEM = "Ricerca del letto";
 const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_ES[] PROGMEM = "Buscando cama";
-const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_PL[] PROGMEM = "Szukam kalibracyjnego";
+const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_PL[] PROGMEM = "Szukam kalibracyj.";
 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_EN,
+	MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_IT,
 	MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_ES,
 	MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_PL
 };
 
 const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_EN[] PROGMEM = "calibration point";
 const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_CZ[] PROGMEM = "bod podlozky";
+const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_IT[] PROGMEM = "punto di calibrazione";
 const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_ES[] PROGMEM = "punto de calibracion";
 const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_PL[] PROGMEM = "punktu podkladki";
 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_EN,
+	MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_IT,
 	MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_ES,
 	MSG_FIND_BED_OFFSET_AND_SKEW_LINE2_PL
 };
 
 const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_EN[] PROGMEM = " of 4";
 const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_CZ[] PROGMEM = " z 4";
+const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_IT[] PROGMEM = " su 4";
 const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_ES[] PROGMEM = " de 4";
 const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_PL[] PROGMEM = " z 4";
 const char * const MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_EN,
 	MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_CZ,
-	MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_EN,
+	MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_IT,
 	MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_ES,
 	MSG_FIND_BED_OFFSET_AND_SKEW_LINE3_PL
 };
@@ -772,7 +798,7 @@ const char * const MSG_HOMEYZ_LANG_TABLE[LANG_NUM] PROGMEM = {
 
 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 = "Calibratura 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 * const MSG_HOMEYZ_DONE_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -803,36 +829,39 @@ const char * const MSG_HOTEND_OFFSET_LANG_TABLE[1] PROGMEM = {
 
 const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_EN[] PROGMEM = "Improving bed";
 const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_CZ[] PROGMEM = "Zlepsuji presnost";
+const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_IT[] PROGMEM = "Perfezionando il letto";
 const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_ES[] PROGMEM = "Mejorando cama";
 const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_PL[] PROGMEM = "Ulepszam dokladnosc";
 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_EN,
+	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_IT,
 	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_ES,
 	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1_PL
 };
 
 const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_EN[] PROGMEM = "calibration point";
 const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_CZ[] PROGMEM = "kalibracniho bodu";
+const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_IT[] PROGMEM = "punto di calibrazione";
 const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_ES[] PROGMEM = "punto de calibracion";
-const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_PL[] PROGMEM = "punktu kalibracyjnego";
+const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_PL[] PROGMEM = "punktu kalibracyj.";
 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_EN,
+	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_IT,
 	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_ES,
 	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2_PL
 };
 
 const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_EN[] PROGMEM = " of 9";
 const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_CZ[] PROGMEM = " z 9";
+const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_IT[] PROGMEM = " su 9";
 const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_ES[] PROGMEM = " de 9";
 const char MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_PL[] PROGMEM = " z 9";
 const char * const MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_EN,
 	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_CZ,
-	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_EN,
+	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_IT,
 	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_ES,
 	MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3_PL
 };
@@ -861,7 +890,7 @@ const char * const MSG_INVALID_EXTRUDER_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_KILLED_EN[] PROGMEM = "KILLED. ";
-const char MSG_KILLED_IT[] PROGMEM = "UCCISO ";
+const char MSG_KILLED_IT[] PROGMEM = "IN TILT.";
 const char MSG_KILLED_ES[] PROGMEM = "PARADA DE EMERG.";
 const char * const MSG_KILLED_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_KILLED_EN,
@@ -884,11 +913,11 @@ const char * const MSG_LANGUAGE_NAME_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_LANGUAGE_NAME_PL
 };
 
-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 = "Selez. la lingua";
+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 = "Cambia la lengua ";
-const char MSG_LANGUAGE_SELECT_PL[] PROGMEM = "Wybor jezyka        ";
+const char MSG_LANGUAGE_SELECT_PL[] PROGMEM = "Wybor jezyka";
 const char * const MSG_LANGUAGE_SELECT_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_LANGUAGE_SELECT_EN,
 	MSG_LANGUAGE_SELECT_CZ,
@@ -930,8 +959,8 @@ 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 = "Caricare filamento";
-const char MSG_LOAD_FILAMENT_ES[] PROGMEM = "Introducir filamento";
+const char MSG_LOAD_FILAMENT_IT[] PROGMEM = "Carica filamento";
+const char MSG_LOAD_FILAMENT_ES[] PROGMEM = "Poner filamento";
 const char MSG_LOAD_FILAMENT_PL[] PROGMEM = "Wprowadz filament";
 const char * const MSG_LOAD_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_LOAD_FILAMENT_EN,
@@ -1001,16 +1030,24 @@ const char * const MSG_MAX_LANG_TABLE[1] PROGMEM = {
 
 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 * const MSG_MENU_CALIBRATION_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_MENU_CALIBRATION_EN,
 	MSG_MENU_CALIBRATION_CZ,
-	MSG_MENU_CALIBRATION_EN,
-	MSG_MENU_CALIBRATION_EN,
-	MSG_MENU_CALIBRATION_EN
+	MSG_MENU_CALIBRATION_IT,
+	MSG_MENU_CALIBRATION_ES,
+	MSG_MENU_CALIBRATION_PL
 };
 
 const char MSG_MESH_BED_LEVELING_EN[] PROGMEM = "Mesh Bed Leveling";
-const char * const MSG_MESH_BED_LEVELING_LANG_TABLE[1] PROGMEM = {
+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
 };
 
@@ -1041,7 +1078,7 @@ 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_IT[] PROGMEM = "Muovi asse";
 const char MSG_MOVE_AXIS_ES[] PROGMEM = "Mover ejes";
 const char MSG_MOVE_AXIS_PL[] PROGMEM = "Ruch osi";
 const char * const MSG_MOVE_AXIS_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -1054,18 +1091,19 @@ const char * const MSG_MOVE_AXIS_LANG_TABLE[LANG_NUM] PROGMEM = {
 
 const char MSG_MOVE_CARRIAGE_TO_THE_TOP_EN[] PROGMEM = "Calibrating XYZ. Move Z carriage up to the end stoppers. Click when done.";
 const char MSG_MOVE_CARRIAGE_TO_THE_TOP_CZ[] PROGMEM = "Kalibrace XYZ. Posunte prosim Z osu az k~hornimu dorazu. Potvrdte tlacitkem.";
+const char MSG_MOVE_CARRIAGE_TO_THE_TOP_IT[] PROGMEM = "Calibrando X/Y. Muovere carrello Z fino alla massima altezza, poi fare clik.";
 const char MSG_MOVE_CARRIAGE_TO_THE_TOP_ES[] PROGMEM = "Calibrando XYZ. Subir carro Z hasta maximo. Click cuando acabes.";
-const char MSG_MOVE_CARRIAGE_TO_THE_TOP_PL[] PROGMEM = "Kalibracja XYZ. Prosze przesunac os Z do gornej ramy. Potwierdzic guzikiem.";
+const char MSG_MOVE_CARRIAGE_TO_THE_TOP_PL[] PROGMEM = "Kalibracja XYZ. Prosze przesunac os Z do gornej ramy. Potw. guzikiem.";
 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_EN,
+	MSG_MOVE_CARRIAGE_TO_THE_TOP_IT,
 	MSG_MOVE_CARRIAGE_TO_THE_TOP_ES,
 	MSG_MOVE_CARRIAGE_TO_THE_TOP_PL
 };
 
 const char MSG_MOVE_E_EN[] PROGMEM = "Extruder";
-const char MSG_MOVE_E_IT[] PROGMEM = "Estrusore";
+const char MSG_MOVE_E_IT[] PROGMEM = "Muovi Estrusore";
 const char MSG_MOVE_E_ES[] PROGMEM = "Extrusor";
 const char * const MSG_MOVE_E_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_MOVE_E_EN,
@@ -1116,24 +1154,26 @@ const char * const MSG_MOVE_Z_LANG_TABLE[LANG_NUM] PROGMEM = {
 
 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 * const MSG_NEW_FIRMWARE_AVAILABLE_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_NEW_FIRMWARE_AVAILABLE_EN,
 	MSG_NEW_FIRMWARE_AVAILABLE_CZ,
-	MSG_NEW_FIRMWARE_AVAILABLE_EN,
+	MSG_NEW_FIRMWARE_AVAILABLE_IT,
 	MSG_NEW_FIRMWARE_AVAILABLE_ES,
 	MSG_NEW_FIRMWARE_AVAILABLE_PL
 };
 
 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_ES[] PROGMEM = "Actualizar por favor.";
-const char MSG_NEW_FIRMWARE_PLEASE_UPGRADE_PL[] PROGMEM = "Prosze zaktualizowac.";
+const char MSG_NEW_FIRMWARE_PLEASE_UPGRADE_IT[] PROGMEM = "Si prega di effettuare aggiornamento.";
+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 * 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_EN,
+	MSG_NEW_FIRMWARE_PLEASE_UPGRADE_IT,
 	MSG_NEW_FIRMWARE_PLEASE_UPGRADE_ES,
 	MSG_NEW_FIRMWARE_PLEASE_UPGRADE_PL
 };
@@ -1200,7 +1240,7 @@ 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 = "No SD Carta";
+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 * const MSG_NO_CARD_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -1212,7 +1252,7 @@ const char * const MSG_NO_CARD_LANG_TABLE[LANG_NUM] PROGMEM = {
 };
 
 const char MSG_NO_MOVE_EN[] PROGMEM = "No move.";
-const char MSG_NO_MOVE_IT[] PROGMEM = "Nessun Movimento";
+const char MSG_NO_MOVE_IT[] PROGMEM = "Nessun movimento.";
 const char MSG_NO_MOVE_ES[] PROGMEM = "Sin movimiento";
 const char * const MSG_NO_MOVE_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_NO_MOVE_EN,
@@ -1239,7 +1279,7 @@ const char * const MSG_ON_LANG_TABLE[1] PROGMEM = {
 
 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 = "Pausa";
+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 * const MSG_PAUSE_PRINT_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -1252,13 +1292,12 @@ const char * const MSG_PAUSE_PRINT_LANG_TABLE[LANG_NUM] PROGMEM = {
 
 const char MSG_PICK_Z_EN[] PROGMEM = "Pick print";
 const char MSG_PICK_Z_CZ[] PROGMEM = "Vyberte vytisk";
-const char MSG_PICK_Z_IT[] PROGMEM = "Vyberte vytisk";
 const char MSG_PICK_Z_ES[] PROGMEM = "Vyberte vytisk";
 const char MSG_PICK_Z_PL[] PROGMEM = "Vyberte vytisk";
 const char * const MSG_PICK_Z_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_PICK_Z_EN,
 	MSG_PICK_Z_CZ,
-	MSG_PICK_Z_IT,
+	MSG_PICK_Z_EN,
 	MSG_PICK_Z_ES,
 	MSG_PICK_Z_PL
 };
@@ -1377,7 +1416,7 @@ const char * const MSG_PRUSA3D_HOWTO_LANG_TABLE[LANG_NUM] PROGMEM = {
 
 const char MSG_REBOOT_EN[] PROGMEM = "Reboot the printer";
 const char MSG_REBOOT_CZ[] PROGMEM = "Restartujte tiskarnu";
-const char MSG_REBOOT_IT[] PROGMEM = "Riavvio la stamp.";
+const char MSG_REBOOT_IT[] PROGMEM = "Riavvia stampante";
 const char MSG_REBOOT_ES[] PROGMEM = "Reiniciar la imp.";
 const char MSG_REBOOT_PL[] PROGMEM = "Restart drukarki";
 const char * const MSG_REBOOT_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -1423,7 +1462,7 @@ const char * const MSG_RESUME_PRINT_LANG_TABLE[LANG_NUM] PROGMEM = {
 
 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_IT[] PROGMEM = "Riprendi stampa";
 const char MSG_RESUMING_ES[] PROGMEM = "Resumiendo impre.";
 const char MSG_RESUMING_PL[] PROGMEM = "Wznowienie druku";
 const char * const MSG_RESUMING_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -1471,7 +1510,7 @@ 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 Card inserita";
+const char MSG_SD_INSERTED_IT[] PROGMEM = "SD inserita";
 const char MSG_SD_INSERTED_ES[] PROGMEM = "Tarjeta colocada";
 const char MSG_SD_INSERTED_PL[] PROGMEM = "Karta wlozona";
 const char * const MSG_SD_INSERTED_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -1504,7 +1543,7 @@ 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 Card rimossa";
+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 * const MSG_SD_REMOVED_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -1547,7 +1586,7 @@ const char * const MSG_SELFTEST_LANG_TABLE[LANG_NUM] PROGMEM = {
 };
 
 const char MSG_SELFTEST_BEDHEATER_EN[] PROGMEM = "Bed / Heater";
-const char MSG_SELFTEST_BEDHEATER_IT[] PROGMEM = "Piastra/Riscaldatore";
+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,
@@ -1572,7 +1611,7 @@ const char * const MSG_SELFTEST_CHECK_ALLCORRECT_LANG_TABLE[LANG_NUM] PROGMEM =
 
 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 piastra";
+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 * const MSG_SELFTEST_CHECK_BED_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -1585,7 +1624,7 @@ const char * const MSG_SELFTEST_CHECK_BED_LANG_TABLE[LANG_NUM] PROGMEM = {
 
 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 limiti";
+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 * const MSG_SELFTEST_CHECK_ENDSTOPS_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -1598,7 +1637,7 @@ const char * const MSG_SELFTEST_CHECK_ENDSTOPS_LANG_TABLE[LANG_NUM] PROGMEM = {
 
 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 lim temp";
+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 * const MSG_SELFTEST_CHECK_HOTEND_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -1649,7 +1688,7 @@ const char * const MSG_SELFTEST_CHECK_Z_LANG_TABLE[LANG_NUM] PROGMEM = {
 };
 
 const char MSG_SELFTEST_ENDSTOP_EN[] PROGMEM = "Endstop";
-const char MSG_SELFTEST_ENDSTOP_IT[] PROGMEM = "Limite corsa";
+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,
@@ -1660,7 +1699,7 @@ const char * const MSG_SELFTEST_ENDSTOP_LANG_TABLE[LANG_NUM] PROGMEM = {
 };
 
 const char MSG_SELFTEST_ENDSTOPS_EN[] PROGMEM = "Endstops";
-const char MSG_SELFTEST_ENDSTOPS_IT[] PROGMEM = "Limiti corsa";
+const char MSG_SELFTEST_ENDSTOPS_IT[] PROGMEM = "Finecorsa (2)";
 const char MSG_SELFTEST_ENDSTOPS_ES[] PROGMEM = "Topes final";
 const char * const MSG_SELFTEST_ENDSTOPS_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_SELFTEST_ENDSTOPS_EN,
@@ -1671,7 +1710,7 @@ const char * const MSG_SELFTEST_ENDSTOPS_LANG_TABLE[LANG_NUM] PROGMEM = {
 };
 
 const char MSG_SELFTEST_ENDSTOP_NOTHIT_EN[] PROGMEM = "Endstop not hit";
-const char MSG_SELFTEST_ENDSTOP_NOTHIT_IT[] PROGMEM = "Lim. fuoriportata";
+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 * const MSG_SELFTEST_ENDSTOP_NOTHIT_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_SELFTEST_ENDSTOP_NOTHIT_EN,
@@ -1706,7 +1745,7 @@ const char * const MSG_SELFTEST_FAILED_LANG_TABLE[LANG_NUM] PROGMEM = {
 };
 
 const char MSG_SELFTEST_HEATERTHERMISTOR_EN[] PROGMEM = "Heater/Thermistor";
-const char MSG_SELFTEST_HEATERTHERMISTOR_IT[] PROGMEM = "Riscald./Termistore";
+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,
@@ -1752,7 +1791,7 @@ const char * const MSG_SELFTEST_OK_LANG_TABLE[LANG_NUM] PROGMEM = {
 
 const char MSG_SELFTEST_PLEASECHECK_EN[] PROGMEM = "Please check :";
 const char MSG_SELFTEST_PLEASECHECK_CZ[] PROGMEM = "Zkontrolujte :";
-const char MSG_SELFTEST_PLEASECHECK_IT[] PROGMEM = "Verifica:";
+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 * const MSG_SELFTEST_PLEASECHECK_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -1764,7 +1803,7 @@ const char * const MSG_SELFTEST_PLEASECHECK_LANG_TABLE[LANG_NUM] PROGMEM = {
 };
 
 const char MSG_SELFTEST_START_EN[] PROGMEM = "Self test start  ";
-const char MSG_SELFTEST_START_IT[] PROGMEM = "Inizia autotest";
+const char MSG_SELFTEST_START_IT[] PROGMEM = "Avvia autotest";
 const char MSG_SELFTEST_START_ES[] PROGMEM = "Autotest salida";
 const char * const MSG_SELFTEST_START_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_SELFTEST_START_EN,
@@ -1816,20 +1855,21 @@ const char * const MSG_SET_ORIGIN_LANG_TABLE[1] PROGMEM = {
 };
 
 const char MSG_SHOW_END_STOPS_EN[] PROGMEM = "Show end stops";
-const char MSG_SHOW_END_STOPS_CZ[] PROGMEM = "Zobraz konc. spinace";
-const char MSG_SHOW_END_STOPS_ES[] PROGMEM = "Ensena fin de paso";
+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 * const MSG_SHOW_END_STOPS_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_SHOW_END_STOPS_EN,
 	MSG_SHOW_END_STOPS_CZ,
-	MSG_SHOW_END_STOPS_EN,
+	MSG_SHOW_END_STOPS_IT,
 	MSG_SHOW_END_STOPS_ES,
 	MSG_SHOW_END_STOPS_PL
 };
 
 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 = "Modo [piu forza]";
+const char MSG_SILENT_MODE_OFF_IT[] PROGMEM = "Mode [prestante]";
 const char MSG_SILENT_MODE_OFF_ES[] PROGMEM = "Modo [mas fuerza]";
 const char MSG_SILENT_MODE_OFF_PL[] PROGMEM = "Mod [w wydajnosc]";
 const char * const MSG_SILENT_MODE_OFF_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -1842,8 +1882,8 @@ const char * const MSG_SILENT_MODE_OFF_LANG_TABLE[LANG_NUM] PROGMEM = {
 
 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_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 * const MSG_SILENT_MODE_ON_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_SILENT_MODE_ON_EN,
@@ -1860,7 +1900,7 @@ 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 = "Velcità";
+const char MSG_SPEED_IT[] PROGMEM = "Velocità";
 const char MSG_SPEED_ES[] PROGMEM = "Velocidad";
 const char MSG_SPEED_PL[] PROGMEM = "Predkosc";
 const char * const MSG_SPEED_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -1886,7 +1926,7 @@ const char * const MSG_STATISTICS_LANG_TABLE[LANG_NUM] PROGMEM = {
 
 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:";
+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 * const MSG_STATS_FILAMENTUSED_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -1899,7 +1939,7 @@ const char * const MSG_STATS_FILAMENTUSED_LANG_TABLE[LANG_NUM] PROGMEM = {
 
 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 stampa:";
+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 * const MSG_STATS_PRINTTIME_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -1942,7 +1982,7 @@ 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_IT[] PROGMEM = "ARRESTATO.";
 const char MSG_STOPPED_ES[] PROGMEM = "PARADA";
 const char * const MSG_STOPPED_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_STOPPED_EN,
@@ -2005,7 +2045,7 @@ const char * const MSG_SWITCH_PS_ON_LANG_TABLE[LANG_NUM] PROGMEM = {
 
 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 mostrare i camb.";
+const char MSG_TAKE_EFFECT_IT[] PROGMEM = " per attualizzare";
 const char MSG_TAKE_EFFECT_ES[] PROGMEM = "para tomar efecto";
 const char MSG_TAKE_EFFECT_PL[] PROGMEM = "wprow. zmian";
 const char * const MSG_TAKE_EFFECT_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -2030,18 +2070,28 @@ const char * const MSG_TEMPERATURE_LANG_TABLE[LANG_NUM] PROGMEM = {
 };
 
 const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF_EN[] PROGMEM = "SD card [normal]";
-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_OFF_PL[] PROGMEM = "karta SD [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
 };
 
 const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_EN[] PROGMEM = "SD card [FlshAir]";
-const char * const MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_LANG_TABLE[1] PROGMEM = {
-	MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_EN
+const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON_PL[] PROGMEM = "karta SD [FlshAir]";
+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
 };
 
 const char MSG_TUNE_EN[] PROGMEM = "Tune";
 const char MSG_TUNE_CZ[] PROGMEM = "Ladit";
-const char MSG_TUNE_IT[] PROGMEM = "Adatta";
+const char MSG_TUNE_IT[] PROGMEM = "Regola";
 const char MSG_TUNE_ES[] PROGMEM = "Ajustar";
 const char MSG_TUNE_PL[] PROGMEM = "Nastroic";
 const char * const MSG_TUNE_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -2059,7 +2109,7 @@ const char * const MSG_UNKNOWN_COMMAND_LANG_TABLE[1] PROGMEM = {
 
 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 = "Scaricare fil.";
+const char MSG_UNLOAD_FILAMENT_IT[] PROGMEM = "Scarica filamento";
 const char MSG_UNLOAD_FILAMENT_ES[] PROGMEM = "Sacar filamento";
 const char MSG_UNLOAD_FILAMENT_PL[] PROGMEM = "Wyjac filament";
 const char * const MSG_UNLOAD_FILAMENT_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -2084,7 +2134,7 @@ const char * const MSG_USB_PRINTING_LANG_TABLE[LANG_NUM] PROGMEM = {
 };
 
 const char MSG_USERWAIT_EN[] PROGMEM = "Wait for user...";
-const char MSG_USERWAIT_IT[] PROGMEM = "Attendi Utente...";
+const char MSG_USERWAIT_IT[] PROGMEM = "Attendendo utente";
 const char MSG_USERWAIT_ES[] PROGMEM = "Esperando ordenes";
 const char * const MSG_USERWAIT_LANG_TABLE[LANG_NUM] PROGMEM = {
 	MSG_USERWAIT_EN,
@@ -2116,7 +2166,7 @@ const char * const MSG_VTRAV_MIN_LANG_TABLE[1] PROGMEM = {
 
 const char MSG_WATCH_EN[] PROGMEM = "Info screen";
 const char MSG_WATCH_CZ[] PROGMEM = "Informace";
-const char MSG_WATCH_IT[] PROGMEM = "Guarda";
+const char MSG_WATCH_IT[] PROGMEM = "Schermata info";
 const char MSG_WATCH_ES[] PROGMEM = "Monitorizar";
 const char MSG_WATCH_PL[] PROGMEM = "Informacje";
 const char * const MSG_WATCH_LANG_TABLE[LANG_NUM] PROGMEM = {
@@ -2187,7 +2237,7 @@ 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 " pronto.";
+const char WELCOME_MSG_IT[] PROGMEM = CUSTOM_MENDEL_NAME "pronta.";
 const char WELCOME_MSG_ES[] PROGMEM = CUSTOM_MENDEL_NAME " lista";
 const char WELCOME_MSG_PL[] PROGMEM = CUSTOM_MENDEL_NAME " gotowa";
 const char * const WELCOME_MSG_LANG_TABLE[LANG_NUM] PROGMEM = {

+ 6 - 6
Firmware/language_all.h

@@ -250,8 +250,8 @@ 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_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[1];
-#define MSG_MESH_BED_LEVELING LANG_TABLE_SELECT_EXPLICIT(MSG_MESH_BED_LEVELING_LANG_TABLE, 0)
+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_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];
@@ -462,10 +462,10 @@ 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_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_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_UNKNOWN_COMMAND_LANG_TABLE[1];

+ 2 - 2
Firmware/language_cz.h

@@ -150,7 +150,7 @@
 #define MSG_SERIAL_ERROR_MENU_STRUCTURE     "Error in menu structure"
 
 #define MSG_LANGUAGE_NAME					"Cestina"
-#define MSG_LANGUAGE_SELECT					"Vyber jazyka        "
+#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"
@@ -190,7 +190,7 @@
 #define MSG_STATISTICS						"Statistika  "
 #define MSG_USB_PRINTING					"Tisk z USB  "
 
-#define MSG_SHOW_END_STOPS					"Zobraz konc. spinace"
+#define MSG_SHOW_END_STOPS					"Stav konc. spin."
 #define MSG_CALIBRATE_BED					"Kalibrace XYZ"
 #define MSG_CALIBRATE_BED_RESET				"Reset XYZ kalibr."
 

+ 45 - 45
Firmware/language_en.h

@@ -6,7 +6,7 @@
  *
  */
 
-#define WELCOME_MSG                         CUSTOM_MENDEL_NAME " ready."
+#define(length=20) WELCOME_MSG              CUSTOM_MENDEL_NAME " ready."
 #define MSG_SD_INSERTED                     "Card inserted"
 #define MSG_SD_REMOVED                      "Card removed"
 #define MSG_MAIN                            "Main"
@@ -54,7 +54,7 @@
 #define MSG_DWELL                           "Sleep..."
 #define MSG_USERWAIT                        "Wait for user..."
 #define MSG_RESUMING                        "Resuming print"
-#define MSG_PRINT_ABORTED                   "Print aborted"
+#define(length=20) MSG_PRINT_ABORTED        "Print aborted"
 #define MSG_NO_MOVE                         "No move."
 #define MSG_KILLED                          "KILLED. "
 #define MSG_STOPPED                         "STOPPED. "
@@ -74,26 +74,26 @@
 
 #define MSG_RECTRACT                        "Rectract"
 #define MSG_ERROR                        "ERROR:"
-#define MSG_PREHEAT_NOZZLE                       "Preheat the nozzle!"
+#define(length=20) MSG_PREHEAT_NOZZLE       "Preheat the nozzle!"
 #define MSG_SUPPORT "Support"
-#define MSG_CORRECTLY			"Changed correctly?"
+#define(length=20) MSG_CORRECTLY			"Changed correctly?"
 #define MSG_YES					"Yes"
 #define MSG_NO					"No"
-#define MSG_NOT_LOADED 			"Filament not loaded"
+#define(length=19) MSG_NOT_LOADED 			"Filament not loaded"
 #define MSG_NOT_COLOR 			"Color not clear"
-#define MSG_LOADING_FILAMENT	"Loading filament"
-#define MSG_PLEASE_WAIT			"Please wait"
+#define(length=20) MSG_LOADING_FILAMENT		"Loading filament"
+#define(length=20) MSG_PLEASE_WAIT			"Please wait"
 #define MSG_LOADING_COLOR		"Loading color"
 #define MSG_CHANGE_SUCCESS		"Change success!"
-#define MSG_PRESS				"And press the knob"
-#define MSG_INSERT_FILAMENT		"Insert filament"
-#define MSG_CHANGING_FILAMENT	"Changing filament!"
+#define(length=20) MSG_PRESS				"And press the knob"
+#define(length=20) MSG_INSERT_FILAMENT		"Insert filament"
+#define(length=20) MSG_CHANGING_FILAMENT	"Changing filament!"
 
 
 #define MSG_SILENT_MODE_ON					"Mode     [silent]"
 #define MSG_SILENT_MODE_OFF					"Mode [high power]" 
-#define MSG_REBOOT							"Reboot the printer"
-#define MSG_TAKE_EFFECT						" for take effect"											
+#define(length=20) MSG_REBOOT				"Reboot the printer"
+#define(length=20) MSG_TAKE_EFFECT			" for take effect"											
 
 #define MSG_Enqueing                        "enqueing \""
 #define MSG_POWERUP                         "PowerUp"
@@ -148,7 +148,7 @@
 #define MSG_SERIAL_ERROR_MENU_STRUCTURE     "Error in menu structure"
 
 #define MSG_LANGUAGE_NAME					"English"
-#define MSG_LANGUAGE_SELECT					"Select language     "
+#define MSG_LANGUAGE_SELECT					"Select language"
 #define MSG_PRUSA3D							"prusa3d.com"
 #define MSG_PRUSA3D_FORUM					"forum.prusa3d.com"
 #define MSG_PRUSA3D_HOWTO					"howto.prusa3d.com"
@@ -164,20 +164,20 @@
 #define MSG_SELFTEST_ENDSTOP				"Endstop"
 #define MSG_SELFTEST_ENDSTOP_NOTHIT			"Endstop not hit"
 #define MSG_SELFTEST_OK						"Self test OK"
-#define MSG_STATS_TOTALFILAMENT				"Total filament :"
-#define MSG_STATS_TOTALPRINTTIME			"Total print time :"
-#define MSG_STATS_FILAMENTUSED				"Filament used:  "
-#define MSG_STATS_PRINTTIME					"Print time:  "
-#define MSG_SELFTEST_START					"Self test start  "
-#define MSG_SELFTEST_CHECK_ENDSTOPS			"Checking endstops"
-#define MSG_SELFTEST_CHECK_HOTEND			"Checking hotend  "  
-#define MSG_SELFTEST_CHECK_X				"Checking X axis  "
-#define MSG_SELFTEST_CHECK_Y				"Checking Y axis  "
-#define MSG_SELFTEST_CHECK_Z				"Checking Z axis  "
-#define MSG_SELFTEST_CHECK_BED				"Checking bed     "
-#define MSG_SELFTEST_CHECK_ALLCORRECT		"All correct      "
+#define(length=20) MSG_STATS_TOTALFILAMENT	"Total filament :"
+#define(length=20) MSG_STATS_TOTALPRINTTIME "Total print time :"
+#define(length=20) MSG_STATS_FILAMENTUSED	"Filament used:  "
+#define(length=20) MSG_STATS_PRINTTIME		"Print time:  "
+#define(length=20) MSG_SELFTEST_START				"Self test start  "
+#define(length=20) MSG_SELFTEST_CHECK_ENDSTOPS		"Checking endstops"
+#define(length=20) MSG_SELFTEST_CHECK_HOTEND		"Checking hotend  "  
+#define(length=20) MSG_SELFTEST_CHECK_X				"Checking X axis  "
+#define(length=20) MSG_SELFTEST_CHECK_Y				"Checking Y axis  "
+#define(length=20) MSG_SELFTEST_CHECK_Z				"Checking Z axis  "
+#define(length=20) MSG_SELFTEST_CHECK_BED			"Checking bed     "
+#define(length=20) MSG_SELFTEST_CHECK_ALLCORRECT	"All correct      "
 #define MSG_SELFTEST						"Selftest         "
-#define MSG_SELFTEST_FAILED					"Selftest failed  "
+#define(length=20) MSG_SELFTEST_FAILED		"Selftest failed  "
 #define MSG_STATISTICS						"Statistics  "
 #define MSG_USB_PRINTING					"USB printing  "
 #define MSG_HOMEYZ                          "Calibrate Z"
@@ -189,36 +189,36 @@
 #define MSG_CALIBRATE_BED_RESET				"Reset XYZ calibr."
 
 #define(length=20,lines=4) MSG_MOVE_CARRIAGE_TO_THE_TOP 	"Calibrating XYZ. Move Z carriage up to the end stoppers. Click when done."
-#define(length=20,lines=4) MSG_CONFIRM_NOZZLE_CLEAN			"Please clean the nozzle for calibration. Click when done."
+#define(length=20,lines=8) MSG_CONFIRM_NOZZLE_CLEAN			"Please clean the nozzle for calibration. Click when done."
 #define(length=20,lines=2) MSG_CONFIRM_CARRIAGE_AT_THE_TOP	"Are left and right Z~carriages all up?"
 
-#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE1	"Searching bed"
-#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE2	"calibration point"
+#define(length=20) MSG_FIND_BED_OFFSET_AND_SKEW_LINE1	"Searching bed"
+#define(length=20) MSG_FIND_BED_OFFSET_AND_SKEW_LINE2	"calibration point"
 #define(length=14) MSG_FIND_BED_OFFSET_AND_SKEW_LINE3	" of 4"
-#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1	"Improving bed"
-#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2	"calibration point"
+#define(length=20) MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1	"Improving bed"
+#define(length=20) MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2	"calibration point"
 #define(length=14) MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3	" of 9"
 
-#define(length=20,lines=4) MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND			"XYZ calibration failed. Bed calibration point was not found."
-#define(length=20,lines=4) MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED				"XYZ calibration failed. Please consult the manual."
-#define(length=20,lines=4) MSG_BED_SKEW_OFFSET_DETECTION_PERFECT					"XYZ calibration ok. X/Y axes are perpendicular."
-#define(length=20,lines=4) MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD					"XYZ calibration all right. X/Y axes are slightly skewed."
-#define(length=20,lines=4) MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME				"X/Z skewed severly. Skew will be corrected automatically."
-#define(length=20,lines=4) MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR		"XYZ calibration failed. Left front calibration point not reachable."
-#define(length=20,lines=4) MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR		"XYZ calibration failed. Right front calibration point not reachable."
-#define(length=20,lines=4) MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR		"XYZ calibration failed. Front calibration points not reachable."
-#define(length=20,lines=4) MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR		"XYZ calibration compromised. Left front calibration point not reachable."
-#define(length=20,lines=4) MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR	"XYZ calibration compromised. Right front calibration point not reachable."
-#define(length=20,lines=4) MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR		"XYZ calibration compromised. Front calibration points not reachable."
+#define(length=20,lines=8) MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND			"XYZ calibration failed. Bed calibration point was not found."
+#define(length=20,lines=8) MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED				"XYZ calibration failed. Please consult the manual."
+#define(length=20,lines=8) MSG_BED_SKEW_OFFSET_DETECTION_PERFECT					"XYZ calibration ok. X/Y axes are perpendicular."
+#define(length=20,lines=8) MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD					"XYZ calibration all right. X/Y axes are slightly skewed."
+#define(length=20,lines=8) MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME				"X/Z skewed severly. Skew will be corrected automatically."
+#define(length=20,lines=8) MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR		"XYZ calibration failed. Left front calibration point not reachable."
+#define(length=20,lines=8) MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR		"XYZ calibration failed. Right front calibration point not reachable."
+#define(length=20,lines=8) MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR		"XYZ calibration failed. Front calibration points not reachable."
+#define(length=20,lines=8) MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR		"XYZ calibration compromised. Left front calibration point not reachable."
+#define(length=20,lines=8) MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR	"XYZ calibration compromised. Right front calibration point not reachable."
+#define(length=20,lines=8) MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR		"XYZ calibration compromised. Front calibration points not reachable."
 
 #define(length=20,lines=4) MSG_BED_LEVELING_FAILED_POINT_LOW						"Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset."
 #define(length=20,lines=4) MSG_BED_LEVELING_FAILED_POINT_HIGH						"Bed leveling failed. Sensor triggered too high. Waiting for reset."
 #define(length=20,lines=4) MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED				"Bed leveling failed. Sensor disconnected or cable broken. Waiting for reset."
 
-#define MSG_NEW_FIRMWARE_AVAILABLE													"New firmware version available:"
-#define MSG_NEW_FIRMWARE_PLEASE_UPGRADE												"Please upgrade."
+#define(length=20,lines=2) MSG_NEW_FIRMWARE_AVAILABLE								"New firmware version available:"
+#define(length=20) MSG_NEW_FIRMWARE_PLEASE_UPGRADE												"Please upgrade."
 
-#define(length=20,lines=4) MSG_BABYSTEP_Z_NOT_SET									"Printer has not been calibrated yet. Run calibration G-code to adjust Z height."
+#define(length=20,lines=8) MSG_BABYSTEP_Z_NOT_SET									"Printer has not been calibrated yet. Run calibration G-code to adjust Z height."
 
 #define MSG_BED_CORRECTION_MENU									"Bed level correct"
 #define MSG_BED_CORRECTION_LEFT									"Left side  um"

+ 16 - 15
Firmware/language_es.h

@@ -46,7 +46,7 @@
 #define MSG_SETTINGS                        "Ajuste"
 #define MSG_PREHEAT                         "Precalentar"
 #define MSG_UNLOAD_FILAMENT                 "Sacar filamento"
-#define MSG_LOAD_FILAMENT					"Introducir filamento"
+#define MSG_LOAD_FILAMENT					"Poner filamento"
 #define MSG_ERROR							"ERROR:"
 #define MSG_PREHEAT_NOZZLE                  "Precal. extrusor!"
 #define MSG_SUPPORT							"Support"
@@ -62,7 +62,7 @@
 #define MSG_PRESS							"Y pulse el mando"
 #define MSG_INSERT_FILAMENT					"Inserta filamento"
 #define MSG_CHANGING_FILAMENT				"Cambiando fil.!"
-#define MSG_SILENT_MODE_ON					"Modo     [silencio]"
+#define MSG_SILENT_MODE_ON					"Modo   [silencio]"
 #define MSG_SILENT_MODE_OFF					"Modo [mas fuerza]" 
 #define MSG_REBOOT							"Reiniciar la imp."
 #define MSG_TAKE_EFFECT						"para tomar efecto"											
@@ -185,12 +185,12 @@
 #define MSG_STATISTICS                      "Estadistica  "
 #define MSG_USB_PRINTING                    "Impresion de USB "
 
-#define MSG_SHOW_END_STOPS                  "Ensena fin de paso"
+#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. Subir carro Z hasta maximo. Click cuando acabes."
 #define MSG_CONFIRM_NOZZLE_CLEAN            "Limpiar boquilla para calibracion. Click cuando acabes."
-#define MSG_CONFIRM_CARRIAGE_AT_THE_TOP     "Los carros Z izquierdo/derecho estan arriba al maximo?"
+#define MSG_CONFIRM_CARRIAGE_AT_THE_TOP     "Carros Z izq./der. estan arriba maximo?"
 #define MSG_FIND_BED_OFFSET_AND_SKEW_LINE1  "Buscando cama"
 #define MSG_FIND_BED_OFFSET_AND_SKEW_LINE2  "punto de calibracion"
 #define MSG_FIND_BED_OFFSET_AND_SKEW_LINE3  " de 4"
@@ -208,16 +208,17 @@
 #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 cama fallada. El sensor no funciono'. Escombros en la boquilla? Pendiente el reset."
-#define MSG_BED_LEVELING_FAILED_POINT_HIGH          "Nivelacion cama fallada. El sensor funcino' demasiado temprano. Pendiente el reset."
-#define MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED      "Nivelacion cama fallada. Sensor desconectado o cables danados. Pendiente el reset."
-#define MSG_NEW_FIRMWARE_AVAILABLE                  "Nuevo firmware disponible:"
-#define MSG_NEW_FIRMWARE_PLEASE_UPGRADE                 "Actualizar por favor."
-#define MSG_BABYSTEP_Z_NOT_SET                      "Impresora aun no calibrada. Ejecutar el G-code de calibracion para ajustar la altura de Z."
-#define MSG_BED_CORRECTION_MENU                                 "Nivel de cama correcto"
-#define MSG_BED_CORRECTION_LEFT                                 "Hacia la izquierda  um"
-#define MSG_BED_CORRECTION_RIGHT                                "Hacia la derecha um"
-#define MSG_BED_CORRECTION_FRONT                                "Hacia adelante um"
-#define MSG_BED_CORRECTION_REAR                                 "Hacia atras  um"
+#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_BABYSTEP_Z_NOT_SET                      			"Impresora aun no calibrada. Ejecutar el G-code de calibracion para ajustar la altura de Z."
+#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_MENU_CALIBRATION									"Calibracion"

+ 154 - 117
Firmware/language_it.h

@@ -1,82 +1,92 @@
-/**
- * Italian
- *
- * LCD Menu Messages
- * Please note these are limited to 17 characters!
- *
- */
-
-#define WELCOME_MSG                         CUSTOM_MENDEL_NAME " pronto."
-#define MSG_SD_INSERTED                     "SD Card inserita"
-#define MSG_SD_REMOVED                      "SD Card rimossa"
+#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                "Disabilita Motori"
-#define MSG_AUTO_HOME                       "Auto Home"
+#define MSG_DISABLE_STEPPERS                "Disablilita 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_MOVE_AXIS                       "Muovi Asse"
+#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                          "Estrusore"
-#define MSG_SPEED                           "Velcità"
+#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                           "Velocità"
 #define MSG_NOZZLE                          "Ugello"
-#define MSG_BED                             "Piatto"
-#define MSG_FAN_SPEED                       "Ventola"
+#define MSG_NOZZLE1                         "Nozzle2"
+#define MSG_NOZZLE2                         "Nozzle3"
+#define MSG_BED                             "Letto"
+#define MSG_FAN_SPEED                       "Velocità ventola"
 #define MSG_FLOW                            "Flusso"
 #define MSG_TEMPERATURE                     "Temperatura"
-#define MSG_WATCH                           "Guarda"
-#define MSG_TUNE                            "Adatta"
-#define MSG_PAUSE_PRINT                     "Pausa"
+#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                       "Menu SD Carta"
-#define MSG_NO_CARD                         "No SD Carta"
+#define MSG_CARD_MENU                       "Stampa da SD"
+#define MSG_NO_CARD                         "Nessuna SD"
 #define MSG_DWELL                           "Sospensione..."
-#define MSG_USERWAIT                        "Attendi Utente..."
-#define MSG_RESUMING                        "Riprendi Stampa"
+#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                          "UCCISO "
-#define MSG_STOPPED                         "ARRESTATO "
+#define MSG_NO_MOVE                         "Nessun movimento."
+#define MSG_KILLED                          "IN TILT."
+#define MSG_STOPPED                         "ARRESTATO."
 #define MSG_FILAMENTCHANGE                  "Cambiare filamento"
-#define MSG_BABYSTEP_Z                      "Babystep Z"
-#define MSG_ADJUSTZ							"Auto regolare Z ?"
-#define MSG_PICK_Z							"Vyberte vytisk"
-#define MSG_SETTINGS                         "Impostazioni"
+#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_UNLOAD_FILAMENT                 "Scaricare fil."
-#define MSG_LOAD_FILAMENT                 "Caricare filamento"
-#define MSG_ERROR                        "ERROR:"
-#define MSG_PREHEAT_NOZZLE                       "Preris. ugello!"
-#define MSG_SUPPORT "Support"
-#define MSG_CORRECTLY			"Cambiato corr.?"
-#define MSG_YES					"Si"
-#define MSG_NO					"No"
-#define MSG_NOT_LOADED 			"Fil. no cargado"
-#define MSG_NOT_COLOR 			"Color no claro"
-#define MSG_LOADING_FILAMENT	"Cargando fil."
-#define MSG_PLEASE_WAIT			"Aspetta"
-#define MSG_LOADING_COLOR		"Cargando color"
-#define MSG_CHANGE_SUCCESS		"Cambia. riuscito!"
-#define MSG_PRESS				"Y pulse el mando"
-#define MSG_INSERT_FILAMENT		"Inserire filamento"
-#define MSG_CHANGING_FILAMENT	"Mutevole fil.!"
-#define MSG_SILENT_MODE_ON					"Modo     [silenzioso]"
-#define MSG_SILENT_MODE_OFF					"Modo [piu forza]" 
-#define MSG_REBOOT							"Riavvio la stamp."
-#define MSG_TAKE_EFFECT						" per mostrare i camb."											
 #define MSG_HEATING                         "Riscaldamento..."
+#define MSG_SUPPORT 						"Support"
+#define MSG_YES								"Si"
+#define MSG_NO								"No"
+#define MSG_NOT_LOADED 						"Fil. no cargado"
+#define MSG_NOT_COLOR 						"Color no claro"
+#define MSG_LOADING_COLOR					"Cargando color"
+#define MSG_CHANGE_SUCCESS					"Cambia. riuscito!"
+#define MSG_PRESS							"Y pulse el mando"
+#define MSG_INSERT_FILAMENT					"Inserire filamento"
+#define MSG_CHANGING_FILAMENT				"Mutevole fil.!"
+
+#define MSG_PLEASE_WAIT						"Aspetta"
+#define MSG_PREHEAT_NOZZLE                  "Preris. ugello!"
 #define MSG_HEATING_COMPLETE                "Riscaldamento fatto."
 #define MSG_BED_HEATING                     "Piatto riscaldam."
 #define MSG_BED_DONE                        "Piatto fatto."
-#define MSG_LANGUAGE_NAME					"Italiano"
-#define MSG_LANGUAGE_SELECT					"Selez. la lingua"
-#define MSG_PRUSA3D					"prusa3d.com"
-#define MSG_PRUSA3D_FORUM					"forum.prusa3d.com"
-#define MSG_PRUSA3D_HOWTO					"howto.prusa3d.com"
+#define MSG_ERROR                        	"ERROR:"
+#define MSG_CORRECTLY						"Cambiato corr.?"
+#define MSG_LOADING_FILAMENT				"Cargando fil."
+#define MSG_UNLOAD_FILAMENT                 "Scarica filamento"
+#define MSG_LOAD_FILAMENT                   "Carica filamento"
 
-
-// Do not translate those!
+#define MSG_SILENT_MODE_ON		    "Modo [silenzioso]"
+#define MSG_SILENT_MODE_OFF		    "Mode [prestante]" 
+#define MSG_REBOOT			    "Riavvia stampante"
+#define MSG_TAKE_EFFECT			    " per attualizzare"
 
 #define MSG_Enqueing                        "enqueing \""
 #define MSG_POWERUP                         "PowerUp"
@@ -123,63 +133,90 @@
 #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_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 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                     "Calibratura OK"
-
-#define MSG_SELFTEST_ERROR                  "Autotest negativo"
-#define MSG_SELFTEST_PLEASECHECK            "Verifica:"   
-#define MSG_SELFTEST_NOTCONNECTED           "Non connesso"
-#define MSG_SELFTEST_HEATERTHERMISTOR       "Riscald./Termistore"
-#define MSG_SELFTEST_BEDHEATER              "Piastra/Riscaldatore"
-#define MSG_SELFTEST_WIRINGERROR            "Errore cablaggio"
-#define MSG_SELFTEST_ENDSTOPS               "Limiti corsa"
-#define MSG_SELFTEST_MOTOR                  "Motore"
-#define MSG_SELFTEST_ENDSTOP                "Limite corsa"
-#define MSG_SELFTEST_ENDSTOP_NOTHIT         "Lim. fuoriportata"
-#define MSG_SELFTEST_OK                     "Autotest OK"
-
-#define MSG_STATS_TOTALFILAMENT             "Filamento tot:"
-#define MSG_STATS_TOTALPRINTTIME            "Tempo stampa tot:"
-#define MSG_STATS_FILAMENTUSED              "Filamento:"
-#define MSG_STATS_PRINTTIME                 "Tempo stampa:"
-
-#define MSG_SELFTEST_START                  "Inizia autotest"
-#define MSG_SELFTEST_CHECK_ENDSTOPS         "Verifica limiti"
-#define MSG_SELFTEST_CHECK_HOTEND           "Verifica lim temp" 
-#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 piastra"
-#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_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 				"Calibrando X/Y. Muovere carrello Z fino alla massima altezza, poi fare clik."
+#define MSG_CONFIRM_NOZZLE_CLEAN				"Pulire l'ugello per la calibrazione, poi fare click."
+#define MSG_CONFIRM_CARRIAGE_AT_THE_TOP				"I carrelli Z sinistro/destro sono alla massima atezza?"
+
+#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE1			"Ricerca del letto"
+#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE2			"punto di calibrazione"
+#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE3			" su 4"
+#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1			"Perfezionando il letto"
+#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2			"punto di calibrazione"
+#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3			" su 9"
+
+#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."
+#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD			"Calibrazione XYZ compiuta. Gli assi X/Y sono leggermente distorti."
+#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME		"XYZ fortemente distorto. La distorsione verra' corretta automaticamente."
+#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. Sensore non scoccato. Detriti sull'ugello? In attesa di reset."
+#define MSG_BED_LEVELING_FAILED_POINT_HIGH			"Livellamento letto fallito. Sensore scoccato troppo presto. In attesa di reset."
+#define MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED		"Livellamento letto fallito. Sensore disconnesso o con cavo danneggiato. In attesa di reset."
+
+#define MSG_NEW_FIRMWARE_AVAILABLE				"Nuova versione del firmware disponibile"
+#define MSG_NEW_FIRMWARE_PLEASE_UPGRADE				"Si prega di effettuare aggiornamento."
+
+#define MSG_BABYSTEP_Z_NOT_SET					"Stampante non ancora calibrata. Eseguire il G-code di calibrazione per regolare l'altezza Z."
+
+#define MSG_BED_CORRECTION_MENU							"Correz. liv. letto"
+#define MSG_BED_CORRECTION_LEFT							"Lato sinistro um"
+#define MSG_BED_CORRECTION_RIGHT						"Lato destro um"
+#define MSG_BED_CORRECTION_FRONT						"Lato ateriore um"
+#define MSG_BED_CORRECTION_REAR							"Lato posteriore 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]"

+ 40 - 42
Firmware/language_pl.h

@@ -70,7 +70,7 @@
 #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_LANGUAGE_SELECT                                     "Wybor jezyka"
 #define MSG_PRUSA3D                                     "prusa3d.cz"
 #define MSG_PRUSA3D_FORUM                                       "forum.prusa3d.cz"
 #define MSG_PRUSA3D_HOWTO                                       "howto.prusa3d.cz"
@@ -191,44 +191,42 @@
 #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. Prosze przesunac os Z do gornej ramy. Potwierdzic guzikiem."
-#define MSG_CONFIRM_NOZZLE_CLEAN			"Dla prawidlowej kalibracji prosze oczyscic dysze. Potwierdzic guzikiem."
-#define MSG_CONFIRM_CARRIAGE_AT_THE_TOP		"Oba wozki Z dojechaly do gornej ramy?"
-
-#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE1	"Szukam kalibracyjnego"
-#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE2	"punktu podkladki"
-#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE3	" z 4"
-#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1	"Ulepszam dokladnosc"
-#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2	"punktu kalibracyjnego"
-#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3	" z 9"
-
-#define MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND			"Kalibracja XYZ niepowiedziona. 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."
-#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD					"Kalibracja XYZ w porzadku. Osie X/Y lekko skosne."
-#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME				"Osie X/Y sa mocno skosne. Skos bedzie automatycznie wyrownany przy druku."
-#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR		"Kalibracja XYZ niepowiedziona. Lewy przedni punkt zbyt wysuniety do przodu. Wyrownac drukarke."
-#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR	"Kalibracja XYZ niepowiedziona. Prawy przedni punkt zbyt wysuniety do przodu. Wyrownac drukarke."
-#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR		"Kalibracja XYZ niepowiedziona. Przednie punkty kalibracyjne zbyt wysuniete 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	"Kalibracja XYZ niedokladna. Przednie punkty kalibracyjne zbyt wysuniete do przodu."
-
-#define MSG_BED_LEVELING_FAILED_POINT_LOW						"Kalibracja Z niepowiedziona. Sensor nie dotknal. Zanieczyszczona dysza? Czekam na reset."
-#define MSG_BED_LEVELING_FAILED_POINT_HIGH						"Kalibracja Z niepowiedziona. Sensor dotknal zbyt wysoko. Czekam na reset."
-#define MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED				"Kalibracja Z niepowiedziona. Sensor jest odlaczony lub uszkodzony kabel. Czekam na reset."
-
-#define MSG_NEW_FIRMWARE_AVAILABLE								"Wyszla nowa wersja firmware:"
-#define MSG_NEW_FIRMWARE_PLEASE_UPGRADE							"Prosze zaktualizowac."
-#define MSG_BABYSTEP_Z_NOT_SET                          		"Drukarka nie byla kalibrowana. Wlaczyc kalibracyjny G-kod i dostroic Z."
-
-#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_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. Prosze przesunac os Z do gornej ramy. Potw. guzikiem."
+#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 kalibracyj."
+#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE2  "punktu podkladki"
+#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE3  " z 4"
+#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1   "Ulepszam dokladnosc"
+#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2   "punktu kalibracyj."
+#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE3   " z 9"
+#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."
+#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD                 "Kalibracja XYZ w porzadku. Osie X/Y lekko skosne."
+#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME              "Osie X/Y sa mocno skosne. Skos bedzie aut. wyrownany 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_BABYSTEP_Z_NOT_SET                                  "Drukarka nie byla kalibrowana. Wlaczyc kalibracyjny G-kod i dostroic Z."
+#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_MENU_CALIBRATION									"Kalibracja"
+#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF					"karta SD [normal]"
+#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON					"karta SD [FlshAir]"