Multi-language support (#15453)

This commit is contained in:
Marcio Teixeira 2019-10-09 18:46:10 -06:00 committed by Scott Lahteine
parent dc14d4a13c
commit 6a865a6146
105 changed files with 11537 additions and 11196 deletions

View file

@ -324,7 +324,7 @@ void disable_all_steppers() {
#ifdef ACTION_ON_CANCEL #ifdef ACTION_ON_CANCEL
host_action_cancel(); host_action_cancel();
#endif #endif
kill(PSTR(MSG_ERR_PROBING_FAILED)); kill(GET_TEXT(MSG_LCD_PROBING_FAILED));
#endif #endif
} }
@ -686,15 +686,16 @@ void idle(
* Kill all activity and lock the machine. * Kill all activity and lock the machine.
* After this the machine will need to be reset. * After this the machine will need to be reset.
*/ */
void kill(PGM_P const lcd_msg/*=nullptr*/, const bool steppers_off/*=false*/) { void kill(PGM_P const lcd_error/*=nullptr*/, PGM_P const lcd_component/*=nullptr*/, const bool steppers_off/*=false*/) {
thermalManager.disable_all_heaters(); thermalManager.disable_all_heaters();
SERIAL_ERROR_MSG(MSG_ERR_KILLED); SERIAL_ERROR_MSG(MSG_ERR_KILLED);
#if HAS_DISPLAY #if HAS_DISPLAY
ui.kill_screen(lcd_msg ?: PSTR(MSG_KILLED)); ui.kill_screen(lcd_error ?: GET_TEXT(MSG_KILLED), lcd_component);
#else #else
UNUSED(lcd_msg); UNUSED(lcd_error);
UNUSED(lcd_component);
#endif #endif
#ifdef ACTION_ON_KILL #ifdef ACTION_ON_KILL

View file

@ -322,7 +322,7 @@ void disable_e_stepper(const uint8_t e);
void disable_e_steppers(); void disable_e_steppers();
void disable_all_steppers(); void disable_all_steppers();
void kill(PGM_P const lcd_msg=nullptr, const bool steppers_off=false); void kill(PGM_P const lcd_error=nullptr, PGM_P const lcd_component=nullptr, const bool steppers_off=false);
void minkill(const bool steppers_off=false); void minkill(const bool steppers_off=false);
void quickstop_stepper(); void quickstop_stepper();

View file

@ -97,7 +97,20 @@
// #define STRING_SPLASH_LINE3 WEBSITE_URL // #define STRING_SPLASH_LINE3 WEBSITE_URL
//#endif //#endif
#if HAS_GRAPHICAL_LCD #if HAS_CHARACTER_LCD
// Custom characters defined in the first 8 characters of the LCD
#define LCD_STR_BEDTEMP "\x00" // Print only as a char. This will have 'unexpected' results when used in a string!
#define LCD_STR_DEGREE "\x01"
#define LCD_STR_THERMOMETER "\x02" // Still used with string concatenation
#define LCD_STR_UPLEVEL "\x03"
#define LCD_STR_REFRESH "\x04"
#define LCD_STR_FOLDER "\x05"
#define LCD_STR_FEEDRATE "\x06"
#define LCD_STR_CLOCK "\x07"
#define LCD_STR_ARROW_RIGHT ">" /* from the default character set */
#else
// //
// Custom characters from Marlin_symbols.fon which was merged into ISO10646-0-3.bdf // Custom characters from Marlin_symbols.fon which was merged into ISO10646-0-3.bdf
// \x00 intentionally skipped to avoid problems in strings // \x00 intentionally skipped to avoid problems in strings
@ -120,19 +133,6 @@
#define LCD_STR_FILAM_DIA "\xF8" #define LCD_STR_FILAM_DIA "\xF8"
#define LCD_STR_FILAM_MUL "\xA4" #define LCD_STR_FILAM_MUL "\xA4"
#elif HAS_CHARACTER_LCD
// Custom characters defined in the first 8 characters of the LCD
#define LCD_STR_BEDTEMP "\x00" // Print only as a char. This will have 'unexpected' results when used in a string!
#define LCD_STR_DEGREE "\x01"
#define LCD_STR_THERMOMETER "\x02" // Still used with string concatenation
#define LCD_STR_UPLEVEL "\x03"
#define LCD_STR_REFRESH "\x04"
#define LCD_STR_FOLDER "\x05"
#define LCD_STR_FEEDRATE "\x06"
#define LCD_STR_CLOCK "\x07"
#define LCD_STR_ARROW_RIGHT ">" /* from the default character set */
#endif #endif
// Common LCD messages // Common LCD messages
@ -243,10 +243,9 @@
#define MSG_ERR_COLD_EXTRUDE_STOP " cold extrusion prevented" #define MSG_ERR_COLD_EXTRUDE_STOP " cold extrusion prevented"
#define MSG_ERR_LONG_EXTRUDE_STOP " too long extrusion prevented" #define MSG_ERR_LONG_EXTRUDE_STOP " too long extrusion prevented"
#define MSG_ERR_HOTEND_TOO_COLD "Hotend too cold" #define MSG_ERR_HOTEND_TOO_COLD "Hotend too cold"
#define MSG_ERR_Z_HOMING_SER "Home XY first"
#define MSG_ERR_EEPROM_WRITE "Error writing to EEPROM!"
#define MSG_FILAMENT_CHANGE_HEAT "Press button (or M108) to heat nozzle"
#define MSG_FILAMENT_CHANGE_INSERT "Insert filament and press button (or M108)"
#define MSG_FILAMENT_CHANGE_WAIT "Press button (or M108) to resume"
#define MSG_FILAMENT_CHANGE_HEAT_LCD "Press button to heat nozzle" #define MSG_FILAMENT_CHANGE_HEAT_LCD "Press button to heat nozzle"
#define MSG_FILAMENT_CHANGE_INSERT_LCD "Insert filament and press button" #define MSG_FILAMENT_CHANGE_INSERT_LCD "Insert filament and press button"
#define MSG_FILAMENT_CHANGE_WAIT_LCD "Press button to resume" #define MSG_FILAMENT_CHANGE_WAIT_LCD "Press button to resume"
@ -254,8 +253,6 @@
#define MSG_FILAMENT_CHANGE_INSERT_M108 "Insert filament and send M108" #define MSG_FILAMENT_CHANGE_INSERT_M108 "Insert filament and send M108"
#define MSG_FILAMENT_CHANGE_WAIT_M108 "Send M108 to resume" #define MSG_FILAMENT_CHANGE_WAIT_M108 "Send M108 to resume"
#define MSG_ERR_EEPROM_WRITE "Error writing to EEPROM!"
#define MSG_STOP_BLTOUCH "STOP called because of BLTouch error - restart with M999" #define MSG_STOP_BLTOUCH "STOP called because of BLTouch error - restart with M999"
#define MSG_STOP_UNHOMED "STOP called because of unhomed error - restart with M999" #define MSG_STOP_UNHOMED "STOP called because of unhomed error - restart with M999"
#define MSG_KILL_INACTIVE_TIME "KILL caused by too much inactive time - current command: " #define MSG_KILL_INACTIVE_TIME "KILL caused by too much inactive time - current command: "
@ -298,6 +295,8 @@
#define MSG_T_THERMAL_RUNAWAY "Thermal Runaway" #define MSG_T_THERMAL_RUNAWAY "Thermal Runaway"
#define MSG_T_MAXTEMP "MAXTEMP triggered" #define MSG_T_MAXTEMP "MAXTEMP triggered"
#define MSG_T_MINTEMP "MINTEMP triggered" #define MSG_T_MINTEMP "MINTEMP triggered"
#define MSG_ERR_PROBING_FAILED "Probing Failed"
#define MSG_ZPROBE_OUT_SER "Z Probe Past Bed"
// Debug // Debug
#define MSG_DEBUG_PREFIX "DEBUG:" #define MSG_DEBUG_PREFIX "DEBUG:"
@ -313,11 +312,9 @@
#define LANGUAGE_DATA_INCL_(M) STRINGIFY_(fontdata/langdata_##M.h) #define LANGUAGE_DATA_INCL_(M) STRINGIFY_(fontdata/langdata_##M.h)
#define LANGUAGE_DATA_INCL(M) LANGUAGE_DATA_INCL_(M) #define LANGUAGE_DATA_INCL(M) LANGUAGE_DATA_INCL_(M)
#define INCLUDE_LANGUAGE_DATA LANGUAGE_DATA_INCL(LCD_LANGUAGE)
#define LANGUAGE_INCL_(M) STRINGIFY_(../lcd/language/language_##M.h) #define LANGUAGE_INCL_(M) STRINGIFY_(../lcd/language/language_##M.h)
#define LANGUAGE_INCL(M) LANGUAGE_INCL_(M) #define LANGUAGE_INCL(M) LANGUAGE_INCL_(M)
#define INCLUDE_LANGUAGE LANGUAGE_INCL(LCD_LANGUAGE)
// Never translate these strings // Never translate these strings
#define MSG_X "X" #define MSG_X "X"
@ -338,6 +335,11 @@
#define MSG_Z2 "Z2" #define MSG_Z2 "Z2"
#define MSG_Z3 "Z3" #define MSG_Z3 "Z3"
#define LCD_STR_A MSG_A
#define LCD_STR_B MSG_B
#define LCD_STR_C MSG_C
#define LCD_STR_E MSG_E
/** /**
* Tool indexes for LCD display only * Tool indexes for LCD display only
* *
@ -370,7 +372,14 @@
#define LCD_STR_E4 "E" LCD_STR_N4 #define LCD_STR_E4 "E" LCD_STR_N4
#define LCD_STR_E5 "E" LCD_STR_N5 #define LCD_STR_E5 "E" LCD_STR_N5
#include INCLUDE_LANGUAGE #include "multi_language.h" // Allow multiple languages
#include "../lcd/language/language_en.h"
#include LANGUAGE_INCL(LCD_LANGUAGE)
#include LANGUAGE_INCL(LCD_LANGUAGE_2)
#include LANGUAGE_INCL(LCD_LANGUAGE_3)
#include LANGUAGE_INCL(LCD_LANGUAGE_4)
#include LANGUAGE_INCL(LCD_LANGUAGE_5)
#if NONE(DISPLAY_CHARSET_ISO10646_1, \ #if NONE(DISPLAY_CHARSET_ISO10646_1, \
DISPLAY_CHARSET_ISO10646_5, \ DISPLAY_CHARSET_ISO10646_5, \
@ -383,5 +392,3 @@
DISPLAY_CHARSET_ISO10646_SK) DISPLAY_CHARSET_ISO10646_SK)
#define DISPLAY_CHARSET_ISO10646_1 // use the better font on full graphic displays. #define DISPLAY_CHARSET_ISO10646_1 // use the better font on full graphic displays.
#endif #endif
#include "../lcd/language/language_en.h"

View file

View file

@ -0,0 +1,79 @@
/********************
* multi_language.h *
********************/
/****************************************************************************
* Written By Marcio Teixeira 2019 - Aleph Objects, Inc. *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 3 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* To view a copy of the GNU General Public License, go to the following *
* location: <http://www.gnu.org/licenses/>. *
****************************************************************************/
#pragma once
typedef const char Language_Str[];
#if defined(LCD_LANGUAGE_5)
#define NUM_LANGUAGES 5
#elif defined(LCD_LANGUAGE_4)
#define NUM_LANGUAGES 4
#elif defined(LCD_LANGUAGE_3)
#define NUM_LANGUAGES 3
#elif defined(LCD_LANGUAGE_2)
#define NUM_LANGUAGES 2
#else
#define NUM_LANGUAGES 1
#endif
// Setting the unused languages equal to each other allows
// the compiler to optimize away the conditionals
#ifndef LCD_LANGUAGE_2
#define LCD_LANGUAGE_2 LCD_LANGUAGE
#endif
#ifndef LCD_LANGUAGE_3
#define LCD_LANGUAGE_3 LCD_LANGUAGE_2
#endif
#ifndef LCD_LANGUAGE_4
#define LCD_LANGUAGE_4 LCD_LANGUAGE_3
#endif
#ifndef LCD_LANGUAGE_5
#define LCD_LANGUAGE_5 LCD_LANGUAGE_4
#endif
#define _GET_LANG(LANG) Language_##LANG
#define GET_LANG(LANG) _GET_LANG(LANG)
#if NUM_LANGUAGES > 1
extern uint8_t lang;
#define GET_TEXT(MSG) ( \
lang == 0 ? GET_LANG(LCD_LANGUAGE)::MSG : \
lang == 1 ? GET_LANG(LCD_LANGUAGE_2)::MSG : \
lang == 2 ? GET_LANG(LCD_LANGUAGE_3)::MSG : \
lang == 3 ? GET_LANG(LCD_LANGUAGE_4)::MSG : \
GET_LANG(LCD_LANGUAGE_5)::MSG \
)
#define MAX_LANG_CHARSIZE max(GET_LANG(LCD_LANGUAGE)::CHARSIZE, \
GET_LANG(LCD_LANGUAGE_2)::CHARSIZE, \
GET_LANG(LCD_LANGUAGE_3)::CHARSIZE, \
GET_LANG(LCD_LANGUAGE_4)::CHARSIZE, \
GET_LANG(LCD_LANGUAGE_5)::CHARSIZE)
#else
#define GET_TEXT(MSG) GET_LANG(LCD_LANGUAGE)::MSG
#define MAX_LANG_CHARSIZE GET_LANG(LCD_LANGUAGE)::CHARSIZE
#endif
#define GET_TEXT_F(MSG) (const __FlashStringHelper*)GET_TEXT(MSG)
#define MSG_CONCAT(A,B) pgm_p_pair_t(GET_TEXT(A),GET_TEXT(B))

View file

@ -757,7 +757,7 @@
const int point_num = (GRID_MAX_POINTS) - count + 1; const int point_num = (GRID_MAX_POINTS) - count + 1;
SERIAL_ECHOLNPAIR("\nProbing mesh point ", point_num, "/", int(GRID_MAX_POINTS), ".\n"); SERIAL_ECHOLNPAIR("\nProbing mesh point ", point_num, "/", int(GRID_MAX_POINTS), ".\n");
#if HAS_DISPLAY #if HAS_DISPLAY
ui.status_printf_P(0, PSTR(MSG_PROBING_MESH " %i/%i"), point_num, int(GRID_MAX_POINTS)); ui.status_printf_P(0, PSTR(S_FMT " %i/%i"), GET_TEXT(MSG_PROBING_MESH), point_num, int(GRID_MAX_POINTS));
#endif #endif
#if HAS_LCD_MENU #if HAS_LCD_MENU
@ -921,7 +921,7 @@
if (do_ubl_mesh_map) display_map(g29_map_type); // show user where we're probing if (do_ubl_mesh_map) display_map(g29_map_type); // show user where we're probing
serialprintPGM(parser.seen('B') ? PSTR(MSG_UBL_BC_INSERT) : PSTR(MSG_UBL_BC_INSERT2)); serialprintPGM(parser.seen('B') ? GET_TEXT(MSG_UBL_BC_INSERT) : GET_TEXT(MSG_UBL_BC_INSERT2));
const float z_step = 0.01f; // existing behavior: 0.01mm per click, occasionally step const float z_step = 0.01f; // existing behavior: 0.01mm per click, occasionally step
//const float z_step = planner.steps_to_mm[Z_AXIS]; // approx one step each click //const float z_step = planner.steps_to_mm[Z_AXIS]; // approx one step each click
@ -959,7 +959,7 @@
void abort_fine_tune() { void abort_fine_tune() {
ui.return_to_status(); ui.return_to_status();
do_blocking_move_to_z(Z_CLEARANCE_BETWEEN_PROBES); do_blocking_move_to_z(Z_CLEARANCE_BETWEEN_PROBES);
set_message_with_feedback(PSTR(MSG_EDITING_STOPPED)); set_message_with_feedback(GET_TEXT(MSG_EDITING_STOPPED));
} }
void unified_bed_leveling::fine_tune_mesh(const xy_pos_t &pos, const bool do_ubl_mesh_map) { void unified_bed_leveling::fine_tune_mesh(const xy_pos_t &pos, const bool do_ubl_mesh_map) {
@ -1072,7 +1072,7 @@
bool err_flag = false; bool err_flag = false;
#if HAS_LCD_MENU #if HAS_LCD_MENU
set_message_with_feedback(PSTR(MSG_UBL_DOING_G29)); set_message_with_feedback(GET_TEXT(MSG_UBL_DOING_G29));
#endif #endif
g29_constant = 0; g29_constant = 0;
@ -1196,7 +1196,7 @@
if (ubl_state_recursion_chk != 1) { if (ubl_state_recursion_chk != 1) {
SERIAL_ECHOLNPGM("save_ubl_active_state_and_disabled() called multiple times in a row."); SERIAL_ECHOLNPGM("save_ubl_active_state_and_disabled() called multiple times in a row.");
#if HAS_LCD_MENU #if HAS_LCD_MENU
set_message_with_feedback(PSTR(MSG_UBL_SAVE_ERROR)); set_message_with_feedback(GET_TEXT(MSG_UBL_SAVE_ERROR));
#endif #endif
return; return;
} }
@ -1210,7 +1210,7 @@
if (--ubl_state_recursion_chk) { if (--ubl_state_recursion_chk) {
SERIAL_ECHOLNPGM("restore_ubl_active_state_and_leave() called too many times."); SERIAL_ECHOLNPGM("restore_ubl_active_state_and_leave() called too many times.");
#if HAS_LCD_MENU #if HAS_LCD_MENU
set_message_with_feedback(PSTR(MSG_UBL_RESTORE_ERROR)); set_message_with_feedback(GET_TEXT(MSG_UBL_RESTORE_ERROR));
#endif #endif
return; return;
} }
@ -1410,7 +1410,7 @@
if (do_3_pt_leveling) { if (do_3_pt_leveling) {
SERIAL_ECHOLNPGM("Tilting mesh (1/3)"); SERIAL_ECHOLNPGM("Tilting mesh (1/3)");
#if HAS_DISPLAY #if HAS_DISPLAY
ui.status_printf_P(0, PSTR(MSG_LCD_TILTING_MESH " 1/3")); ui.status_printf_P(0, PSTR(S_FMT " 1/3"), GET_TEXT(MSG_LCD_TILTING_MESH));
#endif #endif
measured_z = probe_at_point(points[0], PROBE_PT_RAISE, g29_verbose_level); measured_z = probe_at_point(points[0], PROBE_PT_RAISE, g29_verbose_level);
@ -1431,7 +1431,7 @@
if (!abort_flag) { if (!abort_flag) {
SERIAL_ECHOLNPGM("Tilting mesh (2/3)"); SERIAL_ECHOLNPGM("Tilting mesh (2/3)");
#if HAS_DISPLAY #if HAS_DISPLAY
ui.status_printf_P(0, PSTR(MSG_LCD_TILTING_MESH " 2/3")); ui.status_printf_P(0, PSTR(S_FMT " 2/3"), GET_TEXT(MSG_LCD_TILTING_MESH));
#endif #endif
measured_z = probe_at_point(points[1], PROBE_PT_RAISE, g29_verbose_level); measured_z = probe_at_point(points[1], PROBE_PT_RAISE, g29_verbose_level);
@ -1453,7 +1453,7 @@
if (!abort_flag) { if (!abort_flag) {
SERIAL_ECHOLNPGM("Tilting mesh (3/3)"); SERIAL_ECHOLNPGM("Tilting mesh (3/3)");
#if HAS_DISPLAY #if HAS_DISPLAY
ui.status_printf_P(0, PSTR(MSG_LCD_TILTING_MESH " 3/3")); ui.status_printf_P(0, PSTR(S_FMT " 3/3"), GET_TEXT(MSG_LCD_TILTING_MESH));
#endif #endif
measured_z = probe_at_point(points[2], PROBE_PT_STOW, g29_verbose_level); measured_z = probe_at_point(points[2], PROBE_PT_STOW, g29_verbose_level);
@ -1497,7 +1497,7 @@
if (!abort_flag) { if (!abort_flag) {
SERIAL_ECHOLNPAIR("Tilting mesh point ", point_num, "/", total_points, "\n"); SERIAL_ECHOLNPAIR("Tilting mesh point ", point_num, "/", total_points, "\n");
#if HAS_DISPLAY #if HAS_DISPLAY
ui.status_printf_P(0, PSTR(MSG_LCD_TILTING_MESH " %i/%i"), point_num, total_points); ui.status_printf_P(0, PSTR(S_FMT " %i/%i"), GET_TEXT(MSG_LCD_TILTING_MESH), point_num, total_points);
#endif #endif
measured_z = probe_at_point(rpos, parser.seen('E') ? PROBE_PT_STOW : PROBE_PT_RAISE, g29_verbose_level); // TODO: Needs error handling measured_z = probe_at_point(rpos, parser.seen('E') ? PROBE_PT_STOW : PROBE_PT_RAISE, g29_verbose_level); // TODO: Needs error handling

View file

@ -53,6 +53,7 @@
#include "../lcd/extensible_ui/ui_api.h" #include "../lcd/extensible_ui/ui_api.h"
#endif #endif
#include "../core/language.h"
#include "../lcd/ultralcd.h" #include "../lcd/ultralcd.h"
#if HAS_BUZZER #if HAS_BUZZER
@ -76,6 +77,12 @@ fil_change_settings_t fc_settings[EXTRUDERS];
#include "../sd/cardreader.h" #include "../sd/cardreader.h"
#endif #endif
#if ENABLED(EMERGENCY_PARSER)
#define _PMSG(L) L##_M108
#else
#define _PMSG(L) L##_LCD
#endif
#if HAS_BUZZER #if HAS_BUZZER
static void filament_change_beep(const int8_t max_beep_count, const bool init=false) { static void filament_change_beep(const int8_t max_beep_count, const bool init=false) {
if (pause_mode == PAUSE_MODE_PAUSE_PRINT) return; if (pause_mode == PAUSE_MODE_PAUSE_PRINT) return;
@ -163,7 +170,7 @@ bool load_filament(const float &slow_load_length/*=0*/, const float &fast_load_l
#if HAS_LCD_MENU #if HAS_LCD_MENU
if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_INSERT, mode); if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_INSERT, mode);
#endif #endif
SERIAL_ECHO_MSG(MSG_FILAMENT_CHANGE_INSERT); SERIAL_ECHO_MSG(_PMSG(MSG_FILAMENT_CHANGE_INSERT));
#if HAS_BUZZER #if HAS_BUZZER
filament_change_beep(max_beep_count, true); filament_change_beep(max_beep_count, true);
@ -188,7 +195,7 @@ bool load_filament(const float &slow_load_length/*=0*/, const float &fast_load_l
host_action_prompt_show(); host_action_prompt_show();
#endif #endif
#if ENABLED(EXTENSIBLE_UI) #if ENABLED(EXTENSIBLE_UI)
ExtUI::onUserConfirmRequired(PSTR("Load Filament")); ExtUI::onUserConfirmRequired_P(PSTR("Load Filament"));
#endif #endif
while (wait_for_user) { while (wait_for_user) {
#if HAS_BUZZER #if HAS_BUZZER
@ -243,7 +250,7 @@ bool load_filament(const float &slow_load_length/*=0*/, const float &fast_load_l
host_prompt_do(PROMPT_USER_CONTINUE, PSTR("Filament Purge Running..."), PSTR("Continue")); host_prompt_do(PROMPT_USER_CONTINUE, PSTR("Filament Purge Running..."), PSTR("Continue"));
#endif #endif
#if ENABLED(EXTENSIBLE_UI) #if ENABLED(EXTENSIBLE_UI)
ExtUI::onUserConfirmRequired(PSTR("Filament Purge Running...")); ExtUI::onUserConfirmRequired_P(PSTR("Filament Purge Running..."));
#endif #endif
for (float purge_count = purge_length; purge_count > 0 && wait_for_user; --purge_count) for (float purge_count = purge_length; purge_count > 0 && wait_for_user; --purge_count)
do_pause_e_move(1, ADVANCED_PAUSE_PURGE_FEEDRATE); do_pause_e_move(1, ADVANCED_PAUSE_PURGE_FEEDRATE);
@ -481,14 +488,6 @@ bool pause_print(const float &retract, const xyz_pos_t &park_point, const float
* Used by M125 and M600 * Used by M125 and M600
*/ */
#if (HAS_LCD_MENU || ENABLED(EXTENSIBLE_UI)) && ENABLED(EMERGENCY_PARSER)
#define _PMSG(L) L
#elif ENABLED(EMERGENCY_PARSER)
#define _PMSG(L) L##_M108
#else
#define _PMSG(L) L##_LCD
#endif
void show_continue_prompt(const bool is_reload) { void show_continue_prompt(const bool is_reload) {
#if HAS_LCD_MENU #if HAS_LCD_MENU
lcd_pause_show_message(is_reload ? PAUSE_MESSAGE_INSERT : PAUSE_MESSAGE_WAITING); lcd_pause_show_message(is_reload ? PAUSE_MESSAGE_INSERT : PAUSE_MESSAGE_WAITING);
@ -527,7 +526,7 @@ void wait_for_confirmation(const bool is_reload/*=false*/, const int8_t max_beep
host_prompt_do(PROMPT_USER_CONTINUE, PSTR("Nozzle Parked"), PSTR("Continue")); host_prompt_do(PROMPT_USER_CONTINUE, PSTR("Nozzle Parked"), PSTR("Continue"));
#endif #endif
#if ENABLED(EXTENSIBLE_UI) #if ENABLED(EXTENSIBLE_UI)
ExtUI::onUserConfirmRequired(PSTR("Nozzle Parked")); ExtUI::onUserConfirmRequired_P(PSTR("Nozzle Parked"));
#endif #endif
while (wait_for_user) { while (wait_for_user) {
#if HAS_BUZZER #if HAS_BUZZER
@ -551,7 +550,7 @@ void wait_for_confirmation(const bool is_reload/*=false*/, const int8_t max_beep
#endif #endif
#if ENABLED(EXTENSIBLE_UI) #if ENABLED(EXTENSIBLE_UI)
ExtUI::onUserConfirmRequired(PSTR("HeaterTimeout")); ExtUI::onUserConfirmRequired_P(PSTR("HeaterTimeout"));
#endif #endif
// Wait for LCD click or M108 // Wait for LCD click or M108
@ -581,7 +580,7 @@ void wait_for_confirmation(const bool is_reload/*=false*/, const int8_t max_beep
host_prompt_do(PROMPT_USER_CONTINUE, PSTR("Reheat Done"), PSTR("Continue")); host_prompt_do(PROMPT_USER_CONTINUE, PSTR("Reheat Done"), PSTR("Continue"));
#endif #endif
#if ENABLED(EXTENSIBLE_UI) #if ENABLED(EXTENSIBLE_UI)
ExtUI::onUserConfirmRequired("Reheat finished."); ExtUI::onUserConfirmRequired_P(PSTR("Reheat finished."));
#endif #endif
wait_for_user = true; wait_for_user = true;
nozzle_timed_out = false; nozzle_timed_out = false;

View file

@ -228,7 +228,7 @@ void PrintJobRecovery::save(const bool force/*=false*/, const bool save_queue/*=
#if PIN_EXISTS(POWER_LOSS) #if PIN_EXISTS(POWER_LOSS)
void PrintJobRecovery::_outage() { void PrintJobRecovery::_outage() {
save(true); save(true);
kill(PSTR(MSG_OUTAGE_RECOVERY)); kill(GET_TEXT(MSG_OUTAGE_RECOVERY));
} }
#endif #endif

View file

@ -433,7 +433,7 @@ bool MMU2::rx_ok() {
void MMU2::check_version() { void MMU2::check_version() {
if (buildnr < MMU_REQUIRED_FW_BUILDNR) { if (buildnr < MMU_REQUIRED_FW_BUILDNR) {
SERIAL_ERROR_MSG("Invalid MMU2 firmware. Version >= " STRINGIFY(MMU_REQUIRED_FW_BUILDNR) " required."); SERIAL_ERROR_MSG("Invalid MMU2 firmware. Version >= " STRINGIFY(MMU_REQUIRED_FW_BUILDNR) " required.");
kill(MSG_MMU2_WRONG_FIRMWARE); kill(GET_TEXT(MSG_MMU2_WRONG_FIRMWARE));
} }
} }
@ -449,7 +449,7 @@ void MMU2::tool_change(uint8_t index) {
if (index != extruder) { if (index != extruder) {
disable_E0(); disable_E0();
ui.status_printf_P(0, PSTR(MSG_MMU2_LOADING_FILAMENT), int(index + 1)); ui.status_printf_P(0, GET_TEXT(MSG_MMU2_LOADING_FILAMENT), int(index + 1));
command(MMU_CMD_T0 + index); command(MMU_CMD_T0 + index);
@ -712,7 +712,7 @@ void MMU2::filament_runout() {
host_prompt_do(PROMPT_USER_CONTINUE, PSTR("MMU2 Eject Recover"), PSTR("Continue")); host_prompt_do(PROMPT_USER_CONTINUE, PSTR("MMU2 Eject Recover"), PSTR("Continue"));
#endif #endif
#if ENABLED(EXTENSIBLE_UI) #if ENABLED(EXTENSIBLE_UI)
ExtUI::onUserConfirmRequired(PSTR("MMU2 Eject Recover")); ExtUI::onUserConfirmRequired_P(PSTR("MMU2 Eject Recover"));
#endif #endif
while (wait_for_user) idle(); while (wait_for_user) idle();
BUZZ(200, 404); BUZZ(200, 404);

View file

@ -1118,7 +1118,7 @@ void test_tmc_connection(const bool test_x, const bool test_y, const bool test_z
#endif #endif
} }
if (axis_connection) ui.set_status_P(PSTR(MSG_ERROR_TMC)); if (axis_connection) ui.set_status_P(GET_TEXT(MSG_ERROR_TMC));
} }
#endif // HAS_TRINAMIC #endif // HAS_TRINAMIC

View file

@ -168,7 +168,7 @@ int8_t g26_prime_flag;
*/ */
bool user_canceled() { bool user_canceled() {
if (!ui.button_pressed()) return false; // Return if the button isn't pressed if (!ui.button_pressed()) return false; // Return if the button isn't pressed
ui.set_status_P(PSTR(MSG_G26_CANCELED), 99); ui.set_status_P(GET_TEXT(MSG_G26_CANCELED), 99);
#if HAS_LCD_MENU #if HAS_LCD_MENU
ui.quick_feedback(); ui.quick_feedback();
#endif #endif
@ -370,7 +370,7 @@ inline bool turn_on_heaters() {
if (g26_bed_temp > 25) { if (g26_bed_temp > 25) {
#if HAS_SPI_LCD #if HAS_SPI_LCD
ui.set_status_P(PSTR(MSG_G26_HEATING_BED), 99); ui.set_status_P(GET_TEXT(MSG_G26_HEATING_BED), 99);
ui.quick_feedback(); ui.quick_feedback();
#if HAS_LCD_MENU #if HAS_LCD_MENU
ui.capture(); ui.capture();
@ -391,7 +391,7 @@ inline bool turn_on_heaters() {
// Start heating the active nozzle // Start heating the active nozzle
#if HAS_SPI_LCD #if HAS_SPI_LCD
ui.set_status_P(PSTR(MSG_G26_HEATING_NOZZLE), 99); ui.set_status_P(GET_TEXT(MSG_G26_HEATING_NOZZLE), 99);
ui.quick_feedback(); ui.quick_feedback();
#endif #endif
thermalManager.setTargetHotend(g26_hotend_temp, active_extruder); thermalManager.setTargetHotend(g26_hotend_temp, active_extruder);
@ -426,7 +426,7 @@ inline bool prime_nozzle() {
if (g26_prime_flag == -1) { // The user wants to control how much filament gets purged if (g26_prime_flag == -1) { // The user wants to control how much filament gets purged
ui.capture(); ui.capture();
ui.set_status_P(PSTR(MSG_G26_MANUAL_PRIME), 99); ui.set_status_P(GET_TEXT(MSG_G26_MANUAL_PRIME), 99);
ui.chirp(); ui.chirp();
destination = current_position; destination = current_position;
@ -450,7 +450,7 @@ inline bool prime_nozzle() {
ui.wait_for_release(); ui.wait_for_release();
ui.set_status_P(PSTR(MSG_G26_PRIME_DONE), 99); ui.set_status_P(GET_TEXT(MSG_G26_PRIME_DONE), 99);
ui.quick_feedback(); ui.quick_feedback();
ui.release(); ui.release();
} }
@ -458,7 +458,7 @@ inline bool prime_nozzle() {
#endif #endif
{ {
#if HAS_SPI_LCD #if HAS_SPI_LCD
ui.set_status_P(PSTR(MSG_G26_FIXED_LENGTH), 99); ui.set_status_P(GET_TEXT(MSG_G26_FIXED_LENGTH), 99);
ui.quick_feedback(); ui.quick_feedback();
#endif #endif
destination = current_position; destination = current_position;
@ -827,7 +827,7 @@ void GcodeSuite::G26() {
} while (--g26_repeats && location.valid()); } while (--g26_repeats && location.valid());
LEAVE: LEAVE:
ui.set_status_P(PSTR(MSG_G26_LEAVING), -1); ui.set_status_P(GET_TEXT(MSG_G26_LEAVING), -1);
retract_filament(destination); retract_filament(destination);
destination.z = Z_CLEARANCE_BETWEEN_PROBES; destination.z = Z_CLEARANCE_BETWEEN_PROBES;

View file

@ -722,7 +722,7 @@ G29_TYPE GcodeSuite::G29() {
if (verbose_level) SERIAL_ECHOLNPAIR("Probing mesh point ", int(pt_index), "/", int(GRID_MAX_POINTS), "."); if (verbose_level) SERIAL_ECHOLNPAIR("Probing mesh point ", int(pt_index), "/", int(GRID_MAX_POINTS), ".");
#if HAS_DISPLAY #if HAS_DISPLAY
ui.status_printf_P(0, PSTR(S_FMT " %i/%i"), PSTR(MSG_PROBING_MESH), int(pt_index), int(GRID_MAX_POINTS)); ui.status_printf_P(0, PSTR(S_FMT " %i/%i"), GET_TEXT(MSG_PROBING_MESH), int(pt_index), int(GRID_MAX_POINTS));
#endif #endif
measured_z = faux ? 0.001 * random(-100, 101) : probe_at_point(probePos, raise_after, verbose_level); measured_z = faux ? 0.001 * random(-100, 101) : probe_at_point(probePos, raise_after, verbose_level);
@ -764,7 +764,7 @@ G29_TYPE GcodeSuite::G29() {
for (uint8_t i = 0; i < 3; ++i) { for (uint8_t i = 0; i < 3; ++i) {
if (verbose_level) SERIAL_ECHOLNPAIR("Probing point ", int(i), "/3."); if (verbose_level) SERIAL_ECHOLNPAIR("Probing point ", int(i), "/3.");
#if HAS_DISPLAY #if HAS_DISPLAY
ui.status_printf_P(0, PSTR(MSG_PROBING_MESH " %i/3"), int(i)); ui.status_printf_P(0, PSTR(S_FMT" %i/3"), GET_TEXT(MSG_PROBING_MESH)), int(i);
#endif #endif
// Retain the last probe position // Retain the last probe position

View file

@ -118,7 +118,7 @@
// Disallow Z homing if X or Y are unknown // Disallow Z homing if X or Y are unknown
if (!TEST(axis_known_position, X_AXIS) || !TEST(axis_known_position, Y_AXIS)) { if (!TEST(axis_known_position, X_AXIS) || !TEST(axis_known_position, Y_AXIS)) {
LCD_MESSAGEPGM(MSG_ERR_Z_HOMING); LCD_MESSAGEPGM(MSG_ERR_Z_HOMING);
SERIAL_ECHO_MSG(MSG_ERR_Z_HOMING); SERIAL_ECHO_MSG(MSG_ERR_Z_HOMING_SER);
return; return;
} }
@ -154,7 +154,7 @@
} }
else { else {
LCD_MESSAGEPGM(MSG_ZPROBE_OUT); LCD_MESSAGEPGM(MSG_ZPROBE_OUT);
SERIAL_ECHO_MSG(MSG_ZPROBE_OUT); SERIAL_ECHO_MSG(MSG_ZPROBE_OUT_SER);
} }
if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("<<< home_z_safely"); if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("<<< home_z_safely");

View file

@ -126,7 +126,7 @@ void GcodeSuite::M48() {
for (uint8_t n = 0; n < n_samples; n++) { for (uint8_t n = 0; n < n_samples; n++) {
#if HAS_SPI_LCD #if HAS_SPI_LCD
// Display M48 progress in the status bar // Display M48 progress in the status bar
ui.status_printf_P(0, PSTR(MSG_M48_POINT ": %d/%d"), int(n + 1), int(n_samples)); ui.status_printf_P(0, PSTR(S_FMT ": %d/%d"), GET_TEXT(MSG_M48_POINT), int(n + 1), int(n_samples));
#endif #endif
if (n_legs) { if (n_legs) {
const int dir = (random(0, 10) > 5.0) ? -1 : 1; // clockwise or counter clockwise const int dir = (random(0, 10) > 5.0) ? -1 : 1; // clockwise or counter clockwise
@ -252,7 +252,7 @@ void GcodeSuite::M48() {
#if HAS_SPI_LCD #if HAS_SPI_LCD
// Display M48 results in the status bar // Display M48 results in the status bar
char sigma_str[8]; char sigma_str[8];
ui.status_printf_P(0, PSTR(MSG_M48_DEVIATION ": %s"), dtostrf(sigma, 2, 6, sigma_str)); ui.status_printf_P(0, PSTR(S_FMT ": %s"), GET_TEXT(MSG_M48_DEVIATION), dtostrf(sigma, 2, 6, sigma_str));
#endif #endif
} }

View file

@ -93,13 +93,13 @@ void GcodeSuite::M852() {
if (!ijk) { if (!ijk) {
SERIAL_ECHO_START(); SERIAL_ECHO_START();
SERIAL_ECHOLNPAIR_F(MSG_SKEW_FACTOR " XY: ", planner.skew_factor.xy, 6); serialprintPGM(GET_TEXT(MSG_SKEW_FACTOR));
SERIAL_ECHOPAIR_F(" XY: ", planner.skew_factor.xy, 6);
#if ENABLED(SKEW_CORRECTION_FOR_Z) #if ENABLED(SKEW_CORRECTION_FOR_Z)
SERIAL_ECHOPAIR(" XZ: ", planner.skew_factor.xz); SERIAL_ECHOPAIR_F(" XZ: ", planner.skew_factor.xz, 6);
SERIAL_ECHOLNPAIR(" YZ: ", planner.skew_factor.yz); SERIAL_ECHOPAIR_F(" YZ: ", planner.skew_factor.yz, 6);
#else
SERIAL_EOL();
#endif #endif
SERIAL_EOL();
} }
} }

View file

@ -334,7 +334,7 @@ void GcodeSuite::M43() {
host_prompt_do(PROMPT_USER_CONTINUE, PSTR("M43 Wait Called"), PSTR("Continue")); host_prompt_do(PROMPT_USER_CONTINUE, PSTR("M43 Wait Called"), PSTR("Continue"));
#endif #endif
#if ENABLED(EXTENSIBLE_UI) #if ENABLED(EXTENSIBLE_UI)
ExtUI::onUserConfirmRequired(PSTR("M43 Wait Called")); ExtUI::onUserConfirmRequired_P(PSTR("M43 Wait Called"));
#endif #endif
#endif #endif

View file

@ -41,7 +41,7 @@ void GcodeSuite::M108() {
* M112: Full Shutdown * M112: Full Shutdown
*/ */
void GcodeSuite::M112() { void GcodeSuite::M112() {
kill(PSTR("M112 Shutdown"), true); kill(PSTR("M112 Shutdown"), nullptr, true);
} }
/** /**

View file

@ -110,6 +110,6 @@ void GcodeSuite::M81() {
#endif #endif
#if HAS_LCD_MENU #if HAS_LCD_MENU
LCD_MESSAGEPGM(MACHINE_NAME " " MSG_OFF "."); LCD_MESSAGEPGM_P(PSTR(MACHINE_NAME " " MSG_OFF "."));
#endif #endif
} }

View file

@ -70,7 +70,7 @@ void GcodeSuite::M428() {
diff[i] = -current_position[i]; diff[i] = -current_position[i];
if (!WITHIN(diff[i], -20, 20)) { if (!WITHIN(diff[i], -20, 20)) {
SERIAL_ERROR_MSG(MSG_ERR_M428_TOO_FAR); SERIAL_ERROR_MSG(MSG_ERR_M428_TOO_FAR);
LCD_ALERTMESSAGEPGM("Err: Too far!"); LCD_ALERTMESSAGEPGM_P(PSTR("Err: Too far!"));
BUZZ(200, 40); BUZZ(200, 40);
return; return;
} }

View file

@ -33,7 +33,7 @@
void GcodeSuite::M16() { void GcodeSuite::M16() {
if (strcmp_P(parser.string_arg, PSTR(MACHINE_NAME))) if (strcmp_P(parser.string_arg, PSTR(MACHINE_NAME)))
kill(PSTR(MSG_EXPECTED_PRINTER)); kill(GET_TEXT(MSG_EXPECTED_PRINTER));
} }

View file

@ -80,7 +80,10 @@ void GcodeSuite::M0_M1() {
#elif ENABLED(EXTENSIBLE_UI) #elif ENABLED(EXTENSIBLE_UI)
ExtUI::onUserConfirmRequired(has_message ? args : MSG_USERWAIT); // SRAM string if (has_message)
ExtUI::onUserConfirmRequired(args); // Can this take an SRAM string??
else
ExtUI::onUserConfirmRequired_P(GET_TEXT(MSG_USERWAIT));
#else #else
@ -98,7 +101,7 @@ void GcodeSuite::M0_M1() {
host_prompt_do(PROMPT_USER_CONTINUE, PSTR("M0/1 Break Called"), PSTR("Continue")); host_prompt_do(PROMPT_USER_CONTINUE, PSTR("M0/1 Break Called"), PSTR("Continue"));
#endif #endif
#if ENABLED(EXTENSIBLE_UI) #if ENABLED(EXTENSIBLE_UI)
ExtUI::onUserConfirmRequired(PSTR("M0/1 Break Called")); ExtUI::onUserConfirmRequired_P(PSTR("M0/1 Break Called"));
#endif #endif
if (ms > 0) { if (ms > 0) {

View file

@ -64,7 +64,7 @@ void GcodeSuite::M190() {
} }
else return; else return;
ui.set_status_P(thermalManager.isHeatingBed() ? PSTR(MSG_BED_HEATING) : PSTR(MSG_BED_COOLING)); ui.set_status_P(thermalManager.isHeatingBed() ? GET_TEXT(MSG_BED_HEATING) : GET_TEXT(MSG_BED_COOLING));
thermalManager.wait_for_bed(no_wait_for_cooling); thermalManager.wait_for_bed(no_wait_for_cooling);
} }

View file

@ -68,7 +68,7 @@ void GcodeSuite::M191() {
} }
else return; else return;
lcd_setstatusPGM(thermalManager.isHeatingChamber() ? PSTR(MSG_CHAMBER_HEATING) : PSTR(MSG_CHAMBER_COOLING)); lcd_setstatusPGM(thermalManager.isHeatingChamber() ? GET_TEXT(MSG_CHAMBER_HEATING) : GET_TEXT(MSG_CHAMBER_COOLING));
thermalManager.wait_for_chamber(no_wait_for_cooling); thermalManager.wait_for_chamber(no_wait_for_cooling);
} }

View file

@ -1072,14 +1072,9 @@
#define HAS_AUTO_CHAMBER_FAN (HAS_TEMP_CHAMBER && PIN_EXISTS(CHAMBER_AUTO_FAN)) #define HAS_AUTO_CHAMBER_FAN (HAS_TEMP_CHAMBER && PIN_EXISTS(CHAMBER_AUTO_FAN))
#define HAS_AUTO_FAN (HAS_AUTO_FAN_0 || HAS_AUTO_FAN_1 || HAS_AUTO_FAN_2 || HAS_AUTO_FAN_3 || HAS_AUTO_FAN_4 || HAS_AUTO_FAN_5 || HAS_AUTO_CHAMBER_FAN) #define HAS_AUTO_FAN (HAS_AUTO_FAN_0 || HAS_AUTO_FAN_1 || HAS_AUTO_FAN_2 || HAS_AUTO_FAN_3 || HAS_AUTO_FAN_4 || HAS_AUTO_FAN_5 || HAS_AUTO_CHAMBER_FAN)
#define _FANOVERLAP(A,B) (A##_AUTO_FAN_PIN == E##B##_AUTO_FAN_PIN)
#if HAS_AUTO_FAN #if HAS_AUTO_FAN
#define AUTO_CHAMBER_IS_0 (CHAMBER_AUTO_FAN_PIN == E0_AUTO_FAN_PIN) #define AUTO_CHAMBER_IS_E (_FANOVERLAP(CHAMBER,0) || _FANOVERLAP(CHAMBER,1) || _FANOVERLAP(CHAMBER,2) || _FANOVERLAP(CHAMBER,3) || _FANOVERLAP(CHAMBER,4) || _FANOVERLAP(CHAMBER,5))
#define AUTO_CHAMBER_IS_1 (CHAMBER_AUTO_FAN_PIN == E1_AUTO_FAN_PIN)
#define AUTO_CHAMBER_IS_2 (CHAMBER_AUTO_FAN_PIN == E2_AUTO_FAN_PIN)
#define AUTO_CHAMBER_IS_3 (CHAMBER_AUTO_FAN_PIN == E3_AUTO_FAN_PIN)
#define AUTO_CHAMBER_IS_4 (CHAMBER_AUTO_FAN_PIN == E4_AUTO_FAN_PIN)
#define AUTO_CHAMBER_IS_5 (CHAMBER_AUTO_FAN_PIN == E5_AUTO_FAN_PIN)
#define AUTO_CHAMBER_IS_E (AUTO_CHAMBER_IS_0 || AUTO_CHAMBER_IS_1 || AUTO_CHAMBER_IS_2 || AUTO_CHAMBER_IS_3 || AUTO_CHAMBER_IS_4 || AUTO_CHAMBER_IS_5)
#endif #endif
#if !HAS_AUTO_CHAMBER_FAN || AUTO_CHAMBER_IS_E #if !HAS_AUTO_CHAMBER_FAN || AUTO_CHAMBER_IS_E

View file

@ -484,9 +484,9 @@ void MarlinUI::draw_kill_screen() {
lcd_put_u8str(0, 0, status_message); lcd_put_u8str(0, 0, status_message);
lcd_uint_t y = 2; lcd_uint_t y = 2;
#if LCD_HEIGHT >= 4 #if LCD_HEIGHT >= 4
lcd_put_u8str_P(0, y++, PSTR(MSG_HALTED)); lcd_put_u8str_P(0, y++, GET_TEXT(MSG_HALTED));
#endif #endif
lcd_put_u8str_P(0, y, PSTR(MSG_PLEASE_RESET)); lcd_put_u8str_P(0, y, GET_TEXT(MSG_PLEASE_RESET));
} }
// //
@ -977,7 +977,7 @@ void MarlinUI::draw_status_screen() {
#endif // ADVANCED_PAUSE_FEATURE #endif // ADVANCED_PAUSE_FEATURE
void draw_menu_item_static(const uint8_t row, PGM_P const pstr, const uint8_t style/*=SS_CENTER*/, const char * const valstr/*=nullptr*/) { void draw_menu_item_static(const uint8_t row, PGM_P const pstr, const uint8_t style/*=SS_DEFAULT*/, const char * const valstr/*=nullptr*/) {
int8_t n = LCD_WIDTH; int8_t n = LCD_WIDTH;
lcd_moveto(0, row); lcd_moveto(0, row);
if ((style & SS_CENTER) && !valstr) { if ((style & SS_CENTER) && !valstr) {

View file

@ -300,8 +300,8 @@ void MarlinUI::draw_kill_screen() {
do { do {
set_font(FONT_MENU); set_font(FONT_MENU);
lcd_put_u8str(0, h4 * 1, status_message); lcd_put_u8str(0, h4 * 1, status_message);
lcd_put_u8str_P(0, h4 * 2, PSTR(MSG_HALTED)); lcd_put_u8str_P(0, h4 * 2, GET_TEXT(MSG_HALTED));
lcd_put_u8str_P(0, h4 * 3, PSTR(MSG_PLEASE_RESET)); lcd_put_u8str_P(0, h4 * 3, GET_TEXT(MSG_PLEASE_RESET));
} while (u8g.nextPage()); } while (u8g.nextPage());
} }
@ -363,9 +363,9 @@ void MarlinUI::clear_lcd() { } // Automatically cleared by Picture Loop
} }
// Draw a static line of text in the same idiom as a menu item // Draw a static line of text in the same idiom as a menu item
void draw_menu_item_static(const uint8_t row, PGM_P const pstr, const uint8_t style/*=SS_CENTER*/, const char * const valstr/*=nullptr*/) { void draw_menu_item_static(const uint8_t row, PGM_P const pstr, const uint8_t style/*=SS_DEFAULT*/, const char * const valstr/*=nullptr*/) {
if (mark_as_selected(row, (style & SS_INVERT))) { if (mark_as_selected(row, style & SS_INVERT)) {
u8g_uint_t n = LCD_PIXEL_WIDTH; // pixel width of string allowed u8g_uint_t n = LCD_PIXEL_WIDTH; // pixel width of string allowed

View file

@ -289,11 +289,11 @@ void DGUSScreenVariableHandler::DGUSLCD_SendStringToDisplayPGM(DGUS_VP_Variable
// Don't let the user in the dark why there is no reaction. // Don't let the user in the dark why there is no reaction.
if (!ExtUI::isMediaInserted()) { if (!ExtUI::isMediaInserted()) {
setstatusmessagePGM(PSTR(MSG_NO_MEDIA)); setstatusmessagePGM(GET_TEXT(MSG_NO_MEDIA));
return; return;
} }
if (card.flag.abort_sd_printing) { if (card.flag.abort_sd_printing) {
setstatusmessagePGM(PSTR(MSG_MEDIA_ABORTING)); setstatusmessagePGM(GET_TEXT(MSG_MEDIA_ABORTING));
return; return;
} }
} }
@ -472,13 +472,13 @@ void DGUSScreenVariableHandler::HandleTemperatureChanged(DGUS_VP_Variable &var,
switch (var.VP) { switch (var.VP) {
default: return; default: return;
#if HOTENDS >= 1 #if HOTENDS >= 1
case VP_T_E1_Set: case VP_T_E0_Set:
thermalManager.setTargetHotend(newvalue, 0); thermalManager.setTargetHotend(newvalue, 0);
acceptedvalue = thermalManager.temp_hotend[0].target; acceptedvalue = thermalManager.temp_hotend[0].target;
break; break;
#endif #endif
#if HOTENDS >= 2 #if HOTENDS >= 2
case VP_T_E2_Set: case VP_T_E1_Set:
thermalManager.setTargetHotend(newvalue, 1); thermalManager.setTargetHotend(newvalue, 1);
acceptedvalue = thermalManager.temp_hotend[1].target; acceptedvalue = thermalManager.temp_hotend[1].target;
break; break;
@ -503,10 +503,10 @@ void DGUSScreenVariableHandler::HandleFlowRateChanged(DGUS_VP_Variable &var, voi
switch (var.VP) { switch (var.VP) {
default: return; default: return;
#if (HOTENDS >= 1) #if (HOTENDS >= 1)
case VP_Flowrate_E1: target_extruder = 0; break; case VP_Flowrate_E0: target_extruder = 0; break;
#endif #endif
#if (HOTENDS >= 2) #if (HOTENDS >= 2)
case VP_Flowrate_E2: target_extruder = 1; break; case VP_Flowrate_E1: target_extruder = 1; break;
#endif #endif
} }
@ -526,11 +526,11 @@ void DGUSScreenVariableHandler::HandleManualExtrude(DGUS_VP_Variable &var, void
ExtUI::extruder_t target_extruder; ExtUI::extruder_t target_extruder;
switch (var.VP) { switch (var.VP) {
#if HOTENDS >=1 #if HOTENDS >= 1
case VP_MOVE_E1: target_extruder = ExtUI::extruder_t::E0; break; case VP_MOVE_E0: target_extruder = ExtUI::extruder_t::E0; break;
#endif #endif
#if HOTENDS >=2 #if HOTENDS >= 2
case VP_MOVE_E2: target_extruder = ExtUI::extruder_t::E1; break case VP_MOVE_E1: target_extruder = ExtUI::extruder_t::E1; break
#endif #endif
default: return; default: return;
} }

View file

@ -46,10 +46,10 @@ const uint16_t VPList_Main[] PROGMEM = {
const uint16_t VPList_Temp[] PROGMEM = { const uint16_t VPList_Temp[] PROGMEM = {
#if HOTENDS >= 1 #if HOTENDS >= 1
VP_T_E1_Is, VP_T_E1_Set, VP_T_E0_Is, VP_T_E0_Set,
#endif #endif
#if HOTENDS >= 2 #if HOTENDS >= 2
VP_T_E2_I, VP_T_E2_S, VP_T_E1_I, VP_T_E1_S,
#endif #endif
#if HAS_HEATED_BED #if HAS_HEATED_BED
VP_T_Bed_Is, VP_T_Bed_Set, VP_T_Bed_Is, VP_T_Bed_Set,
@ -60,10 +60,10 @@ const uint16_t VPList_Temp[] PROGMEM = {
const uint16_t VPList_Status[] PROGMEM = { const uint16_t VPList_Status[] PROGMEM = {
/* VP_M117, for completeness, but it cannot be auto-uploaded */ /* VP_M117, for completeness, but it cannot be auto-uploaded */
#if HOTENDS >= 1 #if HOTENDS >= 1
VP_T_E1_Is, VP_T_E1_Set, VP_T_E0_Is, VP_T_E0_Set,
#endif #endif
#if HOTENDS >= 2 #if HOTENDS >= 2
VP_T_E2_I, VP_T_E2_S, VP_T_E1_I, VP_T_E1_S,
#endif #endif
#if HAS_HEATED_BED #if HAS_HEATED_BED
VP_T_Bed_Is, VP_T_Bed_Set, VP_T_Bed_Is, VP_T_Bed_Set,
@ -81,10 +81,10 @@ const uint16_t VPList_Status[] PROGMEM = {
const uint16_t VPList_Status2[] PROGMEM = { const uint16_t VPList_Status2[] PROGMEM = {
/* VP_M117, for completeness, but it cannot be auto-uploaded */ /* VP_M117, for completeness, but it cannot be auto-uploaded */
#if HOTENDS >= 1 #if HOTENDS >= 1
VP_Flowrate_E1, VP_Flowrate_E0,
#endif #endif
#if HOTENDS >= 2 #if HOTENDS >= 2
VP_Flowrate_E2, VP_Flowrate_E1,
#endif #endif
VP_PrintProgress_Percentage, VP_PrintProgress_Percentage,
VP_PrintTime, VP_PrintTime,
@ -107,7 +107,7 @@ const uint16_t VPList_FanAndFeedrate[] PROGMEM = {
}; };
const uint16_t VPList_SD_FlowRates[] PROGMEM = { const uint16_t VPList_SD_FlowRates[] PROGMEM = {
VP_Flowrate_E1, VP_Flowrate_E2, VP_Flowrate_E0, VP_Flowrate_E1,
0x0000 0x0000
}; };
@ -166,17 +166,17 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
// Temperature Data // Temperature Data
#if HOTENDS >= 1 #if HOTENDS >= 1
VPHELPER(VP_T_E1_Is, &thermalManager.temp_hotend[0].celsius, nullptr, DGUSScreenVariableHandler::DGUSLCD_SendFloatAsLongValueToDisplay<0>), VPHELPER(VP_T_E0_Is, &thermalManager.temp_hotend[0].celsius, nullptr, DGUSScreenVariableHandler::DGUSLCD_SendFloatAsLongValueToDisplay<0>),
VPHELPER(VP_T_E1_Set, &thermalManager.temp_hotend[0].target, DGUSScreenVariableHandler::HandleTemperatureChanged, &DGUSScreenVariableHandler::DGUSLCD_SendWordValueToDisplay), VPHELPER(VP_T_E0_Set, &thermalManager.temp_hotend[0].target, DGUSScreenVariableHandler::HandleTemperatureChanged, &DGUSScreenVariableHandler::DGUSLCD_SendWordValueToDisplay),
VPHELPER(VP_Flowrate_E1, nullptr, DGUSScreenVariableHandler::HandleFlowRateChanged, &DGUSScreenVariableHandler::DGUSLCD_SendWordValueToDisplay), VPHELPER(VP_Flowrate_E0, nullptr, DGUSScreenVariableHandler::HandleFlowRateChanged, &DGUSScreenVariableHandler::DGUSLCD_SendWordValueToDisplay),
VPHELPER(VP_EPos, &destination.e, nullptr, DGUSScreenVariableHandler::DGUSLCD_SendFloatAsLongValueToDisplay<2>), VPHELPER(VP_EPos, &destination.e, nullptr, DGUSScreenVariableHandler::DGUSLCD_SendFloatAsLongValueToDisplay<2>),
VPHELPER(VP_MOVE_E1, nullptr, &DGUSScreenVariableHandler::HandleManualExtrude, nullptr), VPHELPER(VP_MOVE_E0, nullptr, &DGUSScreenVariableHandler::HandleManualExtrude, nullptr),
#endif #endif
#if HOTENDS >= 2 #if HOTENDS >= 2
VPHELPER(VP_T_E2_I, &thermalManager.temp_hotend[1].celsius, nullptr, DGUSLCD_SendFloatAsLongValueToDisplay<0>), VPHELPER(VP_T_E1_I, &thermalManager.temp_hotend[1].celsius, nullptr, DGUSLCD_SendFloatAsLongValueToDisplay<0>),
VPHELPER(VP_T_E2_S, &thermalManager.temp_hotend[1].target, DGUSScreenVariableHandler::HandleTemperatureChanged, &DGUSScreenVariableHandler::DGUSLCD_SendWordValueToDisplay), VPHELPER(VP_T_E1_S, &thermalManager.temp_hotend[1].target, DGUSScreenVariableHandler::HandleTemperatureChanged, &DGUSScreenVariableHandler::DGUSLCD_SendWordValueToDisplay),
VPHELPER(VP_Flowrate_E2, nullptr, DGUSScreenVariableHandler::HandleFlowRateChanged, &DGUSScreenVariableHandler::DGUSLCD_SendWordValueToDisplay), VPHELPER(VP_Flowrate_E1, nullptr, DGUSScreenVariableHandler::HandleFlowRateChanged, &DGUSScreenVariableHandler::DGUSLCD_SendWordValueToDisplay),
VPHELPER(VP_MOVE_E2, nullptr, &DGUSScreenVariableHandler::HandleManualExtrude, nullptr), VPHELPER(VP_MOVE_E1, nullptr, &DGUSScreenVariableHandler::HandleManualExtrude, nullptr),
#endif #endif
#if HOTENDS >= 3 #if HOTENDS >= 3
#error More than 2 Hotends currently not implemented on the Display UI design. #error More than 2 Hotends currently not implemented on the Display UI design.

View file

@ -109,12 +109,12 @@ constexpr uint16_t VP_SD_AbortPrintConfirmed = 0x2028; // Abort print confirmati
constexpr uint16_t VP_MOVE_X = 0x2100; constexpr uint16_t VP_MOVE_X = 0x2100;
constexpr uint16_t VP_MOVE_Y = 0x2102; constexpr uint16_t VP_MOVE_Y = 0x2102;
constexpr uint16_t VP_MOVE_Z = 0x2104; constexpr uint16_t VP_MOVE_Z = 0x2104;
constexpr uint16_t VP_MOVE_E1 = 0x2110; constexpr uint16_t VP_MOVE_E0 = 0x2110;
constexpr uint16_t VP_MOVE_E2 = 0x2112; constexpr uint16_t VP_MOVE_E1 = 0x2112;
//constexpr uint16_t VP_MOVE_E3 = 0x2114; //constexpr uint16_t VP_MOVE_E2 = 0x2114;
//constexpr uint16_t VP_MOVE_E4 = 0x2116; //constexpr uint16_t VP_MOVE_E3 = 0x2116;
//constexpr uint16_t VP_MOVE_E5 = 0x2118; //constexpr uint16_t VP_MOVE_E4 = 0x2118;
//constexpr uint16_t VP_MOVE_E6 = 0x211A; //constexpr uint16_t VP_MOVE_E5 = 0x211A;
constexpr uint16_t VP_HOME_ALL = 0x2120; constexpr uint16_t VP_HOME_ALL = 0x2120;
// Firmware version on the boot screen. // Firmware version on the boot screen.
@ -126,34 +126,34 @@ constexpr uint16_t VP_M117 = 0x3020;
constexpr uint8_t VP_M117_LEN = 0x20; constexpr uint8_t VP_M117_LEN = 0x20;
// Temperatures. // Temperatures.
constexpr uint16_t VP_T_E1_Is = 0x3060; // 4 Byte Integer constexpr uint16_t VP_T_E0_Is = 0x3060; // 4 Byte Integer
constexpr uint16_t VP_T_E1_Set = 0x3062; // 2 Byte Integer constexpr uint16_t VP_T_E0_Set = 0x3062; // 2 Byte Integer
constexpr uint16_t VP_T_E2_Is = 0x3064; // 4 Byte Integer constexpr uint16_t VP_T_E1_Is = 0x3064; // 4 Byte Integer
// reserved to support up to 6 Extruders: // reserved to support up to 6 Extruders:
//constexpr uint16_t VP_T_E2_Set = 0x3066; // 2 Byte Integer //constexpr uint16_t VP_T_E1_Set = 0x3066; // 2 Byte Integer
//constexpr uint16_t VP_T_E3_Is = 0x3068; // 4 Byte Integer //constexpr uint16_t VP_T_E2_Is = 0x3068; // 4 Byte Integer
//constexpr uint16_t VP_T_E3_Set = 0x306A; // 2 Byte Integer //constexpr uint16_t VP_T_E2_Set = 0x306A; // 2 Byte Integer
//constexpr uint16_t VP_T_E4_Is = 0x306C; // 4 Byte Integer //constexpr uint16_t VP_T_E3_Is = 0x306C; // 4 Byte Integer
//constexpr uint16_t VP_T_E4_Set = 0x306E; // 2 Byte Integer //constexpr uint16_t VP_T_E3_Set = 0x306E; // 2 Byte Integer
//constexpr uint16_t VP_T_E5_Is = 0x3070; // 4 Byte Integer //constexpr uint16_t VP_T_E4_Is = 0x3070; // 4 Byte Integer
//constexpr uint16_t VP_T_E5_Set = 0x3072; // 2 Byte Integer //constexpr uint16_t VP_T_E4_Set = 0x3072; // 2 Byte Integer
//constexpr uint16_t VP_T_E5_Is = 0x3074; // 4 Byte Integer //constexpr uint16_t VP_T_E4_Is = 0x3074; // 4 Byte Integer
//constexpr uint16_t VP_T_E5_Set = 0x3076; // 2 Byte Integer //constexpr uint16_t VP_T_E4_Set = 0x3076; // 2 Byte Integer
//constexpr uint16_t VP_T_E6_Is = 0x3078; // 4 Byte Integer //constexpr uint16_t VP_T_E5_Is = 0x3078; // 4 Byte Integer
//constexpr uint16_t VP_T_E6_Set = 0x307A; // 2 Byte Integer //constexpr uint16_t VP_T_E5_Set = 0x307A; // 2 Byte Integer
constexpr uint16_t VP_T_Bed_Is = 0x3080; // 4 Byte Integer constexpr uint16_t VP_T_Bed_Is = 0x3080; // 4 Byte Integer
constexpr uint16_t VP_T_Bed_Set = 0x3082; // 2 Byte Integer constexpr uint16_t VP_T_Bed_Set = 0x3082; // 2 Byte Integer
constexpr uint16_t VP_Flowrate_E1 = 0x3090; // 2 Byte Integer constexpr uint16_t VP_Flowrate_E0 = 0x3090; // 2 Byte Integer
constexpr uint16_t VP_Flowrate_E2 = 0x3092; // 2 Byte Integer constexpr uint16_t VP_Flowrate_E1 = 0x3092; // 2 Byte Integer
// reserved for up to 6 Extruders: // reserved for up to 6 Extruders:
//constexpr uint16_t VP_Flowrate_E3 = 0x3094; //constexpr uint16_t VP_Flowrate_E2 = 0x3094;
//constexpr uint16_t VP_Flowrate_E4 = 0x3096; //constexpr uint16_t VP_Flowrate_E3 = 0x3096;
//constexpr uint16_t VP_Flowrate_E5 = 0x3098; //constexpr uint16_t VP_Flowrate_E4 = 0x3098;
//constexpr uint16_t VP_Flowrate_E6 = 0x309A; //constexpr uint16_t VP_Flowrate_E5 = 0x309A;
constexpr uint16_t VP_Fan_Percentage = 0x3100; // 2 Byte Integer (0..100) constexpr uint16_t VP_Fan_Percentage = 0x3100; // 2 Byte Integer (0..100)
constexpr uint16_t VP_Feedrate_Percentage = 0x3102; // 2 Byte Integer (0..100) constexpr uint16_t VP_Feedrate_Percentage = 0x3102; // 2 Byte Integer (0..100)
@ -182,9 +182,9 @@ constexpr uint16_t VP_SD_FileName4 = 0x3280;
// located at 0x5000 and up // located at 0x5000 and up
// Not used yet! // Not used yet!
// This can be used e.g to make controls / data display invisible // This can be used e.g to make controls / data display invisible
constexpr uint16_t SP_T_E1_Is = 0x5000; constexpr uint16_t SP_T_E0_Is = 0x5000;
constexpr uint16_t SP_T_E1_Set = 0x5010; constexpr uint16_t SP_T_E0_Set = 0x5010;
constexpr uint16_t SP_T_E2_Is = 0x5020; constexpr uint16_t SP_T_E1_Is = 0x5020;
constexpr uint16_t SP_T_Bed_Is = 0x5030; constexpr uint16_t SP_T_Bed_Is = 0x5030;
constexpr uint16_t SP_T_Bed_Set = 0x5040; constexpr uint16_t SP_T_Bed_Set = 0x5040;

View file

@ -38,11 +38,6 @@
// __MARLIN_FIRMWARE__ exists when compiled within Marlin. // __MARLIN_FIRMWARE__ exists when compiled within Marlin.
#include "pin_mappings.h" #include "pin_mappings.h"
#else #else
// Messages that are declared in Marlin
#define WELCOME_MSG "Printer Ready"
#define MSG_MEDIA_INSERTED "Media Inserted"
#define MSG_MEDIA_REMOVED "Media Removed"
namespace UI { namespace UI {
static inline uint32_t safe_millis() {return millis();}; static inline uint32_t safe_millis() {return millis();};
static inline void yield() {}; static inline void yield() {};

View file

@ -20,70 +20,6 @@
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
typedef const char Language_Str[];
// Count how many languages are defined.
#if defined(LCD_LANGUAGE_5)
#define NUM_LANGUAGES 5
#elif defined(LCD_LANGUAGE_4)
#define NUM_LANGUAGES 4
#elif defined(LCD_LANGUAGE_3)
#define NUM_LANGUAGES 3
#elif defined(LCD_LANGUAGE_2)
#define NUM_LANGUAGES 2
#else
#define NUM_LANGUAGES 1
#endif
// Set undefined languages equal to the last and
// let the compiler optimize out the duplicates
#ifndef LCD_LANGUAGE_1
#define LCD_LANGUAGE_1 LCD_LANGUAGE
#endif
#ifndef LCD_LANGUAGE_2
#define LCD_LANGUAGE_2 LCD_LANGUAGE_1
#endif
#ifndef LCD_LANGUAGE_3
#define LCD_LANGUAGE_3 LCD_LANGUAGE_2
#endif
#ifndef LCD_LANGUAGE_4
#define LCD_LANGUAGE_4 LCD_LANGUAGE_3
#endif
#ifndef LCD_LANGUAGE_5
#define LCD_LANGUAGE_5 LCD_LANGUAGE_4
#endif
// Indirection required to paste together the namespace name
#define _GET_LANG(LANG) Language_##LANG
#define GET_LANG(LANG) _GET_LANG(LANG)
#if NUM_LANGUAGES > 1
extern uint8_t lang;
// The compiler does a good job of "flattening" out this
// if statement when there are fewer than five languages.
#define GET_TEXT(MSG) ( \
lang == 0 ? GET_LANG(LCD_LANGUAGE_1)::MSG : \
lang == 1 ? GET_LANG(LCD_LANGUAGE_2)::MSG : \
lang == 2 ? GET_LANG(LCD_LANGUAGE_3)::MSG : \
lang == 3 ? GET_LANG(LCD_LANGUAGE_4)::MSG : \
GET_LANG(LCD_LANGUAGE_5)::MSG \
)
#else
#define GET_TEXT(MSG) GET_LANG(LCD_LANGUAGE_1)::MSG
#endif
#define GET_TEXT_F(MSG) reinterpret_cast<const __FlashStringHelper *>(GET_TEXT(MSG))
#define GET_LANGUAGE_NAME(N) GET_LANG(LCD_LANGUAGE_##N)::LANGUAGE
// All the language tables go here
#include "language_en.h" #include "language_en.h"
#include "language_de.h" #include "language_de.h"
#include "language_fr.h" #include "language_fr.h"

View file

@ -24,8 +24,6 @@
namespace Language_de { namespace Language_de {
using namespace Language_en; // Inherit undefined strings from English using namespace Language_en; // Inherit undefined strings from English
PROGMEM Language_Str LANGUAGE = u8"Deutsche";
PROGMEM Language_Str YES = u8"JA"; PROGMEM Language_Str YES = u8"JA";
PROGMEM Language_Str NO = u8"NEIN"; PROGMEM Language_Str NO = u8"NEIN";
PROGMEM Language_Str BACK = u8"Zurück"; PROGMEM Language_Str BACK = u8"Zurück";

View file

@ -24,8 +24,6 @@
#include "language.h" #include "language.h"
namespace Language_en { namespace Language_en {
PROGMEM Language_Str LANGUAGE = u8"English";
PROGMEM Language_Str YES = u8"Yes"; PROGMEM Language_Str YES = u8"Yes";
PROGMEM Language_Str NO = u8"No"; PROGMEM Language_Str NO = u8"No";
PROGMEM Language_Str BACK = u8"Back"; PROGMEM Language_Str BACK = u8"Back";

View file

@ -24,8 +24,6 @@
namespace Language_fr { namespace Language_fr {
using namespace Language_en; // Inherit undefined strings from English using namespace Language_en; // Inherit undefined strings from English
PROGMEM Language_Str LANGUAGE = u8"Français";
PROGMEM Language_Str YES = u8"oui"; PROGMEM Language_Str YES = u8"oui";
PROGMEM Language_Str NO = u8"non"; PROGMEM Language_Str NO = u8"non";
PROGMEM Language_Str BACK = u8"Retour"; PROGMEM Language_Str BACK = u8"Retour";

View file

@ -38,19 +38,21 @@ namespace ExtUI {
EventLoop::loop(); EventLoop::loop();
} }
void onPrinterKilled(PGM_P lcd_msg) { void onPrinterKilled(PGM_P const error, PGM_P const component) {
KillScreen::show(progmem_str(lcd_msg)); char str[strlen_P(error) + strlen_P(component) + 3];
sprintf_P(str, PSTR(S_FMT ": " S_FMT), error, component);
KillScreen::show(str);
} }
void onMediaInserted() { void onMediaInserted() {
if (AT_SCREEN(StatusScreen)) if (AT_SCREEN(StatusScreen))
StatusScreen::setStatusMessage(F(MSG_MEDIA_INSERTED)); StatusScreen::setStatusMessage(GET_TEXT_F(MSG_MEDIA_INSERTED));
sound.play(media_inserted, PLAY_ASYNCHRONOUS); sound.play(media_inserted, PLAY_ASYNCHRONOUS);
} }
void onMediaRemoved() { void onMediaRemoved() {
if (AT_SCREEN(StatusScreen)) if (AT_SCREEN(StatusScreen))
StatusScreen::setStatusMessage(F(MSG_MEDIA_REMOVED)); StatusScreen::setStatusMessage(GET_TEXT_F(MSG_MEDIA_REMOVED));
sound.play(media_removed, PLAY_ASYNCHRONOUS); sound.play(media_removed, PLAY_ASYNCHRONOUS);
if (AT_SCREEN(FilesScreen)) { if (AT_SCREEN(FilesScreen)) {
GOTO_SCREEN(StatusScreen) GOTO_SCREEN(StatusScreen)

View file

@ -85,10 +85,10 @@ void BootScreen::onIdle() {
PUSH_SCREEN(StatusScreen); PUSH_SCREEN(StatusScreen);
PUSH_SCREEN(BioConfirmHomeE); PUSH_SCREEN(BioConfirmHomeE);
#elif NUM_LANGUAGES > 1 #elif NUM_LANGUAGES > 1
StatusScreen::setStatusMessage(F(WELCOME_MSG)); StatusScreen::setStatusMessage(GET_TEXT_F(WELCOME_MSG));
GOTO_SCREEN(LanguageMenu); GOTO_SCREEN(LanguageMenu);
#else #else
StatusScreen::setStatusMessage(F(WELCOME_MSG)); StatusScreen::setStatusMessage(GET_TEXT_F(WELCOME_MSG));
GOTO_SCREEN(StatusScreen); GOTO_SCREEN(StatusScreen);
#endif #endif
} }

View file

@ -32,10 +32,12 @@ using namespace ExtUI;
void EndstopStatesScreen::onEntry() { void EndstopStatesScreen::onEntry() {
BaseScreen::onEntry(); BaseScreen::onEntry();
enable_emi_pins(true);
} }
void EndstopStatesScreen::onExit() { void EndstopStatesScreen::onExit() {
BaseScreen::onExit(); BaseScreen::onExit();
enable_emi_pins(false);
} }
void EndstopStatesScreen::onRedraw(draw_mode_t) { void EndstopStatesScreen::onRedraw(draw_mode_t) {

View file

@ -32,7 +32,7 @@ using namespace FTDI;
// loop. So we only have a show() method rather than onRedraw(). The KillScreen // loop. So we only have a show() method rather than onRedraw(). The KillScreen
// should not be used as a model for other UI screens as it is an exception. // should not be used as a model for other UI screens as it is an exception.
void KillScreen::show(progmem_str message) { void KillScreen::show(const char *message) {
CommandProcessor cmd; CommandProcessor cmd;
cmd.cmd(CMD_DLSTART) cmd.cmd(CMD_DLSTART)

View file

@ -39,15 +39,15 @@ void MaxAccelerationScreen::onRedraw(draw_mode_t what) {
w.color(y_axis) .adjuster( 4, GET_TEXT_F(AMAX_Y), getAxisMaxAcceleration_mm_s2(Y) ); w.color(y_axis) .adjuster( 4, GET_TEXT_F(AMAX_Y), getAxisMaxAcceleration_mm_s2(Y) );
w.color(z_axis) .adjuster( 6, GET_TEXT_F(AMAX_Z), getAxisMaxAcceleration_mm_s2(Z) ); w.color(z_axis) .adjuster( 6, GET_TEXT_F(AMAX_Z), getAxisMaxAcceleration_mm_s2(Z) );
#if EXTRUDERS == 1 || DISABLED(DISTINCT_E_FACTORS) #if EXTRUDERS == 1 || DISABLED(DISTINCT_E_FACTORS)
w.color(e_axis).adjuster( 8, GET_TEXT_F(AMAX_E1), getAxisMaxAcceleration_mm_s2(E0) ); w.color(e_axis).adjuster( 8, GET_TEXT_F(AMAX_E0), getAxisMaxAcceleration_mm_s2(E0) );
#elif EXTRUDERS > 1 #elif EXTRUDERS > 1
w.color(e_axis).adjuster( 8, GET_TEXT_F(AMAX_E1), getAxisMaxAcceleration_mm_s2(E0) ); w.color(e_axis).adjuster( 8, GET_TEXT_F(AMAX_E0), getAxisMaxAcceleration_mm_s2(E0) );
w.color(e_axis).adjuster(10, GET_TEXT_F(AMAX_E2), getAxisMaxAcceleration_mm_s2(E1) ); w.color(e_axis).adjuster(10, GET_TEXT_F(AMAX_E1), getAxisMaxAcceleration_mm_s2(E1) );
#if EXTRUDERS > 2 #if EXTRUDERS > 2
w.color(e_axis).adjuster(12, GET_TEXT_F(AMAX_E3), getAxisMaxAcceleration_mm_s2(E2) ); w.color(e_axis).adjuster(12, GET_TEXT_F(AMAX_E2), getAxisMaxAcceleration_mm_s2(E2) );
#endif #endif
#if EXTRUDERS > 3 #if EXTRUDERS > 3
w.color(e_axis).adjuster(14, GET_TEXT_F(AMAX_E4), getAxisMaxAcceleration_mm_s2(E3) ); w.color(e_axis).adjuster(14, GET_TEXT_F(AMAX_E3), getAxisMaxAcceleration_mm_s2(E3) );
#endif #endif
#endif #endif
w.increments(); w.increments();

View file

@ -135,7 +135,7 @@ class KillScreen {
// The KillScreen is behaves differently than the // The KillScreen is behaves differently than the
// others, so we do not bother extending UIScreen. // others, so we do not bother extending UIScreen.
public: public:
static void show(progmem_str msg); static void show(const char*);
}; };
class DialogBoxBaseClass : public BaseScreen { class DialogBoxBaseClass : public BaseScreen {

View file

@ -939,6 +939,12 @@ namespace ExtUI {
ui.abort_print(); ui.abort_print();
} }
void onUserConfirmRequired_P(PGM_P const pstr) {
char msg[strlen_P(pstr) + 1];
strcpy_P(msg, pstr);
onUserConfirmRequired(msg);
}
FileList::FileList() { refresh(); } FileList::FileList() { refresh(); }
void FileList::refresh() { num_files = 0xFFFF; } void FileList::refresh() { num_files = 0xFFFF; }
@ -1036,11 +1042,11 @@ void MarlinUI::update() {
ExtUI::onIdle(); ExtUI::onIdle();
} }
void MarlinUI::kill_screen(PGM_P const msg) { void MarlinUI::kill_screen(PGM_P const error, PGM_P const component) {
using namespace ExtUI; using namespace ExtUI;
if (!flags.printer_killed) { if (!flags.printer_killed) {
flags.printer_killed = true; flags.printer_killed = true;
onPrinterKilled(msg); onPrinterKilled(error, component);
} }
} }

View file

@ -293,12 +293,13 @@ namespace ExtUI {
void onMediaError(); void onMediaError();
void onMediaRemoved(); void onMediaRemoved();
void onPlayTone(const uint16_t frequency, const uint16_t duration); void onPlayTone(const uint16_t frequency, const uint16_t duration);
void onPrinterKilled(PGM_P const msg); void onPrinterKilled(PGM_P const error, PGM_P const component);
void onPrintTimerStarted(); void onPrintTimerStarted();
void onPrintTimerPaused(); void onPrintTimerPaused();
void onPrintTimerStopped(); void onPrintTimerStopped();
void onFilamentRunout(const extruder_t extruder); void onFilamentRunout(const extruder_t extruder);
void onUserConfirmRequired(const char * const msg); void onUserConfirmRequired(const char * const msg);
void onUserConfirmRequired_P(PGM_P const pstr);
void onStatusChanged(const char * const msg); void onStatusChanged(const char * const msg);
void onFactoryReset(); void onFactoryReset();
void onStoreSettings(char *); void onStoreSettings(char *);

View file

@ -43,8 +43,8 @@ namespace ExtUI {
void onIdle() { ScreenHandler.loop(); } void onIdle() { ScreenHandler.loop(); }
void onPrinterKilled(const char* msg) { void onPrinterKilled(PGM_P error, PGM_P component) {
ScreenHandler.sendinfoscreen(PSTR(MSG_HALTED), msg, PSTR(""), PSTR(MSG_PLEASE_RESET), true, true, true, true); ScreenHandler.sendinfoscreen(GET_TEXT(MSG_HALTED), error, PSTR(""), GET_TEXT(MSG_PLEASE_RESET), true, true, true, true);
ScreenHandler.GotoScreen(DGUSLCD_SCREEN_KILL); ScreenHandler.GotoScreen(DGUSLCD_SCREEN_KILL);
while (!ScreenHandler.loop()); // Wait while anything is left to be sent while (!ScreenHandler.loop()); // Wait while anything is left to be sent
} }
@ -59,7 +59,7 @@ namespace ExtUI {
void onPrintTimerStopped() {} void onPrintTimerStopped() {}
void onFilamentRunout(const extruder_t extruder) {} void onFilamentRunout(const extruder_t extruder) {}
void onUserConfirmRequired(const char *msg) { void onUserConfirmRequired(const char * const msg) {
if (msg) { if (msg) {
ScreenHandler.sendinfoscreen(PSTR("Please confirm."), nullptr, msg, nullptr, true, true, false, true); ScreenHandler.sendinfoscreen(PSTR("Please confirm."), nullptr, msg, nullptr, true, true, false, true);
ScreenHandler.SetupConfirmAction(ExtUI::setUserConfirmed); ScreenHandler.SetupConfirmAction(ExtUI::setUserConfirmed);

View file

@ -46,7 +46,7 @@ namespace ExtUI {
*/ */
} }
void onIdle() {} void onIdle() {}
void onPrinterKilled(PGM_P const msg) {} void onPrinterKilled(PGM_P const error, PGM_P const component) {}
void onMediaInserted() {}; void onMediaInserted() {};
void onMediaError() {}; void onMediaError() {};
void onMediaRemoved() {}; void onMediaRemoved() {};

View file

@ -464,9 +464,11 @@ namespace ExtUI {
} }
// {E:<msg>} is for error states. // {E:<msg>} is for error states.
void onPrinterKilled(PGM_P msg) { void onPrinterKilled(PGM_P error, PGM_P component) {
write_to_lcd_P(PSTR("{E:")); write_to_lcd_P(PSTR("{E:"));
write_to_lcd_P(msg); write_to_lcd_P(error);
write_to_lcd_P(PSTR(" "));
write_to_lcd_P(component);
write_to_lcd_P("}"); write_to_lcd_P("}");
} }

View file

@ -32,225 +32,263 @@
#define DISPLAY_CHARSET_ISO10646_1 #define DISPLAY_CHARSET_ISO10646_1
#define NOT_EXTENDED_ISO10646_1_5X7 #define NOT_EXTENDED_ISO10646_1_5X7
#define WELCOME_MSG MACHINE_NAME _UxGT(" parada.") namespace Language_an {
#define MSG_MEDIA_INSERTED _UxGT("Tarcheta mesa") using namespace Language_en; // Inherit undefined strings from English
#define MSG_MEDIA_REMOVED _UxGT("Tarcheta sacada")
#define MSG_LCD_ENDSTOPS _UxGT("Endstops") // Max length 8 characters
#define MSG_MAIN _UxGT("Menu prencipal")
#define MSG_AUTOSTART _UxGT("Inicio automatico")
#define MSG_DISABLE_STEPPERS _UxGT("Amortar motors")
#define MSG_AUTO_HOME _UxGT("Levar a l'orichen")
#define MSG_AUTO_HOME_X _UxGT("Orichen X")
#define MSG_AUTO_HOME_Y _UxGT("Orichen Y")
#define MSG_AUTO_HOME_Z _UxGT("Orichen Z")
#define MSG_LEVEL_BED_HOMING _UxGT("Orichen XYZ")
#define MSG_LEVEL_BED_WAITING _UxGT("Encetar (pretar)")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Vinient punto")
#define MSG_LEVEL_BED_DONE _UxGT("Nivelacion feita!")
#define MSG_SET_HOME_OFFSETS _UxGT("Achustar desfases")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Desfase aplicau")
#define MSG_SET_ORIGIN _UxGT("Establir orichen")
#define MSG_PREHEAT_1 _UxGT("Precalentar " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ")
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" Tot")
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" Base")
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" Conf")
#define MSG_PREHEAT_2 _UxGT("Precalentar " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ")
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" Tot")
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" Base")
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" Conf")
#define MSG_COOLDOWN _UxGT("Enfriar")
#define MSG_SWITCH_PS_ON _UxGT("Enchegar Fuent")
#define MSG_SWITCH_PS_OFF _UxGT("Amortar Fuent")
#define MSG_EXTRUDE _UxGT("Extruir")
#define MSG_RETRACT _UxGT("Retraer")
#define MSG_MOVE_AXIS _UxGT("Mover Eixes")
#define MSG_BED_LEVELING _UxGT("Nivelar base")
#define MSG_LEVEL_BED _UxGT("Nivelar base")
#define MSG_MOVE_X _UxGT("Mover X")
#define MSG_MOVE_Y _UxGT("Mover Y")
#define MSG_MOVE_Z _UxGT("Mover Z")
#define MSG_MOVE_E _UxGT("Extrusor")
#define MSG_MOVE_Z_DIST _UxGT("Mover %smm")
#define MSG_MOVE_01MM _UxGT("Mover 0.1mm")
#define MSG_MOVE_1MM _UxGT("Mover 1mm")
#define MSG_MOVE_10MM _UxGT("Mover 10mm")
#define MSG_SPEED _UxGT("Velocidat")
#define MSG_BED_Z _UxGT("Base Z")
#define MSG_NOZZLE _UxGT("Boquilla")
#define MSG_BED _UxGT("Base")
#define MSG_FAN_SPEED _UxGT("Ixoriador")
#define MSG_FLOW _UxGT("Fluxo")
#define MSG_CONTROL _UxGT("Control")
#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Min")
#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Max")
#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Fact")
#define MSG_AUTOTEMP _UxGT("Temperatura Auto.")
#define MSG_LCD_ON _UxGT("On")
#define MSG_LCD_OFF _UxGT("Off")
#define MSG_PID_P _UxGT("PID-P")
#define MSG_PID_I _UxGT("PID-I")
#define MSG_PID_D _UxGT("PID-D")
#define MSG_PID_C _UxGT("PID-C")
#define MSG_SELECT _UxGT("Trigar")
#define MSG_ACC _UxGT("Aceleracion")
#define MSG_JERK _UxGT("Jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-jerk")
#define MSG_VB_JERK _UxGT("Vb-jerk")
#define MSG_VC_JERK _UxGT("Vc-jerk")
#else
#define MSG_VA_JERK _UxGT("Vx-jerk")
#define MSG_VB_JERK _UxGT("Vy-jerk")
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VMAX _UxGT("Vmax")
#define MSG_VMIN _UxGT("Vmin")
#define MSG_VTRAV_MIN _UxGT("Vel. viache min")
#define MSG_ACCELERATION MSG_ACC
#define MSG_AMAX _UxGT("Acel. max")
#define MSG_A_RETRACT _UxGT("Acel. retrac.")
#define MSG_A_TRAVEL _UxGT("Acel. Viaje")
#define MSG_STEPS_PER_MM _UxGT("Trangos/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("A trangos/mm")
#define MSG_BSTEPS _UxGT("B trangos/mm")
#define MSG_CSTEPS _UxGT("C trangos/mm")
#else
#define MSG_ASTEPS _UxGT("X trangos/mm")
#define MSG_BSTEPS _UxGT("Y trangos/mm")
#define MSG_CSTEPS _UxGT("Z trangos/mm")
#endif
#define MSG_ESTEPS _UxGT("E trangos/mm")
#define MSG_E0_STEPS _UxGT("E1 trangos/mm")
#define MSG_E1_STEPS _UxGT("E2 trangos/mm")
#define MSG_E2_STEPS _UxGT("E3 trangos/mm")
#define MSG_E3_STEPS _UxGT("E4 trangos/mm")
#define MSG_E4_STEPS _UxGT("E5 trangos/mm")
#define MSG_E5_STEPS _UxGT("E6 trangos/mm")
#define MSG_TEMPERATURE _UxGT("Temperatura")
#define MSG_MOTION _UxGT("Movimiento")
#define MSG_FILAMENT _UxGT("Filamento")
#define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm3")
#define MSG_FILAMENT_DIAM _UxGT("Fil. Dia.")
#define MSG_CONTRAST _UxGT("Contraste")
#define MSG_STORE_EEPROM _UxGT("Alzar memoria")
#define MSG_LOAD_EEPROM _UxGT("Cargar memoria")
#define MSG_RESTORE_FAILSAFE _UxGT("Restaurar memoria")
#define MSG_REFRESH _UxGT("Tornar a cargar")
#define MSG_WATCH _UxGT("Informacion")
#define MSG_PREPARE _UxGT("Preparar")
#define MSG_TUNE _UxGT("Achustar")
#define MSG_PAUSE_PRINT _UxGT("Pausar impresion")
#define MSG_RESUME_PRINT _UxGT("Contin. impresion")
#define MSG_STOP_PRINT _UxGT("Detener Impresion")
#define MSG_MEDIA_MENU _UxGT("Menu de SD")
#define MSG_NO_MEDIA _UxGT("No i hai tarcheta")
#define MSG_DWELL _UxGT("Reposo...")
#define MSG_USERWAIT _UxGT("Aguardand ordines")
#define MSG_PRINT_ABORTED _UxGT("Impres. cancelada")
#define MSG_NO_MOVE _UxGT("Sin movimiento")
#define MSG_KILLED _UxGT("Aturada d'emerch.")
#define MSG_STOPPED _UxGT("Aturada.")
#define MSG_CONTROL_RETRACT _UxGT("Retraer mm")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Swap Retraer mm")
#define MSG_CONTROL_RETRACTF _UxGT("Retraer F")
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Devantar mm")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("DesRet mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Swap DesRet mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("DesRet F")
#define MSG_AUTORETRACT _UxGT("Retraccion auto.")
#define MSG_FILAMENTCHANGE _UxGT("Cambear filamento")
#define MSG_INIT_MEDIA _UxGT("Encetan. tarcheta")
#define MSG_CHANGE_MEDIA _UxGT("Cambiar tarcheta")
#define MSG_ZPROBE_OUT _UxGT("Sonda Z fuera")
#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch Auto-Test")
#define MSG_BLTOUCH_RESET _UxGT("Reset BLTouch")
#define MSG_HOME_FIRST _UxGT("Home %s%s%s first")
#define MSG_ZPROBE_ZOFFSET _UxGT("Desfase Z")
#define MSG_BABYSTEP_X _UxGT("Micropaso X")
#define MSG_BABYSTEP_Y _UxGT("Micropaso Y")
#define MSG_BABYSTEP_Z _UxGT("Micropaso Z")
#define MSG_ENDSTOP_ABORT _UxGT("Cancelado - Endstop")
#define MSG_HEATING_FAILED_LCD _UxGT("Error: en calentar")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Error: temperatura")
#define MSG_THERMAL_RUNAWAY _UxGT("Error de temperatura")
#define MSG_ERR_MAXTEMP _UxGT("Error: Temp Maxima")
#define MSG_ERR_MINTEMP _UxGT("Error: Temp Menima")
#define MSG_ERR_MAXTEMP_BED _UxGT("Error: Temp Max base")
#define MSG_ERR_MINTEMP_BED _UxGT("Error: Temp Min base")
#define MSG_ERR_Z_HOMING _UxGT("Home XY first")
#define MSG_HALTED _UxGT("IMPRESORA ATURADA")
#define MSG_PLEASE_RESET _UxGT("Per favor reinic.")
#define MSG_SHORT_DAY _UxGT("d")
#define MSG_SHORT_HOUR _UxGT("h")
#define MSG_SHORT_MINUTE _UxGT("m")
#define MSG_HEATING _UxGT("Calentando...")
#define MSG_BED_HEATING _UxGT("Calentando base...")
#define MSG_DELTA_CALIBRATE _UxGT("Calibracion Delta")
#define MSG_DELTA_CALIBRATE_X _UxGT("Calibrar X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Calibrar Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Calibrar Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Calibrar Centro")
#define MSG_INFO_MENU _UxGT("Inf. Impresora") constexpr uint8_t CHARSIZE = 1;
#define MSG_INFO_PRINTER_MENU _UxGT("Inf. Impresora") PROGMEM Language_Str LANGUAGE = _UxGT("Aragonese");
#define MSG_INFO_STATS_MENU _UxGT("Estadisticas Imp.")
#define MSG_INFO_BOARD_MENU _UxGT("Inf. Controlador")
#define MSG_INFO_THERMISTOR_MENU _UxGT("Termistors")
#define MSG_INFO_EXTRUDERS _UxGT("Extrusors")
#define MSG_INFO_BAUDRATE _UxGT("Baudios")
#define MSG_INFO_PROTOCOL _UxGT("Protocolo")
#define MSG_CASE_LIGHT _UxGT("Luz")
#if LCD_WIDTH >= 20 PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" parada.");
#define MSG_INFO_PRINT_COUNT _UxGT("Conteo de impresion") PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Tarcheta mesa");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Completadas") PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Tarcheta sacada");
#define MSG_INFO_PRINT_TIME _UxGT("Tiempo total d'imp.") PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Endstops"); // Max length 8 characters
#define MSG_INFO_PRINT_LONGEST _UxGT("Impresion mas larga") PROGMEM Language_Str MSG_MAIN = _UxGT("Menu prencipal");
#define MSG_INFO_PRINT_FILAMENT _UxGT("Total d'extrusion") PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Inicio automatico");
#else PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Amortar motors");
#define MSG_INFO_PRINT_COUNT _UxGT("Impresions") PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Levar a l'orichen");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Completadas") PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Orichen X");
#define MSG_INFO_PRINT_TIME _UxGT("Total") PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Orichen Y");
#define MSG_INFO_PRINT_LONGEST _UxGT("Mas larga") PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Orichen Z");
#define MSG_INFO_PRINT_FILAMENT _UxGT("Extrusion") PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Orichen XYZ");
#endif PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Encetar (pretar)");
PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Vinient punto");
PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Nivelacion feita!");
PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Achustar desfases");
PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Desfase aplicau");
PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Establir orichen");
PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Precalentar ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Precalentar ") PREHEAT_1_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Precalentar ") PREHEAT_1_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Precalentar ") PREHEAT_1_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Precalentar ") PREHEAT_1_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Precalentar ") PREHEAT_1_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Precalentar ") PREHEAT_1_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Precal. ") PREHEAT_1_LABEL _UxGT(" Boquilla");
PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Precal. ") PREHEAT_1_LABEL _UxGT(" Boquilla ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Precal. ") PREHEAT_1_LABEL _UxGT(" Boquilla ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Precal. ") PREHEAT_1_LABEL _UxGT(" Boquilla ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Precal. ") PREHEAT_1_LABEL _UxGT(" Boquilla ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Precal. ") PREHEAT_1_LABEL _UxGT(" Boquilla ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Precal. ") PREHEAT_1_LABEL _UxGT(" Boquilla ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Tot");
PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Base");
PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Conf");
PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Precalentar ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Precalentar ") PREHEAT_2_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Precalentar ") PREHEAT_2_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Precalentar ") PREHEAT_2_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Precalentar ") PREHEAT_2_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Precalentar ") PREHEAT_2_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Precal. ") PREHEAT_2_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Precal. ") PREHEAT_2_LABEL _UxGT(" Boquilla");
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Precal. ") PREHEAT_2_LABEL _UxGT(" Boquilla ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Precal. ") PREHEAT_2_LABEL _UxGT(" Boquilla ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Precal. ") PREHEAT_2_LABEL _UxGT(" Boquilla ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Precal. ") PREHEAT_2_LABEL _UxGT(" Boquilla ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Precal. ") PREHEAT_2_LABEL _UxGT(" Boquilla ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Precal. ") PREHEAT_2_LABEL _UxGT(" Boquilla ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Tot");
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Base");
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Conf");
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Enfriar");
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Enchegar Fuent");
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Amortar Fuent");
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Extruir");
PROGMEM Language_Str MSG_RETRACT = _UxGT("Retraer");
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Mover Eixes");
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Nivelar base");
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Nivelar base");
PROGMEM Language_Str MSG_MOVE_X = _UxGT("Mover X");
PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Mover Y");
PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Mover Z");
PROGMEM Language_Str MSG_MOVE_E = _UxGT("Extrusor");
PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Extrusor ") LCD_STR_E0;
PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Extrusor ") LCD_STR_E1;
PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Extrusor ") LCD_STR_E2;
PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Extrusor ") LCD_STR_E3;
PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Extrusor ") LCD_STR_E4;
PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Extrusor ") LCD_STR_E5;
PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Mover %smm");
PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Mover 0.1mm");
PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Mover 1mm");
PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Mover 10mm");
PROGMEM Language_Str MSG_SPEED = _UxGT("Velocidat");
PROGMEM Language_Str MSG_BED_Z = _UxGT("Base Z");
PROGMEM Language_Str MSG_NOZZLE = _UxGT("Boquilla");
PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Boquilla ") LCD_STR_N0;
PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Boquilla ") LCD_STR_N1;
PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Boquilla ") LCD_STR_N2;
PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Boquilla ") LCD_STR_N3;
PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Boquilla ") LCD_STR_N4;
PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Boquilla ") LCD_STR_N5;
PROGMEM Language_Str MSG_BED = _UxGT("Base");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Ixoriador");
PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Ixoriador 1");
PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Ixoriador 2");
PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Ixoriador 3");
PROGMEM Language_Str MSG_FLOW = _UxGT("Fluxo");
PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Fluxo ") LCD_STR_N0;
PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Fluxo ") LCD_STR_N1;
PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Fluxo ") LCD_STR_N2;
PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Fluxo ") LCD_STR_N3;
PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Fluxo ") LCD_STR_N4;
PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Fluxo ") LCD_STR_N5;
PROGMEM Language_Str MSG_CONTROL = _UxGT("Control");
PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Temperatura Auto.");
PROGMEM Language_Str MSG_SELECT = _UxGT("Trigar");
PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("Trigar ") LCD_STR_E0;
PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("Trigar ") LCD_STR_E1;
PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("Trigar ") LCD_STR_E2;
PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("Trigar ") LCD_STR_E3;
PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("Trigar ") LCD_STR_E4;
PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("Trigar ") LCD_STR_E5;
PROGMEM Language_Str MSG_ACC = _UxGT("Aceleracion");
PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("Vel. viache min");
PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Accel");
PROGMEM Language_Str MSG_AMAX_A = _UxGT("Acel. max") LCD_STR_A;
PROGMEM Language_Str MSG_AMAX_B = _UxGT("Acel. max") LCD_STR_B;
PROGMEM Language_Str MSG_AMAX_C = _UxGT("Acel. max") LCD_STR_C;
PROGMEM Language_Str MSG_AMAX_E = _UxGT("Acel. max") LCD_STR_E;
PROGMEM Language_Str MSG_AMAX_E0 = _UxGT("Acel. max ") LCD_STR_E0;
PROGMEM Language_Str MSG_AMAX_E1 = _UxGT("Acel. max ") LCD_STR_E1;
PROGMEM Language_Str MSG_AMAX_E2 = _UxGT("Acel. max ") LCD_STR_E2;
PROGMEM Language_Str MSG_AMAX_E3 = _UxGT("Acel. max ") LCD_STR_E3;
PROGMEM Language_Str MSG_AMAX_E4 = _UxGT("Acel. max ") LCD_STR_E4;
PROGMEM Language_Str MSG_AMAX_E5 = _UxGT("Acel. max ") LCD_STR_E5;
PROGMEM Language_Str MSG_A_RETRACT = _UxGT("Acel. retrac.");
PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("Acel. Viaje");
PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Trangos/mm");
PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" trangos/mm");
PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" trangos/mm");
PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" trangos/mm");
PROGMEM Language_Str MSG_E_STEPS = _UxGT("E trangos/mm");
PROGMEM Language_Str MSG_E0_STEPS = LCD_STR_E0 _UxGT(" trangos/mm");
PROGMEM Language_Str MSG_E1_STEPS = LCD_STR_E1 _UxGT(" trangos/mm");
PROGMEM Language_Str MSG_E2_STEPS = LCD_STR_E2 _UxGT(" trangos/mm");
PROGMEM Language_Str MSG_E3_STEPS = LCD_STR_E3 _UxGT(" trangos/mm");
PROGMEM Language_Str MSG_E4_STEPS = LCD_STR_E4 _UxGT(" trangos/mm");
PROGMEM Language_Str MSG_E5_STEPS = LCD_STR_E5 _UxGT(" trangos/mm");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura");
PROGMEM Language_Str MSG_MOTION = _UxGT("Movimiento");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filamento");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E in mm3");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Fil. Dia.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Fil. Dia. ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Fil. Dia. ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Fil. Dia. ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Fil. Dia. ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Fil. Dia. ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Fil. Dia. ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("Contraste");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Alzar memoria");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Cargar memoria");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Restaurar memoria");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Tornar a cargar");
PROGMEM Language_Str MSG_WATCH = _UxGT("Informacion");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Preparar");
PROGMEM Language_Str MSG_TUNE = _UxGT("Achustar");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Pausar impresion");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Contin. impresion");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Detener Impresion");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Menu de SD");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("No i hai tarcheta");
PROGMEM Language_Str MSG_DWELL = _UxGT("Reposo...");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Aguardand ordines");
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Impres. cancelada");
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Sin movimiento");
PROGMEM Language_Str MSG_KILLED = _UxGT("Aturada d'emerch.");
PROGMEM Language_Str MSG_STOPPED = _UxGT("Aturada.");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Retraer mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Swap Retraer mm");
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Retraer F");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Devantar mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("DesRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("Swap DesRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("DesRet F");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Retraccion auto.");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Cambear filamento");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Cambear filamento ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Cambear filamento ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Cambear filamento ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Cambear filamento ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Cambear filamento ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Cambear filamento ") LCD_STR_E5;
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Encetan. tarcheta");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Cambiar tarcheta");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sonda Z fuera");
PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("Reset BLTouch");
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Desfase Z");
PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Micropaso X");
PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Micropaso Y");
PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Micropaso Z");
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Cancelado - Endstop");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Error: en calentar");
PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("Error: temperatura");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("Error de temperatura");
PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("Error: Temp Max");
PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("Error: Temp Min");
PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("Home XY first");
PROGMEM Language_Str MSG_HALTED = _UxGT("IMPRESORA ATURADA");
PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Per favor reinic.");
PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("d");
PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("h");
PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("m");
PROGMEM Language_Str MSG_HEATING = _UxGT("Calentando...");
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Calentando base...");
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Calibracion Delta");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Calibrar X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Calibrar Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Calibrar Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Calibrar Centro");
#define MSG_INFO_MIN_TEMP _UxGT("Temperatura menima") PROGMEM Language_Str MSG_INFO_MENU = _UxGT("Inf. Impresora");
#define MSG_INFO_MAX_TEMP _UxGT("Temperatura maxima") PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Inf. Impresora");
#define MSG_INFO_PSU _UxGT("Fuente de aliment") PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Estadisticas Imp.");
PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Inf. Controlador");
PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Termistors");
PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Extrusors");
PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("Baudios");
PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Protocolo");
PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Luz");
#define MSG_DRIVE_STRENGTH _UxGT("Fuerza d'o driver") #if LCD_WIDTH >= 20
#define MSG_DAC_PERCENT _UxGT("Driver %") PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Conteo de impresion");
#define MSG_DAC_EEPROM_WRITE _UxGT("Escri. DAC EEPROM") PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Completadas");
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Resumir imp.") PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Tiempo total d'imp.");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Impresion mas larga");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Total d'extrusion");
#else
PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Impresions");
PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Completadas");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Total");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Mas larga");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Extrusion");
#endif
// PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Temperatura menima");
// Filament Change screens show up to 3 lines on a 4-line display PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Temperatura maxima");
// ...or up to 2 lines on a 3-line display PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Fuente de aliment");
//
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Aguardand iniciar")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Meta o filamento") PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Fuerza d'o driver");
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("y prete lo boton") PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Escri. DAC EEPROM");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Resumir imp.");
#if LCD_HEIGHT >= 4 //
// Up to 3 lines allowed // Filament Change screens show up to 3 lines on a 4-line display
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("d'o filamento") // ...or up to 2 lines on a 3-line display
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("cambear") //
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("pa continar...")
#else // LCD_HEIGHT < 4
// Up to 2 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("d'o fil. cambear")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Meta o filamento")
#endif // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Aguardando a") #if LCD_HEIGHT >= 4
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("expulsar filament") // Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Aguardando a") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Aguardand iniciar", "d'o filamento", "cambear"));
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("cargar filamento") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Meta o filamento", "y prete lo boton", "pa continar..."));
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Aguardando impre.") #else // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("pa continar") // Up to 2 lines allowed
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_2_LINE("Aguardand iniciar", "d'o fil. cambear"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_2_LINE("Meta o filamento", "y prete lo boton"));
#endif // LCD_HEIGHT < 4
PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Aguardando a", "expulsar filament"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Aguardando a", "cargar filamento"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("Aguardando impre.", "pa continar"));
}

View file

@ -28,120 +28,178 @@
* See also http://marlinfw.org/docs/development/lcd_language.html * See also http://marlinfw.org/docs/development/lcd_language.html
* *
*/ */
#define DISPLAY_CHARSET_ISO10646_5
#define CHARSIZE 2
#define WELCOME_MSG MACHINE_NAME _UxGT(" Готов.") #define DISPLAY_CHARSET_ISO10646_5
#define MSG_MEDIA_INSERTED _UxGT("Картата е поставена")
#define MSG_MEDIA_REMOVED _UxGT("Картата е извадена") namespace Language_bg {
#define MSG_MAIN _UxGT("Меню") using namespace Language_en; // Inherit undefined strings from English
#define MSG_AUTOSTART _UxGT("Автостарт")
#define MSG_DISABLE_STEPPERS _UxGT("Изкл. двигатели") constexpr uint8_t CHARSIZE = 2;
#define MSG_AUTO_HOME _UxGT("Паркиране") PROGMEM Language_Str LANGUAGE = _UxGT("Bulgarian");
#define MSG_SET_HOME_OFFSETS _UxGT("Задай Начало")
#define MSG_SET_ORIGIN _UxGT("Изходна точка") PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" Готов.");
#define MSG_PREHEAT_1 _UxGT("Подгряване " PREHEAT_1_LABEL) PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Картата е поставена");
#define MSG_PREHEAT_1_N _UxGT("Подгряване " PREHEAT_1_LABEL) PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Картата е извадена");
#define MSG_PREHEAT_1_ALL _UxGT("Подгр. " PREHEAT_1_LABEL " Всички") PROGMEM Language_Str MSG_MAIN = _UxGT("Меню");
#define MSG_PREHEAT_1_BEDONLY _UxGT("Подгр. " PREHEAT_1_LABEL " Легло") PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Автостарт");
#define MSG_PREHEAT_1_SETTINGS _UxGT("Настройки " PREHEAT_1_LABEL) PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Изкл. двигатели");
#define MSG_PREHEAT_2 _UxGT("Подгряване " PREHEAT_2_LABEL) PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Паркиране");
#define MSG_PREHEAT_2_N _UxGT("Подгряване " PREHEAT_2_LABEL) PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Задай Начало");
#define MSG_PREHEAT_2_ALL _UxGT("Подгр. " PREHEAT_2_LABEL " Всички") PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Изходна точка");
#define MSG_PREHEAT_2_BEDONLY _UxGT("Подгр. " PREHEAT_2_LABEL " Легло") PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Подгряване ") PREHEAT_1_LABEL;
#define MSG_PREHEAT_2_SETTINGS _UxGT("Настройки " PREHEAT_2_LABEL) PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Подгряване ") PREHEAT_1_LABEL " " LCD_STR_N0;
#define MSG_COOLDOWN _UxGT("Охлаждане") PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Подгряване ") PREHEAT_1_LABEL " " LCD_STR_N1;
#define MSG_SWITCH_PS_ON _UxGT("Вкл. захранване") PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Подгряване ") PREHEAT_1_LABEL " " LCD_STR_N2;
#define MSG_SWITCH_PS_OFF _UxGT("Изкл. захранване") PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Подгряване ") PREHEAT_1_LABEL " " LCD_STR_N3;
#define MSG_EXTRUDE _UxGT("Екструзия") PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Подгряване ") PREHEAT_1_LABEL " " LCD_STR_N4;
#define MSG_RETRACT _UxGT("Откат") PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Подгряване ") PREHEAT_1_LABEL " " LCD_STR_N5;
#define MSG_MOVE_AXIS _UxGT("Движение по ос") PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Подгряване ") PREHEAT_1_LABEL _UxGT(" Дюза");
#define MSG_BED_LEVELING _UxGT("Нивелиране") PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Подгряване ") PREHEAT_1_LABEL _UxGT(" Дюза ") LCD_STR_N0;
#define MSG_LEVEL_BED _UxGT("Нивелиране") PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Подгряване ") PREHEAT_1_LABEL _UxGT(" Дюза ") LCD_STR_N1;
#define MSG_MOVE_X _UxGT("Движение по X") PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Подгряване ") PREHEAT_1_LABEL _UxGT(" Дюза ") LCD_STR_N2;
#define MSG_MOVE_Y _UxGT("Движение по Y") PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Подгряване ") PREHEAT_1_LABEL _UxGT(" Дюза ") LCD_STR_N3;
#define MSG_MOVE_Z _UxGT("Движение по Z") PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Подгряване ") PREHEAT_1_LABEL _UxGT(" Дюза ") LCD_STR_N4;
#define MSG_MOVE_E _UxGT("Екструдер") PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Подгряване ") PREHEAT_1_LABEL _UxGT(" Дюза ") LCD_STR_N5;
#define MSG_MOVE_Z_DIST _UxGT("Премести с %smm") PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Подгр. ") PREHEAT_1_LABEL _UxGT(" Всички");
#define MSG_MOVE_01MM _UxGT("Премести с 0.1mm") PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Подгр. ") PREHEAT_1_LABEL _UxGT(" Легло");
#define MSG_MOVE_1MM _UxGT("Премести с 1mm") PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Настройки ") PREHEAT_2_LABEL;
#define MSG_MOVE_10MM _UxGT("Премести с 10mm") PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Подгряване ") PREHEAT_2_LABEL;
#define MSG_SPEED _UxGT("Скорост") PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Подгряване ") PREHEAT_2_LABEL " " LCD_STR_N0;
#define MSG_BED_Z _UxGT("Bed Z") PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Подгряване ") PREHEAT_2_LABEL " " LCD_STR_N1;
#define MSG_NOZZLE LCD_STR_THERMOMETER _UxGT(" Дюза") PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Подгряване ") PREHEAT_2_LABEL " " LCD_STR_N2;
#define MSG_BED LCD_STR_THERMOMETER _UxGT(" Легло") PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Подгряване ") PREHEAT_2_LABEL " " LCD_STR_N3;
#define MSG_FAN_SPEED _UxGT("Вентилатор") PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Подгряване ") PREHEAT_2_LABEL " " LCD_STR_N4;
#define MSG_FLOW _UxGT("Поток") PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Подгряване ") PREHEAT_2_LABEL " " LCD_STR_N5;
#define MSG_CONTROL _UxGT("Управление") PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Подгряване ") PREHEAT_2_LABEL _UxGT(" Дюза");
#define MSG_MIN LCD_STR_THERMOMETER _UxGT(" Минимум") PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Подгряване ") PREHEAT_2_LABEL _UxGT(" Дюза ") LCD_STR_N0;
#define MSG_MAX LCD_STR_THERMOMETER _UxGT(" Максимум") PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Подгряване ") PREHEAT_2_LABEL _UxGT(" Дюза ") LCD_STR_N1;
#define MSG_FACTOR LCD_STR_THERMOMETER _UxGT(" Фактор") PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Подгряване ") PREHEAT_2_LABEL _UxGT(" Дюза ") LCD_STR_N2;
#define MSG_AUTOTEMP _UxGT("Авто-темп.") PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Подгряване ") PREHEAT_2_LABEL _UxGT(" Дюза ") LCD_STR_N3;
#define MSG_LCD_ON _UxGT("Вкл.") PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Подгряване ") PREHEAT_2_LABEL _UxGT(" Дюза ") LCD_STR_N4;
#define MSG_LCD_OFF _UxGT("Изкл.") PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Подгряване ") PREHEAT_2_LABEL _UxGT(" Дюза ") LCD_STR_N5;
#define MSG_A_RETRACT _UxGT("A-откат") PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Подгр. ") PREHEAT_2_LABEL _UxGT(" Всички");
#define MSG_A_TRAVEL _UxGT("A-travel") PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Подгр. ") PREHEAT_2_LABEL _UxGT(" Легло");
#define MSG_STEPS_PER_MM _UxGT("Стъпки/mm") PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Настройки ") PREHEAT_2_LABEL;
#if IS_KINEMATIC PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Охлаждане");
#define MSG_ASTEPS _UxGT("Aстъпки/mm") PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Вкл. захранване");
#define MSG_BSTEPS _UxGT("Bстъпки/mm") PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Изкл. захранване");
#define MSG_CSTEPS _UxGT("Cстъпки/mm") PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Екструзия");
#else PROGMEM Language_Str MSG_RETRACT = _UxGT("Откат");
#define MSG_ASTEPS _UxGT("Xстъпки/mm") PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Движение по ос");
#define MSG_BSTEPS _UxGT("Yстъпки/mm") PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Нивелиране");
#define MSG_CSTEPS _UxGT("Zстъпки/mm") PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Нивелиране");
#endif PROGMEM Language_Str MSG_MOVE_X = _UxGT("Движение по X");
#define MSG_ESTEPS _UxGT("E стъпки/mm") PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Движение по Y");
#define MSG_E0_STEPS _UxGT("E1 стъпки/mm") PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Движение по Z");
#define MSG_E1_STEPS _UxGT("E2 стъпки/mm") PROGMEM Language_Str MSG_MOVE_E = _UxGT("Екструдер");
#define MSG_E2_STEPS _UxGT("E3 стъпки/mm") PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Екструдер ") LCD_STR_E0;
#define MSG_E3_STEPS _UxGT("E4 стъпки/mm") PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Екструдер ") LCD_STR_E1;
#define MSG_E4_STEPS _UxGT("E5 стъпки/mm") PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Екструдер ") LCD_STR_E2;
#define MSG_E5_STEPS _UxGT("E6 стъпки/mm") PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Екструдер ") LCD_STR_E3;
#define MSG_TEMPERATURE _UxGT("Температура") PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Екструдер ") LCD_STR_E4;
#define MSG_MOTION _UxGT("Движение") PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Екструдер ") LCD_STR_E5;
#define MSG_FILAMENT _UxGT("Нишка") PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Премести с %smm");
#define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm3") PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Премести с 0.1mm");
#define MSG_FILAMENT_DIAM _UxGT("Диам. нишка") PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Премести с 1mm");
#define MSG_CONTRAST _UxGT("LCD контраст") PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Премести с 10mm");
#define MSG_STORE_EEPROM _UxGT("Запази в EPROM") PROGMEM Language_Str MSG_SPEED = _UxGT("Скорост");
#define MSG_LOAD_EEPROM _UxGT("Зареди от EPROM") PROGMEM Language_Str MSG_BED_Z = _UxGT("Bed Z");
#define MSG_RESTORE_FAILSAFE _UxGT("Фабрични настройки") PROGMEM Language_Str MSG_NOZZLE = " " LCD_STR_THERMOMETER _UxGT(" Дюза");
#define MSG_REFRESH LCD_STR_REFRESH _UxGT("Обнови") PROGMEM Language_Str MSG_NOZZLE_0 = " " LCD_STR_THERMOMETER _UxGT(" Дюза ") LCD_STR_N0;
#define MSG_WATCH _UxGT("Преглед") PROGMEM Language_Str MSG_NOZZLE_1 = " " LCD_STR_THERMOMETER _UxGT(" Дюза ") LCD_STR_N1;
#define MSG_PREPARE _UxGT("Действия") PROGMEM Language_Str MSG_NOZZLE_2 = " " LCD_STR_THERMOMETER _UxGT(" Дюза ") LCD_STR_N2;
#define MSG_TUNE _UxGT("Настройка") PROGMEM Language_Str MSG_NOZZLE_3 = " " LCD_STR_THERMOMETER _UxGT(" Дюза ") LCD_STR_N3;
#define MSG_PAUSE_PRINT _UxGT("Пауза") PROGMEM Language_Str MSG_NOZZLE_4 = " " LCD_STR_THERMOMETER _UxGT(" Дюза ") LCD_STR_N4;
#define MSG_RESUME_PRINT _UxGT("Възобнови печата") PROGMEM Language_Str MSG_NOZZLE_5 = " " LCD_STR_THERMOMETER _UxGT(" Дюза ") LCD_STR_N5;
#define MSG_STOP_PRINT _UxGT("Спри печата") PROGMEM Language_Str MSG_BED = " " LCD_STR_THERMOMETER _UxGT(" Легло");
#define MSG_MEDIA_MENU _UxGT("Меню карта") PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Вентилатор");
#define MSG_NO_MEDIA _UxGT("Няма карта") PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Вентилатор 1");
#define MSG_DWELL _UxGT("Почивка...") PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Вентилатор 2");
#define MSG_USERWAIT _UxGT("Изчакване") PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Вентилатор 3");
#define MSG_PRINT_ABORTED _UxGT("Печатът е прекъснат") PROGMEM Language_Str MSG_FLOW = _UxGT("Поток");
#define MSG_NO_MOVE _UxGT("Няма движение") PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Поток ") LCD_STR_N0;
#define MSG_KILLED _UxGT("УБИТО.") PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Поток ") LCD_STR_N1;
#define MSG_STOPPED _UxGT("СПРЯНО.") PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Поток ") LCD_STR_N2;
#define MSG_CONTROL_RETRACT _UxGT("Откат mm") PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Поток ") LCD_STR_N3;
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Смяна Откат mm") PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Поток ") LCD_STR_N4;
#define MSG_CONTROL_RETRACTF _UxGT("Откат V") PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Поток ") LCD_STR_N5;
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Скок mm") PROGMEM Language_Str MSG_CONTROL = _UxGT("Управление");
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("Възврат mm") PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" Минимум");
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Смяна Възврат mm") PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" Максимум");
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("Възврат V") PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Фактор");
#define MSG_AUTORETRACT _UxGT("Автоoткат") PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Авто-темп.");
#define MSG_FILAMENTCHANGE _UxGT("Смяна нишка") PROGMEM Language_Str MSG_LCD_ON = _UxGT("Вкл.");
#define MSG_INIT_MEDIA _UxGT("Иниц. SD-Карта") PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Изкл.");
#define MSG_CHANGE_MEDIA _UxGT("Смяна SD-Карта") PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-откат");
#define MSG_ZPROBE_OUT _UxGT("Z-сондата е извадена") PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A-travel");
#define MSG_ZPROBE_ZOFFSET _UxGT("Z Отстояние") PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Стъпки/mm");
#define MSG_BABYSTEP_X _UxGT("Министъпка X") PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("стъпки/mm");
#define MSG_BABYSTEP_Y _UxGT("Министъпка Y") PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("стъпки/mm");
#define MSG_BABYSTEP_Z _UxGT("Министъпка Z") PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("стъпки/mm");
#define MSG_ENDSTOP_ABORT _UxGT("Стоп Кр.Изключватели") PROGMEM Language_Str MSG_E_STEPS = _UxGT("E стъпки/mm");
#define MSG_DELTA_CALIBRATE _UxGT("Делта Калибровка") PROGMEM Language_Str MSG_E0_STEPS = LCD_STR_E0 _UxGT(" стъпки/mm");
#define MSG_DELTA_CALIBRATE_X _UxGT("Калибровка X") PROGMEM Language_Str MSG_E1_STEPS = LCD_STR_E1 _UxGT(" стъпки/mm");
#define MSG_DELTA_CALIBRATE_Y _UxGT("Калибровка Y") PROGMEM Language_Str MSG_E2_STEPS = LCD_STR_E2 _UxGT(" стъпки/mm");
#define MSG_DELTA_CALIBRATE_Z _UxGT("Калибровка Z") PROGMEM Language_Str MSG_E3_STEPS = LCD_STR_E3 _UxGT(" стъпки/mm");
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Калибровка Център") PROGMEM Language_Str MSG_E4_STEPS = LCD_STR_E4 _UxGT(" стъпки/mm");
#define MSG_EXPECTED_PRINTER _UxGT("Неправилен принтер") PROGMEM Language_Str MSG_E5_STEPS = LCD_STR_E5 _UxGT(" стъпки/mm");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Температура");
PROGMEM Language_Str MSG_MOTION = _UxGT("Движение");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Нишка");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E in mm3");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Диам. нишка");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Диам. нишка ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Диам. нишка ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Диам. нишка ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Диам. нишка ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Диам. нишка ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Диам. нишка ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("LCD контраст");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Запази в EPROM");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Зареди от EPROM");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Фабрични настройки");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Обнови");
PROGMEM Language_Str MSG_WATCH = _UxGT("Преглед");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Действия");
PROGMEM Language_Str MSG_TUNE = _UxGT("Настройка");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Пауза");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Възобнови печата");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Спри печата");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Меню карта");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("Няма карта");
PROGMEM Language_Str MSG_DWELL = _UxGT("Почивка...");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Изчакване");
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Печатът е прекъснат");
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Няма движение");
PROGMEM Language_Str MSG_KILLED = _UxGT("УБИТО.");
PROGMEM Language_Str MSG_STOPPED = _UxGT("СПРЯНО.");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Откат mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Смяна Откат mm");
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Откат V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Скок mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("Възврат mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("Смяна Възврат mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("Възврат V");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Автоoткат");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Смяна нишка");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Смяна нишка ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Смяна нишка ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Смяна нишка ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Смяна нишка ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Смяна нишка ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Смяна нишка ") LCD_STR_E5;
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Иниц. SD-Карта");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Смяна SD-Карта");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z-сондата е извадена");
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Z Отстояние");
PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Министъпка X");
PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Министъпка Y");
PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Министъпка Z");
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Стоп Кр.Изключватели");
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Делта Калибровка");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Калибровка X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Калибровка Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Калибровка Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Калибровка Център");
PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Неправилен принтер");
}

View file

@ -28,236 +28,263 @@
* See also http://marlinfw.org/docs/development/lcd_language.html * See also http://marlinfw.org/docs/development/lcd_language.html
* *
*/ */
namespace Language_ca {
using namespace Language_en; // Inherit undefined strings from English
#define CHARSIZE 2 constexpr uint8_t CHARSIZE = 2;
PROGMEM Language_Str LANGUAGE = _UxGT("Catalan");
#define WELCOME_MSG MACHINE_NAME _UxGT(" preparada.") PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" preparada.");
#define MSG_MEDIA_INSERTED _UxGT("Targeta detectada.") PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Targeta detectada.");
#define MSG_MEDIA_REMOVED _UxGT("Targeta extreta.") PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Targeta extreta.");
#define MSG_LCD_ENDSTOPS _UxGT("Endstops") PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Endstops");
#define MSG_MAIN _UxGT("Menú principal") PROGMEM Language_Str MSG_MAIN = _UxGT("Menú principal");
#define MSG_AUTOSTART _UxGT("Inici automatic") PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Inici automatic");
#define MSG_DISABLE_STEPPERS _UxGT("Desactiva motors") PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Desactiva motors");
#define MSG_DEBUG_MENU _UxGT("Menu de depuracio") PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("Menu de depuracio");
#define MSG_PROGRESS_BAR_TEST _UxGT("Test barra progres") PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Test barra progres");
#define MSG_AUTO_HOME _UxGT("Ves a l'origen") PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Ves a l'origen");
#define MSG_AUTO_HOME_X _UxGT("X a origen") PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("X a origen");
#define MSG_AUTO_HOME_Y _UxGT("Y a origen") PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Y a origen");
#define MSG_AUTO_HOME_Z _UxGT("Z a origen") PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Z a origen");
#define MSG_LEVEL_BED_HOMING _UxGT("Origen XYZ") PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Origen XYZ");
#define MSG_LEVEL_BED_WAITING _UxGT("Premeu per iniciar") PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Premeu per iniciar");
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Següent punt") PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Següent punt");
#define MSG_LEVEL_BED_DONE _UxGT("Anivellament fet!") PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Anivellament fet!");
#define MSG_SET_HOME_OFFSETS _UxGT("Ajusta decalatge") PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Ajusta decalatge");
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Decalatge aplicat") PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Decalatge aplicat");
#define MSG_SET_ORIGIN _UxGT("Estableix origen") PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Estableix origen");
#define MSG_PREHEAT_1 _UxGT("Preescalfa " PREHEAT_1_LABEL) PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Preescalfa ") PREHEAT_1_LABEL;
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ") PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Preescalfa ") PREHEAT_1_LABEL " " LCD_STR_N0;
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" Tot") PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Preescalfa ") PREHEAT_1_LABEL " " LCD_STR_N1;
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" Llit") PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Preescalfa ") PREHEAT_1_LABEL " " LCD_STR_N2;
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" Conf.") PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Preescalfa ") PREHEAT_1_LABEL " " LCD_STR_N3;
#define MSG_PREHEAT_2 _UxGT("Preescalfa " PREHEAT_2_LABEL) PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Preescalfa ") PREHEAT_1_LABEL " " LCD_STR_N4;
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ") PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Preescalfa ") PREHEAT_1_LABEL " " LCD_STR_N5;
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" Tot") PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" End");
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" Llit") PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N0;
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" Conf.") PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N1;
#define MSG_COOLDOWN _UxGT("Refreda") PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N2;
#define MSG_SWITCH_PS_ON _UxGT("Switch power on") PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N3;
#define MSG_SWITCH_PS_OFF _UxGT("Switch power off") PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N4;
#define MSG_EXTRUDE _UxGT("Extrudeix") PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N5;
#define MSG_RETRACT _UxGT("Retreu") PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" Tot");
#define MSG_MOVE_AXIS _UxGT("Mou eixos") PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" Llit");
#define MSG_BED_LEVELING _UxGT("Anivella llit") PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" Conf.");
#define MSG_LEVEL_BED _UxGT("Anivella llit") PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Preescalfa ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Preescalfa ") PREHEAT_2_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Preescalfa ") PREHEAT_2_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Preescalfa ") PREHEAT_2_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Preescalfa ") PREHEAT_2_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Preescalfa ") PREHEAT_2_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Preescalfa ") PREHEAT_2_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Preheat ") PREHEAT_2_LABEL _UxGT(" End");
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Preheat ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Preheat ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Preheat ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Preheat ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Preheat ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Preheat ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Preheat ") PREHEAT_2_LABEL _UxGT(" Tot");
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Preheat ") PREHEAT_2_LABEL _UxGT(" Llit");
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Preheat ") PREHEAT_2_LABEL _UxGT(" Conf.");
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Refreda");
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Switch power on");
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Switch power off");
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Extrudeix");
PROGMEM Language_Str MSG_RETRACT = _UxGT("Retreu");
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Mou eixos");
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Anivella llit");
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Anivella llit");
#define MSG_MOVING _UxGT("Movent..") PROGMEM Language_Str MSG_MOVING = _UxGT("Movent..");
#define MSG_FREE_XY _UxGT("XY lliures") PROGMEM Language_Str MSG_FREE_XY = _UxGT("XY lliures");
#define MSG_MOVE_X _UxGT("Mou X") PROGMEM Language_Str MSG_MOVE_X = _UxGT("Mou X");
#define MSG_MOVE_Y _UxGT("Mou Y") PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Mou Y");
#define MSG_MOVE_Z _UxGT("Mou Z") PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Mou Z");
#define MSG_MOVE_E _UxGT("Extrusor") PROGMEM Language_Str MSG_MOVE_E = _UxGT("Extrusor");
#define MSG_MOVE_Z_DIST _UxGT("Mou %smm") PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Extrusor ") LCD_STR_E0;
#define MSG_MOVE_01MM _UxGT("Mou 0.1mm") PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Extrusor ") LCD_STR_E1;
#define MSG_MOVE_1MM _UxGT("Mou 1mm") PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Extrusor ") LCD_STR_E2;
#define MSG_MOVE_10MM _UxGT("Mou 10mm") PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Extrusor ") LCD_STR_E3;
#define MSG_SPEED _UxGT("Velocitat") PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Extrusor ") LCD_STR_E4;
#define MSG_BED_Z _UxGT("Llit Z") PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Extrusor ") LCD_STR_E5;
#define MSG_NOZZLE _UxGT("Nozzle") PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Mou %smm");
#define MSG_BED _UxGT("Llit") PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Mou 0.1mm");
#define MSG_FAN_SPEED _UxGT("Vel. Ventilador") PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Mou 1mm");
#define MSG_FLOW _UxGT("Flux") PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Mou 10mm");
#define MSG_CONTROL _UxGT("Control") PROGMEM Language_Str MSG_SPEED = _UxGT("Velocitat");
#define MSG_MIN LCD_STR_THERMOMETER _UxGT(" Min") PROGMEM Language_Str MSG_BED_Z = _UxGT("Llit Z");
#define MSG_MAX LCD_STR_THERMOMETER _UxGT(" Max") PROGMEM Language_Str MSG_NOZZLE = _UxGT("Nozzle");
#define MSG_FACTOR LCD_STR_THERMOMETER _UxGT(" Fact") PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Nozzle ") LCD_STR_N0;
#define MSG_AUTOTEMP _UxGT("Autotemp") PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Nozzle ") LCD_STR_N1;
#define MSG_LCD_ON _UxGT("On") PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Nozzle ") LCD_STR_N2;
#define MSG_LCD_OFF _UxGT("Off") PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Nozzle ") LCD_STR_N3;
#define MSG_PID_P _UxGT("PID-P") PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Nozzle ") LCD_STR_N4;
#define MSG_PID_I _UxGT("PID-I") PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Nozzle ") LCD_STR_N5;
#define MSG_PID_D _UxGT("PID-D") PROGMEM Language_Str MSG_BED = _UxGT("Llit");
#define MSG_PID_C _UxGT("PID-C") PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Vel. Ventilador");
#define MSG_SELECT _UxGT("Select") PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Vel. Ventilador 1");
#define MSG_ACC _UxGT("Accel") PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Vel. Ventilador 2");
#define MSG_JERK _UxGT("Jerk") PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Vel. Ventilador 3");
#if IS_KINEMATIC PROGMEM Language_Str MSG_FLOW = _UxGT("Flux");
#define MSG_VA_JERK _UxGT("Va-jerk") PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Flux ") LCD_STR_N0;
#define MSG_VB_JERK _UxGT("Vb-jerk") PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Flux ") LCD_STR_N1;
#define MSG_VC_JERK _UxGT("Vc-jerk") PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Flux ") LCD_STR_N2;
#else PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Flux ") LCD_STR_N3;
#define MSG_VA_JERK _UxGT("Vx-jerk") PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Flux ") LCD_STR_N4;
#define MSG_VB_JERK _UxGT("Vy-jerk") PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Flux ") LCD_STR_N5;
#define MSG_VC_JERK _UxGT("Vz-jerk") PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("VViatge min");
#endif PROGMEM Language_Str MSG_AMAX_A = _UxGT("Accel. max ") LCD_STR_A;
#define MSG_VE_JERK _UxGT("Ve-jerk") PROGMEM Language_Str MSG_AMAX_B = _UxGT("Accel. max ") LCD_STR_B;
#define MSG_VMAX _UxGT("Vmax ") PROGMEM Language_Str MSG_AMAX_C = _UxGT("Accel. max ") LCD_STR_C;
#define MSG_VMIN _UxGT("Vmin") PROGMEM Language_Str MSG_AMAX_E = _UxGT("Accel. max ") LCD_STR_E;
#define MSG_VTRAV_MIN _UxGT("VViatge min") PROGMEM Language_Str MSG_AMAX_E0 = _UxGT("Accel. max ") LCD_STR_E0;
#define MSG_AMAX _UxGT("Accel. max ") PROGMEM Language_Str MSG_AMAX_E1 = _UxGT("Accel. max ") LCD_STR_E1;
#define MSG_A_RETRACT _UxGT("Accel. retracc") PROGMEM Language_Str MSG_AMAX_E2 = _UxGT("Accel. max ") LCD_STR_E2;
#define MSG_A_TRAVEL _UxGT("Accel. Viatge") PROGMEM Language_Str MSG_AMAX_E3 = _UxGT("Accel. max ") LCD_STR_E3;
#define MSG_STEPS_PER_MM _UxGT("Passos/mm") PROGMEM Language_Str MSG_AMAX_E4 = _UxGT("Accel. max ") LCD_STR_E4;
#if IS_KINEMATIC PROGMEM Language_Str MSG_AMAX_E5 = _UxGT("Accel. max ") LCD_STR_E5;
#define MSG_ASTEPS _UxGT("Apassos/mm") PROGMEM Language_Str MSG_A_RETRACT = _UxGT("Accel. retracc");
#define MSG_BSTEPS _UxGT("Bpassos/mm") PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("Accel. Viatge");
#define MSG_CSTEPS _UxGT("Cpassos/mm") PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Passos/mm");
#else PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("passos/mm");
#define MSG_ASTEPS _UxGT("Xpassos/mm") PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("passos/mm");
#define MSG_BSTEPS _UxGT("Ypassos/mm") PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("passos/mm");
#define MSG_CSTEPS _UxGT("Zpassos/mm") PROGMEM Language_Str MSG_E_STEPS = _UxGT("Epassos/mm");
#endif PROGMEM Language_Str MSG_E0_STEPS = LCD_STR_E0 _UxGT("passos/mm");
#define MSG_ESTEPS _UxGT("Epassos/mm") PROGMEM Language_Str MSG_E1_STEPS = LCD_STR_E1 _UxGT("passos/mm");
#define MSG_E0_STEPS _UxGT("E1passos/mm") PROGMEM Language_Str MSG_E2_STEPS = LCD_STR_E2 _UxGT("passos/mm");
#define MSG_E1_STEPS _UxGT("E2passos/mm") PROGMEM Language_Str MSG_E3_STEPS = LCD_STR_E3 _UxGT("passos/mm");
#define MSG_E2_STEPS _UxGT("E3passos/mm") PROGMEM Language_Str MSG_E4_STEPS = LCD_STR_E4 _UxGT("passos/mm");
#define MSG_E3_STEPS _UxGT("E4passos/mm") PROGMEM Language_Str MSG_E5_STEPS = LCD_STR_E5 _UxGT("passos/mm");
#define MSG_E4_STEPS _UxGT("E5passos/mm") PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura");
#define MSG_E5_STEPS _UxGT("E6passos/mm") PROGMEM Language_Str MSG_MOTION = _UxGT("Moviment");
#define MSG_TEMPERATURE _UxGT("Temperatura") PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filament");
#define MSG_MOTION _UxGT("Moviment") PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E en mm3");
#define MSG_FILAMENT _UxGT("Filament") PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Diam. Fil.");
#define MSG_VOLUMETRIC_ENABLED _UxGT("E en mm3") PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Diam. Fil. ") LCD_STR_E0;
#define MSG_FILAMENT_DIAM _UxGT("Diam. Fil.") PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Diam. Fil. ") LCD_STR_E1;
#define MSG_CONTRAST _UxGT("Contrast de LCD") PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Diam. Fil. ") LCD_STR_E2;
#define MSG_STORE_EEPROM _UxGT("Desa memoria") PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Diam. Fil. ") LCD_STR_E3;
#define MSG_LOAD_EEPROM _UxGT("Carrega memoria") PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Diam. Fil. ") LCD_STR_E4;
#define MSG_RESTORE_FAILSAFE _UxGT("Restaura valors") PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Diam. Fil. ") LCD_STR_E5;
#define MSG_REFRESH _UxGT("Actualitza") PROGMEM Language_Str MSG_CONTRAST = _UxGT("Contrast de LCD");
#define MSG_WATCH _UxGT("Pantalla Info.") PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Desa memoria");
#define MSG_PREPARE _UxGT("Prepara") PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Carrega memoria");
#define MSG_TUNE _UxGT("Ajusta") PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Restaura valors");
#define MSG_PAUSE_PRINT _UxGT("Pausa impressio") PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Actualitza");
#define MSG_RESUME_PRINT _UxGT("Repren impressio") PROGMEM Language_Str MSG_WATCH = _UxGT("Pantalla Info.");
#define MSG_STOP_PRINT _UxGT("Atura impressio.") PROGMEM Language_Str MSG_PREPARE = _UxGT("Prepara");
#define MSG_MEDIA_MENU _UxGT("Imprimeix de SD") PROGMEM Language_Str MSG_TUNE = _UxGT("Ajusta");
#define MSG_NO_MEDIA _UxGT("No hi ha targeta") PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Pausa impressio");
#define MSG_DWELL _UxGT("En repos...") PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Repren impressio");
#define MSG_USERWAIT _UxGT("Esperant usuari..") PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Atura impressio.");
#define MSG_PRINT_ABORTED _UxGT("Imp. cancelada") PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Imprimeix de SD");
#define MSG_NO_MOVE _UxGT("Sense moviment.") PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("No hi ha targeta");
#define MSG_KILLED _UxGT("MATAT.") PROGMEM Language_Str MSG_DWELL = _UxGT("En repos...");
#define MSG_STOPPED _UxGT("ATURADA.") PROGMEM Language_Str MSG_USERWAIT = _UxGT("Esperant usuari..");
#define MSG_CONTROL_RETRACT _UxGT("Retreu mm") PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Imp. cancelada");
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Swap Retreure mm") PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Sense moviment.");
#define MSG_CONTROL_RETRACTF _UxGT("Retreu V") PROGMEM Language_Str MSG_KILLED = _UxGT("MATAT.");
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Aixeca mm") PROGMEM Language_Str MSG_STOPPED = _UxGT("ATURADA.");
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("DesRet +mm") PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Retreu mm");
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Swap DesRet +mm") PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Swap Retreure mm");
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("DesRet V") PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Retreu V");
#define MSG_AUTORETRACT _UxGT("Auto retraccio") PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Aixeca mm");
#define MSG_FILAMENTCHANGE _UxGT("Canvia filament") PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("DesRet +mm");
#define MSG_INIT_MEDIA _UxGT("Inicialitza SD") PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("Swap DesRet +mm");
#define MSG_CHANGE_MEDIA _UxGT("Canvia SD") PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("DesRet V");
#define MSG_ZPROBE_OUT _UxGT("Sonda Z fora") PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Auto retraccio");
#define MSG_BLTOUCH_RESET _UxGT("Reinicia BLTouch") PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Canvia filament");
#define MSG_HOME_FIRST _UxGT("Home %s%s%s primer") PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Canvia filament ") LCD_STR_E0;
#define MSG_ZPROBE_ZOFFSET _UxGT("Decalatge Z") PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Canvia filament ") LCD_STR_E1;
#define MSG_BABYSTEP_X _UxGT("Micropas X") PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Canvia filament ") LCD_STR_E2;
#define MSG_BABYSTEP_Y _UxGT("Micropas Y") PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Canvia filament ") LCD_STR_E3;
#define MSG_BABYSTEP_Z _UxGT("Micropas Z") PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Canvia filament ") LCD_STR_E4;
#define MSG_ENDSTOP_ABORT _UxGT("Cancel. Endstop") PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Canvia filament ") LCD_STR_E5;
#define MSG_HEATING_FAILED_LCD _UxGT("Error al escalfar") PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Inicialitza SD");
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Err: TEMP REDUNDANT") PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Canvia SD");
#define MSG_THERMAL_RUNAWAY _UxGT("THERMAL RUNAWAY") PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sonda Z fora");
#define MSG_ERR_MAXTEMP _UxGT("Err: TEMP MAXIMA") PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("Reinicia BLTouch");
#define MSG_ERR_MINTEMP _UxGT("Err: TEMP MINIMA") PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("Home %s%s%s primer");
#define MSG_ERR_MAXTEMP_BED _UxGT("Err: TEMPMAX LLIT") PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Decalatge Z");
#define MSG_ERR_MINTEMP_BED _UxGT("Err: TEMPMIN LLIT") PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Micropas X");
#define MSG_ERR_Z_HOMING _UxGT("Home XY primer") PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Micropas Y");
#define MSG_HALTED _UxGT("IMPRESSORA PARADA") PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Micropas Z");
#define MSG_PLEASE_RESET _UxGT("Reinicieu") PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Cancel. Endstop");
#define MSG_SHORT_DAY _UxGT("d") // One character only PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Error al escalfar");
#define MSG_SHORT_HOUR _UxGT("h") // One character only PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("Err: TEMP REDUNDANT");
#define MSG_SHORT_MINUTE _UxGT("m") // One character only PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("THERMAL RUNAWAY");
#define MSG_HEATING _UxGT("Escalfant...") PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("Err: TEMP MAXIMA");
#define MSG_BED_HEATING _UxGT("Escalfant llit...") PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("Err: TEMP MINIMA");
#define MSG_DELTA_CALIBRATE _UxGT("Calibratge Delta") PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("Home XY primer");
#define MSG_DELTA_CALIBRATE_X _UxGT("Calibra X") PROGMEM Language_Str MSG_HALTED = _UxGT("IMPRESSORA PARADA");
#define MSG_DELTA_CALIBRATE_Y _UxGT("Calibra Y") PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Reinicieu");
#define MSG_DELTA_CALIBRATE_Z _UxGT("Calibra Z") PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("d"); // One character only
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Calibra el centre") PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("h"); // One character only
PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("m"); // One character only
PROGMEM Language_Str MSG_HEATING = _UxGT("Escalfant...");
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Escalfant llit...");
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Calibratge Delta");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Calibra X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Calibra Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Calibra Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Calibra el centre");
#define MSG_INFO_MENU _UxGT("Quant a la impr.") PROGMEM Language_Str MSG_INFO_MENU = _UxGT("Quant a la impr.");
#define MSG_INFO_PRINTER_MENU _UxGT("Info Impressora") PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Info Impressora");
#define MSG_INFO_STATS_MENU _UxGT("Estadistiques") PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Estadistiques");
#define MSG_INFO_BOARD_MENU _UxGT("Info placa") PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Info placa");
#define MSG_INFO_THERMISTOR_MENU _UxGT("Termistors") PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Termistors");
#define MSG_INFO_EXTRUDERS _UxGT("Extrusors") PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Extrusors");
#define MSG_INFO_BAUDRATE _UxGT("Baud") PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("Baud");
#define MSG_INFO_PROTOCOL _UxGT("Protocol") PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Protocol");
#define MSG_CASE_LIGHT _UxGT("Llum") PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Llum");
#if LCD_WIDTH >= 20 #if LCD_WIDTH >= 20
#define MSG_INFO_PRINT_COUNT _UxGT("Total impressions") PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Total impressions");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Acabades") PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Acabades");
#define MSG_INFO_PRINT_TIME _UxGT("Temps imprimint") PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Temps imprimint");
#define MSG_INFO_PRINT_LONGEST _UxGT("Treball mes llarg") PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Treball mes llarg");
#define MSG_INFO_PRINT_FILAMENT _UxGT("Total extrudit") PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Total extrudit");
#else #else
#define MSG_INFO_PRINT_COUNT _UxGT("Impressions") PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Impressions");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Acabades") PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Acabades");
#define MSG_INFO_PRINT_TIME _UxGT("Total") PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Total");
#define MSG_INFO_PRINT_LONGEST _UxGT("Mes llarg") PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Mes llarg");
#define MSG_INFO_PRINT_FILAMENT _UxGT("Extrudit") PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Extrudit");
#endif #endif
#define MSG_INFO_MIN_TEMP _UxGT("Temp. mínima") PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Temp. mínima");
#define MSG_INFO_MAX_TEMP _UxGT("Temp. màxima") PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Temp. màxima");
#define MSG_INFO_PSU _UxGT("Font alimentacio") PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Font alimentacio");
#define MSG_DRIVE_STRENGTH _UxGT("Força motor") PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Força motor");
#define MSG_DAC_PERCENT _UxGT("Driver %") PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Driver %");
#define MSG_DAC_EEPROM_WRITE _UxGT("DAC EEPROM Write") PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC EEPROM Write");
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Repren impressió") PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Repren impressió");
#define MSG_EXPECTED_PRINTER _UxGT("Impressora incorrecta") PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Impressora incorrecta");
// //
// Filament Change screens show up to 3 lines on a 4-line display // Filament Change screens show up to 3 lines on a 4-line display
// ...or up to 2 lines on a 3-line display // ...or up to 2 lines on a 3-line display
// //
#if LCD_HEIGHT >= 4 #if LCD_HEIGHT >= 4
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Esperant per") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Esperant per", "iniciar el canvi", "de filament"));
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("iniciar el canvi") PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Esperant per", "treure filament"));
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("de filament") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Poseu filament", "i premeu el boto", "per continuar..."));
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Esperant per") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Premeu boto per", "escalfar nozzle."));
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("treure filament") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("Escalfant nozzle", "Espereu..."));
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Poseu filament") PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Esperant carrega", "de filament"));
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("i premeu el boto") PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("Esperant per", "reprendre"));
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("per continuar...") #else // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Premeu boto per") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Espereu..."));
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("escalfar nozzle.") PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Expulsant..."));
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Escalfant nozzle") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Insereix i prem"));
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Espereu...") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("Escalfant..."));
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Esperant carrega") PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Carregant..."));
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("de filament") PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Reprenent..."));
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Esperant per") #endif // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("reprendre") }
#else // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Espereu...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Expulsant...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Insereix i prem")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Escalfant...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Carregant...")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Reprenent...")
#endif // LCD_HEIGHT < 4

View file

@ -35,521 +35,578 @@
*/ */
#define DISPLAY_CHARSET_ISO10646_CZ #define DISPLAY_CHARSET_ISO10646_CZ
#define THIS_LANGUAGES_SPECIAL_SYMBOLS _UxGT("áÁčČďĎéÉěĚíÍňŇóÓřŘšŠťŤúÚůŮýÝžŽ³")
#define CHARSIZE 2
#define WELCOME_MSG MACHINE_NAME _UxGT(" připraven.") namespace Language_cz {
#define MSG_YES _UxGT("ANO") using namespace Language_en; // Inherit undefined strings from English
#define MSG_NO _UxGT("NE")
#define MSG_BACK _UxGT("Zpět")
#define MSG_MEDIA_INSERTED _UxGT("Karta vložena")
#define MSG_MEDIA_REMOVED _UxGT("Karta vyjmuta")
#define MSG_LCD_ENDSTOPS _UxGT("Endstopy") // max 8 znaku
#define MSG_LCD_SOFT_ENDSTOPS _UxGT("Soft Endstopy")
#define MSG_MAIN _UxGT("Hlavní nabídka")
#define MSG_ADVANCED_SETTINGS _UxGT("Další nastavení")
#define MSG_CONFIGURATION _UxGT("Konfigurace")
#define MSG_AUTOSTART _UxGT("Autostart")
#define MSG_DISABLE_STEPPERS _UxGT("Uvolnit motory")
#define MSG_DEBUG_MENU _UxGT("Nabídka ladění")
#if LCD_WIDTH >= 20
#define MSG_PROGRESS_BAR_TEST _UxGT("Test ukaz. průběhu")
#else
#define MSG_PROGRESS_BAR_TEST _UxGT("Test uk. průběhu")
#endif
#define MSG_AUTO_HOME _UxGT("Domovská pozice")
#define MSG_AUTO_HOME_X _UxGT("Domů osa X")
#define MSG_AUTO_HOME_Y _UxGT("Domů osa Y")
#define MSG_AUTO_HOME_Z _UxGT("Domů osa Z")
#define MSG_AUTO_Z_ALIGN _UxGT("Auto srovnání Z")
#define MSG_LEVEL_BED_HOMING _UxGT("Měření podložky")
#define MSG_LEVEL_BED_WAITING _UxGT("Kliknutím spusťte")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Další bod")
#define MSG_LEVEL_BED_DONE _UxGT("Měření hotovo!")
#define MSG_Z_FADE_HEIGHT _UxGT("Výška srovnávání")
#define MSG_SET_HOME_OFFSETS _UxGT("Nastavit ofsety")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Ofsety nastaveny")
#define MSG_SET_ORIGIN _UxGT("Nastavit počátek")
#define MSG_PREHEAT_1 _UxGT("Zahřát " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ")
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" vše")
#define MSG_PREHEAT_1_END MSG_PREHEAT_1 _UxGT(" hotend")
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" podlož")
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" nast")
#define MSG_PREHEAT_2 _UxGT("Zahřát " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ")
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" vše")
#define MSG_PREHEAT_2_END MSG_PREHEAT_2 _UxGT(" hotend")
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" podlož")
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" nast")
#define MSG_PREHEAT_CUSTOM _UxGT("Zahřát vlastní")
#define MSG_COOLDOWN _UxGT("Zchladit")
#define MSG_LASER_MENU _UxGT("Ovládání laseru")
#define MSG_LASER_OFF _UxGT("Vypnout laser")
#define MSG_LASER_ON _UxGT("Zapnout laser")
#define MSG_LASER_POWER _UxGT("Výkon laseru")
#define MSG_SPINDLE_REVERSE _UxGT("Vřeteno opačně")
#define MSG_SWITCH_PS_ON _UxGT("Zapnout napájení")
#define MSG_SWITCH_PS_OFF _UxGT("Vypnout napájení")
#define MSG_EXTRUDE _UxGT("Vytlačit (extr.)")
#define MSG_RETRACT _UxGT("Zatlačit (retr.)")
#define MSG_MOVE_AXIS _UxGT("Posunout osy")
#define MSG_BED_LEVELING _UxGT("Vyrovnat podložku")
#define MSG_LEVEL_BED _UxGT("Vyrovnat podložku")
#define MSG_LEVEL_CORNERS _UxGT("Vyrovnat rohy")
#define MSG_NEXT_CORNER _UxGT("Další roh")
#define MSG_EDIT_MESH _UxGT("Upravit síť bodů")
#define MSG_EDITING_STOPPED _UxGT("Konec úprav sítě")
#define MSG_MESH_X _UxGT("Index X")
#define MSG_MESH_Y _UxGT("Index Y")
#define MSG_MESH_EDIT_Z _UxGT("Hodnota Z")
#define MSG_USER_MENU _UxGT("Vlastní příkazy") constexpr uint8_t CHARSIZE = 2;
#define MSG_IDEX_MENU _UxGT("Režim IDEX") PROGMEM Language_Str LANGUAGE = _UxGT("Czech");
#define MSG_OFFSETS_MENU _UxGT("Ofsety nástrojů")
#define MSG_IDEX_MODE_AUTOPARK _UxGT("Auto-Park")
#define MSG_IDEX_MODE_DUPLICATE _UxGT("Duplikace")
#define MSG_IDEX_MODE_MIRRORED_COPY _UxGT("Zrcadlení")
#define MSG_IDEX_MODE_FULL_CTRL _UxGT("Plná kontrola")
#define MSG_X_OFFSET _UxGT("2. tryska X")
#define MSG_Y_OFFSET _UxGT("2. tryska Y")
#define MSG_Z_OFFSET _UxGT("2. tryska Z")
#define MSG_UBL_DOING_G29 _UxGT("Provádím G29") PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" připraven.");
#define MSG_UBL_TOOLS _UxGT("UBL nástroje") PROGMEM Language_Str MSG_YES = _UxGT("ANO");
#define MSG_UBL_LEVEL_BED _UxGT("Unified Bed Leveling") PROGMEM Language_Str MSG_NO = _UxGT("NE");
#define MSG_UBL_MANUAL_MESH _UxGT("Manuální síť bodů") PROGMEM Language_Str MSG_BACK = _UxGT("Zpět");
#define MSG_UBL_BC_INSERT _UxGT("Vložte kartu, změřte") PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Karta vložena");
#define MSG_UBL_BC_INSERT2 _UxGT("Změřte") PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Karta vyjmuta");
#define MSG_UBL_BC_REMOVE _UxGT("Odstraňte a změřte") PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Endstopy"); // max 8 znaku
#define MSG_UBL_MOVING_TO_NEXT _UxGT("Přesun na další") PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("Soft Endstopy");
#define MSG_UBL_ACTIVATE_MESH _UxGT("Aktivovat UBL") PROGMEM Language_Str MSG_MAIN = _UxGT("Hlavní nabídka");
#define MSG_UBL_DEACTIVATE_MESH _UxGT("Deaktivovat UBL") PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("Další nastavení");
#define MSG_UBL_SET_TEMP_BED _UxGT("Teplota podložky") PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("Konfigurace");
#define MSG_UBL_BED_TEMP_CUSTOM MSG_UBL_SET_TEMP_BED PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Autostart");
#define MSG_UBL_SET_TEMP_HOTEND _UxGT("Teplota hotendu") PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Uvolnit motory");
#define MSG_UBL_HOTEND_TEMP_CUSTOM MSG_UBL_SET_TEMP_HOTEND PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("Nabídka ladění");
#define MSG_UBL_MESH_EDIT _UxGT("Úprava sítě bodů") #if LCD_WIDTH >= 20
#define MSG_UBL_EDIT_CUSTOM_MESH _UxGT("Upravit vlastní síť") PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Test ukaz. průběhu");
#define MSG_UBL_FINE_TUNE_MESH _UxGT("Doladit síť bodů") #else
#define MSG_UBL_DONE_EDITING_MESH _UxGT("Konec úprav sítě") PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Test uk. průběhu");
#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Vlastní síť") #endif
#define MSG_UBL_BUILD_MESH_MENU _UxGT("Vytvořit síť") PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Domovská pozice");
#define MSG_UBL_BUILD_MESH_M1 _UxGT("Síť bodů " PREHEAT_1_LABEL) PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Domů osa X");
#define MSG_UBL_BUILD_MESH_M2 _UxGT("Síť bodů " PREHEAT_2_LABEL) PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Domů osa Y");
#define MSG_UBL_BUILD_COLD_MESH _UxGT("Studená síť bodů") PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Domů osa Z");
#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Upravit výšku sítě") PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("Auto srovnání Z");
#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Výška") PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Měření podložky");
#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("Zkontrolovat síť") PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Kliknutím spusťte");
#define MSG_UBL_VALIDATE_MESH_M1 _UxGT("Kontrola sítě " PREHEAT_1_LABEL) PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Další bod");
#define MSG_UBL_VALIDATE_MESH_M2 _UxGT("Kontrola sítě " PREHEAT_2_LABEL) PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Měření hotovo!");
#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Kontrola vlast. sítě") PROGMEM Language_Str MSG_Z_FADE_HEIGHT = _UxGT("Výška srovnávání");
#define MSG_UBL_CONTINUE_MESH _UxGT("Pokračovat v síťi") PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Nastavit ofsety");
#define MSG_UBL_MESH_LEVELING _UxGT("Síťové rovnání") PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Ofsety nastaveny");
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("3-bodové rovnání") PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Nastavit počátek");
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Mřížkové rovnání") PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Zahřát ") PREHEAT_1_LABEL;
#define MSG_UBL_MESH_LEVEL _UxGT("Srovnat podložku") PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Zahřát ") PREHEAT_1_LABEL " " LCD_STR_N0;
#define MSG_UBL_SIDE_POINTS _UxGT("Postranní body") PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Zahřát ") PREHEAT_1_LABEL " " LCD_STR_N1;
#define MSG_UBL_MAP_TYPE _UxGT("Typ sítě bodu") PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Zahřát ") PREHEAT_1_LABEL " " LCD_STR_N2;
#define MSG_UBL_OUTPUT_MAP _UxGT("Exportovat síť") PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Zahřát ") PREHEAT_1_LABEL " " LCD_STR_N3;
#define MSG_UBL_OUTPUT_MAP_HOST _UxGT("Exportovat do PC") PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Zahřát ") PREHEAT_1_LABEL " " LCD_STR_N4;
#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Exportovat do CSV") PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Zahřát ") PREHEAT_1_LABEL " " LCD_STR_N5;
#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Záloha do PC") PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Zahřát ") PREHEAT_1_LABEL _UxGT(" end");
#define MSG_UBL_INFO_UBL _UxGT("Info o UBL do PC") PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Zahřát ") PREHEAT_1_LABEL _UxGT(" end ") LCD_STR_N0;
#define MSG_UBL_FILLIN_AMOUNT _UxGT("Hustota mřížky") PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Zahřát ") PREHEAT_1_LABEL _UxGT(" end ") LCD_STR_N1;
#define MSG_UBL_MANUAL_FILLIN _UxGT("Ruční hustota") PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Zahřát ") PREHEAT_1_LABEL _UxGT(" end ") LCD_STR_N2;
#define MSG_UBL_SMART_FILLIN _UxGT("Chytrá hustota") PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Zahřát ") PREHEAT_1_LABEL _UxGT(" end ") LCD_STR_N3;
#define MSG_UBL_FILLIN_MESH _UxGT("Zaplnit mřížku") PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Zahřát ") PREHEAT_1_LABEL _UxGT(" end ") LCD_STR_N4;
#define MSG_UBL_INVALIDATE_ALL _UxGT("Zrušit všechno") PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Zahřát ") PREHEAT_1_LABEL _UxGT(" end ") LCD_STR_N5;
#define MSG_UBL_INVALIDATE_CLOSEST _UxGT("Zrušit poslední") PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Zahřát ") PREHEAT_1_LABEL _UxGT(" vše");
#define MSG_UBL_FINE_TUNE_ALL _UxGT("Upravit všechny") PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Zahřát ") PREHEAT_1_LABEL _UxGT(" podlož");
#define MSG_UBL_FINE_TUNE_CLOSEST _UxGT("Upravit poslední") PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Zahřát ") PREHEAT_1_LABEL _UxGT(" nast");
#define MSG_UBL_STORAGE_MESH_MENU _UxGT("Uložiště sítí") PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Zahřát ") PREHEAT_2_LABEL;
#define MSG_UBL_STORAGE_SLOT _UxGT("Paměťový slot") PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Zahřát ") PREHEAT_2_LABEL " " LCD_STR_N0;
#define MSG_UBL_LOAD_MESH _UxGT("Načíst síť bodů") PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Zahřát ") PREHEAT_2_LABEL " " LCD_STR_N1;
#define MSG_UBL_SAVE_MESH _UxGT("Uložit síť bodů") PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Zahřát ") PREHEAT_2_LABEL " " LCD_STR_N2;
#define MSG_MESH_LOADED _UxGT("Síť %i načtena") PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Zahřát ") PREHEAT_2_LABEL " " LCD_STR_N3;
#define MSG_MESH_SAVED _UxGT("Síť %i uložena") PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Zahřát ") PREHEAT_2_LABEL " " LCD_STR_N4;
#define MSG_UBL_NO_STORAGE _UxGT("Nedostatek místa") PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Zahřát ") PREHEAT_2_LABEL " " LCD_STR_N5;
#define MSG_UBL_SAVE_ERROR _UxGT("Ch.: Uložit UBL") PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Zahřát ") PREHEAT_2_LABEL _UxGT(" end");
#define MSG_UBL_RESTORE_ERROR _UxGT("Ch.: Obnovit UBL") PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Zahřát ") PREHEAT_2_LABEL _UxGT(" end ") LCD_STR_N0;
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Konec Z-Offsetu") PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Zahřát ") PREHEAT_2_LABEL _UxGT(" end ") LCD_STR_N1;
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("UBL Postupně") PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Zahřát ") PREHEAT_2_LABEL _UxGT(" end ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Zahřát ") PREHEAT_2_LABEL _UxGT(" end ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Zahřát ") PREHEAT_2_LABEL _UxGT(" end ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Zahřát ") PREHEAT_2_LABEL _UxGT(" end ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Zahřát ") PREHEAT_2_LABEL _UxGT(" vše");
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Zahřát ") PREHEAT_2_LABEL _UxGT(" podlož");
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Zahřát ") PREHEAT_2_LABEL _UxGT(" nast");
PROGMEM Language_Str MSG_PREHEAT_CUSTOM = _UxGT("Zahřát vlastní");
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Zchladit");
PROGMEM Language_Str MSG_LASER_MENU = _UxGT("Ovládání laseru");
PROGMEM Language_Str MSG_LASER_OFF = _UxGT("Vypnout laser");
PROGMEM Language_Str MSG_LASER_ON = _UxGT("Zapnout laser");
PROGMEM Language_Str MSG_LASER_POWER = _UxGT("Výkon laseru");
PROGMEM Language_Str MSG_SPINDLE_REVERSE = _UxGT("Vřeteno opačně");
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Zapnout napájení");
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Vypnout napájení");
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Vytlačit (extr.)");
PROGMEM Language_Str MSG_RETRACT = _UxGT("Zatlačit (retr.)");
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Posunout osy");
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Vyrovnat podložku");
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Vyrovnat podložku");
PROGMEM Language_Str MSG_LEVEL_CORNERS = _UxGT("Vyrovnat rohy");
PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("Další roh");
PROGMEM Language_Str MSG_EDIT_MESH = _UxGT("Upravit síť bodů");
PROGMEM Language_Str MSG_EDITING_STOPPED = _UxGT("Konec úprav sítě");
PROGMEM Language_Str MSG_MESH_X = _UxGT("Index X");
PROGMEM Language_Str MSG_MESH_Y = _UxGT("Index Y");
PROGMEM Language_Str MSG_MESH_EDIT_Z = _UxGT("Hodnota Z");
#define MSG_LED_CONTROL _UxGT("Nastavení LED") PROGMEM Language_Str MSG_USER_MENU = _UxGT("Vlastní příkazy");
#define MSG_LEDS _UxGT("Světla") PROGMEM Language_Str MSG_IDEX_MENU = _UxGT("Režim IDEX");
#define MSG_LED_PRESETS _UxGT("Světla Předvolby") PROGMEM Language_Str MSG_OFFSETS_MENU = _UxGT("Ofsety nástrojů");
#define MSG_SET_LEDS_RED _UxGT("Červená") PROGMEM Language_Str MSG_IDEX_MODE_AUTOPARK = _UxGT("Auto-Park");
#define MSG_SET_LEDS_ORANGE _UxGT("Oranžová") PROGMEM Language_Str MSG_IDEX_MODE_DUPLICATE = _UxGT("Duplikace");
#define MSG_SET_LEDS_YELLOW _UxGT("Žlutá") PROGMEM Language_Str MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Zrcadlení");
#define MSG_SET_LEDS_GREEN _UxGT("Zelená") PROGMEM Language_Str MSG_IDEX_MODE_FULL_CTRL = _UxGT("Plná kontrola");
#define MSG_SET_LEDS_BLUE _UxGT("Modrá") PROGMEM Language_Str MSG_X_OFFSET = _UxGT("2. tryska X");
#define MSG_SET_LEDS_INDIGO _UxGT("Indigo") PROGMEM Language_Str MSG_Y_OFFSET = _UxGT("2. tryska Y");
#define MSG_SET_LEDS_VIOLET _UxGT("Fialová") PROGMEM Language_Str MSG_Z_OFFSET = _UxGT("2. tryska Z");
#define MSG_SET_LEDS_WHITE _UxGT("Bílá")
#define MSG_SET_LEDS_DEFAULT _UxGT("Výchozí")
#define MSG_CUSTOM_LEDS _UxGT("Vlastní světla")
#define MSG_INTENSITY_R _UxGT("Červená intenzita")
#define MSG_INTENSITY_G _UxGT("Zelená intezita")
#define MSG_INTENSITY_B _UxGT("Modrá intenzita")
#define MSG_INTENSITY_W _UxGT("Bílá intenzita")
#define MSG_LED_BRIGHTNESS _UxGT("Jas")
#define MSG_MOVING _UxGT("Posouvání...") PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("Provádím G29");
#define MSG_FREE_XY _UxGT("Uvolnit XY") PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("UBL nástroje");
#define MSG_MOVE_X _UxGT("Posunout X") PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("Unified Bed Leveling");
#define MSG_MOVE_Y _UxGT("Posunout Y") PROGMEM Language_Str MSG_UBL_MANUAL_MESH = _UxGT("Manuální síť bodů");
#define MSG_MOVE_Z _UxGT("Posunout Z") PROGMEM Language_Str MSG_UBL_BC_INSERT = _UxGT("Vložte kartu, změřte");
#define MSG_MOVE_E _UxGT("Extrudér") PROGMEM Language_Str MSG_UBL_BC_INSERT2 = _UxGT("Změřte");
#define MSG_HOTEND_TOO_COLD _UxGT("Hotend je studený") PROGMEM Language_Str MSG_UBL_BC_REMOVE = _UxGT("Odstraňte a změřte");
#define MSG_MOVE_Z_DIST _UxGT("Posunout o %smm") PROGMEM Language_Str MSG_UBL_MOVING_TO_NEXT = _UxGT("Přesun na další");
#define MSG_MOVE_01MM _UxGT("Posunout o 0,1mm") PROGMEM Language_Str MSG_UBL_ACTIVATE_MESH = _UxGT("Aktivovat UBL");
#define MSG_MOVE_1MM _UxGT("Posunout o 1mm") PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("Deaktivovat UBL");
#define MSG_MOVE_10MM _UxGT("Posunout o 10mm") PROGMEM Language_Str MSG_UBL_SET_TEMP_BED = _UxGT("Teplota podložky");
#define MSG_SPEED _UxGT("Rychlost") PROGMEM Language_Str MSG_UBL_BED_TEMP_CUSTOM = _UxGT("Teplota podložky");
#define MSG_BED_Z _UxGT("Výška podl.") PROGMEM Language_Str MSG_UBL_SET_TEMP_HOTEND = _UxGT("Teplota hotendu");
#define MSG_NOZZLE _UxGT("Tryska") PROGMEM Language_Str MSG_UBL_HOTEND_TEMP_CUSTOM = _UxGT("Teplota hotendu");
#define MSG_BED _UxGT("Podložka") PROGMEM Language_Str MSG_UBL_MESH_EDIT = _UxGT("Úprava sítě bodů");
#define MSG_CHAMBER _UxGT("Komora") PROGMEM Language_Str MSG_UBL_EDIT_CUSTOM_MESH = _UxGT("Upravit vlastní síť");
#define MSG_FAN_SPEED _UxGT("Rychlost vent.") PROGMEM Language_Str MSG_UBL_FINE_TUNE_MESH = _UxGT("Doladit síť bodů");
#define MSG_EXTRA_FAN_SPEED _UxGT("Rychlost ex. vent.") PROGMEM Language_Str MSG_UBL_DONE_EDITING_MESH = _UxGT("Konec úprav sítě");
#define MSG_FLOW _UxGT("Průtok") PROGMEM Language_Str MSG_UBL_BUILD_CUSTOM_MESH = _UxGT("Vlastní síť");
#define MSG_CONTROL _UxGT("Ovládaní") PROGMEM Language_Str MSG_UBL_BUILD_MESH_MENU = _UxGT("Vytvořit síť");
#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Min") PROGMEM Language_Str MSG_UBL_BUILD_MESH_M1 = _UxGT("Síť bodů ") PREHEAT_1_LABEL;
#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Max") PROGMEM Language_Str MSG_UBL_BUILD_MESH_M2 = _UxGT("Síť bodů ") PREHEAT_2_LABEL;
#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Fakt") PROGMEM Language_Str MSG_UBL_BUILD_COLD_MESH = _UxGT("Studená síť bodů");
#define MSG_AUTOTEMP _UxGT("Autoteplota") PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_ADJUST = _UxGT("Upravit výšku sítě");
#define MSG_LCD_ON _UxGT("Zap") PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_AMOUNT = _UxGT("Výška");
#define MSG_LCD_OFF _UxGT("Vyp") PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_MENU = _UxGT("Zkontrolovat síť");
#define MSG_PID_P _UxGT("PID-P") PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M1 = _UxGT("Kontrola sítě ") PREHEAT_1_LABEL;
#define MSG_PID_I _UxGT("PID-I") PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M2 = _UxGT("Kontrola sítě ") PREHEAT_2_LABEL;
#define MSG_PID_D _UxGT("PID-D") PROGMEM Language_Str MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("Kontrola vlast. sítě");
#define MSG_PID_C _UxGT("PID-C") PROGMEM Language_Str MSG_UBL_CONTINUE_MESH = _UxGT("Pokračovat v síťi");
#define MSG_SELECT _UxGT("Vybrat") PROGMEM Language_Str MSG_UBL_MESH_LEVELING = _UxGT("Síťové rovnání");
#define MSG_ACC _UxGT("Zrychl") PROGMEM Language_Str MSG_UBL_3POINT_MESH_LEVELING = _UxGT("3-bodové rovnání");
#define MSG_JERK _UxGT("Jerk") PROGMEM Language_Str MSG_UBL_GRID_MESH_LEVELING = _UxGT("Mřížkové rovnání");
#if IS_KINEMATIC PROGMEM Language_Str MSG_UBL_MESH_LEVEL = _UxGT("Srovnat podložku");
#define MSG_VA_JERK _UxGT("Va-jerk") PROGMEM Language_Str MSG_UBL_SIDE_POINTS = _UxGT("Postranní body");
#define MSG_VB_JERK _UxGT("Vb-jerk") PROGMEM Language_Str MSG_UBL_MAP_TYPE = _UxGT("Typ sítě bodu");
#define MSG_VC_JERK _UxGT("Vc-jerk") PROGMEM Language_Str MSG_UBL_OUTPUT_MAP = _UxGT("Exportovat síť");
#else PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_HOST = _UxGT("Exportovat do PC");
#define MSG_VA_JERK _UxGT("Vx-jerk") PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_CSV = _UxGT("Exportovat do CSV");
#define MSG_VB_JERK _UxGT("Vy-jerk") PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_BACKUP = _UxGT("Záloha do PC");
#define MSG_VC_JERK _UxGT("Vz-jerk") PROGMEM Language_Str MSG_UBL_INFO_UBL = _UxGT("Info o UBL do PC");
#endif PROGMEM Language_Str MSG_UBL_FILLIN_AMOUNT = _UxGT("Hustota mřížky");
#define MSG_VE_JERK _UxGT("Ve-jerk") PROGMEM Language_Str MSG_UBL_MANUAL_FILLIN = _UxGT("Ruční hustota");
#define MSG_JUNCTION_DEVIATION _UxGT("Odchylka spoje") PROGMEM Language_Str MSG_UBL_SMART_FILLIN = _UxGT("Chytrá hustota");
#define MSG_VELOCITY _UxGT("Rychlost") PROGMEM Language_Str MSG_UBL_FILLIN_MESH = _UxGT("Zaplnit mřížku");
#define MSG_VMAX _UxGT("Vmax ") PROGMEM Language_Str MSG_UBL_INVALIDATE_ALL = _UxGT("Zrušit všechno");
#define MSG_VMIN _UxGT("Vmin") PROGMEM Language_Str MSG_UBL_INVALIDATE_CLOSEST = _UxGT("Zrušit poslední");
#define MSG_VTRAV_MIN _UxGT("VTrav min") PROGMEM Language_Str MSG_UBL_FINE_TUNE_ALL = _UxGT("Upravit všechny");
#define MSG_ACCELERATION _UxGT("Akcelerace") PROGMEM Language_Str MSG_UBL_FINE_TUNE_CLOSEST = _UxGT("Upravit poslední");
#define MSG_AMAX _UxGT("Amax ") PROGMEM Language_Str MSG_UBL_STORAGE_MESH_MENU = _UxGT("Uložiště sítí");
#define MSG_A_RETRACT _UxGT("A-retrakt") PROGMEM Language_Str MSG_UBL_STORAGE_SLOT = _UxGT("Paměťový slot");
#define MSG_A_TRAVEL _UxGT("A-přejezd") PROGMEM Language_Str MSG_UBL_LOAD_MESH = _UxGT("Načíst síť bodů");
#define MSG_STEPS_PER_MM _UxGT("Kroků/mm") PROGMEM Language_Str MSG_UBL_SAVE_MESH = _UxGT("Uložit síť bodů");
#if IS_KINEMATIC PROGMEM Language_Str MSG_MESH_LOADED = _UxGT("M117 Síť %i načtena");
#define MSG_ASTEPS _UxGT("Akroků/mm") PROGMEM Language_Str MSG_MESH_SAVED = _UxGT("M117 Síť %i uložena");
#define MSG_BSTEPS _UxGT("Bkroků/mm") PROGMEM Language_Str MSG_UBL_NO_STORAGE = _UxGT("Nedostatek místa");
#define MSG_CSTEPS _UxGT("Ckroků/mm") PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("Ch.: Uložit UBL");
#else PROGMEM Language_Str MSG_UBL_RESTORE_ERROR = _UxGT("Ch.: Obnovit UBL");
#define MSG_ASTEPS _UxGT("Xkroků/mm") PROGMEM Language_Str MSG_UBL_Z_OFFSET_STOPPED = _UxGT("Konec Z-Offsetu");
#define MSG_BSTEPS _UxGT("Ykroků/mm") PROGMEM Language_Str MSG_UBL_STEP_BY_STEP_MENU = _UxGT("UBL Postupně");
#define MSG_CSTEPS _UxGT("Zkroků/mm") PROGMEM Language_Str MSG_UBL_1_BUILD_COLD_MESH = _UxGT("1. Studená síť bodů");
#endif PROGMEM Language_Str MSG_UBL_2_SMART_FILLIN = _UxGT("2. Chytrá hustota");
#define MSG_ESTEPS _UxGT("Ekroků/mm") PROGMEM Language_Str MSG_UBL_3_VALIDATE_MESH_MENU = _UxGT("3. Zkontrolovat síť");
#define MSG_E0_STEPS _UxGT("E1kroků/mm") PROGMEM Language_Str MSG_UBL_4_FINE_TUNE_ALL = _UxGT("4. Upravit všechny");
#define MSG_E1_STEPS _UxGT("E2kroků/mm") PROGMEM Language_Str MSG_UBL_5_VALIDATE_MESH_MENU = _UxGT("5. Zkontrolovat síť");
#define MSG_E2_STEPS _UxGT("E3kroků/mm") PROGMEM Language_Str MSG_UBL_6_FINE_TUNE_ALL = _UxGT("6. Upravit všechny");
#define MSG_E3_STEPS _UxGT("E4kroků/mm") PROGMEM Language_Str MSG_UBL_7_SAVE_MESH = _UxGT("7. Uložit síť bodů");
#define MSG_E4_STEPS _UxGT("E5kroků/mm")
#define MSG_E5_STEPS _UxGT("E6kroků/mm")
#define MSG_TEMPERATURE _UxGT("Teplota")
#define MSG_MOTION _UxGT("Pohyb")
#define MSG_FILAMENT _UxGT("Filament")
#define MSG_VOLUMETRIC_ENABLED _UxGT("E na mm3")
#define MSG_FILAMENT_DIAM _UxGT("Fil. Prum.")
#define MSG_FILAMENT_UNLOAD _UxGT("Vysunout mm")
#define MSG_FILAMENT_LOAD _UxGT("Zavést mm")
#define MSG_ADVANCE_K _UxGT("K pro posun")
#define MSG_CONTRAST _UxGT("Kontrast LCD")
#define MSG_STORE_EEPROM _UxGT("Uložit nastavení")
#define MSG_LOAD_EEPROM _UxGT("Načíst nastavení")
#define MSG_RESTORE_FAILSAFE _UxGT("Obnovit výchozí")
#define MSG_INIT_EEPROM _UxGT("Inic. EEPROM")
#define MSG_MEDIA_UPDATE _UxGT("Aktualizace z SD")
#define MSG_RESET_PRINTER _UxGT("Reset tiskárny")
#define MSG_REFRESH _UxGT("Obnovit")
#define MSG_WATCH _UxGT("Info obrazovka")
#define MSG_PREPARE _UxGT("Připrava tisku")
#define MSG_TUNE _UxGT("Doladění tisku")
#define MSG_START_PRINT _UxGT("Spustit tisk")
#define MSG_BUTTON_PRINT _UxGT("Tisk")
#define MSG_BUTTON_CANCEL _UxGT("Zrušit")
#define MSG_PAUSE_PRINT _UxGT("Pozastavit tisk")
#define MSG_RESUME_PRINT _UxGT("Obnovit tisk")
#define MSG_STOP_PRINT _UxGT("Zastavit tisk")
#define MSG_OUTAGE_RECOVERY _UxGT("Obnova výpadku")
#define MSG_MEDIA_MENU _UxGT("Tisknout z SD")
#define MSG_NO_MEDIA _UxGT("Žádná SD karta")
#define MSG_DWELL _UxGT("Uspáno...")
#define MSG_USERWAIT _UxGT("Čekání na uživ...")
#define MSG_PRINT_PAUSED _UxGT("Tisk pozastaven")
#define MSG_PRINTING _UxGT("Tisknu...")
#define MSG_PRINT_ABORTED _UxGT("Tisk zrušen")
#define MSG_NO_MOVE _UxGT("Žádný pohyb.")
#define MSG_KILLED _UxGT("PŘERUSENO. ")
#define MSG_STOPPED _UxGT("ZASTAVENO. ")
#define MSG_CONTROL_RETRACT _UxGT("Retrakt mm")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Výměna Re.mm")
#define MSG_CONTROL_RETRACTF _UxGT("Retraktovat V")
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Zvednuti Z mm")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("S UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("UnRet V")
#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V")
#define MSG_AUTORETRACT _UxGT("AutoRetr.")
#define MSG_FILAMENT_SWAP_LENGTH _UxGT("Délka retrakce")
#define MSG_TOOL_CHANGE _UxGT("Výměna nástroje")
#define MSG_TOOL_CHANGE_ZLIFT _UxGT("Zdvih Z")
#define MSG_SINGLENOZZLE_PRIME_SPD _UxGT("Rychlost primár.")
#define MSG_SINGLENOZZLE_RETRACT_SPD _UxGT("Rychlost retrak.")
#define MSG_NOZZLE_STANDBY _UxGT("Tryska standby")
#define MSG_FILAMENTCHANGE _UxGT("Vyměnit filament")
#define MSG_FILAMENTLOAD _UxGT("Zavést filament")
#define MSG_FILAMENTUNLOAD _UxGT("Vysunout filament")
#define MSG_FILAMENTUNLOAD_ALL _UxGT("Vysunout vše")
#define MSG_INIT_MEDIA _UxGT("Načíst SD kartu") PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("Nastavení LED");
#define MSG_CHANGE_MEDIA _UxGT("Vyměnit SD kartu") PROGMEM Language_Str MSG_LEDS = _UxGT("Světla");
#define MSG_ZPROBE_OUT _UxGT("Sonda Z mimo podl") PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("Světla Předvolby");
#define MSG_SKEW_FACTOR _UxGT("Faktor zkosení") PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("Červená");
#define MSG_BLTOUCH _UxGT("BLTouch") PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("Oranžová");
#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch self-test") PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("Žlutá");
#define MSG_BLTOUCH_RESET _UxGT("BLTouch reset") PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("Zelená");
#define MSG_BLTOUCH_DEPLOY _UxGT("BLTouch vysunout") PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("Modrá");
#define MSG_BLTOUCH_SW_MODE _UxGT("SW výsun BLTouch") PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("Indigo");
#define MSG_BLTOUCH_5V_MODE _UxGT("BLTouch 5V režim") PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Fialová");
#define MSG_BLTOUCH_OD_MODE _UxGT("BLTouch OD režim") PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("Bílá");
#define MSG_BLTOUCH_STOW _UxGT("BLTouch zasunout") PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("Výchozí");
#define MSG_MANUAL_DEPLOY _UxGT("Vysunout Z-sondu") PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("Vlastní světla");
#define MSG_MANUAL_STOW _UxGT("Zasunout Z-sondu") PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Červená intenzita");
#define MSG_HOME_FIRST _UxGT("Domů %s%s%s první") PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Zelená intezita");
#define MSG_ZPROBE_ZOFFSET _UxGT("Z ofset") PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("Modrá intenzita");
#define MSG_BABYSTEP_X _UxGT("Babystep X") PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("Bílá intenzita");
#define MSG_BABYSTEP_Y _UxGT("Babystep Y") PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("Jas");
#define MSG_BABYSTEP_Z _UxGT("Babystep Z")
#define MSG_BABYSTEP_TOTAL _UxGT("Celkem")
#define MSG_ENDSTOP_ABORT _UxGT("Endstop abort")
#define MSG_HEATING_FAILED_LCD _UxGT("Chyba zahřívání")
#define MSG_HEATING_FAILED_LCD_BED _UxGT("Chyba zahř.podl.")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("REDUND. TEPLOTA")
#define MSG_THERMAL_RUNAWAY _UxGT("TEPLOTNÍ ÚNIK")
#define MSG_THERMAL_RUNAWAY_BED _UxGT("TEPL. ÚNIK PODL.")
#define MSG_ERR_MAXTEMP _UxGT("VYSOKÁ TEPLOTA")
#define MSG_ERR_MINTEMP _UxGT("NÍZKA TEPLOTA")
#define MSG_ERR_MAXTEMP_BED _UxGT("VYS. TEPL. PODL.")
#define MSG_ERR_MINTEMP_BED _UxGT("NÍZ. TEPL. PODL.")
#define MSG_ERR_MAXTEMP_CHAMBER _UxGT("Err: MAXTEMP KOMORA")
#define MSG_ERR_MINTEMP_CHAMBER _UxGT("Err: MINTEMP KOMORA")
#define MSG_ERR_Z_HOMING _UxGT("Domů XY první")
#define MSG_HALTED _UxGT("TISK. ZASTAVENA")
#define MSG_PLEASE_RESET _UxGT("Proveďte reset")
#define MSG_SHORT_DAY _UxGT("d")
#define MSG_SHORT_HOUR _UxGT("h")
#define MSG_SHORT_MINUTE _UxGT("m")
#define MSG_HEATING _UxGT("Zahřívání...")
#define MSG_COOLING _UxGT("Chlazení...")
#if LCD_WIDTH >= 20
#define MSG_BED_HEATING _UxGT("Zahřívání podložky")
#else
#define MSG_BED_HEATING _UxGT("Zahřívání podl.")
#endif
#if LCD_WIDTH >= 20
#define MSG_BED_COOLING _UxGT("Chlazení podložky")
#else
#define MSG_BED_COOLING _UxGT("Chlazení podl.")
#endif
#define MSG_DELTA_CALIBRATE _UxGT("Delta Kalibrace")
#define MSG_DELTA_CALIBRATE_X _UxGT("Kalibrovat X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibrovat Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Kalibrovat Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Kalibrovat Střed")
#define MSG_DELTA_SETTINGS _UxGT("Delta nastavení")
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Autokalibrace")
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Nast.výšku delty")
#define MSG_DELTA_Z_OFFSET_CALIBRATE _UxGT("Nast. Z-ofset")
#define MSG_DELTA_DIAG_ROD _UxGT("Diag rameno")
#define MSG_DELTA_HEIGHT _UxGT("Výška")
#define MSG_DELTA_RADIUS _UxGT("Poloměr")
#define MSG_INFO_MENU _UxGT("O tiskárně")
#define MSG_INFO_PRINTER_MENU _UxGT("Info o tiskárně")
#define MSG_3POINT_LEVELING _UxGT("3-bodové rovnání")
#define MSG_LINEAR_LEVELING _UxGT("Lineárni rovnání")
#define MSG_BILINEAR_LEVELING _UxGT("Bilineární rovnání")
#define MSG_UBL_LEVELING _UxGT("Unified Bed Leveling")
#define MSG_MESH_LEVELING _UxGT("Mřížkové rovnání")
#define MSG_INFO_STATS_MENU _UxGT("Statistika")
#define MSG_INFO_BOARD_MENU _UxGT("Info o desce")
#define MSG_INFO_THERMISTOR_MENU _UxGT("Termistory")
#define MSG_INFO_EXTRUDERS _UxGT("Extrudéry")
#define MSG_INFO_BAUDRATE _UxGT("Rychlost")
#define MSG_INFO_PROTOCOL _UxGT("Protokol")
#define MSG_CASE_LIGHT _UxGT("Osvětlení")
#define MSG_CASE_LIGHT_BRIGHTNESS _UxGT("Jas světla")
#if LCD_WIDTH >= 20 PROGMEM Language_Str MSG_MOVING = _UxGT("Posouvání...");
#define MSG_INFO_PRINT_COUNT _UxGT("Počet tisků") PROGMEM Language_Str MSG_FREE_XY = _UxGT("Uvolnit XY");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Dokončeno") PROGMEM Language_Str MSG_MOVE_X = _UxGT("Posunout X");
#define MSG_INFO_PRINT_TIME _UxGT("Celkový čas") PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Posunout Y");
#define MSG_INFO_PRINT_LONGEST _UxGT("Nejdelší tisk") PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Posunout Z");
#define MSG_INFO_PRINT_FILAMENT _UxGT("Celkem vytlačeno") PROGMEM Language_Str MSG_MOVE_E = _UxGT("Extrudér");
#else PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Extrudér ") LCD_STR_E0;
#define MSG_INFO_PRINT_COUNT _UxGT("Tisky") PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Extrudér ") LCD_STR_E1;
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Hotovo") PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Extrudér ") LCD_STR_E2;
#define MSG_INFO_PRINT_TIME _UxGT("Čas") PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Extrudér ") LCD_STR_E3;
#define MSG_INFO_PRINT_LONGEST _UxGT("Nejdelší") PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Extrudér ") LCD_STR_E4;
#define MSG_INFO_PRINT_FILAMENT _UxGT("Vytlačeno") PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Extrudér ") LCD_STR_E5;
#endif PROGMEM Language_Str MSG_HOTEND_TOO_COLD = _UxGT("Hotend je studený");
PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Posunout o %smm");
PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Posunout o 0,1mm");
PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Posunout o 1mm");
PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Posunout o 10mm");
PROGMEM Language_Str MSG_SPEED = _UxGT("Rychlost");
PROGMEM Language_Str MSG_BED_Z = _UxGT("Výška podl.");
PROGMEM Language_Str MSG_NOZZLE = _UxGT("Tryska");
PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Tryska ") LCD_STR_N0;
PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Tryska ") LCD_STR_N1;
PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Tryska ") LCD_STR_N2;
PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Tryska ") LCD_STR_N3;
PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Tryska ") LCD_STR_N4;
PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Tryska ") LCD_STR_N5;
PROGMEM Language_Str MSG_BED = _UxGT("Podložka");
PROGMEM Language_Str MSG_CHAMBER = _UxGT("Komora");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Rychlost vent.");
PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Rychlost vent. 1");
PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Rychlost vent. 2");
PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Rychlost vent. 3");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Rychlost ex. vent.");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_1 = _UxGT("Rychlost ex. vent. 1");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_2 = _UxGT("Rychlost ex. vent. 2");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_3 = _UxGT("Rychlost ex. vent. 3");
PROGMEM Language_Str MSG_FLOW = _UxGT("Průtok");
PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Průtok ") LCD_STR_N0;
PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Průtok ") LCD_STR_N1;
PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Průtok ") LCD_STR_N2;
PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Průtok ") LCD_STR_N3;
PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Průtok ") LCD_STR_N4;
PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Průtok ") LCD_STR_N5;
PROGMEM Language_Str MSG_CONTROL = _UxGT("Ovládaní");
PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" Min");
PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" Max");
PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Fakt");
PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Autoteplota");
PROGMEM Language_Str MSG_LCD_ON = _UxGT("Zap");
PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Vyp");
PROGMEM Language_Str MSG_SELECT = _UxGT("Vybrat");
PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("Vybrat ") LCD_STR_E0;
PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("Vybrat ") LCD_STR_E1;
PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("Vybrat ") LCD_STR_E2;
PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("Vybrat ") LCD_STR_E3;
PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("Vybrat ") LCD_STR_E4;
PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("Vybrat ") LCD_STR_E5;
PROGMEM Language_Str MSG_ACC = _UxGT("Zrychl");
PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Odchylka spoje");
PROGMEM Language_Str MSG_VELOCITY = _UxGT("Rychlost");
PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Akcelerace");
PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-retrakt");
PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A-přejezd");
PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Kroků/mm");
PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("kroků/mm");
PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("kroků/mm");
PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("kroků/mm");
PROGMEM Language_Str MSG_E_STEPS = _UxGT("Ekroků/mm");
PROGMEM Language_Str MSG_E0_STEPS = LCD_STR_E0 _UxGT("kroků/mm");
PROGMEM Language_Str MSG_E1_STEPS = LCD_STR_E1 _UxGT("kroků/mm");
PROGMEM Language_Str MSG_E2_STEPS = LCD_STR_E2 _UxGT("kroků/mm");
PROGMEM Language_Str MSG_E3_STEPS = LCD_STR_E3 _UxGT("kroků/mm");
PROGMEM Language_Str MSG_E4_STEPS = LCD_STR_E4 _UxGT("kroků/mm");
PROGMEM Language_Str MSG_E5_STEPS = LCD_STR_E5 _UxGT("kroků/mm");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Teplota");
PROGMEM Language_Str MSG_MOTION = _UxGT("Pohyb");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filament");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E na mm3");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Fil. Prum.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Fil. Prum. ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Fil. Prum. ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Fil. Prum. ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Fil. Prum. ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Fil. Prum. ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Fil. Prum. ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("Vysunout mm");
PROGMEM Language_Str MSG_FILAMENT_LOAD = _UxGT("Zavést mm");
PROGMEM Language_Str MSG_ADVANCE_K = _UxGT("K pro posun");
PROGMEM Language_Str MSG_ADVANCE_K_E0 = _UxGT("K pro posun ") LCD_STR_E0;
PROGMEM Language_Str MSG_ADVANCE_K_E1 = _UxGT("K pro posun ") LCD_STR_E1;
PROGMEM Language_Str MSG_ADVANCE_K_E2 = _UxGT("K pro posun ") LCD_STR_E2;
PROGMEM Language_Str MSG_ADVANCE_K_E3 = _UxGT("K pro posun ") LCD_STR_E3;
PROGMEM Language_Str MSG_ADVANCE_K_E4 = _UxGT("K pro posun ") LCD_STR_E4;
PROGMEM Language_Str MSG_ADVANCE_K_E5 = _UxGT("K pro posun ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("Kontrast LCD");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Uložit nastavení");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Načíst nastavení");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Obnovit výchozí");
PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("Inic. EEPROM");
PROGMEM Language_Str MSG_MEDIA_UPDATE = _UxGT("Aktualizace z SD");
PROGMEM Language_Str MSG_RESET_PRINTER = _UxGT("Reset tiskárny");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Obnovit");
PROGMEM Language_Str MSG_WATCH = _UxGT("Info obrazovka");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Připrava tisku");
PROGMEM Language_Str MSG_TUNE = _UxGT("Doladění tisku");
PROGMEM Language_Str MSG_START_PRINT = _UxGT("Spustit tisk");
PROGMEM Language_Str MSG_BUTTON_PRINT = _UxGT("Tisk");
PROGMEM Language_Str MSG_BUTTON_CANCEL = _UxGT("Zrušit");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Pozastavit tisk");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Obnovit tisk");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Zastavit tisk");
PROGMEM Language_Str MSG_OUTAGE_RECOVERY = _UxGT("Obnova výpadku");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Tisknout z SD");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("Žádná SD karta");
PROGMEM Language_Str MSG_DWELL = _UxGT("Uspáno...");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Čekání na uživ...");
PROGMEM Language_Str MSG_PRINT_PAUSED = _UxGT("Tisk pozastaven");
PROGMEM Language_Str MSG_PRINTING = _UxGT("Tisknu...");
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Tisk zrušen");
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Žádný pohyb.");
PROGMEM Language_Str MSG_KILLED = _UxGT("PŘERUSENO. ");
PROGMEM Language_Str MSG_STOPPED = _UxGT("ZASTAVENO. ");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Retrakt mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Výměna Re.mm");
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Retraktovat V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Zvednuti Z mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("S UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("UnRet V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAPF = _UxGT("S UnRet V");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("AutoRetr.");
PROGMEM Language_Str MSG_FILAMENT_SWAP_LENGTH = _UxGT("Délka retrakce");
PROGMEM Language_Str MSG_TOOL_CHANGE = _UxGT("Výměna nástroje");
PROGMEM Language_Str MSG_TOOL_CHANGE_ZLIFT = _UxGT("Zdvih Z");
PROGMEM Language_Str MSG_SINGLENOZZLE_PRIME_SPD = _UxGT("Rychlost primár.");
PROGMEM Language_Str MSG_SINGLENOZZLE_RETRACT_SPD = _UxGT("Rychlost retrak.");
PROGMEM Language_Str MSG_NOZZLE_STANDBY = _UxGT("Tryska standby");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Vyměnit filament");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Vyměnit filament ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Vyměnit filament ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Vyměnit filament ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Vyměnit filament ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Vyměnit filament ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Vyměnit filament ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTLOAD = _UxGT("Zavést filament");
PROGMEM Language_Str MSG_FILAMENTLOAD_E0 = _UxGT("Zavést filament ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTLOAD_E1 = _UxGT("Zavést filament ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTLOAD_E2 = _UxGT("Zavést filament ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTLOAD_E3 = _UxGT("Zavést filament ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTLOAD_E4 = _UxGT("Zavést filament ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTLOAD_E5 = _UxGT("Zavést filament ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E0 = _UxGT("Vysunout filament ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E1 = _UxGT("Vysunout filament ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E2 = _UxGT("Vysunout filament ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E3 = _UxGT("Vysunout filament ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E4 = _UxGT("Vysunout filament ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E5 = _UxGT("Vysunout filament ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Vysunout vše");
#define MSG_INFO_MIN_TEMP _UxGT("Teplota min") PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Načíst SD kartu");
#define MSG_INFO_MAX_TEMP _UxGT("Teplota max") PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Vyměnit SD kartu");
#define MSG_INFO_PSU _UxGT("Nap. zdroj") PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sonda Z mimo podl");
#define MSG_DRIVE_STRENGTH _UxGT("Buzení motorů") PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("Faktor zkosení");
#define MSG_DAC_PERCENT _UxGT("Motor %") PROGMEM Language_Str MSG_BLTOUCH = _UxGT("BLTouch");
#define MSG_DAC_EEPROM_WRITE _UxGT("Uložit do EEPROM") PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("BLTouch self-test");
#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("TISK POZASTAVEN") PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("BLTouch reset");
#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("ZAVEDENÍ FILAMENTU") PROGMEM Language_Str MSG_BLTOUCH_DEPLOY = _UxGT("BLTouch vysunout");
#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("VYSUNUTÍ FILAMENTU") PROGMEM Language_Str MSG_BLTOUCH_SW_MODE = _UxGT("SW výsun BLTouch");
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("MOŽNOSTI OBNOVENÍ:") PROGMEM Language_Str MSG_BLTOUCH_5V_MODE = _UxGT("BLTouch 5V režim");
#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Vytlačit víc") PROGMEM Language_Str MSG_BLTOUCH_OD_MODE = _UxGT("BLTouch OD režim");
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Obnovit tisk") PROGMEM Language_Str MSG_BLTOUCH_STOW = _UxGT("BLTouch zasunout");
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Tryska: ") PROGMEM Language_Str MSG_MANUAL_DEPLOY = _UxGT("Vysunout Z-sondu");
#define MSG_RUNOUT_SENSOR _UxGT("Senzor filamentu") PROGMEM Language_Str MSG_MANUAL_STOW = _UxGT("Zasunout Z-sondu");
#define MSG_ERR_HOMING_FAILED _UxGT("Parkování selhalo") PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("Domů %s%s%s první");
#define MSG_ERR_PROBING_FAILED _UxGT("Kalibrace selhala") PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Z ofset");
#define MSG_M600_TOO_COLD _UxGT("M600: Moc studený") PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Babystep X");
PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Babystep Y");
PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Babystep Z");
PROGMEM Language_Str MSG_BABYSTEP_TOTAL = _UxGT("Celkem");
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Endstop abort");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Chyba zahřívání");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD_BED = _UxGT("Chyba zahř.podl.");
PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("REDUND. TEPLOTA");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("TEPLOTNÍ ÚNIK");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY_BED = _UxGT("TEPL. ÚNIK PODL.");
PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("VYSOKÁ TEPLOTA");
PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("NÍZKA TEPLOTA");
PROGMEM Language_Str MSG_ERR_MAXTEMP_BED = _UxGT("VYS. TEPL. PODL.");
PROGMEM Language_Str MSG_ERR_MINTEMP_BED = _UxGT("NÍZ. TEPL. PODL.");
PROGMEM Language_Str MSG_ERR_MAXTEMP_CHAMBER = _UxGT("Err: MAXTEMP KOMORA");
PROGMEM Language_Str MSG_ERR_MINTEMP_CHAMBER = _UxGT("Err: MINTEMP KOMORA");
PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("Domů XY první");
PROGMEM Language_Str MSG_HALTED = _UxGT("TISK. ZASTAVENA");
PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Proveďte reset");
PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("d");
PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("h");
PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("m");
PROGMEM Language_Str MSG_HEATING = _UxGT("Zahřívání...");
PROGMEM Language_Str MSG_COOLING = _UxGT("Chlazení...");
#if LCD_WIDTH >= 20
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Zahřívání podložky");
#else
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Zahřívání podl.");
#endif
#if LCD_WIDTH >= 20
PROGMEM Language_Str MSG_BED_COOLING = _UxGT("Chlazení podložky");
#else
PROGMEM Language_Str MSG_BED_COOLING = _UxGT("Chlazení podl.");
#endif
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Delta Kalibrace");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Kalibrovat X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Kalibrovat Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Kalibrovat Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Kalibrovat Střed");
PROGMEM Language_Str MSG_DELTA_SETTINGS = _UxGT("Delta nastavení");
PROGMEM Language_Str MSG_DELTA_AUTO_CALIBRATE = _UxGT("Autokalibrace");
PROGMEM Language_Str MSG_DELTA_HEIGHT_CALIBRATE = _UxGT("Nast.výšku delty");
PROGMEM Language_Str MSG_DELTA_Z_OFFSET_CALIBRATE = _UxGT("Nast. Z-ofset");
PROGMEM Language_Str MSG_DELTA_DIAG_ROD = _UxGT("Diag rameno");
PROGMEM Language_Str MSG_DELTA_HEIGHT = _UxGT("Výška");
PROGMEM Language_Str MSG_DELTA_RADIUS = _UxGT("Poloměr");
PROGMEM Language_Str MSG_INFO_MENU = _UxGT("O tiskárně");
PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Info o tiskárně");
PROGMEM Language_Str MSG_3POINT_LEVELING = _UxGT("3-bodové rovnání");
PROGMEM Language_Str MSG_LINEAR_LEVELING = _UxGT("Lineárni rovnání");
PROGMEM Language_Str MSG_BILINEAR_LEVELING = _UxGT("Bilineární rovnání");
PROGMEM Language_Str MSG_UBL_LEVELING = _UxGT("Unified Bed Leveling");
PROGMEM Language_Str MSG_MESH_LEVELING = _UxGT("Mřížkové rovnání");
PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Statistika");
PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Info o desce");
PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Termistory");
PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Extrudéry");
PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("Rychlost");
PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Protokol");
PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Osvětlení");
PROGMEM Language_Str MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Jas světla");
#define MSG_MMU2_FILAMENT_CHANGE_HEADER _UxGT("VÝMĚNA FILAMENTU") #if LCD_WIDTH >= 20
#define MSG_MMU2_CHOOSE_FILAMENT_HEADER _UxGT("VYBERTE FILAMENT") PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Počet tisků");
#define MSG_MMU2_MENU _UxGT("MMU") PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Dokončeno");
#define MSG_MMU2_WRONG_FIRMWARE _UxGT("Aktual. MMU firmware!") PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Celkový čas");
#define MSG_MMU2_NOT_RESPONDING _UxGT("MMU potř. pozornost.") PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Nejdelší tisk");
#define MSG_MMU2_RESUME _UxGT("Obnovit tisk") PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Celkem vytlačeno");
#define MSG_MMU2_RESUMING _UxGT("Obnovování...") #else
#define MSG_MMU2_LOAD_FILAMENT _UxGT("Zavést filament") PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Tisky");
#define MSG_MMU2_LOAD_ALL _UxGT("Zavést všechny") PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Hotovo");
#define MSG_MMU2_LOAD_TO_NOZZLE _UxGT("Zavést do trysky") PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Čas");
#define MSG_MMU2_EJECT_FILAMENT _UxGT("Vysunout filament") PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Nejdelší");
#define MSG_MMU2_EJECT_FILAMENT0 _UxGT("Vysun. filament 1") PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Vytlačeno");
#define MSG_MMU2_EJECT_FILAMENT1 _UxGT("Vysun. filament 2") #endif
#define MSG_MMU2_EJECT_FILAMENT2 _UxGT("Vysun. filament 3")
#define MSG_MMU2_EJECT_FILAMENT3 _UxGT("Vysun. filament 4")
#define MSG_MMU2_EJECT_FILAMENT4 _UxGT("Vysun. filament 5")
#define MSG_MMU2_UNLOAD_FILAMENT _UxGT("Vytáhnout filament")
#define MSG_MMU2_LOADING_FILAMENT _UxGT("Zavádění fil. %i...")
#define MSG_MMU2_EJECTING_FILAMENT _UxGT("Vytahování fil. ...")
#define MSG_MMU2_UNLOADING_FILAMENT _UxGT("Vysouvání fil....")
#define MSG_MMU2_ALL _UxGT("Všechny")
#define MSG_MMU2_FILAMENT0 _UxGT("Filament 1")
#define MSG_MMU2_FILAMENT1 _UxGT("Filament 2")
#define MSG_MMU2_FILAMENT2 _UxGT("Filament 3")
#define MSG_MMU2_FILAMENT3 _UxGT("Filament 4")
#define MSG_MMU2_FILAMENT4 _UxGT("Filament 5")
#define MSG_MMU2_RESET _UxGT("Resetovat MMU")
#define MSG_MMU2_RESETTING _UxGT("Resetování MMU...")
#define MSG_MMU2_EJECT_RECOVER _UxGT("Vytáhněte, klikněte")
#define MSG_MIX _UxGT("Mix") PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Teplota min");
#define MSG_MIX_COMPONENT _UxGT("Komponenta") PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Teplota max");
#define MSG_MIXER _UxGT("Mixér") PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Nap. zdroj");
#define MSG_GRADIENT _UxGT("Přechod") PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Buzení motorů");
#define MSG_FULL_GRADIENT _UxGT("Celý přechod") PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Motor %");
#define MSG_TOGGLE_MIX _UxGT("Přepnout mix") PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Uložit do EEPROM");
#define MSG_CYCLE_MIX _UxGT("Střídat mix") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER = _UxGT("VÝMĚNA FILAMENTU");
#define MSG_GRADIENT_MIX _UxGT("Přechod mix") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("TISK POZASTAVEN");
#define MSG_REVERSE_GRADIENT _UxGT("Opačný přechod") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("ZAVEDENÍ FILAMENTU");
#if LCD_WIDTH >= 20 PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("VYSUNUTÍ FILAMENTU");
#define MSG_ACTIVE_VTOOL _UxGT("Aktivní V-nástroj") PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("MOŽNOSTI OBNOVENÍ:");
#define MSG_START_VTOOL _UxGT("Spustit V-nástroj") PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("Vytlačit víc");
#define MSG_END_VTOOL _UxGT("Ukončit V-nástroj") PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Obnovit tisk");
#define MSG_GRADIENT_ALIAS _UxGT("Alias V-nástroje") PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Tryska: ");
#define MSG_RESET_VTOOLS _UxGT("Resetovat V-nástroj") PROGMEM Language_Str MSG_RUNOUT_SENSOR = _UxGT("Senzor filamentu");
#define MSG_COMMIT_VTOOL _UxGT("Uložit V-nástroj mix") PROGMEM Language_Str MSG_LCD_HOMING_FAILED = _UxGT("Parkování selhalo");
#define MSG_VTOOLS_RESET _UxGT("V-nástroj resetovat") PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Kalibrace selhala");
#else PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Moc studený");
#define MSG_ACTIVE_VTOOL _UxGT("Aktivní V-nástr.")
#define MSG_START_VTOOL _UxGT("Spustit V-nástr.")
#define MSG_END_VTOOL _UxGT("Ukončit V-nástr.")
#define MSG_GRADIENT_ALIAS _UxGT("Alias V-nástr.")
#define MSG_RESET_VTOOLS _UxGT("Reset. V-nástr.")
#define MSG_COMMIT_VTOOL _UxGT("Uložit V-nás. mix")
#define MSG_VTOOLS_RESET _UxGT("V-nástr. reset.")
#endif
#define MSG_START_Z _UxGT("Počáteční Z")
#define MSG_END_Z _UxGT(" Koncové Z")
#define MSG_BRICKOUT _UxGT("Brickout")
#define MSG_INVADERS _UxGT("Invaders")
#define MSG_SNAKE _UxGT("Sn4k3")
#define MSG_MAZE _UxGT("Bludiště")
#define MSG_EXPECTED_PRINTER _UxGT("Nesprávná tiskárna") PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("VYBERTE FILAMENT");
PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU");
PROGMEM Language_Str MSG_MMU2_WRONG_FIRMWARE = _UxGT("Aktual. MMU firmware!");
PROGMEM Language_Str MSG_MMU2_NOT_RESPONDING = _UxGT("MMU potř. pozornost.");
PROGMEM Language_Str MSG_MMU2_RESUME = _UxGT("Obnovit tisk");
PROGMEM Language_Str MSG_MMU2_RESUMING = _UxGT("Obnovování...");
PROGMEM Language_Str MSG_MMU2_LOAD_FILAMENT = _UxGT("Zavést filament");
PROGMEM Language_Str MSG_MMU2_LOAD_ALL = _UxGT("Zavést všechny");
PROGMEM Language_Str MSG_MMU2_LOAD_TO_NOZZLE = _UxGT("Zavést do trysky");
PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT = _UxGT("Vysunout filament");
PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT0 = _UxGT("Vysun. filament 1");
PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT1 = _UxGT("Vysun. filament 2");
PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT2 = _UxGT("Vysun. filament 3");
PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT3 = _UxGT("Vysun. filament 4");
PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT4 = _UxGT("Vysun. filament 5");
PROGMEM Language_Str MSG_MMU2_UNLOAD_FILAMENT = _UxGT("Vytáhnout filament");
PROGMEM Language_Str MSG_MMU2_LOADING_FILAMENT = _UxGT("Zavádění fil. %i...");
PROGMEM Language_Str MSG_MMU2_EJECTING_FILAMENT = _UxGT("Vytahování fil. ...");
PROGMEM Language_Str MSG_MMU2_UNLOADING_FILAMENT = _UxGT("Vysouvání fil....");
PROGMEM Language_Str MSG_MMU2_ALL = _UxGT("Všechny");
PROGMEM Language_Str MSG_MMU2_FILAMENT0 = _UxGT("Filament 1");
PROGMEM Language_Str MSG_MMU2_FILAMENT1 = _UxGT("Filament 2");
PROGMEM Language_Str MSG_MMU2_FILAMENT2 = _UxGT("Filament 3");
PROGMEM Language_Str MSG_MMU2_FILAMENT3 = _UxGT("Filament 4");
PROGMEM Language_Str MSG_MMU2_FILAMENT4 = _UxGT("Filament 5");
PROGMEM Language_Str MSG_MMU2_RESET = _UxGT("Resetovat MMU");
PROGMEM Language_Str MSG_MMU2_RESETTING = _UxGT("Resetování MMU...");
PROGMEM Language_Str MSG_MMU2_EJECT_RECOVER = _UxGT("Vytáhněte, klikněte");
#if LCD_HEIGHT >= 4 PROGMEM Language_Str MSG_MIX = _UxGT("Mix");
// Up to 3 lines allowed PROGMEM Language_Str MSG_MIX_COMPONENT_1 = _UxGT("Komponenta 1");
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Stikněte tlačítko") PROGMEM Language_Str MSG_MIX_COMPONENT_2 = _UxGT("Komponenta 2");
#define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("pro obnovení tisku") PROGMEM Language_Str MSG_MIX_COMPONENT_3 = _UxGT("Komponenta 3");
#define MSG_PAUSE_PRINT_INIT_1 _UxGT("Parkování...") PROGMEM Language_Str MSG_MIX_COMPONENT_4 = _UxGT("Komponenta 4");
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Čekejte prosím") PROGMEM Language_Str MSG_MIX_COMPONENT_5 = _UxGT("Komponenta 5");
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("na zahájení") PROGMEM Language_Str MSG_MIX_COMPONENT_6 = _UxGT("Komponenta 6");
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("výměny filamentu") PROGMEM Language_Str MSG_MIXER = _UxGT("Mixér");
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vložte filament") PROGMEM Language_Str MSG_GRADIENT = _UxGT("Přechod");
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("a stiskněte") PROGMEM Language_Str MSG_FULL_GRADIENT = _UxGT("Celý přechod");
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("tlačítko...") PROGMEM Language_Str MSG_TOGGLE_MIX = _UxGT("Přepnout mix");
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Klikněte pro") PROGMEM Language_Str MSG_CYCLE_MIX = _UxGT("Střídat mix");
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("nahřátí trysky") PROGMEM Language_Str MSG_GRADIENT_MIX = _UxGT("Přechod mix");
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Čekejte prosím") PROGMEM Language_Str MSG_REVERSE_GRADIENT = _UxGT("Opačný přechod");
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("na nahřátí tr.") #if LCD_WIDTH >= 20
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Čekejte prosím") PROGMEM Language_Str MSG_ACTIVE_VTOOL = _UxGT("Aktivní V-nástroj");
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("na vysunuti") PROGMEM Language_Str MSG_START_VTOOL = _UxGT("Spustit V-nástroj");
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("filamentu") PROGMEM Language_Str MSG_END_VTOOL = _UxGT("Ukončit V-nástroj");
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Čekejte prosím") PROGMEM Language_Str MSG_GRADIENT_ALIAS = _UxGT("Alias V-nástroje");
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("na zavedení") PROGMEM Language_Str MSG_RESET_VTOOLS = _UxGT("Resetovat V-nástroj");
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamentu") PROGMEM Language_Str MSG_COMMIT_VTOOL = _UxGT("Uložit V-nástroj mix");
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vyčkejte na") PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("V-nástroj resetovat");
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("vytlačení") #else
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Klikněte pro") PROGMEM Language_Str MSG_ACTIVE_VTOOL = _UxGT("Aktivní V-nástr.");
#define MSG_FILAMENT_CHANGE_CONT_PURGE_2 _UxGT("ukončení") PROGMEM Language_Str MSG_START_VTOOL = _UxGT("Spustit V-nástr.");
#define MSG_FILAMENT_CHANGE_CONT_PURGE_3 _UxGT("vytlačování") PROGMEM Language_Str MSG_END_VTOOL = _UxGT("Ukončit V-nástr.");
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Čekejte prosím") PROGMEM Language_Str MSG_GRADIENT_ALIAS = _UxGT("Alias V-nástr.");
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("na pokračování") PROGMEM Language_Str MSG_RESET_VTOOLS = _UxGT("Reset. V-nástr.");
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("tisku") PROGMEM Language_Str MSG_COMMIT_VTOOL = _UxGT("Uložit V-nás. mix");
#else // LCD_HEIGHT < 4 PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("V-nástr. reset.");
// Up to 2 lines allowed #endif
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Stikněte tlač.") PROGMEM Language_Str MSG_START_Z = _UxGT("Počáteční Z:");
#define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("pro obnovení") PROGMEM Language_Str MSG_END_Z = _UxGT(" Koncové Z:");
#define MSG_PAUSE_PRINT_INIT_1 _UxGT("Parkování...") PROGMEM Language_Str MSG_BRICKOUT = _UxGT("Brickout");
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Čekejte...") PROGMEM Language_Str MSG_INVADERS = _UxGT("Invaders");
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vložte, klikněte") PROGMEM Language_Str MSG_SNAKE = _UxGT("Sn4k3");
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Klikněte pro") PROGMEM Language_Str MSG_MAZE = _UxGT("Bludiště");
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("nahřátí")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Nahřívání...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Vysouvání...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Zavádění...")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vytlačování...")
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Klikněte pro")
#define MSG_FILAMENT_CHANGE_CONT_PURGE_2 _UxGT("ukončení")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Pokračování...")
#endif // LCD_HEIGHT < 4
#define MSG_TMC_DRIVERS _UxGT("TMC budiče") PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Nesprávná tiskárna");
#define MSG_TMC_CURRENT _UxGT("Proud budičů")
#define MSG_TMC_HYBRID_THRS _UxGT("Hybridní práh") #if LCD_HEIGHT >= 4
#define MSG_TMC_HOMING_THRS _UxGT("Domů bez senzorů") // Up to 3 lines allowed
#define MSG_TMC_STEPPING_MODE _UxGT("Režim kroků") PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_2_LINE("Stikněte tlačítko", "pro obnovení tisku"));
#define MSG_TMC_STEALTH_ENABLED _UxGT("StealthChop povolen") PROGMEM Language_Str MSG_PAUSE_PRINT_INIT = _UxGT(MSG_1_LINE("Parkování..."));
#define MSG_SERVICE_RESET _UxGT("Reset") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Čekejte prosím", "na zahájení", "výměny filamentu"));
#define MSG_SERVICE_IN _UxGT(" za:") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Vložte filament", "a stiskněte", "tlačítko..."));
#define MSG_BACKLASH _UxGT("Vůle") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Klikněte pro", "nahřátí trysky"));
#define MSG_BACKLASH_CORRECTION _UxGT("Korekce") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("Čekejte prosím", "na nahřátí tr."));
#define MSG_BACKLASH_SMOOTHING _UxGT("Vyhlazení") PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_3_LINE("Čekejte prosím", "na vysunuti", "filamentu"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_3_LINE("Čekejte prosím", "na zavedení", "filamentu"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_2_LINE("Vyčkejte na", "vytlačení"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_3_LINE("Klikněte pro", "ukončení", "vytlačování"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_3_LINE("Čekejte prosím", "na pokračování", "tisku"));
#else // LCD_HEIGHT < 4
// Up to 2 lines allowed
PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_2_LINE("Stikněte tlač.", "pro obnovení"));
PROGMEM Language_Str MSG_PAUSE_PRINT_INIT = _UxGT(MSG_1_LINE("Parkování..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Čekejte..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Vložte, klikněte"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Klikněte pro", "nahřátí"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("Nahřívání..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Vysouvání..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Zavádění..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_1_LINE("Vytlačování..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_2_LINE("Klikněte pro", "ukončení"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Pokračování..."));
#endif // LCD_HEIGHT < 4
PROGMEM Language_Str MSG_TMC_DRIVERS = _UxGT("TMC budiče");
PROGMEM Language_Str MSG_TMC_CURRENT = _UxGT("Proud budičů");
PROGMEM Language_Str MSG_TMC_HYBRID_THRS = _UxGT("Hybridní práh");
PROGMEM Language_Str MSG_TMC_HOMING_THRS = _UxGT("Domů bez senzorů");
PROGMEM Language_Str MSG_TMC_STEPPING_MODE = _UxGT("Režim kroků");
PROGMEM Language_Str MSG_TMC_STEALTH_ENABLED = _UxGT("StealthChop povolen");
PROGMEM Language_Str MSG_SERVICE_RESET = _UxGT("Reset");
PROGMEM Language_Str MSG_SERVICE_IN = _UxGT(" za:");
PROGMEM Language_Str MSG_BACKLASH = _UxGT("Vůle");
PROGMEM Language_Str MSG_BACKLASH_A = LCD_STR_A;
PROGMEM Language_Str MSG_BACKLASH_B = LCD_STR_B;
PROGMEM Language_Str MSG_BACKLASH_C = LCD_STR_C;
PROGMEM Language_Str MSG_BACKLASH_CORRECTION = _UxGT("Korekce");
PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("Vyhlazení");
}

View file

@ -30,223 +30,212 @@
*/ */
#define DISPLAY_CHARSET_ISO10646_1 #define DISPLAY_CHARSET_ISO10646_1
#define CHARSIZE 2
#define WELCOME_MSG MACHINE_NAME _UxGT(" er klar") namespace Language_da {
#define MSG_MEDIA_INSERTED _UxGT("Kort isat") using namespace Language_en; // Inherit undefined strings from English
#define MSG_MEDIA_REMOVED _UxGT("Kort fjernet")
#define MSG_LCD_ENDSTOPS _UxGT("Endstops") // Max length 8 characters
#define MSG_MAIN _UxGT("Menu")
#define MSG_AUTOSTART _UxGT("Autostart")
#define MSG_DISABLE_STEPPERS _UxGT("Slå alle steppere fra")
#define MSG_AUTO_HOME _UxGT("Auto Home") // G28
#define MSG_AUTO_HOME_X _UxGT("Home X")
#define MSG_AUTO_HOME_Y _UxGT("Home Y")
#define MSG_AUTO_HOME_Z _UxGT("Home Z")
#define MSG_LEVEL_BED_HOMING _UxGT("Homing XYZ")
#define MSG_LEVEL_BED_WAITING _UxGT("Klik når du er klar")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Næste punkt")
#define MSG_LEVEL_BED_DONE _UxGT("Bed level er færdig!")
#define MSG_SET_HOME_OFFSETS _UxGT("Sæt forsk. af home")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Forsk. er nu aktiv")
#define MSG_SET_ORIGIN _UxGT("Sæt origin")
#define MSG_PREHEAT_1 _UxGT("Forvarm " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_N _UxGT("Forvarm " PREHEAT_1_LABEL " ")
#define MSG_PREHEAT_1_ALL _UxGT("Forvarm " PREHEAT_1_LABEL " Alle")
#define MSG_PREHEAT_1_BEDONLY _UxGT("Forvarm " PREHEAT_1_LABEL " Bed")
#define MSG_PREHEAT_1_SETTINGS _UxGT("Forvarm " PREHEAT_1_LABEL " conf")
#define MSG_PREHEAT_2 _UxGT("Forvarm " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_N _UxGT("Forvarm " PREHEAT_2_LABEL " ")
#define MSG_PREHEAT_2_ALL _UxGT("Forvarm " PREHEAT_2_LABEL " Alle")
#define MSG_PREHEAT_2_BEDONLY _UxGT("Forvarm " PREHEAT_2_LABEL " Bed")
#define MSG_PREHEAT_2_SETTINGS _UxGT("Forvarm " PREHEAT_2_LABEL " conf")
#define MSG_COOLDOWN _UxGT("Afkøl")
#define MSG_SWITCH_PS_ON _UxGT("Slå strøm til")
#define MSG_SWITCH_PS_OFF _UxGT("Slå strøm fra")
#define MSG_EXTRUDE _UxGT("Extruder")
#define MSG_RETRACT _UxGT("Retract")
#define MSG_MOVE_AXIS _UxGT("Flyt akser")
#define MSG_BED_LEVELING _UxGT("Juster bed")
#define MSG_LEVEL_BED _UxGT("Juster bed")
#define MSG_MOVE_X _UxGT("Flyt X")
#define MSG_MOVE_Y _UxGT("Flyt Y")
#define MSG_MOVE_Z _UxGT("Flyt Z")
#define MSG_MOVE_E _UxGT("Extruder")
#define MSG_MOVE_Z_DIST _UxGT("Flyt %smm")
#define MSG_MOVE_01MM _UxGT("Flyt 0.1mm")
#define MSG_MOVE_1MM _UxGT("Flyt 1mm")
#define MSG_MOVE_10MM _UxGT("Flyt 10mm")
#define MSG_SPEED _UxGT("Hastighed")
#define MSG_BED_Z _UxGT("Plade Z")
#define MSG_NOZZLE _UxGT("Dyse")
#define MSG_BED _UxGT("Plade") constexpr uint8_t CHARSIZE = 2;
#define MSG_FAN_SPEED _UxGT("Blæser hastighed") PROGMEM Language_Str LANGUAGE = _UxGT("Danish");
#define MSG_FLOW _UxGT("Flow")
#define MSG_CONTROL _UxGT("Kontrol")
#define MSG_MIN _UxGT(" \002 Min")
#define MSG_MAX _UxGT(" \002 Max")
#define MSG_FACTOR _UxGT(" \002 Fact")
#define MSG_AUTOTEMP _UxGT("Autotemp")
#define MSG_LCD_ON _UxGT("Til")
#define MSG_LCD_OFF _UxGT("Fra")
#define MSG_PID_P _UxGT("PID-P")
#define MSG_PID_I _UxGT("PID-I")
#define MSG_PID_D _UxGT("PID-D")
#define MSG_PID_C _UxGT("PID-C")
#define MSG_SELECT _UxGT("Vælg")
#define MSG_ACC _UxGT("Accel")
#define MSG_JERK _UxGT("Jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-jerk")
#define MSG_VB_JERK _UxGT("Vb-jerk")
#define MSG_VC_JERK _UxGT("Vc-jerk")
#else
#define MSG_VA_JERK _UxGT("Vx-jerk")
#define MSG_VB_JERK _UxGT("Vy-jerk")
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin")
#define MSG_VTRAV_MIN _UxGT("VTrav min")
#define MSG_AMAX _UxGT("Amax ")
#define MSG_A_RETRACT _UxGT("A-retract")
#define MSG_A_TRAVEL _UxGT("A-rejse")
#define MSG_STEPS_PER_MM _UxGT("Steps/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("Asteps/mm")
#define MSG_BSTEPS _UxGT("Bsteps/mm")
#define MSG_CSTEPS _UxGT("Csteps/mm")
#else
#define MSG_ASTEPS _UxGT("Xsteps/mm")
#define MSG_BSTEPS _UxGT("Ysteps/mm")
#define MSG_CSTEPS _UxGT("Zsteps/mm")
#endif
#define MSG_ESTEPS _UxGT("Esteps/mm")
#define MSG_E0_STEPS _UxGT("E1steps/mm")
#define MSG_E1_STEPS _UxGT("E2steps/mm")
#define MSG_E2_STEPS _UxGT("E3steps/mm")
#define MSG_E3_STEPS _UxGT("E4steps/mm")
#define MSG_E4_STEPS _UxGT("E5steps/mm")
#define MSG_E5_STEPS _UxGT("E6steps/mm")
#define MSG_TEMPERATURE _UxGT("Temperatur")
#define MSG_MOTION _UxGT("Bevægelse")
#define MSG_FILAMENT _UxGT("Filament")
#define MSG_VOLUMETRIC_ENABLED _UxGT("E i mm3")
#define MSG_FILAMENT_DIAM _UxGT("Fil. Dia.")
#define MSG_CONTRAST _UxGT("LCD kontrast")
#define MSG_STORE_EEPROM _UxGT("Gem i EEPROM")
#define MSG_LOAD_EEPROM _UxGT("Hent fra EEPROM")
#define MSG_RESTORE_FAILSAFE _UxGT("Gendan failsafe")
#define MSG_REFRESH _UxGT("Genopfrisk")
#define MSG_WATCH _UxGT("Info skærm")
#define MSG_PREPARE _UxGT("Forbered")
#define MSG_TUNE _UxGT("Tune")
#define MSG_PAUSE_PRINT _UxGT("Pause printet")
#define MSG_RESUME_PRINT _UxGT("Forsæt printet")
#define MSG_STOP_PRINT _UxGT("Stop printet")
#define MSG_MEDIA_MENU _UxGT("Print fra SD")
#define MSG_NO_MEDIA _UxGT("Intet SD kort")
#define MSG_DWELL _UxGT("Dvale...")
#define MSG_USERWAIT _UxGT("Venter på bruger...")
#define MSG_PRINT_ABORTED _UxGT("Print annulleret")
#define MSG_NO_MOVE _UxGT("Ingen bevægelse.")
#define MSG_KILLED _UxGT("DRÆBT. ")
#define MSG_STOPPED _UxGT("STOPPET. ")
#define MSG_CONTROL_RETRACT _UxGT("Tilbagetræk mm")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Skift Re.mm")
#define MSG_CONTROL_RETRACTF _UxGT("Tilbagetræk V")
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Hop mm")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Skift UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("UnRet V")
#define MSG_AUTORETRACT _UxGT("AutoRetr.")
#define MSG_FILAMENTCHANGE _UxGT("Skift filament")
#define MSG_INIT_MEDIA _UxGT("Init. SD card")
#define MSG_CHANGE_MEDIA _UxGT("Skift SD kort")
#define MSG_ZPROBE_OUT _UxGT("Probe udenfor plade")
#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch Selv-Test")
#define MSG_BLTOUCH_RESET _UxGT("Reset BLTouch")
#define MSG_HOME_FIRST _UxGT("Home %s%s%s først")
#define MSG_ZPROBE_ZOFFSET _UxGT("Z Offset")
#define MSG_BABYSTEP_X _UxGT("Babystep X")
#define MSG_BABYSTEP_Y _UxGT("Babystep Y")
#define MSG_BABYSTEP_Z _UxGT("Babystep Z")
#define MSG_ENDSTOP_ABORT _UxGT("Endstop abort")
#define MSG_HEATING_FAILED_LCD _UxGT("Opvarmning fejlet")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Fejl: reserve temp")
#define MSG_THERMAL_RUNAWAY _UxGT("Temp løber løbsk")
#define MSG_ERR_MAXTEMP _UxGT("Fejl: Maks temp")
#define MSG_ERR_MINTEMP _UxGT("Fejl: Min temp")
#define MSG_ERR_MAXTEMP_BED _UxGT("Fejl: Maks Plade temp")
#define MSG_ERR_MINTEMP_BED _UxGT("Fejl: Min Plade temp")
#define MSG_ERR_Z_HOMING _UxGT("Home XY først")
#define MSG_HALTED _UxGT("PRINTER STOPPET")
#define MSG_PLEASE_RESET _UxGT("Reset Venligst")
#define MSG_SHORT_DAY _UxGT("d") // Kun et bogstav
#define MSG_SHORT_HOUR _UxGT("h") // Kun et bogstav
#define MSG_SHORT_MINUTE _UxGT("m") // Kun et bogstav
#define MSG_HEATING _UxGT("Opvarmer...")
#define MSG_BED_HEATING _UxGT("Opvarmer plade...")
#define MSG_DELTA_CALIBRATE _UxGT("Delta Kalibrering")
#define MSG_DELTA_CALIBRATE_X _UxGT("Kalibrer X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibrer Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Kalibrer Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Kalibrerings Center")
#define MSG_INFO_MENU _UxGT("Om Printer") PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" er klar");
#define MSG_INFO_PRINTER_MENU _UxGT("Printer Info") PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Kort isat");
#define MSG_INFO_STATS_MENU _UxGT("Printer Stats") PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Kort fjernet");
#define MSG_INFO_BOARD_MENU _UxGT("Kort Info") PROGMEM Language_Str MSG_MAIN = _UxGT("Menu");
#define MSG_INFO_THERMISTOR_MENU _UxGT("Thermistors") PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Slå alle steppere fra");
#define MSG_INFO_EXTRUDERS _UxGT("Extruders") PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Auto Home"); // G28
#define MSG_INFO_BAUDRATE _UxGT("Baud") PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Klik når du er klar");
#define MSG_INFO_PROTOCOL _UxGT("Protocol") PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Næste punkt");
PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Bed level er færdig!");
PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Sæt forsk. af home");
PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Forsk. er nu aktiv");
PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Sæt origin");
PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Forvarm ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Forvarm ") PREHEAT_1_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Forvarm ") PREHEAT_1_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Forvarm ") PREHEAT_1_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Forvarm ") PREHEAT_1_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Forvarm ") PREHEAT_1_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Forvarm ") PREHEAT_1_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Forvarm ") PREHEAT_1_LABEL _UxGT(" end")
PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Forvarm ") PREHEAT_1_LABEL _UxGT(" end ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Forvarm ") PREHEAT_1_LABEL _UxGT(" end ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Forvarm ") PREHEAT_1_LABEL _UxGT(" end ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Forvarm ") PREHEAT_1_LABEL _UxGT(" end ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Forvarm ") PREHEAT_1_LABEL _UxGT(" end ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Forvarm ") PREHEAT_1_LABEL _UxGT(" end ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Forvarm ") PREHEAT_1_LABEL _UxGT(" Alle");
PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Forvarm ") PREHEAT_1_LABEL _UxGT(" Bed");
PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Forvarm ") PREHEAT_1_LABEL _UxGT(" conf");
PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Forvarm ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Forvarm ") PREHEAT_2_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Forvarm ") PREHEAT_2_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Forvarm ") PREHEAT_2_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Forvarm ") PREHEAT_2_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Forvarm ") PREHEAT_2_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Forvarm ") PREHEAT_2_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Forvarm ") PREHEAT_2_LABEL _UxGT(" end")
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Forvarm ") PREHEAT_2_LABEL _UxGT(" end ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Forvarm ") PREHEAT_2_LABEL _UxGT(" end ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Forvarm ") PREHEAT_2_LABEL _UxGT(" end ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Forvarm ") PREHEAT_2_LABEL _UxGT(" end ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Forvarm ") PREHEAT_2_LABEL _UxGT(" end ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Forvarm ") PREHEAT_2_LABEL _UxGT(" end ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Forvarm ") PREHEAT_2_LABEL _UxGT(" Alle");
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Forvarm ") PREHEAT_2_LABEL _UxGT(" Bed");
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Forvarm ") PREHEAT_2_LABEL _UxGT(" conf");
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Afkøl");
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Slå strøm til");
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Slå strøm fra");
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Extruder");
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Flyt akser");
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Juster bed");
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Juster bed");
PROGMEM Language_Str MSG_MOVE_X = _UxGT("Flyt X");
PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Flyt Y");
PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Flyt Z");
PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Flyt %smm");
PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Flyt 0.1mm");
PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Flyt 1mm");
PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Flyt 10mm");
PROGMEM Language_Str MSG_SPEED = _UxGT("Hastighed");
PROGMEM Language_Str MSG_BED_Z = _UxGT("Plade Z");
PROGMEM Language_Str MSG_NOZZLE = _UxGT("Dyse");
PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Dyse ") LCD_STR_N0;
PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Dyse ") LCD_STR_N1;
PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Dyse ") LCD_STR_N2;
PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Dyse ") LCD_STR_N3;
PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Dyse ") LCD_STR_N4;
PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Dyse ") LCD_STR_N5;
#if LCD_WIDTH >= 20 PROGMEM Language_Str MSG_BED = _UxGT("Plade");
#define MSG_INFO_PRINT_COUNT _UxGT("Ant. Prints") PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Blæser hastighed");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Færdige") PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Blæser hastighed 1");
#define MSG_INFO_PRINT_TIME _UxGT("Total print tid") PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Blæser hastighed 2");
#define MSG_INFO_PRINT_LONGEST _UxGT("Længste print") PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Blæser hastighed 3");
#define MSG_INFO_PRINT_FILAMENT _UxGT("Total Extruderet") PROGMEM Language_Str MSG_CONTROL = _UxGT("Kontrol");
#else PROGMEM Language_Str MSG_MIN = _UxGT(" \002 Min");
#define MSG_INFO_PRINT_COUNT _UxGT("Prints") PROGMEM Language_Str MSG_MAX = _UxGT(" \002 Max");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Færdige") PROGMEM Language_Str MSG_FACTOR = _UxGT(" \002 Fact");
#define MSG_INFO_PRINT_TIME _UxGT("Total") PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Autotemp");
#define MSG_INFO_PRINT_LONGEST _UxGT("Længste") PROGMEM Language_Str MSG_LCD_ON = _UxGT("Til");
#define MSG_INFO_PRINT_FILAMENT _UxGT("Extruderet") PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Fra");
#endif PROGMEM Language_Str MSG_SELECT = _UxGT("Vælg");
PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("Vælg ") LCD_STR_E0;
PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("Vælg ") LCD_STR_E1;
PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("Vælg ") LCD_STR_E2;
PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("Vælg ") LCD_STR_E3;
PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("Vælg ") LCD_STR_E4;
PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("Vælg ") LCD_STR_E5;
PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-retract");
PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A-rejse");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatur");
PROGMEM Language_Str MSG_MOTION = _UxGT("Bevægelse");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filament");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E i mm3");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Fil. Dia.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Fil. Dia. ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Fil. Dia. ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Fil. Dia. ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Fil. Dia. ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Fil. Dia. ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Fil. Dia. ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("LCD kontrast");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Gem i EEPROM");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Hent fra EEPROM");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Gendan failsafe");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Genopfrisk");
PROGMEM Language_Str MSG_WATCH = _UxGT("Info skærm");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Forbered");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Pause printet");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Forsæt printet");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Stop printet");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Print fra SD");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("Intet SD kort");
PROGMEM Language_Str MSG_DWELL = _UxGT("Dvale...");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Venter på bruger...");
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Print annulleret");
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Ingen bevægelse.");
PROGMEM Language_Str MSG_KILLED = _UxGT("DRÆBT. ");
PROGMEM Language_Str MSG_STOPPED = _UxGT("STOPPET. ");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Tilbagetræk mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Skift Re.mm");
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Tilbagetræk V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Hop mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("Skift UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("UnRet V");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("AutoRetr.");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Skift filament");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Skift filament ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Skift filament ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Skift filament ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Skift filament ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Skift filament ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Skift filament ") LCD_STR_E5;
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Skift SD kort");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Probe udenfor plade");
PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("BLTouch Selv-Test");
PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("Home %s%s%s først");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Opvarmning fejlet");
PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("Fejl: reserve temp");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("Temp løber løbsk");
PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("Fejl: Maks temp");
PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("Fejl: Min temp");
PROGMEM Language_Str MSG_ERR_MAXTEMP_BED = _UxGT("Fejl: Maks Plade temp");
PROGMEM Language_Str MSG_ERR_MINTEMP_BED = _UxGT("Fejl: Min Plade temp");
PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("Home XY først");
PROGMEM Language_Str MSG_HALTED = _UxGT("PRINTER STOPPET");
PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Reset Venligst");
PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("d"); // Kun et bogstav
PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("h"); // Kun et bogstav
PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("m"); // Kun et bogstav
PROGMEM Language_Str MSG_HEATING = _UxGT("Opvarmer...");
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Opvarmer plade...");
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Delta Kalibrering");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Kalibrer X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Kalibrer Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Kalibrer Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Kalibrerings Center");
#define MSG_INFO_MIN_TEMP _UxGT("Min Temp") PROGMEM Language_Str MSG_INFO_MENU = _UxGT("Om Printer");
#define MSG_INFO_MAX_TEMP _UxGT("Max Temp") PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Kort Info");
#define MSG_INFO_PSU _UxGT("Strømfors.") PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Thermistors");
#define MSG_DRIVE_STRENGTH _UxGT("Driv Styrke") #if LCD_WIDTH >= 20
#define MSG_DAC_PERCENT _UxGT("Driv %") PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Ant. Prints");
#define MSG_DAC_EEPROM_WRITE _UxGT("DAC EEPROM Skriv") PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Færdige");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Total print tid");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Længste print");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Total Extruderet");
#else
PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Prints");
PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Færdige");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Total");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Længste");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Extruderet");
#endif
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Forsæt print") PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Strømfors.");
#define MSG_EXPECTED_PRINTER _UxGT("Forkert printer") PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Driv Styrke");
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Driv %");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC EEPROM Skriv");
#if LCD_HEIGHT >= 4 PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Forsæt print");
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Vent på start")
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("af filament") PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Forkert printer");
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("skift")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Vent på") #if LCD_HEIGHT >= 4
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("filament udskyd.") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Vent på start", "af filament", "skift"));
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Indsæt filament") PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Vent på", "filament udskyd."));
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("og tryk på knap") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Indsæt filament", "og tryk på knap", "for at fortsætte..."));
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("for at fortsætte...") PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Vent på", "filament indtag"));
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Vent på") PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("Vent på at print", "fortsætter"));
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("filament indtag") #else // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Vent på at print") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Vent venligst..."));
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("fortsætter") PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Udskyder..."));
#else // LCD_HEIGHT < 4 PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Indsæt og klik"));
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Vent venligst...") PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Indtager..."));
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Udskyder...") PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Fortsætter..."));
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Indsæt og klik") #endif // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Indtager...") }
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Fortsætter...")
#endif // LCD_HEIGHT < 4

View file

@ -29,545 +29,652 @@
* *
*/ */
#define CHARSIZE 2 namespace Language_de {
using namespace Language_en; // Inherit undefined strings from English
#define THIS_LANGUAGES_SPECIAL_SYMBOLS _UxGT("ÄäÖöÜüß²³") constexpr uint8_t CHARSIZE = 2;
PROGMEM Language_Str LANGUAGE = _UxGT("Deutsche");
#define WELCOME_MSG MACHINE_NAME _UxGT(" bereit") PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" bereit");
#define MSG_YES _UxGT("JA")
#define MSG_NO _UxGT("NEIN")
#define MSG_BACK _UxGT("Zurück")
#define MSG_MEDIA_ABORTING _UxGT("Abbruch...")
#define MSG_MEDIA_INSERTED _UxGT("Medium erkannt")
#define MSG_MEDIA_REMOVED _UxGT("Medium entfernt")
#define MSG_MEDIA_RELEASED _UxGT("Medium freigegeben")
#define MSG_MEDIA_WAITING _UxGT("Warten auf Medium")
#define MSG_MEDIA_READ_ERROR _UxGT("Medium Lesefehler")
#define MSG_MEDIA_USB_REMOVED _UxGT("USB Gerät entfernt")
#define MSG_MEDIA_USB_FAILED _UxGT("USB Start fehlge.")
#define MSG_LCD_ENDSTOPS _UxGT("Endstopp") // Max length 8 characters
#define MSG_LCD_SOFT_ENDSTOPS _UxGT("Software-Endstopp")
#define MSG_MAIN _UxGT("Hauptmenü")
#define MSG_ADVANCED_SETTINGS _UxGT("Erw. Einstellungen")
#define MSG_CONFIGURATION _UxGT("Konfiguration")
#define MSG_AUTOSTART _UxGT("Autostart")
#define MSG_DISABLE_STEPPERS _UxGT("Motoren deaktivieren") // M84 :: Max length 19 characters
#define MSG_DEBUG_MENU _UxGT("Debug-Menü")
#define MSG_PROGRESS_BAR_TEST _UxGT("Statusbalken-Test")
#define MSG_AUTO_HOME _UxGT("Home XYZ") // G28
#define MSG_AUTO_HOME_X _UxGT("Home X")
#define MSG_AUTO_HOME_Y _UxGT("Home Y")
#define MSG_AUTO_HOME_Z _UxGT("Home Z")
#define MSG_AUTO_Z_ALIGN _UxGT("Z-Achsen ausgleichen")
#define MSG_LEVEL_BED_HOMING _UxGT("Home XYZ")
#define MSG_LEVEL_BED_WAITING _UxGT("Klick zum Starten")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Nächste Koordinate")
#define MSG_LEVEL_BED_DONE _UxGT("Nivellieren fertig!")
#define MSG_Z_FADE_HEIGHT _UxGT("Ausblendhöhe")
#define MSG_SET_HOME_OFFSETS _UxGT("Setze Homeversatz")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Homeversatz aktiv")
#define MSG_SET_ORIGIN _UxGT("Setze Nullpunkte") //"G92 X0 Y0 Z0" commented out in ultralcd.cpp
#define MSG_PREHEAT_1 _UxGT(PREHEAT_1_LABEL " Vorwärmen")
#define MSG_PREHEAT_1_N _UxGT(PREHEAT_1_LABEL " Vorwärmen ")
#define MSG_PREHEAT_1_ALL _UxGT(PREHEAT_1_LABEL " Alles Vorwärmen")
#define MSG_PREHEAT_1_END _UxGT(PREHEAT_1_LABEL " Extr. Vorwärmen")
#define MSG_PREHEAT_1_BEDONLY _UxGT(PREHEAT_1_LABEL " Bett Vorwärmen")
#define MSG_PREHEAT_1_SETTINGS _UxGT(PREHEAT_1_LABEL " Einstellungen")
#define MSG_PREHEAT_2 _UxGT(PREHEAT_2_LABEL " Vorwärmen")
#define MSG_PREHEAT_2_N _UxGT(PREHEAT_2_LABEL " Vorwärmen ")
#define MSG_PREHEAT_2_ALL _UxGT(PREHEAT_2_LABEL " Alles Vorwärmen")
#define MSG_PREHEAT_2_END _UxGT(PREHEAT_2_LABEL " Extr. Vorwärmen")
#define MSG_PREHEAT_2_BEDONLY _UxGT(PREHEAT_2_LABEL " Bett Vorwärmen")
#define MSG_PREHEAT_2_SETTINGS _UxGT(PREHEAT_2_LABEL " Einstellungen")
#define MSG_PREHEAT_CUSTOM _UxGT("benutzerdef. Heizen")
#define MSG_COOLDOWN _UxGT("Abkühlen")
#define MSG_LASER_MENU _UxGT("Laser")
#define MSG_LASER_OFF _UxGT("Laser aus")
#define MSG_LASER_ON _UxGT("Laser an")
#define MSG_LASER_POWER _UxGT("Laserleistung")
#define MSG_SPINDLE_MENU _UxGT("Spindel-Steuerung")
#define MSG_SPINDLE_OFF _UxGT("Spindel aus")
#define MSG_SPINDLE_ON _UxGT("Spindel an")
#define MSG_SPINDLE_POWER _UxGT("Spindelleistung")
#define MSG_SPINDLE_REVERSE _UxGT("Spindelrichtung")
#define MSG_SWITCH_PS_ON _UxGT("Netzteil ein")
#define MSG_SWITCH_PS_OFF _UxGT("Netzteil aus")
#define MSG_EXTRUDE _UxGT("Extrudieren")
#define MSG_RETRACT _UxGT("Einzug")
#define MSG_MOVE_AXIS _UxGT("Achsen bewegen")
#define MSG_BED_LEVELING _UxGT("Bett-Nivellierung")
#define MSG_LEVEL_BED _UxGT("Bett nivellieren")
#define MSG_LEVEL_CORNERS _UxGT("Ecken nivellieren")
#define MSG_NEXT_CORNER _UxGT("Nächste Ecke")
#define MSG_MESH_EDITOR _UxGT("Netz Editor")
#define MSG_EDIT_MESH _UxGT("Netz bearbeiten")
#define MSG_EDITING_STOPPED _UxGT("Netzbearb. angeh.")
#define MSG_PROBING_MESH _UxGT("Messpunkt")
#define MSG_MESH_X _UxGT("Index X")
#define MSG_MESH_Y _UxGT("Index Y")
#define MSG_MESH_EDIT_Z _UxGT("Z-Wert")
#define MSG_USER_MENU _UxGT("Benutzer-Menü")
#define MSG_LCD_TILTING_MESH _UxGT("Berührungspunkt")
#define MSG_M48_TEST _UxGT("M48 Sondentest")
#define MSG_M48_POINT _UxGT("M48 Punkt")
#define MSG_M48_DEVIATION _UxGT("Abweichung")
#define MSG_IDEX_MENU _UxGT("IDEX-Modus")
#define MSG_OFFSETS_MENU _UxGT("Werkzeugversätze")
#define MSG_IDEX_MODE_AUTOPARK _UxGT("Autom. parken")
#define MSG_IDEX_MODE_DUPLICATE _UxGT("Duplizieren")
#define MSG_IDEX_MODE_MIRRORED_COPY _UxGT("Spiegelkopie")
#define MSG_IDEX_MODE_FULL_CTRL _UxGT("vollstä. Kontrolle")
#define MSG_X_OFFSET _UxGT("2. Düse X")
#define MSG_Y_OFFSET _UxGT("2. Düse Y")
#define MSG_Z_OFFSET _UxGT("2. Düse Z")
#define MSG_UBL_DOING_G29 _UxGT("G29 ausführen")
#define MSG_UBL_TOOLS _UxGT("UBL-Werkzeuge")
#define MSG_UBL_LEVEL_BED _UxGT("Unified Bed Leveling")
#define MSG_UBL_MANUAL_MESH _UxGT("Netz manuell erst.")
#define MSG_UBL_BC_INSERT _UxGT("Unterlegen & messen")
#define MSG_UBL_BC_INSERT2 _UxGT("Messen")
#define MSG_UBL_BC_REMOVE _UxGT("Entfernen & messen")
#define MSG_UBL_MOVING_TO_NEXT _UxGT("Nächster Punkt...")
#define MSG_UBL_ACTIVATE_MESH _UxGT("UBL aktivieren")
#define MSG_UBL_DEACTIVATE_MESH _UxGT("UBL deaktivieren")
#define MSG_UBL_SET_TEMP_BED _UxGT("Betttemperatur")
#define MSG_UBL_BED_TEMP_CUSTOM MSG_UBL_SET_TEMP_BED
#define MSG_UBL_SET_TEMP_HOTEND _UxGT("Hotend-Temp.")
#define MSG_UBL_HOTEND_TEMP_CUSTOM MSG_UBL_SET_TEMP_HOTEND
#define MSG_UBL_MESH_EDIT _UxGT("Netz bearbeiten")
#define MSG_UBL_EDIT_CUSTOM_MESH _UxGT("Eigenes Netz bearb.")
#define MSG_UBL_FINE_TUNE_MESH _UxGT("Feineinstellung...")
#define MSG_UBL_DONE_EDITING_MESH _UxGT("Bearbeitung beendet")
#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Eigenes Netz erst.")
#define MSG_UBL_BUILD_MESH_MENU _UxGT("Netz erstellen")
#define MSG_UBL_BUILD_MESH_M1 _UxGT(PREHEAT_1_LABEL " Netz erstellen")
#define MSG_UBL_BUILD_MESH_M2 _UxGT(PREHEAT_2_LABEL " Netz erstellen")
#define MSG_UBL_BUILD_COLD_MESH _UxGT("Netz erstellen kalt")
#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Netzhöhe einst.")
#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Höhe")
#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("Netz validieren")
#define MSG_UBL_VALIDATE_MESH_M1 _UxGT(PREHEAT_1_LABEL " Netz validieren")
#define MSG_UBL_VALIDATE_MESH_M2 _UxGT(PREHEAT_2_LABEL " Netz validieren")
#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Eig. Netz validieren")
#define MSG_G26_HEATING_NOZZLE _UxGT("G26 Heating Nozzle")
#define MSG_G26_HEATING_BED _UxGT("G26 heizt Bett")
#define MSG_G26_FIXED_LENGTH _UxGT("Feste Länge Prime")
#define MSG_G26_PRIME_DONE _UxGT("Priming fertig")
#define MSG_G26_CANCELED _UxGT("G26 abgebrochen")
#define MSG_G26_LEAVING _UxGT("G26 verlassen")
#define MSG_UBL_CONTINUE_MESH _UxGT("Netzerst. forts.")
#define MSG_UBL_MESH_LEVELING _UxGT("Netz-Nivellierung")
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("3-Punkt-Nivell.")
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Gitternetz-Nivell.")
#define MSG_UBL_MESH_LEVEL _UxGT("Netz nivellieren")
#define MSG_UBL_SIDE_POINTS _UxGT("Eckpunkte")
#define MSG_UBL_MAP_TYPE _UxGT("Kartentyp")
#define MSG_UBL_OUTPUT_MAP _UxGT("Karte ausgeben")
#define MSG_UBL_OUTPUT_MAP_HOST _UxGT("Ausgabe für Host")
#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Ausgabe für CSV")
#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Externe Sicherung")
#define MSG_UBL_INFO_UBL _UxGT("UBL-Info ausgeben")
#define MSG_UBL_FILLIN_AMOUNT _UxGT("Menge an Füllung")
#define MSG_UBL_MANUAL_FILLIN _UxGT("Manuelles Füllen")
#define MSG_UBL_SMART_FILLIN _UxGT("Cleveres Füllen")
#define MSG_UBL_FILLIN_MESH _UxGT("Netz Füllen")
#define MSG_UBL_INVALIDATE_ALL _UxGT("Alles annullieren")
#define MSG_UBL_INVALIDATE_CLOSEST _UxGT("Nächstlieg. ann.")
#define MSG_UBL_FINE_TUNE_ALL _UxGT("Feineinst. Alles")
#define MSG_UBL_FINE_TUNE_CLOSEST _UxGT("Feineinst. Nächstl.")
#define MSG_UBL_STORAGE_MESH_MENU _UxGT("Netz-Speicherplatz")
#define MSG_UBL_STORAGE_SLOT _UxGT("Speicherort")
#define MSG_UBL_LOAD_MESH _UxGT("Bettnetz laden")
#define MSG_UBL_SAVE_MESH _UxGT("Bettnetz speichern")
#define MSG_MESH_LOADED _UxGT("Netz %i geladen")
#define MSG_MESH_SAVED _UxGT("Netz %i gespeichert")
#define MSG_UBL_NO_STORAGE _UxGT("Kein Speicher")
#define MSG_UBL_SAVE_ERROR _UxGT("Err:UBL speichern")
#define MSG_UBL_RESTORE_ERROR _UxGT("Err:UBL wiederherst.")
#define MSG_UBL_Z_OFFSET _UxGT("Z-Versatz: ")
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Z-Versatz angehalten")
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("Schrittweises UBL")
#define MSG_LED_CONTROL _UxGT("Licht-Steuerung") PROGMEM Language_Str MSG_YES = _UxGT("JA");
#define MSG_LEDS _UxGT("Licht") PROGMEM Language_Str MSG_NO = _UxGT("NEIN");
#define MSG_LED_PRESETS _UxGT("Licht-Einstellung") PROGMEM Language_Str MSG_BACK = _UxGT("Zurück");
#define MSG_SET_LEDS_RED _UxGT("Rot") PROGMEM Language_Str MSG_MEDIA_ABORTING = _UxGT("Abbruch...");
#define MSG_SET_LEDS_ORANGE _UxGT("Orange") PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Medium erkannt");
#define MSG_SET_LEDS_YELLOW _UxGT("Gelb") PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Medium entfernt");
#define MSG_SET_LEDS_GREEN _UxGT("Grün") PROGMEM Language_Str MSG_MEDIA_RELEASED = _UxGT("Medium freigegeben");
#define MSG_SET_LEDS_BLUE _UxGT("Blau") PROGMEM Language_Str MSG_MEDIA_WAITING = _UxGT("Warten auf Medium");
#define MSG_SET_LEDS_INDIGO _UxGT("Indigo") PROGMEM Language_Str MSG_MEDIA_READ_ERROR = _UxGT("Medium Lesefehler");
#define MSG_SET_LEDS_VIOLET _UxGT("Violett") PROGMEM Language_Str MSG_MEDIA_USB_REMOVED = _UxGT("USB Gerät entfernt");
#define MSG_SET_LEDS_WHITE _UxGT("Weiß") PROGMEM Language_Str MSG_MEDIA_USB_FAILED = _UxGT("USB Start fehlge.");
#define MSG_SET_LEDS_DEFAULT _UxGT("Standard") PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Endstopp"); // Max length 8 characters
#define MSG_CUSTOM_LEDS _UxGT("Benutzerdefiniert") PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("Software-Endstopp");
#define MSG_INTENSITY_R _UxGT("Intensität Rot") PROGMEM Language_Str MSG_MAIN = _UxGT("Hauptmenü");
#define MSG_INTENSITY_G _UxGT("Intensität Grün") PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("Erw. Einstellungen");
#define MSG_INTENSITY_B _UxGT("Intensität Blau") PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("Konfiguration");
#define MSG_INTENSITY_W _UxGT("Intensität Weiß") PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Autostart");
#define MSG_LED_BRIGHTNESS _UxGT("Helligkeit") PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Motoren deaktivieren"); // M84 :: Max length 19 characters
PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("Debug-Menü");
PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Statusbalken-Test");
PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("Z-Achsen ausgleichen");
PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Klick zum Starten");
PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Nächste Koordinate");
PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Nivellieren fertig!");
PROGMEM Language_Str MSG_Z_FADE_HEIGHT = _UxGT("Ausblendhöhe");
PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Setze Homeversatz");
PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Homeversatz aktiv");
PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Setze Nullpunkte"); //"G92 X0 Y0 Z0" commented out in ultralcd.cpp
PROGMEM Language_Str MSG_PREHEAT_1 = PREHEAT_1_LABEL _UxGT(" Vorwärmen");
PROGMEM Language_Str MSG_PREHEAT_1_H0 = PREHEAT_1_LABEL _UxGT(" Vorwärmen") " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_H1 = PREHEAT_1_LABEL _UxGT(" Vorwärmen") " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_H2 = PREHEAT_1_LABEL _UxGT(" Vorwärmen") " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_H3 = PREHEAT_1_LABEL _UxGT(" Vorwärmen") " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_H4 = PREHEAT_1_LABEL _UxGT(" Vorwärmen") " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_H5 = PREHEAT_1_LABEL _UxGT(" Vorwärmen") " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_END = PREHEAT_1_LABEL _UxGT(" Extr. Vorwärmen");
PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = PREHEAT_1_LABEL _UxGT(" Extr. Vorwärm. ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = PREHEAT_1_LABEL _UxGT(" Extr. Vorwärm. ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = PREHEAT_1_LABEL _UxGT(" Extr. Vorwärm. ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = PREHEAT_1_LABEL _UxGT(" Extr. Vorwärm. ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = PREHEAT_1_LABEL _UxGT(" Extr. Vorwärm. ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = PREHEAT_1_LABEL _UxGT(" Extr. Vorwärm. ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_ALL = PREHEAT_1_LABEL _UxGT(" Alles Vorwärmen");
PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = PREHEAT_1_LABEL _UxGT(" Bett Vorwärmen");
PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = PREHEAT_1_LABEL _UxGT(" Einstellungen");
PROGMEM Language_Str MSG_PREHEAT_2 = PREHEAT_2_LABEL _UxGT(" Vorwärmen");
PROGMEM Language_Str MSG_PREHEAT_2_H0 = PREHEAT_2_LABEL _UxGT(" Vorwärmen") " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_H1 = PREHEAT_2_LABEL _UxGT(" Vorwärmen") " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_H2 = PREHEAT_2_LABEL _UxGT(" Vorwärmen") " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_H3 = PREHEAT_2_LABEL _UxGT(" Vorwärmen") " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_H4 = PREHEAT_2_LABEL _UxGT(" Vorwärmen") " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_H5 = PREHEAT_2_LABEL _UxGT(" Vorwärmen") " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_END = PREHEAT_2_LABEL _UxGT(" Extr. Vorwärmen");
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = PREHEAT_2_LABEL _UxGT(" Extr. Vorwärm. ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = PREHEAT_2_LABEL _UxGT(" Extr. Vorwärm. ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = PREHEAT_2_LABEL _UxGT(" Extr. Vorwärm. ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = PREHEAT_2_LABEL _UxGT(" Extr. Vorwärm. ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = PREHEAT_2_LABEL _UxGT(" Extr. Vorwärm. ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = PREHEAT_2_LABEL _UxGT(" Extr. Vorwärm. ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_ALL = PREHEAT_2_LABEL _UxGT(" Alles Vorwärmen");
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = PREHEAT_2_LABEL _UxGT(" Bett Vorwärmen");
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = PREHEAT_2_LABEL _UxGT(" Einstellungen");
PROGMEM Language_Str MSG_PREHEAT_CUSTOM = _UxGT("benutzerdef. Heizen");
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Abkühlen");
PROGMEM Language_Str MSG_LASER_MENU = _UxGT("Laser");
PROGMEM Language_Str MSG_LASER_OFF = _UxGT("Laser aus");
PROGMEM Language_Str MSG_LASER_ON = _UxGT("Laser an");
PROGMEM Language_Str MSG_LASER_POWER = _UxGT("Laserleistung");
PROGMEM Language_Str MSG_SPINDLE_MENU = _UxGT("Spindel-Steuerung");
PROGMEM Language_Str MSG_SPINDLE_OFF = _UxGT("Spindel aus");
PROGMEM Language_Str MSG_SPINDLE_ON = _UxGT("Spindel an");
PROGMEM Language_Str MSG_SPINDLE_POWER = _UxGT("Spindelleistung");
PROGMEM Language_Str MSG_SPINDLE_REVERSE = _UxGT("Spindelrichtung");
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Netzteil ein");
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Netzteil aus");
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Extrudieren");
PROGMEM Language_Str MSG_RETRACT = _UxGT("Einzug");
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Achsen bewegen");
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Bett-Nivellierung");
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Bett nivellieren");
PROGMEM Language_Str MSG_LEVEL_CORNERS = _UxGT("Ecken nivellieren");
PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("Nächste Ecke");
PROGMEM Language_Str MSG_MESH_EDITOR = _UxGT("Netz Editor");
PROGMEM Language_Str MSG_EDIT_MESH = _UxGT("Netz bearbeiten");
PROGMEM Language_Str MSG_EDITING_STOPPED = _UxGT("Netzbearb. angeh.");
PROGMEM Language_Str MSG_PROBING_MESH = _UxGT("Messpunkt");
PROGMEM Language_Str MSG_MESH_X = _UxGT("Index X");
PROGMEM Language_Str MSG_MESH_Y = _UxGT("Index Y");
PROGMEM Language_Str MSG_MESH_EDIT_Z = _UxGT("Z-Wert");
PROGMEM Language_Str MSG_USER_MENU = _UxGT("Benutzer-Menü");
PROGMEM Language_Str MSG_LCD_TILTING_MESH = _UxGT("Berührungspunkt");
PROGMEM Language_Str MSG_M48_TEST = _UxGT("M48 Sondentest");
PROGMEM Language_Str MSG_M48_POINT = _UxGT("M48 Punkt");
PROGMEM Language_Str MSG_M48_DEVIATION = _UxGT("Abweichung");
PROGMEM Language_Str MSG_IDEX_MENU = _UxGT("IDEX-Modus");
PROGMEM Language_Str MSG_OFFSETS_MENU = _UxGT("Werkzeugversätze");
PROGMEM Language_Str MSG_IDEX_MODE_AUTOPARK = _UxGT("Autom. parken");
PROGMEM Language_Str MSG_IDEX_MODE_DUPLICATE = _UxGT("Duplizieren");
PROGMEM Language_Str MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Spiegelkopie");
PROGMEM Language_Str MSG_IDEX_MODE_FULL_CTRL = _UxGT("vollstä. Kontrolle");
PROGMEM Language_Str MSG_X_OFFSET = _UxGT("2. Düse X");
PROGMEM Language_Str MSG_Y_OFFSET = _UxGT("2. Düse Y");
PROGMEM Language_Str MSG_Z_OFFSET = _UxGT("2. Düse Z");
PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("G29 ausführen");
PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("UBL-Werkzeuge");
PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("Unified Bed Leveling");
PROGMEM Language_Str MSG_UBL_MANUAL_MESH = _UxGT("Netz manuell erst.");
PROGMEM Language_Str MSG_UBL_BC_INSERT = _UxGT("Unterlegen & messen");
PROGMEM Language_Str MSG_UBL_BC_INSERT2 = _UxGT("Messen");
PROGMEM Language_Str MSG_UBL_BC_REMOVE = _UxGT("Entfernen & messen");
PROGMEM Language_Str MSG_UBL_MOVING_TO_NEXT = _UxGT("Nächster Punkt...");
PROGMEM Language_Str MSG_UBL_ACTIVATE_MESH = _UxGT("UBL aktivieren");
PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("UBL deaktivieren");
PROGMEM Language_Str MSG_UBL_SET_TEMP_BED = _UxGT("Betttemperatur");
PROGMEM Language_Str MSG_UBL_BED_TEMP_CUSTOM = _UxGT("Betttemperatur");
PROGMEM Language_Str MSG_UBL_SET_TEMP_HOTEND = _UxGT("Hotend-Temp.");
PROGMEM Language_Str MSG_UBL_HOTEND_TEMP_CUSTOM = _UxGT("Hotend-Temp.");
PROGMEM Language_Str MSG_UBL_MESH_EDIT = _UxGT("Netz bearbeiten");
PROGMEM Language_Str MSG_UBL_EDIT_CUSTOM_MESH = _UxGT("Eigenes Netz bearb.");
PROGMEM Language_Str MSG_UBL_FINE_TUNE_MESH = _UxGT("Feineinstellung...");
PROGMEM Language_Str MSG_UBL_DONE_EDITING_MESH = _UxGT("Bearbeitung beendet");
PROGMEM Language_Str MSG_UBL_BUILD_CUSTOM_MESH = _UxGT("Eigenes Netz erst.");
PROGMEM Language_Str MSG_UBL_BUILD_MESH_MENU = _UxGT("Netz erstellen");
PROGMEM Language_Str MSG_UBL_BUILD_MESH_M1 = PREHEAT_1_LABEL _UxGT(" Netz erstellen");
PROGMEM Language_Str MSG_UBL_BUILD_MESH_M2 = PREHEAT_2_LABEL _UxGT(" Netz erstellen");
PROGMEM Language_Str MSG_UBL_BUILD_COLD_MESH = _UxGT("Netz erstellen kalt");
PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_ADJUST = _UxGT("Netzhöhe einst.");
PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_AMOUNT = _UxGT("Höhe");
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_MENU = _UxGT("Netz validieren");
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M1 = PREHEAT_1_LABEL _UxGT(" Netz validieren");
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M2 = PREHEAT_2_LABEL _UxGT(" Netz validieren");
PROGMEM Language_Str MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("Eig. Netz validieren");
PROGMEM Language_Str MSG_G26_HEATING_NOZZLE = _UxGT("G26 Heating Nozzle");
PROGMEM Language_Str MSG_G26_HEATING_BED = _UxGT("G26 heizt Bett");
PROGMEM Language_Str MSG_G26_FIXED_LENGTH = _UxGT("Feste Länge Prime");
PROGMEM Language_Str MSG_G26_PRIME_DONE = _UxGT("Priming fertig");
PROGMEM Language_Str MSG_G26_CANCELED = _UxGT("G26 abgebrochen");
PROGMEM Language_Str MSG_G26_LEAVING = _UxGT("G26 verlassen");
PROGMEM Language_Str MSG_UBL_CONTINUE_MESH = _UxGT("Netzerst. forts.");
PROGMEM Language_Str MSG_UBL_MESH_LEVELING = _UxGT("Netz-Nivellierung");
PROGMEM Language_Str MSG_UBL_3POINT_MESH_LEVELING = _UxGT("3-Punkt-Nivell.");
PROGMEM Language_Str MSG_UBL_GRID_MESH_LEVELING = _UxGT("Gitternetz-Nivell.");
PROGMEM Language_Str MSG_UBL_MESH_LEVEL = _UxGT("Netz nivellieren");
PROGMEM Language_Str MSG_UBL_SIDE_POINTS = _UxGT("Eckpunkte");
PROGMEM Language_Str MSG_UBL_MAP_TYPE = _UxGT("Kartentyp");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP = _UxGT("Karte ausgeben");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_HOST = _UxGT("Ausgabe für Host");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_CSV = _UxGT("Ausgabe für CSV");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_BACKUP = _UxGT("Externe Sicherung");
PROGMEM Language_Str MSG_UBL_INFO_UBL = _UxGT("UBL-Info ausgeben");
PROGMEM Language_Str MSG_UBL_FILLIN_AMOUNT = _UxGT("Menge an Füllung");
PROGMEM Language_Str MSG_UBL_MANUAL_FILLIN = _UxGT("Manuelles Füllen");
PROGMEM Language_Str MSG_UBL_SMART_FILLIN = _UxGT("Cleveres Füllen");
PROGMEM Language_Str MSG_UBL_FILLIN_MESH = _UxGT("Netz Füllen");
PROGMEM Language_Str MSG_UBL_INVALIDATE_ALL = _UxGT("Alles annullieren");
PROGMEM Language_Str MSG_UBL_INVALIDATE_CLOSEST = _UxGT("Nächstlieg. ann.");
PROGMEM Language_Str MSG_UBL_FINE_TUNE_ALL = _UxGT("Feineinst. Alles");
PROGMEM Language_Str MSG_UBL_FINE_TUNE_CLOSEST = _UxGT("Feineinst. Nächstl.");
PROGMEM Language_Str MSG_UBL_STORAGE_MESH_MENU = _UxGT("Netz-Speicherplatz");
PROGMEM Language_Str MSG_UBL_STORAGE_SLOT = _UxGT("Speicherort");
PROGMEM Language_Str MSG_UBL_LOAD_MESH = _UxGT("Bettnetz laden");
PROGMEM Language_Str MSG_UBL_SAVE_MESH = _UxGT("Bettnetz speichern");
PROGMEM Language_Str MSG_MESH_LOADED = _UxGT("M117 Netz %i geladen");
PROGMEM Language_Str MSG_MESH_SAVED = _UxGT("M117 Netz %i gespeichert");
PROGMEM Language_Str MSG_UBL_NO_STORAGE = _UxGT("Kein Speicher");
PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("Err:UBL speichern");
PROGMEM Language_Str MSG_UBL_RESTORE_ERROR = _UxGT("Err:UBL wiederherst.");
PROGMEM Language_Str MSG_UBL_Z_OFFSET = _UxGT("Z-Versatz: ");
PROGMEM Language_Str MSG_UBL_Z_OFFSET_STOPPED = _UxGT("Z-Versatz angehalten");
PROGMEM Language_Str MSG_UBL_STEP_BY_STEP_MENU = _UxGT("Schrittweises UBL");
PROGMEM Language_Str MSG_UBL_1_BUILD_COLD_MESH = _UxGT("1.Netz erstellen kalt");
PROGMEM Language_Str MSG_UBL_2_SMART_FILLIN = _UxGT("2.Cleveres Füllen");
PROGMEM Language_Str MSG_UBL_3_VALIDATE_MESH_MENU = _UxGT("3.Netz validieren");
PROGMEM Language_Str MSG_UBL_4_FINE_TUNE_ALL = _UxGT("4.Feineinst. Alles");
PROGMEM Language_Str MSG_UBL_5_VALIDATE_MESH_MENU = _UxGT("5.Netz validieren");
PROGMEM Language_Str MSG_UBL_6_FINE_TUNE_ALL = _UxGT("6.Feineinst. Alles");
PROGMEM Language_Str MSG_UBL_7_SAVE_MESH = _UxGT("7.Bettnetz speichern");
#define MSG_MOVING _UxGT("In Bewegung...") PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("Licht-Steuerung");
#define MSG_FREE_XY _UxGT("Abstand XY") PROGMEM Language_Str MSG_LEDS = _UxGT("Licht");
#define MSG_MOVE_X _UxGT("Bewege X") PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("Licht-Einstellung");
#define MSG_MOVE_Y _UxGT("Bewege Y") PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("Rot");
#define MSG_MOVE_Z _UxGT("Bewege Z") PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("Orange");
#define MSG_MOVE_E _UxGT("Bewege Extruder") PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("Gelb");
#define MSG_HOTEND_TOO_COLD _UxGT("Hotend zu kalt") PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("Grün");
#define MSG_MOVE_Z_DIST _UxGT(" %s mm") PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("Blau");
#define MSG_MOVE_01MM _UxGT(" 0,1 mm") PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("Indigo");
#define MSG_MOVE_1MM _UxGT(" 1,0 mm") PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Violett");
#define MSG_MOVE_10MM _UxGT("10,0 mm") PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("Weiß");
#define MSG_SPEED _UxGT("Geschw.") PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("Standard");
#define MSG_BED_Z _UxGT("Bett Z") PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("Benutzerdefiniert");
#define MSG_NOZZLE _UxGT("Düse") PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Intensität Rot");
#define MSG_BED _UxGT("Bett") PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Intensität Grün");
#define MSG_CHAMBER _UxGT("Gehäuse") PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("Intensität Blau");
#define MSG_FAN_SPEED _UxGT("Lüfter") PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("Intensität Weiß");
#define MSG_EXTRA_FAN_SPEED _UxGT("Geschw. Extralüfter") PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("Helligkeit");
#define MSG_FLOW _UxGT("Flussrate")
#define MSG_CONTROL _UxGT("Einstellungen")
#define MSG_MIN LCD_STR_THERMOMETER _UxGT(" min")
#define MSG_MAX LCD_STR_THERMOMETER _UxGT(" max")
#define MSG_FACTOR LCD_STR_THERMOMETER _UxGT(" Faktor")
#define MSG_AUTOTEMP _UxGT("Auto Temperatur")
#define MSG_LCD_ON _UxGT("an")
#define MSG_LCD_OFF _UxGT("aus")
#define MSG_PID_P _UxGT("PID P")
#define MSG_PID_I _UxGT("PID I")
#define MSG_PID_D _UxGT("PID D")
#define MSG_PID_C _UxGT("PID C")
#define MSG_SELECT _UxGT("Auswählen")
#define MSG_ACC _UxGT("Beschleunigung")
#define MSG_JERK _UxGT("Jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("V A Jerk")
#define MSG_VB_JERK _UxGT("V B Jerk")
#define MSG_VC_JERK _UxGT("V C Jerk")
#else
#define MSG_VA_JERK _UxGT("V X Jerk")
#define MSG_VB_JERK _UxGT("V Y Jerk")
#define MSG_VC_JERK _UxGT("V Z Jerk")
#endif
#define MSG_VE_JERK _UxGT("V E Jerk")
#define MSG_JUNCTION_DEVIATION _UxGT("Junction Dev")
#define MSG_VELOCITY _UxGT("Geschwindigkeit")
#define MSG_VMAX _UxGT("V max ") // space intentional
#define MSG_VMIN _UxGT("V min ")
#define MSG_VTRAV_MIN _UxGT("V min Leerfahrt")
#define MSG_ACCELERATION _UxGT("Beschleunigung")
#define MSG_AMAX _UxGT("A max ") // space intentional
#define MSG_A_RETRACT _UxGT("A Einzug")
#define MSG_A_TRAVEL _UxGT("A Leerfahrt")
#define MSG_STEPS_PER_MM _UxGT("Steps/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("A Steps/mm")
#define MSG_BSTEPS _UxGT("B Steps/mm")
#define MSG_CSTEPS _UxGT("C Steps/mm")
#else
#define MSG_ASTEPS _UxGT("X Steps/mm")
#define MSG_BSTEPS _UxGT("Y Steps/mm")
#define MSG_CSTEPS _UxGT("Z Steps/mm")
#endif
#define MSG_ESTEPS _UxGT("E Steps/mm")
#define MSG_E0_STEPS _UxGT("E1 Steps/mm")
#define MSG_E1_STEPS _UxGT("E2 Steps/mm")
#define MSG_E2_STEPS _UxGT("E3 Steps/mm")
#define MSG_E3_STEPS _UxGT("E4 Steps/mm")
#define MSG_E4_STEPS _UxGT("E5 Steps/mm")
#define MSG_E5_STEPS _UxGT("E6 Steps/mm")
#define MSG_TEMPERATURE _UxGT("Temperatur")
#define MSG_MOTION _UxGT("Bewegung")
#define MSG_FILAMENT _UxGT("Filament")
#define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm³")
#define MSG_FILAMENT_DIAM _UxGT("Filamentdurchmesser")
#define MSG_FILAMENT_UNLOAD _UxGT("Entladen mm")
#define MSG_FILAMENT_LOAD _UxGT("Laden mm")
#define MSG_ADVANCE_K _UxGT("Vorschubfaktor")
#define MSG_CONTRAST _UxGT("LCD-Kontrast")
#define MSG_STORE_EEPROM _UxGT("Konfig. speichern")
#define MSG_LOAD_EEPROM _UxGT("Konfig. laden")
#define MSG_RESTORE_FAILSAFE _UxGT("Standardwerte laden")
#define MSG_INIT_EEPROM _UxGT("Werkseinstellungen")
#define MSG_MEDIA_UPDATE _UxGT("FW Update vom Medium")
#define MSG_RESET_PRINTER _UxGT("Drucker neustarten")
#define MSG_REFRESH _UxGT("Aktualisieren")
#define MSG_WATCH _UxGT("Info")
#define MSG_PREPARE _UxGT("Vorbereitung")
#define MSG_TUNE _UxGT("Justierung")
#define MSG_START_PRINT _UxGT("Starte Druck")
#define MSG_BUTTON_NEXT _UxGT("Weiter")
#define MSG_BUTTON_INIT _UxGT("Bestätigen")
#define MSG_BUTTON_STOP _UxGT("Stop")
#define MSG_BUTTON_PRINT _UxGT("Drucken")
#define MSG_BUTTON_RESET _UxGT("Reseten")
#define MSG_BUTTON_CANCEL _UxGT("Abbrechen")
#define MSG_BUTTON_DONE _UxGT("Fertig")
#define MSG_PAUSE_PRINT _UxGT("SD-Druck pausieren")
#define MSG_RESUME_PRINT _UxGT("SD-Druck fortsetzen")
#define MSG_STOP_PRINT _UxGT("SD-Druck abbrechen")
#define MSG_OUTAGE_RECOVERY _UxGT("Wiederh. n. Stroma.")
#define MSG_MEDIA_MENU _UxGT("Druck vom Medium")
#define MSG_NO_MEDIA _UxGT("Kein Medium")
#define MSG_DWELL _UxGT("Warten...")
#define MSG_USERWAIT _UxGT("Klick zum Fortsetzen")
#define MSG_PRINT_PAUSED _UxGT("Druck pausiert...")
#define MSG_PRINTING _UxGT("Druckt...")
#define MSG_PRINT_ABORTED _UxGT("Druck abgebrochen")
#define MSG_NO_MOVE _UxGT("Motoren angeschaltet")
#define MSG_KILLED _UxGT("ABGEBROCHEN")
#define MSG_STOPPED _UxGT("ANGEHALTEN")
#define MSG_CONTROL_RETRACT _UxGT("Einzug mm")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Wechs. Einzug mm")
#define MSG_CONTROL_RETRACTF _UxGT("V Einzug")
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Z-Sprung mm")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Wechs. UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("UnRet V")
#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V")
#define MSG_AUTORETRACT _UxGT("Autom. Einzug")
#define MSG_FILAMENT_SWAP_LENGTH _UxGT("Einzugslänge")
#define MSG_FILAMENT_PURGE_LENGTH _UxGT("Entladelänge")
#define MSG_TOOL_CHANGE _UxGT("Werkzeugwechsel")
#define MSG_TOOL_CHANGE_ZLIFT _UxGT("Z anheben")
#define MSG_SINGLENOZZLE_PRIME_SPD _UxGT("Prime-Geschwin.")
#define MSG_SINGLENOZZLE_RETRACT_SPD _UxGT("Einzug-Geschwin.")
#define MSG_NOZZLE_STANDBY _UxGT("Düsen-Standby")
#define MSG_FILAMENTCHANGE _UxGT("Filament wechseln")
#define MSG_FILAMENTLOAD _UxGT("Filament laden")
#define MSG_FILAMENTUNLOAD _UxGT("Filament entladen")
#define MSG_FILAMENTUNLOAD_ALL _UxGT("Alles entladen")
#define MSG_INIT_MEDIA _UxGT("Medium initial.") // Manually initialize the SD-card via user interface
#define MSG_CHANGE_MEDIA _UxGT("Medium getauscht") // SD-card changed by user. For machines with no autocarddetect. Both send "M21"
#define MSG_RELEASE_MEDIA _UxGT("Medium freigeben") // if Marlin gets confused - M22
#define MSG_ZPROBE_OUT _UxGT("Z-Sonde außerhalb")
#define MSG_SKEW_FACTOR _UxGT("Korrekturfaktor")
#define MSG_BLTOUCH _UxGT("BLTouch")
#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch Selbsttest")
#define MSG_BLTOUCH_RESET _UxGT("BLTouch zurücks.")
#define MSG_BLTOUCH_DEPLOY _UxGT("BLTouch ausfahren")
#define MSG_BLTOUCH_SW_MODE _UxGT("BLTouch SW-Modus")
#define MSG_BLTOUCH_5V_MODE _UxGT("BLTouch 5V-Modus")
#define MSG_BLTOUCH_OD_MODE _UxGT("BLTouch OD-Modus")
#define MSG_BLTOUCH_MODE_STORE _UxGT("BLTouch Mode Store")
#define MSG_BLTOUCH_MODE_STORE_5V _UxGT("BLTouch auf 5V")
#define MSG_BLTOUCH_MODE_STORE_OD _UxGT("BLTouch auf OD")
#define MSG_BLTOUCH_STOW _UxGT("BLTouch einfahren")
#define MSG_BLTOUCH_MODE_ECHO _UxGT("BLTouch Modus: ")
#define MSG_BLTOUCH_MODE_CHANGE _UxGT("ACHTUNG: Falsche Einstellung - kann zu Beschädigung führen! Fortfahren?")
#define MSG_TOUCHMI_PROBE _UxGT("TouchMI")
#define MSG_TOUCHMI_INIT _UxGT("TouchMI initial.")
#define MSG_TOUCHMI_ZTEST _UxGT("Test Z-Versatz")
#define MSG_TOUCHMI_SAVE _UxGT("Speichern")
#define MSG_MANUAL_DEPLOY_TOUCHMI _UxGT("TouchMI ausfahren")
#define MSG_MANUAL_DEPLOY _UxGT("Z-Sonde ausfahren")
#define MSG_MANUAL_STOW _UxGT("Z-Sonde einfahren")
#define MSG_HOME_FIRST _UxGT("Vorher %s%s%s homen")
#define MSG_ZPROBE_ZOFFSET _UxGT("Sondenversatz Z")
#define MSG_BABYSTEP_X _UxGT("Babystep X")
#define MSG_BABYSTEP_Y _UxGT("Babystep Y")
#define MSG_BABYSTEP_Z _UxGT("Babystep Z")
#define MSG_BABYSTEP_TOTAL _UxGT("Total")
#define MSG_ENDSTOP_ABORT _UxGT("Abbr. mit Endstopp")
#define MSG_HEATING_FAILED_LCD _UxGT("HEIZEN ERFOLGLOS")
#define MSG_HEATING_FAILED_LCD_BED _UxGT("Bett heizen fehlge.")
#define MSG_HEATING_FAILED_LCD_CHAMBER _UxGT("Geh. heizen fehlge.")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("REDUND. TEMP-ABWEI.")
#define MSG_THERMAL_RUNAWAY LCD_STR_THERMOMETER _UxGT(" NICHT ERREICHT")
#define MSG_THERMAL_RUNAWAY_BED _UxGT("BETT") MSG_THERMAL_RUNAWAY
#define MSG_THERMAL_RUNAWAY_CHAMBER _UxGT("GEH.") MSG_THERMAL_RUNAWAY
#define MSG_ERR_MAXTEMP LCD_STR_THERMOMETER _UxGT(" ÜBERSCHRITTEN")
#define MSG_ERR_MINTEMP LCD_STR_THERMOMETER _UxGT(" UNTERSCHRITTEN")
#define MSG_ERR_MAXTEMP_BED _UxGT("BETT ") LCD_STR_THERMOMETER _UxGT(" ÜBERSCHRITTEN")
#define MSG_ERR_MINTEMP_BED _UxGT("BETT ") LCD_STR_THERMOMETER _UxGT(" UNTERSCHRITTEN")
#define MSG_ERR_MAXTEMP_CHAMBER _UxGT("Err:Gehäuse max Temp")
#define MSG_ERR_MINTEMP_CHAMBER _UxGT("Err:Gehäuse min Temp")
#define MSG_ERR_Z_HOMING _UxGT("Vorher XY homen")
#define MSG_HALTED _UxGT("DRUCKER GESTOPPT")
#define MSG_PLEASE_RESET _UxGT("Bitte neustarten")
#define MSG_SHORT_DAY _UxGT("t") // One character only
#define MSG_SHORT_HOUR _UxGT("h") // One character only
#define MSG_SHORT_MINUTE _UxGT("m") // One character only
#define MSG_HEATING _UxGT("heizt...")
#define MSG_COOLING _UxGT("kühlt...")
#define MSG_BED_HEATING _UxGT("Bett heizt...")
#define MSG_BED_COOLING _UxGT("Bett kühlt...")
#define MSG_CHAMBER_HEATING _UxGT("Gehäuse heizt...")
#define MSG_CHAMBER_COOLING _UxGT("Gehäuse kühlt...")
#define MSG_DELTA_CALIBRATE _UxGT("Delta kalibrieren")
#define MSG_DELTA_CALIBRATE_X _UxGT("Kalibriere X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibriere Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Kalibriere Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Kalibriere Mitte")
#define MSG_DELTA_SETTINGS _UxGT("Delta Einst. anzeig.")
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Autom. Kalibrierung")
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Delta Höhe setzen")
#define MSG_DELTA_Z_OFFSET_CALIBRATE _UxGT("Sondenversatz Z")
#define MSG_DELTA_DIAG_ROD _UxGT("Diag Rod")
#define MSG_DELTA_HEIGHT _UxGT("Höhe")
#define MSG_DELTA_RADIUS _UxGT("Radius")
#define MSG_INFO_MENU _UxGT("Über den Drucker")
#define MSG_INFO_PRINTER_MENU _UxGT("Drucker-Info")
#define MSG_3POINT_LEVELING _UxGT("3-Punkt-Nivellierung")
#define MSG_LINEAR_LEVELING _UxGT("Lineare Nivellierung")
#define MSG_BILINEAR_LEVELING _UxGT("Bilineare Nivell.")
#define MSG_UBL_LEVELING _UxGT("Unified Bed Leveling")
#define MSG_MESH_LEVELING _UxGT("Netz-Nivellierung")
#define MSG_INFO_STATS_MENU _UxGT("Drucker-Statistik")
#define MSG_INFO_BOARD_MENU _UxGT("Board-Info")
#define MSG_INFO_THERMISTOR_MENU _UxGT("Thermistoren")
#define MSG_INFO_EXTRUDERS _UxGT("Extruder")
#define MSG_INFO_BAUDRATE _UxGT("Baudrate")
#define MSG_INFO_PROTOCOL _UxGT("Protokoll")
#define MSG_CASE_LIGHT _UxGT("Beleuchtung")
#define MSG_CASE_LIGHT_BRIGHTNESS _UxGT("Helligkeit")
#define MSG_EXPECTED_PRINTER _UxGT("Falscher Drucker") PROGMEM Language_Str MSG_MOVING = _UxGT("In Bewegung...");
PROGMEM Language_Str MSG_FREE_XY = _UxGT("Abstand XY");
PROGMEM Language_Str MSG_MOVE_X = _UxGT("Bewege X");
PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Bewege Y");
PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Bewege Z");
PROGMEM Language_Str MSG_MOVE_E = _UxGT("Bewege Extruder");
PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Bewege Extruder ") LCD_STR_E0;
PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Bewege Extruder ") LCD_STR_E1;
PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Bewege Extruder ") LCD_STR_E2;
PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Bewege Extruder ") LCD_STR_E3;
PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Bewege Extruder ") LCD_STR_E4;
PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Bewege Extruder ") LCD_STR_E5;
PROGMEM Language_Str MSG_HOTEND_TOO_COLD = _UxGT("Hotend zu kalt");
PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT(" %s mm");
PROGMEM Language_Str MSG_MOVE_01MM = _UxGT(" 0,1 mm");
PROGMEM Language_Str MSG_MOVE_1MM = _UxGT(" 1,0 mm");
PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("10,0 mm");
PROGMEM Language_Str MSG_SPEED = _UxGT("Geschw.");
PROGMEM Language_Str MSG_BED_Z = _UxGT("Bett Z");
PROGMEM Language_Str MSG_NOZZLE = _UxGT("Düse");
PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Düse ") LCD_STR_N0;
PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Düse ") LCD_STR_N1;
PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Düse ") LCD_STR_N2;
PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Düse ") LCD_STR_N3;
PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Düse ") LCD_STR_N4;
PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Düse ") LCD_STR_N5;
PROGMEM Language_Str MSG_BED = _UxGT("Bett");
PROGMEM Language_Str MSG_CHAMBER = _UxGT("Gehäuse");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Lüfter");
PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Lüfter 1");
PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Lüfter 2");
PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Lüfter 3");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Geschw. Extralüfter");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_1 = _UxGT("Geschw. Extralüfter 1");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_2 = _UxGT("Geschw. Extralüfter 2");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_3 = _UxGT("Geschw. Extralüfter 3");
PROGMEM Language_Str MSG_FLOW = _UxGT("Flussrate");
PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Flussrate ") LCD_STR_N0;
PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Flussrate ") LCD_STR_N1;
PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Flussrate ") LCD_STR_N2;
PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Flussrate ") LCD_STR_N3;
PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Flussrate ") LCD_STR_N4;
PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Flussrate ") LCD_STR_N5;
PROGMEM Language_Str MSG_CONTROL = _UxGT("Einstellungen");
PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" min");
PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" max");
PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Faktor");
PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Auto Temperatur");
PROGMEM Language_Str MSG_LCD_ON = _UxGT("an");
PROGMEM Language_Str MSG_LCD_OFF = _UxGT("aus");
PROGMEM Language_Str MSG_PID_P = _UxGT("PID P");
PROGMEM Language_Str MSG_PID_P_E0 = _UxGT("PID P ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_P_E1 = _UxGT("PID P ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_P_E2 = _UxGT("PID P ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_P_E3 = _UxGT("PID P ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_P_E4 = _UxGT("PID P ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_P_E5 = _UxGT("PID P ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_I = _UxGT("PID I");
PROGMEM Language_Str MSG_PID_I_E0 = _UxGT("PID I ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_I_E1 = _UxGT("PID I ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_I_E2 = _UxGT("PID I ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_I_E3 = _UxGT("PID I ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_I_E4 = _UxGT("PID I ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_I_E5 = _UxGT("PID I ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_D = _UxGT("PID D");
PROGMEM Language_Str MSG_PID_D_E0 = _UxGT("PID D ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_D_E1 = _UxGT("PID D ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_D_E2 = _UxGT("PID D ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_D_E3 = _UxGT("PID D ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_D_E4 = _UxGT("PID D ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_D_E5 = _UxGT("PID D ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_C = _UxGT("PID C");
PROGMEM Language_Str MSG_PID_C_E0 = _UxGT("PID C ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_C_E1 = _UxGT("PID C ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_C_E2 = _UxGT("PID C ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_C_E3 = _UxGT("PID C ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_C_E4 = _UxGT("PID C ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_C_E5 = _UxGT("PID C ") LCD_STR_E5;
PROGMEM Language_Str MSG_SELECT = _UxGT("Auswählen");
PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("Auswählen ") LCD_STR_E0;
PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("Auswählen ") LCD_STR_E1;
PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("Auswählen ") LCD_STR_E2;
PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("Auswählen ") LCD_STR_E3;
PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("Auswählen ") LCD_STR_E4;
PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("Auswählen ") LCD_STR_E5;
PROGMEM Language_Str MSG_ACC = _UxGT("Beschleunigung");
PROGMEM Language_Str MSG_JERK = _UxGT("Jerk");
PROGMEM Language_Str MSG_VA_JERK = _UxGT("V ") LCD_STR_A _UxGT(" Jerk");
PROGMEM Language_Str MSG_VB_JERK = _UxGT("V ") LCD_STR_B _UxGT(" Jerk");
PROGMEM Language_Str MSG_VC_JERK = _UxGT("V ") LCD_STR_C _UxGT(" Jerk");
PROGMEM Language_Str MSG_VE_JERK = _UxGT("V E Jerk");
PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Junction Dev");
PROGMEM Language_Str MSG_VELOCITY = _UxGT("Geschwindigkeit");
PROGMEM Language_Str MSG_VMAX_A = _UxGT("V max ") LCD_STR_A;
PROGMEM Language_Str MSG_VMAX_B = _UxGT("V max ") LCD_STR_B;
PROGMEM Language_Str MSG_VMAX_C = _UxGT("V max ") LCD_STR_C;
PROGMEM Language_Str MSG_VMAX_E = _UxGT("V max ") LCD_STR_E;
PROGMEM Language_Str MSG_VMAX_E0 = _UxGT("V max ") LCD_STR_E0;
PROGMEM Language_Str MSG_VMAX_E1 = _UxGT("V max ") LCD_STR_E1;
PROGMEM Language_Str MSG_VMAX_E2 = _UxGT("V max ") LCD_STR_E2;
PROGMEM Language_Str MSG_VMAX_E3 = _UxGT("V max ") LCD_STR_E3;
PROGMEM Language_Str MSG_VMAX_E4 = _UxGT("V max ") LCD_STR_E4;
PROGMEM Language_Str MSG_VMAX_E5 = _UxGT("V max ") LCD_STR_E5;
PROGMEM Language_Str MSG_VMIN = _UxGT("V min ");
PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("V min Leerfahrt");
PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Beschleunigung");
PROGMEM Language_Str MSG_AMAX = _UxGT("A max "); // space intentional
PROGMEM Language_Str MSG_AMAX_A = _UxGT("A max ") LCD_STR_A;
PROGMEM Language_Str MSG_AMAX_B = _UxGT("A max ") LCD_STR_B;
PROGMEM Language_Str MSG_AMAX_C = _UxGT("A max ") LCD_STR_C;
PROGMEM Language_Str MSG_AMAX_E = _UxGT("A max ") LCD_STR_E;
PROGMEM Language_Str MSG_AMAX_E0 = _UxGT("A max ") LCD_STR_E0;
PROGMEM Language_Str MSG_AMAX_E1 = _UxGT("A max ") LCD_STR_E1;
PROGMEM Language_Str MSG_AMAX_E2 = _UxGT("A max ") LCD_STR_E2;
PROGMEM Language_Str MSG_AMAX_E3 = _UxGT("A max ") LCD_STR_E3;
PROGMEM Language_Str MSG_AMAX_E4 = _UxGT("A max ") LCD_STR_E4;
PROGMEM Language_Str MSG_AMAX_E5 = _UxGT("A max ") LCD_STR_E5;
PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A Einzug");
PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A Leerfahrt");
PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Steps/mm");
PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" Steps/mm");
PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" Steps/mm");
PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" Steps/mm");
PROGMEM Language_Str MSG_E_STEPS = LCD_STR_E _UxGT(" Steps/mm");
PROGMEM Language_Str MSG_E0_STEPS = LCD_STR_E0 _UxGT(" Steps/mm");
PROGMEM Language_Str MSG_E1_STEPS = LCD_STR_E1 _UxGT(" Steps/mm");
PROGMEM Language_Str MSG_E2_STEPS = LCD_STR_E2 _UxGT(" Steps/mm");
PROGMEM Language_Str MSG_E3_STEPS = LCD_STR_E3 _UxGT(" Steps/mm");
PROGMEM Language_Str MSG_E4_STEPS = LCD_STR_E4 _UxGT(" Steps/mm");
PROGMEM Language_Str MSG_E5_STEPS = LCD_STR_E5 _UxGT(" Steps/mm");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatur");
PROGMEM Language_Str MSG_MOTION = _UxGT("Bewegung");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filament");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E in mm³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Filamentdurchmesser");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Filamentdurchmesser ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Filamentdurchmesser ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Filamentdurchmesser ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Filamentdurchmesser ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Filamentdurchmesser ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Filamentdurchmesser ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("Entladen mm");
PROGMEM Language_Str MSG_FILAMENT_LOAD = _UxGT("Laden mm");
PROGMEM Language_Str MSG_ADVANCE_K = _UxGT("Vorschubfaktor");
PROGMEM Language_Str MSG_ADVANCE_E0 = _UxGT("Vorschubfaktor ") LCD_STR_E0;
PROGMEM Language_Str MSG_ADVANCE_E1 = _UxGT("Vorschubfaktor ") LCD_STR_E1;
PROGMEM Language_Str MSG_ADVANCE_E2 = _UxGT("Vorschubfaktor ") LCD_STR_E2;
PROGMEM Language_Str MSG_ADVANCE_E3 = _UxGT("Vorschubfaktor ") LCD_STR_E3;
PROGMEM Language_Str MSG_ADVANCE_E4 = _UxGT("Vorschubfaktor ") LCD_STR_E4;
PROGMEM Language_Str MSG_ADVANCE_E5 = _UxGT("Vorschubfaktor ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("LCD-Kontrast");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Konfig. speichern");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Konfig. laden");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Standardwerte laden");
PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("Werkseinstellungen");
PROGMEM Language_Str MSG_MEDIA_UPDATE = _UxGT("FW Update vom Medium");
PROGMEM Language_Str MSG_RESET_PRINTER = _UxGT("Drucker neustarten");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Aktualisieren");
PROGMEM Language_Str MSG_WATCH = _UxGT("Info");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Vorbereitung");
PROGMEM Language_Str MSG_TUNE = _UxGT("Justierung");
PROGMEM Language_Str MSG_START_PRINT = _UxGT("Starte Druck");
PROGMEM Language_Str MSG_BUTTON_NEXT = _UxGT("Weiter");
PROGMEM Language_Str MSG_BUTTON_INIT = _UxGT("Bestätigen");
PROGMEM Language_Str MSG_BUTTON_STOP = _UxGT("Stop");
PROGMEM Language_Str MSG_BUTTON_PRINT = _UxGT("Drucken");
PROGMEM Language_Str MSG_BUTTON_RESET = _UxGT("Reseten");
PROGMEM Language_Str MSG_BUTTON_CANCEL = _UxGT("Abbrechen");
PROGMEM Language_Str MSG_BUTTON_DONE = _UxGT("Fertig");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("SD-Druck pausieren");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("SD-Druck fortsetzen");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("SD-Druck abbrechen");
PROGMEM Language_Str MSG_OUTAGE_RECOVERY = _UxGT("Wiederh. n. Stroma.");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Druck vom Medium");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("Kein Medium");
PROGMEM Language_Str MSG_DWELL = _UxGT("Warten...");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Klick zum Fortsetzen");
PROGMEM Language_Str MSG_PRINT_PAUSED = _UxGT("Druck pausiert...");
PROGMEM Language_Str MSG_PRINTING = _UxGT("Druckt...");
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Druck abgebrochen");
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Motoren angeschaltet");
PROGMEM Language_Str MSG_KILLED = _UxGT("ABGEBROCHEN");
PROGMEM Language_Str MSG_STOPPED = _UxGT("ANGEHALTEN");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Einzug mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Wechs. Einzug mm");
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("V Einzug");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Z-Sprung mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("Wechs. UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("UnRet V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAPF = _UxGT("S UnRet V");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Autom. Einzug");
PROGMEM Language_Str MSG_FILAMENT_SWAP_LENGTH = _UxGT("Einzugslänge");
PROGMEM Language_Str MSG_FILAMENT_PURGE_LENGTH = _UxGT("Entladelänge");
PROGMEM Language_Str MSG_TOOL_CHANGE = _UxGT("Werkzeugwechsel");
PROGMEM Language_Str MSG_TOOL_CHANGE_ZLIFT = _UxGT("Z anheben");
PROGMEM Language_Str MSG_SINGLENOZZLE_PRIME_SPD = _UxGT("Prime-Geschwin.");
PROGMEM Language_Str MSG_SINGLENOZZLE_RETRACT_SPD = _UxGT("Einzug-Geschwin.");
PROGMEM Language_Str MSG_NOZZLE_STANDBY = _UxGT("Düsen-Standby");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Filament wechseln");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Filament wechseln ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Filament wechseln ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Filament wechseln ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Filament wechseln ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Filament wechseln ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Filament wechseln ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTLOAD = _UxGT("Filament laden");
PROGMEM Language_Str MSG_FILAMENTLOAD_E0 = _UxGT("Filament laden ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTLOAD_E1 = _UxGT("Filament laden ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTLOAD_E2 = _UxGT("Filament laden ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTLOAD_E3 = _UxGT("Filament laden ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTLOAD_E4 = _UxGT("Filament laden ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTLOAD_E5 = _UxGT("Filament laden ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E0 = _UxGT("Filament entladen ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E1 = _UxGT("Filament entladen ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E2 = _UxGT("Filament entladen ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E3 = _UxGT("Filament entladen ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E4 = _UxGT("Filament entladen ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E5 = _UxGT("Filament entladen ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Alles entladen");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Medium initial."); // Manually initialize the SD-card via user interface
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Medium getauscht"); // SD-card changed by user. For machines with no autocarddetect. Both send "M21"
PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("Medium freigeben"); // if Marlin gets confused - M22
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z-Sonde außerhalb");
PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("Korrekturfaktor");
PROGMEM Language_Str MSG_BLTOUCH = _UxGT("BLTouch");
PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("BLTouch Selbsttest");
PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("BLTouch zurücks.");
PROGMEM Language_Str MSG_BLTOUCH_DEPLOY = _UxGT("BLTouch ausfahren");
PROGMEM Language_Str MSG_BLTOUCH_SW_MODE = _UxGT("BLTouch SW-Modus");
PROGMEM Language_Str MSG_BLTOUCH_5V_MODE = _UxGT("BLTouch 5V-Modus");
PROGMEM Language_Str MSG_BLTOUCH_OD_MODE = _UxGT("BLTouch OD-Modus");
PROGMEM Language_Str MSG_BLTOUCH_MODE_STORE = _UxGT("BLTouch Mode Store");
PROGMEM Language_Str MSG_BLTOUCH_MODE_STORE_5V = _UxGT("BLTouch auf 5V");
PROGMEM Language_Str MSG_BLTOUCH_MODE_STORE_OD = _UxGT("BLTouch auf OD");
PROGMEM Language_Str MSG_BLTOUCH_STOW = _UxGT("BLTouch einfahren");
PROGMEM Language_Str MSG_BLTOUCH_MODE_ECHO = _UxGT("BLTouch Modus: ");
PROGMEM Language_Str MSG_BLTOUCH_MODE_CHANGE = _UxGT("ACHTUNG: Falsche Einstellung - kann zu Beschädigung führen! Fortfahren?");
PROGMEM Language_Str MSG_TOUCHMI_PROBE = _UxGT("TouchMI");
PROGMEM Language_Str MSG_TOUCHMI_INIT = _UxGT("TouchMI initial.");
PROGMEM Language_Str MSG_TOUCHMI_ZTEST = _UxGT("Test Z-Versatz");
PROGMEM Language_Str MSG_TOUCHMI_SAVE = _UxGT("Speichern");
PROGMEM Language_Str MSG_MANUAL_DEPLOY_TOUCHMI = _UxGT("TouchMI ausfahren");
PROGMEM Language_Str MSG_MANUAL_DEPLOY = _UxGT("Z-Sonde ausfahren");
PROGMEM Language_Str MSG_MANUAL_STOW = _UxGT("Z-Sonde einfahren");
PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("Vorher %s%s%s homen");
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Sondenversatz Z");
PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Babystep X");
PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Babystep Y");
PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Babystep Z");
PROGMEM Language_Str MSG_BABYSTEP_TOTAL = _UxGT("Total");
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Abbr. mit Endstopp");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("HEIZEN ERFOLGLOS");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD_BED = _UxGT("Bett heizen fehlge.");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD_CHAMBER = _UxGT("Geh. heizen fehlge.");
PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("REDUND. TEMP-ABWEI.");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY = " " LCD_STR_THERMOMETER _UxGT(" NICHT ERREICHT");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY_BED = _UxGT("BETT") " " LCD_STR_THERMOMETER _UxGT(" NICHT ERREICHT");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY_CHAMBER = _UxGT("GEH.") " " LCD_STR_THERMOMETER _UxGT(" NICHT ERREICHT");
PROGMEM Language_Str MSG_ERR_MAXTEMP = " " LCD_STR_THERMOMETER _UxGT(" ÜBERSCHRITTEN");
PROGMEM Language_Str MSG_ERR_MINTEMP = " " LCD_STR_THERMOMETER _UxGT(" UNTERSCHRITTEN");
PROGMEM Language_Str MSG_ERR_MAXTEMP_BED = _UxGT("BETT ") LCD_STR_THERMOMETER _UxGT(" ÜBERSCHRITTEN");
PROGMEM Language_Str MSG_ERR_MINTEMP_BED = _UxGT("BETT ") LCD_STR_THERMOMETER _UxGT(" UNTERSCHRITTEN");
PROGMEM Language_Str MSG_ERR_MAXTEMP_CHAMBER = _UxGT("Err:Gehäuse max Temp");
PROGMEM Language_Str MSG_ERR_MINTEMP_CHAMBER = _UxGT("Err:Gehäuse min Temp");
PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("Vorher XY homen");
PROGMEM Language_Str MSG_HALTED = _UxGT("DRUCKER GESTOPPT");
PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Bitte neustarten");
PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("t"); // One character only
PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("h"); // One character only
PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("m"); // One character only
PROGMEM Language_Str MSG_HEATING = _UxGT("heizt...");
PROGMEM Language_Str MSG_COOLING = _UxGT("kühlt...");
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Bett heizt...");
PROGMEM Language_Str MSG_BED_COOLING = _UxGT("Bett kühlt...");
PROGMEM Language_Str MSG_CHAMBER_HEATING = _UxGT("Gehäuse heizt...");
PROGMEM Language_Str MSG_CHAMBER_COOLING = _UxGT("Gehäuse kühlt...");
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Delta kalibrieren");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Kalibriere X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Kalibriere Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Kalibriere Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Kalibriere Mitte");
PROGMEM Language_Str MSG_DELTA_SETTINGS = _UxGT("Delta Einst. anzeig.");
PROGMEM Language_Str MSG_DELTA_AUTO_CALIBRATE = _UxGT("Autom. Kalibrierung");
PROGMEM Language_Str MSG_DELTA_HEIGHT_CALIBRATE = _UxGT("Delta Höhe setzen");
PROGMEM Language_Str MSG_DELTA_Z_OFFSET_CALIBRATE = _UxGT("Sondenversatz Z");
PROGMEM Language_Str MSG_DELTA_DIAG_ROD = _UxGT("Diag Rod");
PROGMEM Language_Str MSG_DELTA_HEIGHT = _UxGT("Höhe");
PROGMEM Language_Str MSG_DELTA_RADIUS = _UxGT("Radius");
PROGMEM Language_Str MSG_INFO_MENU = _UxGT("Über den Drucker");
PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Drucker-Info");
PROGMEM Language_Str MSG_3POINT_LEVELING = _UxGT("3-Punkt-Nivellierung");
PROGMEM Language_Str MSG_LINEAR_LEVELING = _UxGT("Lineare Nivellierung");
PROGMEM Language_Str MSG_BILINEAR_LEVELING = _UxGT("Bilineare Nivell.");
PROGMEM Language_Str MSG_UBL_LEVELING = _UxGT("Unified Bed Leveling");
PROGMEM Language_Str MSG_MESH_LEVELING = _UxGT("Netz-Nivellierung");
PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Drucker-Statistik");
PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Board-Info");
PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Thermistoren");
PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Extruder");
PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("Baudrate");
PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Protokoll");
PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Beleuchtung");
PROGMEM Language_Str MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Helligkeit");
#if LCD_WIDTH >= 20 PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Falscher Drucker");
#define MSG_INFO_PRINT_COUNT _UxGT("Gesamte Drucke")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Komplette Drucke")
#define MSG_INFO_PRINT_TIME _UxGT("Gesamte Druckzeit")
#define MSG_INFO_PRINT_LONGEST _UxGT("Längste Druckzeit")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Gesamt Extrudiert")
#else
#define MSG_INFO_PRINT_COUNT _UxGT("Drucke")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Komplette")
#define MSG_INFO_PRINT_TIME _UxGT("Gesamte")
#define MSG_INFO_PRINT_LONGEST _UxGT("Längste")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Extrud.")
#endif
#define MSG_INFO_MIN_TEMP _UxGT("Min Temp") #if LCD_WIDTH >= 20
#define MSG_INFO_MAX_TEMP _UxGT("Max Temp") PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Gesamte Drucke");
#define MSG_INFO_PSU _UxGT("Netzteil") PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Komplette Drucke");
#define MSG_DRIVE_STRENGTH _UxGT("Motorleistung") PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Gesamte Druckzeit");
#define MSG_DAC_PERCENT _UxGT("Treiber %") PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Längste Druckzeit");
#define MSG_ERROR_TMC _UxGT("TMC Verbindungsfehler") PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Gesamt Extrudiert");
#define MSG_DAC_EEPROM_WRITE _UxGT("Werte speichern") #else
#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("DRUCK PAUSIERT") PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Drucke");
#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("FILAMENT LADEN") PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Komplette");
#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("FILAMENT ENTLADEN") PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Gesamte");
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("FORTS. OPTIONEN:") PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Längste");
#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Mehr entladen") PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Extrud.");
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Druck weiter") #endif
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Düse: ")
#define MSG_RUNOUT_SENSOR _UxGT("Runout-Sensor")
#define MSG_RUNOUT_DISTANCE_MM _UxGT("Runout-Weg mm")
#define MSG_ERR_HOMING_FAILED _UxGT("Homing gescheitert")
#define MSG_ERR_PROBING_FAILED _UxGT("Probing gescheitert")
#define MSG_M600_TOO_COLD _UxGT("M600: zu kalt")
#define MSG_MMU2_FILAMENT_CHANGE_HEADER _UxGT("FILAMENT WECHSEL") PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Min Temp");
#define MSG_MMU2_CHOOSE_FILAMENT_HEADER _UxGT("FILAMENT WÄHLEN") PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Max Temp");
#define MSG_MMU2_MENU _UxGT("MMU") PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Netzteil");
#define MSG_MMU2_WRONG_FIRMWARE _UxGT("Update MMU Firmware!") PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Motorleistung");
#define MSG_MMU2_NOT_RESPONDING _UxGT("MMU handeln erfor.") PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Treiber %");
#define MSG_MMU2_RESUME _UxGT("Druck fortsetzen") PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("TMC Verbindungsfehler");
#define MSG_MMU2_RESUMING _UxGT("Fortfahren...") PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Werte speichern");
#define MSG_MMU2_LOAD_FILAMENT MSG_FILAMENTLOAD PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER = _UxGT("FILAMENT WECHSEL");
#define MSG_MMU2_LOAD_ALL _UxGT("Lade alle") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("DRUCK PAUSIERT");
#define MSG_MMU2_LOAD_TO_NOZZLE _UxGT("Düse laden") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("FILAMENT LADEN");
#define MSG_MMU2_EJECT_FILAMENT _UxGT("Filament auswerfen") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("FILAMENT ENTLADEN");
#define MSG_MMU2_EJECT_FILAMENT0 _UxGT("Filament 1 auswerfen") PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("FORTS. OPTIONEN:");
#define MSG_MMU2_EJECT_FILAMENT1 _UxGT("Filament 2 auswerfen") PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("Mehr entladen");
#define MSG_MMU2_EJECT_FILAMENT2 _UxGT("Filament 3 auswerfen") PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Druck weiter");
#define MSG_MMU2_EJECT_FILAMENT3 _UxGT("Filament 4 auswerfen") PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Düse: ");
#define MSG_MMU2_EJECT_FILAMENT4 _UxGT("Filament 5 auswerfen") PROGMEM Language_Str MSG_RUNOUT_SENSOR = _UxGT("Runout-Sensor");
#define MSG_MMU2_UNLOAD_FILAMENT MSG_FILAMENTUNLOAD PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("Runout-Weg mm");
#define MSG_MMU2_LOADING_FILAMENT _UxGT("Lade Fila. %i...") PROGMEM Language_Str MSG_LCD_HOMING_FAILED = _UxGT("Homing gescheitert");
#define MSG_MMU2_EJECTING_FILAMENT _UxGT("Fila. auswerfen...") PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Probing gescheitert");
#define MSG_MMU2_UNLOADING_FILAMENT _UxGT("Fila. entladen...") PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: zu kalt");
#define MSG_MMU2_ALL _UxGT("Alle")
#define MSG_MMU2_FILAMENT0 _UxGT("Filament 1")
#define MSG_MMU2_FILAMENT1 _UxGT("Filament 2")
#define MSG_MMU2_FILAMENT2 _UxGT("Filament 3")
#define MSG_MMU2_FILAMENT3 _UxGT("Filament 4")
#define MSG_MMU2_FILAMENT4 _UxGT("Filament 5")
#define MSG_MMU2_RESET _UxGT("setze MMU zurück")
#define MSG_MMU2_RESETTING _UxGT("MMU zurücksetzen...")
#define MSG_MMU2_EJECT_RECOVER _UxGT("Entfernen, klicken")
#define MSG_MIX _UxGT("Mix") PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("FILAMENT WÄHLEN");
#define MSG_MIX_COMPONENT _UxGT("Komponente") PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU");
#define MSG_MIXER _UxGT("Mixer") PROGMEM Language_Str MSG_MMU2_WRONG_FIRMWARE = _UxGT("Update MMU Firmware!");
#define MSG_GRADIENT _UxGT("Gradient") // equal Farbverlauf PROGMEM Language_Str MSG_MMU2_NOT_RESPONDING = _UxGT("MMU handeln erfor.");
#define MSG_FULL_GRADIENT _UxGT("Volle Gradient") PROGMEM Language_Str MSG_MMU2_RESUME = _UxGT("Druck fortsetzen");
#define MSG_TOGGLE_MIX _UxGT("Mix umschalten") PROGMEM Language_Str MSG_MMU2_RESUMING = _UxGT("Fortfahren...");
#define MSG_CYCLE_MIX _UxGT("Zyklus Mix") PROGMEM Language_Str MSG_MMU2_LOAD_FILAMENT = _UxGT("Filament laden");
#define MSG_GRADIENT_MIX _UxGT("Gradient Mix") PROGMEM Language_Str MSG_MMU2_LOAD_ALL = _UxGT("Lade alle");
#define MSG_REVERSE_GRADIENT _UxGT("Umgekehrte Gradient") PROGMEM Language_Str MSG_MMU2_LOAD_TO_NOZZLE = _UxGT("Düse laden");
#define MSG_ACTIVE_VTOOL _UxGT("Aktives V-Tool") PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT = _UxGT("Filament auswerfen");
#define MSG_START_VTOOL _UxGT("V-Tool Start") PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT0 = _UxGT("Filament 1 auswerfen");
#define MSG_END_VTOOL _UxGT("V-Tool Ende") PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT1 = _UxGT("Filament 2 auswerfen");
#define MSG_GRADIENT_ALIAS _UxGT("V-Tool Alias") PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT2 = _UxGT("Filament 3 auswerfen");
#define MSG_RESET_VTOOLS _UxGT("V-Tools Reseten") PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT3 = _UxGT("Filament 4 auswerfen");
#define MSG_COMMIT_VTOOL _UxGT("V-Tool Mix sichern") PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT4 = _UxGT("Filament 5 auswerfen");
#define MSG_VTOOLS_RESET _UxGT("V-Tools ist resetet") PROGMEM Language_Str MSG_MMU2_UNLOAD_FILAMENT = _UxGT("Filament entladen ");
#define MSG_START_Z _UxGT("Z Start") PROGMEM Language_Str MSG_MMU2_LOADING_FILAMENT = _UxGT("Lade Fila. %i...");
#define MSG_END_Z _UxGT("Z Ende") PROGMEM Language_Str MSG_MMU2_EJECTING_FILAMENT = _UxGT("Fila. auswerfen...");
#define MSG_GAMES _UxGT("Spiele") PROGMEM Language_Str MSG_MMU2_UNLOADING_FILAMENT = _UxGT("Fila. entladen...");
#define MSG_BRICKOUT _UxGT("Brickout") PROGMEM Language_Str MSG_MMU2_ALL = _UxGT("Alle");
#define MSG_INVADERS _UxGT("Invaders") PROGMEM Language_Str MSG_MMU2_FILAMENT0 = _UxGT("Filament 1");
#define MSG_SNAKE _UxGT("Sn4k3") PROGMEM Language_Str MSG_MMU2_FILAMENT1 = _UxGT("Filament 2");
#define MSG_MAZE _UxGT("Maze") PROGMEM Language_Str MSG_MMU2_FILAMENT2 = _UxGT("Filament 3");
PROGMEM Language_Str MSG_MMU2_FILAMENT3 = _UxGT("Filament 4");
PROGMEM Language_Str MSG_MMU2_FILAMENT4 = _UxGT("Filament 5");
PROGMEM Language_Str MSG_MMU2_RESET = _UxGT("setze MMU zurück");
PROGMEM Language_Str MSG_MMU2_RESETTING = _UxGT("MMU zurücksetzen...");
PROGMEM Language_Str MSG_MMU2_EJECT_RECOVER = _UxGT("Entfernen, klicken");
// PROGMEM Language_Str MSG_MIX = _UxGT("Mix");
// Die Filament-Change-Bildschirme können bis zu 3 Zeilen auf einem 4-Zeilen-Display anzeigen PROGMEM Language_Str MSG_MIX_COMPONENT_1 = _UxGT("Komponente 1");
// ...oder 2 Zeilen auf einem 3-Zeilen-Display. PROGMEM Language_Str MSG_MIX_COMPONENT_2 = _UxGT("Komponente 2");
#if LCD_HEIGHT >= 4 PROGMEM Language_Str MSG_MIX_COMPONENT_3 = _UxGT("Komponente 3");
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Knopf drücken um") PROGMEM Language_Str MSG_MIX_COMPONENT_4 = _UxGT("Komponente 4");
#define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("Druck fortzusetzen") PROGMEM Language_Str MSG_MIX_COMPONENT_5 = _UxGT("Komponente 5");
#define MSG_PAUSE_PRINT_INIT_1 _UxGT("Druck ist") PROGMEM Language_Str MSG_MIX_COMPONENT_6 = _UxGT("Komponente 6");
#define MSG_PAUSE_PRINT_INIT_2 _UxGT("pausiert...") PROGMEM Language_Str MSG_MIXER = _UxGT("Mixer");
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Warte auf den") PROGMEM Language_Str MSG_GRADIENT = _UxGT("Gradient"); // equal Farbverlauf
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("Start des") PROGMEM Language_Str MSG_FULL_GRADIENT = _UxGT("Volle Gradient");
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("Filamentwechsels...") PROGMEM Language_Str MSG_TOGGLE_MIX = _UxGT("Mix umschalten");
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Filament einlegen") PROGMEM Language_Str MSG_CYCLE_MIX = _UxGT("Zyklus Mix");
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("und Knopf drücken") PROGMEM Language_Str MSG_GRADIENT_MIX = _UxGT("Gradient Mix");
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("um fortzusetzen") PROGMEM Language_Str MSG_REVERSE_GRADIENT = _UxGT("Umgekehrte Gradient");
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Knopf drücken um") PROGMEM Language_Str MSG_ACTIVE_VTOOL = _UxGT("Aktives V-Tool");
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("Düse aufzuheizen") PROGMEM Language_Str MSG_START_VTOOL = _UxGT("V-Tool Start");
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Düse heizt auf") PROGMEM Language_Str MSG_END_VTOOL = _UxGT("V-Tool Ende");
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("bitte warten...") PROGMEM Language_Str MSG_GRADIENT_ALIAS = _UxGT("V-Tool Alias");
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Warte auf") PROGMEM Language_Str MSG_RESET_VTOOLS = _UxGT("V-Tools Reseten");
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("Herausnahme") PROGMEM Language_Str MSG_COMMIT_VTOOL = _UxGT("V-Tool Mix sichern");
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("des Filaments...") PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("V-Tools ist resetet");
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Warte auf") PROGMEM Language_Str MSG_START_Z = _UxGT("Z Start:");
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("Laden des") PROGMEM Language_Str MSG_END_Z = _UxGT("Z Ende:");
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("Filaments...") PROGMEM Language_Str MSG_GAMES = _UxGT("Spiele");
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Warte auf") PROGMEM Language_Str MSG_BRICKOUT = _UxGT("Brickout");
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("Entladen des") PROGMEM Language_Str MSG_INVADERS = _UxGT("Invaders");
#define MSG_FILAMENT_CHANGE_PURGE_3 _UxGT("Filaments...") PROGMEM Language_Str MSG_SNAKE = _UxGT("Sn4k3");
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Klicke um") PROGMEM Language_Str MSG_MAZE = _UxGT("Maze");
#define MSG_FILAMENT_CHANGE_CONT_PURGE_2 _UxGT("die Fila-Entladung")
#define MSG_FILAMENT_CHANGE_CONT_PURGE_3 _UxGT("zu beenden")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Warte auf")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("Fortsetzen des")
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("Drucks...")
#else // LCD_HEIGHT < 4
#define MSG_ADVANCED_PAUSE_WAITING_1 MSG_USERWAIT
#define MSG_PAUSE_PRINT_INIT_1 _UxGT("Pausiert...")
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Bitte warten...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Laden und Klick")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Klick zum Heizen")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Heizen...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Entladen...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Laden...")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Entladen...")
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Klick zum beenden")
#define MSG_FILAMENT_CHANGE_CONT_PURGE_2 _UxGT("der Fila-Entladung")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Fortsetzen...")
#endif // LCD_HEIGHT < 4
#define MSG_TMC_DRIVERS _UxGT("TMC Treiber") // Max length 18 characters //
#define MSG_TMC_CURRENT _UxGT("Treiber Strom") // Die Filament-Change-Bildschirme können bis zu 3 Zeilen auf einem 4-Zeilen-Display anzeigen
#define MSG_TMC_HYBRID_THRS _UxGT("Hybrid threshold") // ...oder 2 Zeilen auf einem 3-Zeilen-Display.
#define MSG_TMC_HOMING_THRS _UxGT("Sensorloses Homing") #if LCD_HEIGHT >= 4
#define MSG_TMC_STEPPING_MODE _UxGT("Schrittmodus") PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_2_LINE("Knopf drücken um", "Druck fortzusetzen"));
#define MSG_TMC_STEALTH_ENABLED _UxGT("StealthChop einsch.") PROGMEM Language_Str MSG_PAUSE_PRINT_INIT = _UxGT(MSG_2_LINE("Druck ist", "pausiert..."));
#define MSG_SERVICE_RESET _UxGT("Reset") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Warte auf den", "Start des", "Filamentwechsels..."));
#define MSG_SERVICE_IN _UxGT(" im:") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Filament einlegen", "und Knopf drücken", "um fortzusetzen"));
#define MSG_BACKLASH _UxGT("Spiel") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Knopf drücken um", "Düse aufzuheizen"));
#define MSG_BACKLASH_CORRECTION _UxGT("Korrektur") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("Düse heizt auf", "bitte warten..."));
#define MSG_BACKLASH_SMOOTHING _UxGT("Glätten") PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_3_LINE("Warte auf", "Herausnahme", "des Filaments..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_3_LINE("Warte auf", "Laden des", "Filaments..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_3_LINE("Warte auf", "Entladen des", "Filaments..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_3_LINE("Klicke um", "die Fila-Entladung", "zu beenden"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_3_LINE("Warte auf", "Fortsetzen des", "Drucks..."));
#else // LCD_HEIGHT < 4
PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_1_LINE("Klick zum Fortsetzen"));
PROGMEM Language_Str MSG_PAUSE_PRINT_INIT = _UxGT(MSG_1_LINE("Pausiert..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Bitte warten..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Laden und Klick"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_1_LINE("Klick zum Heizen"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("Heizen..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Entladen..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Laden..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_1_LINE("Entladen..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_2_LINE("Klick zum beenden", "der Fila-Entladung"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Fortsetzen..."));
#endif // LCD_HEIGHT < 4
PROGMEM Language_Str MSG_TMC_DRIVERS = _UxGT("TMC Treiber"); // Max length 18 characters
PROGMEM Language_Str MSG_TMC_CURRENT = _UxGT("Treiber Strom");
PROGMEM Language_Str MSG_TMC_HYBRID_THRS = _UxGT("Hybrid threshold");
PROGMEM Language_Str MSG_TMC_HOMING_THRS = _UxGT("Sensorloses Homing");
PROGMEM Language_Str MSG_TMC_STEPPING_MODE = _UxGT("Schrittmodus");
PROGMEM Language_Str MSG_TMC_STEALTH_ENABLED = _UxGT("StealthChop einsch.");
PROGMEM Language_Str MSG_SERVICE_RESET = _UxGT("Reset");
PROGMEM Language_Str MSG_SERVICE_IN = _UxGT(" im:");
PROGMEM Language_Str MSG_BACKLASH = _UxGT("Spiel");
PROGMEM Language_Str MSG_BACKLASH_A = LCD_STR_A;
PROGMEM Language_Str MSG_BACKLASH_B = LCD_STR_B;
PROGMEM Language_Str MSG_BACKLASH_C = LCD_STR_C;
PROGMEM Language_Str MSG_BACKLASH_CORRECTION = _UxGT("Korrektur");
PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("Glätten");
}

View file

@ -30,162 +30,225 @@
*/ */
#define DISPLAY_CHARSET_ISO10646_GREEK #define DISPLAY_CHARSET_ISO10646_GREEK
#define CHARSIZE 2
#define WELCOME_MSG MACHINE_NAME _UxGT(" έτοιμο.") namespace Language_el {
#define MSG_MEDIA_INSERTED _UxGT("Εισαγωγή κάρτας") using namespace Language_en; // Inherit undefined strings from English
#define MSG_MEDIA_REMOVED _UxGT("Αφαίρεση κάρτας")
#define MSG_LCD_ENDSTOPS _UxGT("Endstops") // Max length 8 characters
#define MSG_MAIN _UxGT("Βασική Οθόνη")
#define MSG_AUTOSTART _UxGT("Αυτόματη εκκίνηση")
#define MSG_DISABLE_STEPPERS _UxGT("Απενεργοποίηση Μοτέρ")
#define MSG_AUTO_HOME _UxGT("Αυτομ. επαναφορά στο αρχικό σημείο") //SHORTEN
#define MSG_AUTO_HOME_X _UxGT("Αρχικό σημείο X")
#define MSG_AUTO_HOME_Y _UxGT("Αρχικό σημείο Y")
#define MSG_AUTO_HOME_Z _UxGT("Αρχικό σημείο Z")
#define MSG_LEVEL_BED_HOMING _UxGT("Επαναφορά Επ. Εκτύπωσης") //SHORTEN
#define MSG_LEVEL_BED_WAITING _UxGT("Επιπεδοποίηση επ. Εκτύπωσης περιμενει") //SHORTEN
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Επόμενο σημείο")
#define MSG_LEVEL_BED_DONE _UxGT("Ολοκλήρωση επιπεδοποίησης!") //SHORTEN
#define MSG_SET_HOME_OFFSETS _UxGT("Ορισμός βασικών μετατοπίσεων") //SHORTEN
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Εφαρμόστηκαν οι μετατοπίσεις") //SHORTEN
#define MSG_SET_ORIGIN _UxGT("Ορισμός προέλευσης")
#define MSG_PREHEAT_1 _UxGT("Προθέρμανση " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ")
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" όλα")
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" bed") //SHORTEN
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" επιβεβαίωση") //SHORTEN
#define MSG_PREHEAT_2 _UxGT("Προθέρμανση " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ")
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" όλα")
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" bed") //SHORTEN
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" επιβεβαίωση") //SHORTEN
#define MSG_COOLDOWN _UxGT("Μειωση θερμοκρασιας")
#define MSG_SWITCH_PS_ON _UxGT("Ενεργοποίηση")
#define MSG_SWITCH_PS_OFF _UxGT("Απενεργοποίηση")
#define MSG_EXTRUDE _UxGT("Εξώθηση")
#define MSG_RETRACT _UxGT("Ανάσυρση")
#define MSG_MOVE_AXIS _UxGT("Μετακίνηση άξονα")
#define MSG_BED_LEVELING _UxGT("Επιπεδοποίηση Επ. Εκτύπωσης") //SHORTEN
#define MSG_LEVEL_BED _UxGT("Επιπεδοποίηση Επ. Εκτύπωσης") //SHORTEN
#define MSG_MOVE_X _UxGT("Μετακίνηση X")
#define MSG_MOVE_Y _UxGT("Μετακίνηση Y")
#define MSG_MOVE_Z _UxGT("Μετακίνηση Z")
#define MSG_MOVE_E _UxGT("Εξωθητήρας")
#define MSG_MOVE_Z_DIST _UxGT("Μετακίνηση %s μμ")
#define MSG_MOVE_01MM _UxGT("Μετακίνηση 0,1 μμ")
#define MSG_MOVE_1MM _UxGT("Μετακίνηση 1 μμ")
#define MSG_MOVE_10MM _UxGT("Μετακίνηση 10 μμ")
#define MSG_SPEED _UxGT("Ταχύτητα")
#define MSG_BED_Z _UxGT("Επ. Εκτύπωσης Z")
#define MSG_NOZZLE _UxGT("Ακροφύσιο")
#define MSG_BED _UxGT("Κλίνη")
#define MSG_FAN_SPEED _UxGT("Ταχύτητα ανεμιστήρα")
#define MSG_FLOW _UxGT("Ροή")
#define MSG_CONTROL _UxGT("Έλεγχος")
#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Min")
#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Max")
#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Fact")
#define MSG_AUTOTEMP _UxGT("Αυτομ ρύθμιση θερ/σίας") //SHORTEN
#define MSG_LCD_ON _UxGT("Ενεργοποιημένο")
#define MSG_LCD_OFF _UxGT("Απενεργοποιημένο")
#define MSG_PID_P _UxGT("PID-P")
#define MSG_PID_I _UxGT("PID-I")
#define MSG_PID_D _UxGT("PID-D")
#define MSG_PID_C _UxGT("PID-C")
#define MSG_ACC _UxGT("Επιτάχυνση")
#define MSG_JERK _UxGT("Jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Vαντίδραση A")
#define MSG_VB_JERK _UxGT("Vαντίδραση B")
#define MSG_VC_JERK _UxGT("Vαντίδραση C")
#else
#define MSG_VA_JERK _UxGT("Vαντίδραση X")
#define MSG_VB_JERK _UxGT("Vαντίδραση Y")
#define MSG_VC_JERK _UxGT("Vαντίδραση Z")
#endif
#define MSG_VE_JERK _UxGT("Vαντίδραση E")
#define MSG_VMAX _UxGT("V Μέγιστο")
#define MSG_VMIN _UxGT("V Ελάχιστο")
#define MSG_VTRAV_MIN _UxGT("Vελάχ. μετατόπιση")
#define MSG_ACCELERATION MSG_ACC
#define MSG_AMAX _UxGT("Aμεγ ")
#define MSG_A_RETRACT _UxGT("Α-ανάσυρση")
#define MSG_A_TRAVEL _UxGT("Α-μετατόπιση")
#define MSG_STEPS_PER_MM _UxGT("Bήματα ανά μμ")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("Bήματα A ανά μμ")
#define MSG_BSTEPS _UxGT("Bήματα B ανά μμ")
#define MSG_CSTEPS _UxGT("Bήματα C ανά μμ")
#else
#define MSG_ASTEPS _UxGT("Bήματα X ανά μμ")
#define MSG_BSTEPS _UxGT("Bήματα Y ανά μμ")
#define MSG_CSTEPS _UxGT("Bήματα Z ανά μμ")
#endif
#define MSG_ESTEPS _UxGT("Bήματα Ε ανά μμ")
#define MSG_E0_STEPS _UxGT("Bήματα Ε1 ανά μμ")
#define MSG_E1_STEPS _UxGT("Bήματα Ε2 ανά μμ")
#define MSG_E2_STEPS _UxGT("Bήματα Ε3 ανά μμ")
#define MSG_E3_STEPS _UxGT("Bήματα Ε4 ανά μμ")
#define MSG_E4_STEPS _UxGT("Bήματα Ε5 ανά μμ")
#define MSG_E5_STEPS _UxGT("Bήματα Ε6 ανά μμ")
#define MSG_TEMPERATURE _UxGT("Θερμοκρασία")
#define MSG_MOTION _UxGT("Κίνηση")
#define MSG_FILAMENT _UxGT("Νήμα")
#define MSG_VOLUMETRIC_ENABLED _UxGT("Ε σε μμ3")
#define MSG_FILAMENT_DIAM _UxGT("Διάμετρος νήματος")
#define MSG_CONTRAST _UxGT("Κοντράστ LCD")
#define MSG_STORE_EEPROM _UxGT("Αποθήκευση")
#define MSG_LOAD_EEPROM _UxGT("Φόρτωση")
#define MSG_RESTORE_FAILSAFE _UxGT("Επαναφορά ασφαλούς αντιγράφου") //SHORTEN
#define MSG_REFRESH _UxGT("Ανανέωση")
#define MSG_WATCH _UxGT("Οθόνη πληροφόρησης")
#define MSG_PREPARE _UxGT("Προετοιμασία")
#define MSG_TUNE _UxGT("Συντονισμός")
#define MSG_PAUSE_PRINT _UxGT("Παύση εκτύπωσης")
#define MSG_RESUME_PRINT _UxGT("Συνέχιση εκτύπωσης")
#define MSG_STOP_PRINT _UxGT("Διακοπή εκτύπωσης")
#define MSG_MEDIA_MENU _UxGT("Εκτύπωση από SD")
#define MSG_NO_MEDIA _UxGT("Δεν βρέθηκε SD")
#define MSG_DWELL _UxGT("Αναστολή λειτουργίας")
#define MSG_USERWAIT _UxGT("Αναμονή για χρήστη")
#define MSG_PRINT_ABORTED _UxGT("Διακόπτεται η εκτύπωση") //SHORTEN
#define MSG_NO_MOVE _UxGT("Καμία κίνηση.")
#define MSG_KILLED _UxGT("ΤΕΡΜΑΤΙΣΜΟΣ. ")
#define MSG_STOPPED _UxGT("ΔΙΑΚΟΠΗ. ")
#define MSG_CONTROL_RETRACT _UxGT("Ανάσυρση μμ")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Εναλλαγή ανάσυρσης μμ") //SHORTEN
#define MSG_CONTROL_RETRACTF _UxGT("Ανάσυρση V")
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Μεταπήδηση μμ")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("S UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("UnRet V")
#define MSG_AUTORETRACT _UxGT("Αυτόματη ανάσυρση")
#define MSG_FILAMENTCHANGE _UxGT("Αλλαγή νήματος")
#define MSG_INIT_MEDIA _UxGT("Προετοιμασία κάρτας SD") //SHORTEN
#define MSG_CHANGE_MEDIA _UxGT("Αλλαγή κάρτας SD")
#define MSG_ZPROBE_OUT _UxGT("Διερεύνηση Z εκτός Επ.Εκτύπωσης") //SHORTEN
#define MSG_YX_UNHOMED _UxGT("Επαναφορά Χ/Υ πριν από Ζ") //SHORTEN
#define MSG_XYZ_UNHOMED _UxGT("Επαναφορά ΧΥΖ πρώτα")
#define MSG_ZPROBE_ZOFFSET _UxGT("Μετατόπιση Ζ")
#define MSG_BABYSTEP_X _UxGT("Μικρό βήμα Χ")
#define MSG_BABYSTEP_Y _UxGT("Μικρό βήμα Υ")
#define MSG_BABYSTEP_Z _UxGT("Μικρό βήμα Ζ")
#define MSG_ENDSTOP_ABORT _UxGT("Ακύρωση endstop ")
#define MSG_HEATING_FAILED_LCD _UxGT("Ανεπιτυχής θέρμανση")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("ΠΛΕΟΝΑΖΟΥΣΑ ΘΕΡΜΟΤΗΤΑ")
#define MSG_THERMAL_RUNAWAY _UxGT("ΔΙΑΦΥΓΗ ΘΕΡΜΟΚΡΑΣΙΑΣ")
#define MSG_ERR_MAXTEMP _UxGT("ΠΕΡΙΤΗ ΘΕΡΜΟΚΡΑΣΙΑ")
#define MSG_ERR_MINTEMP _UxGT("ΜΗ ΕΠΑΡΚΗΣ ΘΕΡΜΟΚΡΑΣΙΑΣ") //SHORTEN
#define MSG_ERR_MAXTEMP_BED _UxGT("ΜΕΓΙΣΤΗ ΘΕΡΜΟΚΡΑΣΙΑΣ ΕΠ. ΕΚΤΥΠΩΣΗΣ") //SHORTEN
#define MSG_ERR_MINTEMP_BED _UxGT("ΕΛΑΧΙΣΤΗ ΘΕΡΜΟΚΡΑΣΙΑΣ ΕΠ. ΕΚΤΥΠΩΣΗΣ") //SHORTEN
#define MSG_HALTED _UxGT("H εκτύπωση διακόπηκε")
#define MSG_HEATING _UxGT("Θερμαίνεται…")
#define MSG_BED_HEATING _UxGT("Θέρμανση ΕΠ. Εκτύπωσης") //SHORTEN
#define MSG_DELTA_CALIBRATE _UxGT("Βαθμονόμηση Delta")
#define MSG_DELTA_CALIBRATE_X _UxGT("Βαθμονόμηση X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Βαθμονόμηση Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Βαθμονόμηση Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Βαθμονόμηση κέντρου")
#define MSG_EXPECTED_PRINTER _UxGT("Εσφαλμένος εκτυπωτής") constexpr uint8_t CHARSIZE = 2;
PROGMEM Language_Str LANGUAGE = _UxGT("Greek");
PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" έτοιμο.");
PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Εισαγωγή κάρτας");
PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Αφαίρεση κάρτας");
PROGMEM Language_Str MSG_MAIN = _UxGT("Βασική Οθόνη");
PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Αυτόματη εκκίνηση");
PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Απενεργοποίηση Μοτέρ");
PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Αυτομ. επαναφορά στο αρχικό σημείο"); //SHORTEN
PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Αρχικό σημείο X");
PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Αρχικό σημείο Y");
PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Αρχικό σημείο Z");
PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Επαναφορά Επ. Εκτύπωσης"); //SHORTEN
PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Επιπεδοποίηση επ. Εκτύπωσης περιμενει"); //SHORTEN
PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Επόμενο σημείο");
PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Ολοκλήρωση επιπεδοποίησης!"); //SHORTEN
PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Ορισμός βασικών μετατοπίσεων"); //SHORTEN
PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Εφαρμόστηκαν οι μετατοπίσεις"); //SHORTEN
PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Ορισμός προέλευσης");
PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" End");
PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" όλα");
PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" bed"); //SHORTEN
PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" επιβεβαίωση"); //SHORTEN
PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL _UxGT(" End");
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL _UxGT(" όλα");
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL _UxGT(" bed"); //SHORTEN
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL _UxGT(" επιβεβαίωση"); //SHORTEN
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Μειωση θερμοκρασιας");
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Ενεργοποίηση");
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Απενεργοποίηση");
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Εξώθηση");
PROGMEM Language_Str MSG_RETRACT = _UxGT("Ανάσυρση");
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Μετακίνηση άξονα");
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Επιπεδοποίηση Επ. Εκτύπωσης"); //SHORTEN
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Επιπεδοποίηση Επ. Εκτύπωσης"); //SHORTEN
PROGMEM Language_Str MSG_MOVE_X = _UxGT("Μετακίνηση X");
PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Μετακίνηση Y");
PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Μετακίνηση Z");
PROGMEM Language_Str MSG_MOVE_E = _UxGT("Εξωθητήρας");
PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Εξωθητήρας ") LCD_STR_E0;
PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Εξωθητήρας ") LCD_STR_E1;
PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Εξωθητήρας ") LCD_STR_E2;
PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Εξωθητήρας ") LCD_STR_E3;
PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Εξωθητήρας ") LCD_STR_E4;
PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Εξωθητήρας ") LCD_STR_E5;
PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Μετακίνηση %s μμ");
PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Μετακίνηση 0,1 μμ");
PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Μετακίνηση 1 μμ");
PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Μετακίνηση 10 μμ");
PROGMEM Language_Str MSG_SPEED = _UxGT("Ταχύτητα");
PROGMEM Language_Str MSG_BED_Z = _UxGT("Επ. Εκτύπωσης Z");
PROGMEM Language_Str MSG_NOZZLE = _UxGT("Ακροφύσιο");
PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Ακροφύσιο ") LCD_STR_N0;
PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Ακροφύσιο ") LCD_STR_N1;
PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Ακροφύσιο ") LCD_STR_N2;
PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Ακροφύσιο ") LCD_STR_N3;
PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Ακροφύσιο ") LCD_STR_N4;
PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Ακροφύσιο ") LCD_STR_N5;
PROGMEM Language_Str MSG_BED = _UxGT("Κλίνη");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Ταχύτητα ανεμιστήρα");
PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Ταχύτητα ανεμιστήρα 1");
PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Ταχύτητα ανεμιστήρα 2");
PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Ταχύτητα ανεμιστήρα 3");
PROGMEM Language_Str MSG_FLOW = _UxGT("Ροή");
PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Ροή ") LCD_STR_N0;
PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Ροή ") LCD_STR_N1;
PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Ροή ") LCD_STR_N2;
PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Ροή ") LCD_STR_N3;
PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Ροή ") LCD_STR_N4;
PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Ροή ") LCD_STR_N5;
PROGMEM Language_Str MSG_CONTROL = _UxGT("Έλεγχος");
PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" Min");
PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" Max");
PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Fact");
PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Αυτομ ρύθμιση θερ/σίας"); //SHORTEN
PROGMEM Language_Str MSG_LCD_ON = _UxGT("Ενεργοποιημένο");
PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Απενεργοποιημένο");
PROGMEM Language_Str MSG_ACC = _UxGT("Επιτάχυνση");
PROGMEM Language_Str MSG_VA_JERK = _UxGT("Vαντίδραση ") LCD_STR_A;
PROGMEM Language_Str MSG_VB_JERK = _UxGT("Vαντίδραση ") LCD_STR_B;
PROGMEM Language_Str MSG_VC_JERK = _UxGT("Vαντίδραση ") LCD_STR_C;
PROGMEM Language_Str MSG_VE_JERK = _UxGT("Vαντίδραση E");
PROGMEM Language_Str MSG_VMAX_A = _UxGT("V Μέγιστο") LCD_STR_A;
PROGMEM Language_Str MSG_VMAX_B = _UxGT("V Μέγιστο") LCD_STR_B;
PROGMEM Language_Str MSG_VMAX_C = _UxGT("V Μέγιστο") LCD_STR_C;
PROGMEM Language_Str MSG_VMAX_E = _UxGT("V Μέγιστο") LCD_STR_E;
PROGMEM Language_Str MSG_VMAX_E0 = _UxGT("V Μέγιστο ") LCD_STR_E0;
PROGMEM Language_Str MSG_VMAX_E1 = _UxGT("V Μέγιστο ") LCD_STR_E1;
PROGMEM Language_Str MSG_VMAX_E2 = _UxGT("V Μέγιστο ") LCD_STR_E2;
PROGMEM Language_Str MSG_VMAX_E3 = _UxGT("V Μέγιστο ") LCD_STR_E3;
PROGMEM Language_Str MSG_VMAX_E4 = _UxGT("V Μέγιστο ") LCD_STR_E4;
PROGMEM Language_Str MSG_VMAX_E5 = _UxGT("V Μέγιστο ") LCD_STR_E5;
PROGMEM Language_Str MSG_VMIN = _UxGT("V Ελάχιστο");
PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("Vελάχ. μετατόπιση");
PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Accel");
PROGMEM Language_Str MSG_AMAX_A = _UxGT("Aμεγ ") LCD_STR_A;
PROGMEM Language_Str MSG_AMAX_B = _UxGT("Aμεγ ") LCD_STR_B;
PROGMEM Language_Str MSG_AMAX_C = _UxGT("Aμεγ ") LCD_STR_C;
PROGMEM Language_Str MSG_AMAX_E = _UxGT("Aμεγ ") LCD_STR_E;
PROGMEM Language_Str MSG_AMAX_E0 = _UxGT("Aμεγ ") LCD_STR_E0;
PROGMEM Language_Str MSG_AMAX_E1 = _UxGT("Aμεγ ") LCD_STR_E1;
PROGMEM Language_Str MSG_AMAX_E2 = _UxGT("Aμεγ ") LCD_STR_E2;
PROGMEM Language_Str MSG_AMAX_E3 = _UxGT("Aμεγ ") LCD_STR_E3;
PROGMEM Language_Str MSG_AMAX_E4 = _UxGT("Aμεγ ") LCD_STR_E4;
PROGMEM Language_Str MSG_AMAX_E5 = _UxGT("Aμεγ ") LCD_STR_E5;
PROGMEM Language_Str MSG_A_RETRACT = _UxGT("Α-ανάσυρση");
PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("Α-μετατόπιση");
PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Bήματα ανά μμ");
PROGMEM Language_Str MSG_A_STEPS = _UxGT("Bήματα ") LCD_STR_A _UxGT(" ανά μμ");
PROGMEM Language_Str MSG_B_STEPS = _UxGT("Bήματα ") LCD_STR_B _UxGT(" ανά μμ");
PROGMEM Language_Str MSG_C_STEPS = _UxGT("Bήματα ") LCD_STR_C _UxGT(" ανά μμ");
PROGMEM Language_Str MSG_E_STEPS = _UxGT("Bήματα Ε ανά μμ");
PROGMEM Language_Str MSG_E0_STEPS = _UxGT("Bήματα ") LCD_STR_E0 _UxGT(" ανά μμ");
PROGMEM Language_Str MSG_E1_STEPS = _UxGT("Bήματα ") LCD_STR_E1 _UxGT(" ανά μμ");
PROGMEM Language_Str MSG_E2_STEPS = _UxGT("Bήματα ") LCD_STR_E2 _UxGT(" ανά μμ");
PROGMEM Language_Str MSG_E3_STEPS = _UxGT("Bήματα ") LCD_STR_E3 _UxGT(" ανά μμ");
PROGMEM Language_Str MSG_E4_STEPS = _UxGT("Bήματα ") LCD_STR_E4 _UxGT(" ανά μμ");
PROGMEM Language_Str MSG_E5_STEPS = _UxGT("Bήματα ") LCD_STR_E5 _UxGT(" ανά μμ");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Θερμοκρασία");
PROGMEM Language_Str MSG_MOTION = _UxGT("Κίνηση");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Νήμα");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("Ε σε μμ3");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Διάμετρος νήματος");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Διάμετρος νήματος ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Διάμετρος νήματος ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Διάμετρος νήματος ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Διάμετρος νήματος ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Διάμετρος νήματος ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Διάμετρος νήματος ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("Κοντράστ LCD");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Αποθήκευση");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Φόρτωση");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Επαναφορά ασφαλούς αντιγράφου"); //SHORTEN
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Ανανέωση");
PROGMEM Language_Str MSG_WATCH = _UxGT("Οθόνη πληροφόρησης");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Προετοιμασία");
PROGMEM Language_Str MSG_TUNE = _UxGT("Συντονισμός");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Παύση εκτύπωσης");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Συνέχιση εκτύπωσης");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Διακοπή εκτύπωσης");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Εκτύπωση από SD");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("Δεν βρέθηκε SD");
PROGMEM Language_Str MSG_DWELL = _UxGT("Αναστολή λειτουργίας");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Αναμονή για χρήστη");
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Διακόπτεται η εκτύπωση"); //SHORTEN
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Καμία κίνηση.");
PROGMEM Language_Str MSG_KILLED = _UxGT("ΤΕΡΜΑΤΙΣΜΟΣ. ");
PROGMEM Language_Str MSG_STOPPED = _UxGT("ΔΙΑΚΟΠΗ. ");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Ανάσυρση μμ");
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Εναλλαγή ανάσυρσης μμ"); //SHORTEN
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Ανάσυρση V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Μεταπήδηση μμ");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("S UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("UnRet V");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Αυτόματη ανάσυρση");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Αλλαγή νήματος");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Αλλαγή νήματος ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Αλλαγή νήματος ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Αλλαγή νήματος ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Αλλαγή νήματος ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Αλλαγή νήματος ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Αλλαγή νήματος ") LCD_STR_E5;
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Προετοιμασία κάρτας SD"); //SHORTEN
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Αλλαγή κάρτας SD");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Διερεύνηση Z εκτός Επ.Εκτύπωσης"); //SHORTEN
PROGMEM Language_Str MSG_YX_UNHOMED = _UxGT("Επαναφορά Χ/Υ πριν από Ζ"); //SHORTEN
PROGMEM Language_Str MSG_XYZ_UNHOMED = _UxGT("Επαναφορά ΧΥΖ πρώτα");
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Μετατόπιση Ζ");
PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Μικρό βήμα Χ");
PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Μικρό βήμα Υ");
PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Μικρό βήμα Ζ");
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Ακύρωση endstop ");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Ανεπιτυχής θέρμανση");
PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("ΠΛΕΟΝΑΖΟΥΣΑ ΘΕΡΜΟΤΗΤΑ");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("ΔΙΑΦΥΓΗ ΘΕΡΜΟΚΡΑΣΙΑΣ");
PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("ΠΕΡΙΤΗ ΘΕΡΜΟΚΡΑΣΙΑ");
PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("ΜΗ ΕΠΑΡΚΗΣ ΘΕΡΜΟΚΡΑΣΙΑΣ"); //SHORTEN
PROGMEM Language_Str MSG_ERR_MAXTEMP_BED = _UxGT("ΜΕΓΙΣΤΗ ΘΕΡΜΟΚΡΑΣΙΑΣ ΕΠ. ΕΚΤΥΠΩΣΗΣ"); //SHORTEN
PROGMEM Language_Str MSG_ERR_MINTEMP_BED = _UxGT("ΕΛΑΧΙΣΤΗ ΘΕΡΜΟΚΡΑΣΙΑΣ ΕΠ. ΕΚΤΥΠΩΣΗΣ"); //SHORTEN
PROGMEM Language_Str MSG_HALTED = _UxGT("H εκτύπωση διακόπηκε");
PROGMEM Language_Str MSG_HEATING = _UxGT("Θερμαίνεται…");
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Θέρμανση ΕΠ. Εκτύπωσης"); //SHORTEN
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Βαθμονόμηση Delta");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Βαθμονόμηση X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Βαθμονόμηση Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Βαθμονόμηση Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Βαθμονόμηση κέντρου");
PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Εσφαλμένος εκτυπωτής");
}

View file

@ -30,161 +30,254 @@
*/ */
#define DISPLAY_CHARSET_ISO10646_GREEK #define DISPLAY_CHARSET_ISO10646_GREEK
#define CHARSIZE 2
#define WELCOME_MSG MACHINE_NAME _UxGT(" έτοιμο.") namespace Language_el_gr {
#define MSG_MEDIA_INSERTED _UxGT("Εισαγωγή κάρτας") using namespace Language_en; // Inherit undefined strings from English
#define MSG_MEDIA_REMOVED _UxGT("Αφαίρεση κάρτας")
#define MSG_LCD_ENDSTOPS _UxGT("Endstops") // Max length 8 characters
#define MSG_MAIN _UxGT("Βασική Οθόνη")
#define MSG_AUTOSTART _UxGT("Αυτόματη εκκίνηση")
#define MSG_DISABLE_STEPPERS _UxGT("Απενεργοποίηση βηματιστή")
#define MSG_AUTO_HOME _UxGT("Αυτομ. επαναφορά στο αρχικό σημείο")
#define MSG_AUTO_HOME_X _UxGT("Αρχικό σημείο X")
#define MSG_AUTO_HOME_Y _UxGT("Αρχικό σημείο Y")
#define MSG_AUTO_HOME_Z _UxGT("Αρχικό σημείο Z")
#define MSG_LEVEL_BED_HOMING _UxGT("Επαναφορά στο αρχικό σημείο ΧΥΖ")
#define MSG_LEVEL_BED_WAITING _UxGT("Κάντε κλικ για να ξεκινήσετε")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Επόμενο σημείο")
#define MSG_LEVEL_BED_DONE _UxGT("Ολοκλήρωση επιπεδοποίησης!")
#define MSG_SET_HOME_OFFSETS _UxGT("Ορισμός βασικών μετατοπίσεων")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Εφαρμόστηκαν οι μετατοπίσεις")
#define MSG_SET_ORIGIN _UxGT("Ορισμός προέλευσης")
#define MSG_PREHEAT_1 _UxGT("Προθέρμανση " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ")
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" όλα")
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" κλίνη")
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" επιβεβαίωση")
#define MSG_PREHEAT_2 _UxGT("Προθέρμανση " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ")
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" όλα")
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" Bed")
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" επιβεβαίωση")
#define MSG_COOLDOWN _UxGT("Μειωση θερμοκρασιας")
#define MSG_SWITCH_PS_ON _UxGT("Ενεργοποίηση")
#define MSG_SWITCH_PS_OFF _UxGT("Απενεργοποίηση")
#define MSG_EXTRUDE _UxGT("Εξώθηση")
#define MSG_RETRACT _UxGT("Ανάσυρση")
#define MSG_MOVE_AXIS _UxGT("Μετακίνηση άξονα")
#define MSG_BED_LEVELING _UxGT("Επιπεδοποίηση κλίνης")
#define MSG_LEVEL_BED _UxGT("Επιπεδοποίηση κλίνης")
#define MSG_MOVE_X _UxGT("Μετακίνηση X")
#define MSG_MOVE_Y _UxGT("Μετακίνηση Y")
#define MSG_MOVE_Z _UxGT("Μετακίνηση Z")
#define MSG_MOVE_E _UxGT("Εξωθητήρας")
#define MSG_MOVE_Z_DIST _UxGT("Μετακίνηση %s μμ")
#define MSG_MOVE_01MM _UxGT("Μετακίνηση 0,1 μμ")
#define MSG_MOVE_1MM _UxGT("Μετακίνηση 1 μμ")
#define MSG_MOVE_10MM _UxGT("Μετακίνηση 10 μμ")
#define MSG_SPEED _UxGT("Ταχύτητα")
#define MSG_BED_Z _UxGT("Κλίνη Z")
#define MSG_NOZZLE _UxGT("Ακροφύσιο")
#define MSG_BED _UxGT("Κλίνη")
#define MSG_FAN_SPEED _UxGT("Ταχύτητα ανεμιστήρα")
#define MSG_FLOW _UxGT("Ροή")
#define MSG_CONTROL _UxGT("Έλεγχος")
#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Min")
#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Max")
#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Fact")
#define MSG_AUTOTEMP _UxGT("Αυτομ. ρύθμιση θερμοκρασίας")
#define MSG_LCD_ON _UxGT("Ενεργοποιημένο")
#define MSG_LCD_OFF _UxGT("Απενεργοποιημένο")
#define MSG_PID_P _UxGT("PID-P")
#define MSG_PID_I _UxGT("PID-I")
#define MSG_PID_D _UxGT("PID-D")
#define MSG_PID_C _UxGT("PID-C")
#define MSG_ACC _UxGT("Επιτάχυνση")
#define MSG_JERK _UxGT("Vαντίδραση")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Vαντίδραση A")
#define MSG_VB_JERK _UxGT("Vαντίδραση B")
#define MSG_VC_JERK _UxGT("Vαντίδραση C")
#else
#define MSG_VA_JERK _UxGT("Vαντίδραση X")
#define MSG_VB_JERK _UxGT("Vαντίδραση Y")
#define MSG_VC_JERK _UxGT("Vαντίδραση Z")
#endif
#define MSG_VE_JERK _UxGT("Vαντίδραση E")
#define MSG_VMAX _UxGT("Vμεγ ")
#define MSG_VMIN _UxGT("Vελαχ")
#define MSG_VTRAV_MIN _UxGT("Vελάχ. μετατόπιση")
#define MSG_ACCELERATION MSG_ACC
#define MSG_AMAX _UxGT("Aμεγ ")
#define MSG_A_RETRACT _UxGT("Α-ανάσυρση")
#define MSG_A_TRAVEL _UxGT("Α-μετατόπιση")
#define MSG_STEPS_PER_MM _UxGT("Bήματα ανά μμ")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("Bήματα A ανά μμ")
#define MSG_BSTEPS _UxGT("Bήματα B ανά μμ")
#define MSG_CSTEPS _UxGT("Bήματα C ανά μμ")
#else
#define MSG_ASTEPS _UxGT("Bήματα X ανά μμ")
#define MSG_BSTEPS _UxGT("Bήματα Y ανά μμ")
#define MSG_CSTEPS _UxGT("Bήματα Z ανά μμ")
#endif
#define MSG_ESTEPS _UxGT("Bήματα Ε ανά μμ")
#define MSG_E0_STEPS _UxGT("Bήματα Ε1 ανά μμ")
#define MSG_E1_STEPS _UxGT("Bήματα Ε2 ανά μμ")
#define MSG_E2_STEPS _UxGT("Bήματα Ε3 ανά μμ")
#define MSG_E3_STEPS _UxGT("Bήματα Ε4 ανά μμ")
#define MSG_E4_STEPS _UxGT("Bήματα Ε5 ανά μμ")
#define MSG_E5_STEPS _UxGT("Bήματα Ε6 ανά μμ")
#define MSG_TEMPERATURE _UxGT("Θερμοκρασία")
#define MSG_MOTION _UxGT("Κίνηση")
#define MSG_FILAMENT _UxGT("Νήμα")
#define MSG_VOLUMETRIC_ENABLED _UxGT("Ε σε μμ3")
#define MSG_FILAMENT_DIAM _UxGT("Διάμετρος νήματος")
#define MSG_CONTRAST _UxGT("Κοντράστ LCD")
#define MSG_STORE_EEPROM _UxGT("Αποθήκευση")
#define MSG_LOAD_EEPROM _UxGT("Φόρτωση")
#define MSG_RESTORE_FAILSAFE _UxGT("Επαναφορά ασφαλούς αντιγράφου")
#define MSG_REFRESH _UxGT("Ανανέωση")
#define MSG_WATCH _UxGT("Οθόνη πληροφόρησης")
#define MSG_PREPARE _UxGT("Προετοιμασία")
#define MSG_TUNE _UxGT("Συντονισμός")
#define MSG_PAUSE_PRINT _UxGT("Παύση εκτύπωσης")
#define MSG_RESUME_PRINT _UxGT("Συνέχιση εκτύπωσης")
#define MSG_STOP_PRINT _UxGT("Διακοπή εκτύπωσης")
#define MSG_MEDIA_MENU _UxGT("Εκτύπωση από SD")
#define MSG_NO_MEDIA _UxGT("Δεν βρέθηκε SD")
#define MSG_DWELL _UxGT("Αναστολή λειτουργίας…")
#define MSG_USERWAIT _UxGT("Αναμονή για χρήστη…")
#define MSG_PRINT_ABORTED _UxGT("Διακόπτεται η εκτύπωση")
#define MSG_NO_MOVE _UxGT("Καμία κίνηση.")
#define MSG_KILLED _UxGT("ΤΕΡΜΑΤΙΣΜΟΣ. ")
#define MSG_STOPPED _UxGT("ΔΙΑΚΟΠΗ. ")
#define MSG_CONTROL_RETRACT _UxGT("Ανάσυρση μμ")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Εναλλαγή ανάσυρσης μμ")
#define MSG_CONTROL_RETRACTF _UxGT("Ανάσυρση V")
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Μεταπήδηση μμ")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("S UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("UnRet V")
#define MSG_AUTORETRACT _UxGT("Αυτόματη ανάσυρση")
#define MSG_FILAMENTCHANGE _UxGT("Αλλαγή νήματος")
#define MSG_INIT_MEDIA _UxGT("Προετοιμασία κάρτας SD")
#define MSG_CHANGE_MEDIA _UxGT("Αλλαγή κάρτας SD")
#define MSG_ZPROBE_OUT _UxGT("Διερεύνηση Z εκτός κλίνης")
#define MSG_YX_UNHOMED _UxGT("Επαναφορά Χ/Υ πριν από Ζ")
#define MSG_XYZ_UNHOMED _UxGT("Επαναφορά ΧΥΖ πρώτα")
#define MSG_ZPROBE_ZOFFSET _UxGT("Μετατόπιση Ζ")
#define MSG_BABYSTEP_X _UxGT("Μικρό βήμα Χ")
#define MSG_BABYSTEP_Y _UxGT("Μικρό βήμα Υ")
#define MSG_BABYSTEP_Z _UxGT("Μικρό βήμα Ζ")
#define MSG_ENDSTOP_ABORT _UxGT("Ματαίωση endstop ")
#define MSG_HEATING_FAILED_LCD _UxGT("Ανεπιτυχής θέρμανση")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Λάθος: ΠΛΕΟΝΑΖΟΥΣΑ ΘΕΡΜΟΤΗΤΑ")
#define MSG_THERMAL_RUNAWAY _UxGT("ΔΙΑΦΥΓΗ ΘΕΡΜΟΤΗΤΑΣ")
#define MSG_ERR_MAXTEMP _UxGT("Λάθος: ΜΕΓΙΣΤΗ ΘΕΡΜΟΤΗΤΑ")
#define MSG_ERR_MINTEMP _UxGT("Λάθος: ΕΛΑΧΙΣΤΗ ΘΕΡΜΟΤΗΤΑ")
#define MSG_ERR_MAXTEMP_BED _UxGT("Λάθος: ΜΕΓΙΣΤΗ ΘΕΡΜΟΤΗΤΑ ΚΛΙΝΗΣ")
#define MSG_ERR_MINTEMP_BED _UxGT("Λάθος: ΕΛΑΧΙΣΤΗ ΘΕΡΜΟΤΗΤΑ ΚΛΙΝΗΣ")
#define MSG_HEATING _UxGT("Θερμαίνεται…")
#define MSG_BED_HEATING _UxGT("Θέρμανση κλίνης…")
#define MSG_DELTA_CALIBRATE _UxGT("Βαθμονόμηση Delta")
#define MSG_DELTA_CALIBRATE_X _UxGT("Βαθμονόμηση X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Βαθμονόμηση Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Βαθμονόμηση Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Βαθμονόμηση κέντρου")
#define MSG_EXPECTED_PRINTER _UxGT("Εσφαλμένος εκτυπωτής") constexpr uint8_t CHARSIZE = 2;
PROGMEM Language_Str LANGUAGE = _UxGT("Greek (Greece)");
PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" έτοιμο.");
PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Εισαγωγή κάρτας");
PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Αφαίρεση κάρτας");
PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Endstops"); // Max length 8 characters
PROGMEM Language_Str MSG_MAIN = _UxGT("Βασική Οθόνη");
PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Αυτόματη εκκίνηση");
PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Απενεργοποίηση βηματιστή");
PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Αυτομ. επαναφορά στο αρχικό σημείο");
PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Αρχικό σημείο X");
PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Αρχικό σημείο Y");
PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Αρχικό σημείο Z");
PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Επαναφορά στο αρχικό σημείο ΧΥΖ");
PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Κάντε κλικ για να ξεκινήσετε");
PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Επόμενο σημείο");
PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Ολοκλήρωση επιπεδοποίησης!");
PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Ορισμός βασικών μετατοπίσεων");
PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Εφαρμόστηκαν οι μετατοπίσεις");
PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Ορισμός προέλευσης");
PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" End");
PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" όλα");
PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" κλίνη");
PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Προθέρμανση ") PREHEAT_1_LABEL _UxGT(" επιβεβαίωση");
PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL _UxGT(" End");
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL _UxGT(" όλα");
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL _UxGT(" κλίνη");
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Προθέρμανση ") PREHEAT_2_LABEL _UxGT(" επιβεβαίωση");
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Μειωση θερμοκρασιας");
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Ενεργοποίηση");
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Απενεργοποίηση");
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Εξώθηση");
PROGMEM Language_Str MSG_RETRACT = _UxGT("Ανάσυρση");
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Μετακίνηση άξονα");
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Επιπεδοποίηση κλίνης");
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Επιπεδοποίηση κλίνης");
PROGMEM Language_Str MSG_MOVE_X = _UxGT("Μετακίνηση X");
PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Μετακίνηση Y");
PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Μετακίνηση Z");
PROGMEM Language_Str MSG_MOVE_E = _UxGT("Εξωθητήρας");
PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Εξωθητήρας ") LCD_STR_E0;
PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Εξωθητήρας ") LCD_STR_E1;
PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Εξωθητήρας ") LCD_STR_E2;
PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Εξωθητήρας ") LCD_STR_E3;
PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Εξωθητήρας ") LCD_STR_E4;
PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Εξωθητήρας ") LCD_STR_E5;
PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Μετακίνηση %s μμ");
PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Μετακίνηση 0,1 μμ");
PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Μετακίνηση 1 μμ");
PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Μετακίνηση 10 μμ");
PROGMEM Language_Str MSG_SPEED = _UxGT("Ταχύτητα");
PROGMEM Language_Str MSG_BED_Z = _UxGT("Κλίνη Z");
PROGMEM Language_Str MSG_NOZZLE = _UxGT("Ακροφύσιο");
PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Ακροφύσιο ") LCD_STR_N0;
PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Ακροφύσιο ") LCD_STR_N1;
PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Ακροφύσιο ") LCD_STR_N2;
PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Ακροφύσιο ") LCD_STR_N3;
PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Ακροφύσιο ") LCD_STR_N4;
PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Ακροφύσιο ") LCD_STR_N5;
PROGMEM Language_Str MSG_BED = _UxGT("Κλίνη");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Ταχύτητα ανεμιστήρα");
PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Ταχύτητα ανεμιστήρα 1");
PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Ταχύτητα ανεμιστήρα 2");
PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Ταχύτητα ανεμιστήρα 3");
PROGMEM Language_Str MSG_FLOW = _UxGT("Ροή");
PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Ροή ") LCD_STR_N0;
PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Ροή ") LCD_STR_N1;
PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Ροή ") LCD_STR_N2;
PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Ροή ") LCD_STR_N3;
PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Ροή ") LCD_STR_N4;
PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Ροή ") LCD_STR_N5;
PROGMEM Language_Str MSG_CONTROL = _UxGT("Έλεγχος");
PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" Min");
PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" Max");
PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Fact");
PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Αυτομ. ρύθμιση θερμοκρασίας");
PROGMEM Language_Str MSG_LCD_ON = _UxGT("Ενεργοποιημένο");
PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Απενεργοποιημένο");
PROGMEM Language_Str MSG_PID_P = _UxGT("PID-P");
PROGMEM Language_Str MSG_PID_P_E0 = _UxGT("PID-P ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_P_E1 = _UxGT("PID-P ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_P_E2 = _UxGT("PID-P ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_P_E3 = _UxGT("PID-P ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_P_E4 = _UxGT("PID-P ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_P_E5 = _UxGT("PID-P ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_I = _UxGT("PID-I");
PROGMEM Language_Str MSG_PID_I_E0 = _UxGT("PID-I ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_I_E1 = _UxGT("PID-I ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_I_E2 = _UxGT("PID-I ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_I_E3 = _UxGT("PID-I ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_I_E4 = _UxGT("PID-I ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_I_E5 = _UxGT("PID-I ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_D = _UxGT("PID-D");
PROGMEM Language_Str MSG_PID_D_E0 = _UxGT("PID-D ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_D_E1 = _UxGT("PID-D ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_D_E2 = _UxGT("PID-D ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_D_E3 = _UxGT("PID-D ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_D_E4 = _UxGT("PID-D ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_D_E5 = _UxGT("PID-D ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_C = _UxGT("PID-C");
PROGMEM Language_Str MSG_PID_C_E0 = _UxGT("PID-C ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_C_E1 = _UxGT("PID-C ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_C_E2 = _UxGT("PID-C ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_C_E3 = _UxGT("PID-C ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_C_E4 = _UxGT("PID-C ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_C_E5 = _UxGT("PID-C ") LCD_STR_E5;
PROGMEM Language_Str MSG_ACC = _UxGT("Επιτάχυνση");
PROGMEM Language_Str MSG_JERK = _UxGT("Vαντίδραση");
PROGMEM Language_Str MSG_VA_JERK = _UxGT("Vαντίδραση ") LCD_STR_A;
PROGMEM Language_Str MSG_VB_JERK = _UxGT("Vαντίδραση ") LCD_STR_B;
PROGMEM Language_Str MSG_VC_JERK = _UxGT("Vαντίδραση ") LCD_STR_C;
PROGMEM Language_Str MSG_VE_JERK = _UxGT("Vαντίδραση E");
PROGMEM Language_Str MSG_VMAX_A = _UxGT("Vμεγ ") LCD_STR_A;
PROGMEM Language_Str MSG_VMAX_B = _UxGT("Vμεγ ") LCD_STR_B;
PROGMEM Language_Str MSG_VMAX_C = _UxGT("Vμεγ ") LCD_STR_C;
PROGMEM Language_Str MSG_VMAX_E = _UxGT("Vμεγ ") LCD_STR_E;
PROGMEM Language_Str MSG_VMAX_E0 = _UxGT("Vμεγ ") LCD_STR_E0;
PROGMEM Language_Str MSG_VMAX_E1 = _UxGT("Vμεγ ") LCD_STR_E1;
PROGMEM Language_Str MSG_VMAX_E2 = _UxGT("Vμεγ ") LCD_STR_E2;
PROGMEM Language_Str MSG_VMAX_E3 = _UxGT("Vμεγ ") LCD_STR_E3;
PROGMEM Language_Str MSG_VMAX_E4 = _UxGT("Vμεγ ") LCD_STR_E4;
PROGMEM Language_Str MSG_VMAX_E5 = _UxGT("Vμεγ ") LCD_STR_E5;
PROGMEM Language_Str MSG_VMIN = _UxGT("Vελαχ");
PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("Vελάχ. μετατόπιση");
PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Accel");
PROGMEM Language_Str MSG_AMAX_A = _UxGT("Aμεγ ") LCD_STR_A;
PROGMEM Language_Str MSG_AMAX_B = _UxGT("Aμεγ ") LCD_STR_B;
PROGMEM Language_Str MSG_AMAX_C = _UxGT("Aμεγ ") LCD_STR_C;
PROGMEM Language_Str MSG_AMAX_E = _UxGT("Aμεγ ") LCD_STR_E;
PROGMEM Language_Str MSG_AMAX_E0 = _UxGT("Aμεγ ") LCD_STR_E0;
PROGMEM Language_Str MSG_AMAX_E1 = _UxGT("Aμεγ ") LCD_STR_E1;
PROGMEM Language_Str MSG_AMAX_E2 = _UxGT("Aμεγ ") LCD_STR_E2;
PROGMEM Language_Str MSG_AMAX_E3 = _UxGT("Aμεγ ") LCD_STR_E3;
PROGMEM Language_Str MSG_AMAX_E4 = _UxGT("Aμεγ ") LCD_STR_E4;
PROGMEM Language_Str MSG_AMAX_E5 = _UxGT("Aμεγ ") LCD_STR_E5;
PROGMEM Language_Str MSG_A_RETRACT = _UxGT("Α-ανάσυρση");
PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("Α-μετατόπιση");
PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Bήματα ανά μμ");
PROGMEM Language_Str MSG_A_STEPS = _UxGT("Bήματα ") LCD_STR_A _UxGT(" ανά μμ");
PROGMEM Language_Str MSG_B_STEPS = _UxGT("Bήματα ") LCD_STR_B _UxGT(" ανά μμ");
PROGMEM Language_Str MSG_C_STEPS = _UxGT("Bήματα ") LCD_STR_C _UxGT(" ανά μμ");
PROGMEM Language_Str MSG_E_STEPS = _UxGT("Bήματα Ε ανά μμ");
PROGMEM Language_Str MSG_E0_STEPS = _UxGT("Bήματα ") LCD_STR_E0 _UxGT(" ανά μμ");
PROGMEM Language_Str MSG_E1_STEPS = _UxGT("Bήματα ") LCD_STR_E1 _UxGT(" ανά μμ");
PROGMEM Language_Str MSG_E2_STEPS = _UxGT("Bήματα ") LCD_STR_E2 _UxGT(" ανά μμ");
PROGMEM Language_Str MSG_E3_STEPS = _UxGT("Bήματα ") LCD_STR_E3 _UxGT(" ανά μμ");
PROGMEM Language_Str MSG_E4_STEPS = _UxGT("Bήματα ") LCD_STR_E4 _UxGT(" ανά μμ");
PROGMEM Language_Str MSG_E5_STEPS = _UxGT("Bήματα ") LCD_STR_E5 _UxGT(" ανά μμ");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Θερμοκρασία");
PROGMEM Language_Str MSG_MOTION = _UxGT("Κίνηση");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Νήμα");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("Ε σε μμ3");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Διάμετρος νήματος");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Διάμετρος νήματος ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Διάμετρος νήματος ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Διάμετρος νήματος ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Διάμετρος νήματος ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Διάμετρος νήματος ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Διάμετρος νήματος ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("Κοντράστ LCD");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Αποθήκευση");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Φόρτωση");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Επαναφορά ασφαλούς αντιγράφου");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Ανανέωση");
PROGMEM Language_Str MSG_WATCH = _UxGT("Οθόνη πληροφόρησης");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Προετοιμασία");
PROGMEM Language_Str MSG_TUNE = _UxGT("Συντονισμός");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Παύση εκτύπωσης");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Συνέχιση εκτύπωσης");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Διακοπή εκτύπωσης");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Εκτύπωση από SD");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("Δεν βρέθηκε SD");
PROGMEM Language_Str MSG_DWELL = _UxGT("Αναστολή λειτουργίας…");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Αναμονή για χρήστη…");
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Διακόπτεται η εκτύπωση");
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Καμία κίνηση.");
PROGMEM Language_Str MSG_KILLED = _UxGT("ΤΕΡΜΑΤΙΣΜΟΣ. ");
PROGMEM Language_Str MSG_STOPPED = _UxGT("ΔΙΑΚΟΠΗ. ");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Ανάσυρση μμ");
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Εναλλαγή ανάσυρσης μμ");
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Ανάσυρση V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Μεταπήδηση μμ");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("S UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("UnRet V");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Αυτόματη ανάσυρση");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Αλλαγή νήματος");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Αλλαγή νήματος ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Αλλαγή νήματος ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Αλλαγή νήματος ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Αλλαγή νήματος ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Αλλαγή νήματος ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Αλλαγή νήματος ") LCD_STR_E5;
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Προετοιμασία κάρτας SD");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Αλλαγή κάρτας SD");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Διερεύνηση Z εκτός κλίνης");
PROGMEM Language_Str MSG_YX_UNHOMED = _UxGT("Επαναφορά Χ/Υ πριν από Ζ");
PROGMEM Language_Str MSG_XYZ_UNHOMED = _UxGT("Επαναφορά ΧΥΖ πρώτα");
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Μετατόπιση Ζ");
PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Μικρό βήμα Χ");
PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Μικρό βήμα Υ");
PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Μικρό βήμα Ζ");
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Ματαίωση endstop ");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Ανεπιτυχής θέρμανση");
PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("Λάθος: ΠΛΕΟΝΑΖΟΥΣΑ ΘΕΡΜΟΤΗΤΑ");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("ΔΙΑΦΥΓΗ ΘΕΡΜΟΤΗΤΑΣ");
PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("Λάθος: ΜΕΓΙΣΤΗ ΘΕΡΜΟΤΗΤΑ");
PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("Λάθος: ΕΛΑΧΙΣΤΗ ΘΕΡΜΟΤΗΤΑ");
PROGMEM Language_Str MSG_ERR_MAXTEMP_BED = _UxGT("Λάθος: ΜΕΓΙΣΤΗ ΘΕΡΜΟΤΗΤΑ ΚΛΙΝΗΣ");
PROGMEM Language_Str MSG_ERR_MINTEMP_BED = _UxGT("Λάθος: ΕΛΑΧΙΣΤΗ ΘΕΡΜΟΤΗΤΑ ΚΛΙΝΗΣ");
PROGMEM Language_Str MSG_HEATING = _UxGT("Θερμαίνεται…");
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Θέρμανση κλίνης…");
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Βαθμονόμηση Delta");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Βαθμονόμηση X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Βαθμονόμηση Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Βαθμονόμηση Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Βαθμονόμηση κέντρου");
PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Εσφαλμένος εκτυπωτής");
}

View file

@ -35,1554 +35,675 @@
#endif #endif
#undef en #undef en
#ifndef THIS_LANGUAGES_SPECIAL_SYMBOLS namespace Language_en {
#define THIS_LANGUAGES_SPECIAL_SYMBOLS _UxGT("³") constexpr uint8_t CHARSIZE = 2;
#endif PROGMEM Language_Str LANGUAGE = _UxGT("English");
#ifdef NOT_EXTENDED_ISO10646_1_5X7 #ifdef NOT_EXTENDED_ISO10646_1_5X7
#define MSG_CUBED _UxGT("^3") PROGMEM Language_Str MSG_CUBED = _UxGT("^3");
#else #else
#define MSG_CUBED _UxGT("³") PROGMEM Language_Str MSG_CUBED = _UxGT("³");
#endif #endif
#ifndef CHARSIZE PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" Ready.");
#define CHARSIZE 1 PROGMEM Language_Str MSG_YES = _UxGT("YES");
#endif PROGMEM Language_Str MSG_NO = _UxGT("NO");
PROGMEM Language_Str MSG_BACK = _UxGT("Back");
PROGMEM Language_Str MSG_MEDIA_ABORTING = _UxGT("Aborting...");
PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Media Inserted");
PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Media Removed");
PROGMEM Language_Str MSG_MEDIA_RELEASED = _UxGT("Media Released");
PROGMEM Language_Str MSG_MEDIA_WAITING = _UxGT("Waiting for media");
PROGMEM Language_Str MSG_MEDIA_READ_ERROR = _UxGT("Media read error");
PROGMEM Language_Str MSG_MEDIA_USB_REMOVED = _UxGT("USB device removed");
PROGMEM Language_Str MSG_MEDIA_USB_FAILED = _UxGT("USB start failed");
PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Endstops"); // Max length 8 characters
PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("Soft Endstops");
PROGMEM Language_Str MSG_MAIN = _UxGT("Main");
PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("Advanced Settings");
PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("Configuration");
PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Autostart");
PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Disable Steppers");
PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("Debug Menu");
PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Progress Bar Test");
PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Auto Home");
PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Home X");
PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Home Y");
PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Home Z");
PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("Auto Z-Align");
PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Homing XYZ");
PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Click to Begin");
PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Next Point");
PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Leveling Done!");
PROGMEM Language_Str MSG_Z_FADE_HEIGHT = _UxGT("Fade Height");
PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Set Home Offsets");
PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Offsets Applied");
PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Set Origin");
PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Preheat ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Preheat ") PREHEAT_1_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Preheat ") PREHEAT_1_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Preheat ") PREHEAT_1_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Preheat ") PREHEAT_1_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Preheat ") PREHEAT_1_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Preheat ") PREHEAT_1_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" End");
PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" End ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" All");
PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" Bed");
PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" Conf");
PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Preheat ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Preheat ") PREHEAT_2_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Preheat ") PREHEAT_2_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Preheat ") PREHEAT_2_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Preheat ") PREHEAT_2_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Preheat ") PREHEAT_2_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Preheat ") PREHEAT_2_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Preheat ") PREHEAT_2_LABEL _UxGT(" End");
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Preheat ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Preheat ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Preheat ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Preheat ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Preheat ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Preheat ") PREHEAT_2_LABEL _UxGT(" End ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Preheat ") PREHEAT_2_LABEL _UxGT(" All");
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Preheat ") PREHEAT_2_LABEL _UxGT(" Bed");
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Preheat ") PREHEAT_2_LABEL _UxGT(" Conf");
PROGMEM Language_Str MSG_PREHEAT_CUSTOM = _UxGT("Preheat Custom");
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Cooldown");
PROGMEM Language_Str MSG_LASER_MENU = _UxGT("Laser Control");
PROGMEM Language_Str MSG_LASER_OFF = _UxGT("Laser Off");
PROGMEM Language_Str MSG_LASER_ON = _UxGT("Laser On");
PROGMEM Language_Str MSG_LASER_POWER = _UxGT("Laser Power");
PROGMEM Language_Str MSG_SPINDLE_MENU = _UxGT("Spindle Control");
PROGMEM Language_Str MSG_SPINDLE_OFF = _UxGT("Spindle Off");
PROGMEM Language_Str MSG_SPINDLE_ON = _UxGT("Spindle On");
PROGMEM Language_Str MSG_SPINDLE_POWER = _UxGT("Spindle Power");
PROGMEM Language_Str MSG_SPINDLE_REVERSE = _UxGT("Spindle Reverse");
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Switch Power On");
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Switch Power Off");
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Extrude");
PROGMEM Language_Str MSG_RETRACT = _UxGT("Retract");
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Move Axis");
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Bed Leveling");
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Level Bed");
PROGMEM Language_Str MSG_LEVEL_CORNERS = _UxGT("Level Corners");
PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("Next Corner");
PROGMEM Language_Str MSG_MESH_EDITOR = _UxGT("Mesh Editor");
PROGMEM Language_Str MSG_EDIT_MESH = _UxGT("Edit Mesh");
PROGMEM Language_Str MSG_EDITING_STOPPED = _UxGT("Mesh Editing Stopped");
PROGMEM Language_Str MSG_PROBING_MESH = _UxGT("Probing Point");
PROGMEM Language_Str MSG_MESH_X = _UxGT("Index X");
PROGMEM Language_Str MSG_MESH_Y = _UxGT("Index Y");
PROGMEM Language_Str MSG_MESH_EDIT_Z = _UxGT("Z Value");
PROGMEM Language_Str MSG_USER_MENU = _UxGT("Custom Commands");
PROGMEM Language_Str MSG_M48_TEST = _UxGT("M48 Probe Test");
PROGMEM Language_Str MSG_M48_POINT = _UxGT("M48 Point");
PROGMEM Language_Str MSG_M48_DEVIATION = _UxGT("Deviation");
PROGMEM Language_Str MSG_IDEX_MENU = _UxGT("IDEX Mode");
PROGMEM Language_Str MSG_OFFSETS_MENU = _UxGT("Tool Offsets");
PROGMEM Language_Str MSG_IDEX_MODE_AUTOPARK = _UxGT("Auto-Park");
PROGMEM Language_Str MSG_IDEX_MODE_DUPLICATE = _UxGT("Duplication");
PROGMEM Language_Str MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Mirrored Copy");
PROGMEM Language_Str MSG_IDEX_MODE_FULL_CTRL = _UxGT("Full Control");
PROGMEM Language_Str MSG_X_OFFSET = _UxGT("2nd Nozzle X");
PROGMEM Language_Str MSG_Y_OFFSET = _UxGT("2nd Nozzle Y");
PROGMEM Language_Str MSG_Z_OFFSET = _UxGT("2nd Nozzle Z");
PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("Doing G29");
PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("UBL Tools");
PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("Unified Bed Leveling");
PROGMEM Language_Str MSG_LCD_TILTING_MESH = _UxGT("Tilting Point");
PROGMEM Language_Str MSG_UBL_MANUAL_MESH = _UxGT("Manually Build Mesh");
PROGMEM Language_Str MSG_UBL_BC_INSERT = _UxGT("Place Shim & Measure");
PROGMEM Language_Str MSG_UBL_BC_INSERT2 = _UxGT("Measure");
PROGMEM Language_Str MSG_UBL_BC_REMOVE = _UxGT("Remove & Measure Bed");
PROGMEM Language_Str MSG_UBL_MOVING_TO_NEXT = _UxGT("Moving to next");
PROGMEM Language_Str MSG_UBL_ACTIVATE_MESH = _UxGT("Activate UBL");
PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("Deactivate UBL");
PROGMEM Language_Str MSG_UBL_SET_TEMP_BED = _UxGT("Bed Temp");
PROGMEM Language_Str MSG_UBL_BED_TEMP_CUSTOM = _UxGT("Bed Temp");
PROGMEM Language_Str MSG_UBL_SET_TEMP_HOTEND = _UxGT("Hotend Temp");
PROGMEM Language_Str MSG_UBL_HOTEND_TEMP_CUSTOM = _UxGT("Hotend Temp");
PROGMEM Language_Str MSG_UBL_MESH_EDIT = _UxGT("Mesh Edit");
PROGMEM Language_Str MSG_UBL_EDIT_CUSTOM_MESH = _UxGT("Edit Custom Mesh");
PROGMEM Language_Str MSG_UBL_FINE_TUNE_MESH = _UxGT("Fine Tuning Mesh");
PROGMEM Language_Str MSG_UBL_DONE_EDITING_MESH = _UxGT("Done Editing Mesh");
PROGMEM Language_Str MSG_UBL_BUILD_CUSTOM_MESH = _UxGT("Build Custom Mesh");
PROGMEM Language_Str MSG_UBL_BUILD_MESH_MENU = _UxGT("Build Mesh");
PROGMEM Language_Str MSG_UBL_BUILD_MESH_M1 = _UxGT("Build Mesh (") PREHEAT_1_LABEL _UxGT(")");
PROGMEM Language_Str MSG_UBL_BUILD_MESH_M2 = _UxGT("Build Mesh (") PREHEAT_2_LABEL _UxGT(")");
PROGMEM Language_Str MSG_UBL_BUILD_COLD_MESH = _UxGT("Build Cold Mesh");
PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_ADJUST = _UxGT("Adjust Mesh Height");
PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_AMOUNT = _UxGT("Height Amount");
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_MENU = _UxGT("Validate Mesh");
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M1 = _UxGT("Validate Mesh (") PREHEAT_1_LABEL _UxGT(")");
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M2 = _UxGT("Validate Mesh (") PREHEAT_2_LABEL _UxGT(")");
PROGMEM Language_Str MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("Validate Custom Mesh");
PROGMEM Language_Str MSG_G26_HEATING_BED = _UxGT("G26 Heating Bed");
PROGMEM Language_Str MSG_G26_HEATING_NOZZLE = _UxGT("G26 Heating Nozzle");
PROGMEM Language_Str MSG_G26_MANUAL_PRIME = _UxGT("Manual priming...");
PROGMEM Language_Str MSG_G26_FIXED_LENGTH = _UxGT("Fixed Length Prime");
PROGMEM Language_Str MSG_G26_PRIME_DONE = _UxGT("Done Priming");
PROGMEM Language_Str MSG_G26_CANCELED = _UxGT("G26 Canceled");
PROGMEM Language_Str MSG_G26_LEAVING = _UxGT("Leaving G26");
PROGMEM Language_Str MSG_UBL_CONTINUE_MESH = _UxGT("Continue Bed Mesh");
PROGMEM Language_Str MSG_UBL_MESH_LEVELING = _UxGT("Mesh Leveling");
PROGMEM Language_Str MSG_UBL_3POINT_MESH_LEVELING = _UxGT("3-Point Leveling");
PROGMEM Language_Str MSG_UBL_GRID_MESH_LEVELING = _UxGT("Grid Mesh Leveling");
PROGMEM Language_Str MSG_UBL_MESH_LEVEL = _UxGT("Level Mesh");
PROGMEM Language_Str MSG_UBL_SIDE_POINTS = _UxGT("Side Points");
PROGMEM Language_Str MSG_UBL_MAP_TYPE = _UxGT("Map Type");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP = _UxGT("Output Mesh Map");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_HOST = _UxGT("Output for Host");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_CSV = _UxGT("Output for CSV");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_BACKUP = _UxGT("Off Printer Backup");
PROGMEM Language_Str MSG_UBL_INFO_UBL = _UxGT("Output UBL Info");
PROGMEM Language_Str MSG_UBL_FILLIN_AMOUNT = _UxGT("Fill-in Amount");
PROGMEM Language_Str MSG_UBL_MANUAL_FILLIN = _UxGT("Manual Fill-in");
PROGMEM Language_Str MSG_UBL_SMART_FILLIN = _UxGT("Smart Fill-in");
PROGMEM Language_Str MSG_UBL_FILLIN_MESH = _UxGT("Fill-in Mesh");
PROGMEM Language_Str MSG_UBL_INVALIDATE_ALL = _UxGT("Invalidate All");
PROGMEM Language_Str MSG_UBL_INVALIDATE_CLOSEST = _UxGT("Invalidate Closest");
PROGMEM Language_Str MSG_UBL_FINE_TUNE_ALL = _UxGT("Fine Tune All");
PROGMEM Language_Str MSG_UBL_FINE_TUNE_CLOSEST = _UxGT("Fine Tune Closest");
PROGMEM Language_Str MSG_UBL_STORAGE_MESH_MENU = _UxGT("Mesh Storage");
PROGMEM Language_Str MSG_UBL_STORAGE_SLOT = _UxGT("Memory Slot");
PROGMEM Language_Str MSG_UBL_LOAD_MESH = _UxGT("Load Bed Mesh");
PROGMEM Language_Str MSG_UBL_SAVE_MESH = _UxGT("Save Bed Mesh");
PROGMEM Language_Str MSG_MESH_LOADED = _UxGT("M117 Mesh %i Loaded");
PROGMEM Language_Str MSG_MESH_SAVED = _UxGT("M117 Mesh %i Saved");
PROGMEM Language_Str MSG_UBL_NO_STORAGE = _UxGT("No Storage");
PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("Err: UBL Save");
PROGMEM Language_Str MSG_UBL_RESTORE_ERROR = _UxGT("Err: UBL Restore");
PROGMEM Language_Str MSG_UBL_Z_OFFSET = _UxGT("Z-Offset: ");
PROGMEM Language_Str MSG_UBL_Z_OFFSET_STOPPED = _UxGT("Z-Offset Stopped");
PROGMEM Language_Str MSG_UBL_STEP_BY_STEP_MENU = _UxGT("Step-By-Step UBL");
PROGMEM Language_Str MSG_UBL_1_BUILD_COLD_MESH = _UxGT("1. Build Cold Mesh");
PROGMEM Language_Str MSG_UBL_2_SMART_FILLIN = _UxGT("2. Smart Fill-in");
PROGMEM Language_Str MSG_UBL_3_VALIDATE_MESH_MENU = _UxGT("3. Validate Mesh");
PROGMEM Language_Str MSG_UBL_4_FINE_TUNE_ALL = _UxGT("4. Fine Tune All");
PROGMEM Language_Str MSG_UBL_5_VALIDATE_MESH_MENU = _UxGT("5. Validate Mesh");
PROGMEM Language_Str MSG_UBL_6_FINE_TUNE_ALL = _UxGT("6. Fine Tune All");
PROGMEM Language_Str MSG_UBL_7_SAVE_MESH = _UxGT("7. Save Bed Mesh");
#ifndef WELCOME_MSG PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("LED Control");
#define WELCOME_MSG MACHINE_NAME _UxGT(" Ready.") PROGMEM Language_Str MSG_LEDS = _UxGT("Lights");
#endif PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("Light Presets");
#ifndef MSG_YES PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("Red");
#define MSG_YES _UxGT("YES") PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("Orange");
#endif PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("Yellow");
#ifndef MSG_NO PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("Green");
#define MSG_NO _UxGT("NO") PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("Blue");
#endif PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("Indigo");
#ifndef MSG_BACK PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Violet");
#define MSG_BACK _UxGT("Back") PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("White");
#endif PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("Default");
#ifndef MSG_MEDIA_ABORTING PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("Custom Lights");
#define MSG_MEDIA_ABORTING _UxGT("Aborting...") PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Red Intensity");
#endif PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Green Intensity");
#ifndef MSG_MEDIA_INSERTED PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("Blue Intensity");
#define MSG_MEDIA_INSERTED _UxGT("Media Inserted") PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("White Intensity");
#endif PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("Brightness");
#ifndef MSG_MEDIA_REMOVED
#define MSG_MEDIA_REMOVED _UxGT("Media Removed")
#endif
#ifndef MSG_MEDIA_RELEASED
#define MSG_MEDIA_RELEASED _UxGT("Media Released")
#endif
#ifndef MSG_MEDIA_WAITING
#define MSG_MEDIA_WAITING _UxGT("Waiting for media")
#endif
#ifndef MSG_MEDIA_READ_ERROR
#define MSG_MEDIA_READ_ERROR _UxGT("Media read error")
#endif
#ifndef MSG_MEDIA_USB_REMOVED
#define MSG_MEDIA_USB_REMOVED _UxGT("USB device removed")
#endif
#ifndef MSG_MEDIA_USB_FAILED
#define MSG_MEDIA_USB_FAILED _UxGT("USB start failed")
#endif
#ifndef MSG_LCD_ENDSTOPS
#define MSG_LCD_ENDSTOPS _UxGT("Endstops") // Max length 8 characters
#endif
#ifndef MSG_LCD_SOFT_ENDSTOPS
#define MSG_LCD_SOFT_ENDSTOPS _UxGT("Soft Endstops")
#endif
#ifndef MSG_MAIN
#define MSG_MAIN _UxGT("Main")
#endif
#ifndef MSG_ADVANCED_SETTINGS
#define MSG_ADVANCED_SETTINGS _UxGT("Advanced Settings")
#endif
#ifndef MSG_CONFIGURATION
#define MSG_CONFIGURATION _UxGT("Configuration")
#endif
#ifndef MSG_AUTOSTART
#define MSG_AUTOSTART _UxGT("Autostart")
#endif
#ifndef MSG_DISABLE_STEPPERS
#define MSG_DISABLE_STEPPERS _UxGT("Disable Steppers")
#endif
#ifndef MSG_DEBUG_MENU
#define MSG_DEBUG_MENU _UxGT("Debug Menu")
#endif
#ifndef MSG_PROGRESS_BAR_TEST
#define MSG_PROGRESS_BAR_TEST _UxGT("Progress Bar Test")
#endif
#ifndef MSG_AUTO_HOME
#define MSG_AUTO_HOME _UxGT("Auto Home")
#endif
#ifndef MSG_AUTO_HOME_X
#define MSG_AUTO_HOME_X _UxGT("Home X")
#endif
#ifndef MSG_AUTO_HOME_Y
#define MSG_AUTO_HOME_Y _UxGT("Home Y")
#endif
#ifndef MSG_AUTO_HOME_Z
#define MSG_AUTO_HOME_Z _UxGT("Home Z")
#endif
#ifndef MSG_AUTO_Z_ALIGN
#define MSG_AUTO_Z_ALIGN _UxGT("Auto Z-Align")
#endif
#ifndef MSG_LEVEL_BED_HOMING
#define MSG_LEVEL_BED_HOMING _UxGT("Homing XYZ")
#endif
#ifndef MSG_LEVEL_BED_WAITING
#define MSG_LEVEL_BED_WAITING _UxGT("Click to Begin")
#endif
#ifndef MSG_LEVEL_BED_NEXT_POINT
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Next Point")
#endif
#ifndef MSG_LEVEL_BED_DONE
#define MSG_LEVEL_BED_DONE _UxGT("Leveling Done!")
#endif
#ifndef MSG_Z_FADE_HEIGHT
#define MSG_Z_FADE_HEIGHT _UxGT("Fade Height")
#endif
#ifndef MSG_SET_HOME_OFFSETS
#define MSG_SET_HOME_OFFSETS _UxGT("Set Home Offsets")
#endif
#ifndef MSG_HOME_OFFSETS_APPLIED
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Offsets Applied")
#endif
#ifndef MSG_SET_ORIGIN
#define MSG_SET_ORIGIN _UxGT("Set Origin")
#endif
#ifndef MSG_PREHEAT_1
#define MSG_PREHEAT_1 _UxGT("Preheat " PREHEAT_1_LABEL)
#endif
#ifndef MSG_PREHEAT_1_N
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ")
#endif
#ifndef MSG_PREHEAT_1_ALL
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" All")
#endif
#ifndef MSG_PREHEAT_1_END
#define MSG_PREHEAT_1_END MSG_PREHEAT_1 _UxGT(" End")
#endif
#ifndef MSG_PREHEAT_1_BEDONLY
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" Bed")
#endif
#ifndef MSG_PREHEAT_1_SETTINGS
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" Conf")
#endif
#ifndef MSG_PREHEAT_2
#define MSG_PREHEAT_2 _UxGT("Preheat " PREHEAT_2_LABEL)
#endif
#ifndef MSG_PREHEAT_2_N
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ")
#endif
#ifndef MSG_PREHEAT_2_ALL
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" All")
#endif
#ifndef MSG_PREHEAT_2_END
#define MSG_PREHEAT_2_END MSG_PREHEAT_2 _UxGT(" End")
#endif
#ifndef MSG_PREHEAT_2_BEDONLY
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" Bed")
#endif
#ifndef MSG_PREHEAT_2_SETTINGS
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" Conf")
#endif
#ifndef MSG_PREHEAT_CUSTOM
#define MSG_PREHEAT_CUSTOM _UxGT("Preheat Custom")
#endif
#ifndef MSG_COOLDOWN
#define MSG_COOLDOWN _UxGT("Cooldown")
#endif
#ifndef MSG_LASER_MENU
#define MSG_LASER_MENU _UxGT("Laser Control")
#endif
#ifndef MSG_LASER_OFF
#define MSG_LASER_OFF _UxGT("Laser Off")
#endif
#ifndef MSG_LASER_ON
#define MSG_LASER_ON _UxGT("Laser On")
#endif
#ifndef MSG_LASER_POWER
#define MSG_LASER_POWER _UxGT("Laser Power")
#endif
#ifndef MSG_SPINDLE_MENU
#define MSG_SPINDLE_MENU _UxGT("Spindle Control")
#endif
#ifndef MSG_SPINDLE_OFF
#define MSG_SPINDLE_OFF _UxGT("Spindle Off")
#endif
#ifndef MSG_SPINDLE_ON
#define MSG_SPINDLE_ON _UxGT("Spindle On")
#endif
#ifndef MSG_SPINDLE_POWER
#define MSG_SPINDLE_POWER _UxGT("Spindle Power")
#endif
#ifndef MSG_SPINDLE_REVERSE
#define MSG_SPINDLE_REVERSE _UxGT("Spindle Reverse")
#endif
#ifndef MSG_SWITCH_PS_ON
#define MSG_SWITCH_PS_ON _UxGT("Switch Power On")
#endif
#ifndef MSG_SWITCH_PS_OFF
#define MSG_SWITCH_PS_OFF _UxGT("Switch Power Off")
#endif
#ifndef MSG_EXTRUDE
#define MSG_EXTRUDE _UxGT("Extrude")
#endif
#ifndef MSG_RETRACT
#define MSG_RETRACT _UxGT("Retract")
#endif
#ifndef MSG_MOVE_AXIS
#define MSG_MOVE_AXIS _UxGT("Move Axis")
#endif
#ifndef MSG_BED_LEVELING
#define MSG_BED_LEVELING _UxGT("Bed Leveling")
#endif
#ifndef MSG_LEVEL_BED
#define MSG_LEVEL_BED _UxGT("Level Bed")
#endif
#ifndef MSG_LEVEL_CORNERS
#define MSG_LEVEL_CORNERS _UxGT("Level Corners")
#endif
#ifndef MSG_NEXT_CORNER
#define MSG_NEXT_CORNER _UxGT("Next Corner")
#endif
#ifndef MSG_MESH_EDITOR
#define MSG_MESH_EDITOR _UxGT("Mesh Editor")
#endif
#ifndef MSG_EDIT_MESH
#define MSG_EDIT_MESH _UxGT("Edit Mesh")
#endif
#ifndef MSG_EDITING_STOPPED
#define MSG_EDITING_STOPPED _UxGT("Mesh Editing Stopped")
#endif
#ifndef MSG_PROBING_MESH
#define MSG_PROBING_MESH _UxGT("Probing Point")
#endif
#ifndef MSG_MESH_X
#define MSG_MESH_X _UxGT("Index X")
#endif
#ifndef MSG_MESH_Y
#define MSG_MESH_Y _UxGT("Index Y")
#endif
#ifndef MSG_MESH_EDIT_Z
#define MSG_MESH_EDIT_Z _UxGT("Z Value")
#endif
#ifndef MSG_USER_MENU
#define MSG_USER_MENU _UxGT("Custom Commands")
#endif
#ifndef MSG_M48_TEST
#define MSG_M48_TEST _UxGT("M48 Probe Test")
#endif
#ifndef MSG_M48_POINT
#define MSG_M48_POINT _UxGT("M48 Point")
#endif
#ifndef MSG_M48_DEVIATION
#define MSG_M48_DEVIATION _UxGT("Deviation")
#endif
#ifndef MSG_IDEX_MENU
#define MSG_IDEX_MENU _UxGT("IDEX Mode")
#endif
#ifndef MSG_OFFSETS_MENU
#define MSG_OFFSETS_MENU _UxGT("Tool Offsets")
#endif
#ifndef MSG_IDEX_MODE_AUTOPARK
#define MSG_IDEX_MODE_AUTOPARK _UxGT("Auto-Park")
#endif
#ifndef MSG_IDEX_MODE_DUPLICATE
#define MSG_IDEX_MODE_DUPLICATE _UxGT("Duplication")
#endif
#ifndef MSG_IDEX_MODE_MIRRORED_COPY
#define MSG_IDEX_MODE_MIRRORED_COPY _UxGT("Mirrored Copy")
#endif
#ifndef MSG_IDEX_MODE_FULL_CTRL
#define MSG_IDEX_MODE_FULL_CTRL _UxGT("Full Control")
#endif
#ifndef MSG_X_OFFSET
#define MSG_X_OFFSET _UxGT("2nd Nozzle X")
#endif
#ifndef MSG_Y_OFFSET
#define MSG_Y_OFFSET _UxGT("2nd Nozzle Y")
#endif
#ifndef MSG_Z_OFFSET
#define MSG_Z_OFFSET _UxGT("2nd nNozzle Z")
#endif
#ifndef MSG_UBL_DOING_G29
#define MSG_UBL_DOING_G29 _UxGT("Doing G29")
#endif
#ifndef MSG_UBL_TOOLS
#define MSG_UBL_TOOLS _UxGT("UBL Tools")
#endif
#ifndef MSG_UBL_LEVEL_BED
#define MSG_UBL_LEVEL_BED _UxGT("Unified Bed Leveling")
#endif
#ifndef MSG_LCD_TILTING_MESH
#define MSG_LCD_TILTING_MESH _UxGT("Tilting Point")
#endif
#ifndef MSG_UBL_MANUAL_MESH
#define MSG_UBL_MANUAL_MESH _UxGT("Manually Build Mesh")
#endif
#ifndef MSG_UBL_BC_INSERT
#define MSG_UBL_BC_INSERT _UxGT("Place Shim & Measure")
#endif
#ifndef MSG_UBL_BC_INSERT2
#define MSG_UBL_BC_INSERT2 _UxGT("Measure")
#endif
#ifndef MSG_UBL_BC_REMOVE
#define MSG_UBL_BC_REMOVE _UxGT("Remove & Measure Bed")
#endif
#ifndef MSG_UBL_MOVING_TO_NEXT
#define MSG_UBL_MOVING_TO_NEXT _UxGT("Moving to next")
#endif
#ifndef MSG_UBL_ACTIVATE_MESH
#define MSG_UBL_ACTIVATE_MESH _UxGT("Activate UBL")
#endif
#ifndef MSG_UBL_DEACTIVATE_MESH
#define MSG_UBL_DEACTIVATE_MESH _UxGT("Deactivate UBL")
#endif
#ifndef MSG_UBL_SET_TEMP_BED
#define MSG_UBL_SET_TEMP_BED _UxGT("Bed Temp")
#endif
#ifndef MSG_UBL_BED_TEMP_CUSTOM
#define MSG_UBL_BED_TEMP_CUSTOM MSG_UBL_SET_TEMP_BED
#endif
#ifndef MSG_UBL_SET_TEMP_HOTEND
#define MSG_UBL_SET_TEMP_HOTEND _UxGT("Hotend Temp")
#endif
#ifndef MSG_UBL_HOTEND_TEMP_CUSTOM
#define MSG_UBL_HOTEND_TEMP_CUSTOM MSG_UBL_SET_TEMP_HOTEND
#endif
#ifndef MSG_UBL_MESH_EDIT
#define MSG_UBL_MESH_EDIT _UxGT("Mesh Edit")
#endif
#ifndef MSG_UBL_EDIT_CUSTOM_MESH
#define MSG_UBL_EDIT_CUSTOM_MESH _UxGT("Edit Custom Mesh")
#endif
#ifndef MSG_UBL_FINE_TUNE_MESH
#define MSG_UBL_FINE_TUNE_MESH _UxGT("Fine Tuning Mesh")
#endif
#ifndef MSG_UBL_DONE_EDITING_MESH
#define MSG_UBL_DONE_EDITING_MESH _UxGT("Done Editing Mesh")
#endif
#ifndef MSG_UBL_BUILD_CUSTOM_MESH
#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Build Custom Mesh")
#endif
#ifndef MSG_UBL_BUILD_MESH_MENU
#define MSG_UBL_BUILD_MESH_MENU _UxGT("Build Mesh")
#endif
#ifndef MSG_UBL_BUILD_MESH_M1
#define MSG_UBL_BUILD_MESH_M1 _UxGT("Build Mesh (" PREHEAT_1_LABEL ")")
#endif
#ifndef MSG_UBL_BUILD_MESH_M2
#define MSG_UBL_BUILD_MESH_M2 _UxGT("Build Mesh (" PREHEAT_2_LABEL ")")
#endif
#ifndef MSG_UBL_BUILD_COLD_MESH
#define MSG_UBL_BUILD_COLD_MESH _UxGT("Build Cold Mesh")
#endif
#ifndef MSG_UBL_MESH_HEIGHT_ADJUST
#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Adjust Mesh Height")
#endif
#ifndef MSG_UBL_MESH_HEIGHT_AMOUNT
#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Height Amount")
#endif
#ifndef MSG_UBL_VALIDATE_MESH_MENU
#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("Validate Mesh")
#endif
#ifndef MSG_UBL_VALIDATE_MESH_M1
#define MSG_UBL_VALIDATE_MESH_M1 _UxGT("Validate Mesh (" PREHEAT_1_LABEL ")")
#endif
#ifndef MSG_UBL_VALIDATE_MESH_M2
#define MSG_UBL_VALIDATE_MESH_M2 _UxGT("Validate Mesh (" PREHEAT_2_LABEL ")")
#endif
#ifndef MSG_UBL_VALIDATE_CUSTOM_MESH
#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Validate Custom Mesh")
#endif
#ifndef MSG_G26_HEATING_BED
#define MSG_G26_HEATING_BED _UxGT("G26 Heating Bed")
#endif
#ifndef MSG_G26_HEATING_NOZZLE
#define MSG_G26_HEATING_NOZZLE _UxGT("G26 Heating Nozzle")
#endif
#ifndef MSG_G26_MANUAL_PRIME
#define MSG_G26_MANUAL_PRIME _UxGT("Manual priming...")
#endif
#ifndef MSG_G26_FIXED_LENGTH
#define MSG_G26_FIXED_LENGTH _UxGT("Fixed Length Prime")
#endif
#ifndef MSG_G26_PRIME_DONE
#define MSG_G26_PRIME_DONE _UxGT("Done Priming")
#endif
#ifndef MSG_G26_CANCELED
#define MSG_G26_CANCELED _UxGT("G26 Canceled")
#endif
#ifndef MSG_G26_LEAVING
#define MSG_G26_LEAVING _UxGT("Leaving G26")
#endif
#ifndef MSG_UBL_CONTINUE_MESH
#define MSG_UBL_CONTINUE_MESH _UxGT("Continue Bed Mesh")
#endif
#ifndef MSG_UBL_MESH_LEVELING
#define MSG_UBL_MESH_LEVELING _UxGT("Mesh Leveling")
#endif
#ifndef MSG_UBL_3POINT_MESH_LEVELING
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("3-Point Leveling")
#endif
#ifndef MSG_UBL_GRID_MESH_LEVELING
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Grid Mesh Leveling")
#endif
#ifndef MSG_UBL_MESH_LEVEL
#define MSG_UBL_MESH_LEVEL _UxGT("Level Mesh")
#endif
#ifndef MSG_UBL_SIDE_POINTS
#define MSG_UBL_SIDE_POINTS _UxGT("Side Points")
#endif
#ifndef MSG_UBL_MAP_TYPE
#define MSG_UBL_MAP_TYPE _UxGT("Map Type")
#endif
#ifndef MSG_UBL_OUTPUT_MAP
#define MSG_UBL_OUTPUT_MAP _UxGT("Output Mesh Map")
#endif
#ifndef MSG_UBL_OUTPUT_MAP_HOST
#define MSG_UBL_OUTPUT_MAP_HOST _UxGT("Output for Host")
#endif
#ifndef MSG_UBL_OUTPUT_MAP_CSV
#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Output for CSV")
#endif
#ifndef MSG_UBL_OUTPUT_MAP_BACKUP
#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Off Printer Backup")
#endif
#ifndef MSG_UBL_INFO_UBL
#define MSG_UBL_INFO_UBL _UxGT("Output UBL Info")
#endif
#ifndef MSG_UBL_FILLIN_AMOUNT
#define MSG_UBL_FILLIN_AMOUNT _UxGT("Fill-in Amount")
#endif
#ifndef MSG_UBL_MANUAL_FILLIN
#define MSG_UBL_MANUAL_FILLIN _UxGT("Manual Fill-in")
#endif
#ifndef MSG_UBL_SMART_FILLIN
#define MSG_UBL_SMART_FILLIN _UxGT("Smart Fill-in")
#endif
#ifndef MSG_UBL_FILLIN_MESH
#define MSG_UBL_FILLIN_MESH _UxGT("Fill-in Mesh")
#endif
#ifndef MSG_UBL_INVALIDATE_ALL
#define MSG_UBL_INVALIDATE_ALL _UxGT("Invalidate All")
#endif
#ifndef MSG_UBL_INVALIDATE_CLOSEST
#define MSG_UBL_INVALIDATE_CLOSEST _UxGT("Invalidate Closest")
#endif
#ifndef MSG_UBL_FINE_TUNE_ALL
#define MSG_UBL_FINE_TUNE_ALL _UxGT("Fine Tune All")
#endif
#ifndef MSG_UBL_FINE_TUNE_CLOSEST
#define MSG_UBL_FINE_TUNE_CLOSEST _UxGT("Fine Tune Closest")
#endif
#ifndef MSG_UBL_STORAGE_MESH_MENU
#define MSG_UBL_STORAGE_MESH_MENU _UxGT("Mesh Storage")
#endif
#ifndef MSG_UBL_STORAGE_SLOT
#define MSG_UBL_STORAGE_SLOT _UxGT("Memory Slot")
#endif
#ifndef MSG_UBL_LOAD_MESH
#define MSG_UBL_LOAD_MESH _UxGT("Load Bed Mesh")
#endif
#ifndef MSG_UBL_SAVE_MESH
#define MSG_UBL_SAVE_MESH _UxGT("Save Bed Mesh")
#endif
#ifndef MSG_MESH_LOADED
#define MSG_MESH_LOADED _UxGT("Mesh %i Loaded")
#endif
#ifndef MSG_MESH_SAVED
#define MSG_MESH_SAVED _UxGT("Mesh %i Saved")
#endif
#ifndef MSG_UBL_NO_STORAGE
#define MSG_UBL_NO_STORAGE _UxGT("No Storage")
#endif
#ifndef MSG_UBL_SAVE_ERROR
#define MSG_UBL_SAVE_ERROR _UxGT("Err: UBL Save")
#endif
#ifndef MSG_UBL_RESTORE_ERROR
#define MSG_UBL_RESTORE_ERROR _UxGT("Err: UBL Restore")
#endif
#ifndef MSG_UBL_Z_OFFSET
#define MSG_UBL_Z_OFFSET _UxGT("Z-Offset: ")
#endif
#ifndef MSG_UBL_Z_OFFSET_STOPPED
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Z-Offset Stopped")
#endif
#ifndef MSG_UBL_STEP_BY_STEP_MENU
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("Step-By-Step UBL")
#endif
#ifndef MSG_LED_CONTROL PROGMEM Language_Str MSG_MOVING = _UxGT("Moving...");
#define MSG_LED_CONTROL _UxGT("LED Control") PROGMEM Language_Str MSG_FREE_XY = _UxGT("Free XY");
#endif PROGMEM Language_Str MSG_MOVE_X = _UxGT("Move X");
#ifndef MSG_LEDS PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Move Y");
#define MSG_LEDS _UxGT("Lights") PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Move Z");
#endif PROGMEM Language_Str MSG_MOVE_E = _UxGT("Extruder");
#ifndef MSG_LED_PRESETS PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Extruder ") LCD_STR_E0;
#define MSG_LED_PRESETS _UxGT("Light Presets") PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Extruder ") LCD_STR_E1;
#endif PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Extruder ") LCD_STR_E2;
#ifndef MSG_SET_LEDS_RED PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Extruder ") LCD_STR_E3;
#define MSG_SET_LEDS_RED _UxGT("Red") PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Extruder ") LCD_STR_E4;
#endif PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Extruder ") LCD_STR_E5;
#ifndef MSG_SET_LEDS_ORANGE PROGMEM Language_Str MSG_HOTEND_TOO_COLD = _UxGT("Hotend too cold");
#define MSG_SET_LEDS_ORANGE _UxGT("Orange") PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Move %smm");
#endif PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Move 0.1mm");
#ifndef MSG_SET_LEDS_YELLOW PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Move 1mm");
#define MSG_SET_LEDS_YELLOW _UxGT("Yellow") PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Move 10mm");
#endif PROGMEM Language_Str MSG_SPEED = _UxGT("Speed");
#ifndef MSG_SET_LEDS_GREEN PROGMEM Language_Str MSG_BED_Z = _UxGT("Bed Z");
#define MSG_SET_LEDS_GREEN _UxGT("Green") PROGMEM Language_Str MSG_NOZZLE = _UxGT("Nozzle");
#endif PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Nozzle ") LCD_STR_N0;
#ifndef MSG_SET_LEDS_BLUE PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Nozzle ") LCD_STR_N1;
#define MSG_SET_LEDS_BLUE _UxGT("Blue") PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Nozzle ") LCD_STR_N2;
#endif PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Nozzle ") LCD_STR_N3;
#ifndef MSG_SET_LEDS_INDIGO PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Nozzle ") LCD_STR_N4;
#define MSG_SET_LEDS_INDIGO _UxGT("Indigo") PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Nozzle ") LCD_STR_N5;
#endif PROGMEM Language_Str MSG_BED = _UxGT("Bed");
#ifndef MSG_SET_LEDS_VIOLET PROGMEM Language_Str MSG_CHAMBER = _UxGT("Enclosure");
#define MSG_SET_LEDS_VIOLET _UxGT("Violet") PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Fan Speed");
#endif PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Fan Speed 1");
#ifndef MSG_SET_LEDS_WHITE PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Fan Speed 2");
#define MSG_SET_LEDS_WHITE _UxGT("White") PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Fan Speed 3");
#endif PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Extra Fan Speed");
#ifndef MSG_SET_LEDS_DEFAULT PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_1 = _UxGT("Extra Fan Speed 1");
#define MSG_SET_LEDS_DEFAULT _UxGT("Default") PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_2 = _UxGT("Extra Fan Speed 2");
#endif PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_3 = _UxGT("Extra Fan Speed 3");
#ifndef MSG_CUSTOM_LEDS PROGMEM Language_Str MSG_FLOW = _UxGT("Flow");
#define MSG_CUSTOM_LEDS _UxGT("Custom Lights") PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Flow ") LCD_STR_N0;
#endif PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Flow ") LCD_STR_N1;
#ifndef MSG_INTENSITY_R PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Flow ") LCD_STR_N2;
#define MSG_INTENSITY_R _UxGT("Red Intensity") PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Flow ") LCD_STR_N3;
#endif PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Flow ") LCD_STR_N4;
#ifndef MSG_INTENSITY_G PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Flow ") LCD_STR_N5;
#define MSG_INTENSITY_G _UxGT("Green Intensity") PROGMEM Language_Str MSG_CONTROL = _UxGT("Control");
#endif PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" Min");
#ifndef MSG_INTENSITY_B PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" Max");
#define MSG_INTENSITY_B _UxGT("Blue Intensity") PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Fact");
#endif PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Autotemp");
#ifndef MSG_INTENSITY_W PROGMEM Language_Str MSG_LCD_ON = _UxGT("On");
#define MSG_INTENSITY_W _UxGT("White Intensity") PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Off");
#endif PROGMEM Language_Str MSG_AUTOTUNE_PID = _UxGT("PID Autotune");
#ifndef MSG_LED_BRIGHTNESS PROGMEM Language_Str MSG_AUTOTUNE_PID_E0 = _UxGT("PID Autotune ") LCD_STR_E0;
#define MSG_LED_BRIGHTNESS _UxGT("Brightness") PROGMEM Language_Str MSG_AUTOTUNE_PID_E1 = _UxGT("PID Autotune ") LCD_STR_E1;
#endif PROGMEM Language_Str MSG_AUTOTUNE_PID_E2 = _UxGT("PID Autotune ") LCD_STR_E2;
PROGMEM Language_Str MSG_AUTOTUNE_PID_E3 = _UxGT("PID Autotune ") LCD_STR_E3;
PROGMEM Language_Str MSG_AUTOTUNE_PID_E4 = _UxGT("PID Autotune ") LCD_STR_E4;
PROGMEM Language_Str MSG_AUTOTUNE_PID_E5 = _UxGT("PID Autotune ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_P = _UxGT("PID-P");
PROGMEM Language_Str MSG_PID_P_E0 = _UxGT("PID-P ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_P_E1 = _UxGT("PID-P ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_P_E2 = _UxGT("PID-P ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_P_E3 = _UxGT("PID-P ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_P_E4 = _UxGT("PID-P ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_P_E5 = _UxGT("PID-P ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_I = _UxGT("PID-I");
PROGMEM Language_Str MSG_PID_I_E0 = _UxGT("PID-I ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_I_E1 = _UxGT("PID-I ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_I_E2 = _UxGT("PID-I ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_I_E3 = _UxGT("PID-I ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_I_E4 = _UxGT("PID-I ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_I_E5 = _UxGT("PID-I ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_D = _UxGT("PID-D");
PROGMEM Language_Str MSG_PID_D_E0 = _UxGT("PID-D ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_D_E1 = _UxGT("PID-D ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_D_E2 = _UxGT("PID-D ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_D_E3 = _UxGT("PID-D ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_D_E4 = _UxGT("PID-D ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_D_E5 = _UxGT("PID-D ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_C = _UxGT("PID-C");
PROGMEM Language_Str MSG_PID_C_E0 = _UxGT("PID-C ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_C_E1 = _UxGT("PID-C ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_C_E2 = _UxGT("PID-C ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_C_E3 = _UxGT("PID-C ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_C_E4 = _UxGT("PID-C ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_C_E5 = _UxGT("PID-C ") LCD_STR_E5;
PROGMEM Language_Str MSG_SELECT = _UxGT("Select");
PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("Select ") LCD_STR_E0;
PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("Select ") LCD_STR_E1;
PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("Select ") LCD_STR_E2;
PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("Select ") LCD_STR_E3;
PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("Select ") LCD_STR_E4;
PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("Select ") LCD_STR_E5;
PROGMEM Language_Str MSG_ACC = _UxGT("Accel");
PROGMEM Language_Str MSG_JERK = _UxGT("Jerk");
PROGMEM Language_Str MSG_VA_JERK = _UxGT("V") LCD_STR_A _UxGT("-Jerk");
PROGMEM Language_Str MSG_VB_JERK = _UxGT("V") LCD_STR_B _UxGT("-Jerk");
PROGMEM Language_Str MSG_VC_JERK = _UxGT("V") LCD_STR_C _UxGT("-Jerk");
PROGMEM Language_Str MSG_VE_JERK = _UxGT("Ve-Jerk");
PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Junction Dev");
PROGMEM Language_Str MSG_VELOCITY = _UxGT("Velocity");
PROGMEM Language_Str MSG_VMAX_A = _UxGT("Vmax ") LCD_STR_A;
PROGMEM Language_Str MSG_VMAX_B = _UxGT("Vmax ") LCD_STR_B;
PROGMEM Language_Str MSG_VMAX_C = _UxGT("Vmax ") LCD_STR_C;
PROGMEM Language_Str MSG_VMAX_E = _UxGT("Vmax ") LCD_STR_E;
PROGMEM Language_Str MSG_VMAX_E0 = _UxGT("Vmax ") LCD_STR_E0;
PROGMEM Language_Str MSG_VMAX_E1 = _UxGT("Vmax ") LCD_STR_E1;
PROGMEM Language_Str MSG_VMAX_E2 = _UxGT("Vmax ") LCD_STR_E2;
PROGMEM Language_Str MSG_VMAX_E3 = _UxGT("Vmax ") LCD_STR_E3;
PROGMEM Language_Str MSG_VMAX_E4 = _UxGT("Vmax ") LCD_STR_E4;
PROGMEM Language_Str MSG_VMAX_E5 = _UxGT("Vmax ") LCD_STR_E5;
PROGMEM Language_Str MSG_VMIN = _UxGT("Vmin");
PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("VTrav Min");
PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Acceleration");
PROGMEM Language_Str MSG_AMAX_A = _UxGT("Amax ") LCD_STR_A;
PROGMEM Language_Str MSG_AMAX_B = _UxGT("Amax ") LCD_STR_B;
PROGMEM Language_Str MSG_AMAX_C = _UxGT("Amax ") LCD_STR_C;
PROGMEM Language_Str MSG_AMAX_E = _UxGT("Amax ") LCD_STR_E;
PROGMEM Language_Str MSG_AMAX_E0 = _UxGT("Amax ") LCD_STR_E0;
PROGMEM Language_Str MSG_AMAX_E1 = _UxGT("Amax ") LCD_STR_E1;
PROGMEM Language_Str MSG_AMAX_E2 = _UxGT("Amax ") LCD_STR_E2;
PROGMEM Language_Str MSG_AMAX_E3 = _UxGT("Amax ") LCD_STR_E3;
PROGMEM Language_Str MSG_AMAX_E4 = _UxGT("Amax ") LCD_STR_E4;
PROGMEM Language_Str MSG_AMAX_E5 = _UxGT("Amax ") LCD_STR_E5;
PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-Retract");
PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A-Travel");
PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Steps/mm");
PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("steps/mm");
PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("steps/mm");
PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("steps/mm");
PROGMEM Language_Str MSG_E_STEPS = _UxGT("Esteps/mm");
PROGMEM Language_Str MSG_E0_STEPS = LCD_STR_E0 _UxGT("steps/mm");
PROGMEM Language_Str MSG_E1_STEPS = LCD_STR_E1 _UxGT("steps/mm");
PROGMEM Language_Str MSG_E2_STEPS = LCD_STR_E2 _UxGT("steps/mm");
PROGMEM Language_Str MSG_E3_STEPS = LCD_STR_E3 _UxGT("steps/mm");
PROGMEM Language_Str MSG_E4_STEPS = LCD_STR_E4 _UxGT("steps/mm");
PROGMEM Language_Str MSG_E5_STEPS = LCD_STR_E5 _UxGT("steps/mm");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperature");
PROGMEM Language_Str MSG_MOTION = _UxGT("Motion");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filament");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E in mm³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Fil. Dia.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Fil. Dia. ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Fil. Dia. ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Fil. Dia. ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Fil. Dia. ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Fil. Dia. ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Fil. Dia. ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("Unload mm");
PROGMEM Language_Str MSG_FILAMENT_LOAD = _UxGT("Load mm");
PROGMEM Language_Str MSG_ADVANCE_K = _UxGT("Advance K");
PROGMEM Language_Str MSG_ADVANCE_K_E0 = _UxGT("Advance K ") LCD_STR_E0;
PROGMEM Language_Str MSG_ADVANCE_K_E1 = _UxGT("Advance K ") LCD_STR_E1;
PROGMEM Language_Str MSG_ADVANCE_K_E2 = _UxGT("Advance K ") LCD_STR_E2;
PROGMEM Language_Str MSG_ADVANCE_K_E3 = _UxGT("Advance K ") LCD_STR_E3;
PROGMEM Language_Str MSG_ADVANCE_K_E4 = _UxGT("Advance K ") LCD_STR_E4;
PROGMEM Language_Str MSG_ADVANCE_K_E5 = _UxGT("Advance K ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("LCD Contrast");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Store Settings");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Load Settings");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Restore failsafe");
PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("Initialize EEPROM");
PROGMEM Language_Str MSG_MEDIA_UPDATE = _UxGT("Media Update");
PROGMEM Language_Str MSG_RESET_PRINTER = _UxGT("Reset Printer");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Refresh");
PROGMEM Language_Str MSG_WATCH = _UxGT("Info Screen");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Prepare");
PROGMEM Language_Str MSG_TUNE = _UxGT("Tune");
PROGMEM Language_Str MSG_START_PRINT = _UxGT("Start Print");
PROGMEM Language_Str MSG_BUTTON_NEXT = _UxGT("Next");
PROGMEM Language_Str MSG_BUTTON_INIT = _UxGT("Init");
PROGMEM Language_Str MSG_BUTTON_STOP = _UxGT("Stop");
PROGMEM Language_Str MSG_BUTTON_PRINT = _UxGT("Print");
PROGMEM Language_Str MSG_BUTTON_RESET = _UxGT("Reset");
PROGMEM Language_Str MSG_BUTTON_CANCEL = _UxGT("Cancel");
PROGMEM Language_Str MSG_BUTTON_DONE = _UxGT("Done");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Pause Print");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Resume Print");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Stop Print");
PROGMEM Language_Str MSG_OUTAGE_RECOVERY = _UxGT("Outage Recovery");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Print from Media");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("No Media");
PROGMEM Language_Str MSG_DWELL = _UxGT("Sleep...");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Click to Resume...");
PROGMEM Language_Str MSG_PRINT_PAUSED = _UxGT("Print Paused");
PROGMEM Language_Str MSG_PRINTING = _UxGT("Printing...");
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Print Aborted");
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("No Move.");
PROGMEM Language_Str MSG_KILLED = _UxGT("KILLED. ");
PROGMEM Language_Str MSG_STOPPED = _UxGT("STOPPED. ");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Retract mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Swap Re.mm");
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Retract V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Hop mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("S UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("UnRet V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAPF = _UxGT("S UnRet V");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("AutoRetr.");
PROGMEM Language_Str MSG_FILAMENT_SWAP_LENGTH = _UxGT("Swap Length");
PROGMEM Language_Str MSG_FILAMENT_PURGE_LENGTH = _UxGT("Purge Length");
PROGMEM Language_Str MSG_TOOL_CHANGE = _UxGT("Tool Change");
PROGMEM Language_Str MSG_TOOL_CHANGE_ZLIFT = _UxGT("Z Raise");
PROGMEM Language_Str MSG_SINGLENOZZLE_PRIME_SPD = _UxGT("Prime Speed");
PROGMEM Language_Str MSG_SINGLENOZZLE_RETRACT_SPD = _UxGT("Retract Speed");
PROGMEM Language_Str MSG_NOZZLE_STANDBY = _UxGT("Nozzle Standby");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Change Filament");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Change Filament ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Change Filament ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Change Filament ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Change Filament ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Change Filament ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Change Filament ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTLOAD = _UxGT("Load Filament");
PROGMEM Language_Str MSG_FILAMENTLOAD_E0 = _UxGT("Load Filament ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTLOAD_E1 = _UxGT("Load Filament ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTLOAD_E2 = _UxGT("Load Filament ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTLOAD_E3 = _UxGT("Load Filament ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTLOAD_E4 = _UxGT("Load Filament ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTLOAD_E5 = _UxGT("Load Filament ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTUNLOAD = _UxGT("Unload Filament");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E0 = _UxGT("Unload Filament ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E1 = _UxGT("Unload Filament ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E2 = _UxGT("Unload Filament ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E3 = _UxGT("Unload Filament ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E4 = _UxGT("Unload Filament ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E5 = _UxGT("Unload Filament ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Unload All");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Init. Media");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Change Media");
PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("Release Media");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z Probe Past Bed");
PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("Skew Factor");
PROGMEM Language_Str MSG_BLTOUCH = _UxGT("BLTouch");
PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("Cmd: Self-Test");
PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("Cmd: Reset");
PROGMEM Language_Str MSG_BLTOUCH_STOW = _UxGT("Cmd: Stow");
PROGMEM Language_Str MSG_BLTOUCH_DEPLOY = _UxGT("Cmd: Deploy");
PROGMEM Language_Str MSG_BLTOUCH_SW_MODE = _UxGT("Cmd: SW-Mode");
PROGMEM Language_Str MSG_BLTOUCH_5V_MODE = _UxGT("Cmd: 5V-Mode");
PROGMEM Language_Str MSG_BLTOUCH_OD_MODE = _UxGT("Cmd: OD-Mode");
PROGMEM Language_Str MSG_BLTOUCH_MODE_STORE = _UxGT("Cmd: Mode-Store");
PROGMEM Language_Str MSG_BLTOUCH_MODE_STORE_5V = _UxGT("Set BLTouch to 5V");
PROGMEM Language_Str MSG_BLTOUCH_MODE_STORE_OD = _UxGT("Set BLTouch to OD");
PROGMEM Language_Str MSG_BLTOUCH_MODE_ECHO = _UxGT("Report Drain");
PROGMEM Language_Str MSG_BLTOUCH_MODE_CHANGE = _UxGT("DANGER: Bad settings can cause damage! Proceed anyway?");
PROGMEM Language_Str MSG_TOUCHMI_PROBE = _UxGT("TouchMI");
PROGMEM Language_Str MSG_TOUCHMI_INIT = _UxGT("Init TouchMI");
PROGMEM Language_Str MSG_TOUCHMI_ZTEST = _UxGT("Z Offset Test");
PROGMEM Language_Str MSG_TOUCHMI_SAVE = _UxGT("Save");
PROGMEM Language_Str MSG_MANUAL_DEPLOY_TOUCHMI = _UxGT("Deploy TouchMI");
PROGMEM Language_Str MSG_MANUAL_DEPLOY = _UxGT("Deploy Z-Probe");
PROGMEM Language_Str MSG_MANUAL_STOW = _UxGT("Stow Z-Probe");
PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("Home %s%s%s First");
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Probe Z Offset");
PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Babystep X");
PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Babystep Y");
PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Babystep Z");
PROGMEM Language_Str MSG_BABYSTEP_TOTAL = _UxGT("Total");
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Endstop Abort");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Heating Failed");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD_BED = _UxGT("Bed Heating Failed");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD_CHAMBER = _UxGT("Chamber Heating Fail");
PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("Err: REDUNDANT TEMP");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("THERMAL RUNAWAY");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY_BED = _UxGT("BED THERMAL RUNAWAY");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY_CHAMBER = _UxGT("CHAMBER T. RUNAWAY");
PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("Err: MAXTEMP");
PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("Err: MINTEMP");
PROGMEM Language_Str MSG_ERR_MAXTEMP_BED = _UxGT("Err: MAXTEMP BED");
PROGMEM Language_Str MSG_ERR_MINTEMP_BED = _UxGT("Err: MINTEMP BED");
PROGMEM Language_Str MSG_ERR_MAXTEMP_CHAMBER = _UxGT("Err: MAXTEMP CHAMBER");
PROGMEM Language_Str MSG_ERR_MINTEMP_CHAMBER = _UxGT("Err: MINTEMP CHAMBER");
PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("Home XY First");
PROGMEM Language_Str MSG_HALTED = _UxGT("PRINTER HALTED");
PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Please Reset");
PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("d"); // One character only
PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("h"); // One character only
PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("m"); // One character only
PROGMEM Language_Str MSG_HEATING = _UxGT("Heating...");
PROGMEM Language_Str MSG_COOLING = _UxGT("Cooling...");
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Bed Heating...");
PROGMEM Language_Str MSG_BED_COOLING = _UxGT("Bed Cooling...");
PROGMEM Language_Str MSG_CHAMBER_HEATING = _UxGT("Chamber Heating...");
PROGMEM Language_Str MSG_CHAMBER_COOLING = _UxGT("Chamber Cooling...");
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Delta Calibration");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Calibrate X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Calibrate Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Calibrate Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Calibrate Center");
PROGMEM Language_Str MSG_DELTA_SETTINGS = _UxGT("Delta Settings");
PROGMEM Language_Str MSG_DELTA_AUTO_CALIBRATE = _UxGT("Auto Calibration");
PROGMEM Language_Str MSG_DELTA_HEIGHT_CALIBRATE = _UxGT("Set Delta Height");
PROGMEM Language_Str MSG_DELTA_Z_OFFSET_CALIBRATE = _UxGT("Probe Z-offset");
PROGMEM Language_Str MSG_DELTA_DIAG_ROD = _UxGT("Diag Rod");
PROGMEM Language_Str MSG_DELTA_HEIGHT = _UxGT("Height");
PROGMEM Language_Str MSG_DELTA_RADIUS = _UxGT("Radius");
PROGMEM Language_Str MSG_INFO_MENU = _UxGT("About Printer");
PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Printer Info");
PROGMEM Language_Str MSG_3POINT_LEVELING = _UxGT("3-Point Leveling");
PROGMEM Language_Str MSG_LINEAR_LEVELING = _UxGT("Linear Leveling");
PROGMEM Language_Str MSG_BILINEAR_LEVELING = _UxGT("Bilinear Leveling");
PROGMEM Language_Str MSG_UBL_LEVELING = _UxGT("Unified Bed Leveling");
PROGMEM Language_Str MSG_MESH_LEVELING = _UxGT("Mesh Leveling");
PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Printer Stats");
PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Board Info");
PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Thermistors");
PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Extruders");
PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("Baud");
PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Protocol");
PROGMEM Language_Str MSG_INFO_RUNAWAY_OFF = _UxGT("Runaway Watch: OFF");
PROGMEM Language_Str MSG_INFO_RUNAWAY_ON = _UxGT("Runaway Watch: ON");
#ifndef MSG_MOVING PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Case Light");
#define MSG_MOVING _UxGT("Moving...") PROGMEM Language_Str MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Light Brightness");
#endif PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("INCORRECT PRINTER");
#ifndef MSG_FREE_XY
#define MSG_FREE_XY _UxGT("Free XY")
#endif
#ifndef MSG_MOVE_X
#define MSG_MOVE_X _UxGT("Move X")
#endif
#ifndef MSG_MOVE_Y
#define MSG_MOVE_Y _UxGT("Move Y")
#endif
#ifndef MSG_MOVE_Z
#define MSG_MOVE_Z _UxGT("Move Z")
#endif
#ifndef MSG_MOVE_E
#define MSG_MOVE_E _UxGT("Extruder")
#endif
#ifndef MSG_HOTEND_TOO_COLD
#define MSG_HOTEND_TOO_COLD _UxGT("Hotend too cold")
#endif
#ifndef MSG_MOVE_Z_DIST
#define MSG_MOVE_Z_DIST _UxGT("Move %smm")
#endif
#ifndef MSG_MOVE_01MM
#define MSG_MOVE_01MM _UxGT("Move 0.1mm")
#endif
#ifndef MSG_MOVE_1MM
#define MSG_MOVE_1MM _UxGT("Move 1mm")
#endif
#ifndef MSG_MOVE_10MM
#define MSG_MOVE_10MM _UxGT("Move 10mm")
#endif
#ifndef MSG_SPEED
#define MSG_SPEED _UxGT("Speed")
#endif
#ifndef MSG_BED_Z
#define MSG_BED_Z _UxGT("Bed Z")
#endif
#ifndef MSG_NOZZLE
#define MSG_NOZZLE _UxGT("Nozzle")
#endif
#ifndef MSG_BED
#define MSG_BED _UxGT("Bed")
#endif
#ifndef MSG_CHAMBER
#define MSG_CHAMBER _UxGT("Enclosure")
#endif
#ifndef MSG_FAN_SPEED
#define MSG_FAN_SPEED _UxGT("Fan Speed")
#endif
#ifndef MSG_EXTRA_FAN_SPEED
#define MSG_EXTRA_FAN_SPEED _UxGT("Extra Fan Speed")
#endif
#ifndef MSG_FLOW
#define MSG_FLOW _UxGT("Flow")
#endif
#ifndef MSG_CONTROL
#define MSG_CONTROL _UxGT("Control")
#endif
#ifndef MSG_MIN
#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Min")
#endif
#ifndef MSG_MAX
#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Max")
#endif
#ifndef MSG_FACTOR
#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Fact")
#endif
#ifndef MSG_AUTOTEMP
#define MSG_AUTOTEMP _UxGT("Autotemp")
#endif
#ifndef MSG_LCD_ON
#define MSG_LCD_ON _UxGT("On")
#endif
#ifndef MSG_LCD_OFF
#define MSG_LCD_OFF _UxGT("Off")
#endif
#ifndef MSG_PID_P
#define MSG_PID_P _UxGT("PID-P")
#endif
#ifndef MSG_PID_I
#define MSG_PID_I _UxGT("PID-I")
#endif
#ifndef MSG_PID_D
#define MSG_PID_D _UxGT("PID-D")
#endif
#ifndef MSG_PID_C
#define MSG_PID_C _UxGT("PID-C")
#endif
#ifndef MSG_SELECT
#define MSG_SELECT _UxGT("Select")
#endif
#ifndef MSG_ACC
#define MSG_ACC _UxGT("Accel")
#endif
#ifndef MSG_JERK
#define MSG_JERK _UxGT("Jerk")
#endif
#if IS_KINEMATIC
#ifndef MSG_VA_JERK
#define MSG_VA_JERK _UxGT("Va-Jerk")
#endif
#ifndef MSG_VB_JERK
#define MSG_VB_JERK _UxGT("Vb-Jerk")
#endif
#ifndef MSG_VC_JERK
#define MSG_VC_JERK _UxGT("Vc-Jerk")
#endif
#else
#ifndef MSG_VA_JERK
#define MSG_VA_JERK _UxGT("Vx-Jerk")
#endif
#ifndef MSG_VB_JERK
#define MSG_VB_JERK _UxGT("Vy-Jerk")
#endif
#ifndef MSG_VC_JERK
#define MSG_VC_JERK _UxGT("Vz-Jerk")
#endif
#endif
#ifndef MSG_VE_JERK
#define MSG_VE_JERK _UxGT("Ve-Jerk")
#endif
#ifndef MSG_JUNCTION_DEVIATION
#define MSG_JUNCTION_DEVIATION _UxGT("Junction Dev")
#endif
#ifndef MSG_VELOCITY
#define MSG_VELOCITY _UxGT("Velocity")
#endif
#ifndef MSG_VMAX
#define MSG_VMAX _UxGT("Vmax ")
#endif
#ifndef MSG_VMIN
#define MSG_VMIN _UxGT("Vmin")
#endif
#ifndef MSG_VTRAV_MIN
#define MSG_VTRAV_MIN _UxGT("VTrav Min")
#endif
#ifndef MSG_ACCELERATION
#define MSG_ACCELERATION _UxGT("Acceleration")
#endif
#ifndef MSG_AMAX
#define MSG_AMAX _UxGT("Amax ")
#endif
#ifndef MSG_A_RETRACT
#define MSG_A_RETRACT _UxGT("A-Retract")
#endif
#ifndef MSG_A_TRAVEL
#define MSG_A_TRAVEL _UxGT("A-Travel")
#endif
#ifndef MSG_STEPS_PER_MM
#define MSG_STEPS_PER_MM _UxGT("Steps/mm")
#endif
#if IS_KINEMATIC
#ifndef MSG_ASTEPS
#define MSG_ASTEPS _UxGT("Asteps/mm")
#endif
#ifndef MSG_BSTEPS
#define MSG_BSTEPS _UxGT("Bsteps/mm")
#endif
#ifndef MSG_CSTEPS
#define MSG_CSTEPS _UxGT("Csteps/mm")
#endif
#else
#ifndef MSG_ASTEPS
#define MSG_ASTEPS _UxGT("Xsteps/mm")
#endif
#ifndef MSG_BSTEPS
#define MSG_BSTEPS _UxGT("Ysteps/mm")
#endif
#ifndef MSG_CSTEPS
#define MSG_CSTEPS _UxGT("Zsteps/mm")
#endif
#endif
#ifndef MSG_ESTEPS
#define MSG_ESTEPS _UxGT("Esteps/mm")
#endif
#ifndef MSG_E0_STEPS
#define MSG_E0_STEPS _UxGT("E1steps/mm")
#endif
#ifndef MSG_E1_STEPS
#define MSG_E1_STEPS _UxGT("E2steps/mm")
#endif
#ifndef MSG_E2_STEPS
#define MSG_E2_STEPS _UxGT("E3steps/mm")
#endif
#ifndef MSG_E3_STEPS
#define MSG_E3_STEPS _UxGT("E4steps/mm")
#endif
#ifndef MSG_E4_STEPS
#define MSG_E4_STEPS _UxGT("E5steps/mm")
#endif
#ifndef MSG_E5_STEPS
#define MSG_E5_STEPS _UxGT("E6steps/mm")
#endif
#ifndef MSG_TEMPERATURE
#define MSG_TEMPERATURE _UxGT("Temperature")
#endif
#ifndef MSG_MOTION
#define MSG_MOTION _UxGT("Motion")
#endif
#ifndef MSG_FILAMENT
#define MSG_FILAMENT _UxGT("Filament")
#endif
#ifndef MSG_VOLUMETRIC_ENABLED
#define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm") MSG_CUBED
#endif
#ifndef MSG_FILAMENT_DIAM
#define MSG_FILAMENT_DIAM _UxGT("Fil. Dia.")
#endif
#ifndef MSG_FILAMENT_UNLOAD
#define MSG_FILAMENT_UNLOAD _UxGT("Unload mm")
#endif
#ifndef MSG_FILAMENT_LOAD
#define MSG_FILAMENT_LOAD _UxGT("Load mm")
#endif
#ifndef MSG_ADVANCE_K
#define MSG_ADVANCE_K _UxGT("Advance K")
#endif
#ifndef MSG_CONTRAST
#define MSG_CONTRAST _UxGT("LCD Contrast")
#endif
#ifndef MSG_STORE_EEPROM
#define MSG_STORE_EEPROM _UxGT("Store Settings")
#endif
#ifndef MSG_LOAD_EEPROM
#define MSG_LOAD_EEPROM _UxGT("Load Settings")
#endif
#ifndef MSG_RESTORE_FAILSAFE
#define MSG_RESTORE_FAILSAFE _UxGT("Restore failsafe")
#endif
#ifndef MSG_INIT_EEPROM
#define MSG_INIT_EEPROM _UxGT("Initialize EEPROM")
#endif
#ifndef MSG_MEDIA_UPDATE
#define MSG_MEDIA_UPDATE _UxGT("Media Update")
#endif
#ifndef MSG_RESET_PRINTER
#define MSG_RESET_PRINTER _UxGT("Reset Printer")
#endif
#ifndef MSG_REFRESH
#define MSG_REFRESH _UxGT("Refresh")
#endif
#ifndef MSG_WATCH
#define MSG_WATCH _UxGT("Info Screen")
#endif
#ifndef MSG_PREPARE
#define MSG_PREPARE _UxGT("Prepare")
#endif
#ifndef MSG_TUNE
#define MSG_TUNE _UxGT("Tune")
#endif
#ifndef MSG_START_PRINT
#define MSG_START_PRINT _UxGT("Start Print")
#endif
#ifndef MSG_BUTTON_NEXT
#define MSG_BUTTON_NEXT _UxGT("Next")
#endif
#ifndef MSG_BUTTON_INIT
#define MSG_BUTTON_INIT _UxGT("Init")
#endif
#ifndef MSG_BUTTON_STOP
#define MSG_BUTTON_STOP _UxGT("Stop")
#endif
#ifndef MSG_BUTTON_PRINT
#define MSG_BUTTON_PRINT _UxGT("Print")
#endif
#ifndef MSG_BUTTON_RESET
#define MSG_BUTTON_RESET _UxGT("Reset")
#endif
#ifndef MSG_BUTTON_CANCEL
#define MSG_BUTTON_CANCEL _UxGT("Cancel")
#endif
#ifndef MSG_BUTTON_DONE
#define MSG_BUTTON_DONE _UxGT("Done")
#endif
#ifndef MSG_PAUSE_PRINT
#define MSG_PAUSE_PRINT _UxGT("Pause Print")
#endif
#ifndef MSG_RESUME_PRINT
#define MSG_RESUME_PRINT _UxGT("Resume Print")
#endif
#ifndef MSG_STOP_PRINT
#define MSG_STOP_PRINT _UxGT("Stop Print")
#endif
#ifndef MSG_OUTAGE_RECOVERY
#define MSG_OUTAGE_RECOVERY _UxGT("Outage Recovery")
#endif
#ifndef MSG_MEDIA_MENU
#define MSG_MEDIA_MENU _UxGT("Print from Media")
#endif
#ifndef MSG_NO_MEDIA
#define MSG_NO_MEDIA _UxGT("No Media")
#endif
#ifndef MSG_DWELL
#define MSG_DWELL _UxGT("Sleep...")
#endif
#ifndef MSG_USERWAIT
#define MSG_USERWAIT _UxGT("Click to Resume...")
#endif
#ifndef MSG_PRINT_PAUSED
#define MSG_PRINT_PAUSED _UxGT("Print Paused")
#endif
#ifndef MSG_PRINTING
#define MSG_PRINTING _UxGT("Printing...")
#endif
#ifndef MSG_PRINT_ABORTED
#define MSG_PRINT_ABORTED _UxGT("Print Aborted")
#endif
#ifndef MSG_NO_MOVE
#define MSG_NO_MOVE _UxGT("No Move.")
#endif
#ifndef MSG_KILLED
#define MSG_KILLED _UxGT("KILLED. ")
#endif
#ifndef MSG_STOPPED
#define MSG_STOPPED _UxGT("STOPPED. ")
#endif
#ifndef MSG_CONTROL_RETRACT
#define MSG_CONTROL_RETRACT _UxGT("Retract mm")
#endif
#ifndef MSG_CONTROL_RETRACT_SWAP
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Swap Re.mm")
#endif
#ifndef MSG_CONTROL_RETRACTF
#define MSG_CONTROL_RETRACTF _UxGT("Retract V")
#endif
#ifndef MSG_CONTROL_RETRACT_ZHOP
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Hop mm")
#endif
#ifndef MSG_CONTROL_RETRACT_RECOVER
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("UnRet mm")
#endif
#ifndef MSG_CONTROL_RETRACT_RECOVER_SWAP
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("S UnRet mm")
#endif
#ifndef MSG_CONTROL_RETRACT_RECOVERF
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("UnRet V")
#endif
#ifndef MSG_CONTROL_RETRACT_RECOVER_SWAPF
#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V")
#endif
#ifndef MSG_AUTORETRACT
#define MSG_AUTORETRACT _UxGT("AutoRetr.")
#endif
#ifndef MSG_FILAMENT_SWAP_LENGTH
#define MSG_FILAMENT_SWAP_LENGTH _UxGT("Swap Length")
#endif
#ifndef MSG_FILAMENT_PURGE_LENGTH
#define MSG_FILAMENT_PURGE_LENGTH _UxGT("Purge Length")
#endif
#ifndef MSG_TOOL_CHANGE
#define MSG_TOOL_CHANGE _UxGT("Tool Change")
#endif
#ifndef MSG_TOOL_CHANGE_ZLIFT
#define MSG_TOOL_CHANGE_ZLIFT _UxGT("Z Raise")
#endif
#ifndef MSG_SINGLENOZZLE_PRIME_SPD
#define MSG_SINGLENOZZLE_PRIME_SPD _UxGT("Prime Speed")
#endif
#ifndef MSG_SINGLENOZZLE_RETRACT_SPD
#define MSG_SINGLENOZZLE_RETRACT_SPD _UxGT("Retract Speed")
#endif
#ifndef MSG_NOZZLE_STANDBY
#define MSG_NOZZLE_STANDBY _UxGT("Nozzle Standby")
#endif
#ifndef MSG_FILAMENTCHANGE
#define MSG_FILAMENTCHANGE _UxGT("Change Filament")
#endif
#ifndef MSG_FILAMENTLOAD
#define MSG_FILAMENTLOAD _UxGT("Load Filament")
#endif
#ifndef MSG_FILAMENTUNLOAD
#define MSG_FILAMENTUNLOAD _UxGT("Unload Filament")
#endif
#ifndef MSG_FILAMENTUNLOAD_ALL
#define MSG_FILAMENTUNLOAD_ALL _UxGT("Unload All")
#endif
#ifndef MSG_INIT_MEDIA
#define MSG_INIT_MEDIA _UxGT("Init. Media")
#endif
#ifndef MSG_CHANGE_MEDIA
#define MSG_CHANGE_MEDIA _UxGT("Change Media")
#endif
#ifndef MSG_RELEASE_MEDIA
#define MSG_RELEASE_MEDIA _UxGT("Release Media")
#endif
#ifndef MSG_ZPROBE_OUT
#define MSG_ZPROBE_OUT _UxGT("Z Probe Past Bed")
#endif
#ifndef MSG_SKEW_FACTOR
#define MSG_SKEW_FACTOR _UxGT("Skew Factor")
#endif
#ifndef MSG_BLTOUCH
#define MSG_BLTOUCH _UxGT("BLTouch")
#endif
#ifndef MSG_BLTOUCH_SELFTEST
#define MSG_BLTOUCH_SELFTEST _UxGT("Cmd: Self-Test")
#endif
#ifndef MSG_BLTOUCH_RESET
#define MSG_BLTOUCH_RESET _UxGT("Cmd: Reset")
#endif
#ifndef MSG_BLTOUCH_STOW
#define MSG_BLTOUCH_STOW _UxGT("Cmd: Stow")
#endif
#ifndef MSG_BLTOUCH_DEPLOY
#define MSG_BLTOUCH_DEPLOY _UxGT("Cmd: Deploy")
#endif
#ifndef MSG_BLTOUCH_SW_MODE
#define MSG_BLTOUCH_SW_MODE _UxGT("Cmd: SW-Mode")
#endif
#ifndef MSG_BLTOUCH_5V_MODE
#define MSG_BLTOUCH_5V_MODE _UxGT("Cmd: 5V-Mode")
#endif
#ifndef MSG_BLTOUCH_OD_MODE
#define MSG_BLTOUCH_OD_MODE _UxGT("Cmd: OD-Mode")
#endif
#ifndef MSG_BLTOUCH_MODE_STORE
#define MSG_BLTOUCH_MODE_STORE _UxGT("Cmd: Mode-Store")
#endif
#ifndef MSG_BLTOUCH_MODE_STORE_5V
#define MSG_BLTOUCH_MODE_STORE_5V _UxGT("Set BLTouch to 5V")
#endif
#ifndef MSG_BLTOUCH_MODE_STORE_OD
#define MSG_BLTOUCH_MODE_STORE_OD _UxGT("Set BLTouch to OD")
#endif
#ifndef MSG_BLTOUCH_MODE_ECHO
#define MSG_BLTOUCH_MODE_ECHO _UxGT("Report Drain")
#endif
#ifndef MSG_BLTOUCH_MODE_CHANGE
#define MSG_BLTOUCH_MODE_CHANGE _UxGT("DANGER: Bad settings can cause damage! Proceed anyway?")
#endif
#ifndef MSG_TOUCHMI_PROBE
#define MSG_TOUCHMI_PROBE _UxGT("TouchMI")
#endif
#ifndef MSG_TOUCHMI_INIT
#define MSG_TOUCHMI_INIT _UxGT("Init TouchMI")
#endif
#ifndef MSG_TOUCHMI_ZTEST
#define MSG_TOUCHMI_ZTEST _UxGT("Z Offset Test")
#endif
#ifndef MSG_TOUCHMI_SAVE
#define MSG_TOUCHMI_SAVE _UxGT("Save")
#endif
#ifndef MSG_MANUAL_DEPLOY_TOUCHMI
#define MSG_MANUAL_DEPLOY_TOUCHMI _UxGT("Deploy TouchMI")
#endif
#ifndef MSG_MANUAL_DEPLOY
#define MSG_MANUAL_DEPLOY _UxGT("Deploy Z-Probe")
#endif
#ifndef MSG_MANUAL_STOW
#define MSG_MANUAL_STOW _UxGT("Stow Z-Probe")
#endif
#ifndef MSG_HOME_FIRST
#define MSG_HOME_FIRST _UxGT("Home %s%s%s First")
#endif
#ifndef MSG_ZPROBE_ZOFFSET
#define MSG_ZPROBE_ZOFFSET _UxGT("Probe Z Offset")
#endif
#ifndef MSG_BABYSTEP_X
#define MSG_BABYSTEP_X _UxGT("Babystep X")
#endif
#ifndef MSG_BABYSTEP_Y
#define MSG_BABYSTEP_Y _UxGT("Babystep Y")
#endif
#ifndef MSG_BABYSTEP_Z
#define MSG_BABYSTEP_Z _UxGT("Babystep Z")
#endif
#ifndef MSG_BABYSTEP_TOTAL
#define MSG_BABYSTEP_TOTAL _UxGT("Total")
#endif
#ifndef MSG_ENDSTOP_ABORT
#define MSG_ENDSTOP_ABORT _UxGT("Endstop Abort")
#endif
#ifndef MSG_HEATING_FAILED_LCD
#define MSG_HEATING_FAILED_LCD _UxGT("Heating Failed")
#endif
#ifndef MSG_HEATING_FAILED_LCD_BED
#define MSG_HEATING_FAILED_LCD_BED _UxGT("Bed Heating Failed")
#endif
#ifndef MSG_HEATING_FAILED_LCD_CHAMBER
#define MSG_HEATING_FAILED_LCD_CHAMBER _UxGT("Chamber Heating Fail")
#endif
#ifndef MSG_ERR_REDUNDANT_TEMP
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Err: REDUNDANT TEMP")
#endif
#ifndef MSG_THERMAL_RUNAWAY
#define MSG_THERMAL_RUNAWAY _UxGT("THERMAL RUNAWAY")
#endif
#ifndef MSG_THERMAL_RUNAWAY_BED
#define MSG_THERMAL_RUNAWAY_BED _UxGT("BED THERMAL RUNAWAY")
#endif
#ifndef MSG_THERMAL_RUNAWAY_CHAMBER
#define MSG_THERMAL_RUNAWAY_CHAMBER _UxGT("CHAMBER T. RUNAWAY")
#endif
#ifndef MSG_ERR_MAXTEMP
#define MSG_ERR_MAXTEMP _UxGT("Err: MAXTEMP")
#endif
#ifndef MSG_ERR_MINTEMP
#define MSG_ERR_MINTEMP _UxGT("Err: MINTEMP")
#endif
#ifndef MSG_ERR_MAXTEMP_BED
#define MSG_ERR_MAXTEMP_BED _UxGT("Err: MAXTEMP BED")
#endif
#ifndef MSG_ERR_MINTEMP_BED
#define MSG_ERR_MINTEMP_BED _UxGT("Err: MINTEMP BED")
#endif
#ifndef MSG_ERR_MAXTEMP_CHAMBER
#define MSG_ERR_MAXTEMP_CHAMBER _UxGT("Err: MAXTEMP CHAMBER")
#endif
#ifndef MSG_ERR_MINTEMP_CHAMBER
#define MSG_ERR_MINTEMP_CHAMBER _UxGT("Err: MINTEMP CHAMBER")
#endif
#ifndef MSG_ERR_Z_HOMING
#define MSG_ERR_Z_HOMING _UxGT("Home XY First")
#endif
#ifndef MSG_HALTED
#define MSG_HALTED _UxGT("PRINTER HALTED")
#endif
#ifndef MSG_PLEASE_RESET
#define MSG_PLEASE_RESET _UxGT("Please Reset")
#endif
#ifndef MSG_SHORT_DAY
#define MSG_SHORT_DAY _UxGT("d") // One character only
#endif
#ifndef MSG_SHORT_HOUR
#define MSG_SHORT_HOUR _UxGT("h") // One character only
#endif
#ifndef MSG_SHORT_MINUTE
#define MSG_SHORT_MINUTE _UxGT("m") // One character only
#endif
#ifndef MSG_HEATING
#define MSG_HEATING _UxGT("Heating...")
#endif
#ifndef MSG_COOLING
#define MSG_COOLING _UxGT("Cooling...")
#endif
#ifndef MSG_BED_HEATING
#define MSG_BED_HEATING _UxGT("Bed Heating...")
#endif
#ifndef MSG_BED_COOLING
#define MSG_BED_COOLING _UxGT("Bed Cooling...")
#endif
#ifndef MSG_CHAMBER_HEATING
#define MSG_CHAMBER_HEATING _UxGT("Chamber Heating...")
#endif
#ifndef MSG_CHAMBER_COOLING
#define MSG_CHAMBER_COOLING _UxGT("Chamber Cooling...")
#endif
#ifndef MSG_DELTA_CALIBRATE
#define MSG_DELTA_CALIBRATE _UxGT("Delta Calibration")
#endif
#ifndef MSG_DELTA_CALIBRATE_X
#define MSG_DELTA_CALIBRATE_X _UxGT("Calibrate X")
#endif
#ifndef MSG_DELTA_CALIBRATE_Y
#define MSG_DELTA_CALIBRATE_Y _UxGT("Calibrate Y")
#endif
#ifndef MSG_DELTA_CALIBRATE_Z
#define MSG_DELTA_CALIBRATE_Z _UxGT("Calibrate Z")
#endif
#ifndef MSG_DELTA_CALIBRATE_CENTER
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Calibrate Center")
#endif
#ifndef MSG_DELTA_SETTINGS
#define MSG_DELTA_SETTINGS _UxGT("Delta Settings")
#endif
#ifndef MSG_DELTA_AUTO_CALIBRATE
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Auto Calibration")
#endif
#ifndef MSG_DELTA_HEIGHT_CALIBRATE
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Set Delta Height")
#endif
#ifndef MSG_DELTA_Z_OFFSET_CALIBRATE
#define MSG_DELTA_Z_OFFSET_CALIBRATE _UxGT("Probe Z-offset")
#endif
#ifndef MSG_DELTA_DIAG_ROD
#define MSG_DELTA_DIAG_ROD _UxGT("Diag Rod")
#endif
#ifndef MSG_DELTA_HEIGHT
#define MSG_DELTA_HEIGHT _UxGT("Height")
#endif
#ifndef MSG_DELTA_RADIUS
#define MSG_DELTA_RADIUS _UxGT("Radius")
#endif
#ifndef MSG_INFO_MENU
#define MSG_INFO_MENU _UxGT("About Printer")
#endif
#ifndef MSG_INFO_PRINTER_MENU
#define MSG_INFO_PRINTER_MENU _UxGT("Printer Info")
#endif
#ifndef MSG_3POINT_LEVELING
#define MSG_3POINT_LEVELING _UxGT("3-Point Leveling")
#endif
#ifndef MSG_LINEAR_LEVELING
#define MSG_LINEAR_LEVELING _UxGT("Linear Leveling")
#endif
#ifndef MSG_BILINEAR_LEVELING
#define MSG_BILINEAR_LEVELING _UxGT("Bilinear Leveling")
#endif
#ifndef MSG_UBL_LEVELING
#define MSG_UBL_LEVELING _UxGT("Unified Bed Leveling")
#endif
#ifndef MSG_MESH_LEVELING
#define MSG_MESH_LEVELING _UxGT("Mesh Leveling")
#endif
#ifndef MSG_INFO_STATS_MENU
#define MSG_INFO_STATS_MENU _UxGT("Printer Stats")
#endif
#ifndef MSG_INFO_BOARD_MENU
#define MSG_INFO_BOARD_MENU _UxGT("Board Info")
#endif
#ifndef MSG_INFO_THERMISTOR_MENU
#define MSG_INFO_THERMISTOR_MENU _UxGT("Thermistors")
#endif
#ifndef MSG_INFO_EXTRUDERS
#define MSG_INFO_EXTRUDERS _UxGT("Extruders")
#endif
#ifndef MSG_INFO_BAUDRATE
#define MSG_INFO_BAUDRATE _UxGT("Baud")
#endif
#ifndef MSG_INFO_PROTOCOL
#define MSG_INFO_PROTOCOL _UxGT("Protocol")
#endif
#ifndef MSG_INFO_RUNAWAY_OFF
#define MSG_INFO_RUNAWAY_OFF _UxGT("Runaway Watch: OFF")
#endif
#ifndef MSG_INFO_RUNAWAY_ON
#define MSG_INFO_RUNAWAY_ON _UxGT("Runaway Watch: ON")
#endif
#ifndef MSG_CASE_LIGHT #if LCD_WIDTH >= 20
#define MSG_CASE_LIGHT _UxGT("Case Light") PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Print Count");
#endif PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Completed");
#ifndef MSG_CASE_LIGHT_BRIGHTNESS PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Total Print time");
#define MSG_CASE_LIGHT_BRIGHTNESS _UxGT("Light Brightness") PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Longest Job Time");
#endif PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Extruded Total");
#else
PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Prints");
PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Completed");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Total");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Longest");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Extruded");
#endif
#ifndef MSG_EXPECTED_PRINTER PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Min Temp");
#define MSG_EXPECTED_PRINTER _UxGT("INCORRECT PRINTER") PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Max Temp");
#endif PROGMEM Language_Str MSG_INFO_PSU = _UxGT("PSU");
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Drive Strength");
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Driver %");
PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("TMC CONNECTION ERROR");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC EEPROM Write");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER = _UxGT("FILAMENT CHANGE");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("PRINT PAUSED");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("LOAD FILAMENT");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("UNLOAD FILAMENT");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("RESUME OPTIONS:");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("Purge more");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Continue");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Nozzle: ");
PROGMEM Language_Str MSG_RUNOUT_SENSOR = _UxGT("Runout Sensor");
PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("Runout Dist mm");
PROGMEM Language_Str MSG_LCD_HOMING_FAILED = _UxGT("Homing Failed");
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Probing Failed");
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Too Cold");
#if LCD_WIDTH >= 20 PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("CHOOSE FILAMENT");
#ifndef MSG_INFO_PRINT_COUNT PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU");
#define MSG_INFO_PRINT_COUNT _UxGT("Print Count") PROGMEM Language_Str MSG_MMU2_WRONG_FIRMWARE = _UxGT("Update MMU Firmware!");
#endif PROGMEM Language_Str MSG_MMU2_NOT_RESPONDING = _UxGT("MMU Needs Attention.");
#ifndef MSG_INFO_COMPLETED_PRINTS PROGMEM Language_Str MSG_MMU2_RESUME = _UxGT("Resume Print");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Completed") PROGMEM Language_Str MSG_MMU2_RESUMING = _UxGT("Resuming...");
#endif PROGMEM Language_Str MSG_MMU2_LOAD_FILAMENT = _UxGT("Load Filament");
#ifndef MSG_INFO_PRINT_TIME PROGMEM Language_Str MSG_MMU2_LOAD_ALL = _UxGT("Load All");
#define MSG_INFO_PRINT_TIME _UxGT("Total Print time") PROGMEM Language_Str MSG_MMU2_LOAD_TO_NOZZLE = _UxGT("Load to Nozzle");
#endif PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT = _UxGT("Eject Filament");
#ifndef MSG_INFO_PRINT_LONGEST PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT0 = _UxGT("Eject Filament 1");
#define MSG_INFO_PRINT_LONGEST _UxGT("Longest Job Time") PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT1 = _UxGT("Eject Filament 2");
#endif PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT2 = _UxGT("Eject Filament 3");
#ifndef MSG_INFO_PRINT_FILAMENT PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT3 = _UxGT("Eject Filament 4");
#define MSG_INFO_PRINT_FILAMENT _UxGT("Extruded Total") PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT4 = _UxGT("Eject Filament 5");
#endif PROGMEM Language_Str MSG_MMU2_UNLOAD_FILAMENT = _UxGT("Unload Filament");
#else PROGMEM Language_Str MSG_MMU2_LOADING_FILAMENT = _UxGT("Loading Fil. %i...");
#ifndef MSG_INFO_PRINT_COUNT PROGMEM Language_Str MSG_MMU2_EJECTING_FILAMENT = _UxGT("Ejecting Fil. ...");
#define MSG_INFO_PRINT_COUNT _UxGT("Prints") PROGMEM Language_Str MSG_MMU2_UNLOADING_FILAMENT = _UxGT("Unloading Fil....");
#endif PROGMEM Language_Str MSG_MMU2_ALL = _UxGT("All");
#ifndef MSG_INFO_COMPLETED_PRINTS PROGMEM Language_Str MSG_MMU2_FILAMENT0 = _UxGT("Filament 1");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Completed") PROGMEM Language_Str MSG_MMU2_FILAMENT1 = _UxGT("Filament 2");
#endif PROGMEM Language_Str MSG_MMU2_FILAMENT2 = _UxGT("Filament 3");
#ifndef MSG_INFO_PRINT_TIME PROGMEM Language_Str MSG_MMU2_FILAMENT3 = _UxGT("Filament 4");
#define MSG_INFO_PRINT_TIME _UxGT("Total") PROGMEM Language_Str MSG_MMU2_FILAMENT4 = _UxGT("Filament 5");
#endif PROGMEM Language_Str MSG_MMU2_RESET = _UxGT("Reset MMU");
#ifndef MSG_INFO_PRINT_LONGEST PROGMEM Language_Str MSG_MMU2_RESETTING = _UxGT("Resetting MMU...");
#define MSG_INFO_PRINT_LONGEST _UxGT("Longest") PROGMEM Language_Str MSG_MMU2_EJECT_RECOVER = _UxGT("Remove, click");
#endif
#ifndef MSG_INFO_PRINT_FILAMENT
#define MSG_INFO_PRINT_FILAMENT _UxGT("Extruded")
#endif
#endif
#ifndef MSG_INFO_MIN_TEMP
#define MSG_INFO_MIN_TEMP _UxGT("Min Temp")
#endif
#ifndef MSG_INFO_MAX_TEMP
#define MSG_INFO_MAX_TEMP _UxGT("Max Temp")
#endif
#ifndef MSG_INFO_PSU
#define MSG_INFO_PSU _UxGT("PSU")
#endif
#ifndef MSG_DRIVE_STRENGTH
#define MSG_DRIVE_STRENGTH _UxGT("Drive Strength")
#endif
#ifndef MSG_DAC_PERCENT
#define MSG_DAC_PERCENT _UxGT("Driver %")
#endif
#ifndef MSG_ERROR_TMC
#define MSG_ERROR_TMC _UxGT("TMC CONNECTION ERROR")
#endif
#ifndef MSG_DAC_EEPROM_WRITE
#define MSG_DAC_EEPROM_WRITE _UxGT("DAC EEPROM Write")
#endif
#ifndef MSG_FILAMENT_CHANGE_HEADER
#define MSG_FILAMENT_CHANGE_HEADER _UxGT("FILAMENT CHANGE")
#endif
#ifndef MSG_FILAMENT_CHANGE_HEADER_PAUSE
#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("PRINT PAUSED")
#endif
#ifndef MSG_FILAMENT_CHANGE_HEADER_LOAD
#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("LOAD FILAMENT")
#endif
#ifndef MSG_FILAMENT_CHANGE_HEADER_UNLOAD
#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("UNLOAD FILAMENT")
#endif
#ifndef MSG_FILAMENT_CHANGE_OPTION_HEADER
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:")
#endif
#ifndef MSG_FILAMENT_CHANGE_OPTION_PURGE
#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Purge more")
#endif
#ifndef MSG_FILAMENT_CHANGE_OPTION_RESUME
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Continue")
#endif
#ifndef MSG_FILAMENT_CHANGE_NOZZLE
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Nozzle: ")
#endif
#ifndef MSG_RUNOUT_SENSOR
#define MSG_RUNOUT_SENSOR _UxGT("Runout Sensor")
#endif
#ifndef MSG_RUNOUT_DISTANCE_MM
#define MSG_RUNOUT_DISTANCE_MM _UxGT("Runout Dist mm")
#endif
#ifndef MSG_ERR_HOMING_FAILED
#define MSG_ERR_HOMING_FAILED _UxGT("Homing Failed")
#endif
#ifndef MSG_ERR_PROBING_FAILED
#define MSG_ERR_PROBING_FAILED _UxGT("Probing Failed")
#endif
#ifndef MSG_M600_TOO_COLD
#define MSG_M600_TOO_COLD _UxGT("M600: Too Cold")
#endif
#ifndef MSG_MMU2_FILAMENT_CHANGE_HEADER PROGMEM Language_Str MSG_MIX = _UxGT("Mix");
#define MSG_MMU2_FILAMENT_CHANGE_HEADER _UxGT("FILAMENT CHANGE") PROGMEM Language_Str MSG_MIX_COMPONENT_1 = _UxGT("Component 1");
#endif PROGMEM Language_Str MSG_MIX_COMPONENT_2 = _UxGT("Component 2");
#ifndef MSG_MMU2_CHOOSE_FILAMENT_HEADER PROGMEM Language_Str MSG_MIX_COMPONENT_3 = _UxGT("Component 3");
#define MSG_MMU2_CHOOSE_FILAMENT_HEADER _UxGT("CHOOSE FILAMENT") PROGMEM Language_Str MSG_MIX_COMPONENT_4 = _UxGT("Component 4");
#endif PROGMEM Language_Str MSG_MIX_COMPONENT_5 = _UxGT("Component 5");
#ifndef MSG_MMU2_MENU PROGMEM Language_Str MSG_MIX_COMPONENT_6 = _UxGT("Component 6");
#define MSG_MMU2_MENU _UxGT("MMU") PROGMEM Language_Str MSG_MIXER = _UxGT("Mixer");
#endif PROGMEM Language_Str MSG_GRADIENT = _UxGT("Gradient");
#ifndef MSG_MMU2_WRONG_FIRMWARE PROGMEM Language_Str MSG_FULL_GRADIENT = _UxGT("Full Gradient");
#define MSG_MMU2_WRONG_FIRMWARE _UxGT("Update MMU Firmware!") PROGMEM Language_Str MSG_TOGGLE_MIX = _UxGT("Toggle Mix");
#endif PROGMEM Language_Str MSG_CYCLE_MIX = _UxGT("Cycle Mix");
#ifndef MSG_MMU2_NOT_RESPONDING PROGMEM Language_Str MSG_GRADIENT_MIX = _UxGT("Gradient Mix");
#define MSG_MMU2_NOT_RESPONDING _UxGT("MMU Needs Attention.") PROGMEM Language_Str MSG_REVERSE_GRADIENT = _UxGT("Reverse Gradient");
#endif PROGMEM Language_Str MSG_ACTIVE_VTOOL = _UxGT("Active V-tool");
#ifndef MSG_MMU2_RESUME PROGMEM Language_Str MSG_START_VTOOL = _UxGT("Start V-tool");
#define MSG_MMU2_RESUME _UxGT("Resume Print") PROGMEM Language_Str MSG_END_VTOOL = _UxGT(" End V-tool");
#endif PROGMEM Language_Str MSG_GRADIENT_ALIAS = _UxGT("Alias V-tool");
#ifndef MSG_MMU2_RESUMING PROGMEM Language_Str MSG_RESET_VTOOLS = _UxGT("Reset V-tools");
#define MSG_MMU2_RESUMING _UxGT("Resuming...") PROGMEM Language_Str MSG_COMMIT_VTOOL = _UxGT("Commit V-tool Mix");
#endif PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("V-tools Were Reset");
#ifndef MSG_MMU2_LOAD_FILAMENT PROGMEM Language_Str MSG_START_Z = _UxGT("Start Z:");
#define MSG_MMU2_LOAD_FILAMENT _UxGT("Load Filament") PROGMEM Language_Str MSG_END_Z = _UxGT(" End Z:");
#endif
#ifndef MSG_MMU2_LOAD_ALL
#define MSG_MMU2_LOAD_ALL _UxGT("Load All")
#endif
#ifndef MSG_MMU2_LOAD_TO_NOZZLE
#define MSG_MMU2_LOAD_TO_NOZZLE _UxGT("Load to Nozzle")
#endif
#ifndef MSG_MMU2_EJECT_FILAMENT
#define MSG_MMU2_EJECT_FILAMENT _UxGT("Eject Filament")
#endif
#ifndef MSG_MMU2_EJECT_FILAMENT0
#define MSG_MMU2_EJECT_FILAMENT0 _UxGT("Eject Filament 1")
#endif
#ifndef MSG_MMU2_EJECT_FILAMENT1
#define MSG_MMU2_EJECT_FILAMENT1 _UxGT("Eject Filament 2")
#endif
#ifndef MSG_MMU2_EJECT_FILAMENT2
#define MSG_MMU2_EJECT_FILAMENT2 _UxGT("Eject Filament 3")
#endif
#ifndef MSG_MMU2_EJECT_FILAMENT3
#define MSG_MMU2_EJECT_FILAMENT3 _UxGT("Eject Filament 4")
#endif
#ifndef MSG_MMU2_EJECT_FILAMENT4
#define MSG_MMU2_EJECT_FILAMENT4 _UxGT("Eject Filament 5")
#endif
#ifndef MSG_MMU2_UNLOAD_FILAMENT
#define MSG_MMU2_UNLOAD_FILAMENT _UxGT("Unload Filament")
#endif
#ifndef MSG_MMU2_LOADING_FILAMENT
#define MSG_MMU2_LOADING_FILAMENT _UxGT("Loading Fil. %i...")
#endif
#ifndef MSG_MMU2_EJECTING_FILAMENT
#define MSG_MMU2_EJECTING_FILAMENT _UxGT("Ejecting Fil. ...")
#endif
#ifndef MSG_MMU2_UNLOADING_FILAMENT
#define MSG_MMU2_UNLOADING_FILAMENT _UxGT("Unloading Fil....")
#endif
#ifndef MSG_MMU2_ALL
#define MSG_MMU2_ALL _UxGT("All")
#endif
#ifndef MSG_MMU2_FILAMENT0
#define MSG_MMU2_FILAMENT0 _UxGT("Filament 1")
#endif
#ifndef MSG_MMU2_FILAMENT1
#define MSG_MMU2_FILAMENT1 _UxGT("Filament 2")
#endif
#ifndef MSG_MMU2_FILAMENT2
#define MSG_MMU2_FILAMENT2 _UxGT("Filament 3")
#endif
#ifndef MSG_MMU2_FILAMENT3
#define MSG_MMU2_FILAMENT3 _UxGT("Filament 4")
#endif
#ifndef MSG_MMU2_FILAMENT4
#define MSG_MMU2_FILAMENT4 _UxGT("Filament 5")
#endif
#ifndef MSG_MMU2_RESET
#define MSG_MMU2_RESET _UxGT("Reset MMU")
#endif
#ifndef MSG_MMU2_RESETTING
#define MSG_MMU2_RESETTING _UxGT("Resetting MMU...")
#endif
#ifndef MSG_MMU2_EJECT_RECOVER
#define MSG_MMU2_EJECT_RECOVER _UxGT("Remove, click")
#endif
#ifndef MSG_MIX PROGMEM Language_Str MSG_GAMES = _UxGT("Games");
#define MSG_MIX _UxGT("Mix") PROGMEM Language_Str MSG_BRICKOUT = _UxGT("Brickout");
#endif PROGMEM Language_Str MSG_INVADERS = _UxGT("Invaders");
#ifndef MSG_MIX_COMPONENT PROGMEM Language_Str MSG_SNAKE = _UxGT("Sn4k3");
#define MSG_MIX_COMPONENT _UxGT("Component") PROGMEM Language_Str MSG_MAZE = _UxGT("Maze");
#endif
#ifndef MSG_MIXER
#define MSG_MIXER _UxGT("Mixer")
#endif
#ifndef MSG_GRADIENT
#define MSG_GRADIENT _UxGT("Gradient")
#endif
#ifndef MSG_FULL_GRADIENT
#define MSG_FULL_GRADIENT _UxGT("Full Gradient")
#endif
#ifndef MSG_TOGGLE_MIX
#define MSG_TOGGLE_MIX _UxGT("Toggle Mix")
#endif
#ifndef MSG_CYCLE_MIX
#define MSG_CYCLE_MIX _UxGT("Cycle Mix")
#endif
#ifndef MSG_GRADIENT_MIX
#define MSG_GRADIENT_MIX _UxGT("Gradient Mix")
#endif
#ifndef MSG_REVERSE_GRADIENT
#define MSG_REVERSE_GRADIENT _UxGT("Reverse Gradient")
#endif
#ifndef MSG_ACTIVE_VTOOL
#define MSG_ACTIVE_VTOOL _UxGT("Active V-tool")
#endif
#ifndef MSG_START_VTOOL
#define MSG_START_VTOOL _UxGT("Start V-tool")
#endif
#ifndef MSG_END_VTOOL
#define MSG_END_VTOOL _UxGT(" End V-tool")
#endif
#ifndef MSG_GRADIENT_ALIAS
#define MSG_GRADIENT_ALIAS _UxGT("Alias V-tool")
#endif
#ifndef MSG_RESET_VTOOLS
#define MSG_RESET_VTOOLS _UxGT("Reset V-tools")
#endif
#ifndef MSG_COMMIT_VTOOL
#define MSG_COMMIT_VTOOL _UxGT("Commit V-tool Mix")
#endif
#ifndef MSG_VTOOLS_RESET
#define MSG_VTOOLS_RESET _UxGT("V-tools Were Reset")
#endif
#ifndef MSG_START_Z
#define MSG_START_Z _UxGT("Start Z")
#endif
#ifndef MSG_END_Z
#define MSG_END_Z _UxGT(" End Z")
#endif
#ifndef MSG_GAMES #define MSG_1_LINE(A) A "\0" "\0"
#define MSG_GAMES _UxGT("Games") #define MSG_2_LINE(A,B) A "\0" B "\0"
#endif #define MSG_3_LINE(A,B,C) A "\0" B "\0" C
#ifndef MSG_BRICKOUT
#define MSG_BRICKOUT _UxGT("Brickout")
#endif
#ifndef MSG_INVADERS
#define MSG_INVADERS _UxGT("Invaders")
#endif
#ifndef MSG_SNAKE
#define MSG_SNAKE _UxGT("Sn4k3")
#endif
#ifndef MSG_MAZE
#define MSG_MAZE _UxGT("Maze")
#endif
// //
// Filament Change screens show up to 3 lines on a 4-line display // Filament Change screens show up to 3 lines on a 4-line display
// ...or up to 2 lines on a 3-line display // ...or up to 2 lines on a 3-line display
// //
#if LCD_HEIGHT >= 4 #if LCD_HEIGHT >= 4
#ifndef MSG_ADVANCED_PAUSE_WAITING_1 PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_2_LINE("Press Button", "to resume print"));
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Press Button") PROGMEM Language_Str MSG_PAUSE_PRINT_INIT = _UxGT(MSG_1_LINE("Parking..."));
#define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("to resume print") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Wait for", "filament change", "to start"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Insert filament", "and press button", "to continue"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Press button", "to heat nozzle"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("Nozzle heating", "Please wait..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Wait for", "filament unload"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Wait for", "filament load"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_2_LINE("Wait for", "filament purge"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_2_LINE("Click to finish", "filament purge"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("Wait for print", "to resume..."));
#else
PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_1_LINE("Click to continue"));
PROGMEM Language_Str MSG_PAUSE_PRINT_INIT = _UxGT(MSG_1_LINE("Parking..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Please wait..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Insert and Click"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_1_LINE("Click to heat"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("Heating..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Ejecting..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Loading..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_1_LINE("Purging..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_1_LINE("Click to finish"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Resuming..."));
#endif #endif
#ifndef MSG_PAUSE_PRINT_INIT_1 PROGMEM Language_Str MSG_TMC_DRIVERS = _UxGT("TMC Drivers");
#define MSG_PAUSE_PRINT_INIT_1 _UxGT("Parking...") PROGMEM Language_Str MSG_TMC_CURRENT = _UxGT("Driver Current");
#endif PROGMEM Language_Str MSG_TMC_HYBRID_THRS = _UxGT("Hybrid Threshold");
#ifndef MSG_FILAMENT_CHANGE_INIT_1 PROGMEM Language_Str MSG_TMC_HOMING_THRS = _UxGT("Sensorless Homing");
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Wait for") PROGMEM Language_Str MSG_TMC_STEPPING_MODE = _UxGT("Stepping Mode");
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("filament change") PROGMEM Language_Str MSG_TMC_STEALTH_ENABLED = _UxGT("StealthChop Enabled");
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("to start") PROGMEM Language_Str MSG_SERVICE_RESET = _UxGT("Reset");
#endif PROGMEM Language_Str MSG_SERVICE_IN = _UxGT(" in:");
#ifndef MSG_FILAMENT_CHANGE_INSERT_1 PROGMEM Language_Str MSG_BACKLASH = _UxGT("Backlash");
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Insert filament") PROGMEM Language_Str MSG_BACKLASH_A = LCD_STR_A;
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("and press button") PROGMEM Language_Str MSG_BACKLASH_B = LCD_STR_B;
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("to continue") PROGMEM Language_Str MSG_BACKLASH_C = LCD_STR_C;
#endif PROGMEM Language_Str MSG_BACKLASH_CORRECTION = _UxGT("Correction");
#ifndef MSG_FILAMENT_CHANGE_HEAT_1 PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("Smoothing");
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Press button") }
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("to heat nozzle")
#endif
#ifndef MSG_FILAMENT_CHANGE_HEATING_1
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Nozzle heating")
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Please wait...")
#endif
#ifndef MSG_FILAMENT_CHANGE_UNLOAD_1
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Wait for filament")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("to fully unload")
#endif
#ifndef MSG_FILAMENT_CHANGE_LOAD_1
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Wait for filament")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("to load to nozzle")
#endif
#ifndef MSG_FILAMENT_CHANGE_PURGE_1
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Wait for filament")
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("purge to finish")
#endif
#ifndef MSG_FILAMENT_CHANGE_CONT_PURGE_1
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Click to stop")
#define MSG_FILAMENT_CHANGE_CONT_PURGE_2 _UxGT("purging filament")
#endif
#ifndef MSG_FILAMENT_CHANGE_RESUME_1
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wait for print")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("to resume...")
#endif
#else // LCD_HEIGHT < 4
#ifndef MSG_ADVANCED_PAUSE_WAITING_1
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Click to continue")
#endif
#ifndef MSG_PAUSE_PRINT_INIT_1
#define MSG_PAUSE_PRINT_INIT_1 _UxGT("Parking...")
#endif
#ifndef MSG_FILAMENT_CHANGE_INIT_1
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Please wait...")
#endif
#ifndef MSG_FILAMENT_CHANGE_INSERT_1
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Insert and Click")
#endif
#ifndef MSG_FILAMENT_CHANGE_HEAT_1
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Click to heat")
#endif
#ifndef MSG_FILAMENT_CHANGE_HEATING_1
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Heating...")
#endif
#ifndef MSG_FILAMENT_CHANGE_UNLOAD_1
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Ejecting...")
#endif
#ifndef MSG_FILAMENT_CHANGE_LOAD_1
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Loading...")
#endif
#ifndef MSG_FILAMENT_CHANGE_PURGE_1
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Purging...")
#endif
#ifndef MSG_FILAMENT_CHANGE_CONT_PURGE_1
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Click to finish")
#endif
#ifndef MSG_FILAMENT_CHANGE_RESUME_1
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Resuming...")
#endif
#endif // LCD_HEIGHT < 4
#ifndef MSG_TMC_DRIVERS
#define MSG_TMC_DRIVERS _UxGT("TMC Drivers")
#endif
#ifndef MSG_TMC_CURRENT
#define MSG_TMC_CURRENT _UxGT("Driver Current")
#endif
#ifndef MSG_TMC_HYBRID_THRS
#define MSG_TMC_HYBRID_THRS _UxGT("Hybrid Threshold")
#endif
#ifndef MSG_TMC_HOMING_THRS
#define MSG_TMC_HOMING_THRS _UxGT("Sensorless Homing")
#endif
#ifndef MSG_TMC_STEPPING_MODE
#define MSG_TMC_STEPPING_MODE _UxGT("Stepping Mode")
#endif
#ifndef MSG_TMC_STEALTH_ENABLED
#define MSG_TMC_STEALTH_ENABLED _UxGT("StealthChop Enabled")
#endif
#ifndef MSG_SERVICE_RESET
#define MSG_SERVICE_RESET _UxGT("Reset")
#endif
#ifndef MSG_SERVICE_IN
#define MSG_SERVICE_IN _UxGT(" in:")
#endif
#ifndef MSG_BACKLASH
#define MSG_BACKLASH _UxGT("Backlash")
#endif
#ifndef MSG_BACKLASH_CORRECTION
#define MSG_BACKLASH_CORRECTION _UxGT("Correction")
#endif
#ifndef MSG_BACKLASH_SMOOTHING
#define MSG_BACKLASH_SMOOTHING _UxGT("Smoothing")
#endif

View file

@ -29,536 +29,606 @@
* *
*/ */
#define THIS_LANGUAGES_SPECIAL_SYMBOLS _UxGT ("¡¿ªáéíóúÁÉÍÓÚ")
#define DISPLAY_CHARSET_ISO10646_1 #define DISPLAY_CHARSET_ISO10646_1
#define CHARSIZE 2
#define WELCOME_MSG MACHINE_NAME _UxGT(" lista") namespace Language_es {
#define MSG_YES _UxGT("SI") using namespace Language_en; // Inherit undefined strings from English
#define MSG_NO _UxGT("NO")
#define MSG_BACK _UxGT("Atrás")
#define MSG_MEDIA_ABORTING _UxGT("Cancelando...")
#define MSG_MEDIA_INSERTED _UxGT("SD/USB insertado")
#define MSG_MEDIA_REMOVED _UxGT("SD/USB retirado")
#define MSG_MEDIA_RELEASED _UxGT("SD/USB lanzado")
#define MSG_MEDIA_WAITING _UxGT("Esperando al SD/USB")
#define MSG_MEDIA_READ_ERROR _UxGT("Error lectura SD/USB")
#define MSG_MEDIA_USB_REMOVED _UxGT("Disp. USB retirado")
#define MSG_MEDIA_USB_FAILED _UxGT("Inicio USB fallido")
#define MSG_LCD_ENDSTOPS _UxGT("Endstops") // Max length 8 characters
#define MSG_LCD_SOFT_ENDSTOPS _UxGT("Soft Endstops")
#define MSG_MAIN _UxGT("Menú principal")
#define MSG_ADVANCED_SETTINGS _UxGT("Ajustes avanzados")
#define MSG_CONFIGURATION _UxGT("Configuración")
#define MSG_AUTOSTART _UxGT("Inicio automático")
#define MSG_DISABLE_STEPPERS _UxGT("Apagar motores")
#define MSG_DEBUG_MENU _UxGT("Menú depuración")
#define MSG_PROGRESS_BAR_TEST _UxGT("Prob. barra progreso")
#define MSG_AUTO_HOME _UxGT("Llevar al origen")
#define MSG_AUTO_HOME_X _UxGT("Origen X")
#define MSG_AUTO_HOME_Y _UxGT("Origen Y")
#define MSG_AUTO_HOME_Z _UxGT("Origen Z")
#define MSG_AUTO_Z_ALIGN _UxGT("Auto alineado Z")
#define MSG_LEVEL_BED_HOMING _UxGT("Origen XYZ")
#define MSG_LEVEL_BED_WAITING _UxGT("Pulsar para comenzar")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Siguiente punto")
#define MSG_LEVEL_BED_DONE _UxGT("¡Nivelación lista!")
#define MSG_Z_FADE_HEIGHT _UxGT("Compensación Altura")
#define MSG_SET_HOME_OFFSETS _UxGT("Ajustar desfases")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Desfase aplicada")
#define MSG_SET_ORIGIN _UxGT("Establecer origen")
#define MSG_PREHEAT_1 _UxGT("Precalentar " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ")
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" Todo")
#define MSG_PREHEAT_1_END MSG_PREHEAT_1 _UxGT(" Fin")
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" Cama")
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" Ajuste")
#define MSG_PREHEAT_2 _UxGT("Precalentar" PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ")
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" Todo")
#define MSG_PREHEAT_2_END MSG_PREHEAT_2 _UxGT(" Fin")
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" Cama")
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" Ajuste")
#define MSG_PREHEAT_CUSTOM _UxGT("Precalen. Personali.")
#define MSG_COOLDOWN _UxGT("Enfriar")
#define MSG_LASER_MENU _UxGT("Control Láser")
#define MSG_LASER_OFF _UxGT("Láser Apagado")
#define MSG_LASER_ON _UxGT("Láser Encendido")
#define MSG_LASER_POWER _UxGT("Potencia Láser")
#define MSG_SPINDLE_MENU _UxGT("Control Mandrino")
#define MSG_SPINDLE_OFF _UxGT("Mandrino Apagado")
#define MSG_SPINDLE_ON _UxGT("Mandrino Encendido")
#define MSG_SPINDLE_POWER _UxGT("Potencia Mandrino")
#define MSG_SPINDLE_REVERSE _UxGT("Invertir giro")
#define MSG_SWITCH_PS_ON _UxGT("Encender Fuente")
#define MSG_SWITCH_PS_OFF _UxGT("Apagar Fuente")
#define MSG_EXTRUDE _UxGT("Extruir")
#define MSG_RETRACT _UxGT("Retraer")
#define MSG_MOVE_AXIS _UxGT("Mover ejes")
#define MSG_BED_LEVELING _UxGT("Nivelando Cama")
#define MSG_LEVEL_BED _UxGT("Nivelar Cama")
#define MSG_LEVEL_CORNERS _UxGT("Nivelar Esquinas")
#define MSG_NEXT_CORNER _UxGT("Siguente Esquina")
#define MSG_MESH_EDITOR _UxGT("Editor Mallado")
#define MSG_EDIT_MESH _UxGT("Editar Mallado")
#define MSG_EDITING_STOPPED _UxGT("Ed. Mallado parada")
#define MSG_PROBING_MESH _UxGT("Sondear Punto")
#define MSG_MESH_X _UxGT("Índice X")
#define MSG_MESH_Y _UxGT("Índice Y")
#define MSG_MESH_EDIT_Z _UxGT("Valor Z")
#define MSG_USER_MENU _UxGT("Comandos Personaliz.")
#define MSG_M48_TEST _UxGT("M48 Probar Sonda")
#define MSG_M48_POINT _UxGT("M48 Punto")
#define MSG_M48_DEVIATION _UxGT("Desviación")
#define MSG_IDEX_MENU _UxGT("Modo IDEX")
#define MSG_OFFSETS_MENU _UxGT("Desfase Boquillas")
#define MSG_IDEX_MODE_AUTOPARK _UxGT("Auto-Aparcado")
#define MSG_IDEX_MODE_DUPLICATE _UxGT("Duplicar")
#define MSG_IDEX_MODE_MIRRORED_COPY _UxGT("Copia Reflejada")
#define MSG_IDEX_MODE_FULL_CTRL _UxGT("Control Total")
#define MSG_X_OFFSET _UxGT("2ª Boquilla X")
#define MSG_Y_OFFSET _UxGT("2ª Boquilla Y")
#define MSG_Z_OFFSET _UxGT("2ª Boquilla Z")
#define MSG_UBL_DOING_G29 _UxGT("Hacer G29")
#define MSG_UBL_TOOLS _UxGT("Herramientas UBL")
#define MSG_UBL_LEVEL_BED _UxGT("Nivel.Cama.Uni.(UBL)")
#define MSG_LCD_TILTING_MESH _UxGT("Punto de inclinación")
#define MSG_UBL_MANUAL_MESH _UxGT("Crear Mallado man.")
#define MSG_UBL_BC_INSERT _UxGT("Colocar cuña y Medir")
#define MSG_UBL_BC_INSERT2 _UxGT("Medir")
#define MSG_UBL_BC_REMOVE _UxGT("Retirar y Medir Cama")
#define MSG_UBL_MOVING_TO_NEXT _UxGT("Mover al Siguente")
#define MSG_UBL_ACTIVATE_MESH _UxGT("Activar UBL")
#define MSG_UBL_DEACTIVATE_MESH _UxGT("Desactivar UBL")
#define MSG_UBL_SET_TEMP_BED _UxGT("Temp. Cama")
#define MSG_UBL_BED_TEMP_CUSTOM MSG_UBL_SET_TEMP_BED
#define MSG_UBL_SET_TEMP_HOTEND _UxGT ("Hotend Temp")
#define MSG_UBL_HOTEND_TEMP_CUSTOM MSG_UBL_SET_TEMP_HOTEND
#define MSG_UBL_MESH_EDIT _UxGT("Editar Mallado")
#define MSG_UBL_EDIT_CUSTOM_MESH _UxGT("Edit. Mallado perso.")
#define MSG_UBL_FINE_TUNE_MESH _UxGT("Ajuste fino Mallado")
#define MSG_UBL_DONE_EDITING_MESH _UxGT("Term. edici. Mallado")
#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Crear Mallado Perso.")
#define MSG_UBL_BUILD_MESH_MENU _UxGT("Crear Mallado")
#define MSG_UBL_BUILD_MESH_M1 _UxGT("Crear Mallado (" PREHEAT_1_LABEL ")")
#define MSG_UBL_BUILD_MESH_M2 _UxGT("Crear Mallado (" PREHEAT_2_LABEL ")")
#define MSG_UBL_BUILD_COLD_MESH _UxGT("Crear Mallado Frío")
#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Ajustar alt. Mallado")
#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Cantidad de altura")
#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("Validar Mallado")
#define MSG_UBL_VALIDATE_MESH_M1 _UxGT("Validar Mallado (" PREHEAT_1_LABEL ")")
#define MSG_UBL_VALIDATE_MESH_M2 _UxGT("Validar Mallado (" PREHEAT_2_LABEL ")")
#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Vali. Mallado perso.")
#define MSG_G26_HEATING_BED _UxGT("G26 Calentando Cama")
#define MSG_G26_HEATING_NOZZLE _UxGT("G26 Calent. Boquilla")
#define MSG_G26_MANUAL_PRIME _UxGT("Imprimado manual...")
#define MSG_G26_FIXED_LENGTH _UxGT("Impri. longit. fija")
#define MSG_G26_PRIME_DONE _UxGT("Imprimación Lista")
#define MSG_G26_CANCELED _UxGT("G26 Cancelado")
#define MSG_G26_LEAVING _UxGT("Dejando G26")
#define MSG_UBL_CONTINUE_MESH _UxGT("Contin. Mallado cama")
#define MSG_UBL_MESH_LEVELING _UxGT("Nivelando Mallado")
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("Nivelando 3Puntos")
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Nivel. Mallado cuad.")
#define MSG_UBL_MESH_LEVEL _UxGT("Nivel de Mallado")
#define MSG_UBL_SIDE_POINTS _UxGT("Puntos Laterales")
#define MSG_UBL_MAP_TYPE _UxGT("Tipo de mapa ")
#define MSG_UBL_OUTPUT_MAP _UxGT("Salida Mapa mallado")
#define MSG_UBL_OUTPUT_MAP_HOST _UxGT("Salida para el host")
#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Salida para CSV")
#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Off Printer Backup")
#define MSG_UBL_INFO_UBL _UxGT("Salida Info. UBL")
#define MSG_UBL_FILLIN_AMOUNT _UxGT("Cantidad de relleno")
#define MSG_UBL_MANUAL_FILLIN _UxGT("Relleno manual")
#define MSG_UBL_SMART_FILLIN _UxGT("Relleno inteligente")
#define MSG_UBL_FILLIN_MESH _UxGT("Mallado de relleno")
#define MSG_UBL_INVALIDATE_ALL _UxGT("Invalidar todo")
#define MSG_UBL_INVALIDATE_CLOSEST _UxGT("Invalidar proximos")
#define MSG_UBL_FINE_TUNE_ALL _UxGT("Ajustar Fino Todo")
#define MSG_UBL_FINE_TUNE_CLOSEST _UxGT("Ajustar Fino proxi.")
#define MSG_UBL_STORAGE_MESH_MENU _UxGT("Almacen de Mallado")
#define MSG_UBL_STORAGE_SLOT _UxGT("Huecos de memoria")
#define MSG_UBL_LOAD_MESH _UxGT("Cargar Mallado cama")
#define MSG_UBL_SAVE_MESH _UxGT("Guardar Mallado cama")
#define MSG_MESH_LOADED _UxGT("Mallado %i Cargado")
#define MSG_MESH_SAVED _UxGT("Mallado %i Guardado")
#define MSG_UBL_NO_STORAGE _UxGT("Sin guardar")
#define MSG_UBL_SAVE_ERROR _UxGT("Error: Guardar UBL")
#define MSG_UBL_RESTORE_ERROR _UxGT("Error: Restaurar UBL")
#define MSG_UBL_Z_OFFSET _UxGT("Desfase de Z: ")
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Desfase de Z Parado")
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("UBL Paso a Paso")
#define MSG_LED_CONTROL _UxGT("Control LED") constexpr uint8_t CHARSIZE = 2;
#define MSG_LEDS _UxGT("Luzes") PROGMEM Language_Str LANGUAGE = _UxGT("Spanish");
#define MSG_LED_PRESETS _UxGT("Luz predefinida")
#define MSG_SET_LEDS_RED _UxGT("Rojo")
#define MSG_SET_LEDS_ORANGE _UxGT("Naranja")
#define MSG_SET_LEDS_YELLOW _UxGT("Amarillo")
#define MSG_SET_LEDS_GREEN _UxGT("Verde")
#define MSG_SET_LEDS_BLUE _UxGT("Azul")
#define MSG_SET_LEDS_INDIGO _UxGT("Índigo")
#define MSG_SET_LEDS_VIOLET _UxGT("Violeta")
#define MSG_SET_LEDS_WHITE _UxGT("Blanco")
#define MSG_SET_LEDS_DEFAULT _UxGT("Por defecto")
#define MSG_CUSTOM_LEDS _UxGT("Luces personalizadas")
#define MSG_INTENSITY_R _UxGT("Intensidad Rojo")
#define MSG_INTENSITY_G _UxGT("Intensidad Verde")
#define MSG_INTENSITY_B _UxGT("Intensidad Azul")
#define MSG_INTENSITY_W _UxGT("Intensidad Blanco")
#define MSG_LED_BRIGHTNESS _UxGT("Brillo")
#define MSG_MOVING _UxGT("Moviendo...") PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" lista");
#define MSG_FREE_XY _UxGT("Libre XY") PROGMEM Language_Str MSG_YES = _UxGT("SI");
#define MSG_MOVE_X _UxGT("Mover X") PROGMEM Language_Str MSG_NO = _UxGT("NO");
#define MSG_MOVE_Y _UxGT("Mover Y") PROGMEM Language_Str MSG_BACK = _UxGT("Atrás");
#define MSG_MOVE_Z _UxGT("Mover Z") PROGMEM Language_Str MSG_MEDIA_ABORTING = _UxGT("Cancelando...");
#define MSG_MOVE_E _UxGT("Extrusor") PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("SD/USB insertado");
#define MSG_HOTEND_TOO_COLD _UxGT("Hotend muy frio") PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("SD/USB retirado");
#define MSG_MOVE_Z_DIST _UxGT("Mover %smm") PROGMEM Language_Str MSG_MEDIA_RELEASED = _UxGT("SD/USB lanzado");
#define MSG_MOVE_01MM _UxGT("Mover 0.1mm") PROGMEM Language_Str MSG_MEDIA_WAITING = _UxGT("Esperando al SD/USB");
#define MSG_MOVE_1MM _UxGT("Mover 1mm") PROGMEM Language_Str MSG_MEDIA_READ_ERROR = _UxGT("Error lectura SD/USB");
#define MSG_MOVE_10MM _UxGT("Mover 10mm") PROGMEM Language_Str MSG_MEDIA_USB_REMOVED = _UxGT("Disp. USB retirado");
#define MSG_SPEED _UxGT("Velocidad") PROGMEM Language_Str MSG_MEDIA_USB_FAILED = _UxGT("Inicio USB fallido");
#define MSG_BED_Z _UxGT("Cama Z") PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Endstops"); // Max length 8 characters
#define MSG_NOZZLE _UxGT("Boquilla") PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("Soft Endstops");
#define MSG_BED _UxGT("Cama") PROGMEM Language_Str MSG_MAIN = _UxGT("Menú principal");
#define MSG_CHAMBER _UxGT("Recinto") PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("Ajustes avanzados");
#define MSG_FAN_SPEED _UxGT("Ventilador") PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("Configuración");
#define MSG_EXTRA_FAN_SPEED _UxGT("Vel. Ext. ventilador") PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Inicio automático");
#define MSG_FLOW _UxGT("Flujo") PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Apagar motores");
#define MSG_CONTROL _UxGT("Control") PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("Menú depuración");
#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Min") PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Prob. barra progreso");
#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Max") PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Llevar al origen");
#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Fact") PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Origen X");
#define MSG_AUTOTEMP _UxGT("Temperatura Auto.") PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Origen Y");
#define MSG_LCD_ON _UxGT("Encender") PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Origen Z");
#define MSG_LCD_OFF _UxGT("Apagar") PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("Auto alineado Z");
#define MSG_PID_P _UxGT("PID-P") PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Origen XYZ");
#define MSG_PID_I _UxGT("PID-I") PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Pulsar para comenzar");
#define MSG_PID_D _UxGT("PID-D") PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Siguiente punto");
#define MSG_PID_C _UxGT("PID-C") PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("¡Nivelación lista!");
#define MSG_SELECT _UxGT("Seleccionar") PROGMEM Language_Str MSG_Z_FADE_HEIGHT = _UxGT("Compensación Altura");
#define MSG_ACC _UxGT("Aceleración") PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Ajustar desfases");
#define MSG_JERK _UxGT("Jerk") PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Desfase aplicada");
#if IS_KINEMATIC PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Establecer origen");
#define MSG_VA_JERK _UxGT("Va-Jerk") PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Precalentar ") PREHEAT_1_LABEL;
#define MSG_VB_JERK _UxGT("Vb-Jerk") PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Precalentar ") PREHEAT_1_LABEL " " LCD_STR_N0;
#define MSG_VC_JERK _UxGT("Vc-Jerk") PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Precalentar ") PREHEAT_1_LABEL " " LCD_STR_N1;
#else PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Precalentar ") PREHEAT_1_LABEL " " LCD_STR_N2;
#define MSG_VA_JERK _UxGT("Vx-Jerk") PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Precalentar ") PREHEAT_1_LABEL " " LCD_STR_N3;
#define MSG_VB_JERK _UxGT("Vy-Jerk") PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Precalentar ") PREHEAT_1_LABEL " " LCD_STR_N4;
#define MSG_VC_JERK _UxGT("Vz-Jerk") PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Precalentar ") PREHEAT_1_LABEL " " LCD_STR_N5;
#endif PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Fin");
#define MSG_VE_JERK _UxGT("Ve-Jerk") PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Fin ") LCD_STR_N0;
#define MSG_JUNCTION_DEVIATION _UxGT("Junction Dev") PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Fin ") LCD_STR_N1;
#define MSG_VELOCITY _UxGT("Velocidad") PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Fin ") LCD_STR_N2;
#define MSG_VMAX _UxGT("Vmax") PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Fin ") LCD_STR_N3;
#define MSG_VMIN _UxGT("Vmin") PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Fin ") LCD_STR_N4;
#define MSG_VTRAV_MIN _UxGT("Vel. viaje min") PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Fin ") LCD_STR_N5;
#define MSG_ACCELERATION MSG_ACC PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Todo");
#define MSG_AMAX _UxGT("Acel. max") PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Cama");
#define MSG_A_RETRACT _UxGT("Acel. retrac.") PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Ajuste");
#define MSG_A_TRAVEL _UxGT("Acel. Viaje") PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Precalentar ") PREHEAT_2_LABEL;
#define MSG_STEPS_PER_MM _UxGT("Pasos/mm") PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Precalentar ") PREHEAT_2_LABEL " " LCD_STR_N0;
#if IS_KINEMATIC PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Precalentar ") PREHEAT_2_LABEL " " LCD_STR_N1;
#define MSG_ASTEPS _UxGT("A pasos/mm") PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Precalentar ") PREHEAT_2_LABEL " " LCD_STR_N2;
#define MSG_BSTEPS _UxGT("B pasos/mm") PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Precalentar ") PREHEAT_2_LABEL " " LCD_STR_N3;
#define MSG_CSTEPS _UxGT("C pasos/mm") PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Precalentar ") PREHEAT_2_LABEL " " LCD_STR_N4;
#else PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Precalentar ") PREHEAT_2_LABEL " " LCD_STR_N5;
#define MSG_ASTEPS _UxGT("X pasos/mm") PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Fin");
#define MSG_BSTEPS _UxGT("Y pasos/mm") PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Fin ") LCD_STR_N0;
#define MSG_CSTEPS _UxGT("Z pasos/mm") PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Fin ") LCD_STR_N1;
#endif PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Fin ") LCD_STR_N2;
#define MSG_ESTEPS _UxGT("E pasos/mm") PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Fin ") LCD_STR_N3;
#define MSG_E0_STEPS _UxGT("E1 pasos/mm") PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Fin ") LCD_STR_N4;
#define MSG_E1_STEPS _UxGT("E2 pasos/mm") PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Fin ") LCD_STR_N5;
#define MSG_E2_STEPS _UxGT("E3 pasos/mm") PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Todo");
#define MSG_E3_STEPS _UxGT("E4 pasos/mm") PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Cama");
#define MSG_E4_STEPS _UxGT("E5 pasos/mm") PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Ajuste");
#define MSG_E5_STEPS _UxGT("E6 pasos/mm") PROGMEM Language_Str MSG_PREHEAT_CUSTOM = _UxGT("Precalen. Personali.");
#define MSG_TEMPERATURE _UxGT("Temperatura") PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Enfriar");
#define MSG_MOTION _UxGT("Movimiento") PROGMEM Language_Str MSG_LASER_MENU = _UxGT("Control Láser");
#define MSG_FILAMENT _UxGT("Filamento") PROGMEM Language_Str MSG_LASER_OFF = _UxGT("Láser Apagado");
#define MSG_VOLUMETRIC_ENABLED _UxGT("E en mm") MSG_CUBED PROGMEM Language_Str MSG_LASER_ON = _UxGT("Láser Encendido");
#define MSG_FILAMENT_DIAM _UxGT("Fil. Dia.") PROGMEM Language_Str MSG_LASER_POWER = _UxGT("Potencia Láser");
#define MSG_FILAMENT_UNLOAD _UxGT("Descarga mm") PROGMEM Language_Str MSG_SPINDLE_MENU = _UxGT("Control Mandrino");
#define MSG_FILAMENT_LOAD _UxGT("Carga mm") PROGMEM Language_Str MSG_SPINDLE_OFF = _UxGT("Mandrino Apagado");
#define MSG_ADVANCE_K _UxGT("Avance K") PROGMEM Language_Str MSG_SPINDLE_ON = _UxGT("Mandrino Encendido");
#define MSG_CONTRAST _UxGT("Contraste LCD") PROGMEM Language_Str MSG_SPINDLE_POWER = _UxGT("Potencia Mandrino");
#define MSG_STORE_EEPROM _UxGT("Guardar EEPROM") PROGMEM Language_Str MSG_SPINDLE_REVERSE = _UxGT("Invertir giro");
#define MSG_LOAD_EEPROM _UxGT("Cargar EEPROM") PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Encender Fuente");
#define MSG_RESTORE_FAILSAFE _UxGT("Rest. fábrica") PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Apagar Fuente");
#define MSG_INIT_EEPROM _UxGT("Inicializar EEPROM") PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Extruir");
#define MSG_MEDIA_UPDATE _UxGT("Actualizar SD/USB") PROGMEM Language_Str MSG_RETRACT = _UxGT("Retraer");
#define MSG_RESET_PRINTER _UxGT("Resetear Impresora") PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Mover ejes");
#define MSG_REFRESH _UxGT("Recargar") PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Nivelando Cama");
#define MSG_WATCH _UxGT("Pantalla de Inf.") PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Nivelar Cama");
#define MSG_PREPARE _UxGT("Preparar") PROGMEM Language_Str MSG_LEVEL_CORNERS = _UxGT("Nivelar Esquinas");
#define MSG_TUNE _UxGT("Ajustar") PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("Siguente Esquina");
#define MSG_START_PRINT _UxGT("Iniciar impresión") PROGMEM Language_Str MSG_MESH_EDITOR = _UxGT("Editor Mallado");
#define MSG_BUTTON_NEXT _UxGT("Siguinte") PROGMEM Language_Str MSG_EDIT_MESH = _UxGT("Editar Mallado");
#define MSG_BUTTON_INIT _UxGT("Iniciar") PROGMEM Language_Str MSG_EDITING_STOPPED = _UxGT("Ed. Mallado parada");
#define MSG_BUTTON_STOP _UxGT("Parar") PROGMEM Language_Str MSG_PROBING_MESH = _UxGT("Sondear Punto");
#define MSG_BUTTON_PRINT _UxGT("Imprimir") PROGMEM Language_Str MSG_MESH_X = _UxGT("Índice X");
#define MSG_BUTTON_RESET _UxGT("Reiniciar") PROGMEM Language_Str MSG_MESH_Y = _UxGT("Índice Y");
#define MSG_BUTTON_CANCEL _UxGT("Cancelar") PROGMEM Language_Str MSG_MESH_EDIT_Z = _UxGT("Valor Z");
#define MSG_BUTTON_DONE _UxGT("Listo") PROGMEM Language_Str MSG_USER_MENU = _UxGT("Comandos Personaliz.");
#define MSG_PAUSE_PRINT _UxGT("Pausar impresión") PROGMEM Language_Str MSG_M48_TEST = _UxGT("M48 Probar Sonda");
#define MSG_RESUME_PRINT _UxGT("Reanudar impresión") PROGMEM Language_Str MSG_M48_POINT = _UxGT("M48 Punto");
#define MSG_STOP_PRINT _UxGT("Detener impresión") PROGMEM Language_Str MSG_M48_DEVIATION = _UxGT("Desviación");
#define MSG_OUTAGE_RECOVERY _UxGT("Recuper. por interr.") PROGMEM Language_Str MSG_IDEX_MENU = _UxGT("Modo IDEX");
#define MSG_MEDIA_MENU _UxGT("Imprim. desde SD/USB") PROGMEM Language_Str MSG_OFFSETS_MENU = _UxGT("Desfase Boquillas");
#define MSG_NO_MEDIA _UxGT("SD/USB no presente") PROGMEM Language_Str MSG_IDEX_MODE_AUTOPARK = _UxGT("Auto-Aparcado");
#define MSG_DWELL _UxGT("Reposo...") PROGMEM Language_Str MSG_IDEX_MODE_DUPLICATE = _UxGT("Duplicar");
#define MSG_USERWAIT _UxGT("Pulsar para Reanudar") PROGMEM Language_Str MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Copia Reflejada");
#define MSG_PRINT_PAUSED _UxGT("Impresión Pausada") PROGMEM Language_Str MSG_IDEX_MODE_FULL_CTRL = _UxGT("Control Total");
#define MSG_PRINTING _UxGT("Imprimiendo...") PROGMEM Language_Str MSG_X_OFFSET = _UxGT("2ª Boquilla X");
#define MSG_PRINT_ABORTED _UxGT("Impresión cancelada") PROGMEM Language_Str MSG_Y_OFFSET = _UxGT("2ª Boquilla Y");
#define MSG_NO_MOVE _UxGT("Sin movimiento") PROGMEM Language_Str MSG_Z_OFFSET = _UxGT("2ª Boquilla Z");
#define MSG_KILLED _UxGT("MUERTA") PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("Hacer G29");
#define MSG_STOPPED _UxGT("DETENIDA") PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("Herramientas UBL");
#define MSG_CONTROL_RETRACT _UxGT("Retraer mm") PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("Nivel.Cama.Uni.(UBL)");
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Interc. Retraer mm") PROGMEM Language_Str MSG_LCD_TILTING_MESH = _UxGT("Punto de inclinación");
#define MSG_CONTROL_RETRACTF _UxGT("Retraer V") PROGMEM Language_Str MSG_UBL_MANUAL_MESH = _UxGT("Crear Mallado man.");
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Levantar mm") PROGMEM Language_Str MSG_UBL_BC_INSERT = _UxGT("Colocar cuña y Medir");
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("DesRet mm") PROGMEM Language_Str MSG_UBL_BC_INSERT2 = _UxGT("Medir");
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Interc. DesRet mm") PROGMEM Language_Str MSG_UBL_BC_REMOVE = _UxGT("Retirar y Medir Cama");
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("DesRet V") PROGMEM Language_Str MSG_UBL_MOVING_TO_NEXT = _UxGT("Mover al Siguente");
#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V") PROGMEM Language_Str MSG_UBL_ACTIVATE_MESH = _UxGT("Activar UBL");
#define MSG_AUTORETRACT _UxGT("Retracción Auto.") PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("Desactivar UBL");
#define MSG_FILAMENT_SWAP_LENGTH _UxGT("Inter. longitud") PROGMEM Language_Str MSG_UBL_SET_TEMP_BED = _UxGT("Temp. Cama");
#define MSG_FILAMENT_PURGE_LENGTH _UxGT("Purgar longitud") PROGMEM Language_Str MSG_UBL_BED_TEMP_CUSTOM = _UxGT("Bed Temp");
#define MSG_TOOL_CHANGE _UxGT("Cambiar Herramienta") PROGMEM Language_Str MSG_UBL_SET_TEMP_HOTEND = _UxGT ("Hotend Temp");
#define MSG_TOOL_CHANGE_ZLIFT _UxGT("Aumentar Z") PROGMEM Language_Str MSG_UBL_HOTEND_TEMP_CUSTOM = _UxGT("Hotend Temp");
#define MSG_SINGLENOZZLE_PRIME_SPD _UxGT("Prime Speed") PROGMEM Language_Str MSG_UBL_MESH_EDIT = _UxGT("Editar Mallado");
#define MSG_SINGLENOZZLE_RETRACT_SPD _UxGT("Vel. de retracción") PROGMEM Language_Str MSG_UBL_EDIT_CUSTOM_MESH = _UxGT("Edit. Mallado perso.");
#define MSG_NOZZLE_STANDBY _UxGT("Colocar boquilla") PROGMEM Language_Str MSG_UBL_FINE_TUNE_MESH = _UxGT("Ajuste fino Mallado");
#define MSG_FILAMENTCHANGE _UxGT("Cambiar filamento") PROGMEM Language_Str MSG_UBL_DONE_EDITING_MESH = _UxGT("Term. edici. Mallado");
#define MSG_FILAMENTLOAD _UxGT("Cargar filamento") PROGMEM Language_Str MSG_UBL_BUILD_CUSTOM_MESH = _UxGT("Crear Mallado Perso.");
#define MSG_FILAMENTUNLOAD _UxGT("Descargar filamento") PROGMEM Language_Str MSG_UBL_BUILD_MESH_MENU = _UxGT("Crear Mallado");
#define MSG_FILAMENTUNLOAD_ALL _UxGT("Descargar todo") PROGMEM Language_Str MSG_UBL_BUILD_MESH_M1 = _UxGT("Crear Mallado (") PREHEAT_1_LABEL _UxGT(")");
#define MSG_INIT_MEDIA _UxGT("Iniciar SD/USB") PROGMEM Language_Str MSG_UBL_BUILD_MESH_M2 = _UxGT("Crear Mallado (") PREHEAT_2_LABEL _UxGT(")");
#define MSG_CHANGE_MEDIA _UxGT("Cambiar SD/USB") PROGMEM Language_Str MSG_UBL_BUILD_COLD_MESH = _UxGT("Crear Mallado Frío");
#define MSG_RELEASE_MEDIA _UxGT("Lanzar SD/USB") PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_ADJUST = _UxGT("Ajustar alt. Mallado");
#define MSG_ZPROBE_OUT _UxGT("Sonda Z fuera cama") PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_AMOUNT = _UxGT("Cantidad de altura");
#define MSG_SKEW_FACTOR _UxGT("Factor de desviación") PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_MENU = _UxGT("Validar Mallado");
#define MSG_BLTOUCH _UxGT("BLTouch") PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M1 = _UxGT("Validar Mallado (") PREHEAT_1_LABEL _UxGT(")");
#define MSG_BLTOUCH_SELFTEST _UxGT("Cmd: Auto-Prueba") PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M2 = _UxGT("Validar Mallado (") PREHEAT_2_LABEL _UxGT(")");
#define MSG_BLTOUCH_RESET _UxGT("Cmd: Reiniciar") PROGMEM Language_Str MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("Vali. Mallado perso.");
#define MSG_BLTOUCH_STOW _UxGT("Cmd: Bajar pistón") PROGMEM Language_Str MSG_G26_HEATING_BED = _UxGT("G26 Calentando Cama");
#define MSG_BLTOUCH_DEPLOY _UxGT("Cmd: Subir pistón") PROGMEM Language_Str MSG_G26_HEATING_NOZZLE = _UxGT("G26 Calent. Boquilla");
#define MSG_BLTOUCH_SW_MODE _UxGT("Cmd: Modo Software") PROGMEM Language_Str MSG_G26_MANUAL_PRIME = _UxGT("Imprimado manual...");
#define MSG_BLTOUCH_5V_MODE _UxGT("Cmd: Modo 5V") PROGMEM Language_Str MSG_G26_FIXED_LENGTH = _UxGT("Impri. longit. fija");
#define MSG_BLTOUCH_OD_MODE _UxGT("Cmd: Modo OD") PROGMEM Language_Str MSG_G26_PRIME_DONE = _UxGT("Imprimación Lista");
#define MSG_BLTOUCH_MODE_STORE _UxGT("Cmd: Modo almacenar") PROGMEM Language_Str MSG_G26_CANCELED = _UxGT("G26 Cancelado");
#define MSG_BLTOUCH_MODE_STORE_5V _UxGT("Poner BLTouch a 5V") PROGMEM Language_Str MSG_G26_LEAVING = _UxGT("Dejando G26");
#define MSG_BLTOUCH_MODE_STORE_OD _UxGT("Poner BLTouch a OD") PROGMEM Language_Str MSG_UBL_CONTINUE_MESH = _UxGT("Contin. Mallado cama");
#define MSG_BLTOUCH_MODE_ECHO _UxGT("Informe de drenaje") PROGMEM Language_Str MSG_UBL_MESH_LEVELING = _UxGT("Nivelando Mallado");
#define MSG_BLTOUCH_MODE_CHANGE _UxGT("PELIGRO: ¡Una mala configuración puede producir daños! ¿Proceder igualmente?") PROGMEM Language_Str MSG_UBL_3POINT_MESH_LEVELING = _UxGT("Nivelando 3Puntos");
#define MSG_TOUCHMI_PROBE _UxGT("TouchMI") PROGMEM Language_Str MSG_UBL_GRID_MESH_LEVELING = _UxGT("Nivel. Mallado cuad.");
#define MSG_TOUCHMI_INIT _UxGT("Iniciar TouchMI") PROGMEM Language_Str MSG_UBL_MESH_LEVEL = _UxGT("Nivel de Mallado");
#define MSG_TOUCHMI_ZTEST _UxGT("Test de desfase Z") PROGMEM Language_Str MSG_UBL_SIDE_POINTS = _UxGT("Puntos Laterales");
#define MSG_TOUCHMI_SAVE _UxGT("Guardar") PROGMEM Language_Str MSG_UBL_MAP_TYPE = _UxGT("Tipo de mapa ");
#define MSG_MANUAL_DEPLOY_TOUCHMI _UxGT("Subir TouchMI") PROGMEM Language_Str MSG_UBL_OUTPUT_MAP = _UxGT("Salida Mapa mallado");
#define MSG_MANUAL_DEPLOY _UxGT("Subir Sonda Z") PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_HOST = _UxGT("Salida para el host");
#define MSG_MANUAL_STOW _UxGT("Bajar Sonda Z") PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_CSV = _UxGT("Salida para CSV");
#define MSG_HOME_FIRST _UxGT("Origen %s%s%s Primero") PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_BACKUP = _UxGT("Off Printer Backup");
#define MSG_ZPROBE_ZOFFSET _UxGT("Desfase Z") PROGMEM Language_Str MSG_UBL_INFO_UBL = _UxGT("Salida Info. UBL");
#define MSG_BABYSTEP_X _UxGT("Micropaso X") PROGMEM Language_Str MSG_UBL_FILLIN_AMOUNT = _UxGT("Cantidad de relleno");
#define MSG_BABYSTEP_Y _UxGT("Micropaso Y") PROGMEM Language_Str MSG_UBL_MANUAL_FILLIN = _UxGT("Relleno manual");
#define MSG_BABYSTEP_Z _UxGT("Micropaso Z") PROGMEM Language_Str MSG_UBL_SMART_FILLIN = _UxGT("Relleno inteligente");
#define MSG_BABYSTEP_TOTAL _UxGT("Total") PROGMEM Language_Str MSG_UBL_FILLIN_MESH = _UxGT("Mallado de relleno");
#define MSG_ENDSTOP_ABORT _UxGT("Cancelado - Endstop") PROGMEM Language_Str MSG_UBL_INVALIDATE_ALL = _UxGT("Invalidar todo");
#define MSG_HEATING_FAILED_LCD _UxGT("Calent. fallido") PROGMEM Language_Str MSG_UBL_INVALIDATE_CLOSEST = _UxGT("Invalidar proximos");
#define MSG_HEATING_FAILED_LCD_BED _UxGT("Calent. cama fallido") PROGMEM Language_Str MSG_UBL_FINE_TUNE_ALL = _UxGT("Ajustar Fino Todo");
#define MSG_HEATING_FAILED_LCD_CHAMBER _UxGT("Calent. Cám. fallido") PROGMEM Language_Str MSG_UBL_FINE_TUNE_CLOSEST = _UxGT("Ajustar Fino proxi.");
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Err: TEMP. REDUN.") PROGMEM Language_Str MSG_UBL_STORAGE_MESH_MENU = _UxGT("Almacen de Mallado");
#define MSG_THERMAL_RUNAWAY _UxGT("ESCAPE TERMICO") PROGMEM Language_Str MSG_UBL_STORAGE_SLOT = _UxGT("Huecos de memoria");
#define MSG_THERMAL_RUNAWAY_BED _UxGT("ESC. TERMICO CAMA") PROGMEM Language_Str MSG_UBL_LOAD_MESH = _UxGT("Cargar Mallado cama");
#define MSG_THERMAL_RUNAWAY_CHAMBER _UxGT("ESC. TERMICO CAMARA") PROGMEM Language_Str MSG_UBL_SAVE_MESH = _UxGT("Guardar Mallado cama");
#define MSG_ERR_MAXTEMP _UxGT("Err:TEMP. MÁX") PROGMEM Language_Str MSG_MESH_LOADED = _UxGT("M117 Mallado %i Cargado");
#define MSG_ERR_MINTEMP _UxGT("Err:TEMP. MIN") PROGMEM Language_Str MSG_MESH_SAVED = _UxGT("M117 Mallado %i Guardado");
#define MSG_ERR_MAXTEMP_BED _UxGT("Err:TEMP. MÁX CAMA") PROGMEM Language_Str MSG_UBL_NO_STORAGE = _UxGT("Sin guardar");
#define MSG_ERR_MINTEMP_BED _UxGT("Err:TEMP. MIN CAMA") PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("Error: Guardar UBL");
#define MSG_ERR_MAXTEMP_CHAMBER _UxGT("Err:TEMP. MÁX CÁMARA") PROGMEM Language_Str MSG_UBL_RESTORE_ERROR = _UxGT("Error: Restaurar UBL");
#define MSG_ERR_MINTEMP_CHAMBER _UxGT("Err:TEMP. MIN CÁMARA") PROGMEM Language_Str MSG_UBL_Z_OFFSET = _UxGT("Desfase de Z: ");
#define MSG_ERR_Z_HOMING _UxGT("Origen XY Primero") PROGMEM Language_Str MSG_UBL_Z_OFFSET_STOPPED = _UxGT("Desfase de Z Parado");
#define MSG_HALTED _UxGT("IMPRESORA DETENIDA") PROGMEM Language_Str MSG_UBL_STEP_BY_STEP_MENU = _UxGT("UBL Paso a Paso");
#define MSG_PLEASE_RESET _UxGT("Por favor, reinicie") PROGMEM Language_Str MSG_UBL_1_BUILD_COLD_MESH = _UxGT("1.Crear Mallado Frío");
#define MSG_SHORT_DAY _UxGT("d") // One character only PROGMEM Language_Str MSG_UBL_2_SMART_FILLIN = _UxGT("2.Relleno inteligente");
#define MSG_SHORT_HOUR _UxGT("h") // One character only PROGMEM Language_Str MSG_UBL_3_VALIDATE_MESH_MENU = _UxGT("3.Validar Mallado");
#define MSG_SHORT_MINUTE _UxGT("m") // One character only PROGMEM Language_Str MSG_UBL_4_FINE_TUNE_ALL = _UxGT("4.Ajustar Fino Todo");
#define MSG_HEATING _UxGT("Calentando...") PROGMEM Language_Str MSG_UBL_5_VALIDATE_MESH_MENU = _UxGT("5.Validar Mallado");
#define MSG_COOLING _UxGT("Enfriando...") PROGMEM Language_Str MSG_UBL_6_FINE_TUNE_ALL = _UxGT("6.Ajustar Fino Todo");
#define MSG_BED_HEATING _UxGT("Calentando Cama...") PROGMEM Language_Str MSG_UBL_7_SAVE_MESH = _UxGT("7.Guardar Mallado cama");
#define MSG_BED_COOLING _UxGT("Enfriando Cama...")
#define MSG_CHAMBER_HEATING _UxGT("Calentando Cámara...")
#define MSG_CHAMBER_COOLING _UxGT("Enfriando Cámara...")
#define MSG_DELTA_CALIBRATE _UxGT("Calibración Delta")
#define MSG_DELTA_CALIBRATE_X _UxGT("Calibrar X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Calibrar Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Calibrar Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Calibrar Centro")
#define MSG_DELTA_SETTINGS _UxGT("Configuración Delta")
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Auto Calibración")
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Est. Altura Delta")
#define MSG_DELTA_Z_OFFSET_CALIBRATE _UxGT("Ajustar Sonda Z")
#define MSG_DELTA_DIAG_ROD _UxGT("Barra Diagonal")
#define MSG_DELTA_HEIGHT _UxGT("Altura")
#define MSG_DELTA_RADIUS _UxGT("Radio")
#define MSG_INFO_MENU _UxGT("Acerca de Impresora")
#define MSG_INFO_PRINTER_MENU _UxGT("Info. Impresora")
#define MSG_3POINT_LEVELING _UxGT("Nivelando 3puntos")
#define MSG_LINEAR_LEVELING _UxGT("Nivelando Lineal")
#define MSG_BILINEAR_LEVELING _UxGT("Nivelando Bilineal")
#define MSG_UBL_LEVELING _UxGT("Nivelando UBL")
#define MSG_MESH_LEVELING _UxGT("Nivelando en Mallado")
#define MSG_INFO_STATS_MENU _UxGT("Estadísticas Imp.")
#define MSG_INFO_BOARD_MENU _UxGT("Info. Controlador")
#define MSG_INFO_THERMISTOR_MENU _UxGT("Termistores")
#define MSG_INFO_EXTRUDERS _UxGT("Extrusores")
#define MSG_INFO_BAUDRATE _UxGT("Baudios")
#define MSG_INFO_PROTOCOL _UxGT("Protocolo")
#define MSG_CASE_LIGHT _UxGT("Luz cabina")
#define MSG_CASE_LIGHT_BRIGHTNESS _UxGT("Brillo cabina")
#define MSG_EXPECTED_PRINTER _UxGT("Impresora incorrecta") PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("Control LED");
PROGMEM Language_Str MSG_LEDS = _UxGT("Luzes");
PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("Luz predefinida");
PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("Rojo");
PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("Naranja");
PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("Amarillo");
PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("Verde");
PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("Azul");
PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("Índigo");
PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Violeta");
PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("Blanco");
PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("Por defecto");
PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("Luces personalizadas");
PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Intensidad Rojo");
PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Intensidad Verde");
PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("Intensidad Azul");
PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("Intensidad Blanco");
PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("Brillo");
#if LCD_WIDTH >= 20 PROGMEM Language_Str MSG_MOVING = _UxGT("Moviendo...");
#define MSG_INFO_PRINT_COUNT _UxGT("Cont. de impresión") PROGMEM Language_Str MSG_FREE_XY = _UxGT("Libre XY");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Completadas") PROGMEM Language_Str MSG_MOVE_X = _UxGT("Mover X");
#define MSG_INFO_PRINT_TIME _UxGT("Tiempo total de imp.") PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Mover Y");
#define MSG_INFO_PRINT_LONGEST _UxGT("Impresión más larga") PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Mover Z");
#define MSG_INFO_PRINT_FILAMENT _UxGT("Total Extruido") PROGMEM Language_Str MSG_MOVE_E = _UxGT("Extrusor");
#else PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Extrusor ") LCD_STR_E0;
#define MSG_INFO_PRINT_COUNT _UxGT("Impresiones") PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Extrusor ") LCD_STR_E1;
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Completadas") PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Extrusor ") LCD_STR_E2;
#define MSG_INFO_PRINT_TIME _UxGT("Total") PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Extrusor ") LCD_STR_E3;
#define MSG_INFO_PRINT_LONGEST _UxGT("Más larga") PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Extrusor ") LCD_STR_E4;
#define MSG_INFO_PRINT_FILAMENT _UxGT("Extruido") PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Extrusor ") LCD_STR_E5;
#endif PROGMEM Language_Str MSG_HOTEND_TOO_COLD = _UxGT("Hotend muy frio");
#define MSG_INFO_MIN_TEMP _UxGT("Temp. Mínima") PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Mover %smm");
#define MSG_INFO_MAX_TEMP _UxGT("Temp. Máxima") PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Mover 0.1mm");
#define MSG_INFO_PSU _UxGT("Fuente alimentación") PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Mover 1mm");
#define MSG_DRIVE_STRENGTH _UxGT("Fuerza de empuje") PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Mover 10mm");
#define MSG_DAC_PERCENT _UxGT("Driver %") PROGMEM Language_Str MSG_SPEED = _UxGT("Velocidad");
#define MSG_ERROR_TMC _UxGT("ERROR CONEX. TMC") PROGMEM Language_Str MSG_BED_Z = _UxGT("Cama Z");
#define MSG_DAC_EEPROM_WRITE _UxGT("Escribe DAC EEPROM") PROGMEM Language_Str MSG_NOZZLE = _UxGT("Boquilla");
#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("IMPRESIÓN PAUSADA") PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Boquilla ") LCD_STR_N0;
#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("CARGAR FILAMENTO") PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Boquilla ") LCD_STR_N1;
#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("DESCARGAR FILAMENTO") PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Boquilla ") LCD_STR_N2;
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("OPC. REINICIO:") PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Boquilla ") LCD_STR_N3;
#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Purgar más") PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Boquilla ") LCD_STR_N4;
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Continuar imp.") PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Boquilla ") LCD_STR_N5;
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Boquilla: ") PROGMEM Language_Str MSG_BED = _UxGT("Cama");
#define MSG_RUNOUT_SENSOR _UxGT("Sensor de sección") PROGMEM Language_Str MSG_CHAMBER = _UxGT("Recinto");
#define MSG_RUNOUT_DISTANCE_MM _UxGT("Dist de secc. mm") PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Ventilador");
#define MSG_ERR_HOMING_FAILED _UxGT("Ir a origen Fallado") PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Ventilador 1");
#define MSG_ERR_PROBING_FAILED _UxGT("Sondeo Fallado") PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Ventilador 2");
#define MSG_M600_TOO_COLD _UxGT("M600: Muy Frio") PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Ventilador 3");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Vel. Ext. ventilador");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_1 = _UxGT("Vel. Ext. ventilador ") LCD_STR_N1;
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_2 = _UxGT("Vel. Ext. ventilador ") LCD_STR_N2;
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_3 = _UxGT("Vel. Ext. ventilador ") LCD_STR_N3;
PROGMEM Language_Str MSG_FLOW = _UxGT("Flujo");
PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Flujo ") LCD_STR_N0;
PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Flujo ") LCD_STR_N1;
PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Flujo ") LCD_STR_N2;
PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Flujo ") LCD_STR_N3;
PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Flujo ") LCD_STR_N4;
PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Flujo ") LCD_STR_N5;
PROGMEM Language_Str MSG_CONTROL = _UxGT("Control");
PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" Min");
PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" Max");
PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Fact");
PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Temperatura Auto.");
PROGMEM Language_Str MSG_LCD_ON = _UxGT("Encender");
PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Apagar");
PROGMEM Language_Str MSG_SELECT = _UxGT("Seleccionar");
PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("Seleccionar ") LCD_STR_E0;
PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("Seleccionar ") LCD_STR_E1;
PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("Seleccionar ") LCD_STR_E2;
PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("Seleccionar ") LCD_STR_E3;
PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("Seleccionar ") LCD_STR_E4;
PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("Seleccionar ") LCD_STR_E5;
PROGMEM Language_Str MSG_ACC = _UxGT("Aceleración");
PROGMEM Language_Str MSG_VELOCITY = _UxGT("Velocidad");
PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("Vel. viaje min");
PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Accel");
PROGMEM Language_Str MSG_AMAX_A = _UxGT("Acel. max") LCD_STR_A;
PROGMEM Language_Str MSG_AMAX_B = _UxGT("Acel. max") LCD_STR_B;
PROGMEM Language_Str MSG_AMAX_C = _UxGT("Acel. max") LCD_STR_C;
PROGMEM Language_Str MSG_AMAX_E = _UxGT("Acel. max") LCD_STR_E;
PROGMEM Language_Str MSG_AMAX_E0 = _UxGT("Acel. max ") LCD_STR_E0;
PROGMEM Language_Str MSG_AMAX_E1 = _UxGT("Acel. max ") LCD_STR_E1;
PROGMEM Language_Str MSG_AMAX_E2 = _UxGT("Acel. max ") LCD_STR_E2;
PROGMEM Language_Str MSG_AMAX_E3 = _UxGT("Acel. max ") LCD_STR_E3;
PROGMEM Language_Str MSG_AMAX_E4 = _UxGT("Acel. max ") LCD_STR_E4;
PROGMEM Language_Str MSG_AMAX_E5 = _UxGT("Acel. max ") LCD_STR_E5;
PROGMEM Language_Str MSG_A_RETRACT = _UxGT("Acel. retrac.");
PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("Acel. Viaje");
PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Pasos/mm");
PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" pasos/mm");
PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" pasos/mm");
PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" pasos/mm");
PROGMEM Language_Str MSG_E_STEPS = _UxGT("E pasos/mm");
PROGMEM Language_Str MSG_E0_STEPS = LCD_STR_E0 _UxGT(" pasos/mm");
PROGMEM Language_Str MSG_E1_STEPS = LCD_STR_E1 _UxGT(" pasos/mm");
PROGMEM Language_Str MSG_E2_STEPS = LCD_STR_E2 _UxGT(" pasos/mm");
PROGMEM Language_Str MSG_E3_STEPS = LCD_STR_E3 _UxGT(" pasos/mm");
PROGMEM Language_Str MSG_E4_STEPS = LCD_STR_E4 _UxGT(" pasos/mm");
PROGMEM Language_Str MSG_E5_STEPS = LCD_STR_E5 _UxGT(" pasos/mm");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura");
PROGMEM Language_Str MSG_MOTION = _UxGT("Movimiento");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filamento");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E en mm³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Fil. Dia.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Fil. Dia. ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Fil. Dia. ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Fil. Dia. ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Fil. Dia. ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Fil. Dia. ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Fil. Dia. ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("Descarga mm");
PROGMEM Language_Str MSG_FILAMENT_LOAD = _UxGT("Carga mm");
PROGMEM Language_Str MSG_ADVANCE_K = _UxGT("Avance K");
PROGMEM Language_Str MSG_ADVANCE_K_E0 = _UxGT("Avance K ") LCD_STR_E0;
PROGMEM Language_Str MSG_ADVANCE_K_E1 = _UxGT("Avance K ") LCD_STR_E1;
PROGMEM Language_Str MSG_ADVANCE_K_E2 = _UxGT("Avance K ") LCD_STR_E2;
PROGMEM Language_Str MSG_ADVANCE_K_E3 = _UxGT("Avance K ") LCD_STR_E3;
PROGMEM Language_Str MSG_ADVANCE_K_E4 = _UxGT("Avance K ") LCD_STR_E4;
PROGMEM Language_Str MSG_ADVANCE_K_E5 = _UxGT("Avance K ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("Contraste LCD");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Guardar EEPROM");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Cargar EEPROM");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Rest. fábrica");
PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("Inicializar EEPROM");
PROGMEM Language_Str MSG_MEDIA_UPDATE = _UxGT("Actualizar SD/USB");
PROGMEM Language_Str MSG_RESET_PRINTER = _UxGT("Resetear Impresora");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Recargar");
PROGMEM Language_Str MSG_WATCH = _UxGT("Pantalla de Inf.");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Preparar");
PROGMEM Language_Str MSG_TUNE = _UxGT("Ajustar");
PROGMEM Language_Str MSG_START_PRINT = _UxGT("Iniciar impresión");
PROGMEM Language_Str MSG_BUTTON_NEXT = _UxGT("Siguinte");
PROGMEM Language_Str MSG_BUTTON_INIT = _UxGT("Iniciar");
PROGMEM Language_Str MSG_BUTTON_STOP = _UxGT("Parar");
PROGMEM Language_Str MSG_BUTTON_PRINT = _UxGT("Imprimir");
PROGMEM Language_Str MSG_BUTTON_RESET = _UxGT("Reiniciar");
PROGMEM Language_Str MSG_BUTTON_CANCEL = _UxGT("Cancelar");
PROGMEM Language_Str MSG_BUTTON_DONE = _UxGT("Listo");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Pausar impresión");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Reanudar impresión");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Detener impresión");
PROGMEM Language_Str MSG_OUTAGE_RECOVERY = _UxGT("Recuper. por interr.");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Imprim. desde SD/USB");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("SD/USB no presente");
PROGMEM Language_Str MSG_DWELL = _UxGT("Reposo...");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Pulsar para Reanudar");
PROGMEM Language_Str MSG_PRINT_PAUSED = _UxGT("Impresión Pausada");
PROGMEM Language_Str MSG_PRINTING = _UxGT("Imprimiendo...");
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Impresión cancelada");
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Sin movimiento");
PROGMEM Language_Str MSG_KILLED = _UxGT("MUERTA");
PROGMEM Language_Str MSG_STOPPED = _UxGT("DETENIDA");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Retraer mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Interc. Retraer mm");
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Retraer V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Levantar mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("DesRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("Interc. DesRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("DesRet V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAPF = _UxGT("S UnRet V");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Retracción Auto.");
PROGMEM Language_Str MSG_FILAMENT_SWAP_LENGTH = _UxGT("Inter. longitud");
PROGMEM Language_Str MSG_FILAMENT_PURGE_LENGTH = _UxGT("Purgar longitud");
PROGMEM Language_Str MSG_TOOL_CHANGE = _UxGT("Cambiar Herramienta");
PROGMEM Language_Str MSG_TOOL_CHANGE_ZLIFT = _UxGT("Aumentar Z");
PROGMEM Language_Str MSG_SINGLENOZZLE_PRIME_SPD = _UxGT("Prime Speed");
PROGMEM Language_Str MSG_SINGLENOZZLE_RETRACT_SPD = _UxGT("Vel. de retracción");
PROGMEM Language_Str MSG_NOZZLE_STANDBY = _UxGT("Colocar boquilla");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Cambiar filamento");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Cambiar filamento ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Cambiar filamento ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Cambiar filamento ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Cambiar filamento ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Cambiar filamento ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Cambiar filamento ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTLOAD_E0 = _UxGT("Cargar filamento ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTLOAD_E1 = _UxGT("Cargar filamento ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTLOAD_E2 = _UxGT("Cargar filamento ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTLOAD_E3 = _UxGT("Cargar filamento ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTLOAD_E4 = _UxGT("Cargar filamento ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTLOAD_E5 = _UxGT("Cargar filamento ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E0 = _UxGT("Descargar filamento ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E1 = _UxGT("Descargar filamento ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E2 = _UxGT("Descargar filamento ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E3 = _UxGT("Descargar filamento ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E4 = _UxGT("Descargar filamento ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E5 = _UxGT("Descargar filamento ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Descargar todo");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Iniciar SD/USB");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Cambiar SD/USB");
PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("Lanzar SD/USB");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sonda Z fuera cama");
PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("Factor de desviación");
PROGMEM Language_Str MSG_BLTOUCH = _UxGT("BLTouch");
PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("Cmd: Auto-Prueba");
PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("Cmd: Reiniciar");
PROGMEM Language_Str MSG_BLTOUCH_STOW = _UxGT("Cmd: Bajar pistón");
PROGMEM Language_Str MSG_BLTOUCH_DEPLOY = _UxGT("Cmd: Subir pistón");
PROGMEM Language_Str MSG_BLTOUCH_SW_MODE = _UxGT("Cmd: Modo Software");
PROGMEM Language_Str MSG_BLTOUCH_5V_MODE = _UxGT("Cmd: Modo 5V");
PROGMEM Language_Str MSG_BLTOUCH_OD_MODE = _UxGT("Cmd: Modo OD");
PROGMEM Language_Str MSG_BLTOUCH_MODE_STORE = _UxGT("Cmd: Modo almacenar");
PROGMEM Language_Str MSG_BLTOUCH_MODE_STORE_5V = _UxGT("Poner BLTouch a 5V");
PROGMEM Language_Str MSG_BLTOUCH_MODE_STORE_OD = _UxGT("Poner BLTouch a OD");
PROGMEM Language_Str MSG_BLTOUCH_MODE_ECHO = _UxGT("Informe de drenaje");
PROGMEM Language_Str MSG_BLTOUCH_MODE_CHANGE = _UxGT("PELIGRO: ¡Una mala configuración puede producir daños! ¿Proceder igualmente?");
PROGMEM Language_Str MSG_TOUCHMI_PROBE = _UxGT("TouchMI");
PROGMEM Language_Str MSG_TOUCHMI_INIT = _UxGT("Iniciar TouchMI");
PROGMEM Language_Str MSG_TOUCHMI_ZTEST = _UxGT("Test de desfase Z");
PROGMEM Language_Str MSG_TOUCHMI_SAVE = _UxGT("Guardar");
PROGMEM Language_Str MSG_MANUAL_DEPLOY_TOUCHMI = _UxGT("Subir TouchMI");
PROGMEM Language_Str MSG_MANUAL_DEPLOY = _UxGT("Subir Sonda Z");
PROGMEM Language_Str MSG_MANUAL_STOW = _UxGT("Bajar Sonda Z");
PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("Origen %s%s%s Primero");
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Desfase Z");
PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Micropaso X");
PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Micropaso Y");
PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Micropaso Z");
PROGMEM Language_Str MSG_BABYSTEP_TOTAL = _UxGT("Total");
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Cancelado - Endstop");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Calent. fallido");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD_BED = _UxGT("Calent. cama fallido");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD_CHAMBER = _UxGT("Calent. Cám. fallido");
PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("Err: TEMP. REDUN.");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("ESCAPE TERMICO");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY_BED = _UxGT("ESC. TERMICO CAMA");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY_CHAMBER = _UxGT("ESC. TERMICO CAMARA");
PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("Err:TEMP. MÁX");
PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("Err:TEMP. MIN");
PROGMEM Language_Str MSG_ERR_MAXTEMP_BED = _UxGT("Err:TEMP. MÁX CAMA");
PROGMEM Language_Str MSG_ERR_MINTEMP_BED = _UxGT("Err:TEMP. MIN CAMA");
PROGMEM Language_Str MSG_ERR_MAXTEMP_CHAMBER = _UxGT("Err:TEMP. MÁX CÁMARA");
PROGMEM Language_Str MSG_ERR_MINTEMP_CHAMBER = _UxGT("Err:TEMP. MIN CÁMARA");
PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("Origen XY Primero");
PROGMEM Language_Str MSG_HALTED = _UxGT("IMPRESORA DETENIDA");
PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Por favor, reinicie");
PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("d"); // One character only
PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("h"); // One character only
PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("m"); // One character only
PROGMEM Language_Str MSG_HEATING = _UxGT("Calentando...");
PROGMEM Language_Str MSG_COOLING = _UxGT("Enfriando...");
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Calentando Cama...");
PROGMEM Language_Str MSG_BED_COOLING = _UxGT("Enfriando Cama...");
PROGMEM Language_Str MSG_CHAMBER_HEATING = _UxGT("Calentando Cámara...");
PROGMEM Language_Str MSG_CHAMBER_COOLING = _UxGT("Enfriando Cámara...");
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Calibración Delta");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Calibrar X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Calibrar Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Calibrar Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Calibrar Centro");
PROGMEM Language_Str MSG_DELTA_SETTINGS = _UxGT("Configuración Delta");
PROGMEM Language_Str MSG_DELTA_AUTO_CALIBRATE = _UxGT("Auto Calibración");
PROGMEM Language_Str MSG_DELTA_HEIGHT_CALIBRATE = _UxGT("Est. Altura Delta");
PROGMEM Language_Str MSG_DELTA_Z_OFFSET_CALIBRATE = _UxGT("Ajustar Sonda Z");
PROGMEM Language_Str MSG_DELTA_DIAG_ROD = _UxGT("Barra Diagonal");
PROGMEM Language_Str MSG_DELTA_HEIGHT = _UxGT("Altura");
PROGMEM Language_Str MSG_DELTA_RADIUS = _UxGT("Radio");
PROGMEM Language_Str MSG_INFO_MENU = _UxGT("Acerca de Impresora");
PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Info. Impresora");
PROGMEM Language_Str MSG_3POINT_LEVELING = _UxGT("Nivelando 3puntos");
PROGMEM Language_Str MSG_LINEAR_LEVELING = _UxGT("Nivelando Lineal");
PROGMEM Language_Str MSG_BILINEAR_LEVELING = _UxGT("Nivelando Bilineal");
PROGMEM Language_Str MSG_UBL_LEVELING = _UxGT("Nivelando UBL");
PROGMEM Language_Str MSG_MESH_LEVELING = _UxGT("Nivelando en Mallado");
PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Estadísticas Imp.");
PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Info. Controlador");
PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Termistores");
PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Extrusores");
PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("Baudios");
PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Protocolo");
PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Luz cabina");
PROGMEM Language_Str MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Brillo cabina");
#define MSG_MMU2_FILAMENT_CHANGE_HEADER _UxGT("CAMBIAR FILAMENTO") PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Impresora incorrecta");
#define MSG_MMU2_CHOOSE_FILAMENT_HEADER _UxGT("ELIJE FILAMENTO")
#define MSG_MMU2_MENU _UxGT("MMU")
#define MSG_MMU2_WRONG_FIRMWARE _UxGT("¡Actu. MMU Firmware!")
#define MSG_MMU2_NOT_RESPONDING _UxGT("MMU Necesita Cuidado")
#define MSG_MMU2_RESUME _UxGT("Continuar imp.")
#define MSG_MMU2_RESUMING _UxGT("Resumiendo...")
#define MSG_MMU2_LOAD_FILAMENT _UxGT("Cargar Filamento")
#define MSG_MMU2_LOAD_ALL _UxGT("Cargar Todo")
#define MSG_MMU2_LOAD_TO_NOZZLE _UxGT("Cargar hasta boqui.")
#define MSG_MMU2_EJECT_FILAMENT _UxGT("Expulsar Filamento")
#define MSG_MMU2_EJECT_FILAMENT0 _UxGT("Expulsar Filamento 1")
#define MSG_MMU2_EJECT_FILAMENT1 _UxGT("Expulsar Filamento 2")
#define MSG_MMU2_EJECT_FILAMENT2 _UxGT("Expulsar Filamento 3")
#define MSG_MMU2_EJECT_FILAMENT3 _UxGT("Expulsar Filamento 4")
#define MSG_MMU2_EJECT_FILAMENT4 _UxGT("Expulsar Filamento 5")
#define MSG_MMU2_UNLOAD_FILAMENT _UxGT("Descargar Filamento")
#define MSG_MMU2_LOADING_FILAMENT _UxGT("Cargando Fil. %i...")
#define MSG_MMU2_EJECTING_FILAMENT _UxGT("Expulsando Fil. ...")
#define MSG_MMU2_UNLOADING_FILAMENT _UxGT("Descargando Fil....")
#define MSG_MMU2_ALL _UxGT("Todo")
#define MSG_MMU2_FILAMENT0 _UxGT("Filamento 1")
#define MSG_MMU2_FILAMENT1 _UxGT("Filamento 2")
#define MSG_MMU2_FILAMENT2 _UxGT("Filamento 3")
#define MSG_MMU2_FILAMENT3 _UxGT("Filamento 4")
#define MSG_MMU2_FILAMENT4 _UxGT("Filamento 5")
#define MSG_MMU2_RESET _UxGT("Reiniciar MMU")
#define MSG_MMU2_RESETTING _UxGT("Reiniciando MMU...")
#define MSG_MMU2_EJECT_RECOVER _UxGT("Retirar, y pulsar")
#define MSG_MIX _UxGT("Mezcla") #if LCD_WIDTH >= 20
#define MSG_MIX_COMPONENT _UxGT("Componente") PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Cont. de impresión");
#define MSG_MIXER _UxGT("Miezclador") PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Completadas");
#define MSG_GRADIENT _UxGT("Degradado") PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Tiempo total de imp.");
#define MSG_FULL_GRADIENT _UxGT("Degradado Total") PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Impresión más larga");
#define MSG_TOGGLE_MIX _UxGT("Mezcla Conmutada") PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Total Extruido");
#define MSG_CYCLE_MIX _UxGT("Mezcla Cíclica") #else
#define MSG_GRADIENT_MIX _UxGT("Mezcla de Degradado") PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Impresiones");
#define MSG_REVERSE_GRADIENT _UxGT("Degradado inverso") PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Completadas");
#define MSG_ACTIVE_VTOOL _UxGT("Activar Herr.V") PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Total");
#define MSG_START_VTOOL _UxGT("Inicio Herr.V") PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Más larga");
#define MSG_END_VTOOL _UxGT(" Fin Herr.V") PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Extruido");
#define MSG_GRADIENT_ALIAS _UxGT("Alias Herr.V") #endif
#define MSG_RESET_VTOOLS _UxGT("Reiniciar Herr.V") PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Temp. Mínima");
#define MSG_COMMIT_VTOOL _UxGT("Cometer mezc. Herr.V") PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Temp. Máxima");
#define MSG_VTOOLS_RESET _UxGT("Herr.V reiniciados") PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Fuente alimentación");
#define MSG_START_Z _UxGT("Inicio Z") PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Fuerza de empuje");
#define MSG_END_Z _UxGT(" Fin Z") PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Driver %");
PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("ERROR CONEX. TMC");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Escribe DAC EEPROM");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER = _UxGT("CAMBIAR FILAMENTO");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("IMPRESIÓN PAUSADA");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("CARGAR FILAMENTO");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("DESCARGAR FILAMENTO");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("OPC. REINICIO:");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("Purgar más");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Continuar imp.");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Boquilla: ");
PROGMEM Language_Str MSG_RUNOUT_SENSOR = _UxGT("Sensor de sección");
PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("Dist de secc. mm");
PROGMEM Language_Str MSG_LCD_HOMING_FAILED = _UxGT("Ir a origen Fallado");
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Sondeo Fallado");
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Muy Frio");
#define MSG_GAMES _UxGT("Games") PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("ELIJE FILAMENTO");
#define MSG_BRICKOUT _UxGT("Brickout") PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU");
#define MSG_INVADERS _UxGT("Invaders") PROGMEM Language_Str MSG_MMU2_WRONG_FIRMWARE = _UxGT("¡Actu. MMU Firmware!");
#define MSG_SNAKE _UxGT("Sn4k3") PROGMEM Language_Str MSG_MMU2_NOT_RESPONDING = _UxGT("MMU Necesita Cuidado");
#define MSG_MAZE _UxGT("Maze") PROGMEM Language_Str MSG_MMU2_RESUME = _UxGT("Continuar imp.");
PROGMEM Language_Str MSG_MMU2_RESUMING = _UxGT("Resumiendo...");
PROGMEM Language_Str MSG_MMU2_LOAD_FILAMENT = _UxGT("Cargar Filamento");
PROGMEM Language_Str MSG_MMU2_LOAD_ALL = _UxGT("Cargar Todo");
PROGMEM Language_Str MSG_MMU2_LOAD_TO_NOZZLE = _UxGT("Cargar hasta boqui.");
PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT = _UxGT("Expulsar Filamento");
PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT0 = _UxGT("Expulsar Filamento 1");
PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT1 = _UxGT("Expulsar Filamento 2");
PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT2 = _UxGT("Expulsar Filamento 3");
PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT3 = _UxGT("Expulsar Filamento 4");
PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT4 = _UxGT("Expulsar Filamento 5");
PROGMEM Language_Str MSG_MMU2_UNLOAD_FILAMENT = _UxGT("Descargar Filamento");
PROGMEM Language_Str MSG_MMU2_LOADING_FILAMENT = _UxGT("Cargando Fil. %i...");
PROGMEM Language_Str MSG_MMU2_EJECTING_FILAMENT = _UxGT("Expulsando Fil. ...");
PROGMEM Language_Str MSG_MMU2_UNLOADING_FILAMENT = _UxGT("Descargando Fil....");
PROGMEM Language_Str MSG_MMU2_ALL = _UxGT("Todo");
PROGMEM Language_Str MSG_MMU2_FILAMENT0 = _UxGT("Filamento 1");
PROGMEM Language_Str MSG_MMU2_FILAMENT1 = _UxGT("Filamento 2");
PROGMEM Language_Str MSG_MMU2_FILAMENT2 = _UxGT("Filamento 3");
PROGMEM Language_Str MSG_MMU2_FILAMENT3 = _UxGT("Filamento 4");
PROGMEM Language_Str MSG_MMU2_FILAMENT4 = _UxGT("Filamento 5");
PROGMEM Language_Str MSG_MMU2_RESET = _UxGT("Reiniciar MMU");
PROGMEM Language_Str MSG_MMU2_RESETTING = _UxGT("Reiniciando MMU...");
PROGMEM Language_Str MSG_MMU2_EJECT_RECOVER = _UxGT("Retirar, y pulsar");
#if LCD_HEIGHT >= 4 PROGMEM Language_Str MSG_MIX = _UxGT("Mezcla");
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Pulsar el botón para") PROGMEM Language_Str MSG_MIX_COMPONENT_1 = _UxGT("Componente 1");
#define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("reanudar impresión") PROGMEM Language_Str MSG_MIX_COMPONENT_2 = _UxGT("Componente 2");
#define MSG_PAUSE_PRINT_INIT_1 _UxGT("Aparcando...") PROGMEM Language_Str MSG_MIX_COMPONENT_3 = _UxGT("Componente 3");
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Esperando para") PROGMEM Language_Str MSG_MIX_COMPONENT_4 = _UxGT("Componente 4");
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("iniciar el cambio") PROGMEM Language_Str MSG_MIX_COMPONENT_5 = _UxGT("Componente 5");
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("de filamento") PROGMEM Language_Str MSG_MIX_COMPONENT_6 = _UxGT("Componente 6");
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Inserte el filamento") PROGMEM Language_Str MSG_MIXER = _UxGT("Miezclador");
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("y pulse el botón") PROGMEM Language_Str MSG_GRADIENT = _UxGT("Degradado");
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("para continuar...") PROGMEM Language_Str MSG_FULL_GRADIENT = _UxGT("Degradado Total");
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Pulse el botón para") PROGMEM Language_Str MSG_TOGGLE_MIX = _UxGT("Mezcla Conmutada");
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("calentar la boquilla") PROGMEM Language_Str MSG_CYCLE_MIX = _UxGT("Mezcla Cíclica");
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Calentando boquilla") PROGMEM Language_Str MSG_GRADIENT_MIX = _UxGT("Mezcla de Degradado");
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Espere por favor...") PROGMEM Language_Str MSG_REVERSE_GRADIENT = _UxGT("Degradado inverso");
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Espere para") PROGMEM Language_Str MSG_ACTIVE_VTOOL = _UxGT("Activar Herr.V");
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("liberar el filamento") PROGMEM Language_Str MSG_START_VTOOL = _UxGT("Inicio Herr.V");
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Espere para") PROGMEM Language_Str MSG_END_VTOOL = _UxGT(" Fin Herr.V");
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("purgar el filamento") PROGMEM Language_Str MSG_GRADIENT_ALIAS = _UxGT("Alias Herr.V");
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Pulse para finalizar") PROGMEM Language_Str MSG_RESET_VTOOLS = _UxGT("Reiniciar Herr.V");
#define MSG_FILAMENT_CHANGE_CONT_PURGE_2 _UxGT("la purga de filamen.") PROGMEM Language_Str MSG_COMMIT_VTOOL = _UxGT("Cometer mezc. Herr.V");
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Esperando impresora") PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("Herr.V reiniciados");
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("para reanudar...") PROGMEM Language_Str MSG_START_Z = _UxGT("Inicio Z:");
#else PROGMEM Language_Str MSG_END_Z = _UxGT(" Fin Z:");
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Pulse para continuar")
#define MSG_PAUSE_PRINT_INIT_1 _UxGT("Aparcando...")
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Por Favor espere...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Inserte y Pulse")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Pulse para Calentar")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Calentando...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Liberando...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Cargando...")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Purgando...")
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Pulse para finalizar")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Reanudando...")
#endif
#define MSG_TMC_DRIVERS _UxGT("Controladores TMC") PROGMEM Language_Str MSG_GAMES = _UxGT("Games");
#define MSG_TMC_CURRENT _UxGT("Amperaje Controlador") PROGMEM Language_Str MSG_BRICKOUT = _UxGT("Brickout");
#define MSG_TMC_HYBRID_THRS _UxGT("Límite Hibrido") PROGMEM Language_Str MSG_INVADERS = _UxGT("Invaders");
#define MSG_TMC_HOMING_THRS _UxGT("Origen sin sensores") PROGMEM Language_Str MSG_SNAKE = _UxGT("Sn4k3");
#define MSG_TMC_STEPPING_MODE _UxGT("Modo de pasos") PROGMEM Language_Str MSG_MAZE = _UxGT("Maze");
#define MSG_TMC_STEALTH_ENABLED _UxGT("StealthChop Habilit.")
#define MSG_SERVICE_RESET _UxGT("Reiniciar") #if LCD_HEIGHT >= 4
#define MSG_SERVICE_IN _UxGT(" dentro:") PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_2_LINE("Pulsar el botón para", "reanudar impresión"));
PROGMEM Language_Str MSG_PAUSE_PRINT_INIT = _UxGT(MSG_1_LINE("Aparcando..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Esperando para", "iniciar el cambio", "de filamento"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Inserte el filamento", "y pulse el botón", "para continuar..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Pulse el botón para", "calentar la boquilla"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("Calentando boquilla", "Espere por favor..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Espere para", "liberar el filamento"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_2_LINE("Espere para", "purgar el filamento"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_2_LINE("Pulse para finalizar", "la purga de filamen."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("Esperando impresora", "para reanudar..."));
#else
PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_1_LINE("Pulse para continuar"));
PROGMEM Language_Str MSG_PAUSE_PRINT_INIT = _UxGT(MSG_1_LINE("Aparcando..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Por Favor espere..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Inserte y Pulse"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_1_LINE("Pulse para Calentar"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("Calentando..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Liberando..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Cargando..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_1_LINE("Purgando..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_1_LINE("Pulse para finalizar"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Reanudando..."));
#endif
#define MSG_BACKLASH _UxGT("Backlash") PROGMEM Language_Str MSG_TMC_DRIVERS = _UxGT("Controladores TMC");
#define MSG_BACKLASH_CORRECTION _UxGT("Correction") PROGMEM Language_Str MSG_TMC_CURRENT = _UxGT("Amperaje Controlador");
#define MSG_BACKLASH_SMOOTHING _UxGT("Suavizado") PROGMEM Language_Str MSG_TMC_HYBRID_THRS = _UxGT("Límite Hibrido");
PROGMEM Language_Str MSG_TMC_HOMING_THRS = _UxGT("Origen sin sensores");
PROGMEM Language_Str MSG_TMC_STEPPING_MODE = _UxGT("Modo de pasos");
PROGMEM Language_Str MSG_TMC_STEALTH_ENABLED = _UxGT("StealthChop Habilit.");
PROGMEM Language_Str MSG_SERVICE_RESET = _UxGT("Reiniciar");
PROGMEM Language_Str MSG_SERVICE_IN = _UxGT(" dentro:");
PROGMEM Language_Str MSG_BACKLASH_CORRECTION = _UxGT("Correction");
PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("Suavizado");
}

View file

@ -32,358 +32,362 @@
#define DISPLAY_CHARSET_ISO10646_1 #define DISPLAY_CHARSET_ISO10646_1
#define NOT_EXTENDED_ISO10646_1_5X7 #define NOT_EXTENDED_ISO10646_1_5X7
#define WELCOME_MSG MACHINE_NAME _UxGT(" prest.") namespace Language_eu {
#define MSG_BACK _UxGT("Atzera") using namespace Language_en; // Inherit undefined strings from English
#define MSG_MEDIA_INSERTED _UxGT("Txartela sartuta")
#define MSG_MEDIA_REMOVED _UxGT("Txartela kenduta")
#define MSG_LCD_ENDSTOPS _UxGT("Endstops") // Max length 8 characters
#define MSG_MAIN _UxGT("Menu nagusia")
#define MSG_AUTOSTART _UxGT("Auto hasiera")
#define MSG_DISABLE_STEPPERS _UxGT("Itzali motoreak")
#define MSG_DEBUG_MENU _UxGT("Arazketa Menua")
#define MSG_PROGRESS_BAR_TEST _UxGT("Prog. Barra Proba")
#define MSG_AUTO_HOME _UxGT("Hasierara joan")
#define MSG_AUTO_HOME_X _UxGT("X jatorrira")
#define MSG_AUTO_HOME_Y _UxGT("Y jatorrira")
#define MSG_AUTO_HOME_Z _UxGT("Z jatorrira")
#define MSG_LEVEL_BED_HOMING _UxGT("XYZ hasieraratzen")
#define MSG_LEVEL_BED_WAITING _UxGT("Klik egin hasteko")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Hurrengo Puntua")
#define MSG_LEVEL_BED_DONE _UxGT("Berdintzea eginda")
//#define MSG_Z_FADE_HEIGHT _UxGT("Fade Height")
#define MSG_SET_HOME_OFFSETS _UxGT("Etxe. offset eza.")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Offsetak ezarrita")
#define MSG_SET_ORIGIN _UxGT("Hasiera ipini")
#define MSG_PREHEAT_1 _UxGT("Berotu " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ")
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" Guztia")
#define MSG_PREHEAT_1_END MSG_PREHEAT_1 _UxGT(" Amaia")
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" Ohea")
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" Ezarp.")
#define MSG_PREHEAT_2 _UxGT("Berotu " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_N MSG_PREHEAT_1 _UxGT(" ")
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_1 _UxGT(" Guztia")
#define MSG_PREHEAT_2_END MSG_PREHEAT_2 _UxGT(" Amaia")
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_1 _UxGT(" Ohea")
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_1 _UxGT(" Ezarp.")
#define MSG_COOLDOWN _UxGT("Hoztu")
#define MSG_SWITCH_PS_ON _UxGT("Energia piztu")
#define MSG_SWITCH_PS_OFF _UxGT("Energia itzali")
#define MSG_EXTRUDE _UxGT("Estruitu")
#define MSG_RETRACT _UxGT("Atzera eragin")
#define MSG_MOVE_AXIS _UxGT("Ardatzak mugitu")
#define MSG_BED_LEVELING _UxGT("Ohe berdinketa")
#define MSG_LEVEL_BED _UxGT("Ohea berdindu")
#define MSG_LEVEL_CORNERS _UxGT("Ertzak berdindu")
#define MSG_NEXT_CORNER _UxGT("Hurrengo ertza")
#define MSG_EDIT_MESH _UxGT("Sarea editatu")
//#define MSG_EDITING_STOPPED _UxGT("Mesh Editing Stopped")
//#define MSG_USER_MENU _UxGT("Custom Commands")
#define MSG_UBL_DOING_G29 _UxGT("G29 exekutatzen") constexpr uint8_t CHARSIZE = 1;
#define MSG_UBL_TOOLS _UxGT("UBL Tresnak") PROGMEM Language_Str LANGUAGE = _UxGT("Basque-Euskera");
#define MSG_UBL_LEVEL_BED _UxGT("Unified Bed Leveling")
#define MSG_UBL_MANUAL_MESH _UxGT("Sarea eskuz sortu")
//#define MSG_UBL_BC_INSERT _UxGT("Place shim & measure")
#define MSG_UBL_BC_INSERT2 _UxGT("Neurtu")
//#define MSG_UBL_BC_REMOVE _UxGT("Remove & measure bed")
//#define MSG_UBL_MOVING_TO_NEXT _UxGT("Moving to next")
#define MSG_UBL_ACTIVATE_MESH _UxGT("UBL aktibatu")
#define MSG_UBL_DEACTIVATE_MESH _UxGT("UBL desaktibatu")
#define MSG_UBL_SET_TEMP_BED _UxGT("Ohearen tenperatura")
#define MSG_UBL_BED_TEMP_CUSTOM MSG_UBL_SET_TEMP_BED
#define MSG_UBL_SET_TEMP_HOTEND _UxGT("Mutur beroaren tenp.")
#define MSG_UBL_HOTEND_TEMP_CUSTOM MSG_UBL_SET_TEMP_HOTEND
#define MSG_UBL_MESH_EDIT _UxGT("Sarea editatu")
//#define MSG_UBL_EDIT_CUSTOM_MESH _UxGT("Edit Custom Mesh")
//#define MSG_UBL_FINE_TUNE_MESH _UxGT("Fine Tuning Mesh")
#define MSG_UBL_DONE_EDITING_MESH _UxGT("Sarea editatzea eginda")
//#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Build Custom Mesh")
#define MSG_UBL_BUILD_MESH_MENU _UxGT("Sarea sortu")
#define MSG_UBL_BUILD_MESH_M1 _UxGT(PREHEAT_1_LABEL " sarea sortu")
#define MSG_UBL_BUILD_MESH_M2 _UxGT(PREHEAT_2_LABEL " sarea sortu")
#define MSG_UBL_BUILD_COLD_MESH _UxGT("Sare hotza sortu")
#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Sarearen altuera doitu")
//#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Height Amount")
#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("Sarea balioetsi")
#define MSG_UBL_VALIDATE_MESH_M1 _UxGT(PREHEAT_1_LABEL " sarea balioetsi")
#define MSG_UBL_VALIDATE_MESH_M2 _UxGT(PREHEAT_2_LABEL " sarea balioetsi")
//#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Validate Custom Mesh")
#define MSG_UBL_CONTINUE_MESH _UxGT("Ohe sarea balioetsi")
#define MSG_UBL_MESH_LEVELING _UxGT("Sare berdinketa")
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("3 puntuko berdinketa")
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Lauki-sare berdinketa")
#define MSG_UBL_MESH_LEVEL _UxGT("Sarea berdindu")
//#define MSG_UBL_SIDE_POINTS _UxGT("Side Points")
#define MSG_UBL_MAP_TYPE _UxGT("Mapa mota")
//#define MSG_UBL_OUTPUT_MAP _UxGT("Output Mesh Map")
//#define MSG_UBL_OUTPUT_MAP_HOST _UxGT("Output for Host")
//#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Output for CSV")
//#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Off Printer Backup")
//#define MSG_UBL_INFO_UBL _UxGT("Output UBL Info")
//#define MSG_UBL_FILLIN_AMOUNT _UxGT("Fill-in Amount")
//#define MSG_UBL_MANUAL_FILLIN _UxGT("Manual Fill-in")
//#define MSG_UBL_SMART_FILLIN _UxGT("Smart Fill-in")
//#define MSG_UBL_FILLIN_MESH _UxGT("Fill-in Mesh")
//#define MSG_UBL_INVALIDATE_ALL _UxGT("Invalidate All")
//#define MSG_UBL_INVALIDATE_CLOSEST _UxGT("Invalidate Closest")
//#define MSG_UBL_FINE_TUNE_ALL _UxGT("Fine Tune All")
//#define MSG_UBL_FINE_TUNE_CLOSEST _UxGT("Fine Tune Closest")
//#define MSG_UBL_STORAGE_MESH_MENU _UxGT("Mesh Storage")
//#define MSG_UBL_STORAGE_SLOT _UxGT("Memory Slot")
//#define MSG_UBL_LOAD_MESH _UxGT("Load Bed Mesh")
//#define MSG_UBL_SAVE_MESH _UxGT("Save Bed Mesh")
//#define MSG_MESH_LOADED _UxGT("Mesh %i loaded")
//#define MSG_MESH_SAVED _UxGT("Mesh %i saved")
//#define MSG_UBL_NO_STORAGE _UxGT("No storage")
//#define MSG_UBL_SAVE_ERROR _UxGT("Err: UBL Save")
//#define MSG_UBL_RESTORE_ERROR _UxGT("Err: UBL Restore")
//#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Z-Offset Stopped")
//#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("Step-By-Step UBL")
#define MSG_LED_CONTROL _UxGT("LED ezarpenak")
#define MSG_LEDS _UxGT("Argiak")
#define MSG_LED_PRESETS _UxGT("Argi aurrehautaketak")
#define MSG_SET_LEDS_RED _UxGT("Gorria")
#define MSG_SET_LEDS_ORANGE _UxGT("Laranja")
#define MSG_SET_LEDS_YELLOW _UxGT("Horia")
#define MSG_SET_LEDS_GREEN _UxGT("Berdea")
#define MSG_SET_LEDS_BLUE _UxGT("Urdina")
#define MSG_SET_LEDS_INDIGO _UxGT("Indigo")
#define MSG_SET_LEDS_VIOLET _UxGT("Bioleta")
#define MSG_SET_LEDS_WHITE _UxGT("Zuria")
#define MSG_SET_LEDS_DEFAULT _UxGT("Lehenetsia")
#define MSG_CUSTOM_LEDS _UxGT("Argi pertsonalizatuak")
#define MSG_INTENSITY_R _UxGT("Intentsitate gorria")
#define MSG_INTENSITY_G _UxGT("Intentsitate berdea")
#define MSG_INTENSITY_B _UxGT("Intentsitate urdina")
#define MSG_INTENSITY_W _UxGT("Intentsitate zuria")
#define MSG_LED_BRIGHTNESS _UxGT("Distira")
#define MSG_MOVING _UxGT("Mugitzen...") PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" prest.");
#define MSG_FREE_XY _UxGT("Askatu XY") PROGMEM Language_Str MSG_BACK = _UxGT("Atzera");
#define MSG_MOVE_X _UxGT("Mugitu X") PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Txartela sartuta");
#define MSG_MOVE_Y _UxGT("Mugitu Y") PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Txartela kenduta");
#define MSG_MOVE_Z _UxGT("Mugitu Z") PROGMEM Language_Str MSG_MAIN = _UxGT("Menu nagusia");
#define MSG_MOVE_E _UxGT("Estrusorea") PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Auto hasiera");
#define MSG_MOVE_Z_DIST _UxGT("Mugitu %smm") PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Itzali motoreak");
#define MSG_MOVE_01MM _UxGT("Mugitu 0.1mm") PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("Arazketa Menua");
#define MSG_MOVE_1MM _UxGT("Mugitu 1mm") PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Prog. Barra Proba");
#define MSG_MOVE_10MM _UxGT("Mugitu 10mm") PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Hasierara joan");
#define MSG_SPEED _UxGT("Abiadura") PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("X jatorrira");
#define MSG_BED_Z _UxGT("Z Ohea") PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Y jatorrira");
#define MSG_NOZZLE _UxGT("Pita") PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Z jatorrira");
#define MSG_BED _UxGT("Ohea") PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("XYZ hasieraratzen");
#define MSG_FAN_SPEED _UxGT("Haizagailu abiadura") PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Klik egin hasteko");
#define MSG_EXTRA_FAN_SPEED _UxGT("Haiz.gehig. abiadura") PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Hurrengo Puntua");
#define MSG_FLOW _UxGT("Fluxua") PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Berdintzea eginda");
#define MSG_CONTROL _UxGT("Kontrola") PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Etxe. offset eza.");
#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Min") PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Offsetak ezarrita");
#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Max") PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Hasiera ipini");
#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Fakt") PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Berotu ") PREHEAT_1_LABEL;
#define MSG_AUTOTEMP _UxGT("Auto tenperatura") PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Berotu ") PREHEAT_1_LABEL " " LCD_STR_N0;
#define MSG_LCD_ON _UxGT("On") PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Berotu ") PREHEAT_1_LABEL " " LCD_STR_N1;
#define MSG_LCD_OFF _UxGT("Off") PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Berotu ") PREHEAT_1_LABEL " " LCD_STR_N2;
#define MSG_PID_P _UxGT("PID-P") PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Berotu ") PREHEAT_1_LABEL " " LCD_STR_N3;
#define MSG_PID_I _UxGT("PID-I") PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Berotu ") PREHEAT_1_LABEL " " LCD_STR_N4;
#define MSG_PID_D _UxGT("PID-D") PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Berotu ") PREHEAT_1_LABEL " " LCD_STR_N5;
#define MSG_PID_C _UxGT("PID-C") PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Berotu ") PREHEAT_1_LABEL _UxGT(" Amaia");
#define MSG_SELECT _UxGT("Aukeratu") PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Berotu ") PREHEAT_1_LABEL _UxGT(" Amaia ") LCD_STR_N0;
#define MSG_ACC _UxGT("Azelerazioa") PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Berotu ") PREHEAT_1_LABEL _UxGT(" Amaia ") LCD_STR_N1;
#define MSG_JERK _UxGT("Astindua") PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Berotu ") PREHEAT_1_LABEL _UxGT(" Amaia ") LCD_STR_N2;
#if IS_KINEMATIC PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Berotu ") PREHEAT_1_LABEL _UxGT(" Amaia ") LCD_STR_N3;
#define MSG_VA_JERK _UxGT("Va-astindua") PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Berotu ") PREHEAT_1_LABEL _UxGT(" Amaia ") LCD_STR_N4;
#define MSG_VB_JERK _UxGT("Vb-astindua") PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Berotu ") PREHEAT_1_LABEL _UxGT(" Amaia ") LCD_STR_N5;
#define MSG_VC_JERK _UxGT("Vc-astindua") PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Berotu ") PREHEAT_1_LABEL _UxGT(" Guztia");
#else PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Berotu ") PREHEAT_1_LABEL _UxGT(" Ohea");
#define MSG_VA_JERK _UxGT("Vx-astindua") PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Berotu ") PREHEAT_1_LABEL _UxGT(" Ezarp.");
#define MSG_VB_JERK _UxGT("Vy-astindua") PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Berotu ") PREHEAT_2_LABEL;
#define MSG_VC_JERK _UxGT("Vz-astindua") PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Berotu ") PREHEAT_2_LABEL " " LCD_STR_N0;
#endif PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Berotu ") PREHEAT_2_LABEL " " LCD_STR_N1;
#define MSG_VE_JERK _UxGT("Ve-astindua") PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Berotu ") PREHEAT_2_LABEL " " LCD_STR_N2;
//#define MSG_VELOCITY _UxGT("Velocity") PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Berotu ") PREHEAT_2_LABEL " " LCD_STR_N3;
#define MSG_VMAX _UxGT("Vmax ") PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Berotu ") PREHEAT_2_LABEL " " LCD_STR_N4;
#define MSG_VMIN _UxGT("Vmin") PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Berotu ") PREHEAT_2_LABEL " " LCD_STR_N5;
#define MSG_VTRAV_MIN _UxGT("VBidaia min") PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Berotu ") PREHEAT_2_LABEL _UxGT(" Amaia");
#define MSG_ACCELERATION MSG_ACC PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Berotu ") PREHEAT_2_LABEL _UxGT(" Amaia ") LCD_STR_N0;
#define MSG_AMAX _UxGT("Amax ") PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Berotu ") PREHEAT_2_LABEL _UxGT(" Amaia ") LCD_STR_N1;
#define MSG_A_RETRACT _UxGT("A-retrakt") PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Berotu ") PREHEAT_2_LABEL _UxGT(" Amaia ") LCD_STR_N2;
#define MSG_A_TRAVEL _UxGT("A-bidaia") PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Berotu ") PREHEAT_2_LABEL _UxGT(" Amaia ") LCD_STR_N3;
#define MSG_STEPS_PER_MM _UxGT("Pausoak/mm") PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Berotu ") PREHEAT_2_LABEL _UxGT(" Amaia ") LCD_STR_N4;
#if IS_KINEMATIC PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Berotu ") PREHEAT_2_LABEL _UxGT(" Amaia ") LCD_STR_N5;
#define MSG_ASTEPS _UxGT("A pausoak/mm") PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Berotu ") PREHEAT_2_LABEL _UxGT(" Guztia");
#define MSG_BSTEPS _UxGT("B pausoak/mm") PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Berotu ") PREHEAT_2_LABEL _UxGT(" Ohea");
#define MSG_CSTEPS _UxGT("C pausoak/mm") PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Berotu ") PREHEAT_2_LABEL _UxGT(" Ezarp.");
#else PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Hoztu");
#define MSG_ASTEPS _UxGT("X pausoak/mm") PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Energia piztu");
#define MSG_BSTEPS _UxGT("Y pausoak/mm") PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Energia itzali");
#define MSG_CSTEPS _UxGT("Z pausoak/mm") PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Estruitu");
#endif PROGMEM Language_Str MSG_RETRACT = _UxGT("Atzera eragin");
#define MSG_ESTEPS _UxGT("E pausoak/mm") PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Ardatzak mugitu");
#define MSG_E0_STEPS _UxGT("E1 pausoak/mm") PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Ohe berdinketa");
#define MSG_E1_STEPS _UxGT("E2 pausoak/mm") PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Ohea berdindu");
#define MSG_E2_STEPS _UxGT("E3 pausoak/mm") PROGMEM Language_Str MSG_LEVEL_CORNERS = _UxGT("Ertzak berdindu");
#define MSG_E3_STEPS _UxGT("E4 pausoak/mm") PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("Hurrengo ertza");
#define MSG_E4_STEPS _UxGT("E5 pausoak/mm") PROGMEM Language_Str MSG_EDIT_MESH = _UxGT("Sarea editatu");
#define MSG_E5_STEPS _UxGT("E6 pausoak/mm")
#define MSG_TEMPERATURE _UxGT("Tenperatura")
#define MSG_MOTION _UxGT("Mugimendua")
#define MSG_FILAMENT _UxGT("Harizpia")
#define MSG_VOLUMETRIC_ENABLED _UxGT("E mm3-tan")
#define MSG_FILAMENT_DIAM _UxGT("Hariz. Dia.")
#define MSG_FILAMENT_UNLOAD _UxGT("Deskargatu mm")
#define MSG_FILAMENT_LOAD _UxGT("Kargatu mm")
#define MSG_ADVANCE_K _UxGT("K Aurrerapena")
#define MSG_CONTRAST _UxGT("LCD kontrastea")
#define MSG_STORE_EEPROM _UxGT("Gorde memoria")
#define MSG_LOAD_EEPROM _UxGT("Kargatu memoria")
#define MSG_RESTORE_FAILSAFE _UxGT("Larri. berriz.")
#define MSG_INIT_EEPROM _UxGT("EEPROM-a hasieratu")
#define MSG_REFRESH _UxGT("Berriz kargatu")
#define MSG_WATCH _UxGT("Pantaila info")
#define MSG_PREPARE _UxGT("Prestatu")
#define MSG_TUNE _UxGT("Doitu")
#define MSG_PAUSE_PRINT _UxGT("Pausatu inprimak.")
#define MSG_RESUME_PRINT _UxGT("Jarraitu inprima.")
#define MSG_STOP_PRINT _UxGT("Gelditu inprima.")
#define MSG_MEDIA_MENU _UxGT("SD-tik inprimatu")
#define MSG_NO_MEDIA _UxGT("Ez dago SD-rik")
#define MSG_DWELL _UxGT("Lo egin...")
#define MSG_USERWAIT _UxGT("Aginduak zain...")
#define MSG_PRINT_PAUSED _UxGT("Inprim. geldi.")
#define MSG_PRINT_ABORTED _UxGT("Inprim. deusezta.")
#define MSG_NO_MOVE _UxGT("Mugimendu gabe.")
#define MSG_KILLED _UxGT("AKABATUTA. ")
#define MSG_STOPPED _UxGT("GELDITUTA. ")
#define MSG_CONTROL_RETRACT _UxGT("Atzera egin mm")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Swap Atzera mm")
#define MSG_CONTROL_RETRACTF _UxGT("Atzera egin V")
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Igo mm")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("Atzera egin mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Swap Atzera mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("Atzera egin V")
//#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V")
#define MSG_AUTORETRACT _UxGT("Atzera egin")
#define MSG_FILAMENTCHANGE _UxGT("Aldatu harizpia")
#define MSG_FILAMENTLOAD _UxGT("Harizpia kargatu")
#define MSG_FILAMENTUNLOAD _UxGT("Harizpia deskargatu")
#define MSG_FILAMENTUNLOAD_ALL _UxGT("Erabat deskargatu")
#define MSG_INIT_MEDIA _UxGT("Hasieratu SD-a")
#define MSG_CHANGE_MEDIA _UxGT("Aldatu txartela")
#define MSG_ZPROBE_OUT _UxGT("Z zunda kanpora")
#define MSG_SKEW_FACTOR _UxGT("Okertze faktorea")
#define MSG_BLTOUCH _UxGT("BLTouch")
#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch AutoProba")
#define MSG_BLTOUCH_RESET _UxGT("BLTouch berrabia.")
#define MSG_BLTOUCH_DEPLOY _UxGT("BLTouch jaitsi/luzatu")
#define MSG_BLTOUCH_STOW _UxGT("BLTouch igo/jaso")
#define MSG_HOME_FIRST _UxGT("Etxera %s%s%s lehenengo")
#define MSG_ZPROBE_ZOFFSET _UxGT("Z Konpentsatu")
#define MSG_BABYSTEP_X _UxGT("Mikro-urratsa X")
#define MSG_BABYSTEP_Y _UxGT("Mikro-urratsa Y")
#define MSG_BABYSTEP_Z _UxGT("Mikro-urratsa Z")
#define MSG_ENDSTOP_ABORT _UxGT("Endstop deusezta.")
#define MSG_HEATING_FAILED_LCD _UxGT("Err: Beroketa")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Err: Tenperatura")
#define MSG_THERMAL_RUNAWAY _UxGT("TENP. KONTROL EZA")
#define MSG_ERR_MAXTEMP _UxGT("Err: Tenp Maximoa")
#define MSG_ERR_MINTEMP _UxGT("Err: Tenp Minimoa")
#define MSG_ERR_MAXTEMP_BED _UxGT("Err: Ohe Tenp Max")
#define MSG_ERR_MINTEMP_BED _UxGT("Err: Ohe Tenp Min")
#define MSG_ERR_Z_HOMING _UxGT("Etxera XY lehenengo")
#define MSG_HALTED _UxGT("INPRIMA. GELDIRIK")
#define MSG_PLEASE_RESET _UxGT("Berrabia. Mesedez")
#define MSG_SHORT_DAY _UxGT("d") // One character only
#define MSG_SHORT_HOUR _UxGT("h") // One character only
#define MSG_SHORT_MINUTE _UxGT("m") // One character only
#define MSG_HEATING _UxGT("Berotzen...")
#define MSG_BED_HEATING _UxGT("Ohea Berotzen...")
#define MSG_DELTA_CALIBRATE _UxGT("Delta Kalibraketa")
#define MSG_DELTA_CALIBRATE_X _UxGT("Kalibratu X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibratu Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Kalibratu Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Kalibratu Zentrua")
#define MSG_DELTA_SETTINGS _UxGT("Delta ezarpenak")
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Auto Kalibraketa")
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Delta Alt. Ezar.")
#define MSG_DELTA_DIAG_ROD _UxGT("Barra diagonala")
#define MSG_DELTA_HEIGHT _UxGT("Altuera")
#define MSG_DELTA_RADIUS _UxGT("Erradioa")
#define MSG_INFO_MENU _UxGT("Inprimagailu Inf.")
#define MSG_INFO_PRINTER_MENU _UxGT("Inprimagailu Inf.")
#define MSG_3POINT_LEVELING _UxGT("3 puntuko berdinketa")
#define MSG_LINEAR_LEVELING _UxGT("Berdinketa lineala")
#define MSG_BILINEAR_LEVELING _UxGT("Berdinketa bilinearra")
#define MSG_UBL_LEVELING _UxGT("Unified Bed Leveling")
#define MSG_MESH_LEVELING _UxGT("Sare berdinketa")
#define MSG_INFO_STATS_MENU _UxGT("Inprima. estatis.")
#define MSG_INFO_BOARD_MENU _UxGT("Txartelaren Info.")
#define MSG_INFO_THERMISTOR_MENU _UxGT("Termistoreak")
#define MSG_INFO_EXTRUDERS _UxGT("Estrusoreak")
#define MSG_INFO_BAUDRATE _UxGT("Baudioak")
#define MSG_INFO_PROTOCOL _UxGT("Protokoloa")
#define MSG_CASE_LIGHT _UxGT("Kabina Argia")
//#define MSG_CASE_LIGHT_BRIGHTNESS
#if LCD_WIDTH >= 20
#define MSG_INFO_PRINT_COUNT _UxGT("Inprim. Zenbaketa")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Burututa")
#define MSG_INFO_PRINT_TIME _UxGT("Inprim. denbora")
#define MSG_INFO_PRINT_LONGEST _UxGT("Imprimatze luzeena")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Estruituta guztira")
#else
#define MSG_INFO_PRINT_COUNT _UxGT("Inprimatze")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Burututa")
#define MSG_INFO_PRINT_TIME _UxGT("Guztira")
#define MSG_INFO_PRINT_LONGEST _UxGT("Luzeena")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Estrusio")
#endif
#define MSG_INFO_MIN_TEMP _UxGT("Tenp. Minimoa")
#define MSG_INFO_MAX_TEMP _UxGT("Tenp. Maximoa")
#define MSG_INFO_PSU _UxGT("Elikadura-iturria")
#define MSG_DRIVE_STRENGTH _UxGT("Driver-aren potentzia")
#define MSG_DAC_PERCENT _UxGT("Driver %")
#define MSG_DAC_EEPROM_WRITE _UxGT("Idatzi DAC EEPROM")
#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("HARIZPIA ALDATU")
#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("HARIZPIA KARGATU")
#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("HARIZPIA DESKARGATU")
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("ALDAKETA AUKERAK:")
//#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Purge more")
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Inprima. jarraitu")
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Pita: ")
#define MSG_ERR_HOMING_FAILED _UxGT("Hasi. huts egin du")
#define MSG_ERR_PROBING_FAILED _UxGT("Neurketak huts egin du")
#define MSG_M600_TOO_COLD _UxGT("M600: hotzegi")
#define MSG_EXPECTED_PRINTER _UxGT("Inprimagailu okerra") PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("G29 exekutatzen");
PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("UBL Tresnak");
PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("Unified Bed Leveling");
PROGMEM Language_Str MSG_UBL_MANUAL_MESH = _UxGT("Sarea eskuz sortu");
PROGMEM Language_Str MSG_UBL_BC_INSERT2 = _UxGT("Neurtu");
PROGMEM Language_Str MSG_UBL_ACTIVATE_MESH = _UxGT("UBL aktibatu");
PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("UBL desaktibatu");
PROGMEM Language_Str MSG_UBL_SET_TEMP_BED = _UxGT("Ohearen tenperatura");
PROGMEM Language_Str MSG_UBL_BED_TEMP_CUSTOM = _UxGT("Bed Temp");
PROGMEM Language_Str MSG_UBL_SET_TEMP_HOTEND = _UxGT("Mutur beroaren tenp.");
PROGMEM Language_Str MSG_UBL_HOTEND_TEMP_CUSTOM = _UxGT("Hotend Temp");
PROGMEM Language_Str MSG_UBL_MESH_EDIT = _UxGT("Sarea editatu");
PROGMEM Language_Str MSG_UBL_DONE_EDITING_MESH = _UxGT("Sarea editatzea eginda");
PROGMEM Language_Str MSG_UBL_BUILD_MESH_MENU = _UxGT("Sarea sortu");
PROGMEM Language_Str MSG_UBL_BUILD_MESH_M1 = PREHEAT_1_LABEL _UxGT(" sarea sortu");
PROGMEM Language_Str MSG_UBL_BUILD_MESH_M2 = PREHEAT_2_LABEL _UxGT(" sarea sortu");
PROGMEM Language_Str MSG_UBL_BUILD_COLD_MESH = _UxGT("Sare hotza sortu");
PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_ADJUST = _UxGT("Sarearen altuera doitu");
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_MENU = _UxGT("Sarea balioetsi");
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M1 = PREHEAT_1_LABEL _UxGT(" sarea balioetsi");
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M2 = PREHEAT_2_LABEL _UxGT(" sarea balioetsi");
PROGMEM Language_Str MSG_UBL_CONTINUE_MESH = _UxGT("Ohe sarea balioetsi");
PROGMEM Language_Str MSG_UBL_MESH_LEVELING = _UxGT("Sare berdinketa");
PROGMEM Language_Str MSG_UBL_3POINT_MESH_LEVELING = _UxGT("3 puntuko berdinketa");
PROGMEM Language_Str MSG_UBL_GRID_MESH_LEVELING = _UxGT("Lauki-sare berdinketa");
PROGMEM Language_Str MSG_UBL_MESH_LEVEL = _UxGT("Sarea berdindu");
PROGMEM Language_Str MSG_UBL_MAP_TYPE = _UxGT("Mapa mota");
PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("LED ezarpenak");
PROGMEM Language_Str MSG_LEDS = _UxGT("Argiak");
PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("Argi aurrehautaketak");
PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("Gorria");
PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("Laranja");
PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("Horia");
PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("Berdea");
PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("Urdina");
PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("Indigo");
PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Bioleta");
PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("Zuria");
PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("Lehenetsia");
PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("Argi pertsonalizatuak");
PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Intentsitate gorria");
PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Intentsitate berdea");
PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("Intentsitate urdina");
PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("Intentsitate zuria");
PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("Distira");
// PROGMEM Language_Str MSG_MOVING = _UxGT("Mugitzen...");
// Filament Change screens show up to 3 lines on a 4-line display PROGMEM Language_Str MSG_FREE_XY = _UxGT("Askatu XY");
// ...or up to 2 lines on a 3-line display PROGMEM Language_Str MSG_MOVE_X = _UxGT("Mugitu X");
// PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Mugitu Y");
#if LCD_HEIGHT >= 4 PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Mugitu Z");
//#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Wait for start") PROGMEM Language_Str MSG_MOVE_E = _UxGT("Estrusorea");
//#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("of the filament") PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Estrusorea ") LCD_STR_E0;
//#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("change") PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Estrusorea ") LCD_STR_E1;
//#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Wait for") PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Estrusorea ") LCD_STR_E2;
//#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("filament unload") PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Estrusorea ") LCD_STR_E3;
//#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Insert filament") PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Estrusorea ") LCD_STR_E4;
//#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("and press button") PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Estrusorea ") LCD_STR_E5;
//#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("to continue...") PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Mugitu %smm");
//#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Press button to") PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Mugitu 0.1mm");
//#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("heat nozzle.") PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Mugitu 1mm");
//#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Heating nozzle") PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Mugitu 10mm");
//#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Please wait...") PROGMEM Language_Str MSG_SPEED = _UxGT("Abiadura");
//#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Wait for") PROGMEM Language_Str MSG_BED_Z = _UxGT("Z Ohea");
//#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("filament load") PROGMEM Language_Str MSG_NOZZLE = _UxGT("Pita");
//#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Wait for") PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Pita ") LCD_STR_N0;
//#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("filament purge") PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Pita ") LCD_STR_N1;
//#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wait for print") PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Pita ") LCD_STR_N2;
//#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("to resume") PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Pita ") LCD_STR_N3;
#else // LCD_HEIGHT < 4 PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Pita ") LCD_STR_N4;
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Mesedez, itxaron...") PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Pita ") LCD_STR_N5;
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Deskargatzen...") PROGMEM Language_Str MSG_BED = _UxGT("Ohea");
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Sartu eta click egin") PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Haizagailu abiadura");
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Berotzen...") PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Haizagailu abiadura 1");
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Kargatzen...") PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Haizagailu abiadura 2");
//#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Purging...") PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Haizagailu abiadura 3");
//#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Resuming...") PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Haiz.gehig. abiadura");
#endif // LCD_HEIGHT < 4 PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_1 = _UxGT("Haiz.gehig. abiadura 1");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_2 = _UxGT("Haiz.gehig. abiadura 2");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_3 = _UxGT("Haiz.gehig. abiadura 3");
PROGMEM Language_Str MSG_FLOW = _UxGT("Fluxua");
PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Fluxua ") LCD_STR_N0;
PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Fluxua ") LCD_STR_N1;
PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Fluxua ") LCD_STR_N2;
PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Fluxua ") LCD_STR_N3;
PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Fluxua ") LCD_STR_N4;
PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Fluxua ") LCD_STR_N5;
PROGMEM Language_Str MSG_CONTROL = _UxGT("Kontrola");
PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" Min");
PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" Max");
PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Fakt");
PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Auto tenperatura");
PROGMEM Language_Str MSG_SELECT = _UxGT("Aukeratu");
PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("Aukeratu ") LCD_STR_E0;
PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("Aukeratu ") LCD_STR_E1;
PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("Aukeratu ") LCD_STR_E2;
PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("Aukeratu ") LCD_STR_E3;
PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("Aukeratu ") LCD_STR_E4;
PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("Aukeratu ") LCD_STR_E5;
PROGMEM Language_Str MSG_ACC = _UxGT("Azelerazioa");
PROGMEM Language_Str MSG_JERK = _UxGT("Astindua");
PROGMEM Language_Str MSG_VA_JERK = _UxGT("V") LCD_STR_A _UxGT("-astindua");
PROGMEM Language_Str MSG_VB_JERK = _UxGT("V") LCD_STR_B _UxGT("-astindua");
PROGMEM Language_Str MSG_VC_JERK = _UxGT("V") LCD_STR_C _UxGT("-astindua");
PROGMEM Language_Str MSG_VE_JERK = _UxGT("Ve-astindua");
PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("VBidaia min");
PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-retrakt");
PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A-bidaia");
PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Pausoak/mm");
PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" pausoak/mm");
PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" pausoak/mm");
PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" pausoak/mm");
PROGMEM Language_Str MSG_E_STEPS = _UxGT("E pausoak/mm");
PROGMEM Language_Str MSG_E0_STEPS = LCD_STR_E0 _UxGT(" pausoak/mm");
PROGMEM Language_Str MSG_E1_STEPS = LCD_STR_E1 _UxGT(" pausoak/mm");
PROGMEM Language_Str MSG_E2_STEPS = LCD_STR_E2 _UxGT(" pausoak/mm");
PROGMEM Language_Str MSG_E3_STEPS = LCD_STR_E3 _UxGT(" pausoak/mm");
PROGMEM Language_Str MSG_E4_STEPS = LCD_STR_E4 _UxGT(" pausoak/mm");
PROGMEM Language_Str MSG_E5_STEPS = LCD_STR_E5 _UxGT(" pausoak/mm");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Tenperatura");
PROGMEM Language_Str MSG_MOTION = _UxGT("Mugimendua");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Harizpia");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E mm3-tan");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Hariz. Dia.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Hariz. Dia. ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Hariz. Dia. ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Hariz. Dia. ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Hariz. Dia. ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Hariz. Dia. ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Hariz. Dia. ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("Deskargatu mm");
PROGMEM Language_Str MSG_FILAMENT_LOAD = _UxGT("Kargatu mm");
PROGMEM Language_Str MSG_ADVANCE_K = _UxGT("K Aurrerapena");
PROGMEM Language_Str MSG_ADVANCE_K_E0 = _UxGT("K Aurrerapena ") LCD_STR_E0;
PROGMEM Language_Str MSG_ADVANCE_K_E1 = _UxGT("K Aurrerapena ") LCD_STR_E1;
PROGMEM Language_Str MSG_ADVANCE_K_E2 = _UxGT("K Aurrerapena ") LCD_STR_E2;
PROGMEM Language_Str MSG_ADVANCE_K_E3 = _UxGT("K Aurrerapena ") LCD_STR_E3;
PROGMEM Language_Str MSG_ADVANCE_K_E4 = _UxGT("K Aurrerapena ") LCD_STR_E4;
PROGMEM Language_Str MSG_ADVANCE_K_E5 = _UxGT("K Aurrerapena ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("LCD kontrastea");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Gorde memoria");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Kargatu memoria");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Larri. berriz.");
PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("EEPROM-a hasieratu");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Berriz kargatu");
PROGMEM Language_Str MSG_WATCH = _UxGT("Pantaila info");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Prestatu");
PROGMEM Language_Str MSG_TUNE = _UxGT("Doitu");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Pausatu inprimak.");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Jarraitu inprima.");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Gelditu inprima.");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("SD-tik inprimatu");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("Ez dago SD-rik");
PROGMEM Language_Str MSG_DWELL = _UxGT("Lo egin...");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Aginduak zain...");
PROGMEM Language_Str MSG_PRINT_PAUSED = _UxGT("Inprim. geldi.");
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Inprim. deusezta.");
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Mugimendu gabe.");
PROGMEM Language_Str MSG_KILLED = _UxGT("AKABATUTA. ");
PROGMEM Language_Str MSG_STOPPED = _UxGT("GELDITUTA. ");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Atzera egin mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Swap Atzera mm");
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Atzera egin V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Igo mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("Atzera egin mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("Swap Atzera mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("Atzera egin V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAPF = _UxGT("S UnRet V");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Atzera egin");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Aldatu harizpia");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Aldatu harizpia ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Aldatu harizpia ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Aldatu harizpia ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Aldatu harizpia ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Aldatu harizpia ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Aldatu harizpia ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTLOAD_E0 = _UxGT("Harizpia kargatu ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTLOAD_E1 = _UxGT("Harizpia kargatu ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTLOAD_E2 = _UxGT("Harizpia kargatu ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTLOAD_E3 = _UxGT("Harizpia kargatu ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTLOAD_E4 = _UxGT("Harizpia kargatu ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTLOAD_E5 = _UxGT("Harizpia kargatu ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E0 = _UxGT("Harizpia deskargatu ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E1 = _UxGT("Harizpia deskargatu ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E2 = _UxGT("Harizpia deskargatu ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E3 = _UxGT("Harizpia deskargatu ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E4 = _UxGT("Harizpia deskargatu ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E5 = _UxGT("Harizpia deskargatu ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Erabat deskargatu");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Hasieratu SD-a");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Aldatu txartela");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z zunda kanpora");
PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("Okertze faktorea");
PROGMEM Language_Str MSG_BLTOUCH = _UxGT("BLTouch");
PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("BLTouch AutoProba");
PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("BLTouch berrabia.");
PROGMEM Language_Str MSG_BLTOUCH_DEPLOY = _UxGT("BLTouch jaitsi/luzatu");
PROGMEM Language_Str MSG_BLTOUCH_STOW = _UxGT("BLTouch igo/jaso");
PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("Etxera %s%s%s lehenengo");
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Z Konpentsatu");
PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Mikro-urratsa X");
PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Mikro-urratsa Y");
PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Mikro-urratsa Z");
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Endstop deusezta.");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Err: Beroketa");
PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("Err: Tenperatura");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("TENP. KONTROL EZA");
PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("Err: Tenp Maximoa");
PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("Err: Tenp Minimoa");
PROGMEM Language_Str MSG_ERR_MAXTEMP_BED = _UxGT("Err: Ohe Tenp Max");
PROGMEM Language_Str MSG_ERR_MINTEMP_BED = _UxGT("Err: Ohe Tenp Min");
PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("Etxera XY lehenengo");
PROGMEM Language_Str MSG_HALTED = _UxGT("INPRIMA. GELDIRIK");
PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Berrabia. Mesedez");
PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("d"); // One character only
PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("h"); // One character only
PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("m"); // One character only
PROGMEM Language_Str MSG_HEATING = _UxGT("Berotzen...");
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Ohea Berotzen...");
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Delta Kalibraketa");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Kalibratu X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Kalibratu Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Kalibratu Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Kalibratu Zentrua");
PROGMEM Language_Str MSG_DELTA_SETTINGS = _UxGT("Delta ezarpenak");
PROGMEM Language_Str MSG_DELTA_AUTO_CALIBRATE = _UxGT("Auto Kalibraketa");
PROGMEM Language_Str MSG_DELTA_HEIGHT_CALIBRATE = _UxGT("Delta Alt. Ezar.");
PROGMEM Language_Str MSG_DELTA_DIAG_ROD = _UxGT("Barra diagonala");
PROGMEM Language_Str MSG_DELTA_HEIGHT = _UxGT("Altuera");
PROGMEM Language_Str MSG_DELTA_RADIUS = _UxGT("Erradioa");
PROGMEM Language_Str MSG_INFO_MENU = _UxGT("Inprimagailu Inf.");
PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Inprimagailu Inf.");
PROGMEM Language_Str MSG_3POINT_LEVELING = _UxGT("3 puntuko berdinketa");
PROGMEM Language_Str MSG_LINEAR_LEVELING = _UxGT("Berdinketa lineala");
PROGMEM Language_Str MSG_BILINEAR_LEVELING = _UxGT("Berdinketa bilinearra");
PROGMEM Language_Str MSG_UBL_LEVELING = _UxGT("Unified Bed Leveling");
PROGMEM Language_Str MSG_MESH_LEVELING = _UxGT("Sare berdinketa");
PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Inprima. estatis.");
PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Txartelaren Info.");
PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Termistoreak");
PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Estrusoreak");
PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("Baudioak");
PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Protokoloa");
PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Kabina Argia");
PROGMEM Language_Str MSG_CASE_LIGHT_BRIGHTNESS
= ;
#if LCD_WIDTH >= 20
PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Inprim. Zenbaketa");
PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Burututa");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Inprim. denbora");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Imprimatze luzeena");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Estruituta guztira");
#else
PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Inprimatze");
PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Burututa");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Guztira");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Luzeena");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Estrusio");
#endif
PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Tenp. Minimoa");
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Tenp. Maximoa");
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Elikadura-iturria");
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Driver-aren potentzia");
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Driver %");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Idatzi DAC EEPROM");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("HARIZPIA ALDATU");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("HARIZPIA KARGATU");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("HARIZPIA DESKARGATU");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("ALDAKETA AUKERAK:");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Inprima. jarraitu");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Pita: ");
PROGMEM Language_Str MSG_LCD_HOMING_FAILED = _UxGT("Hasi. huts egin du");
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Neurketak huts egin du");
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: hotzegi");
PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Inprimagailu okerra");
//
// Filament Change screens show up to 3 lines on a 4-line display
// ...or up to 2 lines on a 3-line display
//
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Mesedez, itxaron..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Deskargatzen..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Sartu eta click egin"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("Berotzen..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Kargatzen..."));
}

View file

@ -30,142 +30,136 @@
*/ */
#define DISPLAY_CHARSET_ISO10646_1 #define DISPLAY_CHARSET_ISO10646_1
#define CHARSIZE 2
#define WELCOME_MSG MACHINE_NAME _UxGT(" valmis.") namespace Language_fi {
#define MSG_MEDIA_INSERTED _UxGT("Kortti asetettu") using namespace Language_en; // Inherit undefined strings from English
#define MSG_MEDIA_REMOVED _UxGT("Kortti poistettu")
#define MSG_MAIN _UxGT("Palaa")
#define MSG_AUTOSTART _UxGT("Automaatti")
#define MSG_DISABLE_STEPPERS _UxGT("Vapauta moottorit")
#define MSG_AUTO_HOME _UxGT("Aja referenssiin")
#define MSG_LEVEL_BED_HOMING _UxGT("Homing XYZ")
#define MSG_LEVEL_BED_WAITING _UxGT("Click to Begin")
#define MSG_LEVEL_BED_DONE _UxGT("Leveling Done!")
#define MSG_SET_HOME_OFFSETS _UxGT("Set home offsets")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Offsets applied")
#define MSG_SET_ORIGIN _UxGT("Aseta origo")
#define MSG_PREHEAT_1 _UxGT("Esilämmitä " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_N _UxGT("Esilämmitä " PREHEAT_1_LABEL " ")
#define MSG_PREHEAT_1_ALL _UxGT("Esilä. " PREHEAT_1_LABEL " Kaikki")
#define MSG_PREHEAT_1_BEDONLY _UxGT("Esilä. " PREHEAT_1_LABEL " Alusta")
#define MSG_PREHEAT_1_SETTINGS _UxGT("Esilämm. " PREHEAT_1_LABEL " konf")
#define MSG_PREHEAT_2 _UxGT("Esilämmitä " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_N _UxGT("Esilämmitä " PREHEAT_2_LABEL " ")
#define MSG_PREHEAT_2_ALL _UxGT("Esilä. " PREHEAT_2_LABEL " Kaikki")
#define MSG_PREHEAT_2_BEDONLY _UxGT("Esilä. " PREHEAT_2_LABEL " Alusta")
#define MSG_PREHEAT_2_SETTINGS _UxGT("Esilämm. " PREHEAT_2_LABEL " konf")
#define MSG_COOLDOWN _UxGT("Jäähdytä")
#define MSG_SWITCH_PS_ON _UxGT("Virta päälle")
#define MSG_SWITCH_PS_OFF _UxGT("Virta pois")
#define MSG_EXTRUDE _UxGT("Pursota")
#define MSG_RETRACT _UxGT("Vedä takaisin")
#define MSG_MOVE_AXIS _UxGT("Liikuta akseleita")
#define MSG_MOVE_X _UxGT("Liikuta X")
#define MSG_MOVE_Y _UxGT("Liikuta Y")
#define MSG_MOVE_Z _UxGT("Liikuta Z")
#define MSG_MOVE_E _UxGT("Extruder")
#define MSG_MOVE_Z_DIST _UxGT("Liikuta %smm")
#define MSG_MOVE_01MM _UxGT("Liikuta 0.1mm")
#define MSG_MOVE_1MM _UxGT("Liikuta 1mm")
#define MSG_MOVE_10MM _UxGT("Liikuta 10mm")
#define MSG_SPEED _UxGT("Nopeus")
#define MSG_NOZZLE _UxGT("Suutin")
#define MSG_BED _UxGT("Alusta")
#define MSG_FAN_SPEED _UxGT("Tuul. nopeus")
#define MSG_FLOW _UxGT("Virtaus")
#define MSG_CONTROL _UxGT("Kontrolli")
#define MSG_MIN LCD_STR_THERMOMETER _UxGT(" Min")
#define MSG_MAX LCD_STR_THERMOMETER _UxGT(" Max")
#define MSG_FACTOR LCD_STR_THERMOMETER _UxGT(" Kerr")
#define MSG_AUTOTEMP _UxGT("Autotemp")
#define MSG_LCD_ON _UxGT("On")
#define MSG_LCD_OFF _UxGT("Off")
#define MSG_PID_P _UxGT("PID-P")
#define MSG_PID_I _UxGT("PID-I")
#define MSG_PID_D _UxGT("PID-D")
#define MSG_PID_C _UxGT("PID-C")
#define MSG_ACC _UxGT("Kiihtyv")
#define MSG_JERK _UxGT("Jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-jerk")
#define MSG_VB_JERK _UxGT("Vb-jerk")
#define MSG_VC_JERK _UxGT("Vc-jerk")
#else
#define MSG_VA_JERK _UxGT("Vx-jerk")
#define MSG_VB_JERK _UxGT("Vy-jerk")
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin")
#define MSG_VTRAV_MIN _UxGT("VLiike min")
#define MSG_ACCELERATION MSG_ACC
#define MSG_AMAX _UxGT("Amax ")
#define MSG_A_RETRACT _UxGT("A-peruuta")
#define MSG_STEPS_PER_MM _UxGT("Steps/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("Asteps/mm")
#define MSG_BSTEPS _UxGT("Bsteps/mm")
#define MSG_CSTEPS _UxGT("Csteps/mm")
#else
#define MSG_ASTEPS _UxGT("Xsteps/mm")
#define MSG_BSTEPS _UxGT("Ysteps/mm")
#define MSG_CSTEPS _UxGT("Zsteps/mm")
#endif
#define MSG_ESTEPS _UxGT("Esteps/mm")
#define MSG_E0_STEPS _UxGT("E1steps/mm")
#define MSG_E1_STEPS _UxGT("E2steps/mm")
#define MSG_E2_STEPS _UxGT("E3steps/mm")
#define MSG_E3_STEPS _UxGT("E4steps/mm")
#define MSG_E4_STEPS _UxGT("E5steps/mm")
#define MSG_E5_STEPS _UxGT("E6steps/mm")
#define MSG_TEMPERATURE _UxGT("Lämpötila")
#define MSG_MOTION _UxGT("Liike")
#define MSG_FILAMENT _UxGT("Filament")
#define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm³")
#define MSG_FILAMENT_DIAM _UxGT("Fil. Dia.")
#define MSG_CONTRAST _UxGT("LCD kontrasti")
#define MSG_STORE_EEPROM _UxGT("Tallenna muistiin")
#define MSG_LOAD_EEPROM _UxGT("Lataa muistista")
#define MSG_RESTORE_FAILSAFE _UxGT("Palauta oletus")
#define MSG_REFRESH _UxGT("Päivitä")
#define MSG_WATCH _UxGT("Seuraa")
#define MSG_PREPARE _UxGT("Valmistele")
#define MSG_TUNE _UxGT("Säädä")
#define MSG_PAUSE_PRINT _UxGT("Keskeytä tulostus")
#define MSG_RESUME_PRINT _UxGT("Jatka tulostusta")
#define MSG_STOP_PRINT _UxGT("Pysäytä tulostus")
#define MSG_MEDIA_MENU _UxGT("Korttivalikko")
#define MSG_NO_MEDIA _UxGT("Ei korttia")
#define MSG_DWELL _UxGT("Nukkumassa...")
#define MSG_USERWAIT _UxGT("Odotet. valintaa")
#define MSG_PRINT_ABORTED _UxGT("Print aborted")
#define MSG_NO_MOVE _UxGT("Ei liiketta.")
#define MSG_KILLED _UxGT("KILLED. ")
#define MSG_STOPPED _UxGT("STOPPED. ")
#define MSG_CONTROL_RETRACT _UxGT("Vedä mm")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Va. Vedä mm")
#define MSG_CONTROL_RETRACTF _UxGT("Vedä V")
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Z mm")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Va. UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("UnRet V")
#define MSG_AUTORETRACT _UxGT("AutoVeto.")
#define MSG_FILAMENTCHANGE _UxGT("Change filament")
#define MSG_INIT_MEDIA _UxGT("Init. SD-Card")
#define MSG_CHANGE_MEDIA _UxGT("Change SD-Card")
#define MSG_ZPROBE_OUT _UxGT("Z probe out. bed")
#define MSG_HOME_FIRST _UxGT("Home %s%s%s first")
#define MSG_ZPROBE_ZOFFSET _UxGT("Z Offset")
#define MSG_BABYSTEP_X _UxGT("Babystep X")
#define MSG_BABYSTEP_Y _UxGT("Babystep Y")
#define MSG_BABYSTEP_Z _UxGT("Babystep Z")
#define MSG_ENDSTOP_ABORT _UxGT("Endstop abort")
#define MSG_DELTA_CALIBRATE _UxGT("Delta Kalibrointi")
#define MSG_DELTA_CALIBRATE_X _UxGT("Kalibroi X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibroi Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Kalibroi Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Kalibroi Center")
#define MSG_EXPECTED_PRINTER _UxGT("Väärä tulostin") constexpr uint8_t CHARSIZE = 2;
PROGMEM Language_Str LANGUAGE = _UxGT("Finnish");
PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" valmis.");
PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Kortti asetettu");
PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Kortti poistettu");
PROGMEM Language_Str MSG_MAIN = _UxGT("Palaa");
PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Automaatti");
PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Vapauta moottorit");
PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Aja referenssiin");
PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Aseta origo");
PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Esilämmitä ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Esilämmitä ") PREHEAT_1_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Esilämmitä ") PREHEAT_1_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Esilämmitä ") PREHEAT_1_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Esilämmitä ") PREHEAT_1_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Esilämmitä ") PREHEAT_1_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Esilämmitä ") PREHEAT_1_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Esilä. ") PREHEAT_1_LABEL _UxGT("Suutin");
PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Esilä. ") PREHEAT_1_LABEL _UxGT("Suutin ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Esilä. ") PREHEAT_1_LABEL _UxGT("Suutin ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Esilä. ") PREHEAT_1_LABEL _UxGT("Suutin ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Esilä. ") PREHEAT_1_LABEL _UxGT("Suutin ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Esilä. ") PREHEAT_1_LABEL _UxGT("Suutin ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Esilä. ") PREHEAT_1_LABEL _UxGT("Suutin ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Esilä. ") PREHEAT_1_LABEL _UxGT(" Kaikki");
PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Esilä. ") PREHEAT_1_LABEL _UxGT(" Alusta");
PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Esilämm. ") PREHEAT_1_LABEL _UxGT(" konf");
PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Esilämmitä ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Esilämmitä ") PREHEAT_2_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Esilämmitä ") PREHEAT_2_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Esilämmitä ") PREHEAT_2_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Esilämmitä ") PREHEAT_2_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Esilämmitä ") PREHEAT_2_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Esilämmitä ") PREHEAT_2_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Esilä. ") PREHEAT_2_LABEL _UxGT("Suutin");
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Esilä. ") PREHEAT_2_LABEL _UxGT("Suutin ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Esilä. ") PREHEAT_2_LABEL _UxGT("Suutin ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Esilä. ") PREHEAT_2_LABEL _UxGT("Suutin ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Esilä. ") PREHEAT_2_LABEL _UxGT("Suutin ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Esilä. ") PREHEAT_2_LABEL _UxGT("Suutin ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Esilä. ") PREHEAT_2_LABEL _UxGT("Suutin ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Esilä. ") PREHEAT_2_LABEL _UxGT(" Kaikki");
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Esilä. ") PREHEAT_2_LABEL _UxGT(" Alusta");
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Esilämm. ") PREHEAT_2_LABEL _UxGT(" konf");
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Jäähdytä");
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Virta päälle");
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Virta pois");
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Pursota");
PROGMEM Language_Str MSG_RETRACT = _UxGT("Vedä takaisin");
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Liikuta akseleita");
PROGMEM Language_Str MSG_MOVE_X = _UxGT("Liikuta X");
PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Liikuta Y");
PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Liikuta Z");
PROGMEM Language_Str MSG_MOVE_E = _UxGT("Extruder");
PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Extruder ") LCD_STR_E0;
PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Extruder ") LCD_STR_E1;
PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Extruder ") LCD_STR_E2;
PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Extruder ") LCD_STR_E3;
PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Extruder ") LCD_STR_E4;
PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Extruder ") LCD_STR_E5;
PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Liikuta %smm");
PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Liikuta 0.1mm");
PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Liikuta 1mm");
PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Liikuta 10mm");
PROGMEM Language_Str MSG_SPEED = _UxGT("Nopeus");
PROGMEM Language_Str MSG_NOZZLE = _UxGT("Suutin");
PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Suutin ") LCD_STR_N0;
PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Suutin ") LCD_STR_N1;
PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Suutin ") LCD_STR_N2;
PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Suutin ") LCD_STR_N3;
PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Suutin ") LCD_STR_N4;
PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Suutin ") LCD_STR_N5;
PROGMEM Language_Str MSG_BED = _UxGT("Alusta");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Tuul. nopeus");
PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Tuul. nopeus 1");
PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Tuul. nopeus 2");
PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Tuul. nopeus 3");
PROGMEM Language_Str MSG_FLOW = _UxGT("Virtaus");
PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Virtaus ") LCD_STR_N0;
PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Virtaus ") LCD_STR_N1;
PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Virtaus ") LCD_STR_N2;
PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Virtaus ") LCD_STR_N3;
PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Virtaus ") LCD_STR_N4;
PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Virtaus ") LCD_STR_N5;
PROGMEM Language_Str MSG_CONTROL = _UxGT("Kontrolli");
PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" Min");
PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" Max");
PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Kerr");
PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Autotemp");
PROGMEM Language_Str MSG_ACC = _UxGT("Kiihtyv");
PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("VLiike min");
PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-peruuta");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Lämpötila");
PROGMEM Language_Str MSG_MOTION = _UxGT("Liike");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filament");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E in mm³");
PROGMEM Language_Str MSG_CONTRAST = _UxGT("LCD kontrasti");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Tallenna muistiin");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Lataa muistista");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Palauta oletus");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Päivitä");
PROGMEM Language_Str MSG_WATCH = _UxGT("Seuraa");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Valmistele");
PROGMEM Language_Str MSG_TUNE = _UxGT("Säädä");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Keskeytä tulostus");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Jatka tulostusta");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Pysäytä tulostus");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Korttivalikko");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("Ei korttia");
PROGMEM Language_Str MSG_DWELL = _UxGT("Nukkumassa...");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Odotet. valintaa");
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Ei liiketta.");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Vedä mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Va. Vedä mm");
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Vedä V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Z mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("Va. UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("UnRet V");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("AutoVeto.");
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Delta Kalibrointi");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Kalibroi X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Kalibroi Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Kalibroi Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Kalibroi Center");
PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Väärä tulostin");
}

View file

@ -30,533 +30,586 @@
*/ */
#define DISPLAY_CHARSET_ISO10646_1 #define DISPLAY_CHARSET_ISO10646_1
#define CHARSIZE 2
#define WELCOME_MSG MACHINE_NAME _UxGT(" prête.") namespace Language_fr {
#define MSG_YES _UxGT("Oui") using namespace Language_en; // Inherit undefined strings from English
#define MSG_NO _UxGT("Non")
#define MSG_BACK _UxGT("Retour")
#define MSG_MEDIA_ABORTING _UxGT("Annulation...")
#define MSG_MEDIA_INSERTED _UxGT("Média inséré")
#define MSG_MEDIA_REMOVED _UxGT("Média retiré")
#define MSG_MEDIA_RELEASED _UxGT("Média libéré")
#define MSG_MEDIA_WAITING _UxGT("Attente média")
#define MSG_MEDIA_READ_ERROR _UxGT("Err lecture média")
#define MSG_MEDIA_USB_REMOVED _UxGT("USB débranché")
#define MSG_MEDIA_USB_FAILED _UxGT("Erreur média USB")
#define MSG_LCD_ENDSTOPS _UxGT("Butées")
#define MSG_LCD_SOFT_ENDSTOPS _UxGT("Butées SW")
#define MSG_MAIN _UxGT("Menu principal")
#define MSG_ADVANCED_SETTINGS _UxGT("Config. avancée")
#define MSG_CONFIGURATION _UxGT("Configuration")
#define MSG_AUTOSTART _UxGT("Exéc. auto#.gcode")
#define MSG_DISABLE_STEPPERS _UxGT("Arrêter moteurs")
#define MSG_DEBUG_MENU _UxGT("Menu debug")
#define MSG_PROGRESS_BAR_TEST _UxGT("Test barre progress.")
#define MSG_AUTO_HOME _UxGT("Origine auto")
#define MSG_AUTO_HOME_X _UxGT("Origine X auto")
#define MSG_AUTO_HOME_Y _UxGT("Origine Y auto")
#define MSG_AUTO_HOME_Z _UxGT("Origine Z auto")
#define MSG_AUTO_Z_ALIGN _UxGT("Align. Z auto")
#define MSG_LEVEL_BED_HOMING _UxGT("Origine XYZ...")
#define MSG_LEVEL_BED_WAITING _UxGT("Clic pour commencer")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Point suivant")
#define MSG_LEVEL_BED_DONE _UxGT("Mise à niveau OK!")
#define MSG_Z_FADE_HEIGHT _UxGT("Hauteur lissée")
#define MSG_SET_HOME_OFFSETS _UxGT("Régl. décal origine")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Décalages appliqués")
#define MSG_SET_ORIGIN _UxGT("Régler origine")
#define MSG_PREHEAT_1 _UxGT("Préchauffage " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_N _UxGT("Préchauff. " PREHEAT_1_LABEL " ")
#define MSG_PREHEAT_1_ALL _UxGT("Préch. " PREHEAT_1_LABEL " Tout")
#define MSG_PREHEAT_1_END _UxGT("Préch. " PREHEAT_1_LABEL " buse")
#define MSG_PREHEAT_1_BEDONLY _UxGT("Préch. " PREHEAT_1_LABEL " lit")
#define MSG_PREHEAT_1_SETTINGS _UxGT("Régler préch. " PREHEAT_1_LABEL)
#define MSG_PREHEAT_2 _UxGT("Préchauffage " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_N _UxGT("Préchauff. " PREHEAT_2_LABEL " ")
#define MSG_PREHEAT_2_ALL _UxGT("Préch. " PREHEAT_2_LABEL " Tout")
#define MSG_PREHEAT_2_END _UxGT("Préch. " PREHEAT_2_LABEL " buse")
#define MSG_PREHEAT_2_BEDONLY _UxGT("Préch. " PREHEAT_2_LABEL " lit")
#define MSG_PREHEAT_2_SETTINGS _UxGT("Régler préch. " PREHEAT_2_LABEL)
#define MSG_PREHEAT_CUSTOM _UxGT("Préchauffage perso")
#define MSG_COOLDOWN _UxGT("Refroidir")
#define MSG_LASER_MENU _UxGT("Contrôle Laser")
#define MSG_LASER_OFF _UxGT("Laser Off")
#define MSG_LASER_ON _UxGT("Laser On")
#define MSG_LASER_POWER _UxGT("Puissance")
#define MSG_SPINDLE_REVERSE _UxGT("Inverser broches")
#define MSG_SWITCH_PS_ON _UxGT("Allumer alim.")
#define MSG_SWITCH_PS_OFF _UxGT("Eteindre alim.")
#define MSG_EXTRUDE _UxGT("Extrusion")
#define MSG_RETRACT _UxGT("Retrait")
#define MSG_MOVE_AXIS _UxGT("Déplacer un axe")
#define MSG_BED_LEVELING _UxGT("Régler Niv. lit")
#define MSG_LEVEL_BED _UxGT("Niveau du lit")
#define MSG_LEVEL_CORNERS _UxGT("Niveau des coins")
#define MSG_NEXT_CORNER _UxGT("Coin suivant")
#define MSG_MESH_EDITOR _UxGT("Edition Maillage")
#define MSG_EDIT_MESH _UxGT("Modifier maille")
#define MSG_EDITING_STOPPED _UxGT("Arrêt édit. maillage")
#define MSG_PROBING_MESH _UxGT("Mesure point")
#define MSG_MESH_X _UxGT("Index X")
#define MSG_MESH_Y _UxGT("Index Y")
#define MSG_MESH_EDIT_Z _UxGT("Valeur Z")
#define MSG_USER_MENU _UxGT("Commandes perso")
#define MSG_LCD_TILTING_MESH _UxGT("Touche point") constexpr uint8_t CHARSIZE = 2;
#define MSG_M48_TEST _UxGT("Ecart sonde Z M48") PROGMEM Language_Str LANGUAGE = _UxGT("Français");
#define MSG_M48_DEVIATION _UxGT("Ecart")
#define MSG_M48_POINT _UxGT("Point M48")
#define MSG_IDEX_MENU _UxGT("Mode IDEX")
#define MSG_IDEX_MODE_AUTOPARK _UxGT("Auto-Park")
#define MSG_IDEX_MODE_DUPLICATE _UxGT("Duplication")
#define MSG_IDEX_MODE_MIRRORED_COPY _UxGT("Copie miroir")
#define MSG_IDEX_MODE_FULL_CTRL _UxGT("Contrôle complet")
#define MSG_OFFSETS_MENU _UxGT("Offsets Outil")
#define MSG_X_OFFSET _UxGT("Buse 2 X")
#define MSG_Y_OFFSET _UxGT("Buse 2 Y")
#define MSG_Z_OFFSET _UxGT("Buse 2 Z")
#define MSG_G26_HEATING_BED _UxGT("G26 Chauffe lit")
#define MSG_G26_HEATING_NOZZLE _UxGT("G26 Chauffe buse")
#define MSG_G26_MANUAL_PRIME _UxGT("Amorce manuelle...")
#define MSG_G26_FIXED_LENGTH _UxGT("Amorce longueur fixe")
#define MSG_G26_PRIME_DONE _UxGT("Amorce terminée")
#define MSG_G26_CANCELED _UxGT("G26 annulé")
#define MSG_G26_LEAVING _UxGT("Sortie G26")
#define MSG_UBL_DOING_G29 _UxGT("G29 en cours")
#define MSG_UBL_TOOLS _UxGT("Outils UBL")
#define MSG_UBL_LEVEL_BED _UxGT("Niveau lit unifié")
#define MSG_UBL_MANUAL_MESH _UxGT("Maillage manuel")
#define MSG_UBL_BC_INSERT _UxGT("Poser câle & mesurer")
#define MSG_UBL_BC_INSERT2 _UxGT("Mesure")
#define MSG_UBL_BC_REMOVE _UxGT("ôter et mesurer lit")
#define MSG_UBL_MOVING_TO_NEXT _UxGT("Aller au suivant")
#define MSG_UBL_ACTIVATE_MESH _UxGT("Activer l'UBL")
#define MSG_UBL_DEACTIVATE_MESH _UxGT("Désactiver l'UBL")
#define MSG_UBL_SET_TEMP_BED _UxGT("Température lit")
#define MSG_UBL_BED_TEMP_CUSTOM MSG_UBL_SET_TEMP_BED
#define MSG_UBL_SET_TEMP_HOTEND _UxGT("Température buse")
#define MSG_UBL_HOTEND_TEMP_CUSTOM MSG_UBL_SET_TEMP_HOTEND
#define MSG_UBL_MESH_EDIT _UxGT("Editer maille")
#define MSG_UBL_EDIT_CUSTOM_MESH _UxGT("Editer maille perso")
#define MSG_UBL_FINE_TUNE_MESH _UxGT("Réglage fin maille")
#define MSG_UBL_DONE_EDITING_MESH _UxGT("Terminer maille")
#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Créer maille perso")
#define MSG_UBL_BUILD_MESH_MENU _UxGT("Créer maille")
#define MSG_UBL_BUILD_MESH_M1 _UxGT("Créer maille " PREHEAT_1_LABEL)
#define MSG_UBL_BUILD_MESH_M2 _UxGT("Créer maille " PREHEAT_2_LABEL)
#define MSG_UBL_BUILD_COLD_MESH _UxGT("Créer maille froide")
#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Ajuster haut. maille")
#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Hauteur")
#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("Valider maille")
#define MSG_UBL_VALIDATE_MESH_M1 _UxGT("Valider maille " PREHEAT_1_LABEL)
#define MSG_UBL_VALIDATE_MESH_M2 _UxGT("Valider maille " PREHEAT_2_LABEL)
#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Valider maille perso")
#define MSG_UBL_CONTINUE_MESH _UxGT("Continuer maille")
#define MSG_UBL_MESH_LEVELING _UxGT("Niveau par maille")
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("Niveau à 3 points")
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Niveau grille")
#define MSG_UBL_MESH_LEVEL _UxGT("Maille de niveau")
#define MSG_UBL_SIDE_POINTS _UxGT("Point latéral")
#define MSG_UBL_MAP_TYPE _UxGT("Type de carte")
#define MSG_UBL_OUTPUT_MAP _UxGT("Voir maille")
#define MSG_UBL_OUTPUT_MAP_HOST _UxGT("Voir pour hôte")
#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Voir pour CSV")
#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Voir pour sauveg.")
#define MSG_UBL_INFO_UBL _UxGT("Voir info UBL")
#define MSG_UBL_FILLIN_AMOUNT _UxGT("Taux de remplissage")
#define MSG_UBL_MANUAL_FILLIN _UxGT("Remplissage manuel")
#define MSG_UBL_SMART_FILLIN _UxGT("Remplissage auto")
#define MSG_UBL_FILLIN_MESH _UxGT("Maille remplissage")
#define MSG_UBL_INVALIDATE_ALL _UxGT("Tout annuler")
#define MSG_UBL_INVALIDATE_CLOSEST _UxGT("Annuler le plus près")
#define MSG_UBL_FINE_TUNE_ALL _UxGT("Réglage fin (tous)")
#define MSG_UBL_FINE_TUNE_CLOSEST _UxGT("Réglage fin (proche)")
#define MSG_UBL_STORAGE_MESH_MENU _UxGT("Stockage maille")
#define MSG_UBL_STORAGE_SLOT _UxGT("Slot mémoire")
#define MSG_UBL_LOAD_MESH _UxGT("Charger maille")
#define MSG_UBL_SAVE_MESH _UxGT("Sauver maille")
#define MSG_MESH_LOADED _UxGT("Maille %i chargée")
#define MSG_MESH_SAVED _UxGT("Maille %i enreg.")
#define MSG_UBL_NO_STORAGE _UxGT("Pas de mémoire")
#define MSG_UBL_SAVE_ERROR _UxGT("Err: Enreg. UBL")
#define MSG_UBL_RESTORE_ERROR _UxGT("Err: Ouvrir UBL")
#define MSG_UBL_Z_OFFSET _UxGT("Z-Offset: ")
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Décal. Z arrêté")
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("UBL Pas à pas")
#define MSG_LED_CONTROL _UxGT("Contrôle LED") PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" prête.");
#define MSG_LEDS _UxGT("Lumière") PROGMEM Language_Str MSG_YES = _UxGT("Oui");
#define MSG_LED_PRESETS _UxGT("Préregl. LED") PROGMEM Language_Str MSG_NO = _UxGT("Non");
#define MSG_SET_LEDS_RED _UxGT("Rouge") PROGMEM Language_Str MSG_BACK = _UxGT("Retour");
#define MSG_SET_LEDS_ORANGE _UxGT("Orange") PROGMEM Language_Str MSG_MEDIA_ABORTING = _UxGT("Annulation...");
#define MSG_SET_LEDS_YELLOW _UxGT("Jaune") PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Média inséré");
#define MSG_SET_LEDS_GREEN _UxGT("Vert") PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Média retiré");
#define MSG_SET_LEDS_BLUE _UxGT("Bleu") PROGMEM Language_Str MSG_MEDIA_RELEASED = _UxGT("Média libéré");
#define MSG_SET_LEDS_INDIGO _UxGT("Indigo") PROGMEM Language_Str MSG_MEDIA_WAITING = _UxGT("Attente média");
#define MSG_SET_LEDS_VIOLET _UxGT("Violet") PROGMEM Language_Str MSG_MEDIA_READ_ERROR = _UxGT("Err lecture média");
#define MSG_SET_LEDS_WHITE _UxGT("Blanc") PROGMEM Language_Str MSG_MEDIA_USB_REMOVED = _UxGT("USB débranché");
#define MSG_SET_LEDS_DEFAULT _UxGT("Defaut") PROGMEM Language_Str MSG_MEDIA_USB_FAILED = _UxGT("Erreur média USB");
#define MSG_CUSTOM_LEDS _UxGT("LEDs perso.") PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Butées");
#define MSG_INTENSITY_R _UxGT("Intensité rouge") PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("Butées SW");
#define MSG_INTENSITY_G _UxGT("Intensité vert") PROGMEM Language_Str MSG_MAIN = _UxGT("Menu principal");
#define MSG_INTENSITY_B _UxGT("Intensité bleu") PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("Config. avancée");
#define MSG_INTENSITY_W _UxGT("Intensité blanc") PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("Configuration");
#define MSG_LED_BRIGHTNESS _UxGT("Luminosité") PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Exéc. auto#.gcode");
PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Arrêter moteurs");
PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("Menu debug");
PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Test barre progress.");
PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Origine auto");
PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Origine X auto");
PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Origine Y auto");
PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Origine Z auto");
PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("Align. Z auto");
PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Origine XYZ...");
PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Clic pour commencer");
PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Point suivant");
PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Mise à niveau OK!");
PROGMEM Language_Str MSG_Z_FADE_HEIGHT = _UxGT("Hauteur lissée");
PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Régl. décal origine");
PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Décalages appliqués");
PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Régler origine");
PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Préchauffage ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Préchauffage ") PREHEAT_1_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Préchauffage ") PREHEAT_1_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Préchauffage ") PREHEAT_1_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Préchauffage ") PREHEAT_1_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Préchauffage ") PREHEAT_1_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Préchauffage ") PREHEAT_1_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Préch. ") PREHEAT_1_LABEL _UxGT(" buse");
PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Préch. ") PREHEAT_1_LABEL _UxGT(" buse ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Préch. ") PREHEAT_1_LABEL _UxGT(" buse ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Préch. ") PREHEAT_1_LABEL _UxGT(" buse ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Préch. ") PREHEAT_1_LABEL _UxGT(" buse ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Préch. ") PREHEAT_1_LABEL _UxGT(" buse ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Préch. ") PREHEAT_1_LABEL _UxGT(" buse ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Préch. ") PREHEAT_1_LABEL _UxGT(" Tout");
PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Préch. ") PREHEAT_1_LABEL _UxGT(" lit");
PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Régler préch. ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Préchauffage ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Préchauffage ") PREHEAT_2_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Préchauffage ") PREHEAT_2_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Préchauffage ") PREHEAT_2_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Préchauffage ") PREHEAT_2_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Préchauffage ") PREHEAT_2_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Préchauffage ") PREHEAT_2_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Préch. ") PREHEAT_2_LABEL _UxGT(" buse");
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Préch. ") PREHEAT_2_LABEL _UxGT(" buse ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Préch. ") PREHEAT_2_LABEL _UxGT(" buse ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Préch. ") PREHEAT_2_LABEL _UxGT(" buse ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Préch. ") PREHEAT_2_LABEL _UxGT(" buse ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Préch. ") PREHEAT_2_LABEL _UxGT(" buse ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Préch. ") PREHEAT_2_LABEL _UxGT(" buse ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Préch. ") PREHEAT_2_LABEL _UxGT(" Tout");
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Préch. ") PREHEAT_2_LABEL _UxGT(" lit");
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Régler préch. ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_CUSTOM = _UxGT("Préchauffage perso");
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Refroidir");
PROGMEM Language_Str MSG_LASER_MENU = _UxGT("Contrôle Laser");
PROGMEM Language_Str MSG_LASER_POWER = _UxGT("Puissance");
PROGMEM Language_Str MSG_SPINDLE_REVERSE = _UxGT("Inverser broches");
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Allumer alim.");
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Eteindre alim.");
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Extrusion");
PROGMEM Language_Str MSG_RETRACT = _UxGT("Retrait");
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Déplacer un axe");
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Régler Niv. lit");
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Niveau du lit");
PROGMEM Language_Str MSG_LEVEL_CORNERS = _UxGT("Niveau des coins");
PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("Coin suivant");
PROGMEM Language_Str MSG_MESH_EDITOR = _UxGT("Edition Maillage");
PROGMEM Language_Str MSG_EDIT_MESH = _UxGT("Modifier maille");
PROGMEM Language_Str MSG_EDITING_STOPPED = _UxGT("Arrêt édit. maillage");
PROGMEM Language_Str MSG_PROBING_MESH = _UxGT("Mesure point");
PROGMEM Language_Str MSG_MESH_X = _UxGT("Index X");
PROGMEM Language_Str MSG_MESH_Y = _UxGT("Index Y");
PROGMEM Language_Str MSG_MESH_EDIT_Z = _UxGT("Valeur Z");
PROGMEM Language_Str MSG_USER_MENU = _UxGT("Commandes perso");
#define MSG_MOVING _UxGT("Déplacement...") PROGMEM Language_Str MSG_LCD_TILTING_MESH = _UxGT("Touche point");
#define MSG_FREE_XY _UxGT("Débloquer XY") PROGMEM Language_Str MSG_M48_TEST = _UxGT("Ecart sonde Z M48");
#define MSG_MOVE_X _UxGT("Déplacer X") PROGMEM Language_Str MSG_M48_DEVIATION = _UxGT("Ecart");
#define MSG_MOVE_Y _UxGT("Déplacer Y") PROGMEM Language_Str MSG_M48_POINT = _UxGT("Point M48");
#define MSG_MOVE_Z _UxGT("Déplacer Z") PROGMEM Language_Str MSG_IDEX_MENU = _UxGT("Mode IDEX");
#define MSG_MOVE_E _UxGT("Extrudeur") PROGMEM Language_Str MSG_IDEX_MODE_AUTOPARK = _UxGT("Auto-Park");
#define MSG_HOTEND_TOO_COLD _UxGT("Buse trop froide") PROGMEM Language_Str MSG_IDEX_MODE_DUPLICATE = _UxGT("Duplication");
#define MSG_MOVE_Z_DIST _UxGT("Déplacer %smm") PROGMEM Language_Str MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Copie miroir");
#define MSG_MOVE_01MM _UxGT("Déplacer 0.1mm") PROGMEM Language_Str MSG_IDEX_MODE_FULL_CTRL = _UxGT("Contrôle complet");
#define MSG_MOVE_1MM _UxGT("Déplacer 1mm") PROGMEM Language_Str MSG_OFFSETS_MENU = _UxGT("Offsets Outil");
#define MSG_MOVE_10MM _UxGT("Déplacer 10mm") PROGMEM Language_Str MSG_X_OFFSET = _UxGT("Buse 2 X");
#define MSG_SPEED _UxGT("Vitesse") PROGMEM Language_Str MSG_Y_OFFSET = _UxGT("Buse 2 Y");
#define MSG_BED_Z _UxGT("Lit Z") PROGMEM Language_Str MSG_Z_OFFSET = _UxGT("Buse 2 Z");
#define MSG_NOZZLE _UxGT("Buse") PROGMEM Language_Str MSG_G26_HEATING_BED = _UxGT("G26 Chauffe lit");
#define MSG_BED _UxGT("Lit") PROGMEM Language_Str MSG_G26_HEATING_NOZZLE = _UxGT("G26 Chauffe buse");
#define MSG_CHAMBER _UxGT("Caisson") PROGMEM Language_Str MSG_G26_MANUAL_PRIME = _UxGT("Amorce manuelle...");
#define MSG_FAN_SPEED _UxGT("Vitesse ventil.") PROGMEM Language_Str MSG_G26_FIXED_LENGTH = _UxGT("Amorce longueur fixe");
#define MSG_EXTRA_FAN_SPEED _UxGT("Extra V ventil.") PROGMEM Language_Str MSG_G26_PRIME_DONE = _UxGT("Amorce terminée");
PROGMEM Language_Str MSG_G26_CANCELED = _UxGT("G26 annulé");
PROGMEM Language_Str MSG_G26_LEAVING = _UxGT("Sortie G26");
PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("G29 en cours");
PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("Outils UBL");
PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("Niveau lit unifié");
PROGMEM Language_Str MSG_UBL_MANUAL_MESH = _UxGT("Maillage manuel");
PROGMEM Language_Str MSG_UBL_BC_INSERT = _UxGT("Poser câle & mesurer");
PROGMEM Language_Str MSG_UBL_BC_INSERT2 = _UxGT("Mesure");
PROGMEM Language_Str MSG_UBL_BC_REMOVE = _UxGT("ôter et mesurer lit");
PROGMEM Language_Str MSG_UBL_MOVING_TO_NEXT = _UxGT("Aller au suivant");
PROGMEM Language_Str MSG_UBL_ACTIVATE_MESH = _UxGT("Activer l'UBL");
PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("Désactiver l'UBL");
PROGMEM Language_Str MSG_UBL_SET_TEMP_BED = _UxGT("Température lit");
PROGMEM Language_Str MSG_UBL_BED_TEMP_CUSTOM = _UxGT("Température lit");
PROGMEM Language_Str MSG_UBL_SET_TEMP_HOTEND = _UxGT("Température buse");
PROGMEM Language_Str MSG_UBL_HOTEND_TEMP_CUSTOM = _UxGT("Température buse");
PROGMEM Language_Str MSG_UBL_MESH_EDIT = _UxGT("Editer maille");
PROGMEM Language_Str MSG_UBL_EDIT_CUSTOM_MESH = _UxGT("Editer maille perso");
PROGMEM Language_Str MSG_UBL_FINE_TUNE_MESH = _UxGT("Réglage fin maille");
PROGMEM Language_Str MSG_UBL_DONE_EDITING_MESH = _UxGT("Terminer maille");
PROGMEM Language_Str MSG_UBL_BUILD_CUSTOM_MESH = _UxGT("Créer maille perso");
PROGMEM Language_Str MSG_UBL_BUILD_MESH_MENU = _UxGT("Créer maille");
PROGMEM Language_Str MSG_UBL_BUILD_MESH_M1 = _UxGT("Créer maille ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_UBL_BUILD_MESH_M2 = _UxGT("Créer maille ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_UBL_BUILD_COLD_MESH = _UxGT("Créer maille froide");
PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_ADJUST = _UxGT("Ajuster haut. maille");
PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_AMOUNT = _UxGT("Hauteur");
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_MENU = _UxGT("Valider maille");
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M1 = _UxGT("Valider maille ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M2 = _UxGT("Valider maille ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("Valider maille perso");
PROGMEM Language_Str MSG_UBL_CONTINUE_MESH = _UxGT("Continuer maille");
PROGMEM Language_Str MSG_UBL_MESH_LEVELING = _UxGT("Niveau par maille");
PROGMEM Language_Str MSG_UBL_3POINT_MESH_LEVELING = _UxGT("Niveau à 3 points");
PROGMEM Language_Str MSG_UBL_GRID_MESH_LEVELING = _UxGT("Niveau grille");
PROGMEM Language_Str MSG_UBL_MESH_LEVEL = _UxGT("Maille de niveau");
PROGMEM Language_Str MSG_UBL_SIDE_POINTS = _UxGT("Point latéral");
PROGMEM Language_Str MSG_UBL_MAP_TYPE = _UxGT("Type de carte");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP = _UxGT("Voir maille");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_HOST = _UxGT("Voir pour hôte");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_CSV = _UxGT("Voir pour CSV");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_BACKUP = _UxGT("Voir pour sauveg.");
PROGMEM Language_Str MSG_UBL_INFO_UBL = _UxGT("Voir info UBL");
PROGMEM Language_Str MSG_UBL_FILLIN_AMOUNT = _UxGT("Taux de remplissage");
PROGMEM Language_Str MSG_UBL_MANUAL_FILLIN = _UxGT("Remplissage manuel");
PROGMEM Language_Str MSG_UBL_SMART_FILLIN = _UxGT("Remplissage auto");
PROGMEM Language_Str MSG_UBL_FILLIN_MESH = _UxGT("Maille remplissage");
PROGMEM Language_Str MSG_UBL_INVALIDATE_ALL = _UxGT("Tout annuler");
PROGMEM Language_Str MSG_UBL_INVALIDATE_CLOSEST = _UxGT("Annuler le plus près");
PROGMEM Language_Str MSG_UBL_FINE_TUNE_ALL = _UxGT("Réglage fin (tous)");
PROGMEM Language_Str MSG_UBL_FINE_TUNE_CLOSEST = _UxGT("Réglage fin (proche)");
PROGMEM Language_Str MSG_UBL_STORAGE_MESH_MENU = _UxGT("Stockage maille");
PROGMEM Language_Str MSG_UBL_STORAGE_SLOT = _UxGT("Slot mémoire");
PROGMEM Language_Str MSG_UBL_LOAD_MESH = _UxGT("Charger maille");
PROGMEM Language_Str MSG_UBL_SAVE_MESH = _UxGT("Sauver maille");
PROGMEM Language_Str MSG_MESH_LOADED = _UxGT("M117 Maille %i chargée");
PROGMEM Language_Str MSG_MESH_SAVED = _UxGT("M117 Maille %i enreg.");
PROGMEM Language_Str MSG_UBL_NO_STORAGE = _UxGT("Pas de mémoire");
PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("Err: Enreg. UBL");
PROGMEM Language_Str MSG_UBL_RESTORE_ERROR = _UxGT("Err: Ouvrir UBL");
PROGMEM Language_Str MSG_UBL_Z_OFFSET = _UxGT("Z-Offset: ");
PROGMEM Language_Str MSG_UBL_Z_OFFSET_STOPPED = _UxGT("Décal. Z arrêté");
PROGMEM Language_Str MSG_UBL_STEP_BY_STEP_MENU = _UxGT("UBL Pas à pas");
PROGMEM Language_Str MSG_UBL_1_BUILD_COLD_MESH = _UxGT("1.Créer maille froide");
PROGMEM Language_Str MSG_UBL_2_SMART_FILLIN = _UxGT("2.Remplissage auto");
PROGMEM Language_Str MSG_UBL_3_VALIDATE_MESH_MENU = _UxGT("3.Valider maille");
PROGMEM Language_Str MSG_UBL_4_FINE_TUNE_ALL = _UxGT("4.Réglage fin (tous)");
PROGMEM Language_Str MSG_UBL_5_VALIDATE_MESH_MENU = _UxGT("5.Valider maille");
PROGMEM Language_Str MSG_UBL_6_FINE_TUNE_ALL = _UxGT("6.Réglage fin (tous)");
PROGMEM Language_Str MSG_UBL_7_SAVE_MESH = _UxGT("7.Sauver maille");
#define MSG_FLOW _UxGT("Flux") PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("Contrôle LED");
#define MSG_CONTROL _UxGT("Contrôler") PROGMEM Language_Str MSG_LEDS = _UxGT("Lumière");
#define MSG_MIN LCD_STR_THERMOMETER _UxGT(" Min") PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("Préregl. LED");
#define MSG_MAX LCD_STR_THERMOMETER _UxGT(" Max") PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("Rouge");
#define MSG_FACTOR LCD_STR_THERMOMETER _UxGT(" Facteur") PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("Orange");
#define MSG_AUTOTEMP _UxGT("Temp. Auto.") PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("Jaune");
#define MSG_LCD_ON _UxGT("Marche") PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("Vert");
#define MSG_LCD_OFF _UxGT("Arrêt") PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("Bleu");
#define MSG_PID_P _UxGT("PID-P") PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("Indigo");
#define MSG_PID_I _UxGT("PID-I") PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Violet");
#define MSG_PID_D _UxGT("PID-D") PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("Blanc");
#define MSG_PID_C _UxGT("PID-C") PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("Defaut");
#define MSG_SELECT _UxGT("Sélectionner") PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("LEDs perso.");
#define MSG_ACC _UxGT("Accélération") PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Intensité rouge");
#define MSG_JERK _UxGT("Jerk") PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Intensité vert");
#if IS_KINEMATIC PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("Intensité bleu");
#define MSG_VA_JERK _UxGT("Va jerk") PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("Intensité blanc");
#define MSG_VB_JERK _UxGT("Vb jerk") PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("Luminosité");
#define MSG_VC_JERK _UxGT("Vc jerk")
#else
#define MSG_VA_JERK _UxGT("Vx jerk")
#define MSG_VB_JERK _UxGT("Vy jerk")
#define MSG_VC_JERK _UxGT("Vz jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve jerk")
#define MSG_VELOCITY _UxGT("Vélocité")
#define MSG_JUNCTION_DEVIATION _UxGT("Déviat. jonct.")
#define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin ")
#define MSG_VTRAV_MIN _UxGT("V dépl. min")
#define MSG_ACCELERATION _UxGT("Accélération")
#define MSG_AMAX _UxGT("Amax ")
#define MSG_A_RETRACT _UxGT("A retrait")
#define MSG_A_TRAVEL _UxGT("A dépl.")
#define MSG_STEPS_PER_MM _UxGT("Pas/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("A pas/mm")
#define MSG_BSTEPS _UxGT("B pas/mm")
#define MSG_CSTEPS _UxGT("C pas/mm")
#else
#define MSG_ASTEPS _UxGT("X pas/mm")
#define MSG_BSTEPS _UxGT("Y pas/mm")
#define MSG_CSTEPS _UxGT("Z pas/mm")
#endif
#define MSG_ESTEPS _UxGT("E pas/mm")
#define MSG_E0_STEPS _UxGT("E1 pas/mm")
#define MSG_E1_STEPS _UxGT("E2 pas/mm")
#define MSG_E2_STEPS _UxGT("E3 pas/mm")
#define MSG_E3_STEPS _UxGT("E4 pas/mm")
#define MSG_E4_STEPS _UxGT("E5 pas/mm")
#define MSG_E5_STEPS _UxGT("E6 pas/mm")
#define MSG_TEMPERATURE _UxGT("Température")
#define MSG_MOTION _UxGT("Mouvement")
#define MSG_FILAMENT _UxGT("Filament")
#define MSG_VOLUMETRIC_ENABLED _UxGT("E en mm3")
#define MSG_FILAMENT_DIAM _UxGT("Diamètre fil.")
#define MSG_FILAMENT_UNLOAD _UxGT("Retrait mm")
#define MSG_FILAMENT_LOAD _UxGT("Charger mm")
#define MSG_ADVANCE_K _UxGT("Avance K")
#define MSG_CONTRAST _UxGT("Contraste LCD")
#define MSG_STORE_EEPROM _UxGT("Enregistrer config.")
#define MSG_LOAD_EEPROM _UxGT("Charger config.")
#define MSG_RESTORE_FAILSAFE _UxGT("Restaurer défauts")
#define MSG_INIT_EEPROM _UxGT("Initialiser EEPROM")
#define MSG_MEDIA_UPDATE _UxGT("MaJ Firmware SD")
#define MSG_RESET_PRINTER _UxGT("RaZ imprimante")
#define MSG_REFRESH _UxGT("Actualiser")
#define MSG_WATCH _UxGT("Surveiller")
#define MSG_PREPARE _UxGT("Préparer")
#define MSG_TUNE _UxGT("Régler")
#define MSG_START_PRINT _UxGT("Démarrer impression")
#define MSG_BUTTON_NEXT _UxGT("Suivant")
#define MSG_BUTTON_INIT _UxGT("Init.")
#define MSG_BUTTON_STOP _UxGT("Stop")
#define MSG_BUTTON_PRINT _UxGT("Imprimer")
#define MSG_BUTTON_RESET _UxGT("Reset")
#define MSG_BUTTON_CANCEL _UxGT("Annuler")
#define MSG_BUTTON_DONE _UxGT("Terminé")
#define MSG_PAUSE_PRINT _UxGT("Pause impression")
#define MSG_RESUME_PRINT _UxGT("Reprendre impr.")
#define MSG_STOP_PRINT _UxGT("Arrêter impr.")
#define MSG_OUTAGE_RECOVERY _UxGT("Récupér. coupure")
#define MSG_MEDIA_MENU _UxGT("Impression SD")
#define MSG_NO_MEDIA _UxGT("Pas de média")
#define MSG_DWELL _UxGT("Repos...")
#define MSG_USERWAIT _UxGT("Attente utilis.")
#define MSG_PRINT_PAUSED _UxGT("Impr. en pause")
#define MSG_PRINTING _UxGT("Impression")
#define MSG_PRINT_ABORTED _UxGT("Impr. annulée")
#define MSG_NO_MOVE _UxGT("Moteurs bloqués")
#define MSG_KILLED _UxGT("KILLED")
#define MSG_STOPPED _UxGT("STOPPÉ")
#define MSG_CONTROL_RETRACT _UxGT("Retrait mm")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Ech. Retr. mm")
#define MSG_CONTROL_RETRACTF _UxGT("Retrait V")
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Saut Z mm")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("Rappel mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Ech. Rappel mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("Rappel V")
#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("Ech. Rappel V")
#define MSG_AUTORETRACT _UxGT("Retrait auto")
#define MSG_TOOL_CHANGE _UxGT("Changement outil")
#define MSG_TOOL_CHANGE_ZLIFT _UxGT("Augmenter Z")
#define MSG_SINGLENOZZLE_PRIME_SPD _UxGT("Vitesse primaire")
#define MSG_SINGLENOZZLE_RETRACT_SPD _UxGT("Vitesse retrait")
#define MSG_NOZZLE_STANDBY _UxGT("Attente buse")
#define MSG_FILAMENT_SWAP_LENGTH _UxGT("Distance retrait")
#define MSG_FILAMENT_PURGE_LENGTH _UxGT("Longueur de purge")
#define MSG_FILAMENTCHANGE _UxGT("Changer filament")
#define MSG_FILAMENTLOAD _UxGT("Charger filament")
#define MSG_FILAMENTUNLOAD _UxGT("Retrait filament")
#define MSG_FILAMENTUNLOAD_ALL _UxGT("Décharger tout")
#define MSG_INIT_MEDIA _UxGT("Charger le média")
#define MSG_CHANGE_MEDIA _UxGT("Actualiser média")
#define MSG_RELEASE_MEDIA _UxGT("Retirer le média")
#define MSG_ZPROBE_OUT _UxGT("Sonde Z hors lit")
#define MSG_SKEW_FACTOR _UxGT("Facteur écart")
#define MSG_BLTOUCH _UxGT("BLTouch")
#define MSG_BLTOUCH_SELFTEST _UxGT("Cmd: Self-Test")
#define MSG_BLTOUCH_RESET _UxGT("Cmd: Reset")
#define MSG_BLTOUCH_STOW _UxGT("Cmd: Ranger")
#define MSG_BLTOUCH_DEPLOY _UxGT("Cmd: Déployer")
#define MSG_BLTOUCH_SW_MODE _UxGT("Cmd: Mode SW")
#define MSG_BLTOUCH_5V_MODE _UxGT("Cmd: Mode 5V")
#define MSG_BLTOUCH_OD_MODE _UxGT("Cmd: Mode OD")
#define MSG_BLTOUCH_MODE_STORE _UxGT("Appliquer Mode")
#define MSG_BLTOUCH_MODE_STORE_5V _UxGT("Mise en 5V")
#define MSG_BLTOUCH_MODE_STORE_OD _UxGT("Mise en OD")
#define MSG_BLTOUCH_MODE_ECHO _UxGT("Afficher Mode")
#define MSG_TOUCHMI_PROBE _UxGT("TouchMI")
#define MSG_TOUCHMI_INIT _UxGT("Init. TouchMI")
#define MSG_TOUCHMI_ZTEST _UxGT("Test décalage Z")
#define MSG_TOUCHMI_SAVE _UxGT("Sauvegarde")
#define MSG_MANUAL_DEPLOY_TOUCHMI _UxGT("Déployer TouchMI")
#define MSG_MANUAL_DEPLOY _UxGT("Déployer Sonde Z")
#define MSG_MANUAL_STOW _UxGT("Ranger Sonde Z")
#define MSG_HOME_FIRST _UxGT("Origine %s%s%s Premier")
#define MSG_ZPROBE_ZOFFSET _UxGT("Décalage Z")
#define MSG_BABYSTEP_X _UxGT("Babystep X")
#define MSG_BABYSTEP_Y _UxGT("Babystep Y")
#define MSG_BABYSTEP_Z _UxGT("Babystep Z")
#define MSG_BABYSTEP_TOTAL _UxGT("Total")
#define MSG_ENDSTOP_ABORT _UxGT("Butée abandon")
#define MSG_HEATING_FAILED_LCD _UxGT("Err de chauffe")
#define MSG_HEATING_FAILED_LCD_BED _UxGT("Err de chauffe lit")
#define MSG_HEATING_FAILED_LCD_CHAMBER _UxGT("Err chauffe caisson")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Err TEMP. REDONDANTE")
#define MSG_THERMAL_RUNAWAY _UxGT("Err THERMIQUE")
#define MSG_THERMAL_RUNAWAY_BED _UxGT("Err THERMIQUE LIT")
#define MSG_THERMAL_RUNAWAY_CHAMBER _UxGT("Err THERMIQUE CAISSON")
#define MSG_ERR_MAXTEMP _UxGT("Err TEMP. MAX")
#define MSG_ERR_MINTEMP _UxGT("Err TEMP. MIN")
#define MSG_ERR_MAXTEMP_BED _UxGT("Err TEMP. MAX LIT")
#define MSG_ERR_MINTEMP_BED _UxGT("Err TEMP. MIN LIT")
#define MSG_ERR_MAXTEMP_CHAMBER _UxGT("Err MAXTEMP CAISSON")
#define MSG_ERR_MINTEMP_CHAMBER _UxGT("Err MINTEMP CAISSON")
#define MSG_ERR_Z_HOMING _UxGT("Origine XY Premier")
#define MSG_HALTED _UxGT("IMPR. STOPPÉE") PROGMEM Language_Str MSG_MOVING = _UxGT("Déplacement...");
#define MSG_PLEASE_RESET _UxGT("Redémarrer SVP") PROGMEM Language_Str MSG_FREE_XY = _UxGT("Débloquer XY");
#define MSG_SHORT_DAY _UxGT("j") // One character only PROGMEM Language_Str MSG_MOVE_X = _UxGT("Déplacer X");
#define MSG_SHORT_HOUR _UxGT("h") // One character only PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Déplacer Y");
#define MSG_SHORT_MINUTE _UxGT("m") // One character only PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Déplacer Z");
PROGMEM Language_Str MSG_MOVE_E = _UxGT("Extrudeur");
PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Extrudeur ") LCD_STR_E0;
PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Extrudeur ") LCD_STR_E1;
PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Extrudeur ") LCD_STR_E2;
PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Extrudeur ") LCD_STR_E3;
PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Extrudeur ") LCD_STR_E4;
PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Extrudeur ") LCD_STR_E5;
PROGMEM Language_Str MSG_HOTEND_TOO_COLD = _UxGT("Buse trop froide");
PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Déplacer %smm");
PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Déplacer 0.1mm");
PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Déplacer 1mm");
PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Déplacer 10mm");
PROGMEM Language_Str MSG_SPEED = _UxGT("Vitesse");
PROGMEM Language_Str MSG_BED_Z = _UxGT("Lit Z");
PROGMEM Language_Str MSG_NOZZLE = _UxGT("Buse");
PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Buse ") LCD_STR_N0;
PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Buse ") LCD_STR_N1;
PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Buse ") LCD_STR_N2;
PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Buse ") LCD_STR_N3;
PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Buse ") LCD_STR_N4;
PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Buse ") LCD_STR_N5;
PROGMEM Language_Str MSG_BED = _UxGT("Lit");
PROGMEM Language_Str MSG_CHAMBER = _UxGT("Caisson");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Vitesse ventil.");
PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Vitesse ventil. 1");
PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Vitesse ventil. 2");
PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Vitesse ventil. 3");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Extra V ventil.");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_1 = _UxGT("Extra V ventil. 1");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_2 = _UxGT("Extra V ventil. 2");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_3 = _UxGT("Extra V ventil. 3");
#define MSG_HEATING _UxGT("En chauffe...") PROGMEM Language_Str MSG_FLOW = _UxGT("Flux");
#define MSG_COOLING _UxGT("Refroidissement") PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Flux ") LCD_STR_N0;
#define MSG_BED_HEATING _UxGT("Lit en chauffe...") PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Flux ") LCD_STR_N1;
#define MSG_BED_COOLING _UxGT("Refroid. du lit...") PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Flux ") LCD_STR_N2;
#define MSG_CHAMBER_HEATING _UxGT("Chauffe caisson...") PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Flux ") LCD_STR_N3;
#define MSG_CHAMBER_COOLING _UxGT("Refroid. caisson...") PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Flux ") LCD_STR_N4;
#define MSG_DELTA_CALIBRATE _UxGT("Calibration Delta") PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Flux ") LCD_STR_N5;
#define MSG_DELTA_CALIBRATE_X _UxGT("Calibrer X") PROGMEM Language_Str MSG_CONTROL = _UxGT("Contrôler");
#define MSG_DELTA_CALIBRATE_Y _UxGT("Calibrer Y") PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" Min");
#define MSG_DELTA_CALIBRATE_Z _UxGT("Calibrer Z") PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" Max");
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Calibrer centre") PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Facteur");
#define MSG_DELTA_SETTINGS _UxGT("Réglages Delta") PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Temp. Auto.");
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Calibration Auto") PROGMEM Language_Str MSG_LCD_ON = _UxGT("Marche");
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Hauteur Delta") PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Arrêt");
#define MSG_DELTA_Z_OFFSET_CALIBRATE _UxGT("Delta Z sonde") PROGMEM Language_Str MSG_SELECT = _UxGT("Sélectionner");
#define MSG_DELTA_DIAG_ROD _UxGT("Diagonale") PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("Sélectionner ") LCD_STR_E0;
#define MSG_DELTA_HEIGHT _UxGT("Hauteur") PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("Sélectionner ") LCD_STR_E1;
#define MSG_DELTA_RADIUS _UxGT("Rayon") PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("Sélectionner ") LCD_STR_E2;
PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("Sélectionner ") LCD_STR_E3;
PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("Sélectionner ") LCD_STR_E4;
PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("Sélectionner ") LCD_STR_E5;
PROGMEM Language_Str MSG_ACC = _UxGT("Accélération");
PROGMEM Language_Str MSG_JERK = _UxGT("Jerk");
PROGMEM Language_Str MSG_VA_JERK = _UxGT("V") LCD_STR_A _UxGT(" jerk");
PROGMEM Language_Str MSG_VB_JERK = _UxGT("V") LCD_STR_B _UxGT(" jerk");
PROGMEM Language_Str MSG_VC_JERK = _UxGT("V") LCD_STR_C _UxGT(" jerk");
PROGMEM Language_Str MSG_VE_JERK = _UxGT("Ve jerk");
PROGMEM Language_Str MSG_VELOCITY = _UxGT("Vélocité");
PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Déviat. jonct.");
PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("V dépl. min");
PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Accélération");
PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A retrait");
PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A dépl.");
PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Pas/mm");
PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" pas/mm");
PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" pas/mm");
PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" pas/mm");
PROGMEM Language_Str MSG_E_STEPS = _UxGT("E pas/mm");
PROGMEM Language_Str MSG_E0_STEPS = LCD_STR_E0 _UxGT(" pas/mm");
PROGMEM Language_Str MSG_E1_STEPS = LCD_STR_E1 _UxGT(" pas/mm");
PROGMEM Language_Str MSG_E2_STEPS = LCD_STR_E2 _UxGT(" pas/mm");
PROGMEM Language_Str MSG_E3_STEPS = LCD_STR_E3 _UxGT(" pas/mm");
PROGMEM Language_Str MSG_E4_STEPS = LCD_STR_E4 _UxGT(" pas/mm");
PROGMEM Language_Str MSG_E5_STEPS = LCD_STR_E5 _UxGT(" pas/mm");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Température");
PROGMEM Language_Str MSG_MOTION = _UxGT("Mouvement");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filament");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E en mm3");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Diamètre fil.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Diamètre fil. ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Diamètre fil. ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Diamètre fil. ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Diamètre fil. ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Diamètre fil. ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Diamètre fil. ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("Retrait mm");
PROGMEM Language_Str MSG_FILAMENT_LOAD = _UxGT("Charger mm");
PROGMEM Language_Str MSG_ADVANCE_K = _UxGT("Avance K");
PROGMEM Language_Str MSG_ADVANCE_K_E0 = _UxGT("Avance K ") LCD_STR_E0;
PROGMEM Language_Str MSG_ADVANCE_K_E1 = _UxGT("Avance K ") LCD_STR_E1;
PROGMEM Language_Str MSG_ADVANCE_K_E2 = _UxGT("Avance K ") LCD_STR_E2;
PROGMEM Language_Str MSG_ADVANCE_K_E3 = _UxGT("Avance K ") LCD_STR_E3;
PROGMEM Language_Str MSG_ADVANCE_K_E4 = _UxGT("Avance K ") LCD_STR_E4;
PROGMEM Language_Str MSG_ADVANCE_K_E5 = _UxGT("Avance K ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("Contraste LCD");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Enregistrer config.");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Charger config.");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Restaurer défauts");
PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("Initialiser EEPROM");
PROGMEM Language_Str MSG_MEDIA_UPDATE = _UxGT("MaJ Firmware SD");
PROGMEM Language_Str MSG_RESET_PRINTER = _UxGT("RaZ imprimante");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Actualiser");
PROGMEM Language_Str MSG_WATCH = _UxGT("Surveiller");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Préparer");
PROGMEM Language_Str MSG_TUNE = _UxGT("Régler");
PROGMEM Language_Str MSG_START_PRINT = _UxGT("Démarrer impression");
PROGMEM Language_Str MSG_BUTTON_NEXT = _UxGT("Suivant");
PROGMEM Language_Str MSG_BUTTON_INIT = _UxGT("Init.");
PROGMEM Language_Str MSG_BUTTON_STOP = _UxGT("Stop");
PROGMEM Language_Str MSG_BUTTON_PRINT = _UxGT("Imprimer");
PROGMEM Language_Str MSG_BUTTON_RESET = _UxGT("Reset");
PROGMEM Language_Str MSG_BUTTON_CANCEL = _UxGT("Annuler");
PROGMEM Language_Str MSG_BUTTON_DONE = _UxGT("Terminé");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Pause impression");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Reprendre impr.");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Arrêter impr.");
PROGMEM Language_Str MSG_OUTAGE_RECOVERY = _UxGT("Récupér. coupure");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Impression SD");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("Pas de média");
PROGMEM Language_Str MSG_DWELL = _UxGT("Repos...");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Attente utilis.");
PROGMEM Language_Str MSG_PRINT_PAUSED = _UxGT("Impr. en pause");
PROGMEM Language_Str MSG_PRINTING = _UxGT("Impression");
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Impr. annulée");
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Moteurs bloqués");
PROGMEM Language_Str MSG_KILLED = _UxGT("KILLED");
PROGMEM Language_Str MSG_STOPPED = _UxGT("STOPPÉ");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Retrait mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Ech. Retr. mm");
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Retrait V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Saut Z mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("Rappel mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("Ech. Rappel mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("Rappel V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAPF = _UxGT("Ech. Rappel V");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Retrait auto");
PROGMEM Language_Str MSG_TOOL_CHANGE = _UxGT("Changement outil");
PROGMEM Language_Str MSG_TOOL_CHANGE_ZLIFT = _UxGT("Augmenter Z");
PROGMEM Language_Str MSG_SINGLENOZZLE_PRIME_SPD = _UxGT("Vitesse primaire");
PROGMEM Language_Str MSG_SINGLENOZZLE_RETRACT_SPD = _UxGT("Vitesse retrait");
PROGMEM Language_Str MSG_NOZZLE_STANDBY = _UxGT("Attente buse");
PROGMEM Language_Str MSG_FILAMENT_SWAP_LENGTH = _UxGT("Distance retrait");
PROGMEM Language_Str MSG_FILAMENT_PURGE_LENGTH = _UxGT("Longueur de purge");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Changer filament");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Changer filament ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Changer filament ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Changer filament ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Changer filament ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Changer filament ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Changer filament ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTLOAD = _UxGT("Charger filament");
PROGMEM Language_Str MSG_FILAMENTLOAD_E0 = _UxGT("Charger filament ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTLOAD_E1 = _UxGT("Charger filament ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTLOAD_E2 = _UxGT("Charger filament ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTLOAD_E3 = _UxGT("Charger filament ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTLOAD_E4 = _UxGT("Charger filament ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTLOAD_E5 = _UxGT("Charger filament ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E0 = _UxGT("Retrait filament ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E1 = _UxGT("Retrait filament ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E2 = _UxGT("Retrait filament ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E3 = _UxGT("Retrait filament ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E4 = _UxGT("Retrait filament ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E5 = _UxGT("Retrait filament ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Décharger tout");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Charger le média");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Actualiser média");
PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("Retirer le média");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sonde Z hors lit");
PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("Facteur écart");
PROGMEM Language_Str MSG_BLTOUCH = _UxGT("BLTouch");
PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("Cmd: Self-Test");
PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("Cmd: Reset");
PROGMEM Language_Str MSG_BLTOUCH_STOW = _UxGT("Cmd: Ranger");
PROGMEM Language_Str MSG_BLTOUCH_DEPLOY = _UxGT("Cmd: Déployer");
PROGMEM Language_Str MSG_BLTOUCH_SW_MODE = _UxGT("Cmd: Mode SW");
PROGMEM Language_Str MSG_BLTOUCH_5V_MODE = _UxGT("Cmd: Mode 5V");
PROGMEM Language_Str MSG_BLTOUCH_OD_MODE = _UxGT("Cmd: Mode OD");
PROGMEM Language_Str MSG_BLTOUCH_MODE_STORE = _UxGT("Appliquer Mode");
PROGMEM Language_Str MSG_BLTOUCH_MODE_STORE_5V = _UxGT("Mise en 5V");
PROGMEM Language_Str MSG_BLTOUCH_MODE_STORE_OD = _UxGT("Mise en OD");
PROGMEM Language_Str MSG_BLTOUCH_MODE_ECHO = _UxGT("Afficher Mode");
PROGMEM Language_Str MSG_TOUCHMI_PROBE = _UxGT("TouchMI");
PROGMEM Language_Str MSG_TOUCHMI_INIT = _UxGT("Init. TouchMI");
PROGMEM Language_Str MSG_TOUCHMI_ZTEST = _UxGT("Test décalage Z");
PROGMEM Language_Str MSG_TOUCHMI_SAVE = _UxGT("Sauvegarde");
PROGMEM Language_Str MSG_MANUAL_DEPLOY_TOUCHMI = _UxGT("Déployer TouchMI");
PROGMEM Language_Str MSG_MANUAL_DEPLOY = _UxGT("Déployer Sonde Z");
PROGMEM Language_Str MSG_MANUAL_STOW = _UxGT("Ranger Sonde Z");
PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("Origine %s%s%s Premier");
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Décalage Z");
PROGMEM Language_Str MSG_BABYSTEP_TOTAL = _UxGT("Total");
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Butée abandon");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Err de chauffe");
PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("Err TEMP. REDONDANTE");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("Err THERMIQUE");
PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("Err TEMP. MAX");
PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("Err TEMP. MIN");
PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("Origine XY Premier");
#define MSG_INFO_MENU _UxGT("Infos imprimante") PROGMEM Language_Str MSG_HALTED = _UxGT("IMPR. STOPPÉE");
#define MSG_INFO_PRINTER_MENU _UxGT("Infos imprimante") PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Redémarrer SVP");
#define MSG_3POINT_LEVELING _UxGT("Niveau à 3 points") PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("j"); // One character only
#define MSG_LINEAR_LEVELING _UxGT("Niveau linéaire") PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("h"); // One character only
#define MSG_BILINEAR_LEVELING _UxGT("Niveau bilinéaire") PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("m"); // One character only
#define MSG_UBL_LEVELING _UxGT("Niveau lit unifié")
#define MSG_MESH_LEVELING _UxGT("Niveau maillage")
#define MSG_INFO_STATS_MENU _UxGT("Stats. imprimante")
#define MSG_INFO_BOARD_MENU _UxGT("Infos carte")
#define MSG_INFO_THERMISTOR_MENU _UxGT("Thermistances")
#define MSG_INFO_EXTRUDERS _UxGT("Extrudeurs")
#define MSG_INFO_BAUDRATE _UxGT("Bauds")
#define MSG_INFO_PROTOCOL _UxGT("Protocole")
#define MSG_CASE_LIGHT _UxGT("Lumière caisson")
#define MSG_CASE_LIGHT_BRIGHTNESS _UxGT("Luminosité")
#define MSG_EXPECTED_PRINTER _UxGT("Imprimante incorrecte") PROGMEM Language_Str MSG_HEATING = _UxGT("En chauffe...");
PROGMEM Language_Str MSG_COOLING = _UxGT("Refroidissement");
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Lit en chauffe...");
PROGMEM Language_Str MSG_BED_COOLING = _UxGT("Refroid. du lit...");
PROGMEM Language_Str MSG_CHAMBER_HEATING = _UxGT("Chauffe caisson...");
PROGMEM Language_Str MSG_CHAMBER_COOLING = _UxGT("Refroid. caisson...");
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Calibration Delta");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Calibrer X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Calibrer Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Calibrer Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Calibrer centre");
PROGMEM Language_Str MSG_DELTA_SETTINGS = _UxGT("Réglages Delta");
PROGMEM Language_Str MSG_DELTA_AUTO_CALIBRATE = _UxGT("Calibration Auto");
PROGMEM Language_Str MSG_DELTA_HEIGHT_CALIBRATE = _UxGT("Hauteur Delta");
PROGMEM Language_Str MSG_DELTA_Z_OFFSET_CALIBRATE = _UxGT("Delta Z sonde");
PROGMEM Language_Str MSG_DELTA_DIAG_ROD = _UxGT("Diagonale");
PROGMEM Language_Str MSG_DELTA_HEIGHT = _UxGT("Hauteur");
PROGMEM Language_Str MSG_DELTA_RADIUS = _UxGT("Rayon");
#if LCD_WIDTH >= 20 PROGMEM Language_Str MSG_INFO_MENU = _UxGT("Infos imprimante");
#define MSG_INFO_PRINT_COUNT _UxGT("Nbre impressions") PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Infos imprimante");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Terminées") PROGMEM Language_Str MSG_3POINT_LEVELING = _UxGT("Niveau à 3 points");
#define MSG_INFO_PRINT_TIME _UxGT("Tps impr. total") PROGMEM Language_Str MSG_LINEAR_LEVELING = _UxGT("Niveau linéaire");
#define MSG_INFO_PRINT_LONGEST _UxGT("Impr. la + longue") PROGMEM Language_Str MSG_BILINEAR_LEVELING = _UxGT("Niveau bilinéaire");
#define MSG_INFO_PRINT_FILAMENT _UxGT("Total filament") PROGMEM Language_Str MSG_UBL_LEVELING = _UxGT("Niveau lit unifié");
#else PROGMEM Language_Str MSG_MESH_LEVELING = _UxGT("Niveau maillage");
#define MSG_INFO_PRINT_COUNT _UxGT("Impressions") PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Stats. imprimante");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Terminées") PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Infos carte");
#define MSG_INFO_PRINT_TIME _UxGT("Total") PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Thermistances");
#define MSG_INFO_PRINT_LONGEST _UxGT("+ long") PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Extrudeurs");
#define MSG_INFO_PRINT_FILAMENT _UxGT("Filament") PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("Bauds");
#endif PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Protocole");
PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Lumière caisson");
PROGMEM Language_Str MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Luminosité");
#define MSG_INFO_MIN_TEMP _UxGT("Temp Min") PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Imprimante incorrecte");
#define MSG_INFO_MAX_TEMP _UxGT("Temp Max")
#define MSG_INFO_PSU _UxGT("Alimentation")
#define MSG_DRIVE_STRENGTH _UxGT("Puiss. moteur ")
#define MSG_DAC_PERCENT _UxGT("Driver %")
#define MSG_DAC_EEPROM_WRITE _UxGT("DAC EEPROM sauv.")
#define MSG_ERROR_TMC _UxGT("ERREUR CONNEXION TMC")
#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("IMPR. PAUSE") #if LCD_WIDTH >= 20
#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("CHARGER FIL") PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Nbre impressions");
#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("DECHARGER FIL") PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Terminées");
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("OPTIONS REPRISE:") PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Tps impr. total");
#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Purger encore") PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Impr. la + longue");
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Reprendre impr.") PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Total filament");
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Buse: ") #else
#define MSG_RUNOUT_SENSOR _UxGT("Capteur fil.") PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Impressions");
#define MSG_ERR_HOMING_FAILED _UxGT("Echec origine") PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Terminées");
#define MSG_ERR_PROBING_FAILED _UxGT("Echec sonde") PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Total");
#define MSG_M600_TOO_COLD _UxGT("M600: Trop froid") PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("+ long");
#define MSG_MMU2_FILAMENT_CHANGE_HEADER _UxGT("CHANGER FILAMENT") PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Filament");
#define MSG_MMU2_CHOOSE_FILAMENT_HEADER _UxGT("CHOISIR FILAMENT") #endif
#define MSG_MMU2_MENU _UxGT("MMU")
#define MSG_MMU2_WRONG_FIRMWARE _UxGT("Update MMU firmware!")
#define MSG_MMU2_NOT_RESPONDING _UxGT("MMU ne répond plus")
#define MSG_MMU2_RESUME _UxGT("Continuer impr.")
#define MSG_MMU2_RESUMING _UxGT("Reprise...")
#define MSG_MMU2_LOAD_FILAMENT _UxGT("Charger filament")
#define MSG_MMU2_LOAD_ALL _UxGT("Charger tous")
#define MSG_MMU2_LOAD_TO_NOZZLE _UxGT("Charger dans buse")
#define MSG_MMU2_EJECT_FILAMENT _UxGT("Ejecter filament")
#define MSG_MMU2_EJECT_FILAMENT0 _UxGT("Ejecter fil. 1")
#define MSG_MMU2_EJECT_FILAMENT1 _UxGT("Ejecter fil. 2")
#define MSG_MMU2_EJECT_FILAMENT2 _UxGT("Ejecter fil. 3")
#define MSG_MMU2_EJECT_FILAMENT3 _UxGT("Ejecter fil. 4")
#define MSG_MMU2_EJECT_FILAMENT4 _UxGT("Ejecter fil. 5")
#define MSG_MMU2_UNLOAD_FILAMENT _UxGT("Retrait filament")
#define MSG_MMU2_LOADING_FILAMENT _UxGT("Chargem. fil. %i...")
#define MSG_MMU2_EJECTING_FILAMENT _UxGT("Ejection fil...")
#define MSG_MMU2_UNLOADING_FILAMENT _UxGT("Retrait fil....")
#define MSG_MMU2_ALL _UxGT("Tous")
#define MSG_MMU2_FILAMENT0 _UxGT("Filament 1")
#define MSG_MMU2_FILAMENT1 _UxGT("Filament 2")
#define MSG_MMU2_FILAMENT2 _UxGT("Filament 3")
#define MSG_MMU2_FILAMENT3 _UxGT("Filament 4")
#define MSG_MMU2_FILAMENT4 _UxGT("Filament 5")
#define MSG_MMU2_RESET _UxGT("Réinit. MMU")
#define MSG_MMU2_RESETTING _UxGT("Réinit. MMU...")
#define MSG_MMU2_EJECT_RECOVER _UxGT("Retrait, click")
#define MSG_MIX _UxGT("Mix") PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Temp Min");
#define MSG_MIX_COMPONENT _UxGT("Composante") PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Temp Max");
#define MSG_MIXER _UxGT("Mixeur") PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Alimentation");
#define MSG_GRADIENT _UxGT("Dégradé") PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Puiss. moteur ");
#define MSG_FULL_GRADIENT _UxGT("Dégradé complet") PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Driver %");
#define MSG_TOGGLE_MIX _UxGT("Toggle mix") PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC EEPROM sauv.");
#define MSG_CYCLE_MIX _UxGT("Cycle mix") PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("ERREUR CONNEXION TMC");
#define MSG_GRADIENT_MIX _UxGT("Mix dégradé")
#define MSG_REVERSE_GRADIENT _UxGT("Inverser dégradé")
#define MSG_ACTIVE_VTOOL _UxGT("Active V-tool")
#define MSG_START_VTOOL _UxGT("Début V-tool")
#define MSG_END_VTOOL _UxGT(" Fin V-tool")
#define MSG_GRADIENT_ALIAS _UxGT("Alias V-tool")
#define MSG_RESET_VTOOLS _UxGT("Réinit. V-tools")
#define MSG_COMMIT_VTOOL _UxGT("Valider Mix V-tool")
#define MSG_VTOOLS_RESET _UxGT("V-tools réinit. ok")
#define MSG_START_Z _UxGT("Début Z")
#define MSG_END_Z _UxGT(" Fin Z")
#define MSG_GAMES _UxGT("Jeux")
#define MSG_BRICKOUT _UxGT("Casse-briques")
#define MSG_INVADERS _UxGT("Invaders")
#define MSG_SNAKE _UxGT("Sn4k3")
#define MSG_MAZE _UxGT("Labyrinthe")
#if LCD_HEIGHT >= 4 PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER = _UxGT("CHANGER FILAMENT");
// Up to 3 lines allowed PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("IMPR. PAUSE");
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Presser bouton") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("CHARGER FIL");
#define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("pour reprendre") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("DECHARGER FIL");
#define MSG_PAUSE_PRINT_INIT_1 _UxGT("Parking...") PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("OPTIONS REPRISE:");
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Attente filament") PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("Purger encore");
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("pour démarrer") PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Reprendre impr.");
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Insérer filament") PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Buse: ");
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("et app. bouton") PROGMEM Language_Str MSG_RUNOUT_SENSOR = _UxGT("Capteur fil.");
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("pour continuer...") PROGMEM Language_Str MSG_LCD_HOMING_FAILED = _UxGT("Echec origine");
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Presser le bouton") PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Echec sonde");
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("pour chauffer...") PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Trop froid");
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Buse en chauffe")
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Patienter SVP...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Attente")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("retrait du filament")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Attente")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("chargement filament")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Attente")
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("Purge filament")
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Presser pour finir")
#define MSG_FILAMENT_CHANGE_CONT_PURGE_2 _UxGT("la purge du filament")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Attente reprise")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("impression")
#else // LCD_HEIGHT < 4
// Up to 2 lines allowed
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Clic pour continuer")
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Patience...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Insérer fil.")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Chauffer ?")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Chauffage...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Retrait fil...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Chargement...")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Purge...")
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Terminer ?")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Reprise...")
#endif // LCD_HEIGHT < 4
#define MSG_TMC_DRIVERS _UxGT("Drivers TMC") PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("CHOISIR FILAMENT");
#define MSG_TMC_CURRENT _UxGT("Courant driver") PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU");
#define MSG_TMC_HYBRID_THRS _UxGT("Seuil hybride") PROGMEM Language_Str MSG_MMU2_NOT_RESPONDING = _UxGT("MMU ne répond plus");
#define MSG_TMC_HOMING_THRS _UxGT("Home sans capteur") PROGMEM Language_Str MSG_MMU2_RESUME = _UxGT("Continuer impr.");
#define MSG_TMC_STEPPING_MODE _UxGT("Mode pas à pas") PROGMEM Language_Str MSG_MMU2_RESUMING = _UxGT("Reprise...");
#define MSG_TMC_STEALTH_ENABLED _UxGT("StealthChop activé") PROGMEM Language_Str MSG_MMU2_LOAD_FILAMENT = _UxGT("Charger filament");
#define MSG_SERVICE_RESET _UxGT("Réinit.") PROGMEM Language_Str MSG_MMU2_LOAD_ALL = _UxGT("Charger tous");
#define MSG_SERVICE_IN _UxGT(" dans:") PROGMEM Language_Str MSG_MMU2_LOAD_TO_NOZZLE = _UxGT("Charger dans buse");
#define MSG_BACKLASH _UxGT("Backlash") PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT = _UxGT("Ejecter filament");
#define MSG_BACKLASH_CORRECTION _UxGT("Correction") PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT0 = _UxGT("Ejecter fil. 1");
#define MSG_BACKLASH_SMOOTHING _UxGT("Lissage") PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT1 = _UxGT("Ejecter fil. 2");
PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT2 = _UxGT("Ejecter fil. 3");
PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT3 = _UxGT("Ejecter fil. 4");
PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT4 = _UxGT("Ejecter fil. 5");
PROGMEM Language_Str MSG_MMU2_UNLOAD_FILAMENT = _UxGT("Retrait filament");
PROGMEM Language_Str MSG_MMU2_LOADING_FILAMENT = _UxGT("Chargem. fil. %i...");
PROGMEM Language_Str MSG_MMU2_EJECTING_FILAMENT = _UxGT("Ejection fil...");
PROGMEM Language_Str MSG_MMU2_UNLOADING_FILAMENT = _UxGT("Retrait fil....");
PROGMEM Language_Str MSG_MMU2_ALL = _UxGT("Tous");
PROGMEM Language_Str MSG_MMU2_FILAMENT0 = _UxGT("Filament 1");
PROGMEM Language_Str MSG_MMU2_FILAMENT1 = _UxGT("Filament 2");
PROGMEM Language_Str MSG_MMU2_FILAMENT2 = _UxGT("Filament 3");
PROGMEM Language_Str MSG_MMU2_FILAMENT3 = _UxGT("Filament 4");
PROGMEM Language_Str MSG_MMU2_FILAMENT4 = _UxGT("Filament 5");
PROGMEM Language_Str MSG_MMU2_RESET = _UxGT("Réinit. MMU");
PROGMEM Language_Str MSG_MMU2_RESETTING = _UxGT("Réinit. MMU...");
PROGMEM Language_Str MSG_MMU2_EJECT_RECOVER = _UxGT("Retrait, click");
PROGMEM Language_Str MSG_MIX_COMPONENT_1 = _UxGT("Composante 1");
PROGMEM Language_Str MSG_MIX_COMPONENT_2 = _UxGT("Composante 2");
PROGMEM Language_Str MSG_MIX_COMPONENT_3 = _UxGT("Composante 3");
PROGMEM Language_Str MSG_MIX_COMPONENT_4 = _UxGT("Composante 4");
PROGMEM Language_Str MSG_MIX_COMPONENT_5 = _UxGT("Composante 5");
PROGMEM Language_Str MSG_MIX_COMPONENT_6 = _UxGT("Composante 6");
PROGMEM Language_Str MSG_MIXER = _UxGT("Mixeur");
PROGMEM Language_Str MSG_GRADIENT = _UxGT("Dégradé");
PROGMEM Language_Str MSG_FULL_GRADIENT = _UxGT("Dégradé complet");
PROGMEM Language_Str MSG_TOGGLE_MIX = _UxGT("Toggle mix");
PROGMEM Language_Str MSG_CYCLE_MIX = _UxGT("Cycle mix");
PROGMEM Language_Str MSG_GRADIENT_MIX = _UxGT("Mix dégradé");
PROGMEM Language_Str MSG_REVERSE_GRADIENT = _UxGT("Inverser dégradé");
PROGMEM Language_Str MSG_ACTIVE_VTOOL = _UxGT("Active V-tool");
PROGMEM Language_Str MSG_START_VTOOL = _UxGT("Début V-tool");
PROGMEM Language_Str MSG_END_VTOOL = _UxGT(" Fin V-tool");
PROGMEM Language_Str MSG_GRADIENT_ALIAS = _UxGT("Alias V-tool");
PROGMEM Language_Str MSG_RESET_VTOOLS = _UxGT("Réinit. V-tools");
PROGMEM Language_Str MSG_COMMIT_VTOOL = _UxGT("Valider Mix V-tool");
PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("V-tools réinit. ok");
PROGMEM Language_Str MSG_START_Z = _UxGT("Début Z:");
PROGMEM Language_Str MSG_END_Z = _UxGT(" Fin Z:");
PROGMEM Language_Str MSG_GAMES = _UxGT("Jeux");
PROGMEM Language_Str MSG_BRICKOUT = _UxGT("Casse-briques");
PROGMEM Language_Str MSG_INVADERS = _UxGT("Invaders");
PROGMEM Language_Str MSG_SNAKE = _UxGT("Sn4k3");
PROGMEM Language_Str MSG_MAZE = _UxGT("Labyrinthe");
#if LCD_HEIGHT >= 4
// Up to 3 lines allowed
PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_2_LINE("Presser bouton", "pour reprendre"));
PROGMEM Language_Str MSG_PAUSE_PRINT_INIT = _UxGT(MSG_1_LINE("Parking..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_2_LINE("Attente filament", "pour démarrer"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Insérer filament", "et app. bouton", "pour continuer..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Presser le bouton", "pour chauffer..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("Buse en chauffe", "Patienter SVP..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Attente", "retrait du filament"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Attente", "chargement filament"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_2_LINE("Attente", "Purge filament"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_2_LINE("Presser pour finir", "la purge du filament"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("Attente reprise", "impression"));
#else // LCD_HEIGHT < 4
// Up to 2 lines allowed
PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_1_LINE("Clic pour continuer"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Patience..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Insérer fil."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_1_LINE("Chauffer ?"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("Chauffage..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Retrait fil..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Chargement..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_1_LINE("Purge..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_1_LINE("Terminer ?"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Reprise..."));
#endif // LCD_HEIGHT < 4
PROGMEM Language_Str MSG_TMC_CURRENT = _UxGT("Courant driver");
PROGMEM Language_Str MSG_TMC_HYBRID_THRS = _UxGT("Seuil hybride");
PROGMEM Language_Str MSG_TMC_HOMING_THRS = _UxGT("Home sans capteur");
PROGMEM Language_Str MSG_TMC_STEPPING_MODE = _UxGT("Mode pas à pas");
PROGMEM Language_Str MSG_TMC_STEALTH_ENABLED = _UxGT("StealthChop activé");
PROGMEM Language_Str MSG_SERVICE_RESET = _UxGT("Réinit.");
PROGMEM Language_Str MSG_SERVICE_IN = _UxGT(" dans:");
PROGMEM Language_Str MSG_BACKLASH_CORRECTION = _UxGT("Correction");
PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("Lissage");
}

View file

@ -32,222 +32,241 @@
#define DISPLAY_CHARSET_ISO10646_1 #define DISPLAY_CHARSET_ISO10646_1
#define NOT_EXTENDED_ISO10646_1_5X7 #define NOT_EXTENDED_ISO10646_1_5X7
#define WELCOME_MSG MACHINE_NAME _UxGT(" lista.") namespace Language_gl {
#define MSG_MEDIA_INSERTED _UxGT("Tarxeta inserida") using namespace Language_en; // Inherit undefined strings from English
#define MSG_MEDIA_REMOVED _UxGT("Tarxeta retirada")
#define MSG_LCD_ENDSTOPS _UxGT("FinCarro")
#define MSG_MAIN _UxGT("Menu principal")
#define MSG_AUTOSTART _UxGT("Autoarranque")
#define MSG_DISABLE_STEPPERS _UxGT("Apagar motores")
#define MSG_AUTO_HOME _UxGT("Ir a orixe")
#define MSG_AUTO_HOME_X _UxGT("Ir orixe X")
#define MSG_AUTO_HOME_Y _UxGT("Ir orixe Y")
#define MSG_AUTO_HOME_Z _UxGT("Ir orixe Z")
#define MSG_LEVEL_BED_HOMING _UxGT("Ir orixes XYZ")
#define MSG_LEVEL_BED_WAITING _UxGT("Prema pulsador")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Seguinte punto")
#define MSG_LEVEL_BED_DONE _UxGT("Nivelado feito")
#define MSG_SET_HOME_OFFSETS _UxGT("Offsets na orixe")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Offsets fixados")
#define MSG_SET_ORIGIN _UxGT("Fixar orixe")
#define MSG_PREHEAT_1 _UxGT("Prequentar " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_N _UxGT("Prequentar " PREHEAT_1_LABEL " ")
#define MSG_PREHEAT_1_ALL _UxGT("Preque. " PREHEAT_1_LABEL " Todo")
#define MSG_PREHEAT_1_BEDONLY _UxGT("Preque. " PREHEAT_1_LABEL " Cama")
#define MSG_PREHEAT_1_SETTINGS _UxGT("Preque. " PREHEAT_1_LABEL " conf")
#define MSG_PREHEAT_2 _UxGT("Prequentar " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_N _UxGT("Prequentar " PREHEAT_2_LABEL " ")
#define MSG_PREHEAT_2_ALL _UxGT("Preque. " PREHEAT_2_LABEL " Todo")
#define MSG_PREHEAT_2_BEDONLY _UxGT("Preque. " PREHEAT_2_LABEL " Cama")
#define MSG_PREHEAT_2_SETTINGS _UxGT("Preque. " PREHEAT_2_LABEL " conf")
#define MSG_COOLDOWN _UxGT("Arrefriar")
#define MSG_SWITCH_PS_ON _UxGT("Acender")
#define MSG_SWITCH_PS_OFF _UxGT("Apagar")
#define MSG_EXTRUDE _UxGT("Extrudir")
#define MSG_RETRACT _UxGT("Retraer")
#define MSG_MOVE_AXIS _UxGT("Mover eixe")
#define MSG_BED_LEVELING _UxGT("Nivelar cama")
#define MSG_LEVEL_BED _UxGT("Nivelar cama")
#define MSG_MOVE_X _UxGT("Mover X")
#define MSG_MOVE_Y _UxGT("Mover Y")
#define MSG_MOVE_Z _UxGT("Mover Z")
#define MSG_MOVE_E _UxGT("Extrusor")
#define MSG_MOVE_Z_DIST _UxGT("Mover %smm")
#define MSG_MOVE_01MM _UxGT("Mover 0.1mm")
#define MSG_MOVE_1MM _UxGT("Mover 1mm")
#define MSG_MOVE_10MM _UxGT("Mover 10mm")
#define MSG_SPEED _UxGT("Velocidade")
#define MSG_BED_Z _UxGT("Cama Z")
#define MSG_NOZZLE _UxGT("Bico")
#define MSG_BED _UxGT("Cama")
#define MSG_FAN_SPEED _UxGT("Velocidade vent.")
#define MSG_FLOW _UxGT("Fluxo")
//#define MSG_CONTROL _UxGT("Control")
#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Min")
#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Max")
#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Fact")
//#define MSG_AUTOTEMP _UxGT("Autotemp")
//#define MSG_LCD_ON _UxGT("On")
//#define MSG_LCD_OFF _UxGT("Off")
//#define MSG_PID_P _UxGT("PID-P")
//#define MSG_PID_I _UxGT("PID-I")
//#define MSG_PID_D _UxGT("PID-D")
//#define MSG_PID_C _UxGT("PID-C")
#define MSG_SELECT _UxGT("Escolla")
#define MSG_ACC _UxGT("Acel")
//#define MSG_JERK _UxGT("Jerk")
//#if IS_KINEMATIC
// #define MSG_VA_JERK _UxGT("Va-jerk")
// #define MSG_VB_JERK _UxGT("Vb-jerk")
// #define MSG_VC_JERK _UxGT("Vc-jerk")
//#else
// #define MSG_VA_JERK _UxGT("Vx-jerk")
// #define MSG_VB_JERK _UxGT("Vy-jerk")
// #define MSG_VC_JERK _UxGT("Vz-jerk")
//#endif
//#define MSG_VE_JERK _UxGT("Ve-jerk")
//#define MSG_VMAX _UxGT("Vmax ")
//#define MSG_VMIN _UxGT("Vmin")
//#define MSG_VTRAV_MIN _UxGT("VTrav min")
//#define MSG_AMAX _UxGT("Amax ")
//#define MSG_A_RETRACT _UxGT("A-retract")
//#define MSG_A_TRAVEL _UxGT("A-travel")
#define MSG_STEPS_PER_MM _UxGT("Pasos/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("A pasos/mm")
#define MSG_BSTEPS _UxGT("B pasos/mm")
#define MSG_CSTEPS _UxGT("C pasos/mm")
#else
#define MSG_ASTEPS _UxGT("X pasos/mm")
#define MSG_BSTEPS _UxGT("Y pasos/mm")
#define MSG_CSTEPS _UxGT("Z pasos/mm")
#endif
#define MSG_ESTEPS _UxGT("E pasos/mm")
#define MSG_E0_STEPS _UxGT("E1 pasos/mm")
#define MSG_E1_STEPS _UxGT("E2 pasos/mm")
#define MSG_E2_STEPS _UxGT("E3 pasos/mm")
#define MSG_E3_STEPS _UxGT("E4 pasos/mm")
#define MSG_E4_STEPS _UxGT("E5 pasos/mm")
#define MSG_E5_STEPS _UxGT("E6 pasos/mm")
#define MSG_TEMPERATURE _UxGT("Temperatura")
#define MSG_MOTION _UxGT("Movemento")
#define MSG_FILAMENT _UxGT("Filamento")
#define MSG_VOLUMETRIC_ENABLED _UxGT("E en mm3")
#define MSG_FILAMENT_DIAM _UxGT("Diam. fil.")
#define MSG_CONTRAST _UxGT("Constraste LCD")
#define MSG_STORE_EEPROM _UxGT("Gardar en memo.")
#define MSG_LOAD_EEPROM _UxGT("Cargar de memo.")
#define MSG_RESTORE_FAILSAFE _UxGT("Cargar de firm.")
#define MSG_REFRESH _UxGT("Volver a cargar")
#define MSG_WATCH _UxGT("Monitorizacion")
#define MSG_PREPARE _UxGT("Preparar")
#define MSG_TUNE _UxGT("Axustar")
#define MSG_PAUSE_PRINT _UxGT("Pausar impres.")
#define MSG_RESUME_PRINT _UxGT("Seguir impres.")
#define MSG_STOP_PRINT _UxGT("Deter impres.")
#define MSG_MEDIA_MENU _UxGT("Tarxeta SD")
#define MSG_NO_MEDIA _UxGT("Sen tarxeta SD")
#define MSG_DWELL _UxGT("En repouso...")
#define MSG_USERWAIT _UxGT("A espera...")
#define MSG_PRINT_ABORTED _UxGT("Impre. cancelada")
#define MSG_NO_MOVE _UxGT("Sen movemento.")
#define MSG_KILLED _UxGT("PROGRAMA MORTO")
#define MSG_STOPPED _UxGT("PROGRAMA PARADO")
#define MSG_CONTROL_RETRACT _UxGT("Retraccion mm")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Cambio retra. mm")
#define MSG_CONTROL_RETRACTF _UxGT("Retraccion V")
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Alzar Z mm")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("Recup. retra. mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Cambio recup. mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("Recuperacion V")
#define MSG_AUTORETRACT _UxGT("Retraccion auto.")
#define MSG_FILAMENTCHANGE _UxGT("Cambiar filamen.")
#define MSG_INIT_MEDIA _UxGT("Iniciando SD")
#define MSG_CHANGE_MEDIA _UxGT("Cambiar SD")
#define MSG_ZPROBE_OUT _UxGT("Sonda-Z sen cama")
//#define MSG_HOME_FIRST _UxGT("Home %s%s%s first")
#define MSG_BLTOUCH_SELFTEST _UxGT("Comprobar BLTouch")
#define MSG_BLTOUCH_RESET _UxGT("Iniciar BLTouch")
#define MSG_ZPROBE_ZOFFSET _UxGT("Offset Z")
#define MSG_BABYSTEP_X _UxGT("Micropaso X")
#define MSG_BABYSTEP_Y _UxGT("Micropaso Y")
#define MSG_BABYSTEP_Z _UxGT("Micropaso Z")
#define MSG_ENDSTOP_ABORT _UxGT("Erro fin carro")
#define MSG_HEATING_FAILED_LCD _UxGT("Fallo quentando")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Erro temperatura")
#define MSG_THERMAL_RUNAWAY _UxGT("Temp. excesiva")
//#define MSG_ERR_MAXTEMP _UxGT("Err: temp. max.")
//#define MSG_ERR_MINTEMP _UxGT("Err: temp. min.")
//#define MSG_ERR_MAXTEMP_BED _UxGT("Err: MAXTEMP BED")
//#define MSG_ERR_MINTEMP_BED _UxGT("Err: MINTEMP BED")
//#define MSG_ERR_Z_HOMING _UxGT("Home XY first")
#define MSG_HALTED _UxGT("SISTEMA MORTO")
#define MSG_PLEASE_RESET _UxGT("Debe reiniciar!")
//#define MSG_SHORT_DAY _UxGT("d") // One character only
//#define MSG_SHORT_HOUR _UxGT("h") // One character only
//#define MSG_SHORT_MINUTE _UxGT("m") // One character only
#define MSG_HEATING _UxGT("Quentando...")
#define MSG_BED_HEATING _UxGT("Quentando cama...")
#define MSG_DELTA_CALIBRATE _UxGT("Calibracion Delta")
#define MSG_DELTA_CALIBRATE_X _UxGT("Calibrar X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Calibrar Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Calibrar Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Calibrar Centro")
#define MSG_INFO_MENU _UxGT("Acerca de...")
#define MSG_INFO_PRINTER_MENU _UxGT("Informacion")
#define MSG_INFO_STATS_MENU _UxGT("Estadisticas")
#define MSG_INFO_BOARD_MENU _UxGT("Placa nai")
#define MSG_INFO_THERMISTOR_MENU _UxGT("Termistores")
#define MSG_INFO_EXTRUDERS _UxGT("Extrusores")
#define MSG_INFO_BAUDRATE _UxGT("Baudios")
#define MSG_INFO_PROTOCOL _UxGT("Protocolo")
#define MSG_CASE_LIGHT _UxGT("Luz")
#if LCD_WIDTH >= 20
#define MSG_INFO_PRINT_COUNT _UxGT("Total traballos")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Total completos")
#define MSG_INFO_PRINT_TIME _UxGT("Tempo impresion")
#define MSG_INFO_PRINT_LONGEST _UxGT("Traballo +longo")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Total extruido")
#else
#define MSG_INFO_PRINT_COUNT _UxGT("Traballos")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Completos")
#define MSG_INFO_PRINT_TIME _UxGT("Tempo")
#define MSG_INFO_PRINT_LONGEST _UxGT("O +longo")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Extruido")
#endif
#define MSG_INFO_MIN_TEMP _UxGT("Min Temp")
#define MSG_INFO_MAX_TEMP _UxGT("Max Temp")
#define MSG_INFO_PSU _UxGT("Fonte alime.")
#define MSG_DRIVE_STRENGTH _UxGT("Potencia motor")
#define MSG_DAC_PERCENT _UxGT("Motor %")
#define MSG_DAC_EEPROM_WRITE _UxGT("Garda DAC EEPROM")
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Segue traballo") constexpr uint8_t CHARSIZE = 1;
PROGMEM Language_Str LANGUAGE = _UxGT("Galician");
#define MSG_EXPECTED_PRINTER _UxGT("Impresora incorrecta") PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" lista.");
PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Tarxeta inserida");
PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Tarxeta retirada");
PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("FinCarro");
PROGMEM Language_Str MSG_MAIN = _UxGT("Menu principal");
PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Autoarranque");
PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Apagar motores");
PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Ir a orixe");
PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Ir orixe X");
PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Ir orixe Y");
PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Ir orixe Z");
PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Ir orixes XYZ");
PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Prema pulsador");
PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Seguinte punto");
PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Nivelado feito");
PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Offsets na orixe");
PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Offsets fixados");
PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Fixar orixe");
PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Prequentar ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Prequentar ") PREHEAT_1_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Prequentar ") PREHEAT_1_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Prequentar ") PREHEAT_1_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Prequentar ") PREHEAT_1_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Prequentar ") PREHEAT_1_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Prequentar ") PREHEAT_1_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Preque. ") PREHEAT_1_LABEL _UxGT(" Bico");
PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Preque. ") PREHEAT_1_LABEL _UxGT(" Bico ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Preque. ") PREHEAT_1_LABEL _UxGT(" Bico ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Preque. ") PREHEAT_1_LABEL _UxGT(" Bico ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Preque. ") PREHEAT_1_LABEL _UxGT(" Bico ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Preque. ") PREHEAT_1_LABEL _UxGT(" Bico ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Preque. ") PREHEAT_1_LABEL _UxGT(" Bico ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Preque. ") PREHEAT_1_LABEL _UxGT(" Todo");
PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Preque. ") PREHEAT_1_LABEL _UxGT(" Cama");
PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Preque. ") PREHEAT_1_LABEL _UxGT(" conf");
PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Prequentar ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Prequentar ") PREHEAT_2_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Prequentar ") PREHEAT_2_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Prequentar ") PREHEAT_2_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Prequentar ") PREHEAT_2_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Prequentar ") PREHEAT_2_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Prequentar ") PREHEAT_2_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Preque. ") PREHEAT_2_LABEL _UxGT(" Bico");
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Preque. ") PREHEAT_2_LABEL _UxGT(" Bico ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Preque. ") PREHEAT_2_LABEL _UxGT(" Bico ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Preque. ") PREHEAT_2_LABEL _UxGT(" Bico ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Preque. ") PREHEAT_2_LABEL _UxGT(" Bico ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Preque. ") PREHEAT_2_LABEL _UxGT(" Bico ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Preque. ") PREHEAT_2_LABEL _UxGT(" Bico ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Preque. ") PREHEAT_2_LABEL _UxGT(" Todo");
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Preque. ") PREHEAT_2_LABEL _UxGT(" Cama");
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Preque. ") PREHEAT_2_LABEL _UxGT(" conf");
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Arrefriar");
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Acender");
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Apagar");
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Extrudir");
PROGMEM Language_Str MSG_RETRACT = _UxGT("Retraer");
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Mover eixe");
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Nivelar cama");
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Nivelar cama");
PROGMEM Language_Str MSG_MOVE_X = _UxGT("Mover X");
PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Mover Y");
PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Mover Z");
PROGMEM Language_Str MSG_MOVE_E = _UxGT("Extrusor");
PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Extrusor ") LCD_STR_E0;
PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Extrusor ") LCD_STR_E1;
PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Extrusor ") LCD_STR_E2;
PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Extrusor ") LCD_STR_E3;
PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Extrusor ") LCD_STR_E4;
PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Extrusor ") LCD_STR_E5;
PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Mover %smm");
PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Mover 0.1mm");
PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Mover 1mm");
PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Mover 10mm");
PROGMEM Language_Str MSG_SPEED = _UxGT("Velocidade");
PROGMEM Language_Str MSG_BED_Z = _UxGT("Cama Z");
PROGMEM Language_Str MSG_NOZZLE = _UxGT("Bico");
PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Bico ") LCD_STR_N0;
PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Bico ") LCD_STR_N1;
PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Bico ") LCD_STR_N2;
PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Bico ") LCD_STR_N3;
PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Bico ") LCD_STR_N4;
PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Bico ") LCD_STR_N5;
PROGMEM Language_Str MSG_BED = _UxGT("Cama");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Velocidade vent.");
PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Velocidade vent. 1");
PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Velocidade vent. 2");
PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Velocidade vent. 3");
PROGMEM Language_Str MSG_FLOW = _UxGT("Fluxo");
PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Fluxo ") LCD_STR_N0;
PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Fluxo ") LCD_STR_N1;
PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Fluxo ") LCD_STR_N2;
PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Fluxo ") LCD_STR_N3;
PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Fluxo ") LCD_STR_N4;
PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Fluxo ") LCD_STR_N5;
PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" Min");
PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" Max");
PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Fact");
PROGMEM Language_Str MSG_SELECT = _UxGT("Escolla");
PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("Escolla ") LCD_STR_E0;
PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("Escolla ") LCD_STR_E1;
PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("Escolla ") LCD_STR_E2;
PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("Escolla ") LCD_STR_E3;
PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("Escolla ") LCD_STR_E4;
PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("Escolla ") LCD_STR_E5;
PROGMEM Language_Str MSG_ACC = _UxGT("Acel");
PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Pasos/mm");
PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" pasos/mm");
PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" pasos/mm");
PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" pasos/mm");
PROGMEM Language_Str MSG_E_STEPS = _UxGT("E pasos/mm");
PROGMEM Language_Str MSG_E0_STEPS = LCD_STR_E0 _UxGT(" pasos/mm");
PROGMEM Language_Str MSG_E1_STEPS = LCD_STR_E1 _UxGT(" pasos/mm");
PROGMEM Language_Str MSG_E2_STEPS = LCD_STR_E2 _UxGT(" pasos/mm");
PROGMEM Language_Str MSG_E3_STEPS = LCD_STR_E3 _UxGT(" pasos/mm");
PROGMEM Language_Str MSG_E4_STEPS = LCD_STR_E4 _UxGT(" pasos/mm");
PROGMEM Language_Str MSG_E5_STEPS = LCD_STR_E5 _UxGT(" pasos/mm");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura");
PROGMEM Language_Str MSG_MOTION = _UxGT("Movemento");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filamento");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E en mm3");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Diam. fil.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Diam. fil. ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Diam. fil. ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Diam. fil. ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Diam. fil. ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Diam. fil. ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Diam. fil. ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("Constraste LCD");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Gardar en memo.");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Cargar de memo.");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Cargar de firm.");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Volver a cargar");
PROGMEM Language_Str MSG_WATCH = _UxGT("Monitorizacion");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Preparar");
PROGMEM Language_Str MSG_TUNE = _UxGT("Axustar");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Pausar impres.");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Seguir impres.");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Deter impres.");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Tarxeta SD");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("Sen tarxeta SD");
PROGMEM Language_Str MSG_DWELL = _UxGT("En repouso...");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("A espera...");
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Impre. cancelada");
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Sen movemento.");
PROGMEM Language_Str MSG_KILLED = _UxGT("PROGRAMA MORTO");
PROGMEM Language_Str MSG_STOPPED = _UxGT("PROGRAMA PARADO");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Retraccion mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Cambio retra. mm");
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Retraccion V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Alzar Z mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("Recup. retra. mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("Cambio recup. mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("Recuperacion V");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Retraccion auto.");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Cambiar filamen.");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Cambiar filamen. ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Cambiar filamen. ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Cambiar filamen. ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Cambiar filamen. ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Cambiar filamen. ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Cambiar filamen. ") LCD_STR_E5;
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Iniciando SD");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Cambiar SD");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sonda-Z sen cama");
PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("Comprobar BLTouch");
PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("Iniciar BLTouch");
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Offset Z");
PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Micropaso X");
PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Micropaso Y");
PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Micropaso Z");
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Erro fin carro");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Fallo quentando");
PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("Erro temperatura");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("Temp. excesiva");
PROGMEM Language_Str MSG_HALTED = _UxGT("SISTEMA MORTO");
PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Debe reiniciar!");
PROGMEM Language_Str MSG_HEATING = _UxGT("Quentando...");
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Quentando cama...");
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Calibracion Delta");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Calibrar X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Calibrar Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Calibrar Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Calibrar Centro");
PROGMEM Language_Str MSG_INFO_MENU = _UxGT("Acerca de...");
PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Informacion");
PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Estadisticas");
PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Placa nai");
PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Termistores");
PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Extrusores");
PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("Baudios");
PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Protocolo");
PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Luz");
#if LCD_WIDTH >= 20
PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Total traballos");
PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Total completos");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Tempo impresion");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Traballo +longo");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Total extruido");
#else
PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Traballos");
PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Completos");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Tempo");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("O +longo");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Extruido");
#endif
PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Min Temp");
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Max Temp");
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Fonte alime.");
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Potencia motor");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Garda DAC EEPROM");
#if LCD_HEIGHT >= 4 PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Segue traballo");
// Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Agarde para") PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Impresora incorrecta");
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("iniciar troco")
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("de filamento") #if LCD_HEIGHT >= 4
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Agarde pola") // Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("descarga do") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Agarde para", "iniciar troco", "de filamento"));
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("filamento") PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_3_LINE("Agarde pola", "descarga do", "filamento"));
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Introduza o") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Introduza o", "filamento e", "faga click"));
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("filamento e") PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_3_LINE("Agarde pola", "carga do", "filamento"));
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("faga click") PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_3_LINE("Agarde para", "seguir co", "traballo"));
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Agarde pola") #else // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("carga do") // Up to 2 lines allowed
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamento") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Agarde..."));
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Agarde para") PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Descargando..."));
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("seguir co") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Introduza e click"));
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("traballo") PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Cargando..."));
#else // LCD_HEIGHT < 4 PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Seguindo..."));
// Up to 2 lines allowed #endif // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Agarde...") }
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Descargando...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Introduza e click")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Cargando...")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Seguindo...")
#endif // LCD_HEIGHT < 4

View file

@ -30,223 +30,181 @@
*/ */
#define DISPLAY_CHARSET_ISO10646_1 // use the better font on full graphic displays. #define DISPLAY_CHARSET_ISO10646_1 // use the better font on full graphic displays.
#define CHARSIZE 2
#define WELCOME_MSG MACHINE_NAME _UxGT(" spreman.") namespace Language_hr {
#define MSG_MEDIA_INSERTED _UxGT("SD kartica umetnuta") using namespace Language_en; // Inherit undefined strings from English
#define MSG_MEDIA_REMOVED _UxGT("SD kartica uklonjena")
//#define MSG_LCD_ENDSTOPS _UxGT("Endstops") // Max length 8 characters
//#define MSG_MAIN _UxGT("Main")
#define MSG_AUTOSTART _UxGT("Auto pokretanje")
#define MSG_DISABLE_STEPPERS _UxGT("Ugasi steppere")
#define MSG_AUTO_HOME _UxGT("Automatski homing")
#define MSG_AUTO_HOME_X _UxGT("Home-aj X")
#define MSG_AUTO_HOME_Y _UxGT("Home-aj Y")
#define MSG_AUTO_HOME_Z _UxGT("Home-aj Z")
#define MSG_LEVEL_BED_HOMING _UxGT("Home-aj XYZ")
#define MSG_LEVEL_BED_WAITING _UxGT("Klikni za početak")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Sljedeća točka")
#define MSG_LEVEL_BED_DONE _UxGT("Niveliranje gotovo!")
#define MSG_SET_HOME_OFFSETS _UxGT("Postavi home offsete")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Offsets postavljeni")
#define MSG_SET_ORIGIN _UxGT("Postavi ishodište")
#define MSG_PREHEAT_1 _UxGT("Predgrij " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ")
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" Sve")
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" Bed")
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" conf")
#define MSG_PREHEAT_2 _UxGT("Predgrij " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ")
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" Sve")
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" Bed")
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" conf")
#define MSG_COOLDOWN _UxGT("Hlađenje")
#define MSG_SWITCH_PS_ON _UxGT("Uključi napajanje")
#define MSG_SWITCH_PS_OFF _UxGT("Isključi napajanje")
//#define MSG_EXTRUDE _UxGT("Extrude")
//#define MSG_RETRACT _UxGT("Retract")
#define MSG_MOVE_AXIS _UxGT("Miči os")
#define MSG_BED_LEVELING _UxGT("Niveliraj bed")
#define MSG_LEVEL_BED _UxGT("Niveliraj bed")
#define MSG_MOVE_X _UxGT("Miči X")
#define MSG_MOVE_Y _UxGT("Miči Y")
#define MSG_MOVE_Z _UxGT("Miči Z")
//#define MSG_MOVE_E _UxGT("Extruder")
#define MSG_MOVE_Z_DIST _UxGT("Miči %smm")
#define MSG_MOVE_01MM _UxGT("Miči 0.1mm")
#define MSG_MOVE_1MM _UxGT("Miči 1mm")
#define MSG_MOVE_10MM _UxGT("Miči 10mm")
#define MSG_SPEED _UxGT("Brzina")
#define MSG_BED_Z _UxGT("Bed Z")
#define MSG_NOZZLE _UxGT("Dizna")
#define MSG_BED _UxGT("Bed")
#define MSG_FAN_SPEED _UxGT("Brzina ventilatora")
//#define MSG_FLOW _UxGT("Flow")
//#define MSG_CONTROL _UxGT("Control")
//#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Min")
//#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Max")
//#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Fact")
//#define MSG_AUTOTEMP _UxGT("Autotemp")
//#define MSG_LCD_ON _UxGT("On")
//#define MSG_LCD_OFF _UxGT("Off")
//#define MSG_PID_P _UxGT("PID-P")
//#define MSG_PID_I _UxGT("PID-I")
//#define MSG_PID_D _UxGT("PID-D")
//#define MSG_PID_C _UxGT("PID-C")
#define MSG_SELECT _UxGT("Odaberi")
//#define MSG_ACC _UxGT("Accel")
//#define MSG_JERK _UxGT("Jerk")
//#if IS_KINEMATIC
// #define MSG_VA_JERK _UxGT("Va-jerk")
// #define MSG_VB_JERK _UxGT("Vb-jerk")
// #define MSG_VC_JERK _UxGT("Vc-jerk")
//#else
// #define MSG_VA_JERK _UxGT("Vx-jerk")
// #define MSG_VB_JERK _UxGT("Vy-jerk")
// #define MSG_VC_JERK _UxGT("Vz-jerk")
//#endif
//#define MSG_VE_JERK _UxGT("Ve-jerk")
//#define MSG_VMAX _UxGT("Vmax ")
//#define MSG_VMIN _UxGT("Vmin")
//#define MSG_VTRAV_MIN _UxGT("VTrav min")
//#define MSG_AMAX _UxGT("Amax ")
//#define MSG_A_RETRACT _UxGT("A-retract")
//#define MSG_A_TRAVEL _UxGT("A-travel")
//#define MSG_STEPS_PER_MM _UxGT("Steps/mm")
//#if IS_KINEMATIC
// #define MSG_ASTEPS _UxGT("Asteps/mm")
// #define MSG_BSTEPS _UxGT("Bsteps/mm")
// #define MSG_CSTEPS _UxGT("Csteps/mm")
//#else
// #define MSG_ASTEPS _UxGT("Xsteps/mm")
// #define MSG_BSTEPS _UxGT("Ysteps/mm")
// #define MSG_CSTEPS _UxGT("Zsteps/mm")
//#endif
//#define MSG_ESTEPS _UxGT("Esteps/mm")
//#define MSG_E0_STEPS _UxGT("E1steps/mm")
//#define MSG_E1_STEPS _UxGT("E2steps/mm")
//#define MSG_E2_STEPS _UxGT("E3steps/mm")
//#define MSG_E3_STEPS _UxGT("E4steps/mm")
//#define MSG_E4_STEPS _UxGT("E5steps/mm")
//#define MSG_E5_STEPS _UxGT("E6steps/mm")
#define MSG_TEMPERATURE _UxGT("Temperature")
#define MSG_MOTION _UxGT("Gibanje")
//#define MSG_FILAMENT _UxGT("Filament")
#define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm3")
#define MSG_FILAMENT_DIAM _UxGT("Fil. Dia.")
#define MSG_CONTRAST _UxGT("Kontrast LCD-a")
#define MSG_STORE_EEPROM _UxGT("Pohrani u memoriju")
#define MSG_LOAD_EEPROM _UxGT("Učitaj memoriju")
#define MSG_RESTORE_FAILSAFE _UxGT("Učitaj failsafe")
#define MSG_REFRESH _UxGT("Osvježi")
#define MSG_WATCH _UxGT("Info screen")
#define MSG_PREPARE _UxGT("Pripremi")
//#define MSG_TUNE _UxGT("Tune")
#define MSG_PAUSE_PRINT _UxGT("Pauziraj print")
#define MSG_RESUME_PRINT _UxGT("Nastavi print")
#define MSG_STOP_PRINT _UxGT("Zaustavi print")
#define MSG_MEDIA_MENU _UxGT("Printaj s SD kartice")
#define MSG_NO_MEDIA _UxGT("Nema SD kartice")
//#define MSG_DWELL _UxGT("Sleep...")
#define MSG_USERWAIT _UxGT("Čekaj korisnika...")
#define MSG_PRINT_ABORTED _UxGT("Print otkazan")
//#define MSG_NO_MOVE _UxGT("No move.")
//#define MSG_KILLED _UxGT("KILLED. ")
#define MSG_STOPPED _UxGT("ZAUSTAVLJEN. ")
//#define MSG_CONTROL_RETRACT _UxGT("Retract mm")
//#define MSG_CONTROL_RETRACT_SWAP _UxGT("Swap Re.mm")
//#define MSG_CONTROL_RETRACTF _UxGT("Retract V")
//#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Hop mm")
//#define MSG_CONTROL_RETRACT_RECOVER _UxGT("UnRet mm")
//#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("S UnRet mm")
//#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("UnRet V")
//#define MSG_AUTORETRACT _UxGT("AutoRetr.")
#define MSG_FILAMENTCHANGE _UxGT("Promijeni filament")
#define MSG_INIT_MEDIA _UxGT("Init. SD karticu")
#define MSG_CHANGE_MEDIA _UxGT("Promijeni SD karticu")
//#define MSG_ZPROBE_OUT _UxGT("Z probe out. bed")
//#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch Self-Test")
//#define MSG_BLTOUCH_RESET _UxGT("Reset BLTouch")
//#define MSG_HOME_FIRST _UxGT("Home %s%s%s first")
//#define MSG_ZPROBE_ZOFFSET _UxGT("Z Offset")
//#define MSG_BABYSTEP_X _UxGT("Babystep X")
//#define MSG_BABYSTEP_Y _UxGT("Babystep Y")
//#define MSG_BABYSTEP_Z _UxGT("Babystep Z")
//#define MSG_ENDSTOP_ABORT _UxGT("Endstop abort")
#define MSG_HEATING_FAILED_LCD _UxGT("Grijanje neuspješno")
//#define MSG_ERR_REDUNDANT_TEMP _UxGT("Err: REDUNDANT TEMP")
//#define MSG_THERMAL_RUNAWAY _UxGT("THERMAL RUNAWAY")
//#define MSG_ERR_MAXTEMP _UxGT("Err: MAXTEMP")
//#define MSG_ERR_MINTEMP _UxGT("Err: MINTEMP")
//#define MSG_ERR_MAXTEMP_BED _UxGT("Err: MAXTEMP BED")
//#define MSG_ERR_MINTEMP_BED _UxGT("Err: MINTEMP BED")
//#define MSG_ERR_Z_HOMING _UxGT("Home XY first")
//#define MSG_HALTED _UxGT("PRINTER HALTED")
//#define MSG_PLEASE_RESET _UxGT("Please reset")
//#define MSG_SHORT_DAY _UxGT("d") // One character only
//#define MSG_SHORT_HOUR _UxGT("h") // One character only
//#define MSG_SHORT_MINUTE _UxGT("m") // One character only
#define MSG_HEATING _UxGT("Grijanje...")
#define MSG_BED_HEATING _UxGT("Grijanje Bed-a...")
#define MSG_DELTA_CALIBRATE _UxGT("Delta Kalibracija")
#define MSG_DELTA_CALIBRATE_X _UxGT("Kalibriraj X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibriraj Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Kalibriraj Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Kalibriraj Središte")
#define MSG_INFO_MENU _UxGT("O printeru")
#define MSG_INFO_PRINTER_MENU _UxGT("Podaci o printeru")
#define MSG_INFO_STATS_MENU _UxGT("Statistika printera")
#define MSG_INFO_BOARD_MENU _UxGT("Podaci o elektronici")
#define MSG_INFO_THERMISTOR_MENU _UxGT("Termistori")
#define MSG_INFO_EXTRUDERS _UxGT("Extruderi")
#define MSG_INFO_BAUDRATE _UxGT("Baud")
#define MSG_INFO_PROTOCOL _UxGT("Protokol")
#define MSG_CASE_LIGHT _UxGT("Osvjetljenje")
#define MSG_EXPECTED_PRINTER _UxGT("Neispravan pisač") constexpr uint8_t CHARSIZE = 2;
PROGMEM Language_Str LANGUAGE = _UxGT("Croatian");
#if LCD_WIDTH >= 20 PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" spreman.");
#define MSG_INFO_PRINT_COUNT _UxGT("Broj printova") PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("SD kartica umetnuta");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Završeni") PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("SD kartica uklonjena");
#define MSG_INFO_PRINT_TIME _UxGT("Ukupno printanja") PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Endstops"); // Max length 8 characters
#define MSG_INFO_PRINT_LONGEST _UxGT("Najduži print") PROGMEM Language_Str MSG_MAIN = _UxGT("Main");
#define MSG_INFO_PRINT_FILAMENT _UxGT("Extrudirano ukupno") PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Auto pokretanje");
#else PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Ugasi steppere");
#define MSG_INFO_PRINT_COUNT _UxGT("Printovi") PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Automatski homing");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Završeni") PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Home-aj X");
#define MSG_INFO_PRINT_TIME _UxGT("Ukupno") PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Home-aj Y");
#define MSG_INFO_PRINT_LONGEST _UxGT("Najduži") PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Home-aj Z");
#define MSG_INFO_PRINT_FILAMENT _UxGT("Extrudirano") PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Home-aj XYZ");
#endif PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Klikni za početak");
PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Sljedeća točka");
PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Niveliranje gotovo!");
PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Postavi home offsete");
PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Offsets postavljeni");
PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Postavi ishodište");
PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Predgrij ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Predgrij ") PREHEAT_1_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Predgrij ") PREHEAT_1_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Predgrij ") PREHEAT_1_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Predgrij ") PREHEAT_1_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Predgrij ") PREHEAT_1_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Predgrij ") PREHEAT_1_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Predgrij ") PREHEAT_1_LABEL _UxGT(" Dizna");
PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Predgrij ") PREHEAT_1_LABEL _UxGT(" Dizna ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Predgrij ") PREHEAT_1_LABEL _UxGT(" Dizna ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Predgrij ") PREHEAT_1_LABEL _UxGT(" Dizna ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Predgrij ") PREHEAT_1_LABEL _UxGT(" Dizna ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Predgrij ") PREHEAT_1_LABEL _UxGT(" Dizna ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Predgrij ") PREHEAT_1_LABEL _UxGT(" Dizna ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Predgrij ") PREHEAT_1_LABEL _UxGT(" Sve");
PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Predgrij ") PREHEAT_1_LABEL _UxGT(" Bed");
PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Predgrij ") PREHEAT_1_LABEL _UxGT(" conf");
PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Predgrij ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Predgrij ") PREHEAT_2_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Predgrij ") PREHEAT_2_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Predgrij ") PREHEAT_2_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Predgrij ") PREHEAT_2_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Predgrij ") PREHEAT_2_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Predgrij ") PREHEAT_2_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Predgrij ") PREHEAT_2_LABEL _UxGT(" Dizna");
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Predgrij ") PREHEAT_2_LABEL _UxGT(" Dizna ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Predgrij ") PREHEAT_2_LABEL _UxGT(" Dizna ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Predgrij ") PREHEAT_2_LABEL _UxGT(" Dizna ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Predgrij ") PREHEAT_2_LABEL _UxGT(" Dizna ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Predgrij ") PREHEAT_2_LABEL _UxGT(" Dizna ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Predgrij ") PREHEAT_2_LABEL _UxGT(" Dizna ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Predgrij ") PREHEAT_2_LABEL _UxGT(" Sve");
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Predgrij ") PREHEAT_2_LABEL _UxGT(" Bed");
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Predgrij ") PREHEAT_2_LABEL _UxGT(" conf");
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Hlađenje");
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Uključi napajanje");
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Isključi napajanje");
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Miči os");
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Niveliraj bed");
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Niveliraj bed");
PROGMEM Language_Str MSG_MOVE_X = _UxGT("Miči X");
PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Miči Y");
PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Miči %smm");
PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Miči 0.1mm");
PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Miči 1mm");
PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Miči 10mm");
PROGMEM Language_Str MSG_SPEED = _UxGT("Brzina");
PROGMEM Language_Str MSG_BED_Z = _UxGT("Bed Z");
PROGMEM Language_Str MSG_NOZZLE = _UxGT("Dizna");
PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Dizna ") LCD_STR_N0;
PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Dizna ") LCD_STR_N1;
PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Dizna ") LCD_STR_N2;
PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Dizna ") LCD_STR_N3;
PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Dizna ") LCD_STR_N4;
PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Dizna ") LCD_STR_N5;
PROGMEM Language_Str MSG_BED = _UxGT("Bed");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Brzina ventilatora");
PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Brzina ventilatora 1");
PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Brzina ventilatora 2");
PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Brzina ventilatora 3");
PROGMEM Language_Str MSG_SELECT = _UxGT("Odaberi");
PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("Odaberi ") LCD_STR_E0;
PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("Odaberi ") LCD_STR_E1;
PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("Odaberi ") LCD_STR_E2;
PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("Odaberi ") LCD_STR_E3;
PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("Odaberi ") LCD_STR_E4;
PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("Odaberi ") LCD_STR_E5;
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperature");
PROGMEM Language_Str MSG_MOTION = _UxGT("Gibanje");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E in mm3");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Fil. Dia.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Fil. Dia. ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Fil. Dia. ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Fil. Dia. ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Fil. Dia. ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Fil. Dia. ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Fil. Dia. ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("Kontrast LCD-a");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Pohrani u memoriju");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Učitaj memoriju");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Učitaj failsafe");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Osvježi");
PROGMEM Language_Str MSG_WATCH = _UxGT("Info screen");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Pripremi");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Pauziraj print");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Nastavi print");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Zaustavi print");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Printaj s SD kartice");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("Nema SD kartice");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Čekaj korisnika...");
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Print otkazan");
PROGMEM Language_Str MSG_STOPPED = _UxGT("ZAUSTAVLJEN. ");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Promijeni filament");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Promijeni filament ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Promijeni filament ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Promijeni filament ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Promijeni filament ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Promijeni filament ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Promijeni filament ") LCD_STR_E5;
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Init. SD karticu");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Promijeni SD karticu");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Grijanje neuspješno");
PROGMEM Language_Str MSG_HEATING = _UxGT("Grijanje...");
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Grijanje Bed-a...");
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Delta Kalibracija");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Kalibriraj X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Kalibriraj Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Kalibriraj Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Kalibriraj Središte");
PROGMEM Language_Str MSG_INFO_MENU = _UxGT("O printeru");
PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Podaci o printeru");
PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Statistika printera");
PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Podaci o elektronici");
PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Termistori");
PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Extruderi");
PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("Baud");
PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Protokol");
PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Osvjetljenje");
//#define MSG_INFO_MIN_TEMP _UxGT("Min Temp") PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Neispravan pisač");
//#define MSG_INFO_MAX_TEMP _UxGT("Max Temp")
#define MSG_INFO_PSU _UxGT("Napajanje")
//#define MSG_DRIVE_STRENGTH _UxGT("Drive Strength")
//#define MSG_DAC_PERCENT _UxGT("Driver %")
//#define MSG_DAC_EEPROM_WRITE _UxGT("DAC EEPROM Write")
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Nastavi print") #if LCD_WIDTH >= 20
PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Broj printova");
PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Završeni");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Ukupno printanja");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Najduži print");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Extrudirano ukupno");
#else
PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Printovi");
PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Završeni");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Ukupno");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Najduži");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Extrudirano");
#endif
#if LCD_HEIGHT >= 4 PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Napajanje");
// Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Čekaj početak") PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Nastavi print");
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("filamenta")
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("promijeni") PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Čekaj", "filament unload"));
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Čekaj") PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Pričekaj", "filament load"));
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("filament unload") PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Nastavljam..."));
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Umetni filament")
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("i pritisni tipku") #if LCD_HEIGHT >= 4
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("za nastavak...") // Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Pričekaj") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Čekaj početak", "filamenta", "promijeni"));
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("filament load") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Umetni filament", "i pritisni tipku", "za nastavak..."));
//#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wait for print") #else
//#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("to resume") // Up to 2 lines allowed
#else // LCD_HEIGHT < 4 PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT("Pričekaj...");
// Up to 2 lines allowed //PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_2_LINE("?", "?"));
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Pričekaj...") #endif
//#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Ejecting...") }
//#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Insert and Click")
//#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Loading...")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Nastavljam...")
#endif // LCD_HEIGHT < 4

View file

@ -31,544 +31,637 @@
#define DISPLAY_CHARSET_ISO10646_1 #define DISPLAY_CHARSET_ISO10646_1
#define WELCOME_MSG MACHINE_NAME _UxGT(" pronto.") namespace Language_it {
#define MSG_YES _UxGT("SI") using namespace Language_en; // Inherit undefined strings from English
#define MSG_NO _UxGT("NO")
#define MSG_BACK _UxGT("Indietro")
#define MSG_MEDIA_ABORTING _UxGT("Annullando...")
#define MSG_MEDIA_INSERTED _UxGT("Media inserito")
#define MSG_MEDIA_REMOVED _UxGT("Media rimosso")
#define MSG_MEDIA_RELEASED _UxGT("Media rilasciato")
#define MSG_MEDIA_WAITING _UxGT("Aspettando media")
#define MSG_MEDIA_READ_ERROR _UxGT("Err.leggendo media")
#define MSG_MEDIA_USB_REMOVED _UxGT("Dispos.USB rimosso")
#define MSG_MEDIA_USB_FAILED _UxGT("Avvio USB fallito")
#define MSG_LCD_ENDSTOPS _UxGT("Finecor.") // Max 8 caratteri
#define MSG_LCD_SOFT_ENDSTOPS _UxGT("Finecorsa Soft")
#define MSG_MAIN _UxGT("Menu principale")
#define MSG_ADVANCED_SETTINGS _UxGT("Impostaz. avanzate")
#define MSG_CONFIGURATION _UxGT("Configurazione")
#define MSG_AUTOSTART _UxGT("Autostart")
#define MSG_DISABLE_STEPPERS _UxGT("Disabilita Motori")
#define MSG_DEBUG_MENU _UxGT("Menu di debug")
#define MSG_PROGRESS_BAR_TEST _UxGT("Test barra avanzam.")
#define MSG_AUTO_HOME _UxGT("Auto Home")
#define MSG_AUTO_HOME_X _UxGT("Home asse X")
#define MSG_AUTO_HOME_Y _UxGT("Home asse Y")
#define MSG_AUTO_HOME_Z _UxGT("Home asse Z")
#define MSG_AUTO_Z_ALIGN _UxGT("Allineam.automat. Z")
#define MSG_LEVEL_BED_HOMING _UxGT("Home assi XYZ")
#define MSG_LEVEL_BED_WAITING _UxGT("Premi per iniziare")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Punto successivo")
#define MSG_LEVEL_BED_DONE _UxGT("Livel. terminato!")
#define MSG_Z_FADE_HEIGHT _UxGT("Fade Height")
#define MSG_SET_HOME_OFFSETS _UxGT("Imp. offset home")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Offset applicato")
#define MSG_SET_ORIGIN _UxGT("Imposta Origine")
#define MSG_PREHEAT_1 _UxGT("Preriscalda " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_N _UxGT("Preris." PREHEAT_1_LABEL " ")
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1_N _UxGT("Tutto")
#define MSG_PREHEAT_1_END MSG_PREHEAT_1_N _UxGT("Ugello")
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1_N _UxGT("Piatto")
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1_N _UxGT("conf")
#define MSG_PREHEAT_2 _UxGT("Preriscalda " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_N _UxGT("Preris." PREHEAT_2_LABEL " ")
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2_N _UxGT("Tutto")
#define MSG_PREHEAT_2_END MSG_PREHEAT_2_N _UxGT("Ugello")
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2_N _UxGT("Piatto")
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2_N _UxGT("conf")
#define MSG_PREHEAT_CUSTOM _UxGT("Prerisc.personal.")
#define MSG_COOLDOWN _UxGT("Raffredda")
#define MSG_LASER_MENU _UxGT("Controllo laser")
#define MSG_LASER_OFF _UxGT("Laser Off")
#define MSG_LASER_ON _UxGT("Laser On")
#define MSG_LASER_POWER _UxGT("Potenza laser")
#define MSG_SPINDLE_MENU _UxGT("Controllo mandrino")
#define MSG_SPINDLE_OFF _UxGT("Mandrino Off")
#define MSG_SPINDLE_ON _UxGT("Mandrino On")
#define MSG_SPINDLE_POWER _UxGT("Potenza mandrino")
#define MSG_SPINDLE_REVERSE _UxGT("Inverti mandrino")
#define MSG_SWITCH_PS_ON _UxGT("Accendi aliment.")
#define MSG_SWITCH_PS_OFF _UxGT("Spegni aliment.")
#define MSG_EXTRUDE _UxGT("Estrudi")
#define MSG_RETRACT _UxGT("Ritrai")
#define MSG_MOVE_AXIS _UxGT("Muovi Asse")
#define MSG_BED_LEVELING _UxGT("Livella piano")
#define MSG_LEVEL_BED MSG_BED_LEVELING
#define MSG_LEVEL_CORNERS _UxGT("Livella spigoli")
#define MSG_NEXT_CORNER _UxGT("Prossimo spigolo")
#define MSG_MESH_EDITOR _UxGT("Editor Mesh")
#define MSG_EDIT_MESH _UxGT("Modifica Mesh")
#define MSG_EDITING_STOPPED _UxGT("Modif. Mesh Fermata")
#define MSG_PROBING_MESH _UxGT("Punto sondato")
#define MSG_MESH_X _UxGT("Indice X")
#define MSG_MESH_Y _UxGT("Indice Y")
#define MSG_MESH_EDIT_Z _UxGT("Valore di Z")
#define MSG_USER_MENU _UxGT("Comandi personaliz.")
#define MSG_LCD_TILTING_MESH _UxGT("Punto inclinaz.")
#define MSG_M48_TEST _UxGT("Test sonda M48")
#define MSG_M48_POINT _UxGT("Punto M48")
#define MSG_M48_DEVIATION _UxGT("Deviazione")
#define MSG_IDEX_MENU _UxGT("Modo IDEX")
#define MSG_OFFSETS_MENU _UxGT("Strumenti Offsets")
#define MSG_IDEX_MODE_AUTOPARK _UxGT("Auto-Park")
#define MSG_IDEX_MODE_DUPLICATE _UxGT("Duplicazione")
#define MSG_IDEX_MODE_MIRRORED_COPY _UxGT("Copia speculare")
#define MSG_IDEX_MODE_FULL_CTRL _UxGT("Pieno controllo")
#define MSG_X_OFFSET _UxGT("2° ugello X")
#define MSG_Y_OFFSET _UxGT("2° ugello Y")
#define MSG_Z_OFFSET _UxGT("2° ugello Z")
#define MSG_UBL_DOING_G29 _UxGT("G29 in corso")
#define MSG_UBL_TOOLS _UxGT("Strumenti UBL")
#define MSG_UBL_LEVEL_BED _UxGT("Unified Bed Leveling")
#define MSG_UBL_MANUAL_MESH _UxGT("Mesh Manuale")
#define MSG_UBL_BC_INSERT _UxGT("Metti spes. e misura")
#define MSG_UBL_BC_INSERT2 _UxGT("Misura")
#define MSG_UBL_BC_REMOVE _UxGT("Rimuovi e mis.piatto")
#define MSG_UBL_MOVING_TO_NEXT _UxGT("Spostamento succes.")
#define MSG_UBL_ACTIVATE_MESH _UxGT("Attiva UBL")
#define MSG_UBL_DEACTIVATE_MESH _UxGT("Disattiva UBL")
#define MSG_UBL_SET_TEMP_BED _UxGT("Temp. Piatto")
#define MSG_UBL_BED_TEMP_CUSTOM MSG_UBL_SET_TEMP_BED
#define MSG_UBL_SET_TEMP_HOTEND _UxGT("Temp. Ugello")
#define MSG_UBL_HOTEND_TEMP_CUSTOM MSG_UBL_SET_TEMP_HOTEND
#define MSG_UBL_MESH_EDIT _UxGT("Modifica Mesh")
#define MSG_UBL_EDIT_CUSTOM_MESH _UxGT("Modif.Mesh personal.")
#define MSG_UBL_FINE_TUNE_MESH _UxGT("Ritocca Mesh")
#define MSG_UBL_DONE_EDITING_MESH _UxGT("Modif.Mesh fatta")
#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Crea Mesh personal.")
#define MSG_UBL_BUILD_MESH_MENU _UxGT("Crea Mesh")
#define MSG_UBL_BUILD_MESH_M1 _UxGT("Crea Mesh " PREHEAT_1_LABEL)
#define MSG_UBL_BUILD_MESH_M2 _UxGT("Crea Mesh " PREHEAT_2_LABEL)
#define MSG_UBL_BUILD_COLD_MESH _UxGT("Crea Mesh a freddo")
#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Aggiusta Alt. Mesh")
#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Altezza")
#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("Valida Mesh")
#define MSG_UBL_VALIDATE_MESH_M1 _UxGT("Valida Mesh " PREHEAT_1_LABEL)
#define MSG_UBL_VALIDATE_MESH_M2 _UxGT("Valida Mesh " PREHEAT_2_LABEL)
#define MSG_G26_HEATING_BED _UxGT("G26 riscald.letto")
#define MSG_G26_HEATING_NOZZLE _UxGT("G26 riscald.ugello")
#define MSG_G26_MANUAL_PRIME _UxGT("Priming manuale...")
#define MSG_G26_FIXED_LENGTH _UxGT("Prime a lung.fissa")
#define MSG_G26_PRIME_DONE _UxGT("Priming terminato")
#define MSG_G26_CANCELED _UxGT("G26 Annullato")
#define MSG_G26_LEAVING _UxGT("Uscita da G26")
#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Valida Mesh pers.")
#define MSG_UBL_CONTINUE_MESH _UxGT("Continua Mesh")
#define MSG_UBL_MESH_LEVELING _UxGT("Livell. Mesh")
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("Livell. 3 Punti")
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Livell. Griglia Mesh")
#define MSG_UBL_MESH_LEVEL _UxGT("Livella Mesh")
#define MSG_UBL_SIDE_POINTS _UxGT("Punti laterali")
#define MSG_UBL_MAP_TYPE _UxGT("Tipo di Mappa")
#define MSG_UBL_OUTPUT_MAP _UxGT("Esporta Mappa")
#define MSG_UBL_OUTPUT_MAP_HOST _UxGT("Esporta per Host")
#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Esporta in CSV")
#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Backup esterno")
#define MSG_UBL_INFO_UBL _UxGT("Esporta Info UBL")
#define MSG_UBL_FILLIN_AMOUNT _UxGT("Riempimento")
#define MSG_UBL_MANUAL_FILLIN _UxGT("Riempimento Manuale")
#define MSG_UBL_SMART_FILLIN _UxGT("Riempimento Smart")
#define MSG_UBL_FILLIN_MESH _UxGT("Riempimento Mesh")
#define MSG_UBL_INVALIDATE_ALL _UxGT("Invalida Tutto")
#define MSG_UBL_INVALIDATE_CLOSEST _UxGT("Invalid.Punto Vicino")
#define MSG_UBL_FINE_TUNE_ALL _UxGT("Ritocca All")
#define MSG_UBL_FINE_TUNE_CLOSEST _UxGT("Ritocca Punto Vicino")
#define MSG_UBL_STORAGE_MESH_MENU _UxGT("Mesh Salvate")
#define MSG_UBL_STORAGE_SLOT _UxGT("Slot di memoria")
#define MSG_UBL_LOAD_MESH _UxGT("Carica Mesh Piatto")
#define MSG_UBL_SAVE_MESH _UxGT("Salva Mesh Piatto")
#define MSG_MESH_LOADED _UxGT("Mesh %i caricata")
#define MSG_MESH_SAVED _UxGT("Mesh %i salvata")
#define MSG_UBL_NO_STORAGE _UxGT("Nessuna memoria")
#define MSG_UBL_SAVE_ERROR _UxGT("Err: Salvataggio UBL")
#define MSG_UBL_RESTORE_ERROR _UxGT("Err: Ripristino UBL")
#define MSG_UBL_Z_OFFSET _UxGT("Z-Offset: ")
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Z-Offset Fermato")
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("UBL passo passo")
#define MSG_LED_CONTROL _UxGT("Controllo LED") constexpr uint8_t CHARSIZE = 1;
#define MSG_LEDS _UxGT("Luci") PROGMEM Language_Str LANGUAGE = _UxGT("Italian");
#define MSG_LED_PRESETS _UxGT("Preset luce")
#define MSG_SET_LEDS_RED _UxGT("Rosso")
#define MSG_SET_LEDS_ORANGE _UxGT("Arancione")
#define MSG_SET_LEDS_YELLOW _UxGT("Giallo")
#define MSG_SET_LEDS_GREEN _UxGT("Verde")
#define MSG_SET_LEDS_BLUE _UxGT("Blu")
#define MSG_SET_LEDS_INDIGO _UxGT("Indaco")
#define MSG_SET_LEDS_VIOLET _UxGT("Viola")
#define MSG_SET_LEDS_WHITE _UxGT("Bianco")
#define MSG_SET_LEDS_DEFAULT _UxGT("Predefinito")
#define MSG_CUSTOM_LEDS _UxGT("Luci personalizzate")
#define MSG_INTENSITY_R _UxGT("Intensità rosso")
#define MSG_INTENSITY_G _UxGT("Intensità verde")
#define MSG_INTENSITY_B _UxGT("Intensità blu")
#define MSG_INTENSITY_W _UxGT("Intensità bianco")
#define MSG_LED_BRIGHTNESS _UxGT("Luminosità")
#define MSG_MOVING _UxGT("In movimento...") PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" pronto.");
#define MSG_FREE_XY _UxGT("XY liberi") PROGMEM Language_Str MSG_YES = _UxGT("SI");
#define MSG_MOVE_X _UxGT("Muovi X") PROGMEM Language_Str MSG_NO = _UxGT("NO");
#define MSG_MOVE_Y _UxGT("Muovi Y") PROGMEM Language_Str MSG_BACK = _UxGT("Indietro");
#define MSG_MOVE_Z _UxGT("Muovi Z") PROGMEM Language_Str MSG_MEDIA_ABORTING = _UxGT("Annullando...");
#define MSG_MOVE_E _UxGT("Estrusore") PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Media inserito");
#define MSG_HOTEND_TOO_COLD _UxGT("Ugello freddo") PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Media rimosso");
#define MSG_MOVE_Z_DIST _UxGT("Muovi di %smm") PROGMEM Language_Str MSG_MEDIA_RELEASED = _UxGT("Media rilasciato");
#define MSG_MOVE_01MM _UxGT("Muovi di 0.1mm") PROGMEM Language_Str MSG_MEDIA_WAITING = _UxGT("Aspettando media");
#define MSG_MOVE_1MM _UxGT("Muovi di 1mm") PROGMEM Language_Str MSG_MEDIA_READ_ERROR = _UxGT("Err.leggendo media");
#define MSG_MOVE_10MM _UxGT("Muovi di 10mm") PROGMEM Language_Str MSG_MEDIA_USB_REMOVED = _UxGT("Dispos.USB rimosso");
#define MSG_SPEED _UxGT("Velocità") PROGMEM Language_Str MSG_MEDIA_USB_FAILED = _UxGT("Avvio USB fallito");
#define MSG_BED_Z _UxGT("Piatto Z") PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Finecor."); // Max 8 characters
#define MSG_NOZZLE _UxGT("Ugello") PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("Finecorsa Soft");
#define MSG_BED _UxGT("Piatto") PROGMEM Language_Str MSG_MAIN = _UxGT("Menu principale");
#define MSG_CHAMBER _UxGT("Camera") PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("Impostaz. avanzate");
#define MSG_FAN_SPEED _UxGT("Vel. ventola") // Max 15 caratteri PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("Configurazione");
#define MSG_EXTRA_FAN_SPEED _UxGT("Extra vel.vent.") // Max 15 caratteri PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Autostart");
#define MSG_FLOW _UxGT("Flusso") PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Disabilita Motori");
#define MSG_CONTROL _UxGT("Controllo") PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("Menu di debug");
#define MSG_MIN LCD_STR_THERMOMETER _UxGT(" Min") PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Test barra avanzam.");
#define MSG_MAX LCD_STR_THERMOMETER _UxGT(" Max") PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Auto Home");
#define MSG_FACTOR LCD_STR_THERMOMETER _UxGT(" Fact") PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Home asse X");
#define MSG_AUTOTEMP _UxGT("Autotemp") PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Home asse Y");
#define MSG_LCD_ON _UxGT("On") PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Home asse Z");
#define MSG_LCD_OFF _UxGT("Off") PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("Allineam.automat. Z");
#define MSG_PID_P _UxGT("PID-P") PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Home assi XYZ");
#define MSG_PID_I _UxGT("PID-I") PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Premi per iniziare");
#define MSG_PID_D _UxGT("PID-D") PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Punto successivo");
#define MSG_PID_C _UxGT("PID-C") PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Livel. terminato!");
#define MSG_SELECT _UxGT("Seleziona") PROGMEM Language_Str MSG_Z_FADE_HEIGHT = _UxGT("Fade Height");
#define MSG_ACC _UxGT("Accel") PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Imp. offset home");
#define MSG_JERK _UxGT("Jerk") PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Offset applicato");
#if IS_KINEMATIC PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Imposta Origine");
#define MSG_VA_JERK _UxGT("Va-jerk") PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Preriscalda ") PREHEAT_1_LABEL;
#define MSG_VB_JERK _UxGT("Vb-jerk") PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Preriscalda ") PREHEAT_1_LABEL " " LCD_STR_N0;
#define MSG_VC_JERK _UxGT("Vc-jerk") PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Preriscalda ") PREHEAT_1_LABEL " " LCD_STR_N1;
#else PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Preriscalda ") PREHEAT_1_LABEL " " LCD_STR_N2;
#define MSG_VA_JERK _UxGT("Vx-jerk") PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Preriscalda ") PREHEAT_1_LABEL " " LCD_STR_N3;
#define MSG_VB_JERK _UxGT("Vy-jerk") PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Preriscalda ") PREHEAT_1_LABEL " " LCD_STR_N4;
#define MSG_VC_JERK _UxGT("Vz-jerk") PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Preriscalda ") PREHEAT_1_LABEL " " LCD_STR_N5;
#endif PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Preris.") PREHEAT_1_LABEL _UxGT(" Ugello");
#define MSG_VE_JERK _UxGT("Ve-jerk") PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Preris.") PREHEAT_1_LABEL _UxGT(" Ugello ") LCD_STR_N0;
#define MSG_JUNCTION_DEVIATION _UxGT("Deviaz. giunzioni") PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Preris.") PREHEAT_1_LABEL _UxGT(" Ugello ") LCD_STR_N1;
#define MSG_VELOCITY _UxGT("Velocità") PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Preris.") PREHEAT_1_LABEL _UxGT(" Ugello ") LCD_STR_N2;
#define MSG_VMAX _UxGT("Vmax ") PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Preris.") PREHEAT_1_LABEL _UxGT(" Ugello ") LCD_STR_N3;
#define MSG_VMIN _UxGT("Vmin") PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Preris.") PREHEAT_1_LABEL _UxGT(" Ugello ") LCD_STR_N4;
#define MSG_VTRAV_MIN _UxGT("VTrav min") PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Preris.") PREHEAT_1_LABEL _UxGT(" Ugello ") LCD_STR_N5;
#define MSG_ACCELERATION _UxGT("Accelerazione") PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Preris.") PREHEAT_1_LABEL _UxGT(" Tutto");
#define MSG_AMAX _UxGT("Amax ") PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Preris.") PREHEAT_1_LABEL _UxGT(" Piatto");
#define MSG_A_RETRACT _UxGT("A-Ritrazione") PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Preris.") PREHEAT_1_LABEL _UxGT(" conf");
#define MSG_A_TRAVEL _UxGT("A-Spostamento") PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Preriscalda ") PREHEAT_2_LABEL;
#define MSG_STEPS_PER_MM _UxGT("Passi/mm") PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Preriscalda ") PREHEAT_2_LABEL " " LCD_STR_N0;
#if IS_KINEMATIC PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Preriscalda ") PREHEAT_2_LABEL " " LCD_STR_N1;
#define MSG_ASTEPS _UxGT("Apassi/mm") PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Preriscalda ") PREHEAT_2_LABEL " " LCD_STR_N2;
#define MSG_BSTEPS _UxGT("Bpassi/mm") PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Preriscalda ") PREHEAT_2_LABEL " " LCD_STR_N3;
#define MSG_CSTEPS _UxGT("Cpassi/mm") PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Preriscalda ") PREHEAT_2_LABEL " " LCD_STR_N4;
#else PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Preriscalda ") PREHEAT_2_LABEL " " LCD_STR_N5;
#define MSG_ASTEPS _UxGT("Xpassi/mm") PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Preris.") PREHEAT_2_LABEL _UxGT(" Ugello");
#define MSG_BSTEPS _UxGT("Ypassi/mm") PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Preris.") PREHEAT_2_LABEL _UxGT(" Ugello ") LCD_STR_N0;
#define MSG_CSTEPS _UxGT("Zpassi/mm") PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Preris.") PREHEAT_2_LABEL _UxGT(" Ugello ") LCD_STR_N1;
#endif PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Preris.") PREHEAT_2_LABEL _UxGT(" Ugello ") LCD_STR_N2;
#define MSG_ESTEPS _UxGT("Epassi/mm") PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Preris.") PREHEAT_2_LABEL _UxGT(" Ugello ") LCD_STR_N3;
#define MSG_E0_STEPS _UxGT("E1passi/mm") PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Preris.") PREHEAT_2_LABEL _UxGT(" Ugello ") LCD_STR_N4;
#define MSG_E1_STEPS _UxGT("E2passi/mm") PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Preris.") PREHEAT_2_LABEL _UxGT(" Ugello ") LCD_STR_N5;
#define MSG_E2_STEPS _UxGT("E3passi/mm") PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Preris.") PREHEAT_2_LABEL _UxGT(" Tutto");
#define MSG_E3_STEPS _UxGT("E4passi/mm") PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Preris.") PREHEAT_2_LABEL _UxGT(" Piatto");
#define MSG_E4_STEPS _UxGT("E5passi/mm") PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Preris.") PREHEAT_2_LABEL _UxGT(" conf");
#define MSG_E5_STEPS _UxGT("E6passi/mm") PROGMEM Language_Str MSG_PREHEAT_CUSTOM = _UxGT("Prerisc.personal.");
#define MSG_TEMPERATURE _UxGT("Temperatura") PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Raffredda");
#define MSG_MOTION _UxGT("Movimento") PROGMEM Language_Str MSG_LASER_MENU = _UxGT("Controllo laser");
#define MSG_FILAMENT _UxGT("Filamento") PROGMEM Language_Str MSG_LASER_OFF = _UxGT("Laser Off");
#define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm³") PROGMEM Language_Str MSG_LASER_ON = _UxGT("Laser On");
#define MSG_FILAMENT_DIAM _UxGT("Diam. filo") PROGMEM Language_Str MSG_LASER_POWER = _UxGT("Potenza laser");
#define MSG_FILAMENT_UNLOAD _UxGT("Rimuovi mm") PROGMEM Language_Str MSG_SPINDLE_MENU = _UxGT("Controllo mandrino");
#define MSG_FILAMENT_LOAD _UxGT("Carica mm") PROGMEM Language_Str MSG_SPINDLE_OFF = _UxGT("Mandrino Off");
#define MSG_ADVANCE_K _UxGT("K Avanzamento") PROGMEM Language_Str MSG_SPINDLE_ON = _UxGT("Mandrino On");
#define MSG_CONTRAST _UxGT("Contrasto LCD") PROGMEM Language_Str MSG_SPINDLE_POWER = _UxGT("Potenza mandrino");
#define MSG_STORE_EEPROM _UxGT("Salva impostazioni") PROGMEM Language_Str MSG_SPINDLE_REVERSE = _UxGT("Inverti mandrino");
#define MSG_LOAD_EEPROM _UxGT("Carica impostazioni") PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Accendi aliment.");
#define MSG_RESTORE_FAILSAFE _UxGT("Ripristina imp.") PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Spegni aliment.");
#define MSG_INIT_EEPROM _UxGT("Inizializza EEPROM") PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Estrudi");
#define MSG_MEDIA_UPDATE _UxGT("Aggiorna media") PROGMEM Language_Str MSG_RETRACT = _UxGT("Ritrai");
#define MSG_RESET_PRINTER _UxGT("Resetta stampante") PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Muovi Asse");
#define MSG_REFRESH _UxGT("Aggiorna") PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Livella piano");
#define MSG_WATCH _UxGT("Schermata info") PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Livella piano");
#define MSG_PREPARE _UxGT("Prepara") PROGMEM Language_Str MSG_LEVEL_CORNERS = _UxGT("Livella spigoli");
#define MSG_TUNE _UxGT("Regola") PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("Prossimo spigolo");
#define MSG_START_PRINT _UxGT("Avvia stampa") PROGMEM Language_Str MSG_MESH_EDITOR = _UxGT("Editor Mesh");
#define MSG_BUTTON_NEXT _UxGT("Prossimo") PROGMEM Language_Str MSG_EDIT_MESH = _UxGT("Modifica Mesh");
#define MSG_BUTTON_INIT _UxGT("Inizializza") PROGMEM Language_Str MSG_EDITING_STOPPED = _UxGT("Modif. Mesh Fermata");
#define MSG_BUTTON_STOP _UxGT("Stop") PROGMEM Language_Str MSG_PROBING_MESH = _UxGT("Punto sondato");
#define MSG_BUTTON_PRINT _UxGT("Stampa") PROGMEM Language_Str MSG_MESH_X = _UxGT("Indice X");
#define MSG_BUTTON_RESET _UxGT("Resetta") PROGMEM Language_Str MSG_MESH_Y = _UxGT("Indice Y");
#define MSG_BUTTON_CANCEL _UxGT("Annulla") PROGMEM Language_Str MSG_MESH_EDIT_Z = _UxGT("Valore di Z");
#define MSG_BUTTON_DONE _UxGT("Fatto") PROGMEM Language_Str MSG_USER_MENU = _UxGT("Comandi personaliz.");
#define MSG_PAUSE_PRINT _UxGT("Pausa stampa") PROGMEM Language_Str MSG_LCD_TILTING_MESH = _UxGT("Punto inclinaz.");
#define MSG_RESUME_PRINT _UxGT("Riprendi stampa") PROGMEM Language_Str MSG_M48_TEST = _UxGT("Test sonda M48");
#define MSG_STOP_PRINT _UxGT("Arresta stampa") PROGMEM Language_Str MSG_M48_POINT = _UxGT("Punto M48");
#define MSG_OUTAGE_RECOVERY _UxGT("Ripresa da PowerLoss") PROGMEM Language_Str MSG_M48_DEVIATION = _UxGT("Deviazione");
#define MSG_MEDIA_MENU _UxGT("Stampa da media") PROGMEM Language_Str MSG_IDEX_MENU = _UxGT("Modo IDEX");
#define MSG_NO_MEDIA _UxGT("Media non presente") PROGMEM Language_Str MSG_OFFSETS_MENU = _UxGT("Strumenti Offsets");
#define MSG_DWELL _UxGT("Sospensione...") PROGMEM Language_Str MSG_IDEX_MODE_AUTOPARK = _UxGT("Auto-Park");
#define MSG_USERWAIT _UxGT("Premi tasto..") PROGMEM Language_Str MSG_IDEX_MODE_DUPLICATE = _UxGT("Duplicazione");
#define MSG_PRINT_PAUSED _UxGT("Stampa sospesa") PROGMEM Language_Str MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Copia speculare");
#define MSG_PRINTING _UxGT("Stampa...") PROGMEM Language_Str MSG_IDEX_MODE_FULL_CTRL = _UxGT("Pieno controllo");
#define MSG_PRINT_ABORTED _UxGT("Stampa annullata") PROGMEM Language_Str MSG_X_OFFSET = _UxGT("2° ugello X");
#define MSG_NO_MOVE _UxGT("Nessun Movimento") PROGMEM Language_Str MSG_Y_OFFSET = _UxGT("2° ugello Y");
#define MSG_KILLED _UxGT("UCCISO. ") PROGMEM Language_Str MSG_Z_OFFSET = _UxGT("2° ugello Z");
#define MSG_STOPPED _UxGT("ARRESTATO. ") PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("G29 in corso");
#define MSG_CONTROL_RETRACT _UxGT("Ritrai mm") PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("Strumenti UBL");
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Scamb. Ritrai mm") PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("Unified Bed Leveling");
#define MSG_CONTROL_RETRACTF _UxGT("Ritrai V") PROGMEM Language_Str MSG_UBL_MANUAL_MESH = _UxGT("Mesh Manuale");
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Salta mm") PROGMEM Language_Str MSG_UBL_BC_INSERT = _UxGT("Metti spes. e misura");
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("UnRet mm") PROGMEM Language_Str MSG_UBL_BC_INSERT2 = _UxGT("Misura");
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Scamb. UnRet mm") PROGMEM Language_Str MSG_UBL_BC_REMOVE = _UxGT("Rimuovi e mis.piatto");
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("UnRet V") PROGMEM Language_Str MSG_UBL_MOVING_TO_NEXT = _UxGT("Spostamento succes.");
#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V") PROGMEM Language_Str MSG_UBL_ACTIVATE_MESH = _UxGT("Attiva UBL");
#define MSG_AUTORETRACT _UxGT("AutoRitrai") PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("Disattiva UBL");
#define MSG_FILAMENT_SWAP_LENGTH _UxGT("Dist. ritrazione") PROGMEM Language_Str MSG_UBL_SET_TEMP_BED = _UxGT("Temp. Piatto");
#define MSG_FILAMENT_PURGE_LENGTH _UxGT("Lunghezza spurgo") PROGMEM Language_Str MSG_UBL_BED_TEMP_CUSTOM = _UxGT("Temp. Piatto");
#define MSG_TOOL_CHANGE _UxGT("Cambio utensile") PROGMEM Language_Str MSG_UBL_SET_TEMP_HOTEND = _UxGT("Temp. Ugello");
#define MSG_TOOL_CHANGE_ZLIFT _UxGT("Risalita Z") PROGMEM Language_Str MSG_UBL_HOTEND_TEMP_CUSTOM = _UxGT("Temp. Ugello");
#define MSG_SINGLENOZZLE_PRIME_SPD _UxGT("Velocità innesco") PROGMEM Language_Str MSG_UBL_MESH_EDIT = _UxGT("Modifica Mesh");
#define MSG_SINGLENOZZLE_RETRACT_SPD _UxGT("Velocità retrazione") PROGMEM Language_Str MSG_UBL_EDIT_CUSTOM_MESH = _UxGT("Modif.Mesh personal.");
#define MSG_NOZZLE_STANDBY _UxGT("Standby ugello") PROGMEM Language_Str MSG_UBL_FINE_TUNE_MESH = _UxGT("Ritocca Mesh");
#define MSG_FILAMENTCHANGE _UxGT("Cambia filamento") PROGMEM Language_Str MSG_UBL_DONE_EDITING_MESH = _UxGT("Modif.Mesh fatta");
#define MSG_FILAMENTLOAD _UxGT("Carica filamento") PROGMEM Language_Str MSG_UBL_BUILD_CUSTOM_MESH = _UxGT("Crea Mesh personal.");
#define MSG_FILAMENTUNLOAD _UxGT("Rimuovi filamento") PROGMEM Language_Str MSG_UBL_BUILD_MESH_MENU = _UxGT("Crea Mesh");
#define MSG_FILAMENTUNLOAD_ALL _UxGT("Rimuovi tutto") PROGMEM Language_Str MSG_UBL_BUILD_MESH_M1 = _UxGT("Crea Mesh ") PREHEAT_1_LABEL;
#define MSG_INIT_MEDIA _UxGT("Inizializ. media") PROGMEM Language_Str MSG_UBL_BUILD_MESH_M2 = _UxGT("Crea Mesh ") PREHEAT_2_LABEL;
#define MSG_CHANGE_MEDIA _UxGT("Cambia media") PROGMEM Language_Str MSG_UBL_BUILD_COLD_MESH = _UxGT("Crea Mesh a freddo");
#define MSG_RELEASE_MEDIA _UxGT("Rilascia media") PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_ADJUST = _UxGT("Aggiusta Alt. Mesh");
#define MSG_ZPROBE_OUT _UxGT("Z probe fuori piatto") PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_AMOUNT = _UxGT("Altezza");
#define MSG_SKEW_FACTOR _UxGT("Fattore distorsione") PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_MENU = _UxGT("Valida Mesh");
#define MSG_BLTOUCH _UxGT("BLTouch") PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M1 = _UxGT("Valida Mesh ") PREHEAT_1_LABEL;
#define MSG_BLTOUCH_SELFTEST _UxGT("Autotest BLTouch") PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M2 = _UxGT("Valida Mesh ") PREHEAT_2_LABEL;
#define MSG_BLTOUCH_RESET _UxGT("Resetta BLTouch") PROGMEM Language_Str MSG_G26_HEATING_BED = _UxGT("G26 riscald.letto");
#define MSG_BLTOUCH_DEPLOY _UxGT("Estendi BLTouch") PROGMEM Language_Str MSG_G26_HEATING_NOZZLE = _UxGT("G26 riscald.ugello");
#define MSG_BLTOUCH_SW_MODE _UxGT("BLTouch modo SW") PROGMEM Language_Str MSG_G26_MANUAL_PRIME = _UxGT("Priming manuale...");
#define MSG_BLTOUCH_5V_MODE _UxGT("BLTouch modo 5V") PROGMEM Language_Str MSG_G26_FIXED_LENGTH = _UxGT("Prime a lung.fissa");
#define MSG_BLTOUCH_OD_MODE _UxGT("BLTouch modo OD") PROGMEM Language_Str MSG_G26_PRIME_DONE = _UxGT("Priming terminato");
#define MSG_BLTOUCH_MODE_STORE _UxGT("BLTouch modo mem.") PROGMEM Language_Str MSG_G26_CANCELED = _UxGT("G26 Annullato");
#define MSG_BLTOUCH_MODE_STORE_5V _UxGT("Metti BLTouch a 5V") PROGMEM Language_Str MSG_G26_LEAVING = _UxGT("Uscita da G26");
#define MSG_BLTOUCH_MODE_STORE_OD _UxGT("Metti BLTouch a OD") PROGMEM Language_Str MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("Valida Mesh pers.");
#define MSG_BLTOUCH_MODE_ECHO _UxGT("Segnala modo") PROGMEM Language_Str MSG_UBL_CONTINUE_MESH = _UxGT("Continua Mesh");
#define MSG_BLTOUCH_MODE_CHANGE _UxGT("PERICOLO: Impostazioni errate possono cause danni! Procedo comunque?") PROGMEM Language_Str MSG_UBL_MESH_LEVELING = _UxGT("Livell. Mesh");
#define MSG_TOUCHMI_PROBE _UxGT("TouchMI") PROGMEM Language_Str MSG_UBL_3POINT_MESH_LEVELING = _UxGT("Livell. 3 Punti");
#define MSG_TOUCHMI_INIT _UxGT("Inizializ.TouchMI") PROGMEM Language_Str MSG_UBL_GRID_MESH_LEVELING = _UxGT("Livell. Griglia Mesh");
#define MSG_TOUCHMI_ZTEST _UxGT("Test Z offset") PROGMEM Language_Str MSG_UBL_MESH_LEVEL = _UxGT("Livella Mesh");
#define MSG_TOUCHMI_SAVE _UxGT("Memorizzare") PROGMEM Language_Str MSG_UBL_SIDE_POINTS = _UxGT("Punti laterali");
#define MSG_MANUAL_DEPLOY_TOUCHMI _UxGT("Estendi TouchMI") PROGMEM Language_Str MSG_UBL_MAP_TYPE = _UxGT("Tipo di Mappa");
#define MSG_MANUAL_DEPLOY _UxGT("Estendi Sonda-Z") PROGMEM Language_Str MSG_UBL_OUTPUT_MAP = _UxGT("Esporta Mappa");
#define MSG_BLTOUCH_STOW _UxGT("Ritrai BLTouch") PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_HOST = _UxGT("Esporta per Host");
#define MSG_MANUAL_STOW _UxGT("Ritrai Sonda-Z") PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_CSV = _UxGT("Esporta in CSV");
#define MSG_HOME_FIRST _UxGT("Home %s%s%s prima") PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_BACKUP = _UxGT("Backup esterno");
#define MSG_ZPROBE_ZOFFSET _UxGT("Offset sonda Z") PROGMEM Language_Str MSG_UBL_INFO_UBL = _UxGT("Esporta Info UBL");
#define MSG_BABYSTEP_X _UxGT("Babystep X") PROGMEM Language_Str MSG_UBL_FILLIN_AMOUNT = _UxGT("Riempimento");
#define MSG_BABYSTEP_Y _UxGT("Babystep Y") PROGMEM Language_Str MSG_UBL_MANUAL_FILLIN = _UxGT("Riempimento Manuale");
#define MSG_BABYSTEP_Z _UxGT("Babystep Z") PROGMEM Language_Str MSG_UBL_SMART_FILLIN = _UxGT("Riempimento Smart");
#define MSG_BABYSTEP_TOTAL _UxGT("Totali") PROGMEM Language_Str MSG_UBL_FILLIN_MESH = _UxGT("Riempimento Mesh");
#define MSG_ENDSTOP_ABORT _UxGT("Finecorsa annullati") PROGMEM Language_Str MSG_UBL_INVALIDATE_ALL = _UxGT("Invalida Tutto");
#define MSG_HEATING_FAILED_LCD _UxGT("Riscald. Fallito") PROGMEM Language_Str MSG_UBL_INVALIDATE_CLOSEST = _UxGT("Invalid.Punto Vicino");
#define MSG_HEATING_FAILED_LCD_BED _UxGT("Risc. piatto fallito") PROGMEM Language_Str MSG_UBL_FINE_TUNE_ALL = _UxGT("Ritocca All");
#define MSG_HEATING_FAILED_LCD_CHAMBER _UxGT("Risc. camera fallito") PROGMEM Language_Str MSG_UBL_FINE_TUNE_CLOSEST = _UxGT("Ritocca Punto Vicino");
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Err: TEMP RIDONDANTE") PROGMEM Language_Str MSG_UBL_STORAGE_MESH_MENU = _UxGT("Mesh Salvate");
#define MSG_THERMAL_RUNAWAY _UxGT("TEMP FUORI CONTROLLO") PROGMEM Language_Str MSG_UBL_STORAGE_SLOT = _UxGT("Slot di memoria");
#define MSG_THERMAL_RUNAWAY_BED _UxGT("TEMP PIAT.FUORI CTRL") PROGMEM Language_Str MSG_UBL_LOAD_MESH = _UxGT("Carica Mesh Piatto");
#define MSG_THERMAL_RUNAWAY_CHAMBER _UxGT("T.CAMERA FUORI CTRL") PROGMEM Language_Str MSG_UBL_SAVE_MESH = _UxGT("Salva Mesh Piatto");
#define MSG_ERR_MAXTEMP _UxGT("Err: TEMP MASSIMA") PROGMEM Language_Str MSG_MESH_LOADED = _UxGT("M117 Mesh %i caricata");
#define MSG_ERR_MINTEMP _UxGT("Err: TEMP MINIMA") PROGMEM Language_Str MSG_MESH_SAVED = _UxGT("M117 Mesh %i salvata");
#define MSG_ERR_MAXTEMP_BED _UxGT("Err: TEMP MAX PIATTO") PROGMEM Language_Str MSG_UBL_NO_STORAGE = _UxGT("Nessuna memoria");
#define MSG_ERR_MINTEMP_BED _UxGT("Err: TEMP MIN PIATTO") PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("Err: Salvataggio UBL");
#define MSG_ERR_MAXTEMP_CHAMBER _UxGT("Err: TEMP MAX CAMERA") PROGMEM Language_Str MSG_UBL_RESTORE_ERROR = _UxGT("Err: Ripristino UBL");
#define MSG_ERR_MINTEMP_CHAMBER _UxGT("Err: TEMP MIN CAMERA") PROGMEM Language_Str MSG_UBL_Z_OFFSET = _UxGT("Z-Offset: ");
#define MSG_ERR_Z_HOMING _UxGT("Home XY prima") PROGMEM Language_Str MSG_UBL_Z_OFFSET_STOPPED = _UxGT("Z-Offset Fermato");
#define MSG_HALTED _UxGT("STAMPANTE FERMATA") PROGMEM Language_Str MSG_UBL_STEP_BY_STEP_MENU = _UxGT("UBL passo passo");
#define MSG_PLEASE_RESET _UxGT("Riavviare prego") PROGMEM Language_Str MSG_UBL_1_BUILD_COLD_MESH = _UxGT("1.Crea Mesh a freddo");
#define MSG_SHORT_DAY _UxGT("g") // Un solo carattere PROGMEM Language_Str MSG_UBL_2_SMART_FILLIN = _UxGT("2.Riempimento Smart");
#define MSG_SHORT_HOUR _UxGT("h") // Un solo carattere PROGMEM Language_Str MSG_UBL_3_VALIDATE_MESH_MENU = _UxGT("3.Valida Mesh");
#define MSG_SHORT_MINUTE _UxGT("m") // Un solo carattere PROGMEM Language_Str MSG_UBL_4_FINE_TUNE_ALL = _UxGT("4.Ritocca All");
#define MSG_HEATING _UxGT("Riscaldamento...") PROGMEM Language_Str MSG_UBL_5_VALIDATE_MESH_MENU = _UxGT("5.Valida Mesh");
#define MSG_COOLING _UxGT("Raffreddamento..") PROGMEM Language_Str MSG_UBL_6_FINE_TUNE_ALL = _UxGT("6.Ritocca All");
#define MSG_BED_HEATING _UxGT("Risc. piatto...") PROGMEM Language_Str MSG_UBL_7_SAVE_MESH = _UxGT("7.Salva Mesh Piatto");
#define MSG_BED_COOLING _UxGT("Raffr. piatto...")
#define MSG_CHAMBER_HEATING _UxGT("Risc. camera...")
#define MSG_CHAMBER_COOLING _UxGT("Raffr. camera...")
#define MSG_DELTA_CALIBRATE _UxGT("Calibraz. Delta")
#define MSG_DELTA_CALIBRATE_X _UxGT("Calibra X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Calibra Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Calibra Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Calibra centro")
#define MSG_DELTA_SETTINGS _UxGT("Impostaz. Delta")
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Auto calibrazione")
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Imp. altezza Delta")
#define MSG_DELTA_Z_OFFSET_CALIBRATE _UxGT("Offset sonda-Z")
#define MSG_DELTA_DIAG_ROD _UxGT("Barra Diagonale")
#define MSG_DELTA_HEIGHT _UxGT("Altezza")
#define MSG_DELTA_RADIUS _UxGT("Raggio")
#define MSG_INFO_MENU _UxGT("Riguardo stampante")
#define MSG_INFO_PRINTER_MENU _UxGT("Info. stampante")
#define MSG_3POINT_LEVELING _UxGT("Livel. a 3 punti")
#define MSG_LINEAR_LEVELING _UxGT("Livel. Lineare")
#define MSG_BILINEAR_LEVELING _UxGT("Livel. Bilineare")
#define MSG_UBL_LEVELING _UxGT("Livel.piatto unific.")
#define MSG_MESH_LEVELING _UxGT("Livel. Mesh")
#define MSG_INFO_STATS_MENU _UxGT("Statistiche")
#define MSG_INFO_BOARD_MENU _UxGT("Info. scheda")
#define MSG_INFO_THERMISTOR_MENU _UxGT("Termistori")
#define MSG_INFO_EXTRUDERS _UxGT("Estrusori")
#define MSG_INFO_BAUDRATE _UxGT("Baud")
#define MSG_INFO_PROTOCOL _UxGT("Protocollo")
#define MSG_INFO_RUNAWAY_OFF _UxGT("Controllo fuga: OFF")
#define MSG_INFO_RUNAWAY_ON _UxGT("Controllo fuga: ON")
#define MSG_CASE_LIGHT _UxGT("Luci Case")
#define MSG_CASE_LIGHT_BRIGHTNESS _UxGT("Luminosità Luci")
#if LCD_WIDTH >= 20
#define MSG_INFO_PRINT_COUNT _UxGT("Contat. stampa")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Completati")
#define MSG_INFO_PRINT_TIME _UxGT("Tempo totale")
#define MSG_INFO_PRINT_LONGEST _UxGT("Lavoro più lungo")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Totale estruso")
#else
#define MSG_INFO_PRINT_COUNT _UxGT("Stampe")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Completati")
#define MSG_INFO_PRINT_TIME _UxGT("Durata")
#define MSG_INFO_PRINT_LONGEST _UxGT("Più lungo")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Estruso")
#endif
#define MSG_INFO_MIN_TEMP _UxGT("Temp min")
#define MSG_INFO_MAX_TEMP _UxGT("Temp max")
#define MSG_INFO_PSU _UxGT("Alimentatore")
#define MSG_DRIVE_STRENGTH _UxGT("Potenza Drive")
#define MSG_DAC_PERCENT _UxGT("Driver %")
#define MSG_ERROR_TMC _UxGT("ERR.CONNESSIONE TMC")
#define MSG_DAC_EEPROM_WRITE _UxGT("Scrivi DAC EEPROM")
#define MSG_FILAMENT_CHANGE_HEADER _UxGT("CAMBIO FILAMENTO")
#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("STAMPA IN PAUSA")
#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("CARICA FILAMENTO")
#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("RIMUOVI FILAMENTO")
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("OPZIONI RIPRESA:")
#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Spurga di più")
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Riprendi stampa")
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Ugello: ")
#define MSG_RUNOUT_SENSOR _UxGT("Sens.filo termin.") // Max 17 caratteri
#define MSG_RUNOUT_DISTANCE_MM _UxGT("Dist mm filo term.")
#define MSG_ERR_HOMING_FAILED _UxGT("Home fallito")
#define MSG_ERR_PROBING_FAILED _UxGT("Sondaggio fallito")
#define MSG_M600_TOO_COLD _UxGT("M600:Troppo freddo")
#define MSG_MMU2_FILAMENT_CHANGE_HEADER _UxGT("CAMBIO FILAMENTO") PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("Controllo LED");
#define MSG_MMU2_CHOOSE_FILAMENT_HEADER _UxGT("SCELTA FILAMENTO") PROGMEM Language_Str MSG_LEDS = _UxGT("Luci");
#define MSG_MMU2_MENU _UxGT("MMU") PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("Preset luce");
#define MSG_MMU2_WRONG_FIRMWARE _UxGT("Agg.firmware MMU!") PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("Rosso");
#define MSG_MMU2_NOT_RESPONDING _UxGT("MMU chiede attenz.") PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("Arancione");
#define MSG_MMU2_RESUME _UxGT("Riprendi stampa") PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("Giallo");
#define MSG_MMU2_RESUMING _UxGT("Ripresa...") PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("Verde");
#define MSG_MMU2_LOAD_FILAMENT _UxGT("Carica filamento") PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("Blu");
#define MSG_MMU2_LOAD_ALL _UxGT("Carica tutto") PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("Indaco");
#define MSG_MMU2_LOAD_TO_NOZZLE _UxGT("Carica fino ugello") PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Viola");
#define MSG_MMU2_EJECT_FILAMENT _UxGT("Espelli filamento") PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("Bianco");
#define MSG_MMU2_EJECT_FILAMENT0 _UxGT("Espelli filam.1") PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("Predefinito");
#define MSG_MMU2_EJECT_FILAMENT1 _UxGT("Espelli filam.2") PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("Luci personalizzate");
#define MSG_MMU2_EJECT_FILAMENT2 _UxGT("Espelli filam.3") PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Intensità rosso");
#define MSG_MMU2_EJECT_FILAMENT3 _UxGT("Espelli filam.4") PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Intensità verde");
#define MSG_MMU2_EJECT_FILAMENT4 _UxGT("Espelli filam.5") PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("Intensità blu");
#define MSG_MMU2_UNLOAD_FILAMENT _UxGT("Scarica filamento") PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("Intensità bianco");
#define MSG_MMU2_LOADING_FILAMENT _UxGT("Caric.fil. %i...") PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("Luminosità");
#define MSG_MMU2_EJECTING_FILAMENT _UxGT("Esplus.filam. ...")
#define MSG_MMU2_UNLOADING_FILAMENT _UxGT("Scaric.filam. ...")
#define MSG_MMU2_ALL _UxGT("Tutto")
#define MSG_MMU2_FILAMENT0 _UxGT("Filamento 1")
#define MSG_MMU2_FILAMENT1 _UxGT("Filamento 2")
#define MSG_MMU2_FILAMENT2 _UxGT("Filamento 3")
#define MSG_MMU2_FILAMENT3 _UxGT("Filamento 4")
#define MSG_MMU2_FILAMENT4 _UxGT("Filamento 5")
#define MSG_MMU2_RESET _UxGT("Azzera MMU")
#define MSG_MMU2_RESETTING _UxGT("Azzeramento MMU...")
#define MSG_MMU2_EJECT_RECOVER _UxGT("Rimuovi, click")
#define MSG_MIX _UxGT("Miscela") PROGMEM Language_Str MSG_MOVING = _UxGT("In movimento...");
#define MSG_MIX_COMPONENT _UxGT("Componente") PROGMEM Language_Str MSG_FREE_XY = _UxGT("XY liberi");
#define MSG_MIXER _UxGT("Miscelatore") PROGMEM Language_Str MSG_MOVE_X = _UxGT("Muovi X");
#define MSG_GRADIENT _UxGT("Gradiente") PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Muovi Y");
#define MSG_FULL_GRADIENT _UxGT("Gradiente pieno") PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Muovi Z");
#define MSG_TOGGLE_MIX _UxGT("Alterna miscela") PROGMEM Language_Str MSG_MOVE_E = _UxGT("Estrusore");
#define MSG_CYCLE_MIX _UxGT("Ciclo miscela") PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Estrusore ") LCD_STR_E0;
#define MSG_GRADIENT_MIX _UxGT("Miscela gradiente") PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Estrusore ") LCD_STR_E1;
#define MSG_REVERSE_GRADIENT _UxGT("Inverti gradiente") PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Estrusore ") LCD_STR_E2;
#define MSG_ACTIVE_VTOOL _UxGT("V-tool attivo") PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Estrusore ") LCD_STR_E3;
#define MSG_START_VTOOL _UxGT("V-tool iniziale") PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Estrusore ") LCD_STR_E4;
#define MSG_END_VTOOL _UxGT("V-tool finale") PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Estrusore ") LCD_STR_E5;
#define MSG_GRADIENT_ALIAS _UxGT("V-tool alias") PROGMEM Language_Str MSG_HOTEND_TOO_COLD = _UxGT("Ugello freddo");
#define MSG_RESET_VTOOLS _UxGT("Ripristina V-tools") PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Muovi di %smm");
#define MSG_COMMIT_VTOOL _UxGT("Commit mix V-tool") PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Muovi di 0.1mm");
#define MSG_VTOOLS_RESET _UxGT("V-tools ripristin.") PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Muovi di 1mm");
#define MSG_START_Z _UxGT("Z inizio") PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Muovi di 10mm");
#define MSG_END_Z _UxGT("Z fine") PROGMEM Language_Str MSG_SPEED = _UxGT("Velocità");
PROGMEM Language_Str MSG_BED_Z = _UxGT("Piatto Z");
PROGMEM Language_Str MSG_NOZZLE = _UxGT("Ugello");
PROGMEM Language_Str MSG_NOZZLE_E0 = _UxGT("Ugello ") LCD_STR_E0;
PROGMEM Language_Str MSG_NOZZLE_E1 = _UxGT("Ugello ") LCD_STR_E1;
PROGMEM Language_Str MSG_NOZZLE_E2 = _UxGT("Ugello ") LCD_STR_E2;
PROGMEM Language_Str MSG_NOZZLE_E3 = _UxGT("Ugello ") LCD_STR_E3;
PROGMEM Language_Str MSG_NOZZLE_E4 = _UxGT("Ugello ") LCD_STR_E4;
PROGMEM Language_Str MSG_NOZZLE_E5 = _UxGT("Ugello ") LCD_STR_E5;
PROGMEM Language_Str MSG_BED = _UxGT("Piatto");
PROGMEM Language_Str MSG_CHAMBER = _UxGT("Camera");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Vel. ventola"); // Max 15 characters
PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Vel. ventola 1"); // Max 15 characters
PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Vel. ventola 2"); // Max 15 characters
PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Vel. ventola 3"); // Max 15 characters
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Extra vel.vent."); // Max 15 characters
PROGMEM Language_Str MSG_FLOW = _UxGT("Flusso");
PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Flusso ") LCD_STR_N0;
PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Flusso ") LCD_STR_N1;
PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Flusso ") LCD_STR_N2;
PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Flusso ") LCD_STR_N3;
PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Flusso ") LCD_STR_N4;
PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Flusso ") LCD_STR_N5;
PROGMEM Language_Str MSG_CONTROL = _UxGT("Controllo");
PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" Min");
PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" Max");
PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Fact");
PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Autotemp");
PROGMEM Language_Str MSG_LCD_ON = _UxGT("On");
PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Off");
PROGMEM Language_Str MSG_PID_P = _UxGT("PID-P");
PROGMEM Language_Str MSG_PID_P_E0 = _UxGT("PID-P ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_P_E1 = _UxGT("PID-P ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_P_E2 = _UxGT("PID-P ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_P_E3 = _UxGT("PID-P ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_P_E4 = _UxGT("PID-P ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_P_E5 = _UxGT("PID-P ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_I = _UxGT("PID-I");
PROGMEM Language_Str MSG_PID_I_E0 = _UxGT("PID-I ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_I_E1 = _UxGT("PID-I ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_I_E2 = _UxGT("PID-I ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_I_E3 = _UxGT("PID-I ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_I_E4 = _UxGT("PID-I ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_I_E5 = _UxGT("PID-I ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_D = _UxGT("PID-D");
PROGMEM Language_Str MSG_PID_D_E0 = _UxGT("PID-D ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_D_E1 = _UxGT("PID-D ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_D_E2 = _UxGT("PID-D ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_D_E3 = _UxGT("PID-D ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_D_E4 = _UxGT("PID-D ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_D_E5 = _UxGT("PID-D ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_C = _UxGT("PID-C");
PROGMEM Language_Str MSG_PID_C_E0 = _UxGT("PID-C ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_C_E1 = _UxGT("PID-C ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_C_E2 = _UxGT("PID-C ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_C_E3 = _UxGT("PID-C ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_C_E4 = _UxGT("PID-C ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_C_E5 = _UxGT("PID-C ") LCD_STR_E5;
PROGMEM Language_Str MSG_SELECT = _UxGT("Seleziona");
PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("Seleziona ") LCD_STR_E0;
PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("Seleziona ") LCD_STR_E1;
PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("Seleziona ") LCD_STR_E2;
PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("Seleziona ") LCD_STR_E3;
PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("Seleziona ") LCD_STR_E4;
PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("Seleziona ") LCD_STR_E5;
PROGMEM Language_Str MSG_ACC = _UxGT("Accel");
PROGMEM Language_Str MSG_JERK = _UxGT("Jerk");
PROGMEM Language_Str MSG_VA_JERK = _UxGT("V") LCD_STR_A _UxGT("-jerk");
PROGMEM Language_Str MSG_VB_JERK = _UxGT("V") LCD_STR_B _UxGT("-jerk");
PROGMEM Language_Str MSG_VC_JERK = _UxGT("V") LCD_STR_C _UxGT("-jerk");
PROGMEM Language_Str MSG_VE_JERK = _UxGT("Ve-jerk");
PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Deviaz. giunzioni");
PROGMEM Language_Str MSG_VELOCITY = _UxGT("Velocità");
PROGMEM Language_Str MSG_VMIN = _UxGT("Vmin");
PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("VTrav min");
PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Accelerazione");
PROGMEM Language_Str MSG_AMAX = _UxGT("Amax ");
PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-Ritrazione");
PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A-Spostamento");
PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Passi/mm");
PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("passi/mm");
PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("passi/mm");
PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("passi/mm");
PROGMEM Language_Str MSG_E_STEPS = _UxGT("Epassi/mm");
PROGMEM Language_Str MSG_E0_STEPS = LCD_STR_E0 _UxGT("passi/mm");
PROGMEM Language_Str MSG_E1_STEPS = LCD_STR_E1 _UxGT("passi/mm");
PROGMEM Language_Str MSG_E2_STEPS = LCD_STR_E2 _UxGT("passi/mm");
PROGMEM Language_Str MSG_E3_STEPS = LCD_STR_E3 _UxGT("passi/mm");
PROGMEM Language_Str MSG_E4_STEPS = LCD_STR_E4 _UxGT("passi/mm");
PROGMEM Language_Str MSG_E5_STEPS = LCD_STR_E5 _UxGT("passi/mm");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura");
PROGMEM Language_Str MSG_MOTION = _UxGT("Movimento");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filamento");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E in mm³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Diam. filo");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Diam. filo ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Diam. filo ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Diam. filo ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Diam. filo ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Diam. filo ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Diam. filo ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("Rimuovi mm");
PROGMEM Language_Str MSG_FILAMENT_LOAD = _UxGT("Carica mm");
PROGMEM Language_Str MSG_ADVANCE_K = _UxGT("K Avanzamento");
PROGMEM Language_Str MSG_ADVANCE_K_E0 = _UxGT("K Avanzamento ") LCD_STR_E0;
PROGMEM Language_Str MSG_ADVANCE_K_E1 = _UxGT("K Avanzamento ") LCD_STR_E1;
PROGMEM Language_Str MSG_ADVANCE_K_E2 = _UxGT("K Avanzamento ") LCD_STR_E2;
PROGMEM Language_Str MSG_ADVANCE_K_E3 = _UxGT("K Avanzamento ") LCD_STR_E3;
PROGMEM Language_Str MSG_ADVANCE_K_E4 = _UxGT("K Avanzamento ") LCD_STR_E4;
PROGMEM Language_Str MSG_ADVANCE_K_E5 = _UxGT("K Avanzamento ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("Contrasto LCD");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Salva impostazioni");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Carica impostazioni");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Ripristina imp.");
PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("Inizializza EEPROM");
PROGMEM Language_Str MSG_MEDIA_UPDATE = _UxGT("Aggiorna media");
PROGMEM Language_Str MSG_RESET_PRINTER = _UxGT("Resetta stampante");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Aggiorna");
PROGMEM Language_Str MSG_WATCH = _UxGT("Schermata info");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Prepara");
PROGMEM Language_Str MSG_TUNE = _UxGT("Regola");
PROGMEM Language_Str MSG_START_PRINT = _UxGT("Avvia stampa");
PROGMEM Language_Str MSG_BUTTON_NEXT = _UxGT("Prossimo");
PROGMEM Language_Str MSG_BUTTON_INIT = _UxGT("Inizializza");
PROGMEM Language_Str MSG_BUTTON_STOP = _UxGT("Stop");
PROGMEM Language_Str MSG_BUTTON_PRINT = _UxGT("Stampa");
PROGMEM Language_Str MSG_BUTTON_RESET = _UxGT("Resetta");
PROGMEM Language_Str MSG_BUTTON_CANCEL = _UxGT("Annulla");
PROGMEM Language_Str MSG_BUTTON_DONE = _UxGT("Fatto");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Pausa stampa");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Riprendi stampa");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Arresta stampa");
PROGMEM Language_Str MSG_OUTAGE_RECOVERY = _UxGT("Ripresa da PowerLoss");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Stampa da media");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("Media non presente");
PROGMEM Language_Str MSG_DWELL = _UxGT("Sospensione...");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Premi tasto..");
PROGMEM Language_Str MSG_PRINT_PAUSED = _UxGT("Stampa sospesa");
PROGMEM Language_Str MSG_PRINTING = _UxGT("Stampa...");
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Stampa annullata");
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Nessun Movimento");
PROGMEM Language_Str MSG_KILLED = _UxGT("UCCISO. ");
PROGMEM Language_Str MSG_STOPPED = _UxGT("ARRESTATO. ");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Ritrai mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Scamb. Ritrai mm");
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Ritrai V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Salta mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("Scamb. UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("UnRet V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAPF = _UxGT("S UnRet V");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("AutoRitrai");
PROGMEM Language_Str MSG_FILAMENT_SWAP_LENGTH = _UxGT("Dist. ritrazione");
PROGMEM Language_Str MSG_FILAMENT_PURGE_LENGTH = _UxGT("Lunghezza spurgo");
PROGMEM Language_Str MSG_TOOL_CHANGE = _UxGT("Cambio utensile");
PROGMEM Language_Str MSG_TOOL_CHANGE_ZLIFT = _UxGT("Risalita Z");
PROGMEM Language_Str MSG_SINGLENOZZLE_PRIME_SPD = _UxGT("Velocità innesco");
PROGMEM Language_Str MSG_SINGLENOZZLE_RETRACT_SPD = _UxGT("Velocità retrazione");
PROGMEM Language_Str MSG_NOZZLE_STANDBY = _UxGT("Standby ugello");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Cambia filamento");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Cambia filamento ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Cambia filamento ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Cambia filamento ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Cambia filamento ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Cambia filamento ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Cambia filamento ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTLOAD = _UxGT("Carica filamento");
PROGMEM Language_Str MSG_FILAMENTLOAD_E0 = _UxGT("Carica filamento ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTLOAD_E1 = _UxGT("Carica filamento ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTLOAD_E2 = _UxGT("Carica filamento ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTLOAD_E3 = _UxGT("Carica filamento ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTLOAD_E4 = _UxGT("Carica filamento ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTLOAD_E5 = _UxGT("Carica filamento ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTUNLOAD = _UxGT("Rimuovi filamento");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E0 = _UxGT("Rimuovi filamento ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E1 = _UxGT("Rimuovi filamento ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E2 = _UxGT("Rimuovi filamento ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E3 = _UxGT("Rimuovi filamento ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E4 = _UxGT("Rimuovi filamento ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E5 = _UxGT("Rimuovi filamento ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Rimuovi tutto");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Inizializ. media");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Cambia media");
PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("Rilascia media");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z probe fuori piatto");
PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("Fattore distorsione");
PROGMEM Language_Str MSG_BLTOUCH = _UxGT("BLTouch");
PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("Autotest BLTouch");
PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("Resetta BLTouch");
PROGMEM Language_Str MSG_BLTOUCH_DEPLOY = _UxGT("Estendi BLTouch");
PROGMEM Language_Str MSG_BLTOUCH_SW_MODE = _UxGT("BLTouch modo SW");
PROGMEM Language_Str MSG_BLTOUCH_5V_MODE = _UxGT("BLTouch modo 5V");
PROGMEM Language_Str MSG_BLTOUCH_OD_MODE = _UxGT("BLTouch modo OD");
PROGMEM Language_Str MSG_BLTOUCH_MODE_STORE = _UxGT("BLTouch modo mem.");
PROGMEM Language_Str MSG_BLTOUCH_MODE_STORE_5V = _UxGT("Metti BLTouch a 5V");
PROGMEM Language_Str MSG_BLTOUCH_MODE_STORE_OD = _UxGT("Metti BLTouch a OD");
PROGMEM Language_Str MSG_BLTOUCH_MODE_ECHO = _UxGT("Segnala modo");
PROGMEM Language_Str MSG_BLTOUCH_MODE_CHANGE = _UxGT("PERICOLO: Impostazioni errate possono cause danni! Procedo comunque?");
PROGMEM Language_Str MSG_TOUCHMI_PROBE = _UxGT("TouchMI");
PROGMEM Language_Str MSG_TOUCHMI_INIT = _UxGT("Inizializ.TouchMI");
PROGMEM Language_Str MSG_TOUCHMI_ZTEST = _UxGT("Test Z offset");
PROGMEM Language_Str MSG_TOUCHMI_SAVE = _UxGT("Memorizzare");
PROGMEM Language_Str MSG_MANUAL_DEPLOY_TOUCHMI = _UxGT("Estendi TouchMI");
PROGMEM Language_Str MSG_MANUAL_DEPLOY = _UxGT("Estendi Sonda-Z");
PROGMEM Language_Str MSG_BLTOUCH_STOW = _UxGT("Ritrai BLTouch");
PROGMEM Language_Str MSG_MANUAL_STOW = _UxGT("Ritrai Sonda-Z");
PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("Home %s%s%s prima");
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Offset sonda Z");
PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Babystep X");
PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Babystep Y");
PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Babystep Z");
PROGMEM Language_Str MSG_BABYSTEP_TOTAL = _UxGT("Totali");
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Finecorsa annullati");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Riscald. Fallito");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD_BED = _UxGT("Risc. piatto fallito");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD_CHAMBER = _UxGT("Risc. camera fallito");
PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("Err: TEMP RIDONDANTE");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("TEMP FUORI CONTROLLO");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY_BED = _UxGT("TEMP PIAT.FUORI CTRL");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY_CHAMBER = _UxGT("T.CAMERA FUORI CTRL");
PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("Err: TEMP MASSIMA");
PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("Err: TEMP MINIMA");
PROGMEM Language_Str MSG_ERR_MAXTEMP_BED = _UxGT("Err: TEMP MAX PIATTO");
PROGMEM Language_Str MSG_ERR_MINTEMP_BED = _UxGT("Err: TEMP MIN PIATTO");
PROGMEM Language_Str MSG_ERR_MAXTEMP_CHAMBER = _UxGT("Err: TEMP MAX CAMERA");
PROGMEM Language_Str MSG_ERR_MINTEMP_CHAMBER = _UxGT("Err: TEMP MIN CAMERA");
PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("Home XY prima");
PROGMEM Language_Str MSG_HALTED = _UxGT("STAMPANTE FERMATA");
PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Riavviare prego");
PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("g"); // Un solo carattere
PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("h"); // Un solo carattere
PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("m"); // Un solo carattere
PROGMEM Language_Str MSG_HEATING = _UxGT("Riscaldamento...");
PROGMEM Language_Str MSG_COOLING = _UxGT("Raffreddamento..");
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Risc. piatto...");
PROGMEM Language_Str MSG_BED_COOLING = _UxGT("Raffr. piatto...");
PROGMEM Language_Str MSG_CHAMBER_HEATING = _UxGT("Risc. camera...");
PROGMEM Language_Str MSG_CHAMBER_COOLING = _UxGT("Raffr. camera...");
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Calibraz. Delta");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Calibra X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Calibra Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Calibra Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Calibra centro");
PROGMEM Language_Str MSG_DELTA_SETTINGS = _UxGT("Impostaz. Delta");
PROGMEM Language_Str MSG_DELTA_AUTO_CALIBRATE = _UxGT("Auto calibrazione");
PROGMEM Language_Str MSG_DELTA_HEIGHT_CALIBRATE = _UxGT("Imp. altezza Delta");
PROGMEM Language_Str MSG_DELTA_Z_OFFSET_CALIBRATE = _UxGT("Offset sonda-Z");
PROGMEM Language_Str MSG_DELTA_DIAG_ROD = _UxGT("Barra Diagonale");
PROGMEM Language_Str MSG_DELTA_HEIGHT = _UxGT("Altezza");
PROGMEM Language_Str MSG_DELTA_RADIUS = _UxGT("Raggio");
PROGMEM Language_Str MSG_INFO_MENU = _UxGT("Riguardo stampante");
PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Info. stampante");
PROGMEM Language_Str MSG_3POINT_LEVELING = _UxGT("Livel. a 3 punti");
PROGMEM Language_Str MSG_LINEAR_LEVELING = _UxGT("Livel. Lineare");
PROGMEM Language_Str MSG_BILINEAR_LEVELING = _UxGT("Livel. Bilineare");
PROGMEM Language_Str MSG_UBL_LEVELING = _UxGT("Livel.piatto unific.");
PROGMEM Language_Str MSG_MESH_LEVELING = _UxGT("Livel. Mesh");
PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Statistiche");
PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Info. scheda");
PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Termistori");
PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Estrusori");
PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("Baud");
PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Protocollo");
PROGMEM Language_Str MSG_INFO_RUNAWAY_OFF = _UxGT("Controllo fuga: OFF");
PROGMEM Language_Str MSG_INFO_RUNAWAY_ON = _UxGT("Controllo fuga: ON");
PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Luci Case");
PROGMEM Language_Str MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Luminosità Luci");
#if LCD_WIDTH >= 20
PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Contat. stampa");
PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Completati");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Tempo totale");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Lavoro più lungo");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Totale estruso");
#else
PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Stampe");
PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Completati");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Durata");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Più lungo");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Estruso");
#endif
PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Temp min");
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Temp max");
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Alimentatore");
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Potenza Drive");
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Driver %");
PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("ERR.CONNESSIONE TMC");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Scrivi DAC EEPROM");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER = _UxGT("CAMBIO FILAMENTO");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("STAMPA IN PAUSA");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("CARICA FILAMENTO");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("RIMUOVI FILAMENTO");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("OPZIONI RIPRESA:");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("Spurga di più");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Riprendi stampa");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Ugello: ");
PROGMEM Language_Str MSG_RUNOUT_SENSOR = _UxGT("Sens.filo termin."); // Max 17 characters
PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("Dist mm filo term.");
PROGMEM Language_Str MSG_LCD_HOMING_FAILED = _UxGT("Home fallito");
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Sondaggio fallito");
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600:Troppo freddo");
#define MSG_GAMES _UxGT("Giochi") PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("SCELTA FILAMENTO");
#define MSG_BRICKOUT _UxGT("Brickout") PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU");
#define MSG_INVADERS _UxGT("Invaders") PROGMEM Language_Str MSG_MMU2_WRONG_FIRMWARE = _UxGT("Agg.firmware MMU!");
#define MSG_SNAKE _UxGT("Sn4k3") PROGMEM Language_Str MSG_MMU2_NOT_RESPONDING = _UxGT("MMU chiede attenz.");
#define MSG_MAZE _UxGT("Maze") PROGMEM Language_Str MSG_MMU2_RESUME = _UxGT("Riprendi stampa");
PROGMEM Language_Str MSG_MMU2_RESUMING = _UxGT("Ripresa...");
PROGMEM Language_Str MSG_MMU2_LOAD_FILAMENT = _UxGT("Carica filamento");
PROGMEM Language_Str MSG_MMU2_LOAD_ALL = _UxGT("Carica tutto");
PROGMEM Language_Str MSG_MMU2_LOAD_TO_NOZZLE = _UxGT("Carica fino ugello");
PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT = _UxGT("Espelli filamento");
PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT0 = _UxGT("Espelli filam.1");
PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT1 = _UxGT("Espelli filam.2");
PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT2 = _UxGT("Espelli filam.3");
PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT3 = _UxGT("Espelli filam.4");
PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT4 = _UxGT("Espelli filam.5");
PROGMEM Language_Str MSG_MMU2_UNLOAD_FILAMENT = _UxGT("Scarica filamento");
PROGMEM Language_Str MSG_MMU2_LOADING_FILAMENT = _UxGT("Caric.fil. %i...");
PROGMEM Language_Str MSG_MMU2_EJECTING_FILAMENT = _UxGT("Esplus.filam. ...");
PROGMEM Language_Str MSG_MMU2_UNLOADING_FILAMENT = _UxGT("Scaric.filam. ...");
PROGMEM Language_Str MSG_MMU2_ALL = _UxGT("Tutto");
PROGMEM Language_Str MSG_MMU2_FILAMENT0 = _UxGT("Filamento 1");
PROGMEM Language_Str MSG_MMU2_FILAMENT1 = _UxGT("Filamento 2");
PROGMEM Language_Str MSG_MMU2_FILAMENT2 = _UxGT("Filamento 3");
PROGMEM Language_Str MSG_MMU2_FILAMENT3 = _UxGT("Filamento 4");
PROGMEM Language_Str MSG_MMU2_FILAMENT4 = _UxGT("Filamento 5");
PROGMEM Language_Str MSG_MMU2_RESET = _UxGT("Azzera MMU");
PROGMEM Language_Str MSG_MMU2_RESETTING = _UxGT("Azzeramento MMU...");
PROGMEM Language_Str MSG_MMU2_EJECT_RECOVER = _UxGT("Rimuovi, click");
#define MSG_EXPECTED_PRINTER _UxGT("Stampante errata") PROGMEM Language_Str MSG_MIX = _UxGT("Miscela");
PROGMEM Language_Str MSG_MIX_COMPONENT_1 = _UxGT("Componente 1");
PROGMEM Language_Str MSG_MIX_COMPONENT_2 = _UxGT("Componente 2");
PROGMEM Language_Str MSG_MIX_COMPONENT_3 = _UxGT("Componente 3");
PROGMEM Language_Str MSG_MIX_COMPONENT_4 = _UxGT("Componente 4");
PROGMEM Language_Str MSG_MIX_COMPONENT_5 = _UxGT("Componente 5");
PROGMEM Language_Str MSG_MIX_COMPONENT_6 = _UxGT("Componente 6");
PROGMEM Language_Str MSG_MIXER = _UxGT("Miscelatore");
PROGMEM Language_Str MSG_GRADIENT = _UxGT("Gradiente");
PROGMEM Language_Str MSG_FULL_GRADIENT = _UxGT("Gradiente pieno");
PROGMEM Language_Str MSG_TOGGLE_MIX = _UxGT("Alterna miscela");
PROGMEM Language_Str MSG_CYCLE_MIX = _UxGT("Ciclo miscela");
PROGMEM Language_Str MSG_GRADIENT_MIX = _UxGT("Miscela gradiente");
PROGMEM Language_Str MSG_REVERSE_GRADIENT = _UxGT("Inverti gradiente");
PROGMEM Language_Str MSG_ACTIVE_VTOOL = _UxGT("V-tool attivo");
PROGMEM Language_Str MSG_START_VTOOL = _UxGT("V-tool iniziale");
PROGMEM Language_Str MSG_END_VTOOL = _UxGT("V-tool finale");
PROGMEM Language_Str MSG_GRADIENT_ALIAS = _UxGT("V-tool alias");
PROGMEM Language_Str MSG_RESET_VTOOLS = _UxGT("Ripristina V-tools");
PROGMEM Language_Str MSG_COMMIT_VTOOL = _UxGT("Commit mix V-tool");
PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("V-tools ripristin.");
PROGMEM Language_Str MSG_START_Z = _UxGT("Z inizio:");
PROGMEM Language_Str MSG_END_Z = _UxGT("Z fine:");
// PROGMEM Language_Str MSG_GAMES = _UxGT("Giochi");
// Le schermate di Cambio Filamento possono visualizzare fino a 3 linee su un display a 4 righe PROGMEM Language_Str MSG_BRICKOUT = _UxGT("Brickout");
// ...o fino a 2 linee su un display a 3 righe. PROGMEM Language_Str MSG_INVADERS = _UxGT("Invaders");
#if LCD_HEIGHT >= 4 PROGMEM Language_Str MSG_SNAKE = _UxGT("Sn4k3");
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Premi per") PROGMEM Language_Str MSG_MAZE = _UxGT("Maze");
#define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("riprendere")
#define MSG_ADVANCED_PAUSE_WAITING_3 _UxGT("la stampa")
#define MSG_PAUSE_PRINT_INIT_1 _UxGT("Parcheggiando...")
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Attendere avvio")
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("del cambio")
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("di filamento")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Inserisci il")
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("filamento e premi")
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("per continuare")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Premi per")
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("riscaldare ugello")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Riscaldam. ugello")
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Attendere prego...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Attendere")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("l'espulsione")
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("del filamento")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Attendere")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("il caricamento")
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("del filamento")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Attendere")
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("lo spurgo")
#define MSG_FILAMENT_CHANGE_PURGE_3 _UxGT("del filamento")
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Premi x terminare")
#define MSG_FILAMENT_CHANGE_CONT_PURGE_2 _UxGT("lo spurgo")
#define MSG_FILAMENT_CHANGE_CONT_PURGE_3 _UxGT("del filamento")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Attendere")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("la ripresa")
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("della stampa...")
#else // LCD_HEIGHT < 4
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Premi x continuare")
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Attendere...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Inserisci e premi")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Riscalda ugello")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Riscaldamento...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Espulsione...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Caricamento...")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Spurgo filamento")
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Premi x terminare")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Ripresa...")
#endif // LCD_HEIGHT < 4
#define MSG_TMC_DRIVERS _UxGT("Drivers TMC") PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Stampante errata");
#define MSG_TMC_CURRENT _UxGT("Driver in uso")
#define MSG_TMC_HYBRID_THRS _UxGT("Soglia modo ibrido")
#define MSG_TMC_HOMING_THRS _UxGT("Azzer. sensorless")
#define MSG_TMC_STEPPING_MODE _UxGT("Modo stepping")
#define MSG_TMC_STEALTH_ENABLED _UxGT("StealthChop abil.")
#define MSG_SERVICE_RESET _UxGT("Resetta") //
#define MSG_SERVICE_IN _UxGT(" tra:") // Le schermate di Cambio Filamento possono visualizzare fino a 3 linee su un display a 4 righe
// ...o fino a 2 linee su un display a 3 righe.
#if LCD_HEIGHT >= 4
PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_3_LINE("Premi per", "riprendere", "la stampa"));
PROGMEM Language_Str MSG_PAUSE_PRINT_INIT = _UxGT(MSG_1_LINE("Parcheggiando..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Attendere avvio", "del cambio", "di filamento"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Inserisci il", "filamento e premi", "per continuare"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Premi per", "riscaldare ugello"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("Riscaldam. ugello", "Attendere prego..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_3_LINE("Attendere", "l'espulsione", "del filamento"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_3_LINE("Attendere", "il caricamento", "del filamento"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_3_LINE("Attendere", "lo spurgo", "del filamento"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_3_LINE("Premi x terminare", "lo spurgo", "del filamento"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_3_LINE("Attendere", "la ripresa", "della stampa..."));
#else // LCD_HEIGHT < 4
PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_1_LINE("Premi x continuare"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Attendere..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Inserisci e premi"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_1_LINE("Riscalda ugello"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("Riscaldamento..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Espulsione..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Caricamento..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_1_LINE("Spurgo filamento"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_1_LINE("Premi x terminare"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Ripresa..."));
#endif // LCD_HEIGHT < 4
#define MSG_BACKLASH _UxGT("Gioco") PROGMEM Language_Str MSG_TMC_DRIVERS = _UxGT("Drivers TMC");
#define MSG_BACKLASH_CORRECTION _UxGT("Correzione") PROGMEM Language_Str MSG_TMC_CURRENT = _UxGT("Driver in uso");
#define MSG_BACKLASH_SMOOTHING _UxGT("Smoothing") PROGMEM Language_Str MSG_TMC_HYBRID_THRS = _UxGT("Soglia modo ibrido");
PROGMEM Language_Str MSG_TMC_HOMING_THRS = _UxGT("Azzer. sensorless");
PROGMEM Language_Str MSG_TMC_STEPPING_MODE = _UxGT("Modo stepping");
PROGMEM Language_Str MSG_TMC_STEALTH_ENABLED = _UxGT("StealthChop abil.");
PROGMEM Language_Str MSG_SERVICE_RESET = _UxGT("Resetta");
PROGMEM Language_Str MSG_SERVICE_IN = _UxGT(" tra:");
PROGMEM Language_Str MSG_BACKLASH = _UxGT("Gioco");
PROGMEM Language_Str MSG_BACKLASH_A = LCD_STR_A;
PROGMEM Language_Str MSG_BACKLASH_B = LCD_STR_B;
PROGMEM Language_Str MSG_BACKLASH_C = LCD_STR_C;
PROGMEM Language_Str MSG_BACKLASH_CORRECTION = _UxGT("Correzione");
PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("Smoothing");
}

View file

@ -31,224 +31,284 @@
*/ */
//#define DISPLAY_CHARSET_ISO10646_KANA //#define DISPLAY_CHARSET_ISO10646_KANA
#define CHARSIZE 3
// This just to show the potential benefit of unicode. namespace Language_jp_kana {
// This translation can be improved by using the full charset of unicode codeblock U+30A0 to U+30FF. using namespace Language_en; // Inherit undefined strings from English
// 片仮名表示定義 constexpr uint8_t CHARSIZE = 3;
#define WELCOME_MSG MACHINE_NAME _UxGT(" ジュンビカンリョウ") PROGMEM Language_Str LANGUAGE = _UxGT("Japanese");
#define MSG_MEDIA_INSERTED _UxGT("メディアガソウニュウサレマシタ") // "Card inserted"
#define MSG_MEDIA_REMOVED _UxGT("メディアガアリマセン") // "Card removed"
#define MSG_RELEASE_MEDIA _UxGT("メディアノトリダシ")
#define MSG_MEDIA_RELEASED _UxGT("メディアガアリマセン")
#define MSG_LCD_ENDSTOPS _UxGT("エンドストップ") // "Endstops" // Max length 8 characters
#define MSG_MAIN _UxGT("メイン") // "Main"
#define MSG_AUTOSTART _UxGT("ジドウカイシ") // "Autostart"
#define MSG_DISABLE_STEPPERS _UxGT("モーターデンゲン オフ") // "Disable steppers"
#define MSG_DEBUG_MENU _UxGT("デバッグメニュー") // "Debug Menu"
#define MSG_PROGRESS_BAR_TEST _UxGT("プログレスバー テスト") // "Progress Bar Test"
#define MSG_AUTO_HOME _UxGT("ゲンテンフッキ") // "Auto home"
#define MSG_AUTO_HOME_X _UxGT("Xジク ゲンテンフッキ") // "Home X"
#define MSG_AUTO_HOME_Y _UxGT("Yジク ゲンテンフッキ") // "Home Y"
#define MSG_AUTO_HOME_Z _UxGT("Zジク ゲンテンフッキ") // "Home Z"
#define MSG_LEVEL_BED_HOMING _UxGT("ゲンテンフッキチュウ") // "Homing XYZ"
#define MSG_LEVEL_BED_WAITING _UxGT("レベリングカイシ") // "Click to Begin"
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("ツギノソクテイテンヘ") // "Next Point"
#define MSG_LEVEL_BED_DONE _UxGT("レベリングカンリョウ") // "Leveling Done!"
#define MSG_SET_HOME_OFFSETS _UxGT("キジュンオフセットセッテイ") // "Set home offsets"
#define MSG_HOME_OFFSETS_APPLIED _UxGT("オフセットガテキヨウサレマシタ") // "Offsets applied"
#define MSG_SET_ORIGIN _UxGT("キジュンセット") // "Set origin"
#define MSG_PREHEAT_1 _UxGT(PREHEAT_1_LABEL " ヨネツ") // "Preheat " PREHEAT_1_LABEL
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ")
#define MSG_PREHEAT_1_ALL _UxGT(PREHEAT_1_LABEL " スベテヨネツ") // " All"
#define MSG_PREHEAT_1_BEDONLY _UxGT(PREHEAT_1_LABEL " ベッドヨネツ") // " Bed"
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT("セッテイ") // " conf"
#define MSG_PREHEAT_2 _UxGT(PREHEAT_2_LABEL " ヨネツ") // "Preheat " PREHEAT_2_LABEL
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ")
#define MSG_PREHEAT_2_ALL _UxGT(PREHEAT_2_LABEL " スベテヨネツ") // " All"
#define MSG_PREHEAT_2_BEDONLY _UxGT(PREHEAT_2_LABEL " ベッドヨネツ") // " Bed"
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT("セッテイ") // " conf"
#define MSG_COOLDOWN _UxGT("カネツテイシ") // "Cooldown"
#define MSG_SWITCH_PS_ON _UxGT("デンゲン オン") // "Switch power on"
#define MSG_SWITCH_PS_OFF _UxGT("デンゲン オフ") // "Switch power off"
#define MSG_EXTRUDE _UxGT("オシダシ") // "Extrude"
#define MSG_RETRACT _UxGT("ヒキコミセッテイ") // "Retract"
#define MSG_MOVE_AXIS _UxGT("ジクイドウ") // "Move axis"
#define MSG_BED_LEVELING _UxGT("ベッドレベリング") // "Bed leveling"
#define MSG_LEVEL_BED _UxGT("ベッドレベリング") // "Level bed"
#define MSG_MOVING _UxGT("イドウチュウ") // "Moving..." // This is just to show the potential benefit of Unicode.
#define MSG_FREE_XY _UxGT("XYジク カイホウ") // "Free XY" // This translation can be improved by using the full charset of unicode codeblock U+30A0 to U+30FF.
#define MSG_MOVE_X _UxGT("Xジク イドウ") // "Move X"
#define MSG_MOVE_Y _UxGT("Yジク イドウ") // "Move Y"
#define MSG_MOVE_Z _UxGT("Zジク イドウ") // "Move Z"
#define MSG_MOVE_E _UxGT("エクストルーダー") // "Extruder"
#define MSG_MOVE_Z_DIST _UxGT("%smm イドウ") // "Move 0.025mm"
#define MSG_MOVE_01MM _UxGT("0.1mm イドウ") // "Move 0.1mm"
#define MSG_MOVE_1MM _UxGT(" 1mm イドウ") // "Move 1mm"
#define MSG_MOVE_10MM _UxGT(" 10mm イドウ") // "Move 10mm"
#define MSG_SPEED _UxGT("ソクド") // "Speed"
#define MSG_BED_Z _UxGT("Zオフセット") // "Bed Z"
#define MSG_NOZZLE _UxGT("ノズル") // "Nozzle"
#define MSG_BED _UxGT("ベッド") // "Bed"
#define MSG_FAN_SPEED _UxGT("ファンソクド") // "Fan speed"
#define MSG_FLOW _UxGT("トシュツリョウ") // "Flow"
#define MSG_CONTROL _UxGT("セイギョ") // "Control"
#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" サイテイ") // " Min"
#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" サイコウ") // " Max"
#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" ファクター") // " Fact"
#define MSG_AUTOTEMP _UxGT("ジドウオンドセイギョ") // "Autotemp"
#define MSG_LCD_ON _UxGT("オン") // "On"
#define MSG_LCD_OFF _UxGT("オフ") // "Off"
#define MSG_PID_P _UxGT("PID-P")
#define MSG_PID_I _UxGT("PID-I")
#define MSG_PID_D _UxGT("PID-D")
#define MSG_PID_C _UxGT("PID-C")
#define MSG_SELECT _UxGT("センタク") // "Select"
#define MSG_ACC _UxGT("カソクド mm/s²") // "Accel"
#define MSG_JERK _UxGT("ヤクドウ mm/s") // "Jerk"
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Aジク ヤクドウ mm/s") // "Va-jerk"
#define MSG_VB_JERK _UxGT("Bジク ヤクドウ mm/s") // "Vb-jerk"
#define MSG_VC_JERK _UxGT("Cジク ヤクドウ mm/s") // "Vc-jerk"
#define MSG_ASTEPS _UxGT("Aステップ/mm")
#define MSG_BSTEPS _UxGT("Bステップ/mm")
#define MSG_CSTEPS _UxGT("Cステップ/mm")
#else
#define MSG_VA_JERK _UxGT("Xジク ヤクドウ mm/s") // "Vx-jerk"
#define MSG_VB_JERK _UxGT("Yジク ヤクドウ mm/s") // "Vy-jerk"
#define MSG_VC_JERK _UxGT("Zジク ヤクドウ mm/s") // "Vz-jerk"
#define MSG_ASTEPS _UxGT("Xステップ/mm")
#define MSG_BSTEPS _UxGT("Yステップ/mm")
#define MSG_CSTEPS _UxGT("Zステップ/mm")
#endif
#define MSG_VE_JERK _UxGT("エクストルーダー ヤクド") // "Ve-jerk"
#define MSG_VMAX _UxGT("サイダイオクリソクド ") // "Vmax "
#define MSG_VMIN _UxGT("サイショウオクリソクド") // "Vmin"
#define MSG_VTRAV_MIN _UxGT("サイショウイドウソクド") // "VTrav min"
#define MSG_ACCELERATION MSG_ACC
#define MSG_AMAX _UxGT("サイダイカソクド ") // "Amax "
#define MSG_A_RETRACT _UxGT("ヒキコミカソクド") // "A-retract"
#define MSG_A_TRAVEL _UxGT("イドウカソクド") // "A-travel"
#define MSG_TEMPERATURE _UxGT("オンド") // "Temperature"
#define MSG_MOTION _UxGT("ウゴキセッテイ") // "Motion"
#define MSG_FILAMENT _UxGT("フィラメント") // "Filament"
#define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm³")
#define MSG_FILAMENT_DIAM _UxGT("フィラメントチョッケイ") // "Fil. Dia."
#define MSG_CONTRAST _UxGT("LCDコントラスト") // "LCD contrast"
#define MSG_STORE_EEPROM _UxGT("EEPROMヘホゾン") // "Store memory"
#define MSG_LOAD_EEPROM _UxGT("EEPROMカラヨミコミ") // "Load memory"
#define MSG_RESTORE_FAILSAFE _UxGT("セッテイリセット") // "Restore failsafe"
#define MSG_REFRESH _UxGT("リフレッシュ") // "Refresh"
#define MSG_WATCH _UxGT("ジョウホウガメン") // "Info screen"
#define MSG_PREPARE _UxGT("ジュンビセッテイ") // "Prepare"
#define MSG_TUNE _UxGT("チョウセイ") // "Tune"
#define MSG_PAUSE_PRINT _UxGT("イチジテイシ") // "Pause print"
#define MSG_RESUME_PRINT _UxGT("プリントサイカイ") // "Resume print"
#define MSG_STOP_PRINT _UxGT("プリントテイシ") // "Stop print"
#define MSG_MEDIA_MENU _UxGT("メディアカラプリント") // "Print from SD"
#define MSG_NO_MEDIA _UxGT("メディアガアリマセン") // "No SD card"
#define MSG_DWELL _UxGT("キュウシ") // "Sleep..."
#define MSG_USERWAIT _UxGT("シバラクオマチクダサイ") // "Wait for user..."
//#define MSG_USERWAIT _UxGT("ツヅケルニハクリックシテクダサイ")
#define MSG_PRINT_ABORTED _UxGT("プリントガチュウシサレマシタ") // "Print aborted"
#define MSG_NO_MOVE _UxGT("ウゴキマセン") // "No move."
#define MSG_KILLED _UxGT("ヒジョウテイシ") // "KILLED. "
#define MSG_STOPPED _UxGT("テイシシマシタ") // "STOPPED. "
#define MSG_CONTROL_RETRACT _UxGT("ヒキコミリョウ mm") // "Retract mm"
#define MSG_CONTROL_RETRACT_SWAP _UxGT("ヒキコミリョウS mm") // "Swap Re.mm"
#define MSG_CONTROL_RETRACTF _UxGT("ヒキコミソクド mm/s") // "Retract V"
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("ノズルタイヒ mm") // "Hop mm"
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("ホショウリョウ mm") // "UnRet mm"
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("ホショウリョウS mm") // "S UnRet mm"
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("ホショウソクド mm/s") // "UnRet V"
#define MSG_AUTORETRACT _UxGT("ジドウヒキコミ") // "AutoRetr."
#define MSG_FILAMENTCHANGE _UxGT("フィラメントコウカン") // "Change filament"
#define MSG_INIT_MEDIA _UxGT("メディアサイヨミコミ") // "Init. SD card"
#define MSG_CHANGE_MEDIA _UxGT("メディアコウカン") // "Change SD card"
#define MSG_ZPROBE_OUT _UxGT("Zプローブ ベッドガイ") // "Z probe out. bed"
#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch ジコシンダン") // "BLTouch Self-Test"
#define MSG_BLTOUCH_RESET _UxGT("BLTouch リセット") // "Reset BLTouch"
#define MSG_HOME_FIRST _UxGT("サキニ %s%s%s ヲフッキサセテクダサイ") // "Home ... first"
#define MSG_ZPROBE_ZOFFSET _UxGT("Zオフセット") // "Z Offset"
#define MSG_BABYSTEP_X _UxGT("Xジク ビドウ") // "Babystep X"
#define MSG_BABYSTEP_Y _UxGT("Yジク ビドウ") // "Babystep Y"
#define MSG_BABYSTEP_Z _UxGT("Zジク ビドウ") // "Babystep Z"
#define MSG_ENDSTOP_ABORT _UxGT("イドウゲンカイケンチキノウ") // "Endstop abort"
#define MSG_HEATING_FAILED_LCD _UxGT("カネツシッパイ") // "Heating failed"
#define MSG_ERR_REDUNDANT_TEMP _UxGT("エラー:ジョウチョウサーミスターキノウ") // "Err: REDUNDANT TEMP"
#define MSG_THERMAL_RUNAWAY _UxGT("ネツボウソウ") // "THERMAL RUNAWAY"
#define MSG_ERR_MAXTEMP _UxGT("エラー:サイコウオンチョウカ") // "Err: MAXTEMP"
#define MSG_ERR_MINTEMP _UxGT("エラー:サイテイオンミマン") // "Err: MINTEMP"
#define MSG_ERR_MAXTEMP_BED _UxGT("エラー:ベッド サイコウオンチョウカ") // "Err: MAXTEMP BED"
#define MSG_ERR_MINTEMP_BED _UxGT("エラー:ベッド サイテイオンミマン") // "Err: MINTEMP BED"
#define MSG_ERR_Z_HOMING _UxGT("サキニ XY ヲフッキサセテクダサイ") // "Home XY first"
#define MSG_HALTED _UxGT("プリンターハテイシシマシタ") // "PRINTER HALTED"
#define MSG_PLEASE_RESET _UxGT("リセットシテクダサイ") // "Please reset"
#define MSG_SHORT_DAY _UxGT("d") // One character only
#define MSG_SHORT_HOUR _UxGT("h") // One character only
#define MSG_SHORT_MINUTE _UxGT("m") // One character only
#define MSG_HEATING _UxGT("カネツチュウ") // "Heating..."
#define MSG_BED_HEATING _UxGT("ベッド カネツチュウ") // "Bed Heating..."
#define MSG_DELTA_CALIBRATE _UxGT("デルタ コウセイ") // "Delta Calibration"
#define MSG_DELTA_CALIBRATE_X _UxGT("Xジク コウセイ") // "Calibrate X"
#define MSG_DELTA_CALIBRATE_Y _UxGT("Yジク コウセイ") // "Calibrate Y"
#define MSG_DELTA_CALIBRATE_Z _UxGT("Zジク コウセイ") // "Calibrate Z"
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("チュウシン コウセイ") // "Calibrate Center"
#define MSG_INFO_MENU _UxGT("コノプリンターニツイテ") // "About Printer"
#define MSG_INFO_PRINTER_MENU _UxGT("プリンタージョウホウ") // "Printer Info"
#define MSG_INFO_STATS_MENU _UxGT("プリントジョウキョウ") // "Printer Stats"
#define MSG_INFO_BOARD_MENU _UxGT("セイギョケイジョウホウ") // "Board Info"
#define MSG_INFO_THERMISTOR_MENU _UxGT("サーミスター") // "Thermistors"
#define MSG_INFO_EXTRUDERS _UxGT("エクストルーダースウ") // "Extruders"
#define MSG_INFO_BAUDRATE _UxGT("ボーレート") // "Baud"
#define MSG_INFO_PROTOCOL _UxGT("プロトコル") // "Protocol"
#define MSG_CASE_LIGHT _UxGT("キョウタイナイショウメイ") // "Case light"
#define MSG_INFO_PRINT_COUNT _UxGT("プリントスウ ") // "Print Count"
#define MSG_INFO_COMPLETED_PRINTS _UxGT("カンリョウスウ") // "Completed"
#define MSG_INFO_PRINT_TIME _UxGT("プリントジカンルイケイ") // "Total print time"
#define MSG_INFO_PRINT_LONGEST _UxGT("サイチョウプリントジカン") // "Longest job time"
#define MSG_INFO_PRINT_FILAMENT _UxGT("フィラメントシヨウリョウルイケイ") // "Extruded total"
#define MSG_INFO_MIN_TEMP _UxGT("セッテイサイテイオン") // "Min Temp"
#define MSG_INFO_MAX_TEMP _UxGT("セッテイサイコウオン") // "Max Temp"
#define MSG_INFO_PSU _UxGT("デンゲンシュベツ") // "Power Supply"
#define MSG_DRIVE_STRENGTH _UxGT("モータークドウリョク") // "Drive Strength"
#define MSG_DAC_PERCENT _UxGT("DACシュツリョク %") // "Driver %"
#define MSG_DAC_EEPROM_WRITE MSG_STORE_EEPROM // "DAC EEPROM Write"
#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("イチジテイシ")
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("プリントサイカイ") // "Resume print"
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("コウカンヲカイシシマス") // "Wait for start"
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("シバラクオマチクダサイ") // "of the filament"
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("フィラメントヌキダシチュウ") // "Wait for"
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("シバラクオマチクダサイ") // "filament unload"
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("フィラメントヲソウニュウシ,") // "Insert filament"
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("クリックスルトゾッコウシマス") // "and press button"
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("フィラメントソウテンチュウ") // "Wait for"
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("シバラクオマチクダサイ") // "filament load"
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("プリントヲサイカイシマス") // "Wait for print"
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("シバラクオマチクダサイ") // "to resume"
#define MSG_EXPECTED_PRINTER _UxGT("マチガッタプリンター") // "Wrong printer" // 片仮名表示定義
PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" ジュンビカンリョウ");
PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("メディアガソウニュウサレマシタ"); // "Card inserted"
PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("メディアガアリマセン"); // "Card removed"
PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("メディアノトリダシ");
PROGMEM Language_Str MSG_MEDIA_RELEASED = _UxGT("メディアガアリマセン"); // "Card removed"
PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("エンドストップ"); // "Endstops" // Max length 8 characters
PROGMEM Language_Str MSG_MAIN = _UxGT("メイン"); // "Main"
PROGMEM Language_Str MSG_AUTOSTART = _UxGT("ジドウカイシ"); // "Autostart"
PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("モーターデンゲン オフ"); // "Disable steppers"
PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("デバッグメニュー"); // "Debug Menu"
PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("プログレスバー テスト"); // "Progress Bar Test"
PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("ゲンテンフッキ"); // "Auto home"
PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Xジク ゲンテンフッキ"); // "Home X"
PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Yジク ゲンテンフッキ"); // "Home Y"
PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Zジク ゲンテンフッキ"); // "Home Z"
PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("ゲンテンフッキチュウ"); // "Homing XYZ"
PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("レベリングカイシ"); // "Click to Begin"
PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("ツギノソクテイテンヘ"); // "Next Point"
PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("レベリングカンリョウ"); // "Leveling Done!"
PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("キジュンオフセットセッテイ"); // "Set home offsets"
PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("オフセットガテキヨウサレマシタ"); // "Offsets applied"
PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("キジュンセット"); // "Set origin"
PROGMEM Language_Str MSG_PREHEAT_1 = PREHEAT_1_LABEL _UxGT(" ヨネツ"); // "Preheat " PREHEAT_1_LABEL
PROGMEM Language_Str MSG_PREHEAT_1_H0 = PREHEAT_1_LABEL _UxGT(" ヨネツ ") LCD_STR_N0; // "Preheat " PREHEAT_1_LABEL
PROGMEM Language_Str MSG_PREHEAT_1_H1 = PREHEAT_1_LABEL _UxGT(" ヨネツ ") LCD_STR_N1; // "Preheat " PREHEAT_1_LABEL
PROGMEM Language_Str MSG_PREHEAT_1_H2 = PREHEAT_1_LABEL _UxGT(" ヨネツ ") LCD_STR_N2; // "Preheat " PREHEAT_1_LABEL
PROGMEM Language_Str MSG_PREHEAT_1_H3 = PREHEAT_1_LABEL _UxGT(" ヨネツ ") LCD_STR_N3; // "Preheat " PREHEAT_1_LABEL
PROGMEM Language_Str MSG_PREHEAT_1_H4 = PREHEAT_1_LABEL _UxGT(" ヨネツ ") LCD_STR_N4; // "Preheat " PREHEAT_1_LABEL
PROGMEM Language_Str MSG_PREHEAT_1_H5 = PREHEAT_1_LABEL _UxGT(" ヨネツ ") LCD_STR_N5; // "Preheat " PREHEAT_1_LABEL
PROGMEM Language_Str MSG_PREHEAT_1_END = PREHEAT_1_LABEL _UxGT(" ヨネツノズル"); // " Nozzle"
PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = PREHEAT_1_LABEL _UxGT(" ヨネツノズル ") LCD_STR_N0; // " Nozzle"
PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = PREHEAT_1_LABEL _UxGT(" ヨネツノズル ") LCD_STR_N1; // " Nozzle"
PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = PREHEAT_1_LABEL _UxGT(" ヨネツノズル ") LCD_STR_N2; // " Nozzle"
PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = PREHEAT_1_LABEL _UxGT(" ヨネツノズル ") LCD_STR_N3; // " Nozzle"
PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = PREHEAT_1_LABEL _UxGT(" ヨネツノズル ") LCD_STR_N4; // " Nozzle"
PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = PREHEAT_1_LABEL _UxGT(" ヨネツノズル ") LCD_STR_N5; // " Nozzle"
PROGMEM Language_Str MSG_PREHEAT_1_ALL = PREHEAT_1_LABEL _UxGT(" スベテヨネツ"); // " All"
PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = PREHEAT_1_LABEL _UxGT(" ベッドヨネツ"); // " Bed"
PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = PREHEAT_1_LABEL _UxGT(" ヨネツセッテイ"); // " conf"
PROGMEM Language_Str MSG_PREHEAT_2 = PREHEAT_2_LABEL _UxGT(" ヨネツ"); // "Preheat " PREHEAT_1_LABEL
PROGMEM Language_Str MSG_PREHEAT_2_H0 = PREHEAT_2_LABEL _UxGT(" ヨネツ ") LCD_STR_N0; // "Preheat " PREHEAT_1_LABEL
PROGMEM Language_Str MSG_PREHEAT_2_H1 = PREHEAT_2_LABEL _UxGT(" ヨネツ ") LCD_STR_N1; // "Preheat " PREHEAT_1_LABEL
PROGMEM Language_Str MSG_PREHEAT_2_H2 = PREHEAT_2_LABEL _UxGT(" ヨネツ ") LCD_STR_N2; // "Preheat " PREHEAT_1_LABEL
PROGMEM Language_Str MSG_PREHEAT_2_H3 = PREHEAT_2_LABEL _UxGT(" ヨネツ ") LCD_STR_N3; // "Preheat " PREHEAT_1_LABEL
PROGMEM Language_Str MSG_PREHEAT_2_H4 = PREHEAT_2_LABEL _UxGT(" ヨネツ ") LCD_STR_N4; // "Preheat " PREHEAT_1_LABEL
PROGMEM Language_Str MSG_PREHEAT_2_H5 = PREHEAT_2_LABEL _UxGT(" ヨネツ ") LCD_STR_N5; // "Preheat " PREHEAT_1_LABEL
PROGMEM Language_Str MSG_PREHEAT_2_END = PREHEAT_2_LABEL _UxGT(" ヨネツノズル"); // " Nozzle"
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = PREHEAT_2_LABEL _UxGT(" ヨネツノズル ") LCD_STR_N0; // " Nozzle"
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = PREHEAT_2_LABEL _UxGT(" ヨネツノズル ") LCD_STR_N1; // " Nozzle"
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = PREHEAT_2_LABEL _UxGT(" ヨネツノズル ") LCD_STR_N2; // " Nozzle"
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = PREHEAT_2_LABEL _UxGT(" ヨネツノズル ") LCD_STR_N3; // " Nozzle"
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = PREHEAT_2_LABEL _UxGT(" ヨネツノズル ") LCD_STR_N4; // " Nozzle"
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = PREHEAT_2_LABEL _UxGT(" ヨネツノズル ") LCD_STR_N5; // " Nozzle"
PROGMEM Language_Str MSG_PREHEAT_2_ALL = PREHEAT_2_LABEL _UxGT(" スベテヨネツ"); // " All"
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = PREHEAT_2_LABEL _UxGT(" ベッドヨネツ"); // " Bed"
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = PREHEAT_2_LABEL _UxGT(" ヨネツセッテイ"); // " conf"
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("カネツテイシ"); // "Cooldown"
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("デンゲン オン"); // "Switch power on"
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("デンゲン オフ"); // "Switch power off"
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("オシダシ"); // "Extrude"
PROGMEM Language_Str MSG_RETRACT = _UxGT("ヒキコミセッテイ"); // "Retract"
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("ジクイドウ"); // "Move axis"
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("ベッドレベリング"); // "Bed leveling"
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("ベッドレベリング"); // "Level bed"
#define MSG_CONFIGURATION _UxGT("セッテイカンリ") PROGMEM Language_Str MSG_MOVING = _UxGT("イドウチュウ"); // "Moving..."
#define MSG_ADVANCED_SETTINGS _UxGT("ショウサイセッテイ") PROGMEM Language_Str MSG_FREE_XY = _UxGT("XYジク カイホウ"); // "Free XY"
#define MSG_OUTAGE_RECOVERY _UxGT("コショカイフク") PROGMEM Language_Str MSG_MOVE_X = _UxGT("Xジク イドウ"); // "Move X"
#define MSG_INIT_EEPROM _UxGT("EEPROMショキカ") PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Yジク イドウ"); // "Move Y"
PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Zジク イドウ"); // "Move Z"
PROGMEM Language_Str MSG_MOVE_E = _UxGT("エクストルーダー"); // "Extruder"
PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("%smm イドウ"); // "Move 0.025mm"
PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("0.1mm イドウ"); // "Move 0.1mm"
PROGMEM Language_Str MSG_MOVE_1MM = _UxGT(" 1mm イドウ"); // "Move 1mm"
PROGMEM Language_Str MSG_MOVE_10MM = _UxGT(" 10mm イドウ"); // "Move 10mm"
PROGMEM Language_Str MSG_SPEED = _UxGT("ソクド"); // "Speed"
PROGMEM Language_Str MSG_BED_Z = _UxGT("Zオフセット"); // "Bed Z"
PROGMEM Language_Str MSG_NOZZLE = _UxGT("ノズル"); // "Nozzle"
PROGMEM Language_Str MSG_BED = _UxGT("ベッド"); // "Bed"
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("ファンソクド"); // "Fan speed"
PROGMEM Language_Str MSG_FLOW = _UxGT("トシュツリョウ"); // "Flow"
PROGMEM Language_Str MSG_CONTROL = _UxGT("セイギョ"); // "Control"
PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" サイテイ"); // " Min"
PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" サイコウ"); // " Max"
PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" ファクター"); // " Fact"
PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("ジドウオンドセイギョ"); // "Autotemp"
PROGMEM Language_Str MSG_LCD_ON = _UxGT("オン"); // "On"
PROGMEM Language_Str MSG_LCD_OFF = _UxGT("オフ"); // "Off"
PROGMEM Language_Str MSG_PID_P = _UxGT("PID-P");
PROGMEM Language_Str MSG_PID_P_E0 = _UxGT("PID-P ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_P_E1 = _UxGT("PID-P ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_P_E2 = _UxGT("PID-P ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_P_E3 = _UxGT("PID-P ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_P_E4 = _UxGT("PID-P ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_P_E5 = _UxGT("PID-P ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_I = _UxGT("PID-I");
PROGMEM Language_Str MSG_PID_I_E0 = _UxGT("PID-I ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_I_E1 = _UxGT("PID-I ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_I_E2 = _UxGT("PID-I ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_I_E3 = _UxGT("PID-I ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_I_E4 = _UxGT("PID-I ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_I_E5 = _UxGT("PID-I ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_D = _UxGT("PID-D");
PROGMEM Language_Str MSG_PID_D_E0 = _UxGT("PID-D ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_D_E1 = _UxGT("PID-D ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_D_E2 = _UxGT("PID-D ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_D_E3 = _UxGT("PID-D ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_D_E4 = _UxGT("PID-D ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_D_E5 = _UxGT("PID-D ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_C = _UxGT("PID-C");
PROGMEM Language_Str MSG_PID_C_E0 = _UxGT("PID-C ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_C_E1 = _UxGT("PID-C ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_C_E2 = _UxGT("PID-C ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_C_E3 = _UxGT("PID-C ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_C_E4 = _UxGT("PID-C ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_C_E5 = _UxGT("PID-C ") LCD_STR_E5;
PROGMEM Language_Str MSG_SELECT = _UxGT("センタク"); // "Select"
PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("センタク ") LCD_STR_E0;
PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("センタク ") LCD_STR_E1;
PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("センタク ") LCD_STR_E2;
PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("センタク ") LCD_STR_E3;
PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("センタク ") LCD_STR_E4;
PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("センタク ") LCD_STR_E5;
PROGMEM Language_Str MSG_ACC = _UxGT("カソクド mm/s²"); // "Accel"
PROGMEM Language_Str MSG_JERK = _UxGT("ヤクドウ mm/s"); // "Jerk"
PROGMEM Language_Str MSG_VA_JERK = _UxGT("ジク ヤクドウ mm/s") LCD_STR_A; // "Va-jerk"
PROGMEM Language_Str MSG_VB_JERK = _UxGT("ジク ヤクドウ mm/s") LCD_STR_B; // "Vb-jerk"
PROGMEM Language_Str MSG_VC_JERK = _UxGT("ジク ヤクドウ mm/s") LCD_STR_C; // "Vc-jerk"
PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("ステップ/mm");
PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("ステップ/mm");
PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("ステップ/mm");
PROGMEM Language_Str MSG_VE_JERK = _UxGT("エクストルーダー ヤクド"); // "Ve-jerk"
PROGMEM Language_Str MSG_VMAX_A = _UxGT("サイダイオクリソクド ") LCD_STR_A; // "Vmax A"
PROGMEM Language_Str MSG_VMAX_B = _UxGT("サイダイオクリソクド ") LCD_STR_A; // "Vmax B"
PROGMEM Language_Str MSG_VMAX_C = _UxGT("サイダイオクリソクド ") LCD_STR_A; // "Vmax C"
PROGMEM Language_Str MSG_VMAX_E = _UxGT("サイダイオクリソクド ") LCD_STR_A; // "Vmax E"
PROGMEM Language_Str MSG_VMAX_E0 = _UxGT("サイダイオクリソクド ") LCD_STR_E0; // "Vmax E1"
PROGMEM Language_Str MSG_VMAX_E1 = _UxGT("サイダイオクリソクド ") LCD_STR_E1; // "Vmax E2"
PROGMEM Language_Str MSG_VMAX_E2 = _UxGT("サイダイオクリソクド ") LCD_STR_E2; // "Vmax E3"
PROGMEM Language_Str MSG_VMAX_E3 = _UxGT("サイダイオクリソクド ") LCD_STR_E3; // "Vmax E4"
PROGMEM Language_Str MSG_VMAX_E4 = _UxGT("サイダイオクリソクド ") LCD_STR_E4; // "Vmax E5"
PROGMEM Language_Str MSG_VMAX_E5 = _UxGT("サイダイオクリソクド ") LCD_STR_E5; // "Vmax E6"
PROGMEM Language_Str MSG_VMIN = _UxGT("サイショウオクリソクド"); // "Vmin"
PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("サイショウイドウソクド"); // "VTrav min"
PROGMEM Language_Str MSG_ACCELERATION = _UxGT("カソクド mm/s²"); // "Accel"
PROGMEM Language_Str MSG_AMAX = _UxGT("サイダイカソクド "); // "Amax "
PROGMEM Language_Str MSG_A_RETRACT = _UxGT("ヒキコミカソクド"); // "A-retract"
PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("イドウカソクド"); // "A-travel"
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("オンド"); // "Temperature"
PROGMEM Language_Str MSG_MOTION = _UxGT("ウゴキセッテイ"); // "Motion"
PROGMEM Language_Str MSG_FILAMENT = _UxGT("フィラメント"); // "Filament"
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E in mm³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("フィラメントチョッケイ"); // "Fil. Dia."
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("フィラメントチョッケイ ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("フィラメントチョッケイ ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("フィラメントチョッケイ ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("フィラメントチョッケイ ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("フィラメントチョッケイ ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("フィラメントチョッケイ ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("LCDコントラスト"); // "LCD contrast"
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("EEPROMヘホゾン"); // "Store memory"
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("EEPROMカラヨミコミ"); // "Load memory"
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("セッテイリセット"); // "Restore failsafe"
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("リフレッシュ"); // "Refresh"
PROGMEM Language_Str MSG_WATCH = _UxGT("ジョウホウガメン"); // "Info screen"
PROGMEM Language_Str MSG_PREPARE = _UxGT("ジュンビセッテイ"); // "Prepare"
PROGMEM Language_Str MSG_TUNE = _UxGT("チョウセイ"); // "Tune"
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("イチジテイシ"); // "Pause print"
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("プリントサイカイ"); // "Resume print"
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("プリントテイシ"); // "Stop print"
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("メディアカラプリント"); // "Print from SD"
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("メディアガアリマセン"); // "Card removed"
PROGMEM Language_Str MSG_DWELL = _UxGT("キュウシ"); // "Sleep..."
PROGMEM Language_Str MSG_USERWAIT = _UxGT("ツヅケルニハクリックシテクダサイ"); // "Wait for user..."
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("プリントガチュウシサレマシタ"); // "Print aborted"
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("ウゴキマセン"); // "No move."
PROGMEM Language_Str MSG_KILLED = _UxGT("ヒジョウテイシ"); // "KILLED. "
PROGMEM Language_Str MSG_STOPPED = _UxGT("テイシシマシタ"); // "STOPPED. "
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("ヒキコミリョウ mm"); // "Retract mm"
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("ヒキコミリョウS mm"); // "Swap Re.mm"
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("ヒキコミソクド mm/s"); // "Retract V"
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("ノズルタイヒ mm"); // "Hop mm"
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("ホショウリョウ mm"); // "UnRet mm"
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("ホショウリョウS mm"); // "S UnRet mm"
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("ホショウソクド mm/s"); // "UnRet V"
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("ジドウヒキコミ"); // "AutoRetr."
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("フィラメントコウカン"); // "Change filament"
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("メディアサイヨミコミ"); // "Init. SD card"
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("メディアコウカン"); // "Change SD card"
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Zプローブ ベッドガイ"); // "Z probe out. bed"
PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("BLTouch ジコシンダン"); // "BLTouch Self-Test"
PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("BLTouch リセット"); // "Reset BLTouch"
PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("サキニ %s%s%s ヲフッキサセテクダサイ"); // "Home ... first"
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Zオフセット"); // "Z Offset"
PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Xジク ビドウ"); // "Babystep X"
PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Yジク ビドウ"); // "Babystep Y"
PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Zジク ビドウ"); // "Babystep Z"
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("イドウゲンカイケンチキノウ"); // "Endstop abort"
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("カネツシッパイ"); // "Heating failed"
PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("エラー:ジョウチョウサーミスターキノウ"); // "Err: REDUNDANT TEMP"
PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("ネツボウソウ"); // "THERMAL RUNAWAY"
PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("エラー:サイコウオンチョウカ"); // "Err: MAXTEMP"
PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("エラー:サイテイオンミマン"); // "Err: MINTEMP"
PROGMEM Language_Str MSG_ERR_MAXTEMP_BED = _UxGT("エラー:ベッド サイコウオンチョウカ"); // "Err: MAXTEMP BED"
PROGMEM Language_Str MSG_ERR_MINTEMP_BED = _UxGT("エラー:ベッド サイテイオンミマン"); // "Err: MINTEMP BED"
PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("サキニ XY ヲフッキサセテクダサイ"); // "Home XY first"
PROGMEM Language_Str MSG_HALTED = _UxGT("プリンターハテイシシマシタ"); // "PRINTER HALTED"
PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("リセットシテクダサイ"); // "Please reset"
PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("d"); // One character only
PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("h"); // One character only
PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("m"); // One character only
PROGMEM Language_Str MSG_HEATING = _UxGT("カネツチュウ"); // "Heating..."
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("ベッド カネツチュウ"); // "Bed Heating..."
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("デルタ コウセイ"); // "Delta Calibration"
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Xジク コウセイ"); // "Calibrate X"
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Yジク コウセイ"); // "Calibrate Y"
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Zジク コウセイ"); // "Calibrate Z"
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("チュウシン コウセイ"); // "Calibrate Center"
PROGMEM Language_Str MSG_INFO_MENU = _UxGT("コノプリンターニツイテ"); // "About Printer"
PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("プリンタージョウホウ"); // "Printer Info"
PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("プリントジョウキョウ"); // "Printer Stats"
PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("セイギョケイジョウホウ"); // "Board Info"
PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("サーミスター"); // "Thermistors"
PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("エクストルーダースウ"); // "Extruders"
PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("ボーレート"); // "Baud"
PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("プロトコル"); // "Protocol"
PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("キョウタイナイショウメイ"); // "Case light"
PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("プリントスウ "); // "Print Count"
PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("カンリョウスウ"); // "Completed"
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("プリントジカンルイケイ"); // "Total print time"
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("サイチョウプリントジカン"); // "Longest job time"
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("フィラメントシヨウリョウルイケイ"); // "Extruded total"
PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("セッテイサイテイオン"); // "Min Temp"
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("セッテイサイコウオン"); // "Max Temp"
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("デンゲンシュベツ"); // "Power Supply"
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("モータークドウリョク"); // "Drive Strength"
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("DACシュツリョク %"); // "Driver %"
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("EEPROMヘホゾン"); // "Store memory"
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("イチジテイシ");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("プリントサイカイ"); // "Resume print"
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_2_LINE("コウカンヲカイシシマス", "シバラクオマチクダサイ")); // "Wait for start of the filament"
PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("フィラメントヌキダシチュウ", "シバラクオマチクダサイ")); // "Wait for filament unload"
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_2_LINE("フィラメントヲソウニュウシ,", "クリックスルトゾッコウシマス")); // "Insert filament and press button"
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("フィラメントソウテンチュウ", "シバラクオマチクダサイ")); // "Wait for filament load"
PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("プリントヲサイカイシマス", "シバラクオマチクダサイ")); // "Wait for print to resume"
#define MSG_BUTTON_NEXT _UxGT("ツギヘ") PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("マチガッタプリンター"); // "Wrong printer"
#define MSG_BUTTON_INIT _UxGT("ショキカ")
#define MSG_BUTTON_STOP _UxGT("ストップ")
#define MSG_BUTTON_PRINT _UxGT("プリント")
#define MSG_BUTTON_RESET _UxGT("リセット")
#define MSG_BUTTON_CANCEL _UxGT("キャンセル")
#define MSG_BUTTON_DONE _UxGT("カンリョウ")
#define MSG_YES _UxGT("ハイ") PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("セッテイカンリ");
#define MSG_NO _UxGT("イイエ") PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("ショウサイセッテイ");
#define MSG_BACK _UxGT("モドリ") PROGMEM Language_Str MSG_OUTAGE_RECOVERY = _UxGT("コショカイフク");
#define MSG_VELOCITY _UxGT("ソクド") PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("EEPROMショキカ");
#define MSG_STEPS_PER_MM _UxGT("ステップ/mm")
#define MSG_USER_MENU _UxGT("ユーザーコマンド") PROGMEM Language_Str MSG_BUTTON_NEXT = _UxGT("ツギヘ");
#define MSG_PRINT_PAUSED _UxGT("プリントガイチジテイシサレマシタ") PROGMEM Language_Str MSG_BUTTON_INIT = _UxGT("ショキカ");
#define MSG_PRINTING _UxGT("プリントチュウ...") PROGMEM Language_Str MSG_BUTTON_STOP = _UxGT("ストップ");
PROGMEM Language_Str MSG_BUTTON_PRINT = _UxGT("プリント");
PROGMEM Language_Str MSG_BUTTON_RESET = _UxGT("リセット");
PROGMEM Language_Str MSG_BUTTON_CANCEL = _UxGT("キャンセル");
PROGMEM Language_Str MSG_BUTTON_DONE = _UxGT("カンリョウ");
PROGMEM Language_Str MSG_YES = _UxGT("ハイ");
PROGMEM Language_Str MSG_NO = _UxGT("イイエ");
PROGMEM Language_Str MSG_BACK = _UxGT("モドリ");
PROGMEM Language_Str MSG_VELOCITY = _UxGT("ソクド");
PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("ステップ/mm");
PROGMEM Language_Str MSG_USER_MENU = _UxGT("ユーザーコマンド");
PROGMEM Language_Str MSG_PRINT_PAUSED = _UxGT("プリントガイチジテイシサレマシタ");
PROGMEM Language_Str MSG_PRINTING = _UxGT("プリントチュウ...");
}

View file

@ -28,386 +28,106 @@
* See also http://marlinfw.org/docs/development/lcd_language.html * See also http://marlinfw.org/docs/development/lcd_language.html
* *
*/ */
namespace Language_ko_KR {
using namespace Language_en; // Inherit undefined strings from English
#define CHARSIZE 1 constexpr uint8_t CHARSIZE = 1;
PROGMEM Language_Str LANGUAGE = _UxGT("Korean");
#define WELCOME_MSG MACHINE_NAME _UxGT(" 준비.") PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" 준비.");
#define MSG_BACK _UxGT("뒤로") PROGMEM Language_Str MSG_BACK = _UxGT("뒤로");
#define MSG_MEDIA_INSERTED _UxGT("카드 삽입됨") PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("카드 삽입됨");
#define MSG_MEDIA_REMOVED _UxGT("카드 제거됨") PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("카드 제거됨");
#define MSG_LCD_ENDSTOPS _UxGT("엔드스탑") PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("엔드스탑");
#define MSG_LCD_SOFT_ENDSTOPS _UxGT("소프트 엔드스탑") PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("소프트 엔드스탑");
#define MSG_MAIN _UxGT("뒤로") PROGMEM Language_Str MSG_MAIN = _UxGT("뒤로");
#define MSG_ADVANCED_SETTINGS _UxGT("고급 설정") PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("고급 설정");
#define MSG_CONFIGURATION _UxGT("설정") PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("설정");
#define MSG_AUTOSTART _UxGT("자동 시작") PROGMEM Language_Str MSG_AUTOSTART = _UxGT("자동 시작");
#define MSG_DISABLE_STEPPERS _UxGT("모터 정지") PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("모터 정지");
#define MSG_DEBUG_MENU _UxGT("디버깅 메뉴") PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("디버깅 메뉴");
#define MSG_PROGRESS_BAR_TEST _UxGT("프로그레스바 테스트") PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("프로그레스바 테스트");
#define MSG_AUTO_HOME _UxGT("오토홈") PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("오토홈");
#define MSG_AUTO_HOME_X _UxGT("X 홈으로") PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("X 홈으로");
#define MSG_AUTO_HOME_Y _UxGT("Y 홈으로") PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Y 홈으로");
#define MSG_AUTO_HOME_Z _UxGT("Z 홈으로") PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Z 홈으로");
#define MSG_LEVEL_BED_HOMING _UxGT("XYZ 홈으로") PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("XYZ 홈으로");
#define MSG_LEVEL_BED_WAITING _UxGT("누르면 시작합니다") PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("누르면 시작합니다");
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("다음 Point") PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("다음 Point");
#define MSG_LEVEL_BED_DONE _UxGT("레벨링 완료!") PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("레벨링 완료!");
//#define MSG_Z_FADE_HEIGHT _UxGT("Fade Height") PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("예열하기 - ") PREHEAT_1_LABEL;
//#define MSG_SET_HOME_OFFSETS _UxGT("Set home offsets") PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("예열하기 - ") PREHEAT_1_LABEL " " LCD_STR_N0;
//#define MSG_HOME_OFFSETS_APPLIED _UxGT("Offsets applied") PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("예열하기 - ") PREHEAT_1_LABEL " " LCD_STR_N1;
//#define MSG_SET_ORIGIN _UxGT("Set origin") PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("예열하기 - ") PREHEAT_1_LABEL " " LCD_STR_N2;
#define MSG_PREHEAT_1 _UxGT("예열하기 - " PREHEAT_1_LABEL) PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("예열하기 - ") PREHEAT_1_LABEL " " LCD_STR_N3;
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ") PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("예열하기 - ") PREHEAT_1_LABEL " " LCD_STR_N4;
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" 모두") PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("예열하기 - ") PREHEAT_1_LABEL " " LCD_STR_N5;
#define MSG_PREHEAT_1_END MSG_PREHEAT_1 _UxGT(" 노즐만") PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("예열하기 - ") PREHEAT_1_LABEL _UxGT(" 노즐");
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" 베드만") PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("예열하기 - ") PREHEAT_1_LABEL _UxGT(" 노즐 ") LCD_STR_N0;
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" conf") PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("예열하기 - ") PREHEAT_1_LABEL _UxGT(" 노즐 ") LCD_STR_N1;
#define MSG_PREHEAT_2 _UxGT("예열하기 - " PREHEAT_2_LABEL) PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("예열하기 - ") PREHEAT_1_LABEL _UxGT(" 노즐 ") LCD_STR_N2;
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ") PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("예열하기 - ") PREHEAT_1_LABEL _UxGT(" 노즐 ") LCD_STR_N3;
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" 모두") PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("예열하기 - ") PREHEAT_1_LABEL _UxGT(" 노즐 ") LCD_STR_N4;
#define MSG_PREHEAT_2_END MSG_PREHEAT_2 _UxGT(" 노즐만") PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("예열하기 - ") PREHEAT_1_LABEL _UxGT(" 노즐 ") LCD_STR_N5;
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" 베드만") PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("예열하기 - ") PREHEAT_2_LABEL;
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" conf") PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("예열하기 - ") PREHEAT_2_LABEL " " LCD_STR_N0;
#define MSG_PREHEAT_CUSTOM _UxGT("Custom 예열") PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("예열하기 - ") PREHEAT_2_LABEL " " LCD_STR_N1;
#define MSG_COOLDOWN _UxGT("식히기") PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("예열하기 - ") PREHEAT_2_LABEL " " LCD_STR_N2;
#define MSG_SWITCH_PS_ON _UxGT("스위치 전원 켜기") PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("예열하기 - ") PREHEAT_2_LABEL " " LCD_STR_N3;
#define MSG_SWITCH_PS_OFF _UxGT("스위치 전원 끄기") PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("예열하기 - ") PREHEAT_2_LABEL " " LCD_STR_N4;
#define MSG_EXTRUDE _UxGT("밀어내기") PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("예열하기 - ") PREHEAT_2_LABEL " " LCD_STR_N5;
#define MSG_RETRACT _UxGT("당기기") PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("예열하기 - ") PREHEAT_2_LABEL _UxGT(" 노즐");
#define MSG_MOVE_AXIS _UxGT("축 이동") PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("예열하기 - ") PREHEAT_2_LABEL _UxGT(" 노즐 ") LCD_STR_N0;
#define MSG_BED_LEVELING _UxGT("베드 레벨링") PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("예열하기 - ") PREHEAT_2_LABEL _UxGT(" 노즐 ") LCD_STR_N1;
//#define MSG_LEVEL_BED _UxGT("Level bed") PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("예열하기 - ") PREHEAT_2_LABEL _UxGT(" 노즐 ") LCD_STR_N2;
//#define MSG_LEVEL_CORNERS _UxGT("Level corners") PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("예열하기 - ") PREHEAT_2_LABEL _UxGT(" 노즐 ") LCD_STR_N3;
//#define MSG_NEXT_CORNER _UxGT("Next corner") PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("예열하기 - ") PREHEAT_2_LABEL _UxGT(" 노즐 ") LCD_STR_N4;
//#define MSG_EDIT_MESH _UxGT("Edit Mesh") PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("예열하기 - ") PREHEAT_2_LABEL _UxGT(" 노즐 ") LCD_STR_N5;
//#define MSG_EDITING_STOPPED _UxGT("Mesh Editing Stopped") PROGMEM Language_Str MSG_PREHEAT_CUSTOM = _UxGT("Custom 예열");
//#define MSG_USER_MENU _UxGT("Custom User Commands") PROGMEM Language_Str MSG_COOLDOWN = _UxGT("식히기");
//#define MSG_IDEX_MENU _UxGT("IDEX Mode") PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("스위치 전원 켜기");
//#define MSG_IDEX_MODE_AUTOPARK _UxGT("Auto-Park") PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("스위치 전원 끄기");
//#define MSG_IDEX_MODE_DUPLICATE _UxGT("Duplication") PROGMEM Language_Str MSG_EXTRUDE = _UxGT("밀어내기");
#define MSG_IDEX_MODE_MIRRORED_COPY _UxGT("미러 사본") PROGMEM Language_Str MSG_RETRACT = _UxGT("당기기");
//#define MSG_IDEX_MODE_FULL_CTRL _UxGT("Full control") PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("축 이동");
//#define MSG_X_OFFSET _UxGT("2nd nozzle X") PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("베드 레벨링");
//#define MSG_Y_OFFSET _UxGT("2nd nozzle Y") PROGMEM Language_Str MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("미러 사본");
//#define MSG_Z_OFFSET _UxGT("2nd nozzle Z") PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("오토레벨링 하기");
#define MSG_UBL_DOING_G29 _UxGT("오토레벨링 하기") PROGMEM Language_Str MSG_NOZZLE = _UxGT("노즐");
//#define MSG_UBL_TOOLS _UxGT("UBL Tools") PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("노즐 ") LCD_STR_N0;
//#define MSG_UBL_LEVEL_BED _UxGT("Unified Bed Leveling") PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("노즐 ") LCD_STR_N1;
//#define MSG_UBL_MANUAL_MESH _UxGT("Manually Build Mesh") PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("노즐 ") LCD_STR_N2;
//#define MSG_UBL_BC_INSERT _UxGT("Place shim & measure") PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("노즐 ") LCD_STR_N3;
//#define MSG_UBL_BC_INSERT2 _UxGT("Measure") PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("노즐 ") LCD_STR_N4;
//#define MSG_UBL_BC_REMOVE _UxGT("Remove & measure bed") PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("노즐 ") LCD_STR_N5;
//#define MSG_UBL_MOVING_TO_NEXT _UxGT("Moving to next") PROGMEM Language_Str MSG_BED = _UxGT("베드");
//#define MSG_UBL_ACTIVATE_MESH _UxGT("Activate UBL") PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("펜 속도");
//#define MSG_UBL_DEACTIVATE_MESH _UxGT("Deactivate UBL") PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("펜 속도 1");
//#define MSG_UBL_SET_TEMP_BED _UxGT("Bed Temp") PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("펜 속도 2");
//#define MSG_UBL_BED_TEMP_CUSTOM MSG_UBL_SET_TEMP_BED PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("펜 속도 3");
//#define MSG_UBL_SET_TEMP_HOTEND _UxGT("Hotend Temp") PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("엑스트라 펜 속도");
//#define MSG_UBL_HOTEND_TEMP_CUSTOM MSG_UBL_SET_TEMP_HOTEND PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_1 = _UxGT("엑스트라 펜 속도 1");
//#define MSG_UBL_MESH_EDIT _UxGT("Mesh Edit") PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_2 = _UxGT("엑스트라 펜 속도 2");
//#define MSG_UBL_EDIT_CUSTOM_MESH _UxGT("Edit Custom Mesh") PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_3 = _UxGT("엑스트라 펜 속도 3");
//#define MSG_UBL_FINE_TUNE_MESH _UxGT("Fine Tuning Mesh") PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("온도");
//#define MSG_UBL_DONE_EDITING_MESH _UxGT("Done Editing Mesh") PROGMEM Language_Str MSG_MOTION = _UxGT("동작");
//#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Build Custom Mesh") PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("설정 저장하기");
//#define MSG_UBL_BUILD_MESH_MENU _UxGT("Build Mesh") PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("설정 읽어오기");
//#define MSG_UBL_BUILD_MESH_M1 _UxGT("Build Mesh (" PREHEAT_1_LABEL ")") PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("설정 되돌리기");
//#define MSG_UBL_BUILD_MESH_M2 _UxGT("Build Mesh (" PREHEAT_2_LABEL ")") PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("EEPROM 초기화");
//#define MSG_UBL_BUILD_COLD_MESH _UxGT("Build Cold Mesh") PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("새로고침");
//#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Adjust Mesh Height") PROGMEM Language_Str MSG_WATCH = _UxGT("처음으로");
//#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Height Amount") PROGMEM Language_Str MSG_PREPARE = _UxGT("준비하기");
//#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("Validate Mesh") PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("일시정지");
//#define MSG_UBL_VALIDATE_MESH_M1 _UxGT("Validate " PREHEAT_1_LABEL " Mesh") PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("재시작");
//#define MSG_UBL_VALIDATE_MESH_M2 _UxGT("Validate Mesh (" PREHEAT_2_LABEL ")") PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("출력중지");
//#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Validate Custom Mesh") PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("SD 카드출력");
//#define MSG_UBL_CONTINUE_MESH _UxGT("Continue Bed Mesh") PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("SD 카드없음");
//#define MSG_UBL_MESH_LEVELING _UxGT("Mesh Leveling") PROGMEM Language_Str MSG_DWELL = _UxGT("슬립모드...");
//#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("3-Point Leveling") PROGMEM Language_Str MSG_PRINT_PAUSED = _UxGT("일시 정지됨");
//#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Grid Mesh Leveling") PROGMEM Language_Str MSG_PRINTING = _UxGT("출력중...");
//#define MSG_UBL_MESH_LEVEL _UxGT("Level Mesh") PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("취소됨");
//#define MSG_UBL_SIDE_POINTS _UxGT("Side Points") PROGMEM Language_Str MSG_KILLED = _UxGT("죽음. ");
//#define MSG_UBL_MAP_TYPE _UxGT("Map Type") PROGMEM Language_Str MSG_STOPPED = _UxGT("멈춤. ");
//#define MSG_UBL_OUTPUT_MAP _UxGT("Output Mesh Map") PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("잘못된 프린터");
//#define MSG_UBL_OUTPUT_MAP_HOST _UxGT("Output for Host") }
//#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Output for CSV")
//#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Off Printer Backup")
//#define MSG_UBL_INFO_UBL _UxGT("Output UBL Info")
//#define MSG_UBL_FILLIN_AMOUNT _UxGT("Fill-in Amount")
//#define MSG_UBL_MANUAL_FILLIN _UxGT("Manual Fill-in")
//#define MSG_UBL_SMART_FILLIN _UxGT("Smart Fill-in")
//#define MSG_UBL_FILLIN_MESH _UxGT("Fill-in Mesh")
//#define MSG_UBL_INVALIDATE_ALL _UxGT("Invalidate All")
//#define MSG_UBL_INVALIDATE_CLOSEST _UxGT("Invalidate Closest")
//#define MSG_UBL_FINE_TUNE_ALL _UxGT("Fine Tune All")
//#define MSG_UBL_FINE_TUNE_CLOSEST _UxGT("Fine Tune Closest")
//#define MSG_UBL_STORAGE_MESH_MENU _UxGT("Mesh Storage")
//#define MSG_UBL_STORAGE_SLOT _UxGT("Memory Slot")
//#define MSG_UBL_LOAD_MESH _UxGT("Load Bed Mesh")
//#define MSG_UBL_SAVE_MESH _UxGT("Save Bed Mesh")
//#define MSG_MESH_LOADED _UxGT("Mesh %i loaded")
//#define MSG_MESH_SAVED _UxGT("Mesh %i saved")
//#define MSG_UBL_NO_STORAGE _UxGT("No storage")
//#define MSG_UBL_SAVE_ERROR _UxGT("Err: UBL Save")
//#define MSG_UBL_RESTORE_ERROR _UxGT("Err: UBL Restore")
//#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Z-Offset Stopped")
//#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("Step-By-Step UBL")
//#define MSG_LED_CONTROL _UxGT("LED Control")
//#define MSG_LEDS _UxGT("Lights")
//#define MSG_LED_PRESETS _UxGT("Light Presets")
//#define MSG_SET_LEDS_RED _UxGT("Red")
//#define MSG_SET_LEDS_ORANGE _UxGT("Orange")
//#define MSG_SET_LEDS_YELLOW _UxGT("Yellow")
//#define MSG_SET_LEDS_GREEN _UxGT("Green")
//#define MSG_SET_LEDS_BLUE _UxGT("Blue")
//#define MSG_SET_LEDS_INDIGO _UxGT("Indigo")
//#define MSG_SET_LEDS_VIOLET _UxGT("Violet")
//#define MSG_SET_LEDS_WHITE _UxGT("White")
//#define MSG_SET_LEDS_DEFAULT _UxGT("Default")
//#define MSG_CUSTOM_LEDS _UxGT("Custom Lights")
//#define MSG_INTENSITY_R _UxGT("Red Intensity")
//#define MSG_INTENSITY_G _UxGT("Green Intensity")
//#define MSG_INTENSITY_B _UxGT("Blue Intensity")
//#define MSG_INTENSITY_W _UxGT("White Intensity")
//#define MSG_LED_BRIGHTNESS _UxGT("Brightness")
//#define MSG_MOVING _UxGT("Moving...")
//#define MSG_FREE_XY _UxGT("Free XY")
//#define MSG_MOVE_X _UxGT("Move X")
//#define MSG_MOVE_Y _UxGT("Move Y")
//#define MSG_MOVE_Z _UxGT("Move Z")
//#define MSG_MOVE_E _UxGT("Extruder")
//#define MSG_MOVE_Z_DIST _UxGT("Move %smm")
//#define MSG_MOVE_01MM _UxGT("Move 0.1mm")
//#define MSG_MOVE_1MM _UxGT("Move 1mm")
//#define MSG_MOVE_10MM _UxGT("Move 10mm")
//#define MSG_SPEED _UxGT("Speed")
//#define MSG_BED_Z _UxGT("Bed Z")
#define MSG_NOZZLE _UxGT("노즐")
#define MSG_BED _UxGT("베드")
#define MSG_FAN_SPEED _UxGT("펜 속도")
#define MSG_EXTRA_FAN_SPEED _UxGT("엑스트라 펜 속도")
//#define MSG_FLOW _UxGT("Flow")
//#define MSG_CONTROL _UxGT("Control")
//#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Min")
//#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Max")
//#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Fact")
//#define MSG_AUTOTEMP _UxGT("Autotemp")
//#define MSG_LCD_ON _UxGT("On")
//#define MSG_LCD_OFF _UxGT("Off")
//#define MSG_PID_P _UxGT("PID-P")
//#define MSG_PID_I _UxGT("PID-I")
//#define MSG_PID_D _UxGT("PID-D")
//#define MSG_PID_C _UxGT("PID-C")
//#define MSG_SELECT _UxGT("Select")
//#define MSG_ACC _UxGT("Accel")
//#define MSG_JERK _UxGT("Jerk")
#if IS_KINEMATIC
//#define MSG_VA_JERK _UxGT("Va-jerk")
//#define MSG_VB_JERK _UxGT("Vb-jerk")
//#define MSG_VC_JERK _UxGT("Vc-jerk")
#else
//#define MSG_VA_JERK _UxGT("Vx-jerk")
//#define MSG_VB_JERK _UxGT("Vy-jerk")
//#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
//#define MSG_VE_JERK _UxGT("Ve-jerk")
//#define MSG_JUNCTION_DEVIATION _UxGT("Junction Dev")
//#define MSG_VELOCITY _UxGT("Velocity")
//#define MSG_VMAX _UxGT("Vmax ")
//#define MSG_VMIN _UxGT("Vmin")
//#define MSG_VTRAV_MIN _UxGT("VTrav min")
//#define MSG_ACCELERATION _UxGT("Acceleration")
//#define MSG_AMAX _UxGT("Amax ")
//#define MSG_A_RETRACT _UxGT("A-retract")
//#define MSG_A_TRAVEL _UxGT("A-travel")
//#define MSG_STEPS_PER_MM _UxGT("Steps/mm")
#if IS_KINEMATIC
//#define MSG_ASTEPS _UxGT("Asteps/mm")
//#define MSG_BSTEPS _UxGT("Bsteps/mm")
//#define MSG_CSTEPS _UxGT("Csteps/mm")
#else
//#define MSG_ASTEPS _UxGT("Xsteps/mm")
//#define MSG_BSTEPS _UxGT("Ysteps/mm")
//#define MSG_CSTEPS _UxGT("Zsteps/mm")
#endif
//#define MSG_ESTEPS _UxGT("Esteps/mm")
//#define MSG_E0_STEPS _UxGT("E1steps/mm")
//#define MSG_E1_STEPS _UxGT("E2steps/mm")
//#define MSG_E2_STEPS _UxGT("E3steps/mm")
//#define MSG_E3_STEPS _UxGT("E4steps/mm")
//#define MSG_E4_STEPS _UxGT("E5steps/mm")
//#define MSG_E5_STEPS _UxGT("E6steps/mm")
#define MSG_TEMPERATURE _UxGT("온도")
#define MSG_MOTION _UxGT("동작")
//#define MSG_FILAMENT _UxGT("Filament")
//#define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm3")
//#define MSG_FILAMENT_DIAM _UxGT("Fil. Dia.")
//#define MSG_FILAMENT_UNLOAD _UxGT("Unload mm")
//#define MSG_FILAMENT_LOAD _UxGT("Load mm")
//#define MSG_ADVANCE_K _UxGT("Advance K")
//#define MSG_CONTRAST _UxGT("LCD contrast")
#define MSG_STORE_EEPROM _UxGT("설정 저장하기")
#define MSG_LOAD_EEPROM _UxGT("설정 읽어오기")
#define MSG_RESTORE_FAILSAFE _UxGT("설정 되돌리기")
#define MSG_INIT_EEPROM _UxGT("EEPROM 초기화")
#define MSG_REFRESH _UxGT("새로고침")
#define MSG_WATCH _UxGT("처음으로")
#define MSG_PREPARE _UxGT("준비하기")
//#define MSG_TUNE _UxGT("Tune")
#define MSG_PAUSE_PRINT _UxGT("일시정지")
#define MSG_RESUME_PRINT _UxGT("재시작")
#define MSG_STOP_PRINT _UxGT("출력중지")
//#define MSG_OUTAGE_RECOVERY _UxGT("Outage Recovery")
#define MSG_MEDIA_MENU _UxGT("SD 카드출력")
#define MSG_NO_MEDIA _UxGT("SD 카드없음")
#define MSG_DWELL _UxGT("슬립모드...")
//#define MSG_USERWAIT _UxGT("Click to resume...")
#define MSG_PRINT_PAUSED _UxGT("일시 정지됨")
#define MSG_PRINTING _UxGT("출력중...")
#define MSG_PRINT_ABORTED _UxGT("취소됨")
//#define MSG_NO_MOVE _UxGT("No move.")
#define MSG_KILLED _UxGT("죽음. ")
#define MSG_STOPPED _UxGT("멈춤. ")
//#define MSG_CONTROL_RETRACT _UxGT("Retract mm")
//#define MSG_CONTROL_RETRACT_SWAP _UxGT("Swap Re.mm")
//#define MSG_CONTROL_RETRACTF _UxGT("Retract V")
//#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Hop mm")
//#define MSG_CONTROL_RETRACT_RECOVER _UxGT("UnRet mm")
//#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("S UnRet mm")
//#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("UnRet V")
//#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V")
//#define MSG_AUTORETRACT _UxGT("AutoRetr.")
//#define MSG_FILAMENTCHANGE _UxGT("Change filament")
//#define MSG_FILAMENTLOAD _UxGT("Load filament")
//#define MSG_FILAMENTUNLOAD _UxGT("Unload filament")
//#define MSG_FILAMENTUNLOAD_ALL _UxGT("Unload All")
//#define MSG_INIT_MEDIA _UxGT("Init. SD card")
//#define MSG_CHANGE_MEDIA _UxGT("Change SD card")
//#define MSG_ZPROBE_OUT _UxGT("Z Probe past bed")
//#define MSG_SKEW_FACTOR _UxGT("Skew Factor")
//#define MSG_BLTOUCH _UxGT("BLTouch")
//#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch Self-Test")
//#define MSG_BLTOUCH_RESET _UxGT("Reset BLTouch")
//#define MSG_BLTOUCH_DEPLOY _UxGT("Deploy BLTouch")
//#define MSG_BLTOUCH_STOW _UxGT("Stow BLTouch")
//#define MSG_MANUAL_DEPLOY _UxGT("Deploy Z-Probe")
//#define MSG_MANUAL_STOW _UxGT("Stow Z-Probe")
//#define MSG_HOME_FIRST _UxGT("Home %s%s%s first")
//#define MSG_ZPROBE_ZOFFSET _UxGT("Probe Z Offset")
//#define MSG_BABYSTEP_X _UxGT("Babystep X")
//#define MSG_BABYSTEP_Y _UxGT("Babystep Y")
//#define MSG_BABYSTEP_Z _UxGT("Babystep Z")
//#define MSG_ENDSTOP_ABORT _UxGT("Endstop abort")
//#define MSG_HEATING_FAILED_LCD _UxGT("Heating failed")
//#define MSG_HEATING_FAILED_LCD_BED _UxGT("Bed heating failed")
//#define MSG_ERR_REDUNDANT_TEMP _UxGT("Err: REDUNDANT TEMP")
//#define MSG_THERMAL_RUNAWAY _UxGT("THERMAL RUNAWAY")
//#define MSG_THERMAL_RUNAWAY_BED _UxGT("BED THERMAL RUNAWAY")
//#define MSG_ERR_MAXTEMP _UxGT("Err: MAXTEMP")
//#define MSG_ERR_MINTEMP _UxGT("Err: MINTEMP")
//#define MSG_ERR_MAXTEMP_BED _UxGT("Err: MAXTEMP BED")
//#define MSG_ERR_MINTEMP_BED _UxGT("Err: MINTEMP BED")
//#define MSG_ERR_Z_HOMING _UxGT("Home XY first")
//#define MSG_HALTED _UxGT("PRINTER HALTED")
//#define MSG_PLEASE_RESET _UxGT("Please reset")
//#define MSG_SHORT_DAY _UxGT("d") // One character only
//#define MSG_SHORT_HOUR _UxGT("h") // One character only
//#define MSG_SHORT_MINUTE _UxGT("m") // One character only
//#define MSG_HEATING _UxGT("Heating...")
//#define MSG_COOLING _UxGT("Cooling...")
//#define MSG_BED_HEATING _UxGT("Bed heating...")
//#define MSG_BED_COOLING _UxGT("Bed cooling...")
//#define MSG_DELTA_CALIBRATE _UxGT("Delta Calibration")
//#define MSG_DELTA_CALIBRATE_X _UxGT("Calibrate X")
//#define MSG_DELTA_CALIBRATE_Y _UxGT("Calibrate Y")
//#define MSG_DELTA_CALIBRATE_Z _UxGT("Calibrate Z")
//#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Calibrate Center")
//#define MSG_DELTA_SETTINGS _UxGT("Delta Settings")
//#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Auto Calibration")
//#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Set Delta Height")
//#define MSG_DELTA_Z_OFFSET_CALIBRATE _UxGT("Probe Z-offset")
//#define MSG_DELTA_DIAG_ROD _UxGT("Diag Rod")
//#define MSG_DELTA_HEIGHT _UxGT("Height")
//#define MSG_DELTA_RADIUS _UxGT("Radius")
//#define MSG_INFO_MENU _UxGT("About Printer")
//#define MSG_INFO_PRINTER_MENU _UxGT("Printer Info")
//#define MSG_3POINT_LEVELING _UxGT("3-Point Leveling")
//#define MSG_LINEAR_LEVELING _UxGT("Linear Leveling")
//#define MSG_BILINEAR_LEVELING _UxGT("Bilinear Leveling")
//#define MSG_UBL_LEVELING _UxGT("Unified Bed Leveling")
//#define MSG_MESH_LEVELING _UxGT("Mesh Leveling")
//#define MSG_INFO_STATS_MENU _UxGT("Printer Stats")
//#define MSG_INFO_BOARD_MENU _UxGT("Board Info")
//#define MSG_INFO_THERMISTOR_MENU _UxGT("Thermistors")
//#define MSG_INFO_EXTRUDERS _UxGT("Extruders")
//#define MSG_INFO_BAUDRATE _UxGT("Baud")
//#define MSG_INFO_PROTOCOL _UxGT("Protocol")
//#define MSG_CASE_LIGHT _UxGT("Case light")
//#define MSG_CASE_LIGHT_BRIGHTNESS _UxGT("Light Brightness")
#define MSG_EXPECTED_PRINTER _UxGT("잘못된 프린터")
#if LCD_WIDTH >= 20
//#define MSG_INFO_PRINT_COUNT _UxGT("Print Count")
//#define MSG_INFO_COMPLETED_PRINTS _UxGT("Completed")
//#define MSG_INFO_PRINT_TIME _UxGT("Total print time")
//#define MSG_INFO_PRINT_LONGEST _UxGT("Longest job time")
//#define MSG_INFO_PRINT_FILAMENT _UxGT("Extruded total")
#else
//#define MSG_INFO_PRINT_COUNT _UxGT("Prints")
//#define MSG_INFO_COMPLETED_PRINTS _UxGT("Completed")
//#define MSG_INFO_PRINT_TIME _UxGT("Total")
//#define MSG_INFO_PRINT_LONGEST _UxGT("Longest")
//#define MSG_INFO_PRINT_FILAMENT _UxGT("Extruded")
#endif
//#define MSG_INFO_MIN_TEMP _UxGT("Min Temp")
//#define MSG_INFO_MAX_TEMP _UxGT("Max Temp")
//#define MSG_INFO_PSU _UxGT("PSU")
//#define MSG_DRIVE_STRENGTH _UxGT("Drive Strength")
//#define MSG_DAC_PERCENT _UxGT("Driver %")
//#define MSG_DAC_EEPROM_WRITE _UxGT("DAC EEPROM Write")
//#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("PRINT PAUSED")
//#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("LOAD FILAMENT")
//#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("UNLOAD FILAMENT")
//#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("RESUME OPTIONS:")
//#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Purge more")
//#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Continue")
//#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Nozzle: ")
//#define MSG_RUNOUT_SENSOR _UxGT("Runout Sensor")
//#define MSG_ERR_HOMING_FAILED _UxGT("Homing failed")
//#define MSG_ERR_PROBING_FAILED _UxGT("Probing failed")
//#define MSG_M600_TOO_COLD _UxGT("M600: Too cold")
//
// Filament Change screens show up to 3 lines on a 4-line display
// ...or up to 2 lines on a 3-line display
//
#if LCD_HEIGHT >= 4
//#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Wait for start")
//#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("of the filament")
//#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("change")
//#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Wait for")
//#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("filament unload")
//#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Insert filament")
//#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("and press button")
//#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("to continue...")
//#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Press button to")
//#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("heat nozzle.")
//#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Heating nozzle")
//#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Please wait...")
//#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Wait for")
//#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("filament load")
//#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Wait for")
//#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("filament purge")
//#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wait for print")
//#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("to resume")
#else // LCD_HEIGHT < 4
//#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Please wait...")
//#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Ejecting...")
//#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Insert and Click")
//#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Click to heat")
//#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Heating...")
//#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Loading...")
//#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Purging...")
//#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Resuming...")
#endif // LCD_HEIGHT < 4

View file

@ -32,252 +32,270 @@
#define DISPLAY_CHARSET_ISO10646_1 #define DISPLAY_CHARSET_ISO10646_1
#define NOT_EXTENDED_ISO10646_1_5X7 #define NOT_EXTENDED_ISO10646_1_5X7
#define WELCOME_MSG MACHINE_NAME _UxGT(" gereed.") namespace Language_nl {
#define MSG_BACK _UxGT("Terug") using namespace Language_en; // Inherit undefined strings from English
#define MSG_MEDIA_INSERTED _UxGT("Kaart ingestoken")
#define MSG_MEDIA_REMOVED _UxGT("Kaart verwijderd")
#define MSG_LCD_ENDSTOPS _UxGT("Endstops") // Max length 8 characters
#define MSG_MAIN _UxGT("Hoofdmenu")
#define MSG_AUTOSTART _UxGT("Autostart")
#define MSG_DISABLE_STEPPERS _UxGT("Motoren uit")
#define MSG_DEBUG_MENU _UxGT("Debug Menu") //accepted English terms
#define MSG_PROGRESS_BAR_TEST _UxGT("Vooruitgang Test")
#define MSG_AUTO_HOME _UxGT("Auto home")
#define MSG_AUTO_HOME_X _UxGT("Home X")
#define MSG_AUTO_HOME_Y _UxGT("Home Y")
#define MSG_AUTO_HOME_Z _UxGT("Home Z")
#define MSG_LEVEL_BED_HOMING _UxGT("Homing XYZ")
#define MSG_LEVEL_BED_WAITING _UxGT("Klik voor begin")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Volgende Plaats")
#define MSG_LEVEL_BED_DONE _UxGT("Bed level kompl.")
#define MSG_SET_HOME_OFFSETS _UxGT("Zet home offsets")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("H offset toegep.")
#define MSG_SET_ORIGIN _UxGT("Nulpunt instellen")
#define MSG_PREHEAT_1 _UxGT(PREHEAT_1_LABEL " voorverwarmen")
#define MSG_PREHEAT_1_N _UxGT(PREHEAT_1_LABEL " voorverw. ")
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1_N _UxGT("aan")
#define MSG_PREHEAT_1_END MSG_PREHEAT_1 _UxGT(" Einde")
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1_N _UxGT("Bed")
#define MSG_PREHEAT_1_SETTINGS _UxGT(PREHEAT_1_LABEL " verw. conf")
#define MSG_PREHEAT_2 _UxGT(PREHEAT_2_LABEL " voorverwarmen")
#define MSG_PREHEAT_2_N _UxGT(PREHEAT_2_LABEL " voorverw. ")
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2_N _UxGT("aan")
#define MSG_PREHEAT_2_END MSG_PREHEAT_2 _UxGT(" Einde")
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2_N _UxGT("Bed")
#define MSG_PREHEAT_2_SETTINGS _UxGT(PREHEAT_2_LABEL " verw. conf")
#define MSG_COOLDOWN _UxGT("Afkoelen")
#define MSG_SWITCH_PS_ON _UxGT("Stroom aan")
#define MSG_SWITCH_PS_OFF _UxGT("Stroom uit")
#define MSG_EXTRUDE _UxGT("Extrude")
#define MSG_RETRACT _UxGT("Retract")
#define MSG_MOVE_AXIS _UxGT("As verplaatsen")
#define MSG_BED_LEVELING _UxGT("Bed Leveling")
#define MSG_LEVEL_BED _UxGT("Level bed")
#define MSG_MOVING _UxGT("Verplaatsen...") constexpr uint8_t CHARSIZE = 1;
#define MSG_FREE_XY _UxGT("Vrij XY") PROGMEM Language_Str LANGUAGE = _UxGT("Dutch");
#define MSG_MOVE_X _UxGT("Verplaats X")
#define MSG_MOVE_Y _UxGT("Verplaats Y")
#define MSG_MOVE_Z _UxGT("Verplaats Z")
#define MSG_MOVE_E _UxGT("Extruder")
#define MSG_MOVE_Z_DIST _UxGT("Verplaats %smm")
#define MSG_MOVE_01MM _UxGT("Verplaats 0.1mm")
#define MSG_MOVE_1MM _UxGT("Verplaats 1mm")
#define MSG_MOVE_10MM _UxGT("Verplaats 10mm")
#define MSG_SPEED _UxGT("Snelheid")
#define MSG_BED_Z _UxGT("Bed Z")
#define MSG_NOZZLE _UxGT("Nozzle")
#define MSG_BED _UxGT("Bed")
#define MSG_FAN_SPEED _UxGT("Fan snelheid")
#define MSG_FLOW _UxGT("Flow")
#define MSG_CONTROL _UxGT("Control")
#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Min")
#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Max")
#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Fact")
#define MSG_AUTOTEMP _UxGT("Autotemp")
#define MSG_LCD_ON _UxGT("Aan")
#define MSG_LCD_OFF _UxGT("Uit")
#define MSG_PID_P _UxGT("PID-P")
#define MSG_PID_I _UxGT("PID-I")
#define MSG_PID_D _UxGT("PID-D")
#define MSG_PID_C _UxGT("PID-C")
#define MSG_SELECT _UxGT("Selecteer")
#define MSG_ACC _UxGT("Versn")
#define MSG_JERK _UxGT("Jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-jerk")
#define MSG_VB_JERK _UxGT("Vb-jerk")
#define MSG_VC_JERK _UxGT("Vc-jerk")
#else
#define MSG_VA_JERK _UxGT("Vx-jerk")
#define MSG_VB_JERK _UxGT("Vy-jerk")
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin")
#define MSG_VTRAV_MIN _UxGT("VTrav min")
#define MSG_AMAX _UxGT("Amax ")
#define MSG_A_RETRACT _UxGT("A-retract")
#define MSG_A_TRAVEL _UxGT("A-travel")
#define MSG_STEPS_PER_MM _UxGT("Steps/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("Asteps/mm")
#define MSG_BSTEPS _UxGT("Bsteps/mm")
#define MSG_CSTEPS _UxGT("Csteps/mm")
#else
#define MSG_ASTEPS _UxGT("Xsteps/mm")
#define MSG_BSTEPS _UxGT("Ysteps/mm")
#define MSG_CSTEPS _UxGT("Zsteps/mm")
#endif
#define MSG_ESTEPS _UxGT("Esteps/mm")
#define MSG_E0_STEPS _UxGT("E1steps/mm")
#define MSG_E1_STEPS _UxGT("E2steps/mm")
#define MSG_E2_STEPS _UxGT("E3steps/mm")
#define MSG_E3_STEPS _UxGT("E4steps/mm")
#define MSG_E4_STEPS _UxGT("E5steps/mm")
#define MSG_E5_STEPS _UxGT("E6steps/mm")
#define MSG_TEMPERATURE _UxGT("Temperatuur")
#define MSG_MOTION _UxGT("Beweging")
#define MSG_FILAMENT _UxGT("Filament")
#define MSG_ADVANCE_K _UxGT("Advance K") //accepted english dutch
#define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm3")
#define MSG_FILAMENT_DIAM _UxGT("Fil. Dia.")
#define MSG_CONTRAST _UxGT("LCD contrast")
#define MSG_STORE_EEPROM _UxGT("Geheugen opslaan")
#define MSG_LOAD_EEPROM _UxGT("Geheugen laden")
#define MSG_RESTORE_FAILSAFE _UxGT("Noodstop reset")
#define MSG_REFRESH _UxGT("Ververs")
#define MSG_WATCH _UxGT("Info scherm")
#define MSG_PREPARE _UxGT("Voorbereiden")
#define MSG_TUNE _UxGT("Afstellen")
#define MSG_PAUSE_PRINT _UxGT("Print pauzeren")
#define MSG_RESUME_PRINT _UxGT("Print hervatten")
#define MSG_STOP_PRINT _UxGT("Print stoppen")
#define MSG_MEDIA_MENU _UxGT("Print van SD")
#define MSG_NO_MEDIA _UxGT("Geen SD kaart")
#define MSG_DWELL _UxGT("Slapen...")
#define MSG_USERWAIT _UxGT("Wachten...")
#define MSG_PRINT_ABORTED _UxGT("Print afgebroken")
#define MSG_NO_MOVE _UxGT("Geen beweging.")
#define MSG_KILLED _UxGT("Afgebroken. ")
#define MSG_STOPPED _UxGT("Gestopt. ")
#define MSG_CONTROL_RETRACT _UxGT("Retract mm") //accepted English term in Dutch
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Ruil Retract mm")
#define MSG_CONTROL_RETRACTF _UxGT("Retract F")
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Hop mm")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Ruil UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("UnRet F")
#define MSG_AUTORETRACT _UxGT("AutoRetr.")
#define MSG_FILAMENTCHANGE _UxGT("Verv. Filament")
#define MSG_INIT_MEDIA _UxGT("Init. SD kaart")
#define MSG_CHANGE_MEDIA _UxGT("Verv. SD Kaart")
#define MSG_ZPROBE_OUT _UxGT("Z probe uit. bed")
#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch Zelf-Test")
#define MSG_BLTOUCH_RESET _UxGT("Reset BLTouch")
#define MSG_HOME_FIRST _UxGT("Home %s%s%s Eerst")
#define MSG_ZPROBE_ZOFFSET _UxGT("Z Offset") //accepted English term in Dutch
#define MSG_BABYSTEP_X _UxGT("Babystap X")
#define MSG_BABYSTEP_Y _UxGT("Babystap Y")
#define MSG_BABYSTEP_Z _UxGT("Babystap Z")
#define MSG_ENDSTOP_ABORT _UxGT("Endstop afbr.")
#define MSG_HEATING_FAILED_LCD _UxGT("Voorverw. fout")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Redun. temp fout")
#define MSG_THERMAL_RUNAWAY _UxGT("Therm. wegloop")
#define MSG_ERR_MAXTEMP _UxGT("Err: Max. temp")
#define MSG_ERR_MINTEMP _UxGT("Err: Min. temp")
#define MSG_ERR_MAXTEMP_BED _UxGT("Err: Max.tmp bed")
#define MSG_ERR_MINTEMP_BED _UxGT("Err: Min.tmp bed")
#define MSG_ERR_Z_HOMING _UxGT("Home XY Eerst")
#define MSG_HALTED _UxGT("PRINTER GESTOPT")
#define MSG_PLEASE_RESET _UxGT("Reset A.U.B.")
#define MSG_SHORT_DAY _UxGT("d") // One character only. Keep English standard
#define MSG_SHORT_HOUR _UxGT("h") // One character only
#define MSG_SHORT_MINUTE _UxGT("m") // One character only
#define MSG_HEATING _UxGT("Voorwarmen...")
#define MSG_BED_HEATING _UxGT("Bed voorverw...")
#define MSG_DELTA_CALIBRATE _UxGT("Delta Calibratie")
#define MSG_DELTA_CALIBRATE_X _UxGT("Kalibreer X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibreer Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Kalibreer Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Kalibreer Midden")
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Auto Calibratie")
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Zet Delta Hoogte")
#define MSG_INFO_STATS_MENU _UxGT("Printer Stats") PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" gereed.");
#define MSG_INFO_BOARD_MENU _UxGT("Board Info") //accepted English term in Dutch PROGMEM Language_Str MSG_BACK = _UxGT("Terug");
#define MSG_INFO_THERMISTOR_MENU _UxGT("Thermistors") PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Kaart ingestoken");
#define MSG_INFO_EXTRUDERS _UxGT("Extruders") PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Kaart verwijderd");
#define MSG_INFO_BAUDRATE _UxGT("Baud") PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Endstops"); // Max length 8 characters
#define MSG_INFO_MENU _UxGT("Over Printer") PROGMEM Language_Str MSG_MAIN = _UxGT("Hoofdmenu");
#define MSG_INFO_PRINTER_MENU _UxGT("Printer Info") PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Autostart");
#define MSG_INFO_PROTOCOL _UxGT("Protocol") PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Motoren uit");
#define MSG_CASE_LIGHT _UxGT("Case licht") PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("Debug Menu"); //accepted English terms
PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Vooruitgang Test");
PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Auto home");
PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Home X");
PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Home Y");
PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Home Z");
PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Homing XYZ");
PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Klik voor begin");
PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Volgende Plaats");
PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Bed level kompl.");
PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Zet home offsets");
PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("H offset toegep.");
PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Nulpunt instellen");
PROGMEM Language_Str MSG_PREHEAT_1 = PREHEAT_1_LABEL _UxGT(" voorverwarmen");
PROGMEM Language_Str MSG_PREHEAT_1_H0 = PREHEAT_1_LABEL _UxGT(" voorverw. ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_H1 = PREHEAT_1_LABEL _UxGT(" voorverw. ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_H2 = PREHEAT_1_LABEL _UxGT(" voorverw. ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_H3 = PREHEAT_1_LABEL _UxGT(" voorverw. ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_H4 = PREHEAT_1_LABEL _UxGT(" voorverw. ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_H5 = PREHEAT_1_LABEL _UxGT(" voorverw. ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_END = PREHEAT_1_LABEL _UxGT(" voorverw. Einde");
PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = PREHEAT_1_LABEL _UxGT(" voorverw. Einde ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = PREHEAT_1_LABEL _UxGT(" voorverw. Einde ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = PREHEAT_1_LABEL _UxGT(" voorverw. Einde ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = PREHEAT_1_LABEL _UxGT(" voorverw. Einde ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = PREHEAT_1_LABEL _UxGT(" voorverw. Einde ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = PREHEAT_1_LABEL _UxGT(" voorverw. Einde ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_ALL = PREHEAT_1_LABEL _UxGT(" voorverw. aan");
PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = PREHEAT_1_LABEL _UxGT(" voorverw. Bed");
PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = PREHEAT_1_LABEL _UxGT(" verw. conf");
PROGMEM Language_Str MSG_PREHEAT_2 = PREHEAT_2_LABEL _UxGT(" voorverwarmen");
PROGMEM Language_Str MSG_PREHEAT_2_H0 = PREHEAT_2_LABEL _UxGT(" voorverw. ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_H1 = PREHEAT_2_LABEL _UxGT(" voorverw. ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_H2 = PREHEAT_2_LABEL _UxGT(" voorverw. ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_H3 = PREHEAT_2_LABEL _UxGT(" voorverw. ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_H4 = PREHEAT_2_LABEL _UxGT(" voorverw. ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_H5 = PREHEAT_2_LABEL _UxGT(" voorverw. ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_END = PREHEAT_2_LABEL _UxGT(" voorverw. Einde");
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = PREHEAT_2_LABEL _UxGT(" voorverw. Einde ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = PREHEAT_2_LABEL _UxGT(" voorverw. Einde ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = PREHEAT_2_LABEL _UxGT(" voorverw. Einde ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = PREHEAT_2_LABEL _UxGT(" voorverw. Einde ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = PREHEAT_2_LABEL _UxGT(" voorverw. Einde ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = PREHEAT_2_LABEL _UxGT(" voorverw. Einde ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_ALL = PREHEAT_2_LABEL _UxGT(" voorverw. aan");
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = PREHEAT_2_LABEL _UxGT(" voorverw. Bed");
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = PREHEAT_2_LABEL _UxGT(" verw. conf");
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Afkoelen");
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Stroom aan");
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Stroom uit");
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Extrude");
PROGMEM Language_Str MSG_RETRACT = _UxGT("Retract");
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("As verplaatsen");
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Bed Leveling");
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Level bed");
#define MSG_EXPECTED_PRINTER _UxGT("Onjuiste printer") PROGMEM Language_Str MSG_MOVING = _UxGT("Verplaatsen...");
PROGMEM Language_Str MSG_FREE_XY = _UxGT("Vrij XY");
PROGMEM Language_Str MSG_MOVE_X = _UxGT("Verplaats X");
PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Verplaats Y");
PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Verplaats Z");
PROGMEM Language_Str MSG_MOVE_E = _UxGT("Extruder");
PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Extruder ") LCD_STR_E0;
PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Extruder ") LCD_STR_E1;
PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Extruder ") LCD_STR_E2;
PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Extruder ") LCD_STR_E3;
PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Extruder ") LCD_STR_E4;
PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Extruder ") LCD_STR_E5;
PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Verplaats %smm");
PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Verplaats 0.1mm");
PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Verplaats 1mm");
PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Verplaats 10mm");
PROGMEM Language_Str MSG_SPEED = _UxGT("Snelheid");
PROGMEM Language_Str MSG_BED_Z = _UxGT("Bed Z");
PROGMEM Language_Str MSG_NOZZLE = _UxGT("Nozzle");
PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Nozzle ") LCD_STR_N0;
PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Nozzle ") LCD_STR_N1;
PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Nozzle ") LCD_STR_N2;
PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Nozzle ") LCD_STR_N3;
PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Nozzle ") LCD_STR_N4;
PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Nozzle ") LCD_STR_N5;
PROGMEM Language_Str MSG_BED = _UxGT("Bed");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Fan snelheid");
PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Fan snelheid 1");
PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Fan snelheid 2");
PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Fan snelheid 3");
PROGMEM Language_Str MSG_FLOW = _UxGT("Flow");
PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Flow ") LCD_STR_N0;
PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Flow ") LCD_STR_N1;
PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Flow ") LCD_STR_N2;
PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Flow ") LCD_STR_N3;
PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Flow ") LCD_STR_N4;
PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Flow ") LCD_STR_N5;
PROGMEM Language_Str MSG_CONTROL = _UxGT("Control");
PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" Min");
PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" Max");
PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Fact");
PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Autotemp");
PROGMEM Language_Str MSG_LCD_ON = _UxGT("Aan");
PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Uit");
PROGMEM Language_Str MSG_SELECT = _UxGT("Selecteer");
PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("Selecteer ") LCD_STR_E0;
PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("Selecteer ") LCD_STR_E1;
PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("Selecteer ") LCD_STR_E2;
PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("Selecteer ") LCD_STR_E3;
PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("Selecteer ") LCD_STR_E4;
PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("Selecteer ") LCD_STR_E5;
PROGMEM Language_Str MSG_ACC = _UxGT("Versn");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatuur");
PROGMEM Language_Str MSG_MOTION = _UxGT("Beweging");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filament");
PROGMEM Language_Str MSG_ADVANCE_K = _UxGT("Advance K"); //accepted english dutch
PROGMEM Language_Str MSG_ADVANCE_K_E0 = _UxGT("Advance K ") LCD_STR_E0; //accepted english dutch
PROGMEM Language_Str MSG_ADVANCE_K_E1 = _UxGT("Advance K ") LCD_STR_E1; //accepted english dutch
PROGMEM Language_Str MSG_ADVANCE_K_E2 = _UxGT("Advance K ") LCD_STR_E2; //accepted english dutch
PROGMEM Language_Str MSG_ADVANCE_K_E3 = _UxGT("Advance K ") LCD_STR_E3; //accepted english dutch
PROGMEM Language_Str MSG_ADVANCE_K_E4 = _UxGT("Advance K ") LCD_STR_E4; //accepted english dutch
PROGMEM Language_Str MSG_ADVANCE_K_E5 = _UxGT("Advance K ") LCD_STR_E5; //accepted english dutch
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E in mm3");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Fil. Dia.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Fil. Dia. ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Fil. Dia. ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Fil. Dia. ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Fil. Dia. ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Fil. Dia. ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Fil. Dia. ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("LCD contrast");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Geheugen opslaan");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Geheugen laden");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Noodstop reset");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Ververs");
PROGMEM Language_Str MSG_WATCH = _UxGT("Info scherm");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Voorbereiden");
PROGMEM Language_Str MSG_TUNE = _UxGT("Afstellen");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Print pauzeren");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Print hervatten");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Print stoppen");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Print van SD");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("Geen SD kaart");
PROGMEM Language_Str MSG_DWELL = _UxGT("Slapen...");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Wachten...");
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Print afgebroken");
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Geen beweging.");
PROGMEM Language_Str MSG_KILLED = _UxGT("Afgebroken. ");
PROGMEM Language_Str MSG_STOPPED = _UxGT("Gestopt. ");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Retract mm"); //accepted English term in Dutch
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Ruil Retract mm");
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Retract F");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Hop mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("Ruil UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("UnRet F");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("AutoRetr.");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Verv. Filament");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Verv. Filament ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Verv. Filament ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Verv. Filament ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Verv. Filament ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Verv. Filament ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Verv. Filament ") LCD_STR_E5;
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Init. SD kaart");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Verv. SD Kaart");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z probe uit. bed");
PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("BLTouch Zelf-Test");
PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("Reset BLTouch");
PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("Home %s%s%s Eerst");
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Z Offset"); //accepted English term in Dutch
PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Babystap X");
PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Babystap Y");
PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Babystap Z");
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Endstop afbr.");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Voorverw. fout");
PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("Redun. temp fout");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("Therm. wegloop");
PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("Err: Max. temp");
PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("Err: Min. temp");
PROGMEM Language_Str MSG_ERR_MAXTEMP_BED = _UxGT("Err: Max.tmp bed");
PROGMEM Language_Str MSG_ERR_MINTEMP_BED = _UxGT("Err: Min.tmp bed");
PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("Home XY Eerst");
PROGMEM Language_Str MSG_HALTED = _UxGT("PRINTER GESTOPT");
PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Reset A.U.B.");
PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("d"); // One character only. Keep English standard
PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("h"); // One character only
PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("m"); // One character only
PROGMEM Language_Str MSG_HEATING = _UxGT("Voorwarmen...");
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Bed voorverw...");
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Delta Calibratie");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Kalibreer X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Kalibreer Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Kalibreer Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Kalibreer Midden");
PROGMEM Language_Str MSG_DELTA_AUTO_CALIBRATE = _UxGT("Auto Calibratie");
PROGMEM Language_Str MSG_DELTA_HEIGHT_CALIBRATE = _UxGT("Zet Delta Hoogte");
#if LCD_WIDTH >= 20 PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Printer Stats");
#define MSG_INFO_PRINT_COUNT _UxGT("Printed Aantal") PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Board Info"); //accepted English term in Dutch
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Totaal Voltooid") PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Thermistors");
#define MSG_INFO_PRINT_TIME _UxGT("Totale Printtijd") PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Extruders");
#define MSG_INFO_PRINT_LONGEST _UxGT("Langste Printtijd") PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("Baud");
#define MSG_INFO_PRINT_FILAMENT _UxGT("Totaal Extrudeert") PROGMEM Language_Str MSG_INFO_MENU = _UxGT("Over Printer");
#else PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Printer Info");
#define MSG_INFO_PRINT_COUNT _UxGT("Aantal") PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Protocol");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Voltooid") PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Case licht");
#define MSG_INFO_PRINT_TIME _UxGT("Printtijd ")
#define MSG_INFO_PRINT_LONGEST _UxGT("Langste")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Extrud.")
#endif
#define MSG_INFO_MIN_TEMP _UxGT("Min Temp") PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Onjuiste printer");
#define MSG_INFO_MAX_TEMP _UxGT("Max Temp")
#define MSG_INFO_PSU _UxGT("PSU") //accepted English term in Dutch
#define MSG_DRIVE_STRENGTH _UxGT("Motorstroom") #if LCD_WIDTH >= 20
#define MSG_DAC_PERCENT _UxGT("Driver %") //accepted English term in Dutch PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Printed Aantal");
#define MSG_DAC_EEPROM_WRITE _UxGT("DAC Opslaan") PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Totaal Voltooid");
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Hervat print") PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Totale Printtijd");
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Nozzle: ") //accepeted English term PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Langste Printtijd");
// PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Totaal Extrudeert");
// Filament Change screens show up to 3 lines on a 4-line display #else
// ...or up to 2 lines on a 3-line display PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Aantal");
// PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Voltooid");
#if LCD_HEIGHT >= 4 PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Printtijd ");
// Up to 3 lines PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Langste");
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Wacht voor start") PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Extrud.");
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("filament te") #endif
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("verwisselen")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Wacht voor") PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Min Temp");
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("filament uit") PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Max Temp");
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("te laden") PROGMEM Language_Str MSG_INFO_PSU = _UxGT("PSU"); //accepted English term in Dutch
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Klik knop om...")
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("verw. nozzle.") //nozzle accepted English term PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Motorstroom");
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Nozzle verw.") PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Driver %"); //accepted English term in Dutch
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Wacht a.u.b.") PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC Opslaan");
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Laad filament") PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Hervat print");
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("en druk knop") PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Nozzle: "); //accepeted English term
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("om verder...") //
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Wacht voor") // Filament Change screens show up to 3 lines on a 4-line display
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("filament te") // ...or up to 2 lines on a 3-line display
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("laden") //
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wacht voor print") #if LCD_HEIGHT >= 4
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("om verder") // Up to 3 lines
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("te gaan") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Wacht voor start", "filament te", "verwisselen"));
#else // LCD_HEIGHT < 4 PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_3_LINE("Wacht voor", "filament uit", "te laden"));
// Up to 2 lines PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Klik knop om...", "verw. nozzle.")); //nozzle accepted English term
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Wacht voor") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("Nozzle verw.", "Wacht a.u.b."));
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("start...") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Laad filament", "en druk knop", "om verder..."));
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Wacht voor") PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_3_LINE("Wacht voor", "filament te", "laden"));
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("uitladen...") PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_3_LINE("Wacht voor print", "om verder", "te gaan"));
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Klik knop om...") #else
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("verw. nozzle.") //nozzle accepted English term // Up to 2 lines
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Verwarmen...") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_2_LINE("Wacht voor", "start..."));
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Laad filament") PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Wacht voor", "uitladen..."));
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("en druk knop") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Klik knop om...", "verw. nozzle.")); //nozzle accepted English term
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Wacht voor") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("Verwarmen..."));
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("inladen...") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_2_LINE("Laad filament", "en druk knop"));
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wacht voor") PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Wacht voor", "inladen..."));
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("printing...") PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("Wacht voor", "printing..."));
#endif // LCD_HEIGHT < 4 #endif
}

View file

@ -27,228 +27,263 @@
#define DISPLAY_CHARSET_ISO10646_PL #define DISPLAY_CHARSET_ISO10646_PL
#define CHARSIZE 2 namespace Language_pl {
using namespace Language_en; // Inherit undefined strings from English
#define WELCOME_MSG MACHINE_NAME _UxGT(" gotowy.") constexpr uint8_t CHARSIZE = 2;
#define MSG_MEDIA_INSERTED _UxGT("Karta włożona") PROGMEM Language_Str LANGUAGE = _UxGT("Polish");
#define MSG_MEDIA_REMOVED _UxGT("Karta usunięta")
#define MSG_LCD_ENDSTOPS _UxGT("Kranców.") // Max length 8 characters
#define MSG_MAIN _UxGT("Menu główne")
#define MSG_AUTOSTART _UxGT("Autostart")
#define MSG_DISABLE_STEPPERS _UxGT("Wyłącz silniki")
#define MSG_AUTO_HOME _UxGT("Pozycja zerowa")
#define MSG_AUTO_HOME_X _UxGT("Zeruj X")
#define MSG_AUTO_HOME_Y _UxGT("Zeruj Y")
#define MSG_AUTO_HOME_Z _UxGT("Zeruj Z")
#define MSG_LEVEL_BED _UxGT("Poziom. stołu")
#define MSG_LEVEL_BED_HOMING _UxGT("Pozycja zerowa")
#define MSG_LEVEL_BED_WAITING _UxGT("Kliknij by rozp.")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Następny punkt")
#define MSG_LEVEL_BED_DONE _UxGT("Wypoziomowano!")
#define MSG_USER_MENU _UxGT("Własne Polecenia")
#define MSG_SET_HOME_OFFSETS _UxGT("Ust. poz. zer.")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Poz. zerowa ust.")
#define MSG_SET_ORIGIN _UxGT("Ustaw punkt zero")
#define MSG_PREHEAT_1 _UxGT("Rozgrzej " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ")
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" wsz.")
#define MSG_PREHEAT_1_BEDONLY _UxGT("Rozgrzej stół " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_SETTINGS _UxGT("Ustaw. rozg. " PREHEAT_1_LABEL)
#define MSG_PREHEAT_2 _UxGT("Rozgrzej " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ")
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" wsz.")
#define MSG_PREHEAT_2_BEDONLY _UxGT("Rozgrzej stół " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_SETTINGS _UxGT("Ustaw. rozg. " PREHEAT_2_LABEL)
#define MSG_COOLDOWN _UxGT("Chłodzenie")
#define MSG_SWITCH_PS_ON _UxGT("Włącz zasilacz")
#define MSG_SWITCH_PS_OFF _UxGT("Wyłącz zasilacz")
#define MSG_EXTRUDE _UxGT("Ekstruzja")
#define MSG_RETRACT _UxGT("Wycofanie")
#define MSG_MOVE_AXIS _UxGT("Ruch osi")
#define MSG_BED_LEVELING _UxGT("Poziom. stołu")
#define MSG_MOVE_X _UxGT("Przesuń w X")
#define MSG_MOVE_Y _UxGT("Przesuń w Y")
#define MSG_MOVE_Z _UxGT("Przesuń w Z")
#define MSG_MOVE_E _UxGT("Ekstruzja (os E)")
#define MSG_MOVE_Z_DIST _UxGT("Przesuń co %smm")
#define MSG_MOVE_01MM _UxGT("Przesuń co .1mm")
#define MSG_MOVE_1MM _UxGT("Przesuń co 1mm")
#define MSG_MOVE_10MM _UxGT("Przesuń co 10mm")
#define MSG_SPEED _UxGT("Predkość")
#define MSG_BED_Z _UxGT("Stół Z")
#define MSG_NOZZLE _UxGT("Dysza")
#define MSG_BED _UxGT("Stół")
#define MSG_FAN_SPEED _UxGT("Obroty wiatraka")
#define MSG_FLOW _UxGT("Przepływ")
#define MSG_CONTROL _UxGT("Ustawienia")
#define MSG_MIN LCD_STR_THERMOMETER _UxGT(" Min")
#define MSG_MAX LCD_STR_THERMOMETER _UxGT(" Max")
#define MSG_FACTOR LCD_STR_THERMOMETER _UxGT(" Mnożnik")
#define MSG_AUTOTEMP _UxGT("Auto. temperatura")
#define MSG_LCD_ON _UxGT("Wł.")
#define MSG_LCD_OFF _UxGT("Wył.")
#define MSG_PID_P _UxGT("PID-P")
#define MSG_PID_I _UxGT("PID-I")
#define MSG_PID_D _UxGT("PID-D")
#define MSG_PID_C _UxGT("PID-C")
#define MSG_SELECT _UxGT("Select")
#define MSG_ACC _UxGT("Przyśpieszenie")
#define MSG_JERK _UxGT("Zryw")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Zryw Va")
#define MSG_VB_JERK _UxGT("Zryw Vb")
#define MSG_VC_JERK _UxGT("Zryw Vc")
#else
#define MSG_VA_JERK _UxGT("Zryw Vx")
#define MSG_VB_JERK _UxGT("Zryw Vy")
#define MSG_VC_JERK _UxGT("Zryw Vz")
#endif
#define MSG_VE_JERK _UxGT("Zryw Ve")
#define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin")
#define MSG_VTRAV_MIN _UxGT("Vskok min")
#define MSG_ACCELERATION MSG_ACC
#define MSG_AMAX _UxGT("Amax")
#define MSG_A_RETRACT _UxGT("A-wycofanie")
#define MSG_A_TRAVEL _UxGT("A-przesuń.")
#define MSG_STEPS_PER_MM _UxGT("kroki/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("krokiA/mm")
#define MSG_BSTEPS _UxGT("krokiB/mm")
#define MSG_CSTEPS _UxGT("krokiC/mm")
#else
#define MSG_ASTEPS _UxGT("krokiX/mm")
#define MSG_BSTEPS _UxGT("krokiY/mm")
#define MSG_CSTEPS _UxGT("krokiZ/mm")
#endif
#define MSG_ESTEPS _UxGT("krokiE/mm")
#define MSG_E0_STEPS _UxGT("krokiE1/mm")
#define MSG_E1_STEPS _UxGT("krokiE2/mm")
#define MSG_E2_STEPS _UxGT("krokiE3/mm")
#define MSG_E3_STEPS _UxGT("krokiE4/mm")
#define MSG_E4_STEPS _UxGT("krokiE5/mm")
#define MSG_E5_STEPS _UxGT("krokiE6/mm")
#define MSG_TEMPERATURE _UxGT("Temperatura")
#define MSG_MOTION _UxGT("Ruch")
#define MSG_FILAMENT _UxGT("Filament")
#define MSG_VOLUMETRIC_ENABLED _UxGT("E w mm3")
#define MSG_FILAMENT_DIAM _UxGT("Śr. fil.")
#define MSG_CONTRAST _UxGT("Kontrast LCD")
#define MSG_STORE_EEPROM _UxGT("Zapisz w pamięci")
#define MSG_LOAD_EEPROM _UxGT("Wczytaj z pamięci")
#define MSG_RESTORE_FAILSAFE _UxGT("Ustaw. fabryczne")
#define MSG_REFRESH _UxGT("Odswież")
#define MSG_WATCH _UxGT("Ekran główny")
#define MSG_PREPARE _UxGT("Przygotuj")
#define MSG_TUNE _UxGT("Strojenie")
#define MSG_PAUSE_PRINT _UxGT("Pauza")
#define MSG_RESUME_PRINT _UxGT("Wznowienie")
#define MSG_STOP_PRINT _UxGT("Stop")
#define MSG_MEDIA_MENU _UxGT("Karta SD")
#define MSG_NO_MEDIA _UxGT("Brak karty")
#define MSG_DWELL _UxGT("Uśpij...")
#define MSG_USERWAIT _UxGT("Oczekiwanie...")
#define MSG_PRINT_ABORTED _UxGT("Druk przerwany")
#define MSG_NO_MOVE _UxGT("Brak ruchu")
#define MSG_KILLED _UxGT("Ubity. ")
#define MSG_STOPPED _UxGT("Zatrzymany. ")
#define MSG_CONTROL_RETRACT _UxGT("Wycofaj mm")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Z Wycof. mm")
#define MSG_CONTROL_RETRACTF _UxGT("Wycofaj V")
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Skok Z mm")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("Cof. wycof. mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Z Cof. wyc. mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("Cof. wycof. V")
#define MSG_AUTORETRACT _UxGT("Auto. wycofanie")
#define MSG_FILAMENTCHANGE _UxGT("Zmień filament")
#define MSG_INIT_MEDIA _UxGT("Inicjal. karty SD")
#define MSG_CHANGE_MEDIA _UxGT("Zmiana karty SD")
#define MSG_ZPROBE_OUT _UxGT("Sonda Z za stołem")
#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch Self-Test")
#define MSG_BLTOUCH_RESET _UxGT("Reset BLTouch")
#define MSG_HOME_FIRST _UxGT("Home %s%s%s first")
#define MSG_ZPROBE_ZOFFSET _UxGT("Offset Z")
#define MSG_BABYSTEP_X _UxGT("Babystep X")
#define MSG_BABYSTEP_Y _UxGT("Babystep Y")
#define MSG_BABYSTEP_Z _UxGT("Babystep Z")
#define MSG_ENDSTOP_ABORT _UxGT("Błąd krańcówki")
#define MSG_HEATING_FAILED_LCD _UxGT("Rozgrz. nieudane")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Błąd temperatury")
#define MSG_THERMAL_RUNAWAY _UxGT("Zanik temp.")
#define MSG_ERR_MAXTEMP _UxGT("Err max temp")
#define MSG_ERR_MINTEMP _UxGT("Err min temp")
#define MSG_ERR_MAXTEMP_BED _UxGT("Err max temp stołu")
#define MSG_ERR_MINTEMP_BED _UxGT("Err min temp stołu")
#define MSG_ERR_Z_HOMING _UxGT("Home XY first")
#define MSG_HALTED _UxGT("Drukarka zatrzym.")
#define MSG_PLEASE_RESET _UxGT("Proszę zresetować")
#define MSG_SHORT_DAY _UxGT("d") // One character only
#define MSG_SHORT_HOUR _UxGT("g") // One character only
#define MSG_SHORT_MINUTE _UxGT("m") // One character only
#define MSG_HEATING _UxGT("Rozgrzewanie...")
#define MSG_BED_HEATING _UxGT("Rozgrzewanie stołu...")
#define MSG_DELTA_CALIBRATE _UxGT("Kalibrowanie Delty")
#define MSG_DELTA_CALIBRATE_X _UxGT("Kalibruj X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibruj Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Kalibruj Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Kalibruj środek")
#define MSG_INFO_MENU _UxGT("O drukarce") PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" gotowy.");
#define MSG_INFO_PRINTER_MENU _UxGT("Info drukarki") PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Karta włożona");
#define MSG_INFO_STATS_MENU _UxGT("Statystyki") PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Karta usunięta");
#define MSG_INFO_BOARD_MENU _UxGT("Board Info") PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Kranców."); // Max length 8 characters
#define MSG_INFO_THERMISTOR_MENU _UxGT("Thermistory") PROGMEM Language_Str MSG_MAIN = _UxGT("Menu główne");
#define MSG_INFO_EXTRUDERS _UxGT("Ekstrudery") PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Autostart");
#define MSG_INFO_BAUDRATE _UxGT("Predkość USB") PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Wyłącz silniki");
#define MSG_INFO_PROTOCOL _UxGT("Protokół") PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Pozycja zerowa");
#define MSG_CASE_LIGHT _UxGT("Oświetlenie") PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Zeruj X");
PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Zeruj Y");
PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Zeruj Z");
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Poziom. stołu");
PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Pozycja zerowa");
PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Kliknij by rozp.");
PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Następny punkt");
PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Wypoziomowano!");
PROGMEM Language_Str MSG_USER_MENU = _UxGT("Własne Polecenia");
PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Ust. poz. zer.");
PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Poz. zerowa ust.");
PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Ustaw punkt zero");
PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Rozgrzej ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Rozgrzej ") PREHEAT_1_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Rozgrzej ") PREHEAT_1_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Rozgrzej ") PREHEAT_1_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Rozgrzej ") PREHEAT_1_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Rozgrzej ") PREHEAT_1_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Rozgrzej ") PREHEAT_1_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Rozgrzej ") PREHEAT_1_LABEL _UxGT(" Dysza");
PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Rozgrzej ") PREHEAT_1_LABEL _UxGT(" Dysza ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Rozgrzej ") PREHEAT_1_LABEL _UxGT(" Dysza ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Rozgrzej ") PREHEAT_1_LABEL _UxGT(" Dysza ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Rozgrzej ") PREHEAT_1_LABEL _UxGT(" Dysza ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Rozgrzej ") PREHEAT_1_LABEL _UxGT(" Dysza ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Rozgrzej ") PREHEAT_1_LABEL _UxGT(" Dysza ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Rozgrzej ") PREHEAT_1_LABEL _UxGT(" wsz.");
PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Rozgrzej stół ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Ustaw. rozg. ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Rozgrzej ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Rozgrzej ") PREHEAT_2_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Rozgrzej ") PREHEAT_2_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Rozgrzej ") PREHEAT_2_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Rozgrzej ") PREHEAT_2_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Rozgrzej ") PREHEAT_2_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Rozgrzej ") PREHEAT_2_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Rozgrzej ") PREHEAT_2_LABEL _UxGT(" Dysza");
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Rozgrzej ") PREHEAT_2_LABEL _UxGT(" Dysza ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Rozgrzej ") PREHEAT_2_LABEL _UxGT(" Dysza ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Rozgrzej ") PREHEAT_2_LABEL _UxGT(" Dysza ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Rozgrzej ") PREHEAT_2_LABEL _UxGT(" Dysza ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Rozgrzej ") PREHEAT_2_LABEL _UxGT(" Dysza ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Rozgrzej ") PREHEAT_2_LABEL _UxGT(" Dysza ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Rozgrzej ") PREHEAT_2_LABEL _UxGT(" wsz.");
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Rozgrzej stół ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Ustaw. rozg. ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Chłodzenie");
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Włącz zasilacz");
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Wyłącz zasilacz");
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Ekstruzja");
PROGMEM Language_Str MSG_RETRACT = _UxGT("Wycofanie");
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Ruch osi");
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Poziom. stołu");
PROGMEM Language_Str MSG_MOVE_X = _UxGT("Przesuń w X");
PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Przesuń w Y");
PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Przesuń w Z");
PROGMEM Language_Str MSG_MOVE_E = _UxGT("Ekstruzja (os E)");
PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Ekstruzja (os E) ") LCD_STR_E0;
PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Ekstruzja (os E) ") LCD_STR_E1;
PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Ekstruzja (os E) ") LCD_STR_E2;
PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Ekstruzja (os E) ") LCD_STR_E3;
PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Ekstruzja (os E) ") LCD_STR_E4;
PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Ekstruzja (os E) ") LCD_STR_E5;
PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Przesuń co %smm");
PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Przesuń co .1mm");
PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Przesuń co 1mm");
PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Przesuń co 10mm");
PROGMEM Language_Str MSG_SPEED = _UxGT("Predkość");
PROGMEM Language_Str MSG_BED_Z = _UxGT("Stół Z");
PROGMEM Language_Str MSG_NOZZLE = _UxGT("Dysza");
PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Dysza ") LCD_STR_N0;
PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Dysza ") LCD_STR_N1;
PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Dysza ") LCD_STR_N2;
PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Dysza ") LCD_STR_N3;
PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Dysza ") LCD_STR_N4;
PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Dysza ") LCD_STR_N5;
PROGMEM Language_Str MSG_BED = _UxGT("Stół");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Obroty wiatraka");
PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Obroty wiatraka 1");
PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Obroty wiatraka 2");
PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Obroty wiatraka 3");
PROGMEM Language_Str MSG_FLOW = _UxGT("Przepływ");
PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Przepływ ") LCD_STR_N0;
PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Przepływ ") LCD_STR_N1;
PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Przepływ ") LCD_STR_N2;
PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Przepływ ") LCD_STR_N3;
PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Przepływ ") LCD_STR_N4;
PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Przepływ ") LCD_STR_N5;
PROGMEM Language_Str MSG_CONTROL = _UxGT("Ustawienia");
PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" Min");
PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" Max");
PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Mnożnik");
PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Auto. temperatura");
PROGMEM Language_Str MSG_LCD_ON = _UxGT("Wł.");
PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Wył.");
PROGMEM Language_Str MSG_ACC = _UxGT("Przyśpieszenie");
PROGMEM Language_Str MSG_JERK = _UxGT("Zryw");
PROGMEM Language_Str MSG_VA_JERK = _UxGT("Zryw V") LCD_STR_A;
PROGMEM Language_Str MSG_VB_JERK = _UxGT("Zryw V") LCD_STR_B;
PROGMEM Language_Str MSG_VC_JERK = _UxGT("Zryw V") LCD_STR_C;
PROGMEM Language_Str MSG_VE_JERK = _UxGT("Zryw Ve");
PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("Vskok min");
PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-wycofanie");
PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A-przesuń.");
PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("kroki/mm");
PROGMEM Language_Str MSG_A_STEPS = _UxGT("kroki") LCD_MSG_A _UxGT("/mm");
PROGMEM Language_Str MSG_B_STEPS = _UxGT("kroki") LCD_MSG_B _UxGT("/mm");
PROGMEM Language_Str MSG_C_STEPS = _UxGT("kroki") LCD_MSG_C _UxGT("/mm");
PROGMEM Language_Str MSG_E_STEPS = _UxGT("krokiE/mm");
PROGMEM Language_Str MSG_E0_STEPS = _UxGT("kroki ") LCD_STR_E0 _UxGT("/mm");
PROGMEM Language_Str MSG_E1_STEPS = _UxGT("kroki ") LCD_STR_E1 _UxGT("/mm");
PROGMEM Language_Str MSG_E2_STEPS = _UxGT("kroki ") LCD_STR_E2 _UxGT("/mm");
PROGMEM Language_Str MSG_E3_STEPS = _UxGT("kroki ") LCD_STR_E3 _UxGT("/mm");
PROGMEM Language_Str MSG_E4_STEPS = _UxGT("kroki ") LCD_STR_E4 _UxGT("/mm");
PROGMEM Language_Str MSG_E5_STEPS = _UxGT("kroki ") LCD_STR_E5 _UxGT("/mm");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura");
PROGMEM Language_Str MSG_MOTION = _UxGT("Ruch");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filament");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E w mm3");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Śr. fil.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Śr. fil. ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Śr. fil. ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Śr. fil. ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Śr. fil. ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Śr. fil. ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Śr. fil. ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("Kontrast LCD");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Zapisz w pamięci");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Wczytaj z pamięci");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Ustaw. fabryczne");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Odswież");
PROGMEM Language_Str MSG_WATCH = _UxGT("Ekran główny");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Przygotuj");
PROGMEM Language_Str MSG_TUNE = _UxGT("Strojenie");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Pauza");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Wznowienie");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Stop");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Karta SD");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("Brak karty");
PROGMEM Language_Str MSG_DWELL = _UxGT("Uśpij...");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Oczekiwanie...");
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Druk przerwany");
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Brak ruchu");
PROGMEM Language_Str MSG_KILLED = _UxGT("Ubity. ");
PROGMEM Language_Str MSG_STOPPED = _UxGT("Zatrzymany. ");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Wycofaj mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Z Wycof. mm");
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Wycofaj V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Skok Z mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("Cof. wycof. mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("Z Cof. wyc. mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("Cof. wycof. V");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Auto. wycofanie");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Zmień filament");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Zmień filament ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Zmień filament ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Zmień filament ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Zmień filament ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Zmień filament ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Zmień filament ") LCD_STR_E5;
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Inicjal. karty SD");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Zmiana karty SD");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sonda Z za stołem");
PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("BLTouch Self-Test");
PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("Reset BLTouch");
PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("Home %s%s%s first");
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Offset Z");
PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Babystep X");
PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Babystep Y");
PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Babystep Z");
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Błąd krańcówki");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Rozgrz. nieudane");
PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("Błąd temperatury");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("Zanik temp.");
PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("Err max temp");
PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("Err min temp");
PROGMEM Language_Str MSG_ERR_MAXTEMP_BED = _UxGT("Err max temp stołu");
PROGMEM Language_Str MSG_ERR_MINTEMP_BED = _UxGT("Err min temp stołu");
PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("Home XY first");
PROGMEM Language_Str MSG_HALTED = _UxGT("Drukarka zatrzym.");
PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Proszę zresetować");
PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("d"); // One character only
PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("g"); // One character only
PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("m"); // One character only
PROGMEM Language_Str MSG_HEATING = _UxGT("Rozgrzewanie...");
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Rozgrzewanie stołu...");
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Kalibrowanie Delty");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Kalibruj X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Kalibruj Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Kalibruj Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Kalibruj środek");
#define MSG_EXPECTED_PRINTER _UxGT("Niepoprawna drukarka") PROGMEM Language_Str MSG_INFO_MENU = _UxGT("O drukarce");
PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Info drukarki");
PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Statystyki");
PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Board Info");
PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Thermistory");
PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Ekstrudery");
PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("Predkość USB");
PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Protokół");
PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Oświetlenie");
#if LCD_WIDTH >= 20 PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Niepoprawna drukarka");
#define MSG_INFO_PRINT_COUNT _UxGT("Wydrukowano")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Ukończono")
#define MSG_INFO_PRINT_TIME _UxGT("Czas druku")
#define MSG_INFO_PRINT_LONGEST _UxGT("Najdł. druk")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Użyty fil.")
#else
#define MSG_INFO_PRINT_COUNT _UxGT("Wydrukowano")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Ukończono")
#define MSG_INFO_PRINT_TIME _UxGT("Razem")
#define MSG_INFO_PRINT_LONGEST _UxGT("Najdł. druk")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Użyty fil.")
#endif
#define MSG_INFO_MIN_TEMP _UxGT("Min Temp") #if LCD_WIDTH >= 20
#define MSG_INFO_MAX_TEMP _UxGT("Max Temp") PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Wydrukowano");
#define MSG_INFO_PSU _UxGT("Zasilacz") PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Ukończono");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Czas druku");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Najdł. druk");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Użyty fil.");
#else
PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Wydrukowano");
PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Ukończono");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Razem");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Najdł. druk");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Użyty fil.");
#endif
#define MSG_DRIVE_STRENGTH _UxGT("Siła silnika") PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Min Temp");
#define MSG_DAC_PERCENT _UxGT("Siła %") PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Max Temp");
#define MSG_DAC_EEPROM_WRITE _UxGT("Zapisz DAC EEPROM") PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Zasilacz");
#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("ZMIEŃ FILAMENT") PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Siła silnika");
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("ZMIEŃ OPCJE:") PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Siła %");
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Wznów drukowanie") PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Zapisz DAC EEPROM");
#if LCD_HEIGHT >= 4 PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("ZMIEŃ FILAMENT");
// Up to 3 lines allowed PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("ZMIEŃ OPCJE:");
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Czekam na ") PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Wznów drukowanie");
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("zmianę filamentu")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Czekam na") #if LCD_HEIGHT >= 4
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("wyjęcie filamentu") // Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Włóz filament") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_2_LINE("Czekam na ", "zmianę filamentu"));
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("i naciśnij przycisk") PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Czekam na", "wyjęcie filamentu"));
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("aby kontynuować...") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Włóz filament", "i naciśnij przycisk", "aby kontynuować..."));
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Czekam na") PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Czekam na", "włożenie filamentu"));
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("włożenie filamentu") PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("Czekam na", "wznowienie druku"));
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Czekam na") #else
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("wznowienie druku") // Up to 2 lines allowed
#else // LCD_HEIGHT < 4 PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Proszę czekać..."));
// Up to 2 lines allowed PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Wysuwanie..."));
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Proszę czekać...") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Włóż i naciśnij prz."));
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Wysuwanie...") PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Ładowanie..."));
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Włóż i naciśnij prz.") PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Wznowienie..."));
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Ładowanie...") #endif
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wznowienie...") }
#endif // LCD_HEIGHT < 4

View file

@ -30,159 +30,186 @@
* *
*/ */
#define DISPLAY_CHARSET_ISO10646_1 #define DISPLAY_CHARSET_ISO10646_1
#define CHARSIZE 2
#define WELCOME_MSG MACHINE_NAME _UxGT(" pronta.") namespace Language_pt {
#define MSG_MEDIA_INSERTED _UxGT("Cartão inserido") using namespace Language_en; // Inherit undefined strings from English
#define MSG_MEDIA_REMOVED _UxGT("Cartão removido")
#define MSG_MAIN _UxGT("Menu principal")
#define MSG_AUTOSTART _UxGT("Autostart")
#define MSG_DISABLE_STEPPERS _UxGT("Desactivar motores")
#define MSG_AUTO_HOME _UxGT("Ir para origem")
#define MSG_AUTO_HOME_X _UxGT("Ir para origem X")
#define MSG_AUTO_HOME_Y _UxGT("Ir para origem Y")
#define MSG_AUTO_HOME_Z _UxGT("Ir para origem Z")
#define MSG_LEVEL_BED_HOMING _UxGT("Indo para origem")
#define MSG_LEVEL_BED_WAITING _UxGT("Click para iniciar")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Próximo ponto")
#define MSG_LEVEL_BED_DONE _UxGT("Pronto !")
#define MSG_SET_HOME_OFFSETS _UxGT("Definir desvio")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Offsets aplicados")
#define MSG_SET_ORIGIN _UxGT("Definir origem")
#define MSG_PREHEAT_1 _UxGT("Pre-aquecer " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_N _UxGT("Pre-aquecer " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_ALL _UxGT("Pre-aq. " PREHEAT_1_LABEL " Tudo")
#define MSG_PREHEAT_1_BEDONLY _UxGT("Pre-aq. " PREHEAT_1_LABEL " ") LCD_STR_THERMOMETER _UxGT("Base")
#define MSG_PREHEAT_1_SETTINGS _UxGT("Definições " PREHEAT_1_LABEL)
#define MSG_PREHEAT_2 _UxGT("Pre-aquecer " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_N _UxGT("Pre-aquecer " PREHEAT_2_LABEL " ")
#define MSG_PREHEAT_2_ALL _UxGT("Pre-aq. " PREHEAT_2_LABEL " Tudo")
#define MSG_PREHEAT_2_BEDONLY _UxGT("Pre-aq. " PREHEAT_2_LABEL " ") LCD_STR_THERMOMETER _UxGT("Base")
#define MSG_PREHEAT_2_SETTINGS _UxGT("Definições " PREHEAT_2_LABEL)
#define MSG_COOLDOWN _UxGT("Arrefecer")
#define MSG_SWITCH_PS_ON _UxGT("Ligar")
#define MSG_SWITCH_PS_OFF _UxGT("Desligar")
#define MSG_EXTRUDE _UxGT("Extrudir")
#define MSG_RETRACT _UxGT("Retrair")
#define MSG_MOVE_AXIS _UxGT("Mover eixo")
#define MSG_MOVE_X _UxGT("Mover X")
#define MSG_MOVE_Y _UxGT("Mover Y")
#define MSG_MOVE_Z _UxGT("Mover Z")
#define MSG_MOVE_E _UxGT("Mover Extrusor")
#define MSG_MOVE_Z_DIST _UxGT("Mover %smm")
#define MSG_MOVE_01MM _UxGT("Mover 0.1mm")
#define MSG_MOVE_1MM _UxGT("Mover 1mm")
#define MSG_MOVE_10MM _UxGT("Mover 10mm")
#define MSG_SPEED _UxGT("Velocidade")
#define MSG_BED_Z _UxGT("Base Z")
#define MSG_NOZZLE _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Bico")
#define MSG_BED _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Base")
#define MSG_FAN_SPEED _UxGT("Vel. ventoinha")
#define MSG_FLOW _UxGT("Fluxo")
#define MSG_CONTROL _UxGT("Controlo")
#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Min")
#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Max")
#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Fact")
#define MSG_AUTOTEMP _UxGT("Temp. Automática")
#define MSG_LCD_ON _UxGT("On")
#define MSG_LCD_OFF _UxGT("Off")
#define MSG_PID_P _UxGT("PID-P")
#define MSG_PID_I _UxGT("PID-I")
#define MSG_PID_D _UxGT("PID-D")
#define MSG_PID_C _UxGT("PID-C")
#define MSG_ACC _UxGT("Acc")
#define MSG_JERK _UxGT("Jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-jerk")
#define MSG_VB_JERK _UxGT("Vb-jerk")
#define MSG_VC_JERK _UxGT("Vc-jerk")
#else
#define MSG_VA_JERK _UxGT("Vx-jerk")
#define MSG_VB_JERK _UxGT("Vy-jerk")
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VMAX _UxGT(" Vmax ")
#define MSG_VMIN _UxGT("Vmin")
#define MSG_VTRAV_MIN _UxGT("VTrav min")
#define MSG_AMAX _UxGT("Amax ")
#define MSG_A_RETRACT _UxGT("A-retracção")
#define MSG_A_TRAVEL _UxGT("A-movimento")
#define MSG_STEPS_PER_MM _UxGT("Passo/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("A passo/mm")
#define MSG_BSTEPS _UxGT("B passo/mm")
#define MSG_CSTEPS _UxGT("C passo/mm")
#else
#define MSG_ASTEPS _UxGT("X passo/mm")
#define MSG_BSTEPS _UxGT("Y passo/mm")
#define MSG_CSTEPS _UxGT("Z passo/mm")
#endif
#define MSG_ESTEPS _UxGT("E passo/mm")
#define MSG_E0_STEPS _UxGT("E1 passo/mm")
#define MSG_E1_STEPS _UxGT("E2 passo/mm")
#define MSG_E2_STEPS _UxGT("E3 passo/mm")
#define MSG_E3_STEPS _UxGT("E4 passo/mm")
#define MSG_E4_STEPS _UxGT("E5 passo/mm")
#define MSG_E5_STEPS _UxGT("E6 passo/mm")
#define MSG_TEMPERATURE _UxGT("Temperatura")
#define MSG_MOTION _UxGT("Movimento")
#define MSG_FILAMENT _UxGT("Filamento")
#define MSG_VOLUMETRIC_ENABLED _UxGT("E em mm3")
#define MSG_FILAMENT_DIAM _UxGT("Fil. Diam.")
#define MSG_CONTRAST _UxGT("Contraste")
#define MSG_STORE_EEPROM _UxGT("Guardar na memoria")
#define MSG_LOAD_EEPROM _UxGT("Carregar da memoria")
#define MSG_RESTORE_FAILSAFE _UxGT("Rest. de emergen.")
#define MSG_REFRESH LCD_STR_REFRESH _UxGT(" Recarregar")
#define MSG_WATCH _UxGT("Monitorizar")
#define MSG_PREPARE _UxGT("Preparar")
#define MSG_TUNE _UxGT("Afinar")
#define MSG_PAUSE_PRINT _UxGT("Pausar impressão")
#define MSG_RESUME_PRINT _UxGT("Retomar impressão")
#define MSG_STOP_PRINT _UxGT("Parar impressão")
#define MSG_MEDIA_MENU _UxGT("Imprimir do SD")
#define MSG_NO_MEDIA _UxGT("Sem cartão SD")
#define MSG_DWELL _UxGT("Em espera...")
#define MSG_USERWAIT _UxGT("Á espera de ordem")
#define MSG_PRINT_ABORTED _UxGT("Impressão cancelada")
#define MSG_NO_MOVE _UxGT("Sem movimento")
#define MSG_KILLED _UxGT("EMERGÊNCIA. ")
#define MSG_STOPPED _UxGT("PARADO. ")
#define MSG_CONTROL_RETRACT _UxGT(" Retrair mm")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Troca Retrair mm")
#define MSG_CONTROL_RETRACTF _UxGT(" Retrair V")
#define MSG_CONTROL_RETRACT_ZHOP _UxGT(" Levantar mm")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT(" DesRet mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Troca DesRet mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT(" DesRet V")
#define MSG_AUTORETRACT _UxGT(" AutoRetr.")
#define MSG_FILAMENTCHANGE _UxGT("Trocar filamento")
#define MSG_INIT_MEDIA _UxGT("Inici. cartão SD")
#define MSG_CHANGE_MEDIA _UxGT("Trocar cartão SD")
#define MSG_ZPROBE_OUT _UxGT("Sensor fora/base")
#define MSG_HOME_FIRST _UxGT("Home %s%s%s first")
#define MSG_ZPROBE_ZOFFSET _UxGT("Desvio Z")
#define MSG_BABYSTEP_X _UxGT("Babystep X")
#define MSG_BABYSTEP_Y _UxGT("Babystep Y")
#define MSG_BABYSTEP_Z _UxGT("Babystep Z")
#define MSG_ENDSTOP_ABORT _UxGT("Fim de curso")
#define MSG_HEATING_FAILED_LCD _UxGT("Aquecimento falhou")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Err: REDUNDANT TEMP")
#define MSG_THERMAL_RUNAWAY _UxGT("THERMAL RUNAWAY")
#define MSG_ERR_MAXTEMP _UxGT("Err: T Máxima")
#define MSG_ERR_MINTEMP _UxGT("Err: T Mínima")
#define MSG_ERR_MAXTEMP_BED _UxGT("Err: T Base Máxima")
#define MSG_ERR_MINTEMP_BED _UxGT("Err: T Base Mínima")
#define MSG_HEATING _UxGT("Aquecendo...")
#define MSG_BED_HEATING _UxGT("Aquecendo base...")
#define MSG_DELTA_CALIBRATE _UxGT("Calibração Delta")
#define MSG_DELTA_CALIBRATE_X _UxGT("Calibrar X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Calibrar Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Calibrar Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Calibrar Centro")
#define MSG_LCD_ENDSTOPS _UxGT("Fim de curso") constexpr uint8_t CHARSIZE = 2;
PROGMEM Language_Str LANGUAGE = _UxGT("Portuguese");
#define MSG_EXPECTED_PRINTER _UxGT("Impressora Incorreta") PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" pronta.");
PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Cartão inserido");
PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Cartão removido");
PROGMEM Language_Str MSG_MAIN = _UxGT("Menu principal");
PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Desactivar motores");
PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Ir para origem");
PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Ir para origem X");
PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Ir para origem Y");
PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Ir para origem Z");
PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Indo para origem");
PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Click para iniciar");
PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Próximo ponto");
PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Pronto !");
PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Definir desvio");
PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Offsets aplicados");
PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Definir origem");
PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL _UxGT(" Bico");
PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL _UxGT(" Bico ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL _UxGT(" Bico ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL _UxGT(" Bico ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL _UxGT(" Bico ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL _UxGT(" Bico ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL _UxGT(" Bico ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Pre-aq. ") PREHEAT_1_LABEL _UxGT(" Tudo");
PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Pre-aq. ") PREHEAT_1_LABEL _UxGT(" ") LCD_STR_THERMOMETER _UxGT("Base");
PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Definições ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Pre-aquecer ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Pre-aquecer ") PREHEAT_2_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Pre-aquecer ") PREHEAT_2_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Pre-aquecer ") PREHEAT_2_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Pre-aquecer ") PREHEAT_2_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Pre-aquecer ") PREHEAT_2_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Pre-aquecer ") PREHEAT_2_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Pre-aquecer ") PREHEAT_2_LABEL _UxGT(" Bico");
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Pre-aquecer ") PREHEAT_2_LABEL _UxGT(" Bico ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Pre-aquecer ") PREHEAT_2_LABEL _UxGT(" Bico ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Pre-aquecer ") PREHEAT_2_LABEL _UxGT(" Bico ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Pre-aquecer ") PREHEAT_2_LABEL _UxGT(" Bico ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Pre-aquecer ") PREHEAT_2_LABEL _UxGT(" Bico ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Pre-aquecer ") PREHEAT_2_LABEL _UxGT(" Bico ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Pre-aq. ") PREHEAT_2_LABEL _UxGT(" Tudo");
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Pre-aq. ") PREHEAT_2_LABEL _UxGT(" ") LCD_STR_THERMOMETER _UxGT("Base");
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Definições ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Arrefecer");
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Ligar");
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Desligar");
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Extrudir");
PROGMEM Language_Str MSG_RETRACT = _UxGT("Retrair");
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Mover eixo");
PROGMEM Language_Str MSG_MOVE_X = _UxGT("Mover X");
PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Mover Y");
PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Mover Z");
PROGMEM Language_Str MSG_MOVE_E = _UxGT("Mover Extrusor");
PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Mover Extrusor ") LCD_STR_E0;
PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Mover Extrusor ") LCD_STR_E1;
PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Mover Extrusor ") LCD_STR_E2;
PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Mover Extrusor ") LCD_STR_E3;
PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Mover Extrusor ") LCD_STR_E4;
PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Mover Extrusor ") LCD_STR_E5;
PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Mover %smm");
PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Mover 0.1mm");
PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Mover 1mm");
PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Mover 10mm");
PROGMEM Language_Str MSG_SPEED = _UxGT("Velocidade");
PROGMEM Language_Str MSG_BED_Z = _UxGT("Base Z");
PROGMEM Language_Str MSG_NOZZLE = " " LCD_STR_THERMOMETER _UxGT(" Bico");
PROGMEM Language_Str MSG_NOZZLE_0 = " " LCD_STR_THERMOMETER _UxGT(" Bico ") LCD_STR_N0;
PROGMEM Language_Str MSG_NOZZLE_1 = " " LCD_STR_THERMOMETER _UxGT(" Bico ") LCD_STR_N1;
PROGMEM Language_Str MSG_NOZZLE_2 = " " LCD_STR_THERMOMETER _UxGT(" Bico ") LCD_STR_N2;
PROGMEM Language_Str MSG_NOZZLE_3 = " " LCD_STR_THERMOMETER _UxGT(" Bico ") LCD_STR_N3;
PROGMEM Language_Str MSG_NOZZLE_4 = " " LCD_STR_THERMOMETER _UxGT(" Bico ") LCD_STR_N4;
PROGMEM Language_Str MSG_NOZZLE_5 = " " LCD_STR_THERMOMETER _UxGT(" Bico ") LCD_STR_N5;
PROGMEM Language_Str MSG_BED = " " LCD_STR_THERMOMETER _UxGT(" Base");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Vel. ventoinha");
PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Vel. ventoinha 1");
PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Vel. ventoinha 2");
PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Vel. ventoinha 3");
PROGMEM Language_Str MSG_FLOW = _UxGT("Fluxo");
PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Fluxo ") LCD_STR_N0;
PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Fluxo ") LCD_STR_N1;
PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Fluxo ") LCD_STR_N2;
PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Fluxo ") LCD_STR_N3;
PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Fluxo ") LCD_STR_N4;
PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Fluxo ") LCD_STR_N5;
PROGMEM Language_Str MSG_CONTROL = _UxGT("Controlo");
PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" Min");
PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" Max");
PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Fact");
PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-retracção");
PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A-movimento");
PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Passo/mm");
PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" passo/mm");
PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" passo/mm");
PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" passo/mm");
PROGMEM Language_Str MSG_E_STEPS = _UxGT("E passo/mm");
PROGMEM Language_Str MSG_E0_STEPS = LCD_STR_E0 _UxGT(" passo/mm");
PROGMEM Language_Str MSG_E1_STEPS = LCD_STR_E1 _UxGT(" passo/mm");
PROGMEM Language_Str MSG_E2_STEPS = LCD_STR_E2 _UxGT(" passo/mm");
PROGMEM Language_Str MSG_E3_STEPS = LCD_STR_E3 _UxGT(" passo/mm");
PROGMEM Language_Str MSG_E4_STEPS = LCD_STR_E4 _UxGT(" passo/mm");
PROGMEM Language_Str MSG_E5_STEPS = LCD_STR_E5 _UxGT(" passo/mm");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura");
PROGMEM Language_Str MSG_MOTION = _UxGT("Movimento");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filamento");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E em mm3");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Fil. Diam.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Fil. Diam. ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Fil. Diam. ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Fil. Diam. ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Fil. Diam. ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Fil. Diam. ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Fil. Diam. ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("Contraste");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Guardar na memoria");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Carregar da memoria");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Rest. de emergen.");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT(" Recarregar");
PROGMEM Language_Str MSG_WATCH = _UxGT("Monitorizar");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Preparar");
PROGMEM Language_Str MSG_TUNE = _UxGT("Afinar");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Pausar impressão");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Retomar impressão");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Parar impressão");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Imprimir do SD");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("Sem cartão SD");
PROGMEM Language_Str MSG_DWELL = _UxGT("Em espera...");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Á espera de ordem");
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Impressão cancelada");
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Sem movimento");
PROGMEM Language_Str MSG_KILLED = _UxGT("EMERGÊNCIA. ");
PROGMEM Language_Str MSG_STOPPED = _UxGT("PARADO. ");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT(" Retrair mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Troca Retrair mm");
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT(" Retrair V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT(" Levantar mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT(" DesRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("Troca DesRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT(" DesRet V");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT(" AutoRetr.");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Trocar filamento");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Trocar filamento ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Trocar filamento ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Trocar filamento ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Trocar filamento ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Trocar filamento ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Trocar filamento ") LCD_STR_E5;
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Inici. cartão SD");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Trocar cartão SD");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sensor fora/base");
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Desvio Z");
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Fim de curso");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Aquecimento falhou");
PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("Err: T Máxima");
PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("Err: T Mínima");
PROGMEM Language_Str MSG_ERR_MAXTEMP_BED = _UxGT("Err: T Base Máxima");
PROGMEM Language_Str MSG_ERR_MINTEMP_BED = _UxGT("Err: T Base Mínima");
PROGMEM Language_Str MSG_HEATING = _UxGT("Aquecendo...");
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Aquecendo base...");
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Calibração Delta");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Calibrar X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Calibrar Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Calibrar Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Calibrar Centro");
PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Fim de curso");
PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Impressora Incorreta");
}

View file

@ -29,416 +29,464 @@
* See also http://marlinfw.org/docs/development/lcd_language.html * See also http://marlinfw.org/docs/development/lcd_language.html
* *
*/ */
namespace Language_pt_br {
using namespace Language_en; // Inherit undefined strings from English
// Put characters here that should be displayed with M117 constexpr uint8_t CHARSIZE = 2;
//_UxGT("áãàçÉéêíóõ") PROGMEM Language_Str LANGUAGE = _UxGT("Portuguese (BR)");
#define CHARSIZE 2 PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" pronto.");
#define WELCOME_MSG MACHINE_NAME _UxGT(" pronto.") PROGMEM Language_Str MSG_BACK = _UxGT("Voltar");
PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Cartão inserido");
PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Cartão removido");
PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Fins de curso");
PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("Soft Fins curso");
PROGMEM Language_Str MSG_MAIN = _UxGT("Menu principal");
PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("Config. Avançada");
PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("Configuração");
PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Início automático");
PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Desabilit. motores");
PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("Menu Debug");
PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Testar Barra Progres");
PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Ir a origem XYZ");
PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Ir na origem X");
PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Ir na origem Y");
PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Ir na origem Z");
PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("Auto alinhar Z");
PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Indo para origem");
PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Clique para Iniciar");
PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Próximo Ponto");
PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Fim nivelação!");
PROGMEM Language_Str MSG_Z_FADE_HEIGHT = _UxGT("Suavizar altura");
PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Compensar origem");
PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Alteração aplicada");
PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Ajustar Origem");
PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Pre-aquecer ") PREHEAT_1_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Extrusora ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Extrusora ") PREHEAT_1_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Extrusora ") PREHEAT_1_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Extrusora ") PREHEAT_1_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Extrusora ") PREHEAT_1_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Extrusora ") PREHEAT_1_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Extrusora ") PREHEAT_1_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Pre-aq.Todo ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Pre-aq.Mesa ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Ajustar ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Pre-aquecer ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Pre-aquecer ") PREHEAT_2_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Pre-aquecer ") PREHEAT_2_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Pre-aquecer ") PREHEAT_2_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Pre-aquecer ") PREHEAT_2_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Pre-aquecer ") PREHEAT_2_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Pre-aquecer ") PREHEAT_2_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Extrusora ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Extrusora ") PREHEAT_2_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Extrusora ") PREHEAT_2_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Extrusora ") PREHEAT_2_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Extrusora ") PREHEAT_2_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Extrusora ") PREHEAT_2_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Extrusora ") PREHEAT_2_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Pre-aq.Todo ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Pre-aq.Mesa ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Ajustar ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_CUSTOM = _UxGT("Customizar Pre-aq.");
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Esfriar");
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Ligar");
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Desligar");
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Extrusar");
PROGMEM Language_Str MSG_RETRACT = _UxGT("Retrair");
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Mover eixo");
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Nivelação Mesa");
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Nivelar Mesa");
PROGMEM Language_Str MSG_LEVEL_CORNERS = _UxGT("Nivelar Cantos");
PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("Próximo Canto");
PROGMEM Language_Str MSG_EDIT_MESH = _UxGT("Editar Malha");
PROGMEM Language_Str MSG_EDITING_STOPPED = _UxGT("Fim da Edição");
PROGMEM Language_Str MSG_MESH_X = _UxGT("Índice X");
PROGMEM Language_Str MSG_MESH_Y = _UxGT("Índice Y");
PROGMEM Language_Str MSG_MESH_EDIT_Z = _UxGT("Valor Z");
PROGMEM Language_Str MSG_USER_MENU = _UxGT("Comando customizado");
#define MSG_BACK _UxGT("Voltar") PROGMEM Language_Str MSG_IDEX_MENU = _UxGT("Modo IDEX");
#define MSG_MEDIA_INSERTED _UxGT("Cartão inserido") PROGMEM Language_Str MSG_IDEX_MODE_AUTOPARK = _UxGT("Auto-Estacionar");
#define MSG_MEDIA_REMOVED _UxGT("Cartão removido") PROGMEM Language_Str MSG_IDEX_MODE_DUPLICATE = _UxGT("Duplicação");
#define MSG_LCD_ENDSTOPS _UxGT("Fins de curso") PROGMEM Language_Str MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Cópia espelhada");
#define MSG_LCD_SOFT_ENDSTOPS _UxGT("Soft Fins curso") PROGMEM Language_Str MSG_IDEX_MODE_FULL_CTRL = _UxGT("Controle Total");
#define MSG_MAIN _UxGT("Menu principal") PROGMEM Language_Str MSG_X_OFFSET = _UxGT("2o bico X");
#define MSG_ADVANCED_SETTINGS _UxGT("Config. Avançada") PROGMEM Language_Str MSG_Y_OFFSET = _UxGT("2o bico Y");
#define MSG_CONFIGURATION _UxGT("Configuração") PROGMEM Language_Str MSG_Z_OFFSET = _UxGT("2o bico Z");
#define MSG_AUTOSTART _UxGT("Início automático")
#define MSG_DISABLE_STEPPERS _UxGT("Desabilit. motores")
#define MSG_DEBUG_MENU _UxGT("Menu Debug")
#define MSG_PROGRESS_BAR_TEST _UxGT("Testar Barra Progres")
#define MSG_AUTO_HOME _UxGT("Ir a origem XYZ")
#define MSG_AUTO_HOME_X _UxGT("Ir na origem X")
#define MSG_AUTO_HOME_Y _UxGT("Ir na origem Y")
#define MSG_AUTO_HOME_Z _UxGT("Ir na origem Z")
#define MSG_AUTO_Z_ALIGN _UxGT("Auto alinhar Z")
#define MSG_LEVEL_BED_HOMING _UxGT("Indo para origem")
#define MSG_LEVEL_BED_WAITING _UxGT("Clique para Iniciar")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Próximo Ponto")
#define MSG_LEVEL_BED_DONE _UxGT("Fim nivelação!")
#define MSG_Z_FADE_HEIGHT _UxGT("Suavizar altura")
#define MSG_SET_HOME_OFFSETS _UxGT("Compensar origem")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Alteração aplicada")
#define MSG_SET_ORIGIN _UxGT("Ajustar Origem")
#define MSG_PREHEAT_1 _UxGT("Pre-aquecer " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ")
#define MSG_PREHEAT_1_ALL _UxGT("Pre-aq.Todo " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_END _UxGT("Extrusora " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_BEDONLY _UxGT("Pre-aq.Mesa " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_SETTINGS _UxGT("Ajustar " PREHEAT_1_LABEL)
#define MSG_PREHEAT_2 _UxGT("Pre-aquecer " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ")
#define MSG_PREHEAT_2_ALL _UxGT("Pre-aq.Todo " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_END _UxGT("Extrusora " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_BEDONLY _UxGT("Pre-aq.Mesa " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_SETTINGS _UxGT("Ajustar " PREHEAT_2_LABEL)
#define MSG_PREHEAT_CUSTOM _UxGT("Customizar Pre-aq.")
#define MSG_COOLDOWN _UxGT("Esfriar")
#define MSG_SWITCH_PS_ON _UxGT("Ligar")
#define MSG_SWITCH_PS_OFF _UxGT("Desligar")
#define MSG_EXTRUDE _UxGT("Extrusar")
#define MSG_RETRACT _UxGT("Retrair")
#define MSG_MOVE_AXIS _UxGT("Mover eixo")
#define MSG_BED_LEVELING _UxGT("Nivelação Mesa")
#define MSG_LEVEL_BED _UxGT("Nivelar Mesa")
#define MSG_LEVEL_CORNERS _UxGT("Nivelar Cantos")
#define MSG_NEXT_CORNER _UxGT("Próximo Canto")
#define MSG_EDIT_MESH _UxGT("Editar Malha")
#define MSG_EDITING_STOPPED _UxGT("Fim da Edição")
#define MSG_MESH_X _UxGT("Índice X")
#define MSG_MESH_Y _UxGT("Índice Y")
#define MSG_MESH_EDIT_Z _UxGT("Valor Z")
#define MSG_USER_MENU _UxGT("Comando customizado")
#define MSG_IDEX_MENU _UxGT("Modo IDEX") PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("Executando G29");
#define MSG_IDEX_MODE_AUTOPARK _UxGT("Auto-Estacionar") PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("Ferramentas UBL");
#define MSG_IDEX_MODE_DUPLICATE _UxGT("Duplicação") PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("Nivel. Mesa Unif.");
#define MSG_IDEX_MODE_MIRRORED_COPY _UxGT("Cópia espelhada") PROGMEM Language_Str MSG_UBL_MANUAL_MESH = _UxGT("Fazer malha manual");
#define MSG_IDEX_MODE_FULL_CTRL _UxGT("Controle Total") PROGMEM Language_Str MSG_UBL_BC_INSERT = _UxGT("Calçar e calibrar");
#define MSG_X_OFFSET _UxGT("2o bico X") PROGMEM Language_Str MSG_UBL_BC_INSERT2 = _UxGT("Medir");
#define MSG_Y_OFFSET _UxGT("2o bico Y") PROGMEM Language_Str MSG_UBL_BC_REMOVE = _UxGT("Remover e calibrar");
#define MSG_Z_OFFSET _UxGT("2o bico Z") PROGMEM Language_Str MSG_UBL_MOVING_TO_NEXT = _UxGT("Movendo para Próximo");
PROGMEM Language_Str MSG_UBL_ACTIVATE_MESH = _UxGT("Ativar UBL");
PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("Desativar UBL");
PROGMEM Language_Str MSG_UBL_SET_TEMP_BED = _UxGT("Temp. Mesa");
PROGMEM Language_Str MSG_UBL_BED_TEMP_CUSTOM = _UxGT("Bed Temp");
PROGMEM Language_Str MSG_UBL_SET_TEMP_HOTEND = _UxGT("Temp. Extrusora");
PROGMEM Language_Str MSG_UBL_HOTEND_TEMP_CUSTOM = _UxGT("Hotend Temp");
PROGMEM Language_Str MSG_UBL_MESH_EDIT = _UxGT("Editar Malha");
PROGMEM Language_Str MSG_UBL_EDIT_CUSTOM_MESH = _UxGT("Editar Malha Custom");
PROGMEM Language_Str MSG_UBL_FINE_TUNE_MESH = _UxGT("Ajuste Fino da Malha");
PROGMEM Language_Str MSG_UBL_DONE_EDITING_MESH = _UxGT("Fim da Edição");
PROGMEM Language_Str MSG_UBL_BUILD_CUSTOM_MESH = _UxGT("Montar Malha Custom");
PROGMEM Language_Str MSG_UBL_BUILD_MESH_MENU = _UxGT("Montar ");
PROGMEM Language_Str MSG_UBL_BUILD_MESH_M1 = _UxGT("Montar ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_UBL_BUILD_MESH_M2 = _UxGT("Montar ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_UBL_BUILD_COLD_MESH = _UxGT("Montar Malha fria");
PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_ADJUST = _UxGT("Ajustar Altura");
PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_AMOUNT = _UxGT("Quant. de Altura");
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_MENU = _UxGT("Validar Malha");
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M1 = _UxGT("Checar ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M2 = _UxGT("Checar ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("Validar Malha Custom");
PROGMEM Language_Str MSG_UBL_CONTINUE_MESH = _UxGT("Continuar Malha");
PROGMEM Language_Str MSG_UBL_MESH_LEVELING = _UxGT("Nivelação da Malha");
PROGMEM Language_Str MSG_UBL_3POINT_MESH_LEVELING = _UxGT("Nivelação 3 pontos");
PROGMEM Language_Str MSG_UBL_GRID_MESH_LEVELING = _UxGT("Nivelação Grid");
PROGMEM Language_Str MSG_UBL_MESH_LEVEL = _UxGT("Nivelar Malha");
PROGMEM Language_Str MSG_UBL_SIDE_POINTS = _UxGT("Cantos");
PROGMEM Language_Str MSG_UBL_MAP_TYPE = _UxGT("Tipo de Mapa");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP = _UxGT("Salvar Mapa da Malha");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_HOST = _UxGT("Enviar Para Host");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_CSV = _UxGT("Salvar Malha CSV");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_BACKUP = _UxGT("Salvar Backup");
PROGMEM Language_Str MSG_UBL_INFO_UBL = _UxGT("Informação do UBL");
PROGMEM Language_Str MSG_UBL_FILLIN_AMOUNT = _UxGT("Qtd de Enchimento");
PROGMEM Language_Str MSG_UBL_MANUAL_FILLIN = _UxGT("Enchimento Manual");
PROGMEM Language_Str MSG_UBL_SMART_FILLIN = _UxGT("Enchimento Smart");
PROGMEM Language_Str MSG_UBL_FILLIN_MESH = _UxGT("Preencher malha");
PROGMEM Language_Str MSG_UBL_INVALIDATE_ALL = _UxGT("Invalidar tudo");
PROGMEM Language_Str MSG_UBL_INVALIDATE_CLOSEST = _UxGT("Invalidar próximo");
PROGMEM Language_Str MSG_UBL_FINE_TUNE_ALL = _UxGT("Ajuste Fino de Todos");
PROGMEM Language_Str MSG_UBL_FINE_TUNE_CLOSEST = _UxGT("Ajustar Mais Próximo");
PROGMEM Language_Str MSG_UBL_STORAGE_MESH_MENU = _UxGT("Armazenamento Malha");
PROGMEM Language_Str MSG_UBL_STORAGE_SLOT = _UxGT("Slot de Memória");
PROGMEM Language_Str MSG_UBL_LOAD_MESH = _UxGT("Ler Malha");
PROGMEM Language_Str MSG_UBL_SAVE_MESH = _UxGT("Salvar Malha");
PROGMEM Language_Str MSG_MESH_LOADED = _UxGT("M117 Malha %i carregada");
PROGMEM Language_Str MSG_MESH_SAVED = _UxGT("M117 Malha %i salva");
PROGMEM Language_Str MSG_UBL_NO_STORAGE = _UxGT("Sem armazenamento");
PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("Erro ao salvar UBL");
PROGMEM Language_Str MSG_UBL_RESTORE_ERROR = _UxGT("Erro no restauro UBL");
PROGMEM Language_Str MSG_UBL_Z_OFFSET_STOPPED = _UxGT("Compensação Z parou");
PROGMEM Language_Str MSG_UBL_STEP_BY_STEP_MENU = _UxGT("UBL passo a passo");
PROGMEM Language_Str MSG_UBL_1_BUILD_COLD_MESH = _UxGT("1.Montar Malha fria");
PROGMEM Language_Str MSG_UBL_2_SMART_FILLIN = _UxGT("2.Enchimento Smart");
PROGMEM Language_Str MSG_UBL_3_VALIDATE_MESH_MENU = _UxGT("3.Validar Malha");
PROGMEM Language_Str MSG_UBL_4_FINE_TUNE_ALL = _UxGT("4.Ajuste Fino de Todos");
PROGMEM Language_Str MSG_UBL_5_VALIDATE_MESH_MENU = _UxGT("5.Validar Malha");
PROGMEM Language_Str MSG_UBL_6_FINE_TUNE_ALL = _UxGT("6.Ajuste Fino de Todos");
PROGMEM Language_Str MSG_UBL_7_SAVE_MESH = _UxGT("7.Salvar Malha");
#define MSG_UBL_DOING_G29 _UxGT("Executando G29") PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("Controle do LED");
#define MSG_UBL_TOOLS _UxGT("Ferramentas UBL") PROGMEM Language_Str MSG_LEDS = _UxGT("Luz");
#define MSG_UBL_LEVEL_BED _UxGT("Nivel. Mesa Unif.") PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("Configuração da Luz");
#define MSG_UBL_MANUAL_MESH _UxGT("Fazer malha manual") PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("Luz Vermelha");
#define MSG_UBL_BC_INSERT _UxGT("Calçar e calibrar") PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("Luz Laranja");
#define MSG_UBL_BC_INSERT2 _UxGT("Medir") PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("Luz Amarela");
#define MSG_UBL_BC_REMOVE _UxGT("Remover e calibrar") PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("Luz Verde");
#define MSG_UBL_MOVING_TO_NEXT _UxGT("Movendo para Próximo") PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("Luz Azul");
#define MSG_UBL_ACTIVATE_MESH _UxGT("Ativar UBL") PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("Luz Indigo");
#define MSG_UBL_DEACTIVATE_MESH _UxGT("Desativar UBL") PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Luz Violeta");
#define MSG_UBL_SET_TEMP_BED _UxGT("Temp. Mesa") PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("Luz Branca");
#define MSG_UBL_BED_TEMP_CUSTOM MSG_UBL_SET_TEMP_BED PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("Luz Padrão");
#define MSG_UBL_SET_TEMP_HOTEND _UxGT("Temp. Extrusora") PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("Luz Customizada");
#define MSG_UBL_HOTEND_TEMP_CUSTOM MSG_UBL_SET_TEMP_HOTEND PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Intensidade Vermelho");
#define MSG_UBL_MESH_EDIT _UxGT("Editar Malha") PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Intensidade Verde");
#define MSG_UBL_EDIT_CUSTOM_MESH _UxGT("Editar Malha Custom") PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("Intensidade Azul");
#define MSG_UBL_FINE_TUNE_MESH _UxGT("Ajuste Fino da Malha") PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("Intensidade Branco");
#define MSG_UBL_DONE_EDITING_MESH _UxGT("Fim da Edição") PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("Brilho");
#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Montar Malha Custom") PROGMEM Language_Str MSG_MOVING = _UxGT("Movendo...");
#define MSG_UBL_BUILD_MESH_MENU _UxGT("Montar ") PROGMEM Language_Str MSG_FREE_XY = _UxGT("Liberar XY");
#define MSG_UBL_BUILD_MESH_M1 _UxGT("Montar " PREHEAT_1_LABEL) PROGMEM Language_Str MSG_MOVE_X = _UxGT("Mover X");
#define MSG_UBL_BUILD_MESH_M2 _UxGT("Montar " PREHEAT_2_LABEL) PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Mover Y");
#define MSG_UBL_BUILD_COLD_MESH _UxGT("Montar Malha fria") PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Mover Z");
#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Ajustar Altura") PROGMEM Language_Str MSG_MOVE_E = _UxGT("Mover Extrusor");
#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Quant. de Altura") PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Mover Extrusor ") LCD_STR_E0;
#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("Validar Malha") PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Mover Extrusor ") LCD_STR_E1;
#define MSG_UBL_VALIDATE_MESH_M1 _UxGT("Checar " PREHEAT_1_LABEL) PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Mover Extrusor ") LCD_STR_E2;
#define MSG_UBL_VALIDATE_MESH_M2 _UxGT("Checar " PREHEAT_2_LABEL) PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Mover Extrusor ") LCD_STR_E3;
#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Validar Malha Custom") PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Mover Extrusor ") LCD_STR_E4;
#define MSG_UBL_CONTINUE_MESH _UxGT("Continuar Malha") PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Mover Extrusor ") LCD_STR_E5;
#define MSG_UBL_MESH_LEVELING _UxGT("Nivelação da Malha") PROGMEM Language_Str MSG_HOTEND_TOO_COLD = _UxGT("Extrus. mto fria");
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("Nivelação 3 pontos") PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Mover %smm");
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Nivelação Grid") PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Mover 0.1mm");
#define MSG_UBL_MESH_LEVEL _UxGT("Nivelar Malha") PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Mover 1mm");
#define MSG_UBL_SIDE_POINTS _UxGT("Cantos") PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Mover 10mm");
#define MSG_UBL_MAP_TYPE _UxGT("Tipo de Mapa") PROGMEM Language_Str MSG_SPEED = _UxGT("Velocidade");
#define MSG_UBL_OUTPUT_MAP _UxGT("Salvar Mapa da Malha") PROGMEM Language_Str MSG_BED_Z = _UxGT("Base Z");
#define MSG_UBL_OUTPUT_MAP_HOST _UxGT("Enviar Para Host") PROGMEM Language_Str MSG_NOZZLE = _UxGT("Bocal");
#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Salvar Malha CSV") PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Bocal ") LCD_STR_N0;
#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Salvar Backup") PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Bocal ") LCD_STR_N1;
#define MSG_UBL_INFO_UBL _UxGT("Informação do UBL") PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Bocal ") LCD_STR_N2;
#define MSG_UBL_FILLIN_AMOUNT _UxGT("Qtd de Enchimento") PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Bocal ") LCD_STR_N3;
#define MSG_UBL_MANUAL_FILLIN _UxGT("Enchimento Manual") PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Bocal ") LCD_STR_N4;
#define MSG_UBL_SMART_FILLIN _UxGT("Enchimento Smart") PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Bocal ") LCD_STR_N5;
#define MSG_UBL_FILLIN_MESH _UxGT("Preencher malha") PROGMEM Language_Str MSG_BED = _UxGT("Mesa");
#define MSG_UBL_INVALIDATE_ALL _UxGT("Invalidar tudo") PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Vel. Ventoinha");
#define MSG_UBL_INVALIDATE_CLOSEST _UxGT("Invalidar próximo") PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Vel. Ventoinha 1");
#define MSG_UBL_FINE_TUNE_ALL _UxGT("Ajuste Fino de Todos") PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Vel. Ventoinha 2");
#define MSG_UBL_FINE_TUNE_CLOSEST _UxGT("Ajustar Mais Próximo") PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Vel. Ventoinha 3");
#define MSG_UBL_STORAGE_MESH_MENU _UxGT("Armazenamento Malha") PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("+Vel. Ventoinha");
#define MSG_UBL_STORAGE_SLOT _UxGT("Slot de Memória") PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_1 = _UxGT("+Vel. Ventoinha 1");
#define MSG_UBL_LOAD_MESH _UxGT("Ler Malha") PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_2 = _UxGT("+Vel. Ventoinha 2");
#define MSG_UBL_SAVE_MESH _UxGT("Salvar Malha") PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_3 = _UxGT("+Vel. Ventoinha 3");
#define MSG_MESH_LOADED _UxGT("Malha %i carregada") PROGMEM Language_Str MSG_FLOW = _UxGT("Vazão");
#define MSG_MESH_SAVED _UxGT("Malha %i salva") PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Vazão ") LCD_STR_N0;
#define MSG_UBL_NO_STORAGE _UxGT("Sem armazenamento") PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Vazão ") LCD_STR_N1;
#define MSG_UBL_SAVE_ERROR _UxGT("Erro ao salvar UBL") PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Vazão ") LCD_STR_N2;
#define MSG_UBL_RESTORE_ERROR _UxGT("Erro no restauro UBL") PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Vazão ") LCD_STR_N3;
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Compensação Z parou") PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Vazão ") LCD_STR_N4;
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("UBL passo a passo") PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Vazão ") LCD_STR_N5;
#define MSG_LED_CONTROL _UxGT("Controle do LED") PROGMEM Language_Str MSG_CONTROL = _UxGT("Controle");
#define MSG_LEDS _UxGT("Luz") PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" Min");
#define MSG_LED_PRESETS _UxGT("Configuração da Luz") PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" Máx");
#define MSG_SET_LEDS_RED _UxGT("Luz Vermelha") PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Fator");
#define MSG_SET_LEDS_ORANGE _UxGT("Luz Laranja") PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Temp. Automática");
#define MSG_SET_LEDS_YELLOW _UxGT("Luz Amarela") PROGMEM Language_Str MSG_LCD_ON = _UxGT("Ligado");
#define MSG_SET_LEDS_GREEN _UxGT("Luz Verde") PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Desligado");
#define MSG_SET_LEDS_BLUE _UxGT("Luz Azul") PROGMEM Language_Str MSG_SELECT = _UxGT("Selecionar");
#define MSG_SET_LEDS_INDIGO _UxGT("Luz Indigo") PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("Selecionar ") LCD_STR_E0;
#define MSG_SET_LEDS_VIOLET _UxGT("Luz Violeta") PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("Selecionar ") LCD_STR_E1;
#define MSG_SET_LEDS_WHITE _UxGT("Luz Branca") PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("Selecionar ") LCD_STR_E2;
#define MSG_SET_LEDS_DEFAULT _UxGT("Luz Padrão") PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("Selecionar ") LCD_STR_E3;
#define MSG_CUSTOM_LEDS _UxGT("Luz Customizada") PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("Selecionar ") LCD_STR_E4;
#define MSG_INTENSITY_R _UxGT("Intensidade Vermelho") PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("Selecionar ") LCD_STR_E5;
#define MSG_INTENSITY_G _UxGT("Intensidade Verde") PROGMEM Language_Str MSG_ACC = _UxGT("Acel.");
#define MSG_INTENSITY_B _UxGT("Intensidade Azul") PROGMEM Language_Str MSG_JERK = _UxGT("Arrancada");
#define MSG_INTENSITY_W _UxGT("Intensidade Branco") PROGMEM Language_Str MSG_VA_JERK = _UxGT("arrancada V") LCD_STR_A;
#define MSG_LED_BRIGHTNESS _UxGT("Brilho") PROGMEM Language_Str MSG_VB_JERK = _UxGT("arrancada V") LCD_STR_B;
#define MSG_MOVING _UxGT("Movendo...") PROGMEM Language_Str MSG_VC_JERK = _UxGT("arrancada V") LCD_STR_C;
#define MSG_FREE_XY _UxGT("Liberar XY") PROGMEM Language_Str MSG_VE_JERK = _UxGT("arrancada VE");
#define MSG_MOVE_X _UxGT("Mover X") PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Desv. Junção");
#define MSG_MOVE_Y _UxGT("Mover Y") PROGMEM Language_Str MSG_VELOCITY = _UxGT("Velocidade");
#define MSG_MOVE_Z _UxGT("Mover Z") PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("VDeslocamento min");
#define MSG_MOVE_E _UxGT("Mover Extrusor") PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Aceleração");
#define MSG_HOTEND_TOO_COLD _UxGT("Extrus. mto fria") PROGMEM Language_Str MSG_A_RETRACT = _UxGT("Retrair A");
#define MSG_MOVE_Z_DIST _UxGT("Mover %smm") PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("Movimento A");
#define MSG_MOVE_01MM _UxGT("Mover 0.1mm") PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Passo/mm");
#define MSG_MOVE_1MM _UxGT("Mover 1mm") PROGMEM Language_Str MSG_A_STEPS = _UxGT("Passo ") LCD_STR_A _UxGT("/mm");
#define MSG_MOVE_10MM _UxGT("Mover 10mm") PROGMEM Language_Str MSG_B_STEPS = _UxGT("Passo ") LCD_STR_B _UxGT("/mm");
#define MSG_SPEED _UxGT("Velocidade") PROGMEM Language_Str MSG_C_STEPS = _UxGT("Passo ") LCD_STR_C _UxGT("/mm");
#define MSG_BED_Z _UxGT("Base Z") PROGMEM Language_Str MSG_E_STEPS = _UxGT("E/mm");
#define MSG_NOZZLE _UxGT("Bocal") PROGMEM Language_Str MSG_E0_STEPS = LCD_STR_E0 _UxGT("/mm");
#define MSG_BED _UxGT("Mesa") PROGMEM Language_Str MSG_E1_STEPS = LCD_STR_E1 _UxGT("/mm");
#define MSG_FAN_SPEED _UxGT("Vel. Ventoinha") PROGMEM Language_Str MSG_E2_STEPS = LCD_STR_E2 _UxGT("/mm");
#define MSG_EXTRA_FAN_SPEED _UxGT("+Vel. Ventoinha") PROGMEM Language_Str MSG_E3_STEPS = LCD_STR_E3 _UxGT("/mm");
#define MSG_FLOW _UxGT("Vazão") PROGMEM Language_Str MSG_E4_STEPS = LCD_STR_E4 _UxGT("/mm");
#define MSG_CONTROL _UxGT("Controle") PROGMEM Language_Str MSG_E5_STEPS = LCD_STR_E5 _UxGT("/mm");
#define MSG_MIN LCD_STR_THERMOMETER _UxGT(" Min") PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura");
#define MSG_MAX LCD_STR_THERMOMETER _UxGT(" Máx") PROGMEM Language_Str MSG_MOTION = _UxGT("Movimento");
#define MSG_FACTOR LCD_STR_THERMOMETER _UxGT(" Fator") PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filamento");
#define MSG_AUTOTEMP _UxGT("Temp. Automática") PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("Extrusão em mm3");
#define MSG_LCD_ON _UxGT("Ligado") PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Diâmetro Fil.");
#define MSG_LCD_OFF _UxGT("Desligado") PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Diâmetro Fil. ") LCD_STR_E0;
#define MSG_PID_P _UxGT("PID-P") PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Diâmetro Fil. ") LCD_STR_E1;
#define MSG_PID_I _UxGT("PID-I") PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Diâmetro Fil. ") LCD_STR_E2;
#define MSG_PID_D _UxGT("PID-D") PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Diâmetro Fil. ") LCD_STR_E3;
#define MSG_PID_C _UxGT("PID-C") PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Diâmetro Fil. ") LCD_STR_E4;
#define MSG_SELECT _UxGT("Selecionar") PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Diâmetro Fil. ") LCD_STR_E5;
#define MSG_ACC _UxGT("Acel.") PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("Descarr. mm");
#define MSG_JERK _UxGT("Arrancada") PROGMEM Language_Str MSG_FILAMENT_LOAD = _UxGT("Carregar mm");
#if IS_KINEMATIC PROGMEM Language_Str MSG_ADVANCE_K = _UxGT("Avanço K");
#define MSG_VA_JERK _UxGT("arrancada VA") PROGMEM Language_Str MSG_ADVANCE_K_E0 = _UxGT("Avanço K ") LCD_STR_E0;
#define MSG_VB_JERK _UxGT("arrancada VB") PROGMEM Language_Str MSG_ADVANCE_K_E1 = _UxGT("Avanço K ") LCD_STR_E1;
#define MSG_VC_JERK _UxGT("arrancada VC") PROGMEM Language_Str MSG_ADVANCE_K_E2 = _UxGT("Avanço K ") LCD_STR_E2;
#else PROGMEM Language_Str MSG_ADVANCE_K_E3 = _UxGT("Avanço K ") LCD_STR_E3;
#define MSG_VA_JERK _UxGT("arrancada VX") PROGMEM Language_Str MSG_ADVANCE_K_E4 = _UxGT("Avanço K ") LCD_STR_E4;
#define MSG_VB_JERK _UxGT("arrancada VY") PROGMEM Language_Str MSG_ADVANCE_K_E5 = _UxGT("Avanço K ") LCD_STR_E5;
#define MSG_VC_JERK _UxGT("arrancada VZ") PROGMEM Language_Str MSG_CONTRAST = _UxGT("Contraste");
#endif PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Salvar Configuração");
#define MSG_VE_JERK _UxGT("arrancada VE") PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Ler Configuração");
#define MSG_JUNCTION_DEVIATION _UxGT("Desv. Junção") PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Restauro seguro");
#define MSG_VELOCITY _UxGT("Velocidade") PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("Iniciar EEPROM");
#define MSG_VMAX _UxGT("Vmax ") PROGMEM Language_Str MSG_MEDIA_UPDATE = _UxGT("Atualiz. SD");
#define MSG_VMIN _UxGT("Vmin") PROGMEM Language_Str MSG_RESET_PRINTER = _UxGT("Resetar Impressora");
#define MSG_VTRAV_MIN _UxGT("VDeslocamento min") PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Atualização");
#define MSG_ACCELERATION _UxGT("Aceleração") PROGMEM Language_Str MSG_WATCH = _UxGT("Informações");
#define MSG_AMAX _UxGT("Amax ") PROGMEM Language_Str MSG_PREPARE = _UxGT("Preparar");
#define MSG_A_RETRACT _UxGT("Retrair A") PROGMEM Language_Str MSG_TUNE = _UxGT("Ajustar");
#define MSG_A_TRAVEL _UxGT("Movimento A") PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Pausar impressão");
#define MSG_STEPS_PER_MM _UxGT("Passo/mm") PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Resumir impressão");
#if IS_KINEMATIC PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Parar impressão");
#define MSG_ASTEPS _UxGT("Passo A/mm") PROGMEM Language_Str MSG_OUTAGE_RECOVERY = _UxGT("Recuperar Impressão");
#define MSG_BSTEPS _UxGT("Passo B/mm") PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Imprimir do SD");
#define MSG_CSTEPS _UxGT("Passo C/mm") PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("Sem cartão SD");
#else PROGMEM Language_Str MSG_DWELL = _UxGT("Dormindo...");
#define MSG_ASTEPS _UxGT("Passo X/mm") PROGMEM Language_Str MSG_USERWAIT = _UxGT("Clique para retomar");
#define MSG_BSTEPS _UxGT("Passo Y/mm") PROGMEM Language_Str MSG_PRINT_PAUSED = _UxGT("Impressão Pausada");
#define MSG_CSTEPS _UxGT("Passo Z/mm") PROGMEM Language_Str MSG_PRINTING = _UxGT("Imprimindo...");
#endif PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Impressão Abortada");
#define MSG_ESTEPS _UxGT("E/mm") PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Sem movimento");
#define MSG_E0_STEPS _UxGT("E1/mm") PROGMEM Language_Str MSG_KILLED = _UxGT("PARADA DE EMERGÊNCIA");
#define MSG_E1_STEPS _UxGT("E2/mm") PROGMEM Language_Str MSG_STOPPED = _UxGT("PAROU. ");
#define MSG_E2_STEPS _UxGT("E3/mm") PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Retrair mm");
#define MSG_E3_STEPS _UxGT("E4/mm") PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Retrair Troca mm");
#define MSG_E4_STEPS _UxGT("E5/mm") PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Retrair V");
#define MSG_E5_STEPS _UxGT("E6/mm") PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Saltar mm");
#define MSG_TEMPERATURE _UxGT("Temperatura") PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("Des-Retrair mm");
#define MSG_MOTION _UxGT("Movimento") PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("Des-RetTroca mm");
#define MSG_FILAMENT _UxGT("Filamento") PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("Des-Retrair V");
#define MSG_VOLUMETRIC_ENABLED _UxGT("Extrusão em mm3") PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAPF = _UxGT("Des-RetTroca V");
#define MSG_FILAMENT_DIAM _UxGT("Diâmetro Fil.") PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Retração Automática");
#define MSG_FILAMENT_UNLOAD _UxGT("Descarr. mm") PROGMEM Language_Str MSG_FILAMENT_SWAP_LENGTH = _UxGT("Distancia Retração");
#define MSG_FILAMENT_LOAD _UxGT("Carregar mm") PROGMEM Language_Str MSG_TOOL_CHANGE = _UxGT("Mudar Ferramenta");
#define MSG_ADVANCE_K _UxGT("Avanço K") PROGMEM Language_Str MSG_TOOL_CHANGE_ZLIFT = _UxGT("Levantar Z");
#define MSG_CONTRAST _UxGT("Contraste") PROGMEM Language_Str MSG_SINGLENOZZLE_PRIME_SPD = _UxGT("Preparar Veloc.");
#define MSG_STORE_EEPROM _UxGT("Salvar Configuração") PROGMEM Language_Str MSG_SINGLENOZZLE_RETRACT_SPD = _UxGT("Veloc. Retração");
#define MSG_LOAD_EEPROM _UxGT("Ler Configuração") PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Trocar Filamento");
#define MSG_RESTORE_FAILSAFE _UxGT("Restauro seguro") PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Trocar Filamento ") LCD_STR_E0;
#define MSG_INIT_EEPROM _UxGT("Iniciar EEPROM") PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Trocar Filamento ") LCD_STR_E1;
#define MSG_MEDIA_UPDATE _UxGT("Atualiz. SD") PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Trocar Filamento ") LCD_STR_E2;
#define MSG_RESET_PRINTER _UxGT("Resetar Impressora") PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Trocar Filamento ") LCD_STR_E3;
#define MSG_REFRESH _UxGT("Atualização") PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Trocar Filamento ") LCD_STR_E4;
#define MSG_WATCH _UxGT("Informações") PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Trocar Filamento ") LCD_STR_E5;
#define MSG_PREPARE _UxGT("Preparar") PROGMEM Language_Str MSG_FILAMENTLOAD_E0 = _UxGT("Carregar Filamento ") LCD_STR_E0;
#define MSG_TUNE _UxGT("Ajustar") PROGMEM Language_Str MSG_FILAMENTLOAD_E1 = _UxGT("Carregar Filamento ") LCD_STR_E1;
#define MSG_PAUSE_PRINT _UxGT("Pausar impressão") PROGMEM Language_Str MSG_FILAMENTLOAD_E2 = _UxGT("Carregar Filamento ") LCD_STR_E2;
#define MSG_RESUME_PRINT _UxGT("Resumir impressão") PROGMEM Language_Str MSG_FILAMENTLOAD_E3 = _UxGT("Carregar Filamento ") LCD_STR_E3;
#define MSG_STOP_PRINT _UxGT("Parar impressão") PROGMEM Language_Str MSG_FILAMENTLOAD_E4 = _UxGT("Carregar Filamento ") LCD_STR_E4;
#define MSG_OUTAGE_RECOVERY _UxGT("Recuperar Impressão") PROGMEM Language_Str MSG_FILAMENTLOAD_E5 = _UxGT("Carregar Filamento ") LCD_STR_E5;
#define MSG_MEDIA_MENU _UxGT("Imprimir do SD") PROGMEM Language_Str MSG_FILAMENTUNLOAD_E0 = _UxGT("Descarreg. Filamento ") LCD_STR_E0;
#define MSG_NO_MEDIA _UxGT("Sem cartão SD") PROGMEM Language_Str MSG_FILAMENTUNLOAD_E1 = _UxGT("Descarreg. Filamento ") LCD_STR_E1;
#define MSG_DWELL _UxGT("Dormindo...") PROGMEM Language_Str MSG_FILAMENTUNLOAD_E2 = _UxGT("Descarreg. Filamento ") LCD_STR_E2;
#define MSG_USERWAIT _UxGT("Clique para retomar") PROGMEM Language_Str MSG_FILAMENTUNLOAD_E3 = _UxGT("Descarreg. Filamento ") LCD_STR_E3;
#define MSG_PRINT_PAUSED _UxGT("Impressão Pausada") PROGMEM Language_Str MSG_FILAMENTUNLOAD_E4 = _UxGT("Descarreg. Filamento ") LCD_STR_E4;
#define MSG_PRINTING _UxGT("Imprimindo...") PROGMEM Language_Str MSG_FILAMENTUNLOAD_E5 = _UxGT("Descarreg. Filamento ") LCD_STR_E5;
#define MSG_PRINT_ABORTED _UxGT("Impressão Abortada") PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Descarregar Todos");
#define MSG_NO_MOVE _UxGT("Sem movimento") PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Iniciar SD");
#define MSG_KILLED _UxGT("PARADA DE EMERGÊNCIA") PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Trocar SD");
#define MSG_STOPPED _UxGT("PAROU. ") PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sonda fora da mesa");
#define MSG_CONTROL_RETRACT _UxGT("Retrair mm") PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("Fator de Cisalho");
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Retrair Troca mm") PROGMEM Language_Str MSG_BLTOUCH = _UxGT("BLTouch");
#define MSG_CONTROL_RETRACTF _UxGT("Retrair V") PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("Testar BLTouch");
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Saltar mm") PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("Reiniciar BLTouch");
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("Des-Retrair mm") PROGMEM Language_Str MSG_BLTOUCH_DEPLOY = _UxGT("Estender BLTouch");
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Des-RetTroca mm") PROGMEM Language_Str MSG_BLTOUCH_STOW = _UxGT("Recolher BLTouch");
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("Des-Retrair V") PROGMEM Language_Str MSG_MANUAL_DEPLOY = _UxGT("Estender Sonda-Z");
#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("Des-RetTroca V") PROGMEM Language_Str MSG_MANUAL_STOW = _UxGT("Recolher Sonda-Z");
#define MSG_AUTORETRACT _UxGT("Retração Automática")
#define MSG_FILAMENT_SWAP_LENGTH _UxGT("Distancia Retração")
#define MSG_TOOL_CHANGE _UxGT("Mudar Ferramenta")
#define MSG_TOOL_CHANGE_ZLIFT _UxGT("Levantar Z")
#define MSG_SINGLENOZZLE_PRIME_SPD _UxGT("Preparar Veloc.")
#define MSG_SINGLENOZZLE_RETRACT_SPD _UxGT("Veloc. Retração")
#define MSG_FILAMENTCHANGE _UxGT("Trocar Filamento")
#define MSG_FILAMENTLOAD _UxGT("Carregar Filamento")
#define MSG_FILAMENTUNLOAD _UxGT("Descarreg. Filamento")
#define MSG_FILAMENTUNLOAD_ALL _UxGT("Descarregar Todos")
#define MSG_INIT_MEDIA _UxGT("Iniciar SD")
#define MSG_CHANGE_MEDIA _UxGT("Trocar SD")
#define MSG_ZPROBE_OUT _UxGT("Sonda fora da mesa")
#define MSG_SKEW_FACTOR _UxGT("Fator de Cisalho")
#define MSG_BLTOUCH _UxGT("BLTouch")
#define MSG_BLTOUCH_SELFTEST _UxGT("Testar BLTouch")
#define MSG_BLTOUCH_RESET _UxGT("Reiniciar BLTouch")
#define MSG_BLTOUCH_DEPLOY _UxGT("Estender BLTouch")
#define MSG_BLTOUCH_STOW _UxGT("Recolher BLTouch")
#define MSG_MANUAL_DEPLOY _UxGT("Estender Sonda-Z")
#define MSG_MANUAL_STOW _UxGT("Recolher Sonda-Z")
#define MSG_HOME_FIRST _UxGT("Home %s%s%s Primeiro") PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("Home %s%s%s Primeiro");
#define MSG_ZPROBE_ZOFFSET _UxGT("Compensar Sonda em Z") PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Compensar Sonda em Z");
#define MSG_BABYSTEP_X _UxGT("Passinho X") PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Passinho X");
#define MSG_BABYSTEP_Y _UxGT("Passinho Y") PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Passinho Y");
#define MSG_BABYSTEP_Z _UxGT("Passinho Z") PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Passinho Z");
#define MSG_ENDSTOP_ABORT _UxGT("Abortar Fim de Curso") PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Abortar Fim de Curso");
#define MSG_HEATING_FAILED_LCD _UxGT("Aquecimento falhou") PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Aquecimento falhou");
#define MSG_HEATING_FAILED_LCD_BED _UxGT("Aquecer mesa falhou") PROGMEM Language_Str MSG_HEATING_FAILED_LCD_BED = _UxGT("Aquecer mesa falhou");
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Erro:Temp Redundante") PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("Erro:Temp Redundante");
#define MSG_THERMAL_RUNAWAY _UxGT("ESCAPE TÉRMICO") PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("ESCAPE TÉRMICO");
#define MSG_THERMAL_RUNAWAY_BED _UxGT("ESCAPE TÉRMICO MESA") PROGMEM Language_Str MSG_THERMAL_RUNAWAY_BED = _UxGT("ESCAPE TÉRMICO MESA");
#define MSG_ERR_MAXTEMP _UxGT("Erro:Temp Máxima") PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("Erro:Temp Máxima");
#define MSG_ERR_MINTEMP _UxGT("Erro:Temp Mínima") PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("Erro:Temp Mínima");
#define MSG_ERR_MAXTEMP_BED _UxGT("Erro:Temp Mesa Máx") PROGMEM Language_Str MSG_ERR_MAXTEMP_BED = _UxGT("Erro:Temp Mesa Máx");
#define MSG_ERR_MINTEMP_BED _UxGT("Erro:Temp Mesa Mín") PROGMEM Language_Str MSG_ERR_MINTEMP_BED = _UxGT("Erro:Temp Mesa Mín");
#define MSG_ERR_Z_HOMING _UxGT("Home XY Primeiro") PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("Home XY Primeiro");
#define MSG_HALTED _UxGT("IMPRESSORA PAROU") PROGMEM Language_Str MSG_HALTED = _UxGT("IMPRESSORA PAROU");
#define MSG_PLEASE_RESET _UxGT("Favor resetar") PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Favor resetar");
#define MSG_SHORT_DAY _UxGT("d") PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("d");
#define MSG_SHORT_HOUR _UxGT("h") PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("h");
#define MSG_SHORT_MINUTE _UxGT("m") PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("m");
#define MSG_HEATING _UxGT("Aquecendo...") PROGMEM Language_Str MSG_HEATING = _UxGT("Aquecendo...");
#define MSG_COOLING _UxGT("Resfriando...") PROGMEM Language_Str MSG_COOLING = _UxGT("Resfriando...");
#define MSG_BED_HEATING _UxGT("Aquecendo mesa...") PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Aquecendo mesa...");
#define MSG_BED_COOLING _UxGT("Esfriando mesa...") PROGMEM Language_Str MSG_BED_COOLING = _UxGT("Esfriando mesa...");
#define MSG_DELTA_CALIBRATE _UxGT("Calibrar Delta") PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Calibrar Delta");
#define MSG_DELTA_CALIBRATE_X _UxGT("Calibrar X") PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Calibrar X");
#define MSG_DELTA_CALIBRATE_Y _UxGT("Calibrar Y") PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Calibrar Y");
#define MSG_DELTA_CALIBRATE_Z _UxGT("Calibrar Z") PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Calibrar Z");
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Calibrar Centro") PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Calibrar Centro");
#define MSG_DELTA_SETTINGS _UxGT("Configuração Delta") PROGMEM Language_Str MSG_DELTA_SETTINGS = _UxGT("Configuração Delta");
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Auto-Calibração") PROGMEM Language_Str MSG_DELTA_AUTO_CALIBRATE = _UxGT("Auto-Calibração");
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Calibrar Altura") PROGMEM Language_Str MSG_DELTA_HEIGHT_CALIBRATE = _UxGT("Calibrar Altura");
#define MSG_DELTA_Z_OFFSET_CALIBRATE _UxGT("Desloc. Sonda Z") PROGMEM Language_Str MSG_DELTA_Z_OFFSET_CALIBRATE = _UxGT("Desloc. Sonda Z");
#define MSG_DELTA_DIAG_ROD _UxGT("Haste Diagonal") PROGMEM Language_Str MSG_DELTA_DIAG_ROD = _UxGT("Haste Diagonal");
#define MSG_DELTA_HEIGHT _UxGT("Altura") PROGMEM Language_Str MSG_DELTA_HEIGHT = _UxGT("Altura");
#define MSG_DELTA_RADIUS _UxGT("Raio") PROGMEM Language_Str MSG_DELTA_RADIUS = _UxGT("Raio");
#define MSG_INFO_MENU _UxGT("Sobre") PROGMEM Language_Str MSG_INFO_MENU = _UxGT("Sobre");
#define MSG_INFO_PRINTER_MENU _UxGT("Impressora") PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Impressora");
#define MSG_3POINT_LEVELING _UxGT("Nivelamento 3 pontos") PROGMEM Language_Str MSG_3POINT_LEVELING = _UxGT("Nivelamento 3 pontos");
#define MSG_LINEAR_LEVELING _UxGT("Nivelamento Linear") PROGMEM Language_Str MSG_LINEAR_LEVELING = _UxGT("Nivelamento Linear");
#define MSG_BILINEAR_LEVELING _UxGT("Nivelamento Bilinear") PROGMEM Language_Str MSG_BILINEAR_LEVELING = _UxGT("Nivelamento Bilinear");
#define MSG_UBL_LEVELING _UxGT("Nivelamento UBL") PROGMEM Language_Str MSG_UBL_LEVELING = _UxGT("Nivelamento UBL");
#define MSG_MESH_LEVELING _UxGT("Nivelamento da Malha") PROGMEM Language_Str MSG_MESH_LEVELING = _UxGT("Nivelamento da Malha");
#define MSG_INFO_STATS_MENU _UxGT("Estatísticas") PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Estatísticas");
#define MSG_INFO_BOARD_MENU _UxGT("Info. da Placa") PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Info. da Placa");
#define MSG_INFO_THERMISTOR_MENU _UxGT("Termistores") PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Termistores");
#define MSG_INFO_EXTRUDERS _UxGT("Extrusoras") PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Extrusoras");
#define MSG_INFO_BAUDRATE _UxGT("Taxa de Transmissão") PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("Taxa de Transmissão");
#define MSG_INFO_PROTOCOL _UxGT("Protocolo") PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Protocolo");
#define MSG_CASE_LIGHT _UxGT("Luz da Impressora") PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Luz da Impressora");
#define MSG_CASE_LIGHT_BRIGHTNESS _UxGT("Intensidade Brilho") PROGMEM Language_Str MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Intensidade Brilho");
#define MSG_EXPECTED_PRINTER _UxGT("Impressora Incorreta") PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Impressora Incorreta");
#if LCD_WIDTH >= 20 #if LCD_WIDTH >= 20
#define MSG_INFO_PRINT_COUNT _UxGT("Total de Impressões") PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Total de Impressões");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Realizadas") PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Realizadas");
#define MSG_INFO_PRINT_TIME _UxGT("Tempo de Impressão") PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Tempo de Impressão");
#define MSG_INFO_PRINT_LONGEST _UxGT("Trabalho Mais longo") PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Trabalho Mais longo");
#define MSG_INFO_PRINT_FILAMENT _UxGT("Total de Extrusão") PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Total de Extrusão");
#else #else
#define MSG_INFO_PRINT_COUNT _UxGT("Qtd de Impressões") PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Qtd de Impressões");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Realizadas") PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Realizadas");
#define MSG_INFO_PRINT_TIME _UxGT("Tempo de Impressão") PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Tempo de Impressão");
#define MSG_INFO_PRINT_LONGEST _UxGT("Maior trabalho") PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Maior trabalho");
#define MSG_INFO_PRINT_FILAMENT _UxGT("T. Extrusão") PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("T. Extrusão");
#endif #endif
#define MSG_INFO_MIN_TEMP _UxGT("Temp Mín") PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Temp Mín");
#define MSG_INFO_MAX_TEMP _UxGT("Temp Máx") PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Temp Máx");
#define MSG_INFO_PSU _UxGT("PSU") PROGMEM Language_Str MSG_INFO_PSU = _UxGT("PSU");
#define MSG_DRIVE_STRENGTH _UxGT("Força do Motor") PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Força do Motor");
#define MSG_DAC_PERCENT _UxGT("Driver %") PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Escrever EEPROM DAC");
#define MSG_DAC_EEPROM_WRITE _UxGT("Escrever EEPROM DAC")
#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("IMPRESSÃO PAUSADA") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("IMPRESSÃO PAUSADA");
#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("CARREGAR FILAMENTO") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("CARREGAR FILAMENTO");
#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("DESCARREG. FILAMENTO") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("DESCARREG. FILAMENTO");
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("Config. de Retomada") PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("Config. de Retomada");
#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Purgar mais") PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("Purgar mais");
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Continuar Impressão") PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Continuar Impressão");
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Bocal: ") PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Bocal: ");
#define MSG_RUNOUT_SENSOR _UxGT("Sensor filamento") PROGMEM Language_Str MSG_RUNOUT_SENSOR = _UxGT("Sensor filamento");
#define MSG_ERR_HOMING_FAILED _UxGT("Falha ao ir à origem") PROGMEM Language_Str MSG_LCD_HOMING_FAILED = _UxGT("Falha ao ir à origem");
#define MSG_ERR_PROBING_FAILED _UxGT("Falha ao sondar") PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Falha ao sondar");
#define MSG_M600_TOO_COLD _UxGT("M600: Muito frio") PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Muito frio");
#if LCD_HEIGHT >= 4 #if LCD_HEIGHT >= 4
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Aperte o botão para") PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_2_LINE("Aperte o botão para", "continuar impressão"));
#define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("continuar impressão") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Esperando o", "inicio da", "troca de filamento"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Coloque filamento", "pressione o botão", "para continuar..."));
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Esperando o") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Pressione o botão", "p/ aquecer o bocal"));
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("inicio da") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("Aquecendo o bocal", "Aguarde..."));
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("troca de filamento") PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Esperando", "remoção de filamento"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Esperando", "filamento"));
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Coloque filamento") PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_2_LINE("Espere pela", "purga de filamento"));
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("pressione o botão") PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_2_LINE("Clique para finaliz.", "purga de filamento"));
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("para continuar...") PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("Esperando impressão", "continuar"));
#else // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Pressione o botão") PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_1_LINE("Clique p. continuar"));
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("p/ aquecer o bocal") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Aguarde..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Insira e Clique"));
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Aquecendo o bocal") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("Aquecendo..."));
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Aguarde...") PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Ejetando..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Carregando..."));
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Esperando") PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_1_LINE("Purgando..."));
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("remoção de filamento") PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_1_LINE("Clique p. finalizar"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Continuando..."));
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Esperando") #endif
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("filamento") }
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Espere pela")
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("purga de filamento")
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Clique para finaliz.")
#define MSG_FILAMENT_CHANGE_CONT_PURGE_2 _UxGT("purga de filamento")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Esperando impressão")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("continuar")
#else // LCD_HEIGHT < 4
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Clique p. continuar")
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Aguarde...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Insira e Clique")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Aquecendo...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Ejetando...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Carregando...")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Purgando...")
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Clique p. finalizar")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Continuando...")
#endif

View file

@ -28,434 +28,544 @@
* See also http://marlinfw.org/docs/development/lcd_language.html * See also http://marlinfw.org/docs/development/lcd_language.html
* *
*/ */
#define DISPLAY_CHARSET_ISO10646_5 #define DISPLAY_CHARSET_ISO10646_5
#define CHARSIZE 2
#define WELCOME_MSG MACHINE_NAME _UxGT(" готов.") namespace Language_ru {
#define MSG_BACK _UxGT("Назад") using namespace Language_en; // Inherit undefined strings from English
#define MSG_MEDIA_INSERTED _UxGT("Карта вставлена")
#define MSG_MEDIA_REMOVED _UxGT("Карта извлечена")
#define MSG_MEDIA_RELEASED _UxGT("SD карта не активна")
#define MSG_LCD_ENDSTOPS _UxGT("Эндстопы") // Max length 8 characters
#define MSG_LCD_SOFT_ENDSTOPS _UxGT("Прогр. эндстопы")
#define MSG_MAIN _UxGT("Меню")
#define MSG_ADVANCED_SETTINGS _UxGT("Другие настройки")
#define MSG_CONFIGURATION _UxGT("Настройки")
#define MSG_AUTOSTART _UxGT("Автостарт")
#define MSG_DISABLE_STEPPERS _UxGT("Выкл. двигатели")
#define MSG_DEBUG_MENU _UxGT("Меню отладки")
#define MSG_PROGRESS_BAR_TEST _UxGT("Тест индикатора")
#define MSG_AUTO_HOME _UxGT("Авто парковка")
#define MSG_AUTO_HOME_X _UxGT("Парковка X")
#define MSG_AUTO_HOME_Y _UxGT("Парковка Y")
#define MSG_AUTO_HOME_Z _UxGT("Парковка Z")
#define MSG_LEVEL_BED_HOMING _UxGT("Нулевое положение")
#define MSG_LEVEL_BED_WAITING _UxGT("Нажмите чтобы начать")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Следующая точка")
#define MSG_LEVEL_BED_DONE _UxGT("Выравнивание готово!")
#define MSG_Z_FADE_HEIGHT _UxGT("Высота спада")
#define MSG_SET_HOME_OFFSETS _UxGT("Запомнить парковку")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Коррекции применены")
#define MSG_SET_ORIGIN _UxGT("Запомнить ноль")
#define MSG_PREHEAT_1 _UxGT("Преднагрев " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ")
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" всё")
#define MSG_PREHEAT_1_END MSG_PREHEAT_1 _UxGT(" сопло")
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" стол")
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" настр.")
#define MSG_PREHEAT_2 _UxGT("Преднагрев " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ")
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" всё")
#define MSG_PREHEAT_2_END MSG_PREHEAT_2 _UxGT(" сопло")
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" стол")
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" настр.")
#define MSG_COOLDOWN _UxGT("Охлаждение")
#define MSG_SWITCH_PS_ON _UxGT("Включить питание")
#define MSG_SWITCH_PS_OFF _UxGT("Выключить питание")
#define MSG_EXTRUDE _UxGT("Экструзия")
#define MSG_RETRACT _UxGT("Втягивание")
#define MSG_MOVE_AXIS _UxGT("Движение по осям")
#define MSG_BED_LEVELING _UxGT("Калибровка стола")
#define MSG_LEVEL_BED _UxGT("Калибровать стол")
#define MSG_LEVEL_CORNERS _UxGT("Выровнять углы")
#define MSG_NEXT_CORNER _UxGT("Следующий угол")
#define MSG_EDIT_MESH _UxGT("Редактировать сетку")
#define MSG_EDITING_STOPPED _UxGT("Ред. сетки завершено")
#define MSG_USER_MENU _UxGT("Свои команды")
#define MSG_M48_TEST _UxGT("Проверка датчика Z") constexpr uint8_t CHARSIZE = 2;
#define MSG_M48_DEVIATION _UxGT("Отклонение") PROGMEM Language_Str LANGUAGE = _UxGT("Russian");
#define MSG_M48_POINT _UxGT("Измерение")
// TODO: IDEX Menu PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" готов.");
#define MSG_OFFSETS_MENU _UxGT("Размещение сопел") PROGMEM Language_Str MSG_BACK = _UxGT("Назад");
PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Карта вставлена");
PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Карта извлечена");
PROGMEM Language_Str MSG_MEDIA_RELEASED = _UxGT("SD карта не активна");
PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Эндстопы"); // Max length 8 characters
PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("Прогр. эндстопы");
PROGMEM Language_Str MSG_MAIN = _UxGT("Меню");
PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("Другие настройки");
PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("Настройки");
PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Автостарт");
PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Выкл. двигатели");
PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("Меню отладки");
PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Тест индикатора");
PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Авто парковка");
PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Парковка X");
PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Парковка Y");
PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Парковка Z");
PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Нулевое положение");
PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Нажмите чтобы начать");
PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Следующая точка");
PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Выравнивание готово!");
PROGMEM Language_Str MSG_Z_FADE_HEIGHT = _UxGT("Высота спада");
PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Запомнить парковку");
PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Коррекции применены");
PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Запомнить ноль");
PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Преднагрев ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Преднагрев ") PREHEAT_1_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Преднагрев ") PREHEAT_1_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Преднагрев ") PREHEAT_1_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Преднагрев ") PREHEAT_1_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Преднагрев ") PREHEAT_1_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Преднагрев ") PREHEAT_1_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Преднагрев ") PREHEAT_1_LABEL _UxGT(" сопло");
PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Преднагрев ") PREHEAT_1_LABEL _UxGT(" сопло ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Преднагрев ") PREHEAT_1_LABEL _UxGT(" сопло ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Преднагрев ") PREHEAT_1_LABEL _UxGT(" сопло ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Преднагрев ") PREHEAT_1_LABEL _UxGT(" сопло ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Преднагрев ") PREHEAT_1_LABEL _UxGT(" сопло ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Преднагрев ") PREHEAT_1_LABEL _UxGT(" сопло ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Преднагрев ") PREHEAT_1_LABEL _UxGT(" всё");
PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Преднагрев ") PREHEAT_1_LABEL _UxGT(" стол");
PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Преднагрев ") PREHEAT_1_LABEL _UxGT(" настр.");
PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Преднагрев ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Преднагрев ") PREHEAT_2_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Преднагрев ") PREHEAT_2_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Преднагрев ") PREHEAT_2_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Преднагрев ") PREHEAT_2_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Преднагрев ") PREHEAT_2_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Преднагрев ") PREHEAT_2_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Преднагрев ") PREHEAT_2_LABEL _UxGT(" сопло");
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Преднагрев ") PREHEAT_2_LABEL _UxGT(" сопло ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Преднагрев ") PREHEAT_2_LABEL _UxGT(" сопло ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Преднагрев ") PREHEAT_2_LABEL _UxGT(" сопло ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Преднагрев ") PREHEAT_2_LABEL _UxGT(" сопло ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Преднагрев ") PREHEAT_2_LABEL _UxGT(" сопло ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Преднагрев ") PREHEAT_2_LABEL _UxGT(" сопло ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Преднагрев ") PREHEAT_2_LABEL _UxGT(" всё");
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Преднагрев ") PREHEAT_2_LABEL _UxGT(" стол");
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Преднагрев ") PREHEAT_2_LABEL _UxGT(" настр.");
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Охлаждение");
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Включить питание");
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Выключить питание");
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Экструзия");
PROGMEM Language_Str MSG_RETRACT = _UxGT("Втягивание");
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Движение по осям");
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Калибровка стола");
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Калибровать стол");
PROGMEM Language_Str MSG_LEVEL_CORNERS = _UxGT("Выровнять углы");
PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("Следующий угол");
PROGMEM Language_Str MSG_EDIT_MESH = _UxGT("Редактировать сетку");
PROGMEM Language_Str MSG_EDITING_STOPPED = _UxGT("Ред. сетки завершено");
PROGMEM Language_Str MSG_USER_MENU = _UxGT("Свои команды");
#define MSG_X_OFFSET _UxGT("2-е сопло X") PROGMEM Language_Str MSG_M48_TEST = _UxGT("Проверка датчика Z");
#define MSG_Y_OFFSET _UxGT("2-е сопло Y") PROGMEM Language_Str MSG_M48_DEVIATION = _UxGT("Отклонение");
#define MSG_Z_OFFSET _UxGT("2-е сопло Z") PROGMEM Language_Str MSG_M48_POINT = _UxGT("Измерение");
#define MSG_UBL_DOING_G29 _UxGT("Выполняем G29") // TODO: IDEX Menu
#define MSG_UBL_TOOLS _UxGT("Утилиты UBL") PROGMEM Language_Str MSG_OFFSETS_MENU = _UxGT("Размещение сопел");
#define MSG_UBL_LEVEL_BED _UxGT("Калибровка UBL")
#define MSG_UBL_MANUAL_MESH _UxGT("Постр. сетку от руки")
#define MSG_UBL_BC_INSERT _UxGT("Пост. шимм и измер.")
#define MSG_UBL_BC_INSERT2 _UxGT("Измерение")
#define MSG_UBL_BC_REMOVE _UxGT("Удал. и измер. стол")
#define MSG_UBL_MOVING_TO_NEXT _UxGT("Двигаемся дальше")
#define MSG_UBL_ACTIVATE_MESH _UxGT("Активировать UBL")
#define MSG_UBL_DEACTIVATE_MESH _UxGT("Деактивировать UBL")
#define MSG_UBL_SET_TEMP_BED _UxGT("Температура стола")
#define MSG_UBL_BED_TEMP_CUSTOM MSG_UBL_SET_TEMP_BED
#define MSG_UBL_SET_TEMP_HOTEND _UxGT("Температура сопла")
#define MSG_UBL_HOTEND_TEMP_CUSTOM MSG_UBL_SET_TEMP_HOTEND
#define MSG_UBL_MESH_EDIT _UxGT("Редактор сеток")
#define MSG_UBL_EDIT_CUSTOM_MESH _UxGT("Редакт. свою сетку")
#define MSG_UBL_FINE_TUNE_MESH _UxGT("Точная настр. сетки")
#define MSG_UBL_DONE_EDITING_MESH _UxGT("Ред. сетки завершено")
#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Построить свою сетку")
#define MSG_UBL_BUILD_MESH_MENU _UxGT("Построить сетку")
#define MSG_UBL_BUILD_MESH_M1 _UxGT("Построить сетку " PREHEAT_1_LABEL)
#define MSG_UBL_BUILD_MESH_M2 _UxGT("Построить сетку " PREHEAT_2_LABEL)
#define MSG_UBL_BUILD_COLD_MESH _UxGT("Построить хол. сетку")
#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Устан. высоту сетки")
#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Высота")
#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("Проверить сетку")
#define MSG_UBL_VALIDATE_MESH_M1 _UxGT("Проверить сетку " PREHEAT_1_LABEL)
#define MSG_UBL_VALIDATE_MESH_M2 _UxGT("Проверить сетку " PREHEAT_2_LABEL)
#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Проверить свою сетку")
#define MSG_UBL_CONTINUE_MESH _UxGT("Продолжить сетку")
#define MSG_UBL_MESH_LEVELING _UxGT("Калибровка сетки")
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("Калибровка 3-х точек")
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Калибровка растера")
#define MSG_UBL_MESH_LEVEL _UxGT("Выровнить сетку")
#define MSG_UBL_SIDE_POINTS _UxGT("Крайние точки")
#define MSG_UBL_MAP_TYPE _UxGT("Тип карты")
#define MSG_UBL_OUTPUT_MAP _UxGT("Вывести карту сетки")
#define MSG_UBL_OUTPUT_MAP_HOST _UxGT("Вывести на хост")
#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Вывести в CSV")
#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Забекапить сетку")
#define MSG_UBL_INFO_UBL _UxGT("Вывод информации UBL")
#define MSG_UBL_FILLIN_AMOUNT _UxGT("Кол-во заполнителя")
#define MSG_UBL_MANUAL_FILLIN _UxGT("Ручное заполнение")
#define MSG_UBL_SMART_FILLIN _UxGT("Умное заполнение")
#define MSG_UBL_FILLIN_MESH _UxGT("Заполнить сетку")
#define MSG_UBL_INVALIDATE_ALL _UxGT("Аннулировать всё")
#define MSG_UBL_INVALIDATE_CLOSEST _UxGT("Аннулир. ближ. точку")
#define MSG_UBL_FINE_TUNE_ALL _UxGT("Точная настр. всего")
#define MSG_UBL_FINE_TUNE_CLOSEST _UxGT("Настр. ближ. точки")
#define MSG_UBL_STORAGE_MESH_MENU _UxGT("Хранилище сетей")
#define MSG_UBL_STORAGE_SLOT _UxGT("Слот памяти")
#define MSG_UBL_LOAD_MESH _UxGT("Загрузить сетку стола")
#define MSG_UBL_SAVE_MESH _UxGT("Сохранить сетку стола")
#define MSG_MESH_LOADED _UxGT("Сетка %i загружена")
#define MSG_MESH_SAVED _UxGT("Сетка %i сохранена")
#define MSG_UBL_NO_STORAGE _UxGT("Нет хранилища")
#define MSG_UBL_SAVE_ERROR _UxGT("Ошибка: Сохран. UBL")
#define MSG_UBL_RESTORE_ERROR _UxGT("Ошибка: Восстан. UBL")
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Смещение Z останов.")
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("Пошаговое UBL")
#define MSG_LED_CONTROL _UxGT("Настройки LED") PROGMEM Language_Str MSG_X_OFFSET = _UxGT("2-е сопло X");
#define MSG_LEDS _UxGT("Подсветку") PROGMEM Language_Str MSG_Y_OFFSET = _UxGT("2-е сопло Y");
#define MSG_LED_PRESETS _UxGT("Предустановки света") PROGMEM Language_Str MSG_Z_OFFSET = _UxGT("2-е сопло Z");
#define MSG_SET_LEDS_RED _UxGT("Красный свет")
#define MSG_SET_LEDS_ORANGE _UxGT("Оранжевый свет")
#define MSG_SET_LEDS_YELLOW _UxGT("Жёлтый свет")
#define MSG_SET_LEDS_GREEN _UxGT("Зелёный свет")
#define MSG_SET_LEDS_BLUE _UxGT("Синий свет")
#define MSG_SET_LEDS_INDIGO _UxGT("Индиго свет")
#define MSG_SET_LEDS_VIOLET _UxGT("Фиолетовый свет")
#define MSG_SET_LEDS_WHITE _UxGT("Белый свет")
#define MSG_SET_LEDS_DEFAULT _UxGT("Свет по умолчанию")
#define MSG_CUSTOM_LEDS _UxGT("Свои настр. света")
#define MSG_INTENSITY_R _UxGT("Интенсивн. красного")
#define MSG_INTENSITY_G _UxGT("Интенсивн. зелёного")
#define MSG_INTENSITY_B _UxGT("Интенсивн. синего")
#define MSG_INTENSITY_W _UxGT("Интенсивн. белого")
#define MSG_LED_BRIGHTNESS _UxGT("Яркость")
#define MSG_MOVING _UxGT("Движемся...") PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("Выполняем G29");
#define MSG_FREE_XY _UxGT("Освобождаем XY") PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("Утилиты UBL");
#define MSG_MOVE_X _UxGT("Движение по X") PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("Калибровка UBL");
#define MSG_MOVE_Y _UxGT("Движение по Y") PROGMEM Language_Str MSG_UBL_MANUAL_MESH = _UxGT("Постр. сетку от руки");
#define MSG_MOVE_Z _UxGT("Движение по Z") PROGMEM Language_Str MSG_UBL_BC_INSERT = _UxGT("Пост. шимм и измер.");
#define MSG_MOVE_E _UxGT("Экструдер") PROGMEM Language_Str MSG_UBL_BC_INSERT2 = _UxGT("Измерение");
#define MSG_MOVE_Z_DIST _UxGT("Движение %sмм") PROGMEM Language_Str MSG_UBL_BC_REMOVE = _UxGT("Удал. и измер. стол");
#define MSG_MOVE_01MM _UxGT("Движение 0.1мм") PROGMEM Language_Str MSG_UBL_MOVING_TO_NEXT = _UxGT("Двигаемся дальше");
#define MSG_MOVE_1MM _UxGT("Движение 1мм") PROGMEM Language_Str MSG_UBL_ACTIVATE_MESH = _UxGT("Активировать UBL");
#define MSG_MOVE_10MM _UxGT("Движение 10мм") PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("Деактивировать UBL");
#define MSG_SPEED _UxGT("Скорость") PROGMEM Language_Str MSG_UBL_SET_TEMP_BED = _UxGT("Температура стола");
#define MSG_BED_Z _UxGT("Z стола") PROGMEM Language_Str MSG_UBL_BED_TEMP_CUSTOM = _UxGT("Bed Temp");
#define MSG_NOZZLE _UxGT("Сопло") PROGMEM Language_Str MSG_UBL_SET_TEMP_HOTEND = _UxGT("Температура сопла");
#define MSG_BED _UxGT("Стол") PROGMEM Language_Str MSG_UBL_HOTEND_TEMP_CUSTOM = _UxGT("Hotend Temp");
#define MSG_FAN_SPEED _UxGT("Кулер") PROGMEM Language_Str MSG_UBL_MESH_EDIT = _UxGT("Редактор сеток");
#define MSG_EXTRA_FAN_SPEED _UxGT("Кулер доп.") PROGMEM Language_Str MSG_UBL_EDIT_CUSTOM_MESH = _UxGT("Редакт. свою сетку");
#define MSG_FLOW _UxGT("Поток") PROGMEM Language_Str MSG_UBL_FINE_TUNE_MESH = _UxGT("Точная настр. сетки");
#define MSG_CONTROL _UxGT("Настройки") PROGMEM Language_Str MSG_UBL_DONE_EDITING_MESH = _UxGT("Ред. сетки завершено");
#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Мин") PROGMEM Language_Str MSG_UBL_BUILD_CUSTOM_MESH = _UxGT("Построить свою сетку");
#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Макс") PROGMEM Language_Str MSG_UBL_BUILD_MESH_MENU = _UxGT("Построить сетку");
#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Фактор") PROGMEM Language_Str MSG_UBL_BUILD_MESH_M1 = _UxGT("Построить сетку ") PREHEAT_1_LABEL;
#define MSG_AUTOTEMP _UxGT("Автотемпература") PROGMEM Language_Str MSG_UBL_BUILD_MESH_M2 = _UxGT("Построить сетку ") PREHEAT_2_LABEL;
#define MSG_LCD_ON _UxGT("Вкл.") PROGMEM Language_Str MSG_UBL_BUILD_COLD_MESH = _UxGT("Построить хол. сетку");
#define MSG_LCD_OFF _UxGT("Выкл.") PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_ADJUST = _UxGT("Устан. высоту сетки");
#define MSG_PID_P _UxGT("PID-P") PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_AMOUNT = _UxGT("Высота");
#define MSG_PID_I _UxGT("PID-I") PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_MENU = _UxGT("Проверить сетку");
#define MSG_PID_D _UxGT("PID-D") PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M1 = _UxGT("Проверить сетку ") PREHEAT_1_LABEL;
#define MSG_PID_C _UxGT("PID-C") PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M2 = _UxGT("Проверить сетку ") PREHEAT_2_LABEL;
#define MSG_SELECT _UxGT("Выбор") PROGMEM Language_Str MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("Проверить свою сетку");
#define MSG_ACC _UxGT("Ускорение") PROGMEM Language_Str MSG_UBL_CONTINUE_MESH = _UxGT("Продолжить сетку");
#define MSG_JERK _UxGT("Рывок") PROGMEM Language_Str MSG_UBL_MESH_LEVELING = _UxGT("Калибровка сетки");
#if IS_KINEMATIC PROGMEM Language_Str MSG_UBL_3POINT_MESH_LEVELING = _UxGT("Калибровка 3-х точек");
#define MSG_VA_JERK _UxGT("Va-рывок") PROGMEM Language_Str MSG_UBL_GRID_MESH_LEVELING = _UxGT("Калибровка растера");
#define MSG_VB_JERK _UxGT("Vb-рывок") PROGMEM Language_Str MSG_UBL_MESH_LEVEL = _UxGT("Выровнить сетку");
#define MSG_VC_JERK _UxGT("Vc-рывок") PROGMEM Language_Str MSG_UBL_SIDE_POINTS = _UxGT("Крайние точки");
#else PROGMEM Language_Str MSG_UBL_MAP_TYPE = _UxGT("Тип карты");
#define MSG_VX_JERK _UxGT("Vx-рывок") PROGMEM Language_Str MSG_UBL_OUTPUT_MAP = _UxGT("Вывести карту сетки");
#define MSG_VY_JERK _UxGT("Vy-рывок") PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_HOST = _UxGT("Вывести на хост");
#define MSG_VZ_JERK _UxGT("Vz-рывок") PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_CSV = _UxGT("Вывести в CSV");
#endif PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_BACKUP = _UxGT("Забекапить сетку");
#define MSG_VE_JERK _UxGT("Ve-рывок") PROGMEM Language_Str MSG_UBL_INFO_UBL = _UxGT("Вывод информации UBL");
#define MSG_VELOCITY _UxGT("Быстрота") PROGMEM Language_Str MSG_UBL_FILLIN_AMOUNT = _UxGT("Кол-во заполнителя");
#define MSG_VMAX _UxGT("Vмакс ") PROGMEM Language_Str MSG_UBL_MANUAL_FILLIN = _UxGT("Ручное заполнение");
#define MSG_VMIN _UxGT("Vмин") PROGMEM Language_Str MSG_UBL_SMART_FILLIN = _UxGT("Умное заполнение");
#define MSG_VTRAV_MIN _UxGT("Vпутеш. мин") PROGMEM Language_Str MSG_UBL_FILLIN_MESH = _UxGT("Заполнить сетку");
#define MSG_ACCELERATION _UxGT("Ускорение") PROGMEM Language_Str MSG_UBL_INVALIDATE_ALL = _UxGT("Аннулировать всё");
#define MSG_AMAX _UxGT("Aмакс ") PROGMEM Language_Str MSG_UBL_INVALIDATE_CLOSEST = _UxGT("Аннулир. ближ. точку");
#define MSG_A_RETRACT _UxGT("A-втягивание") PROGMEM Language_Str MSG_UBL_FINE_TUNE_ALL = _UxGT("Точная настр. всего");
#define MSG_A_TRAVEL _UxGT("A-путеш.") PROGMEM Language_Str MSG_UBL_FINE_TUNE_CLOSEST = _UxGT("Настр. ближ. точки");
#define MSG_STEPS_PER_MM _UxGT("Шаг/мм") PROGMEM Language_Str MSG_UBL_STORAGE_MESH_MENU = _UxGT("Хранилище сетей");
#if IS_KINEMATIC PROGMEM Language_Str MSG_UBL_STORAGE_SLOT = _UxGT("Слот памяти");
#define MSG_ASTEPS _UxGT("Aшаг/мм") PROGMEM Language_Str MSG_UBL_LOAD_MESH = _UxGT("Загрузить сетку стола");
#define MSG_BSTEPS _UxGT("Bшаг/мм") PROGMEM Language_Str MSG_UBL_SAVE_MESH = _UxGT("Сохранить сетку стола");
#define MSG_CSTEPS _UxGT("Cшаг/мм") PROGMEM Language_Str MSG_MESH_LOADED = _UxGT("M117 Сетка %i загружена");
#else PROGMEM Language_Str MSG_MESH_SAVED = _UxGT("M117 Сетка %i сохранена");
#define MSG_ASTEPS _UxGT("Xшаг/мм") PROGMEM Language_Str MSG_UBL_NO_STORAGE = _UxGT("Нет хранилища");
#define MSG_BSTEPS _UxGT("Yшаг/мм") PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("Ошибка: Сохран. UBL");
#define MSG_CSTEPS _UxGT("Zшаг/мм") PROGMEM Language_Str MSG_UBL_RESTORE_ERROR = _UxGT("Ошибка: Восстан. UBL");
#endif PROGMEM Language_Str MSG_UBL_Z_OFFSET_STOPPED = _UxGT("Смещение Z останов.");
#define MSG_ESTEPS _UxGT("Eшаг/мм") PROGMEM Language_Str MSG_UBL_STEP_BY_STEP_MENU = _UxGT("Пошаговое UBL");
#define MSG_E0_STEPS _UxGT("E1шаг/мм") PROGMEM Language_Str MSG_UBL_1_BUILD_COLD_MESH = _UxGT("1.Построить хол. сетку");
#define MSG_E1_STEPS _UxGT("E2шаг/мм") PROGMEM Language_Str MSG_UBL_2_SMART_FILLIN = _UxGT("2.Умное заполнение");
#define MSG_E2_STEPS _UxGT("E3шаг/мм") PROGMEM Language_Str MSG_UBL_3_VALIDATE_MESH_MENU = _UxGT("3.Проверить сетку");
#define MSG_E3_STEPS _UxGT("E4шаг/мм") PROGMEM Language_Str MSG_UBL_4_FINE_TUNE_ALL = _UxGT("4.Точная настр. всего");
#define MSG_E4_STEPS _UxGT("E5шаг/мм") PROGMEM Language_Str MSG_UBL_5_VALIDATE_MESH_MENU = _UxGT("5.Проверить сетку");
#define MSG_E5_STEPS _UxGT("E6шаг/мм") PROGMEM Language_Str MSG_UBL_6_FINE_TUNE_ALL = _UxGT("6.Точная настр. всего");
#define MSG_TEMPERATURE _UxGT("Температура") PROGMEM Language_Str MSG_UBL_7_SAVE_MESH = _UxGT("7.Сохранить сетку стола");
#define MSG_MOTION _UxGT("Движение")
#define MSG_FILAMENT _UxGT("Филамент")
#define MSG_VOLUMETRIC_ENABLED _UxGT("E в мм3")
#define MSG_FILAMENT_DIAM _UxGT("Диаметр филамента")
#define MSG_FILAMENT_UNLOAD _UxGT("Загрузка мм")
#define MSG_FILAMENT_LOAD _UxGT("Выгрузка мм")
#define MSG_ADVANCE_K _UxGT("K продвижения")
#define MSG_CONTRAST _UxGT("Контраст LCD")
#define MSG_STORE_EEPROM _UxGT("Сохранить настройки")
#define MSG_LOAD_EEPROM _UxGT("Загрузить настройки")
#define MSG_RESTORE_FAILSAFE _UxGT("Вернуть настройки")
#define MSG_INIT_EEPROM _UxGT("Инициализация EEPROM")
#define MSG_MEDIA_UPDATE _UxGT("Обновление прошивки")
#define MSG_RESET_PRINTER _UxGT("Сброс принтера")
#define MSG_REFRESH _UxGT("Обновить")
#define MSG_WATCH _UxGT("Информационный экран")
#define MSG_PREPARE _UxGT("Подготовить")
#define MSG_TUNE _UxGT("Настроить")
#define MSG_START_PRINT _UxGT("Начало печати")
#define MSG_BUTTON_NEXT _UxGT("Дальше")
#define MSG_BUTTON_INIT _UxGT("Инициализация")
#define MSG_BUTTON_STOP _UxGT("Остановить")
#define MSG_BUTTON_PRINT _UxGT("Печать")
#define MSG_BUTTON_RESET _UxGT("Сброс")
#define MSG_BUTTON_CANCEL _UxGT("Отмена")
#define MSG_BUTTON_DONE _UxGT("Готово")
#define MSG_PAUSE_PRINT _UxGT("Пауза печати")
#define MSG_RESUME_PRINT _UxGT("Продолжить печать")
#define MSG_STOP_PRINT _UxGT("Остановить печать")
#define MSG_OUTAGE_RECOVERY _UxGT("Восстановение сбоя")
#define MSG_MEDIA_MENU _UxGT("Печать с SD карты")
#define MSG_NO_MEDIA _UxGT("Нет SD карты")
#define MSG_DWELL _UxGT("Сон...")
#define MSG_USERWAIT _UxGT("Продолжить...")
#define MSG_PRINT_PAUSED _UxGT("Печать на паузе")
#define MSG_PRINT_ABORTED _UxGT("Печать отменена")
#define MSG_NO_MOVE _UxGT("Нет движения.")
#define MSG_KILLED _UxGT("УБИТО. ")
#define MSG_STOPPED _UxGT("ОСТАНОВЛЕНО. ")
#define MSG_CONTROL_RETRACT _UxGT("Втягивание мм")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Втягивание смены мм")
#define MSG_CONTROL_RETRACTF _UxGT("Втягивание V")
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Втяг. прыжка мм")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("Возврат мм")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Возврат смены мм")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("Возврат V")
#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("Возврат смены V")
#define MSG_AUTORETRACT _UxGT("Авто Втягивание")
// TODO: Filament Change Swap / Purge Length PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("Настройки LED");
PROGMEM Language_Str MSG_LEDS = _UxGT("Подсветку");
PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("Предустановки света");
PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("Красный свет");
PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("Оранжевый свет");
PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("Жёлтый свет");
PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("Зелёный свет");
PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("Синий свет");
PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("Индиго свет");
PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Фиолетовый свет");
PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("Белый свет");
PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("Свет по умолчанию");
PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("Свои настр. света");
PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Интенсивн. красного");
PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Интенсивн. зелёного");
PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("Интенсивн. синего");
PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("Интенсивн. белого");
PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("Яркость");
#define MSG_TOOL_CHANGE _UxGT("Смена сопел") PROGMEM Language_Str MSG_MOVING = _UxGT("Движемся...");
#define MSG_TOOL_CHANGE_ZLIFT _UxGT("Поднятие по Z") PROGMEM Language_Str MSG_FREE_XY = _UxGT("Освобождаем XY");
PROGMEM Language_Str MSG_MOVE_X = _UxGT("Движение по X");
PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Движение по Y");
PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Движение по Z");
PROGMEM Language_Str MSG_MOVE_E = _UxGT("Экструдер");
PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Экструдер ") LCD_STR_E0;
PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Экструдер ") LCD_STR_E1;
PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Экструдер ") LCD_STR_E2;
PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Экструдер ") LCD_STR_E3;
PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Экструдер ") LCD_STR_E4;
PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Экструдер ") LCD_STR_E5;
PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Движение %sмм");
PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Движение 0.1мм");
PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Движение 1мм");
PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Движение 10мм");
PROGMEM Language_Str MSG_SPEED = _UxGT("Скорость");
PROGMEM Language_Str MSG_BED_Z = _UxGT("Z стола");
PROGMEM Language_Str MSG_NOZZLE = _UxGT("Сопло");
PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Сопло ") LCD_STR_N0;
PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Сопло ") LCD_STR_N1;
PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Сопло ") LCD_STR_N2;
PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Сопло ") LCD_STR_N3;
PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Сопло ") LCD_STR_N4;
PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Сопло ") LCD_STR_N5;
PROGMEM Language_Str MSG_BED = _UxGT("Стол");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Кулер");
PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Кулер 1");
PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Кулер 2");
PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Кулер 3");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Кулер доп.");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_1 = _UxGT("Кулер доп. 1");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_2 = _UxGT("Кулер доп. 2");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_3 = _UxGT("Кулер доп. 3");
PROGMEM Language_Str MSG_FLOW = _UxGT("Поток");
PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Поток ") LCD_STR_N0;
PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Поток ") LCD_STR_N1;
PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Поток ") LCD_STR_N2;
PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Поток ") LCD_STR_N3;
PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Поток ") LCD_STR_N4;
PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Поток ") LCD_STR_N5;
PROGMEM Language_Str MSG_CONTROL = _UxGT("Настройки");
PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" Мин");
PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" Макс");
PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Фактор");
PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Автотемпература");
PROGMEM Language_Str MSG_LCD_ON = _UxGT("Вкл.");
PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Выкл.");
PROGMEM Language_Str MSG_PID_P = _UxGT("PID-P");
PROGMEM Language_Str MSG_PID_P_E0 = _UxGT("PID-P ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_P_E1 = _UxGT("PID-P ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_P_E2 = _UxGT("PID-P ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_P_E3 = _UxGT("PID-P ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_P_E4 = _UxGT("PID-P ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_P_E5 = _UxGT("PID-P ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_I = _UxGT("PID-I");
PROGMEM Language_Str MSG_PID_I_E0 = _UxGT("PID-I ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_I_E1 = _UxGT("PID-I ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_I_E2 = _UxGT("PID-I ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_I_E3 = _UxGT("PID-I ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_I_E4 = _UxGT("PID-I ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_I_E5 = _UxGT("PID-I ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_D = _UxGT("PID-D");
PROGMEM Language_Str MSG_PID_D_E0 = _UxGT("PID-D ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_D_E1 = _UxGT("PID-D ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_D_E2 = _UxGT("PID-D ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_D_E3 = _UxGT("PID-D ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_D_E4 = _UxGT("PID-D ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_D_E5 = _UxGT("PID-D ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_C = _UxGT("PID-C");
PROGMEM Language_Str MSG_PID_C_E0 = _UxGT("PID-C ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_C_E1 = _UxGT("PID-C ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_C_E2 = _UxGT("PID-C ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_C_E3 = _UxGT("PID-C ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_C_E4 = _UxGT("PID-C ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_C_E5 = _UxGT("PID-C ") LCD_STR_E5;
PROGMEM Language_Str MSG_SELECT = _UxGT("Выбор");
PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("Выбор ") LCD_STR_E0;
PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("Выбор ") LCD_STR_E1;
PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("Выбор ") LCD_STR_E2;
PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("Выбор ") LCD_STR_E3;
PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("Выбор ") LCD_STR_E4;
PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("Выбор ") LCD_STR_E5;
PROGMEM Language_Str MSG_ACC = _UxGT("Ускорение");
PROGMEM Language_Str MSG_JERK = _UxGT("Рывок");
PROGMEM Language_Str MSG_VA_JERK = _UxGT("V") LCD_STR_A _UxGT("-рывок");
PROGMEM Language_Str MSG_VB_JERK = _UxGT("V") LCD_STR_B _UxGT("-рывок");
PROGMEM Language_Str MSG_VC_JERK = _UxGT("V") LCD_STR_C _UxGT("-рывок");
PROGMEM Language_Str MSG_VE_JERK = _UxGT("Ve-рывок");
PROGMEM Language_Str MSG_VELOCITY = _UxGT("Быстрота");
PROGMEM Language_Str MSG_VMAX_A = _UxGT("акс ") LCD_STR_A;
PROGMEM Language_Str MSG_VMAX_B = _UxGT("акс ") LCD_STR_B;
PROGMEM Language_Str MSG_VMAX_C = _UxGT("акс ") LCD_STR_C;
PROGMEM Language_Str MSG_VMAX_E = _UxGT("акс ") LCD_STR_E;
PROGMEM Language_Str MSG_VMAX_E0 = _UxGT("акс ") LCD_STR_E0;
PROGMEM Language_Str MSG_VMAX_E1 = _UxGT("акс ") LCD_STR_E1;
PROGMEM Language_Str MSG_VMAX_E2 = _UxGT("акс ") LCD_STR_E2;
PROGMEM Language_Str MSG_VMAX_E3 = _UxGT("акс ") LCD_STR_E3;
PROGMEM Language_Str MSG_VMAX_E4 = _UxGT("акс ") LCD_STR_E4;
PROGMEM Language_Str MSG_VMAX_E5 = _UxGT("акс ") LCD_STR_E5;
PROGMEM Language_Str MSG_VMIN = _UxGT("Vмин");
PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("Vпутеш. мин");
PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Ускорение");
PROGMEM Language_Str MSG_AMAX_A = _UxGT("акс ") LCD_STR_A;
PROGMEM Language_Str MSG_AMAX_B = _UxGT("акс ") LCD_STR_B;
PROGMEM Language_Str MSG_AMAX_C = _UxGT("акс ") LCD_STR_C;
PROGMEM Language_Str MSG_AMAX_E = _UxGT("акс ") LCD_STR_E;
PROGMEM Language_Str MSG_AMAX_E0 = _UxGT("акс ") LCD_STR_E0;
PROGMEM Language_Str MSG_AMAX_E1 = _UxGT("акс ") LCD_STR_E1;
PROGMEM Language_Str MSG_AMAX_E2 = _UxGT("акс ") LCD_STR_E2;
PROGMEM Language_Str MSG_AMAX_E3 = _UxGT("акс ") LCD_STR_E3;
PROGMEM Language_Str MSG_AMAX_E4 = _UxGT("акс ") LCD_STR_E4;
PROGMEM Language_Str MSG_AMAX_E5 = _UxGT("акс ") LCD_STR_E5;
PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-втягивание");
PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A-путеш.");
PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Шаг/мм");
PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("шаг/мм");
PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("шаг/мм");
PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("шаг/мм");
PROGMEM Language_Str MSG_E_STEPS = _UxGT("аг/мм");
PROGMEM Language_Str MSG_E0_STEPS = LCD_STR_E0 _UxGT("шаг/мм");
PROGMEM Language_Str MSG_E1_STEPS = LCD_STR_E1 _UxGT("шаг/мм");
PROGMEM Language_Str MSG_E2_STEPS = LCD_STR_E2 _UxGT("шаг/мм");
PROGMEM Language_Str MSG_E3_STEPS = LCD_STR_E3 _UxGT("шаг/мм");
PROGMEM Language_Str MSG_E4_STEPS = LCD_STR_E4 _UxGT("шаг/мм");
PROGMEM Language_Str MSG_E5_STEPS = LCD_STR_E5 _UxGT("шаг/мм");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Температура");
PROGMEM Language_Str MSG_MOTION = _UxGT("Движение");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Филамент");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E в мм3");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Диаметр филамента");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Диаметр филамента ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Диаметр филамента ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Диаметр филамента ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Диаметр филамента ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Диаметр филамента ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Диаметр филамента ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("Загрузка мм");
PROGMEM Language_Str MSG_FILAMENT_LOAD = _UxGT("Выгрузка мм");
PROGMEM Language_Str MSG_ADVANCE_K = _UxGT("K продвижения");
PROGMEM Language_Str MSG_ADVANCE_K_E0 = _UxGT("K продвижения ") LCD_STR_E0;
PROGMEM Language_Str MSG_ADVANCE_K_E1 = _UxGT("K продвижения ") LCD_STR_E1;
PROGMEM Language_Str MSG_ADVANCE_K_E2 = _UxGT("K продвижения ") LCD_STR_E2;
PROGMEM Language_Str MSG_ADVANCE_K_E3 = _UxGT("K продвижения ") LCD_STR_E3;
PROGMEM Language_Str MSG_ADVANCE_K_E4 = _UxGT("K продвижения ") LCD_STR_E4;
PROGMEM Language_Str MSG_ADVANCE_K_E5 = _UxGT("K продвижения ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("Контраст LCD");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Сохранить настройки");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Загрузить настройки");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Вернуть настройки");
PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("Инициализация EEPROM");
PROGMEM Language_Str MSG_MEDIA_UPDATE = _UxGT("Обновление прошивки");
PROGMEM Language_Str MSG_RESET_PRINTER = _UxGT("Сброс принтера");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Обновить");
PROGMEM Language_Str MSG_WATCH = _UxGT("Информационный экран");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Подготовить");
PROGMEM Language_Str MSG_TUNE = _UxGT("Настроить");
PROGMEM Language_Str MSG_START_PRINT = _UxGT("Начало печати");
PROGMEM Language_Str MSG_BUTTON_NEXT = _UxGT("Дальше");
PROGMEM Language_Str MSG_BUTTON_INIT = _UxGT("Инициализация");
PROGMEM Language_Str MSG_BUTTON_STOP = _UxGT("Остановить");
PROGMEM Language_Str MSG_BUTTON_PRINT = _UxGT("Печать");
PROGMEM Language_Str MSG_BUTTON_RESET = _UxGT("Сброс");
PROGMEM Language_Str MSG_BUTTON_CANCEL = _UxGT("Отмена");
PROGMEM Language_Str MSG_BUTTON_DONE = _UxGT("Готово");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Пауза печати");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Продолжить печать");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Остановить печать");
PROGMEM Language_Str MSG_OUTAGE_RECOVERY = _UxGT("Восстановение сбоя");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Печать с SD карты");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("Нет SD карты");
PROGMEM Language_Str MSG_DWELL = _UxGT("Сон...");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Продолжить...");
PROGMEM Language_Str MSG_PRINT_PAUSED = _UxGT("Печать на паузе");
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Печать отменена");
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Нет движения.");
PROGMEM Language_Str MSG_KILLED = _UxGT("УБИТО. ");
PROGMEM Language_Str MSG_STOPPED = _UxGT("ОСТАНОВЛЕНО. ");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Втягивание мм");
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Втягивание смены мм");
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Втягивание V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Втяг. прыжка мм");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("Возврат мм");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("Возврат смены мм");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("Возврат V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAPF = _UxGT("Возврат смены V");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Авто Втягивание");
// TODO: Singlenozzle, nozzle standby // TODO: Filament Change Swap / Purge Length
#define MSG_FILAMENTCHANGE _UxGT("Смена филамента") PROGMEM Language_Str MSG_TOOL_CHANGE = _UxGT("Смена сопел");
#define MSG_FILAMENTLOAD _UxGT("Загрузка филамента") PROGMEM Language_Str MSG_TOOL_CHANGE_ZLIFT = _UxGT("Поднятие по Z");
#define MSG_FILAMENTUNLOAD _UxGT("Выгрузка филамента")
#define MSG_FILAMENTUNLOAD_ALL _UxGT("Выгрузить всё")
#define MSG_INIT_MEDIA _UxGT("Активировать SD")
#define MSG_CHANGE_MEDIA _UxGT("Сменить SD карту")
#define MSG_RELEASE_MEDIA _UxGT("Деактивировать SD")
#define MSG_ZPROBE_OUT _UxGT("Z датчик вне стола")
#define MSG_SKEW_FACTOR _UxGT("Фактор наклона")
#define MSG_BLTOUCH _UxGT("BLTouch")
#define MSG_BLTOUCH_SELFTEST _UxGT("Тестирование BLTouch")
#define MSG_BLTOUCH_RESET _UxGT("Сброс BLTouch")
#define MSG_BLTOUCH_DEPLOY _UxGT("Установка BLTouch")
#define MSG_BLTOUCH_STOW _UxGT("Набивка BLTouch")
// TODO: TouchMI Probe, Manual deploy/stow // TODO: Singlenozzle, nozzle standby
#define MSG_HOME_FIRST _UxGT("Паркуй %s%s%s сначала") PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Смена филамента");
#define MSG_ZPROBE_ZOFFSET _UxGT("Смещение Z") PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Смена филамента ") LCD_STR_E0;
#define MSG_BABYSTEP_X _UxGT("Микрошаг X") PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Смена филамента ") LCD_STR_E1;
#define MSG_BABYSTEP_Y _UxGT("Микрошаг Y") PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Смена филамента ") LCD_STR_E2;
#define MSG_BABYSTEP_Z _UxGT("Микрошаг Z") PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Смена филамента ") LCD_STR_E3;
#define MSG_ENDSTOP_ABORT _UxGT("Сработал концевик") PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Смена филамента ") LCD_STR_E4;
#define MSG_HEATING_FAILED_LCD _UxGT("Разогрев не удался") PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Смена филамента ") LCD_STR_E5;
#define MSG_HEATING_FAILED_LCD_BED _UxGT("Неудача нагрева стола") PROGMEM Language_Str MSG_FILAMENTLOAD = _UxGT("Загрузка филамента");
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Ошибка: Избыточная Т") PROGMEM Language_Str MSG_FILAMENTLOAD_E0 = _UxGT("Загрузка филамента ") LCD_STR_E0;
#define MSG_THERMAL_RUNAWAY _UxGT("УБЕГАНИЕ ТЕПЛА") PROGMEM Language_Str MSG_FILAMENTLOAD_E1 = _UxGT("Загрузка филамента ") LCD_STR_E1;
#define MSG_THERMAL_RUNAWAY_BED _UxGT("УБЕГАНИЕ ТЕПЛА СТОЛА") PROGMEM Language_Str MSG_FILAMENTLOAD_E2 = _UxGT("Загрузка филамента ") LCD_STR_E2;
// TODO: Heated chamber PROGMEM Language_Str MSG_FILAMENTLOAD_E3 = _UxGT("Загрузка филамента ") LCD_STR_E3;
#define MSG_ERR_MAXTEMP _UxGT("Ошибка: Т макс.") PROGMEM Language_Str MSG_FILAMENTLOAD_E4 = _UxGT("Загрузка филамента ") LCD_STR_E4;
#define MSG_ERR_MINTEMP _UxGT("Ошибка: Т мин.") PROGMEM Language_Str MSG_FILAMENTLOAD_E5 = _UxGT("Загрузка филамента ") LCD_STR_E5;
#define MSG_ERR_MAXTEMP_BED _UxGT("Ошибка: Т стола макс") PROGMEM Language_Str MSG_FILAMENTUNLOAD_E0 = _UxGT("Выгрузка филамента ") LCD_STR_E0;
#define MSG_ERR_MINTEMP_BED _UxGT("Ошибка: Т стола мин.") PROGMEM Language_Str MSG_FILAMENTUNLOAD_E1 = _UxGT("Выгрузка филамента ") LCD_STR_E1;
// TODO: Heated chamber PROGMEM Language_Str MSG_FILAMENTUNLOAD_E2 = _UxGT("Выгрузка филамента ") LCD_STR_E2;
#define MSG_ERR_Z_HOMING _UxGT("Паркуй XY сначала") PROGMEM Language_Str MSG_FILAMENTUNLOAD_E3 = _UxGT("Выгрузка филамента ") LCD_STR_E3;
#define MSG_HALTED _UxGT("ПРИНТЕР ОСТАНОВЛЕН") PROGMEM Language_Str MSG_FILAMENTUNLOAD_E4 = _UxGT("Выгрузка филамента ") LCD_STR_E4;
#define MSG_PLEASE_RESET _UxGT("Сделайте сброс") PROGMEM Language_Str MSG_FILAMENTUNLOAD_E5 = _UxGT("Выгрузка филамента ") LCD_STR_E5;
#define MSG_SHORT_DAY _UxGT("д") // One character only PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Выгрузить всё");
#define MSG_SHORT_HOUR _UxGT("ч") // One character only PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Активировать SD");
#define MSG_SHORT_MINUTE _UxGT("м") // One character only PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Сменить SD карту");
#define MSG_HEATING _UxGT("Нагрев...") PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("Деактивировать SD");
#define MSG_COOLING _UxGT("Охлаждение...") PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z датчик вне стола");
#define MSG_BED_HEATING _UxGT("Нагрев стола...") PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("Фактор наклона");
#define MSG_BED_COOLING _UxGT("Охлаждение стола...") PROGMEM Language_Str MSG_BLTOUCH = _UxGT("BLTouch");
// TODO: Heated chamber PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("Тестирование BLTouch");
#define MSG_DELTA_CALIBRATE _UxGT("Калибровка Delta") PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("Сброс BLTouch");
#define MSG_DELTA_CALIBRATE_X _UxGT("Калибровать X") PROGMEM Language_Str MSG_BLTOUCH_DEPLOY = _UxGT("Установка BLTouch");
#define MSG_DELTA_CALIBRATE_Y _UxGT("Калибровать Y") PROGMEM Language_Str MSG_BLTOUCH_STOW = _UxGT("Набивка BLTouch");
#define MSG_DELTA_CALIBRATE_Z _UxGT("Калибровать Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Калибровать центр")
#define MSG_DELTA_SETTINGS _UxGT("Настройки Delta")
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Авто калибровка")
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Задать высоту Delta")
#define MSG_DELTA_Z_OFFSET_CALIBRATE _UxGT("Задать Z-смещение")
#define MSG_DELTA_DIAG_ROD _UxGT("Диаг. стержень")
#define MSG_DELTA_HEIGHT _UxGT("Высота")
#define MSG_DELTA_RADIUS _UxGT("Радиус")
#define MSG_INFO_MENU _UxGT("О принтере")
#define MSG_INFO_PRINTER_MENU _UxGT("Инф. о принтере")
#define MSG_3POINT_LEVELING _UxGT("Калибровка 3-х точек")
#define MSG_LINEAR_LEVELING _UxGT("Линейная калибровка")
#define MSG_BILINEAR_LEVELING _UxGT("Билинейная калибр.")
#define MSG_UBL_LEVELING _UxGT("Калибровка UBL")
#define MSG_MESH_LEVELING _UxGT("Калибровка сетки")
#define MSG_INFO_STATS_MENU _UxGT("Статистика принтера")
#define MSG_INFO_BOARD_MENU _UxGT("Информация о плате")
#define MSG_INFO_THERMISTOR_MENU _UxGT("Термисторы")
#define MSG_INFO_EXTRUDERS _UxGT("Экструдеры")
#define MSG_INFO_BAUDRATE _UxGT("Бод")
#define MSG_INFO_PROTOCOL _UxGT("Протокол")
#define MSG_CASE_LIGHT _UxGT("Подсветка корпуса")
#define MSG_CASE_LIGHT_BRIGHTNESS _UxGT("Яркость подсветки")
#define MSG_EXPECTED_PRINTER _UxGT("Неверный принтер") // TODO: TouchMI Probe, Manual deploy/stow
#if LCD_WIDTH >= 20 PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("Паркуй %s%s%s сначала");
#define MSG_INFO_PRINT_COUNT _UxGT("Счётчик печати") PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Смещение Z");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Закончено") PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Микрошаг X");
#define MSG_INFO_PRINT_TIME _UxGT("Общее время печати") PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Микрошаг Y");
#define MSG_INFO_PRINT_LONGEST _UxGT("Наидольшее задание") PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Микрошаг Z");
#define MSG_INFO_PRINT_FILAMENT _UxGT("Длина филамента") PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Сработал концевик");
#else PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Разогрев не удался");
#define MSG_INFO_PRINT_COUNT _UxGT("Отпечатков") PROGMEM Language_Str MSG_HEATING_FAILED_LCD_BED = _UxGT("Неудача нагрева стола");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Закончено") PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("Ошибка: Избыточная Т");
#define MSG_INFO_PRINT_TIME _UxGT("Всего") PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("УБЕГАНИЕ ТЕПЛА");
#define MSG_INFO_PRINT_LONGEST _UxGT("Наидольшее") PROGMEM Language_Str MSG_THERMAL_RUNAWAY_BED = _UxGT("УБЕГАНИЕ ТЕПЛА СТОЛА");
#define MSG_INFO_PRINT_FILAMENT _UxGT("Выдавлено") // TODO: Heated chamber
#endif PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("Ошибка: Т макс.");
#define MSG_INFO_MIN_TEMP _UxGT("Мин. Т") PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("Ошибка: Т мин.");
#define MSG_INFO_MAX_TEMP _UxGT("Макс. Т") PROGMEM Language_Str MSG_ERR_MAXTEMP_BED = _UxGT("Ошибка: Т стола макс");
#define MSG_INFO_PSU _UxGT("БП") PROGMEM Language_Str MSG_ERR_MINTEMP_BED = _UxGT("Ошибка: Т стола мин.");
#define MSG_DRIVE_STRENGTH _UxGT("Сила привода") // TODO: Heated chamber
#define MSG_DAC_PERCENT _UxGT("Привод %") PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("Паркуй XY сначала");
#define MSG_DAC_EEPROM_WRITE _UxGT("Запись DAC EEPROM") PROGMEM Language_Str MSG_HALTED = _UxGT("ПРИНТЕР ОСТАНОВЛЕН");
#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("ПЕЧАТЬ НА ПАУЗЕ") PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Сделайте сброс");
#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("ЗАГРУЗКА ФИЛАМЕНТА") PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("д"); // One character only
#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("ВЫГРУЗКА ФИЛАМЕНТА") PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("ч"); // One character only
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("ОПЦИИ ВОЗОБНОВЛЕНИЯ:") PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("м"); // One character only
#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Выдавить ещё") PROGMEM Language_Str MSG_HEATING = _UxGT("Нагрев...");
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Возобновить печать") PROGMEM Language_Str MSG_COOLING = _UxGT("Охлаждение...");
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Сопла: ") PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Нагрев стола...");
#define MSG_ERR_HOMING_FAILED _UxGT("Возврат не удался") PROGMEM Language_Str MSG_BED_COOLING = _UxGT("Охлаждение стола...");
#define MSG_ERR_PROBING_FAILED _UxGT("Не удалось прощупать") // TODO: Heated chamber
#define MSG_M600_TOO_COLD _UxGT("M600: Низкая Т") PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Калибровка Delta");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Калибровать X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Калибровать Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Калибровать Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Калибровать центр");
PROGMEM Language_Str MSG_DELTA_SETTINGS = _UxGT("Настройки Delta");
PROGMEM Language_Str MSG_DELTA_AUTO_CALIBRATE = _UxGT("Авто калибровка");
PROGMEM Language_Str MSG_DELTA_HEIGHT_CALIBRATE = _UxGT("Задать высоту Delta");
PROGMEM Language_Str MSG_DELTA_Z_OFFSET_CALIBRATE = _UxGT("Задать Z-смещение");
PROGMEM Language_Str MSG_DELTA_DIAG_ROD = _UxGT("Диаг. стержень");
PROGMEM Language_Str MSG_DELTA_HEIGHT = _UxGT("Высота");
PROGMEM Language_Str MSG_DELTA_RADIUS = _UxGT("Радиус");
PROGMEM Language_Str MSG_INFO_MENU = _UxGT("О принтере");
PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Инф. о принтере");
PROGMEM Language_Str MSG_3POINT_LEVELING = _UxGT("Калибровка 3-х точек");
PROGMEM Language_Str MSG_LINEAR_LEVELING = _UxGT("Линейная калибровка");
PROGMEM Language_Str MSG_BILINEAR_LEVELING = _UxGT("Билинейная калибр.");
PROGMEM Language_Str MSG_UBL_LEVELING = _UxGT("Калибровка UBL");
PROGMEM Language_Str MSG_MESH_LEVELING = _UxGT("Калибровка сетки");
PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Статистика принтера");
PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Информация о плате");
PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Термисторы");
PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Экструдеры");
PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("Бод");
PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Протокол");
PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Подсветка корпуса");
PROGMEM Language_Str MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Яркость подсветки");
// TODO: MMU2 PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Неверный принтер");
// TODO: Mixing #if LCD_WIDTH >= 20
PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Счётчик печати");
PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Закончено");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Общее время печати");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Наидольшее задание");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Длина филамента");
#else
PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Отпечатков");
PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Закончено");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Всего");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Наидольшее");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Выдавлено");
#endif
PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Мин. Т");
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Макс. Т");
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("БП");
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Сила привода");
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Привод %");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Запись DAC EEPROM");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("ПЕЧАТЬ НА ПАУЗЕ");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("ЗАГРУЗКА ФИЛАМЕНТА");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("ВЫГРУЗКА ФИЛАМЕНТА");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("ОПЦИИ ВОЗОБНОВЛЕНИЯ:");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("Выдавить ещё");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Возобновить печать");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Сопла: ");
PROGMEM Language_Str MSG_LCD_HOMING_FAILED = _UxGT("Возврат не удался");
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Не удалось прощупать");
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Низкая Т");
#define MSG_GAMES _UxGT("Игры") // TODO: MMU2
#define MSG_BRICKOUT _UxGT("Кирпичи")
#define MSG_INVADERS _UxGT("Вторжение")
#define MSG_SNAKE _UxGT("Змейка")
#define MSG_MAZE _UxGT("Лабиринт")
// // TODO: Mixing
// Filament Change screens show up to 3 lines on a 4-line display
// ...or up to 2 lines on a 3-line display
//
#if LCD_HEIGHT >= 4
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Ожидайте")
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("начала смены")
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("филамента")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Ожидайте")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("выгрузки")
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("филамента")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Вставьте пруток")
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("и нажмите кнопку")
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("для продолжения")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Нажмите кнопку для")
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("нагрева сопла...")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Нагрев сопла")
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Ждите...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Ожидайте")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("загрузки прутка")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Ожидайте")
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("экструзии")
#define MSG_FILAMENT_CHANGE_PURGE_3 _UxGT("филамента")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Ожидайте")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("возобновления")
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("печати")
#else // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Ожидайте...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Выгрузка...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Вставь и нажми")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Нагрев...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Загрузка...")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Выдавливание...")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Возобновление...")
#endif // LCD_HEIGHT < 4
#define MSG_TMC_DRIVERS _UxGT("Драйвера TMC") PROGMEM Language_Str MSG_GAMES = _UxGT("Игры");
#define MSG_TMC_CURRENT _UxGT("Текущие настройки") PROGMEM Language_Str MSG_BRICKOUT = _UxGT("Кирпичи");
#define MSG_TMC_HYBRID_THRS _UxGT("Гибридный режим") PROGMEM Language_Str MSG_INVADERS = _UxGT("Вторжение");
#define MSG_TMC_HOMING_THRS _UxGT("Режим без эндстопов") PROGMEM Language_Str MSG_SNAKE = _UxGT("Змейка");
#define MSG_TMC_STEPPING_MODE _UxGT("Режим шага") PROGMEM Language_Str MSG_MAZE = _UxGT("Лабиринт");
#define MSG_TMC_STEALTH_ENABLED _UxGT("Тихий режим вкл")
// TODO: Service //
// Filament Change screens show up to 3 lines on a 4-line display
// ...or up to 2 lines on a 3-line display
//
#if LCD_HEIGHT >= 4
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Ожидайте", "начала смены", "филамента"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_3_LINE("Ожидайте", "выгрузки", "филамента"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Вставьте пруток", "и нажмите кнопку", "для продолжения"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Нажмите кнопку для", "нагрева сопла..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("Нагрев сопла", "Ждите..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Ожидайте", "загрузки прутка"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_3_LINE("Ожидайте", "экструзии", "филамента"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_3_LINE("Ожидайте", "возобновления", "печати"));
#else
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Ожидайте..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Выгрузка..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Вставь и нажми"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("Нагрев..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Загрузка..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_1_LINE("Выдавливание..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Возобновление..."));
#endif
// TODO: Backlash PROGMEM Language_Str MSG_TMC_DRIVERS = _UxGT("Драйвера TMC");
PROGMEM Language_Str MSG_TMC_CURRENT = _UxGT("Текущие настройки");
PROGMEM Language_Str MSG_TMC_HYBRID_THRS = _UxGT("Гибридный режим");
PROGMEM Language_Str MSG_TMC_HOMING_THRS = _UxGT("Режим без эндстопов");
PROGMEM Language_Str MSG_TMC_STEPPING_MODE = _UxGT("Режим шага");
PROGMEM Language_Str MSG_TMC_STEALTH_ENABLED = _UxGT("Тихий режим вкл");
// TODO: Service
// TODO: Backlash
}

View file

@ -32,552 +32,612 @@
* http://www.facebook.com/farmamam * http://www.facebook.com/farmamam
* *
*/ */
#define DISPLAY_CHARSET_ISO10646_SK #define DISPLAY_CHARSET_ISO10646_SK
#define CHARSIZE 2
// Characters that can be displayed with M117 namespace Language_sk {
#define THIS_LANGUAGES_SPECIAL_SYMBOLS _UxGT("äÄáÁčČďĎéÉíÍĺĹľĽňŇóÓôÔŕŔšŠťŤúÚýÝžŽ³") using namespace Language_en; // Inherit undefined strings from English
#define WELCOME_MSG MACHINE_NAME _UxGT(" pripravená.") constexpr uint8_t CHARSIZE = 2;
#define MSG_YES _UxGT("ÁNO") PROGMEM Language_Str LANGUAGE = _UxGT("Slovak");
#define MSG_NO _UxGT("NIE")
#define MSG_BACK _UxGT("Naspäť")
#define MSG_MEDIA_ABORTING _UxGT("Ruším...")
#define MSG_MEDIA_INSERTED _UxGT("Karta vložená")
#define MSG_MEDIA_REMOVED _UxGT("Karta vybraná")
#define MSG_MEDIA_RELEASED _UxGT("Karta odpojená")
#define MSG_MEDIA_WAITING _UxGT("Čakám na kartu")
#define MSG_MEDIA_READ_ERROR _UxGT("Chyba čítania karty")
#define MSG_MEDIA_USB_REMOVED _UxGT("USB zaria. odstrán.")
#define MSG_MEDIA_USB_FAILED _UxGT("Chyba spúšťania USB")
#define MSG_LCD_ENDSTOPS _UxGT("Endstopy") // max 8 znakov
#define MSG_LCD_SOFT_ENDSTOPS _UxGT("Soft. endstopy")
#define MSG_MAIN _UxGT("Hlavná ponuka")
#define MSG_ADVANCED_SETTINGS _UxGT("Pokročilé nastav.")
#define MSG_CONFIGURATION _UxGT("Konfigurácia")
#define MSG_AUTOSTART _UxGT("Auto-štart")
#define MSG_DISABLE_STEPPERS _UxGT("Uvolniť motory")
#define MSG_DEBUG_MENU _UxGT("Ponuka ladenia")
#define MSG_PROGRESS_BAR_TEST _UxGT("Test uk. priebehu")
#define MSG_AUTO_HOME _UxGT("Domovská pozícia")
#define MSG_AUTO_HOME_X _UxGT("Domov os X")
#define MSG_AUTO_HOME_Y _UxGT("Domov os Y")
#define MSG_AUTO_HOME_Z _UxGT("Domov os Z")
#define MSG_AUTO_Z_ALIGN _UxGT("Auto-zarovn. Z")
#define MSG_LEVEL_BED_HOMING _UxGT("Parkovanie XYZ")
#define MSG_LEVEL_BED_WAITING _UxGT("Kliknutím spusťte")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Ďalší bod")
#define MSG_LEVEL_BED_DONE _UxGT("Meranie hotové!")
#define MSG_Z_FADE_HEIGHT _UxGT("Výška rovnania")
#define MSG_SET_HOME_OFFSETS _UxGT("Nastaviť ofsety")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Ofsety nastavené")
#define MSG_SET_ORIGIN _UxGT("Nastaviť začiatok")
#define MSG_PREHEAT_1 _UxGT("Zahriať " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ")
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" všetko")
#define MSG_PREHEAT_1_END MSG_PREHEAT_1 _UxGT(" hotend")
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" podlož")
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" nast.")
#define MSG_PREHEAT_2 _UxGT("Zahriať " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ")
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" všetko")
#define MSG_PREHEAT_2_END MSG_PREHEAT_2 _UxGT(" hotend")
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" podlož")
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" nast.")
#define MSG_PREHEAT_CUSTOM _UxGT("Vlastná teplota")
#define MSG_COOLDOWN _UxGT("Schladiť")
#define MSG_LASER_MENU _UxGT("Nastavenie lasera")
#define MSG_LASER_OFF _UxGT("Vypnúť laser")
#define MSG_LASER_ON _UxGT("Zapnúť laser")
#define MSG_LASER_POWER _UxGT("Výkon lasera")
#define MSG_SPINDLE_MENU _UxGT("Nastavenie vretena")
#define MSG_SPINDLE_OFF _UxGT("Vypnúť vreteno")
#define MSG_SPINDLE_ON _UxGT("Zapnúť vreteno")
#define MSG_SPINDLE_POWER _UxGT("Výkon vretena")
#define MSG_SPINDLE_REVERSE _UxGT("Spätný chod")
#define MSG_SWITCH_PS_ON _UxGT("Zapnúť napájanie")
#define MSG_SWITCH_PS_OFF _UxGT("Vypnúť napájanie")
#define MSG_EXTRUDE _UxGT("Vytlačiť (extr.)")
#define MSG_RETRACT _UxGT("Vytiahnuť (retr.)")
#define MSG_MOVE_AXIS _UxGT("Posunúť osy")
#define MSG_BED_LEVELING _UxGT("Vyrovnanie podložky")
#define MSG_LEVEL_BED _UxGT("Vyrovnať podložku")
#define MSG_LEVEL_CORNERS _UxGT("Vyrovnať rohy")
#define MSG_NEXT_CORNER _UxGT("Ďalší roh")
#define MSG_MESH_EDITOR _UxGT("Editor sieťe bodov")
#define MSG_EDIT_MESH _UxGT("Upraviť sieť bodov")
#define MSG_EDITING_STOPPED _UxGT("Koniec úprav siete")
#define MSG_PROBING_MESH _UxGT("Skúšam bod")
#define MSG_MESH_X _UxGT("Index X")
#define MSG_MESH_Y _UxGT("Index Y")
#define MSG_MESH_EDIT_Z _UxGT("Hodnota Z")
#define MSG_USER_MENU _UxGT("Vlastné príkazy")
#define MSG_M48_TEST _UxGT("M48 Test sondy")
#define MSG_M48_POINT _UxGT("M48 Bod")
#define MSG_M48_DEVIATION _UxGT("Odchýlka")
#define MSG_IDEX_MENU _UxGT("IDEX režim")
#define MSG_OFFSETS_MENU _UxGT("Ofset nástrojov")
#define MSG_IDEX_MODE_AUTOPARK _UxGT("Auto-parkovanie")
#define MSG_IDEX_MODE_DUPLICATE _UxGT("Duplikácia")
#define MSG_IDEX_MODE_MIRRORED_COPY _UxGT("Zrkadlená kópia")
#define MSG_IDEX_MODE_FULL_CTRL _UxGT("Plná kontrola")
#define MSG_X_OFFSET _UxGT("2. tryska X")
#define MSG_Y_OFFSET _UxGT("2. tryska Y")
#define MSG_Z_OFFSET _UxGT("2. tryska Z")
#define MSG_UBL_DOING_G29 _UxGT("Vykonávam G29")
#define MSG_UBL_TOOLS _UxGT("Nástroje UBL")
#define MSG_UBL_LEVEL_BED _UxGT("UBL rovnanie")
#define MSG_LCD_TILTING_MESH _UxGT("Vyrovnávam bod")
#define MSG_UBL_MANUAL_MESH _UxGT("Manuálna sieť bodov")
#define MSG_UBL_BC_INSERT _UxGT("Položte a zmerajte")
#define MSG_UBL_BC_INSERT2 _UxGT("Zmerajte")
#define MSG_UBL_BC_REMOVE _UxGT("Odstráňte a zmerajte")
#define MSG_UBL_MOVING_TO_NEXT _UxGT("Presun na ďalší")
#define MSG_UBL_ACTIVATE_MESH _UxGT("Aktivovať UBL")
#define MSG_UBL_DEACTIVATE_MESH _UxGT("Deaktivovať UBL")
#define MSG_UBL_SET_TEMP_BED _UxGT("Teplota podložky")
#define MSG_UBL_BED_TEMP_CUSTOM MSG_UBL_SET_TEMP_BED
#define MSG_UBL_SET_TEMP_HOTEND _UxGT("Teplota hotendu")
#define MSG_UBL_HOTEND_TEMP_CUSTOM MSG_UBL_SET_TEMP_HOTEND
#define MSG_UBL_MESH_EDIT _UxGT("Úprava siete bodov")
#define MSG_UBL_EDIT_CUSTOM_MESH _UxGT("Upraviť vlastnú sieť")
#define MSG_UBL_FINE_TUNE_MESH _UxGT("Doladiť sieť bodov")
#define MSG_UBL_DONE_EDITING_MESH _UxGT("Koniec úprav siete")
#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Vlastná sieť")
#define MSG_UBL_BUILD_MESH_MENU _UxGT("Vytvoriť sieť")
#define MSG_UBL_BUILD_MESH_M1 _UxGT("Sieť bodov " PREHEAT_1_LABEL)
#define MSG_UBL_BUILD_MESH_M2 _UxGT("Sieť bodov " PREHEAT_2_LABEL)
#define MSG_UBL_BUILD_COLD_MESH _UxGT("Studená sieť bodov")
#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Upraviť výšku siete")
#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Výška")
#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("Skontrolovať sieť")
#define MSG_UBL_VALIDATE_MESH_M1 _UxGT("Kontrola siete " PREHEAT_1_LABEL)
#define MSG_UBL_VALIDATE_MESH_M2 _UxGT("Kontrola siete " PREHEAT_2_LABEL)
#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Kontrola vlast.siete")
#define MSG_G26_HEATING_BED _UxGT("G26 ohrev podlž.")
#define MSG_G26_HEATING_NOZZLE _UxGT("G26 ohrev trysky")
#define MSG_G26_MANUAL_PRIME _UxGT("Ručné čistenie...")
#define MSG_G26_FIXED_LENGTH _UxGT("Čistenie pevn. dĺž.")
#define MSG_G26_PRIME_DONE _UxGT("Čistenie dokončené")
#define MSG_G26_CANCELED _UxGT("G26 zrušený")
#define MSG_G26_LEAVING _UxGT("Opúšťam G26")
#define MSG_UBL_CONTINUE_MESH _UxGT("Pokračovať v sieti")
#define MSG_UBL_MESH_LEVELING _UxGT("Sieťové rovnanie")
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("3-bodové rovnanie")
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Mriežkové rovnanie")
#define MSG_UBL_MESH_LEVEL _UxGT("Vyrovnať podložku")
#define MSG_UBL_SIDE_POINTS _UxGT("Postranné body")
#define MSG_UBL_MAP_TYPE _UxGT("Typ siete bodov")
#define MSG_UBL_OUTPUT_MAP _UxGT("Exportovať sieť")
#define MSG_UBL_OUTPUT_MAP_HOST _UxGT("Exportovať do PC")
#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Exportovať do CSV")
#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Záloha do PC")
#define MSG_UBL_INFO_UBL _UxGT("Info. o UBL do PC")
#define MSG_UBL_FILLIN_AMOUNT _UxGT("Hustota mriežky")
#define MSG_UBL_MANUAL_FILLIN _UxGT("Ručné vyplnenie")
#define MSG_UBL_SMART_FILLIN _UxGT("Chytré vyplnenie")
#define MSG_UBL_FILLIN_MESH _UxGT("Vyplniť mriežku")
#define MSG_UBL_INVALIDATE_ALL _UxGT("Zrušiť všetko")
#define MSG_UBL_INVALIDATE_CLOSEST _UxGT("Zrušiť najbližší")
#define MSG_UBL_FINE_TUNE_ALL _UxGT("Upraviť všetky")
#define MSG_UBL_FINE_TUNE_CLOSEST _UxGT("Upraviť najbližší")
#define MSG_UBL_STORAGE_MESH_MENU _UxGT("Úložisko sietí")
#define MSG_UBL_STORAGE_SLOT _UxGT("Pamäťový slot")
#define MSG_UBL_LOAD_MESH _UxGT("Načítať sieť bodov")
#define MSG_UBL_SAVE_MESH _UxGT("Uložiť sieť bodov")
#define MSG_MESH_LOADED _UxGT("Sieť %i načítaná")
#define MSG_MESH_SAVED _UxGT("Sieť %i uložená")
#define MSG_UBL_NO_STORAGE _UxGT("Nedostatok miesta")
#define MSG_UBL_SAVE_ERROR _UxGT("Chyba: Ukladanie UBL")
#define MSG_UBL_RESTORE_ERROR _UxGT("Chyba: Obnovenie UBL")
#define MSG_UBL_Z_OFFSET _UxGT("Z-Ofset: ")
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Koniec kompenz. Z")
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("Postupné UBL")
#define MSG_LED_CONTROL _UxGT("Nastavenie LED") PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" pripravená.");
#define MSG_LEDS _UxGT("Svetlo") PROGMEM Language_Str MSG_YES = _UxGT("ÁNO");
#define MSG_LED_PRESETS _UxGT("Prednastavené farby") PROGMEM Language_Str MSG_NO = _UxGT("NIE");
#define MSG_SET_LEDS_RED _UxGT("Červená") PROGMEM Language_Str MSG_BACK = _UxGT("Naspäť");
#define MSG_SET_LEDS_ORANGE _UxGT("Oranžová") PROGMEM Language_Str MSG_MEDIA_ABORTING = _UxGT("Ruším...");
#define MSG_SET_LEDS_YELLOW _UxGT("Žltá") PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Karta vložená");
#define MSG_SET_LEDS_GREEN _UxGT("Zelená") PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Karta vybraná");
#define MSG_SET_LEDS_BLUE _UxGT("Modrá") PROGMEM Language_Str MSG_MEDIA_RELEASED = _UxGT("Karta odpojená");
#define MSG_SET_LEDS_INDIGO _UxGT("Indigo") PROGMEM Language_Str MSG_MEDIA_WAITING = _UxGT("Čakám na kartu");
#define MSG_SET_LEDS_VIOLET _UxGT("Fialová") PROGMEM Language_Str MSG_MEDIA_READ_ERROR = _UxGT("Chyba čítania karty");
#define MSG_SET_LEDS_WHITE _UxGT("Biela") PROGMEM Language_Str MSG_MEDIA_USB_REMOVED = _UxGT("USB zaria. odstrán.");
#define MSG_SET_LEDS_DEFAULT _UxGT("Obnoviť nastavenie") PROGMEM Language_Str MSG_MEDIA_USB_FAILED = _UxGT("Chyba spúšťania USB");
#define MSG_CUSTOM_LEDS _UxGT("Vlastná farba") PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Endstopy") // max 8 znakov;
#define MSG_INTENSITY_R _UxGT("Inten. červenej") PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("Soft. endstopy");
#define MSG_INTENSITY_G _UxGT("Inten. zelenej") PROGMEM Language_Str MSG_MAIN = _UxGT("Hlavná ponuka");
#define MSG_INTENSITY_B _UxGT("Inten. modrej") PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("Pokročilé nastav.");
#define MSG_INTENSITY_W _UxGT("Inten. bielej") PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("Konfigurácia");
#define MSG_LED_BRIGHTNESS _UxGT("Jas") PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Auto-štart");
PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Uvolniť motory");
PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("Ponuka ladenia");
PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Test uk. priebehu");
PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Domovská pozícia");
PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Domov os X");
PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Domov os Y");
PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Domov os Z");
PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("Auto-zarovn. Z");
PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Parkovanie XYZ");
PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Kliknutím spusťte");
PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Ďalší bod");
PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Meranie hotové!");
PROGMEM Language_Str MSG_Z_FADE_HEIGHT = _UxGT("Výška rovnania");
PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Nastaviť ofsety");
PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Ofsety nastavené");
PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Nastaviť začiatok");
PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Zahriať ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Zahriať ") PREHEAT_1_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Zahriať ") PREHEAT_1_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Zahriať ") PREHEAT_1_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Zahriať ") PREHEAT_1_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Zahriať ") PREHEAT_1_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Zahriať ") PREHEAT_1_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Zahriať ") PREHEAT_1_LABEL _UxGT(" trysky");
PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Zahriať ") PREHEAT_1_LABEL _UxGT(" trysky ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Zahriať ") PREHEAT_1_LABEL _UxGT(" trysky ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Zahriať ") PREHEAT_1_LABEL _UxGT(" trysky ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Zahriať ") PREHEAT_1_LABEL _UxGT(" trysky ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Zahriať ") PREHEAT_1_LABEL _UxGT(" trysky ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Zahriať ") PREHEAT_1_LABEL _UxGT(" trysky ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Zahriať ") PREHEAT_1_LABEL _UxGT(" všetko");
PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Zahriať ") PREHEAT_1_LABEL _UxGT(" podlož");
PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Zahriať ") PREHEAT_1_LABEL _UxGT(" nast.");
PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Zahriať ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Zahriať ") PREHEAT_2_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Zahriať ") PREHEAT_2_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Zahriať ") PREHEAT_2_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Zahriať ") PREHEAT_2_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Zahriať ") PREHEAT_2_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Zahriať ") PREHEAT_2_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Zahriať ") PREHEAT_2_LABEL _UxGT(" trysky");
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Zahriať ") PREHEAT_2_LABEL _UxGT(" trysky ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Zahriať ") PREHEAT_2_LABEL _UxGT(" trysky ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Zahriať ") PREHEAT_2_LABEL _UxGT(" trysky ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Zahriať ") PREHEAT_2_LABEL _UxGT(" trysky ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Zahriať ") PREHEAT_2_LABEL _UxGT(" trysky ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Zahriať ") PREHEAT_2_LABEL _UxGT(" trysky ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Zahriať ") PREHEAT_2_LABEL _UxGT(" všetko");
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Zahriať ") PREHEAT_2_LABEL _UxGT(" podlož");
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Zahriať ") PREHEAT_2_LABEL _UxGT(" nast.");
PROGMEM Language_Str MSG_PREHEAT_CUSTOM = _UxGT("Vlastná teplota");
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Schladiť");
PROGMEM Language_Str MSG_LASER_MENU = _UxGT("Nastavenie lasera");
PROGMEM Language_Str MSG_LASER_OFF = _UxGT("Vypnúť laser");
PROGMEM Language_Str MSG_LASER_ON = _UxGT("Zapnúť laser");
PROGMEM Language_Str MSG_LASER_POWER = _UxGT("Výkon lasera");
PROGMEM Language_Str MSG_SPINDLE_MENU = _UxGT("Nastavenie vretena");
PROGMEM Language_Str MSG_SPINDLE_OFF = _UxGT("Vypnúť vreteno");
PROGMEM Language_Str MSG_SPINDLE_ON = _UxGT("Zapnúť vreteno");
PROGMEM Language_Str MSG_SPINDLE_POWER = _UxGT("Výkon vretena");
PROGMEM Language_Str MSG_SPINDLE_REVERSE = _UxGT("Spätný chod");
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Zapnúť napájanie");
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Vypnúť napájanie");
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Vytlačiť (extr.)");
PROGMEM Language_Str MSG_RETRACT = _UxGT("Vytiahnuť (retr.)");
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Posunúť osy");
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Vyrovnanie podložky");
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Vyrovnať podložku");
PROGMEM Language_Str MSG_LEVEL_CORNERS = _UxGT("Vyrovnať rohy");
PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("Ďalší roh");
PROGMEM Language_Str MSG_MESH_EDITOR = _UxGT("Editor sieťe bodov");
PROGMEM Language_Str MSG_EDIT_MESH = _UxGT("Upraviť sieť bodov");
PROGMEM Language_Str MSG_EDITING_STOPPED = _UxGT("Koniec úprav siete");
PROGMEM Language_Str MSG_PROBING_MESH = _UxGT("Skúšam bod");
PROGMEM Language_Str MSG_MESH_X = _UxGT("Index X");
PROGMEM Language_Str MSG_MESH_Y = _UxGT("Index Y");
PROGMEM Language_Str MSG_MESH_EDIT_Z = _UxGT("Hodnota Z");
PROGMEM Language_Str MSG_USER_MENU = _UxGT("Vlastné príkazy");
PROGMEM Language_Str MSG_M48_TEST = _UxGT("M48 Test sondy");
PROGMEM Language_Str MSG_M48_POINT = _UxGT("M48 Bod");
PROGMEM Language_Str MSG_M48_DEVIATION = _UxGT("Odchýlka");
PROGMEM Language_Str MSG_IDEX_MENU = _UxGT("IDEX režim");
PROGMEM Language_Str MSG_OFFSETS_MENU = _UxGT("Ofset nástrojov");
PROGMEM Language_Str MSG_IDEX_MODE_AUTOPARK = _UxGT("Auto-parkovanie");
PROGMEM Language_Str MSG_IDEX_MODE_DUPLICATE = _UxGT("Duplikácia");
PROGMEM Language_Str MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Zrkadlená kópia");
PROGMEM Language_Str MSG_IDEX_MODE_FULL_CTRL = _UxGT("Plná kontrola");
PROGMEM Language_Str MSG_X_OFFSET = _UxGT("2. tryska X");
PROGMEM Language_Str MSG_Y_OFFSET = _UxGT("2. tryska Y");
PROGMEM Language_Str MSG_Z_OFFSET = _UxGT("2. tryska Z");
PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("Vykonávam G29");
PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("Nástroje UBL");
PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("UBL rovnanie");
PROGMEM Language_Str MSG_LCD_TILTING_MESH = _UxGT("Vyrovnávam bod");
PROGMEM Language_Str MSG_UBL_MANUAL_MESH = _UxGT("Manuálna sieť bodov");
PROGMEM Language_Str MSG_UBL_BC_INSERT = _UxGT("Položte a zmerajte");
PROGMEM Language_Str MSG_UBL_BC_INSERT2 = _UxGT("Zmerajte");
PROGMEM Language_Str MSG_UBL_BC_REMOVE = _UxGT("Odstráňte a zmerajte");
PROGMEM Language_Str MSG_UBL_MOVING_TO_NEXT = _UxGT("Presun na ďalší");
PROGMEM Language_Str MSG_UBL_ACTIVATE_MESH = _UxGT("Aktivovať UBL");
PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("Deaktivovať UBL");
PROGMEM Language_Str MSG_UBL_SET_TEMP_BED = _UxGT("Teplota podložky");
PROGMEM Language_Str MSG_UBL_BED_TEMP_CUSTOM = _UxGT("Teplota podložky");
PROGMEM Language_Str MSG_UBL_SET_TEMP_HOTEND = _UxGT("Teplota hotendu");
PROGMEM Language_Str MSG_UBL_HOTEND_TEMP_CUSTOM = _UxGT("Teplota hotendu");
PROGMEM Language_Str MSG_UBL_MESH_EDIT = _UxGT("Úprava siete bodov");
PROGMEM Language_Str MSG_UBL_EDIT_CUSTOM_MESH = _UxGT("Upraviť vlastnú sieť");
PROGMEM Language_Str MSG_UBL_FINE_TUNE_MESH = _UxGT("Doladiť sieť bodov");
PROGMEM Language_Str MSG_UBL_DONE_EDITING_MESH = _UxGT("Koniec úprav siete");
PROGMEM Language_Str MSG_UBL_BUILD_CUSTOM_MESH = _UxGT("Vlastná sieť");
PROGMEM Language_Str MSG_UBL_BUILD_MESH_MENU = _UxGT("Vytvoriť sieť");
PROGMEM Language_Str MSG_UBL_BUILD_MESH_M1 = _UxGT("Sieť bodov ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_UBL_BUILD_MESH_M2 = _UxGT("Sieť bodov ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_UBL_BUILD_COLD_MESH = _UxGT("Studená sieť bodov");
PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_ADJUST = _UxGT("Upraviť výšku siete");
PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_AMOUNT = _UxGT("Výška");
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_MENU = _UxGT("Skontrolovať sieť");
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M1 = _UxGT("Kontrola siete ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M2 = _UxGT("Kontrola siete ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("Kontrola vlast.siete");
PROGMEM Language_Str MSG_G26_HEATING_BED = _UxGT("G26 ohrev podlž.");
PROGMEM Language_Str MSG_G26_HEATING_NOZZLE = _UxGT("G26 ohrev trysky");
PROGMEM Language_Str MSG_G26_MANUAL_PRIME = _UxGT("Ručné čistenie...");
PROGMEM Language_Str MSG_G26_FIXED_LENGTH = _UxGT("Čistenie pevn. dĺž.");
PROGMEM Language_Str MSG_G26_PRIME_DONE = _UxGT("Čistenie dokončené");
PROGMEM Language_Str MSG_G26_CANCELED = _UxGT("G26 zrušený");
PROGMEM Language_Str MSG_G26_LEAVING = _UxGT("Opúšťam G26");
PROGMEM Language_Str MSG_UBL_CONTINUE_MESH = _UxGT("Pokračovať v sieti");
PROGMEM Language_Str MSG_UBL_MESH_LEVELING = _UxGT("Sieťové rovnanie");
PROGMEM Language_Str MSG_UBL_3POINT_MESH_LEVELING = _UxGT("3-bodové rovnanie");
PROGMEM Language_Str MSG_UBL_GRID_MESH_LEVELING = _UxGT("Mriežkové rovnanie");
PROGMEM Language_Str MSG_UBL_MESH_LEVEL = _UxGT("Vyrovnať podložku");
PROGMEM Language_Str MSG_UBL_SIDE_POINTS = _UxGT("Postranné body");
PROGMEM Language_Str MSG_UBL_MAP_TYPE = _UxGT("Typ siete bodov");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP = _UxGT("Exportovať sieť");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_HOST = _UxGT("Exportovať do PC");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_CSV = _UxGT("Exportovať do CSV");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_BACKUP = _UxGT("Záloha do PC");
PROGMEM Language_Str MSG_UBL_INFO_UBL = _UxGT("Info. o UBL do PC");
PROGMEM Language_Str MSG_UBL_FILLIN_AMOUNT = _UxGT("Hustota mriežky");
PROGMEM Language_Str MSG_UBL_MANUAL_FILLIN = _UxGT("Ručné vyplnenie");
PROGMEM Language_Str MSG_UBL_SMART_FILLIN = _UxGT("Chytré vyplnenie");
PROGMEM Language_Str MSG_UBL_FILLIN_MESH = _UxGT("Vyplniť mriežku");
PROGMEM Language_Str MSG_UBL_INVALIDATE_ALL = _UxGT("Zrušiť všetko");
PROGMEM Language_Str MSG_UBL_INVALIDATE_CLOSEST = _UxGT("Zrušiť najbližší");
PROGMEM Language_Str MSG_UBL_FINE_TUNE_ALL = _UxGT("Upraviť všetky");
PROGMEM Language_Str MSG_UBL_FINE_TUNE_CLOSEST = _UxGT("Upraviť najbližší");
PROGMEM Language_Str MSG_UBL_STORAGE_MESH_MENU = _UxGT("Úložisko sietí");
PROGMEM Language_Str MSG_UBL_STORAGE_SLOT = _UxGT("Pamäťový slot");
PROGMEM Language_Str MSG_UBL_LOAD_MESH = _UxGT("Načítať sieť bodov");
PROGMEM Language_Str MSG_UBL_SAVE_MESH = _UxGT("Uložiť sieť bodov");
PROGMEM Language_Str MSG_MESH_LOADED = _UxGT("M117 Sieť %i načítaná");
PROGMEM Language_Str MSG_MESH_SAVED = _UxGT("M117 Sieť %i uložená");
PROGMEM Language_Str MSG_UBL_NO_STORAGE = _UxGT("Nedostatok miesta");
PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("Chyba: Ukladanie UBL");
PROGMEM Language_Str MSG_UBL_RESTORE_ERROR = _UxGT("Chyba: Obnovenie UBL");
PROGMEM Language_Str MSG_UBL_Z_OFFSET = _UxGT("Z-Ofset: ");
PROGMEM Language_Str MSG_UBL_Z_OFFSET_STOPPED = _UxGT("Koniec kompenz. Z");
PROGMEM Language_Str MSG_UBL_STEP_BY_STEP_MENU = _UxGT("Postupné UBL");
PROGMEM Language_Str MSG_UBL_1_BUILD_COLD_MESH = _UxGT("1.Studená sieť bodov");
PROGMEM Language_Str MSG_UBL_2_SMART_FILLIN = _UxGT("2.Chytré vyplnenie");
PROGMEM Language_Str MSG_UBL_3_VALIDATE_MESH_MENU = _UxGT("3.Skontrolovať sieť");
PROGMEM Language_Str MSG_UBL_4_FINE_TUNE_ALL = _UxGT("4.Точная настр. всего");
PROGMEM Language_Str MSG_UBL_5_VALIDATE_MESH_MENU = _UxGT("5.Skontrolovať sieť");
PROGMEM Language_Str MSG_UBL_6_FINE_TUNE_ALL = _UxGT("6.Точная настр. всего");
PROGMEM Language_Str MSG_UBL_7_SAVE_MESH = _UxGT("7.Uložiť sieť bodov");
#define MSG_MOVING _UxGT("Posúvam...") PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("Nastavenie LED");
#define MSG_FREE_XY _UxGT("Uvolniť XY") PROGMEM Language_Str MSG_LEDS = _UxGT("Svetlo");
#define MSG_MOVE_X _UxGT("Posunúť X") PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("Prednastavené farby");
#define MSG_MOVE_Y _UxGT("Posunúť Y") PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("Červená");
#define MSG_MOVE_Z _UxGT("Posunúť Z") PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("Oranžová");
#define MSG_MOVE_E _UxGT("Extrudér") PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("Žltá");
#define MSG_HOTEND_TOO_COLD _UxGT("Hotend je studený") PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("Zelená");
#define MSG_MOVE_Z_DIST _UxGT("Posunúť o %smm") PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("Modrá");
#define MSG_MOVE_01MM _UxGT("Posunúť o 0,1mm") PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("Indigo");
#define MSG_MOVE_1MM _UxGT("Posunúť o 1mm") PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Fialová");
#define MSG_MOVE_10MM _UxGT("Posunúť o 10mm") PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("Biela");
#define MSG_SPEED _UxGT("Rýchlosť") PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("Obnoviť nastavenie");
#define MSG_BED_Z _UxGT("Výška podl.") PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("Vlastná farba");
#define MSG_NOZZLE _UxGT("Tryska") PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Inten. červenej");
#define MSG_BED _UxGT("Podložka") PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Inten. zelenej");
#define MSG_CHAMBER _UxGT("Komora") PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("Inten. modrej");
#define MSG_FAN_SPEED _UxGT("Rýchlosť vent.") PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("Inten. bielej");
#define MSG_EXTRA_FAN_SPEED _UxGT("Rýchlosť ex. vent.") PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("Jas");
#define MSG_FLOW _UxGT("Prietok")
#define MSG_CONTROL _UxGT("Ovládanie")
#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Min")
#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Max")
#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Fakt")
#define MSG_AUTOTEMP _UxGT("Auto-teplota")
#define MSG_LCD_ON _UxGT("Zap")
#define MSG_LCD_OFF _UxGT("Vyp")
#define MSG_PID_P _UxGT("PID-P")
#define MSG_PID_I _UxGT("PID-I")
#define MSG_PID_D _UxGT("PID-D")
#define MSG_PID_C _UxGT("PID-C")
#define MSG_SELECT _UxGT("Vybrať")
#define MSG_ACC _UxGT("Zrýchlenie")
#define MSG_JERK _UxGT("Skok")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-skok")
#define MSG_VB_JERK _UxGT("Vb-skok")
#define MSG_VC_JERK _UxGT("Vc-skok")
#else
#define MSG_VA_JERK _UxGT("Vx-skok")
#define MSG_VB_JERK _UxGT("Vy-skok")
#define MSG_VC_JERK _UxGT("Vz-skok")
#endif
#define MSG_VE_JERK _UxGT("Ve-skok")
#define MSG_JUNCTION_DEVIATION _UxGT("Junction Dev")
#define MSG_VELOCITY _UxGT("Rýchlosť")
#define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin")
#define MSG_VTRAV_MIN _UxGT("VTrav min")
#define MSG_ACCELERATION _UxGT("Akcelerácia")
#define MSG_AMAX _UxGT("Amax ")
#define MSG_A_RETRACT _UxGT("A-retrakt")
#define MSG_A_TRAVEL _UxGT("A-prejazd")
#define MSG_STEPS_PER_MM _UxGT("Kroky/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("Akrokov/mm")
#define MSG_BSTEPS _UxGT("Bkrokov/mm")
#define MSG_CSTEPS _UxGT("Ckrokov/mm")
#else
#define MSG_ASTEPS _UxGT("Xkrokov/mm")
#define MSG_BSTEPS _UxGT("Ykrokov/mm")
#define MSG_CSTEPS _UxGT("Zkrokov/mm")
#endif
#define MSG_ESTEPS _UxGT("Ekrokov/mm")
#define MSG_E0_STEPS _UxGT("E1krokov/mm")
#define MSG_E1_STEPS _UxGT("E2krokov/mm")
#define MSG_E2_STEPS _UxGT("E3krokov/mm")
#define MSG_E3_STEPS _UxGT("E4krokov/mm")
#define MSG_E4_STEPS _UxGT("E5krokov/mm")
#define MSG_E5_STEPS _UxGT("E6krokov/mm")
#define MSG_TEMPERATURE _UxGT("Teplota")
#define MSG_MOTION _UxGT("Pohyb")
#define MSG_FILAMENT _UxGT("Filament")
#define MSG_VOLUMETRIC_ENABLED _UxGT("E na mm³")
#define MSG_FILAMENT_DIAM _UxGT("Priem. fil.")
#define MSG_FILAMENT_UNLOAD _UxGT("Vysunúť mm")
#define MSG_FILAMENT_LOAD _UxGT("Zaviesť mm")
#define MSG_ADVANCE_K _UxGT("K pre posun")
#define MSG_CONTRAST _UxGT("Kontrast LCD")
#define MSG_STORE_EEPROM _UxGT("Uložiť nastavenie")
#define MSG_LOAD_EEPROM _UxGT("Načítať nastavenie")
#define MSG_RESTORE_FAILSAFE _UxGT("Obnoviť nastavenie")
#define MSG_INIT_EEPROM _UxGT("Inicializ. EEPROM")
#define MSG_MEDIA_UPDATE _UxGT("Aktualizovať z SD")
#define MSG_RESET_PRINTER _UxGT("Reštart. tlačiar.")
#define MSG_REFRESH _UxGT("Obnoviť")
#define MSG_WATCH _UxGT("Info. obrazovka")
#define MSG_PREPARE _UxGT("Príprava tlače")
#define MSG_TUNE _UxGT("Doladenie tlače")
#define MSG_START_PRINT _UxGT("Spustiť tlač")
#define MSG_BUTTON_NEXT _UxGT("Ďalší")
#define MSG_BUTTON_INIT _UxGT("Inicial.")
#define MSG_BUTTON_STOP _UxGT("Zastaviť")
#define MSG_BUTTON_PRINT _UxGT("Tlačiť")
#define MSG_BUTTON_RESET _UxGT("Vynulovať")
#define MSG_BUTTON_CANCEL _UxGT("Zrušiť")
#define MSG_BUTTON_DONE _UxGT("Hotovo")
#define MSG_PAUSE_PRINT _UxGT("Pozastaviť tlač")
#define MSG_RESUME_PRINT _UxGT("Obnoviť tlač")
#define MSG_STOP_PRINT _UxGT("Zastaviť tlač")
#define MSG_OUTAGE_RECOVERY _UxGT("Obnova po výp. nap.")
#define MSG_MEDIA_MENU _UxGT("Tlačiť z SD")
#define MSG_NO_MEDIA _UxGT("Žiadna SD karta")
#define MSG_DWELL _UxGT("Spím...")
#define MSG_USERWAIT _UxGT("Pokrač. kliknutím...")
#define MSG_PRINT_PAUSED _UxGT("Tlač pozastavená")
#define MSG_PRINTING _UxGT("Tlačím...")
#define MSG_PRINT_ABORTED _UxGT("Tlač zrušená")
#define MSG_NO_MOVE _UxGT("Žiadny pohyb.")
#define MSG_KILLED _UxGT("PRERUŠENÉ. ")
#define MSG_STOPPED _UxGT("ZASTAVENÉ. ")
#define MSG_CONTROL_RETRACT _UxGT("Retrakt mm")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Výmena Re.mm")
#define MSG_CONTROL_RETRACTF _UxGT("Retraktovať V")
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Zdvih Z mm")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("S UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("UnRet V")
#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V")
#define MSG_AUTORETRACT _UxGT("AutoRetr.")
#define MSG_FILAMENT_SWAP_LENGTH _UxGT("Dĺžka výmeny")
#define MSG_FILAMENT_PURGE_LENGTH _UxGT("Dĺžka vytlačenia")
#define MSG_TOOL_CHANGE _UxGT("Výmena nástroja")
#define MSG_TOOL_CHANGE_ZLIFT _UxGT("Zdvihnúť Z")
#define MSG_SINGLENOZZLE_PRIME_SPD _UxGT("Primárna rýchl.")
#define MSG_SINGLENOZZLE_RETRACT_SPD _UxGT("Rýchl. retrakcie")
#define MSG_NOZZLE_STANDBY _UxGT("Záložná tryska")
#define MSG_FILAMENTCHANGE _UxGT("Vymeniť filament")
#define MSG_FILAMENTLOAD _UxGT("Zaviesť filament")
#define MSG_FILAMENTUNLOAD _UxGT("Vysunúť filament")
#define MSG_FILAMENTUNLOAD_ALL _UxGT("Vysunúť všetko")
#define MSG_INIT_MEDIA _UxGT("Načítať SD kartu") PROGMEM Language_Str MSG_MOVING = _UxGT("Posúvam...");
#define MSG_CHANGE_MEDIA _UxGT("Vymeniť SD kartu") PROGMEM Language_Str MSG_FREE_XY = _UxGT("Uvolniť XY");
#define MSG_RELEASE_MEDIA _UxGT("Odpojiť SD kartu") PROGMEM Language_Str MSG_MOVE_X = _UxGT("Posunúť X");
#define MSG_ZPROBE_OUT _UxGT("Sonda Z mimo podl.") PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Posunúť Y");
#define MSG_SKEW_FACTOR _UxGT("Faktor skosenia") PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Posunúť Z");
#define MSG_BLTOUCH _UxGT("BLTouch") PROGMEM Language_Str MSG_MOVE_E = _UxGT("Extrudér");
#define MSG_BLTOUCH_SELFTEST _UxGT("Cmd: Self-Test") PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Extrudér ") LCD_STR_E0;
#define MSG_BLTOUCH_RESET _UxGT("Cmd: Reset") PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Extrudér ") LCD_STR_E1;
#define MSG_BLTOUCH_STOW _UxGT("Cmd: Zasunúť") PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Extrudér ") LCD_STR_E2;
#define MSG_BLTOUCH_DEPLOY _UxGT("Cmd: Vysunúť") PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Extrudér ") LCD_STR_E3;
#define MSG_BLTOUCH_SW_MODE _UxGT("Cmd: Režim SW") PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Extrudér ") LCD_STR_E4;
#define MSG_BLTOUCH_5V_MODE _UxGT("Cmd: Režim 5V") PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Extrudér ") LCD_STR_E5;
#define MSG_BLTOUCH_OD_MODE _UxGT("Cmd: Režim OD") PROGMEM Language_Str MSG_HOTEND_TOO_COLD = _UxGT("Hotend je studený");
#define MSG_BLTOUCH_MODE_STORE _UxGT("Cmd: Ulož. režim") PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Posunúť o %smm");
#define MSG_BLTOUCH_MODE_STORE_5V _UxGT("Prepnúť do 5V") PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Posunúť o 0,1mm");
#define MSG_BLTOUCH_MODE_STORE_OD _UxGT("Prepnúť do OD") PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Posunúť o 1mm");
#define MSG_BLTOUCH_MODE_ECHO _UxGT("Zobraziť režim") PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Posunúť o 10mm");
#define MSG_BLTOUCH_MODE_CHANGE _UxGT("POZOR: Zlé nastav. môže spôsobiť poškoden. Pokračovať?") PROGMEM Language_Str MSG_SPEED = _UxGT("Rýchlosť");
#define MSG_TOUCHMI_PROBE _UxGT("TouchMI") PROGMEM Language_Str MSG_BED_Z = _UxGT("Výška podl.");
#define MSG_TOUCHMI_INIT _UxGT("Inicializ. TouchMI") PROGMEM Language_Str MSG_NOZZLE = _UxGT("Tryska");
#define MSG_TOUCHMI_ZTEST _UxGT("Test ofsetu Z") PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Tryska ") LCD_STR_N0;
#define MSG_TOUCHMI_SAVE _UxGT("Uložiť") PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Tryska ") LCD_STR_N1;
#define MSG_MANUAL_DEPLOY_TOUCHMI _UxGT("Zasunúť TouchMI") PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Tryska ") LCD_STR_N2;
#define MSG_MANUAL_DEPLOY _UxGT("Zasunúť sondu Z") PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Tryska ") LCD_STR_N3;
#define MSG_MANUAL_STOW _UxGT("Vysunúť sondu Z") PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Tryska ") LCD_STR_N4;
#define MSG_HOME_FIRST _UxGT("Najskôr os %s%s%s domov") PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Tryska ") LCD_STR_N5;
#define MSG_ZPROBE_ZOFFSET _UxGT("Ofset sondy Z") PROGMEM Language_Str MSG_BED = _UxGT("Podložka");
#define MSG_BABYSTEP_X _UxGT("Babystep X") PROGMEM Language_Str MSG_CHAMBER = _UxGT("Komora");
#define MSG_BABYSTEP_Y _UxGT("Babystep Y") PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Rýchlosť vent.");
#define MSG_BABYSTEP_Z _UxGT("Babystep Z") PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Rýchlosť vent. 1");
#define MSG_BABYSTEP_TOTAL _UxGT("Celkom") PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Rýchlosť vent. 2");
#define MSG_ENDSTOP_ABORT _UxGT("Zastavenie Endstop") PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Rýchlosť vent. 3");
#define MSG_HEATING_FAILED_LCD _UxGT("Chyba ohrevu") PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Rýchlosť ex. vent.");
#define MSG_HEATING_FAILED_LCD_BED _UxGT("Chyba ohrevu podl.") PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_1 = _UxGT("Rýchlosť ex. vent. 1");
#define MSG_HEATING_FAILED_LCD_CHAMBER _UxGT("Chyba ohrevu komory") PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_2 = _UxGT("Rýchlosť ex. vent. 2");
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Chyba: REDUND. TEP.") PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_3 = _UxGT("Rýchlosť ex. vent. 3");
#define MSG_THERMAL_RUNAWAY _UxGT("TEPLOTNÝ SKOK") PROGMEM Language_Str MSG_FLOW = _UxGT("Prietok");
#define MSG_THERMAL_RUNAWAY_BED _UxGT("TEPLOTNÝ SKOK PODL.") PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Prietok ") LCD_STR_N0;
#define MSG_THERMAL_RUNAWAY_CHAMBER _UxGT("TEPLOTNÝ SKOK KOMO.") PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Prietok ") LCD_STR_N1;
#define MSG_ERR_MAXTEMP _UxGT("Chyba: MAXTEMP") PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Prietok ") LCD_STR_N2;
#define MSG_ERR_MINTEMP _UxGT("Chyba: MINTEMP") PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Prietok ") LCD_STR_N3;
#define MSG_ERR_MAXTEMP_BED _UxGT("Chyba: MAXTEMP PODL.") PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Prietok ") LCD_STR_N4;
#define MSG_ERR_MINTEMP_BED _UxGT("Chyba: MINTEMP PODL.") PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Prietok ") LCD_STR_N5;
#define MSG_ERR_MAXTEMP_CHAMBER _UxGT("Chyba: MAXTEMP KOMO.") PROGMEM Language_Str MSG_CONTROL = _UxGT("Ovládanie");
#define MSG_ERR_MINTEMP_CHAMBER _UxGT("Chyba: MINTEMP KOMO.") PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" Min");
#define MSG_ERR_Z_HOMING _UxGT("Najskôr os XY domov") PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" Max");
#define MSG_HALTED _UxGT("TLAČIAREŇ ZASTAVENÁ") PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Fakt");
#define MSG_PLEASE_RESET _UxGT("Reštartuje ju") PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Auto-teplota");
#define MSG_SHORT_DAY _UxGT("d") PROGMEM Language_Str MSG_LCD_ON = _UxGT("Zap");
#define MSG_SHORT_HOUR _UxGT("h") PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Vyp");
#define MSG_SHORT_MINUTE _UxGT("m") PROGMEM Language_Str MSG_SELECT = _UxGT("Vybrať");
#define MSG_HEATING _UxGT("Ohrev...") PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("Vybrať ") LCD_STR_E0;
#define MSG_COOLING _UxGT("Ochladzovanie...") PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("Vybrať ") LCD_STR_E1;
#define MSG_BED_HEATING _UxGT("Ohrev podložky...") PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("Vybrať ") LCD_STR_E2;
#define MSG_BED_COOLING _UxGT("Ochladz. podložky...") PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("Vybrať ") LCD_STR_E3;
#define MSG_CHAMBER_HEATING _UxGT("Ohrev komory...") PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("Vybrať ") LCD_STR_E4;
#define MSG_CHAMBER_COOLING _UxGT("Ochladz. komory...") PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("Vybrať ") LCD_STR_E5;
#define MSG_DELTA_CALIBRATE _UxGT("Delta kalibrácia") PROGMEM Language_Str MSG_ACC = _UxGT("Zrýchlenie");
#define MSG_DELTA_CALIBRATE_X _UxGT("Kalibrovať X") PROGMEM Language_Str MSG_JERK = _UxGT("Skok");
#define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibrovať Y") PROGMEM Language_Str MSG_VA_JERK = _UxGT("V") LCD_STR_A _UxGT("-skok");
#define MSG_DELTA_CALIBRATE_Z _UxGT("Kalibrovať Z") PROGMEM Language_Str MSG_VB_JERK = _UxGT("V") LCD_STR_B _UxGT("-skok");
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Kalibrovať stred") PROGMEM Language_Str MSG_VC_JERK = _UxGT("V") LCD_STR_C _UxGT("-skok");
#define MSG_DELTA_SETTINGS _UxGT("Delta nastavenia") PROGMEM Language_Str MSG_VE_JERK = _UxGT("Ve-skok");
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Auto-kalibrácia") PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Junction Dev");
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Nast. výšku delty") PROGMEM Language_Str MSG_VELOCITY = _UxGT("Rýchlosť");
#define MSG_DELTA_Z_OFFSET_CALIBRATE _UxGT("Ofset sondy Z") PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Akcelerácia");
#define MSG_DELTA_DIAG_ROD _UxGT("Diag. rameno") PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-retrakt");
#define MSG_DELTA_HEIGHT _UxGT("Výška") PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A-prejazd");
#define MSG_DELTA_RADIUS _UxGT("Polomer") PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Kroky/mm");
#define MSG_INFO_MENU _UxGT("O tlačiarni") PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("krokov/mm");
#define MSG_INFO_PRINTER_MENU _UxGT("Info. o tlačiarni") PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("krokov/mm");
#define MSG_3POINT_LEVELING _UxGT("3-bodové rovnanie") PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("krokov/mm");
#define MSG_LINEAR_LEVELING _UxGT("Lineárne rovnanie") PROGMEM Language_Str MSG_E_STEPS = _UxGT("Ekrokov/mm");
#define MSG_BILINEAR_LEVELING _UxGT("Bilineárne rovnanie") PROGMEM Language_Str MSG_E0_STEPS = LCD_STR_E0 _UxGT("krokov/mm");
#define MSG_UBL_LEVELING _UxGT("UBL rovnanie") PROGMEM Language_Str MSG_E1_STEPS = LCD_STR_E1 _UxGT("krokov/mm");
#define MSG_MESH_LEVELING _UxGT("Mriežkové rovnanie") PROGMEM Language_Str MSG_E2_STEPS = LCD_STR_E2 _UxGT("krokov/mm");
#define MSG_INFO_STATS_MENU _UxGT("Štatistika") PROGMEM Language_Str MSG_E3_STEPS = LCD_STR_E3 _UxGT("krokov/mm");
#define MSG_INFO_BOARD_MENU _UxGT("Info. o doske") PROGMEM Language_Str MSG_E4_STEPS = LCD_STR_E4 _UxGT("krokov/mm");
#define MSG_INFO_THERMISTOR_MENU _UxGT("Termistory") PROGMEM Language_Str MSG_E5_STEPS = LCD_STR_E5 _UxGT("krokov/mm");
#define MSG_INFO_EXTRUDERS _UxGT("Extrudéry") PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Teplota");
#define MSG_INFO_BAUDRATE _UxGT("Rýchlosť") PROGMEM Language_Str MSG_MOTION = _UxGT("Pohyb");
#define MSG_INFO_PROTOCOL _UxGT("Protokol") PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filament");
#define MSG_INFO_RUNAWAY_OFF _UxGT("Tepl. ochrana: VYP") PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E na mm³");
#define MSG_INFO_RUNAWAY_ON _UxGT("Tepl. ochrana: ZAP") PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Priem. fil.");
#define MSG_CASE_LIGHT _UxGT("Osvetlenie") PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Priem. fil. ") LCD_STR_E0;
#define MSG_CASE_LIGHT_BRIGHTNESS _UxGT("Jas svetla") PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Priem. fil. ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Priem. fil. ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Priem. fil. ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Priem. fil. ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Priem. fil. ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("Vysunúť mm");
PROGMEM Language_Str MSG_FILAMENT_LOAD = _UxGT("Zaviesť mm");
PROGMEM Language_Str MSG_ADVANCE_K = _UxGT("K pre posun");
PROGMEM Language_Str MSG_ADVANCE_K_E0 = _UxGT("K pre posun ") LCD_STR_E0;
PROGMEM Language_Str MSG_ADVANCE_K_E1 = _UxGT("K pre posun ") LCD_STR_E1;
PROGMEM Language_Str MSG_ADVANCE_K_E2 = _UxGT("K pre posun ") LCD_STR_E2;
PROGMEM Language_Str MSG_ADVANCE_K_E3 = _UxGT("K pre posun ") LCD_STR_E3;
PROGMEM Language_Str MSG_ADVANCE_K_E4 = _UxGT("K pre posun ") LCD_STR_E4;
PROGMEM Language_Str MSG_ADVANCE_K_E5 = _UxGT("K pre posun ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("Kontrast LCD");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Uložiť nastavenie");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Načítať nastavenie");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Obnoviť nastavenie");
PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("Inicializ. EEPROM");
PROGMEM Language_Str MSG_MEDIA_UPDATE = _UxGT("Aktualizovať z SD");
PROGMEM Language_Str MSG_RESET_PRINTER = _UxGT("Reštart. tlačiar.");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Obnoviť");
PROGMEM Language_Str MSG_WATCH = _UxGT("Info. obrazovka");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Príprava tlače");
PROGMEM Language_Str MSG_TUNE = _UxGT("Doladenie tlače");
PROGMEM Language_Str MSG_START_PRINT = _UxGT("Spustiť tlač");
PROGMEM Language_Str MSG_BUTTON_NEXT = _UxGT("Ďalší");
PROGMEM Language_Str MSG_BUTTON_INIT = _UxGT("Inicial.");
PROGMEM Language_Str MSG_BUTTON_STOP = _UxGT("Zastaviť");
PROGMEM Language_Str MSG_BUTTON_PRINT = _UxGT("Tlačiť");
PROGMEM Language_Str MSG_BUTTON_RESET = _UxGT("Vynulovať");
PROGMEM Language_Str MSG_BUTTON_CANCEL = _UxGT("Zrušiť");
PROGMEM Language_Str MSG_BUTTON_DONE = _UxGT("Hotovo");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Pozastaviť tlač");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Obnoviť tlač");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Zastaviť tlač");
PROGMEM Language_Str MSG_OUTAGE_RECOVERY = _UxGT("Obnova po výp. nap.");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Tlačiť z SD");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("Žiadna SD karta");
PROGMEM Language_Str MSG_DWELL = _UxGT("Spím...");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Pokrač. kliknutím...");
PROGMEM Language_Str MSG_PRINT_PAUSED = _UxGT("Tlač pozastavená");
PROGMEM Language_Str MSG_PRINTING = _UxGT("Tlačím...");
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Tlač zrušená");
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Žiadny pohyb.");
PROGMEM Language_Str MSG_KILLED = _UxGT("PRERUŠENÉ. ");
PROGMEM Language_Str MSG_STOPPED = _UxGT("ZASTAVENÉ. ");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Retrakt mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Výmena Re.mm");
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Retraktovať V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Zdvih Z mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("S UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("UnRet V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAPF = _UxGT("S UnRet V");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("AutoRetr.");
PROGMEM Language_Str MSG_FILAMENT_SWAP_LENGTH = _UxGT("Dĺžka výmeny");
PROGMEM Language_Str MSG_FILAMENT_PURGE_LENGTH = _UxGT("Dĺžka vytlačenia");
PROGMEM Language_Str MSG_TOOL_CHANGE = _UxGT("Výmena nástroja");
PROGMEM Language_Str MSG_TOOL_CHANGE_ZLIFT = _UxGT("Zdvihnúť Z");
PROGMEM Language_Str MSG_SINGLENOZZLE_PRIME_SPD = _UxGT("Primárna rýchl.");
PROGMEM Language_Str MSG_SINGLENOZZLE_RETRACT_SPD = _UxGT("Rýchl. retrakcie");
PROGMEM Language_Str MSG_NOZZLE_STANDBY = _UxGT("Záložná tryska");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Vymeniť filament");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Vymeniť filament ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Vymeniť filament ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Vymeniť filament ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Vymeniť filament ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Vymeniť filament ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Vymeniť filament ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTLOAD = _UxGT("Zaviesť filament");
PROGMEM Language_Str MSG_FILAMENTLOAD_E0 = _UxGT("Zaviesť filament ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTLOAD_E1 = _UxGT("Zaviesť filament ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTLOAD_E2 = _UxGT("Zaviesť filament ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTLOAD_E3 = _UxGT("Zaviesť filament ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTLOAD_E4 = _UxGT("Zaviesť filament ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTLOAD_E5 = _UxGT("Zaviesť filament ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E0 = _UxGT("Vysunúť filament ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E1 = _UxGT("Vysunúť filament ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E2 = _UxGT("Vysunúť filament ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E3 = _UxGT("Vysunúť filament ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E4 = _UxGT("Vysunúť filament ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E5 = _UxGT("Vysunúť filament ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Vysunúť všetko");
#define MSG_EXPECTED_PRINTER _UxGT("Nesprávna tlačiareň") PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Načítať SD kartu");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Vymeniť SD kartu");
PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("Odpojiť SD kartu");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sonda Z mimo podl.");
PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("Faktor skosenia");
PROGMEM Language_Str MSG_BLTOUCH = _UxGT("BLTouch");
PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("Cmd: Self-Test");
PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("Cmd: Reset");
PROGMEM Language_Str MSG_BLTOUCH_STOW = _UxGT("Cmd: Zasunúť");
PROGMEM Language_Str MSG_BLTOUCH_DEPLOY = _UxGT("Cmd: Vysunúť");
PROGMEM Language_Str MSG_BLTOUCH_SW_MODE = _UxGT("Cmd: Režim SW");
PROGMEM Language_Str MSG_BLTOUCH_5V_MODE = _UxGT("Cmd: Režim 5V");
PROGMEM Language_Str MSG_BLTOUCH_OD_MODE = _UxGT("Cmd: Režim OD");
PROGMEM Language_Str MSG_BLTOUCH_MODE_STORE = _UxGT("Cmd: Ulož. režim");
PROGMEM Language_Str MSG_BLTOUCH_MODE_STORE_5V = _UxGT("Prepnúť do 5V");
PROGMEM Language_Str MSG_BLTOUCH_MODE_STORE_OD = _UxGT("Prepnúť do OD");
PROGMEM Language_Str MSG_BLTOUCH_MODE_ECHO = _UxGT("Zobraziť režim");
PROGMEM Language_Str MSG_BLTOUCH_MODE_CHANGE = _UxGT("POZOR: Zlé nastav. môže spôsobiť poškoden. Pokračovať?");
PROGMEM Language_Str MSG_TOUCHMI_PROBE = _UxGT("TouchMI");
PROGMEM Language_Str MSG_TOUCHMI_INIT = _UxGT("Inicializ. TouchMI");
PROGMEM Language_Str MSG_TOUCHMI_ZTEST = _UxGT("Test ofsetu Z");
PROGMEM Language_Str MSG_TOUCHMI_SAVE = _UxGT("Uložiť");
PROGMEM Language_Str MSG_MANUAL_DEPLOY_TOUCHMI = _UxGT("Zasunúť TouchMI");
PROGMEM Language_Str MSG_MANUAL_DEPLOY = _UxGT("Zasunúť sondu Z");
PROGMEM Language_Str MSG_MANUAL_STOW = _UxGT("Vysunúť sondu Z");
PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("Najskôr os %s%s%s domov");
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Ofset sondy Z");
PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Babystep X");
PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Babystep Y");
PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Babystep Z");
PROGMEM Language_Str MSG_BABYSTEP_TOTAL = _UxGT("Celkom");
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Zastavenie Endstop");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Chyba ohrevu");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD_BED = _UxGT("Chyba ohrevu podl.");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD_CHAMBER = _UxGT("Chyba ohrevu komory");
PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("Chyba: REDUND. TEP.");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("TEPLOTNÝ SKOK");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY_BED = _UxGT("TEPLOTNÝ SKOK PODL.");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY_CHAMBER = _UxGT("TEPLOTNÝ SKOK KOMO.");
PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("Chyba: MAXTEMP");
PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("Chyba: MINTEMP");
PROGMEM Language_Str MSG_ERR_MAXTEMP_BED = _UxGT("Chyba: MAXTEMP PODL.");
PROGMEM Language_Str MSG_ERR_MINTEMP_BED = _UxGT("Chyba: MINTEMP PODL.");
PROGMEM Language_Str MSG_ERR_MAXTEMP_CHAMBER = _UxGT("Chyba: MAXTEMP KOMO.");
PROGMEM Language_Str MSG_ERR_MINTEMP_CHAMBER = _UxGT("Chyba: MINTEMP KOMO.");
PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("Najskôr os XY domov");
PROGMEM Language_Str MSG_HALTED = _UxGT("TLAČIAREŇ ZASTAVENÁ");
PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Reštartuje ju");
PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("d");
PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("h");
PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("m");
PROGMEM Language_Str MSG_HEATING = _UxGT("Ohrev...");
PROGMEM Language_Str MSG_COOLING = _UxGT("Ochladzovanie...");
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Ohrev podložky...");
PROGMEM Language_Str MSG_BED_COOLING = _UxGT("Ochladz. podložky...");
PROGMEM Language_Str MSG_CHAMBER_HEATING = _UxGT("Ohrev komory...");
PROGMEM Language_Str MSG_CHAMBER_COOLING = _UxGT("Ochladz. komory...");
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Delta kalibrácia");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Kalibrovať X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Kalibrovať Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Kalibrovať Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Kalibrovať stred");
PROGMEM Language_Str MSG_DELTA_SETTINGS = _UxGT("Delta nastavenia");
PROGMEM Language_Str MSG_DELTA_AUTO_CALIBRATE = _UxGT("Auto-kalibrácia");
PROGMEM Language_Str MSG_DELTA_HEIGHT_CALIBRATE = _UxGT("Nast. výšku delty");
PROGMEM Language_Str MSG_DELTA_Z_OFFSET_CALIBRATE = _UxGT("Ofset sondy Z");
PROGMEM Language_Str MSG_DELTA_DIAG_ROD = _UxGT("Diag. rameno");
PROGMEM Language_Str MSG_DELTA_HEIGHT = _UxGT("Výška");
PROGMEM Language_Str MSG_DELTA_RADIUS = _UxGT("Polomer");
PROGMEM Language_Str MSG_INFO_MENU = _UxGT("O tlačiarni");
PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Info. o tlačiarni");
PROGMEM Language_Str MSG_3POINT_LEVELING = _UxGT("3-bodové rovnanie");
PROGMEM Language_Str MSG_LINEAR_LEVELING = _UxGT("Lineárne rovnanie");
PROGMEM Language_Str MSG_BILINEAR_LEVELING = _UxGT("Bilineárne rovnanie");
PROGMEM Language_Str MSG_UBL_LEVELING = _UxGT("UBL rovnanie");
PROGMEM Language_Str MSG_MESH_LEVELING = _UxGT("Mriežkové rovnanie");
PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Štatistika");
PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Info. o doske");
PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Termistory");
PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Extrudéry");
PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("Rýchlosť");
PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Protokol");
PROGMEM Language_Str MSG_INFO_RUNAWAY_OFF = _UxGT("Tepl. ochrana: VYP");
PROGMEM Language_Str MSG_INFO_RUNAWAY_ON = _UxGT("Tepl. ochrana: ZAP");
PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Osvetlenie");
PROGMEM Language_Str MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Jas svetla");
#if LCD_WIDTH >= 20 PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Nesprávna tlačiareň");
#define MSG_INFO_PRINT_COUNT _UxGT("Počet tlačí")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Dokončené")
#define MSG_INFO_PRINT_TIME _UxGT("Celkový čas")
#define MSG_INFO_PRINT_LONGEST _UxGT("Najdlhšia tlač")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Celkom vytlačené")
#else
#define MSG_INFO_PRINT_COUNT _UxGT("Tlače")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Hotovo")
#define MSG_INFO_PRINT_TIME _UxGT("Čas")
#define MSG_INFO_PRINT_LONGEST _UxGT("Najdlhšia")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Vytlačené")
#endif
#define MSG_INFO_MIN_TEMP _UxGT("Teplota min") #if LCD_WIDTH >= 20
#define MSG_INFO_MAX_TEMP _UxGT("Teplota max") PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Počet tlačí");
#define MSG_INFO_PSU _UxGT("Nap. zdroj") PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Dokončené");
#define MSG_DRIVE_STRENGTH _UxGT("Budenie motorov") PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Celkový čas");
#define MSG_DAC_PERCENT _UxGT("Motor %") PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Najdlhšia tlač");
#define MSG_ERROR_TMC _UxGT("CHYBA KOMUNIKÁ. TMC") PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Celkom vytlačené");
#define MSG_DAC_EEPROM_WRITE _UxGT("Uložiť do EEPROM") #else
PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Tlače");
PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Hotovo");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Čas");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Najdlhšia");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Vytlačené");
#endif
#define MSG_FILAMENT_CHANGE_HEADER _UxGT("VÝMENA FILAMENTU") PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Teplota min");
#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("PAUZA TLAČE") PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Teplota max");
#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("ZAVEDENIE FILAMENTU") PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Nap. zdroj");
#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("VYSUNUTIE FILAMENTU") PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Budenie motorov");
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("MOŽNOSTI POKRAČ.:") PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Motor %");
#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Vytlačiť viacej") PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("CHYBA KOMUNIKÁ. TMC");
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Obnoviť tlač") PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Uložiť do EEPROM");
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Tryska: ")
#define MSG_RUNOUT_SENSOR _UxGT("Senzor filamentu")
#define MSG_RUNOUT_DISTANCE_MM _UxGT("Vzd. mm fil. senz.")
#define MSG_ERR_HOMING_FAILED _UxGT("Parkovanie zlyhalo")
#define MSG_ERR_PROBING_FAILED _UxGT("Kalibrácia zlyhala")
#define MSG_M600_TOO_COLD _UxGT("M600: Príliš studený")
#define MSG_MMU2_FILAMENT_CHANGE_HEADER _UxGT("VÝMENA FILAMENTU") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER = _UxGT("VÝMENA FILAMENTU");
#define MSG_MMU2_CHOOSE_FILAMENT_HEADER _UxGT("VYBERTE FILAMENT") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("PAUZA TLAČE");
#define MSG_MMU2_MENU _UxGT("MMU2") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("ZAVEDENIE FILAMENTU");
#define MSG_MMU2_WRONG_FIRMWARE _UxGT("Aktualizujte FW MMU!") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("VYSUNUTIE FILAMENTU");
#define MSG_MMU2_NOT_RESPONDING _UxGT("MMU potrebuje zásah.") PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("MOŽNOSTI POKRAČ.:");
#define MSG_MMU2_RESUME _UxGT("Obnoviť tlač") PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("Vytlačiť viacej");
#define MSG_MMU2_RESUMING _UxGT("Obnovovanie...") PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Obnoviť tlač");
#define MSG_MMU2_LOAD_FILAMENT _UxGT("Zaviesť filament") PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Tryska: ");
#define MSG_MMU2_LOAD_ALL _UxGT("Zaviesť všetky") PROGMEM Language_Str MSG_RUNOUT_SENSOR = _UxGT("Senzor filamentu");
#define MSG_MMU2_LOAD_TO_NOZZLE _UxGT("Zaviesť po trysku") PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("Vzd. mm fil. senz.");
#define MSG_MMU2_EJECT_FILAMENT _UxGT("Vysunúť filament") PROGMEM Language_Str MSG_LCD_HOMING_FAILED = _UxGT("Parkovanie zlyhalo");
#define MSG_MMU2_EJECT_FILAMENT0 _UxGT("Vysunúť filament 1") PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Kalibrácia zlyhala");
#define MSG_MMU2_EJECT_FILAMENT1 _UxGT("Vysunúť filament 2") PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Príliš studený");
#define MSG_MMU2_EJECT_FILAMENT2 _UxGT("Vysunúť filament 3")
#define MSG_MMU2_EJECT_FILAMENT3 _UxGT("Vysunúť filament 4")
#define MSG_MMU2_EJECT_FILAMENT4 _UxGT("Vysunúť filament 5")
#define MSG_MMU2_UNLOAD_FILAMENT _UxGT("Vyňať filament")
#define MSG_MMU2_LOADING_FILAMENT _UxGT("Zavádzanie fil. %i...")
#define MSG_MMU2_EJECTING_FILAMENT _UxGT("Vysúvanie fil. ...")
#define MSG_MMU2_UNLOADING_FILAMENT _UxGT("Vysúvanie fil. ...")
#define MSG_MMU2_ALL _UxGT("Všetky")
#define MSG_MMU2_FILAMENT0 _UxGT("Filament 1")
#define MSG_MMU2_FILAMENT1 _UxGT("Filament 2")
#define MSG_MMU2_FILAMENT2 _UxGT("Filament 3")
#define MSG_MMU2_FILAMENT3 _UxGT("Filament 4")
#define MSG_MMU2_FILAMENT4 _UxGT("Filament 5")
#define MSG_MMU2_RESET _UxGT("Reštartovať MMU")
#define MSG_MMU2_RESETTING _UxGT("Reštart MMU...")
#define MSG_MMU2_EJECT_RECOVER _UxGT("Odstráňte, kliknite")
#define MSG_MIX _UxGT("Mix") PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("VYBERTE FILAMENT");
#define MSG_MIX_COMPONENT _UxGT("Zložka") PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU2");
#define MSG_MIXER _UxGT("Mixér") PROGMEM Language_Str MSG_MMU2_WRONG_FIRMWARE = _UxGT("Aktualizujte FW MMU!");
#define MSG_GRADIENT _UxGT("Gradient") PROGMEM Language_Str MSG_MMU2_NOT_RESPONDING = _UxGT("MMU potrebuje zásah.");
#define MSG_FULL_GRADIENT _UxGT("Plný gradient") PROGMEM Language_Str MSG_MMU2_RESUME = _UxGT("Obnoviť tlač");
#define MSG_TOGGLE_MIX _UxGT("Prepnúť mix") PROGMEM Language_Str MSG_MMU2_RESUMING = _UxGT("Obnovovanie...");
#define MSG_CYCLE_MIX _UxGT("Cyklický mix") PROGMEM Language_Str MSG_MMU2_LOAD_FILAMENT = _UxGT("Zaviesť filament");
#define MSG_GRADIENT_MIX _UxGT("Gradientný mix") PROGMEM Language_Str MSG_MMU2_LOAD_ALL = _UxGT("Zaviesť všetky");
#define MSG_REVERSE_GRADIENT _UxGT("Otočiť gradient") PROGMEM Language_Str MSG_MMU2_LOAD_TO_NOZZLE = _UxGT("Zaviesť po trysku");
#define MSG_ACTIVE_VTOOL _UxGT("Aktívny V-tool") PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT = _UxGT("Vysunúť filament");
#define MSG_START_VTOOL _UxGT("Počiat. V-tool") PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT0 = _UxGT("Vysunúť filament 1");
#define MSG_END_VTOOL _UxGT("Konečn. V-tool") PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT1 = _UxGT("Vysunúť filament 2");
#define MSG_GRADIENT_ALIAS _UxGT("Alias V-tool") PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT2 = _UxGT("Vysunúť filament 3");
#define MSG_RESET_VTOOLS _UxGT("Vynulovať V-tools") PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT3 = _UxGT("Vysunúť filament 4");
#define MSG_COMMIT_VTOOL _UxGT("Uložiť V-tool Mix") PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT4 = _UxGT("Vysunúť filament 5");
#define MSG_VTOOLS_RESET _UxGT("V-tools vynulované") PROGMEM Language_Str MSG_MMU2_UNLOAD_FILAMENT = _UxGT("Vyňať filament");
#define MSG_START_Z _UxGT("Počiat.Z") PROGMEM Language_Str MSG_MMU2_LOADING_FILAMENT = _UxGT("Zavádzanie fil. %i...");
#define MSG_END_Z _UxGT("Konečn.Z") PROGMEM Language_Str MSG_MMU2_EJECTING_FILAMENT = _UxGT("Vysúvanie fil. ...");
#define MSG_GAMES _UxGT("Hry") PROGMEM Language_Str MSG_MMU2_UNLOADING_FILAMENT = _UxGT("Vysúvanie fil. ...");
#define MSG_BRICKOUT _UxGT("Brickout") PROGMEM Language_Str MSG_MMU2_ALL = _UxGT("Všetky");
#define MSG_INVADERS _UxGT("Nájazdníci") PROGMEM Language_Str MSG_MMU2_FILAMENT0 = _UxGT("Filament 1");
#define MSG_SNAKE _UxGT("Had") PROGMEM Language_Str MSG_MMU2_FILAMENT1 = _UxGT("Filament 2");
#define MSG_MAZE _UxGT("Bludisko") PROGMEM Language_Str MSG_MMU2_FILAMENT2 = _UxGT("Filament 3");
PROGMEM Language_Str MSG_MMU2_FILAMENT3 = _UxGT("Filament 4");
PROGMEM Language_Str MSG_MMU2_FILAMENT4 = _UxGT("Filament 5");
PROGMEM Language_Str MSG_MMU2_RESET = _UxGT("Reštartovať MMU");
PROGMEM Language_Str MSG_MMU2_RESETTING = _UxGT("Reštart MMU...");
PROGMEM Language_Str MSG_MMU2_EJECT_RECOVER = _UxGT("Odstráňte, kliknite");
// PROGMEM Language_Str MSG_MIX = _UxGT("Mix");
// Filament Change screens show up to 3 lines on a 4-line display PROGMEM Language_Str MSG_MIX_COMPONENT_1 = _UxGT("Zložka 1");
// ...or up to 2 lines on a 3-line display PROGMEM Language_Str MSG_MIX_COMPONENT_2 = _UxGT("Zložka 2");
// PROGMEM Language_Str MSG_MIX_COMPONENT_3 = _UxGT("Zložka 3");
#if LCD_HEIGHT >= 4 PROGMEM Language_Str MSG_MIX_COMPONENT_4 = _UxGT("Zložka 4");
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Stlačte tlačidlo") PROGMEM Language_Str MSG_MIX_COMPONENT_5 = _UxGT("Zložka 5");
#define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("pre obnovu tlače") PROGMEM Language_Str MSG_MIX_COMPONENT_6 = _UxGT("Zložka 6");
#define MSG_PAUSE_PRINT_INIT_1 _UxGT("Parkovanie...") PROGMEM Language_Str MSG_MIXER = _UxGT("Mixér");
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Čakajte prosím") PROGMEM Language_Str MSG_GRADIENT = _UxGT("Gradient");
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("na spustenie") PROGMEM Language_Str MSG_FULL_GRADIENT = _UxGT("Plný gradient");
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("výmeny filamentu") PROGMEM Language_Str MSG_TOGGLE_MIX = _UxGT("Prepnúť mix");
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vložte filament") PROGMEM Language_Str MSG_CYCLE_MIX = _UxGT("Cyklický mix");
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("a stlačte tlačidlo") PROGMEM Language_Str MSG_GRADIENT_MIX = _UxGT("Gradientný mix");
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("pre pokračovanie") PROGMEM Language_Str MSG_REVERSE_GRADIENT = _UxGT("Otočiť gradient");
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Stlačte tlačidlo") PROGMEM Language_Str MSG_ACTIVE_VTOOL = _UxGT("Aktívny V-tool");
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("pre ohrev trysky") PROGMEM Language_Str MSG_START_VTOOL = _UxGT("Počiat. V-tool");
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Ohrev trysky") PROGMEM Language_Str MSG_END_VTOOL = _UxGT("Konečn. V-tool");
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Čakajte prosím...") PROGMEM Language_Str MSG_GRADIENT_ALIAS = _UxGT("Alias V-tool");
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Čakajte prosím") PROGMEM Language_Str MSG_RESET_VTOOLS = _UxGT("Vynulovať V-tools");
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("na vysunutie") PROGMEM Language_Str MSG_COMMIT_VTOOL = _UxGT("Uložiť V-tool Mix");
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("filamentu") PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("V-tools vynulované");
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Čakajte prosím") PROGMEM Language_Str MSG_START_Z = _UxGT("Počiat.Z:");
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("na zavedenie") PROGMEM Language_Str MSG_END_Z = _UxGT("Konečn.Z:");
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamentu") PROGMEM Language_Str MSG_GAMES = _UxGT("Hry");
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Čakajte prosím") PROGMEM Language_Str MSG_INVADERS = _UxGT("Nájazdníci");
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("na vytlačenie") PROGMEM Language_Str MSG_SNAKE = _UxGT("Had");
#define MSG_FILAMENT_CHANGE_PURGE_3 _UxGT("filamentu") PROGMEM Language_Str MSG_MAZE = _UxGT("Bludisko");
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Stlačte tlačidlo")
#define MSG_FILAMENT_CHANGE_CONT_PURGE_2 _UxGT("pre dokončenie")
#define MSG_FILAMENT_CHANGE_CONT_PURGE_3 _UxGT("vytláčania filam.")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Čakajte prosím na")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("obnovenie tlače...")
#else // LCD_HEIGHT < 4
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Kliknite pre pokr.")
#define MSG_PAUSE_PRINT_INIT_1 _UxGT("Parkovanie...")
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Čakajte prosím...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vložte a kliknite")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Kliknite pre ohrev")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Ohrev...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Vysúvanie...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Zavádzanie...")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vytlačovanie...")
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Klik. pre dokonč.")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Pokračovanie...")
#endif // LCD_HEIGHT < 4
#define MSG_TMC_DRIVERS _UxGT("Ovládače TMC")
#define MSG_TMC_CURRENT _UxGT("Prúd ovládača")
#define MSG_TMC_HYBRID_THRS _UxGT("Hybridný prah")
#define MSG_TMC_HOMING_THRS _UxGT("Bezsenzor. domov")
#define MSG_TMC_STEPPING_MODE _UxGT("Režim krokovania")
#define MSG_TMC_STEALTH_ENABLED _UxGT("StealthChop zapnutý")
#define MSG_SERVICE_RESET _UxGT("Vynulovať") //
#define MSG_SERVICE_IN _UxGT(" za:") // Filament Change screens show up to 3 lines on a 4-line display
#define MSG_BACKLASH _UxGT("Kompenz. vôle") // ...or up to 2 lines on a 3-line display
#define MSG_BACKLASH_CORRECTION _UxGT("Korekcia") //
#define MSG_BACKLASH_SMOOTHING _UxGT("Vyhladzovanie") #if LCD_HEIGHT >= 4
PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_2_LINE("Stlačte tlačidlo", "pre obnovu tlače"));
PROGMEM Language_Str MSG_PAUSE_PRINT_INIT = _UxGT(MSG_1_LINE("Parkovanie..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Čakajte prosím", "na spustenie", "výmeny filamentu"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Vložte filament", "a stlačte tlačidlo", "pre pokračovanie"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Stlačte tlačidlo", "pre ohrev trysky"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("Ohrev trysky", "Čakajte prosím..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_3_LINE("Čakajte prosím", "na vysunutie", "filamentu"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_3_LINE("Čakajte prosím", "na zavedenie", "filamentu"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_3_LINE("Čakajte prosím", "na vytlačenie", "filamentu"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_3_LINE("Stlačte tlačidlo", "pre dokončenie", "vytláčania filam."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("Čakajte prosím na", "obnovenie tlače..."));
#else // LCD_HEIGHT < 4
PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_1_LINE("Kliknite pre pokr."));
PROGMEM Language_Str MSG_PAUSE_PRINT_INIT = _UxGT(MSG_1_LINE("Parkovanie..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Čakajte prosím..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Vložte a kliknite"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_1_LINE("Kliknite pre ohrev"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("Ohrev..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Vysúvanie..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Zavádzanie..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_1_LINE("Vytlačovanie..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_1_LINE("Klik. pre dokonč."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Pokračovanie..."));
#endif // LCD_HEIGHT < 4
PROGMEM Language_Str MSG_TMC_DRIVERS = _UxGT("Ovládače TMC");
PROGMEM Language_Str MSG_TMC_CURRENT = _UxGT("Prúd ovládača");
PROGMEM Language_Str MSG_TMC_HYBRID_THRS = _UxGT("Hybridný prah");
PROGMEM Language_Str MSG_TMC_HOMING_THRS = _UxGT("Bezsenzor. domov");
PROGMEM Language_Str MSG_TMC_STEPPING_MODE = _UxGT("Režim krokovania");
PROGMEM Language_Str MSG_TMC_STEALTH_ENABLED = _UxGT("StealthChop zapnutý");
PROGMEM Language_Str MSG_SERVICE_RESET = _UxGT("Vynulovať");
PROGMEM Language_Str MSG_SERVICE_IN = _UxGT(" za:");
PROGMEM Language_Str MSG_BACKLASH = _UxGT("Kompenz. vôle");
PROGMEM Language_Str MSG_BACKLASH_A = LCD_STR_A;
PROGMEM Language_Str MSG_BACKLASH_B = LCD_STR_B;
PROGMEM Language_Str MSG_BACKLASH_C = LCD_STR_C;
PROGMEM Language_Str MSG_BACKLASH_CORRECTION = _UxGT("Korekcia");
PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("Vyhladzovanie");
}

View file

@ -114,114 +114,145 @@
#define STRG_OKTAL_e "\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357" #define STRG_OKTAL_e "\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357"
#define STRG_OKTAL_f "\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377" #define STRG_OKTAL_f "\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377"
#if ENABLED(DISPLAYTEST) namespace Language_test {
#define WELCOME_MSG _UxGT("Language TEST") using namespace Language_en; // Inherit undefined strings from English
#define MSG_WATCH _UxGT("Display test") constexpr uint8_t CHARSIZE = 1;
#define MSG_PREPARE STRG_OKTAL_b
#define MSG_CONTROL STRG_OKTAL_c
#endif
#if ENABLED(WEST) #if ENABLED(DISPLAYTEST)
#define WELCOME_MSG _UxGT("Language TEST") PROGMEM Language_Str WELCOME_MSG = _UxGT("Language TEST");
#define MSG_WATCH _UxGT("\001\002\003\004\005\006\007\010\011") PROGMEM Language_Str MSG_WATCH = _UxGT("Display test");
#define MSG_PREPARE _UxGT("UTF8") PROGMEM Language_Str MSG_PREPARE = STRG_OKTAL_b;
#define MSG_CONTROL _UxGT("ASCII") PROGMEM Language_Str MSG_CONTROL = STRG_OKTAL_c;
#endif
//#define MSG_MAIN _UxGT("..") #if ENABLED(WEST)
#define MSG_DISABLE_STEPPERS STRG_C2_8 PROGMEM Language_Str WELCOME_MSG = _UxGT("Language TEST");
#define MSG_AUTO_HOME STRG_C2_9
#define MSG_SET_HOME_OFFSETS STRG_C2_a
#define MSG_PREHEAT_1 STRG_C2_b
#define MSG_PREHEAT_2 STRG_C3_8
#define MSG_COOLDOWN STRG_C3_9
#define MSG_SWITCH_PS_OFF STRG_C3_a
#define MSG_MOVE_AXIS STRG_C3_b
#define MSG_MAIN STRG_OKTAL_2 PROGMEM Language_Str MSG_WATCH = _UxGT("\001\002\003\004\005\006\007\010\011");
#define MSG_TEMPERATURE STRG_OKTAL_3 PROGMEM Language_Str MSG_PREPARE = _UxGT("UTF8");
#define MSG_MOTION STRG_OKTAL_4 PROGMEM Language_Str MSG_CONTROL = _UxGT("ASCII");
#define MSG_FILAMENT STRG_OKTAL_5
#define MSG_CONTRAST STRG_OKTAL_6
#define MSG_RESTORE_FAILSAFE STRG_OKTAL_7
#define MSG_NOZZLE STRG_OKTAL_8 PROGMEM Language_Str MSG_MAIN = _UxGT("..");
#define MSG_FAN_SPEED STRG_OKTAL_9 PROGMEM Language_Str MSG_DISABLE_STEPPERS = STRG_C2_8;
#define MSG_AUTOTEMP STRG_OKTAL_a PROGMEM Language_Str MSG_AUTO_HOME = STRG_C2_9;
#define MSG_MIN STRG_OKTAL_b PROGMEM Language_Str MSG_SET_HOME_OFFSETS = STRG_C2_a;
#define MSG_MAX STRG_OKTAL_c PROGMEM Language_Str MSG_PREHEAT_1 = STRG_C2_b;
#define MSG_FACTOR STRG_OKTAL_d PROGMEM Language_Str MSG_PREHEAT_2 = STRG_C3_8;
#define MSG_PID_P STRG_OKTAL_e PROGMEM Language_Str MSG_COOLDOWN = STRG_C3_9;
#define MSG_PID_I STRG_OKTAL_f PROGMEM Language_Str MSG_SWITCH_PS_OFF = STRG_C3_a;
PROGMEM Language_Str MSG_MOVE_AXIS = STRG_C3_b;
#endif PROGMEM Language_Str MSG_MAIN = STRG_OKTAL_2;
PROGMEM Language_Str MSG_TEMPERATURE = STRG_OKTAL_3;
PROGMEM Language_Str MSG_MOTION = STRG_OKTAL_4;
PROGMEM Language_Str MSG_FILAMENT = STRG_OKTAL_5;
PROGMEM Language_Str MSG_CONTRAST = STRG_OKTAL_6;
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = STRG_OKTAL_7;
#if ENABLED(CYRIL) PROGMEM Language_Str MSG_NOZZLE = STRG_OKTAL_8;
#define WELCOME_MSG _UxGT("Language TEST") PROGMEM Language_Str MSG_NOZZLE_0 = STRG_OKTAL_8 " " LCD_STR_N0;
PROGMEM Language_Str MSG_NOZZLE_1 = STRG_OKTAL_8 " " LCD_STR_N1;
PROGMEM Language_Str MSG_NOZZLE_2 = STRG_OKTAL_8 " " LCD_STR_N2;
PROGMEM Language_Str MSG_NOZZLE_3 = STRG_OKTAL_8 " " LCD_STR_N3;
PROGMEM Language_Str MSG_NOZZLE_4 = STRG_OKTAL_8 " " LCD_STR_N4;
PROGMEM Language_Str MSG_NOZZLE_5 = STRG_OKTAL_8 " " LCD_STR_N5;
PROGMEM Language_Str MSG_FAN_SPEED = STRG_OKTAL_9;
PROGMEM Language_Str MSG_FAN_SPEED_1 = STRG_OKTAL_9;
PROGMEM Language_Str MSG_FAN_SPEED_2 = STRG_OKTAL_9;
PROGMEM Language_Str MSG_FAN_SPEED_3 = STRG_OKTAL_9;
PROGMEM Language_Str MSG_AUTOTEMP = STRG_OKTAL_a;
PROGMEM Language_Str MSG_MIN = STRG_OKTAL_b;
PROGMEM Language_Str MSG_MAX = STRG_OKTAL_c;
PROGMEM Language_Str MSG_FACTOR = STRG_OKTAL_d;
PROGMEM Language_Str MSG_PID_P = STRG_OKTAL_e;
PROGMEM Language_Str MSG_PID_I = STRG_OKTAL_f;
#define MSG_WATCH _UxGT("\001\002\003\004\005\006\007\010\011") #endif
#define MSG_PREPARE _UxGT("UTF8")
#define MSG_CONTROL _UxGT("ASCII")
//#define MSG_MAIN _UxGT("..") #if ENABLED(CYRIL)
#define MSG_DISABLE_STEPPERS STRG_D0_8 PROGMEM Language_Str WELCOME_MSG = _UxGT("Language TEST");
#define MSG_AUTO_HOME STRG_D0_9
#define MSG_SET_HOME_OFFSETS STRG_D0_a
#define MSG_PREHEAT_1 STRG_D0_b
#define MSG_PREHEAT_2 STRG_D1_8
#define MSG_COOLDOWN STRG_D1_9
#define MSG_SWITCH_PS_OFF STRG_D1_a
#define MSG_MOVE_AXIS STRG_D1_b
#define MSG_MAIN STRG_OKTAL_2 PROGMEM Language_Str MSG_WATCH = _UxGT("\001\002\003\004\005\006\007\010\011");
#define MSG_TEMPERATURE STRG_OKTAL_3 PROGMEM Language_Str MSG_PREPARE = _UxGT("UTF8");
#define MSG_MOTION STRG_OKTAL_4 PROGMEM Language_Str MSG_CONTROL = _UxGT("ASCII");
#define MSG_FILAMENT STRG_OKTAL_5
#define MSG_CONTRAST STRG_OKTAL_6
#define MSG_RESTORE_FAILSAFE STRG_OKTAL_7
#define MSG_NOZZLE STRG_OKTAL_8 PROGMEM Language_Str MSG_MAIN = _UxGT("..");
#define MSG_FAN_SPEED STRG_OKTAL_9 PROGMEM Language_Str MSG_DISABLE_STEPPERS = STRG_D0_8;
#define MSG_AUTOTEMP STRG_OKTAL_a PROGMEM Language_Str MSG_AUTO_HOME = STRG_D0_9;
#define MSG_MIN STRG_OKTAL_b PROGMEM Language_Str MSG_SET_HOME_OFFSETS = STRG_D0_a;
#define MSG_MAX STRG_OKTAL_c PROGMEM Language_Str MSG_PREHEAT_1 = STRG_D0_b;
#define MSG_FACTOR STRG_OKTAL_d PROGMEM Language_Str MSG_PREHEAT_2 = STRG_D1_8;
#define MSG_PID_P STRG_OKTAL_e PROGMEM Language_Str MSG_COOLDOWN = STRG_D1_9;
#define MSG_PID_I STRG_OKTAL_f PROGMEM Language_Str MSG_SWITCH_PS_OFF = STRG_D1_a;
PROGMEM Language_Str MSG_MOVE_AXIS = STRG_D1_b;
#endif PROGMEM Language_Str MSG_MAIN = STRG_OKTAL_2;
PROGMEM Language_Str MSG_TEMPERATURE = STRG_OKTAL_3;
PROGMEM Language_Str MSG_MOTION = STRG_OKTAL_4;
PROGMEM Language_Str MSG_FILAMENT = STRG_OKTAL_5;
PROGMEM Language_Str MSG_CONTRAST = STRG_OKTAL_6;
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = STRG_OKTAL_7;
#if ENABLED(KANA) PROGMEM Language_Str MSG_NOZZLE = STRG_OKTAL_8;
#define WELCOME_MSG _UxGT("Language TEST") PROGMEM Language_Str MSG_NOZZLE_0 = STRG_OKTAL_8 " " LCD_STR_N0;
PROGMEM Language_Str MSG_NOZZLE_1 = STRG_OKTAL_8 " " LCD_STR_N1;
PROGMEM Language_Str MSG_NOZZLE_2 = STRG_OKTAL_8 " " LCD_STR_N2;
PROGMEM Language_Str MSG_NOZZLE_3 = STRG_OKTAL_8 " " LCD_STR_N3;
PROGMEM Language_Str MSG_NOZZLE_4 = STRG_OKTAL_8 " " LCD_STR_N4;
PROGMEM Language_Str MSG_NOZZLE_5 = STRG_OKTAL_8 " " LCD_STR_N5;
PROGMEM Language_Str MSG_FAN_SPEED_1 = STRG_OKTAL_9;
PROGMEM Language_Str MSG_FAN_SPEED_2 = STRG_OKTAL_9;
PROGMEM Language_Str MSG_FAN_SPEED_3 = STRG_OKTAL_9;
PROGMEM Language_Str MSG_AUTOTEMP = STRG_OKTAL_a;
PROGMEM Language_Str MSG_MIN = STRG_OKTAL_b;
PROGMEM Language_Str MSG_MAX = STRG_OKTAL_c;
PROGMEM Language_Str MSG_FACTOR = STRG_OKTAL_d;
PROGMEM Language_Str MSG_PID_P = STRG_OKTAL_e;
PROGMEM Language_Str MSG_PID_I = STRG_OKTAL_f;
#define MSG_WATCH _UxGT("\001\002\003\004\005\006\007\010\011") #endif
#define MSG_PREPARE _UxGT("UTF8")
#define MSG_CONTROL _UxGT("ASCII")
//#define MSG_MAIN _UxGT("..") #if ENABLED(KANA)
#define MSG_DISABLE_STEPPERS STRG_E382_8 PROGMEM Language_Str WELCOME_MSG = _UxGT("Language TEST");
#define MSG_AUTO_HOME STRG_E382_9
#define MSG_SET_HOME_OFFSETS STRG_E382_a
#define MSG_PREHEAT_1 STRG_E382_b
#define MSG_PREHEAT_2 STRG_E383_8
#define MSG_COOLDOWN STRG_E383_9
#define MSG_SWITCH_PS_OFF STRG_E383_a
#define MSG_MOVE_AXIS STRG_E383_b
#define MSG_MAIN STRG_OKTAL_2 PROGMEM Language_Str MSG_WATCH = _UxGT("\001\002\003\004\005\006\007\010\011");
#define MSG_TEMPERATURE STRG_OKTAL_3 PROGMEM Language_Str MSG_PREPARE = _UxGT("UTF8");
#define MSG_MOTION STRG_OKTAL_4 PROGMEM Language_Str MSG_CONTROL = _UxGT("ASCII");
#define MSG_FILAMENT STRG_OKTAL_5
#define MSG_CONTRAST STRG_OKTAL_6
#define MSG_RESTORE_FAILSAFE STRG_OKTAL_7
#define MSG_NOZZLE STRG_OKTAL_8 PROGMEM Language_Str MSG_MAIN = _UxGT("..");
#define MSG_FAN_SPEED STRG_OKTAL_9 PROGMEM Language_Str MSG_DISABLE_STEPPERS = STRG_E382_8;
#define MSG_AUTOTEMP STRG_OKTAL_a PROGMEM Language_Str MSG_AUTO_HOME = STRG_E382_9;
#define MSG_MIN STRG_OKTAL_b PROGMEM Language_Str MSG_SET_HOME_OFFSETS = STRG_E382_a;
#define MSG_MAX STRG_OKTAL_c PROGMEM Language_Str MSG_PREHEAT_1 = STRG_E382_b;
#define MSG_FACTOR STRG_OKTAL_d PROGMEM Language_Str MSG_PREHEAT_2 = STRG_E383_8;
#define MSG_PID_P STRG_OKTAL_e PROGMEM Language_Str MSG_COOLDOWN = STRG_E383_9;
#define MSG_PID_I STRG_OKTAL_f PROGMEM Language_Str MSG_SWITCH_PS_OFF = STRG_E383_a;
#endif PROGMEM Language_Str MSG_MOVE_AXIS = STRG_E383_b;
PROGMEM Language_Str MSG_MAIN = STRG_OKTAL_2;
PROGMEM Language_Str MSG_TEMPERATURE = STRG_OKTAL_3;
PROGMEM Language_Str MSG_MOTION = STRG_OKTAL_4;
PROGMEM Language_Str MSG_FILAMENT = STRG_OKTAL_5;
PROGMEM Language_Str MSG_CONTRAST = STRG_OKTAL_6;
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = STRG_OKTAL_7;
PROGMEM Language_Str MSG_NOZZLE = STRG_OKTAL_8;
PROGMEM Language_Str MSG_NOZZLE_0 = STRG_OKTAL_8 " " LCD_STR_N0;
PROGMEM Language_Str MSG_NOZZLE_1 = STRG_OKTAL_8 " " LCD_STR_N1;
PROGMEM Language_Str MSG_NOZZLE_2 = STRG_OKTAL_8 " " LCD_STR_N2;
PROGMEM Language_Str MSG_NOZZLE_3 = STRG_OKTAL_8 " " LCD_STR_N3;
PROGMEM Language_Str MSG_NOZZLE_4 = STRG_OKTAL_8 " " LCD_STR_N4;
PROGMEM Language_Str MSG_NOZZLE_5 = STRG_OKTAL_8 " " LCD_STR_N5;
PROGMEM Language_Str MSG_FAN_SPEED_1 = STRG_OKTAL_9;
PROGMEM Language_Str MSG_FAN_SPEED_2 = STRG_OKTAL_9;
PROGMEM Language_Str MSG_FAN_SPEED_3 = STRG_OKTAL_9;
PROGMEM Language_Str MSG_AUTOTEMP = STRG_OKTAL_a;
PROGMEM Language_Str MSG_MIN = STRG_OKTAL_b;
PROGMEM Language_Str MSG_MAX = STRG_OKTAL_c;
PROGMEM Language_Str MSG_FACTOR = STRG_OKTAL_d;
PROGMEM Language_Str MSG_PID_P = STRG_OKTAL_e;
PROGMEM Language_Str MSG_PID_I = STRG_OKTAL_f;
#endif
}

View file

@ -34,402 +34,484 @@
*/ */
#define DISPLAY_CHARSET_ISO10646_TR #define DISPLAY_CHARSET_ISO10646_TR
#define CHARSIZE 2
#define THIS_LANGUAGES_SPECIAL_SYMBOLS _UxGT("İÖÇğüşöç³")
#define WELCOME_MSG MACHINE_NAME _UxGT(" hazır.") namespace Language_tr {
#define MSG_BACK _UxGT("Geri") using namespace Language_en; // Inherit undefined strings from English
#define MSG_MEDIA_INSERTED _UxGT("SD K. Yerleştirildi.")
#define MSG_MEDIA_REMOVED _UxGT("SD Kart Çıkarıldı.")
#define MSG_LCD_ENDSTOPS _UxGT("Enstops") // Max length 8 characters
#define MSG_LCD_SOFT_ENDSTOPS _UxGT("Yazılımsal Endstops")
#define MSG_MAIN _UxGT("Ana")
#define MSG_ADVANCED_SETTINGS _UxGT("Gelişmiş Ayarlar")
#define MSG_CONFIGURATION _UxGT("Yapılandırma")
#define MSG_AUTOSTART _UxGT("Oto. Başlat")
#define MSG_DISABLE_STEPPERS _UxGT("Motorları Durdur")
#define MSG_DEBUG_MENU _UxGT("Hata Ayıklama")
#define MSG_PROGRESS_BAR_TEST _UxGT("Durum Çubuğu Testi")
#define MSG_AUTO_HOME _UxGT("Eksenleri Sıfırla")
#define MSG_AUTO_HOME_X _UxGT("X Sıfırla")
#define MSG_AUTO_HOME_Y _UxGT("Y Sıfırla")
#define MSG_AUTO_HOME_Z _UxGT("Z Sıfırla")
#define MSG_AUTO_Z_ALIGN _UxGT("Oto. Z-Hizalama")
#define MSG_LEVEL_BED_HOMING _UxGT("XYZ Sıfırlanıyor")
#define MSG_LEVEL_BED_WAITING _UxGT("Başlatmak için tıkla")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Sonraki Nokta")
#define MSG_LEVEL_BED_DONE _UxGT("Hizalama Tamam!")
#define MSG_Z_FADE_HEIGHT _UxGT("Kaçınma Yüksekliği")
#define MSG_SET_HOME_OFFSETS _UxGT("Offset Ayarla")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Offset Tamam")
#define MSG_SET_ORIGIN _UxGT("Sıfır Belirle")
#define MSG_PREHEAT_1 _UxGT("Ön Isınma " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ")
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" Tüm")
#define MSG_PREHEAT_1_END MSG_PREHEAT_1 _UxGT(" Nozul")
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" Tabla")
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" Ayarlar")
#define MSG_PREHEAT_2 _UxGT("Ön Isınma " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ")
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" Tüm")
#define MSG_PREHEAT_2_END MSG_PREHEAT_2 _UxGT(" Nozul")
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" Tabla")
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" Ayarlar")
#define MSG_PREHEAT_CUSTOM _UxGT("Özel Ön Isınma")
#define MSG_COOLDOWN _UxGT("Soğut")
#define MSG_SWITCH_PS_ON _UxGT("Gücü Aç")
#define MSG_SWITCH_PS_OFF _UxGT("Gücü Kapat")
#define MSG_EXTRUDE _UxGT("Ekstrüzyon")
#define MSG_RETRACT _UxGT("Geri Çek")
#define MSG_MOVE_AXIS _UxGT("Eksen Hareketleri")
#define MSG_BED_LEVELING _UxGT("Tabla Hizalama")
#define MSG_LEVEL_BED _UxGT("Tabla Hizası")
#define MSG_LEVEL_CORNERS _UxGT("Hizalama Köşeleri")
#define MSG_NEXT_CORNER _UxGT("Sonraki Köşe")
#define MSG_EDIT_MESH _UxGT("Mesh Düzenle")
#define MSG_EDITING_STOPPED _UxGT("Mesh Düzenleme Durdu")
#define MSG_MESH_X _UxGT("İndeks X")
#define MSG_MESH_Y _UxGT("İndeks Y")
#define MSG_MESH_EDIT_Z _UxGT("Z Değeri")
#define MSG_USER_MENU _UxGT("Özel Komutlar")
#define MSG_IDEX_MENU _UxGT("IDEX Modu")
#define MSG_IDEX_MODE_AUTOPARK _UxGT("Oto-Park")
#define MSG_IDEX_MODE_DUPLICATE _UxGT("Kopyala")
#define MSG_IDEX_MODE_MIRRORED_COPY _UxGT("Yansıtılmış kopya")
#define MSG_IDEX_MODE_FULL_CTRL _UxGT("Tam Kontrol")
#define MSG_X_OFFSET _UxGT("2. nozul X")
#define MSG_Y_OFFSET _UxGT("2. nozul Y")
#define MSG_Z_OFFSET _UxGT("2. nozul Z")
#define MSG_UBL_DOING_G29 _UxGT("G29 Çalışıyor")
#define MSG_UBL_TOOLS _UxGT("UBL Araçları")
#define MSG_UBL_LEVEL_BED _UxGT("UBL Yatak Hizalama")
#define MSG_UBL_MANUAL_MESH _UxGT("Elle Mesh Oluştur")
#define MSG_UBL_BC_INSERT _UxGT("Altlık & Ölçü Ver")
#define MSG_UBL_BC_INSERT2 _UxGT("Ölçü")
#define MSG_UBL_BC_REMOVE _UxGT("Yataktan Ölçü Kaldır")
#define MSG_UBL_MOVING_TO_NEXT _UxGT("Sonrakine Git")
#define MSG_UBL_ACTIVATE_MESH _UxGT("UBL'yi Etkinleştir")
#define MSG_UBL_DEACTIVATE_MESH _UxGT("UBL'yi Etkisizleştir")
#define MSG_UBL_SET_TEMP_BED _UxGT("Yatak Sıcaklığı")
#define MSG_UBL_BED_TEMP_CUSTOM MSG_UBL_SET_TEMP_BED
#define MSG_UBL_SET_TEMP_HOTEND _UxGT("Nozul Sıcaklığı")
#define MSG_UBL_HOTEND_TEMP_CUSTOM MSG_UBL_SET_TEMP_HOTEND
#define MSG_UBL_MESH_EDIT _UxGT("Mesh Düzenleme")
#define MSG_UBL_EDIT_CUSTOM_MESH _UxGT("Özel Mesh Düzenleme")
#define MSG_UBL_FINE_TUNE_MESH _UxGT("İnce Ayar Mesh")
#define MSG_UBL_DONE_EDITING_MESH _UxGT("Mesh Düzenleme Tamam")
#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Özel Mesh Oluştur")
#define MSG_UBL_BUILD_MESH_MENU _UxGT("Mesh Oluştur")
#define MSG_UBL_BUILD_MESH_M1 _UxGT("Mesh Oluştur (" PREHEAT_1_LABEL ")")
#define MSG_UBL_BUILD_MESH_M2 _UxGT("Mesh Oluştur (" PREHEAT_2_LABEL ")")
#define MSG_UBL_BUILD_COLD_MESH _UxGT("Soğuk Mesh Oluştur")
#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Mesh Yükseklik Ayarı")
#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Yükseklik miktarı")
#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("Doğrulama Mesh")
#define MSG_UBL_VALIDATE_MESH_M1 _UxGT("Doğrulama Mesh (" PREHEAT_1_LABEL ")")
#define MSG_UBL_VALIDATE_MESH_M2 _UxGT("Doğrulama Mesh (" PREHEAT_2_LABEL ")")
#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Özel Mesh Doğrulama")
#define MSG_UBL_CONTINUE_MESH _UxGT("Tabla Mesh Devam et")
#define MSG_UBL_MESH_LEVELING _UxGT("Mesh Hizalama")
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("3-Nokta Hizalama")
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Kafes Mesh Hizalama")
#define MSG_UBL_MESH_LEVEL _UxGT("Mesh Seviyesi")
#define MSG_UBL_SIDE_POINTS _UxGT("Yan Noktalar")
#define MSG_UBL_MAP_TYPE _UxGT("Haritalama Türü")
#define MSG_UBL_OUTPUT_MAP _UxGT("Mesh Çıkış Haritası")
#define MSG_UBL_OUTPUT_MAP_HOST _UxGT("Host için Çıktı")
#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("CSV için Çıktı")
#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Yazıcıda Yedek Kpalı")
#define MSG_UBL_INFO_UBL _UxGT("UBL Çıkış Bilgisi")
#define MSG_UBL_FILLIN_AMOUNT _UxGT("Dolgu Miktarı")
#define MSG_UBL_MANUAL_FILLIN _UxGT("Manuel Dolgu")
#define MSG_UBL_SMART_FILLIN _UxGT("Akıllı Dogu")
#define MSG_UBL_FILLIN_MESH _UxGT("Mesh Dolgu")
#define MSG_UBL_INVALIDATE_ALL _UxGT("Tümünü Geçersiz Kıl")
#define MSG_UBL_INVALIDATE_CLOSEST _UxGT("Yakını Geçersiz Kıl")
#define MSG_UBL_FINE_TUNE_ALL _UxGT("Tümünü İnce Ayarla")
#define MSG_UBL_FINE_TUNE_CLOSEST _UxGT("Yakını İnce Ayarla")
#define MSG_UBL_STORAGE_MESH_MENU _UxGT("Mesh Depolama")
#define MSG_UBL_STORAGE_SLOT _UxGT("Bellek Yuvası")
#define MSG_UBL_LOAD_MESH _UxGT("Yatak Mesh Yükle")
#define MSG_UBL_SAVE_MESH _UxGT("Yatak Mesh Kayıt Et")
#define MSG_MESH_LOADED _UxGT("Mesh %i yüklendi")
#define MSG_MESH_SAVED _UxGT("Mesh %i kayıtlandı")
#define MSG_UBL_NO_STORAGE _UxGT("Depolama Yok")
#define MSG_UBL_SAVE_ERROR _UxGT("Hata: UBL Kayıt")
#define MSG_UBL_RESTORE_ERROR _UxGT("Hata: UBL Yenileme")
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Z-Ofset Durduruldu")
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("Adım Adım UBL")
#define MSG_LED_CONTROL _UxGT("LED Kontrolü")
#define MSG_LEDS _UxGT("Işıklar")
#define MSG_LED_PRESETS _UxGT("Işık Hazır Ayarları")
#define MSG_SET_LEDS_RED _UxGT("Kırmızı")
#define MSG_SET_LEDS_ORANGE _UxGT("Turuncu")
#define MSG_SET_LEDS_YELLOW _UxGT("Sarı")
#define MSG_SET_LEDS_GREEN _UxGT("Yeşil")
#define MSG_SET_LEDS_BLUE _UxGT("Mavi")
#define MSG_SET_LEDS_INDIGO _UxGT("Lacivert")
#define MSG_SET_LEDS_VIOLET _UxGT("Menekşe")
#define MSG_SET_LEDS_WHITE _UxGT("Beyaz")
#define MSG_SET_LEDS_DEFAULT _UxGT("Varsayılan")
#define MSG_CUSTOM_LEDS _UxGT("Özel Işıklar")
#define MSG_INTENSITY_R _UxGT("Kırmızı Şiddeti")
#define MSG_INTENSITY_G _UxGT("Yeşil Şiddeti")
#define MSG_INTENSITY_B _UxGT("Mavi Şiddeti")
#define MSG_INTENSITY_W _UxGT("Beyaz Şiddeti")
#define MSG_LED_BRIGHTNESS _UxGT("Parlaklık")
#define MSG_MOVING _UxGT("Hareket Ediyor..")
#define MSG_FREE_XY _UxGT("Durdur XY")
#define MSG_MOVE_X _UxGT("X Hareketi")
#define MSG_MOVE_Y _UxGT("Y Hareketi")
#define MSG_MOVE_Z _UxGT("Z Hareketi")
#define MSG_MOVE_E _UxGT("Ekstruder")
#define MSG_HOTEND_TOO_COLD _UxGT("Nozul Çok Soğuk")
#define MSG_MOVE_Z_DIST _UxGT("%smm")
#define MSG_MOVE_01MM _UxGT("0.1mm")
#define MSG_MOVE_1MM _UxGT("1mm")
#define MSG_MOVE_10MM _UxGT("10mm")
#define MSG_SPEED _UxGT("Hız")
#define MSG_BED_Z _UxGT("Z Mesafesi")
#define MSG_NOZZLE _UxGT("Nozul")
#define MSG_BED _UxGT("Tabla")
#define MSG_FAN_SPEED _UxGT("Fan Hızı")
#define MSG_EXTRA_FAN_SPEED _UxGT("Ekstra Fan Hızı")
#define MSG_FLOW _UxGT("Akış")
#define MSG_CONTROL _UxGT("Kontrol")
#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Min")
#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Max")
#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Çarpan")
#define MSG_AUTOTEMP _UxGT("Oto. Sıcaklık")
#define MSG_LCD_ON _UxGT("Açık")
#define MSG_LCD_OFF _UxGT("Kapalı")
#define MSG_PID_P _UxGT("PID-P")
#define MSG_PID_I _UxGT("PID-I")
#define MSG_PID_D _UxGT("PID-D")
#define MSG_PID_C _UxGT("PID-C")
#define MSG_SELECT _UxGT("Seç")
#define MSG_ACC _UxGT("İvme")
#define MSG_JERK _UxGT("Sarsım")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-Sarsım")
#define MSG_VB_JERK _UxGT("Vb-Sarsım")
#define MSG_VC_JERK _UxGT("Vc-Sarsım")
#else
#define MSG_VA_JERK _UxGT("Vx-Sarsım")
#define MSG_VB_JERK _UxGT("Vy-Sarsım")
#define MSG_VC_JERK _UxGT("Vz-Sarsım")
#endif
#define MSG_VE_JERK _UxGT("Ve-Sarsım")
#define MSG_JUNCTION_DEVIATION _UxGT("Jonksiyon Sapması")
#define MSG_VELOCITY _UxGT("Hız Vektörü")
#define MSG_VMAX _UxGT("HızVektör.max ")
#define MSG_VMIN _UxGT("HızVektör.min")
#define MSG_VTRAV_MIN _UxGT("HV.gezinme min")
#define MSG_ACCELERATION _UxGT("Ivme")
#define MSG_AMAX _UxGT("Max. ivme ")
#define MSG_A_RETRACT _UxGT("Ivme-geri çekme")
#define MSG_A_TRAVEL _UxGT("Ivme-gezinme")
#define MSG_STEPS_PER_MM _UxGT("Adım/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("A adım/mm")
#define MSG_BSTEPS _UxGT("B adım/mm")
#define MSG_CSTEPS _UxGT("C adım/mm")
#else
#define MSG_ASTEPS _UxGT("X adım/mm")
#define MSG_BSTEPS _UxGT("Y adım/mm")
#define MSG_CSTEPS _UxGT("Z adım/mm")
#endif
#define MSG_ESTEPS _UxGT("E adım/mm")
#define MSG_E0_STEPS _UxGT("E1 adım/mm")
#define MSG_E1_STEPS _UxGT("E2 adım/mm")
#define MSG_E2_STEPS _UxGT("E3 adım/mm")
#define MSG_E3_STEPS _UxGT("E4 adım/mm")
#define MSG_E4_STEPS _UxGT("E5 adım/mm")
#define MSG_E5_STEPS _UxGT("E6 adım/mm")
#define MSG_TEMPERATURE _UxGT("Sıcaklık")
#define MSG_MOTION _UxGT("Hareket")
#define MSG_FILAMENT _UxGT("Filaman")
#define MSG_VOLUMETRIC_ENABLED _UxGT("Ekstrüzyon/mm³")
#define MSG_FILAMENT_DIAM _UxGT("Filaman Çapı")
#define MSG_FILAMENT_UNLOAD _UxGT("Çıkart mm")
#define MSG_FILAMENT_LOAD _UxGT("Yükle mm")
#define MSG_ADVANCE_K _UxGT("K İlerlet")
#define MSG_CONTRAST _UxGT("LCD Kontrast")
#define MSG_STORE_EEPROM _UxGT("Hafızaya Al")
#define MSG_LOAD_EEPROM _UxGT("Hafızadan Yükle")
#define MSG_RESTORE_FAILSAFE _UxGT("Fabrika Ayarları")
#define MSG_INIT_EEPROM _UxGT("EEPROM'u başlat")
#define MSG_MEDIA_UPDATE _UxGT("SD Güncellemesi")
#define MSG_RESET_PRINTER _UxGT("Yazıcıyı Resetle")
#define MSG_REFRESH _UxGT("Yenile")
#define MSG_WATCH _UxGT("Bilgi Ekranı")
#define MSG_PREPARE _UxGT("Hazırlık")
#define MSG_TUNE _UxGT("Ayar")
#define MSG_PAUSE_PRINT _UxGT("Duraklat")
#define MSG_RESUME_PRINT _UxGT("Sürdür")
#define MSG_STOP_PRINT _UxGT("Durdur")
#define MSG_OUTAGE_RECOVERY _UxGT("Kesinti Kurtarma")
#define MSG_MEDIA_MENU _UxGT("SD Karttan Yazdır")
#define MSG_NO_MEDIA _UxGT("SD Kart Yok!")
#define MSG_DWELL _UxGT("Uyku...")
#define MSG_USERWAIT _UxGT("Operatör bekleniyor.")
#define MSG_PRINT_PAUSED _UxGT("Baskı Duraklatıldı")
#define MSG_PRINTING _UxGT("Baskı Yapılıyor...")
#define MSG_PRINT_ABORTED _UxGT("Baskı Durduruldu!")
#define MSG_NO_MOVE _UxGT("İşlem yok.")
#define MSG_KILLED _UxGT("Kilitlendi. ")
#define MSG_STOPPED _UxGT("Durdu. ")
#define MSG_CONTROL_RETRACT _UxGT("Geri Çek mm")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Swap Re.mm")
#define MSG_CONTROL_RETRACTF _UxGT("Geri Çekme V")
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Atlama mm")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("S UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("UnRet V")
#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V")
#define MSG_AUTORETRACT _UxGT("Oto. Geri Çekme")
#define MSG_FILAMENT_SWAP_LENGTH _UxGT("G.Çekme Boyu")
#define MSG_TOOL_CHANGE _UxGT("Takım Değişimi")
#define MSG_TOOL_CHANGE_ZLIFT _UxGT("Z Yükselt")
#define MSG_SINGLENOZZLE_PRIME_SPD _UxGT("Birincil Hız")
#define MSG_SINGLENOZZLE_RETRACT_SPD _UxGT("Geri Çekme Hızı")
#define MSG_FILAMENTCHANGE _UxGT("Filaman Değiştir")
#define MSG_FILAMENTLOAD _UxGT("Filaman Yükle")
#define MSG_FILAMENTUNLOAD _UxGT("Filaman Çıkart")
#define MSG_FILAMENTUNLOAD_ALL _UxGT("Tümünü Çıkart")
#define MSG_INIT_MEDIA _UxGT("SD Kart Başlatılıyor")
#define MSG_CHANGE_MEDIA _UxGT("SD Kart Değiştir")
#define MSG_ZPROBE_OUT _UxGT("Z Prob Açık. Tabla")
#define MSG_SKEW_FACTOR _UxGT("Çarpıklık Faktörü")
#define MSG_BLTOUCH _UxGT("BLTouch")
#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch Self-Test")
#define MSG_BLTOUCH_RESET _UxGT("Sıfırla BLTouch")
#define MSG_BLTOUCH_DEPLOY _UxGT("BLTouch Aç")
#define MSG_BLTOUCH_STOW _UxGT("BLTouch Kapat")
#define MSG_MANUAL_DEPLOY _UxGT("Z-Prob Aç")
#define MSG_MANUAL_STOW _UxGT("Z-Sensör Kapat")
#define MSG_HOME_FIRST _UxGT("Sıfırla %s%s%s Önce")
#define MSG_ZPROBE_ZOFFSET _UxGT("Z Offset")
#define MSG_BABYSTEP_X _UxGT("Miniadım X")
#define MSG_BABYSTEP_Y _UxGT("Miniadım Y")
#define MSG_BABYSTEP_Z _UxGT("Miniadım Z")
#define MSG_ENDSTOP_ABORT _UxGT("Endstop iptal")
#define MSG_HEATING_FAILED_LCD _UxGT("Isınma başarısız")
#define MSG_HEATING_FAILED_LCD_BED _UxGT("Yatak Isınma Başrsız")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Hata: Sıcaklık Aşımı")
#define MSG_THERMAL_RUNAWAY _UxGT("TERMAL PROBLEM")
#define MSG_THERMAL_RUNAWAY_BED _UxGT("TABLA TERMAL PROBLEM")
#define MSG_ERR_MAXTEMP _UxGT("Hata: MAX.SICAKLIK")
#define MSG_ERR_MINTEMP _UxGT("Hata: MIN.SICAKLIK")
#define MSG_ERR_MAXTEMP_BED _UxGT("Hata: MAX.SIC. TABLA")
#define MSG_ERR_MINTEMP_BED _UxGT("Hata: MIN.SIC. TABLA")
#define MSG_ERR_Z_HOMING _UxGT("Önce XY Sıfırla")
#define MSG_HALTED _UxGT("YAZICI DURDURULDU")
#define MSG_PLEASE_RESET _UxGT("Lütfen Resetleyin")
#define MSG_SHORT_DAY _UxGT("G") // One character only
#define MSG_SHORT_HOUR _UxGT("S") // One character only
#define MSG_SHORT_MINUTE _UxGT("D") // One character only
#define MSG_HEATING _UxGT("Isınıyor...")
#define MSG_COOLING _UxGT("Soğuyor...")
#define MSG_BED_HEATING _UxGT("Tabla Isınıyor...")
#define MSG_BED_COOLING _UxGT("Tabla Soğuyor...")
#define MSG_DELTA_CALIBRATE _UxGT("Delta Kalibrasyonu")
#define MSG_DELTA_CALIBRATE_X _UxGT("Ayarla X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Ayarla Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Ayarla Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Ayarla Merkez")
#define MSG_DELTA_SETTINGS _UxGT("Delta Ayarları")
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Oto Kalibrasyon")
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Delta Yük. Ayarla")
#define MSG_DELTA_Z_OFFSET_CALIBRATE _UxGT("Z Prob Ofseti")
#define MSG_DELTA_DIAG_ROD _UxGT("Çapral Mil")
#define MSG_DELTA_HEIGHT _UxGT("Yükseklik")
#define MSG_DELTA_RADIUS _UxGT("Yarıçap")
#define MSG_INFO_MENU _UxGT("Yazıcı Hakkında")
#define MSG_INFO_PRINTER_MENU _UxGT("Yazıcı Bilgisi")
#define MSG_3POINT_LEVELING _UxGT("3-Nokta Hizalama")
#define MSG_LINEAR_LEVELING _UxGT("Doğrusal Hizalama")
#define MSG_BILINEAR_LEVELING _UxGT("İki Yönlü Doğ. Hiza.")
#define MSG_UBL_LEVELING _UxGT("Birleşik Tabla Hiza.")
#define MSG_MESH_LEVELING _UxGT("Mesh Hizalama")
#define MSG_INFO_STATS_MENU _UxGT("İstatistikler")
#define MSG_INFO_BOARD_MENU _UxGT("Kontrolcü Bilgisi")
#define MSG_INFO_THERMISTOR_MENU _UxGT("Termistörler")
#define MSG_INFO_EXTRUDERS _UxGT("Ekstruderler")
#define MSG_INFO_BAUDRATE _UxGT("İletişim Hızı")
#define MSG_INFO_PROTOCOL _UxGT("Protokol")
#define MSG_CASE_LIGHT _UxGT("Aydınlatmayı Aç")
#define MSG_CASE_LIGHT_BRIGHTNESS _UxGT("Aydınlatma Parlaklğı")
#define MSG_EXPECTED_PRINTER _UxGT("Yanlış Yazıcı") constexpr uint8_t CHARSIZE = 2;
PROGMEM Language_Str LANGUAGE = _UxGT("Turkish");
#if LCD_WIDTH >= 20 PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" hazır.");
#define MSG_INFO_PRINT_COUNT _UxGT("Baskı Sayısı") PROGMEM Language_Str MSG_BACK = _UxGT("Geri");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Tamamlanan") PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("SD K. Yerleştirildi.");
#define MSG_INFO_PRINT_TIME _UxGT("Toplam Baskı Süresi") PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("SD Kart Çıkarıldı.");
#define MSG_INFO_PRINT_LONGEST _UxGT("En Uzun Baskı Süresi") PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Enstops"); // Max length 8 characters
#define MSG_INFO_PRINT_FILAMENT _UxGT("Toplam Filaman") PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("Yazılımsal Endstops");
#else PROGMEM Language_Str MSG_MAIN = _UxGT("Ana");
#define MSG_INFO_PRINT_COUNT _UxGT("Baskı") PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("Gelişmiş Ayarlar");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Tamamlanan") PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("Yapılandırma");
#define MSG_INFO_PRINT_TIME _UxGT("Süre") PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Oto. Başlat");
#define MSG_INFO_PRINT_LONGEST _UxGT("En Uzun") PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Motorları Durdur");
#define MSG_INFO_PRINT_FILAMENT _UxGT("Filaman") PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("Hata Ayıklama");
#endif PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Durum Çubuğu Testi");
#define MSG_INFO_MIN_TEMP _UxGT("Min Sıc.") PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Eksenleri Sıfırla");
#define MSG_INFO_MAX_TEMP _UxGT("Max Sıc.") PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("X Sıfırla");
#define MSG_INFO_PSU _UxGT("Güç Kaynağı") PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Y Sıfırla");
#define MSG_DRIVE_STRENGTH _UxGT("Sürücü Gücü") PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Z Sıfırla");
#define MSG_DAC_PERCENT _UxGT("Sürücü %") PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("Oto. Z-Hizalama");
#define MSG_DAC_EEPROM_WRITE _UxGT("DAC EEPROM Yaz") PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("XYZ Sıfırlanıyor");
#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("BASKI DURAKLATILDI") PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Başlatmak için tıkla");
#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("FILAMAN YüKLE") PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Sonraki Nokta");
#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("FILAMAN ÇIKART") PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Hizalama Tamam!");
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("Seçenekler:") PROGMEM Language_Str MSG_Z_FADE_HEIGHT = _UxGT("Kaçınma Yüksekliği");
#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Daha Fazla Tasviye") PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Offset Ayarla");
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Baskıyı sürdür") PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Offset Tamam");
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Nozul: ") PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Sıfır Belirle");
#define MSG_RUNOUT_SENSOR _UxGT("Runout Sensörü") PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL;
#define MSG_ERR_HOMING_FAILED _UxGT("Sıfırlama Başarısız") PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL " " LCD_STR_N0;
#define MSG_ERR_PROBING_FAILED _UxGT("Probing Başarısız") PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL " " LCD_STR_N1;
#define MSG_M600_TOO_COLD _UxGT("M600: Çok Soğuk") PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL " " LCD_STR_N2;
// PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL " " LCD_STR_N3;
// Filament Değiştirme ekranları, 4 satırlı bir ekranda 3 satıra kadar gösterilir PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL " " LCD_STR_N4;
// ...veya 3 satırlı ekranda 2 satıra kadar PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL " " LCD_STR_N5;
#if LCD_HEIGHT >= 4 PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Ön Isınma ") PREHEAT_1_LABEL _UxGT(" Nozul");
// Up to 3 lines allowed PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL _UxGT(" Nozul ") LCD_STR_N0;
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Baskıya devam etmek") PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL _UxGT(" Nozul ") LCD_STR_N1;
#define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("için Butona bas") PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL _UxGT(" Nozul ") LCD_STR_N2;
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Filaman değişimi") PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL _UxGT(" Nozul ") LCD_STR_N3;
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("için başlama") PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL _UxGT(" Nozul ") LCD_STR_N4;
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("bekleniyor") PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL _UxGT(" Nozul ") LCD_STR_N5;
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Filamanı yükle") PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Ön Isınma ") PREHEAT_1_LABEL _UxGT(" Tüm");
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("ve devam için") PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Ön Isınma ") PREHEAT_1_LABEL _UxGT(" Tabla");
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("tuşa bas...") PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Ön Isınma ") PREHEAT_1_LABEL _UxGT(" Ayarlar");
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Nozulü Isıtmak için") PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL;
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("Butona Bas.") PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL " " LCD_STR_N0;
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Nozul Isınıyor") PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL " " LCD_STR_N1;
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Lütfen Bekleyin...") PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL " " LCD_STR_N2;
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Filamanın çıkması") PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL " " LCD_STR_N3;
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("bekleniyor") PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL " " LCD_STR_N4;
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Filamanın yüklenmesi") PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL " " LCD_STR_N5;
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("bekleniyor..") PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Ön Isınma ") PREHEAT_2_LABEL _UxGT(" Nozul");
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Filaman Temizlemesi") PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL _UxGT(" Nozul ") LCD_STR_N0;
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("için bekle") PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL _UxGT(" Nozul ") LCD_STR_N1;
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Filaman Temizlemesi") PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL _UxGT(" Nozul ") LCD_STR_N2;
#define MSG_FILAMENT_CHANGE_CONT_PURGE_2 _UxGT("bitirmek için tıkla") PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL _UxGT(" Nozul ") LCD_STR_N3;
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Baskının devam ") PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL _UxGT(" Nozul ") LCD_STR_N4;
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("etmesi için bekle") PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL _UxGT(" Nozul ") LCD_STR_N5;
#else // LCD_HEIGHT < 4 PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Ön Isınma ") PREHEAT_2_LABEL _UxGT(" Tüm");
// Up to 2 lines allowed PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Ön Isınma ") PREHEAT_2_LABEL _UxGT(" Tabla");
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Sürdürmek İçin Tıkla") PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Ön Isınma ") PREHEAT_2_LABEL _UxGT(" Ayarlar");
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Lütfen bekleyiniz...") PROGMEM Language_Str MSG_PREHEAT_CUSTOM = _UxGT("Özel Ön Isınma");
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Yükle ve bas") PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Soğut");
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Isıtmak için Tıkla") PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Gücü Aç");
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Isınıyor...") PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Gücü Kapat");
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Çıkartılıyor...") PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Ekstrüzyon");
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Yüklüyor...") PROGMEM Language_Str MSG_RETRACT = _UxGT("Geri Çek");
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Temizleniyor...") PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Eksen Hareketleri");
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Bitirmek için Tıkla") PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Tabla Hizalama");
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Sürdürülüyor...") PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Tabla Hizası");
#endif // LCD_HEIGHT < 4 PROGMEM Language_Str MSG_LEVEL_CORNERS = _UxGT("Hizalama Köşeleri");
PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("Sonraki Köşe");
PROGMEM Language_Str MSG_EDIT_MESH = _UxGT("Mesh Düzenle");
PROGMEM Language_Str MSG_EDITING_STOPPED = _UxGT("Mesh Düzenleme Durdu");
PROGMEM Language_Str MSG_MESH_X = _UxGT("İndeks X");
PROGMEM Language_Str MSG_MESH_Y = _UxGT("İndeks Y");
PROGMEM Language_Str MSG_MESH_EDIT_Z = _UxGT("Z Değeri");
PROGMEM Language_Str MSG_USER_MENU = _UxGT("Özel Komutlar");
PROGMEM Language_Str MSG_IDEX_MENU = _UxGT("IDEX Modu");
PROGMEM Language_Str MSG_IDEX_MODE_AUTOPARK = _UxGT("Oto-Park");
PROGMEM Language_Str MSG_IDEX_MODE_DUPLICATE = _UxGT("Kopyala");
PROGMEM Language_Str MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Yansıtılmış kopya");
PROGMEM Language_Str MSG_IDEX_MODE_FULL_CTRL = _UxGT("Tam Kontrol");
PROGMEM Language_Str MSG_X_OFFSET = _UxGT("2. nozul X");
PROGMEM Language_Str MSG_Y_OFFSET = _UxGT("2. nozul Y");
PROGMEM Language_Str MSG_Z_OFFSET = _UxGT("2. nozul Z");
PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("G29 Çalışıyor");
PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("UBL Araçları");
PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("UBL Yatak Hizalama");
PROGMEM Language_Str MSG_UBL_MANUAL_MESH = _UxGT("Elle Mesh Oluştur");
PROGMEM Language_Str MSG_UBL_BC_INSERT = _UxGT("Altlık & Ölçü Ver");
PROGMEM Language_Str MSG_UBL_BC_INSERT2 = _UxGT("Ölçü");
PROGMEM Language_Str MSG_UBL_BC_REMOVE = _UxGT("Yataktan Ölçü Kaldır");
PROGMEM Language_Str MSG_UBL_MOVING_TO_NEXT = _UxGT("Sonrakine Git");
PROGMEM Language_Str MSG_UBL_ACTIVATE_MESH = _UxGT("UBL'yi Etkinleştir");
PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("UBL'yi Etkisizleştir");
PROGMEM Language_Str MSG_UBL_SET_TEMP_BED = _UxGT("Yatak Sıcaklığı");
PROGMEM Language_Str MSG_UBL_BED_TEMP_CUSTOM = _UxGT("Yatak Sıcaklığı");
PROGMEM Language_Str MSG_UBL_SET_TEMP_HOTEND = _UxGT("Nozul Sıcaklığı");
PROGMEM Language_Str MSG_UBL_HOTEND_TEMP_CUSTOM = _UxGT("Nozul Sıcaklığı");
PROGMEM Language_Str MSG_UBL_MESH_EDIT = _UxGT("Mesh Düzenleme");
PROGMEM Language_Str MSG_UBL_EDIT_CUSTOM_MESH = _UxGT("Özel Mesh Düzenleme");
PROGMEM Language_Str MSG_UBL_FINE_TUNE_MESH = _UxGT("İnce Ayar Mesh");
PROGMEM Language_Str MSG_UBL_DONE_EDITING_MESH = _UxGT("Mesh Düzenleme Tamam");
PROGMEM Language_Str MSG_UBL_BUILD_CUSTOM_MESH = _UxGT("Özel Mesh Oluştur");
PROGMEM Language_Str MSG_UBL_BUILD_MESH_MENU = _UxGT("Mesh Oluştur");
PROGMEM Language_Str MSG_UBL_BUILD_MESH_M1 = _UxGT("Mesh Oluştur (") PREHEAT_1_LABEL _UxGT(")");
PROGMEM Language_Str MSG_UBL_BUILD_MESH_M2 = _UxGT("Mesh Oluştur (") PREHEAT_2_LABEL _UxGT(")");
PROGMEM Language_Str MSG_UBL_BUILD_COLD_MESH = _UxGT("Soğuk Mesh Oluştur");
PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_ADJUST = _UxGT("Mesh Yükseklik Ayarı");
PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_AMOUNT = _UxGT("Yükseklik miktarı");
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_MENU = _UxGT("Doğrulama Mesh");
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M1 = _UxGT("Doğrulama Mesh (") PREHEAT_1_LABEL _UxGT(")");
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M2 = _UxGT("Doğrulama Mesh (") PREHEAT_2_LABEL _UxGT(")");
PROGMEM Language_Str MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("Özel Mesh Doğrulama");
PROGMEM Language_Str MSG_UBL_CONTINUE_MESH = _UxGT("Tabla Mesh Devam et");
PROGMEM Language_Str MSG_UBL_MESH_LEVELING = _UxGT("Mesh Hizalama");
PROGMEM Language_Str MSG_UBL_3POINT_MESH_LEVELING = _UxGT("3-Nokta Hizalama");
PROGMEM Language_Str MSG_UBL_GRID_MESH_LEVELING = _UxGT("Kafes Mesh Hizalama");
PROGMEM Language_Str MSG_UBL_MESH_LEVEL = _UxGT("Mesh Seviyesi");
PROGMEM Language_Str MSG_UBL_SIDE_POINTS = _UxGT("Yan Noktalar");
PROGMEM Language_Str MSG_UBL_MAP_TYPE = _UxGT("Haritalama Türü");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP = _UxGT("Mesh Çıkış Haritası");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_HOST = _UxGT("Host için Çıktı");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_CSV = _UxGT("CSV için Çıktı");
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_BACKUP = _UxGT("Yazıcıda Yedek Kpalı");
PROGMEM Language_Str MSG_UBL_INFO_UBL = _UxGT("UBL Çıkış Bilgisi");
PROGMEM Language_Str MSG_UBL_FILLIN_AMOUNT = _UxGT("Dolgu Miktarı");
PROGMEM Language_Str MSG_UBL_MANUAL_FILLIN = _UxGT("Manuel Dolgu");
PROGMEM Language_Str MSG_UBL_SMART_FILLIN = _UxGT("Akıllı Dogu");
PROGMEM Language_Str MSG_UBL_FILLIN_MESH = _UxGT("Mesh Dolgu");
PROGMEM Language_Str MSG_UBL_INVALIDATE_ALL = _UxGT("Tümünü Geçersiz Kıl");
PROGMEM Language_Str MSG_UBL_INVALIDATE_CLOSEST = _UxGT("Yakını Geçersiz Kıl");
PROGMEM Language_Str MSG_UBL_FINE_TUNE_ALL = _UxGT("Tümünü İnce Ayarla");
PROGMEM Language_Str MSG_UBL_FINE_TUNE_CLOSEST = _UxGT("Yakını İnce Ayarla");
PROGMEM Language_Str MSG_UBL_STORAGE_MESH_MENU = _UxGT("Mesh Depolama");
PROGMEM Language_Str MSG_UBL_STORAGE_SLOT = _UxGT("Bellek Yuvası");
PROGMEM Language_Str MSG_UBL_LOAD_MESH = _UxGT("Yatak Mesh Yükle");
PROGMEM Language_Str MSG_UBL_SAVE_MESH = _UxGT("Yatak Mesh Kayıt Et");
PROGMEM Language_Str MSG_MESH_LOADED = _UxGT("M117 Mesh %i yüklendi");
PROGMEM Language_Str MSG_MESH_SAVED = _UxGT("M117 Mesh %i kayıtlandı");
PROGMEM Language_Str MSG_UBL_NO_STORAGE = _UxGT("Depolama Yok");
PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("Hata: UBL Kayıt");
PROGMEM Language_Str MSG_UBL_RESTORE_ERROR = _UxGT("Hata: UBL Yenileme");
PROGMEM Language_Str MSG_UBL_Z_OFFSET_STOPPED = _UxGT("Z-Ofset Durduruldu");
PROGMEM Language_Str MSG_UBL_STEP_BY_STEP_MENU = _UxGT("Adım Adım UBL");
PROGMEM Language_Str MSG_UBL_1_BUILD_COLD_MESH = _UxGT("1.Soğuk Mesh Oluştur");
PROGMEM Language_Str MSG_UBL_2_SMART_FILLIN = _UxGT("2.Akıllı Dogu");
PROGMEM Language_Str MSG_UBL_3_VALIDATE_MESH_MENU = _UxGT("3.Doğrulama Mesh");
PROGMEM Language_Str MSG_UBL_4_FINE_TUNE_ALL = _UxGT("4.Tümünü İnce Ayarla");
PROGMEM Language_Str MSG_UBL_5_VALIDATE_MESH_MENU = _UxGT("5.Doğrulama Mesh");
PROGMEM Language_Str MSG_UBL_6_FINE_TUNE_ALL = _UxGT("6.Tümünü İnce Ayarla");
PROGMEM Language_Str MSG_UBL_7_SAVE_MESH = _UxGT("7.Yatak Mesh Kayıt Et");
PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("LED Kontrolü");
PROGMEM Language_Str MSG_LEDS = _UxGT("ıklar");
PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("ık Hazır Ayarları");
PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("Kırmızı");
PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("Turuncu");
PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("Sarı");
PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("Yeşil");
PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("Mavi");
PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("Lacivert");
PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Menekşe");
PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("Beyaz");
PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("Varsayılan");
PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("Özel Işıklar");
PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Kırmızı Şiddeti");
PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Yeşil Şiddeti");
PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("Mavi Şiddeti");
PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("Beyaz Şiddeti");
PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("Parlaklık");
PROGMEM Language_Str MSG_MOVING = _UxGT("Hareket Ediyor..");
PROGMEM Language_Str MSG_FREE_XY = _UxGT("Durdur XY");
PROGMEM Language_Str MSG_MOVE_X = _UxGT("X Hareketi");
PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Y Hareketi");
PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Z Hareketi");
PROGMEM Language_Str MSG_MOVE_E = _UxGT("Ekstruder");
PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Ekstruder ") LCD_STR_E0;
PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Ekstruder ") LCD_STR_E1;
PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Ekstruder ") LCD_STR_E2;
PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Ekstruder ") LCD_STR_E3;
PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Ekstruder ") LCD_STR_E4;
PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Ekstruder ") LCD_STR_E5;
PROGMEM Language_Str MSG_HOTEND_TOO_COLD = _UxGT("Nozul Çok Soğuk");
PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("%smm");
PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("0.1mm");
PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("1mm");
PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("10mm");
PROGMEM Language_Str MSG_SPEED = _UxGT("Hız");
PROGMEM Language_Str MSG_BED_Z = _UxGT("Z Mesafesi");
PROGMEM Language_Str MSG_NOZZLE = _UxGT("Nozul");
PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Nozul ") LCD_STR_N0;
PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Nozul ") LCD_STR_N1;
PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Nozul ") LCD_STR_N2;
PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Nozul ") LCD_STR_N3;
PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Nozul ") LCD_STR_N4;
PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Nozul ") LCD_STR_N5;
PROGMEM Language_Str MSG_BED = _UxGT("Tabla");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Fan Hızı");
PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Fan Hızı 1");
PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Fan Hızı 2");
PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Fan Hızı 3");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Ekstra Fan Hızı");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_1 = _UxGT("Ekstra Fan Hızı 1");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_2 = _UxGT("Ekstra Fan Hızı 2");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_3 = _UxGT("Ekstra Fan Hızı 3");
PROGMEM Language_Str MSG_FLOW = _UxGT("Akış");
PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Akış ") LCD_STR_N0;
PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Akış ") LCD_STR_N1;
PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Akış ") LCD_STR_N2;
PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Akış ") LCD_STR_N3;
PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Akış ") LCD_STR_N4;
PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Akış ") LCD_STR_N5;
PROGMEM Language_Str MSG_CONTROL = _UxGT("Kontrol");
PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" Min");
PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" Max");
PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Çarpan");
PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Oto. Sıcaklık");
PROGMEM Language_Str MSG_LCD_ON = _UxGT("ık");
PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Kapalı");
PROGMEM Language_Str MSG_SELECT = _UxGT("Seç");
PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("Seç ") LCD_STR_E0;
PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("Seç ") LCD_STR_E1;
PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("Seç ") LCD_STR_E2;
PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("Seç ") LCD_STR_E3;
PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("Seç ") LCD_STR_E4;
PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("Seç ") LCD_STR_E5;
PROGMEM Language_Str MSG_ACC = _UxGT("İvme");
PROGMEM Language_Str MSG_JERK = _UxGT("Sarsım");
PROGMEM Language_Str MSG_VA_JERK = _UxGT("V") LCD_STR_A _UxGT("-Sarsım");
PROGMEM Language_Str MSG_VB_JERK = _UxGT("V") LCD_STR_B _UxGT("-Sarsım");
PROGMEM Language_Str MSG_VC_JERK = _UxGT("V") LCD_STR_C _UxGT("-Sarsım");
PROGMEM Language_Str MSG_VE_JERK = _UxGT("Ve-Sarsım");
PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Jonksiyon Sapması");
PROGMEM Language_Str MSG_VELOCITY = _UxGT("Hız Vektörü");
PROGMEM Language_Str MSG_VMAX_A = _UxGT("HızVektör.max ") LCD_STR_A;
PROGMEM Language_Str MSG_VMAX_B = _UxGT("HızVektör.max ") LCD_STR_B;
PROGMEM Language_Str MSG_VMAX_C = _UxGT("HızVektör.max ") LCD_STR_C;
PROGMEM Language_Str MSG_VMAX_E = _UxGT("HızVektör.max ") LCD_STR_E;
PROGMEM Language_Str MSG_VMAX_E0 = _UxGT("HızVektör.max ") LCD_STR_E0;
PROGMEM Language_Str MSG_VMAX_E1 = _UxGT("HızVektör.max ") LCD_STR_E1;
PROGMEM Language_Str MSG_VMAX_E2 = _UxGT("HızVektör.max ") LCD_STR_E2;
PROGMEM Language_Str MSG_VMAX_E3 = _UxGT("HızVektör.max ") LCD_STR_E3;
PROGMEM Language_Str MSG_VMAX_E4 = _UxGT("HızVektör.max ") LCD_STR_E4;
PROGMEM Language_Str MSG_VMAX_E5 = _UxGT("HızVektör.max ") LCD_STR_E5;
PROGMEM Language_Str MSG_VMIN = _UxGT("HızVektör.min");
PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("HV.gezinme min");
PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Ivme");
PROGMEM Language_Str MSG_AMAX_A = _UxGT("Max. ivme ") LCD_STR_A;
PROGMEM Language_Str MSG_AMAX_B = _UxGT("Max. ivme ") LCD_STR_B;
PROGMEM Language_Str MSG_AMAX_C = _UxGT("Max. ivme ") LCD_STR_C;
PROGMEM Language_Str MSG_AMAX_E = _UxGT("Max. ivme ") LCD_STR_E;
PROGMEM Language_Str MSG_AMAX_E0 = _UxGT("Max. ivme ") LCD_STR_E0;
PROGMEM Language_Str MSG_AMAX_E1 = _UxGT("Max. ivme ") LCD_STR_E1;
PROGMEM Language_Str MSG_AMAX_E2 = _UxGT("Max. ivme ") LCD_STR_E2;
PROGMEM Language_Str MSG_AMAX_E3 = _UxGT("Max. ivme ") LCD_STR_E3;
PROGMEM Language_Str MSG_AMAX_E4 = _UxGT("Max. ivme ") LCD_STR_E4;
PROGMEM Language_Str MSG_AMAX_E5 = _UxGT("Max. ivme ") LCD_STR_E5;
PROGMEM Language_Str MSG_A_RETRACT = _UxGT("Ivme-geri çekme");
PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("Ivme-gezinme");
PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Adım/mm");
PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" adım/mm");
PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" adım/mm");
PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT(" adım/mm");
PROGMEM Language_Str MSG_E_STEPS = _UxGT("E adım/mm");
PROGMEM Language_Str MSG_E0_STEPS = LCD_STR_E0 _UxGT(" adım/mm");
PROGMEM Language_Str MSG_E1_STEPS = LCD_STR_E1 _UxGT(" adım/mm");
PROGMEM Language_Str MSG_E2_STEPS = LCD_STR_E2 _UxGT(" adım/mm");
PROGMEM Language_Str MSG_E3_STEPS = LCD_STR_E3 _UxGT(" adım/mm");
PROGMEM Language_Str MSG_E4_STEPS = LCD_STR_E4 _UxGT(" adım/mm");
PROGMEM Language_Str MSG_E5_STEPS = LCD_STR_E5 _UxGT(" adım/mm");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Sıcaklık");
PROGMEM Language_Str MSG_MOTION = _UxGT("Hareket");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filaman");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("Ekstrüzyon/mm³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Filaman Çapı");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Filaman Çapı ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Filaman Çapı ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Filaman Çapı ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Filaman Çapı ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Filaman Çapı ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Filaman Çapı ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("Çıkart mm");
PROGMEM Language_Str MSG_FILAMENT_LOAD = _UxGT("Yükle mm");
PROGMEM Language_Str MSG_ADVANCE_K = _UxGT("K İlerlet");
PROGMEM Language_Str MSG_ADVANCE_K_E0 = _UxGT("K İlerlet ") LCD_STR_E0;
PROGMEM Language_Str MSG_ADVANCE_K_E1 = _UxGT("K İlerlet ") LCD_STR_E1;
PROGMEM Language_Str MSG_ADVANCE_K_E2 = _UxGT("K İlerlet ") LCD_STR_E2;
PROGMEM Language_Str MSG_ADVANCE_K_E3 = _UxGT("K İlerlet ") LCD_STR_E3;
PROGMEM Language_Str MSG_ADVANCE_K_E4 = _UxGT("K İlerlet ") LCD_STR_E4;
PROGMEM Language_Str MSG_ADVANCE_K_E5 = _UxGT("K İlerlet ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("LCD Kontrast");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Hafızaya Al");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Hafızadan Yükle");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Fabrika Ayarları");
PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("EEPROM'u başlat");
PROGMEM Language_Str MSG_MEDIA_UPDATE = _UxGT("SD Güncellemesi");
PROGMEM Language_Str MSG_RESET_PRINTER = _UxGT("Yazıcıyı Resetle");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Yenile");
PROGMEM Language_Str MSG_WATCH = _UxGT("Bilgi Ekranı");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Hazırlık");
PROGMEM Language_Str MSG_TUNE = _UxGT("Ayar");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Duraklat");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Sürdür");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Durdur");
PROGMEM Language_Str MSG_OUTAGE_RECOVERY = _UxGT("Kesinti Kurtarma");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("SD Karttan Yazdır");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("SD Kart Yok!");
PROGMEM Language_Str MSG_DWELL = _UxGT("Uyku...");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Operatör bekleniyor.");
PROGMEM Language_Str MSG_PRINT_PAUSED = _UxGT("Baskı Duraklatıldı");
PROGMEM Language_Str MSG_PRINTING = _UxGT("Baskı Yapılıyor...");
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Baskı Durduruldu!");
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("İşlem yok.");
PROGMEM Language_Str MSG_KILLED = _UxGT("Kilitlendi. ");
PROGMEM Language_Str MSG_STOPPED = _UxGT("Durdu. ");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Geri Çek mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Swap Re.mm");
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Geri Çekme V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Atlama mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("S UnRet mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("UnRet V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAPF = _UxGT("S UnRet V");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Oto. Geri Çekme");
PROGMEM Language_Str MSG_FILAMENT_SWAP_LENGTH = _UxGT("G.Çekme Boyu");
PROGMEM Language_Str MSG_TOOL_CHANGE = _UxGT("Takım Değişimi");
PROGMEM Language_Str MSG_TOOL_CHANGE_ZLIFT = _UxGT("Z Yükselt");
PROGMEM Language_Str MSG_SINGLENOZZLE_PRIME_SPD = _UxGT("Birincil Hız");
PROGMEM Language_Str MSG_SINGLENOZZLE_RETRACT_SPD = _UxGT("Geri Çekme Hızı");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Filaman Değiştir");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Filaman Değiştir ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Filaman Değiştir ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Filaman Değiştir ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Filaman Değiştir ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Filaman Değiştir ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Filaman Değiştir ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTLOAD_E0 = _UxGT("Filaman Yükle ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTLOAD_E1 = _UxGT("Filaman Yükle ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTLOAD_E2 = _UxGT("Filaman Yükle ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTLOAD_E3 = _UxGT("Filaman Yükle ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTLOAD_E4 = _UxGT("Filaman Yükle ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTLOAD_E5 = _UxGT("Filaman Yükle ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E0 = _UxGT("Filaman Çıkart ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E1 = _UxGT("Filaman Çıkart ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E2 = _UxGT("Filaman Çıkart ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E3 = _UxGT("Filaman Çıkart ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E4 = _UxGT("Filaman Çıkart ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E5 = _UxGT("Filaman Çıkart ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Tümünü Çıkart");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("SD Kart Başlatılıyor");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("SD Kart Değiştir");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z Prob Açık. Tabla");
PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("Çarpıklık Faktörü");
PROGMEM Language_Str MSG_BLTOUCH = _UxGT("BLTouch");
PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("BLTouch Self-Test");
PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("Sıfırla BLTouch");
PROGMEM Language_Str MSG_BLTOUCH_DEPLOY = _UxGT("BLTouch Aç");
PROGMEM Language_Str MSG_BLTOUCH_STOW = _UxGT("BLTouch Kapat");
PROGMEM Language_Str MSG_MANUAL_DEPLOY = _UxGT("Z-Prob Aç");
PROGMEM Language_Str MSG_MANUAL_STOW = _UxGT("Z-Sensör Kapat");
PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("Sıfırla %s%s%s Önce");
PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Miniadım X");
PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Miniadım Y");
PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Miniadım Z");
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Endstop iptal");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Isınma başarısız");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD_BED = _UxGT("Yatak Isınma Başrsız");
PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("Hata: Sıcaklık Aşımı");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("TERMAL PROBLEM");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY_BED = _UxGT("TABLA TERMAL PROBLEM");
PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("Hata: MAX.SICAKLIK");
PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("Hata: MIN.SICAKLIK");
PROGMEM Language_Str MSG_ERR_MAXTEMP_BED = _UxGT("Hata: MAX.SIC. TABLA");
PROGMEM Language_Str MSG_ERR_MINTEMP_BED = _UxGT("Hata: MIN.SIC. TABLA");
PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("Önce XY Sıfırla");
PROGMEM Language_Str MSG_HALTED = _UxGT("YAZICI DURDURULDU");
PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Lütfen Resetleyin");
PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("G"); // One character only
PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("S"); // One character only
PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("D"); // One character only
PROGMEM Language_Str MSG_HEATING = _UxGT("Isınıyor...");
PROGMEM Language_Str MSG_COOLING = _UxGT("Soğuyor...");
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Tabla Isınıyor...");
PROGMEM Language_Str MSG_BED_COOLING = _UxGT("Tabla Soğuyor...");
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Delta Kalibrasyonu");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Ayarla X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Ayarla Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Ayarla Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Ayarla Merkez");
PROGMEM Language_Str MSG_DELTA_SETTINGS = _UxGT("Delta Ayarları");
PROGMEM Language_Str MSG_DELTA_AUTO_CALIBRATE = _UxGT("Oto Kalibrasyon");
PROGMEM Language_Str MSG_DELTA_HEIGHT_CALIBRATE = _UxGT("Delta Yük. Ayarla");
PROGMEM Language_Str MSG_DELTA_Z_OFFSET_CALIBRATE = _UxGT("Z Prob Ofseti");
PROGMEM Language_Str MSG_DELTA_DIAG_ROD = _UxGT("Çapral Mil");
PROGMEM Language_Str MSG_DELTA_HEIGHT = _UxGT("Yükseklik");
PROGMEM Language_Str MSG_DELTA_RADIUS = _UxGT("Yarıçap");
PROGMEM Language_Str MSG_INFO_MENU = _UxGT("Yazıcı Hakkında");
PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Yazıcı Bilgisi");
PROGMEM Language_Str MSG_3POINT_LEVELING = _UxGT("3-Nokta Hizalama");
PROGMEM Language_Str MSG_LINEAR_LEVELING = _UxGT("Doğrusal Hizalama");
PROGMEM Language_Str MSG_BILINEAR_LEVELING = _UxGT("İki Yönlü Doğ. Hiza.");
PROGMEM Language_Str MSG_UBL_LEVELING = _UxGT("Birleşik Tabla Hiza.");
PROGMEM Language_Str MSG_MESH_LEVELING = _UxGT("Mesh Hizalama");
PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("İstatistikler");
PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Kontrolcü Bilgisi");
PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Termistörler");
PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Ekstruderler");
PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("İletişim Hızı");
PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Protokol");
PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Aydınlatmayı");
PROGMEM Language_Str MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Aydınlatma Parlaklğı");
PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Yanlış Yazıcı");
#if LCD_WIDTH >= 20
PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Baskı Sayısı");
PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Tamamlanan");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Toplam Baskı Süresi");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("En Uzun Baskı Süresi");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Toplam Filaman");
#else
PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Baskı");
PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Tamamlanan");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Süre");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("En Uzun");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Filaman");
#endif
PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Min Sıc.");
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Max Sıc.");
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Güç Kaynağı");
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Sürücü Gücü");
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Sürücü %");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC EEPROM Yaz");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("BASKI DURAKLATILDI");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("FILAMAN YüKLE");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("FILAMAN ÇIKART");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("Seçenekler:");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("Daha Fazla Tasviye");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Baskıyı sürdür");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Nozul: ");
PROGMEM Language_Str MSG_RUNOUT_SENSOR = _UxGT("Runout Sensörü");
PROGMEM Language_Str MSG_LCD_HOMING_FAILED = _UxGT("Sıfırlama Başarısız");
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Probing Başarısız");
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Çok Soğuk");
//
// Filament Değiştirme ekranları, 4 satırlı bir ekranda 3 satıra kadar gösterilir
// ...veya 3 satırlı ekranda 2 satıra kadar
#if LCD_HEIGHT >= 4
// Up to 3 lines allowed
PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_2_LINE("Baskıya devam etmek", "için Butona bas"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Filaman değişimi", "için başlama", "bekleniyor"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Filamanı yükle", "ve devam için", "tuşa bas..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Nozulü Isıtmak için", "Butona Bas."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("Nozul Isınıyor", "Lütfen Bekleyin..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Filamanın çıkması", "bekleniyor"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Filamanın yüklenmesi", "bekleniyor.."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_2_LINE("Filaman Temizlemesi", "için bekle"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_2_LINE("Filaman Temizlemesi", "bitirmek için tıkla"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("Baskının devam ", "etmesi için bekle"));
#else // LCD_HEIGHT < 4
// Up to 2 lines allowed
PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_1_LINE("Sürdürmek İçin Tıkla"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Lütfen bekleyiniz..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Yükle ve bas"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_1_LINE("Isıtmak için Tıkla"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("Isınıyor..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Çıkartılıyor..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Yüklüyor..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_1_LINE("Temizleniyor..."));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_1_LINE("Bitirmek için Tıkla"));
PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Sürdürülüyor..."));
#endif // LCD_HEIGHT < 4
}

View file

@ -30,213 +30,304 @@
*/ */
#define DISPLAY_CHARSET_ISO10646_5 #define DISPLAY_CHARSET_ISO10646_5
#define CHARSIZE 2
#define WELCOME_MSG MACHINE_NAME _UxGT(" готовий.") namespace Language_uk {
#define MSG_MEDIA_INSERTED _UxGT("Картка вставлена") using namespace Language_en; // Inherit undefined strings from English
#define MSG_MEDIA_REMOVED _UxGT("Картка видалена")
#define MSG_LCD_ENDSTOPS _UxGT("Кінцевик") // Max length 8 characters
#define MSG_MAIN _UxGT("Меню")
#define MSG_AUTOSTART _UxGT("Автостарт")
#define MSG_DISABLE_STEPPERS _UxGT("Вимк. двигуни")
#define MSG_AUTO_HOME _UxGT("Авто паркування")
#define MSG_AUTO_HOME_X _UxGT("Паркування X")
#define MSG_AUTO_HOME_Y _UxGT("Паркування Y")
#define MSG_AUTO_HOME_Z _UxGT("Паркування Z")
#define MSG_LEVEL_BED_HOMING _UxGT("Паркування XYZ")
#define MSG_LEVEL_BED_WAITING _UxGT("Почати")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Слідуюча Точка")
#define MSG_LEVEL_BED_DONE _UxGT("Завершено!")
#define MSG_SET_HOME_OFFSETS _UxGT("Зберегти паркув.")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Зміщення застос.")
#define MSG_SET_ORIGIN _UxGT("Встанов. початок")
#define MSG_PREHEAT_1 _UxGT("Нагрів " PREHEAT_1_LABEL)
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ")
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" Все")
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" Стіл")
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" нал.")
#define MSG_PREHEAT_2 _UxGT("Нагрів " PREHEAT_2_LABEL)
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ")
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" Все")
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" Стіл")
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" нал.")
#define MSG_COOLDOWN _UxGT("Охолодження")
#define MSG_SWITCH_PS_ON _UxGT("Увімкнути живлення")
#define MSG_SWITCH_PS_OFF _UxGT("Вимкнути живлення")
#define MSG_EXTRUDE _UxGT("Екструзія")
#define MSG_RETRACT _UxGT("Втягування")
#define MSG_MOVE_AXIS _UxGT("Рух по осям")
#define MSG_BED_LEVELING _UxGT("Нівелювання столу")
#define MSG_LEVEL_BED _UxGT("Нівелювання столу")
#define MSG_MOVE_X _UxGT("Рух по X")
#define MSG_MOVE_Y _UxGT("Рух по Y")
#define MSG_MOVE_Z _UxGT("Рух по Z")
#define MSG_MOVE_E _UxGT("Екструдер")
#define MSG_MOVE_Z_DIST _UxGT("Рух по %smm")
#define MSG_MOVE_01MM _UxGT("Рух по 0.1mm")
#define MSG_MOVE_1MM _UxGT("Рух по 1mm")
#define MSG_MOVE_10MM _UxGT("Рух по 10mm")
#define MSG_SPEED _UxGT("Швидкість")
#define MSG_BED_Z _UxGT("Z Столу")
#define MSG_NOZZLE _UxGT("Сопло")
#define MSG_BED _UxGT("Стіл")
#define MSG_FAN_SPEED _UxGT("Охолодж.")
#define MSG_FLOW _UxGT("Потік")
#define MSG_CONTROL _UxGT("Налаштування")
#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Мін")
#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Макс")
#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Факт")
#define MSG_AUTOTEMP _UxGT("Автотемпер.")
#define MSG_LCD_ON _UxGT("Увімк.")
#define MSG_LCD_OFF _UxGT("Вимк.")
#define MSG_PID_P _UxGT("PID-P")
#define MSG_PID_I _UxGT("PID-I")
#define MSG_PID_D _UxGT("PID-D")
#define MSG_PID_C _UxGT("PID-C")
#define MSG_SELECT _UxGT("Вибрати")
#define MSG_ACC _UxGT("Приск.")
#define MSG_JERK _UxGT("Ривок")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-ривок")
#define MSG_VB_JERK _UxGT("Vb-ривок")
#define MSG_VC_JERK _UxGT("Vc-ривок")
#else
#define MSG_VA_JERK _UxGT("Vx-ривок")
#define MSG_VB_JERK _UxGT("Vy-ривок")
#define MSG_VC_JERK _UxGT("Vz-ривок")
#endif
#define MSG_VE_JERK _UxGT("Ve-ривок")
#define MSG_VMAX _UxGT("Vмакс")
#define MSG_VMIN _UxGT("Vмін")
#define MSG_VTRAV_MIN _UxGT("Vруху мін")
#define MSG_AMAX _UxGT("Aмакс ")
#define MSG_A_RETRACT _UxGT("A-втягув.")
#define MSG_A_TRAVEL _UxGT("A-руху")
#define MSG_STEPS_PER_MM _UxGT("Кроків/мм")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("Aкроків/мм")
#define MSG_BSTEPS _UxGT("Bкроків/мм")
#define MSG_CSTEPS _UxGT("Cкроків/мм")
#else
#define MSG_ASTEPS _UxGT("Xкроків/мм")
#define MSG_BSTEPS _UxGT("Yкроків/мм")
#define MSG_CSTEPS _UxGT("Zкроків/мм")
#endif
#define MSG_ESTEPS _UxGT("Eкроків/мм")
#define MSG_E0_STEPS _UxGT("E1кроків/мм")
#define MSG_E1_STEPS _UxGT("E2кроків/мм")
#define MSG_E2_STEPS _UxGT("E3кроків/мм")
#define MSG_E3_STEPS _UxGT("E4кроків/мм")
#define MSG_E4_STEPS _UxGT("E5кроків/мм")
#define MSG_E5_STEPS _UxGT("E6кроків/мм")
#define MSG_TEMPERATURE _UxGT("Температура")
#define MSG_MOTION _UxGT("Рух")
#define MSG_FILAMENT _UxGT("Волокно")
#define MSG_VOLUMETRIC_ENABLED _UxGT("E в мм3")
#define MSG_FILAMENT_DIAM _UxGT("Діам. волок.")
#define MSG_CONTRAST _UxGT("контраст LCD")
#define MSG_STORE_EEPROM _UxGT("Зберегти в ПЗП")
#define MSG_LOAD_EEPROM _UxGT("Зчитати з ПЗП")
#define MSG_RESTORE_FAILSAFE _UxGT("Відновити базові")
#define MSG_REFRESH _UxGT("Поновити")
#define MSG_WATCH _UxGT("Інформація")
#define MSG_PREPARE _UxGT("Підготувати")
#define MSG_TUNE _UxGT("Підлаштування")
#define MSG_PAUSE_PRINT _UxGT("Призупинити друк")
#define MSG_RESUME_PRINT _UxGT("Відновити друк")
#define MSG_STOP_PRINT _UxGT("Скасувати друк")
#define MSG_MEDIA_MENU _UxGT("Друкувати з SD")
#define MSG_NO_MEDIA _UxGT("Відсутня SD карт.")
#define MSG_DWELL _UxGT("Сплячка...")
#define MSG_USERWAIT _UxGT("Очікування дій...")
#define MSG_PRINT_ABORTED _UxGT("Друк скасовано")
#define MSG_NO_MOVE _UxGT("Немає руху.")
#define MSG_KILLED _UxGT("ПЕРЕРВАНО. ")
#define MSG_STOPPED _UxGT("ЗУПИНЕНО. ")
#define MSG_FILAMENTCHANGE _UxGT("Зміна волокна")
#define MSG_INIT_MEDIA _UxGT("Старт SD картки")
#define MSG_CHANGE_MEDIA _UxGT("Заміна SD карти")
#define MSG_ZPROBE_OUT _UxGT("Z дет. не в межах")
#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch Само-Тест")
#define MSG_BLTOUCH_RESET _UxGT("Скинути BLTouch")
#define MSG_HOME_FIRST _UxGT("Дім %s%s%s перший")
#define MSG_ZPROBE_ZOFFSET _UxGT("Зміщення Z")
#define MSG_BABYSTEP_X _UxGT("Мікрокрок X")
#define MSG_BABYSTEP_Y _UxGT("Мікрокрок Y")
#define MSG_BABYSTEP_Z _UxGT("Мікрокрок Z")
#define MSG_ENDSTOP_ABORT _UxGT("невдача кінцевика")
#define MSG_HEATING_FAILED_LCD _UxGT("Невдалий нагрів")
#define MSG_THERMAL_RUNAWAY _UxGT("ЗБІЙ ТЕМПЕРАТУРИ")
#define MSG_ERR_Z_HOMING _UxGT("Дім XY перший")
#define MSG_HALTED _UxGT("ПРИНТЕР ЗУПИНЕНО")
#define MSG_PLEASE_RESET _UxGT("Перезавантажте")
#define MSG_SHORT_DAY _UxGT("д") // One character only
#define MSG_SHORT_HOUR _UxGT("г") // One character only
#define MSG_SHORT_MINUTE _UxGT("х") // One character only
#define MSG_HEATING _UxGT("Нагрівання...")
#define MSG_BED_HEATING _UxGT("Нагрівання столу...")
#define MSG_DELTA_CALIBRATE _UxGT("Калібр. Delta")
#define MSG_DELTA_CALIBRATE_X _UxGT("Калібрування X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Калібрування Y")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Калібрування Z")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Калібр. Центру")
#define MSG_INFO_MENU _UxGT("Про принтер") constexpr uint8_t CHARSIZE = 2;
#define MSG_INFO_PRINTER_MENU _UxGT("Інформація") PROGMEM Language_Str LANGUAGE = _UxGT("Ukranian");
#define MSG_INFO_STATS_MENU _UxGT("Статистика")
#define MSG_INFO_BOARD_MENU _UxGT("Про плату")
#define MSG_INFO_THERMISTOR_MENU _UxGT("Термістори")
#define MSG_INFO_EXTRUDERS _UxGT("Екструдери")
#define MSG_INFO_BAUDRATE _UxGT("біт/с")
#define MSG_INFO_PROTOCOL _UxGT("Протокол")
#define MSG_CASE_LIGHT _UxGT("Підсвітка")
#define MSG_EXPECTED_PRINTER _UxGT("Неправильний принтер") PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" готовий.");
PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Картка вставлена");
PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Картка видалена");
PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Кінцевик"); // Max length 8 characters
PROGMEM Language_Str MSG_MAIN = _UxGT("Меню");
PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Автостарт");
PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Вимк. двигуни");
PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Авто паркування");
PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Паркування X");
PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Паркування Y");
PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Паркування Z");
PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Паркування XYZ");
PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Почати");
PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Слідуюча Точка");
PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Завершено!");
PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Зберегти паркув.");
PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Зміщення застос.");
PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Встанов. початок");
PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Нагрів ") PREHEAT_1_LABEL;
PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Нагрів ") PREHEAT_1_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Нагрів ") PREHEAT_1_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Нагрів ") PREHEAT_1_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Нагрів ") PREHEAT_1_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Нагрів ") PREHEAT_1_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Нагрів ") PREHEAT_1_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Нагрів ") PREHEAT_1_LABEL _UxGT(" Сопло");
PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Нагрів ") PREHEAT_1_LABEL _UxGT(" Сопло ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Нагрів ") PREHEAT_1_LABEL _UxGT(" Сопло ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Нагрів ") PREHEAT_1_LABEL _UxGT(" Сопло ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Нагрів ") PREHEAT_1_LABEL _UxGT(" Сопло ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Нагрів ") PREHEAT_1_LABEL _UxGT(" Сопло ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Нагрів ") PREHEAT_1_LABEL _UxGT(" Сопло ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Нагрів ") PREHEAT_1_LABEL _UxGT(" Все");
PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Нагрів ") PREHEAT_1_LABEL _UxGT(" Стіл");
PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Нагрів ") PREHEAT_1_LABEL _UxGT(" нал.");
PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Нагрів ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Нагрів ") PREHEAT_2_LABEL " " LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Нагрів ") PREHEAT_2_LABEL " " LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Нагрів ") PREHEAT_2_LABEL " " LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Нагрів ") PREHEAT_2_LABEL " " LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Нагрів ") PREHEAT_2_LABEL " " LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Нагрів ") PREHEAT_2_LABEL " " LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Нагрів ") PREHEAT_2_LABEL _UxGT(" Сопло");
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Нагрів ") PREHEAT_2_LABEL _UxGT(" Сопло ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Нагрів ") PREHEAT_2_LABEL _UxGT(" Сопло ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Нагрів ") PREHEAT_2_LABEL _UxGT(" Сопло ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Нагрів ") PREHEAT_2_LABEL _UxGT(" Сопло ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Нагрів ") PREHEAT_2_LABEL _UxGT(" Сопло ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Нагрів ") PREHEAT_2_LABEL _UxGT(" Сопло ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Нагрів ") PREHEAT_2_LABEL _UxGT(" Все");
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Нагрів ") PREHEAT_2_LABEL _UxGT(" Стіл");
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Нагрів ") PREHEAT_2_LABEL _UxGT(" нал.");
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Охолодження");
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Увімкнути живлення");
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Вимкнути живлення");
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Екструзія");
PROGMEM Language_Str MSG_RETRACT = _UxGT("Втягування");
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Рух по осям");
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Нівелювання столу");
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Нівелювання столу");
PROGMEM Language_Str MSG_MOVE_X = _UxGT("Рух по X");
PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Рух по Y");
PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Рух по Z");
PROGMEM Language_Str MSG_MOVE_E = _UxGT("Екструдер");
PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Екструдер ") LCD_STR_E0;
PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Екструдер ") LCD_STR_E1;
PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Екструдер ") LCD_STR_E2;
PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Екструдер ") LCD_STR_E3;
PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Екструдер ") LCD_STR_E4;
PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Екструдер ") LCD_STR_E5;
PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Рух по %smm");
PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Рух по 0.1mm");
PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Рух по 1mm");
PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Рух по 10mm");
PROGMEM Language_Str MSG_SPEED = _UxGT("Швидкість");
PROGMEM Language_Str MSG_BED_Z = _UxGT("Z Столу");
PROGMEM Language_Str MSG_NOZZLE = _UxGT("Сопло");
PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Сопло ") LCD_STR_N0;
PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Сопло ") LCD_STR_N1;
PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Сопло ") LCD_STR_N2;
PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Сопло ") LCD_STR_N3;
PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Сопло ") LCD_STR_N4;
PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Сопло ") LCD_STR_N5;
PROGMEM Language_Str MSG_BED = _UxGT("Стіл");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Охолодж.");
PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Охолодж. 1");
PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Охолодж. 2");
PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Охолодж. 3");
PROGMEM Language_Str MSG_FLOW = _UxGT("Потік");
PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Потік ") LCD_STR_N0;
PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Потік ") LCD_STR_N1;
PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Потік ") LCD_STR_N2;
PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Потік ") LCD_STR_N3;
PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Потік ") LCD_STR_N4;
PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Потік ") LCD_STR_N5;
PROGMEM Language_Str MSG_CONTROL = _UxGT("Налаштування");
PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" Мін");
PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" Макс");
PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Факт");
PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Автотемпер.");
PROGMEM Language_Str MSG_LCD_ON = _UxGT("Увімк.");
PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Вимк.");
PROGMEM Language_Str MSG_PID_P = _UxGT("PID-P");
PROGMEM Language_Str MSG_PID_P_E0 = _UxGT("PID-P ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_P_E1 = _UxGT("PID-P ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_P_E2 = _UxGT("PID-P ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_P_E3 = _UxGT("PID-P ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_P_E4 = _UxGT("PID-P ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_P_E5 = _UxGT("PID-P ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_I = _UxGT("PID-I");
PROGMEM Language_Str MSG_PID_I_E0 = _UxGT("PID-I ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_I_E1 = _UxGT("PID-I ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_I_E2 = _UxGT("PID-I ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_I_E3 = _UxGT("PID-I ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_I_E4 = _UxGT("PID-I ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_I_E5 = _UxGT("PID-I ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_D = _UxGT("PID-D");
PROGMEM Language_Str MSG_PID_D_E0 = _UxGT("PID-D ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_D_E1 = _UxGT("PID-D ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_D_E2 = _UxGT("PID-D ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_D_E3 = _UxGT("PID-D ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_D_E4 = _UxGT("PID-D ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_D_E5 = _UxGT("PID-D ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_C = _UxGT("PID-C");
PROGMEM Language_Str MSG_PID_C_E0 = _UxGT("PID-C ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_C_E1 = _UxGT("PID-C ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_C_E2 = _UxGT("PID-C ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_C_E3 = _UxGT("PID-C ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_C_E4 = _UxGT("PID-C ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_C_E5 = _UxGT("PID-C ") LCD_STR_E5;
PROGMEM Language_Str MSG_SELECT = _UxGT("Вибрати");
PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("Вибрати ") LCD_STR_E0;
PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("Вибрати ") LCD_STR_E1;
PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("Вибрати ") LCD_STR_E2;
PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("Вибрати ") LCD_STR_E3;
PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("Вибрати ") LCD_STR_E4;
PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("Вибрати ") LCD_STR_E5;
PROGMEM Language_Str MSG_ACC = _UxGT("Приск.");
PROGMEM Language_Str MSG_JERK = _UxGT("Ривок");
PROGMEM Language_Str MSG_VA_JERK = _UxGT("V") LCD_STR_A _UxGT("-ривок");
PROGMEM Language_Str MSG_VB_JERK = _UxGT("V") LCD_STR_B _UxGT("-ривок");
PROGMEM Language_Str MSG_VC_JERK = _UxGT("V") LCD_STR_C _UxGT("-ривок");
PROGMEM Language_Str MSG_VE_JERK = _UxGT("Ve-ривок");
PROGMEM Language_Str MSG_VMAX_A = _UxGT("акс") LCD_STR_A;
PROGMEM Language_Str MSG_VMAX_B = _UxGT("акс") LCD_STR_B;
PROGMEM Language_Str MSG_VMAX_C = _UxGT("акс") LCD_STR_C;
PROGMEM Language_Str MSG_VMAX_E = _UxGT("акс") LCD_STR_E;
PROGMEM Language_Str MSG_VMAX_E0 = _UxGT("акс ") LCD_STR_E0;
PROGMEM Language_Str MSG_VMAX_E1 = _UxGT("акс ") LCD_STR_E1;
PROGMEM Language_Str MSG_VMAX_E2 = _UxGT("акс ") LCD_STR_E2;
PROGMEM Language_Str MSG_VMAX_E3 = _UxGT("акс ") LCD_STR_E3;
PROGMEM Language_Str MSG_VMAX_E4 = _UxGT("акс ") LCD_STR_E4;
PROGMEM Language_Str MSG_VMAX_E5 = _UxGT("акс ") LCD_STR_E5;
PROGMEM Language_Str MSG_VMIN = _UxGT("ін");
PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("Vруху мін");
PROGMEM Language_Str MSG_AMAX_A = _UxGT("акс ") LCD_STR_A;
PROGMEM Language_Str MSG_AMAX_B = _UxGT("акс ") LCD_STR_B;
PROGMEM Language_Str MSG_AMAX_C = _UxGT("акс ") LCD_STR_C;
PROGMEM Language_Str MSG_AMAX_E = _UxGT("акс ") LCD_STR_E;
PROGMEM Language_Str MSG_AMAX_E0 = _UxGT("акс ") LCD_STR_E0;
PROGMEM Language_Str MSG_AMAX_E1 = _UxGT("акс ") LCD_STR_E1;
PROGMEM Language_Str MSG_AMAX_E2 = _UxGT("акс ") LCD_STR_E2;
PROGMEM Language_Str MSG_AMAX_E3 = _UxGT("акс ") LCD_STR_E3;
PROGMEM Language_Str MSG_AMAX_E4 = _UxGT("акс ") LCD_STR_E4;
PROGMEM Language_Str MSG_AMAX_E5 = _UxGT("акс ") LCD_STR_E5;
PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-втягув.");
PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A-руху");
PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Кроків/мм");
PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("кроків/мм");
PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("кроків/мм");
PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("кроків/мм");
PROGMEM Language_Str MSG_E_STEPS = _UxGT("років/мм");
PROGMEM Language_Str MSG_E0_STEPS = LCD_STR_E0 _UxGT("кроків/мм");
PROGMEM Language_Str MSG_E1_STEPS = LCD_STR_E1 _UxGT("кроків/мм");
PROGMEM Language_Str MSG_E2_STEPS = LCD_STR_E2 _UxGT("кроків/мм");
PROGMEM Language_Str MSG_E3_STEPS = LCD_STR_E3 _UxGT("кроків/мм");
PROGMEM Language_Str MSG_E4_STEPS = LCD_STR_E4 _UxGT("кроків/мм");
PROGMEM Language_Str MSG_E5_STEPS = LCD_STR_E5 _UxGT("кроків/мм");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Температура");
PROGMEM Language_Str MSG_MOTION = _UxGT("Рух");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Волокно");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E в мм3");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Діам. волок.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Діам. волок. ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Діам. волок. ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Діам. волок. ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Діам. волок. ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Діам. волок. ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Діам. волок. ") LCD_STR_E5;
PROGMEM Language_Str MSG_CONTRAST = _UxGT("контраст LCD");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Зберегти в ПЗП");
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Зчитати з ПЗП");
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Відновити базові");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Поновити");
PROGMEM Language_Str MSG_WATCH = _UxGT("Інформація");
PROGMEM Language_Str MSG_PREPARE = _UxGT("Підготувати");
PROGMEM Language_Str MSG_TUNE = _UxGT("Підлаштування");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Призупинити друк");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Відновити друк");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Скасувати друк");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Друкувати з SD");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("Відсутня SD карт.");
PROGMEM Language_Str MSG_DWELL = _UxGT("Сплячка...");
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Очікування дій...");
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Друк скасовано");
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Немає руху.");
PROGMEM Language_Str MSG_KILLED = _UxGT("ПЕРЕРВАНО. ");
PROGMEM Language_Str MSG_STOPPED = _UxGT("ЗУПИНЕНО. ");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Зміна волокна");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Зміна волокна ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Зміна волокна ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Зміна волокна ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Зміна волокна ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Зміна волокна ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Зміна волокна ") LCD_STR_E5;
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Старт SD картки");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Заміна SD карти");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z дет. не в межах");
PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("BLTouch Само-Тест");
PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("Скинути BLTouch");
PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("Дім %s%s%s перший");
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Зміщення Z");
PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Мікрокрок X");
PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Мікрокрок Y");
PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Мікрокрок Z");
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("невдача кінцевика");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Невдалий нагрів");
PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("ЗБІЙ ТЕМПЕРАТУРИ");
PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("Дім XY перший");
PROGMEM Language_Str MSG_HALTED = _UxGT("ПРИНТЕР ЗУПИНЕНО");
PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Перезавантажте");
PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("д"); // One character only
PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("г"); // One character only
PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("х"); // One character only
PROGMEM Language_Str MSG_HEATING = _UxGT("Нагрівання...");
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Нагрівання столу...");
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Калібр. Delta");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Калібрування X");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Калібрування Y");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Калібрування Z");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Калібр. Центру");
#if LCD_WIDTH >= 20 PROGMEM Language_Str MSG_INFO_MENU = _UxGT("Про принтер");
#define MSG_INFO_PRINT_COUNT _UxGT("К-сть друків") PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Інформація");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Завершено") PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Статистика");
#define MSG_INFO_PRINT_TIME _UxGT("Весь час друку") PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Про плату");
#define MSG_INFO_PRINT_LONGEST _UxGT("Найдовший час") PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Термістори");
#define MSG_INFO_PRINT_FILAMENT _UxGT("Екструдовано") PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Екструдери");
#else PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("біт/с");
#define MSG_INFO_PRINT_COUNT _UxGT("Друків") PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Протокол");
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Завершено") PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Підсвітка");
#define MSG_INFO_PRINT_TIME _UxGT("Загалом")
#define MSG_INFO_PRINT_LONGEST _UxGT("Найдовший")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Ексдруд.")
#endif
#define MSG_INFO_MIN_TEMP _UxGT("Мін Темп.") PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Неправильний принтер");
#define MSG_INFO_MAX_TEMP _UxGT("Макс Темп.")
#define MSG_INFO_PSU _UxGT("Джерело жив.")
#define MSG_DRIVE_STRENGTH _UxGT("Сила мотору") #if LCD_WIDTH >= 20
#define MSG_DAC_PERCENT _UxGT("% мотору") PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("К-сть друків");
#define MSG_DAC_EEPROM_WRITE _UxGT("Запис ЦАП на ПЗП") PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Завершено");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Весь час друку");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Найдовший час");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Екструдовано");
#else
PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Друків");
PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Завершено");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Загалом");
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Найдовший");
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Ексдруд.");
#endif
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Відновити друк") PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Мін Темп.");
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Макс Темп.");
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Джерело жив.");
#if LCD_HEIGHT >= 4 PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Сила мотору");
// Up to 3 lines allowed PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("% мотору");
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Зачекайте на") PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Запис ЦАП на ПЗП");
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("початок заміни")
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("волокна") PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Відновити друк");
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Зачекайте на")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("вивід волокна") #if LCD_HEIGHT >= 4
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Вставте волокно") // Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("та натисніть для") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Зачекайте на", "початок заміни", "волокна"));
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("продовження...") PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Зачекайте на", "вивід волокна"));
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Зачекайте на") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Вставте волокно", "та натисніть для", "продовження..."));
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("ввід волокна") PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Зачекайте на", "ввід волокна"));
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Зачекайте на") PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_3_LINE("Зачекайте на", "відновлення", "друку"));
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("відновлення") #else
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("друку") // Up to 2 lines allowed
#else // LCD_HEIGHT < 4 PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Зачекайте..."));
// Up to 2 lines allowed PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Вивід..."));
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Зачекайте...") PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Вставте і нат."));
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Вивід...") PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Ввід..."));
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Вставте і нат.") PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Відновлення..."));
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Ввід...") #endif
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Відновлення...") }
#endif // LCD_HEIGHT < 4

View file

@ -28,410 +28,518 @@
* See also http://marlinfw.org/docs/development/lcd_language.html * See also http://marlinfw.org/docs/development/lcd_language.html
* *
*/ */
namespace Language_vi {
using namespace Language_en; // Inherit undefined strings from English
#define CHARSIZE 2 constexpr uint8_t CHARSIZE = 2;
PROGMEM Language_Str LANGUAGE = _UxGT("Vietnamese");
#define THIS_LANGUAGES_SPECIAL_SYMBOLS _UxGT("àạậẵắấầđẻểếềìỉởộỗợúự") PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" Sẵn sàng."); // Ready
PROGMEM Language_Str MSG_BACK = _UxGT("Trở lại"); // Back
PROGMEM Language_Str MSG_SD_INSERTED = _UxGT("Thẻ được cắm vào"); // Card inserted
PROGMEM Language_Str MSG_SD_REMOVED = _UxGT("Thẻ được rút ra");
PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Công tắc"); // Endstops - công tắc hành trình
PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("Công tắc mềm"); // soft Endstops
PROGMEM Language_Str MSG_MAIN = _UxGT("Chính"); // Main
PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("Thiết lập cấp cao"); // Advanced Settings
PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("Cấu hình"); // Configuration
PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Khởi chạy tự động"); // Autostart
PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Tắt động cơ bước"); // Disable steppers
PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("Menu gỡ lỗi"); // Debug Menu
PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Kiểm tra tiến độ"); // Progress bar test
PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Về nhà tự động"); // Auto home
PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Về nhà X"); // home x
PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Về nhà Y"); // home y
PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Về nhà Z");
PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("Chỉnh canh Z tự động");
PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Đang về nhà XYZ"); // Homing XYZ
PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Nhấn để bắt đầu"); // Click to Begin
PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Điểm tiếp theo"); // Next Point
PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("San lấp được hoàn thành"); // Leveling Done!
PROGMEM Language_Str MSG_Z_FADE_HEIGHT = _UxGT("Chiều cao mờ dần"); // Fade Height
PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Đặt bù đắp nhà"); // Set home offsets
PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Bù đắp được áp dụng"); // Offsets applied
PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Đặt nguồn gốc"); // Set origin
PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Làm nóng ") PREHEAT_1_LABEL _UxGT(" trước"); // Preheat
PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Làm nóng ") PREHEAT_1_LABEL _UxGT(" trước ") LCD_STR_N0; // Preheat
PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Làm nóng ") PREHEAT_1_LABEL _UxGT(" trước ") LCD_STR_N1; // Preheat
PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Làm nóng ") PREHEAT_1_LABEL _UxGT(" trước ") LCD_STR_N2; // Preheat
PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Làm nóng ") PREHEAT_1_LABEL _UxGT(" trước ") LCD_STR_N3; // Preheat
PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Làm nóng ") PREHEAT_1_LABEL _UxGT(" trước ") LCD_STR_N4; // Preheat
PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Làm nóng ") PREHEAT_1_LABEL _UxGT(" trước ") LCD_STR_N5; // Preheat
PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Làm nóng ") PREHEAT_1_LABEL _UxGT(" Đầu");
PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Làm nóng ") PREHEAT_1_LABEL _UxGT(" Đầu ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Làm nóng ") PREHEAT_1_LABEL _UxGT(" Đầu ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Làm nóng ") PREHEAT_1_LABEL _UxGT(" Đầu ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Làm nóng ") PREHEAT_1_LABEL _UxGT(" Đầu ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Làm nóng ") PREHEAT_1_LABEL _UxGT(" Đầu ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Làm nóng ") PREHEAT_1_LABEL _UxGT(" Đầu ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Làm nóng ") PREHEAT_1_LABEL _UxGT(" Tất cả"); // all
PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Làm nóng ") PREHEAT_1_LABEL _UxGT(" Bàn"); // bed -- using vietnamese term for 'table' instead
PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Làm nóng ") PREHEAT_1_LABEL _UxGT(" Cấu hình"); // conf
PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Làm nóng ") PREHEAT_2_LABEL _UxGT(" trước"); // Preheat
PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Làm nóng ") PREHEAT_2_LABEL _UxGT(" trước ") LCD_STR_N0; // Preheat
PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Làm nóng ") PREHEAT_2_LABEL _UxGT(" trước ") LCD_STR_N1; // Preheat
PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Làm nóng ") PREHEAT_2_LABEL _UxGT(" trước ") LCD_STR_N2; // Preheat
PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Làm nóng ") PREHEAT_2_LABEL _UxGT(" trước ") LCD_STR_N3; // Preheat
PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Làm nóng ") PREHEAT_2_LABEL _UxGT(" trước ") LCD_STR_N4; // Preheat
PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Làm nóng ") PREHEAT_2_LABEL _UxGT(" trước ") LCD_STR_N5; // Preheat
PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Làm nóng ") PREHEAT_2_LABEL _UxGT(" Đầu");
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Làm nóng ") PREHEAT_2_LABEL _UxGT(" Đầu ") LCD_STR_N0;
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Làm nóng ") PREHEAT_2_LABEL _UxGT(" Đầu ") LCD_STR_N1;
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Làm nóng ") PREHEAT_2_LABEL _UxGT(" Đầu ") LCD_STR_N2;
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Làm nóng ") PREHEAT_2_LABEL _UxGT(" Đầu ") LCD_STR_N3;
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Làm nóng ") PREHEAT_2_LABEL _UxGT(" Đầu ") LCD_STR_N4;
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Làm nóng ") PREHEAT_2_LABEL _UxGT(" Đầu ") LCD_STR_N5;
PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Làm nóng ") PREHEAT_2_LABEL _UxGT(" Tất cả"); // all
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Làm nóng ") PREHEAT_2_LABEL _UxGT(" Bàn"); // bed -- using vietnamese term for 'table' instead
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Làm nóng ") PREHEAT_2_LABEL _UxGT(" Cấu hình"); // conf
PROGMEM Language_Str MSG_PREHEAT_CUSTOM = _UxGT("Sự nóng trước tự chọn"); // Preheat Custom
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Nguội xuống"); // Cooldown
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Bật nguồn"); // Switch power on
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Tắt nguồn"); // Switch power off
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Ép đùn"); // Extrude
PROGMEM Language_Str MSG_RETRACT = _UxGT("Rút lại"); // Retract
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Di chuyển trục"); // Move axis
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("San Lấp Bàn"); // Bed Leveling
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Làm bằng mặt bàn"); // Level bed
PROGMEM Language_Str MSG_LEVEL_CORNERS = _UxGT("Làm bằng góc bàn"); // Level corners
PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("Góc tiếp theo"); // Next corner
PROGMEM Language_Str MSG_EDITING_STOPPED = _UxGT("Chỉnh lưới đã dừng"); // Mesh Editing Stopped
PROGMEM Language_Str MSG_MESH_X = _UxGT("Mục lục X"); // Index X
PROGMEM Language_Str MSG_MESH_Y = _UxGT("Mục lục Y");
PROGMEM Language_Str MSG_MESH_EDIT_Z = _UxGT("Giá trị Z"); // Z Value
PROGMEM Language_Str MSG_USER_MENU = _UxGT("Các lệnh tự chọn"); // Custom Commands
PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("Đang chạy G29"); // Doing G29
PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("Công cụ UBL"); // UBL tools
PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("San Lấp Bàn Thống Nhất (UBL)"); // Unified Bed Leveling
PROGMEM Language_Str MSG_IDEX_MENU = _UxGT("chế độ IDEX"); // IDEX Mode
PROGMEM Language_Str MSG_IDEX_MODE_AUTOPARK = _UxGT("Đậu tự động"); // Auto-Park
PROGMEM Language_Str MSG_IDEX_MODE_DUPLICATE = _UxGT("Sự gấp đôi"); // Duplication
PROGMEM Language_Str MSG_IDEX_MODE_SCALED_COPY = _UxGT("Bản sao thu nhỏ");
PROGMEM Language_Str MSG_IDEX_MODE_FULL_CTRL = _UxGT("Toàn quyền điều khiển"); // Full control
PROGMEM Language_Str MSG_IDEX_X_OFFSET = _UxGT("Đầu phun X nhì"); // 2nd nozzle X
PROGMEM Language_Str MSG_IDEX_Y_OFFSET = _UxGT("Đầu phun Y nhì");
PROGMEM Language_Str MSG_IDEX_Z_OFFSET = _UxGT("Đầu phun Z nhì");
PROGMEM Language_Str MSG_IDEX_SAVE_OFFSETS = _UxGT("Lưu bù đắp"); // Save offsets
PROGMEM Language_Str MSG_UBL_MANUAL_MESH = _UxGT("Tự xây dựng lưới"); // Manually Build Mesh
PROGMEM Language_Str MSG_UBL_BC_INSERT = _UxGT("Đặt chêm và đo"); // Place shim & measure
PROGMEM Language_Str MSG_UBL_BC_INSERT2 = _UxGT("Đo"); // Measure
PROGMEM Language_Str MSG_UBL_BC_REMOVE = _UxGT("Tháo và đo bàn"); // Remove & measure bed
PROGMEM Language_Str MSG_UBL_MOVING_TO_NEXT = _UxGT("Chuyển sang tiếp theo"); // moving to next
PROGMEM Language_Str MSG_UBL_ACTIVATE_MESH = _UxGT("Bật UBL");
PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("Tắt UBL");
PROGMEM Language_Str MSG_UBL_SET_TEMP_BED = _UxGT("Nhiệt độ bàn"); // Bed Temp
PROGMEM Language_Str MSG_UBL_BED_TEMP_CUSTOM = _UxGT("Bed Temp");
PROGMEM Language_Str MSG_UBL_SET_TEMP_HOTEND = _UxGT("Nhiệt độ đầu phun"); // Hotend Temp
PROGMEM Language_Str MSG_UBL_HOTEND_TEMP_CUSTOM = _UxGT("Hotend Temp");
PROGMEM Language_Str MSG_UBL_MESH_EDIT = _UxGT("Chỉnh sửa lưới"); // Mesh Edit
PROGMEM Language_Str MSG_UBL_EDIT_CUSTOM_MESH = _UxGT("Chỉnh sửa lưới tự chọn"); // Edit Custom Mesh
PROGMEM Language_Str MSG_UBL_FINE_TUNE_MESH = _UxGT("Chỉnh lưới chính xác"); // Fine tuning mesh
PROGMEM Language_Str MSG_UBL_DONE_EDITING_MESH = _UxGT("Chỉnh sửa xong lưới"); // Done Editing Mesh
PROGMEM Language_Str MSG_UBL_BUILD_CUSTOM_MESH = _UxGT("Xây dựng lưới tự chọn"); // Build Custom Mesh
PROGMEM Language_Str MSG_UBL_BUILD_MESH_MENU = _UxGT("Xây dựng lưới"); // Build Mesh
PROGMEM Language_Str MSG_UBL_BUILD_MESH_M1 = _UxGT("Xây dựng lưới (") PREHEAT_1_LABEL _UxGT(")");
PROGMEM Language_Str MSG_UBL_BUILD_MESH_M2 = _UxGT("Xây dựng lưới (") PREHEAT_2_LABEL _UxGT(")");
PROGMEM Language_Str MSG_UBL_BUILD_COLD_MESH = _UxGT("Xây dựng lưới lạnh"); // Build cold mesh
PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_ADJUST = _UxGT("Điều chỉnh chiều cao lưới"); // Adjust Mesh Height
PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_AMOUNT = _UxGT("Số lượng chiều cao"); // Height Amount
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_MENU = _UxGT("Thẩm tra lưới"); // Validate Mesh
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M1 = _UxGT("Thẩm tra lưới (") PREHEAT_1_LABEL _UxGT(")");
PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M2 = _UxGT("Thẩm tra lưới (") PREHEAT_2_LABEL _UxGT(")");
PROGMEM Language_Str MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("Thẩm tra lưới tự chọn"); // validate custom mesh
PROGMEM Language_Str MSG_UBL_CONTINUE_MESH = _UxGT("Tiếp tục xây lưới bàn"); // Continue Bed Mesh
PROGMEM Language_Str MSG_UBL_MESH_LEVELING = _UxGT("Đang san lấp lưới"); // Mesh Leveling
PROGMEM Language_Str MSG_UBL_3POINT_MESH_LEVELING = _UxGT("Đang san lấp 3-điểm"); // 3-Point Leveling
PROGMEM Language_Str MSG_UBL_GRID_MESH_LEVELING = _UxGT("Đang san lấp lưới phẳng"); // Grid (planar) Mesh Leveling
PROGMEM Language_Str MSG_UBL_MESH_LEVEL = _UxGT("Làm bằng lưới"); // Level Mesh
PROGMEM Language_Str MSG_UBL_SIDE_POINTS = _UxGT("Điểm bên cạnh"); // Side Points
PROGMEM Language_Str MSG_UBL_MAP_TYPE = _UxGT("Loại bản đồ"); // Map Type
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP = _UxGT("Đầu ra bản đồ lưới"); // Output Mesh Map
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_HOST = _UxGT("Đầu ra cho máy chủ"); // Output for Host
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_CSV = _UxGT("Đầu ra cho CSV"); // Output for CSV
PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_BACKUP = _UxGT("Hỗ trợ lưới"); // Off Printer Backup | backup mesh
PROGMEM Language_Str MSG_UBL_INFO_UBL = _UxGT("Đầu ra thông tin UBL"); // Output UBL Info
PROGMEM Language_Str MSG_EDIT_MESH = _UxGT("Chỉnh sửa lưới"); // Edit mesh
PROGMEM Language_Str MSG_UBL_FILLIN_AMOUNT = _UxGT("Số lượng lấp đầy"); // Fill-in Amount
PROGMEM Language_Str MSG_UBL_MANUAL_FILLIN = _UxGT("Tự lấp đầy"); // Manual Fill-in
PROGMEM Language_Str MSG_UBL_SMART_FILLIN = _UxGT("Lấp đầy thông minh"); // Smart Fill-in
PROGMEM Language_Str MSG_UBL_FILLIN_MESH = _UxGT("Lưới lấp đầy"); // Fill-in Mesh
PROGMEM Language_Str MSG_UBL_INVALIDATE_ALL = _UxGT("Bác bỏ tất cả"); // Invalidate All
PROGMEM Language_Str MSG_UBL_INVALIDATE_CLOSEST = _UxGT("Bác bỏ gần nhất"); // Invalidate Closest
PROGMEM Language_Str MSG_UBL_FINE_TUNE_ALL = _UxGT("Chỉnh chính xác tất cả"); // Fine Tune ALl
PROGMEM Language_Str MSG_UBL_FINE_TUNE_CLOSEST = _UxGT("Chỉnh chính xác gần nhất"); // Fine Tune Closest
PROGMEM Language_Str MSG_UBL_STORAGE_MESH_MENU = _UxGT("Lưu trữ lưới"); // Mesh Storage
PROGMEM Language_Str MSG_UBL_STORAGE_SLOT = _UxGT("Khe nhớ"); // Memory Slot
PROGMEM Language_Str MSG_UBL_LOAD_MESH = _UxGT("Tải lưới bàn"); // Load Bed Mesh
PROGMEM Language_Str MSG_UBL_SAVE_MESH = _UxGT("Lưu lưới bàn"); // Save Bed Mesh
PROGMEM Language_Str MSG_MESH_LOADED = _UxGT("M117 %i lưới được nạp"); // Mesh %i loaded
PROGMEM Language_Str MSG_MESH_SAVED = _UxGT("M117 %i lưới đã lưu");
PROGMEM Language_Str MSG_NO_STORAGE = _UxGT("Không lưu trữ"); // No Storage
PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("Điều sai: Lưu UBL"); // Err: UBL Save
PROGMEM Language_Str MSG_UBL_RESTORE_ERROR = _UxGT("Điều Sai: Khôi Phục UBL"); // Err: UBL Restore
PROGMEM Language_Str MSG_UBL_Z_OFFSET_STOPPED = _UxGT("Đầu Dò-Z Đã Ngừng"); // Z-Offset Stopped
PROGMEM Language_Str MSG_UBL_STEP_BY_STEP_MENU = _UxGT("Bước-Từng-Bước UBL"); // Step-By-Step UBL
PROGMEM Language_Str MSG_UBL_1_BUILD_COLD_MESH = _UxGT("1.Xây dựng lưới lạnh");
PROGMEM Language_Str MSG_UBL_2_SMART_FILLIN = _UxGT("2.Lấp đầy thông minh");
PROGMEM Language_Str MSG_UBL_3_VALIDATE_MESH_MENU = _UxGT("3.Thẩm tra lưới");
PROGMEM Language_Str MSG_UBL_4_FINE_TUNE_ALL = _UxGT("4.Chỉnh chính xác tất cả");
PROGMEM Language_Str MSG_UBL_5_VALIDATE_MESH_MENU = _UxGT("5.Thẩm tra lưới");
PROGMEM Language_Str MSG_UBL_6_FINE_TUNE_ALL = _UxGT("6.Chỉnh chính xác tất cả");
PROGMEM Language_Str MSG_UBL_7_SAVE_MESH = _UxGT("7.Lưu lưới bàn");
#define WELCOME_MSG MACHINE_NAME _UxGT(" Sẵn sàng.") // Ready PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("Điều khiển LED"); // LED Control
#define MSG_BACK _UxGT("Trở lại") // Back PROGMEM Language_Str MSG_LEDS = _UxGT("Đèn"); // Lights
#define MSG_SD_INSERTED _UxGT("Thẻ được cắm vào") // Card inserted PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("Đèn định sẵn"); // Light Presets
#define MSG_SD_REMOVED _UxGT("Thẻ được rút ra") PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("Đỏ"); // Red
#define MSG_LCD_ENDSTOPS _UxGT("Công tắc") // Endstops - công tắc hành trình PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("Cam"); // Orange
#define MSG_LCD_SOFT_ENDSTOPS _UxGT("Công tắc mềm") // soft Endstops PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("Vàng"); // Yellow
#define MSG_MAIN _UxGT("Chính") // Main PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("Xanh Lá"); // Green
#define MSG_ADVANCED_SETTINGS _UxGT("Thiết lập cấp cao") // Advanced Settings PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("Xanh"); // Blue
#define MSG_CONFIGURATION _UxGT("Cấu hình") // Configuration PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("Xanh Đậm"); // Indigo
#define MSG_AUTOSTART _UxGT("Khởi chạy tự động") // Autostart PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Tím"); // Violet
#define MSG_DISABLE_STEPPERS _UxGT("Tắt động cơ bước") // Disable steppers PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("Trắng"); // White
#define MSG_DEBUG_MENU _UxGT("Menu gỡ lỗi") // Debug Menu PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("Mặc định"); // Default
#define MSG_PROGRESS_BAR_TEST _UxGT("Kiểm tra tiến độ") // Progress bar test PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("Đèn Tự Chọn"); // Custom Lights
#define MSG_AUTO_HOME _UxGT("Về nhà tự động") // Auto home PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Cường Độ Đỏ"); // Red Intensity
#define MSG_AUTO_HOME_X _UxGT("Về nhà X") // home x PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Cường Độ Xanh Lá"); // Green Intensity
#define MSG_AUTO_HOME_Y _UxGT("Về nhà Y") // home y PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("Cường Độ Xanh"); // Blue Intensity
#define MSG_AUTO_HOME_Z _UxGT("Về nhà Z") PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("Cường Độ Trắng"); // White Intensity
#define MSG_AUTO_Z_ALIGN _UxGT("Chỉnh canh Z tự động") PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("độ sáng"); // Brightness
#define MSG_LEVEL_BED_HOMING _UxGT("Đang về nhà XYZ") // Homing XYZ
#define MSG_LEVEL_BED_WAITING _UxGT("Nhấn để bắt đầu") // Click to Begin
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Điểm tiếp theo") // Next Point
#define MSG_LEVEL_BED_DONE _UxGT("San lấp được hoàn thành") // Leveling Done!
#define MSG_Z_FADE_HEIGHT _UxGT("Chiều cao mờ dần") // Fade Height
#define MSG_SET_HOME_OFFSETS _UxGT("Đặt bù đắp nhà") // Set home offsets
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Bù đắp được áp dụng") // Offsets applied
#define MSG_SET_ORIGIN _UxGT("Đặt nguồn gốc") // Set origin
#define MSG_PREHEAT_1 _UxGT("Làm nóng " PREHEAT_1_LABEL " trước") // Preheat
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ")
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" Tất cả") // all
#define MSG_PREHEAT_1_END MSG_PREHEAT_1 _UxGT(" Đầu")
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" Bàn") // bed -- using vietnamese term for 'table' instead
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" Cấu hình") // conf
#define MSG_PREHEAT_2 _UxGT("Làm nóng " PREHEAT_2_LABEL " trước")
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ")
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" Tất cả")
#define MSG_PREHEAT_2_END MSG_PREHEAT_2 _UxGT(" Đầu")
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" Bàn") // bed -- using vietnamese term for 'table' instead
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" Cấu hình")
#define MSG_PREHEAT_CUSTOM _UxGT("Sự nóng trước tự chọn") // Preheat Custom
#define MSG_COOLDOWN _UxGT("Nguội xuống") // Cooldown
#define MSG_SWITCH_PS_ON _UxGT("Bật nguồn") // Switch power on
#define MSG_SWITCH_PS_OFF _UxGT("Tắt nguồn") // Switch power off
#define MSG_EXTRUDE _UxGT("Ép đùn") // Extrude
#define MSG_RETRACT _UxGT("Rút lại") // Retract
#define MSG_MOVE_AXIS _UxGT("Di chuyển trục") // Move axis
#define MSG_BED_LEVELING _UxGT("San Lấp Bàn") // Bed Leveling
#define MSG_LEVEL_BED _UxGT("Làm bằng mặt bàn") // Level bed
#define MSG_LEVEL_CORNERS _UxGT("Làm bằng góc bàn") // Level corners
#define MSG_NEXT_CORNER _UxGT("Góc tiếp theo") // Next corner
#define MSG_EDITING_STOPPED _UxGT("Chỉnh lưới đã dừng") // Mesh Editing Stopped
#define MSG_MESH_X _UxGT("Mục lục X") // Index X
#define MSG_MESH_Y _UxGT("Mục lục Y")
#define MSG_MESH_EDIT_Z _UxGT("Giá trị Z") // Z Value
#define MSG_USER_MENU _UxGT("Các lệnh tự chọn") // Custom Commands
#define MSG_UBL_DOING_G29 _UxGT("Đang chạy G29") // Doing G29
#define MSG_UBL_TOOLS _UxGT("Công cụ UBL") // UBL tools
#define MSG_UBL_LEVEL_BED _UxGT("San Lấp Bàn Thống Nhất (UBL)") // Unified Bed Leveling
#define MSG_IDEX_MENU _UxGT("chế độ IDEX") // IDEX Mode
#define MSG_IDEX_MODE_AUTOPARK _UxGT("Đậu tự động") // Auto-Park
#define MSG_IDEX_MODE_DUPLICATE _UxGT("Sự gấp đôi") // Duplication
#define MSG_IDEX_MODE_SCALED_COPY _UxGT("Bản sao thu nhỏ")
#define MSG_IDEX_MODE_FULL_CTRL _UxGT("Toàn quyền điều khiển") // Full control
#define MSG_IDEX_X_OFFSET _UxGT("Đầu phun X nhì") // 2nd nozzle X
#define MSG_IDEX_Y_OFFSET _UxGT("Đầu phun Y nhì")
#define MSG_IDEX_Z_OFFSET _UxGT("Đầu phun Z nhì")
#define MSG_IDEX_SAVE_OFFSETS _UxGT("Lưu bù đắp") // Save offsets
#define MSG_UBL_MANUAL_MESH _UxGT("Tự xây dựng lưới") // Manually Build Mesh
#define MSG_UBL_BC_INSERT _UxGT("Đặt chêm và đo") // Place shim & measure
#define MSG_UBL_BC_INSERT2 _UxGT("Đo") // Measure
#define MSG_UBL_BC_REMOVE _UxGT("Tháo và đo bàn") // Remove & measure bed
#define MSG_UBL_MOVING_TO_NEXT _UxGT("Chuyển sang tiếp theo") // moving to next
#define MSG_UBL_ACTIVATE_MESH _UxGT("Bật UBL")
#define MSG_UBL_DEACTIVATE_MESH _UxGT("Tắt UBL")
#define MSG_UBL_SET_TEMP_BED _UxGT("Nhiệt độ bàn") // Bed Temp
#define MSG_UBL_BED_TEMP_CUSTOM MSG_UBL_SET_TEMP_BED
#define MSG_UBL_SET_TEMP_HOTEND _UxGT("Nhiệt độ đầu phun") // Hotend Temp
#define MSG_UBL_HOTEND_TEMP_CUSTOM MSG_UBL_SET_TEMP_HOTEND
#define MSG_UBL_MESH_EDIT _UxGT("Chỉnh sửa lưới") // Mesh Edit
#define MSG_UBL_EDIT_CUSTOM_MESH _UxGT("Chỉnh sửa lưới tự chọn") // Edit Custom Mesh
#define MSG_UBL_FINE_TUNE_MESH _UxGT("Chỉnh lưới chính xác") // Fine tuning mesh
#define MSG_UBL_DONE_EDITING_MESH _UxGT("Chỉnh sửa xong lưới") // Done Editing Mesh
#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Xây dựng lưới tự chọn") // Build Custom Mesh
#define MSG_UBL_BUILD_MESH_MENU _UxGT("Xây dựng lưới") // Build Mesh
#define MSG_UBL_BUILD_MESH_M1 _UxGT("Xây dựng lưới (" PREHEAT_1_LABEL ")")
#define MSG_UBL_BUILD_MESH_M2 _UxGT("Xây dựng lưới (" PREHEAT_2_LABEL ")")
#define MSG_UBL_BUILD_COLD_MESH _UxGT("Xây dựng lưới lạnh") // Build cold mesh
#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Điều chỉnh chiều cao lưới") // Adjust Mesh Height
#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Số lượng chiều cao") // Height Amount
#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("Thẩm tra lưới") // Validate Mesh
#define MSG_UBL_VALIDATE_MESH_M1 _UxGT("Thẩm tra lưới (" PREHEAT_1_LABEL ")")
#define MSG_UBL_VALIDATE_MESH_M2 _UxGT("Thẩm tra lưới (" PREHEAT_2_LABEL ")")
#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Thẩm tra lưới tự chọn") // validate custom mesh
#define MSG_UBL_CONTINUE_MESH _UxGT("Tiếp tục xây lưới bàn") // Continue Bed Mesh
#define MSG_UBL_MESH_LEVELING _UxGT("Đang san lấp lưới") // Mesh Leveling
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("Đang san lấp 3-điểm") // 3-Point Leveling
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Đang san lấp lưới phẳng") // Grid (planar) Mesh Leveling
#define MSG_UBL_MESH_LEVEL _UxGT("Làm bằng lưới") // Level Mesh
#define MSG_UBL_SIDE_POINTS _UxGT("Điểm bên cạnh") // Side Points
#define MSG_UBL_MAP_TYPE _UxGT("Loại bản đồ") // Map Type
#define MSG_UBL_OUTPUT_MAP _UxGT("Đầu ra bản đồ lưới") // Output Mesh Map
#define MSG_UBL_OUTPUT_MAP_HOST _UxGT("Đầu ra cho máy chủ") // Output for Host
#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Đầu ra cho CSV") // Output for CSV
#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Hỗ trợ lưới") // Off Printer Backup | backup mesh
#define MSG_UBL_INFO_UBL _UxGT("Đầu ra thông tin UBL") // Output UBL Info
#define MSG_EDIT_MESH _UxGT("Chỉnh sửa lưới") // Edit mesh
#define MSG_UBL_FILLIN_AMOUNT _UxGT("Số lượng lấp đầy") // Fill-in Amount
#define MSG_UBL_MANUAL_FILLIN _UxGT("Tự lấp đầy") // Manual Fill-in
#define MSG_UBL_SMART_FILLIN _UxGT("Lấp đầy thông minh") // Smart Fill-in
#define MSG_UBL_FILLIN_MESH _UxGT("Lưới lấp đầy") // Fill-in Mesh
#define MSG_UBL_INVALIDATE_ALL _UxGT("Bác bỏ tất cả") // Invalidate All
#define MSG_UBL_INVALIDATE_CLOSEST _UxGT("Bác bỏ gần nhất") // Invalidate Closest
#define MSG_UBL_FINE_TUNE_ALL _UxGT("Chỉnh chính xác tất cả") // Fine Tune ALl
#define MSG_UBL_FINE_TUNE_CLOSEST _UxGT("Chỉnh chính xác gần nhất") // Fine Tune Closest
#define MSG_UBL_STORAGE_MESH_MENU _UxGT("Lưu trữ lưới") // Mesh Storage
#define MSG_UBL_STORAGE_SLOT _UxGT("Khe nhớ") // Memory Slot
#define MSG_UBL_LOAD_MESH _UxGT("Tải lưới bàn") // Load Bed Mesh
#define MSG_UBL_SAVE_MESH _UxGT("Lưu lưới bàn") // Save Bed Mesh
#define MSG_MESH_LOADED _UxGT("%i lưới được nạp") // Mesh %i loaded
#define MSG_MESH_SAVED _UxGT("%i lưới đã lưu")
#define MSG_NO_STORAGE _UxGT("Không lưu trữ") // No Storage
#define MSG_UBL_SAVE_ERROR _UxGT("Điều sai: Lưu UBL") // Err: UBL Save
#define MSG_UBL_RESTORE_ERROR _UxGT("Điều Sai: Khôi Phục UBL") // Err: UBL Restore
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Đầu Dò-Z Đã Ngừng") // Z-Offset Stopped
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("Bước-Từng-Bước UBL") // Step-By-Step UBL
#define MSG_LED_CONTROL _UxGT("Điều khiển LED") // LED Control PROGMEM Language_Str MSG_MOVING = _UxGT("Di chuyển..."); // Moving
#define MSG_LEDS _UxGT("Đèn") // Lights PROGMEM Language_Str MSG_FREE_XY = _UxGT("Giải phóng XY"); // Free XY
#define MSG_LED_PRESETS _UxGT("Đèn định sẵn") // Light Presets PROGMEM Language_Str MSG_MOVE_X = _UxGT("Di chuyển X"); // Move X
#define MSG_SET_LEDS_RED _UxGT("Đỏ") // Red PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Di chuyển Y");
#define MSG_SET_LEDS_ORANGE _UxGT("Cam") // Orange PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Di chuyển Z");
#define MSG_SET_LEDS_YELLOW _UxGT("Vàng") // Yellow PROGMEM Language_Str MSG_MOVE_E = _UxGT("Máy đùn"); // Extruder
#define MSG_SET_LEDS_GREEN _UxGT("Xanh Lá") // Green PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Máy đùn ") LCD_STR_E0; // Extruder
#define MSG_SET_LEDS_BLUE _UxGT("Xanh") // Blue PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Máy đùn ") LCD_STR_E1; // Extruder
#define MSG_SET_LEDS_INDIGO _UxGT("Xanh Đậm") // Indigo PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Máy đùn ") LCD_STR_E2; // Extruder
#define MSG_SET_LEDS_VIOLET _UxGT("Tím") // Violet PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Máy đùn ") LCD_STR_E3; // Extruder
#define MSG_SET_LEDS_WHITE _UxGT("Trắng") // White PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Máy đùn ") LCD_STR_E4; // Extruder
#define MSG_SET_LEDS_DEFAULT _UxGT("Mặc định") // Default PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Máy đùn ") LCD_STR_E5; // Extruder
#define MSG_CUSTOM_LEDS _UxGT("Đèn Tự Chọn") // Custom Lights PROGMEM Language_Str MSG_HOTEND_TOO_COLD = _UxGT("Đầu nóng quá lạnh"); // Hotend too cold
#define MSG_INTENSITY_R _UxGT("Cường Độ Đỏ") // Red Intensity PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Di chuyển 0.1mm"); // Move 0.1mm
#define MSG_INTENSITY_G _UxGT("Cường Độ Xanh Lá") // Green Intensity PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Di chuyển 1mm"); // Move 1mm
#define MSG_INTENSITY_B _UxGT("Cường Độ Xanh") // Blue Intensity PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Di chuyển 10mm"); // Move 10mm
#define MSG_INTENSITY_W _UxGT("Cường Độ Trắng") // White Intensity PROGMEM Language_Str MSG_SPEED = _UxGT("Tốc độ"); // Speed
#define MSG_LED_BRIGHTNESS _UxGT("độ sáng") // Brightness PROGMEM Language_Str MSG_BED_Z = _UxGT("Z Bàn");
PROGMEM Language_Str MSG_NOZZLE = _UxGT("Đầu phun"); // Nozzle
PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Đầu phun ") LCD_STR_N0; // Nozzle
PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Đầu phun ") LCD_STR_N1; // Nozzle
PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Đầu phun ") LCD_STR_N2; // Nozzle
PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Đầu phun ") LCD_STR_N3; // Nozzle
PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Đầu phun ") LCD_STR_N4; // Nozzle
PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Đầu phun ") LCD_STR_N5; // Nozzle
PROGMEM Language_Str MSG_BED = _UxGT("Bàn"); // bed
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Tốc độ quạt"); // fan speed
PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Tốc độ quạt 1"); // fan speed
PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Tốc độ quạt 2"); // fan speed
PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Tốc độ quạt 3"); // fan speed
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Tốc độ quạt phụ"); // Extra fan speed
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_1 = _UxGT("Tốc độ quạt phụ 1"); // Extra fan speed
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_2 = _UxGT("Tốc độ quạt phụ 2"); // Extra fan speed
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_3 = _UxGT("Tốc độ quạt phụ 3"); // Extra fan speed
PROGMEM Language_Str MSG_FLOW = _UxGT("Lưu Lượng");
PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Lưu Lượng ") LCD_STR_N0;
PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Lưu Lượng ") LCD_STR_N1;
PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Lưu Lượng ") LCD_STR_N2;
PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Lưu Lượng ") LCD_STR_N3;
PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Lưu Lượng ") LCD_STR_N4;
PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Lưu Lượng ") LCD_STR_N5;
PROGMEM Language_Str MSG_CONTROL = _UxGT("Điều khiển"); // Control
PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" Đa"); // min
PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" Thiểu");
PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Hệ Số"); // factor
PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Nhiệt độ tự động"); // Autotemp
PROGMEM Language_Str MSG_LCD_ON = _UxGT("Bật"); // on
PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Tắt"); // off
PROGMEM Language_Str MSG_PID_P = _UxGT("PID-P");
PROGMEM Language_Str MSG_PID_P_E0 = _UxGT("PID-P ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_P_E1 = _UxGT("PID-P ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_P_E2 = _UxGT("PID-P ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_P_E3 = _UxGT("PID-P ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_P_E4 = _UxGT("PID-P ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_P_E5 = _UxGT("PID-P ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_I = _UxGT("PID-I");
PROGMEM Language_Str MSG_PID_I_E0 = _UxGT("PID-I ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_I_E1 = _UxGT("PID-I ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_I_E2 = _UxGT("PID-I ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_I_E3 = _UxGT("PID-I ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_I_E4 = _UxGT("PID-I ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_I_E5 = _UxGT("PID-I ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_D = _UxGT("PID-D");
PROGMEM Language_Str MSG_PID_D_E0 = _UxGT("PID-D ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_D_E1 = _UxGT("PID-D ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_D_E2 = _UxGT("PID-D ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_D_E3 = _UxGT("PID-D ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_D_E4 = _UxGT("PID-D ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_D_E5 = _UxGT("PID-D ") LCD_STR_E5;
PROGMEM Language_Str MSG_PID_C = _UxGT("PID-C");
PROGMEM Language_Str MSG_PID_C_E0 = _UxGT("PID-C ") LCD_STR_E0;
PROGMEM Language_Str MSG_PID_C_E1 = _UxGT("PID-C ") LCD_STR_E1;
PROGMEM Language_Str MSG_PID_C_E2 = _UxGT("PID-C ") LCD_STR_E2;
PROGMEM Language_Str MSG_PID_C_E3 = _UxGT("PID-C ") LCD_STR_E3;
PROGMEM Language_Str MSG_PID_C_E4 = _UxGT("PID-C ") LCD_STR_E4;
PROGMEM Language_Str MSG_PID_C_E5 = _UxGT("PID-C ") LCD_STR_E5;
PROGMEM Language_Str MSG_SELECT = _UxGT("Lựa"); // Select
PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("Lựa ") LCD_STR_E0;
PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("Lựa ") LCD_STR_E1;
PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("Lựa ") LCD_STR_E2;
PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("Lựa ") LCD_STR_E3;
PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("Lựa ") LCD_STR_E4;
PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("Lựa ") LCD_STR_E5;
PROGMEM Language_Str MSG_ACC = _UxGT("Tăng Tốc");
PROGMEM Language_Str MSG_JERK = _UxGT("Giật");
PROGMEM Language_Str MSG_VA_JERK = _UxGT("Giật-V") LCD_STR_A;
PROGMEM Language_Str MSG_VB_JERK = _UxGT("Giật-V") LCD_STR_B;
PROGMEM Language_Str MSG_VC_JERK = _UxGT("Giật-V") LCD_STR_C;
PROGMEM Language_Str MSG_VE_JERK = _UxGT("Giật-Ve");
PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Độ Lệch Chỗ Giao"); // Junction Dev
PROGMEM Language_Str MSG_VELOCITY = _UxGT("Vận tốc"); // velocity
PROGMEM Language_Str MSG_VMAX_A = _UxGT("Vđa") LCD_STR_A; // Vmax
PROGMEM Language_Str MSG_VMAX_B = _UxGT("Vđa") LCD_STR_B; // Vmax
PROGMEM Language_Str MSG_VMAX_C = _UxGT("Vđa") LCD_STR_C; // Vmax
PROGMEM Language_Str MSG_VMAX_E = _UxGT("Vđa") LCD_STR_E; // Vmax
PROGMEM Language_Str MSG_VMAX_E0 = _UxGT("Vđa ") LCD_STR_E0; // Vmax
PROGMEM Language_Str MSG_VMAX_E1 = _UxGT("Vđa ") LCD_STR_E1; // Vmax
PROGMEM Language_Str MSG_VMAX_E2 = _UxGT("Vđa ") LCD_STR_E2; // Vmax
PROGMEM Language_Str MSG_VMAX_E3 = _UxGT("Vđa ") LCD_STR_E3; // Vmax
PROGMEM Language_Str MSG_VMAX_E4 = _UxGT("Vđa ") LCD_STR_E4; // Vmax
PROGMEM Language_Str MSG_VMAX_E5 = _UxGT("Vđa ") LCD_STR_E5; // Vmax
PROGMEM Language_Str MSG_VMIN = _UxGT("Vthiểu"); // Vmin
PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("Vchuyển thiểu"); // VTrav min
PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Sự tăng tốc"); // Acceleration
PROGMEM Language_Str MSG_AMAX_A = _UxGT("Tăng tốc ca") LCD_STR_A; // Amax
PROGMEM Language_Str MSG_AMAX_B = _UxGT("Tăng tốc ca") LCD_STR_B; // Amax
PROGMEM Language_Str MSG_AMAX_C = _UxGT("Tăng tốc ca") LCD_STR_C; // Amax
PROGMEM Language_Str MSG_AMAX_E = _UxGT("Tăng tốc ca") LCD_STR_E; // Amax
PROGMEM Language_Str MSG_AMAX_E0 = _UxGT("Tăng tốc ca ") LCD_STR_E0; // Amax
PROGMEM Language_Str MSG_AMAX_E1 = _UxGT("Tăng tốc ca ") LCD_STR_E1; // Amax
PROGMEM Language_Str MSG_AMAX_E2 = _UxGT("Tăng tốc ca ") LCD_STR_E2; // Amax
PROGMEM Language_Str MSG_AMAX_E3 = _UxGT("Tăng tốc ca ") LCD_STR_E3; // Amax
PROGMEM Language_Str MSG_AMAX_E4 = _UxGT("Tăng tốc ca ") LCD_STR_E4; // Amax
PROGMEM Language_Str MSG_AMAX_E5 = _UxGT("Tăng tốc ca ") LCD_STR_E5; // Amax
PROGMEM Language_Str MSG_A_RETRACT = _UxGT("TT-Rút"); // A-retract
PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("TT-Chuyển"); // A-travel
PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Bước/mm"); // Steps
PROGMEM Language_Str MSG_A_STEPS = _UxGT("Bước") LCD_STR_A _UxGT("/mm"); // Asteps/mm
PROGMEM Language_Str MSG_B_STEPS = _UxGT("Bước") LCD_STR_B _UxGT("/mm");
PROGMEM Language_Str MSG_C_STEPS = _UxGT("Bước") LCD_STR_C _UxGT("/mm");
PROGMEM Language_Str MSG_E_STEPS = _UxGT("BướcE/mm");
PROGMEM Language_Str MSG_E0_STEPS = _UxGT("Bước ") LCD_STR_E0 _UxGT("/mm");
PROGMEM Language_Str MSG_E1_STEPS = _UxGT("Bước ") LCD_STR_E1 _UxGT("/mm");
PROGMEM Language_Str MSG_E2_STEPS = _UxGT("Bước ") LCD_STR_E2 _UxGT("/mm");
PROGMEM Language_Str MSG_E3_STEPS = _UxGT("Bước ") LCD_STR_E3 _UxGT("/mm");
PROGMEM Language_Str MSG_E4_STEPS = _UxGT("Bước ") LCD_STR_E4 _UxGT("/mm");
PROGMEM Language_Str MSG_E5_STEPS = _UxGT("Bước ") LCD_STR_E5 _UxGT("/mm");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Nhiệt độ"); // Temperature
PROGMEM Language_Str MSG_MOTION = _UxGT("Chuyển động"); // Motion
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Vật liệu in"); // dây nhựa
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E bằng mm³"); // E in mm
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Đường kính nhựa"); // Fil. Dai.
PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Đường kính nhựa ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Đường kính nhựa ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Đường kính nhựa ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Đường kính nhựa ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Đường kính nhựa ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Đường kính nhựa ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("Dỡ mm"); // unload mm
PROGMEM Language_Str MSG_FILAMENT_LOAD = _UxGT("Nạp mm");
PROGMEM Language_Str MSG_ADVANCE_K = _UxGT("K Cấp Cao"); // Advance K
PROGMEM Language_Str MSG_ADVANCE_K_E0 = _UxGT("K Cấp Cao ") LCD_STR_E0; // Advance K
PROGMEM Language_Str MSG_ADVANCE_K_E1 = _UxGT("K Cấp Cao ") LCD_STR_E1; // Advance K
PROGMEM Language_Str MSG_ADVANCE_K_E2 = _UxGT("K Cấp Cao ") LCD_STR_E2; // Advance K
PROGMEM Language_Str MSG_ADVANCE_K_E3 = _UxGT("K Cấp Cao ") LCD_STR_E3; // Advance K
PROGMEM Language_Str MSG_ADVANCE_K_E4 = _UxGT("K Cấp Cao ") LCD_STR_E4; // Advance K
PROGMEM Language_Str MSG_ADVANCE_K_E5 = _UxGT("K Cấp Cao ") LCD_STR_E5; // Advance K
PROGMEM Language_Str MSG_CONTRAST = _UxGT("Độ tương phản LCD"); // LCD contrast
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Lưu các thiết lập"); // Store settings
PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Tải các cài đặt"); // Load settings
PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Khôi phục phòng hư"); // Restore failsafe
PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("Khởi Tạo EEPROM"); // Initialize EEPROM
PROGMEM Language_Str MSG_SD_UPDATE = _UxGT("Cập Nhật SD"); // SD Update
PROGMEM Language_Str MSG_RESET_PRINTER = _UxGT("Bặt Lại Máy In");
PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Cập Nhật"); // Refresh
PROGMEM Language_Str MSG_WATCH = _UxGT("Màn Hình Thông Tin"); // Info screen
PROGMEM Language_Str MSG_PREPARE = _UxGT("Chuẩn bị"); // Prepare
PROGMEM Language_Str MSG_TUNE = _UxGT("Điều Chỉnh"); // Tune
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Tạm dừng in"); // Pause print
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Tiếp tục in"); // Resume print
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Ngừng in"); // Stop print
PROGMEM Language_Str MSG_OUTAGE_RECOVERY = _UxGT("Phục Hồi Mất Điện"); // Outage Recovery
PROGMEM Language_Str MSG_CARD_MENU = _UxGT("In từ SD"); // Print from SD
PROGMEM Language_Str MSG_NO_CARD = _UxGT("Không có thẻ SD"); // No SD card
PROGMEM Language_Str MSG_DWELL = _UxGT("Ngủ..."); // Sleep
PROGMEM Language_Str MSG_USERWAIT = _UxGT("Nhấn để tiếp tục..."); // Click to resume (same as 'continue')
PROGMEM Language_Str MSG_PRINT_PAUSED = _UxGT("In tạm dừng"); // print paused
PROGMEM Language_Str MSG_PRINTING = _UxGT("Đang in..."); // printing
PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("In đã hủy bỏ"); // Print aborted
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Không di chuyển."); // No move.
PROGMEM Language_Str MSG_KILLED = _UxGT("ĐÃ CHẾT. ");
PROGMEM Language_Str MSG_STOPPED = _UxGT("ĐÃ NGỪNG. ");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Rút mm"); // Retract mm
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Rút Trao.mm"); // Swap Re.mm
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Rút V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Nhảy mm"); // hop
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("BỏRút mm"); // UnRet mm
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("BỏRút T mm"); // S UnRet mm
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("BỏRút V"); // UnRet V
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAPF = _UxGT("BỏRút T V"); // S UnRet V
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("RútTựĐộng"); // AutoRetr.
PROGMEM Language_Str MSG_FILAMENT_SWAP_LENGTH = _UxGT("Khoảng Cách Rút"); // Retract Distance
PROGMEM Language_Str MSG_TOOL_CHANGE = _UxGT("Thay Đổi Công Cụ"); // Tool Change
PROGMEM Language_Str MSG_TOOL_CHANGE_ZLIFT = _UxGT("Đưa Lên Z"); // Z Raise
PROGMEM Language_Str MSG_SINGLENOZZLE_PRIME_SPD = _UxGT("Tốc Độ Tuôn Ra"); // Prime Speed
PROGMEM Language_Str MSG_SINGLENOZZLE_RETRACT_SPD = _UxGT("Tốc Độ Rút Lại"); // Retract Speed
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Thay dây nhựa"); // change filament
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Thay dây nhựa ") LCD_STR_E0; // change filament
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Thay dây nhựa ") LCD_STR_E1; // change filament
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Thay dây nhựa ") LCD_STR_E2; // change filament
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Thay dây nhựa ") LCD_STR_E3; // change filament
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Thay dây nhựa ") LCD_STR_E4; // change filament
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Thay dây nhựa ") LCD_STR_E5; // change filament
PROGMEM Language_Str MSG_FILAMENTLOAD = _UxGT("Nạp dây nhựa"); // load filament
PROGMEM Language_Str MSG_FILAMENTLOAD_E0 = _UxGT("Nạp dây nhựa ") LCD_STR_E0; // load filament
PROGMEM Language_Str MSG_FILAMENTLOAD_E1 = _UxGT("Nạp dây nhựa ") LCD_STR_E1; // load filament
PROGMEM Language_Str MSG_FILAMENTLOAD_E2 = _UxGT("Nạp dây nhựa ") LCD_STR_E2; // load filament
PROGMEM Language_Str MSG_FILAMENTLOAD_E3 = _UxGT("Nạp dây nhựa ") LCD_STR_E3; // load filament
PROGMEM Language_Str MSG_FILAMENTLOAD_E4 = _UxGT("Nạp dây nhựa ") LCD_STR_E4; // load filament
PROGMEM Language_Str MSG_FILAMENTLOAD_E5 = _UxGT("Nạp dây nhựa ") LCD_STR_E5; // load filament
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E0 = _UxGT("Dỡ dây nhựa ") LCD_STR_E0; // unload filament
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E1 = _UxGT("Dỡ dây nhựa ") LCD_STR_E1; // unload filament
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E2 = _UxGT("Dỡ dây nhựa ") LCD_STR_E2; // unload filament
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E3 = _UxGT("Dỡ dây nhựa ") LCD_STR_E3; // unload filament
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E4 = _UxGT("Dỡ dây nhựa ") LCD_STR_E4; // unload filament
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E5 = _UxGT("Dỡ dây nhựa ") LCD_STR_E5; // unload filament
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Dỡ tất cả"); // Unload All
PROGMEM Language_Str MSG_INIT_SDCARD = _UxGT("Khởi tạo thẻ SD "); // Init. SD card
PROGMEM Language_Str MSG_CHANGE_SDCARD = _UxGT("Thay thẻ SD"); // Change SD card
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Đầu Dò Z qua bàn"); // Z Probe past bed
PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("Hệ số nghiêng"); // Skew Factor
PROGMEM Language_Str MSG_BLTOUCH = _UxGT("BLTOUCH"); // BLTouch
PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("Tự kiểm tra BLTOUCH "); // BLTouch Self-Test
PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("Bặt lại BLTouch"); // Reset BLTouch
PROGMEM Language_Str MSG_BLTOUCH_DEPLOY = _UxGT("Đem BLTouch"); // Deploy BLTouch
PROGMEM Language_Str MSG_BLTOUCH_STOW = _UxGT("Cất BLTouch"); // Stow BLTouch
PROGMEM Language_Str MSG_MANUAL_DEPLOY = _UxGT("Đem Đầu Dò-Z"); // Deploy Z-Probe
PROGMEM Language_Str MSG_MANUAL_STOW = _UxGT("Cất Đầu Dò-Z"); // Stow Z-Probe
PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("Về nhà %s%s%s Trước");
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Đầu Dò Bù Đắp Z"); // Probe Z Offset
PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Nhít X"); // Babystep X
PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Nhít Y");
PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Nhít Z");
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Hủy bỏ công tắc"); // Endstop abort
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Sưởi đầu phun không thành công"); // Heating failed
PROGMEM Language_Str MSG_HEATING_FAILED_LCD_BED = _UxGT("Sưởi bàn không thành công"); // Bed heating failed
PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("Điều sai: nhiệt độ dư"); // Err: REDUNDANT TEMP
PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("Vấn đề nhiệt"); // THERMAL RUNAWAY | problem
PROGMEM Language_Str MSG_THERMAL_RUNAWAY_BED = _UxGT("Vấn đề nhiệt bàn"); // BED THERMAL RUNAWAY
PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("Điều sai: nhiệt độ tối đa"); // Err: MAXTEMP
PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("Điều sai: nhiệt độ tối thiểu"); // Err: MINTEMP
PROGMEM Language_Str MSG_ERR_MAXTEMP_BED = _UxGT("Điều sai: nhiệt độ bàn tối đa"); // Err: MAXTEMP BED
PROGMEM Language_Str MSG_ERR_MINTEMP_BED = _UxGT("Điều sai: nhiệt độ bàn tối thiểu"); // Err: MINTEMP BED
PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("Về nhà XY Trước"); // Home XY First
PROGMEM Language_Str MSG_HALTED = _UxGT("MÁY IN ĐÃ DỪNG LẠI"); // PRINTER HALTED
PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Xin bặt lại"); // Please reset
PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("n"); // d - ngày - One character only
PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT("g"); // h - giờ - One character only
PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT("p"); // m - phút - One character only
PROGMEM Language_Str MSG_HEATING = _UxGT("Đang sưởi nóng..."); // heating
PROGMEM Language_Str MSG_COOLING = _UxGT("Đang làm nguội..."); // cooling
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Đang sưởi nong bàn..."); // bed heating
PROGMEM Language_Str MSG_BED_COOLING = _UxGT("Đang làm nguội bàn..."); // bed cooling
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Cân Chỉnh Delta"); // Delta calibration
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("Chỉnh X lại");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("Chỉnh Y lại");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("Chỉnh Z lại");
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("Chỉnh Z Center"); // Calibrate Center
PROGMEM Language_Str MSG_DELTA_SETTINGS = _UxGT("Cài Đặt Delta"); // Delta Settings
PROGMEM Language_Str MSG_DELTA_AUTO_CALIBRATE = _UxGT("Cân Chỉnh Tự Động"); // Auto Calibration
PROGMEM Language_Str MSG_DELTA_HEIGHT_CALIBRATE = _UxGT("Đặt Chiều Cao Delta"); // Set Delta Height
PROGMEM Language_Str MSG_DELTA_Z_OFFSET_CALIBRATE = _UxGT("Đầu Dò Z-Bù Đắp"); // Probe Z-offset
PROGMEM Language_Str MSG_DELTA_DIAG_ROD = _UxGT("Gậy Chéo"); // Diag Rod
PROGMEM Language_Str MSG_DELTA_HEIGHT = _UxGT("Chiều Cao"); // Height
PROGMEM Language_Str MSG_DELTA_RADIUS = _UxGT("Bán Kính"); // Radius
PROGMEM Language_Str MSG_INFO_MENU = _UxGT("Về Máy In");
PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Thông Tin Máy In"); // Printer Info
PROGMEM Language_Str MSG_3POINT_LEVELING = _UxGT("San lấp 3-Điểm"); // 3-Point Leveling
PROGMEM Language_Str MSG_LINEAR_LEVELING = _UxGT("San Lấp Tuyến Tính"); // Linear Leveling
PROGMEM Language_Str MSG_BILINEAR_LEVELING = _UxGT("San Lấp Song Tuyến"); // Bilinear Leveling
PROGMEM Language_Str MSG_UBL_LEVELING = _UxGT("San Lấp Bàn Thống Nhất"); // Unified Bed Leveling
PROGMEM Language_Str MSG_MESH_LEVELING = _UxGT("Lưới San Lấp"); // Mesh Leveling
PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Thống Kê Máy In"); // Printer Stats
PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Thông Tin Bo Mạch"); // Board Info
PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Điện Trở Nhiệt"); // Thermistors
PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Máy đùn"); // Extruders
PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("Baud"); // Baud
PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Giao Thức"); // Protocol
PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Đèn Khuông"); // Case light
PROGMEM Language_Str MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Độ Sáng"); // Light Brightness
#if LCD_WIDTH >= 20
PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Số In"); // Print Count
PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Đã hoàn thành");
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Tổng số thời gian in"); // Total print time
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Thời gian việc lâu nhất"); // Longest job time
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Tổng số đùn"); // Extruded total
#else
PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("In"); // prints
PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Đã hoàn thành"); // Completed
PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Tổng số"); // total
PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Dài nhất"); // Longest
PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Đã ép đùn");
#endif
PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Nhiệt độ tối thiểu"); // Min Temp
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Nhiệt độ tối đa"); // Max temp
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Bộ nguồn"); // PSU
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Sức mạnh ổ đĩa"); // Drive Strength
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("% trình điều khiển"); // Driver %
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Ghi DAC EEPROM"); // DAC EEPROM Write
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("In tạm dừng"); // PRINT PAUSED
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("Nạp dây nhựa");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("Dỡ dây nhựa"); // unload filament
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("Tùy chọn hồi phục:"); // RESUME OPTIONS
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("Xả thêm"); // Purge more
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Tiếp tục"); // continue
PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Đầu Phun: "); // Nozzle
PROGMEM Language_Str MSG_RUNOUT_SENSOR_ENABLE = _UxGT("Cảm Biến Hết"); // Runout Sensor
PROGMEM Language_Str MSG_LCD_HOMING_FAILED = _UxGT("Sự nhà không thành công"); // Homing failed
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT(" không thành công"); // Probing failed
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Quá lạnh");
#define MSG_MOVING _UxGT("Di chuyển...") // Moving //
#define MSG_FREE_XY _UxGT("Giải phóng XY") // Free XY // Filament Change screens show up to 3 lines on a 4-line display
#define MSG_MOVE_X _UxGT("Di chuyển X") // Move X // ...or up to 2 lines on a 3-line display
#define MSG_MOVE_Y _UxGT("Di chuyển Y") //
#define MSG_MOVE_Z _UxGT("Di chuyển Z") #if LCD_HEIGHT >= 4
#define MSG_MOVE_E _UxGT("Máy đùn") // Extruder PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_2_LINE("Nhấn nút", "để tiếp tục in")); // Press button to resume print
#define MSG_HOTEND_TOO_COLD _UxGT("Đầu nóng quá lạnh") // Hotend too cold PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Chờ cho sự", "thay đổi dây nhựa", "bắt đầu")); // wait for filament change to start
#define MSG_MOVE_01MM _UxGT("Di chuyển 0.1mm") // Move 0.1mm PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Đút dây nhựa vào", "và nhấn nút", "để tiếp tục")); // insert filament and press button to continue //
#define MSG_MOVE_1MM _UxGT("Di chuyển 1mm") // Move 1mm PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Nhấn nút", "để làm nóng đầu phun")); // Press button to heat nozzle
#define MSG_MOVE_10MM _UxGT("Di chuyển 10mm") // Move 10mm PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("Đầu phun đang nóng lên", "Xin chờ...")); // Nozzle heating Please wait
#define MSG_SPEED _UxGT("Tốc độ") // Speed PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Chờ tro", "dây nhựa ra")); // Wait for filament unload
#define MSG_BED_Z _UxGT("Z Bàn") PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Chờ tro", "dây nhựa vào")); // Wait for filament load
#define MSG_NOZZLE _UxGT("Đầu phun") // Nozzle PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_2_LINE("Chờ tro", "xả dây nhựa")); // wait for filament purge
#define MSG_BED _UxGT("Bàn") // bed PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_2_LINE("Nhấn nút để kết thúc", "xả dây nhựa")); // Click to finish dây nhựa purge
#define MSG_FAN_SPEED _UxGT("Tốc độ quạt") // fan speed PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("Chờ tro in", "tiếp tục...")); // Wait for print to resume
#define MSG_EXTRA_FAN_SPEED _UxGT("Tốc độ quạt phụ") // Extra fan speed #else // LCD_HEIGHT < 4
#define MSG_FLOW _UxGT("Lưu Lượng") PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_1_LINE("Nhấn nút để tiếp tục")); // Click to continue
#define MSG_CONTROL _UxGT("Điều khiển") // Control PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Xin chờ..."));
#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Đa") // min PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Chèn và nhấn")); // Insert and Click
#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Thiểu") PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_1_LINE("Nhấn để sưởi")); // Click to heat
#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Hệ Số") // factor PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("Đang sưởi nóng")); // Heating
#define MSG_AUTOTEMP _UxGT("Nhiệt độ tự động") // Autotemp PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Đang dỡ ra...")); // Ejecting
#define MSG_LCD_ON _UxGT("Bật") // on PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Đang nạp...")); // Loading
#define MSG_LCD_OFF _UxGT("Tắt") // off PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_1_LINE("Đang xả...")); // Purging
#define MSG_PID_P _UxGT("PID-P") PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_1_LINE("Nhấn nút để kết thúc")); // Click to finish
#define MSG_PID_I _UxGT("PID-I") PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Đang tiếp tục...")); // Resuming
#define MSG_PID_D _UxGT("PID-D") #endif // LCD_HEIGHT < 4
#define MSG_PID_C _UxGT("PID-C")
#define MSG_SELECT _UxGT("Lựa") // Select
#define MSG_ACC _UxGT("Tăng Tốc")
#define MSG_JERK _UxGT("Giật")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Giật-Va")
#define MSG_VB_JERK _UxGT("Giật-Vb")
#define MSG_VC_JERK _UxGT("Giật-Vc")
#else
#define MSG_VA_JERK _UxGT("Giật-Vx")
#define MSG_VB_JERK _UxGT("Giật-Vy")
#define MSG_VC_JERK _UxGT("Giật-Vz")
#endif
#define MSG_VE_JERK _UxGT("Giật-Ve")
#define MSG_JUNCTION_DEVIATION _UxGT("Độ Lệch Chỗ Giao") // Junction Dev
#define MSG_VELOCITY _UxGT("Vận tốc") // velocity
#define MSG_VMAX _UxGT("Vđa") // Vmax
#define MSG_VMIN _UxGT("Vthiểu") // Vmin
#define MSG_VTRAV_MIN _UxGT("Vchuyển thiểu") // VTrav min
#define MSG_ACCELERATION _UxGT("Sự tăng tốc") // Acceleration
#define MSG_AMAX _UxGT("Tăng tốc ca") // Amax
#define MSG_A_RETRACT _UxGT("TT-Rút") // A-retract
#define MSG_A_TRAVEL _UxGT("TT-Chuyển") // A-travel
#define MSG_STEPS_PER_MM _UxGT("Bước/mm") // Steps
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("BướcA/mm") // Asteps/mm
#define MSG_BSTEPS _UxGT("BướcB/mm")
#define MSG_CSTEPS _UxGT("BướcC/mm")
#else
#define MSG_ASTEPS _UxGT("BướcX/mm") // Xsteps/mm
#define MSG_BSTEPS _UxGT("BướcY/mm")
#define MSG_CSTEPS _UxGT("BướcZ/mm")
#endif
#define MSG_ESTEPS _UxGT("BướcE/mm")
#define MSG_E0_STEPS _UxGT("BướcE1/mm")
#define MSG_E1_STEPS _UxGT("BướcE2/mm")
#define MSG_E2_STEPS _UxGT("BướcE3/mm")
#define MSG_E3_STEPS _UxGT("BướcE4/mm")
#define MSG_E4_STEPS _UxGT("BướcE5/mm")
#define MSG_E5_STEPS _UxGT("BướcE6/mm")
#define MSG_TEMPERATURE _UxGT("Nhiệt độ") // Temperature
#define MSG_MOTION _UxGT("Chuyển động") // Motion
#define MSG_FILAMENT _UxGT("Vật liệu in") // dây nhựa
#define MSG_VOLUMETRIC_ENABLED _UxGT("E bằng mm") MSG_CUBED // E in mm
#define MSG_FILAMENT_DIAM _UxGT("Đường kính nhựa") // Fil. Dai.
#define MSG_FILAMENT_UNLOAD _UxGT("Dỡ mm") // unload mm
#define MSG_FILAMENT_LOAD _UxGT("Nạp mm")
#define MSG_ADVANCE_K _UxGT("K Cấp Cao") // Advance K
#define MSG_CONTRAST _UxGT("Độ tương phản LCD") // LCD contrast
#define MSG_STORE_EEPROM _UxGT("Lưu các thiết lập") // Store settings
#define MSG_LOAD_EEPROM _UxGT("Tải các cài đặt") // Load settings
#define MSG_RESTORE_FAILSAFE _UxGT("Khôi phục phòng hư") // Restore failsafe
#define MSG_INIT_EEPROM _UxGT("Khởi Tạo EEPROM") // Initialize EEPROM
#define MSG_SD_UPDATE _UxGT("Cập Nhật SD") // SD Update
#define MSG_RESET_PRINTER _UxGT("Bặt Lại Máy In")
#define MSG_REFRESH _UxGT("Cập Nhật") // Refresh
#define MSG_WATCH _UxGT("Màn Hình Thông Tin") // Info screen
#define MSG_PREPARE _UxGT("Chuẩn bị") // Prepare
#define MSG_TUNE _UxGT("Điều Chỉnh") // Tune
#define MSG_PAUSE_PRINT _UxGT("Tạm dừng in") // Pause print
#define MSG_RESUME_PRINT _UxGT("Tiếp tục in") // Resume print
#define MSG_STOP_PRINT _UxGT("Ngừng in") // Stop print
#define MSG_OUTAGE_RECOVERY _UxGT("Phục Hồi Mất Điện") // Outage Recovery
#define MSG_CARD_MENU _UxGT("In từ SD") // Print from SD
#define MSG_NO_CARD _UxGT("Không có thẻ SD") // No SD card
#define MSG_DWELL _UxGT("Ngủ...") // Sleep
#define MSG_USERWAIT _UxGT("Nhấn để tiếp tục...") // Click to resume (same as 'continue')
#define MSG_PRINT_PAUSED _UxGT("In tạm dừng") // print paused
#define MSG_PRINTING _UxGT("Đang in...") // printing
#define MSG_PRINT_ABORTED _UxGT("In đã hủy bỏ") // Print aborted
#define MSG_NO_MOVE _UxGT("Không di chuyển.") // No move.
#define MSG_KILLED _UxGT("ĐÃ CHẾT. ")
#define MSG_STOPPED _UxGT("ĐÃ NGỪNG. ")
#define MSG_CONTROL_RETRACT _UxGT("Rút mm") // Retract mm
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Rút Trao.mm") // Swap Re.mm
#define MSG_CONTROL_RETRACTF _UxGT("Rút V")
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Nhảy mm") // hop
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("BỏRút mm") // UnRet mm
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("BỏRút T mm") // S UnRet mm
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("BỏRút V") // UnRet V
#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("BỏRút T V") // S UnRet V
#define MSG_AUTORETRACT _UxGT("RútTựĐộng") // AutoRetr.
#define MSG_FILAMENT_SWAP_LENGTH _UxGT("Khoảng Cách Rút") // Retract Distance
#define MSG_TOOL_CHANGE _UxGT("Thay Đổi Công Cụ") // Tool Change
#define MSG_TOOL_CHANGE_ZLIFT _UxGT("Đưa Lên Z") // Z Raise
#define MSG_SINGLENOZZLE_PRIME_SPD _UxGT("Tốc Độ Tuôn Ra") // Prime Speed
#define MSG_SINGLENOZZLE_RETRACT_SPD _UxGT("Tốc Độ Rút Lại") // Retract Speed
#define MSG_FILAMENTCHANGE _UxGT("Thay dây nhựa") // change filament
#define MSG_FILAMENTLOAD _UxGT("Nạp dây nhựa") // load filament
#define MSG_FILAMENTUNLOAD _UxGT("Dỡ dây nhựa") // unload filament
#define MSG_FILAMENTUNLOAD_ALL _UxGT("Dỡ tất cả") // Unload All
#define MSG_INIT_SDCARD _UxGT("Khởi tạo thẻ SD ") // Init. SD card
#define MSG_CHANGE_SDCARD _UxGT("Thay thẻ SD") // Change SD card
#define MSG_ZPROBE_OUT _UxGT("Đầu Dò Z qua bàn") // Z Probe past bed
#define MSG_SKEW_FACTOR _UxGT("Hệ số nghiêng") // Skew Factor
#define MSG_BLTOUCH _UxGT("BLTOUCH") // BLTouch
#define MSG_BLTOUCH_SELFTEST _UxGT("Tự kiểm tra BLTOUCH ") // BLTouch Self-Test
#define MSG_BLTOUCH_RESET _UxGT("Bặt lại BLTouch") // Reset BLTouch
#define MSG_BLTOUCH_DEPLOY _UxGT("Đem BLTouch") // Deploy BLTouch
#define MSG_BLTOUCH_STOW _UxGT("Cất BLTouch") // Stow BLTouch
#define MSG_MANUAL_DEPLOY _UxGT("Đem Đầu Dò-Z") // Deploy Z-Probe
#define MSG_MANUAL_STOW _UxGT("Cất Đầu Dò-Z") // Stow Z-Probe
#define MSG_HOME_FIRST _UxGT("Về nhà %s%s%s Trước")
#define MSG_ZPROBE_ZOFFSET _UxGT("Đầu Dò Bù Đắp Z") // Probe Z Offset
#define MSG_BABYSTEP_X _UxGT("Nhít X") // Babystep X
#define MSG_BABYSTEP_Y _UxGT("Nhít Y")
#define MSG_BABYSTEP_Z _UxGT("Nhít Z")
#define MSG_ENDSTOP_ABORT _UxGT("Hủy bỏ công tắc") // Endstop abort
#define MSG_HEATING_FAILED_LCD _UxGT("Sưởi đầu phun không thành công") // Heating failed
#define MSG_HEATING_FAILED_LCD_BED _UxGT("Sưởi bàn không thành công") // Bed heating failed
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Điều sai: nhiệt độ dư") // Err: REDUNDANT TEMP
#define MSG_THERMAL_RUNAWAY _UxGT("Vấn đề nhiệt") // THERMAL RUNAWAY | problem
#define MSG_THERMAL_RUNAWAY_BED _UxGT("Vấn đề nhiệt bàn") // BED THERMAL RUNAWAY
#define MSG_ERR_MAXTEMP _UxGT("Điều sai: nhiệt độ tối đa") // Err: MAXTEMP
#define MSG_ERR_MINTEMP _UxGT("Điều sai: nhiệt độ tối thiểu") // Err: MINTEMP
#define MSG_ERR_MAXTEMP_BED _UxGT("Điều sai: nhiệt độ bàn tối đa") // Err: MAXTEMP BED
#define MSG_ERR_MINTEMP_BED _UxGT("Điều sai: nhiệt độ bàn tối thiểu") // Err: MINTEMP BED
#define MSG_ERR_Z_HOMING _UxGT("Về nhà XY Trước") // Home XY First
#define MSG_HALTED _UxGT("MÁY IN ĐÃ DỪNG LẠI") // PRINTER HALTED
#define MSG_PLEASE_RESET _UxGT("Xin bặt lại") // Please reset
#define MSG_SHORT_DAY _UxGT("n") // d - ngày - One character only
#define MSG_SHORT_HOUR _UxGT("g") // h - giờ - One character only
#define MSG_SHORT_MINUTE _UxGT("p") // m - phút - One character only
#define MSG_HEATING _UxGT("Đang sưởi nóng...") // heating
#define MSG_COOLING _UxGT("Đang làm nguội...") // cooling
#define MSG_BED_HEATING _UxGT("Đang sưởi nong bàn...") // bed heating
#define MSG_BED_COOLING _UxGT("Đang làm nguội bàn...") // bed cooling
#define MSG_DELTA_CALIBRATE _UxGT("Cân Chỉnh Delta") // Delta calibration
#define MSG_DELTA_CALIBRATE_X _UxGT("Chỉnh X lại")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Chỉnh Y lại")
#define MSG_DELTA_CALIBRATE_Z _UxGT("Chỉnh Z lại")
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Chỉnh Z Center") // Calibrate Center
#define MSG_DELTA_SETTINGS _UxGT("Cài Đặt Delta") // Delta Settings
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Cân Chỉnh Tự Động") // Auto Calibration
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Đặt Chiều Cao Delta") // Set Delta Height
#define MSG_DELTA_Z_OFFSET_CALIBRATE _UxGT("Đầu Dò Z-Bù Đắp") // Probe Z-offset
#define MSG_DELTA_DIAG_ROD _UxGT("Gậy Chéo") // Diag Rod
#define MSG_DELTA_HEIGHT _UxGT("Chiều Cao") // Height
#define MSG_DELTA_RADIUS _UxGT("Bán Kính") // Radius
#define MSG_INFO_MENU _UxGT("Về Máy In")
#define MSG_INFO_PRINTER_MENU _UxGT("Thông Tin Máy In") // Printer Info
#define MSG_3POINT_LEVELING _UxGT("San lấp 3-Điểm") // 3-Point Leveling
#define MSG_LINEAR_LEVELING _UxGT("San Lấp Tuyến Tính") // Linear Leveling
#define MSG_BILINEAR_LEVELING _UxGT("San Lấp Song Tuyến") // Bilinear Leveling
#define MSG_UBL_LEVELING _UxGT("San Lấp Bàn Thống Nhất") // Unified Bed Leveling
#define MSG_MESH_LEVELING _UxGT("Lưới San Lấp") // Mesh Leveling
#define MSG_INFO_STATS_MENU _UxGT("Thống Kê Máy In") // Printer Stats
#define MSG_INFO_BOARD_MENU _UxGT("Thông Tin Bo Mạch") // Board Info
#define MSG_INFO_THERMISTOR_MENU _UxGT("Điện Trở Nhiệt") // Thermistors
#define MSG_INFO_EXTRUDERS _UxGT("Máy đùn") // Extruders
#define MSG_INFO_BAUDRATE _UxGT("Baud") // Baud
#define MSG_INFO_PROTOCOL _UxGT("Giao Thức") // Protocol
#define MSG_CASE_LIGHT _UxGT("Đèn Khuông") // Case light
#define MSG_CASE_LIGHT_BRIGHTNESS _UxGT("Độ Sáng") // Light Brightness
#if LCD_WIDTH >= 20
#define MSG_INFO_PRINT_COUNT _UxGT("Số In") // Print Count
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Đã hoàn thành")
#define MSG_INFO_PRINT_TIME _UxGT("Tổng số thời gian in") // Total print time
#define MSG_INFO_PRINT_LONGEST _UxGT("Thời gian việc lâu nhất") // Longest job time
#define MSG_INFO_PRINT_FILAMENT _UxGT("Tổng số đùn") // Extruded total
#else
#define MSG_INFO_PRINT_COUNT _UxGT("In") // prints
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Đã hoàn thành") // Completed
#define MSG_INFO_PRINT_TIME _UxGT("Tổng số") // total
#define MSG_INFO_PRINT_LONGEST _UxGT("Dài nhất") // Longest
#define MSG_INFO_PRINT_FILAMENT _UxGT("Đã ép đùn")
#endif
#define MSG_INFO_MIN_TEMP _UxGT("Nhiệt độ tối thiểu") // Min Temp
#define MSG_INFO_MAX_TEMP _UxGT("Nhiệt độ tối đa") // Max temp
#define MSG_INFO_PSU _UxGT("Bộ nguồn") // PSU
#define MSG_DRIVE_STRENGTH _UxGT("Sức mạnh ổ đĩa") // Drive Strength
#define MSG_DAC_PERCENT _UxGT("% trình điều khiển") // Driver %
#define MSG_DAC_EEPROM_WRITE _UxGT("Ghi DAC EEPROM") // DAC EEPROM Write
#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("In tạm dừng") // PRINT PAUSED
#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("Nạp dây nhựa")
#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("Dỡ dây nhựa") // unload filament
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("Tùy chọn hồi phục:") // RESUME OPTIONS
#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Xả thêm") // Purge more
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Tiếp tục") // continue
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Đầu Phun: ") // Nozzle
#define MSG_RUNOUT_SENSOR_ENABLE _UxGT("Cảm Biến Hết") // Runout Sensor
#define MSG_ERR_HOMING_FAILED _UxGT("Sự nhà không thành công") // Homing failed
#define MSG_ERR_PROBING_FAILED _UxGT(" không thành công") // Probing failed
#define MSG_M600_TOO_COLD _UxGT("M600: Quá lạnh")
// PROGMEM Language_Str MSG_TMC_DRIVERS = _UxGT("Trình điều khiển TMC"); // TMC drivers
// Filament Change screens show up to 3 lines on a 4-line display PROGMEM Language_Str MSG_TMC_CURRENT = _UxGT("Dòng điện trình điều khiển"); // Driver current
// ...or up to 2 lines on a 3-line display PROGMEM Language_Str MSG_TMC_HYBRID_THRS = _UxGT("Ngưỡng Hỗn Hợp"); // Hybrid threshold
// PROGMEM Language_Str MSG_TMC_HOMING_THRS = _UxGT("Vô cảm biến"); // Sensorless homing
#if LCD_HEIGHT >= 4 PROGMEM Language_Str MSG_TMC_STEPPING_MODE = _UxGT("Chế độ từng bước"); // Stepping mode
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Nhấn nút") // Press button PROGMEM Language_Str MSG_TMC_STEALTH_ENABLED = _UxGT("CắtTàngHình được kích hoạt"); // StealthChop enabled
#define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("để tiếp tục in") // to resume print }
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Chờ cho sự") // wait for
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("thay đổi dây nhựa") // filament change
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("bắt đầu") // to start
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Đút dây nhựa vào") // insert filament
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("và nhấn nút") // and press button
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("để tiếp tục") // to continue
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Nhấn nút") // Press button
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("để làm nóng đầu phun") // to heat nozzle
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Đầu phun đang nóng lên") // Nozzle heating
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Xin chờ...") // Please wait
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Chờ tro") // Wait for
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("dây nhựa ra") // filament unload
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Chờ tro")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("dây nhựa vào")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Chờ tro") // wait for filament purge
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("xả dây nhựa")
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Nhấn nút để kết thúc") // Click to finish
#define MSG_FILAMENT_CHANGE_CONT_PURGE_2 _UxGT("xả dây nhựa") // dây nhựa purge
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Chờ tro in") // Wait for print to resume
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("tiếp tục...")
#else // LCD_HEIGHT < 4
#define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Nhấn nút để tiếp tục") // Click to continue
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Xin chờ...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Chèn và nhấn") // Insert and Click
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Nhấn để sưởi") // Click to heat
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Đang sưởi nóng") // Heating
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Đang dỡ ra...") // Ejecting
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Đang nạp...") // Loading
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Đang xả...") // Purging
#define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Nhấn nút để kết thúc") // Click to finish
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Đang tiếp tục...") // Resuming
#endif // LCD_HEIGHT < 4
#define MSG_TMC_DRIVERS _UxGT("Trình điều khiển TMC") // TMC drivers
#define MSG_TMC_CURRENT _UxGT("Dòng điện trình điều khiển") // Driver current
#define MSG_TMC_HYBRID_THRS _UxGT("Ngưỡng Hỗn Hợp") // Hybrid threshold
#define MSG_TMC_HOMING_THRS _UxGT("Vô cảm biến") // Sensorless homing
#define MSG_TMC_STEPPING_MODE _UxGT("Chế độ từng bước") // Stepping mode
#define MSG_TMC_STEALTH_ENABLED _UxGT("CắtTàngHình được kích hoạt") // StealthChop enabled

View file

@ -28,357 +28,463 @@
* See also http://marlinfw.org/docs/development/lcd_language.html * See also http://marlinfw.org/docs/development/lcd_language.html
* *
*/ */
namespace Language_zh_CN {
using namespace Language_en; // Inherit undefined strings from English
#define CHARSIZE 3 constexpr uint8_t CHARSIZE = 3;
PROGMEM Language_Str LANGUAGE = _UxGT("Simplified Chinese");
#define WELCOME_MSG MACHINE_NAME _UxGT("已就绪.") //" ready." PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT("已就绪."); //" ready."
#define MSG_BACK _UxGT("返回") // ”Back“ PROGMEM Language_Str MSG_BACK = _UxGT("返回"); // ”Back“
#define MSG_MEDIA_INSERTED _UxGT("存储卡已插入") //"Card inserted" PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("存储卡已插入"); //"Card inserted"
#define MSG_MEDIA_REMOVED _UxGT("存储卡被拔出") //"Card removed" PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("存储卡被拔出"); //"Card removed"
#define MSG_LCD_ENDSTOPS _UxGT("挡块") //"Endstops" // Max length 8 characters PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("挡块"); //"Endstops" // Max length 8 characters
#define MSG_MAIN _UxGT("主菜单") //"Main" PROGMEM Language_Str MSG_MAIN = _UxGT("主菜单"); //"Main"
#define MSG_AUTOSTART _UxGT("自动开始") //"Autostart" PROGMEM Language_Str MSG_AUTOSTART = _UxGT("自动开始"); //"Autostart"
#define MSG_DISABLE_STEPPERS _UxGT("关闭步进电机") //"Disable steppers" PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("关闭步进电机"); //"Disable steppers"
#define MSG_DEBUG_MENU _UxGT("调试菜单") // "Debug Menu" PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("调试菜单"); // "Debug Menu"
#define MSG_PROGRESS_BAR_TEST _UxGT("进度条测试") // "Progress Bar Test" PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("进度条测试"); // "Progress Bar Test"
#define MSG_AUTO_HOME _UxGT("回原点") //"Auto home" PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("回原点"); //"Auto home"
#define MSG_AUTO_HOME_X _UxGT("回X原位") //"Home X" PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("回X原位"); //"Home X"
#define MSG_AUTO_HOME_Y _UxGT("回Y原位") //"Home Y" PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("回Y原位"); //"Home Y"
#define MSG_AUTO_HOME_Z _UxGT("回Z原位") //"Home Z" PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("回Z原位"); //"Home Z"
#define MSG_LEVEL_BED_HOMING _UxGT("平台调平XYZ归原位") //"Homing XYZ" PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("平台调平XYZ归原位"); //"Homing XYZ"
#define MSG_LEVEL_BED_WAITING _UxGT("单击开始热床调平") //"Click to Begin" PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("单击开始热床调平"); //"Click to Begin"
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("下个热床调平点") //"Next Point" PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("下个热床调平点"); //"Next Point"
#define MSG_LEVEL_BED_DONE _UxGT("完成热床调平") //"Leveling Done!" PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("完成热床调平"); //"Leveling Done!"
#define MSG_Z_FADE_HEIGHT _UxGT("淡出高度") // "Fade Height" PROGMEM Language_Str MSG_Z_FADE_HEIGHT = _UxGT("淡出高度"); // "Fade Height"
#define MSG_SET_HOME_OFFSETS _UxGT("设置原点偏移") //"Set home offsets" PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("设置原点偏移"); //"Set home offsets"
#define MSG_HOME_OFFSETS_APPLIED _UxGT("偏移已启用") //"Offsets applied" PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("偏移已启用"); //"Offsets applied"
#define MSG_SET_ORIGIN _UxGT("设置原点") //"Set origin" PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("设置原点"); //"Set origin"
#define MSG_PREHEAT_1 _UxGT("预热" PREHEAT_1_LABEL) //"Preheat PREHEAT_2_LABEL" PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("预热 ") PREHEAT_1_LABEL; //"Preheat PREHEAT_2_LABEL"
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ") //MSG_PREHEAT_1 " " PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("预热 ") PREHEAT_1_LABEL " " LCD_STR_N0; //"Preheat PREHEAT_2_LABEL"
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" 全部") //MSG_PREHEAT_1 " All" PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("预热 ") PREHEAT_1_LABEL " " LCD_STR_N1; //"Preheat PREHEAT_2_LABEL"
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" 热床") //MSG_PREHEAT_1 " Bed" PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("预热 ") PREHEAT_1_LABEL " " LCD_STR_N2; //"Preheat PREHEAT_2_LABEL"
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" 设置") //MSG_PREHEAT_1 " conf" PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("预热 ") PREHEAT_1_LABEL " " LCD_STR_N3; //"Preheat PREHEAT_2_LABEL"
#define MSG_PREHEAT_2 _UxGT("预热" PREHEAT_2_LABEL) //"Preheat PREHEAT_2_LABEL" PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("预热 ") PREHEAT_1_LABEL " " LCD_STR_N4; //"Preheat PREHEAT_2_LABEL"
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ") //MSG_PREHEAT_2 " " PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("预热 ") PREHEAT_1_LABEL " " LCD_STR_N5; //"Preheat PREHEAT_2_LABEL"
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" 全部") //MSG_PREHEAT_2 " All" PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 喷嘴"); //MSG_PREHEAT_1 " "
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" 热床") //MSG_PREHEAT_2 " Bed" PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 喷嘴 ") LCD_STR_N0; //MSG_PREHEAT_1 " "
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" 设置") //MSG_PREHEAT_2 " conf" PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 喷嘴 ") LCD_STR_N1; //MSG_PREHEAT_1 " "
#define MSG_COOLDOWN _UxGT("降温") //"Cooldown" PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 喷嘴 ") LCD_STR_N2; //MSG_PREHEAT_1 " "
#define MSG_SWITCH_PS_ON _UxGT("电源打开") //"Switch power on" PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 喷嘴 ") LCD_STR_N3; //MSG_PREHEAT_1 " "
#define MSG_SWITCH_PS_OFF _UxGT("电源关闭") //"Switch power off" PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 喷嘴 ") LCD_STR_N4; //MSG_PREHEAT_1 " "
#define MSG_EXTRUDE _UxGT("挤出") //"Extrude" PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 喷嘴 ") LCD_STR_N5; //MSG_PREHEAT_1 " "
#define MSG_RETRACT _UxGT("回抽") //"Retract" PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 全部"); //MSG_PREHEAT_1 " All"
#define MSG_MOVE_AXIS _UxGT("移动轴") //"Move axis" PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 热床"); //MSG_PREHEAT_1 " Bed"
#define MSG_BED_LEVELING _UxGT("调平热床") //"Bed leveling" PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 设置"); //MSG_PREHEAT_1 " conf"
#define MSG_LEVEL_BED _UxGT("调平热床") //"Level bed" PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("预热 ") PREHEAT_2_LABEL; //"Preheat PREHEAT_2_LABEL"
#define MSG_LEVEL_CORNERS _UxGT("调平边角") // "Level corners" PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("预热 ") PREHEAT_2_LABEL " " LCD_STR_N0; //"Preheat PREHEAT_2_LABEL"
PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("预热 ") PREHEAT_2_LABEL " " LCD_STR_N1; //"Preheat PREHEAT_2_LABEL"
PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("预热 ") PREHEAT_2_LABEL " " LCD_STR_N2; //"Preheat PREHEAT_2_LABEL"
PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("预热 ") PREHEAT_2_LABEL " " LCD_STR_N3; //"Preheat PREHEAT_2_LABEL"
PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("预热 ") PREHEAT_2_LABEL " " LCD_STR_N4; //"Preheat PREHEAT_2_LABEL"
PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("预热 ") PREHEAT_2_LABEL " " LCD_STR_N5; //"Preheat PREHEAT_2_LABEL"
PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("预热 ") PREHEAT_2_LABEL _UxGT(" 喷嘴"); //MSG_PREHEAT_2 " "
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("预热 ") PREHEAT_2_LABEL _UxGT(" 喷嘴 ") LCD_STR_N0; //MSG_PREHEAT_2 " "
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("预热 ") PREHEAT_2_LABEL _UxGT(" 喷嘴 ") LCD_STR_N1; //MSG_PREHEAT_2 " "
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("预热 ") PREHEAT_2_LABEL _UxGT(" 喷嘴 ") LCD_STR_N2; //MSG_PREHEAT_2 " "
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("预热 ") PREHEAT_2_LABEL _UxGT(" 喷嘴 ") LCD_STR_N3; //MSG_PREHEAT_2 " "
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("预热 ") PREHEAT_2_LABEL _UxGT(" 喷嘴 ") LCD_STR_N4; //MSG_PREHEAT_2 " "
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("预热 ") PREHEAT_2_LABEL _UxGT(" 喷嘴 ") LCD_STR_N5; //MSG_PREHEAT_2 " "
PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("预热 ") PREHEAT_2_LABEL _UxGT(" 全部"); //MSG_PREHEAT_2 " All"
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("预热 ") PREHEAT_2_LABEL _UxGT(" 热床"); //MSG_PREHEAT_2 " Bed"
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("预热 ") PREHEAT_2_LABEL _UxGT(" 设置"); //MSG_PREHEAT_2 " conf"
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("降温"); //"Cooldown"
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("电源打开"); //"Switch power on"
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("电源关闭"); //"Switch power off"
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("挤出"); //"Extrude"
PROGMEM Language_Str MSG_RETRACT = _UxGT("回抽"); //"Retract"
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("移动轴"); //"Move axis"
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("调平热床"); //"Bed leveling"
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("调平热床"); //"Level bed"
PROGMEM Language_Str MSG_LEVEL_CORNERS = _UxGT("调平边角"); // "Level corners"
#define MSG_NEXT_CORNER _UxGT("下个边角") // "Next corner" PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("下个边角"); // "Next corner"
#define MSG_EDIT_MESH _UxGT("编辑网格") // "Edit Mesh" PROGMEM Language_Str MSG_EDIT_MESH = _UxGT("编辑网格"); // "Edit Mesh"
#define MSG_EDITING_STOPPED _UxGT("网格编辑已停止") // "Mesh Editing Stopped" PROGMEM Language_Str MSG_EDITING_STOPPED = _UxGT("网格编辑已停止"); // "Mesh Editing Stopped"
#define MSG_USER_MENU _UxGT("定制命令") // "Custom Commands" PROGMEM Language_Str MSG_USER_MENU = _UxGT("定制命令"); // "Custom Commands"
#define MSG_UBL_DOING_G29 _UxGT("执行G29") // "Doing G29" PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("执行G29"); // "Doing G29"
#define MSG_UBL_TOOLS _UxGT("UBL工具") // "UBL Tools" PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("UBL工具"); // "UBL Tools"
#define MSG_UBL_LEVEL_BED _UxGT("统一热床调平(UBL)") // "Unified Bed Leveling" PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("统一热床调平(UBL)"); // "Unified Bed Leveling"
#define MSG_UBL_MANUAL_MESH _UxGT("手工创设网格") // "Manually Build Mesh" PROGMEM Language_Str MSG_UBL_MANUAL_MESH = _UxGT("手工创设网格"); // "Manually Build Mesh"
#define MSG_UBL_BC_INSERT _UxGT("放置垫片并测量") // "Place shim & measure" PROGMEM Language_Str MSG_UBL_BC_INSERT = _UxGT("放置垫片并测量"); // "Place shim & measure"
#define MSG_UBL_BC_INSERT2 _UxGT("测量") // "Measure" PROGMEM Language_Str MSG_UBL_BC_INSERT2 = _UxGT("测量"); // "Measure"
#define MSG_UBL_BC_REMOVE _UxGT("移除并测量热床") // "Remove & measure bed" PROGMEM Language_Str MSG_UBL_BC_REMOVE = _UxGT("移除并测量热床"); // "Remove & measure bed"
#define MSG_UBL_MOVING_TO_NEXT _UxGT("移动到下一个") // "Moving to next" PROGMEM Language_Str MSG_UBL_MOVING_TO_NEXT = _UxGT("移动到下一个"); // "Moving to next"
#define MSG_UBL_ACTIVATE_MESH _UxGT("激活UBL") // "Activate UBL" PROGMEM Language_Str MSG_UBL_ACTIVATE_MESH = _UxGT("激活UBL"); // "Activate UBL"
#define MSG_UBL_DEACTIVATE_MESH _UxGT("关闭UBL") // "Deactivate UBL" PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("关闭UBL"); // "Deactivate UBL"
#define MSG_UBL_SET_TEMP_BED _UxGT("设置热床温度") // "Bed Temp" PROGMEM Language_Str MSG_UBL_SET_TEMP_BED = _UxGT("设置热床温度"); // "Bed Temp"
#define MSG_UBL_SET_TEMP_HOTEND _UxGT("热端温度") // "Hotend Temp" PROGMEM Language_Str MSG_UBL_SET_TEMP_HOTEND = _UxGT("热端温度"); // "Hotend Temp"
#define MSG_UBL_MESH_EDIT _UxGT("网格编辑") // "Mesh Edit" PROGMEM Language_Str MSG_UBL_MESH_EDIT = _UxGT("网格编辑"); // "Mesh Edit"
#define MSG_UBL_EDIT_CUSTOM_MESH _UxGT("编辑客户网格") // "Edit Custom Mesh" PROGMEM Language_Str MSG_UBL_EDIT_CUSTOM_MESH = _UxGT("编辑客户网格"); // "Edit Custom Mesh"
#define MSG_UBL_FINE_TUNE_MESH _UxGT("细调网格") // "Fine Tuning Mesh" PROGMEM Language_Str MSG_UBL_FINE_TUNE_MESH = _UxGT("细调网格"); // "Fine Tuning Mesh"
#define MSG_UBL_DONE_EDITING_MESH _UxGT("完成编辑网格") // "Done Editing Mesh" PROGMEM Language_Str MSG_UBL_DONE_EDITING_MESH = _UxGT("完成编辑网格"); // "Done Editing Mesh"
#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("创设客户网格") // "Build Custom Mesh" PROGMEM Language_Str MSG_UBL_BUILD_CUSTOM_MESH = _UxGT("创设客户网格"); // "Build Custom Mesh"
#define MSG_UBL_BUILD_MESH_MENU _UxGT("创设网格") // "Build Mesh" PROGMEM Language_Str MSG_UBL_BUILD_MESH_MENU = _UxGT("创设网格"); // "Build Mesh"
#define MSG_UBL_BUILD_MESH_M1 _UxGT("创设" PREHEAT_1_LABEL "网格") // "Build PREHEAT_1_LABEL Mesh" PROGMEM Language_Str MSG_UBL_BUILD_MESH_M1 = _UxGT("创设 ") PREHEAT_1_LABEL _UxGT(" 网格"); // "Build PREHEAT_1_LABEL Mesh"
#define MSG_UBL_BUILD_MESH_M2 _UxGT("创设" PREHEAT_2_LABEL "网格") // "Build PREHEAT_2_LABEL Mesh" PROGMEM Language_Str MSG_UBL_BUILD_MESH_M2 = _UxGT("创设 ") PREHEAT_2_LABEL _UxGT(" 网格"); // "Build PREHEAT_2_LABEL Mesh"
#define MSG_UBL_BUILD_COLD_MESH _UxGT("创设冷网格") // "Build Cold Mesh" PROGMEM Language_Str MSG_UBL_BUILD_COLD_MESH = _UxGT("创设冷网格"); // "Build Cold Mesh"
#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("调整网格高度") // "Adjust Mesh Height" PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_ADJUST = _UxGT("调整网格高度"); // "Adjust Mesh Height"
#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("高度合计") // "Height Amount" PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_AMOUNT = _UxGT("高度合计"); // "Height Amount"
#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("批准网格") // "Validate Mesh" PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_MENU = _UxGT("批准网格"); // "Validate Mesh"
#define MSG_UBL_VALIDATE_MESH_M1 _UxGT("批准" PREHEAT_1_LABEL "网格") // "Validate PREHEAT_1_LABEL Mesh" PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M1 = _UxGT("批准 ") PREHEAT_1_LABEL _UxGT(" 网格"); // "Validate PREHEAT_1_LABEL Mesh"
#define MSG_UBL_VALIDATE_MESH_M2 _UxGT("批准" PREHEAT_2_LABEL "网格") // "Validate PREHEAT_2_LABEL Mesh" PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M2 = _UxGT("批准 ") PREHEAT_2_LABEL _UxGT(" 网格"); // "Validate PREHEAT_2_LABEL Mesh"
#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("批准客户网格") // "Validate Custom Mesh" PROGMEM Language_Str MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("批准客户网格"); // "Validate Custom Mesh"
#define MSG_UBL_CONTINUE_MESH _UxGT("继续热床网格") // "Continue Bed Mesh" PROGMEM Language_Str MSG_UBL_CONTINUE_MESH = _UxGT("继续热床网格"); // "Continue Bed Mesh"
#define MSG_UBL_MESH_LEVELING _UxGT("网格调平") // "Mesh Leveling" PROGMEM Language_Str MSG_UBL_MESH_LEVELING = _UxGT("网格调平"); // "Mesh Leveling"
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("三点调平") // "3-Point Leveling" PROGMEM Language_Str MSG_UBL_3POINT_MESH_LEVELING = _UxGT("三点调平"); // "3-Point Leveling"
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("格子网格调平") // "Grid Mesh Leveling" PROGMEM Language_Str MSG_UBL_GRID_MESH_LEVELING = _UxGT("格子网格调平"); // "Grid Mesh Leveling"
#define MSG_UBL_MESH_LEVEL _UxGT("调平网格") // "Level Mesh" PROGMEM Language_Str MSG_UBL_MESH_LEVEL = _UxGT("调平网格"); // "Level Mesh"
#define MSG_UBL_SIDE_POINTS _UxGT("边点") // "Side Points" PROGMEM Language_Str MSG_UBL_SIDE_POINTS = _UxGT("边点"); // "Side Points"
#define MSG_UBL_MAP_TYPE _UxGT("图类型") // "Map Type" PROGMEM Language_Str MSG_UBL_MAP_TYPE = _UxGT("图类型"); // "Map Type"
#define MSG_UBL_OUTPUT_MAP _UxGT("输出网格图") // "Output Mesh Map" PROGMEM Language_Str MSG_UBL_OUTPUT_MAP = _UxGT("输出网格图"); // "Output Mesh Map"
#define MSG_UBL_OUTPUT_MAP_HOST _UxGT("输出到主机") // "Output for Host" PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_HOST = _UxGT("输出到主机"); // "Output for Host"
#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("输出到CSV") // "Output for CSV" PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_CSV = _UxGT("输出到CSV"); // "Output for CSV"
#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("输出到备份") // "Off Printer Backup" PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_BACKUP = _UxGT("输出到备份"); // "Off Printer Backup"
#define MSG_UBL_INFO_UBL _UxGT("输出UBL信息") // "Output UBL Info" PROGMEM Language_Str MSG_UBL_INFO_UBL = _UxGT("输出UBL信息"); // "Output UBL Info"
#define MSG_UBL_FILLIN_AMOUNT _UxGT("填充合计") // "Fill-in Amount" PROGMEM Language_Str MSG_UBL_FILLIN_AMOUNT = _UxGT("填充合计"); // "Fill-in Amount"
#define MSG_UBL_MANUAL_FILLIN _UxGT("手工填充") // "Manual Fill-in" PROGMEM Language_Str MSG_UBL_MANUAL_FILLIN = _UxGT("手工填充"); // "Manual Fill-in"
#define MSG_UBL_SMART_FILLIN _UxGT("聪明填充") // "Smart Fill-in" PROGMEM Language_Str MSG_UBL_SMART_FILLIN = _UxGT("聪明填充"); // "Smart Fill-in"
#define MSG_UBL_FILLIN_MESH _UxGT("填充网格") // "Fill-in Mesh" PROGMEM Language_Str MSG_UBL_FILLIN_MESH = _UxGT("填充网格"); // "Fill-in Mesh"
#define MSG_UBL_INVALIDATE_ALL _UxGT("作废所有的") // "Invalidate All" PROGMEM Language_Str MSG_UBL_INVALIDATE_ALL = _UxGT("作废所有的"); // "Invalidate All"
#define MSG_UBL_INVALIDATE_CLOSEST _UxGT("作废最近的") // "Invalidate Closest" PROGMEM Language_Str MSG_UBL_INVALIDATE_CLOSEST = _UxGT("作废最近的"); // "Invalidate Closest"
#define MSG_UBL_FINE_TUNE_ALL _UxGT("细调所有的") // "Fine Tune All" PROGMEM Language_Str MSG_UBL_FINE_TUNE_ALL = _UxGT("细调所有的"); // "Fine Tune All"
#define MSG_UBL_FINE_TUNE_CLOSEST _UxGT("细调最近的") // "Fine Tune Closest" PROGMEM Language_Str MSG_UBL_FINE_TUNE_CLOSEST = _UxGT("细调最近的"); // "Fine Tune Closest"
#define MSG_UBL_STORAGE_MESH_MENU _UxGT("网格存储") // "Mesh Storage" PROGMEM Language_Str MSG_UBL_STORAGE_MESH_MENU = _UxGT("网格存储"); // "Mesh Storage"
#define MSG_UBL_STORAGE_SLOT _UxGT("存储槽") // "Memory Slot" PROGMEM Language_Str MSG_UBL_STORAGE_SLOT = _UxGT("存储槽"); // "Memory Slot"
#define MSG_UBL_LOAD_MESH _UxGT("装载热床网格") // "Load Bed Mesh" PROGMEM Language_Str MSG_UBL_LOAD_MESH = _UxGT("装载热床网格"); // "Load Bed Mesh"
#define MSG_UBL_SAVE_MESH _UxGT("保存热床网格") // "Save Bed Mesh" PROGMEM Language_Str MSG_UBL_SAVE_MESH = _UxGT("保存热床网格"); // "Save Bed Mesh"
#define MSG_MESH_LOADED _UxGT("网格 %i 已装载") // "Mesh %i loaded" PROGMEM Language_Str MSG_MESH_LOADED = _UxGT("M117 网格 %i 已装载"); // "Mesh %i loaded"
#define MSG_MESH_SAVED _UxGT("网格 %i 已保存") // "Mesh %i saved" PROGMEM Language_Str MSG_MESH_SAVED = _UxGT("M117 网格 %i 已保存"); // "Mesh %i saved"
#define MSG_UBL_NO_STORAGE _UxGT("没有存储") // "No storage" PROGMEM Language_Str MSG_UBL_NO_STORAGE = _UxGT("没有存储"); // "No storage"
#define MSG_UBL_SAVE_ERROR _UxGT("错误: UBL保存") // "Err: UBL Save" PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("错误: UBL保存"); // "Err: UBL Save"
#define MSG_UBL_RESTORE_ERROR _UxGT("错误: UBL还原") // "Err: UBL Restore" PROGMEM Language_Str MSG_UBL_RESTORE_ERROR = _UxGT("错误: UBL还原"); // "Err: UBL Restore"
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Z偏移已停止") // "Z-Offset Stopped" PROGMEM Language_Str MSG_UBL_Z_OFFSET_STOPPED = _UxGT("Z偏移已停止"); // "Z-Offset Stopped"
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("一步步UBL") // "Step-By-Step UBL" PROGMEM Language_Str MSG_UBL_STEP_BY_STEP_MENU = _UxGT("一步步UBL"); // "Step-By-Step UBL"
PROGMEM Language_Str MSG_UBL_1_BUILD_COLD_MESH = _UxGT("1. 创设冷网格");
PROGMEM Language_Str MSG_UBL_2_SMART_FILLIN = _UxGT("2. 聪明填充");
PROGMEM Language_Str MSG_UBL_3_VALIDATE_MESH_MENU = _UxGT("3. 批准网格");
PROGMEM Language_Str MSG_UBL_4_FINE_TUNE_ALL = _UxGT("4. 细调所有的");
PROGMEM Language_Str MSG_UBL_5_VALIDATE_MESH_MENU = _UxGT("5. 批准网格");
PROGMEM Language_Str MSG_UBL_6_FINE_TUNE_ALL = _UxGT("6. 细调所有的");
PROGMEM Language_Str MSG_UBL_7_SAVE_MESH = _UxGT("7. 保存热床网格");
#define MSG_LED_CONTROL _UxGT("灯管控制") // "LED Control") PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("灯管控制"); // "LED Control")
#define MSG_LEDS _UxGT("灯") // "Lights") PROGMEM Language_Str MSG_LEDS = _UxGT(""); // "Lights")
#define MSG_LED_PRESETS _UxGT("灯预置") // "Light Presets") PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("灯预置"); // "Light Presets")
#define MSG_SET_LEDS_RED _UxGT("红") // "Red") PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT(""); // "Red")
#define MSG_SET_LEDS_ORANGE _UxGT("橙") // "Orange") PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT(""); // "Orange")
#define MSG_SET_LEDS_YELLOW _UxGT("黄") // "Yellow") PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT(""); // "Yellow")
#define MSG_SET_LEDS_GREEN _UxGT("绿") // "Green") PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("绿"); // "Green")
#define MSG_SET_LEDS_BLUE _UxGT("蓝") // "Blue") PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT(""); // "Blue")
#define MSG_SET_LEDS_INDIGO _UxGT("青") // "Indigo") PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT(""); // "Indigo")
#define MSG_SET_LEDS_VIOLET _UxGT("紫") // "Violet") PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT(""); // "Violet")
#define MSG_SET_LEDS_WHITE _UxGT("白") // "White") PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT(""); // "White")
#define MSG_SET_LEDS_DEFAULT _UxGT("缺省") // "Default") PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("缺省"); // "Default")
#define MSG_CUSTOM_LEDS _UxGT("定制灯") // "Custom Lights") PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("定制灯"); // "Custom Lights")
#define MSG_INTENSITY_R _UxGT("红饱和度") // "Red Intensity") PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("红饱和度"); // "Red Intensity")
#define MSG_INTENSITY_G _UxGT("绿饱和度") // "Green Intensity") PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("绿饱和度"); // "Green Intensity")
#define MSG_INTENSITY_B _UxGT("蓝饱和度") // "Blue Intensity") PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("蓝饱和度"); // "Blue Intensity")
#define MSG_INTENSITY_W _UxGT("白饱和度") // "White Intensity") PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("白饱和度"); // "White Intensity")
#define MSG_LED_BRIGHTNESS _UxGT("亮度") // "Brightness") PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("亮度"); // "Brightness")
#define MSG_MOVING _UxGT("移动 ...") // "Moving...") PROGMEM Language_Str MSG_MOVING = _UxGT("移动 ..."); // "Moving...")
#define MSG_FREE_XY _UxGT("释放 XY") // "Free XY") PROGMEM Language_Str MSG_FREE_XY = _UxGT("释放 XY"); // "Free XY")
#define MSG_MOVE_X _UxGT("移动X") //"Move X" PROGMEM Language_Str MSG_MOVE_X = _UxGT("移动X"); //"Move X"
#define MSG_MOVE_Y _UxGT("移动Y") //"Move Y" PROGMEM Language_Str MSG_MOVE_Y = _UxGT("移动Y"); //"Move Y"
#define MSG_MOVE_Z _UxGT("移动Z") //"Move Z" PROGMEM Language_Str MSG_MOVE_Z = _UxGT("移动Z"); //"Move Z"
#define MSG_MOVE_E _UxGT("挤出机") //"Extruder" PROGMEM Language_Str MSG_MOVE_E = _UxGT("挤出机"); //"Extruder"
#define MSG_MOVE_Z_DIST _UxGT("移动 %s mm") //"Move 0.025mm" PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("挤出机 ") LCD_STR_E0; //"Extruder"
#define MSG_MOVE_01MM _UxGT("移动 0.1 mm") //"Move 0.1mm" PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("挤出机 ") LCD_STR_E1; //"Extruder"
#define MSG_MOVE_1MM _UxGT("移动 1 mm") //"Move 1mm" PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("挤出机 ") LCD_STR_E2; //"Extruder"
#define MSG_MOVE_10MM _UxGT("移动 10 mm") //"Move 10mm" PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("挤出机 ") LCD_STR_E3; //"Extruder"
#define MSG_SPEED _UxGT("速率") //"Speed" PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("挤出机 ") LCD_STR_E4; //"Extruder"
#define MSG_BED_Z _UxGT("热床Z") //"Bed Z" PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("挤出机 ") LCD_STR_E5; //"Extruder"
#define MSG_NOZZLE _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 喷嘴") //"Nozzle" 噴嘴 PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("移动 %s mm"); //"Move 0.025mm"
#define MSG_BED _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 热床") //"Bed" PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("移动 0.1 mm"); //"Move 0.1mm"
#define MSG_FAN_SPEED _UxGT("风扇速率") //"Fan speed" PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("移动 1 mm"); //"Move 1mm"
#define MSG_EXTRA_FAN_SPEED _UxGT("额外风扇速率") // "Extra fan speed" PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("移动 10 mm"); //"Move 10mm"
#define MSG_FLOW _UxGT("挤出速率") //"Flow" PROGMEM Language_Str MSG_SPEED = _UxGT("速率"); //"Speed"
#define MSG_CONTROL _UxGT("控制") //"Control" PROGMEM Language_Str MSG_BED_Z = _UxGT("热床Z"); //"Bed Z"
#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 最小") //" " LCD_STR_THERMOMETER " Min" PROGMEM Language_Str MSG_NOZZLE = " " LCD_STR_THERMOMETER _UxGT(" 喷嘴"); //"Nozzle" 噴嘴
#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 最大") //" " LCD_STR_THERMOMETER " Max" PROGMEM Language_Str MSG_NOZZLE_0 = " " LCD_STR_THERMOMETER _UxGT(" 喷嘴 ") LCD_STR_N0; //"Nozzle" 噴嘴
#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 因数") //" " LCD_STR_THERMOMETER " Fact" PROGMEM Language_Str MSG_NOZZLE_1 = " " LCD_STR_THERMOMETER _UxGT(" 喷嘴 ") LCD_STR_N1; //"Nozzle" 噴嘴
#define MSG_AUTOTEMP _UxGT("自动控温") //"Autotemp" PROGMEM Language_Str MSG_NOZZLE_2 = " " LCD_STR_THERMOMETER _UxGT(" 喷嘴 ") LCD_STR_N2; //"Nozzle" 噴嘴
#define MSG_LCD_ON _UxGT("开") //"On" PROGMEM Language_Str MSG_NOZZLE_3 = " " LCD_STR_THERMOMETER _UxGT(" 喷嘴 ") LCD_STR_N3; //"Nozzle" 噴嘴
#define MSG_LCD_OFF _UxGT("关") //"Off" PROGMEM Language_Str MSG_NOZZLE_4 = " " LCD_STR_THERMOMETER _UxGT(" 喷嘴 ") LCD_STR_N4; //"Nozzle" 噴嘴
#define MSG_PID_P _UxGT("PID-P") //"PID-P" PROGMEM Language_Str MSG_NOZZLE_5 = " " LCD_STR_THERMOMETER _UxGT(" 喷嘴 ") LCD_STR_N5; //"Nozzle" 噴嘴
#define MSG_PID_I _UxGT("PID-I") //"PID-I" PROGMEM Language_Str MSG_BED = " " LCD_STR_THERMOMETER _UxGT(" 热床"); //"Bed"
#define MSG_PID_D _UxGT("PID-D") //"PID-D" PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("风扇速率"); //"Fan speed"
#define MSG_PID_C _UxGT("PID-C") //"PID-C" PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("风扇速率 1"); //"Fan speed"
#define MSG_SELECT _UxGT("选择") //"Select" PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("风扇速率 2"); //"Fan speed"
#define MSG_ACC _UxGT("加速度") //"Accel" acceleration PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("风扇速率 3"); //"Fan speed"
#define MSG_JERK _UxGT("抖动速率") // "Jerk" PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("额外风扇速率"); // "Extra fan speed"
#if IS_KINEMATIC PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_1 = _UxGT("额外风扇速率 1"); // "Extra fan speed"
#define MSG_VA_JERK _UxGT("A轴抖动速率") //"Va-jerk" PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_2 = _UxGT("额外风扇速率 2"); // "Extra fan speed"
#define MSG_VB_JERK _UxGT("B轴抖动速率") //"Vb-jerk" PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_3 = _UxGT("额外风扇速率 3"); // "Extra fan speed"
#define MSG_VC_JERK _UxGT("C轴抖动速率") //"Vc-jerk" PROGMEM Language_Str MSG_FLOW = _UxGT("挤出速率"); //"Flow"
#else PROGMEM Language_Str MSG_FLOW_0 = _UxGT("挤出速率 ") LCD_STR_N0; //"Flow"
#define MSG_VA_JERK _UxGT("X轴抖动速率") //"Vx-jerk" PROGMEM Language_Str MSG_FLOW_1 = _UxGT("挤出速率 ") LCD_STR_N1; //"Flow"
#define MSG_VB_JERK _UxGT("Y轴抖动速率") //"Vy-jerk" PROGMEM Language_Str MSG_FLOW_2 = _UxGT("挤出速率 ") LCD_STR_N2; //"Flow"
#define MSG_VC_JERK _UxGT("Z轴抖动速率") //"Vz-jerk" PROGMEM Language_Str MSG_FLOW_3 = _UxGT("挤出速率 ") LCD_STR_N3; //"Flow"
#endif PROGMEM Language_Str MSG_FLOW_4 = _UxGT("挤出速率 ") LCD_STR_N4; //"Flow"
#define MSG_VE_JERK _UxGT("挤出机抖动速率") //"Ve-jerk" PROGMEM Language_Str MSG_FLOW_5 = _UxGT("挤出速率 ") LCD_STR_N5; //"Flow"
#define MSG_VELOCITY _UxGT("速度") // "Velocity" PROGMEM Language_Str MSG_CONTROL = _UxGT("控制"); //"Control"
#define MSG_VMAX _UxGT("最大进料速率") //"Vmax " max_feedrate_mm_s PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" 最小"); //" " LCD_STR_THERMOMETER " Min"
#define MSG_VMIN _UxGT("最小进料速率") //"Vmin" min_feedrate_mm_s PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" 最大"); //" " LCD_STR_THERMOMETER " Max"
#define MSG_VTRAV_MIN _UxGT("最小移动速率") //"VTrav min" min_travel_feedrate_mm_s, (target) speed of the move PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" 因数"); //" " LCD_STR_THERMOMETER " Fact"
#define MSG_ACCELERATION _UxGT("加速度") // "Acceleration" PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("自动控温"); //"Autotemp"
#define MSG_AMAX _UxGT("最大打印加速度") //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves PROGMEM Language_Str MSG_LCD_ON = _UxGT(""); //"On"
#define MSG_A_RETRACT _UxGT("收进加速度") //"A-retract" retract_acceleration, E acceleration in mm/s^2 for retracts PROGMEM Language_Str MSG_LCD_OFF = _UxGT(""); //"Off"
#define MSG_A_TRAVEL _UxGT("非打印移动加速度") //"A-travel" travel_acceleration, X, Y, Z acceleration in mm/s^2 for travel (non printing) moves PROGMEM Language_Str MSG_PID_P = _UxGT("PID-P"); //"PID-P"
#define MSG_STEPS_PER_MM _UxGT("轴步数/mm") //"Steps/mm" axis_steps_per_mm, axis steps-per-unit G92 PROGMEM Language_Str MSG_PID_P_E0 = _UxGT("PID-P ") LCD_STR_E0;
#if IS_KINEMATIC PROGMEM Language_Str MSG_PID_P_E1 = _UxGT("PID-P ") LCD_STR_E1;
#define MSG_ASTEPS _UxGT("A轴步数/mm") //"Asteps/mm" PROGMEM Language_Str MSG_PID_P_E2 = _UxGT("PID-P ") LCD_STR_E2;
#define MSG_BSTEPS _UxGT("B轴步数/mm") //"Bsteps/mm" PROGMEM Language_Str MSG_PID_P_E3 = _UxGT("PID-P ") LCD_STR_E3;
#define MSG_CSTEPS _UxGT("C轴步数/mm") //"Csteps/mm" PROGMEM Language_Str MSG_PID_P_E4 = _UxGT("PID-P ") LCD_STR_E4;
#else PROGMEM Language_Str MSG_PID_P_E5 = _UxGT("PID-P ") LCD_STR_E5;
#define MSG_ASTEPS _UxGT("X轴步数/mm") //"Xsteps/mm" PROGMEM Language_Str MSG_PID_I = _UxGT("PID-I"); //"PID-I"
#define MSG_BSTEPS _UxGT("Y轴步数/mm") //"Ysteps/mm" PROGMEM Language_Str MSG_PID_I_E0 = _UxGT("PID-I ") LCD_STR_E0;
#define MSG_CSTEPS _UxGT("Z轴步数/mm") //"Zsteps/mm" PROGMEM Language_Str MSG_PID_I_E1 = _UxGT("PID-I ") LCD_STR_E1;
#endif PROGMEM Language_Str MSG_PID_I_E2 = _UxGT("PID-I ") LCD_STR_E2;
#define MSG_ESTEPS _UxGT("挤出机步数/mm") //"Esteps/mm" PROGMEM Language_Str MSG_PID_I_E3 = _UxGT("PID-I ") LCD_STR_E3;
#define MSG_E0_STEPS _UxGT("挤出机1步数/mm") //"E1steps/mm" PROGMEM Language_Str MSG_PID_I_E4 = _UxGT("PID-I ") LCD_STR_E4;
#define MSG_E1_STEPS _UxGT("挤出机2步数/mm") //"E2steps/mm" PROGMEM Language_Str MSG_PID_I_E5 = _UxGT("PID-I ") LCD_STR_E5;
#define MSG_E2_STEPS _UxGT("挤出机3步数/mm") //"E3steps/mm" PROGMEM Language_Str MSG_PID_D = _UxGT("PID-D"); //"PID-D"
#define MSG_E3_STEPS _UxGT("挤出机4步数/mm") //"E4steps/mm" PROGMEM Language_Str MSG_PID_D_E0 = _UxGT("PID-D ") LCD_STR_E0;
#define MSG_E4_STEPS _UxGT("挤出机5步数/mm") //"E5steps/mm" PROGMEM Language_Str MSG_PID_D_E1 = _UxGT("PID-D ") LCD_STR_E1;
#define MSG_E5_STEPS _UxGT("挤出机6步数/mm") //"E6steps/mm" PROGMEM Language_Str MSG_PID_D_E2 = _UxGT("PID-D ") LCD_STR_E2;
#define MSG_TEMPERATURE _UxGT("温度") //"Temperature" PROGMEM Language_Str MSG_PID_D_E3 = _UxGT("PID-D ") LCD_STR_E3;
#define MSG_MOTION _UxGT("运动") //"Motion" PROGMEM Language_Str MSG_PID_D_E4 = _UxGT("PID-D ") LCD_STR_E4;
#define MSG_FILAMENT _UxGT("丝料测容") //"Filament" menu_advanced_filament PROGMEM Language_Str MSG_PID_D_E5 = _UxGT("PID-D ") LCD_STR_E5;
#define MSG_VOLUMETRIC_ENABLED _UxGT("测容积mm³") //"E in mm3" volumetric_enabled PROGMEM Language_Str MSG_PID_C = _UxGT("PID-C"); //"PID-C"
#define MSG_FILAMENT_DIAM _UxGT("丝料直径") //"Fil. Dia." PROGMEM Language_Str MSG_PID_C_E0 = _UxGT("PID-C ") LCD_STR_E0;
#define MSG_FILAMENT_UNLOAD _UxGT("卸载 mm") // "Unload mm" PROGMEM Language_Str MSG_PID_C_E1 = _UxGT("PID-C ") LCD_STR_E1;
#define MSG_FILAMENT_LOAD _UxGT("装载 mm") // "Load mm" PROGMEM Language_Str MSG_PID_C_E2 = _UxGT("PID-C ") LCD_STR_E2;
#define MSG_ADVANCE_K _UxGT("Advance K") // "Advance K" PROGMEM Language_Str MSG_PID_C_E3 = _UxGT("PID-C ") LCD_STR_E3;
#define MSG_CONTRAST _UxGT("LCD对比度") //"LCD contrast" PROGMEM Language_Str MSG_PID_C_E4 = _UxGT("PID-C ") LCD_STR_E4;
#define MSG_STORE_EEPROM _UxGT("保存设置") //"Store memory" PROGMEM Language_Str MSG_PID_C_E5 = _UxGT("PID-C ") LCD_STR_E5;
#define MSG_LOAD_EEPROM _UxGT("装载设置") //"Load memory" PROGMEM Language_Str MSG_SELECT = _UxGT("选择"); //"Select"
#define MSG_RESTORE_FAILSAFE _UxGT("恢复安全值") //"Restore failsafe" PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("选择 ") LCD_STR_E0;
#define MSG_INIT_EEPROM _UxGT("初始化设置") // "Initialize EEPROM" PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("选择 ") LCD_STR_E1;
#define MSG_REFRESH _UxGT("刷新") //"Refresh" PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("选择 ") LCD_STR_E2;
#define MSG_WATCH _UxGT("信息屏") //"Info screen" PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("选择 ") LCD_STR_E3;
#define MSG_PREPARE _UxGT("准备") //"Prepare" PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("选择 ") LCD_STR_E4;
#define MSG_TUNE _UxGT("调整") //"Tune" PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("选择 ") LCD_STR_E5;
#define MSG_PAUSE_PRINT _UxGT("暂停打印") //"Pause print" PROGMEM Language_Str MSG_ACC = _UxGT("加速度"); //"Accel" acceleration
#define MSG_RESUME_PRINT _UxGT("恢复打印") //"Resume print" PROGMEM Language_Str MSG_JERK = _UxGT("抖动速率"); // "Jerk"
#define MSG_STOP_PRINT _UxGT("停止打印") //"Stop print" PROGMEM Language_Str MSG_VA_JERK = _UxGT("轴抖动速率") LCD_STR_A; //"Va-jerk"
#define MSG_MEDIA_MENU _UxGT("从存储卡上打印") //"Print from SD" PROGMEM Language_Str MSG_VB_JERK = _UxGT("轴抖动速率") LCD_STR_B; //"Vb-jerk"
#define MSG_NO_MEDIA _UxGT("无存储卡") //"No SD card" PROGMEM Language_Str MSG_VC_JERK = _UxGT("轴抖动速率") LCD_STR_C; //"Vc-jerk"
#define MSG_DWELL _UxGT("休眠中 ...") //"Sleep..." PROGMEM Language_Str MSG_VE_JERK = _UxGT("挤出机抖动速率"); //"Ve-jerk"
#define MSG_USERWAIT _UxGT("点击继续 ...") //"Click to resume..." PROGMEM Language_Str MSG_VELOCITY = _UxGT("速度"); // "Velocity"
#define MSG_PRINT_PAUSED _UxGT("暫停打印") // "Print paused" PROGMEM Language_Str MSG_VMAX_A = _UxGT("最大进料速率") LCD_STR_A; //"Vmax " max_feedrate_mm_s
#define MSG_PRINT_ABORTED _UxGT("已取消打印") //"Print aborted" PROGMEM Language_Str MSG_VMAX_B = _UxGT("最大进料速率") LCD_STR_B; //"Vmax " max_feedrate_mm_s
#define MSG_NO_MOVE _UxGT("无移动") //"No move." PROGMEM Language_Str MSG_VMAX_C = _UxGT("最大进料速率") LCD_STR_C; //"Vmax " max_feedrate_mm_s
#define MSG_KILLED _UxGT("已杀掉") //"KILLED. " PROGMEM Language_Str MSG_VMAX_E = _UxGT("最大进料速率") LCD_STR_E; //"Vmax " max_feedrate_mm_s
#define MSG_STOPPED _UxGT("已停止") //"STOPPED. " PROGMEM Language_Str MSG_VMAX_E0 = _UxGT("最大进料速率 ") LCD_STR_E0; //"Vmax " max_feedrate_mm_s
#define MSG_CONTROL_RETRACT _UxGT("回抽长度mm") //"Retract mm" retract_length, retract length (positive mm) PROGMEM Language_Str MSG_VMAX_E1 = _UxGT("最大进料速率 ") LCD_STR_E1; //"Vmax " max_feedrate_mm_s
#define MSG_CONTROL_RETRACT_SWAP _UxGT("换手回抽长度mm") //"Swap Re.mm" swap_retract_length, swap retract length (positive mm), for extruder change PROGMEM Language_Str MSG_VMAX_E2 = _UxGT("最大进料速率 ") LCD_STR_E2; //"Vmax " max_feedrate_mm_s
#define MSG_CONTROL_RETRACTF _UxGT("回抽速率mm/s") //"Retract V" retract_feedrate_mm_s, feedrate for retracting (mm/s) PROGMEM Language_Str MSG_VMAX_E3 = _UxGT("最大进料速率 ") LCD_STR_E3; //"Vmax " max_feedrate_mm_s
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Hop mm") //"Hop mm" retract_zraise, retract Z-lift PROGMEM Language_Str MSG_VMAX_E4 = _UxGT("最大进料速率 ") LCD_STR_E4; //"Vmax " max_feedrate_mm_s
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("回抽恢复长度mm") //"UnRet +mm" retract_recover_extra, additional recover length (mm, added to retract length when recovering) PROGMEM Language_Str MSG_VMAX_E5 = _UxGT("最大进料速率 ") LCD_STR_E5; //"Vmax " max_feedrate_mm_s
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("换手回抽恢复长度mm") //"S UnRet+mm" swap_retract_recover_extra, additional swap recover length (mm, added to retract length when recovering from extruder change) PROGMEM Language_Str MSG_VMIN = _UxGT("最小进料速率"); //"Vmin" min_feedrate_mm_s
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("回抽恢复后进料速率mm/s") //"UnRet V" retract_recover_feedrate_mm_s, feedrate for recovering from retraction (mm/s) PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("最小移动速率"); //"VTrav min" min_travel_feedrate_mm_s, (target) speed of the move
#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V") // "S UnRet V" PROGMEM Language_Str MSG_ACCELERATION = _UxGT("加速度"); // "Acceleration"
#define MSG_AUTORETRACT _UxGT("自动抽回") //"AutoRetr." autoretract_enabled, PROGMEM Language_Str MSG_AMAX_A = _UxGT("最大打印加速度") LCD_STR_A; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves
#define MSG_FILAMENTCHANGE _UxGT("更换丝料") //"Change filament" PROGMEM Language_Str MSG_AMAX_B = _UxGT("最大打印加速度") LCD_STR_B; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves
#define MSG_FILAMENTLOAD _UxGT("装载丝料") // "Load filament" PROGMEM Language_Str MSG_AMAX_C = _UxGT("最大打印加速度") LCD_STR_C; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves
#define MSG_FILAMENTUNLOAD _UxGT("卸载丝料") // "Unload filament" PROGMEM Language_Str MSG_AMAX_E = _UxGT("最大打印加速度") LCD_STR_E; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves
#define MSG_FILAMENTUNLOAD_ALL _UxGT("卸载全部") // "Unload All" PROGMEM Language_Str MSG_AMAX_E0 = _UxGT("最大打印加速度 ") LCD_STR_E0; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves
#define MSG_INIT_MEDIA _UxGT("初始化存储卡") //"Init. SD card" PROGMEM Language_Str MSG_AMAX_E1 = _UxGT("最大打印加速度 ") LCD_STR_E1; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves
#define MSG_CHANGE_MEDIA _UxGT("更换存储卡") //"Change SD card" PROGMEM Language_Str MSG_AMAX_E2 = _UxGT("最大打印加速度 ") LCD_STR_E2; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves
#define MSG_ZPROBE_OUT _UxGT("Z探针在热床之外") //"Z probe out. bed" Z probe is not within the physical limits PROGMEM Language_Str MSG_AMAX_E3 = _UxGT("最大打印加速度 ") LCD_STR_E3; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves
#define MSG_SKEW_FACTOR _UxGT("偏斜因数") // "Skew Factor" PROGMEM Language_Str MSG_AMAX_E4 = _UxGT("最大打印加速度 ") LCD_STR_E4; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves
#define MSG_BLTOUCH _UxGT("BLTouch") // "BLTouch" PROGMEM Language_Str MSG_AMAX_E5 = _UxGT("最大打印加速度 ") LCD_STR_E5; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves
#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch 自检") // "BLTouch Self-Test" PROGMEM Language_Str MSG_A_RETRACT = _UxGT("收进加速度"); //"A-retract" retract_acceleration, E acceleration in mm/s^2 for retracts
#define MSG_BLTOUCH_RESET _UxGT("重置BLTouch") // "Reset BLTouch" PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("非打印移动加速度"); //"A-travel" travel_acceleration, X, Y, Z acceleration in mm/s^2 for travel (non printing) moves
#define MSG_BLTOUCH_DEPLOY _UxGT("部署BLTouch") // "Deploy BLTouch" PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("轴步数/mm"); //"Steps/mm" axis_steps_per_mm, axis steps-per-unit G92
#define MSG_BLTOUCH_STOW _UxGT("装载BLTouch") // "Stow BLTouch" PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("轴步数/mm"); //"Asteps/mm"
#define MSG_HOME_FIRST _UxGT("归位 %s%s%s 先") //"Home ... first" PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("轴步数/mm"); //"Bsteps/mm"
#define MSG_ZPROBE_ZOFFSET _UxGT("Z偏移") //"Z Offset" PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("轴步数/mm"); //"Csteps/mm"
#define MSG_BABYSTEP_X _UxGT("微量调整X轴") //"Babystep X" lcd_babystep_x, Babystepping enables the user to control the axis in tiny amounts PROGMEM Language_Str MSG_E_STEPS = _UxGT("挤出机步数/mm"); //"Esteps/mm"
#define MSG_BABYSTEP_Y _UxGT("微量调整Y轴") //"Babystep Y" PROGMEM Language_Str MSG_E0_STEPS = _UxGT("挤出机") LCD_STR_N0 _UxGT("步数/mm");
#define MSG_BABYSTEP_Z _UxGT("微量调整Z轴") //"Babystep Z" PROGMEM Language_Str MSG_E1_STEPS = _UxGT("挤出机") LCD_STR_N1 _UxGT("步数/mm");
#define MSG_ENDSTOP_ABORT _UxGT("挡块终止") //"Endstop abort" PROGMEM Language_Str MSG_E2_STEPS = _UxGT("挤出机") LCD_STR_N2 _UxGT("步数/mm");
#define MSG_HEATING_FAILED_LCD _UxGT("加热失败") //"Heating failed" PROGMEM Language_Str MSG_E3_STEPS = _UxGT("挤出机") LCD_STR_N3 _UxGT("步数/mm");
#define MSG_ERR_REDUNDANT_TEMP _UxGT("错误REDUNDANT TEMP") //"Err: REDUNDANT TEMP" PROGMEM Language_Str MSG_E4_STEPS = _UxGT("挤出机") LCD_STR_N4 _UxGT("步数/mm");
#define MSG_THERMAL_RUNAWAY _UxGT("温控失控") //"THERMAL RUNAWAY" PROGMEM Language_Str MSG_E5_STEPS = _UxGT("挤出机") LCD_STR_N5 _UxGT("步数/mm");
#define MSG_ERR_MAXTEMP _UxGT("错误:最高温度") //"Err: MAXTEMP" PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("温度"); //"Temperature"
#define MSG_ERR_MINTEMP _UxGT("错误:最低温度") //"Err: MINTEMP" PROGMEM Language_Str MSG_MOTION = _UxGT("运动"); //"Motion"
#define MSG_ERR_MAXTEMP_BED _UxGT("错误:最高热床温度") //"Err: MAXTEMP BED" PROGMEM Language_Str MSG_FILAMENT = _UxGT("丝料测容"); //"Filament" menu_advanced_filament
#define MSG_ERR_MINTEMP_BED _UxGT("错误:最低热床温度") //"Err: MINTEMP BED" PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("测容积mm³"); //"E in mm3" volumetric_enabled
#define MSG_ERR_Z_HOMING _UxGT("归位 XY 先") // "Home XY First" PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("丝料直径"); //"Fil. Dia."
#define MSG_HALTED _UxGT("打印停机") //"PRINTER HALTED" PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("丝料直径 ") LCD_STR_E0;
#define MSG_PLEASE_RESET _UxGT("请重置") //"Please reset" PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("丝料直径 ") LCD_STR_E1;
#define MSG_SHORT_DAY _UxGT("天") //"d" // One character only PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("丝料直径 ") LCD_STR_E2;
#define MSG_SHORT_HOUR _UxGT("时") //"h" // One character only PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("丝料直径 ") LCD_STR_E3;
#define MSG_SHORT_MINUTE _UxGT("分") //"m" // One character only PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("丝料直径 ") LCD_STR_E4;
#define MSG_HEATING _UxGT("加热中 ...") //"Heating..." PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("丝料直径 ") LCD_STR_E5;
#define MSG_BED_HEATING _UxGT("加热热床中 ...") //"Bed Heating..." PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("卸载 mm"); // "Unload mm"
#define MSG_DELTA_CALIBRATE _UxGT("⊿校准") //"Delta Calibration" PROGMEM Language_Str MSG_FILAMENT_LOAD = _UxGT("装载 mm"); // "Load mm"
#define MSG_DELTA_CALIBRATE_X _UxGT("⊿校准X") //"Calibrate X" PROGMEM Language_Str MSG_CONTRAST = _UxGT("LCD对比度"); //"LCD contrast"
#define MSG_DELTA_CALIBRATE_Y _UxGT("⊿校准Y") //"Calibrate Y" PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("保存设置"); //"Store memory"
#define MSG_DELTA_CALIBRATE_Z _UxGT("⊿校准Z") //"Calibrate Z" PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("装载设置"); //"Load memory"
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("⊿校准中心") //"Calibrate Center" PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("恢复安全值"); //"Restore failsafe"
#define MSG_DELTA_SETTINGS _UxGT("⊿设置") // "Delta Settings" PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("初始化设置"); // "Initialize EEPROM"
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("⊿自动校准") // "Auto Calibration" PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("刷新"); //"Refresh"
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("设置⊿高度") // "Set Delta Height" PROGMEM Language_Str MSG_WATCH = _UxGT("信息屏"); //"Info screen"
#define MSG_DELTA_DIAG_ROD _UxGT("⊿斜柱") // "Diag Rod" PROGMEM Language_Str MSG_PREPARE = _UxGT("准备"); //"Prepare"
#define MSG_DELTA_HEIGHT _UxGT("⊿高度") // "Height" PROGMEM Language_Str MSG_TUNE = _UxGT("调整"); //"Tune"
#define MSG_DELTA_RADIUS _UxGT("⊿半径") // "Radius" PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("暂停打印"); //"Pause print"
#define MSG_INFO_MENU _UxGT("关于打印机") //"About Printer" PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("恢复打印"); //"Resume print"
#define MSG_INFO_PRINTER_MENU _UxGT("打印机信息") //"Printer Info" PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("停止打印"); //"Stop print"
#define MSG_3POINT_LEVELING _UxGT("三点调平") // "3-Point Leveling" PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("从存储卡上打印"); //"Print from SD"
#define MSG_LINEAR_LEVELING _UxGT("线性调平") // "Linear Leveling" PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("无存储卡"); //"No SD card"
#define MSG_BILINEAR_LEVELING _UxGT("双线性调平") // "Bilinear Leveling" PROGMEM Language_Str MSG_DWELL = _UxGT("休眠中 ..."); //"Sleep..."
#define MSG_UBL_LEVELING _UxGT("统一热床调平(UBL)") // "Unified Bed Leveling" PROGMEM Language_Str MSG_USERWAIT = _UxGT("点击继续 ..."); //"Click to resume..."
#define MSG_MESH_LEVELING _UxGT("网格调平") // "Mesh Leveling" PROGMEM Language_Str MSG_PRINT_PAUSED = _UxGT("暫停打印"); // "Print paused"
#define MSG_INFO_STATS_MENU _UxGT("打印机统计") //"Printer Stats" PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("已取消打印"); //"Print aborted"
#define MSG_INFO_BOARD_MENU _UxGT("主板信息") //"Board Info" PROGMEM Language_Str MSG_NO_MOVE = _UxGT("无移动"); //"No move."
#define MSG_INFO_THERMISTOR_MENU _UxGT("温度计") //"Thermistors" PROGMEM Language_Str MSG_KILLED = _UxGT("已杀掉"); //"KILLED. "
#define MSG_INFO_EXTRUDERS _UxGT("挤出机") //"Extruders" PROGMEM Language_Str MSG_STOPPED = _UxGT("已停止"); //"STOPPED. "
#define MSG_INFO_BAUDRATE _UxGT("波特率") //"Baud" PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("回抽长度mm"); //"Retract mm" retract_length, retract length (positive mm)
#define MSG_INFO_PROTOCOL _UxGT("协议") //"Protocol" PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("换手回抽长度mm"); //"Swap Re.mm" swap_retract_length, swap retract length (positive mm), for extruder change
#define MSG_CASE_LIGHT _UxGT("外壳灯") // "Case light" PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("回抽速率mm/s"); //"Retract V" retract_feedrate_mm_s, feedrate for retracting (mm/s)
#define MSG_CASE_LIGHT_BRIGHTNESS _UxGT("灯亮度") // "Light BRIGHTNESS" PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Hop mm"); //"Hop mm" retract_zraise, retract Z-lift
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("回抽恢复长度mm"); //"UnRet +mm" retract_recover_extra, additional recover length (mm, added to retract length when recovering)
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("换手回抽恢复长度mm"); //"S UnRet+mm" swap_retract_recover_extra, additional swap recover length (mm, added to retract length when recovering from extruder change)
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("回抽恢复后进料速率mm/s"); //"UnRet V" retract_recover_feedrate_mm_s, feedrate for recovering from retraction (mm/s)
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAPF = _UxGT("S UnRet V"); // "S UnRet V"
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("自动抽回"); //"AutoRetr." autoretract_enabled,
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("更换丝料"); //"Change filament"
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("更换丝料 ") LCD_STR_E0; //"Change filament"
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("更换丝料 ") LCD_STR_E1; //"Change filament"
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("更换丝料 ") LCD_STR_E2; //"Change filament"
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("更换丝料 ") LCD_STR_E3; //"Change filament"
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("更换丝料 ") LCD_STR_E4; //"Change filament"
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("更换丝料 ") LCD_STR_E5; //"Change filament"
PROGMEM Language_Str MSG_FILAMENTLOAD_E0 = _UxGT("装载丝料 ") LCD_STR_E0; // "Load filament"
PROGMEM Language_Str MSG_FILAMENTLOAD_E1 = _UxGT("装载丝料 ") LCD_STR_E1; // "Load filament"
PROGMEM Language_Str MSG_FILAMENTLOAD_E2 = _UxGT("装载丝料 ") LCD_STR_E2; // "Load filament"
PROGMEM Language_Str MSG_FILAMENTLOAD_E3 = _UxGT("装载丝料 ") LCD_STR_E3; // "Load filament"
PROGMEM Language_Str MSG_FILAMENTLOAD_E4 = _UxGT("装载丝料 ") LCD_STR_E4; // "Load filament"
PROGMEM Language_Str MSG_FILAMENTLOAD_E5 = _UxGT("装载丝料 ") LCD_STR_E5; // "Load filament"
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E0 = _UxGT("卸载丝料 ") LCD_STR_E0; // "Unload filament"
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E1 = _UxGT("卸载丝料 ") LCD_STR_E1; // "Unload filament"
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E2 = _UxGT("卸载丝料 ") LCD_STR_E2; // "Unload filament"
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E3 = _UxGT("卸载丝料 ") LCD_STR_E3; // "Unload filament"
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E4 = _UxGT("卸载丝料 ") LCD_STR_E4; // "Unload filament"
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E5 = _UxGT("卸载丝料 ") LCD_STR_E5; // "Unload filament"
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("卸载全部"); // "Unload All"
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("初始化存储卡"); //"Init. SD card"
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("更换存储卡"); //"Change SD card"
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z探针在热床之外"); //"Z probe out. bed" Z probe is not within the physical limits
PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("偏斜因数"); // "Skew Factor"
PROGMEM Language_Str MSG_BLTOUCH = _UxGT("BLTouch"); // "BLTouch"
PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("BLTouch 自检"); // "BLTouch Self-Test"
PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("重置BLTouch"); // "Reset BLTouch"
PROGMEM Language_Str MSG_BLTOUCH_DEPLOY = _UxGT("部署BLTouch"); // "Deploy BLTouch"
PROGMEM Language_Str MSG_BLTOUCH_STOW = _UxGT("装载BLTouch"); // "Stow BLTouch"
PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("归位 %s%s%s 先"); //"Home ... first"
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Z偏移"); //"Z Offset"
PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("微量调整X轴"); //"Babystep X" lcd_babystep_x, Babystepping enables the user to control the axis in tiny amounts
PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("微量调整Y轴"); //"Babystep Y"
PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("微量调整Z轴"); //"Babystep Z"
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("挡块终止"); //"Endstop abort"
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("加热失败"); //"Heating failed"
PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("错误REDUNDANT TEMP"); //"Err: REDUNDANT TEMP"
PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("温控失控"); //"THERMAL RUNAWAY"
PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("错误:最高温度"); //"Err: MAXTEMP"
PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("错误:最低温度"); //"Err: MINTEMP"
PROGMEM Language_Str MSG_ERR_MAXTEMP_BED = _UxGT("错误:最高热床温度"); //"Err: MAXTEMP BED"
PROGMEM Language_Str MSG_ERR_MINTEMP_BED = _UxGT("错误:最低热床温度"); //"Err: MINTEMP BED"
PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("归位 XY 先"); // "Home XY First"
PROGMEM Language_Str MSG_HALTED = _UxGT("打印停机"); //"PRINTER HALTED"
PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("请重置"); //"Please reset"
PROGMEM Language_Str MSG_SHORT_DAY = _UxGT(""); //"d" // One character only
PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT(""); //"h" // One character only
PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT(""); //"m" // One character only
PROGMEM Language_Str MSG_HEATING = _UxGT("加热中 ..."); //"Heating..."
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("加热热床中 ..."); //"Bed Heating..."
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("⊿校准"); //"Delta Calibration"
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("⊿校准X"); //"Calibrate X"
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("⊿校准Y"); //"Calibrate Y"
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("⊿校准Z"); //"Calibrate Z"
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("⊿校准中心"); //"Calibrate Center"
PROGMEM Language_Str MSG_DELTA_SETTINGS = _UxGT("⊿设置"); // "Delta Settings"
PROGMEM Language_Str MSG_DELTA_AUTO_CALIBRATE = _UxGT("⊿自动校准"); // "Auto Calibration"
PROGMEM Language_Str MSG_DELTA_HEIGHT_CALIBRATE = _UxGT("设置⊿高度"); // "Set Delta Height"
PROGMEM Language_Str MSG_DELTA_DIAG_ROD = _UxGT("⊿斜柱"); // "Diag Rod"
PROGMEM Language_Str MSG_DELTA_HEIGHT = _UxGT("⊿高度"); // "Height"
PROGMEM Language_Str MSG_DELTA_RADIUS = _UxGT("⊿半径"); // "Radius"
PROGMEM Language_Str MSG_INFO_MENU = _UxGT("关于打印机"); //"About Printer"
PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("打印机信息"); //"Printer Info"
PROGMEM Language_Str MSG_3POINT_LEVELING = _UxGT("三点调平"); // "3-Point Leveling"
PROGMEM Language_Str MSG_LINEAR_LEVELING = _UxGT("线性调平"); // "Linear Leveling"
PROGMEM Language_Str MSG_BILINEAR_LEVELING = _UxGT("双线性调平"); // "Bilinear Leveling"
PROGMEM Language_Str MSG_UBL_LEVELING = _UxGT("统一热床调平(UBL)"); // "Unified Bed Leveling"
PROGMEM Language_Str MSG_MESH_LEVELING = _UxGT("网格调平"); // "Mesh Leveling"
PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("打印机统计"); //"Printer Stats"
PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("主板信息"); //"Board Info"
PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("温度计"); //"Thermistors"
PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("挤出机"); //"Extruders"
PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("波特率"); //"Baud"
PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("协议"); //"Protocol"
PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("外壳灯"); // "Case light"
PROGMEM Language_Str MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("灯亮度"); // "Light BRIGHTNESS"
#define MSG_EXPECTED_PRINTER _UxGT("打印机不正确") // "The printer is incorrect" PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("打印机不正确"); // "The printer is incorrect"
#if LCD_WIDTH >= 20 #if LCD_WIDTH >= 20
#define MSG_INFO_PRINT_COUNT _UxGT("打印计数") //"Print Count" PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("打印计数"); //"Print Count"
#define MSG_INFO_COMPLETED_PRINTS _UxGT("完成了") //"Completed" PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("完成了"); //"Completed"
#define MSG_INFO_PRINT_TIME _UxGT("总打印时间") //"Total print time" PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("总打印时间"); //"Total print time"
#define MSG_INFO_PRINT_LONGEST _UxGT("最长工作时间") //"Longest job time" PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("最长工作时间"); //"Longest job time"
#define MSG_INFO_PRINT_FILAMENT _UxGT("总计挤出") //"Extruded total" PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("总计挤出"); //"Extruded total"
#else #else
#define MSG_INFO_PRINT_COUNT _UxGT("打印数") //"Prints" PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("打印数"); //"Prints"
#define MSG_INFO_COMPLETED_PRINTS _UxGT("完成") //"Completed" PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("完成"); //"Completed"
#define MSG_INFO_PRINT_TIME _UxGT("总共") //"Total" PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("总共"); //"Total"
#define MSG_INFO_PRINT_LONGEST _UxGT("最长") //"Longest" PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("最长"); //"Longest"
#define MSG_INFO_PRINT_FILAMENT _UxGT("已挤出") //"Extruded" PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("已挤出"); //"Extruded"
#endif #endif
#define MSG_INFO_MIN_TEMP _UxGT("最低温度") //"Min Temp" PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("最低温度"); //"Min Temp"
#define MSG_INFO_MAX_TEMP _UxGT("最高温度") //"Max Temp" PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("最高温度"); //"Max Temp"
#define MSG_INFO_PSU _UxGT("电源供应") //"Power Supply" PROGMEM Language_Str MSG_INFO_PSU = _UxGT("电源供应"); //"Power Supply"
#define MSG_DRIVE_STRENGTH _UxGT("驱动力度") // "Drive Strength" PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("驱动力度"); // "Drive Strength"
#define MSG_DAC_PERCENT _UxGT("驱动 %") // "Driver %" PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("驱动 %"); // "Driver %"
#define MSG_DAC_EEPROM_WRITE _UxGT("保存驱动设置") // "DAC EEPROM Write" PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("保存驱动设置"); // "DAC EEPROM Write"
#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("打印已暂停") // "PRINT PAUSED" PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("打印已暂停"); // "PRINT PAUSED"
#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("装载丝料") // "LOAD FILAMENT" PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("装载丝料"); // "LOAD FILAMENT"
#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("卸载丝料") // "UNLOAD FILAMENT" PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("卸载丝料"); // "UNLOAD FILAMENT"
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("恢复选项:") // "RESUME OPTIONS:" PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("恢复选项:"); // "RESUME OPTIONS:"
#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("清除更多") // "Purge more" PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("清除更多"); // "Purge more"
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("恢复打印") //"Resume print" PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("恢复打印"); //"Resume print"
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" 喷嘴: ") // " Nozzle: " PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" 喷嘴: "); // " Nozzle: "
#define MSG_ERR_HOMING_FAILED _UxGT("归原位失败") // "Homing failed" PROGMEM Language_Str MSG_LCD_HOMING_FAILED = _UxGT("归原位失败"); // "Homing failed"
#define MSG_ERR_PROBING_FAILED _UxGT("探针探测失败") // "Probing failed" PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("探针探测失败"); // "Probing failed"
#define MSG_M600_TOO_COLD _UxGT("M600: 太凉") // "M600: Too cold" PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: 太凉"); // "M600: Too cold"
#if LCD_HEIGHT >= 4 #if LCD_HEIGHT >= 4
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("等待开始") //"Wait for start" PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("等待开始", "丝料", "变更")); // "Wait for start of the filament change"
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("丝料") //"of the filament" PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("等待", "卸下丝料")); // "Wait for filament unload"
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("变更") //"change" PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("插入丝料", "并按键", "来继续 ...")); // "Insert filament and press button to continue..."
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("等待") //"Wait for" PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("按下按钮来", "加热喷嘴.")); // "Press button to heat nozzle."
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("卸下丝料") //"filament unload" PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("加热喷嘴", "请等待 ...")); // "Heating nozzle Please wait..."
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("插入丝料") //"Insert filament" PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("等待", "进料")); // "Wait for filament load"
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("并按键") //"and press button" PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_2_LINE("等待", "丝料清除")); // "Wait for filament purge"
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("来继续 ...") //"to continue..." PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("等待打印", "恢复")); // "Wait for print to resume"
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("按下按钮来") // "Press button to" #else
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("加热喷嘴.") // "heat nozzle." PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("请等待 ...")); //"Please wait..."
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("加热喷嘴") // "Heating nozzle" PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("退出中 ...")); //"Ejecting..."
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("请等待 ...") // "Please wait..." PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("插入并单击")); //"Insert and Click"
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("等待") //"Wait for" PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("加热中 ...")); // "Heating..."
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("进料") //"filament load" PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("装载中 ...")); //"Loading..."
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("等待") // "Wait for" PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_1_LINE("清除中 ...")); // "Purging..."
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("丝料清除") // "filament purge" PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("恢复中 ...")); //"Resuming..."
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("等待打印") //"Wait for print" #endif
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("恢复") //"to resume" }
#else // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("请等待 ...") //"Please wait..."
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("退出中 ...") //"Ejecting..."
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("插入并单击") //"Insert and Click"
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("加热中 ...") // "Heating..."
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("装载中 ...") //"Loading..."
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("清除中 ...") // "Purging..."
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("恢复中 ...") //"Resuming..."
#endif // LCD_HEIGHT < 4

View file

@ -28,357 +28,464 @@
* See also http://marlinfw.org/docs/development/lcd_language.html * See also http://marlinfw.org/docs/development/lcd_language.html
* *
*/ */
namespace Language_zh_TW {
using namespace Language_en; // Inherit undefined strings from English
#define CHARSIZE 3 constexpr uint8_t CHARSIZE = 3;
PROGMEM Language_Str LANGUAGE = _UxGT("Traditional Chinese");
#define WELCOME_MSG MACHINE_NAME _UxGT("已就緒.") //" ready." PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT("已就緒."); //" ready."
#define MSG_BACK _UxGT("返回") // ”Back“ PROGMEM Language_Str MSG_BACK = _UxGT("返回"); // ”Back“
#define MSG_MEDIA_INSERTED _UxGT("記憶卡已插入") //"Card inserted" PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("記憶卡已插入"); //"Card inserted"
#define MSG_MEDIA_REMOVED _UxGT("記憶卡被拔出") //"Card removed" PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("記憶卡被拔出"); //"Card removed"
#define MSG_LCD_ENDSTOPS _UxGT("擋塊") //"Endstops" // Max length 8 characters PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("擋塊"); //"Endstops" // Max length 8 characters
#define MSG_MAIN _UxGT("主選單") //"Main" PROGMEM Language_Str MSG_MAIN = _UxGT("主選單"); //"Main"
#define MSG_AUTOSTART _UxGT("自動開始") //"Autostart" PROGMEM Language_Str MSG_AUTOSTART = _UxGT("自動開始"); //"Autostart"
#define MSG_DISABLE_STEPPERS _UxGT("關閉步進馬達") //"Disable steppers" PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("關閉步進馬達"); //"Disable steppers"
#define MSG_DEBUG_MENU _UxGT("除錯選單") // "Debug Menu" PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("除錯選單"); // "Debug Menu"
#define MSG_PROGRESS_BAR_TEST _UxGT("進度條測試") // "Progress Bar Test" PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("進度條測試"); // "Progress Bar Test"
#define MSG_AUTO_HOME _UxGT("自動回原點") //"Auto home" PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("自動回原點"); //"Auto home"
#define MSG_AUTO_HOME_X _UxGT("回X原點") //"Home X" PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("回X原點"); //"Home X"
#define MSG_AUTO_HOME_Y _UxGT("回Y原點") //"Home Y" PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("回Y原點"); //"Home Y"
#define MSG_AUTO_HOME_Z _UxGT("回Z原點") //"Home Z" PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("回Z原點"); //"Home Z"
#define MSG_LEVEL_BED_HOMING _UxGT("平台調平XYZ歸原點") //"Homing XYZ" PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("平台調平XYZ歸原點"); //"Homing XYZ"
#define MSG_LEVEL_BED_WAITING _UxGT("單擊開始熱床調平") //"Click to Begin" PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("單擊開始熱床調平"); //"Click to Begin"
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("下個熱床調平點") //"Next Point" PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("下個熱床調平點"); //"Next Point"
#define MSG_LEVEL_BED_DONE _UxGT("完成熱床調平") //"Leveling Done!" PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("完成熱床調平"); //"Leveling Done!"
#define MSG_Z_FADE_HEIGHT _UxGT("淡出高度") // "Fade Height" PROGMEM Language_Str MSG_Z_FADE_HEIGHT = _UxGT("淡出高度"); // "Fade Height"
#define MSG_SET_HOME_OFFSETS _UxGT("設置原點偏移") //"Set home offsets" PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("設置原點偏移"); //"Set home offsets"
#define MSG_HOME_OFFSETS_APPLIED _UxGT("偏移已啟用") //"Offsets applied" PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("偏移已啟用"); //"Offsets applied"
#define MSG_SET_ORIGIN _UxGT("設置原點") //"Set origin" PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("設置原點"); //"Set origin"
#define MSG_PREHEAT_1 _UxGT("預熱" PREHEAT_1_LABEL) //"Preheat PREHEAT_1_LABEL" PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("預熱 ") PREHEAT_1_LABEL; //"Preheat PREHEAT_1_LABEL"
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ") //MSG_PREHEAT_1 " " PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("預熱 ") PREHEAT_1_LABEL " " LCD_STR_N0; //"Preheat PREHEAT_1_LABEL"
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" 全部") //MSG_PREHEAT_1 " All" PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("預熱 ") PREHEAT_1_LABEL " " LCD_STR_N1; //"Preheat PREHEAT_1_LABEL"
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" 熱床") //MSG_PREHEAT_1 " Bed" PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("預熱 ") PREHEAT_1_LABEL " " LCD_STR_N2; //"Preheat PREHEAT_1_LABEL"
#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" 設置") //MSG_PREHEAT_1 " conf" PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("預熱 ") PREHEAT_1_LABEL " " LCD_STR_N3; //"Preheat PREHEAT_1_LABEL"
#define MSG_PREHEAT_2 _UxGT("預熱" PREHEAT_2_LABEL) //"Preheat PREHEAT_2_LABEL" PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("預熱 ") PREHEAT_1_LABEL " " LCD_STR_N4; //"Preheat PREHEAT_1_LABEL"
#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ") //MSG_PREHEAT_2 " " PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("預熱 ") PREHEAT_1_LABEL " " LCD_STR_N5; //"Preheat PREHEAT_1_LABEL"
#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" 全部") //MSG_PREHEAT_2 " All" PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 噴嘴"); //MSG_PREHEAT_1 " "
#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" 熱床") //MSG_PREHEAT_2 " Bed" PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 噴嘴 ") LCD_STR_N0; //MSG_PREHEAT_1 " "
#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" 設置") //MSG_PREHEAT_2 " conf" PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 噴嘴 ") LCD_STR_N1; //MSG_PREHEAT_1 " "
#define MSG_COOLDOWN _UxGT("降溫") //"Cooldown" PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 噴嘴 ") LCD_STR_N2; //MSG_PREHEAT_1 " "
#define MSG_SWITCH_PS_ON _UxGT("電源打開") //"Switch power on" PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 噴嘴 ") LCD_STR_N3; //MSG_PREHEAT_1 " "
#define MSG_SWITCH_PS_OFF _UxGT("電源關閉") //"Switch power off" PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 噴嘴 ") LCD_STR_N4; //MSG_PREHEAT_1 " "
#define MSG_EXTRUDE _UxGT("擠出") //"Extrude" PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 噴嘴 ") LCD_STR_N5; //MSG_PREHEAT_1 " "
#define MSG_RETRACT _UxGT("回縮") //"Retract" PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 全部"); //MSG_PREHEAT_1 " All"
#define MSG_MOVE_AXIS _UxGT("移動軸") //"Move axis" PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 熱床"); //MSG_PREHEAT_1 " Bed"
#define MSG_BED_LEVELING _UxGT("調平熱床") //"Bed leveling" PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 設置"); //MSG_PREHEAT_1 " conf"
#define MSG_LEVEL_BED _UxGT("調平熱床") //"Level bed" PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("預熱 ") PREHEAT_2_LABEL; //"Preheat PREHEAT_2_LABEL"
#define MSG_LEVEL_CORNERS _UxGT("調平邊角") // "Level corners" PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("預熱 ") PREHEAT_2_LABEL " " LCD_STR_N0; //"Preheat PREHEAT_2_LABEL"
PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("預熱 ") PREHEAT_2_LABEL " " LCD_STR_N1; //"Preheat PREHEAT_2_LABEL"
PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("預熱 ") PREHEAT_2_LABEL " " LCD_STR_N2; //"Preheat PREHEAT_2_LABEL"
PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("預熱 ") PREHEAT_2_LABEL " " LCD_STR_N3; //"Preheat PREHEAT_2_LABEL"
PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("預熱 ") PREHEAT_2_LABEL " " LCD_STR_N4; //"Preheat PREHEAT_2_LABEL"
PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("預熱 ") PREHEAT_2_LABEL " " LCD_STR_N5; //"Preheat PREHEAT_2_LABEL"
PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("預熱 ") PREHEAT_2_LABEL _UxGT(" 噴嘴"); //MSG_PREHEAT_2 " "
PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("預熱 ") PREHEAT_2_LABEL _UxGT(" 噴嘴 ") LCD_STR_N0; //MSG_PREHEAT_2 " "
PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("預熱 ") PREHEAT_2_LABEL _UxGT(" 噴嘴 ") LCD_STR_N1; //MSG_PREHEAT_2 " "
PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("預熱 ") PREHEAT_2_LABEL _UxGT(" 噴嘴 ") LCD_STR_N2; //MSG_PREHEAT_2 " "
PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("預熱 ") PREHEAT_2_LABEL _UxGT(" 噴嘴 ") LCD_STR_N3; //MSG_PREHEAT_2 " "
PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("預熱 ") PREHEAT_2_LABEL _UxGT(" 噴嘴 ") LCD_STR_N4; //MSG_PREHEAT_2 " "
PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("預熱 ") PREHEAT_2_LABEL _UxGT(" 噴嘴 ") LCD_STR_N5; //MSG_PREHEAT_2 " "
PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("預熱 ") PREHEAT_2_LABEL _UxGT(" 全部"); //MSG_PREHEAT_2 " All"
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("預熱 ") PREHEAT_2_LABEL _UxGT(" 熱床"); //MSG_PREHEAT_2 " Bed"
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("預熱 ") PREHEAT_2_LABEL _UxGT(" 設置"); //MSG_PREHEAT_2 " conf"
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("降溫"); //"Cooldown"
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("電源打開"); //"Switch power on"
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("電源關閉"); //"Switch power off"
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("擠出"); //"Extrude"
PROGMEM Language_Str MSG_RETRACT = _UxGT("回縮"); //"Retract"
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("移動軸"); //"Move axis"
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("調平熱床"); //"Bed leveling"
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("調平熱床"); //"Level bed"
PROGMEM Language_Str MSG_LEVEL_CORNERS = _UxGT("調平邊角"); // "Level corners"
#define MSG_NEXT_CORNER _UxGT("下个邊角") // "Next corner" PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("下個邊角"); // "Next corner"
#define MSG_EDIT_MESH _UxGT("編輯網格") // "Edit Mesh" PROGMEM Language_Str MSG_EDIT_MESH = _UxGT("編輯網格"); // "Edit Mesh"
#define MSG_EDITING_STOPPED _UxGT("網格編輯已停止") // "Mesh Editing Stopped" PROGMEM Language_Str MSG_EDITING_STOPPED = _UxGT("網格編輯已停止"); // "Mesh Editing Stopped"
#define MSG_USER_MENU _UxGT("客制命令") // "Custom Commands" PROGMEM Language_Str MSG_USER_MENU = _UxGT("客制命令"); // "Custom Commands"
#define MSG_UBL_DOING_G29 _UxGT("执行G29") // "Doing G29" PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("執行G29"); // "Doing G29"
#define MSG_UBL_TOOLS _UxGT("UBL工具") // "UBL Tools" PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("UBL工具"); // "UBL Tools"
#define MSG_UBL_LEVEL_BED _UxGT("統一熱床調平(UBL)") // "Unified Bed Leveling" PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("統一熱床調平(UBL)"); // "Unified Bed Leveling"
#define MSG_UBL_MANUAL_MESH _UxGT("手工建网") // "Manually Build Mesh" PROGMEM Language_Str MSG_UBL_MANUAL_MESH = _UxGT("手工建網"); // "Manually Build Mesh"
#define MSG_UBL_BC_INSERT _UxGT("放置墊片並測量") // "Place shim & measure" PROGMEM Language_Str MSG_UBL_BC_INSERT = _UxGT("放置墊片並測量"); // "Place shim & measure"
#define MSG_UBL_BC_INSERT2 _UxGT("測量") // "Measure" PROGMEM Language_Str MSG_UBL_BC_INSERT2 = _UxGT("測量"); // "Measure"
#define MSG_UBL_BC_REMOVE _UxGT("移除並測量熱床") // "Remove & measure bed" PROGMEM Language_Str MSG_UBL_BC_REMOVE = _UxGT("移除並測量熱床"); // "Remove & measure bed"
#define MSG_UBL_MOVING_TO_NEXT _UxGT("移動到下一個") // "Moving to next" PROGMEM Language_Str MSG_UBL_MOVING_TO_NEXT = _UxGT("移動到下一個"); // "Moving to next"
#define MSG_UBL_ACTIVATE_MESH _UxGT("激活UBL") // "Activate UBL" PROGMEM Language_Str MSG_UBL_ACTIVATE_MESH = _UxGT("啟動UBL"); // "Activate UBL"
#define MSG_UBL_DEACTIVATE_MESH _UxGT("關閉UBL") // "Deactivate UBL" PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("關閉UBL"); // "Deactivate UBL"
#define MSG_UBL_SET_TEMP_BED _UxGT("設置熱床溫度") // "Bed Temp" PROGMEM Language_Str MSG_UBL_SET_TEMP_BED = _UxGT("設置熱床溫度"); // "Bed Temp"
#define MSG_UBL_SET_TEMP_HOTEND _UxGT("熱端溫度") // "Hotend Temp" PROGMEM Language_Str MSG_UBL_SET_TEMP_HOTEND = _UxGT("熱端溫度"); // "Hotend Temp"
#define MSG_UBL_MESH_EDIT _UxGT("網格編輯") // "Mesh Edit" PROGMEM Language_Str MSG_UBL_MESH_EDIT = _UxGT("網格編輯"); // "Mesh Edit"
#define MSG_UBL_EDIT_CUSTOM_MESH _UxGT("編輯客戶網格") // "Edit Custom Mesh" PROGMEM Language_Str MSG_UBL_EDIT_CUSTOM_MESH = _UxGT("編輯客戶網格"); // "Edit Custom Mesh"
#define MSG_UBL_FINE_TUNE_MESH _UxGT("細調網格") // "Fine Tuning Mesh" PROGMEM Language_Str MSG_UBL_FINE_TUNE_MESH = _UxGT("細調網格"); // "Fine Tuning Mesh"
#define MSG_UBL_DONE_EDITING_MESH _UxGT("完成編輯網格") // "Done Editing Mesh" PROGMEM Language_Str MSG_UBL_DONE_EDITING_MESH = _UxGT("完成編輯網格"); // "Done Editing Mesh"
#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("創設客戶網格") // "Build Custom Mesh" PROGMEM Language_Str MSG_UBL_BUILD_CUSTOM_MESH = _UxGT("創設客戶網格"); // "Build Custom Mesh"
#define MSG_UBL_BUILD_MESH_MENU _UxGT("創設網格") // "Build Mesh" PROGMEM Language_Str MSG_UBL_BUILD_MESH_MENU = _UxGT("創設網格"); // "Build Mesh"
#define MSG_UBL_BUILD_MESH_M1 _UxGT("創設" PREHEAT_1_LABEL "網格") // "Build PREHEAT_1_LABEL Mesh" PROGMEM Language_Str MSG_UBL_BUILD_MESH_M1 = _UxGT("創設 ") PREHEAT_1_LABEL _UxGT(" 網格"); // "Build PREHEAT_1_LABEL Mesh"
#define MSG_UBL_BUILD_MESH_M2 _UxGT("創設" PREHEAT_2_LABEL "網格") // "Build PREHEAT_2_LABEL Mesh" PROGMEM Language_Str MSG_UBL_BUILD_MESH_M2 = _UxGT("創設 ") PREHEAT_2_LABEL _UxGT(" 網格"); // "Build PREHEAT_2_LABEL Mesh"
#define MSG_UBL_BUILD_COLD_MESH _UxGT("創設冷網格") // "Build Cold Mesh" PROGMEM Language_Str MSG_UBL_BUILD_COLD_MESH = _UxGT("創設冷網格"); // "Build Cold Mesh"
#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("調整網格高度") // "Adjust Mesh Height" PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_ADJUST = _UxGT("調整網格高度"); // "Adjust Mesh Height"
#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("高度合計") // "Height Amount" PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_AMOUNT = _UxGT("高度合計"); // "Height Amount"
#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("批准網格") // "Validate Mesh" PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_MENU = _UxGT("批准網格"); // "Validate Mesh"
#define MSG_UBL_VALIDATE_MESH_M1 _UxGT("批准" PREHEAT_1_LABEL "網格") // "Validate PREHEAT_1_LABEL Mesh" PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M1 = _UxGT("批准 ") PREHEAT_1_LABEL _UxGT(" 網格"); // "Validate PREHEAT_1_LABEL Mesh"
#define MSG_UBL_VALIDATE_MESH_M2 _UxGT("批准" PREHEAT_2_LABEL "網格") // "Validate PREHEAT_2_LABEL Mesh" PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M2 = _UxGT("批准 ") PREHEAT_2_LABEL _UxGT(" 網格"); // "Validate PREHEAT_2_LABEL Mesh"
#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("批准客戶網格") // "Validate Custom Mesh" PROGMEM Language_Str MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("批准客戶網格"); // "Validate Custom Mesh"
#define MSG_UBL_CONTINUE_MESH _UxGT("繼續熱床網格") // "Continue Bed Mesh" PROGMEM Language_Str MSG_UBL_CONTINUE_MESH = _UxGT("繼續熱床網格"); // "Continue Bed Mesh"
#define MSG_UBL_MESH_LEVELING _UxGT("網格調平") // "Mesh Leveling" PROGMEM Language_Str MSG_UBL_MESH_LEVELING = _UxGT("網格調平"); // "Mesh Leveling"
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("三點調平") // "3-Point Leveling" PROGMEM Language_Str MSG_UBL_3POINT_MESH_LEVELING = _UxGT("三點調平"); // "3-Point Leveling"
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("格子網格調平") // "Grid Mesh Leveling" PROGMEM Language_Str MSG_UBL_GRID_MESH_LEVELING = _UxGT("格子網格調平"); // "Grid Mesh Leveling"
#define MSG_UBL_MESH_LEVEL _UxGT("調平網格") // "Level Mesh" PROGMEM Language_Str MSG_UBL_MESH_LEVEL = _UxGT("調平網格"); // "Level Mesh"
#define MSG_UBL_SIDE_POINTS _UxGT("邊點") // "Side Points" PROGMEM Language_Str MSG_UBL_SIDE_POINTS = _UxGT("邊點"); // "Side Points"
#define MSG_UBL_MAP_TYPE _UxGT("圖類型") // "Map Type" PROGMEM Language_Str MSG_UBL_MAP_TYPE = _UxGT("圖類型"); // "Map Type"
#define MSG_UBL_OUTPUT_MAP _UxGT("輸出網格圖") // "Output Mesh Map" PROGMEM Language_Str MSG_UBL_OUTPUT_MAP = _UxGT("輸出網格圖"); // "Output Mesh Map"
#define MSG_UBL_OUTPUT_MAP_HOST _UxGT("輸出到主機") // "Output for Host" PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_HOST = _UxGT("輸出到主機"); // "Output for Host"
#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("輸出到CSV") // "Output for CSV" PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_CSV = _UxGT("輸出到CSV"); // "Output for CSV"
#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("輸出到備份") // "Off Printer Backup" PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_BACKUP = _UxGT("輸出到備份"); // "Off Printer Backup"
#define MSG_UBL_INFO_UBL _UxGT("輸出UBL信息") // "Output UBL Info" PROGMEM Language_Str MSG_UBL_INFO_UBL = _UxGT("輸出UBL信息"); // "Output UBL Info"
#define MSG_UBL_FILLIN_AMOUNT _UxGT("填充合計") // "Fill-in Amount" PROGMEM Language_Str MSG_UBL_FILLIN_AMOUNT = _UxGT("填充合計"); // "Fill-in Amount"
#define MSG_UBL_MANUAL_FILLIN _UxGT("手工填充") // "Manual Fill-in" PROGMEM Language_Str MSG_UBL_MANUAL_FILLIN = _UxGT("手工填充"); // "Manual Fill-in"
#define MSG_UBL_SMART_FILLIN _UxGT("聰明填充") // "Smart Fill-in" PROGMEM Language_Str MSG_UBL_SMART_FILLIN = _UxGT("聰明填充"); // "Smart Fill-in"
#define MSG_UBL_FILLIN_MESH _UxGT("填充網格") // "Fill-in Mesh" PROGMEM Language_Str MSG_UBL_FILLIN_MESH = _UxGT("填充網格"); // "Fill-in Mesh"
#define MSG_UBL_INVALIDATE_ALL _UxGT("作廢所有的") // "Invalidate All" PROGMEM Language_Str MSG_UBL_INVALIDATE_ALL = _UxGT("作廢所有的"); // "Invalidate All"
#define MSG_UBL_INVALIDATE_CLOSEST _UxGT("作廢最近的") // "Invalidate Closest" PROGMEM Language_Str MSG_UBL_INVALIDATE_CLOSEST = _UxGT("作廢最近的"); // "Invalidate Closest"
#define MSG_UBL_FINE_TUNE_ALL _UxGT("細調所有的") // "Fine Tune All" PROGMEM Language_Str MSG_UBL_FINE_TUNE_ALL = _UxGT("細調所有的"); // "Fine Tune All"
#define MSG_UBL_FINE_TUNE_CLOSEST _UxGT("細調最近的") // "Fine Tune Closest" PROGMEM Language_Str MSG_UBL_FINE_TUNE_CLOSEST = _UxGT("細調最近的"); // "Fine Tune Closest"
#define MSG_UBL_STORAGE_MESH_MENU _UxGT("網格存儲") // "Mesh Storage" PROGMEM Language_Str MSG_UBL_STORAGE_MESH_MENU = _UxGT("網格存儲"); // "Mesh Storage"
#define MSG_UBL_STORAGE_SLOT _UxGT("存儲槽") // "Memory Slot" PROGMEM Language_Str MSG_UBL_STORAGE_SLOT = _UxGT("存儲槽"); // "Memory Slot"
#define MSG_UBL_LOAD_MESH _UxGT("裝載熱床網格") // "Load Bed Mesh" PROGMEM Language_Str MSG_UBL_LOAD_MESH = _UxGT("裝載熱床網格"); // "Load Bed Mesh"
#define MSG_UBL_SAVE_MESH _UxGT("保存熱床網格") // "Save Bed Mesh" PROGMEM Language_Str MSG_UBL_SAVE_MESH = _UxGT("保存熱床網格"); // "Save Bed Mesh"
#define MSG_MESH_LOADED _UxGT("網格 %i 已裝載") // "Mesh %i loaded" PROGMEM Language_Str MSG_MESH_LOADED = _UxGT("M117 網格 %i 已裝載"); // "Mesh %i loaded"
#define MSG_MESH_SAVED _UxGT("網格 %i 已保存") // "Mesh %i saved" PROGMEM Language_Str MSG_MESH_SAVED = _UxGT("M117 網格 %i 已保存"); // "Mesh %i saved"
#define MSG_UBL_NO_STORAGE _UxGT("沒有存儲") // "No storage" PROGMEM Language_Str MSG_UBL_NO_STORAGE = _UxGT("沒有存儲"); // "No storage"
#define MSG_UBL_SAVE_ERROR _UxGT("錯誤: UBL保存") // "Err: UBL Save" PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("錯誤: UBL保存"); // "Err: UBL Save"
#define MSG_UBL_RESTORE_ERROR _UxGT("錯誤: UBL還原") // "Err: UBL Restore" PROGMEM Language_Str MSG_UBL_RESTORE_ERROR = _UxGT("錯誤: UBL還原"); // "Err: UBL Restore"
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Z偏移已停止") // "Z-Offset Stopped" PROGMEM Language_Str MSG_UBL_Z_OFFSET_STOPPED = _UxGT("Z偏移已停止"); // "Z-Offset Stopped"
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("一步步UBL") // "Step-By-Step UBL" PROGMEM Language_Str MSG_UBL_STEP_BY_STEP_MENU = _UxGT("一步步UBL"); // "Step-By-Step UBL"
PROGMEM Language_Str MSG_UBL_1_BUILD_COLD_MESH = _UxGT("1. 創設冷網格");
PROGMEM Language_Str MSG_UBL_2_SMART_FILLIN = _UxGT("2. 聰明填充");
PROGMEM Language_Str MSG_UBL_3_VALIDATE_MESH_MENU = _UxGT("3. 批准網格");
PROGMEM Language_Str MSG_UBL_4_FINE_TUNE_ALL = _UxGT("4. 細調所有的");
PROGMEM Language_Str MSG_UBL_5_VALIDATE_MESH_MENU = _UxGT("5. 批准網格");
PROGMEM Language_Str MSG_UBL_6_FINE_TUNE_ALL = _UxGT("6. 細調所有的");
PROGMEM Language_Str MSG_UBL_7_SAVE_MESH = _UxGT("7. 保存熱床網格");
#define MSG_LED_CONTROL _UxGT("灯管控制") // "LED Control") PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("燈管控制"); // "LED Control")
#define MSG_LEDS _UxGT("灯") // "Lights") PROGMEM Language_Str MSG_LEDS = _UxGT(""); // "Lights")
#define MSG_LED_PRESETS _UxGT("灯预置") // "Light Presets") PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("燈預置"); // "Light Presets")
#define MSG_SET_LEDS_RED _UxGT("红") // "Red") PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT(""); // "Red")
#define MSG_SET_LEDS_ORANGE _UxGT("橙") // "Orange") PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT(""); // "Orange")
#define MSG_SET_LEDS_YELLOW _UxGT("黄") // "Yellow") PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT(""); // "Yellow")
#define MSG_SET_LEDS_GREEN _UxGT("绿") // "Green") PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT(""); // "Green")
#define MSG_SET_LEDS_BLUE _UxGT("蓝") // "Blue") PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT(""); // "Blue")
#define MSG_SET_LEDS_INDIGO _UxGT("青") // "Indigo") PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT(""); // "Indigo")
#define MSG_SET_LEDS_VIOLET _UxGT("紫") // "Violet") PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT(""); // "Violet")
#define MSG_SET_LEDS_WHITE _UxGT("白") // "White") PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT(""); // "White")
#define MSG_SET_LEDS_DEFAULT _UxGT("缺省") // "Default") PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("缺省"); // "Default")
#define MSG_CUSTOM_LEDS _UxGT("定制灯") // "Custom Lights") PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("定制燈"); // "Custom Lights")
#define MSG_INTENSITY_R _UxGT("红飽和度") // "Red Intensity") PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("紅飽和度"); // "Red Intensity")
#define MSG_INTENSITY_G _UxGT("绿飽和度") // "Green Intensity") PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("綠飽和度"); // "Green Intensity")
#define MSG_INTENSITY_B _UxGT("蓝飽和度") // "Blue Intensity") PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("藍飽和度"); // "Blue Intensity")
#define MSG_INTENSITY_W _UxGT("白飽和度") // "White Intensity") PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("白飽和度"); // "White Intensity")
#define MSG_LED_BRIGHTNESS _UxGT("亮度") // "Brightness") PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("亮度"); // "Brightness")
#define MSG_MOVING _UxGT("移动 ...") // "Moving...") PROGMEM Language_Str MSG_MOVING = _UxGT("移動 ..."); // "Moving...")
#define MSG_FREE_XY _UxGT("释放 XY") // "Free XY") PROGMEM Language_Str MSG_FREE_XY = _UxGT("釋放 XY"); // "Free XY")
#define MSG_MOVE_X _UxGT("移動X") //"Move X" PROGMEM Language_Str MSG_MOVE_X = _UxGT("移動X"); //"Move X"
#define MSG_MOVE_Y _UxGT("移動Y") //"Move Y" PROGMEM Language_Str MSG_MOVE_Y = _UxGT("移動Y"); //"Move Y"
#define MSG_MOVE_Z _UxGT("移動Z") //"Move Z" PROGMEM Language_Str MSG_MOVE_Z = _UxGT("移動Z"); //"Move Z"
#define MSG_MOVE_E _UxGT("擠出機") //"Extruder" PROGMEM Language_Str MSG_MOVE_E = _UxGT("擠出機"); //"Extruder"
#define MSG_MOVE_Z_DIST _UxGT("移動 %s mm") //"Move 0.025mm" PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("擠出機 ") LCD_STR_E0;
#define MSG_MOVE_01MM _UxGT("移動 0.1 mm") //"Move 0.1mm" PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("擠出機 ") LCD_STR_E1;
#define MSG_MOVE_1MM _UxGT("移動 1 mm") //"Move 1mm" PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("擠出機 ") LCD_STR_E2;
#define MSG_MOVE_10MM _UxGT("移動 10 mm") //"Move 10mm" PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("擠出機 ") LCD_STR_E3;
#define MSG_SPEED _UxGT("速率") //"Speed" PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("擠出機 ") LCD_STR_E4;
#define MSG_BED_Z _UxGT("熱床Z") //"Bed Z" PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("擠出機 ") LCD_STR_E5;
#define MSG_NOZZLE _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 噴嘴") //"Nozzle" 噴嘴 PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("移動 %s mm"); //"Move 0.025mm"
#define MSG_BED _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 熱床") //"Bed" PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("移動 0.1 mm"); //"Move 0.1mm"
#define MSG_FAN_SPEED _UxGT("風扇速率") //"Fan speed" PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("移動 1 mm"); //"Move 1mm"
#define MSG_EXTRA_FAN_SPEED _UxGT("額外風扇速率") // "Extra fan speed" PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("移動 10 mm"); //"Move 10mm"
#define MSG_FLOW _UxGT("擠出速率") //"Flow" PROGMEM Language_Str MSG_SPEED = _UxGT("速率"); //"Speed"
#define MSG_CONTROL _UxGT("控制") //"Control" PROGMEM Language_Str MSG_BED_Z = _UxGT("熱床Z"); //"Bed Z"
#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 最小") //" " LCD_STR_THERMOMETER " Min" PROGMEM Language_Str MSG_NOZZLE = " " LCD_STR_THERMOMETER _UxGT(" 噴嘴"); //"Nozzle" 噴嘴
#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 最大") //" " LCD_STR_THERMOMETER " Max" PROGMEM Language_Str MSG_NOZZLE_0 = " " LCD_STR_THERMOMETER _UxGT(" 噴嘴 ") LCD_STR_N0;
#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 系數") //" " LCD_STR_THERMOMETER " Fact" PROGMEM Language_Str MSG_NOZZLE_1 = " " LCD_STR_THERMOMETER _UxGT(" 噴嘴 ") LCD_STR_N1;
#define MSG_AUTOTEMP _UxGT("自動控溫") //"Autotemp" PROGMEM Language_Str MSG_NOZZLE_2 = " " LCD_STR_THERMOMETER _UxGT(" 噴嘴 ") LCD_STR_N2;
#define MSG_LCD_ON _UxGT("開") //"On" PROGMEM Language_Str MSG_NOZZLE_3 = " " LCD_STR_THERMOMETER _UxGT(" 噴嘴 ") LCD_STR_N3;
#define MSG_LCD_OFF _UxGT("關") //"Off" PROGMEM Language_Str MSG_NOZZLE_4 = " " LCD_STR_THERMOMETER _UxGT(" 噴嘴 ") LCD_STR_N4;
#define MSG_PID_P _UxGT("PID-P") //"PID-P" PROGMEM Language_Str MSG_NOZZLE_5 = " " LCD_STR_THERMOMETER _UxGT(" 噴嘴 ") LCD_STR_N5;
#define MSG_PID_I _UxGT("PID-I") //"PID-I" PROGMEM Language_Str MSG_BED = " " LCD_STR_THERMOMETER _UxGT(" 熱床"); //"Bed"
#define MSG_PID_D _UxGT("PID-D") //"PID-D" PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("風扇速率"); //"Fan speed"
#define MSG_PID_C _UxGT("PID-C") //"PID-C" PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("風扇速率 1");
#define MSG_SELECT _UxGT("選擇") //"Select" PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("風扇速率 2");
#define MSG_ACC _UxGT("加速度") //"Accel" acceleration PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("風扇速率 3");
#define MSG_JERK _UxGT("抖動速率") //"Jerk" PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("額外風扇速率"); // "Extra fan speed"
#if IS_KINEMATIC PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_1 = _UxGT("額外風扇速率 1");
#define MSG_VA_JERK _UxGT("A軸抖動速率") //"Va-jerk" PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_2 = _UxGT("額外風扇速率 2");
#define MSG_VB_JERK _UxGT("B軸抖動速率") //"Vb-jerk" PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_3 = _UxGT("額外風扇速率 3");
#define MSG_VC_JERK _UxGT("C軸抖動速率") //"Vc-jerk" PROGMEM Language_Str MSG_FLOW = _UxGT("擠出速率");
#else PROGMEM Language_Str MSG_FLOW_0 = _UxGT("擠出速率 ") LCD_STR_N0; //"Flow"
#define MSG_VA_JERK _UxGT("X軸抖動速率") //"Vx-jerk" PROGMEM Language_Str MSG_FLOW_1 = _UxGT("擠出速率 ") LCD_STR_N1; //"Flow"
#define MSG_VB_JERK _UxGT("Y軸抖動速率") //"Vy-jerk" PROGMEM Language_Str MSG_FLOW_2 = _UxGT("擠出速率 ") LCD_STR_N2; //"Flow"
#define MSG_VC_JERK _UxGT("Z軸抖動速率") //"Vz-jerk" PROGMEM Language_Str MSG_FLOW_3 = _UxGT("擠出速率 ") LCD_STR_N3; //"Flow"
#endif PROGMEM Language_Str MSG_FLOW_4 = _UxGT("擠出速率 ") LCD_STR_N4; //"Flow"
#define MSG_VE_JERK _UxGT("擠出機抖動速率") //"Ve-jerk" PROGMEM Language_Str MSG_FLOW_5 = _UxGT("擠出速率 ") LCD_STR_N5; //"Flow"
#define MSG_VELOCITY _UxGT("速度") // "Velocity" PROGMEM Language_Str MSG_CONTROL = _UxGT("控制"); //"Control"
#define MSG_VMAX _UxGT("最大進料速率") //"Vmax " max_feedrate_mm_s PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" 最小"); //" " LCD_STR_THERMOMETER " Min"
#define MSG_VMIN _UxGT("最小進料速率") //"Vmin" min_feedrate_mm_s PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" 最大"); //" " LCD_STR_THERMOMETER " Max"
#define MSG_VTRAV_MIN _UxGT("最小移動速率") //"VTrav min" min_travel_feedrate_mm_s, (target) speed of the move PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" 系數"); //" " LCD_STR_THERMOMETER " Fact"
#define MSG_ACCELERATION _UxGT("加速度") // "Acceleration" PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("自動控溫"); //"Autotemp"
#define MSG_AMAX _UxGT("最大列印加速度") //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves PROGMEM Language_Str MSG_LCD_ON = _UxGT(""); //"On"
#define MSG_A_RETRACT _UxGT("回縮加速度") //"A-retract" retract_acceleration, E acceleration in mm/s^2 for retracts PROGMEM Language_Str MSG_LCD_OFF = _UxGT(""); //"Off"
#define MSG_A_TRAVEL _UxGT("非列印移動加速度") //"A-travel" travel_acceleration, X, Y, Z acceleration in mm/s^2 for travel (non printing) moves PROGMEM Language_Str MSG_PID_P = _UxGT("PID-P"); //"PID-P"
#define MSG_STEPS_PER_MM _UxGT("軸步數/mm") //"Steps/mm" axis_steps_per_mm, axis steps-per-unit G92 PROGMEM Language_Str MSG_PID_P_E0 = _UxGT("PID-P ") LCD_STR_E0;
#if IS_KINEMATIC PROGMEM Language_Str MSG_PID_P_E1 = _UxGT("PID-P ") LCD_STR_E1;
#define MSG_ASTEPS _UxGT("A軸步數/mm") //"Asteps/mm" axis_steps_per_mm, axis steps-per-unit G92 PROGMEM Language_Str MSG_PID_P_E2 = _UxGT("PID-P ") LCD_STR_E2;
#define MSG_BSTEPS _UxGT("B軸步數/mm") //"Bsteps/mm" PROGMEM Language_Str MSG_PID_P_E3 = _UxGT("PID-P ") LCD_STR_E3;
#define MSG_CSTEPS _UxGT("C軸步數/mm") //"Csteps/mm" PROGMEM Language_Str MSG_PID_P_E4 = _UxGT("PID-P ") LCD_STR_E4;
#else PROGMEM Language_Str MSG_PID_P_E5 = _UxGT("PID-P ") LCD_STR_E5;
#define MSG_ASTEPS _UxGT("X軸步數/mm") //"Xsteps/mm" axis_steps_per_mm, axis steps-per-unit G92 PROGMEM Language_Str MSG_PID_I = _UxGT("PID-I"); //"PID-I"
#define MSG_BSTEPS _UxGT("Y軸步數/mm") //"Ysteps/mm" PROGMEM Language_Str MSG_PID_I_E0 = _UxGT("PID-I ") LCD_STR_E0;
#define MSG_CSTEPS _UxGT("Z軸步數/mm") //"Zsteps/mm" PROGMEM Language_Str MSG_PID_I_E1 = _UxGT("PID-I ") LCD_STR_E1;
#endif PROGMEM Language_Str MSG_PID_I_E2 = _UxGT("PID-I ") LCD_STR_E2;
#define MSG_ESTEPS _UxGT("擠出機步數/mm") //"Esteps/mm" PROGMEM Language_Str MSG_PID_I_E3 = _UxGT("PID-I ") LCD_STR_E3;
#define MSG_E0_STEPS _UxGT("擠出機1步數/mm") //"E1steps/mm" PROGMEM Language_Str MSG_PID_I_E4 = _UxGT("PID-I ") LCD_STR_E4;
#define MSG_E1_STEPS _UxGT("擠出機2步數/mm") //"E2steps/mm" PROGMEM Language_Str MSG_PID_I_E5 = _UxGT("PID-I ") LCD_STR_E5;
#define MSG_E2_STEPS _UxGT("擠出機3步數/mm") //"E3steps/mm" PROGMEM Language_Str MSG_PID_D = _UxGT("PID-D"); //"PID-D"
#define MSG_E3_STEPS _UxGT("擠出機4步數/mm") //"E4steps/mm" PROGMEM Language_Str MSG_PID_D_E0 = _UxGT("PID-D ") LCD_STR_E0;
#define MSG_E4_STEPS _UxGT("擠出機5步數/mm") //"E5steps/mm" PROGMEM Language_Str MSG_PID_D_E1 = _UxGT("PID-D ") LCD_STR_E1;
#define MSG_E5_STEPS _UxGT("擠出機6步數/mm") //"E6steps/mm" PROGMEM Language_Str MSG_PID_D_E2 = _UxGT("PID-D ") LCD_STR_E2;
#define MSG_TEMPERATURE _UxGT("溫度") //"Temperature" PROGMEM Language_Str MSG_PID_D_E3 = _UxGT("PID-D ") LCD_STR_E3;
#define MSG_MOTION _UxGT("運作") //"Motion" PROGMEM Language_Str MSG_PID_D_E4 = _UxGT("PID-D ") LCD_STR_E4;
#define MSG_FILAMENT _UxGT("絲料測容") //"Filament" menu_control_volumetric PROGMEM Language_Str MSG_PID_D_E5 = _UxGT("PID-D ") LCD_STR_E5;
#define MSG_VOLUMETRIC_ENABLED _UxGT("測容積mm³") //"E in mm3" volumetric_enabled PROGMEM Language_Str MSG_PID_C = _UxGT("PID-C"); //"PID-C"
#define MSG_FILAMENT_DIAM _UxGT("絲料直徑") //"Fil. Dia." PROGMEM Language_Str MSG_PID_C_E0 = _UxGT("PID-C ") LCD_STR_E0;
#define MSG_FILAMENT_UNLOAD _UxGT("卸載 mm") // "Unload mm" PROGMEM Language_Str MSG_PID_C_E1 = _UxGT("PID-C ") LCD_STR_E1;
#define MSG_FILAMENT_LOAD _UxGT("装載 mm") // "Load mm" PROGMEM Language_Str MSG_PID_C_E2 = _UxGT("PID-C ") LCD_STR_E2;
#define MSG_ADVANCE_K _UxGT("Advance K") // "Advance K" PROGMEM Language_Str MSG_PID_C_E3 = _UxGT("PID-C ") LCD_STR_E3;
#define MSG_CONTRAST _UxGT("LCD對比度") //"LCD contrast" PROGMEM Language_Str MSG_PID_C_E4 = _UxGT("PID-C ") LCD_STR_E4;
#define MSG_STORE_EEPROM _UxGT("保存設置") //"Store memory" PROGMEM Language_Str MSG_PID_C_E5 = _UxGT("PID-C ") LCD_STR_E5;
#define MSG_LOAD_EEPROM _UxGT("載入設置") //"Load memory" PROGMEM Language_Str MSG_SELECT = _UxGT("選擇"); //"Select"
#define MSG_RESTORE_FAILSAFE _UxGT("恢復安全值") //"Restore failsafe" PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("選擇 ") LCD_STR_E0;
#define MSG_INIT_EEPROM _UxGT("初始化設置") // "Initialize EEPROM" PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("選擇 ") LCD_STR_E1;
#define MSG_REFRESH _UxGT("刷新") //"Refresh" PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("選擇 ") LCD_STR_E2;
#define MSG_WATCH _UxGT("資訊界面") //"Info screen" PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("選擇 ") LCD_STR_E3;
#define MSG_PREPARE _UxGT("準備") //"Prepare" PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("選擇 ") LCD_STR_E4;
#define MSG_TUNE _UxGT("調整") //"Tune" PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("選擇 ") LCD_STR_E5;
#define MSG_PAUSE_PRINT _UxGT("暫停列印") //"Pause print" PROGMEM Language_Str MSG_ACC = _UxGT("加速度"); //"Accel" acceleration
#define MSG_RESUME_PRINT _UxGT("恢復列印") //"Resume print" PROGMEM Language_Str MSG_JERK = _UxGT("抖動速率"); //"Jerk"
#define MSG_STOP_PRINT _UxGT("停止列印") //"Stop print" PROGMEM Language_Str MSG_VA_JERK = _UxGT("軸抖動速率") LCD_STR_A; //"Va-jerk"
#define MSG_MEDIA_MENU _UxGT("從記憶卡上列印") //"Print from SD" PROGMEM Language_Str MSG_VB_JERK = _UxGT("軸抖動速率") LCD_STR_B; //"Vb-jerk"
#define MSG_NO_MEDIA _UxGT("無記憶卡") //"No SD card" PROGMEM Language_Str MSG_VC_JERK = _UxGT("軸抖動速率") LCD_STR_C; //"Vc-jerk"
#define MSG_DWELL _UxGT("休眠 ...") //"Sleep..." PROGMEM Language_Str MSG_VE_JERK = _UxGT("擠出機抖動速率"); //"Ve-jerk"
#define MSG_USERWAIT _UxGT("點擊繼續 ...") //"Click to resume..." PROGMEM Language_Str MSG_VELOCITY = _UxGT("速度"); // "Velocity"
#define MSG_PRINT_PAUSED _UxGT("列印已暫停") // "Print paused" PROGMEM Language_Str MSG_VMAX_A = _UxGT("最大進料速率") LCD_STR_A; //"Vmax " max_feedrate_mm_s
#define MSG_PRINT_ABORTED _UxGT("已取消列印") //"Print aborted" PROGMEM Language_Str MSG_VMAX_B = _UxGT("最大進料速率") LCD_STR_B;
#define MSG_NO_MOVE _UxGT("無移動") //"No move." PROGMEM Language_Str MSG_VMAX_C = _UxGT("最大進料速率") LCD_STR_C;
#define MSG_KILLED _UxGT("已砍掉") //"KILLED. " PROGMEM Language_Str MSG_VMAX_E = _UxGT("最大進料速率") LCD_STR_E;
#define MSG_STOPPED _UxGT("已停止") //"STOPPED. " PROGMEM Language_Str MSG_VMAX_E0 = _UxGT("最大進料速率 ") LCD_STR_E0; //"Vmax " max_feedrate_mm_s
#define MSG_CONTROL_RETRACT _UxGT("回縮長度mm") //"Retract mm" retract_length, retract length (positive mm) PROGMEM Language_Str MSG_VMAX_E1 = _UxGT("最大進料速率 ") LCD_STR_E1;
#define MSG_CONTROL_RETRACT_SWAP _UxGT("換手回抽長度mm") //"Swap Re.mm" swap_retract_length, swap retract length (positive mm), for extruder change PROGMEM Language_Str MSG_VMAX_E2 = _UxGT("最大進料速率 ") LCD_STR_E2;
#define MSG_CONTROL_RETRACTF _UxGT("回縮速率mm/s") //"Retract V" retract_feedrate_mm_s, feedrate for retracting (mm/s) PROGMEM Language_Str MSG_VMAX_E3 = _UxGT("最大進料速率 ") LCD_STR_E3;
#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Hop mm") //"Hop mm" retract_zraise, retract Z-lift PROGMEM Language_Str MSG_VMAX_E4 = _UxGT("最大進料速率 ") LCD_STR_E4;
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("回縮恢復長度mm") //"UnRet +mm" retract_recover_extra, additional recover length (mm, added to retract length when recovering) PROGMEM Language_Str MSG_VMAX_E5 = _UxGT("最大進料速率 ") LCD_STR_E5;
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("換手回縮恢復長度mm") //"S UnRet+mm" swap_retract_recover_extra, additional swap recover length (mm, added to retract length when recovering from extruder change) PROGMEM Language_Str MSG_VMIN = _UxGT("最小進料速率"); //"Vmin" min_feedrate_mm_s
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("回縮恢復後進料速率mm/s") //"UnRet V" retract_recover_feedrate_mm_s, feedrate for recovering from retraction (mm/s) PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("最小移動速率"); //"VTrav min" min_travel_feedrate_mm_s, (target) speed of the move
#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V") // "S UnRet V" PROGMEM Language_Str MSG_ACCELERATION = _UxGT("加速度"); // "Acceleration"
#define MSG_AUTORETRACT _UxGT("自動回縮") //"AutoRetr." autoretract_enabled, PROGMEM Language_Str MSG_AMAX_A = _UxGT("最大列印加速度") LCD_STR_A; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves
#define MSG_FILAMENTCHANGE _UxGT("更換絲料") //"Change filament" PROGMEM Language_Str MSG_AMAX_B = _UxGT("最大列印加速度") LCD_STR_B;
#define MSG_FILAMENTLOAD _UxGT("裝載絲料") // "Load filament" PROGMEM Language_Str MSG_AMAX_C = _UxGT("最大列印加速度") LCD_STR_C;
#define MSG_FILAMENTUNLOAD _UxGT("卸載絲料") // "Unload filament" PROGMEM Language_Str MSG_AMAX_E = _UxGT("最大列印加速度") LCD_STR_E;
#define MSG_FILAMENTUNLOAD_ALL _UxGT("卸載全部") // "Unload All" PROGMEM Language_Str MSG_AMAX_E0 = _UxGT("最大列印加速度 ") LCD_STR_E0; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves
#define MSG_INIT_MEDIA _UxGT("初始化記憶卡") //"Init. SD card" PROGMEM Language_Str MSG_AMAX_E1 = _UxGT("最大列印加速度 ") LCD_STR_E1;
#define MSG_CHANGE_MEDIA _UxGT("更換記憶卡") //"Change SD card" PROGMEM Language_Str MSG_AMAX_E2 = _UxGT("最大列印加速度 ") LCD_STR_E2;
#define MSG_ZPROBE_OUT _UxGT("Z探針在熱床之外") //"Z probe out. bed" Z probe is not within the physical limits PROGMEM Language_Str MSG_AMAX_E3 = _UxGT("最大列印加速度 ") LCD_STR_E3;
#define MSG_SKEW_FACTOR _UxGT("偏斜因數") // "Skew Factor" PROGMEM Language_Str MSG_AMAX_E4 = _UxGT("最大列印加速度 ") LCD_STR_E4;
#define MSG_BLTOUCH _UxGT("BLTouch") // "BLTouch" PROGMEM Language_Str MSG_AMAX_E5 = _UxGT("最大列印加速度 ") LCD_STR_E5;
#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch 自檢") // "BLTouch Self-Test" PROGMEM Language_Str MSG_A_RETRACT = _UxGT("回縮加速度"); //"A-retract" retract_acceleration, E acceleration in mm/s^2 for retracts
#define MSG_BLTOUCH_RESET _UxGT("重置BLTouch") // "Reset BLTouch" PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("非列印移動加速度"); //"A-travel" travel_acceleration, X, Y, Z acceleration in mm/s^2 for travel (non printing) moves
#define MSG_BLTOUCH_DEPLOY _UxGT("部署BLTouch") // "Deploy BLTouch" PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("軸步數/mm"); //"Steps/mm" axis_steps_per_mm, axis steps-per-unit G92
#define MSG_BLTOUCH_STOW _UxGT("裝載BLTouch") // "Stow BLTouch" PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("軸步數/mm"); //"Asteps/mm" axis_steps_per_mm, axis steps-per-unit G92
#define MSG_HOME_FIRST _UxGT("歸位 %s%s%s 先") //"Home ... first" PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("軸步數/mm");
#define MSG_ZPROBE_ZOFFSET _UxGT("Z偏移") //"Z Offset" PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("軸步數/mm");
#define MSG_BABYSTEP_X _UxGT("微量調整X軸") //"Babystep X" lcd_babystep_x, Babystepping enables the user to control the axis in tiny amounts PROGMEM Language_Str MSG_E_STEPS = _UxGT("擠出機步數/mm"); //"Esteps/mm"
#define MSG_BABYSTEP_Y _UxGT("微量調整Y軸") //"Babystep Y" PROGMEM Language_Str MSG_E0_STEPS = _UxGT("擠出機") LCD_STR_N0 _UxGT("步數/mm");
#define MSG_BABYSTEP_Z _UxGT("微量調整Z軸") //"Babystep Z" PROGMEM Language_Str MSG_E1_STEPS = _UxGT("擠出機") LCD_STR_N1 _UxGT("步數/mm");
#define MSG_ENDSTOP_ABORT _UxGT("擋塊終止") //"Endstop abort" PROGMEM Language_Str MSG_E2_STEPS = _UxGT("擠出機") LCD_STR_N2 _UxGT("步數/mm");
#define MSG_HEATING_FAILED_LCD _UxGT("加熱失敗") //"Heating failed" PROGMEM Language_Str MSG_E3_STEPS = _UxGT("擠出機") LCD_STR_N3 _UxGT("步數/mm");
#define MSG_ERR_REDUNDANT_TEMP _UxGT("錯誤REDUNDANT TEMP") //"Err: REDUNDANT TEMP" PROGMEM Language_Str MSG_E4_STEPS = _UxGT("擠出機") LCD_STR_N4 _UxGT("步數/mm");
#define MSG_THERMAL_RUNAWAY _UxGT("溫控失控") //"THERMAL RUNAWAY" PROGMEM Language_Str MSG_E5_STEPS = _UxGT("擠出機") LCD_STR_N5 _UxGT("步數/mm");
#define MSG_ERR_MAXTEMP _UxGT("錯誤:最高溫度") //"Err: MAXTEMP" PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("溫度"); //"Temperature"
#define MSG_ERR_MINTEMP _UxGT("錯誤:最低溫度") //"Err: MINTEMP" PROGMEM Language_Str MSG_MOTION = _UxGT("運作"); //"Motion"
#define MSG_ERR_MAXTEMP_BED _UxGT("錯誤:最高熱床溫度") //"Err: MAXTEMP BED" PROGMEM Language_Str MSG_FILAMENT = _UxGT("絲料測容"); //"Filament" menu_control_volumetric
#define MSG_ERR_MINTEMP_BED _UxGT("錯誤:最低熱床溫度") //"Err: MINTEMP BED" PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("測容積mm³"); //"E in mm3" volumetric_enabled
#define MSG_ERR_Z_HOMING _UxGT("歸位 XY 先") //"Home XY First" PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("絲料直徑"); //"Fil. Dia."
#define MSG_HALTED _UxGT("印表機停機") //"PRINTER HALTED" PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("絲料直徑 ") LCD_STR_E0;
#define MSG_PLEASE_RESET _UxGT("請重置") //"Please reset" PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("絲料直徑 ") LCD_STR_E1;
#define MSG_SHORT_DAY _UxGT("天") //"d" // One character only PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("絲料直徑 ") LCD_STR_E2;
#define MSG_SHORT_HOUR _UxGT("時") //"h" // One character only PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("絲料直徑 ") LCD_STR_E3;
#define MSG_SHORT_MINUTE _UxGT("分") //"m" // One character only PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("絲料直徑 ") LCD_STR_E4;
#define MSG_HEATING _UxGT("加熱中 ...") //"Heating..." PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("絲料直徑 ") LCD_STR_E5;
#define MSG_BED_HEATING _UxGT("加熱熱床中 ...") //"Bed Heating..." PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("卸載 mm"); // "Unload mm"
#define MSG_DELTA_CALIBRATE _UxGT("⊿校準") //"Delta Calibration" PROGMEM Language_Str MSG_FILAMENT_LOAD = _UxGT("装載 mm"); // "Load mm"
#define MSG_DELTA_CALIBRATE_X _UxGT("⊿校準X") //"Calibrate X" PROGMEM Language_Str MSG_CONTRAST = _UxGT("LCD對比度"); //"LCD contrast"
#define MSG_DELTA_CALIBRATE_Y _UxGT("⊿校準Y") //"Calibrate Y" PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("保存設置"); //"Store memory"
#define MSG_DELTA_CALIBRATE_Z _UxGT("⊿校準Z") //"Calibrate Z" PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("載入設置"); //"Load memory"
#define MSG_DELTA_CALIBRATE_CENTER _UxGT("⊿校準中心") //"Calibrate Center" PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("恢復安全值"); //"Restore failsafe"
#define MSG_DELTA_SETTINGS _UxGT("⊿設置") // "Delta Settings" PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("初始化設置"); // "Initialize EEPROM"
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("⊿自動校準") // "Auto Calibration" PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("刷新"); //"Refresh"
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("設置⊿高度") // "Set Delta Height" PROGMEM Language_Str MSG_WATCH = _UxGT("資訊界面"); //"Info screen"
#define MSG_DELTA_DIAG_ROD _UxGT("⊿斜柱") // "Diag Rod" PROGMEM Language_Str MSG_PREPARE = _UxGT("準備"); //"Prepare"
#define MSG_DELTA_HEIGHT _UxGT("⊿高度") // "Height" PROGMEM Language_Str MSG_TUNE = _UxGT("調整"); //"Tune"
#define MSG_DELTA_RADIUS _UxGT("⊿半徑") // "Radius" PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("暫停列印"); //"Pause print"
#define MSG_INFO_MENU _UxGT("關於印表機") //"About Printer" PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("恢復列印"); //"Resume print"
#define MSG_INFO_PRINTER_MENU _UxGT("印表機訊息") //"Printer Info" PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("停止列印"); //"Stop print"
#define MSG_3POINT_LEVELING _UxGT("三點調平") // "3-Point Leveling" PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("從記憶卡上列印"); //"Print from SD"
#define MSG_LINEAR_LEVELING _UxGT("線性調平") // "Linear Leveling" PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("無記憶卡"); //"No SD card"
#define MSG_BILINEAR_LEVELING _UxGT("雙線性調平") // "Bilinear Leveling" PROGMEM Language_Str MSG_DWELL = _UxGT("休眠 ..."); //"Sleep..."
#define MSG_UBL_LEVELING _UxGT("統一熱床調平(UBL)") // "Unified Bed Leveling" PROGMEM Language_Str MSG_USERWAIT = _UxGT("點擊繼續 ..."); //"Click to resume..."
#define MSG_MESH_LEVELING _UxGT("網格調平") // "Mesh Leveling" PROGMEM Language_Str MSG_PRINT_PAUSED = _UxGT("列印已暫停"); // "Print paused"
#define MSG_INFO_STATS_MENU _UxGT("印表機統計") //"Printer Stats" PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("已取消列印"); //"Print aborted"
#define MSG_INFO_BOARD_MENU _UxGT("主板訊息") //"Board Info" PROGMEM Language_Str MSG_NO_MOVE = _UxGT("無移動"); //"No move."
#define MSG_INFO_THERMISTOR_MENU _UxGT("溫度計") //"Thermistors" PROGMEM Language_Str MSG_KILLED = _UxGT("已砍掉"); //"KILLED. "
#define MSG_INFO_EXTRUDERS _UxGT("擠出機") //"Extruders" PROGMEM Language_Str MSG_STOPPED = _UxGT("已停止"); //"STOPPED. "
#define MSG_INFO_BAUDRATE _UxGT("傳輸率") //"Baud" PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("回縮長度mm"); //"Retract mm" retract_length, retract length (positive mm)
#define MSG_INFO_PROTOCOL _UxGT("協議") //"Protocol" PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("換手回抽長度mm"); //"Swap Re.mm" swap_retract_length, swap retract length (positive mm), for extruder change
#define MSG_CASE_LIGHT _UxGT("外殼燈") // "Case light" PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("回縮速率mm/s"); //"Retract V" retract_feedrate_mm_s, feedrate for retracting (mm/s)
#define MSG_CASE_LIGHT_BRIGHTNESS _UxGT("燈亮度") // "Light BRIGHTNESS" PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Hop mm"); //"Hop mm" retract_zraise, retract Z-lift
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("回縮恢復長度mm"); //"UnRet +mm" retract_recover_extra, additional recover length (mm, added to retract length when recovering)
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("換手回縮恢復長度mm"); //"S UnRet+mm" swap_retract_recover_extra, additional swap recover length (mm, added to retract length when recovering from extruder change)
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("回縮恢復後進料速率mm/s"); //"UnRet V" retract_recover_feedrate_mm_s, feedrate for recovering from retraction (mm/s)
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAPF = _UxGT("S UnRet V"); // "S UnRet V"
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("自動回縮"); //"AutoRetr." autoretract_enabled,
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("更換絲料"); //"Change filament"
PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("更換絲料 ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("更換絲料 ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("更換絲料 ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("更換絲料 ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("更換絲料 ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("更換絲料 ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTLOAD = _UxGT("裝載絲料"); // "Load filament"
PROGMEM Language_Str MSG_FILAMENTLOAD_E0 = _UxGT("裝載絲料 ") LCD_STR_E0;
PROGMEM Language_Str MSG_FILAMENTLOAD_E1 = _UxGT("裝載絲料 ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTLOAD_E2 = _UxGT("裝載絲料 ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTLOAD_E3 = _UxGT("裝載絲料 ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTLOAD_E4 = _UxGT("裝載絲料 ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTLOAD_E5 = _UxGT("裝載絲料 ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E0 = _UxGT("卸載絲料 ") LCD_STR_E0; // "Unload filament"
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E1 = _UxGT("卸載絲料 ") LCD_STR_E1;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E2 = _UxGT("卸載絲料 ") LCD_STR_E2;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E3 = _UxGT("卸載絲料 ") LCD_STR_E3;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E4 = _UxGT("卸載絲料 ") LCD_STR_E4;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E5 = _UxGT("卸載絲料 ") LCD_STR_E5;
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("卸載全部"); // "Unload All"
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("初始化記憶卡"); //"Init. SD card"
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("更換記憶卡"); //"Change SD card"
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z探針在熱床之外"); //"Z probe out. bed" Z probe is not within the physical limits
PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("偏斜因數"); // "Skew Factor"
PROGMEM Language_Str MSG_BLTOUCH = _UxGT("BLTouch"); // "BLTouch"
PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("BLTouch 自檢"); // "BLTouch Self-Test"
PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("重置BLTouch"); // "Reset BLTouch"
PROGMEM Language_Str MSG_BLTOUCH_DEPLOY = _UxGT("部署BLTouch"); // "Deploy BLTouch"
PROGMEM Language_Str MSG_BLTOUCH_STOW = _UxGT("裝載BLTouch"); // "Stow BLTouch"
PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("歸位 %s%s%s 先"); //"Home ... first"
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Z偏移"); //"Z Offset"
PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("微量調整X軸"); //"Babystep X" lcd_babystep_x, Babystepping enables the user to control the axis in tiny amounts
PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("微量調整Y軸"); //"Babystep Y"
PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("微量調整Z軸"); //"Babystep Z"
PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("擋塊終止"); //"Endstop abort"
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("加熱失敗"); //"Heating failed"
PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("錯誤REDUNDANT TEMP"); //"Err: REDUNDANT TEMP"
PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("溫控失控"); //"THERMAL RUNAWAY"
PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("錯誤:最高溫度"); //"Err: MAXTEMP"
PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("錯誤:最低溫度"); //"Err: MINTEMP"
PROGMEM Language_Str MSG_ERR_MAXTEMP_BED = _UxGT("錯誤:最高熱床溫度"); //"Err: MAXTEMP BED"
PROGMEM Language_Str MSG_ERR_MINTEMP_BED = _UxGT("錯誤:最低熱床溫度"); //"Err: MINTEMP BED"
PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("歸位 XY 先"); //"Home XY First"
PROGMEM Language_Str MSG_HALTED = _UxGT("印表機停機"); //"PRINTER HALTED"
PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("請重置"); //"Please reset"
PROGMEM Language_Str MSG_SHORT_DAY = _UxGT(""); //"d" // One character only
PROGMEM Language_Str MSG_SHORT_HOUR = _UxGT(""); //"h" // One character only
PROGMEM Language_Str MSG_SHORT_MINUTE = _UxGT(""); //"m" // One character only
PROGMEM Language_Str MSG_HEATING = _UxGT("加熱中 ..."); //"Heating..."
PROGMEM Language_Str MSG_BED_HEATING = _UxGT("加熱熱床中 ..."); //"Bed Heating..."
PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("⊿校準"); //"Delta Calibration"
PROGMEM Language_Str MSG_DELTA_CALIBRATE_X = _UxGT("⊿校準X"); //"Calibrate X"
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Y = _UxGT("⊿校準Y"); //"Calibrate Y"
PROGMEM Language_Str MSG_DELTA_CALIBRATE_Z = _UxGT("⊿校準Z"); //"Calibrate Z"
PROGMEM Language_Str MSG_DELTA_CALIBRATE_CENTER = _UxGT("⊿校準中心"); //"Calibrate Center"
PROGMEM Language_Str MSG_DELTA_SETTINGS = _UxGT("⊿設置"); // "Delta Settings"
PROGMEM Language_Str MSG_DELTA_AUTO_CALIBRATE = _UxGT("⊿自動校準"); // "Auto Calibration"
PROGMEM Language_Str MSG_DELTA_HEIGHT_CALIBRATE = _UxGT("設置⊿高度"); // "Set Delta Height"
PROGMEM Language_Str MSG_DELTA_DIAG_ROD = _UxGT("⊿斜柱"); // "Diag Rod"
PROGMEM Language_Str MSG_DELTA_HEIGHT = _UxGT("⊿高度"); // "Height"
PROGMEM Language_Str MSG_DELTA_RADIUS = _UxGT("⊿半徑"); // "Radius"
PROGMEM Language_Str MSG_INFO_MENU = _UxGT("關於印表機"); //"About Printer"
PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("印表機訊息"); //"Printer Info"
PROGMEM Language_Str MSG_3POINT_LEVELING = _UxGT("三點調平"); // "3-Point Leveling"
PROGMEM Language_Str MSG_LINEAR_LEVELING = _UxGT("線性調平"); // "Linear Leveling"
PROGMEM Language_Str MSG_BILINEAR_LEVELING = _UxGT("雙線性調平"); // "Bilinear Leveling"
PROGMEM Language_Str MSG_UBL_LEVELING = _UxGT("統一熱床調平(UBL)"); // "Unified Bed Leveling"
PROGMEM Language_Str MSG_MESH_LEVELING = _UxGT("網格調平"); // "Mesh Leveling"
PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("印表機統計"); //"Printer Stats"
PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("主板訊息"); //"Board Info"
PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("溫度計"); //"Thermistors"
PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("擠出機"); //"Extruders"
PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("傳輸率"); //"Baud"
PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("協議"); //"Protocol"
PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("外殼燈"); // "Case light"
PROGMEM Language_Str MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("燈亮度"); // "Light BRIGHTNESS"
#define MSG_EXPECTED_PRINTER _UxGT("打印機不正確") // "The printer is incorrect" PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("打印機不正確"); // "The printer is incorrect"
#if LCD_WIDTH >= 20 #if LCD_WIDTH >= 20
#define MSG_INFO_PRINT_COUNT _UxGT("列印計數") //"Print Count" PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("列印計數"); //"Print Count"
#define MSG_INFO_COMPLETED_PRINTS _UxGT("已完成") //"Completed" PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("已完成"); //"Completed"
#define MSG_INFO_PRINT_TIME _UxGT("總列印時間") //"Total print time" PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("總列印時間"); //"Total print time"
#define MSG_INFO_PRINT_LONGEST _UxGT("最長工作時間") //"Longest job time" PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("最長工作時間"); //"Longest job time"
#define MSG_INFO_PRINT_FILAMENT _UxGT("總計擠出") //"Extruded total" PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("總計擠出"); //"Extruded total"
#else #else
#define MSG_INFO_PRINT_COUNT _UxGT("列印數") //"Prints" PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("列印數"); //"Prints"
#define MSG_INFO_COMPLETED_PRINTS _UxGT("完成") //"Completed" PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("完成"); //"Completed"
#define MSG_INFO_PRINT_TIME _UxGT("總共") //"Total" PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("總共"); //"Total"
#define MSG_INFO_PRINT_LONGEST _UxGT("最長") //"Longest" PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("最長"); //"Longest"
#define MSG_INFO_PRINT_FILAMENT _UxGT("已擠出") //"Extruded" PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("已擠出"); //"Extruded"
#endif #endif
#define MSG_INFO_MIN_TEMP _UxGT("最低溫度") //"Min Temp" PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("最低溫度"); //"Min Temp"
#define MSG_INFO_MAX_TEMP _UxGT("最高溫度") //"Max Temp" PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("最高溫度"); //"Max Temp"
#define MSG_INFO_PSU _UxGT("電源供應") //"Power Supply" PROGMEM Language_Str MSG_INFO_PSU = _UxGT("電源供應"); //"Power Supply"
#define MSG_DRIVE_STRENGTH _UxGT("驅動力度") // "Drive Strength" PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("驅動力度"); // "Drive Strength"
#define MSG_DAC_PERCENT _UxGT("驅動 %") // "Driver %" PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("驅動 %"); // "Driver %"
#define MSG_DAC_EEPROM_WRITE _UxGT("保存驅動設置") // "DAC EEPROM Write" PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("保存驅動設置"); // "DAC EEPROM Write"
#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("列印已暫停") // "PRINT PAUSED" PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("列印已暫停"); // "PRINT PAUSED"
#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("裝載絲料") // "LOAD FILAMENT" PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("裝載絲料"); // "LOAD FILAMENT"
#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("卸載絲料") // "UNLOAD FILAMENT" PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("卸載絲料"); // "UNLOAD FILAMENT"
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("恢複選項:") // "RESUME OPTIONS:" PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("恢複選項:"); // "RESUME OPTIONS:"
#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("清除更多") // "Purge more" PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("清除更多"); // "Purge more"
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("恢復列印") //"Resume print" PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("恢復列印"); //"Resume print"
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" 噴嘴: ") // " Nozzle: " PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" 噴嘴: "); // " Nozzle: "
#define MSG_ERR_HOMING_FAILED _UxGT("歸原位失敗") // "Homing failed" PROGMEM Language_Str MSG_LCD_HOMING_FAILED = _UxGT("歸原位失敗"); // "Homing failed"
#define MSG_ERR_PROBING_FAILED _UxGT("探針探測失敗") // "Probing failed" PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("探針探測失敗"); // "Probing failed"
#define MSG_M600_TOO_COLD _UxGT("M600: 太涼") // "M600: Too cold" PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: 太冷"); // "M600: Too cold"
#if LCD_HEIGHT >= 4 #if LCD_HEIGHT >= 4
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("等待開始") //"Wait for start" PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("等待開始", "絲料", "變更")); //"Wait for start of the filament change"
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("絲料") //"of the filament" PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("等待", "卸下絲料")); //"Wait for filament unload"
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("變更") //"change" PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("插入絲料", "並按鍵", "繼續 ...")); //"Insert filament and press button to continue..."
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("等待") //"Wait for" PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("按下按鈕來", "加熱噴嘴.")); // "Press button to heat nozzle."
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("卸下絲料") //"filament unload" PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("加熱噴嘴", "請等待 ...")); // "Heating nozzle Please wait..."
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("插入絲料") //"Insert filament" PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("等待", "進料")); //"Wait for filament load"
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("並按鍵") //"and press button" PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_2_LINE("等待", "絲料清除")); // "Wait for filament purge"
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("繼續 ...") //"to continue..." PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("等待列印", "恢復")); //"Wait for print to resume"
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("按下按鈕來") // "Press button to" #else // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("加熱噴嘴.") // "heat nozzle." PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("請等待 ...")); //"Please wait..."
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("加熱噴嘴") // "Heating nozzle" PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("退出中 ...")); //"Ejecting..."
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("請等待 ...") // "Please wait..." PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("插入並點擊")); //"Insert and Click"
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("等待") //"Wait for" PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("加熱中 ...")); // "Heating..."
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("進料") //"filament load" PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("載入中 ...")); //"Loading..."
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("等待") // "Wait for" PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_1_LINE("清除中 ...")); // "Purging..."
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("絲料清除") // "filament purge" PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("恢復中 ...")); //"Resuming..."
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("等待列印") //"Wait for print" #endif // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("恢復") //"to resume" }
#else // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("請等待 ...") //"Please wait..."
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("退出中 ...") //"Ejecting..."
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("插入並點擊") //"Insert and Click"
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("加熱中 ...") // "Heating..."
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("載入中 ...") //"Loading..."
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("清除中 ...") // "Purging..."
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("恢復中 ...") //"Resuming..."
#endif // LCD_HEIGHT < 4

View file

@ -138,7 +138,7 @@ void MenuItem_gcode::action(PGM_P const, PGM_P const pgcode) { queue.inject_P(pg
* EDIT_ITEM(int3, MSG_SPEED, &feedrate_percentage, 10, 999) * EDIT_ITEM(int3, MSG_SPEED, &feedrate_percentage, 10, 999)
* *
* This expands into a more primitive menu item: * This expands into a more primitive menu item:
* _MENU_ITEM_P(int3, false, PSTR(MSG_SPEED), &feedrate_percentage, 10, 999) * _MENU_ITEM_P(int3, false, GET_TEXT(MSG_SPEED), &feedrate_percentage, 10, 999)
* *
* ...which calls: * ...which calls:
* MenuItem_int3::action(plabel, &feedrate_percentage, 10, 999) * MenuItem_int3::action(plabel, &feedrate_percentage, 10, 999)
@ -324,8 +324,7 @@ void MarlinUI::_synchronize() {
// Display the synchronize screen with a custom message // Display the synchronize screen with a custom message
// ** This blocks the command queue! ** // ** This blocks the command queue! **
void MarlinUI::synchronize(PGM_P const msg/*=nullptr*/) { void MarlinUI::synchronize(PGM_P const msg/*=nullptr*/) {
static const char moving[] PROGMEM = MSG_MOVING; sync_message = msg ?: GET_TEXT(MSG_MOVING);
sync_message = msg ? msg : moving;
_synchronize(); _synchronize();
} }
@ -419,10 +418,10 @@ void scroll_screen(const uint8_t limit, const bool is_menu) {
if (ui.should_draw()) { if (ui.should_draw()) {
#if ENABLED(BABYSTEP_HOTEND_Z_OFFSET) #if ENABLED(BABYSTEP_HOTEND_Z_OFFSET)
if (!do_probe) if (!do_probe)
draw_edit_screen(PSTR(MSG_Z_OFFSET), ftostr43sign(hotend_offset[active_extruder].z)); draw_edit_screen(GET_TEXT(MSG_Z_OFFSET), ftostr43sign(hotend_offset[active_extruder].z));
else else
#endif #endif
draw_edit_screen(PSTR(MSG_ZPROBE_ZOFFSET), ftostr43sign(probe_offset.z)); draw_edit_screen(GET_TEXT(MSG_ZPROBE_ZOFFSET), ftostr43sign(probe_offset.z));
#if ENABLED(BABYSTEP_ZPROBE_GFX_OVERLAY) #if ENABLED(BABYSTEP_ZPROBE_GFX_OVERLAY)
if (do_probe) _lcd_zoffset_overlay_gfx(probe_offset.z); if (do_probe) _lcd_zoffset_overlay_gfx(probe_offset.z);
@ -467,7 +466,7 @@ void scroll_screen(const uint8_t limit, const bool is_menu) {
void _lcd_draw_homing() { void _lcd_draw_homing() {
constexpr uint8_t line = (LCD_HEIGHT - 1) / 2; constexpr uint8_t line = (LCD_HEIGHT - 1) / 2;
if (ui.should_draw()) draw_menu_item_static(line, PSTR(MSG_LEVEL_BED_HOMING)); if (ui.should_draw()) draw_menu_item_static(line, GET_TEXT(MSG_LEVEL_BED_HOMING));
ui.refresh(LCDVIEW_CALL_NO_REDRAW); ui.refresh(LCDVIEW_CALL_NO_REDRAW);
} }

View file

@ -75,16 +75,17 @@ typedef void (*selectFunc_t)();
void draw_select_screen(PGM_P const yes, PGM_P const no, const bool yesno, PGM_P const pref, const char * const string, PGM_P const suff); void draw_select_screen(PGM_P const yes, PGM_P const no, const bool yesno, PGM_P const pref, const char * const string, PGM_P const suff);
void do_select_screen(PGM_P const yes, PGM_P const no, selectFunc_t yesFunc, selectFunc_t noFunc, PGM_P const pref, const char * const string=nullptr, PGM_P const suff=nullptr); void do_select_screen(PGM_P const yes, PGM_P const no, selectFunc_t yesFunc, selectFunc_t noFunc, PGM_P const pref, const char * const string=nullptr, PGM_P const suff=nullptr);
inline void do_select_screen_yn(selectFunc_t yesFunc, selectFunc_t noFunc, PGM_P const pref, const char * const string=nullptr, PGM_P const suff=nullptr) { inline void do_select_screen_yn(selectFunc_t yesFunc, selectFunc_t noFunc, PGM_P const pref, const char * const string=nullptr, PGM_P const suff=nullptr) {
do_select_screen(PSTR(MSG_YES), PSTR(MSG_NO), yesFunc, noFunc, pref, string, suff); do_select_screen(GET_TEXT(MSG_YES), GET_TEXT(MSG_NO), yesFunc, noFunc, pref, string, suff);
} }
#define SS_LEFT 0x00 #define SS_LEFT 0x00
#define SS_CENTER 0x01 #define SS_CENTER 0x01
#define SS_INVERT 0x02 #define SS_INVERT 0x02
#define SS_DEFAULT SS_CENTER
void draw_edit_screen(PGM_P const pstr, const char* const value=nullptr); void draw_edit_screen(PGM_P const pstr, const char* const value=nullptr);
void draw_menu_item(const bool sel, const uint8_t row, PGM_P const pstr, const char pre_char, const char post_char); void draw_menu_item(const bool sel, const uint8_t row, PGM_P const pstr, const char pre_char, const char post_char);
void draw_menu_item_static(const uint8_t row, PGM_P const pstr, const uint8_t style=SS_CENTER, const char * const valstr=nullptr); void draw_menu_item_static(const uint8_t row, PGM_P const pstr, const uint8_t style=SS_DEFAULT, const char * const valstr=nullptr);
void _draw_menu_item_edit(const bool sel, const uint8_t row, PGM_P const pstr, const char* const data, const bool pgm); void _draw_menu_item_edit(const bool sel, const uint8_t row, PGM_P const pstr, const char* const data, const bool pgm);
FORCE_INLINE void draw_menu_item_back(const bool sel, const uint8_t row, PGM_P const pstr) { draw_menu_item(sel, row, pstr, LCD_STR_UPLEVEL[0], LCD_STR_UPLEVEL[0]); } FORCE_INLINE void draw_menu_item_back(const bool sel, const uint8_t row, PGM_P const pstr) { draw_menu_item(sel, row, pstr, LCD_STR_UPLEVEL[0], LCD_STR_UPLEVEL[0]); }
FORCE_INLINE void draw_menu_item_edit(const bool sel, const uint8_t row, PGM_P const pstr, const char* const data) { _draw_menu_item_edit(sel, row, pstr, data, false); } FORCE_INLINE void draw_menu_item_edit(const bool sel, const uint8_t row, PGM_P const pstr, const char* const data) { _draw_menu_item_edit(sel, row, pstr, data, false); }
@ -93,7 +94,7 @@ FORCE_INLINE void draw_menu_item_edit_P(const bool sel, const uint8_t row, PGM_P
#define draw_menu_item_gcode(sel, row, pstr, gcode) draw_menu_item(sel, row, pstr, '>', ' ') #define draw_menu_item_gcode(sel, row, pstr, gcode) draw_menu_item(sel, row, pstr, '>', ' ')
#define draw_menu_item_function(sel, row, pstr, data) draw_menu_item(sel, row, pstr, '>', ' ') #define draw_menu_item_function(sel, row, pstr, data) draw_menu_item(sel, row, pstr, '>', ' ')
#define DRAW_MENU_ITEM_SETTING_EDIT_GENERIC(VAL) draw_menu_item_edit(sel, row, pstr, VAL) #define DRAW_MENU_ITEM_SETTING_EDIT_GENERIC(VAL) draw_menu_item_edit(sel, row, pstr, VAL)
#define DRAW_BOOL_SETTING(sel, row, pstr, data) draw_menu_item_edit_P(sel, row, pstr, (*(data))?PSTR(MSG_LCD_ON):PSTR(MSG_LCD_OFF)) #define DRAW_BOOL_SETTING(sel, row, pstr, data) draw_menu_item_edit_P(sel, row, pstr, (*(data))?GET_TEXT(MSG_LCD_ON):GET_TEXT(MSG_LCD_OFF))
#if ENABLED(SDSUPPORT) #if ENABLED(SDSUPPORT)
class CardReader; class CardReader;
@ -321,17 +322,17 @@ class MenuItem_bool {
* Examples: * Examples:
* BACK_ITEM(MSG_WATCH) * BACK_ITEM(MSG_WATCH)
* MENU_ITEM(back, MSG_WATCH) * MENU_ITEM(back, MSG_WATCH)
* draw_menu_item_back(sel, row, PSTR(MSG_WATCH)) * draw_menu_item_back(sel, row, GET_TEXT(MSG_WATCH))
* MenuItem_back::action() * MenuItem_back::action()
* *
* ACTION_ITEM(MSG_PAUSE_PRINT, lcd_sdcard_pause) * ACTION_ITEM(MSG_PAUSE_PRINT, lcd_sdcard_pause)
* MENU_ITEM(function, MSG_PAUSE_PRINT, lcd_sdcard_pause) * MENU_ITEM(function, MSG_PAUSE_PRINT, lcd_sdcard_pause)
* draw_menu_item_function(sel, row, PSTR(MSG_PAUSE_PRINT), lcd_sdcard_pause) * draw_menu_item_function(sel, row, GET_TEXT(MSG_PAUSE_PRINT), lcd_sdcard_pause)
* MenuItem_function::action(lcd_sdcard_pause) * MenuItem_function::action(lcd_sdcard_pause)
* *
* EDIT_ITEM(int3, MSG_SPEED, &feedrate_percentage, 10, 999) * EDIT_ITEM(int3, MSG_SPEED, &feedrate_percentage, 10, 999)
* draw_menu_item_int3(sel, row, PSTR(MSG_SPEED), &feedrate_percentage, 10, 999) * draw_menu_item_int3(sel, row, GET_TEXT(MSG_SPEED), &feedrate_percentage, 10, 999)
* MenuItem_int3::action(PSTR(MSG_SPEED), &feedrate_percentage, 10, 999) * MenuItem_int3::action(GET_TEXT(MSG_SPEED), &feedrate_percentage, 10, 999)
* *
*/ */
#define _MENU_ITEM_P(TYPE, USE_MULTIPLIER, PLABEL, V...) do { \ #define _MENU_ITEM_P(TYPE, USE_MULTIPLIER, PLABEL, V...) do { \
@ -370,18 +371,28 @@ class MenuItem_bool {
#define MENU_ITEM_ADDON_END() } }while(0) #define MENU_ITEM_ADDON_END() } }while(0)
#define STATIC_ITEM(LABEL, V...) STATIC_ITEM_P(PSTR(LABEL), ##V) #define STATIC_ITEM(LABEL, V...) STATIC_ITEM_P(GET_TEXT(LABEL), ##V)
#define MENU_ITEM_P(TYPE, PLABEL, V...) _MENU_ITEM_P(TYPE, false, PLABEL, ##V) #define MENU_ITEM_P(TYPE, PLABEL, V...) _MENU_ITEM_P(TYPE, false, PLABEL, ##V)
#define MENU_ITEM(TYPE, LABEL, V...) _MENU_ITEM_P(TYPE, false, PSTR(LABEL), ##V) #define MENU_ITEM(TYPE, LABEL, V...) MENU_ITEM_P(TYPE, GET_TEXT(LABEL), ##V)
#define EDIT_ITEM(TYPE, LABEL, V...) _MENU_ITEM_P(TYPE, false, PSTR(LABEL), ##V)
#define EDIT_ITEM_FAST(TYPE, LABEL, V...) _MENU_ITEM_P(TYPE, true, PSTR(LABEL), ##V)
#define SKIP_ITEM() (_thisItemNr++) #define EDIT_ITEM_P(TYPE, PLABEL, V...) MENU_ITEM_P(TYPE, PLABEL, ##V)
#define BACK_ITEM(LABEL) MENU_ITEM(back,LABEL) #define EDIT_ITEM(TYPE, LABEL, V...) EDIT_ITEM_P(TYPE, GET_TEXT(LABEL), ##V)
#define SUBMENU(LABEL, DEST) MENU_ITEM(submenu, LABEL, DEST)
#define GCODES_ITEM(LABEL, GCODES) MENU_ITEM(gcode, LABEL, GCODES) #define EDIT_ITEM_FAST_P(TYPE, PLABEL, V...) _MENU_ITEM_P(TYPE, true, PLABEL, ##V)
#define ACTION_ITEM(LABEL, ACTION) MENU_ITEM(function, LABEL, ACTION) #define EDIT_ITEM_FAST(TYPE, LABEL, V...) EDIT_ITEM_FAST_P(TYPE, GET_TEXT(LABEL), ##V)
#define ACTION_ITEM_P(PLABEL, ACTION) MENU_ITEM_P(function, PLABEL, ACTION)
#define ACTION_ITEM(LABEL, ACTION) ACTION_ITEM_P(GET_TEXT(LABEL), ACTION)
#define GCODES_ITEM_P(PLABEL, GCODES) MENU_ITEM_P(gcode, PLABEL, GCODES)
#define GCODES_ITEM(LABEL, GCODES) GCODES_ITEM_P(GET_TEXT(LABEL), GCODES)
#define SUBMENU_P(PLABEL, DEST) MENU_ITEM_P(submenu, PLABEL, DEST)
#define SUBMENU(LABEL, DEST) SUBMENU_P(GET_TEXT(LABEL), DEST)
#define BACK_ITEM(LABEL) MENU_ITEM(back, LABEL)
#define SKIP_ITEM() (_thisItemNr++)
//////////////////////////////////////////// ////////////////////////////////////////////
/////////////// Menu Screens /////////////// /////////////// Menu Screens ///////////////

View file

@ -78,7 +78,7 @@ void menu_backlash();
void menu_pwm() { void menu_pwm() {
START_MENU(); START_MENU();
BACK_ITEM(MSG_ADVANCED_SETTINGS); BACK_ITEM(MSG_ADVANCED_SETTINGS);
#define EDIT_CURRENT_PWM(LABEL,I) EDIT_ITEM(long5, LABEL, &stepper.motor_current_setting[I], 100, 2000, stepper.refresh_motor_power) #define EDIT_CURRENT_PWM(LABEL,I) EDIT_ITEM_P(long5, PSTR(LABEL), &stepper.motor_current_setting[I], 100, 2000, stepper.refresh_motor_power)
#if PIN_EXISTS(MOTOR_CURRENT_PWM_XY) #if PIN_EXISTS(MOTOR_CURRENT_PWM_XY)
EDIT_CURRENT_PWM(MSG_X MSG_Y, 0); EDIT_CURRENT_PWM(MSG_X MSG_Y, 0);
#endif #endif
@ -109,7 +109,7 @@ void menu_backlash();
#if EXTRUDERS == 1 #if EXTRUDERS == 1
EDIT_ITEM(float52, MSG_ADVANCE_K, &planner.extruder_advance_K[0], 0, 999); EDIT_ITEM(float52, MSG_ADVANCE_K, &planner.extruder_advance_K[0], 0, 999);
#elif EXTRUDERS > 1 #elif EXTRUDERS > 1
#define EDIT_ADVANCE_K(N) EDIT_ITEM(float52, MSG_ADVANCE_K LCD_STR_E##N, &planner.extruder_advance_K[N], 0, 999) #define EDIT_ADVANCE_K(N) EDIT_ITEM(float52, MSG_ADVANCE_K_E##N, &planner.extruder_advance_K[N], 0, 999)
EDIT_ADVANCE_K(0); EDIT_ADVANCE_K(0);
EDIT_ADVANCE_K(1); EDIT_ADVANCE_K(1);
#if EXTRUDERS > 2 #if EXTRUDERS > 2
@ -134,7 +134,7 @@ void menu_backlash();
#if EXTRUDERS == 1 #if EXTRUDERS == 1
EDIT_ITEM_FAST(float43, MSG_FILAMENT_DIAM, &planner.filament_size[0], 1.5f, 3.25f, planner.calculate_volumetric_multipliers); EDIT_ITEM_FAST(float43, MSG_FILAMENT_DIAM, &planner.filament_size[0], 1.5f, 3.25f, planner.calculate_volumetric_multipliers);
#else // EXTRUDERS > 1 #else // EXTRUDERS > 1
#define EDIT_FIL_DIAM(N) EDIT_ITEM_FAST(float43, MSG_FILAMENT_DIAM LCD_STR_N##N, &planner.filament_size[N], 1.5f, 3.25f, planner.calculate_volumetric_multipliers) #define EDIT_FIL_DIAM(N) EDIT_ITEM_FAST(float43, MSG_FILAMENT_DIAM_E##N, &planner.filament_size[N], 1.5f, 3.25f, planner.calculate_volumetric_multipliers)
EDIT_ITEM_FAST(float43, MSG_FILAMENT_DIAM, &planner.filament_size[active_extruder], 1.5f, 3.25f, planner.calculate_volumetric_multipliers); EDIT_ITEM_FAST(float43, MSG_FILAMENT_DIAM, &planner.filament_size[active_extruder], 1.5f, 3.25f, planner.calculate_volumetric_multipliers);
EDIT_FIL_DIAM(0); EDIT_FIL_DIAM(0);
EDIT_FIL_DIAM(1); EDIT_FIL_DIAM(1);
@ -166,7 +166,7 @@ void menu_backlash();
#if EXTRUDERS == 1 #if EXTRUDERS == 1
EDIT_ITEM_FAST(float3, MSG_FILAMENT_UNLOAD, &fc_settings[0].unload_length, 0, extrude_maxlength); EDIT_ITEM_FAST(float3, MSG_FILAMENT_UNLOAD, &fc_settings[0].unload_length, 0, extrude_maxlength);
#elif EXTRUDERS > 1 #elif EXTRUDERS > 1
#define EDIT_FIL_UNLOAD(N) EDIT_ITEM_FAST(float3, MSG_FILAMENT_UNLOAD LCD_STR_N##N, &fc_settings[N].unload_length, 0, extrude_maxlength) #define EDIT_FIL_UNLOAD(N) EDIT_ITEM_FAST(float3, MSG_FILAMENTUNLOAD_E##N, &fc_settings[N].unload_length, 0, extrude_maxlength)
EDIT_ITEM_FAST(float3, MSG_FILAMENT_UNLOAD, &fc_settings[active_extruder].unload_length, 0, extrude_maxlength); EDIT_ITEM_FAST(float3, MSG_FILAMENT_UNLOAD, &fc_settings[active_extruder].unload_length, 0, extrude_maxlength);
EDIT_FIL_UNLOAD(0); EDIT_FIL_UNLOAD(0);
EDIT_FIL_UNLOAD(1); EDIT_FIL_UNLOAD(1);
@ -187,7 +187,7 @@ void menu_backlash();
#if EXTRUDERS == 1 #if EXTRUDERS == 1
EDIT_ITEM_FAST(float3, MSG_FILAMENT_LOAD, &fc_settings[0].load_length, 0, extrude_maxlength); EDIT_ITEM_FAST(float3, MSG_FILAMENT_LOAD, &fc_settings[0].load_length, 0, extrude_maxlength);
#elif EXTRUDERS > 1 #elif EXTRUDERS > 1
#define EDIT_FIL_LOAD(N) EDIT_ITEM_FAST(float3, MSG_FILAMENT_LOAD LCD_STR_N##N, &fc_settings[N].load_length, 0, extrude_maxlength) #define EDIT_FIL_LOAD(N) EDIT_ITEM_FAST(float3, MSG_FILAMENTLOAD_E##N, &fc_settings[N].load_length, 0, extrude_maxlength)
EDIT_ITEM_FAST(float3, MSG_FILAMENT_LOAD, &fc_settings[active_extruder].load_length, 0, extrude_maxlength); EDIT_ITEM_FAST(float3, MSG_FILAMENT_LOAD, &fc_settings[active_extruder].load_length, 0, extrude_maxlength);
EDIT_FIL_LOAD(0); EDIT_FIL_LOAD(0);
EDIT_FIL_LOAD(1); EDIT_FIL_LOAD(1);
@ -268,8 +268,43 @@ void menu_backlash();
thermalManager.updatePID(); thermalManager.updatePID();
} }
#define _DEFINE_PIDTEMP_BASE_FUNCS(N) \
void copy_and_scalePID_i_E##N() { copy_and_scalePID_i(N); } \
void copy_and_scalePID_d_E##N() { copy_and_scalePID_d(N); }
#else
#define _DEFINE_PIDTEMP_BASE_FUNCS(N) //
#endif #endif
#if ENABLED(PID_AUTOTUNE_MENU)
#define DEFINE_PIDTEMP_FUNCS(N) \
_DEFINE_PIDTEMP_BASE_FUNCS(N); \
void lcd_autotune_callback_E##N() { _lcd_autotune(N); } //
#else
#define DEFINE_PIDTEMP_FUNCS(N) _DEFINE_PIDTEMP_BASE_FUNCS(N); //
#endif
#if HOTENDS
DEFINE_PIDTEMP_FUNCS(0);
#if HOTENDS > 1 && ENABLED(PID_PARAMS_PER_HOTEND)
DEFINE_PIDTEMP_FUNCS(1);
#if HOTENDS > 2
DEFINE_PIDTEMP_FUNCS(2);
#if HOTENDS > 3
DEFINE_PIDTEMP_FUNCS(3);
#if HOTENDS > 4
DEFINE_PIDTEMP_FUNCS(4);
#if HOTENDS > 5
DEFINE_PIDTEMP_FUNCS(5);
#endif // HOTENDS > 5
#endif // HOTENDS > 4
#endif // HOTENDS > 3
#endif // HOTENDS > 2
#endif // HOTENDS > 1 && PID_PARAMS_PER_HOTEND
#endif // HOTENDS
#define SHOW_MENU_ADVANCED_TEMPERATURE ((ENABLED(AUTOTEMP) && HAS_TEMP_HOTEND) || EITHER(PID_AUTOTUNE_MENU, PID_EDIT_MENU)) #define SHOW_MENU_ADVANCED_TEMPERATURE ((ENABLED(AUTOTEMP) && HAS_TEMP_HOTEND) || EITHER(PID_AUTOTUNE_MENU, PID_EDIT_MENU))
// //
@ -300,53 +335,57 @@ void menu_backlash();
// //
#if ENABLED(PID_EDIT_MENU) #if ENABLED(PID_EDIT_MENU)
#define _PID_BASE_MENU_ITEMS(ELABEL, eindex) \ #if HOTENDS > 1 && ENABLED(PID_PARAMS_PER_HOTEND)
raw_Ki = unscalePID_i(PID_PARAM(Ki, eindex)); \ #define PID_LABEL(MSG,N) MSG##_E##N
raw_Kd = unscalePID_d(PID_PARAM(Kd, eindex)); \ #else
EDIT_ITEM(float52sign, MSG_PID_P ELABEL, &PID_PARAM(Kp, eindex), 1, 9990); \ #define PID_LABEL(MSG,N) MSG
EDIT_ITEM(float52sign, MSG_PID_I ELABEL, &raw_Ki, 0.01f, 9990, [](){ copy_and_scalePID_i(eindex); }); \ #endif
EDIT_ITEM(float52sign, MSG_PID_D ELABEL, &raw_Kd, 1, 9990, [](){ copy_and_scalePID_d(eindex); })
#define _PID_BASE_MENU_ITEMS(N) \
raw_Ki = unscalePID_i(PID_PARAM(Ki, N)); \
raw_Kd = unscalePID_d(PID_PARAM(Kd, N)); \
EDIT_ITEM(float52sign, PID_LABEL(MSG_PID_P,N), &PID_PARAM(Kp, N), 1, 9990); \
EDIT_ITEM(float52sign, PID_LABEL(MSG_PID_I,N), &raw_Ki, 0.01f, 9990, [](){ copy_and_scalePID_i(N); }); \
EDIT_ITEM(float52sign, PID_LABEL(MSG_PID_D,N), &raw_Kd, 1, 9990, [](){ copy_and_scalePID_d(N); })
#if ENABLED(PID_EXTRUSION_SCALING) #if ENABLED(PID_EXTRUSION_SCALING)
#define _PID_EDIT_MENU_ITEMS(ELABEL, eindex) \ #define _PID_EDIT_MENU_ITEMS(N) \
_PID_BASE_MENU_ITEMS(ELABEL, eindex); \ _PID_BASE_MENU_ITEMS(N); \
EDIT_ITEM(float3, MSG_PID_C ELABEL, &PID_PARAM(Kc, eindex), 1, 9990) EDIT_ITEM(float3, PID_LABEL(MSG_PID_C,N), &PID_PARAM(Kc, N), 1, 9990)
#else #else
#define _PID_EDIT_MENU_ITEMS(ELABEL, eindex) _PID_BASE_MENU_ITEMS(ELABEL, eindex) #define _PID_EDIT_MENU_ITEMS(N) _PID_BASE_MENU_ITEMS(N)
#endif #endif
#else #else
#define _PID_EDIT_MENU_ITEMS(ELABEL, eindex) NOOP #define _PID_EDIT_MENU_ITEMS(N) NOOP
#endif #endif
#if ENABLED(PID_AUTOTUNE_MENU) #if ENABLED(PID_AUTOTUNE_MENU)
#define PID_EDIT_MENU_ITEMS(ELABEL, eindex) \ #define PID_EDIT_MENU_ITEMS(N) \
_PID_EDIT_MENU_ITEMS(ELABEL, eindex); \ _PID_EDIT_MENU_ITEMS(N); \
EDIT_ITEM_FAST(int3, MSG_PID_AUTOTUNE ELABEL, &autotune_temp[eindex], 150, heater_maxtemp[eindex] - 15, [](){ _lcd_autotune(eindex); }) EDIT_ITEM_FAST(int3, PID_LABEL(MSG_AUTOTUNE_PID,N), &autotune_temp[N], 150, heater_maxtemp[N] - 15, [](){ _lcd_autotune(N); })
#else #else
#define PID_EDIT_MENU_ITEMS(ELABEL, eindex) _PID_EDIT_MENU_ITEMS(ELABEL, eindex) #define PID_EDIT_MENU_ITEMS(N) _PID_EDIT_MENU_ITEMS(N)
#endif #endif
#if ENABLED(PID_PARAMS_PER_HOTEND) && HOTENDS > 1 PID_EDIT_MENU_ITEMS(0);
PID_EDIT_MENU_ITEMS(" " LCD_STR_E0, 0); #if HOTENDS > 1 && ENABLED(PID_PARAMS_PER_HOTEND)
PID_EDIT_MENU_ITEMS(" " LCD_STR_E1, 1); PID_EDIT_MENU_ITEMS(1);
#if HOTENDS > 2 #if HOTENDS > 2
PID_EDIT_MENU_ITEMS(" " LCD_STR_E2, 2); PID_EDIT_MENU_ITEMS(2);
#if HOTENDS > 3 #if HOTENDS > 3
PID_EDIT_MENU_ITEMS(" " LCD_STR_E3, 3); PID_EDIT_MENU_ITEMS(3);
#if HOTENDS > 4 #if HOTENDS > 4
PID_EDIT_MENU_ITEMS(" " LCD_STR_E4, 4); PID_EDIT_MENU_ITEMS(4);
#if HOTENDS > 5 #if HOTENDS > 5
PID_EDIT_MENU_ITEMS(" " LCD_STR_E5, 5); PID_EDIT_MENU_ITEMS(5);
#endif // HOTENDS > 5 #endif // HOTENDS > 5
#endif // HOTENDS > 4 #endif // HOTENDS > 4
#endif // HOTENDS > 3 #endif // HOTENDS > 3
#endif // HOTENDS > 2 #endif // HOTENDS > 2
#else // !PID_PARAMS_PER_HOTEND || HOTENDS == 1 #endif // HOTENDS > 1 && PID_PARAMS_PER_HOTEND
PID_EDIT_MENU_ITEMS("", 0);
#endif // !PID_PARAMS_PER_HOTEND || HOTENDS == 1
END_MENU(); END_MENU();
} }
@ -385,14 +424,14 @@ void menu_backlash();
#else #else
const xyze_feedrate_t &max_fr_edit_scaled = max_fr_edit; const xyze_feedrate_t &max_fr_edit_scaled = max_fr_edit;
#endif #endif
#define EDIT_VMAX(N) EDIT_ITEM_FAST(float3, MSG_VMAX MSG_##N, &planner.settings.max_feedrate_mm_s[_AXIS(N)], 1, max_fr_edit_scaled[_AXIS(N)]) #define EDIT_VMAX(N) EDIT_ITEM_FAST(float3, MSG_VMAX_##N, &planner.settings.max_feedrate_mm_s[_AXIS(N)], 1, max_fr_edit_scaled[_AXIS(N)])
EDIT_VMAX(A); EDIT_VMAX(A);
EDIT_VMAX(B); EDIT_VMAX(B);
EDIT_VMAX(C); EDIT_VMAX(C);
#if ENABLED(DISTINCT_E_FACTORS) #if ENABLED(DISTINCT_E_FACTORS)
#define EDIT_VMAX_E(N) EDIT_ITEM_FAST(float3, MSG_VMAX LCD_STR_E##N, &planner.settings.max_feedrate_mm_s[E_AXIS_N(N)], 1, max_fr_edit_scaled.e) #define EDIT_VMAX_E(N) EDIT_ITEM_FAST(float3, MSG_VMAX_E##N, &planner.settings.max_feedrate_mm_s[E_AXIS_N(N)], 1, max_fr_edit_scaled.e)
EDIT_ITEM_FAST(float3, MSG_VMAX MSG_E, &planner.settings.max_feedrate_mm_s[E_AXIS_N(active_extruder)], 1, max_fr_edit_scaled.e); EDIT_ITEM_FAST(float3, MSG_VMAX_E, &planner.settings.max_feedrate_mm_s[E_AXIS_N(active_extruder)], 1, max_fr_edit_scaled.e);
EDIT_VMAX_E(0); EDIT_VMAX_E(0);
EDIT_VMAX_E(1); EDIT_VMAX_E(1);
#if E_STEPPERS > 2 #if E_STEPPERS > 2
@ -408,7 +447,7 @@ void menu_backlash();
#endif // E_STEPPERS > 3 #endif // E_STEPPERS > 3
#endif // E_STEPPERS > 2 #endif // E_STEPPERS > 2
#elif E_STEPPERS #elif E_STEPPERS
EDIT_ITEM_FAST(float3, MSG_VMAX MSG_E, &planner.settings.max_feedrate_mm_s[E_AXIS], 1, max_fr_edit_scaled.e); EDIT_ITEM_FAST(float3, MSG_VMAX_E, &planner.settings.max_feedrate_mm_s[E_AXIS], 1, max_fr_edit_scaled.e);
#endif #endif
// M205 S Min Feedrate // M205 S Min Feedrate
@ -451,15 +490,15 @@ void menu_backlash();
const xyze_ulong_t &max_accel_edit_scaled = max_accel_edit; const xyze_ulong_t &max_accel_edit_scaled = max_accel_edit;
#endif #endif
#define EDIT_AMAX(Q,L) EDIT_ITEM_FAST(long5_25, MSG_AMAX MSG_##Q, &planner.settings.max_acceleration_mm_per_s2[_AXIS(Q)], L, max_accel_edit_scaled[_AXIS(Q)], [](){ planner.reset_acceleration_rates(); }) #define EDIT_AMAX(Q,L) EDIT_ITEM_FAST(long5_25, MSG_AMAX_##Q, &planner.settings.max_acceleration_mm_per_s2[_AXIS(Q)], L, max_accel_edit_scaled[_AXIS(Q)], [](){ planner.reset_acceleration_rates(); })
EDIT_AMAX(A,100); EDIT_AMAX(A,100);
EDIT_AMAX(B,100); EDIT_AMAX(B,100);
EDIT_AMAX(C, 10); EDIT_AMAX(C, 10);
#if ENABLED(DISTINCT_E_FACTORS) #if ENABLED(DISTINCT_E_FACTORS)
#define EDIT_AMAX_E(N) EDIT_ITEM_FAST(long5_25, MSG_AMAX LCD_STR_E##N, &planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(N)], 100, max_accel_edit_scaled.e, [](){ _reset_e_acceleration_rate(N); }) #define EDIT_AMAX_E(N) EDIT_ITEM_FAST(long5_25, MSG_AMAX_E##N, &planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(N)], 100, max_accel_edit_scaled.e, [](){ _reset_e_acceleration_rate(N); })
EDIT_ITEM_FAST(long5_25, MSG_AMAX MSG_E, &planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(active_extruder)], 100, max_accel_edit_scaled.e, [](){ planner.reset_acceleration_rates(); }); EDIT_ITEM_FAST(long5_25, MSG_AMAX_E, &planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(active_extruder)], 100, max_accel_edit_scaled.e, [](){ planner.reset_acceleration_rates(); });
EDIT_AMAX_E(0); EDIT_AMAX_E(0);
EDIT_AMAX_E(1); EDIT_AMAX_E(1);
#if E_STEPPERS > 2 #if E_STEPPERS > 2
@ -475,7 +514,7 @@ void menu_backlash();
#endif // E_STEPPERS > 3 #endif // E_STEPPERS > 3
#endif // E_STEPPERS > 2 #endif // E_STEPPERS > 2
#elif E_STEPPERS #elif E_STEPPERS
EDIT_ITEM_FAST(long5_25, MSG_AMAX MSG_E, &planner.settings.max_acceleration_mm_per_s2[E_AXIS], 100, max_accel_edit_scaled.e, [](){ planner.reset_acceleration_rates(); }); EDIT_ITEM_FAST(long5_25, MSG_AMAX_E, &planner.settings.max_acceleration_mm_per_s2[E_AXIS], 100, max_accel_edit_scaled.e, [](){ planner.reset_acceleration_rates(); });
#endif #endif
END_MENU(); END_MENU();
@ -524,14 +563,14 @@ void menu_backlash();
START_MENU(); START_MENU();
BACK_ITEM(MSG_ADVANCED_SETTINGS); BACK_ITEM(MSG_ADVANCED_SETTINGS);
#define EDIT_QSTEPS(Q) EDIT_ITEM_FAST(float51, MSG_##Q##STEPS, &planner.settings.axis_steps_per_mm[_AXIS(Q)], 5, 9999, [](){ planner.refresh_positioning(); }) #define EDIT_QSTEPS(Q) EDIT_ITEM_FAST(float51, MSG_##Q##_STEPS, &planner.settings.axis_steps_per_mm[_AXIS(Q)], 5, 9999, [](){ planner.refresh_positioning(); })
EDIT_QSTEPS(A); EDIT_QSTEPS(A);
EDIT_QSTEPS(B); EDIT_QSTEPS(B);
EDIT_QSTEPS(C); EDIT_QSTEPS(C);
#if ENABLED(DISTINCT_E_FACTORS) #if ENABLED(DISTINCT_E_FACTORS)
#define EDIT_ESTEPS(N) EDIT_ITEM_FAST(float51, MSG_E##N##_STEPS, &planner.settings.axis_steps_per_mm[E_AXIS_N(N)], 5, 9999, [](){ _planner_refresh_e_positioning(N); }) #define EDIT_ESTEPS(N) EDIT_ITEM_FAST(float51, MSG_E##N##_STEPS, &planner.settings.axis_steps_per_mm[E_AXIS_N(N)], 5, 9999, [](){ _planner_refresh_e_positioning(N); })
EDIT_ITEM_FAST(float51, MSG_ESTEPS, &planner.settings.axis_steps_per_mm[E_AXIS_N(active_extruder)], 5, 9999, [](){ planner.refresh_positioning(); }); EDIT_ITEM_FAST(float51, MSG_E_STEPS, &planner.settings.axis_steps_per_mm[E_AXIS_N(active_extruder)], 5, 9999, [](){ planner.refresh_positioning(); });
EDIT_ESTEPS(0); EDIT_ESTEPS(0);
EDIT_ESTEPS(1); EDIT_ESTEPS(1);
#if E_STEPPERS > 2 #if E_STEPPERS > 2
@ -547,7 +586,7 @@ void menu_backlash();
#endif // E_STEPPERS > 3 #endif // E_STEPPERS > 3
#endif // E_STEPPERS > 2 #endif // E_STEPPERS > 2
#elif E_STEPPERS #elif E_STEPPERS
EDIT_ITEM_FAST(float51, MSG_ESTEPS, &planner.settings.axis_steps_per_mm[E_AXIS], 5, 9999, [](){ planner.refresh_positioning(); }); EDIT_ITEM_FAST(float51, MSG_E_STEPS, &planner.settings.axis_steps_per_mm[E_AXIS], 5, 9999, [](){ planner.refresh_positioning(); });
#endif #endif
END_MENU(); END_MENU();
@ -559,7 +598,7 @@ void menu_backlash();
static void lcd_init_eeprom_confirm() { static void lcd_init_eeprom_confirm() {
do_select_screen( do_select_screen(
PSTR(MSG_BUTTON_INIT), PSTR(MSG_BUTTON_CANCEL), GET_TEXT(MSG_BUTTON_INIT), GET_TEXT(MSG_BUTTON_CANCEL),
[]{ []{
const bool inited = settings.init_eeprom(); const bool inited = settings.init_eeprom();
#if HAS_BUZZER #if HAS_BUZZER
@ -568,7 +607,7 @@ void menu_backlash();
UNUSED(inited); UNUSED(inited);
}, },
ui.goto_previous_screen, ui.goto_previous_screen,
PSTR(MSG_INIT_EEPROM), nullptr, PSTR("?") GET_TEXT(MSG_INIT_EEPROM), nullptr, PSTR("?")
); );
} }
@ -632,7 +671,7 @@ void menu_advanced_settings() {
#if EXTRUDERS == 1 #if EXTRUDERS == 1
EDIT_ITEM(float52, MSG_ADVANCE_K, &planner.extruder_advance_K[0], 0, 999); EDIT_ITEM(float52, MSG_ADVANCE_K, &planner.extruder_advance_K[0], 0, 999);
#elif EXTRUDERS > 1 #elif EXTRUDERS > 1
#define EDIT_ADVANCE_K(N) EDIT_ITEM(float52, MSG_ADVANCE_K LCD_STR_E##N, &planner.extruder_advance_K[N], 0, 999) #define EDIT_ADVANCE_K(N) EDIT_ITEM(float52, MSG_ADVANCE_K_E##N, &planner.extruder_advance_K[N], 0, 999)
EDIT_ADVANCE_K(0); EDIT_ADVANCE_K(0);
EDIT_ADVANCE_K(1); EDIT_ADVANCE_K(1);
#if EXTRUDERS > 2 #if EXTRUDERS > 2

View file

@ -38,7 +38,7 @@ void menu_backlash() {
EDIT_ITEM_FAST(percent, MSG_BACKLASH_CORRECTION, &backlash.correction, all_off, all_on); EDIT_ITEM_FAST(percent, MSG_BACKLASH_CORRECTION, &backlash.correction, all_off, all_on);
#define EDIT_BACKLASH_DISTANCE(N) EDIT_ITEM_FAST(float43, MSG_##N, &backlash.distance_mm[_AXIS(N)], 0.0f, 9.9f); #define EDIT_BACKLASH_DISTANCE(N) EDIT_ITEM_FAST(float43, MSG_BACKLASH_##N, &backlash.distance_mm[_AXIS(N)], 0.0f, 9.9f);
EDIT_BACKLASH_DISTANCE(A); EDIT_BACKLASH_DISTANCE(A);
EDIT_BACKLASH_DISTANCE(B); EDIT_BACKLASH_DISTANCE(B);
EDIT_BACKLASH_DISTANCE(C); EDIT_BACKLASH_DISTANCE(C);

View file

@ -86,7 +86,7 @@ static inline void _lcd_goto_next_corner() {
static inline void menu_level_bed_corners() { static inline void menu_level_bed_corners() {
do_select_screen( do_select_screen(
PSTR(MSG_BUTTON_NEXT), PSTR(MSG_BUTTON_DONE), GET_TEXT(MSG_BUTTON_NEXT), GET_TEXT(MSG_BUTTON_DONE),
_lcd_goto_next_corner, _lcd_goto_next_corner,
[]{ []{
#if HAS_LEVELING #if HAS_LEVELING
@ -94,7 +94,7 @@ static inline void menu_level_bed_corners() {
#endif #endif
ui.goto_previous_screen_no_defer(); ui.goto_previous_screen_no_defer();
}, },
PSTR( GET_TEXT(
#if ENABLED(LEVEL_CENTER_TOO) #if ENABLED(LEVEL_CENTER_TOO)
MSG_LEVEL_BED_NEXT_POINT MSG_LEVEL_BED_NEXT_POINT
#else #else

View file

@ -74,14 +74,14 @@
#if MANUAL_PROBE_HEIGHT > 0 && DISABLED(MESH_BED_LEVELING) #if MANUAL_PROBE_HEIGHT > 0 && DISABLED(MESH_BED_LEVELING)
// Display "Done" screen and wait for moves to complete // Display "Done" screen and wait for moves to complete
line_to_z(MANUAL_PROBE_HEIGHT); line_to_z(MANUAL_PROBE_HEIGHT);
ui.synchronize(PSTR(MSG_LEVEL_BED_DONE)); ui.synchronize(GET_TEXT(MSG_LEVEL_BED_DONE));
#endif #endif
ui.goto_previous_screen_no_defer(); ui.goto_previous_screen_no_defer();
#if HAS_BUZZER #if HAS_BUZZER
ui.completion_feedback(); ui.completion_feedback();
#endif #endif
} }
if (ui.should_draw()) draw_menu_item_static(LCD_HEIGHT >= 4 ? 1 : 0, PSTR(MSG_LEVEL_BED_DONE)); if (ui.should_draw()) draw_menu_item_static(LCD_HEIGHT >= 4 ? 1 : 0, GET_TEXT(MSG_LEVEL_BED_DONE));
ui.refresh(LCDVIEW_CALL_REDRAW_NEXT); ui.refresh(LCDVIEW_CALL_REDRAW_NEXT);
} }
@ -132,7 +132,7 @@
// //
if (ui.should_draw()) { if (ui.should_draw()) {
const float v = current_position.z; const float v = current_position.z;
draw_edit_screen(PSTR(MSG_MOVE_Z), ftostr43sign(v + (v < 0 ? -0.0001f : 0.0001f), '+')); draw_edit_screen(GET_TEXT(MSG_MOVE_Z), ftostr43sign(v + (v < 0 ? -0.0001f : 0.0001f), '+'));
} }
} }
@ -143,7 +143,7 @@
if (ui.should_draw()) { if (ui.should_draw()) {
char msg[10]; char msg[10];
sprintf_P(msg, PSTR("%i / %u"), (int)(manual_probe_index + 1), total_probe_points); sprintf_P(msg, PSTR("%i / %u"), (int)(manual_probe_index + 1), total_probe_points);
draw_edit_screen(PSTR(MSG_LEVEL_BED_NEXT_POINT), msg); draw_edit_screen(GET_TEXT(MSG_LEVEL_BED_NEXT_POINT), msg);
} }
ui.refresh(LCDVIEW_CALL_NO_REDRAW); ui.refresh(LCDVIEW_CALL_NO_REDRAW);
if (!ui.wait_for_bl_move) ui.goto_screen(_lcd_level_bed_get_z); if (!ui.wait_for_bl_move) ui.goto_screen(_lcd_level_bed_get_z);
@ -169,7 +169,7 @@
// Move to the first probe position // Move to the first probe position
// //
void _lcd_level_bed_homing_done() { void _lcd_level_bed_homing_done() {
if (ui.should_draw()) draw_edit_screen(PSTR(MSG_LEVEL_BED_WAITING)); if (ui.should_draw()) draw_edit_screen(GET_TEXT(MSG_LEVEL_BED_WAITING));
if (ui.use_click()) { if (ui.use_click()) {
manual_probe_index = 0; manual_probe_index = 0;
_lcd_level_goto_next_point(); _lcd_level_goto_next_point();

View file

@ -68,7 +68,7 @@ void menu_advanced_settings();
bar_percent += (int8_t)ui.encoderPosition; bar_percent += (int8_t)ui.encoderPosition;
LIMIT(bar_percent, 0, 100); LIMIT(bar_percent, 0, 100);
ui.encoderPosition = 0; ui.encoderPosition = 0;
draw_menu_item_static(0, PSTR(MSG_PROGRESS_BAR_TEST), SS_CENTER|SS_INVERT); draw_menu_item_static(0, GET_TEXT(MSG_PROGRESS_BAR_TEST), SS_CENTER|SS_INVERT);
lcd_put_int((LCD_WIDTH) / 2 - 2, LCD_HEIGHT - 2, bar_percent); lcd_put_wchar('%'); lcd_put_int((LCD_WIDTH) / 2 - 2, LCD_HEIGHT - 2, bar_percent); lcd_put_wchar('%');
lcd_moveto(0, LCD_HEIGHT - 1); ui.draw_progress_bar(bar_percent); lcd_moveto(0, LCD_HEIGHT - 1); ui.draw_progress_bar(bar_percent);
} }
@ -203,17 +203,17 @@ void menu_advanced_settings();
ACTION_ITEM(MSG_BLTOUCH_SW_MODE, bltouch._set_SW_mode); ACTION_ITEM(MSG_BLTOUCH_SW_MODE, bltouch._set_SW_mode);
#if ENABLED(BLTOUCH_LCD_VOLTAGE_MENU) #if ENABLED(BLTOUCH_LCD_VOLTAGE_MENU)
SUBMENU(MSG_BLTOUCH_5V_MODE, []{ SUBMENU(MSG_BLTOUCH_5V_MODE, []{
do_select_screen(PSTR(MSG_BLTOUCH_5V_MODE), PSTR(MSG_BUTTON_CANCEL), bltouch._set_5V_mode, ui.goto_previous_screen, PSTR(MSG_BLTOUCH_MODE_CHANGE)); do_select_screen(GET_TEXT(MSG_BLTOUCH_5V_MODE), GET_TEXT(MSG_BUTTON_CANCEL), bltouch._set_5V_mode, ui.goto_previous_screen, GET_TEXT(MSG_BLTOUCH_MODE_CHANGE));
}); });
SUBMENU(MSG_BLTOUCH_OD_MODE, []{ SUBMENU(MSG_BLTOUCH_OD_MODE, []{
do_select_screen(PSTR(MSG_BLTOUCH_OD_MODE), PSTR(MSG_BUTTON_CANCEL), bltouch._set_OD_mode, ui.goto_previous_screen, PSTR(MSG_BLTOUCH_MODE_CHANGE)); do_select_screen(GET_TEXT(MSG_BLTOUCH_OD_MODE), GET_TEXT(MSG_BUTTON_CANCEL), bltouch._set_OD_mode, ui.goto_previous_screen, GET_TEXT(MSG_BLTOUCH_MODE_CHANGE));
}); });
ACTION_ITEM(MSG_BLTOUCH_MODE_STORE, bltouch._mode_store); ACTION_ITEM(MSG_BLTOUCH_MODE_STORE, bltouch._mode_store);
SUBMENU(MSG_BLTOUCH_MODE_STORE_5V, []{ SUBMENU(MSG_BLTOUCH_MODE_STORE_5V, []{
do_select_screen(PSTR(MSG_BLTOUCH_MODE_STORE_5V), PSTR(MSG_BUTTON_CANCEL), bltouch.mode_conv_5V, ui.goto_previous_screen, PSTR(MSG_BLTOUCH_MODE_CHANGE)); do_select_screen(GET_TEXT(MSG_BLTOUCH_MODE_STORE_5V), GET_TEXT(MSG_BUTTON_CANCEL), bltouch.mode_conv_5V, ui.goto_previous_screen, GET_TEXT(MSG_BLTOUCH_MODE_CHANGE));
}); });
SUBMENU(MSG_BLTOUCH_MODE_STORE_OD, []{ SUBMENU(MSG_BLTOUCH_MODE_STORE_OD, []{
do_select_screen(PSTR(MSG_BLTOUCH_MODE_STORE_OD), PSTR(MSG_BUTTON_CANCEL), bltouch.mode_conv_OD, ui.goto_previous_screen, PSTR(MSG_BLTOUCH_MODE_CHANGE)); do_select_screen(GET_TEXT(MSG_BLTOUCH_MODE_STORE_OD), GET_TEXT(MSG_BUTTON_CANCEL), bltouch.mode_conv_OD, ui.goto_previous_screen, GET_TEXT(MSG_BLTOUCH_MODE_CHANGE));
}); });
ACTION_ITEM(MSG_BLTOUCH_MODE_ECHO, bltouch_report); ACTION_ITEM(MSG_BLTOUCH_MODE_ECHO, bltouch_report);
#endif #endif

View file

@ -51,19 +51,19 @@ void menu_user() {
START_MENU(); START_MENU();
BACK_ITEM(MSG_MAIN); BACK_ITEM(MSG_MAIN);
#if defined(USER_DESC_1) && defined(USER_GCODE_1) #if defined(USER_DESC_1) && defined(USER_GCODE_1)
ACTION_ITEM(USER_DESC_1, [](){ _lcd_user_gcode(PSTR(USER_GCODE_1 _DONE_SCRIPT)); }); ACTION_ITEM_P(PSTR(USER_DESC_1), [](){ _lcd_user_gcode(PSTR(USER_GCODE_1 _DONE_SCRIPT)); });
#endif #endif
#if defined(USER_DESC_2) && defined(USER_GCODE_2) #if defined(USER_DESC_2) && defined(USER_GCODE_2)
ACTION_ITEM(USER_DESC_2, [](){ _lcd_user_gcode(PSTR(USER_GCODE_2 _DONE_SCRIPT)); }); ACTION_ITEM_P(PSTR(USER_DESC_2), [](){ _lcd_user_gcode(PSTR(USER_GCODE_2 _DONE_SCRIPT)); });
#endif #endif
#if defined(USER_DESC_3) && defined(USER_GCODE_3) #if defined(USER_DESC_3) && defined(USER_GCODE_3)
ACTION_ITEM(USER_DESC_3, [](){ _lcd_user_gcode(PSTR(USER_GCODE_3 _DONE_SCRIPT)); }); ACTION_ITEM_P(PSTR(USER_DESC_3), [](){ _lcd_user_gcode(PSTR(USER_GCODE_3 _DONE_SCRIPT)); });
#endif #endif
#if defined(USER_DESC_4) && defined(USER_GCODE_4) #if defined(USER_DESC_4) && defined(USER_GCODE_4)
ACTION_ITEM(USER_DESC_4, [](){ _lcd_user_gcode(PSTR(USER_GCODE_4 _DONE_SCRIPT)); }); ACTION_ITEM_P(PSTR(USER_DESC_4), [](){ _lcd_user_gcode(PSTR(USER_GCODE_4 _DONE_SCRIPT)); });
#endif #endif
#if defined(USER_DESC_5) && defined(USER_GCODE_5) #if defined(USER_DESC_5) && defined(USER_GCODE_5)
ACTION_ITEM(USER_DESC_5, [](){ _lcd_user_gcode(PSTR(USER_GCODE_5 _DONE_SCRIPT)); }); ACTION_ITEM_P(PSTR(USER_DESC_5), [](){ _lcd_user_gcode(PSTR(USER_GCODE_5 _DONE_SCRIPT)); });
#endif #endif
END_MENU(); END_MENU();
} }

View file

@ -60,7 +60,7 @@ void _man_probe_pt(const xy_pos_t &xy) {
host_prompt_do(PROMPT_USER_CONTINUE, PSTR("Delta Calibration in progress"), PSTR("Continue")); host_prompt_do(PROMPT_USER_CONTINUE, PSTR("Delta Calibration in progress"), PSTR("Continue"));
#endif #endif
#if ENABLED(EXTENSIBLE_UI) #if ENABLED(EXTENSIBLE_UI)
ExtUI::onUserConfirmRequired(PSTR("Delta Calibration in progress")); ExtUI::onUserConfirmRequired_P(PSTR("Delta Calibration in progress"));
#endif #endif
while (wait_for_user) idle(); while (wait_for_user) idle();
ui.goto_previous_screen_no_defer(); ui.goto_previous_screen_no_defer();
@ -104,12 +104,12 @@ void lcd_delta_settings() {
START_MENU(); START_MENU();
BACK_ITEM(MSG_DELTA_CALIBRATE); BACK_ITEM(MSG_DELTA_CALIBRATE);
EDIT_ITEM(float52sign, MSG_DELTA_HEIGHT, &delta_height, delta_height - 10, delta_height + 10, _recalc_delta_settings); EDIT_ITEM(float52sign, MSG_DELTA_HEIGHT, &delta_height, delta_height - 10, delta_height + 10, _recalc_delta_settings);
#define EDIT_ENDSTOP_ADJ(LABEL,N) EDIT_ITEM(float43, LABEL, &delta_endstop_adj.N, -5, 5, _recalc_delta_settings) #define EDIT_ENDSTOP_ADJ(LABEL,N) EDIT_ITEM_P(float43, PSTR(LABEL), &delta_endstop_adj.N, -5, 5, _recalc_delta_settings)
EDIT_ENDSTOP_ADJ("Ex",a); EDIT_ENDSTOP_ADJ("Ex",a);
EDIT_ENDSTOP_ADJ("Ey",b); EDIT_ENDSTOP_ADJ("Ey",b);
EDIT_ENDSTOP_ADJ("Ez",c); EDIT_ENDSTOP_ADJ("Ez",c);
EDIT_ITEM(float52sign, MSG_DELTA_RADIUS, &delta_radius, delta_radius - 5, delta_radius + 5, _recalc_delta_settings); EDIT_ITEM(float52sign, MSG_DELTA_RADIUS, &delta_radius, delta_radius - 5, delta_radius + 5, _recalc_delta_settings);
#define EDIT_ANGLE_TRIM(LABEL,N) EDIT_ITEM(float43, LABEL, &delta_tower_angle_trim.N, -5, 5, _recalc_delta_settings) #define EDIT_ANGLE_TRIM(LABEL,N) EDIT_ITEM_P(float43, PSTR(LABEL), &delta_tower_angle_trim.N, -5, 5, _recalc_delta_settings)
EDIT_ANGLE_TRIM("Tx",a); EDIT_ANGLE_TRIM("Tx",a);
EDIT_ANGLE_TRIM("Ty",b); EDIT_ANGLE_TRIM("Ty",b);
EDIT_ANGLE_TRIM("Tz",c); EDIT_ANGLE_TRIM("Tz",c);

View file

@ -52,7 +52,7 @@ inline PGM_P _change_filament_temp_command() {
default: default:
return PSTR("M600 B0 T%d"); return PSTR("M600 B0 T%d");
} }
return PSTR(MSG_FILAMENTCHANGE); return GET_TEXT(MSG_FILAMENTCHANGE);
} }
// Initiate Filament Load/Unload/Change at the specified temperature // Initiate Filament Load/Unload/Change at the specified temperature
@ -70,12 +70,12 @@ static void _change_filament_temp(const uint16_t temperature) {
inline PGM_P change_filament_header(const PauseMode mode) { inline PGM_P change_filament_header(const PauseMode mode) {
switch (mode) { switch (mode) {
case PAUSE_MODE_LOAD_FILAMENT: case PAUSE_MODE_LOAD_FILAMENT:
return PSTR(MSG_FILAMENTLOAD); return GET_TEXT(MSG_FILAMENTLOAD);
case PAUSE_MODE_UNLOAD_FILAMENT: case PAUSE_MODE_UNLOAD_FILAMENT:
return PSTR(MSG_FILAMENTUNLOAD); return GET_TEXT(MSG_FILAMENTUNLOAD);
default: break; default: break;
} }
return PSTR(MSG_FILAMENTCHANGE); return GET_TEXT(MSG_FILAMENTCHANGE);
} }
void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) { void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) {
@ -107,14 +107,14 @@ void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) {
// Change filament // Change filament
#if E_STEPPERS == 1 #if E_STEPPERS == 1
PGM_P const msg0 = PSTR(MSG_FILAMENTCHANGE); PGM_P const msg0 = GET_TEXT(MSG_FILAMENTCHANGE);
if (thermalManager.targetTooColdToExtrude(active_extruder)) if (thermalManager.targetTooColdToExtrude(active_extruder))
MENU_ITEM_P(submenu, msg0, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 0); }); MENU_ITEM_P(submenu, msg0, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 0); });
else else
MENU_ITEM_P(gcode, msg0, PSTR("M600 B0")); MENU_ITEM_P(gcode, msg0, PSTR("M600 B0"));
#else #else
PGM_P const msg0 = PSTR(MSG_FILAMENTCHANGE " " LCD_STR_E0); PGM_P const msg0 = GET_TEXT(MSG_FILAMENTCHANGE_E0);
PGM_P const msg1 = PSTR(MSG_FILAMENTCHANGE " " LCD_STR_E1); PGM_P const msg1 = GET_TEXT(MSG_FILAMENTCHANGE_E1);
if (thermalManager.targetTooColdToExtrude(0)) if (thermalManager.targetTooColdToExtrude(0))
MENU_ITEM_P(submenu, msg0, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 0); }); MENU_ITEM_P(submenu, msg0, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 0); });
else else
@ -124,25 +124,25 @@ void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) {
else else
MENU_ITEM_P(gcode, msg1, PSTR("M600 B0 T1")); MENU_ITEM_P(gcode, msg1, PSTR("M600 B0 T1"));
#if E_STEPPERS > 2 #if E_STEPPERS > 2
PGM_P const msg2 = PSTR(MSG_FILAMENTCHANGE " " LCD_STR_E2); PGM_P const msg2 = GET_TEXT(MSG_FILAMENTCHANGE_E2);
if (thermalManager.targetTooColdToExtrude(2)) if (thermalManager.targetTooColdToExtrude(2))
MENU_ITEM_P(submenu, msg2, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 2); }); MENU_ITEM_P(submenu, msg2, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 2); });
else else
MENU_ITEM_P(gcode, msg2, PSTR("M600 B0 T2")); MENU_ITEM_P(gcode, msg2, PSTR("M600 B0 T2"));
#if E_STEPPERS > 3 #if E_STEPPERS > 3
PGM_P const msg3 = PSTR(MSG_FILAMENTCHANGE " " LCD_STR_E3); PGM_P const msg3 = GET_TEXT(MSG_FILAMENTCHANGE_E3);
if (thermalManager.targetTooColdToExtrude(3)) if (thermalManager.targetTooColdToExtrude(3))
MENU_ITEM_P(submenu, msg3, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 3); }); MENU_ITEM_P(submenu, msg3, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 3); });
else else
MENU_ITEM_P(gcode, msg3, PSTR("M600 B0 T3")); MENU_ITEM_P(gcode, msg3, PSTR("M600 B0 T3"));
#if E_STEPPERS > 4 #if E_STEPPERS > 4
PGM_P const msg4 = PSTR(MSG_FILAMENTCHANGE " " LCD_STR_E4); PGM_P const msg4 = GET_TEXT(MSG_FILAMENTCHANGE_E4);
if (thermalManager.targetTooColdToExtrude(4)) if (thermalManager.targetTooColdToExtrude(4))
MENU_ITEM_P(submenu, msg4, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 4); }); MENU_ITEM_P(submenu, msg4, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 4); });
else else
MENU_ITEM_P(gcode, msg4, PSTR("M600 B0 T4")); MENU_ITEM_P(gcode, msg4, PSTR("M600 B0 T4"));
#if E_STEPPERS > 5 #if E_STEPPERS > 5
PGM_P const msg5 = PSTR(MSG_FILAMENTCHANGE " " LCD_STR_E5); PGM_P const msg5 = GET_TEXT(MSG_FILAMENTCHANGE_E5);
if (thermalManager.targetTooColdToExtrude(5)) if (thermalManager.targetTooColdToExtrude(5))
MENU_ITEM_P(submenu, msg5, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 5); }); MENU_ITEM_P(submenu, msg5, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 5); });
else else
@ -157,14 +157,14 @@ void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) {
if (!printer_busy()) { if (!printer_busy()) {
// Load filament // Load filament
#if E_STEPPERS == 1 #if E_STEPPERS == 1
PGM_P const msg0 = PSTR(MSG_FILAMENTLOAD); PGM_P const msg0 = GET_TEXT(MSG_FILAMENTLOAD);
if (thermalManager.targetTooColdToExtrude(active_extruder)) if (thermalManager.targetTooColdToExtrude(active_extruder))
MENU_ITEM_P(submenu, msg0, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 0); }); MENU_ITEM_P(submenu, msg0, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 0); });
else else
MENU_ITEM_P(gcode, msg0, PSTR("M701")); MENU_ITEM_P(gcode, msg0, PSTR("M701"));
#else #else
PGM_P const msg0 = PSTR(MSG_FILAMENTLOAD " " LCD_STR_E0); PGM_P const msg0 = GET_TEXT(MSG_FILAMENTLOAD_E0);
PGM_P const msg1 = PSTR(MSG_FILAMENTLOAD " " LCD_STR_E1); PGM_P const msg1 = GET_TEXT(MSG_FILAMENTLOAD_E1);
if (thermalManager.targetTooColdToExtrude(0)) if (thermalManager.targetTooColdToExtrude(0))
MENU_ITEM_P(submenu, msg0, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 0); }); MENU_ITEM_P(submenu, msg0, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 0); });
else else
@ -174,25 +174,25 @@ void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) {
else else
MENU_ITEM_P(gcode, msg1, PSTR("M701 T1")); MENU_ITEM_P(gcode, msg1, PSTR("M701 T1"));
#if E_STEPPERS > 2 #if E_STEPPERS > 2
PGM_P const msg2 = PSTR(MSG_FILAMENTLOAD " " LCD_STR_E2); PGM_P const msg2 = GET_TEXT(MSG_FILAMENTLOAD_E2);
if (thermalManager.targetTooColdToExtrude(2)) if (thermalManager.targetTooColdToExtrude(2))
MENU_ITEM_P(submenu, msg2, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 2); }); MENU_ITEM_P(submenu, msg2, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 2); });
else else
MENU_ITEM_P(gcode, msg2, PSTR("M701 T2")); MENU_ITEM_P(gcode, msg2, PSTR("M701 T2"));
#if E_STEPPERS > 3 #if E_STEPPERS > 3
PGM_P const msg3 = PSTR(MSG_FILAMENTLOAD " " LCD_STR_E3); PGM_P const msg3 = GET_TEXT(MSG_FILAMENTLOAD_E3);
if (thermalManager.targetTooColdToExtrude(3)) if (thermalManager.targetTooColdToExtrude(3))
MENU_ITEM_P(submenu, msg3, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 3); }); MENU_ITEM_P(submenu, msg3, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 3); });
else else
MENU_ITEM_P(gcode, msg3, PSTR("M701 T3")); MENU_ITEM_P(gcode, msg3, PSTR("M701 T3"));
#if E_STEPPERS > 4 #if E_STEPPERS > 4
PGM_P const msg4 = PSTR(MSG_FILAMENTLOAD " " LCD_STR_E4); PGM_P const msg4 = GET_TEXT(MSG_FILAMENTLOAD_E4);
if (thermalManager.targetTooColdToExtrude(4)) if (thermalManager.targetTooColdToExtrude(4))
MENU_ITEM_P(submenu, msg4, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 4); }); MENU_ITEM_P(submenu, msg4, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 4); });
else else
MENU_ITEM_P(gcode, msg4, PSTR("M701 T4")); MENU_ITEM_P(gcode, msg4, PSTR("M701 T4"));
#if E_STEPPERS > 5 #if E_STEPPERS > 5
PGM_P const msg5 = PSTR(MSG_FILAMENTLOAD " " LCD_STR_E5); PGM_P const msg5 = GET_TEXT(MSG_FILAMENTLOAD_E5);
if (thermalManager.targetTooColdToExtrude(5)) if (thermalManager.targetTooColdToExtrude(5))
MENU_ITEM_P(submenu, msg5, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 5); }); MENU_ITEM_P(submenu, msg5, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 5); });
else else
@ -223,33 +223,33 @@ void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) {
SUBMENU(MSG_FILAMENTUNLOAD_ALL, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, -1); }); SUBMENU(MSG_FILAMENTUNLOAD_ALL, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, -1); });
#endif #endif
if (thermalManager.targetHotEnoughToExtrude(0)) if (thermalManager.targetHotEnoughToExtrude(0))
GCODES_ITEM(MSG_FILAMENTUNLOAD " " LCD_STR_E0, PSTR("M702 T0")); GCODES_ITEM(MSG_FILAMENTUNLOAD_E0, PSTR("M702 T0"));
else else
SUBMENU(MSG_FILAMENTUNLOAD " " LCD_STR_E0, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 0); }); SUBMENU(MSG_FILAMENTUNLOAD_E0, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 0); });
if (thermalManager.targetHotEnoughToExtrude(1)) if (thermalManager.targetHotEnoughToExtrude(1))
GCODES_ITEM(MSG_FILAMENTUNLOAD " " LCD_STR_E1, PSTR("M702 T1")); GCODES_ITEM(MSG_FILAMENTUNLOAD_E1, PSTR("M702 T1"));
else else
SUBMENU(MSG_FILAMENTUNLOAD " " LCD_STR_E1, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 1); }); SUBMENU(MSG_FILAMENTUNLOAD_E1, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 1); });
#if E_STEPPERS > 2 #if E_STEPPERS > 2
if (thermalManager.targetHotEnoughToExtrude(2)) if (thermalManager.targetHotEnoughToExtrude(2))
GCODES_ITEM(MSG_FILAMENTUNLOAD " " LCD_STR_E2, PSTR("M702 T2")); GCODES_ITEM(MSG_FILAMENTUNLOAD_E2, PSTR("M702 T2"));
else else
SUBMENU(MSG_FILAMENTUNLOAD " " LCD_STR_E2, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 2); }); SUBMENU(MSG_FILAMENTUNLOAD_E2, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 2); });
#if E_STEPPERS > 3 #if E_STEPPERS > 3
if (thermalManager.targetHotEnoughToExtrude(3)) if (thermalManager.targetHotEnoughToExtrude(3))
GCODES_ITEM(MSG_FILAMENTUNLOAD " " LCD_STR_E3, PSTR("M702 T3")); GCODES_ITEM(MSG_FILAMENTUNLOAD_E3, PSTR("M702 T3"));
else else
SUBMENU(MSG_FILAMENTUNLOAD " " LCD_STR_E3, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 3); }); SUBMENU(MSG_FILAMENTUNLOAD_E3, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 3); });
#if E_STEPPERS > 4 #if E_STEPPERS > 4
if (thermalManager.targetHotEnoughToExtrude(4)) if (thermalManager.targetHotEnoughToExtrude(4))
GCODES_ITEM(MSG_FILAMENTUNLOAD " " LCD_STR_E4, PSTR("M702 T4")); GCODES_ITEM(MSG_FILAMENTUNLOAD_E4, PSTR("M702 T4"));
else else
SUBMENU(MSG_FILAMENTUNLOAD " " LCD_STR_E4, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 4); }); SUBMENU(MSG_FILAMENTUNLOAD_E4, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 4); });
#if E_STEPPERS > 5 #if E_STEPPERS > 5
if (thermalManager.targetHotEnoughToExtrude(5)) if (thermalManager.targetHotEnoughToExtrude(5))
GCODES_ITEM(MSG_FILAMENTUNLOAD " " LCD_STR_E5, PSTR("M702 T5")); GCODES_ITEM(MSG_FILAMENTUNLOAD_E5, PSTR("M702 T5"));
else else
SUBMENU(MSG_FILAMENTUNLOAD " " LCD_STR_E5, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 5); }); SUBMENU(MSG_FILAMENTUNLOAD_E5, [](){ _menu_temp_filament_op(PAUSE_MODE_UNLOAD_FILAMENT, 5); });
#endif // E_STEPPERS > 5 #endif // E_STEPPERS > 5
#endif // E_STEPPERS > 4 #endif // E_STEPPERS > 4
#endif // E_STEPPERS > 3 #endif // E_STEPPERS > 3
@ -267,22 +267,21 @@ static uint8_t hotend_status_extruder = 0;
static PGM_P pause_header() { static PGM_P pause_header() {
switch (pause_mode) { switch (pause_mode) {
case PAUSE_MODE_CHANGE_FILAMENT: case PAUSE_MODE_CHANGE_FILAMENT:
return PSTR(MSG_FILAMENT_CHANGE_HEADER); return GET_TEXT(MSG_FILAMENT_CHANGE_HEADER);
case PAUSE_MODE_LOAD_FILAMENT: case PAUSE_MODE_LOAD_FILAMENT:
return PSTR(MSG_FILAMENT_CHANGE_HEADER_LOAD); return GET_TEXT(MSG_FILAMENT_CHANGE_HEADER_LOAD);
case PAUSE_MODE_UNLOAD_FILAMENT: case PAUSE_MODE_UNLOAD_FILAMENT:
return PSTR(MSG_FILAMENT_CHANGE_HEADER_UNLOAD); return GET_TEXT(MSG_FILAMENT_CHANGE_HEADER_UNLOAD);
case PAUSE_MODE_PAUSE_PRINT:
default: break; default: break;
} }
return PSTR(MSG_FILAMENT_CHANGE_HEADER_PAUSE); return GET_TEXT(MSG_FILAMENT_CHANGE_HEADER_PAUSE);
} }
// Portions from STATIC_ITEM... // Portions from STATIC_ITEM...
#define HOTEND_STATUS_ITEM() do { \ #define HOTEND_STATUS_ITEM() do { \
if (_menuLineNr == _thisItemNr) { \ if (_menuLineNr == _thisItemNr) { \
if (ui.should_draw()) { \ if (ui.should_draw()) { \
draw_menu_item_static(_lcdLineNr, PSTR(MSG_FILAMENT_CHANGE_NOZZLE), SS_INVERT); \ draw_menu_item_static(_lcdLineNr, GET_TEXT(MSG_FILAMENT_CHANGE_NOZZLE), SS_INVERT); \
ui.draw_hotend_status(_lcdLineNr, hotend_status_extruder); \ ui.draw_hotend_status(_lcdLineNr, hotend_status_extruder); \
} \ } \
if (_skipStatic && encoderLine <= _thisItemNr) { \ if (_skipStatic && encoderLine <= _thisItemNr) { \
@ -312,137 +311,42 @@ void menu_pause_option() {
// //
// ADVANCED_PAUSE_FEATURE message screens // ADVANCED_PAUSE_FEATURE message screens
// //
// Warning: msg must have three null bytes to delimit lines!
//
void _lcd_pause_message(PGM_P const msg) {
PGM_P const msg1 = msg;
PGM_P const msg2 = msg1 + strlen_P(msg1) + 1;
PGM_P const msg3 = msg2 + strlen_P(msg2) + 1;
const bool has2 = msg2[0], has3 = msg3[0],
skip1 = !has2 && (LCD_HEIGHT) >= 5;
void _lcd_pause_message(PGM_P const msg1, PGM_P const msg2=nullptr, PGM_P const msg3=nullptr) {
START_SCREEN(); START_SCREEN();
STATIC_ITEM_P(pause_header(), SS_CENTER|SS_INVERT); STATIC_ITEM_P(pause_header(), SS_CENTER|SS_INVERT); // 1: Header
STATIC_ITEM_P(msg1); if (skip1) SKIP_ITEM(); // Move a single-line message down
if (msg2) STATIC_ITEM_P(msg2); STATIC_ITEM_P(msg1); // 2: Message Line 1
if (msg3 && (LCD_HEIGHT) >= 5) STATIC_ITEM_P(msg3); if (has2) STATIC_ITEM_P(msg2); // 3: Message Line 2
if ((!!msg2) + (!!msg3) + 2 < (LCD_HEIGHT) - 1) STATIC_ITEM(" "); if (has3 && (LCD_HEIGHT) >= 5) STATIC_ITEM_P(msg3); // 4: Message Line 3 (if LCD has 5 lines)
HOTEND_STATUS_ITEM(); if (skip1 + 1 + has2 + has3 < (LCD_HEIGHT) - 2) SKIP_ITEM(); // Push Hotend Status down, if needed
HOTEND_STATUS_ITEM(); // 5: Hotend Status
END_SCREEN(); END_SCREEN();
} }
void lcd_pause_pausing_message() { void lcd_pause_pausing_message() { _lcd_pause_message(GET_TEXT(MSG_PAUSE_PRINT_INIT)); }
_lcd_pause_message(PSTR(MSG_PAUSE_PRINT_INIT_1) void lcd_pause_changing_message() { _lcd_pause_message(GET_TEXT(MSG_FILAMENT_CHANGE_INIT)); }
#ifdef MSG_PAUSE_PRINT_INIT_2 void lcd_pause_unload_message() { _lcd_pause_message(GET_TEXT(MSG_FILAMENT_CHANGE_UNLOAD)); }
, PSTR(MSG_PAUSE_PRINT_INIT_2) void lcd_pause_heating_message() { _lcd_pause_message(GET_TEXT(MSG_FILAMENT_CHANGE_HEATING)); }
#ifdef MSG_PAUSE_PRINT_INIT_3 void lcd_pause_heat_message() { _lcd_pause_message(GET_TEXT(MSG_FILAMENT_CHANGE_HEAT)); }
, PSTR(MSG_PAUSE_PRINT_INIT_3) void lcd_pause_insert_message() { _lcd_pause_message(GET_TEXT(MSG_FILAMENT_CHANGE_INSERT)); }
#endif void lcd_pause_load_message() { _lcd_pause_message(GET_TEXT(MSG_FILAMENT_CHANGE_LOAD)); }
#endif void lcd_pause_waiting_message() { _lcd_pause_message(GET_TEXT(MSG_ADVANCED_PAUSE_WAITING)); }
); void lcd_pause_resume_message() { _lcd_pause_message(GET_TEXT(MSG_FILAMENT_CHANGE_RESUME)); }
}
void lcd_pause_changing_message() {
_lcd_pause_message(PSTR(MSG_FILAMENT_CHANGE_INIT_1)
#ifdef MSG_FILAMENT_CHANGE_INIT_2
, PSTR(MSG_FILAMENT_CHANGE_INIT_2)
#ifdef MSG_FILAMENT_CHANGE_INIT_3
, PSTR(MSG_FILAMENT_CHANGE_INIT_3)
#endif
#endif
);
}
void lcd_pause_unload_message() {
_lcd_pause_message(PSTR(MSG_FILAMENT_CHANGE_UNLOAD_1)
#ifdef MSG_FILAMENT_CHANGE_UNLOAD_2
, PSTR(MSG_FILAMENT_CHANGE_UNLOAD_2)
#ifdef MSG_FILAMENT_CHANGE_UNLOAD_3
, PSTR(MSG_FILAMENT_CHANGE_UNLOAD_3)
#endif
#endif
);
}
void lcd_pause_heating_message() {
_lcd_pause_message(PSTR(MSG_FILAMENT_CHANGE_HEATING_1)
#ifdef MSG_FILAMENT_CHANGE_HEATING_2
, PSTR(MSG_FILAMENT_CHANGE_HEATING_2)
#ifdef MSG_FILAMENT_CHANGE_HEATING_3
, PSTR(MSG_FILAMENT_CHANGE_HEATING_3)
#endif
#endif
);
}
void lcd_pause_heat_message() {
_lcd_pause_message(PSTR(MSG_FILAMENT_CHANGE_HEAT_1)
#ifdef MSG_FILAMENT_CHANGE_HEAT_2
, PSTR(MSG_FILAMENT_CHANGE_HEAT_2)
#ifdef MSG_FILAMENT_CHANGE_HEAT_3
, PSTR(MSG_FILAMENT_CHANGE_HEAT_3)
#endif
#endif
);
}
void lcd_pause_insert_message() {
_lcd_pause_message(PSTR(MSG_FILAMENT_CHANGE_INSERT_1)
#ifdef MSG_FILAMENT_CHANGE_INSERT_2
, PSTR(MSG_FILAMENT_CHANGE_INSERT_2)
#ifdef MSG_FILAMENT_CHANGE_INSERT_3
, PSTR(MSG_FILAMENT_CHANGE_INSERT_3)
#endif
#endif
);
}
void lcd_pause_load_message() {
_lcd_pause_message(PSTR(MSG_FILAMENT_CHANGE_LOAD_1)
#ifdef MSG_FILAMENT_CHANGE_LOAD_2
, PSTR(MSG_FILAMENT_CHANGE_LOAD_2)
#ifdef MSG_FILAMENT_CHANGE_LOAD_3
, PSTR(MSG_FILAMENT_CHANGE_LOAD_3)
#endif
#endif
);
}
void lcd_pause_waiting_message() {
_lcd_pause_message(PSTR(MSG_ADVANCED_PAUSE_WAITING_1)
#ifdef MSG_ADVANCED_PAUSE_WAITING_2
, PSTR(MSG_ADVANCED_PAUSE_WAITING_2)
#ifdef MSG_ADVANCED_PAUSE_WAITING_3
, PSTR(MSG_ADVANCED_PAUSE_WAITING_3)
#endif
#endif
);
}
void lcd_pause_resume_message() {
_lcd_pause_message(PSTR(MSG_FILAMENT_CHANGE_RESUME_1)
#ifdef MSG_FILAMENT_CHANGE_RESUME_2
, PSTR(MSG_FILAMENT_CHANGE_RESUME_2)
#ifdef MSG_FILAMENT_CHANGE_RESUME_3
, PSTR(MSG_FILAMENT_CHANGE_RESUME_3)
#endif
#endif
);
}
void lcd_pause_purge_message() { void lcd_pause_purge_message() {
_lcd_pause_message( #if ENABLED(ADVANCED_PAUSE_CONTINUOUS_PURGE)
#if ENABLED(ADVANCED_PAUSE_CONTINUOUS_PURGE) _lcd_pause_message(GET_TEXT(MSG_FILAMENT_CHANGE_CONT_PURGE));
PSTR(MSG_FILAMENT_CHANGE_CONT_PURGE_1) #else
#ifdef MSG_FILAMENT_CHANGE_CONT_PURGE_2 _lcd_pause_message(GET_TEXT(MSG_FILAMENT_CHANGE_PURGE));
, PSTR(MSG_FILAMENT_CHANGE_CONT_PURGE_2) #endif
#ifdef MSG_FILAMENT_CHANGE_CONT_PURGE_3
, PSTR(MSG_FILAMENT_CHANGE_CONT_PURGE_3)
#endif
#endif
#else
PSTR(MSG_FILAMENT_CHANGE_PURGE_1)
#ifdef MSG_FILAMENT_CHANGE_PURGE_2
, PSTR(MSG_FILAMENT_CHANGE_PURGE_2)
#ifdef MSG_FILAMENT_CHANGE_PURGE_3
, PSTR(MSG_FILAMENT_CHANGE_PURGE_3)
#endif
#endif
#endif
);
} }
FORCE_INLINE screenFunc_t ap_message_screen(const PauseMessage message) { FORCE_INLINE screenFunc_t ap_message_screen(const PauseMessage message) {

View file

@ -34,8 +34,8 @@
#include "game/game.h" #include "game/game.h"
#endif #endif
#define STATIC_PAIR(MSG, VALUE, STYL) do{ strcpy_P(buffer, PSTR(": ")); strcpy(buffer + 2, VALUE); STATIC_ITEM(MSG, STYL, buffer); }while(0) #define VALUE_ITEM(MSG, VALUE, STYL) do{ strcpy_P(buffer, PSTR(": ")); strcpy(buffer + 2, VALUE); STATIC_ITEM(MSG, STYL, buffer); }while(0)
#define STATIC_PAIR_P(MSG, PVALUE, STYL) do{ strcpy_P(buffer, PSTR(": ")); strcpy_P(buffer + 2, PSTR(PVALUE)); STATIC_ITEM(MSG, STYL, buffer); }while(0) #define VALUE_ITEM_P(MSG, PVALUE, STYL) do{ strcpy_P(buffer, PSTR(": ")); strcpy_P(buffer + 2, PSTR(PVALUE)); STATIC_ITEM(MSG, STYL, buffer); }while(0)
#if ENABLED(PRINTCOUNTER) #if ENABLED(PRINTCOUNTER)
@ -51,37 +51,41 @@
#endif #endif
); );
char buffer[21]; // for STATIC_PAIR_P char buffer[21]; // For macro usage
printStatistics stats = print_job_timer.getStats(); printStatistics stats = print_job_timer.getStats();
START_SCREEN(); // 12345678901234567890 START_SCREEN(); // 12345678901234567890
STATIC_PAIR(MSG_INFO_PRINT_COUNT, i16tostr3left(stats.totalPrints), SS_LEFT); // Print Count: 999 VALUE_ITEM(MSG_INFO_PRINT_COUNT, i16tostr3left(stats.totalPrints), SS_LEFT); // Print Count: 999
STATIC_PAIR(MSG_INFO_COMPLETED_PRINTS, i16tostr3left(stats.finishedPrints), SS_LEFT); // Completed : 666 VALUE_ITEM(MSG_INFO_COMPLETED_PRINTS, i16tostr3left(stats.finishedPrints), SS_LEFT); // Completed : 666
STATIC_PAIR_P(MSG_INFO_PRINT_TIME, "", SS_LEFT); // Total print Time: STATIC_ITEM(MSG_INFO_PRINT_TIME, SS_LEFT); // Total print Time:
STATIC_ITEM("> ", SS_LEFT, duration_t(stats.printTime).toString(buffer)); // > 99y 364d 23h 59m 59s STATIC_ITEM_P(PSTR("> "), SS_LEFT, duration_t(stats.printTime).toString(buffer)); // > 99y 364d 23h 59m 59s
STATIC_PAIR_P(MSG_INFO_PRINT_LONGEST, "", SS_LEFT); // Longest job time: STATIC_ITEM(MSG_INFO_PRINT_LONGEST, SS_LEFT); // Longest job time:
STATIC_ITEM("> ", SS_LEFT, duration_t(stats.longestPrint).toString(buffer)); // > 99y 364d 23h 59m 59s STATIC_ITEM_P(PSTR("> "), SS_LEFT, duration_t(stats.longestPrint).toString(buffer)); // > 99y 364d 23h 59m 59s
STATIC_PAIR_P(MSG_INFO_PRINT_FILAMENT, "", SS_LEFT); // Extruded total: STATIC_ITEM(MSG_INFO_PRINT_FILAMENT, SS_LEFT); // Extruded total:
sprintf_P(buffer, PSTR("%ld.%im"), long(stats.filamentUsed / 1000), int16_t(stats.filamentUsed / 100) % 10); sprintf_P(buffer, PSTR("%ld.%im"), long(stats.filamentUsed / 1000), int16_t(stats.filamentUsed / 100) % 10);
STATIC_ITEM("> ", SS_LEFT, buffer); // > 125m STATIC_ITEM_P(PSTR("> "), SS_LEFT, buffer); // > 125m
#if SERVICE_INTERVAL_1 > 0 || SERVICE_INTERVAL_2 > 0 || SERVICE_INTERVAL_3 > 0
strcpy_P(buffer, GET_TEXT(MSG_SERVICE_IN));
#endif
#if SERVICE_INTERVAL_1 > 0 #if SERVICE_INTERVAL_1 > 0
STATIC_ITEM(SERVICE_NAME_1 MSG_SERVICE_IN, SS_LEFT); // Service X in: STATIC_ITEM_P(PSTR(SERVICE_NAME_1 " "), SS_LEFT, buffer); // Service X in:
STATIC_ITEM("> ", SS_LEFT, duration_t(stats.nextService1).toString(buffer)); // > 7d 12h 11m 10s STATIC_ITEM_P(PSTR("> "), SS_LEFT, duration_t(stats.nextService1).toString(buffer)); // > 7d 12h 11m 10s
#endif #endif
#if SERVICE_INTERVAL_2 > 0 #if SERVICE_INTERVAL_2 > 0
STATIC_ITEM(SERVICE_NAME_2 MSG_SERVICE_IN, SS_LEFT); STATIC_ITEM_P(PSTR(SERVICE_NAME_2 " "), SS_LEFT, buffer);
STATIC_ITEM("> ", SS_LEFT, duration_t(stats.nextService2).toString(buffer)); STATIC_ITEM_P(PSTR("> "), SS_LEFT, duration_t(stats.nextService2).toString(buffer));
#endif #endif
#if SERVICE_INTERVAL_3 > 0 #if SERVICE_INTERVAL_3 > 0
STATIC_ITEM(SERVICE_NAME_3 MSG_SERVICE_IN, SS_LEFT); STATIC_ITEM_P(PSTR(SERVICE_NAME_3 " "), SS_LEFT, buffer);
STATIC_ITEM("> ", SS_LEFT, duration_t(stats.nextService3).toString(buffer)); STATIC_ITEM_P(PSTR("> "), SS_LEFT, duration_t(stats.nextService3).toString(buffer));
#endif #endif
END_SCREEN(); END_SCREEN();
@ -99,61 +103,61 @@ void menu_info_thermistors() {
#endif #endif
); );
char buffer[21]; // for STATIC_PAIR_P char buffer[21]; // For macro usage
START_SCREEN(); START_SCREEN();
#if EXTRUDERS #if EXTRUDERS
#define THERMISTOR_ID TEMP_SENSOR_0 #define THERMISTOR_ID TEMP_SENSOR_0
#include "../thermistornames.h" #include "../thermistornames.h"
STATIC_ITEM("T0: " THERMISTOR_NAME, SS_INVERT); STATIC_ITEM_P(PSTR(LCD_STR_E0 ": " THERMISTOR_NAME), SS_INVERT);
STATIC_PAIR_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_0_MINTEMP), SS_LEFT); VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_0_MINTEMP), SS_LEFT);
STATIC_PAIR_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_0_MAXTEMP), SS_LEFT); VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_0_MAXTEMP), SS_LEFT);
#endif #endif
#if TEMP_SENSOR_1 != 0 #if TEMP_SENSOR_1 != 0
#undef THERMISTOR_ID #undef THERMISTOR_ID
#define THERMISTOR_ID TEMP_SENSOR_1 #define THERMISTOR_ID TEMP_SENSOR_1
#include "../thermistornames.h" #include "../thermistornames.h"
STATIC_ITEM("T1: " THERMISTOR_NAME, SS_INVERT); STATIC_ITEM_P(PSTR(LCD_STR_E1 ": " THERMISTOR_NAME), SS_INVERT);
STATIC_PAIR_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_1_MINTEMP), SS_LEFT); VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_1_MINTEMP), SS_LEFT);
STATIC_PAIR_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_1_MAXTEMP), SS_LEFT); VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_1_MAXTEMP), SS_LEFT);
#endif #endif
#if TEMP_SENSOR_2 != 0 #if TEMP_SENSOR_2 != 0
#undef THERMISTOR_ID #undef THERMISTOR_ID
#define THERMISTOR_ID TEMP_SENSOR_2 #define THERMISTOR_ID TEMP_SENSOR_2
#include "../thermistornames.h" #include "../thermistornames.h"
STATIC_ITEM("T2: " THERMISTOR_NAME, SS_INVERT); STATIC_ITEM_P(PSTR(LCD_STR_E2 ": " THERMISTOR_NAME), SS_INVERT);
STATIC_PAIR_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_2_MINTEMP), SS_LEFT); VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_2_MINTEMP), SS_LEFT);
STATIC_PAIR_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_2_MAXTEMP), SS_LEFT); VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_2_MAXTEMP), SS_LEFT);
#endif #endif
#if TEMP_SENSOR_3 != 0 #if TEMP_SENSOR_3 != 0
#undef THERMISTOR_ID #undef THERMISTOR_ID
#define THERMISTOR_ID TEMP_SENSOR_3 #define THERMISTOR_ID TEMP_SENSOR_3
#include "../thermistornames.h" #include "../thermistornames.h"
STATIC_ITEM("T3: " THERMISTOR_NAME, SS_INVERT); STATIC_ITEM_P(PSTR(LCD_STR_E3 ": " THERMISTOR_NAME), SS_INVERT);
STATIC_PAIR_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_3_MINTEMP), SS_LEFT); VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_3_MINTEMP), SS_LEFT);
STATIC_PAIR_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_3_MAXTEMP), SS_LEFT); VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_3_MAXTEMP), SS_LEFT);
#endif #endif
#if TEMP_SENSOR_4 != 0 #if TEMP_SENSOR_4 != 0
#undef THERMISTOR_ID #undef THERMISTOR_ID
#define THERMISTOR_ID TEMP_SENSOR_4 #define THERMISTOR_ID TEMP_SENSOR_4
#include "../thermistornames.h" #include "../thermistornames.h"
STATIC_ITEM("T4: " THERMISTOR_NAME, SS_INVERT); STATIC_ITEM_P(PSTR(LCD_STR_E4 ": " THERMISTOR_NAME), SS_INVERT);
STATIC_PAIR_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_4_MINTEMP), SS_LEFT); VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_4_MINTEMP), SS_LEFT);
STATIC_PAIR_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_4_MAXTEMP), SS_LEFT); VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_4_MAXTEMP), SS_LEFT);
#endif #endif
#if TEMP_SENSOR_5 != 0 #if TEMP_SENSOR_5 != 0
#undef THERMISTOR_ID #undef THERMISTOR_ID
#define THERMISTOR_ID TEMP_SENSOR_5 #define THERMISTOR_ID TEMP_SENSOR_5
#include "../thermistornames.h" #include "../thermistornames.h"
STATIC_ITEM("T5: " THERMISTOR_NAME, SS_INVERT); STATIC_ITEM_P(PSTR(LCD_STR_E5 ": " THERMISTOR_NAME), SS_INVERT);
STATIC_PAIR_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_5_MINTEMP), SS_LEFT); VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_5_MINTEMP), SS_LEFT);
STATIC_PAIR_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_5_MAXTEMP), SS_LEFT); VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_5_MAXTEMP), SS_LEFT);
#endif #endif
#if EXTRUDERS #if EXTRUDERS
@ -174,9 +178,9 @@ void menu_info_thermistors() {
#undef THERMISTOR_ID #undef THERMISTOR_ID
#define THERMISTOR_ID TEMP_SENSOR_BED #define THERMISTOR_ID TEMP_SENSOR_BED
#include "../thermistornames.h" #include "../thermistornames.h"
STATIC_ITEM("TBed:" THERMISTOR_NAME, SS_INVERT); STATIC_ITEM_P(PSTR("BED:" THERMISTOR_NAME), SS_INVERT);
STATIC_PAIR_P(MSG_INFO_MIN_TEMP, STRINGIFY(BED_MINTEMP), SS_LEFT); VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(BED_MINTEMP), SS_LEFT);
STATIC_PAIR_P(MSG_INFO_MAX_TEMP, STRINGIFY(BED_MAXTEMP), SS_LEFT); VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(BED_MAXTEMP), SS_LEFT);
STATIC_ITEM( STATIC_ITEM(
#if WATCH_BED #if WATCH_BED
MSG_INFO_RUNAWAY_ON MSG_INFO_RUNAWAY_ON
@ -193,9 +197,9 @@ void menu_info_thermistors() {
#undef THERMISTOR_ID #undef THERMISTOR_ID
#define THERMISTOR_ID TEMP_SENSOR_CHAMBER #define THERMISTOR_ID TEMP_SENSOR_CHAMBER
#include "../thermistornames.h" #include "../thermistornames.h"
STATIC_ITEM("TCham:" THERMISTOR_NAME, SS_INVERT); STATIC_ITEM_P(PSTR("CHAM:" THERMISTOR_NAME), SS_INVERT);
STATIC_PAIR_P(MSG_INFO_MIN_TEMP, STRINGIFY(CHAMBER_MINTEMP), SS_LEFT); VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(CHAMBER_MINTEMP), SS_LEFT);
STATIC_PAIR_P(MSG_INFO_MAX_TEMP, STRINGIFY(CHAMBER_MAXTEMP), SS_LEFT); VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(CHAMBER_MAXTEMP), SS_LEFT);
STATIC_ITEM( STATIC_ITEM(
#if WATCH_CHAMBER #if WATCH_CHAMBER
MSG_INFO_RUNAWAY_ON MSG_INFO_RUNAWAY_ON
@ -220,16 +224,16 @@ void menu_info_board() {
#endif #endif
); );
char buffer[21]; // for STATIC_PAIR_P char buffer[21]; // For macro usage
START_SCREEN(); START_SCREEN();
STATIC_ITEM(BOARD_INFO_NAME, SS_CENTER|SS_INVERT); // MyPrinterController STATIC_ITEM_P(PSTR(BOARD_INFO_NAME), SS_CENTER|SS_INVERT); // MyPrinterController
#ifdef BOARD_WEBSITE_URL #ifdef BOARD_WEBSITE_URL
STATIC_ITEM(BOARD_WEBSITE_URL, SS_LEFT); // www.my3dprinter.com STATIC_ITEM_P(PSTR(BOARD_WEBSITE_URL), SS_LEFT); // www.my3dprinter.com
#endif #endif
STATIC_PAIR_P(MSG_INFO_BAUDRATE, STRINGIFY(BAUDRATE), SS_CENTER); // Baud: 250000 VALUE_ITEM_P(MSG_INFO_BAUDRATE, STRINGIFY(BAUDRATE), SS_CENTER); // Baud: 250000
STATIC_PAIR_P(MSG_INFO_PROTOCOL, PROTOCOL_VERSION, SS_CENTER); // Protocol: 1.0 VALUE_ITEM_P(MSG_INFO_PROTOCOL, PROTOCOL_VERSION, SS_CENTER); // Protocol: 1.0
STATIC_PAIR_P(MSG_INFO_PSU, PSU_NAME, SS_CENTER); VALUE_ITEM_P(MSG_INFO_PSU, PSU_NAME, SS_CENTER);
END_SCREEN(); END_SCREEN();
} }
@ -259,12 +263,13 @@ void menu_info_board() {
#endif #endif
); );
START_SCREEN(); START_SCREEN();
STATIC_ITEM(MSG_MARLIN, SS_CENTER|SS_INVERT); // Marlin STATIC_ITEM_P(PSTR(MSG_MARLIN), SS_CENTER|SS_INVERT); // Marlin
STATIC_ITEM(SHORT_BUILD_VERSION); // x.x.x-Branch STATIC_ITEM_P(PSTR(SHORT_BUILD_VERSION)); // x.x.x-Branch
STATIC_ITEM(STRING_DISTRIBUTION_DATE); // YYYY-MM-DD HH:MM STATIC_ITEM_P(PSTR(STRING_DISTRIBUTION_DATE)); // YYYY-MM-DD HH:MM
STATIC_ITEM(MACHINE_NAME); // My3DPrinter STATIC_ITEM_P(PSTR(MACHINE_NAME)); // My3DPrinter
STATIC_ITEM(WEBSITE_URL); // www.my3dprinter.com STATIC_ITEM_P(PSTR(WEBSITE_URL)); // www.my3dprinter.com
STATIC_ITEM(MSG_INFO_EXTRUDERS ": " STRINGIFY(EXTRUDERS)); // Extruders: 2 char buffer[21];
VALUE_ITEM_P(MSG_INFO_EXTRUDERS, STRINGIFY(EXTRUDERS), SS_CENTER); // Extruders: 2
#if ENABLED(AUTO_BED_LEVELING_3POINT) #if ENABLED(AUTO_BED_LEVELING_3POINT)
STATIC_ITEM(MSG_3POINT_LEVELING); // 3-Point Leveling STATIC_ITEM(MSG_3POINT_LEVELING); // 3-Point Leveling
#elif ENABLED(AUTO_BED_LEVELING_LINEAR) #elif ENABLED(AUTO_BED_LEVELING_LINEAR)

View file

@ -44,7 +44,7 @@
#if MACHINE_CAN_STOP #if MACHINE_CAN_STOP
void menu_abort_confirm() { void menu_abort_confirm() {
do_select_screen(PSTR(MSG_BUTTON_STOP), PSTR(MSG_BACK), ui.abort_print, ui.goto_previous_screen, PSTR(MSG_STOP_PRINT), nullptr, PSTR("?")); do_select_screen(GET_TEXT(MSG_BUTTON_STOP), GET_TEXT(MSG_BACK), ui.abort_print, ui.goto_previous_screen, GET_TEXT(MSG_STOP_PRINT), nullptr, PSTR("?"));
} }
#endif // MACHINE_CAN_STOP #endif // MACHINE_CAN_STOP
@ -238,13 +238,13 @@ void menu_main() {
#if HAS_SERVICE_INTERVALS #if HAS_SERVICE_INTERVALS
#if SERVICE_INTERVAL_1 > 0 #if SERVICE_INTERVAL_1 > 0
SUBMENU(SERVICE_NAME_1, menu_service1); SUBMENU_P(PSTR(SERVICE_NAME_1), menu_service1);
#endif #endif
#if SERVICE_INTERVAL_2 > 0 #if SERVICE_INTERVAL_2 > 0
SUBMENU(SERVICE_NAME_2, menu_service2); SUBMENU_P(PSTR(SERVICE_NAME_2), menu_service2);
#endif #endif
#if SERVICE_INTERVAL_3 > 0 #if SERVICE_INTERVAL_3 > 0
SUBMENU(SERVICE_NAME_3, menu_service3); SUBMENU_P(PSTR(SERVICE_NAME_3), menu_service3);
#endif #endif
#endif #endif

View file

@ -80,9 +80,9 @@ inline void sdcard_start_selected_file() {
buffer[0] = ' '; buffer[0] = ' ';
strcpy(buffer + 1, longest); strcpy(buffer + 1, longest);
do_select_screen( do_select_screen(
PSTR(MSG_BUTTON_PRINT), PSTR(MSG_BUTTON_CANCEL), GET_TEXT(MSG_BUTTON_PRINT), GET_TEXT(MSG_BUTTON_CANCEL),
sdcard_start_selected_file, ui.goto_previous_screen, sdcard_start_selected_file, ui.goto_previous_screen,
PSTR(MSG_START_PRINT), buffer, PSTR("?") GET_TEXT(MSG_START_PRINT), buffer, PSTR("?")
); );
} }
@ -134,11 +134,11 @@ void menu_media() {
BACK_ITEM(MSG_MAIN); BACK_ITEM(MSG_MAIN);
if (card.flag.workDirIsRoot) { if (card.flag.workDirIsRoot) {
#if !PIN_EXISTS(SD_DETECT) #if !PIN_EXISTS(SD_DETECT)
ACTION_ITEM(LCD_STR_REFRESH MSG_REFRESH, [](){ encoderTopLine = 0; card.mount(); }); ACTION_ITEM(MSG_REFRESH, [](){ encoderTopLine = 0; card.mount(); });
#endif #endif
} }
else if (card.isMounted()) else if (card.isMounted())
ACTION_ITEM(LCD_STR_FOLDER "..", lcd_sd_updir); ACTION_ITEM_P(PSTR(LCD_STR_FOLDER ".."), lcd_sd_updir);
if (ui.should_draw()) for (uint16_t i = 0; i < fileCnt; i++) { if (ui.should_draw()) for (uint16_t i = 0; i < fileCnt; i++) {
if (_menuLineNr == _thisItemNr) { if (_menuLineNr == _thisItemNr) {

View file

@ -50,7 +50,8 @@
} }
if (ui.should_draw()) { if (ui.should_draw()) {
char tmp[21]; char tmp[21];
sprintf_P(tmp, PSTR(MSG_START_Z ": %4d.%d mm"), int(mixer.gradient.start_z), int(mixer.gradient.start_z * 10) % 10); strcpy_P(tmp, GET_TEXT(MSG_START_Z));
sprintf_P(tmp + strlen(tmp), PSTR(": %4d.%d mm"), int(mixer.gradient.start_z), int(mixer.gradient.start_z * 10) % 10);
SETCURSOR(2, (LCD_HEIGHT - 1) / 2); SETCURSOR(2, (LCD_HEIGHT - 1) / 2);
LCDPRINT(tmp); LCDPRINT(tmp);
} }
@ -75,7 +76,8 @@
if (ui.should_draw()) { if (ui.should_draw()) {
char tmp[21]; char tmp[21];
sprintf_P(tmp, PSTR(MSG_END_Z ": %4d.%d mm"), int(mixer.gradient.end_z), int(mixer.gradient.end_z * 10) % 10); strcpy_P(tmp, GET_TEXT(MSG_END_Z));
sprintf_P(tmp + strlen(tmp), PSTR(": %4d.%d mm"), int(mixer.gradient.end_z), int(mixer.gradient.end_z * 10) % 10);
SETCURSOR(2, (LCD_HEIGHT - 1) / 2); SETCURSOR(2, (LCD_HEIGHT - 1) / 2);
LCDPRINT(tmp); LCDPRINT(tmp);
} }
@ -101,13 +103,13 @@
char tmp[18]; char tmp[18];
SUBMENU(MSG_START_Z ":", lcd_mixer_gradient_z_start_edit); SUBMENU(MSG_START_Z, lcd_mixer_gradient_z_start_edit);
MENU_ITEM_ADDON_START(9); MENU_ITEM_ADDON_START(9);
sprintf_P(tmp, PSTR("%4d.%d mm"), int(mixer.gradient.start_z), int(mixer.gradient.start_z * 10) % 10); sprintf_P(tmp, PSTR("%4d.%d mm"), int(mixer.gradient.start_z), int(mixer.gradient.start_z * 10) % 10);
LCDPRINT(tmp); LCDPRINT(tmp);
MENU_ITEM_ADDON_END(); MENU_ITEM_ADDON_END();
SUBMENU(MSG_END_Z ":", lcd_mixer_gradient_z_end_edit); SUBMENU(MSG_END_Z, lcd_mixer_gradient_z_end_edit);
MENU_ITEM_ADDON_START(9); MENU_ITEM_ADDON_START(9);
sprintf_P(tmp, PSTR("%4d.%d mm"), int(mixer.gradient.end_z), int(mixer.gradient.end_z * 10) % 10); sprintf_P(tmp, PSTR("%4d.%d mm"), int(mixer.gradient.end_z), int(mixer.gradient.end_z * 10) % 10);
LCDPRINT(tmp); LCDPRINT(tmp);
@ -122,9 +124,11 @@ static uint8_t v_index;
#if DUAL_MIXING_EXTRUDER #if DUAL_MIXING_EXTRUDER
void _lcd_draw_mix(const uint8_t y) { void _lcd_draw_mix(const uint8_t y) {
char tmp[21]; char tmp[10]; // "100%_100%"
sprintf_P(tmp, PSTR(MSG_MIX ": %3d%% %3d%%"), int(mixer.mix[0]), int(mixer.mix[1]));
SETCURSOR(2, y); SETCURSOR(2, y);
lcd_put_u8str_P(GET_TEXT(MSG_MIX));
SETCURSOR(LCD_WIDTH - 9, y);
sprintf_P(tmp, PSTR("%3d%% %3d%%"), int(mixer.mix[0]), int(mixer.mix[1]));
LCDPRINT(tmp); LCDPRINT(tmp);
} }
#endif #endif
@ -158,7 +162,7 @@ void lcd_mixer_mix_edit() {
#if CHANNEL_MIX_EDITING #if CHANNEL_MIX_EDITING
#define EDIT_COLOR(N) EDIT_ITEM_FAST(float52, MSG_MIX_COMPONENT " " STRINGIFY(N), &mixer.collector[N-1], 0, 10); #define EDIT_COLOR(N) EDIT_ITEM_FAST(float52, MSG_MIX_COMPONENT_##N, &mixer.collector[N-1], 0, 10);
START_MENU(); START_MENU();
BACK_ITEM(MSG_MIXER); BACK_ITEM(MSG_MIXER);
@ -250,14 +254,14 @@ void lcd_mixer_mix_edit() {
// //
void menu_mixer_vtools_reset_confirm() { void menu_mixer_vtools_reset_confirm() {
do_select_screen( do_select_screen(
PSTR(MSG_BUTTON_RESET), PSTR(MSG_BUTTON_CANCEL), GET_TEXT(MSG_BUTTON_RESET), GET_TEXT(MSG_BUTTON_CANCEL),
[]{ []{
mixer.reset_vtools(); mixer.reset_vtools();
LCD_MESSAGEPGM(MSG_VTOOLS_RESET); LCD_MESSAGEPGM(MSG_VTOOLS_RESET);
ui.return_to_status(); ui.return_to_status();
}, },
ui.goto_previous_screen, ui.goto_previous_screen,
PSTR(MSG_RESET_VTOOLS), nullptr, PSTR("?") GET_TEXT(MSG_RESET_VTOOLS), nullptr, PSTR("?")
); );
} }

View file

@ -38,7 +38,7 @@ bool mmuMenuWait;
void _mmu2_load_filamentToNozzle(uint8_t index) { void _mmu2_load_filamentToNozzle(uint8_t index) {
ui.reset_status(); ui.reset_status();
ui.return_to_status(); ui.return_to_status();
ui.status_printf_P(0, PSTR(MSG_MMU2_LOADING_FILAMENT), int(index + 1)); ui.status_printf_P(0, GET_TEXT(MSG_MMU2_LOADING_FILAMENT), int(index + 1));
if (mmu2.load_filament_to_nozzle(index)) ui.reset_status(); if (mmu2.load_filament_to_nozzle(index)) ui.reset_status();
} }
@ -49,7 +49,7 @@ inline void action_mmu2_load_filament_to_nozzle(const uint8_t tool) {
void _mmu2_load_filament(uint8_t index) { void _mmu2_load_filament(uint8_t index) {
ui.return_to_status(); ui.return_to_status();
ui.status_printf_P(0, PSTR(MSG_MMU2_LOADING_FILAMENT), int(index + 1)); ui.status_printf_P(0, GET_TEXT(MSG_MMU2_LOADING_FILAMENT), int(index + 1));
mmu2.load_filament(index); mmu2.load_filament(index);
ui.reset_status(); ui.reset_status();
} }
@ -89,7 +89,7 @@ void menu_mmu2_load_to_nozzle() {
void _mmu2_eject_filament(uint8_t index) { void _mmu2_eject_filament(uint8_t index) {
ui.reset_status(); ui.reset_status();
ui.return_to_status(); ui.return_to_status();
ui.status_printf_P(0, PSTR(MSG_MMU2_EJECTING_FILAMENT), int(index + 1)); ui.status_printf_P(0, GET_TEXT(MSG_MMU2_EJECTING_FILAMENT), int(index + 1));
if (mmu2.eject_filament(index, true)) ui.reset_status(); if (mmu2.eject_filament(index, true)) ui.reset_status();
} }
@ -162,7 +162,7 @@ void menu_mmu2_pause() {
currentTool = mmu2.get_current_tool(); currentTool = mmu2.get_current_tool();
START_MENU(); START_MENU();
#if LCD_HEIGHT > 2 #if LCD_HEIGHT > 2
STATIC_ITEM(MSG_MMU2_FILAMENT_CHANGE_HEADER, SS_CENTER|SS_INVERT); STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, SS_CENTER|SS_INVERT);
#endif #endif
ACTION_ITEM(MSG_MMU2_RESUME, [](){ mmuMenuWait = false; }); ACTION_ITEM(MSG_MMU2_RESUME, [](){ mmuMenuWait = false; });
ACTION_ITEM(MSG_MMU2_UNLOAD_FILAMENT, [](){ mmu2.unload(); }); ACTION_ITEM(MSG_MMU2_UNLOAD_FILAMENT, [](){ mmu2.unload(); });

View file

@ -155,9 +155,9 @@ static void _lcd_move_xyz(PGM_P name, AxisEnum axis) {
draw_edit_screen(name, move_menu_scale >= 0.1f ? ftostr41sign(pos) : ftostr43sign(pos)); draw_edit_screen(name, move_menu_scale >= 0.1f ? ftostr41sign(pos) : ftostr43sign(pos));
} }
} }
void lcd_move_x() { _lcd_move_xyz(PSTR(MSG_MOVE_X), X_AXIS); } void lcd_move_x() { _lcd_move_xyz(GET_TEXT(MSG_MOVE_X), X_AXIS); }
void lcd_move_y() { _lcd_move_xyz(PSTR(MSG_MOVE_Y), Y_AXIS); } void lcd_move_y() { _lcd_move_xyz(GET_TEXT(MSG_MOVE_Y), Y_AXIS); }
void lcd_move_z() { _lcd_move_xyz(PSTR(MSG_MOVE_Z), Z_AXIS); } void lcd_move_z() { _lcd_move_xyz(GET_TEXT(MSG_MOVE_Z), Z_AXIS); }
#if E_MANUAL #if E_MANUAL
@ -185,21 +185,19 @@ void lcd_move_z() { _lcd_move_xyz(PSTR(MSG_MOVE_Z), Z_AXIS); }
ui.encoderPosition = 0; ui.encoderPosition = 0;
} }
if (ui.should_draw()) { if (ui.should_draw()) {
PGM_P pos_label; PGM_P pos_label = GET_TEXT(MSG_MOVE_E);
#if E_MANUAL == 1 #if E_MANUAL > 1
pos_label = PSTR(MSG_MOVE_E);
#else
switch (eindex) { switch (eindex) {
default: pos_label = PSTR(MSG_MOVE_E LCD_STR_N0); break; default: pos_label = GET_TEXT(MSG_MOVE_E0); break;
case 1: pos_label = PSTR(MSG_MOVE_E LCD_STR_N1); break; case 1: pos_label = GET_TEXT(MSG_MOVE_E1); break;
#if E_MANUAL > 2 #if E_MANUAL > 2
case 2: pos_label = PSTR(MSG_MOVE_E LCD_STR_N2); break; case 2: pos_label = GET_TEXT(MSG_MOVE_E2); break;
#if E_MANUAL > 3 #if E_MANUAL > 3
case 3: pos_label = PSTR(MSG_MOVE_E LCD_STR_N3); break; case 3: pos_label = GET_TEXT(MSG_MOVE_E3); break;
#if E_MANUAL > 4 #if E_MANUAL > 4
case 4: pos_label = PSTR(MSG_MOVE_E LCD_STR_N4); break; case 4: pos_label = GET_TEXT(MSG_MOVE_E4); break;
#if E_MANUAL > 5 #if E_MANUAL > 5
case 5: pos_label = PSTR(MSG_MOVE_E LCD_STR_N5); break; case 5: pos_label = GET_TEXT(MSG_MOVE_E5); break;
#endif // E_MANUAL > 5 #endif // E_MANUAL > 5
#endif // E_MANUAL > 4 #endif // E_MANUAL > 4
#endif // E_MANUAL > 3 #endif // E_MANUAL > 3
@ -263,13 +261,13 @@ void _menu_move_distance(const AxisEnum axis, const screenFunc_t func, const int
SUBMENU(MSG_MOVE_1MM, [](){ _goto_manual_move( 1); }); SUBMENU(MSG_MOVE_1MM, [](){ _goto_manual_move( 1); });
SUBMENU(MSG_MOVE_01MM, [](){ _goto_manual_move( 0.1f); }); SUBMENU(MSG_MOVE_01MM, [](){ _goto_manual_move( 0.1f); });
if (axis == Z_AXIS && (SHORT_MANUAL_Z_MOVE) > 0.0f && (SHORT_MANUAL_Z_MOVE) < 0.1f) { if (axis == Z_AXIS && (SHORT_MANUAL_Z_MOVE) > 0.0f && (SHORT_MANUAL_Z_MOVE) < 0.1f) {
SUBMENU("", []{ _goto_manual_move(float(SHORT_MANUAL_Z_MOVE)); }); SUBMENU_P(PSTR(""), []{ _goto_manual_move(float(SHORT_MANUAL_Z_MOVE)); });
MENU_ITEM_ADDON_START(1); MENU_ITEM_ADDON_START(1);
char tmp[20], numstr[10]; char tmp[20], numstr[10];
// Determine digits needed right of decimal // Determine digits needed right of decimal
const uint8_t digs = !UNEAR_ZERO((SHORT_MANUAL_Z_MOVE) * 1000 - int((SHORT_MANUAL_Z_MOVE) * 1000)) ? 4 : const uint8_t digs = !UNEAR_ZERO((SHORT_MANUAL_Z_MOVE) * 1000 - int((SHORT_MANUAL_Z_MOVE) * 1000)) ? 4 :
!UNEAR_ZERO((SHORT_MANUAL_Z_MOVE) * 100 - int((SHORT_MANUAL_Z_MOVE) * 100)) ? 3 : 2; !UNEAR_ZERO((SHORT_MANUAL_Z_MOVE) * 100 - int((SHORT_MANUAL_Z_MOVE) * 100)) ? 3 : 2;
sprintf_P(tmp, PSTR(MSG_MOVE_Z_DIST), dtostrf(SHORT_MANUAL_Z_MOVE, 1, digs, numstr)); sprintf_P(tmp, GET_TEXT(MSG_MOVE_Z_DIST), dtostrf(SHORT_MANUAL_Z_MOVE, 1, digs, numstr));
LCDPRINT(tmp); LCDPRINT(tmp);
MENU_ITEM_ADDON_END(); MENU_ITEM_ADDON_END();
} }
@ -316,35 +314,35 @@ void menu_move() {
#if EXTRUDERS >= 4 #if EXTRUDERS >= 4
switch (active_extruder) { switch (active_extruder) {
case 0: GCODES_ITEM(MSG_SELECT " " LCD_STR_E1, PSTR("T1")); break; case 0: GCODES_ITEM(MSG_SELECT_E1, PSTR("T1")); break;
case 1: GCODES_ITEM(MSG_SELECT " " LCD_STR_E0, PSTR("T0")); break; case 1: GCODES_ITEM(MSG_SELECT_E0, PSTR("T0")); break;
case 2: GCODES_ITEM(MSG_SELECT " " LCD_STR_E3, PSTR("T3")); break; case 2: GCODES_ITEM(MSG_SELECT_E3, PSTR("T3")); break;
case 3: GCODES_ITEM(MSG_SELECT " " LCD_STR_E2, PSTR("T2")); break; case 3: GCODES_ITEM(MSG_SELECT_E2, PSTR("T2")); break;
#if EXTRUDERS == 6 #if EXTRUDERS == 6
case 4: GCODES_ITEM(MSG_SELECT " " LCD_STR_E5, PSTR("T5")); break; case 4: GCODES_ITEM(MSG_SELECT_E5, PSTR("T5")); break;
case 5: GCODES_ITEM(MSG_SELECT " " LCD_STR_E4, PSTR("T4")); break; case 5: GCODES_ITEM(MSG_SELECT_E4, PSTR("T4")); break;
#endif #endif
} }
#elif EXTRUDERS == 3 #elif EXTRUDERS == 3
if (active_extruder < 2) { if (active_extruder < 2) {
if (active_extruder) if (active_extruder)
GCODES_ITEM(MSG_SELECT " " LCD_STR_E0, PSTR("T0")); GCODES_ITEM(MSG_SELECT_E0, PSTR("T0"));
else else
GCODES_ITEM(MSG_SELECT " " LCD_STR_E1, PSTR("T1")); GCODES_ITEM(MSG_SELECT_E1, PSTR("T1"));
} }
#else #else
if (active_extruder) if (active_extruder)
GCODES_ITEM(MSG_SELECT " " LCD_STR_E0, PSTR("T0")); GCODES_ITEM(MSG_SELECT_E0, PSTR("T0"));
else else
GCODES_ITEM(MSG_SELECT " " LCD_STR_E1, PSTR("T1")); GCODES_ITEM(MSG_SELECT_E1, PSTR("T1"));
#endif #endif
#elif ENABLED(DUAL_X_CARRIAGE) #elif ENABLED(DUAL_X_CARRIAGE)
if (active_extruder) if (active_extruder)
GCODES_ITEM(MSG_SELECT " " LCD_STR_E0, PSTR("T0")); GCODES_ITEM(MSG_SELECT_E0, PSTR("T0"));
else else
GCODES_ITEM(MSG_SELECT " " LCD_STR_E1, PSTR("T1")); GCODES_ITEM(MSG_SELECT_E1, PSTR("T1"));
#endif #endif
@ -353,7 +351,7 @@ void menu_move() {
// The current extruder // The current extruder
SUBMENU(MSG_MOVE_E, [](){ _menu_move_distance(E_AXIS, [](){ lcd_move_e(); }, -1); }); SUBMENU(MSG_MOVE_E, [](){ _menu_move_distance(E_AXIS, [](){ lcd_move_e(); }, -1); });
#define SUBMENU_MOVE_E(N) SUBMENU(MSG_MOVE_E LCD_STR_N##N, [](){ _menu_move_distance(E_AXIS, [](){ lcd_move_e(N); }, N); }); #define SUBMENU_MOVE_E(N) SUBMENU(MSG_MOVE_E##N, [](){ _menu_move_distance(E_AXIS, [](){ lcd_move_e(N); }, N); });
#if EITHER(SWITCHING_EXTRUDER, SWITCHING_NOZZLE) #if EITHER(SWITCHING_EXTRUDER, SWITCHING_NOZZLE)

View file

@ -45,10 +45,10 @@ inline void _service_reset(const int index) {
char sram[30]; char sram[30];
strncpy_P(sram, PSTR(SERVICE_NAME_1), 29); strncpy_P(sram, PSTR(SERVICE_NAME_1), 29);
do_select_screen( do_select_screen(
PSTR(MSG_BUTTON_RESET), PSTR(MSG_BUTTON_CANCEL), GET_TEXT(MSG_BUTTON_RESET), GET_TEXT(MSG_BUTTON_CANCEL),
[]{ _service_reset(1); }, []{ _service_reset(1); },
ui.goto_previous_screen, ui.goto_previous_screen,
PSTR(MSG_SERVICE_RESET), sram, PSTR("?") GET_TEXT(MSG_SERVICE_RESET), sram, PSTR("?")
); );
} }
#endif #endif
@ -58,10 +58,10 @@ inline void _service_reset(const int index) {
char sram[30]; char sram[30];
strncpy_P(sram, PSTR(SERVICE_NAME_2), 29); strncpy_P(sram, PSTR(SERVICE_NAME_2), 29);
do_select_screen( do_select_screen(
PSTR(MSG_BUTTON_RESET), PSTR(MSG_BUTTON_CANCEL), GET_TEXT(MSG_BUTTON_RESET), GET_TEXT(MSG_BUTTON_CANCEL),
[]{ _service_reset(2); }, []{ _service_reset(2); },
ui.goto_previous_screen, ui.goto_previous_screen,
PSTR(MSG_SERVICE_RESET), sram, PSTR("?") GET_TEXT(MSG_SERVICE_RESET), sram, PSTR("?")
); );
} }
#endif #endif
@ -71,10 +71,10 @@ inline void _service_reset(const int index) {
char sram[30]; char sram[30];
strncpy_P(sram, PSTR(SERVICE_NAME_3), 29); strncpy_P(sram, PSTR(SERVICE_NAME_3), 29);
do_select_screen( do_select_screen(
PSTR(MSG_BUTTON_RESET), PSTR(MSG_BUTTON_CANCEL), GET_TEXT(MSG_BUTTON_RESET), GET_TEXT(MSG_BUTTON_CANCEL),
[]{ _service_reset(3); }, []{ _service_reset(3); },
ui.goto_previous_screen, ui.goto_previous_screen,
PSTR(MSG_SERVICE_RESET), sram, PSTR("?") GET_TEXT(MSG_SERVICE_RESET), sram, PSTR("?")
); );
} }
#endif #endif

View file

@ -87,14 +87,14 @@ void _lcd_preheat(const int16_t endnum, const int16_t temph, const int16_t tempb
#if HAS_TEMP_HOTEND || HAS_HEATED_BED #if HAS_TEMP_HOTEND || HAS_HEATED_BED
#define _PREHEAT_ITEMS(M,N) do{ \ #define _PREHEAT_ITEMS(M,N) do{ \
ACTION_ITEM(MSG_PREHEAT_##M##_N LCD_STR_N##N, [](){ _preheat_both(M-1, N); }); \ ACTION_ITEM(MSG_PREHEAT_##M##_H##N, [](){ _preheat_both(M-1, N); }); \
ACTION_ITEM(MSG_PREHEAT_##M##_END " " LCD_STR_E##N, [](){ _preheat_end(M-1, N); }); \ ACTION_ITEM(MSG_PREHEAT_##M##_END_E##N, [](){ _preheat_end(M-1, N); }); \
}while(0) }while(0)
#if HAS_HEATED_BED #if HAS_HEATED_BED
#define PREHEAT_ITEMS(M,N) _PREHEAT_ITEMS(M,N) #define PREHEAT_ITEMS(M,N) _PREHEAT_ITEMS(M,N)
#else #else
#define PREHEAT_ITEMS(M,N) \ #define PREHEAT_ITEMS(M,N) \
ACTION_ITEM(MSG_PREHEAT_##M##_N LCD_STR_N##N, [](){ _preheat_end(M-1, N); }) ACTION_ITEM(MSG_PREHEAT_##M##_H##N, [](){ _preheat_end(M-1, N); })
#endif #endif
void menu_preheat_m1() { void menu_preheat_m1() {
@ -196,7 +196,7 @@ void menu_temperature() {
#if HOTENDS == 1 #if HOTENDS == 1
EDIT_ITEM_FAST(int3, MSG_NOZZLE, &thermalManager.temp_hotend[0].target, 0, HEATER_0_MAXTEMP - 15, [](){ thermalManager.start_watching_hotend(0); }); EDIT_ITEM_FAST(int3, MSG_NOZZLE, &thermalManager.temp_hotend[0].target, 0, HEATER_0_MAXTEMP - 15, [](){ thermalManager.start_watching_hotend(0); });
#elif HOTENDS > 1 #elif HOTENDS > 1
#define EDIT_TARGET(N) EDIT_ITEM_FAST(int3, MSG_NOZZLE LCD_STR_N##N, &thermalManager.temp_hotend[N].target, 0, HEATER_##N##_MAXTEMP - 15, [](){ thermalManager.start_watching_hotend(N); }) #define EDIT_TARGET(N) EDIT_ITEM_FAST(int3, MSG_NOZZLE_##N, &thermalManager.temp_hotend[N].target, 0, HEATER_##N##_MAXTEMP - 15, [](){ thermalManager.start_watching_hotend(N); })
EDIT_TARGET(0); EDIT_TARGET(0);
EDIT_TARGET(1); EDIT_TARGET(1);
#if HOTENDS > 2 #if HOTENDS > 2
@ -237,23 +237,23 @@ void menu_temperature() {
#if FAN_COUNT > 0 #if FAN_COUNT > 0
#if HAS_FAN0 #if HAS_FAN0
editable.uint8 = thermalManager.fan_speed[0]; editable.uint8 = thermalManager.fan_speed[0];
EDIT_ITEM_FAST(percent, MSG_FAN_SPEED FAN_SPEED_1_SUFFIX, &editable.uint8, 0, 255, [](){ thermalManager.set_fan_speed(0, editable.uint8); }); EDIT_ITEM_FAST(percent, MSG_FAN_SPEED_1, &editable.uint8, 0, 255, [](){ thermalManager.set_fan_speed(0, editable.uint8); });
#if ENABLED(EXTRA_FAN_SPEED) #if ENABLED(EXTRA_FAN_SPEED)
EDIT_ITEM_FAST(percent, MSG_EXTRA_FAN_SPEED FAN_SPEED_1_SUFFIX, &thermalManager.new_fan_speed[0], 3, 255); EDIT_ITEM_FAST(percent, MSG_EXTRA_FAN_SPEED_1, &thermalManager.new_fan_speed[0], 3, 255);
#endif #endif
#endif #endif
#if HAS_FAN1 || (ENABLED(SINGLENOZZLE) && EXTRUDERS > 1) #if HAS_FAN1 || (ENABLED(SINGLENOZZLE) && EXTRUDERS > 1)
editable.uint8 = thermalManager.fan_speed[1]; editable.uint8 = thermalManager.fan_speed[1];
EDIT_ITEM_FAST(percent, MSG_FAN_SPEED " 2", &editable.uint8, 0, 255, [](){ thermalManager.set_fan_speed(1, editable.uint8); }); EDIT_ITEM_FAST(percent, MSG_FAN_SPEED_2, &editable.uint8, 0, 255, [](){ thermalManager.set_fan_speed(1, editable.uint8); });
#if ENABLED(EXTRA_FAN_SPEED) #if ENABLED(EXTRA_FAN_SPEED)
EDIT_ITEM_FAST(percent, MSG_EXTRA_FAN_SPEED " 2", &thermalManager.new_fan_speed[1], 3, 255); EDIT_ITEM_FAST(percent, MSG_EXTRA_FAN_SPEED_2, &thermalManager.new_fan_speed[1], 3, 255);
#endif #endif
#endif #endif
#if HAS_FAN2 || (ENABLED(SINGLENOZZLE) && EXTRUDERS > 2) #if HAS_FAN2 || (ENABLED(SINGLENOZZLE) && EXTRUDERS > 2)
editable.uint8 = thermalManager.fan_speed[2]; editable.uint8 = thermalManager.fan_speed[2];
EDIT_ITEM_FAST(percent, MSG_FAN_SPEED " 3", &editable.uint8, 0, 255, [](){ thermalManager.set_fan_speed(2, editable.uint8); }); EDIT_ITEM_FAST(percent, MSG_FAN_SPEED_3, &editable.uint8, 0, 255, [](){ thermalManager.set_fan_speed(2, editable.uint8); });
#if ENABLED(EXTRA_FAN_SPEED) #if ENABLED(EXTRA_FAN_SPEED)
EDIT_ITEM_FAST(percent, MSG_EXTRA_FAN_SPEED " 3", &thermalManager.new_fan_speed[2], 3, 255); EDIT_ITEM_FAST(percent, MSG_EXTRA_FAN_SPEED_3, &thermalManager.new_fan_speed[2], 3, 255);
#endif #endif
#endif #endif
#endif // FAN_COUNT > 0 #endif // FAN_COUNT > 0

View file

@ -32,7 +32,7 @@
#include "../../module/stepper/indirection.h" #include "../../module/stepper/indirection.h"
#include "../../feature/tmc_util.h" #include "../../feature/tmc_util.h"
#define TMC_EDIT_STORED_I_RMS(ST,MSG) EDIT_ITEM(uint16_4, MSG, &stepper##ST.val_mA, 100, 3000, [](){ stepper##ST.refresh_stepper_current(); }) #define TMC_EDIT_STORED_I_RMS(ST,MSG) EDIT_ITEM_P(uint16_4, PSTR(MSG), &stepper##ST.val_mA, 100, 3000, [](){ stepper##ST.refresh_stepper_current(); })
void menu_tmc_current() { void menu_tmc_current() {
START_MENU(); START_MENU();
@ -81,7 +81,7 @@ void menu_tmc_current() {
#if ENABLED(HYBRID_THRESHOLD) #if ENABLED(HYBRID_THRESHOLD)
#define TMC_EDIT_STORED_HYBRID_THRS(ST, MSG) EDIT_ITEM(uint8, MSG, &stepper##ST.stored.hybrid_thrs, 0, 255, [](){ stepper##ST.refresh_hybrid_thrs(); }); #define TMC_EDIT_STORED_HYBRID_THRS(ST, MSG) EDIT_ITEM_P(uint8, PSTR(MSG), &stepper##ST.stored.hybrid_thrs, 0, 255, [](){ stepper##ST.refresh_hybrid_thrs(); });
void menu_tmc_hybrid_thrs() { void menu_tmc_hybrid_thrs() {
START_MENU(); START_MENU();
@ -132,7 +132,7 @@ void menu_tmc_current() {
#if ENABLED(SENSORLESS_HOMING) #if ENABLED(SENSORLESS_HOMING)
#define TMC_EDIT_STORED_SGT(ST) EDIT_ITEM(int4, MSG_##ST, &stepper##ST.stored.homing_thrs, stepper##ST.sgt_min, stepper##ST.sgt_max, [](){ stepper##ST.refresh_homing_thrs(); }); #define TMC_EDIT_STORED_SGT(ST) EDIT_ITEM_P(int4, PSTR(MSG_##ST), &stepper##ST.stored.homing_thrs, stepper##ST.sgt_min, stepper##ST.sgt_max, [](){ stepper##ST.refresh_homing_thrs(); });
void menu_tmc_homing_thrs() { void menu_tmc_homing_thrs() {
START_MENU(); START_MENU();
@ -156,7 +156,7 @@ void menu_tmc_current() {
#if HAS_STEALTHCHOP #if HAS_STEALTHCHOP
#define TMC_EDIT_STEP_MODE(ST, MSG) EDIT_ITEM(bool, MSG, &stepper##ST.stored.stealthChop_enabled, [](){ stepper##ST.refresh_stepping_mode(); }) #define TMC_EDIT_STEP_MODE(ST, MSG) EDIT_ITEM_P(bool, PSTR(MSG), &stepper##ST.stored.stealthChop_enabled, [](){ stepper##ST.refresh_stepping_mode(); })
void menu_tmc_step_mode() { void menu_tmc_step_mode() {
START_MENU(); START_MENU();

View file

@ -74,7 +74,8 @@
#else #else
lcd_moveto(0, LCD_HEIGHT - 1); lcd_moveto(0, LCD_HEIGHT - 1);
#endif #endif
lcd_put_u8str_P(PSTR(MSG_BABYSTEP_TOTAL ":")); lcd_put_u8str_P(GET_TEXT(MSG_BABYSTEP_TOTAL));
lcd_put_wchar(':');
lcd_put_u8str(ftostr54sign(spm * babystep.axis_total[BS_TOTAL_AXIS(axis)])); lcd_put_u8str(ftostr54sign(spm * babystep.axis_total[BS_TOTAL_AXIS(axis)]));
} }
#endif #endif
@ -88,12 +89,12 @@
} }
#if ENABLED(BABYSTEP_XY) #if ENABLED(BABYSTEP_XY)
void _lcd_babystep_x() { _lcd_babystep(X_AXIS, PSTR(MSG_BABYSTEP_X)); } void _lcd_babystep_x() { _lcd_babystep(X_AXIS, GET_TEXT(MSG_BABYSTEP_X)); }
void _lcd_babystep_y() { _lcd_babystep(Y_AXIS, PSTR(MSG_BABYSTEP_Y)); } void _lcd_babystep_y() { _lcd_babystep(Y_AXIS, GET_TEXT(MSG_BABYSTEP_Y)); }
#endif #endif
#if DISABLED(BABYSTEP_ZPROBE_OFFSET) #if DISABLED(BABYSTEP_ZPROBE_OFFSET)
void _lcd_babystep_z() { _lcd_babystep(Z_AXIS, PSTR(MSG_BABYSTEP_Z)); } void _lcd_babystep_z() { _lcd_babystep(Z_AXIS, GET_TEXT(MSG_BABYSTEP_Z)); }
void lcd_babystep_z() { _lcd_babystep_go(_lcd_babystep_z); } void lcd_babystep_z() { _lcd_babystep_go(_lcd_babystep_z); }
#endif #endif
@ -122,7 +123,7 @@ void menu_tune() {
#if HOTENDS == 1 #if HOTENDS == 1
EDIT_ITEM_FAST(int3, MSG_NOZZLE, &thermalManager.temp_hotend[0].target, 0, HEATER_0_MAXTEMP - 15, [](){ thermalManager.start_watching_hotend(0); }); EDIT_ITEM_FAST(int3, MSG_NOZZLE, &thermalManager.temp_hotend[0].target, 0, HEATER_0_MAXTEMP - 15, [](){ thermalManager.start_watching_hotend(0); });
#elif HOTENDS > 1 #elif HOTENDS > 1
#define EDIT_NOZZLE(N) EDIT_ITEM_FAST(int3, MSG_NOZZLE LCD_STR_N##N, &thermalManager.temp_hotend[N].target, 0, HEATER_##N##_MAXTEMP - 15, [](){ thermalManager.start_watching_hotend(N); }) #define EDIT_NOZZLE(N) EDIT_ITEM_FAST(int3, MSG_NOZZLE_##N, &thermalManager.temp_hotend[N].target, 0, HEATER_##N##_MAXTEMP - 15, [](){ thermalManager.start_watching_hotend(N); })
EDIT_NOZZLE(0); EDIT_NOZZLE(0);
EDIT_NOZZLE(1); EDIT_NOZZLE(1);
#if HOTENDS > 2 #if HOTENDS > 2
@ -155,24 +156,31 @@ void menu_tune() {
// //
#if FAN_COUNT > 0 #if FAN_COUNT > 0
#if HAS_FAN0 #if HAS_FAN0
#if FAN_COUNT == 1
#define MSG_FIRST_FAN_SPEED MSG_FAN_SPEED
#define MSG_FIRST_EXTRA_FAN_SPEED MSG_EXTRA_FAN_SPEED
#else
#define MSG_FIRST_FAN_SPEED MSG_FAN_SPEED_1
#define MSG_FIRST_EXTRA_FAN_SPEED MSG_EXTRA_FAN_SPEED_1
#endif
editable.uint8 = thermalManager.fan_speed[0]; editable.uint8 = thermalManager.fan_speed[0];
EDIT_ITEM_FAST(percent, MSG_FAN_SPEED FAN_SPEED_1_SUFFIX, &editable.uint8, 0, 255, [](){ thermalManager.set_fan_speed(0, editable.uint8); }); EDIT_ITEM_FAST(percent, MSG_FIRST_FAN_SPEED, &editable.uint8, 0, 255, [](){ thermalManager.set_fan_speed(0, editable.uint8); });
#if ENABLED(EXTRA_FAN_SPEED) #if ENABLED(EXTRA_FAN_SPEED)
EDIT_ITEM_FAST(percent, MSG_EXTRA_FAN_SPEED FAN_SPEED_1_SUFFIX, &thermalManager.new_fan_speed[0], 3, 255); EDIT_ITEM_FAST(percent, MSG_FIRST_EXTRA_FAN_SPEED, &thermalManager.new_fan_speed[0], 3, 255);
#endif #endif
#endif #endif
#if HAS_FAN1 || (ENABLED(SINGLENOZZLE) && EXTRUDERS > 1) #if HAS_FAN1 || (ENABLED(SINGLENOZZLE) && EXTRUDERS > 1)
editable.uint8 = thermalManager.fan_speed[1]; editable.uint8 = thermalManager.fan_speed[1];
EDIT_ITEM_FAST(percent, MSG_FAN_SPEED " 2", &editable.uint8, 0, 255, [](){ thermalManager.set_fan_speed(1, editable.uint8); }); EDIT_ITEM_FAST(percent, MSG_FAN_SPEED_2, &editable.uint8, 0, 255, [](){ thermalManager.set_fan_speed(1, editable.uint8); });
#if ENABLED(EXTRA_FAN_SPEED) #if ENABLED(EXTRA_FAN_SPEED)
EDIT_ITEM_FAST(percent, MSG_EXTRA_FAN_SPEED " 2", &thermalManager.new_fan_speed[1], 3, 255); EDIT_ITEM_FAST(percent, MSG_EXTRA_FAN_SPEED_2, &thermalManager.new_fan_speed[1], 3, 255);
#endif #endif
#endif #endif
#if HAS_FAN2 || (ENABLED(SINGLENOZZLE) && EXTRUDERS > 2) #if HAS_FAN2 || (ENABLED(SINGLENOZZLE) && EXTRUDERS > 2)
editable.uint8 = thermalManager.fan_speed[2]; editable.uint8 = thermalManager.fan_speed[2];
EDIT_ITEM_FAST(percent, MSG_FAN_SPEED " 3", &editable.uint8, 0, 255, [](){ thermalManager.set_fan_speed(2, editable.uint8); }); EDIT_ITEM_FAST(percent, MSG_FAN_SPEED_3, &editable.uint8, 0, 255, [](){ thermalManager.set_fan_speed(2, editable.uint8); });
#if ENABLED(EXTRA_FAN_SPEED) #if ENABLED(EXTRA_FAN_SPEED)
EDIT_ITEM_FAST(percent, MSG_EXTRA_FAN_SPEED " 3", &thermalManager.new_fan_speed[2], 3, 255); EDIT_ITEM_FAST(percent, MSG_EXTRA_FAN_SPEED_3, &thermalManager.new_fan_speed[2], 3, 255);
#endif #endif
#endif #endif
#endif // FAN_COUNT > 0 #endif // FAN_COUNT > 0
@ -185,7 +193,7 @@ void menu_tune() {
EDIT_ITEM(int3, MSG_FLOW, &planner.flow_percentage[0], 10, 999, [](){ planner.refresh_e_factor(0); }); EDIT_ITEM(int3, MSG_FLOW, &planner.flow_percentage[0], 10, 999, [](){ planner.refresh_e_factor(0); });
#elif EXTRUDERS #elif EXTRUDERS
EDIT_ITEM(int3, MSG_FLOW, &planner.flow_percentage[active_extruder], 10, 999, [](){ planner.refresh_e_factor(active_extruder); }); EDIT_ITEM(int3, MSG_FLOW, &planner.flow_percentage[active_extruder], 10, 999, [](){ planner.refresh_e_factor(active_extruder); });
#define EDIT_FLOW(N) EDIT_ITEM(int3, MSG_FLOW LCD_STR_N##N, &planner.flow_percentage[N], 10, 999, [](){ planner.refresh_e_factor(N); }) #define EDIT_FLOW(N) EDIT_ITEM(int3, MSG_FLOW_##N, &planner.flow_percentage[N], 10, 999, [](){ planner.refresh_e_factor(N); })
EDIT_FLOW(0); EDIT_FLOW(0);
EDIT_FLOW(1); EDIT_FLOW(1);
#if EXTRUDERS > 2 #if EXTRUDERS > 2

View file

@ -79,7 +79,7 @@ void _lcd_mesh_edit_NOP() {
float lcd_mesh_edit() { float lcd_mesh_edit() {
ui.goto_screen(_lcd_mesh_edit_NOP); ui.goto_screen(_lcd_mesh_edit_NOP);
ui.refresh(LCDVIEW_CALL_REDRAW_NEXT); ui.refresh(LCDVIEW_CALL_REDRAW_NEXT);
_lcd_mesh_fine_tune(PSTR(MSG_MESH_EDITOR)); _lcd_mesh_fine_tune(GET_TEXT(MSG_MESH_EDITOR));
return mesh_edit_value; return mesh_edit_value;
} }
@ -89,7 +89,7 @@ void lcd_mesh_edit_setup(const float &initial) {
} }
void _lcd_z_offset_edit() { void _lcd_z_offset_edit() {
_lcd_mesh_fine_tune(PSTR(MSG_UBL_Z_OFFSET)); _lcd_mesh_fine_tune(GET_TEXT(MSG_UBL_Z_OFFSET));
} }
float lcd_z_offset_edit() { float lcd_z_offset_edit() {
@ -358,7 +358,7 @@ void _lcd_ubl_load_mesh_cmd() {
char ubl_lcd_gcode[25]; char ubl_lcd_gcode[25];
sprintf_P(ubl_lcd_gcode, PSTR("G29 L%i"), ubl_storage_slot); sprintf_P(ubl_lcd_gcode, PSTR("G29 L%i"), ubl_storage_slot);
lcd_enqueue_one_now(ubl_lcd_gcode); lcd_enqueue_one_now(ubl_lcd_gcode);
sprintf_P(ubl_lcd_gcode, PSTR("M117 " MSG_MESH_LOADED), ubl_storage_slot); sprintf_P(ubl_lcd_gcode, GET_TEXT(MSG_MESH_LOADED), ubl_storage_slot);
lcd_enqueue_one_now(ubl_lcd_gcode); lcd_enqueue_one_now(ubl_lcd_gcode);
} }
@ -369,7 +369,7 @@ void _lcd_ubl_save_mesh_cmd() {
char ubl_lcd_gcode[25]; char ubl_lcd_gcode[25];
sprintf_P(ubl_lcd_gcode, PSTR("G29 S%i"), ubl_storage_slot); sprintf_P(ubl_lcd_gcode, PSTR("G29 S%i"), ubl_storage_slot);
lcd_enqueue_one_now(ubl_lcd_gcode); lcd_enqueue_one_now(ubl_lcd_gcode);
sprintf_P(ubl_lcd_gcode, PSTR("M117 " MSG_MESH_SAVED), ubl_storage_slot); sprintf_P(ubl_lcd_gcode, GET_TEXT(MSG_MESH_SAVED), ubl_storage_slot);
lcd_enqueue_one_now(ubl_lcd_gcode); lcd_enqueue_one_now(ubl_lcd_gcode);
} }
@ -578,13 +578,13 @@ void _menu_ubl_tools() {
void _lcd_ubl_step_by_step() { void _lcd_ubl_step_by_step() {
START_MENU(); START_MENU();
BACK_ITEM(MSG_UBL_LEVEL_BED); BACK_ITEM(MSG_UBL_LEVEL_BED);
GCODES_ITEM("1 " MSG_UBL_BUILD_COLD_MESH, PSTR("G28\nG29 P1")); GCODES_ITEM(MSG_UBL_1_BUILD_COLD_MESH, PSTR("G28\nG29 P1"));
GCODES_ITEM("2 " MSG_UBL_SMART_FILLIN, PSTR("G29 P3 T0")); GCODES_ITEM(MSG_UBL_2_SMART_FILLIN, PSTR("G29 P3 T0"));
SUBMENU("3 " MSG_UBL_VALIDATE_MESH_MENU, _lcd_ubl_validate_mesh); SUBMENU(MSG_UBL_3_VALIDATE_MESH_MENU, _lcd_ubl_validate_mesh);
GCODES_ITEM("4 " MSG_UBL_FINE_TUNE_ALL, PSTR("G29 P4 R999 T")); GCODES_ITEM(MSG_UBL_4_FINE_TUNE_ALL, PSTR("G29 P4 R999 T"));
SUBMENU("5 " MSG_UBL_VALIDATE_MESH_MENU, _lcd_ubl_validate_mesh); SUBMENU(MSG_UBL_5_VALIDATE_MESH_MENU, _lcd_ubl_validate_mesh);
GCODES_ITEM("6 " MSG_UBL_FINE_TUNE_ALL, PSTR("G29 P4 R999 T")); GCODES_ITEM(MSG_UBL_6_FINE_TUNE_ALL, PSTR("G29 P4 R999 T"));
ACTION_ITEM("7 " MSG_UBL_SAVE_MESH, _lcd_ubl_save_mesh_cmd); ACTION_ITEM(MSG_UBL_7_SAVE_MESH, _lcd_ubl_save_mesh_cmd);
END_MENU(); END_MENU();
} }

View file

@ -44,19 +44,15 @@
#if HAS_SPI_LCD #if HAS_SPI_LCD
#if ENABLED(STATUS_MESSAGE_SCROLLING) #if ENABLED(STATUS_MESSAGE_SCROLLING)
uint8_t MarlinUI::status_scroll_offset; // = 0 uint8_t MarlinUI::status_scroll_offset; // = 0
#if LONG_FILENAME_LENGTH > CHARSIZE * 2 * (LCD_WIDTH) constexpr uint8_t MAX_MESSAGE_LENGTH = max(LONG_FILENAME_LENGTH, MAX_LANG_CHARSIZE * 2 * (LCD_WIDTH));
#define MAX_MESSAGE_LENGTH LONG_FILENAME_LENGTH
#else
#define MAX_MESSAGE_LENGTH CHARSIZE * 2 * (LCD_WIDTH)
#endif
#else #else
#define MAX_MESSAGE_LENGTH CHARSIZE * (LCD_WIDTH) constexpr uint8_t MAX_MESSAGE_LENGTH = MAX_LANG_CHARSIZE * (LCD_WIDTH);
#endif #endif
#elif ENABLED(EXTENSIBLE_UI) #elif ENABLED(EXTENSIBLE_UI)
#define MAX_MESSAGE_LENGTH 63 constexpr uint8_t MAX_MESSAGE_LENGTH = 63;
#endif #endif
#ifdef MAX_MESSAGE_LENGTH #if HAS_SPI_LCD || ENABLED(EXTENSIBLE_UI)
uint8_t MarlinUI::alert_level; // = 0 uint8_t MarlinUI::alert_level; // = 0
char MarlinUI::status_message[MAX_MESSAGE_LENGTH + 1]; char MarlinUI::status_message[MAX_MESSAGE_LENGTH + 1];
#endif #endif
@ -590,9 +586,12 @@ void MarlinUI::status_screen() {
draw_status_screen(); draw_status_screen();
} }
void MarlinUI::kill_screen(PGM_P lcd_msg) { void MarlinUI::kill_screen(PGM_P lcd_error, PGM_P lcd_component) {
init(); init();
set_alert_status_P(lcd_msg); status_printf_P(1, PSTR(S_FMT ": " S_FMT), lcd_error, lcd_component);
#if HAS_LCD_MENU
return_to_status();
#endif
// RED ALERT. RED ALERT. // RED ALERT. RED ALERT.
#ifdef LED_BACKLIGHT_TIMEOUT #ifdef LED_BACKLIGHT_TIMEOUT
@ -843,13 +842,13 @@ void MarlinUI::update() {
if (old_sd_status == 2) if (old_sd_status == 2)
card.beginautostart(); // Initial boot card.beginautostart(); // Initial boot
else else
set_status_P(PSTR(MSG_MEDIA_INSERTED)); set_status_P(GET_TEXT(MSG_MEDIA_INSERTED));
} }
#if PIN_EXISTS(SD_DETECT) #if PIN_EXISTS(SD_DETECT)
else { else {
card.release(); card.release();
if (old_sd_status != 2) { if (old_sd_status != 2) {
set_status_P(PSTR(MSG_MEDIA_REMOVED)); set_status_P(GET_TEXT(MSG_MEDIA_REMOVED));
#if HAS_LCD_MENU #if HAS_LCD_MENU
return_to_status(); return_to_status();
#endif #endif
@ -1428,14 +1427,14 @@ void MarlinUI::update() {
#include "../Marlin.h" #include "../Marlin.h"
#include "../module/printcounter.h" #include "../module/printcounter.h"
static const char print_paused[] PROGMEM = MSG_PRINT_PAUSED; PGM_P print_paused = GET_TEXT(MSG_PRINT_PAUSED);
/** /**
* Reset the status message * Reset the status message
*/ */
void MarlinUI::reset_status() { void MarlinUI::reset_status() {
static const char printing[] PROGMEM = MSG_PRINTING; PGM_P printing = GET_TEXT(MSG_PRINTING);
static const char welcome[] PROGMEM = WELCOME_MSG; PGM_P welcome = GET_TEXT(WELCOME_MSG);
#if SERVICE_INTERVAL_1 > 0 #if SERVICE_INTERVAL_1 > 0
static const char service1[] PROGMEM = { "> " SERVICE_NAME_1 "!" }; static const char service1[] PROGMEM = { "> " SERVICE_NAME_1 "!" };
#endif #endif
@ -1487,7 +1486,7 @@ void MarlinUI::update() {
host_prompt_open(PROMPT_INFO, PSTR("UI Aborted"), PSTR("Dismiss")); host_prompt_open(PROMPT_INFO, PSTR("UI Aborted"), PSTR("Dismiss"));
#endif #endif
print_job_timer.stop(); print_job_timer.stop();
set_status_P(PSTR(MSG_PRINT_ABORTED)); set_status_P(GET_TEXT(MSG_PRINT_ABORTED));
#if HAS_LCD_MENU #if HAS_LCD_MENU
return_to_status(); return_to_status();
#endif #endif
@ -1499,7 +1498,7 @@ void MarlinUI::update() {
void MarlinUI::pause_print() { void MarlinUI::pause_print() {
#if HAS_LCD_MENU #if HAS_LCD_MENU
synchronize(PSTR(MSG_PAUSE_PRINT)); synchronize(GET_TEXT(MSG_PAUSE_PRINT));
#endif #endif
#if ENABLED(POWER_LOSS_RECOVERY) #if ENABLED(POWER_LOSS_RECOVERY)
@ -1510,7 +1509,7 @@ void MarlinUI::update() {
host_prompt_open(PROMPT_PAUSE_RESUME, PSTR("UI Pause"), PSTR("Resume")); host_prompt_open(PROMPT_PAUSE_RESUME, PSTR("UI Pause"), PSTR("Resume"));
#endif #endif
set_status_P(print_paused); // MSG_PRINT_PAUSED set_status_P(print_paused);
#if ENABLED(PARK_HEAD_ON_PAUSE) #if ENABLED(PARK_HEAD_ON_PAUSE)
#if HAS_SPI_LCD #if HAS_SPI_LCD

View file

@ -380,7 +380,7 @@ public:
#endif #endif
static bool get_blink(); static bool get_blink();
static void kill_screen(PGM_P const lcd_msg); static void kill_screen(PGM_P const lcd_error, PGM_P const lcd_component);
static void draw_kill_screen(); static void draw_kill_screen();
static void set_status(const char* const message, const bool persist=false); static void set_status(const char* const message, const bool persist=false);
static void set_status_P(PGM_P const message, const int8_t level=0); static void set_status_P(PGM_P const message, const int8_t level=0);
@ -598,5 +598,8 @@ private:
extern MarlinUI ui; extern MarlinUI ui;
#define LCD_MESSAGEPGM(x) ui.set_status_P(PSTR(x)) #define LCD_MESSAGEPGM_P(x) ui.set_status_P(x)
#define LCD_ALERTMESSAGEPGM(x) ui.set_alert_status_P(PSTR(x)) #define LCD_ALERTMESSAGEPGM_P(x) ui.set_alert_status_P(x)
#define LCD_MESSAGEPGM(x) LCD_MESSAGEPGM_P(GET_TEXT(x))
#define LCD_ALERTMESSAGEPGM(x) LCD_ALERTMESSAGEPGM_P(GET_TEXT(x))

View file

@ -302,7 +302,7 @@ void Endstops::not_homing() {
// If the last move failed to trigger an endstop, call kill // If the last move failed to trigger an endstop, call kill
void Endstops::validate_homing_move() { void Endstops::validate_homing_move() {
if (trigger_state()) hit_on_purpose(); if (trigger_state()) hit_on_purpose();
else kill(PSTR(MSG_ERR_HOMING_FAILED)); else kill(GET_TEXT(MSG_LCD_HOMING_FAILED));
} }
#endif #endif
@ -373,7 +373,7 @@ void Endstops::event_handler() {
SERIAL_EOL(); SERIAL_EOL();
#if HAS_SPI_LCD #if HAS_SPI_LCD
ui.status_printf_P(0, PSTR(S_FMT " %c %c %c %c"), PSTR(MSG_LCD_ENDSTOPS), chrX, chrY, chrZ, chrP); ui.status_printf_P(0, PSTR(S_FMT " %c %c %c %c"), GET_TEXT(MSG_LCD_ENDSTOPS), chrX, chrY, chrZ, chrP);
#endif #endif
#if BOTH(SD_ABORT_ON_ENDSTOP_HIT, SDSUPPORT) #if BOTH(SD_ABORT_ON_ENDSTOP_HIT, SDSUPPORT)

View file

@ -1053,8 +1053,8 @@ uint8_t axes_need_homing(uint8_t axis_bits/*=0x07*/) {
bool axis_unhomed_error(uint8_t axis_bits/*=0x07*/) { bool axis_unhomed_error(uint8_t axis_bits/*=0x07*/) {
if ((axis_bits = axes_need_homing(axis_bits))) { if ((axis_bits = axes_need_homing(axis_bits))) {
static const char home_first[] PROGMEM = MSG_HOME_FIRST; PGM_P home_first = GET_TEXT(MSG_HOME_FIRST);
char msg[sizeof(home_first)]; char msg[strlen_P(home_first)+1];
sprintf_P(msg, home_first, sprintf_P(msg, home_first,
TEST(axis_bits, X_AXIS) ? "X" : "", TEST(axis_bits, X_AXIS) ? "X" : "",
TEST(axis_bits, Y_AXIS) ? "Y" : "", TEST(axis_bits, Y_AXIS) ? "Y" : "",

View file

@ -281,7 +281,7 @@ FORCE_INLINE void probe_specific_action(const bool deploy) {
BUZZ(100, 659); BUZZ(100, 659);
BUZZ(100, 698); BUZZ(100, 698);
PGM_P const ds_str = deploy ? PSTR(MSG_MANUAL_DEPLOY) : PSTR(MSG_MANUAL_STOW); PGM_P const ds_str = deploy ? GET_TEXT(MSG_MANUAL_DEPLOY) : GET_TEXT(MSG_MANUAL_STOW);
ui.return_to_status(); // To display the new status message ui.return_to_status(); // To display the new status message
ui.set_status_P(ds_str, 99); ui.set_status_P(ds_str, 99);
serialprintPGM(ds_str); serialprintPGM(ds_str);
@ -293,7 +293,7 @@ FORCE_INLINE void probe_specific_action(const bool deploy) {
host_prompt_do(PROMPT_USER_CONTINUE, PSTR("Stow Probe"), PSTR("Continue")); host_prompt_do(PROMPT_USER_CONTINUE, PSTR("Stow Probe"), PSTR("Continue"));
#endif #endif
#if ENABLED(EXTENSIBLE_UI) #if ENABLED(EXTENSIBLE_UI)
ExtUI::onUserConfirmRequired(PSTR("Stow Probe")); ExtUI::onUserConfirmRequired_P(PSTR("Stow Probe"));
#endif #endif
while (wait_for_user) idle(); while (wait_for_user) idle();
ui.reset_status(); ui.reset_status();
@ -406,7 +406,7 @@ bool set_probe_deployed(const bool deploy) {
if (PROBE_STOWED() == deploy) { // Unchanged after deploy/stow action? if (PROBE_STOWED() == deploy) { // Unchanged after deploy/stow action?
if (IsRunning()) { if (IsRunning()) {
SERIAL_ERROR_MSG("Z-Probe failed"); SERIAL_ERROR_MSG("Z-Probe failed");
LCD_ALERTMESSAGEPGM("Err: ZPROBE"); LCD_ALERTMESSAGEPGM_P(PSTR("Err: ZPROBE"));
} }
stop(); stop();
return true; return true;
@ -736,7 +736,7 @@ float probe_at_point(const float &rx, const float &ry, const ProbePtRaise raise_
if (isnan(measured_z)) { if (isnan(measured_z)) {
STOW_PROBE(); STOW_PROBE();
LCD_MESSAGEPGM(MSG_ERR_PROBING_FAILED); LCD_MESSAGEPGM(MSG_LCD_PROBING_FAILED);
SERIAL_ERROR_MSG(MSG_ERR_PROBING_FAILED); SERIAL_ERROR_MSG(MSG_ERR_PROBING_FAILED);
} }

View file

@ -94,17 +94,17 @@ Temperature thermalManager;
*/ */
#if HAS_HEATED_BED #if HAS_HEATED_BED
#define _BED_PSTR(M,E) (E) == H_BED ? PSTR(M) : #define _BED_PSTR(h) (h) == H_BED ? GET_TEXT(MSG_BED) :
#else #else
#define _BED_PSTR(M,E) #define _BED_PSTR(h)
#endif #endif
#if HAS_HEATED_CHAMBER #if HAS_HEATED_CHAMBER
#define _CHAMBER_PSTR(M,E) (E) == H_CHAMBER ? PSTR(M) : #define _CHAMBER_PSTR(h) (h) == H_CHAMBER ? GET_TEXT(MSG_CHAMBER) :
#else #else
#define _CHAMBER_PSTR(M,E) #define _CHAMBER_PSTR(h)
#endif #endif
#define _E_PSTR(M,E,N) ((HOTENDS) > (N) && (E) == (N)) ? PSTR(LCD_STR_E##N " " M) : #define _E_PSTR(h,N) ((HOTENDS) > N && (h) == N) ? PSTR(LCD_STR_E##N) :
#define TEMP_ERR_PSTR(M,E) _BED_PSTR(M##_BED,E) _CHAMBER_PSTR(M##_CHAMBER,E) _E_PSTR(M,E,1) _E_PSTR(M,E,2) _E_PSTR(M,E,3) _E_PSTR(M,E,4) _E_PSTR(M,E,5) PSTR(LCD_STR_E0 " " M) #define HEATER_PSTR(h) _BED_PSTR(h) _CHAMBER_PSTR(h) _E_PSTR(h,1) _E_PSTR(h,2) _E_PSTR(h,3) _E_PSTR(h,4) _E_PSTR(h,5) PSTR(LCD_STR_E0)
// public: // public:
@ -518,10 +518,10 @@ volatile bool Temperature::temp_meas_ready = false;
if (current_temp > watch_temp_target) heated = true; // - Flag if target temperature reached if (current_temp > watch_temp_target) heated = true; // - Flag if target temperature reached
} }
else if (ELAPSED(ms, temp_change_ms)) // Watch timer expired else if (ELAPSED(ms, temp_change_ms)) // Watch timer expired
_temp_error(heater, PSTR(MSG_T_HEATING_FAILED), TEMP_ERR_PSTR(MSG_HEATING_FAILED_LCD, heater)); _temp_error(heater, PSTR(MSG_T_HEATING_FAILED), GET_TEXT(MSG_HEATING_FAILED_LCD));
} }
else if (current_temp < target - (MAX_OVERSHOOT_PID_AUTOTUNE)) // Heated, then temperature fell too far? else if (current_temp < target - (MAX_OVERSHOOT_PID_AUTOTUNE)) // Heated, then temperature fell too far?
_temp_error(heater, PSTR(MSG_T_THERMAL_RUNAWAY), TEMP_ERR_PSTR(MSG_THERMAL_RUNAWAY, heater)); _temp_error(heater, PSTR(MSG_T_THERMAL_RUNAWAY), GET_TEXT(MSG_THERMAL_RUNAWAY));
} }
#endif #endif
} // every 2 seconds } // every 2 seconds
@ -621,45 +621,34 @@ int16_t Temperature::getHeaterPower(const heater_ind_t heater_id) {
} }
} }
#define _EFANOVERLAP(A,B) _FANOVERLAP(E##A,B)
#if HAS_AUTO_FAN #if HAS_AUTO_FAN
#define AUTO_1_IS_0 (E1_AUTO_FAN_PIN == E0_AUTO_FAN_PIN)
#define AUTO_2_IS_0 (E2_AUTO_FAN_PIN == E0_AUTO_FAN_PIN)
#define AUTO_2_IS_1 (E2_AUTO_FAN_PIN == E1_AUTO_FAN_PIN)
#define AUTO_3_IS_0 (E3_AUTO_FAN_PIN == E0_AUTO_FAN_PIN)
#define AUTO_3_IS_1 (E3_AUTO_FAN_PIN == E1_AUTO_FAN_PIN)
#define AUTO_3_IS_2 (E3_AUTO_FAN_PIN == E2_AUTO_FAN_PIN)
#define AUTO_4_IS_0 (E4_AUTO_FAN_PIN == E0_AUTO_FAN_PIN)
#define AUTO_4_IS_1 (E4_AUTO_FAN_PIN == E1_AUTO_FAN_PIN)
#define AUTO_4_IS_2 (E4_AUTO_FAN_PIN == E2_AUTO_FAN_PIN)
#define AUTO_4_IS_3 (E4_AUTO_FAN_PIN == E3_AUTO_FAN_PIN)
#define AUTO_5_IS_0 (E5_AUTO_FAN_PIN == E0_AUTO_FAN_PIN)
#define AUTO_5_IS_1 (E5_AUTO_FAN_PIN == E1_AUTO_FAN_PIN)
#define AUTO_5_IS_2 (E5_AUTO_FAN_PIN == E2_AUTO_FAN_PIN)
#define AUTO_5_IS_3 (E5_AUTO_FAN_PIN == E3_AUTO_FAN_PIN)
#define AUTO_5_IS_4 (E5_AUTO_FAN_PIN == E4_AUTO_FAN_PIN)
#define CHAMBER_FAN_INDEX HOTENDS #define CHAMBER_FAN_INDEX HOTENDS
void Temperature::checkExtruderAutoFans() { void Temperature::checkExtruderAutoFans() {
#define _EFAN(A,B) _EFANOVERLAP(A,B) ? B :
static const uint8_t fanBit[] PROGMEM = { static const uint8_t fanBit[] PROGMEM = {
0 0
#if HOTENDS > 1 #if HOTENDS > 1
, AUTO_1_IS_0 ? 0 : 1 , _EFAN(1,0) 1
#endif #endif
#if HOTENDS > 2 #if HOTENDS > 2
, AUTO_2_IS_0 ? 0 : AUTO_2_IS_1 ? 1 : 2 , _EFAN(2,0) _EFAN(2,1) 2
#endif #endif
#if HOTENDS > 3 #if HOTENDS > 3
, AUTO_3_IS_0 ? 0 : AUTO_3_IS_1 ? 1 : AUTO_3_IS_2 ? 2 : 3 , _EFAN(3,0) _EFAN(3,1) _EFAN(3,2) 3
#endif #endif
#if HOTENDS > 4 #if HOTENDS > 4
, AUTO_4_IS_0 ? 0 : AUTO_4_IS_1 ? 1 : AUTO_4_IS_2 ? 2 : AUTO_4_IS_3 ? 3 : 4 , _EFAN(4,0) _EFAN(4,1) _EFAN(4,2) _EFAN(4,3) 4
#endif #endif
#if HOTENDS > 5 #if HOTENDS > 5
, AUTO_5_IS_0 ? 0 : AUTO_5_IS_1 ? 1 : AUTO_5_IS_2 ? 2 : AUTO_5_IS_3 ? 3 : AUTO_5_IS_4 ? 4 : 5 , _EFAN(5,0) _EFAN(5,1) _EFAN(5,2) _EFAN(5,3) _EFAN(5,4) 5
#endif #endif
#if HAS_AUTO_CHAMBER_FAN #if HAS_AUTO_CHAMBER_FAN
, AUTO_CHAMBER_IS_0 ? 0 : AUTO_CHAMBER_IS_1 ? 1 : AUTO_CHAMBER_IS_2 ? 2 : AUTO_CHAMBER_IS_3 ? 3 : AUTO_CHAMBER_IS_4 ? 4 : AUTO_CHAMBER_IS_5 ? 5 : 6 #define _CFAN(B) _FANOVERLAP(CHAMBER,B) ? B :
, _CFAN(0) _CFAN(1) _CFAN(2) _CFAN(3) _CFAN(4) _CFAN(5) 6
#endif #endif
}; };
uint8_t fanState = 0; uint8_t fanState = 0;
@ -731,7 +720,7 @@ int16_t Temperature::getHeaterPower(const heater_ind_t heater_id) {
// Temperature Error Handlers // Temperature Error Handlers
// //
inline void loud_kill(PGM_P const lcd_msg) { inline void loud_kill(PGM_P const lcd_msg, const heater_ind_t heater) {
Running = false; Running = false;
#if USE_BEEPER #if USE_BEEPER
for (uint8_t i = 20; i--;) { for (uint8_t i = 20; i--;) {
@ -740,7 +729,7 @@ inline void loud_kill(PGM_P const lcd_msg) {
} }
WRITE(BEEPER_PIN, HIGH); WRITE(BEEPER_PIN, HIGH);
#endif #endif
kill(lcd_msg); kill(lcd_msg, HEATER_PSTR(heater));
} }
void Temperature::_temp_error(const heater_ind_t heater, PGM_P const serial_msg, PGM_P const lcd_msg) { void Temperature::_temp_error(const heater_ind_t heater, PGM_P const serial_msg, PGM_P const lcd_msg) {
@ -777,23 +766,23 @@ void Temperature::_temp_error(const heater_ind_t heater, PGM_P const serial_msg,
if (ELAPSED(ms, expire_ms)) ++killed; if (ELAPSED(ms, expire_ms)) ++killed;
break; break;
case 2: case 2:
loud_kill(lcd_msg); loud_kill(lcd_msg1, heater);
++killed; ++killed;
break; break;
} }
#elif defined(BOGUS_TEMPERATURE_GRACE_PERIOD) #elif defined(BOGUS_TEMPERATURE_GRACE_PERIOD)
UNUSED(killed); UNUSED(killed);
#else #else
if (!killed) { killed = 1; loud_kill(lcd_msg); } if (!killed) { killed = 1; loud_kill(lcd_msg, heater); }
#endif #endif
} }
void Temperature::max_temp_error(const heater_ind_t heater) { void Temperature::max_temp_error(const heater_ind_t heater) {
_temp_error(heater, PSTR(MSG_T_MAXTEMP), TEMP_ERR_PSTR(MSG_ERR_MAXTEMP, heater)); _temp_error(heater, PSTR(MSG_T_MAXTEMP), GET_TEXT(MSG_ERR_MAXTEMP));
} }
void Temperature::min_temp_error(const heater_ind_t heater) { void Temperature::min_temp_error(const heater_ind_t heater) {
_temp_error(heater, PSTR(MSG_T_MINTEMP), TEMP_ERR_PSTR(MSG_ERR_MINTEMP, heater)); _temp_error(heater, PSTR(MSG_T_MINTEMP), GET_TEXT(MSG_ERR_MINTEMP));
} }
#if HOTENDS #if HOTENDS
@ -1019,7 +1008,7 @@ void Temperature::manage_heater() {
HOTEND_LOOP() { HOTEND_LOOP() {
#if ENABLED(THERMAL_PROTECTION_HOTENDS) #if ENABLED(THERMAL_PROTECTION_HOTENDS)
if (degHotend(e) > temp_range[e].maxtemp) if (degHotend(e) > temp_range[e].maxtemp)
_temp_error((heater_ind_t)e, PSTR(MSG_T_THERMAL_RUNAWAY), TEMP_ERR_PSTR(MSG_THERMAL_RUNAWAY, e)); _temp_error((heater_ind_t)e, PSTR(MSG_T_THERMAL_RUNAWAY), GET_TEXT(MSG_THERMAL_RUNAWAY));
#endif #endif
#if HEATER_IDLE_HANDLER #if HEATER_IDLE_HANDLER
@ -1037,7 +1026,7 @@ void Temperature::manage_heater() {
// Make sure temperature is increasing // Make sure temperature is increasing
if (watch_hotend[e].next_ms && ELAPSED(ms, watch_hotend[e].next_ms)) { // Time to check this extruder? if (watch_hotend[e].next_ms && ELAPSED(ms, watch_hotend[e].next_ms)) { // Time to check this extruder?
if (degHotend(e) < watch_hotend[e].target) // Failed to increase enough? if (degHotend(e) < watch_hotend[e].target) // Failed to increase enough?
_temp_error((heater_ind_t)e, PSTR(MSG_T_HEATING_FAILED), TEMP_ERR_PSTR(MSG_HEATING_FAILED_LCD, e)); _temp_error((heater_ind_t)e, PSTR(MSG_T_HEATING_FAILED), GET_TEXT(MSG_HEATING_FAILED_LCD));
else // Start again if the target is still far off else // Start again if the target is still far off
start_watching_hotend(e); start_watching_hotend(e);
} }
@ -1046,7 +1035,7 @@ void Temperature::manage_heater() {
#if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT) #if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT)
// Make sure measured temperatures are close together // Make sure measured temperatures are close together
if (ABS(temp_hotend[0].celsius - redundant_temperature) > MAX_REDUNDANT_TEMP_SENSOR_DIFF) if (ABS(temp_hotend[0].celsius - redundant_temperature) > MAX_REDUNDANT_TEMP_SENSOR_DIFF)
_temp_error(H_E0, PSTR(MSG_REDUNDANCY), PSTR(MSG_ERR_REDUNDANT_TEMP)); _temp_error(H_E0, PSTR(MSG_REDUNDANCY), GET_TEXT(MSG_ERR_REDUNDANT_TEMP));
#endif #endif
} // HOTEND_LOOP } // HOTEND_LOOP
@ -1072,14 +1061,14 @@ void Temperature::manage_heater() {
#if ENABLED(THERMAL_PROTECTION_BED) #if ENABLED(THERMAL_PROTECTION_BED)
if (degBed() > BED_MAXTEMP) if (degBed() > BED_MAXTEMP)
_temp_error(H_BED, PSTR(MSG_T_THERMAL_RUNAWAY), TEMP_ERR_PSTR(MSG_THERMAL_RUNAWAY, H_BED)); _temp_error(H_BED, PSTR(MSG_T_THERMAL_RUNAWAY), GET_TEXT(MSG_THERMAL_RUNAWAY));
#endif #endif
#if WATCH_BED #if WATCH_BED
// Make sure temperature is increasing // Make sure temperature is increasing
if (watch_bed.elapsed(ms)) { // Time to check the bed? if (watch_bed.elapsed(ms)) { // Time to check the bed?
if (degBed() < watch_bed.target) // Failed to increase enough? if (degBed() < watch_bed.target) // Failed to increase enough?
_temp_error(H_BED, PSTR(MSG_T_HEATING_FAILED), TEMP_ERR_PSTR(MSG_HEATING_FAILED_LCD, H_BED)); _temp_error(H_BED, PSTR(MSG_T_HEATING_FAILED), GET_TEXT(MSG_HEATING_FAILED_LCD));
else // Start again if the target is still far off else // Start again if the target is still far off
start_watching_bed(); start_watching_bed();
} }
@ -1150,14 +1139,14 @@ void Temperature::manage_heater() {
#if ENABLED(THERMAL_PROTECTION_CHAMBER) #if ENABLED(THERMAL_PROTECTION_CHAMBER)
if (degChamber() > CHAMBER_MAXTEMP) if (degChamber() > CHAMBER_MAXTEMP)
_temp_error(H_CHAMBER, PSTR(MSG_T_THERMAL_RUNAWAY), TEMP_ERR_PSTR(MSG_THERMAL_RUNAWAY, H_CHAMBER)); _temp_error(H_CHAMBER, PSTR(MSG_T_THERMAL_RUNAWAY), GET_TEXT(MSG_THERMAL_RUNAWAY));
#endif #endif
#if WATCH_CHAMBER #if WATCH_CHAMBER
// Make sure temperature is increasing // Make sure temperature is increasing
if (watch_chamber.elapsed(ms)) { // Time to check the chamber? if (watch_chamber.elapsed(ms)) { // Time to check the chamber?
if (degChamber() < watch_chamber.target) // Failed to increase enough? if (degChamber() < watch_chamber.target) // Failed to increase enough?
_temp_error(H_CHAMBER, PSTR(MSG_T_HEATING_FAILED), TEMP_ERR_PSTR(MSG_HEATING_FAILED_LCD, H_CHAMBER)); _temp_error(H_CHAMBER, PSTR(MSG_T_HEATING_FAILED), GET_TEXT(MSG_HEATING_FAILED_LCD));
else else
start_watching_chamber(); // Start again if the target is still far off start_watching_chamber(); // Start again if the target is still far off
} }
@ -1685,19 +1674,19 @@ void Temperature::init() {
#if HAS_AUTO_FAN_0 #if HAS_AUTO_FAN_0
INIT_E_AUTO_FAN_PIN(E0_AUTO_FAN_PIN); INIT_E_AUTO_FAN_PIN(E0_AUTO_FAN_PIN);
#endif #endif
#if HAS_AUTO_FAN_1 && !AUTO_1_IS_0 #if HAS_AUTO_FAN_1 && !_EFANOVERLAP(1,0)
INIT_E_AUTO_FAN_PIN(E1_AUTO_FAN_PIN); INIT_E_AUTO_FAN_PIN(E1_AUTO_FAN_PIN);
#endif #endif
#if HAS_AUTO_FAN_2 && !(AUTO_2_IS_0 || AUTO_2_IS_1) #if HAS_AUTO_FAN_2 && !(_EFANOVERLAP(2,0) || _EFANOVERLAP(2,1))
INIT_E_AUTO_FAN_PIN(E2_AUTO_FAN_PIN); INIT_E_AUTO_FAN_PIN(E2_AUTO_FAN_PIN);
#endif #endif
#if HAS_AUTO_FAN_3 && !(AUTO_3_IS_0 || AUTO_3_IS_1 || AUTO_3_IS_2) #if HAS_AUTO_FAN_3 && !(_EFANOVERLAP(3,0) || _EFANOVERLAP(3,1) || _EFANOVERLAP(3,2))
INIT_E_AUTO_FAN_PIN(E3_AUTO_FAN_PIN); INIT_E_AUTO_FAN_PIN(E3_AUTO_FAN_PIN);
#endif #endif
#if HAS_AUTO_FAN_4 && !(AUTO_4_IS_0 || AUTO_4_IS_1 || AUTO_4_IS_2 || AUTO_4_IS_3) #if HAS_AUTO_FAN_4 && !(_EFANOVERLAP(4,0) || _EFANOVERLAP(4,1) || _EFANOVERLAP(4,2) || _EFANOVERLAP(4,3))
INIT_E_AUTO_FAN_PIN(E4_AUTO_FAN_PIN); INIT_E_AUTO_FAN_PIN(E4_AUTO_FAN_PIN);
#endif #endif
#if HAS_AUTO_FAN_5 && !(AUTO_5_IS_0 || AUTO_5_IS_1 || AUTO_5_IS_2 || AUTO_5_IS_3 || AUTO_5_IS_4) #if HAS_AUTO_FAN_5 && !(_EFANOVERLAP(5,0) || _EFANOVERLAP(5,1) || _EFANOVERLAP(5,2) || _EFANOVERLAP(5,3) || _EFANOVERLAP(5,4))
INIT_E_AUTO_FAN_PIN(E5_AUTO_FAN_PIN); INIT_E_AUTO_FAN_PIN(E5_AUTO_FAN_PIN);
#endif #endif
#if HAS_AUTO_CHAMBER_FAN && !AUTO_CHAMBER_IS_E #if HAS_AUTO_CHAMBER_FAN && !AUTO_CHAMBER_IS_E
@ -1928,7 +1917,7 @@ void Temperature::init() {
sm.state = TRRunaway; sm.state = TRRunaway;
case TRRunaway: case TRRunaway:
_temp_error(heater_id, PSTR(MSG_T_THERMAL_RUNAWAY), TEMP_ERR_PSTR(MSG_THERMAL_RUNAWAY, heater_id)); _temp_error(heater_id, PSTR(MSG_T_THERMAL_RUNAWAY), GET_TEXT(MSG_THERMAL_RUNAWAY));
} }
} }
@ -2923,7 +2912,7 @@ void Temperature::isr() {
#else #else
PSTR("E " S_FMT) PSTR("E " S_FMT)
#endif #endif
, heating ? PSTR(MSG_HEATING) : PSTR(MSG_COOLING) , heating ? GET_TEXT(MSG_HEATING) : GET_TEXT(MSG_COOLING)
); );
} }
#endif #endif

View file

@ -9,6 +9,7 @@ set -e
backup_ramps # pins_set is used below... backup_ramps # pins_set is used below...
restore_configs restore_configs
opt_set LCD_LANGUAGE bg
opt_set MOTHERBOARD BOARD_RAMPS4DUE_EFB opt_set MOTHERBOARD BOARD_RAMPS4DUE_EFB
opt_set TEMP_SENSOR_0 -2 opt_set TEMP_SENSOR_0 -2
opt_set TEMP_SENSOR_BED 2 opt_set TEMP_SENSOR_BED 2
@ -38,7 +39,7 @@ exec_test $1 $2 "RAMPS4DUE_EFB with ABL (Bilinear), EXTENSIBLE_UI, S-Curve, many
restore_configs restore_configs
opt_set MOTHERBOARD BOARD_RADDS opt_set MOTHERBOARD BOARD_RADDS
opt_enable USE_XMAX_PLUG USE_YMAX_PLUG BLTOUCH AUTO_BED_LEVELING_BILINEAR \ opt_enable USE_XMAX_PLUG USE_YMAX_PLUG BLTOUCH AUTO_BED_LEVELING_BILINEAR \
Z_TRIPLE_STEPPER_DRIVERS Z_TRIPLE_ENDSTOPS Z_STEPPER_AUTO_ALIGN ENDSTOPPULLUPS \ Z_TRIPLE_STEPPER_DRIVERS Z_TRIPLE_ENDSTOPS Z_STEPPER_AUTO_ALIGN ENDSTOPPULLUPS
LULZBOT_TOUCH_UI LCD_ALEPHOBJECTS_CLCD_UI OTHER_PIN_LAYOUT LULZBOT_TOUCH_UI LCD_ALEPHOBJECTS_CLCD_UI OTHER_PIN_LAYOUT
opt_add Z2_MAX_ENDSTOP_INVERTING false opt_add Z2_MAX_ENDSTOP_INVERTING false
opt_add Z3_MAX_ENDSTOP_INVERTING false opt_add Z3_MAX_ENDSTOP_INVERTING false
@ -52,6 +53,7 @@ exec_test $1 $2 "RADDS with Lulzbot Touch UI, Bilinear ABL, Triple-Z and Z Auto-
# Test SWITCHING_EXTRUDER # Test SWITCHING_EXTRUDER
# #
restore_configs restore_configs
opt_set LCD_LANGUAGE fi
opt_set MOTHERBOARD BOARD_RAMPS4DUE_EEF opt_set MOTHERBOARD BOARD_RAMPS4DUE_EEF
opt_set EXTRUDERS 2 opt_set EXTRUDERS 2
opt_set NUM_SERVOS 1 opt_set NUM_SERVOS 1

View file

@ -16,6 +16,7 @@ set -e
# Test MESH_BED_LEVELING feature, with LCD # Test MESH_BED_LEVELING feature, with LCD
# #
restore_configs restore_configs
opt_set LCD_LANGUAGE an
opt_enable SPINDLE_FEATURE ULTIMAKERCONTROLLER LCD_BED_LEVELING \ opt_enable SPINDLE_FEATURE ULTIMAKERCONTROLLER LCD_BED_LEVELING \
MESH_BED_LEVELING ENABLE_LEVELING_FADE_HEIGHT MESH_G28_REST_ORIGIN \ MESH_BED_LEVELING ENABLE_LEVELING_FADE_HEIGHT MESH_G28_REST_ORIGIN \
G26_MESH_VALIDATION MESH_EDIT_MENU G26_MESH_VALIDATION MESH_EDIT_MENU

View file

@ -51,6 +51,7 @@ exec_test $1 $2 "RAMPS, 2 extruders, LCD/SD, Probe, ABL-Linear, PLR, LEDs, many
use_example_configs AnimationExample use_example_configs AnimationExample
opt_set SHOW_CUSTOM_BOOTSCREEN opt_set SHOW_CUSTOM_BOOTSCREEN
opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO
opt_set LCD_LANGUAGE fr
opt_set EXTRUDERS 5 opt_set EXTRUDERS 5
opt_set TEMP_SENSOR_1 1 opt_set TEMP_SENSOR_1 1
opt_set TEMP_SENSOR_2 5 opt_set TEMP_SENSOR_2 5
@ -79,10 +80,11 @@ exec_test $1 $2 "... Sled Z Probe, Skew, UBL Cartesian moves, Japanese, and Z pr
# ...with AUTO_BED_LEVELING_3POINT, DEBUG_LEVELING_FEATURE, EEPROM_SETTINGS, EEPROM_CHITCHAT, EXTENDED_CAPABILITIES_REPORT, and AUTO_REPORT_TEMPERATURES # ...with AUTO_BED_LEVELING_3POINT, DEBUG_LEVELING_FEATURE, EEPROM_SETTINGS, EEPROM_CHITCHAT, EXTENDED_CAPABILITIES_REPORT, and AUTO_REPORT_TEMPERATURES
# #
restore_configs restore_configs
opt_enable ZONESTAR_LCD Z_PROBE_SERVO_NR Z_SERVO_ANGLES DEACTIVATE_SERVOS_AFTER_MOVE BOOT_MARLIN_LOGO_ANIMATED \ opt_set LCD_LANGUAGE zh_CN
AUTO_BED_LEVELING_3POINT DEBUG_LEVELING_FEATURE EEPROM_SETTINGS EEPROM_CHITCHAT M114_DETAIL
opt_set NUM_SERVOS 1 opt_set NUM_SERVOS 1
opt_enable NO_VOLUMETRICS EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES AUTOTEMP G38_PROBE_TARGET JOYSTICK opt_enable ZONESTAR_LCD Z_PROBE_SERVO_NR Z_SERVO_ANGLES DEACTIVATE_SERVOS_AFTER_MOVE BOOT_MARLIN_LOGO_ANIMATED \
AUTO_BED_LEVELING_3POINT DEBUG_LEVELING_FEATURE EEPROM_SETTINGS EEPROM_CHITCHAT M114_DETAIL \
NO_VOLUMETRICS EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES AUTOTEMP G38_PROBE_TARGET JOYSTICK
exec_test $1 $2 "RAMPS with ZONESTAR_LCD, Servo Probe, 3-Point ABL, DEBUG_LEVELING_FEATURE, EEPROM, G38, and more" exec_test $1 $2 "RAMPS with ZONESTAR_LCD, Servo Probe, 3-Point ABL, DEBUG_LEVELING_FEATURE, EEPROM, G38, and more"
# #
@ -90,6 +92,7 @@ exec_test $1 $2 "RAMPS with ZONESTAR_LCD, Servo Probe, 3-Point ABL, DEBUG_LEVELI
# #
restore_configs restore_configs
opt_set MOTHERBOARD BOARD_MINIRAMBO opt_set MOTHERBOARD BOARD_MINIRAMBO
opt_set LCD_LANGUAGE de
opt_enable EEPROM_SETTINGS EEPROM_CHITCHAT \ opt_enable EEPROM_SETTINGS EEPROM_CHITCHAT \
ULTIMAKERCONTROLLER SDSUPPORT PCA9632 LCD_INFO_MENU \ ULTIMAKERCONTROLLER SDSUPPORT PCA9632 LCD_INFO_MENU \
AUTO_BED_LEVELING_BILINEAR PROBE_MANUALLY LCD_BED_LEVELING G26_MESH_VALIDATION MESH_EDIT_MENU \ AUTO_BED_LEVELING_BILINEAR PROBE_MANUALLY LCD_BED_LEVELING G26_MESH_VALIDATION MESH_EDIT_MENU \
@ -107,6 +110,7 @@ exec_test $1 $2 "MINIRAMBO with M100, PWM_MOTOR_CURRENT, PRINTCOUNTER, etc."
# #
restore_configs restore_configs
opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO
opt_set LCD_LANGUAGE el_gr
opt_enable MIXING_EXTRUDER GRADIENT_MIX GRADIENT_VTOOL CR10_STOCKDISPLAY opt_enable MIXING_EXTRUDER GRADIENT_MIX GRADIENT_VTOOL CR10_STOCKDISPLAY
opt_set MIXING_STEPPERS 5 opt_set MIXING_STEPPERS 5
opt_set LCD_LANGUAGE ru opt_set LCD_LANGUAGE ru
@ -117,6 +121,7 @@ exec_test $1 $2 "Mixing Extruder with 5 steppers, Cyrillic"
# #
restore_configs restore_configs
opt_set MOTHERBOARD BOARD_RUMBA opt_set MOTHERBOARD BOARD_RUMBA
opt_set LCD_LANGUAGE pt
opt_set EXTRUDERS 2 opt_set EXTRUDERS 2
opt_set TEMP_SENSOR_1 1 opt_set TEMP_SENSOR_1 1
opt_enable USE_XMAX_PLUG DUAL_X_CARRIAGE opt_enable USE_XMAX_PLUG DUAL_X_CARRIAGE
@ -143,6 +148,7 @@ exec_test $1 $2 "DUAL_X_CARRIAGE"
# #
restore_configs restore_configs
opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO
opt_set LCD_LANGUAGE it
opt_set EXTRUDERS 2 opt_set EXTRUDERS 2
opt_set TEMP_SENSOR_1 -4 opt_set TEMP_SENSOR_1 -4
opt_set SERVO_DELAY "{ 300, 300, 300 }" opt_set SERVO_DELAY "{ 300, 300, 300 }"
@ -268,6 +274,7 @@ exec_test $1 $2 "Full-featured CR-10S config"
# #
# Delta Config (generic) + ABL bilinear + BLTOUCH # Delta Config (generic) + ABL bilinear + BLTOUCH
use_example_configs delta/generic use_example_configs delta/generic
opt_set LCD_LANGUAGE cz
opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER DELTA_CALIBRATION_MENU AUTO_BED_LEVELING_BILINEAR BLTOUCH BLTOUCH_FORCE_5V_MODE opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER DELTA_CALIBRATION_MENU AUTO_BED_LEVELING_BILINEAR BLTOUCH BLTOUCH_FORCE_5V_MODE
exec_test $1 $2 "Delta Config (generic) + ABL bilinear + BLTOUCH" exec_test $1 $2 "Delta Config (generic) + ABL bilinear + BLTOUCH"
@ -275,6 +282,7 @@ exec_test $1 $2 "Delta Config (generic) + ABL bilinear + BLTOUCH"
# Delta Config (generic) + UBL + ALLEN_KEY + OLED_PANEL_TINYBOY2 + EEPROM_SETTINGS # Delta Config (generic) + UBL + ALLEN_KEY + OLED_PANEL_TINYBOY2 + EEPROM_SETTINGS
# #
use_example_configs delta/generic use_example_configs delta/generic
opt_set LCD_LANGUAGE ko_KR
opt_enable AUTO_BED_LEVELING_UBL RESTORE_LEVELING_AFTER_G28 Z_PROBE_ALLEN_KEY EEPROM_SETTINGS EEPROM_CHITCHAT \ opt_enable AUTO_BED_LEVELING_UBL RESTORE_LEVELING_AFTER_G28 Z_PROBE_ALLEN_KEY EEPROM_SETTINGS EEPROM_CHITCHAT \
OLED_PANEL_TINYBOY2 MESH_EDIT_GFX_OVERLAY OLED_PANEL_TINYBOY2 MESH_EDIT_GFX_OVERLAY
exec_test $1 $2 "Delta Config (generic) + UBL + ALLEN_KEY + OLED_PANEL_TINYBOY2 + EEPROM_SETTINGS" exec_test $1 $2 "Delta Config (generic) + UBL + ALLEN_KEY + OLED_PANEL_TINYBOY2 + EEPROM_SETTINGS"
@ -295,6 +303,7 @@ exec_test $1 $2 "Delta Config (FLSUN AC because it's complex)"
# SCARA with TMC2130 # SCARA with TMC2130
# #
use_example_configs SCARA use_example_configs SCARA
opt_set LCD_LANGUAGE es
opt_enable USE_ZMIN_PLUG FIX_MOUNTED_PROBE AUTO_BED_LEVELING_BILINEAR PAUSE_BEFORE_DEPLOY_STOW \ opt_enable USE_ZMIN_PLUG FIX_MOUNTED_PROBE AUTO_BED_LEVELING_BILINEAR PAUSE_BEFORE_DEPLOY_STOW \
EEPROM_SETTINGS EEPROM_CHITCHAT ULTIMAKERCONTROLLER M114_DETAIL \ EEPROM_SETTINGS EEPROM_CHITCHAT ULTIMAKERCONTROLLER M114_DETAIL \
MONITOR_DRIVER_STATUS STEALTHCHOP_XY STEALTHCHOP_Z STEALTHCHOP_E HYBRID_THRESHOLD SENSORLESS_HOMING SQUARE_WAVE_STEPPING MONITOR_DRIVER_STATUS STEALTHCHOP_XY STEALTHCHOP_Z STEALTHCHOP_E HYBRID_THRESHOLD SENSORLESS_HOMING SQUARE_WAVE_STEPPING
@ -309,6 +318,7 @@ exec_test $1 $2 "SCARA with TMC2130, TMC2209, and TMC2660"
# Test mixed TMC config # Test mixed TMC config
# #
restore_configs restore_configs
opt_set LCD_LANGUAGE vi
opt_set X_DRIVER_TYPE TMC2160 opt_set X_DRIVER_TYPE TMC2160
opt_set Y_DRIVER_TYPE TMC5160 opt_set Y_DRIVER_TYPE TMC5160
opt_set Z_DRIVER_TYPE TMC2208 opt_set Z_DRIVER_TYPE TMC2208