diff --git a/Marlin/src/Marlin.cpp b/Marlin/src/Marlin.cpp index ef8442e867..f130221821 100644 --- a/Marlin/src/Marlin.cpp +++ b/Marlin/src/Marlin.cpp @@ -324,7 +324,7 @@ void disable_all_steppers() { #ifdef ACTION_ON_CANCEL host_action_cancel(); #endif - kill(PSTR(MSG_ERR_PROBING_FAILED)); + kill(GET_TEXT(MSG_LCD_PROBING_FAILED)); #endif } @@ -686,15 +686,16 @@ void idle( * Kill all activity and lock the machine. * 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(); SERIAL_ERROR_MSG(MSG_ERR_KILLED); #if HAS_DISPLAY - ui.kill_screen(lcd_msg ?: PSTR(MSG_KILLED)); + ui.kill_screen(lcd_error ?: GET_TEXT(MSG_KILLED), lcd_component); #else - UNUSED(lcd_msg); + UNUSED(lcd_error); + UNUSED(lcd_component); #endif #ifdef ACTION_ON_KILL diff --git a/Marlin/src/Marlin.h b/Marlin/src/Marlin.h index 8b64c9a2cb..391c453e01 100644 --- a/Marlin/src/Marlin.h +++ b/Marlin/src/Marlin.h @@ -322,7 +322,7 @@ void disable_e_stepper(const uint8_t e); void disable_e_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 quickstop_stepper(); diff --git a/Marlin/src/core/language.h b/Marlin/src/core/language.h index 9a68a4765c..696a5cb0a9 100644 --- a/Marlin/src/core/language.h +++ b/Marlin/src/core/language.h @@ -97,7 +97,20 @@ // #define STRING_SPLASH_LINE3 WEBSITE_URL //#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 // \x00 intentionally skipped to avoid problems in strings @@ -120,19 +133,6 @@ #define LCD_STR_FILAM_DIA "\xF8" #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 // Common LCD messages @@ -243,10 +243,9 @@ #define MSG_ERR_COLD_EXTRUDE_STOP " cold extrusion prevented" #define MSG_ERR_LONG_EXTRUDE_STOP " too long extrusion prevented" #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_INSERT_LCD "Insert filament and press button" #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_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_UNHOMED "STOP called because of unhomed error - restart with M999" #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_MAXTEMP "MAXTEMP triggered" #define MSG_T_MINTEMP "MINTEMP triggered" +#define MSG_ERR_PROBING_FAILED "Probing Failed" +#define MSG_ZPROBE_OUT_SER "Z Probe Past Bed" // 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) 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) LANGUAGE_INCL_(M) -#define INCLUDE_LANGUAGE LANGUAGE_INCL(LCD_LANGUAGE) // Never translate these strings #define MSG_X "X" @@ -338,6 +335,11 @@ #define MSG_Z2 "Z2" #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 * @@ -370,7 +372,14 @@ #define LCD_STR_E4 "E" LCD_STR_N4 #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, \ DISPLAY_CHARSET_ISO10646_5, \ @@ -383,5 +392,3 @@ DISPLAY_CHARSET_ISO10646_SK) #define DISPLAY_CHARSET_ISO10646_1 // use the better font on full graphic displays. #endif - -#include "../lcd/language/language_en.h" diff --git a/Marlin/src/core/multi_language.cpp b/Marlin/src/core/multi_language.cpp new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Marlin/src/core/multi_language.h b/Marlin/src/core/multi_language.h new file mode 100644 index 0000000000..7ddedf3e1a --- /dev/null +++ b/Marlin/src/core/multi_language.h @@ -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: . * + ****************************************************************************/ +#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)) diff --git a/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp b/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp index d016667e44..69c3d2d997 100644 --- a/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp +++ b/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp @@ -757,7 +757,7 @@ const int point_num = (GRID_MAX_POINTS) - count + 1; SERIAL_ECHOLNPAIR("\nProbing mesh point ", point_num, "/", int(GRID_MAX_POINTS), ".\n"); #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 #if HAS_LCD_MENU @@ -921,7 +921,7 @@ 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 = planner.steps_to_mm[Z_AXIS]; // approx one step each click @@ -959,7 +959,7 @@ void abort_fine_tune() { ui.return_to_status(); 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) { @@ -1072,7 +1072,7 @@ bool err_flag = false; #if HAS_LCD_MENU - set_message_with_feedback(PSTR(MSG_UBL_DOING_G29)); + set_message_with_feedback(GET_TEXT(MSG_UBL_DOING_G29)); #endif g29_constant = 0; @@ -1196,7 +1196,7 @@ if (ubl_state_recursion_chk != 1) { SERIAL_ECHOLNPGM("save_ubl_active_state_and_disabled() called multiple times in a row."); #if HAS_LCD_MENU - set_message_with_feedback(PSTR(MSG_UBL_SAVE_ERROR)); + set_message_with_feedback(GET_TEXT(MSG_UBL_SAVE_ERROR)); #endif return; } @@ -1210,7 +1210,7 @@ if (--ubl_state_recursion_chk) { SERIAL_ECHOLNPGM("restore_ubl_active_state_and_leave() called too many times."); #if HAS_LCD_MENU - set_message_with_feedback(PSTR(MSG_UBL_RESTORE_ERROR)); + set_message_with_feedback(GET_TEXT(MSG_UBL_RESTORE_ERROR)); #endif return; } @@ -1410,7 +1410,7 @@ if (do_3_pt_leveling) { SERIAL_ECHOLNPGM("Tilting mesh (1/3)"); #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 measured_z = probe_at_point(points[0], PROBE_PT_RAISE, g29_verbose_level); @@ -1431,7 +1431,7 @@ if (!abort_flag) { SERIAL_ECHOLNPGM("Tilting mesh (2/3)"); #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 measured_z = probe_at_point(points[1], PROBE_PT_RAISE, g29_verbose_level); @@ -1453,7 +1453,7 @@ if (!abort_flag) { SERIAL_ECHOLNPGM("Tilting mesh (3/3)"); #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 measured_z = probe_at_point(points[2], PROBE_PT_STOW, g29_verbose_level); @@ -1497,7 +1497,7 @@ if (!abort_flag) { SERIAL_ECHOLNPAIR("Tilting mesh point ", point_num, "/", total_points, "\n"); #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 measured_z = probe_at_point(rpos, parser.seen('E') ? PROBE_PT_STOW : PROBE_PT_RAISE, g29_verbose_level); // TODO: Needs error handling diff --git a/Marlin/src/feature/pause.cpp b/Marlin/src/feature/pause.cpp index b319bbab6e..07f1d7d1b2 100644 --- a/Marlin/src/feature/pause.cpp +++ b/Marlin/src/feature/pause.cpp @@ -53,6 +53,7 @@ #include "../lcd/extensible_ui/ui_api.h" #endif +#include "../core/language.h" #include "../lcd/ultralcd.h" #if HAS_BUZZER @@ -76,6 +77,12 @@ fil_change_settings_t fc_settings[EXTRUDERS]; #include "../sd/cardreader.h" #endif +#if ENABLED(EMERGENCY_PARSER) + #define _PMSG(L) L##_M108 +#else + #define _PMSG(L) L##_LCD +#endif + #if HAS_BUZZER static void filament_change_beep(const int8_t max_beep_count, const bool init=false) { 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 (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_INSERT, mode); #endif - SERIAL_ECHO_MSG(MSG_FILAMENT_CHANGE_INSERT); + SERIAL_ECHO_MSG(_PMSG(MSG_FILAMENT_CHANGE_INSERT)); #if HAS_BUZZER 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(); #endif #if ENABLED(EXTENSIBLE_UI) - ExtUI::onUserConfirmRequired(PSTR("Load Filament")); + ExtUI::onUserConfirmRequired_P(PSTR("Load Filament")); #endif while (wait_for_user) { #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")); #endif #if ENABLED(EXTENSIBLE_UI) - ExtUI::onUserConfirmRequired(PSTR("Filament Purge Running...")); + ExtUI::onUserConfirmRequired_P(PSTR("Filament Purge Running...")); #endif for (float purge_count = purge_length; purge_count > 0 && wait_for_user; --purge_count) 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 */ -#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) { #if HAS_LCD_MENU 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")); #endif #if ENABLED(EXTENSIBLE_UI) - ExtUI::onUserConfirmRequired(PSTR("Nozzle Parked")); + ExtUI::onUserConfirmRequired_P(PSTR("Nozzle Parked")); #endif while (wait_for_user) { #if HAS_BUZZER @@ -551,7 +550,7 @@ void wait_for_confirmation(const bool is_reload/*=false*/, const int8_t max_beep #endif #if ENABLED(EXTENSIBLE_UI) - ExtUI::onUserConfirmRequired(PSTR("HeaterTimeout")); + ExtUI::onUserConfirmRequired_P(PSTR("HeaterTimeout")); #endif // 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")); #endif #if ENABLED(EXTENSIBLE_UI) - ExtUI::onUserConfirmRequired("Reheat finished."); + ExtUI::onUserConfirmRequired_P(PSTR("Reheat finished.")); #endif wait_for_user = true; nozzle_timed_out = false; diff --git a/Marlin/src/feature/power_loss_recovery.cpp b/Marlin/src/feature/power_loss_recovery.cpp index bf13bb4b1a..99f8d5dc4a 100644 --- a/Marlin/src/feature/power_loss_recovery.cpp +++ b/Marlin/src/feature/power_loss_recovery.cpp @@ -228,7 +228,7 @@ void PrintJobRecovery::save(const bool force/*=false*/, const bool save_queue/*= #if PIN_EXISTS(POWER_LOSS) void PrintJobRecovery::_outage() { save(true); - kill(PSTR(MSG_OUTAGE_RECOVERY)); + kill(GET_TEXT(MSG_OUTAGE_RECOVERY)); } #endif diff --git a/Marlin/src/feature/prusa_MMU2/mmu2.cpp b/Marlin/src/feature/prusa_MMU2/mmu2.cpp index dd0b2c681c..66b3877f0c 100644 --- a/Marlin/src/feature/prusa_MMU2/mmu2.cpp +++ b/Marlin/src/feature/prusa_MMU2/mmu2.cpp @@ -433,7 +433,7 @@ bool MMU2::rx_ok() { void MMU2::check_version() { if (buildnr < MMU_REQUIRED_FW_BUILDNR) { 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) { 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); @@ -712,7 +712,7 @@ void MMU2::filament_runout() { host_prompt_do(PROMPT_USER_CONTINUE, PSTR("MMU2 Eject Recover"), PSTR("Continue")); #endif #if ENABLED(EXTENSIBLE_UI) - ExtUI::onUserConfirmRequired(PSTR("MMU2 Eject Recover")); + ExtUI::onUserConfirmRequired_P(PSTR("MMU2 Eject Recover")); #endif while (wait_for_user) idle(); BUZZ(200, 404); diff --git a/Marlin/src/feature/tmc_util.cpp b/Marlin/src/feature/tmc_util.cpp index 6b97168f98..618fdd81f5 100644 --- a/Marlin/src/feature/tmc_util.cpp +++ b/Marlin/src/feature/tmc_util.cpp @@ -1118,7 +1118,7 @@ void test_tmc_connection(const bool test_x, const bool test_y, const bool test_z #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 diff --git a/Marlin/src/gcode/bedlevel/G26.cpp b/Marlin/src/gcode/bedlevel/G26.cpp index 46001411c8..467b71059c 100644 --- a/Marlin/src/gcode/bedlevel/G26.cpp +++ b/Marlin/src/gcode/bedlevel/G26.cpp @@ -168,7 +168,7 @@ int8_t g26_prime_flag; */ bool user_canceled() { 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 ui.quick_feedback(); #endif @@ -370,7 +370,7 @@ inline bool turn_on_heaters() { if (g26_bed_temp > 25) { #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(); #if HAS_LCD_MENU ui.capture(); @@ -391,7 +391,7 @@ inline bool turn_on_heaters() { // Start heating the active nozzle #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(); #endif 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 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(); destination = current_position; @@ -450,7 +450,7 @@ inline bool prime_nozzle() { 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.release(); } @@ -458,7 +458,7 @@ inline bool prime_nozzle() { #endif { #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(); #endif destination = current_position; @@ -827,7 +827,7 @@ void GcodeSuite::G26() { } while (--g26_repeats && location.valid()); LEAVE: - ui.set_status_P(PSTR(MSG_G26_LEAVING), -1); + ui.set_status_P(GET_TEXT(MSG_G26_LEAVING), -1); retract_filament(destination); destination.z = Z_CLEARANCE_BETWEEN_PROBES; diff --git a/Marlin/src/gcode/bedlevel/abl/G29.cpp b/Marlin/src/gcode/bedlevel/abl/G29.cpp index 5f1ef2e9a3..9ca621d7cd 100644 --- a/Marlin/src/gcode/bedlevel/abl/G29.cpp +++ b/Marlin/src/gcode/bedlevel/abl/G29.cpp @@ -722,7 +722,7 @@ G29_TYPE GcodeSuite::G29() { if (verbose_level) SERIAL_ECHOLNPAIR("Probing mesh point ", int(pt_index), "/", int(GRID_MAX_POINTS), "."); #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 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) { if (verbose_level) SERIAL_ECHOLNPAIR("Probing point ", int(i), "/3."); #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 // Retain the last probe position diff --git a/Marlin/src/gcode/calibrate/G28.cpp b/Marlin/src/gcode/calibrate/G28.cpp index 7f1fb7705e..8fcb74abc5 100644 --- a/Marlin/src/gcode/calibrate/G28.cpp +++ b/Marlin/src/gcode/calibrate/G28.cpp @@ -118,7 +118,7 @@ // Disallow Z homing if X or Y are unknown if (!TEST(axis_known_position, X_AXIS) || !TEST(axis_known_position, Y_AXIS)) { LCD_MESSAGEPGM(MSG_ERR_Z_HOMING); - SERIAL_ECHO_MSG(MSG_ERR_Z_HOMING); + SERIAL_ECHO_MSG(MSG_ERR_Z_HOMING_SER); return; } @@ -154,7 +154,7 @@ } else { 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"); diff --git a/Marlin/src/gcode/calibrate/M48.cpp b/Marlin/src/gcode/calibrate/M48.cpp index 8a12767224..ca30110670 100644 --- a/Marlin/src/gcode/calibrate/M48.cpp +++ b/Marlin/src/gcode/calibrate/M48.cpp @@ -126,7 +126,7 @@ void GcodeSuite::M48() { for (uint8_t n = 0; n < n_samples; n++) { #if HAS_SPI_LCD // 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 if (n_legs) { 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 // Display M48 results in the status bar 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 } diff --git a/Marlin/src/gcode/calibrate/M852.cpp b/Marlin/src/gcode/calibrate/M852.cpp index 156d1f5bf6..4bb068e5b2 100644 --- a/Marlin/src/gcode/calibrate/M852.cpp +++ b/Marlin/src/gcode/calibrate/M852.cpp @@ -93,13 +93,13 @@ void GcodeSuite::M852() { if (!ijk) { 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) - SERIAL_ECHOPAIR(" XZ: ", planner.skew_factor.xz); - SERIAL_ECHOLNPAIR(" YZ: ", planner.skew_factor.yz); - #else - SERIAL_EOL(); + SERIAL_ECHOPAIR_F(" XZ: ", planner.skew_factor.xz, 6); + SERIAL_ECHOPAIR_F(" YZ: ", planner.skew_factor.yz, 6); #endif + SERIAL_EOL(); } } diff --git a/Marlin/src/gcode/config/M43.cpp b/Marlin/src/gcode/config/M43.cpp index 34d42ed499..0fd213886d 100644 --- a/Marlin/src/gcode/config/M43.cpp +++ b/Marlin/src/gcode/config/M43.cpp @@ -334,7 +334,7 @@ void GcodeSuite::M43() { host_prompt_do(PROMPT_USER_CONTINUE, PSTR("M43 Wait Called"), PSTR("Continue")); #endif #if ENABLED(EXTENSIBLE_UI) - ExtUI::onUserConfirmRequired(PSTR("M43 Wait Called")); + ExtUI::onUserConfirmRequired_P(PSTR("M43 Wait Called")); #endif #endif diff --git a/Marlin/src/gcode/control/M108_M112_M410.cpp b/Marlin/src/gcode/control/M108_M112_M410.cpp index 9b6193bd93..50feb8276f 100644 --- a/Marlin/src/gcode/control/M108_M112_M410.cpp +++ b/Marlin/src/gcode/control/M108_M112_M410.cpp @@ -41,7 +41,7 @@ void GcodeSuite::M108() { * M112: Full Shutdown */ void GcodeSuite::M112() { - kill(PSTR("M112 Shutdown"), true); + kill(PSTR("M112 Shutdown"), nullptr, true); } /** diff --git a/Marlin/src/gcode/control/M80_M81.cpp b/Marlin/src/gcode/control/M80_M81.cpp index 03f73fe877..d7880358c4 100644 --- a/Marlin/src/gcode/control/M80_M81.cpp +++ b/Marlin/src/gcode/control/M80_M81.cpp @@ -110,6 +110,6 @@ void GcodeSuite::M81() { #endif #if HAS_LCD_MENU - LCD_MESSAGEPGM(MACHINE_NAME " " MSG_OFF "."); + LCD_MESSAGEPGM_P(PSTR(MACHINE_NAME " " MSG_OFF ".")); #endif } diff --git a/Marlin/src/gcode/geometry/M206_M428.cpp b/Marlin/src/gcode/geometry/M206_M428.cpp index e17f41f835..6e2b46081c 100644 --- a/Marlin/src/gcode/geometry/M206_M428.cpp +++ b/Marlin/src/gcode/geometry/M206_M428.cpp @@ -70,7 +70,7 @@ void GcodeSuite::M428() { diff[i] = -current_position[i]; if (!WITHIN(diff[i], -20, 20)) { SERIAL_ERROR_MSG(MSG_ERR_M428_TOO_FAR); - LCD_ALERTMESSAGEPGM("Err: Too far!"); + LCD_ALERTMESSAGEPGM_P(PSTR("Err: Too far!")); BUZZ(200, 40); return; } diff --git a/Marlin/src/gcode/host/M16.cpp b/Marlin/src/gcode/host/M16.cpp index 94ae79b263..9219155011 100644 --- a/Marlin/src/gcode/host/M16.cpp +++ b/Marlin/src/gcode/host/M16.cpp @@ -33,7 +33,7 @@ void GcodeSuite::M16() { if (strcmp_P(parser.string_arg, PSTR(MACHINE_NAME))) - kill(PSTR(MSG_EXPECTED_PRINTER)); + kill(GET_TEXT(MSG_EXPECTED_PRINTER)); } diff --git a/Marlin/src/gcode/lcd/M0_M1.cpp b/Marlin/src/gcode/lcd/M0_M1.cpp index 05fb7576fb..aca149abdc 100644 --- a/Marlin/src/gcode/lcd/M0_M1.cpp +++ b/Marlin/src/gcode/lcd/M0_M1.cpp @@ -80,7 +80,10 @@ void GcodeSuite::M0_M1() { #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 @@ -98,7 +101,7 @@ void GcodeSuite::M0_M1() { host_prompt_do(PROMPT_USER_CONTINUE, PSTR("M0/1 Break Called"), PSTR("Continue")); #endif #if ENABLED(EXTENSIBLE_UI) - ExtUI::onUserConfirmRequired(PSTR("M0/1 Break Called")); + ExtUI::onUserConfirmRequired_P(PSTR("M0/1 Break Called")); #endif if (ms > 0) { diff --git a/Marlin/src/gcode/temperature/M140_M190.cpp b/Marlin/src/gcode/temperature/M140_M190.cpp index a0d132f6b7..8d7c4fe0d1 100644 --- a/Marlin/src/gcode/temperature/M140_M190.cpp +++ b/Marlin/src/gcode/temperature/M140_M190.cpp @@ -64,7 +64,7 @@ void GcodeSuite::M190() { } 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); } diff --git a/Marlin/src/gcode/temperature/M141_M191.cpp b/Marlin/src/gcode/temperature/M141_M191.cpp index 53deb25d2f..a319faa8ac 100644 --- a/Marlin/src/gcode/temperature/M141_M191.cpp +++ b/Marlin/src/gcode/temperature/M141_M191.cpp @@ -68,7 +68,7 @@ void GcodeSuite::M191() { } 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); } diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h index 627fd0be38..fcc361ad4b 100644 --- a/Marlin/src/inc/Conditionals_post.h +++ b/Marlin/src/inc/Conditionals_post.h @@ -1072,14 +1072,9 @@ #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 _FANOVERLAP(A,B) (A##_AUTO_FAN_PIN == E##B##_AUTO_FAN_PIN) #if HAS_AUTO_FAN - #define AUTO_CHAMBER_IS_0 (CHAMBER_AUTO_FAN_PIN == E0_AUTO_FAN_PIN) - #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) + #define AUTO_CHAMBER_IS_E (_FANOVERLAP(CHAMBER,0) || _FANOVERLAP(CHAMBER,1) || _FANOVERLAP(CHAMBER,2) || _FANOVERLAP(CHAMBER,3) || _FANOVERLAP(CHAMBER,4) || _FANOVERLAP(CHAMBER,5)) #endif #if !HAS_AUTO_CHAMBER_FAN || AUTO_CHAMBER_IS_E diff --git a/Marlin/src/lcd/HD44780/ultralcd_HD44780.cpp b/Marlin/src/lcd/HD44780/ultralcd_HD44780.cpp index 9f34946137..e497cfe9ee 100644 --- a/Marlin/src/lcd/HD44780/ultralcd_HD44780.cpp +++ b/Marlin/src/lcd/HD44780/ultralcd_HD44780.cpp @@ -484,9 +484,9 @@ void MarlinUI::draw_kill_screen() { lcd_put_u8str(0, 0, status_message); lcd_uint_t y = 2; #if LCD_HEIGHT >= 4 - lcd_put_u8str_P(0, y++, PSTR(MSG_HALTED)); + lcd_put_u8str_P(0, y++, GET_TEXT(MSG_HALTED)); #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 - 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; lcd_moveto(0, row); if ((style & SS_CENTER) && !valstr) { diff --git a/Marlin/src/lcd/dogm/ultralcd_DOGM.cpp b/Marlin/src/lcd/dogm/ultralcd_DOGM.cpp index 7f9376fbc1..9f08643e76 100644 --- a/Marlin/src/lcd/dogm/ultralcd_DOGM.cpp +++ b/Marlin/src/lcd/dogm/ultralcd_DOGM.cpp @@ -300,8 +300,8 @@ void MarlinUI::draw_kill_screen() { do { set_font(FONT_MENU); lcd_put_u8str(0, h4 * 1, status_message); - lcd_put_u8str_P(0, h4 * 2, PSTR(MSG_HALTED)); - lcd_put_u8str_P(0, h4 * 3, PSTR(MSG_PLEASE_RESET)); + lcd_put_u8str_P(0, h4 * 2, GET_TEXT(MSG_HALTED)); + lcd_put_u8str_P(0, h4 * 3, GET_TEXT(MSG_PLEASE_RESET)); } 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 - 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 diff --git a/Marlin/src/lcd/extensible_ui/lib/dgus/DGUSDisplay.cpp b/Marlin/src/lcd/extensible_ui/lib/dgus/DGUSDisplay.cpp index 1fb3783b2d..c669294125 100644 --- a/Marlin/src/lcd/extensible_ui/lib/dgus/DGUSDisplay.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/dgus/DGUSDisplay.cpp @@ -289,11 +289,11 @@ void DGUSScreenVariableHandler::DGUSLCD_SendStringToDisplayPGM(DGUS_VP_Variable // Don't let the user in the dark why there is no reaction. if (!ExtUI::isMediaInserted()) { - setstatusmessagePGM(PSTR(MSG_NO_MEDIA)); + setstatusmessagePGM(GET_TEXT(MSG_NO_MEDIA)); return; } if (card.flag.abort_sd_printing) { - setstatusmessagePGM(PSTR(MSG_MEDIA_ABORTING)); + setstatusmessagePGM(GET_TEXT(MSG_MEDIA_ABORTING)); return; } } @@ -472,13 +472,13 @@ void DGUSScreenVariableHandler::HandleTemperatureChanged(DGUS_VP_Variable &var, switch (var.VP) { default: return; #if HOTENDS >= 1 - case VP_T_E1_Set: + case VP_T_E0_Set: thermalManager.setTargetHotend(newvalue, 0); acceptedvalue = thermalManager.temp_hotend[0].target; break; #endif #if HOTENDS >= 2 - case VP_T_E2_Set: + case VP_T_E1_Set: thermalManager.setTargetHotend(newvalue, 1); acceptedvalue = thermalManager.temp_hotend[1].target; break; @@ -503,10 +503,10 @@ void DGUSScreenVariableHandler::HandleFlowRateChanged(DGUS_VP_Variable &var, voi switch (var.VP) { default: return; #if (HOTENDS >= 1) - case VP_Flowrate_E1: target_extruder = 0; break; + case VP_Flowrate_E0: target_extruder = 0; break; #endif #if (HOTENDS >= 2) - case VP_Flowrate_E2: target_extruder = 1; break; + case VP_Flowrate_E1: target_extruder = 1; break; #endif } @@ -526,11 +526,11 @@ void DGUSScreenVariableHandler::HandleManualExtrude(DGUS_VP_Variable &var, void ExtUI::extruder_t target_extruder; switch (var.VP) { - #if HOTENDS >=1 - case VP_MOVE_E1: target_extruder = ExtUI::extruder_t::E0; break; + #if HOTENDS >= 1 + case VP_MOVE_E0: target_extruder = ExtUI::extruder_t::E0; break; #endif - #if HOTENDS >=2 - case VP_MOVE_E2: target_extruder = ExtUI::extruder_t::E1; break + #if HOTENDS >= 2 + case VP_MOVE_E1: target_extruder = ExtUI::extruder_t::E1; break #endif default: return; } diff --git a/Marlin/src/lcd/extensible_ui/lib/dgus/DGUSDisplayDefinition.cpp b/Marlin/src/lcd/extensible_ui/lib/dgus/DGUSDisplayDefinition.cpp index 0501bc635b..de15d54597 100644 --- a/Marlin/src/lcd/extensible_ui/lib/dgus/DGUSDisplayDefinition.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/dgus/DGUSDisplayDefinition.cpp @@ -46,10 +46,10 @@ const uint16_t VPList_Main[] PROGMEM = { const uint16_t VPList_Temp[] PROGMEM = { #if HOTENDS >= 1 - VP_T_E1_Is, VP_T_E1_Set, + VP_T_E0_Is, VP_T_E0_Set, #endif #if HOTENDS >= 2 - VP_T_E2_I, VP_T_E2_S, + VP_T_E1_I, VP_T_E1_S, #endif #if HAS_HEATED_BED VP_T_Bed_Is, VP_T_Bed_Set, @@ -60,10 +60,10 @@ const uint16_t VPList_Temp[] PROGMEM = { const uint16_t VPList_Status[] PROGMEM = { /* VP_M117, for completeness, but it cannot be auto-uploaded */ #if HOTENDS >= 1 - VP_T_E1_Is, VP_T_E1_Set, + VP_T_E0_Is, VP_T_E0_Set, #endif #if HOTENDS >= 2 - VP_T_E2_I, VP_T_E2_S, + VP_T_E1_I, VP_T_E1_S, #endif #if HAS_HEATED_BED VP_T_Bed_Is, VP_T_Bed_Set, @@ -81,10 +81,10 @@ const uint16_t VPList_Status[] PROGMEM = { const uint16_t VPList_Status2[] PROGMEM = { /* VP_M117, for completeness, but it cannot be auto-uploaded */ #if HOTENDS >= 1 - VP_Flowrate_E1, + VP_Flowrate_E0, #endif #if HOTENDS >= 2 - VP_Flowrate_E2, + VP_Flowrate_E1, #endif VP_PrintProgress_Percentage, VP_PrintTime, @@ -107,7 +107,7 @@ const uint16_t VPList_FanAndFeedrate[] PROGMEM = { }; const uint16_t VPList_SD_FlowRates[] PROGMEM = { - VP_Flowrate_E1, VP_Flowrate_E2, + VP_Flowrate_E0, VP_Flowrate_E1, 0x0000 }; @@ -166,17 +166,17 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = { // Temperature Data #if HOTENDS >= 1 - VPHELPER(VP_T_E1_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_Flowrate_E1, nullptr, DGUSScreenVariableHandler::HandleFlowRateChanged, &DGUSScreenVariableHandler::DGUSLCD_SendWordValueToDisplay), + VPHELPER(VP_T_E0_Is, &thermalManager.temp_hotend[0].celsius, nullptr, DGUSScreenVariableHandler::DGUSLCD_SendFloatAsLongValueToDisplay<0>), + VPHELPER(VP_T_E0_Set, &thermalManager.temp_hotend[0].target, DGUSScreenVariableHandler::HandleTemperatureChanged, &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_MOVE_E1, nullptr, &DGUSScreenVariableHandler::HandleManualExtrude, nullptr), + VPHELPER(VP_MOVE_E0, nullptr, &DGUSScreenVariableHandler::HandleManualExtrude, nullptr), #endif #if HOTENDS >= 2 - VPHELPER(VP_T_E2_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_Flowrate_E2, nullptr, DGUSScreenVariableHandler::HandleFlowRateChanged, &DGUSScreenVariableHandler::DGUSLCD_SendWordValueToDisplay), - VPHELPER(VP_MOVE_E2, nullptr, &DGUSScreenVariableHandler::HandleManualExtrude, nullptr), + VPHELPER(VP_T_E1_I, &thermalManager.temp_hotend[1].celsius, nullptr, DGUSLCD_SendFloatAsLongValueToDisplay<0>), + VPHELPER(VP_T_E1_S, &thermalManager.temp_hotend[1].target, DGUSScreenVariableHandler::HandleTemperatureChanged, &DGUSScreenVariableHandler::DGUSLCD_SendWordValueToDisplay), + VPHELPER(VP_Flowrate_E1, nullptr, DGUSScreenVariableHandler::HandleFlowRateChanged, &DGUSScreenVariableHandler::DGUSLCD_SendWordValueToDisplay), + VPHELPER(VP_MOVE_E1, nullptr, &DGUSScreenVariableHandler::HandleManualExtrude, nullptr), #endif #if HOTENDS >= 3 #error More than 2 Hotends currently not implemented on the Display UI design. diff --git a/Marlin/src/lcd/extensible_ui/lib/dgus/DGUSDisplayDefinition.h b/Marlin/src/lcd/extensible_ui/lib/dgus/DGUSDisplayDefinition.h index f54a2938ec..f90cfa948b 100644 --- a/Marlin/src/lcd/extensible_ui/lib/dgus/DGUSDisplayDefinition.h +++ b/Marlin/src/lcd/extensible_ui/lib/dgus/DGUSDisplayDefinition.h @@ -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_Y = 0x2102; constexpr uint16_t VP_MOVE_Z = 0x2104; -constexpr uint16_t VP_MOVE_E1 = 0x2110; -constexpr uint16_t VP_MOVE_E2 = 0x2112; -//constexpr uint16_t VP_MOVE_E3 = 0x2114; -//constexpr uint16_t VP_MOVE_E4 = 0x2116; -//constexpr uint16_t VP_MOVE_E5 = 0x2118; -//constexpr uint16_t VP_MOVE_E6 = 0x211A; +constexpr uint16_t VP_MOVE_E0 = 0x2110; +constexpr uint16_t VP_MOVE_E1 = 0x2112; +//constexpr uint16_t VP_MOVE_E2 = 0x2114; +//constexpr uint16_t VP_MOVE_E3 = 0x2116; +//constexpr uint16_t VP_MOVE_E4 = 0x2118; +//constexpr uint16_t VP_MOVE_E5 = 0x211A; constexpr uint16_t VP_HOME_ALL = 0x2120; // Firmware version on the boot screen. @@ -126,34 +126,34 @@ constexpr uint16_t VP_M117 = 0x3020; constexpr uint8_t VP_M117_LEN = 0x20; // Temperatures. -constexpr uint16_t VP_T_E1_Is = 0x3060; // 4 Byte Integer -constexpr uint16_t VP_T_E1_Set = 0x3062; // 2 Byte Integer -constexpr uint16_t VP_T_E2_Is = 0x3064; // 4 Byte Integer +constexpr uint16_t VP_T_E0_Is = 0x3060; // 4 Byte Integer +constexpr uint16_t VP_T_E0_Set = 0x3062; // 2 Byte Integer +constexpr uint16_t VP_T_E1_Is = 0x3064; // 4 Byte Integer // reserved to support up to 6 Extruders: -//constexpr uint16_t VP_T_E2_Set = 0x3066; // 2 Byte Integer -//constexpr uint16_t VP_T_E3_Is = 0x3068; // 4 Byte Integer -//constexpr uint16_t VP_T_E3_Set = 0x306A; // 2 Byte Integer -//constexpr uint16_t VP_T_E4_Is = 0x306C; // 4 Byte Integer -//constexpr uint16_t VP_T_E4_Set = 0x306E; // 2 Byte Integer -//constexpr uint16_t VP_T_E5_Is = 0x3070; // 4 Byte Integer -//constexpr uint16_t VP_T_E5_Set = 0x3072; // 2 Byte Integer -//constexpr uint16_t VP_T_E5_Is = 0x3074; // 4 Byte Integer -//constexpr uint16_t VP_T_E5_Set = 0x3076; // 2 Byte Integer -//constexpr uint16_t VP_T_E6_Is = 0x3078; // 4 Byte Integer -//constexpr uint16_t VP_T_E6_Set = 0x307A; // 2 Byte Integer +//constexpr uint16_t VP_T_E1_Set = 0x3066; // 2 Byte Integer +//constexpr uint16_t VP_T_E2_Is = 0x3068; // 4 Byte Integer +//constexpr uint16_t VP_T_E2_Set = 0x306A; // 2 Byte Integer +//constexpr uint16_t VP_T_E3_Is = 0x306C; // 4 Byte Integer +//constexpr uint16_t VP_T_E3_Set = 0x306E; // 2 Byte Integer +//constexpr uint16_t VP_T_E4_Is = 0x3070; // 4 Byte Integer +//constexpr uint16_t VP_T_E4_Set = 0x3072; // 2 Byte Integer +//constexpr uint16_t VP_T_E4_Is = 0x3074; // 4 Byte Integer +//constexpr uint16_t VP_T_E4_Set = 0x3076; // 2 Byte Integer +//constexpr uint16_t VP_T_E5_Is = 0x3078; // 4 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_Set = 0x3082; // 2 Byte Integer -constexpr uint16_t VP_Flowrate_E1 = 0x3090; // 2 Byte Integer -constexpr uint16_t VP_Flowrate_E2 = 0x3092; // 2 Byte Integer +constexpr uint16_t VP_Flowrate_E0 = 0x3090; // 2 Byte Integer +constexpr uint16_t VP_Flowrate_E1 = 0x3092; // 2 Byte Integer // reserved for up to 6 Extruders: -//constexpr uint16_t VP_Flowrate_E3 = 0x3094; -//constexpr uint16_t VP_Flowrate_E4 = 0x3096; -//constexpr uint16_t VP_Flowrate_E5 = 0x3098; -//constexpr uint16_t VP_Flowrate_E6 = 0x309A; +//constexpr uint16_t VP_Flowrate_E2 = 0x3094; +//constexpr uint16_t VP_Flowrate_E3 = 0x3096; +//constexpr uint16_t VP_Flowrate_E4 = 0x3098; +//constexpr uint16_t VP_Flowrate_E5 = 0x309A; constexpr uint16_t VP_Fan_Percentage = 0x3100; // 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 // Not used yet! // 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_E1_Set = 0x5010; -constexpr uint16_t SP_T_E2_Is = 0x5020; +constexpr uint16_t SP_T_E0_Is = 0x5000; +constexpr uint16_t SP_T_E0_Set = 0x5010; +constexpr uint16_t SP_T_E1_Is = 0x5020; constexpr uint16_t SP_T_Bed_Is = 0x5030; constexpr uint16_t SP_T_Bed_Set = 0x5040; diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/compat.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/compat.h index 7e051be75a..90fd615a5d 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/compat.h +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/compat.h @@ -38,11 +38,6 @@ // __MARLIN_FIRMWARE__ exists when compiled within Marlin. #include "pin_mappings.h" #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 { static inline uint32_t safe_millis() {return millis();}; static inline void yield() {}; diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language.h index 694a94b908..fb66e6d77e 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language.h +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language.h @@ -20,70 +20,6 @@ ****************************************************************************/ #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(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_de.h" #include "language_fr.h" diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_de.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_de.h index 3c26bfb3d8..f00c50591e 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_de.h +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_de.h @@ -24,8 +24,6 @@ namespace Language_de { using namespace Language_en; // Inherit undefined strings from English - PROGMEM Language_Str LANGUAGE = u8"Deutsche"; - PROGMEM Language_Str YES = u8"JA"; PROGMEM Language_Str NO = u8"NEIN"; PROGMEM Language_Str BACK = u8"Zurück"; diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_en.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_en.h index d9bd63eb35..1485b0838e 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_en.h +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_en.h @@ -24,8 +24,6 @@ #include "language.h" namespace Language_en { - PROGMEM Language_Str LANGUAGE = u8"English"; - PROGMEM Language_Str YES = u8"Yes"; PROGMEM Language_Str NO = u8"No"; PROGMEM Language_Str BACK = u8"Back"; diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_fr.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_fr.h index a9ad20d320..64582219ce 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_fr.h +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/language/language_fr.h @@ -24,8 +24,6 @@ namespace Language_fr { 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 NO = u8"non"; PROGMEM Language_Str BACK = u8"Retour"; diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/marlin_events.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/marlin_events.cpp index 38d7c7985f..e61033ee3a 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/marlin_events.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/marlin_events.cpp @@ -38,19 +38,21 @@ namespace ExtUI { EventLoop::loop(); } - void onPrinterKilled(PGM_P lcd_msg) { - KillScreen::show(progmem_str(lcd_msg)); + void onPrinterKilled(PGM_P const error, PGM_P const component) { + char str[strlen_P(error) + strlen_P(component) + 3]; + sprintf_P(str, PSTR(S_FMT ": " S_FMT), error, component); + KillScreen::show(str); } void onMediaInserted() { if (AT_SCREEN(StatusScreen)) - StatusScreen::setStatusMessage(F(MSG_MEDIA_INSERTED)); + StatusScreen::setStatusMessage(GET_TEXT_F(MSG_MEDIA_INSERTED)); sound.play(media_inserted, PLAY_ASYNCHRONOUS); } void onMediaRemoved() { if (AT_SCREEN(StatusScreen)) - StatusScreen::setStatusMessage(F(MSG_MEDIA_REMOVED)); + StatusScreen::setStatusMessage(GET_TEXT_F(MSG_MEDIA_REMOVED)); sound.play(media_removed, PLAY_ASYNCHRONOUS); if (AT_SCREEN(FilesScreen)) { GOTO_SCREEN(StatusScreen) diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/boot_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/boot_screen.cpp index 117d426999..47a71f836d 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/boot_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/boot_screen.cpp @@ -85,10 +85,10 @@ void BootScreen::onIdle() { PUSH_SCREEN(StatusScreen); PUSH_SCREEN(BioConfirmHomeE); #elif NUM_LANGUAGES > 1 - StatusScreen::setStatusMessage(F(WELCOME_MSG)); + StatusScreen::setStatusMessage(GET_TEXT_F(WELCOME_MSG)); GOTO_SCREEN(LanguageMenu); #else - StatusScreen::setStatusMessage(F(WELCOME_MSG)); + StatusScreen::setStatusMessage(GET_TEXT_F(WELCOME_MSG)); GOTO_SCREEN(StatusScreen); #endif } diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/endstop_state_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/endstop_state_screen.cpp index 740ca4e0e6..05dccf96f3 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/endstop_state_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/endstop_state_screen.cpp @@ -32,10 +32,12 @@ using namespace ExtUI; void EndstopStatesScreen::onEntry() { BaseScreen::onEntry(); + enable_emi_pins(true); } void EndstopStatesScreen::onExit() { BaseScreen::onExit(); + enable_emi_pins(false); } void EndstopStatesScreen::onRedraw(draw_mode_t) { diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/kill_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/kill_screen.cpp index 7aa8a081e4..853491032e 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/kill_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/kill_screen.cpp @@ -32,7 +32,7 @@ using namespace FTDI; // 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. -void KillScreen::show(progmem_str message) { +void KillScreen::show(const char *message) { CommandProcessor cmd; cmd.cmd(CMD_DLSTART) diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/max_acceleration_screen.cpp b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/max_acceleration_screen.cpp index dafa91de74..2a4569244d 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/max_acceleration_screen.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/max_acceleration_screen.cpp @@ -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(z_axis) .adjuster( 6, GET_TEXT_F(AMAX_Z), getAxisMaxAcceleration_mm_s2(Z) ); #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 - w.color(e_axis).adjuster( 8, GET_TEXT_F(AMAX_E1), getAxisMaxAcceleration_mm_s2(E0) ); - w.color(e_axis).adjuster(10, GET_TEXT_F(AMAX_E2), getAxisMaxAcceleration_mm_s2(E1) ); + 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_E1), getAxisMaxAcceleration_mm_s2(E1) ); #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 #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 w.increments(); diff --git a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/screens.h b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/screens.h index 0f52ed0363..a781564644 100644 --- a/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/screens.h +++ b/Marlin/src/lcd/extensible_ui/lib/lulzbot/screens/screens.h @@ -135,7 +135,7 @@ class KillScreen { // The KillScreen is behaves differently than the // others, so we do not bother extending UIScreen. public: - static void show(progmem_str msg); + static void show(const char*); }; class DialogBoxBaseClass : public BaseScreen { diff --git a/Marlin/src/lcd/extensible_ui/ui_api.cpp b/Marlin/src/lcd/extensible_ui/ui_api.cpp index 206befe7cc..66f4edd5de 100644 --- a/Marlin/src/lcd/extensible_ui/ui_api.cpp +++ b/Marlin/src/lcd/extensible_ui/ui_api.cpp @@ -939,6 +939,12 @@ namespace ExtUI { 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(); } void FileList::refresh() { num_files = 0xFFFF; } @@ -1036,11 +1042,11 @@ void MarlinUI::update() { 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; if (!flags.printer_killed) { flags.printer_killed = true; - onPrinterKilled(msg); + onPrinterKilled(error, component); } } diff --git a/Marlin/src/lcd/extensible_ui/ui_api.h b/Marlin/src/lcd/extensible_ui/ui_api.h index 393b19d307..d929183949 100644 --- a/Marlin/src/lcd/extensible_ui/ui_api.h +++ b/Marlin/src/lcd/extensible_ui/ui_api.h @@ -293,12 +293,13 @@ namespace ExtUI { void onMediaError(); void onMediaRemoved(); 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 onPrintTimerPaused(); void onPrintTimerStopped(); void onFilamentRunout(const extruder_t extruder); void onUserConfirmRequired(const char * const msg); + void onUserConfirmRequired_P(PGM_P const pstr); void onStatusChanged(const char * const msg); void onFactoryReset(); void onStoreSettings(char *); diff --git a/Marlin/src/lcd/extui_dgus_lcd.cpp b/Marlin/src/lcd/extui_dgus_lcd.cpp index 484a333095..e57355bcd0 100644 --- a/Marlin/src/lcd/extui_dgus_lcd.cpp +++ b/Marlin/src/lcd/extui_dgus_lcd.cpp @@ -43,8 +43,8 @@ namespace ExtUI { void onIdle() { ScreenHandler.loop(); } - void onPrinterKilled(const char* msg) { - ScreenHandler.sendinfoscreen(PSTR(MSG_HALTED), msg, PSTR(""), PSTR(MSG_PLEASE_RESET), true, true, true, true); + void onPrinterKilled(PGM_P error, PGM_P component) { + ScreenHandler.sendinfoscreen(GET_TEXT(MSG_HALTED), error, PSTR(""), GET_TEXT(MSG_PLEASE_RESET), true, true, true, true); ScreenHandler.GotoScreen(DGUSLCD_SCREEN_KILL); while (!ScreenHandler.loop()); // Wait while anything is left to be sent } @@ -59,7 +59,7 @@ namespace ExtUI { void onPrintTimerStopped() {} void onFilamentRunout(const extruder_t extruder) {} - void onUserConfirmRequired(const char *msg) { + void onUserConfirmRequired(const char * const msg) { if (msg) { ScreenHandler.sendinfoscreen(PSTR("Please confirm."), nullptr, msg, nullptr, true, true, false, true); ScreenHandler.SetupConfirmAction(ExtUI::setUserConfirmed); diff --git a/Marlin/src/lcd/extui_example.cpp b/Marlin/src/lcd/extui_example.cpp index 35a0215c37..9bdc0ddfe9 100644 --- a/Marlin/src/lcd/extui_example.cpp +++ b/Marlin/src/lcd/extui_example.cpp @@ -46,7 +46,7 @@ namespace ExtUI { */ } void onIdle() {} - void onPrinterKilled(PGM_P const msg) {} + void onPrinterKilled(PGM_P const error, PGM_P const component) {} void onMediaInserted() {}; void onMediaError() {}; void onMediaRemoved() {}; diff --git a/Marlin/src/lcd/extui_malyan_lcd.cpp b/Marlin/src/lcd/extui_malyan_lcd.cpp index e6605c10be..61d4a7d761 100644 --- a/Marlin/src/lcd/extui_malyan_lcd.cpp +++ b/Marlin/src/lcd/extui_malyan_lcd.cpp @@ -464,9 +464,11 @@ namespace ExtUI { } // {E:} 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(msg); + write_to_lcd_P(error); + write_to_lcd_P(PSTR(" ")); + write_to_lcd_P(component); write_to_lcd_P("}"); } diff --git a/Marlin/src/lcd/language/language_an.h b/Marlin/src/lcd/language/language_an.h index 56c785ab13..45d19e85c1 100644 --- a/Marlin/src/lcd/language/language_an.h +++ b/Marlin/src/lcd/language/language_an.h @@ -32,225 +32,263 @@ #define DISPLAY_CHARSET_ISO10646_1 #define NOT_EXTENDED_ISO10646_1_5X7 -#define WELCOME_MSG MACHINE_NAME _UxGT(" parada.") -#define MSG_MEDIA_INSERTED _UxGT("Tarcheta mesa") -#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") +namespace Language_an { + using namespace Language_en; // Inherit undefined strings from English -#define MSG_INFO_MENU _UxGT("Inf. Impresora") -#define MSG_INFO_PRINTER_MENU _UxGT("Inf. Impresora") -#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") + constexpr uint8_t CHARSIZE = 1; + PROGMEM Language_Str LANGUAGE = _UxGT("Aragonese"); -#if LCD_WIDTH >= 20 - #define MSG_INFO_PRINT_COUNT _UxGT("Conteo de impresion") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Completadas") - #define MSG_INFO_PRINT_TIME _UxGT("Tiempo total d'imp.") - #define MSG_INFO_PRINT_LONGEST _UxGT("Impresion mas larga") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Total d'extrusion") -#else - #define MSG_INFO_PRINT_COUNT _UxGT("Impresions") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Completadas") - #define MSG_INFO_PRINT_TIME _UxGT("Total") - #define MSG_INFO_PRINT_LONGEST _UxGT("Mas larga") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Extrusion") -#endif + PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" parada."); + PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Tarcheta mesa"); + PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Tarcheta sacada"); + PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Endstops"); // Max length 8 characters + PROGMEM Language_Str MSG_MAIN = _UxGT("Menu prencipal"); + PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Inicio automatico"); + PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Amortar motors"); + PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Levar a l'orichen"); + PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Orichen X"); + PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Orichen Y"); + PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Orichen Z"); + PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Orichen XYZ"); + 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") -#define MSG_INFO_MAX_TEMP _UxGT("Temperatura maxima") -#define MSG_INFO_PSU _UxGT("Fuente de aliment") + PROGMEM Language_Str MSG_INFO_MENU = _UxGT("Inf. Impresora"); + PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Inf. Impresora"); + 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") -#define MSG_DAC_PERCENT _UxGT("Driver %") -#define MSG_DAC_EEPROM_WRITE _UxGT("Escri. DAC EEPROM") -#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Resumir imp.") + #if LCD_WIDTH >= 20 + PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Conteo de impresion"); + PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Completadas"); + 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 -// -// Filament Change screens show up to 3 lines on a 4-line display -// ...or up to 2 lines on a 3-line display -// -#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Aguardand iniciar") + PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Temperatura menima"); + PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Temperatura maxima"); + PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Fuente de aliment"); -#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Meta o filamento") -#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("y prete lo boton") + PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Fuerza d'o driver"); + 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 - #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("d'o filamento") - #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 + // + // Filament Change screens show up to 3 lines on a 4-line display + // ...or up to 2 lines on a 3-line display + // -#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Aguardando a") -#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("expulsar filament") -#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Aguardando a") -#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("cargar filamento") -#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Aguardando impre.") -#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("pa continar") + #if LCD_HEIGHT >= 4 + // Up to 3 lines allowed + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Aguardand iniciar", "d'o filamento", "cambear")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Meta o filamento", "y prete lo boton", "pa continar...")); + #else // LCD_HEIGHT < 4 + // 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")); +} diff --git a/Marlin/src/lcd/language/language_bg.h b/Marlin/src/lcd/language/language_bg.h index 8367eb7990..7d1bc74751 100644 --- a/Marlin/src/lcd/language/language_bg.h +++ b/Marlin/src/lcd/language/language_bg.h @@ -28,120 +28,178 @@ * 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 MSG_MEDIA_INSERTED _UxGT("Картата е поставена") -#define MSG_MEDIA_REMOVED _UxGT("Картата е извадена") -#define MSG_MAIN _UxGT("Меню") -#define MSG_AUTOSTART _UxGT("Автостарт") -#define MSG_DISABLE_STEPPERS _UxGT("Изкл. двигатели") -#define MSG_AUTO_HOME _UxGT("Паркиране") -#define MSG_SET_HOME_OFFSETS _UxGT("Задай Начало") -#define MSG_SET_ORIGIN _UxGT("Изходна точка") -#define MSG_PREHEAT_1 _UxGT("Подгряване " PREHEAT_1_LABEL) -#define MSG_PREHEAT_1_N _UxGT("Подгряване " PREHEAT_1_LABEL) -#define MSG_PREHEAT_1_ALL _UxGT("Подгр. " PREHEAT_1_LABEL " Всички") -#define MSG_PREHEAT_1_BEDONLY _UxGT("Подгр. " PREHEAT_1_LABEL " Легло") -#define MSG_PREHEAT_1_SETTINGS _UxGT("Настройки " PREHEAT_1_LABEL) -#define MSG_PREHEAT_2 _UxGT("Подгряване " PREHEAT_2_LABEL) -#define MSG_PREHEAT_2_N _UxGT("Подгряване " PREHEAT_2_LABEL) -#define MSG_PREHEAT_2_ALL _UxGT("Подгр. " PREHEAT_2_LABEL " Всички") -#define MSG_PREHEAT_2_BEDONLY _UxGT("Подгр. " PREHEAT_2_LABEL " Легло") -#define MSG_PREHEAT_2_SETTINGS _UxGT("Настройки " PREHEAT_2_LABEL) -#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("Bed Z") -#define MSG_NOZZLE LCD_STR_THERMOMETER _UxGT(" Дюза") -#define MSG_BED LCD_STR_THERMOMETER _UxGT(" Легло") -#define MSG_FAN_SPEED _UxGT("Вентилатор") -#define MSG_FLOW _UxGT("Поток") -#define MSG_CONTROL _UxGT("Управление") -#define MSG_MIN LCD_STR_THERMOMETER _UxGT(" Минимум") -#define MSG_MAX LCD_STR_THERMOMETER _UxGT(" Максимум") -#define MSG_FACTOR LCD_STR_THERMOMETER _UxGT(" Фактор") -#define MSG_AUTOTEMP _UxGT("Авто-темп.") -#define MSG_LCD_ON _UxGT("Вкл.") -#define MSG_LCD_OFF _UxGT("Изкл.") -#define MSG_A_RETRACT _UxGT("A-откат") -#define MSG_A_TRAVEL _UxGT("A-travel") -#define MSG_STEPS_PER_MM _UxGT("Стъпки/mm") -#if IS_KINEMATIC - #define MSG_ASTEPS _UxGT("Aстъпки/mm") - #define MSG_BSTEPS _UxGT("Bстъпки/mm") - #define MSG_CSTEPS _UxGT("Cстъпки/mm") -#else - #define MSG_ASTEPS _UxGT("Xстъпки/mm") - #define MSG_BSTEPS _UxGT("Yстъпки/mm") - #define MSG_CSTEPS _UxGT("Zстъпки/mm") -#endif -#define MSG_ESTEPS _UxGT("E стъпки/mm") -#define MSG_E0_STEPS _UxGT("E1 стъпки/mm") -#define MSG_E1_STEPS _UxGT("E2 стъпки/mm") -#define MSG_E2_STEPS _UxGT("E3 стъпки/mm") -#define MSG_E3_STEPS _UxGT("E4 стъпки/mm") -#define MSG_E4_STEPS _UxGT("E5 стъпки/mm") -#define MSG_E5_STEPS _UxGT("E6 стъпки/mm") -#define MSG_TEMPERATURE _UxGT("Температура") -#define MSG_MOTION _UxGT("Движение") -#define MSG_FILAMENT _UxGT("Нишка") -#define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm3") -#define MSG_FILAMENT_DIAM _UxGT("Диам. нишка") -#define MSG_CONTRAST _UxGT("LCD контраст") -#define MSG_STORE_EEPROM _UxGT("Запази в EPROM") -#define MSG_LOAD_EEPROM _UxGT("Зареди от EPROM") -#define MSG_RESTORE_FAILSAFE _UxGT("Фабрични настройки") -#define MSG_REFRESH LCD_STR_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("Меню карта") -#define MSG_NO_MEDIA _UxGT("Няма карта") -#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("Откат mm") -#define MSG_CONTROL_RETRACT_SWAP _UxGT("Смяна Откат mm") -#define MSG_CONTROL_RETRACTF _UxGT("Откат V") -#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Скок mm") -#define MSG_CONTROL_RETRACT_RECOVER _UxGT("Възврат mm") -#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Смяна Възврат mm") -#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("Възврат V") -#define MSG_AUTORETRACT _UxGT("Автоoткат") -#define MSG_FILAMENTCHANGE _UxGT("Смяна нишка") -#define MSG_INIT_MEDIA _UxGT("Иниц. SD-Карта") -#define MSG_CHANGE_MEDIA _UxGT("Смяна SD-Карта") -#define MSG_ZPROBE_OUT _UxGT("Z-сондата е извадена") -#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_DELTA_CALIBRATE _UxGT("Делта Калибровка") -#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("Неправилен принтер") +#define DISPLAY_CHARSET_ISO10646_5 + +namespace Language_bg { + using namespace Language_en; // Inherit undefined strings from English + + constexpr uint8_t CHARSIZE = 2; + PROGMEM Language_Str LANGUAGE = _UxGT("Bulgarian"); + + 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("Паркиране"); + PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _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_2_LABEL; + 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; + 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("Bed Z"); + PROGMEM Language_Str MSG_NOZZLE = " " LCD_STR_THERMOMETER _UxGT(" Дюза"); + PROGMEM Language_Str MSG_NOZZLE_0 = " " LCD_STR_THERMOMETER _UxGT(" Дюза ") LCD_STR_N0; + PROGMEM Language_Str MSG_NOZZLE_1 = " " LCD_STR_THERMOMETER _UxGT(" Дюза ") LCD_STR_N1; + PROGMEM Language_Str MSG_NOZZLE_2 = " " LCD_STR_THERMOMETER _UxGT(" Дюза ") LCD_STR_N2; + PROGMEM Language_Str MSG_NOZZLE_3 = " " LCD_STR_THERMOMETER _UxGT(" Дюза ") LCD_STR_N3; + PROGMEM Language_Str MSG_NOZZLE_4 = " " LCD_STR_THERMOMETER _UxGT(" Дюза ") LCD_STR_N4; + PROGMEM Language_Str MSG_NOZZLE_5 = " " LCD_STR_THERMOMETER _UxGT(" Дюза ") LCD_STR_N5; + PROGMEM Language_Str MSG_BED = " " LCD_STR_THERMOMETER _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_A_RETRACT = _UxGT("A-откат"); + PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A-travel"); + PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Стъпки/mm"); + 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_E_STEPS = _UxGT("E стъпки/mm"); + PROGMEM Language_Str MSG_E0_STEPS = LCD_STR_E0 _UxGT(" стъпки/mm"); + PROGMEM Language_Str MSG_E1_STEPS = LCD_STR_E1 _UxGT(" стъпки/mm"); + PROGMEM Language_Str MSG_E2_STEPS = LCD_STR_E2 _UxGT(" стъпки/mm"); + PROGMEM Language_Str MSG_E3_STEPS = LCD_STR_E3 _UxGT(" стъпки/mm"); + PROGMEM Language_Str MSG_E4_STEPS = LCD_STR_E4 _UxGT(" стъпки/mm"); + 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("Неправилен принтер"); +} diff --git a/Marlin/src/lcd/language/language_ca.h b/Marlin/src/lcd/language/language_ca.h index 571d12bd1c..21d5329db3 100644 --- a/Marlin/src/lcd/language/language_ca.h +++ b/Marlin/src/lcd/language/language_ca.h @@ -28,236 +28,263 @@ * 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.") -#define MSG_MEDIA_INSERTED _UxGT("Targeta detectada.") -#define MSG_MEDIA_REMOVED _UxGT("Targeta extreta.") -#define MSG_LCD_ENDSTOPS _UxGT("Endstops") -#define MSG_MAIN _UxGT("Menú principal") -#define MSG_AUTOSTART _UxGT("Inici automatic") -#define MSG_DISABLE_STEPPERS _UxGT("Desactiva motors") -#define MSG_DEBUG_MENU _UxGT("Menu de depuracio") -#define MSG_PROGRESS_BAR_TEST _UxGT("Test barra progres") -#define MSG_AUTO_HOME _UxGT("Ves a l'origen") -#define MSG_AUTO_HOME_X _UxGT("X a origen") -#define MSG_AUTO_HOME_Y _UxGT("Y a origen") -#define MSG_AUTO_HOME_Z _UxGT("Z a origen") -#define MSG_LEVEL_BED_HOMING _UxGT("Origen XYZ") -#define MSG_LEVEL_BED_WAITING _UxGT("Premeu per iniciar") -#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Següent punt") -#define MSG_LEVEL_BED_DONE _UxGT("Anivellament fet!") -#define MSG_SET_HOME_OFFSETS _UxGT("Ajusta decalatge") -#define MSG_HOME_OFFSETS_APPLIED _UxGT("Decalatge aplicat") -#define MSG_SET_ORIGIN _UxGT("Estableix origen") -#define MSG_PREHEAT_1 _UxGT("Preescalfa " 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(" Llit") -#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" Conf.") -#define MSG_PREHEAT_2 _UxGT("Preescalfa " 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(" Llit") -#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" Conf.") -#define MSG_COOLDOWN _UxGT("Refreda") -#define MSG_SWITCH_PS_ON _UxGT("Switch power on") -#define MSG_SWITCH_PS_OFF _UxGT("Switch power off") -#define MSG_EXTRUDE _UxGT("Extrudeix") -#define MSG_RETRACT _UxGT("Retreu") -#define MSG_MOVE_AXIS _UxGT("Mou eixos") -#define MSG_BED_LEVELING _UxGT("Anivella llit") -#define MSG_LEVEL_BED _UxGT("Anivella llit") + PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" preparada."); + PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Targeta detectada."); + PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Targeta extreta."); + PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Endstops"); + PROGMEM Language_Str MSG_MAIN = _UxGT("Menú principal"); + PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Inici automatic"); + PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Desactiva motors"); + PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("Menu de depuracio"); + PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Test barra progres"); + PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Ves a l'origen"); + PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("X a origen"); + PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Y a origen"); + PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Z a origen"); + PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Origen XYZ"); + PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Premeu per iniciar"); + PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Següent punt"); + PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Anivellament fet!"); + PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Ajusta decalatge"); + PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Decalatge aplicat"); + PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Estableix origen"); + PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Preescalfa ") PREHEAT_1_LABEL; + PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Preescalfa ") PREHEAT_1_LABEL " " LCD_STR_N0; + PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Preescalfa ") PREHEAT_1_LABEL " " LCD_STR_N1; + PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Preescalfa ") PREHEAT_1_LABEL " " LCD_STR_N2; + PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Preescalfa ") PREHEAT_1_LABEL " " LCD_STR_N3; + PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Preescalfa ") PREHEAT_1_LABEL " " LCD_STR_N4; + PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Preescalfa ") 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(" Tot"); + PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" Llit"); + PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Preheat ") PREHEAT_1_LABEL _UxGT(" Conf."); + 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..") -#define MSG_FREE_XY _UxGT("XY lliures") -#define MSG_MOVE_X _UxGT("Mou X") -#define MSG_MOVE_Y _UxGT("Mou Y") -#define MSG_MOVE_Z _UxGT("Mou Z") -#define MSG_MOVE_E _UxGT("Extrusor") -#define MSG_MOVE_Z_DIST _UxGT("Mou %smm") -#define MSG_MOVE_01MM _UxGT("Mou 0.1mm") -#define MSG_MOVE_1MM _UxGT("Mou 1mm") -#define MSG_MOVE_10MM _UxGT("Mou 10mm") -#define MSG_SPEED _UxGT("Velocitat") -#define MSG_BED_Z _UxGT("Llit Z") -#define MSG_NOZZLE _UxGT("Nozzle") -#define MSG_BED _UxGT("Llit") -#define MSG_FAN_SPEED _UxGT("Vel. Ventilador") -#define MSG_FLOW _UxGT("Flux") -#define MSG_CONTROL _UxGT("Control") -#define MSG_MIN LCD_STR_THERMOMETER _UxGT(" Min") -#define MSG_MAX LCD_STR_THERMOMETER _UxGT(" Max") -#define MSG_FACTOR 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_VMAX _UxGT("Vmax ") -#define MSG_VMIN _UxGT("Vmin") -#define MSG_VTRAV_MIN _UxGT("VViatge min") -#define MSG_AMAX _UxGT("Accel. max ") -#define MSG_A_RETRACT _UxGT("Accel. retracc") -#define MSG_A_TRAVEL _UxGT("Accel. Viatge") -#define MSG_STEPS_PER_MM _UxGT("Passos/mm") -#if IS_KINEMATIC - #define MSG_ASTEPS _UxGT("Apassos/mm") - #define MSG_BSTEPS _UxGT("Bpassos/mm") - #define MSG_CSTEPS _UxGT("Cpassos/mm") -#else - #define MSG_ASTEPS _UxGT("Xpassos/mm") - #define MSG_BSTEPS _UxGT("Ypassos/mm") - #define MSG_CSTEPS _UxGT("Zpassos/mm") -#endif -#define MSG_ESTEPS _UxGT("Epassos/mm") -#define MSG_E0_STEPS _UxGT("E1passos/mm") -#define MSG_E1_STEPS _UxGT("E2passos/mm") -#define MSG_E2_STEPS _UxGT("E3passos/mm") -#define MSG_E3_STEPS _UxGT("E4passos/mm") -#define MSG_E4_STEPS _UxGT("E5passos/mm") -#define MSG_E5_STEPS _UxGT("E6passos/mm") -#define MSG_TEMPERATURE _UxGT("Temperatura") -#define MSG_MOTION _UxGT("Moviment") -#define MSG_FILAMENT _UxGT("Filament") -#define MSG_VOLUMETRIC_ENABLED _UxGT("E en mm3") -#define MSG_FILAMENT_DIAM _UxGT("Diam. Fil.") -#define MSG_CONTRAST _UxGT("Contrast de LCD") -#define MSG_STORE_EEPROM _UxGT("Desa memoria") -#define MSG_LOAD_EEPROM _UxGT("Carrega memoria") -#define MSG_RESTORE_FAILSAFE _UxGT("Restaura valors") -#define MSG_REFRESH _UxGT("Actualitza") -#define MSG_WATCH _UxGT("Pantalla Info.") -#define MSG_PREPARE _UxGT("Prepara") -#define MSG_TUNE _UxGT("Ajusta") -#define MSG_PAUSE_PRINT _UxGT("Pausa impressio") -#define MSG_RESUME_PRINT _UxGT("Repren impressio") -#define MSG_STOP_PRINT _UxGT("Atura impressio.") -#define MSG_MEDIA_MENU _UxGT("Imprimeix de SD") -#define MSG_NO_MEDIA _UxGT("No hi ha targeta") -#define MSG_DWELL _UxGT("En repos...") -#define MSG_USERWAIT _UxGT("Esperant usuari..") -#define MSG_PRINT_ABORTED _UxGT("Imp. cancelada") -#define MSG_NO_MOVE _UxGT("Sense moviment.") -#define MSG_KILLED _UxGT("MATAT.") -#define MSG_STOPPED _UxGT("ATURADA.") -#define MSG_CONTROL_RETRACT _UxGT("Retreu mm") -#define MSG_CONTROL_RETRACT_SWAP _UxGT("Swap Retreure mm") -#define MSG_CONTROL_RETRACTF _UxGT("Retreu V") -#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Aixeca 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 V") -#define MSG_AUTORETRACT _UxGT("Auto retraccio") -#define MSG_FILAMENTCHANGE _UxGT("Canvia filament") -#define MSG_INIT_MEDIA _UxGT("Inicialitza SD") -#define MSG_CHANGE_MEDIA _UxGT("Canvia SD") -#define MSG_ZPROBE_OUT _UxGT("Sonda Z fora") -#define MSG_BLTOUCH_RESET _UxGT("Reinicia BLTouch") -#define MSG_HOME_FIRST _UxGT("Home %s%s%s primer") -#define MSG_ZPROBE_ZOFFSET _UxGT("Decalatge Z") -#define MSG_BABYSTEP_X _UxGT("Micropas X") -#define MSG_BABYSTEP_Y _UxGT("Micropas Y") -#define MSG_BABYSTEP_Z _UxGT("Micropas Z") -#define MSG_ENDSTOP_ABORT _UxGT("Cancel. Endstop") -#define MSG_HEATING_FAILED_LCD _UxGT("Error al escalfar") -#define MSG_ERR_REDUNDANT_TEMP _UxGT("Err: TEMP REDUNDANT") -#define MSG_THERMAL_RUNAWAY _UxGT("THERMAL RUNAWAY") -#define MSG_ERR_MAXTEMP _UxGT("Err: TEMP MAXIMA") -#define MSG_ERR_MINTEMP _UxGT("Err: TEMP MINIMA") -#define MSG_ERR_MAXTEMP_BED _UxGT("Err: TEMPMAX LLIT") -#define MSG_ERR_MINTEMP_BED _UxGT("Err: TEMPMIN LLIT") -#define MSG_ERR_Z_HOMING _UxGT("Home XY primer") -#define MSG_HALTED _UxGT("IMPRESSORA PARADA") -#define MSG_PLEASE_RESET _UxGT("Reinicieu") -#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("Escalfant...") -#define MSG_BED_HEATING _UxGT("Escalfant llit...") -#define MSG_DELTA_CALIBRATE _UxGT("Calibratge 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 el centre") + PROGMEM Language_Str MSG_MOVING = _UxGT("Movent.."); + PROGMEM Language_Str MSG_FREE_XY = _UxGT("XY lliures"); + PROGMEM Language_Str MSG_MOVE_X = _UxGT("Mou X"); + PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Mou Y"); + PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Mou 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("Mou %smm"); + PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Mou 0.1mm"); + PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Mou 1mm"); + PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Mou 10mm"); + PROGMEM Language_Str MSG_SPEED = _UxGT("Velocitat"); + PROGMEM Language_Str MSG_BED_Z = _UxGT("Llit 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("Llit"); + PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Vel. Ventilador"); + PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Vel. Ventilador 1"); + PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Vel. Ventilador 2"); + PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Vel. Ventilador 3"); + PROGMEM Language_Str MSG_FLOW = _UxGT("Flux"); + PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Flux ") LCD_STR_N0; + PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Flux ") LCD_STR_N1; + PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Flux ") LCD_STR_N2; + PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Flux ") LCD_STR_N3; + PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Flux ") LCD_STR_N4; + PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Flux ") LCD_STR_N5; + PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("VViatge min"); + PROGMEM Language_Str MSG_AMAX_A = _UxGT("Accel. max ") LCD_STR_A; + PROGMEM Language_Str MSG_AMAX_B = _UxGT("Accel. max ") LCD_STR_B; + PROGMEM Language_Str MSG_AMAX_C = _UxGT("Accel. max ") LCD_STR_C; + PROGMEM Language_Str MSG_AMAX_E = _UxGT("Accel. max ") LCD_STR_E; + PROGMEM Language_Str MSG_AMAX_E0 = _UxGT("Accel. max ") LCD_STR_E0; + PROGMEM Language_Str MSG_AMAX_E1 = _UxGT("Accel. max ") LCD_STR_E1; + PROGMEM Language_Str MSG_AMAX_E2 = _UxGT("Accel. max ") LCD_STR_E2; + PROGMEM Language_Str MSG_AMAX_E3 = _UxGT("Accel. max ") LCD_STR_E3; + PROGMEM Language_Str MSG_AMAX_E4 = _UxGT("Accel. max ") LCD_STR_E4; + PROGMEM Language_Str MSG_AMAX_E5 = _UxGT("Accel. max ") LCD_STR_E5; + PROGMEM Language_Str MSG_A_RETRACT = _UxGT("Accel. retracc"); + PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("Accel. Viatge"); + PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Passos/mm"); + PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("passos/mm"); + PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("passos/mm"); + PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("passos/mm"); + PROGMEM Language_Str MSG_E_STEPS = _UxGT("Epassos/mm"); + PROGMEM Language_Str MSG_E0_STEPS = LCD_STR_E0 _UxGT("passos/mm"); + PROGMEM Language_Str MSG_E1_STEPS = LCD_STR_E1 _UxGT("passos/mm"); + PROGMEM Language_Str MSG_E2_STEPS = LCD_STR_E2 _UxGT("passos/mm"); + PROGMEM Language_Str MSG_E3_STEPS = LCD_STR_E3 _UxGT("passos/mm"); + PROGMEM Language_Str MSG_E4_STEPS = LCD_STR_E4 _UxGT("passos/mm"); + PROGMEM Language_Str MSG_E5_STEPS = LCD_STR_E5 _UxGT("passos/mm"); + PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura"); + PROGMEM Language_Str MSG_MOTION = _UxGT("Moviment"); + 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. 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("Contrast de LCD"); + PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Desa memoria"); + PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Carrega memoria"); + PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Restaura valors"); + PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Actualitza"); + PROGMEM Language_Str MSG_WATCH = _UxGT("Pantalla Info."); + PROGMEM Language_Str MSG_PREPARE = _UxGT("Prepara"); + PROGMEM Language_Str MSG_TUNE = _UxGT("Ajusta"); + PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Pausa impressio"); + PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Repren impressio"); + PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Atura impressio."); + PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Imprimeix de SD"); + PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("No hi ha targeta"); + PROGMEM Language_Str MSG_DWELL = _UxGT("En repos..."); + PROGMEM Language_Str MSG_USERWAIT = _UxGT("Esperant usuari.."); + PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Imp. cancelada"); + PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Sense moviment."); + PROGMEM Language_Str MSG_KILLED = _UxGT("MATAT."); + PROGMEM Language_Str MSG_STOPPED = _UxGT("ATURADA."); + PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Retreu mm"); + PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Swap Retreure mm"); + PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Retreu V"); + PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Aixeca 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 V"); + PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Auto retraccio"); + PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Canvia filament"); + PROGMEM Language_Str MSG_FILAMENTCHANGE_E0 = _UxGT("Canvia filament ") LCD_STR_E0; + PROGMEM Language_Str MSG_FILAMENTCHANGE_E1 = _UxGT("Canvia filament ") LCD_STR_E1; + PROGMEM Language_Str MSG_FILAMENTCHANGE_E2 = _UxGT("Canvia filament ") LCD_STR_E2; + PROGMEM Language_Str MSG_FILAMENTCHANGE_E3 = _UxGT("Canvia filament ") LCD_STR_E3; + PROGMEM Language_Str MSG_FILAMENTCHANGE_E4 = _UxGT("Canvia filament ") LCD_STR_E4; + PROGMEM Language_Str MSG_FILAMENTCHANGE_E5 = _UxGT("Canvia filament ") LCD_STR_E5; + PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Inicialitza SD"); + PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Canvia SD"); + PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sonda Z fora"); + PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("Reinicia BLTouch"); + PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("Home %s%s%s primer"); + PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Decalatge Z"); + PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Micropas X"); + PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Micropas Y"); + PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Micropas Z"); + PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Cancel. Endstop"); + PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Error al escalfar"); + PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("Err: TEMP REDUNDANT"); + PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("THERMAL RUNAWAY"); + PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("Err: TEMP MAXIMA"); + PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("Err: TEMP MINIMA"); + PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("Home XY primer"); + PROGMEM Language_Str MSG_HALTED = _UxGT("IMPRESSORA PARADA"); + PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Reinicieu"); + 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("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.") -#define MSG_INFO_PRINTER_MENU _UxGT("Info Impressora") -#define MSG_INFO_STATS_MENU _UxGT("Estadistiques") -#define MSG_INFO_BOARD_MENU _UxGT("Info placa") -#define MSG_INFO_THERMISTOR_MENU _UxGT("Termistors") -#define MSG_INFO_EXTRUDERS _UxGT("Extrusors") -#define MSG_INFO_BAUDRATE _UxGT("Baud") -#define MSG_INFO_PROTOCOL _UxGT("Protocol") -#define MSG_CASE_LIGHT _UxGT("Llum") + PROGMEM Language_Str MSG_INFO_MENU = _UxGT("Quant a la impr."); + PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Info Impressora"); + PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Estadistiques"); + PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Info placa"); + PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Termistors"); + PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Extrusors"); + PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("Baud"); + PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Protocol"); + PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Llum"); -#if LCD_WIDTH >= 20 - #define MSG_INFO_PRINT_COUNT _UxGT("Total impressions") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Acabades") - #define MSG_INFO_PRINT_TIME _UxGT("Temps imprimint") - #define MSG_INFO_PRINT_LONGEST _UxGT("Treball mes llarg") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Total extrudit") -#else - #define MSG_INFO_PRINT_COUNT _UxGT("Impressions") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Acabades") - #define MSG_INFO_PRINT_TIME _UxGT("Total") - #define MSG_INFO_PRINT_LONGEST _UxGT("Mes llarg") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Extrudit") -#endif + #if LCD_WIDTH >= 20 + PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Total impressions"); + PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Acabades"); + PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Temps imprimint"); + PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Treball mes llarg"); + PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Total extrudit"); + #else + PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Impressions"); + PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Acabades"); + PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Total"); + PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Mes llarg"); + PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Extrudit"); + #endif -#define MSG_INFO_MIN_TEMP _UxGT("Temp. mínima") -#define MSG_INFO_MAX_TEMP _UxGT("Temp. màxima") -#define MSG_INFO_PSU _UxGT("Font alimentacio") + PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Temp. mínima"); + PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Temp. màxima"); + PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Font alimentacio"); -#define MSG_DRIVE_STRENGTH _UxGT("Força motor") -#define MSG_DAC_PERCENT _UxGT("Driver %") -#define MSG_DAC_EEPROM_WRITE _UxGT("DAC EEPROM Write") -#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Repren impressió") + PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Força motor"); + PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Driver %"); + PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC EEPROM Write"); + 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 -// ...or up to 2 lines on a 3-line display -// -#if LCD_HEIGHT >= 4 - #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Esperant per") - #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("iniciar el canvi") - #define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("de filament") - #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Esperant per") - #define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("treure filament") - #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Poseu filament") - #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("i premeu el boto") - #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("per continuar...") - #define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Premeu boto per") - #define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("escalfar nozzle.") - #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Escalfant nozzle") - #define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Espereu...") - #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Esperant carrega") - #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("de filament") - #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Esperant per") - #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 + // + // 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("Esperant per", "iniciar el canvi", "de filament")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Esperant per", "treure filament")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Poseu filament", "i premeu el boto", "per continuar...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Premeu boto per", "escalfar nozzle.")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("Escalfant nozzle", "Espereu...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Esperant carrega", "de filament")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("Esperant per", "reprendre")); + #else // LCD_HEIGHT < 4 + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Espereu...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Expulsant...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Insereix i prem")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("Escalfant...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Carregant...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Reprenent...")); + #endif // LCD_HEIGHT < 4 +} diff --git a/Marlin/src/lcd/language/language_cz.h b/Marlin/src/lcd/language/language_cz.h index 38a4d0f2bc..ebb8186e76 100644 --- a/Marlin/src/lcd/language/language_cz.h +++ b/Marlin/src/lcd/language/language_cz.h @@ -35,521 +35,578 @@ */ #define DISPLAY_CHARSET_ISO10646_CZ -#define THIS_LANGUAGES_SPECIAL_SYMBOLS _UxGT("áÁčČďĎéÉěĚíÍňŇóÓřŘšŠťŤúÚůŮýÝžŽ³") -#define CHARSIZE 2 -#define WELCOME_MSG MACHINE_NAME _UxGT(" připraven.") -#define MSG_YES _UxGT("ANO") -#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") +namespace Language_cz { + using namespace Language_en; // Inherit undefined strings from English -#define MSG_USER_MENU _UxGT("Vlastní příkazy") -#define MSG_IDEX_MENU _UxGT("Režim IDEX") -#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") + constexpr uint8_t CHARSIZE = 2; + PROGMEM Language_Str LANGUAGE = _UxGT("Czech"); -#define MSG_UBL_DOING_G29 _UxGT("Provádím G29") -#define MSG_UBL_TOOLS _UxGT("UBL nástroje") -#define MSG_UBL_LEVEL_BED _UxGT("Unified Bed Leveling") -#define MSG_UBL_MANUAL_MESH _UxGT("Manuální síť bodů") -#define MSG_UBL_BC_INSERT _UxGT("Vložte kartu, změřte") -#define MSG_UBL_BC_INSERT2 _UxGT("Změřte") -#define MSG_UBL_BC_REMOVE _UxGT("Odstraňte a změřte") -#define MSG_UBL_MOVING_TO_NEXT _UxGT("Přesun na další") -#define MSG_UBL_ACTIVATE_MESH _UxGT("Aktivovat UBL") -#define MSG_UBL_DEACTIVATE_MESH _UxGT("Deaktivovat 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 sítě bodů") -#define MSG_UBL_EDIT_CUSTOM_MESH _UxGT("Upravit vlastní síť") -#define MSG_UBL_FINE_TUNE_MESH _UxGT("Doladit síť bodů") -#define MSG_UBL_DONE_EDITING_MESH _UxGT("Konec úprav sítě") -#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Vlastní síť") -#define MSG_UBL_BUILD_MESH_MENU _UxGT("Vytvořit síť") -#define MSG_UBL_BUILD_MESH_M1 _UxGT("Síť bodů " PREHEAT_1_LABEL) -#define MSG_UBL_BUILD_MESH_M2 _UxGT("Síť bodů " PREHEAT_2_LABEL) -#define MSG_UBL_BUILD_COLD_MESH _UxGT("Studená síť bodů") -#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Upravit výšku sítě") -#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Výška") -#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("Zkontrolovat síť") -#define MSG_UBL_VALIDATE_MESH_M1 _UxGT("Kontrola sítě " PREHEAT_1_LABEL) -#define MSG_UBL_VALIDATE_MESH_M2 _UxGT("Kontrola sítě " PREHEAT_2_LABEL) -#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Kontrola vlast. sítě") -#define MSG_UBL_CONTINUE_MESH _UxGT("Pokračovat v síťi") -#define MSG_UBL_MESH_LEVELING _UxGT("Síťové rovnání") -#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("3-bodové rovnání") -#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Mřížkové rovnání") -#define MSG_UBL_MESH_LEVEL _UxGT("Srovnat podložku") -#define MSG_UBL_SIDE_POINTS _UxGT("Postranní body") -#define MSG_UBL_MAP_TYPE _UxGT("Typ sítě bodu") -#define MSG_UBL_OUTPUT_MAP _UxGT("Exportovat síť") -#define MSG_UBL_OUTPUT_MAP_HOST _UxGT("Exportovat do PC") -#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Exportovat 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 mřížky") -#define MSG_UBL_MANUAL_FILLIN _UxGT("Ruční hustota") -#define MSG_UBL_SMART_FILLIN _UxGT("Chytrá hustota") -#define MSG_UBL_FILLIN_MESH _UxGT("Zaplnit mřížku") -#define MSG_UBL_INVALIDATE_ALL _UxGT("Zrušit všechno") -#define MSG_UBL_INVALIDATE_CLOSEST _UxGT("Zrušit poslední") -#define MSG_UBL_FINE_TUNE_ALL _UxGT("Upravit všechny") -#define MSG_UBL_FINE_TUNE_CLOSEST _UxGT("Upravit poslední") -#define MSG_UBL_STORAGE_MESH_MENU _UxGT("Uložiště sítí") -#define MSG_UBL_STORAGE_SLOT _UxGT("Paměťový slot") -#define MSG_UBL_LOAD_MESH _UxGT("Načíst síť bodů") -#define MSG_UBL_SAVE_MESH _UxGT("Uložit síť bodů") -#define MSG_MESH_LOADED _UxGT("Síť %i načtena") -#define MSG_MESH_SAVED _UxGT("Síť %i uložena") -#define MSG_UBL_NO_STORAGE _UxGT("Nedostatek místa") -#define MSG_UBL_SAVE_ERROR _UxGT("Ch.: Uložit UBL") -#define MSG_UBL_RESTORE_ERROR _UxGT("Ch.: Obnovit UBL") -#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Konec Z-Offsetu") -#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("UBL Postupně") + PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" připraven."); + PROGMEM Language_Str MSG_YES = _UxGT("ANO"); + PROGMEM Language_Str MSG_NO = _UxGT("NE"); + PROGMEM Language_Str MSG_BACK = _UxGT("Zpět"); + PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Karta vložena"); + PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Karta vyjmuta"); + PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Endstopy"); // max 8 znaku + PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("Soft Endstopy"); + PROGMEM Language_Str MSG_MAIN = _UxGT("Hlavní nabídka"); + PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("Další nastavení"); + PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("Konfigurace"); + PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Autostart"); + PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Uvolnit motory"); + PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("Nabídka ladění"); + #if LCD_WIDTH >= 20 + PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Test ukaz. průběhu"); + #else + PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Test uk. průběhu"); + #endif + PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Domovská pozice"); + PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Domů osa X"); + PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Domů osa Y"); + PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Domů osa Z"); + PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("Auto srovnání Z"); + PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Měření podložky"); + PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Kliknutím spusťte"); + PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Další bod"); + PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Měření hotovo!"); + PROGMEM Language_Str MSG_Z_FADE_HEIGHT = _UxGT("Výška srovnávání"); + PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Nastavit ofsety"); + PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Ofsety nastaveny"); + PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Nastavit počátek"); + PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Zahřát ") PREHEAT_1_LABEL; + PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Zahřát ") PREHEAT_1_LABEL " " LCD_STR_N0; + PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Zahřát ") PREHEAT_1_LABEL " " LCD_STR_N1; + PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Zahřát ") PREHEAT_1_LABEL " " LCD_STR_N2; + PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Zahřát ") PREHEAT_1_LABEL " " LCD_STR_N3; + PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Zahřát ") PREHEAT_1_LABEL " " LCD_STR_N4; + PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Zahřát ") PREHEAT_1_LABEL " " LCD_STR_N5; + PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Zahřát ") PREHEAT_1_LABEL _UxGT(" end"); + PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Zahřát ") PREHEAT_1_LABEL _UxGT(" end ") LCD_STR_N0; + PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Zahřát ") PREHEAT_1_LABEL _UxGT(" end ") LCD_STR_N1; + PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Zahřát ") PREHEAT_1_LABEL _UxGT(" end ") LCD_STR_N2; + PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Zahřát ") PREHEAT_1_LABEL _UxGT(" end ") LCD_STR_N3; + PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Zahřát ") PREHEAT_1_LABEL _UxGT(" end ") LCD_STR_N4; + PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Zahřát ") PREHEAT_1_LABEL _UxGT(" end ") LCD_STR_N5; + PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Zahřát ") PREHEAT_1_LABEL _UxGT(" vše"); + PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Zahřát ") PREHEAT_1_LABEL _UxGT(" podlož"); + PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Zahřát ") PREHEAT_1_LABEL _UxGT(" nast"); + PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Zahřát ") PREHEAT_2_LABEL; + PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Zahřát ") PREHEAT_2_LABEL " " LCD_STR_N0; + PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Zahřát ") PREHEAT_2_LABEL " " LCD_STR_N1; + PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Zahřát ") PREHEAT_2_LABEL " " LCD_STR_N2; + PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Zahřát ") PREHEAT_2_LABEL " " LCD_STR_N3; + PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Zahřát ") PREHEAT_2_LABEL " " LCD_STR_N4; + PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Zahřát ") PREHEAT_2_LABEL " " LCD_STR_N5; + PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Zahřát ") PREHEAT_2_LABEL _UxGT(" end"); + PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Zahřát ") PREHEAT_2_LABEL _UxGT(" end ") LCD_STR_N0; + PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Zahřát ") PREHEAT_2_LABEL _UxGT(" end ") LCD_STR_N1; + 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") -#define MSG_LEDS _UxGT("Světla") -#define MSG_LED_PRESETS _UxGT("Světla Předvolby") -#define MSG_SET_LEDS_RED _UxGT("Červená") -#define MSG_SET_LEDS_ORANGE _UxGT("Oranžová") -#define MSG_SET_LEDS_YELLOW _UxGT("Žlutá") -#define MSG_SET_LEDS_GREEN _UxGT("Zelená") -#define MSG_SET_LEDS_BLUE _UxGT("Modrá") -#define MSG_SET_LEDS_INDIGO _UxGT("Indigo") -#define MSG_SET_LEDS_VIOLET _UxGT("Fialová") -#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") + PROGMEM Language_Str MSG_USER_MENU = _UxGT("Vlastní příkazy"); + PROGMEM Language_Str MSG_IDEX_MENU = _UxGT("Režim IDEX"); + PROGMEM Language_Str MSG_OFFSETS_MENU = _UxGT("Ofsety nástrojů"); + PROGMEM Language_Str MSG_IDEX_MODE_AUTOPARK = _UxGT("Auto-Park"); + PROGMEM Language_Str MSG_IDEX_MODE_DUPLICATE = _UxGT("Duplikace"); + PROGMEM Language_Str MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Zrcadlení"); + 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"); -#define MSG_MOVING _UxGT("Posouvání...") -#define MSG_FREE_XY _UxGT("Uvolnit XY") -#define MSG_MOVE_X _UxGT("Posunout X") -#define MSG_MOVE_Y _UxGT("Posunout Y") -#define MSG_MOVE_Z _UxGT("Posunout Z") -#define MSG_MOVE_E _UxGT("Extrudér") -#define MSG_HOTEND_TOO_COLD _UxGT("Hotend je studený") -#define MSG_MOVE_Z_DIST _UxGT("Posunout o %smm") -#define MSG_MOVE_01MM _UxGT("Posunout o 0,1mm") -#define MSG_MOVE_1MM _UxGT("Posunout o 1mm") -#define MSG_MOVE_10MM _UxGT("Posunout o 10mm") -#define MSG_SPEED _UxGT("Rychlost") -#define MSG_BED_Z _UxGT("Výška podl.") -#define MSG_NOZZLE _UxGT("Tryska") -#define MSG_BED _UxGT("Podložka") -#define MSG_CHAMBER _UxGT("Komora") -#define MSG_FAN_SPEED _UxGT("Rychlost vent.") -#define MSG_EXTRA_FAN_SPEED _UxGT("Rychlost ex. vent.") -#define MSG_FLOW _UxGT("Průtok") -#define MSG_CONTROL _UxGT("Ovládaní") -#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("Autoteplota") -#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("Vybrat") -#define MSG_ACC _UxGT("Zrychl") -#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("Odchylka spoje") -#define MSG_VELOCITY _UxGT("Rychlost") -#define MSG_VMAX _UxGT("Vmax ") -#define MSG_VMIN _UxGT("Vmin") -#define MSG_VTRAV_MIN _UxGT("VTrav min") -#define MSG_ACCELERATION _UxGT("Akcelerace") -#define MSG_AMAX _UxGT("Amax ") -#define MSG_A_RETRACT _UxGT("A-retrakt") -#define MSG_A_TRAVEL _UxGT("A-přejezd") -#define MSG_STEPS_PER_MM _UxGT("Kroků/mm") -#if IS_KINEMATIC - #define MSG_ASTEPS _UxGT("Akroků/mm") - #define MSG_BSTEPS _UxGT("Bkroků/mm") - #define MSG_CSTEPS _UxGT("Ckroků/mm") -#else - #define MSG_ASTEPS _UxGT("Xkroků/mm") - #define MSG_BSTEPS _UxGT("Ykroků/mm") - #define MSG_CSTEPS _UxGT("Zkroků/mm") -#endif -#define MSG_ESTEPS _UxGT("Ekroků/mm") -#define MSG_E0_STEPS _UxGT("E1kroků/mm") -#define MSG_E1_STEPS _UxGT("E2kroků/mm") -#define MSG_E2_STEPS _UxGT("E3kroků/mm") -#define MSG_E3_STEPS _UxGT("E4kroků/mm") -#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") + PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("Provádím G29"); + PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("UBL nástroje"); + PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("Unified Bed Leveling"); + PROGMEM Language_Str MSG_UBL_MANUAL_MESH = _UxGT("Manuální síť bodů"); + PROGMEM Language_Str MSG_UBL_BC_INSERT = _UxGT("Vložte kartu, změřte"); + PROGMEM Language_Str MSG_UBL_BC_INSERT2 = _UxGT("Změřte"); + PROGMEM Language_Str MSG_UBL_BC_REMOVE = _UxGT("Odstraňte a změřte"); + PROGMEM Language_Str MSG_UBL_MOVING_TO_NEXT = _UxGT("Přesun na další"); + PROGMEM Language_Str MSG_UBL_ACTIVATE_MESH = _UxGT("Aktivovat UBL"); + PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("Deaktivovat 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 sítě bodů"); + PROGMEM Language_Str MSG_UBL_EDIT_CUSTOM_MESH = _UxGT("Upravit vlastní síť"); + PROGMEM Language_Str MSG_UBL_FINE_TUNE_MESH = _UxGT("Doladit síť bodů"); + PROGMEM Language_Str MSG_UBL_DONE_EDITING_MESH = _UxGT("Konec úprav sítě"); + PROGMEM Language_Str MSG_UBL_BUILD_CUSTOM_MESH = _UxGT("Vlastní síť"); + PROGMEM Language_Str MSG_UBL_BUILD_MESH_MENU = _UxGT("Vytvořit síť"); + PROGMEM Language_Str MSG_UBL_BUILD_MESH_M1 = _UxGT("Síť bodů ") PREHEAT_1_LABEL; + PROGMEM Language_Str MSG_UBL_BUILD_MESH_M2 = _UxGT("Síť bodů ") PREHEAT_2_LABEL; + PROGMEM Language_Str MSG_UBL_BUILD_COLD_MESH = _UxGT("Studená síť bodů"); + PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_ADJUST = _UxGT("Upravit výšku sítě"); + PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_AMOUNT = _UxGT("Výška"); + PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_MENU = _UxGT("Zkontrolovat síť"); + PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M1 = _UxGT("Kontrola sítě ") PREHEAT_1_LABEL; + PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M2 = _UxGT("Kontrola sítě ") PREHEAT_2_LABEL; + PROGMEM Language_Str MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("Kontrola vlast. sítě"); + PROGMEM Language_Str MSG_UBL_CONTINUE_MESH = _UxGT("Pokračovat v síťi"); + PROGMEM Language_Str MSG_UBL_MESH_LEVELING = _UxGT("Síťové rovnání"); + PROGMEM Language_Str MSG_UBL_3POINT_MESH_LEVELING = _UxGT("3-bodové rovnání"); + PROGMEM Language_Str MSG_UBL_GRID_MESH_LEVELING = _UxGT("Mřížkové rovnání"); + PROGMEM Language_Str MSG_UBL_MESH_LEVEL = _UxGT("Srovnat podložku"); + PROGMEM Language_Str MSG_UBL_SIDE_POINTS = _UxGT("Postranní body"); + PROGMEM Language_Str MSG_UBL_MAP_TYPE = _UxGT("Typ sítě bodu"); + PROGMEM Language_Str MSG_UBL_OUTPUT_MAP = _UxGT("Exportovat síť"); + PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_HOST = _UxGT("Exportovat do PC"); + PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_CSV = _UxGT("Exportovat 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 mřížky"); + PROGMEM Language_Str MSG_UBL_MANUAL_FILLIN = _UxGT("Ruční hustota"); + PROGMEM Language_Str MSG_UBL_SMART_FILLIN = _UxGT("Chytrá hustota"); + PROGMEM Language_Str MSG_UBL_FILLIN_MESH = _UxGT("Zaplnit mřížku"); + PROGMEM Language_Str MSG_UBL_INVALIDATE_ALL = _UxGT("Zrušit všechno"); + PROGMEM Language_Str MSG_UBL_INVALIDATE_CLOSEST = _UxGT("Zrušit poslední"); + PROGMEM Language_Str MSG_UBL_FINE_TUNE_ALL = _UxGT("Upravit všechny"); + PROGMEM Language_Str MSG_UBL_FINE_TUNE_CLOSEST = _UxGT("Upravit poslední"); + PROGMEM Language_Str MSG_UBL_STORAGE_MESH_MENU = _UxGT("Uložiště sítí"); + PROGMEM Language_Str MSG_UBL_STORAGE_SLOT = _UxGT("Paměťový slot"); + PROGMEM Language_Str MSG_UBL_LOAD_MESH = _UxGT("Načíst síť bodů"); + PROGMEM Language_Str MSG_UBL_SAVE_MESH = _UxGT("Uložit síť bodů"); + PROGMEM Language_Str MSG_MESH_LOADED = _UxGT("M117 Síť %i načtena"); + PROGMEM Language_Str MSG_MESH_SAVED = _UxGT("M117 Síť %i uložena"); + PROGMEM Language_Str MSG_UBL_NO_STORAGE = _UxGT("Nedostatek místa"); + PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("Ch.: Uložit UBL"); + PROGMEM Language_Str MSG_UBL_RESTORE_ERROR = _UxGT("Ch.: Obnovit UBL"); + PROGMEM Language_Str MSG_UBL_Z_OFFSET_STOPPED = _UxGT("Konec Z-Offsetu"); + PROGMEM Language_Str MSG_UBL_STEP_BY_STEP_MENU = _UxGT("UBL Postupně"); + PROGMEM Language_Str MSG_UBL_1_BUILD_COLD_MESH = _UxGT("1. Studená síť bodů"); + PROGMEM Language_Str MSG_UBL_2_SMART_FILLIN = _UxGT("2. Chytrá hustota"); + PROGMEM Language_Str MSG_UBL_3_VALIDATE_MESH_MENU = _UxGT("3. Zkontrolovat síť"); + PROGMEM Language_Str MSG_UBL_4_FINE_TUNE_ALL = _UxGT("4. Upravit všechny"); + PROGMEM Language_Str MSG_UBL_5_VALIDATE_MESH_MENU = _UxGT("5. Zkontrolovat síť"); + PROGMEM Language_Str MSG_UBL_6_FINE_TUNE_ALL = _UxGT("6. Upravit všechny"); + PROGMEM Language_Str MSG_UBL_7_SAVE_MESH = _UxGT("7. Uložit síť bodů"); -#define MSG_INIT_MEDIA _UxGT("Načíst SD kartu") -#define MSG_CHANGE_MEDIA _UxGT("Vyměnit SD kartu") -#define MSG_ZPROBE_OUT _UxGT("Sonda Z mimo podl") -#define MSG_SKEW_FACTOR _UxGT("Faktor zkosení") -#define MSG_BLTOUCH _UxGT("BLTouch") -#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch self-test") -#define MSG_BLTOUCH_RESET _UxGT("BLTouch reset") -#define MSG_BLTOUCH_DEPLOY _UxGT("BLTouch vysunout") -#define MSG_BLTOUCH_SW_MODE _UxGT("SW výsun BLTouch") -#define MSG_BLTOUCH_5V_MODE _UxGT("BLTouch 5V režim") -#define MSG_BLTOUCH_OD_MODE _UxGT("BLTouch OD režim") -#define MSG_BLTOUCH_STOW _UxGT("BLTouch zasunout") -#define MSG_MANUAL_DEPLOY _UxGT("Vysunout Z-sondu") -#define MSG_MANUAL_STOW _UxGT("Zasunout Z-sondu") -#define MSG_HOME_FIRST _UxGT("Domů %s%s%s první") -#define MSG_ZPROBE_ZOFFSET _UxGT("Z ofset") -#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("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") + PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("Nastavení LED"); + PROGMEM Language_Str MSG_LEDS = _UxGT("Světla"); + PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("Světla Předvolby"); + PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("Červená"); + PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("Oranžová"); + PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("Žlutá"); + PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("Zelená"); + PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("Modrá"); + PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("Indigo"); + PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Fialová"); + PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("Bílá"); + PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("Výchozí"); + PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("Vlastní světla"); + PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Červená intenzita"); + PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Zelená intezita"); + PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("Modrá intenzita"); + PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("Bílá intenzita"); + PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("Jas"); -#if LCD_WIDTH >= 20 - #define MSG_INFO_PRINT_COUNT _UxGT("Počet tisků") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Dokončeno") - #define MSG_INFO_PRINT_TIME _UxGT("Celkový čas") - #define MSG_INFO_PRINT_LONGEST _UxGT("Nejdelší tisk") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Celkem vytlačeno") -#else - #define MSG_INFO_PRINT_COUNT _UxGT("Tisky") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Hotovo") - #define MSG_INFO_PRINT_TIME _UxGT("Čas") - #define MSG_INFO_PRINT_LONGEST _UxGT("Nejdelší") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Vytlačeno") -#endif + PROGMEM Language_Str MSG_MOVING = _UxGT("Posouvání..."); + PROGMEM Language_Str MSG_FREE_XY = _UxGT("Uvolnit XY"); + PROGMEM Language_Str MSG_MOVE_X = _UxGT("Posunout X"); + PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Posunout Y"); + PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Posunout Z"); + PROGMEM Language_Str MSG_MOVE_E = _UxGT("Extrudér"); + PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Extrudér ") LCD_STR_E0; + PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Extrudér ") LCD_STR_E1; + PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Extrudér ") LCD_STR_E2; + PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Extrudér ") LCD_STR_E3; + PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Extrudér ") LCD_STR_E4; + PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Extrudér ") LCD_STR_E5; + 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") -#define MSG_INFO_MAX_TEMP _UxGT("Teplota max") -#define MSG_INFO_PSU _UxGT("Nap. zdroj") -#define MSG_DRIVE_STRENGTH _UxGT("Buzení motorů") -#define MSG_DAC_PERCENT _UxGT("Motor %") -#define MSG_DAC_EEPROM_WRITE _UxGT("Uložit do EEPROM") -#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("TISK POZASTAVEN") -#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("ZAVEDENÍ FILAMENTU") -#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("VYSUNUTÍ FILAMENTU") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("MOŽNOSTI OBNOVENÍ:") -#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Vytlačit víc") -#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Obnovit tisk") -#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Tryska: ") -#define MSG_RUNOUT_SENSOR _UxGT("Senzor filamentu") -#define MSG_ERR_HOMING_FAILED _UxGT("Parkování selhalo") -#define MSG_ERR_PROBING_FAILED _UxGT("Kalibrace selhala") -#define MSG_M600_TOO_COLD _UxGT("M600: Moc studený") + PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Načíst SD kartu"); + PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Vyměnit SD kartu"); + PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sonda Z mimo podl"); + PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("Faktor zkosení"); + PROGMEM Language_Str MSG_BLTOUCH = _UxGT("BLTouch"); + PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("BLTouch self-test"); + PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("BLTouch reset"); + PROGMEM Language_Str MSG_BLTOUCH_DEPLOY = _UxGT("BLTouch vysunout"); + PROGMEM Language_Str MSG_BLTOUCH_SW_MODE = _UxGT("SW výsun BLTouch"); + PROGMEM Language_Str MSG_BLTOUCH_5V_MODE = _UxGT("BLTouch 5V režim"); + PROGMEM Language_Str MSG_BLTOUCH_OD_MODE = _UxGT("BLTouch OD režim"); + PROGMEM Language_Str MSG_BLTOUCH_STOW = _UxGT("BLTouch zasunout"); + PROGMEM Language_Str MSG_MANUAL_DEPLOY = _UxGT("Vysunout Z-sondu"); + PROGMEM Language_Str MSG_MANUAL_STOW = _UxGT("Zasunout Z-sondu"); + PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("Domů %s%s%s první"); + PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Z ofset"); + 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") -#define MSG_MMU2_CHOOSE_FILAMENT_HEADER _UxGT("VYBERTE FILAMENT") -#define MSG_MMU2_MENU _UxGT("MMU") -#define MSG_MMU2_WRONG_FIRMWARE _UxGT("Aktual. MMU firmware!") -#define MSG_MMU2_NOT_RESPONDING _UxGT("MMU potř. pozornost.") -#define MSG_MMU2_RESUME _UxGT("Obnovit tisk") -#define MSG_MMU2_RESUMING _UxGT("Obnovování...") -#define MSG_MMU2_LOAD_FILAMENT _UxGT("Zavést filament") -#define MSG_MMU2_LOAD_ALL _UxGT("Zavést všechny") -#define MSG_MMU2_LOAD_TO_NOZZLE _UxGT("Zavést do trysky") -#define MSG_MMU2_EJECT_FILAMENT _UxGT("Vysunout filament") -#define MSG_MMU2_EJECT_FILAMENT0 _UxGT("Vysun. filament 1") -#define MSG_MMU2_EJECT_FILAMENT1 _UxGT("Vysun. filament 2") -#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") + #if LCD_WIDTH >= 20 + PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Počet tisků"); + PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Dokončeno"); + PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Celkový čas"); + PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Nejdelší tisk"); + PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Celkem vytlačeno"); + #else + PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Tisky"); + 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("Nejdelší"); + PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Vytlačeno"); + #endif -#define MSG_MIX _UxGT("Mix") -#define MSG_MIX_COMPONENT _UxGT("Komponenta") -#define MSG_MIXER _UxGT("Mixér") -#define MSG_GRADIENT _UxGT("Přechod") -#define MSG_FULL_GRADIENT _UxGT("Celý přechod") -#define MSG_TOGGLE_MIX _UxGT("Přepnout mix") -#define MSG_CYCLE_MIX _UxGT("Střídat mix") -#define MSG_GRADIENT_MIX _UxGT("Přechod mix") -#define MSG_REVERSE_GRADIENT _UxGT("Opačný přechod") -#if LCD_WIDTH >= 20 - #define MSG_ACTIVE_VTOOL _UxGT("Aktivní V-nástroj") - #define MSG_START_VTOOL _UxGT("Spustit V-nástroj") - #define MSG_END_VTOOL _UxGT("Ukončit V-nástroj") - #define MSG_GRADIENT_ALIAS _UxGT("Alias V-nástroje") - #define MSG_RESET_VTOOLS _UxGT("Resetovat V-nástroj") - #define MSG_COMMIT_VTOOL _UxGT("Uložit V-nástroj mix") - #define MSG_VTOOLS_RESET _UxGT("V-nástroj resetovat") -#else - #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ě") + PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Teplota min"); + PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Teplota max"); + PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Nap. zdroj"); + PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Buzení motorů"); + PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Motor %"); + PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Uložit do EEPROM"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER = _UxGT("VÝMĚNA FILAMENTU"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("TISK POZASTAVEN"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("ZAVEDENÍ FILAMENTU"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("VYSUNUTÍ FILAMENTU"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("MOŽNOSTI OBNOVENÍ:"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("Vytlačit víc"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Obnovit tisk"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Tryska: "); + PROGMEM Language_Str MSG_RUNOUT_SENSOR = _UxGT("Senzor filamentu"); + PROGMEM Language_Str MSG_LCD_HOMING_FAILED = _UxGT("Parkování selhalo"); + PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Kalibrace selhala"); + PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Moc studený"); -#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 - // Up to 3 lines allowed - #define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Stikněte tlačítko") - #define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("pro obnovení tisku") - #define MSG_PAUSE_PRINT_INIT_1 _UxGT("Parkování...") - #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Čekejte prosím") - #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("na zahájení") - #define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("výměny filamentu") - #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vložte filament") - #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("a stiskněte") - #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("tlačítko...") - #define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Klikněte pro") - #define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("nahřátí trysky") - #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Čekejte prosím") - #define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("na nahřátí tr.") - #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Čekejte prosím") - #define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("na vysunuti") - #define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("filamentu") - #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Čekejte prosím") - #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("na zavedení") - #define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamentu") - #define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vyčkejte na") - #define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("vytlačení") - #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_CONT_PURGE_3 _UxGT("vytlačování") - #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Čekejte prosím") - #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("na pokračování") - #define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("tisku") -#else // LCD_HEIGHT < 4 - // Up to 2 lines allowed - #define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Stikněte tlač.") - #define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("pro obnovení") - #define MSG_PAUSE_PRINT_INIT_1 _UxGT("Parkování...") - #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Čekejte...") - #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vložte, klikněte") - #define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Klikněte pro") - #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 + PROGMEM Language_Str MSG_MIX = _UxGT("Mix"); + PROGMEM Language_Str MSG_MIX_COMPONENT_1 = _UxGT("Komponenta 1"); + PROGMEM Language_Str MSG_MIX_COMPONENT_2 = _UxGT("Komponenta 2"); + PROGMEM Language_Str MSG_MIX_COMPONENT_3 = _UxGT("Komponenta 3"); + PROGMEM Language_Str MSG_MIX_COMPONENT_4 = _UxGT("Komponenta 4"); + PROGMEM Language_Str MSG_MIX_COMPONENT_5 = _UxGT("Komponenta 5"); + PROGMEM Language_Str MSG_MIX_COMPONENT_6 = _UxGT("Komponenta 6"); + PROGMEM Language_Str MSG_MIXER = _UxGT("Mixér"); + PROGMEM Language_Str MSG_GRADIENT = _UxGT("Přechod"); + PROGMEM Language_Str MSG_FULL_GRADIENT = _UxGT("Celý přechod"); + PROGMEM Language_Str MSG_TOGGLE_MIX = _UxGT("Přepnout mix"); + PROGMEM Language_Str MSG_CYCLE_MIX = _UxGT("Střídat mix"); + PROGMEM Language_Str MSG_GRADIENT_MIX = _UxGT("Přechod mix"); + PROGMEM Language_Str MSG_REVERSE_GRADIENT = _UxGT("Opačný přechod"); + #if LCD_WIDTH >= 20 + PROGMEM Language_Str MSG_ACTIVE_VTOOL = _UxGT("Aktivní V-nástroj"); + PROGMEM Language_Str MSG_START_VTOOL = _UxGT("Spustit V-nástroj"); + PROGMEM Language_Str MSG_END_VTOOL = _UxGT("Ukončit V-nástroj"); + PROGMEM Language_Str MSG_GRADIENT_ALIAS = _UxGT("Alias V-nástroje"); + PROGMEM Language_Str MSG_RESET_VTOOLS = _UxGT("Resetovat V-nástroj"); + PROGMEM Language_Str MSG_COMMIT_VTOOL = _UxGT("Uložit V-nástroj mix"); + PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("V-nástroj resetovat"); + #else + PROGMEM Language_Str MSG_ACTIVE_VTOOL = _UxGT("Aktivní V-nástr."); + PROGMEM Language_Str MSG_START_VTOOL = _UxGT("Spustit V-nástr."); + PROGMEM Language_Str MSG_END_VTOOL = _UxGT("Ukončit V-nástr."); + PROGMEM Language_Str MSG_GRADIENT_ALIAS = _UxGT("Alias V-nástr."); + PROGMEM Language_Str MSG_RESET_VTOOLS = _UxGT("Reset. V-nástr."); + PROGMEM Language_Str MSG_COMMIT_VTOOL = _UxGT("Uložit V-nás. mix"); + PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("V-nástr. reset."); + #endif + PROGMEM Language_Str MSG_START_Z = _UxGT("Počáteční Z:"); + PROGMEM Language_Str MSG_END_Z = _UxGT(" Koncové Z:"); + PROGMEM Language_Str MSG_BRICKOUT = _UxGT("Brickout"); + PROGMEM Language_Str MSG_INVADERS = _UxGT("Invaders"); + PROGMEM Language_Str MSG_SNAKE = _UxGT("Sn4k3"); + PROGMEM Language_Str MSG_MAZE = _UxGT("Bludiště"); -#define MSG_TMC_DRIVERS _UxGT("TMC budiče") -#define MSG_TMC_CURRENT _UxGT("Proud budičů") -#define MSG_TMC_HYBRID_THRS _UxGT("Hybridní práh") -#define MSG_TMC_HOMING_THRS _UxGT("Domů bez senzorů") -#define MSG_TMC_STEPPING_MODE _UxGT("Režim kroků") -#define MSG_TMC_STEALTH_ENABLED _UxGT("StealthChop povolen") -#define MSG_SERVICE_RESET _UxGT("Reset") -#define MSG_SERVICE_IN _UxGT(" za:") -#define MSG_BACKLASH _UxGT("Vůle") -#define MSG_BACKLASH_CORRECTION _UxGT("Korekce") -#define MSG_BACKLASH_SMOOTHING _UxGT("Vyhlazení") + PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Nesprávná tiskárna"); + + #if LCD_HEIGHT >= 4 + // Up to 3 lines allowed + PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_2_LINE("Stikněte tlačítko", "pro obnovení tisku")); + PROGMEM Language_Str MSG_PAUSE_PRINT_INIT = _UxGT(MSG_1_LINE("Parkování...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Čekejte prosím", "na zahájení", "výměny filamentu")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Vložte filament", "a stiskněte", "tlačítko...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Klikněte pro", "nahřátí trysky")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("Čekejte prosím", "na nahřátí tr.")); + 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í"); +} diff --git a/Marlin/src/lcd/language/language_da.h b/Marlin/src/lcd/language/language_da.h index 98ed4a0bd1..98b47d7511 100644 --- a/Marlin/src/lcd/language/language_da.h +++ b/Marlin/src/lcd/language/language_da.h @@ -30,223 +30,212 @@ */ #define DISPLAY_CHARSET_ISO10646_1 -#define CHARSIZE 2 -#define WELCOME_MSG MACHINE_NAME _UxGT(" er klar") -#define MSG_MEDIA_INSERTED _UxGT("Kort isat") -#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") +namespace Language_da { + using namespace Language_en; // Inherit undefined strings from English -#define MSG_BED _UxGT("Plade") -#define MSG_FAN_SPEED _UxGT("Blæser hastighed") -#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") + constexpr uint8_t CHARSIZE = 2; + PROGMEM Language_Str LANGUAGE = _UxGT("Danish"); -#define MSG_INFO_MENU _UxGT("Om Printer") -#define MSG_INFO_PRINTER_MENU _UxGT("Printer Info") -#define MSG_INFO_STATS_MENU _UxGT("Printer Stats") -#define MSG_INFO_BOARD_MENU _UxGT("Kort 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") + PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" er klar"); + PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Kort isat"); + PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Kort fjernet"); + PROGMEM Language_Str MSG_MAIN = _UxGT("Menu"); + PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Slå alle steppere fra"); + PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Auto Home"); // G28 + PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Klik når du er klar"); + 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 - #define MSG_INFO_PRINT_COUNT _UxGT("Ant. Prints") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Færdige") - #define MSG_INFO_PRINT_TIME _UxGT("Total print tid") - #define MSG_INFO_PRINT_LONGEST _UxGT("Længste print") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Total Extruderet") -#else - #define MSG_INFO_PRINT_COUNT _UxGT("Prints") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Færdige") - #define MSG_INFO_PRINT_TIME _UxGT("Total") - #define MSG_INFO_PRINT_LONGEST _UxGT("Længste") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Extruderet") -#endif + PROGMEM Language_Str MSG_BED = _UxGT("Plade"); + PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Blæser hastighed"); + PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Blæser hastighed 1"); + PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Blæser hastighed 2"); + PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Blæser hastighed 3"); + PROGMEM Language_Str MSG_CONTROL = _UxGT("Kontrol"); + PROGMEM Language_Str MSG_MIN = _UxGT(" \002 Min"); + PROGMEM Language_Str MSG_MAX = _UxGT(" \002 Max"); + PROGMEM Language_Str MSG_FACTOR = _UxGT(" \002 Fact"); + PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Autotemp"); + PROGMEM Language_Str MSG_LCD_ON = _UxGT("Til"); + PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Fra"); + 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") -#define MSG_INFO_MAX_TEMP _UxGT("Max Temp") -#define MSG_INFO_PSU _UxGT("Strømfors.") + PROGMEM Language_Str MSG_INFO_MENU = _UxGT("Om Printer"); + PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Kort Info"); + PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Thermistors"); -#define MSG_DRIVE_STRENGTH _UxGT("Driv Styrke") -#define MSG_DAC_PERCENT _UxGT("Driv %") -#define MSG_DAC_EEPROM_WRITE _UxGT("DAC EEPROM Skriv") + #if LCD_WIDTH >= 20 + PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Ant. Prints"); + 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 - #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Vent på start") - #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("af filament") - #define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("skift") - #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Vent på") - #define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("filament udskyd.") - #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Indsæt filament") - #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("og tryk på knap") - #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("for at fortsætte...") - #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Vent på") - #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("filament indtag") - #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Vent på at print") - #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("fortsætter") -#else // LCD_HEIGHT < 4 - #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Vent venligst...") - #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Udskyder...") - #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Indsæt og klik") - #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Indtager...") - #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Fortsætter...") -#endif // LCD_HEIGHT < 4 + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Forsæt print"); + + PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Forkert printer"); + + #if LCD_HEIGHT >= 4 + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Vent på start", "af filament", "skift")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Vent på", "filament udskyd.")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Indsæt filament", "og tryk på knap", "for at fortsætte...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Vent på", "filament indtag")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("Vent på at print", "fortsætter")); + #else // LCD_HEIGHT < 4 + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Vent venligst...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Udskyder...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Indsæt og klik")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Indtager...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Fortsætter...")); + #endif // LCD_HEIGHT < 4 +} diff --git a/Marlin/src/lcd/language/language_de.h b/Marlin/src/lcd/language/language_de.h index 55c5749524..9fa894bb96 100644 --- a/Marlin/src/lcd/language/language_de.h +++ b/Marlin/src/lcd/language/language_de.h @@ -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") -#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") + PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" bereit"); -#define MSG_LED_CONTROL _UxGT("Licht-Steuerung") -#define MSG_LEDS _UxGT("Licht") -#define MSG_LED_PRESETS _UxGT("Licht-Einstellung") -#define MSG_SET_LEDS_RED _UxGT("Rot") -#define MSG_SET_LEDS_ORANGE _UxGT("Orange") -#define MSG_SET_LEDS_YELLOW _UxGT("Gelb") -#define MSG_SET_LEDS_GREEN _UxGT("Grün") -#define MSG_SET_LEDS_BLUE _UxGT("Blau") -#define MSG_SET_LEDS_INDIGO _UxGT("Indigo") -#define MSG_SET_LEDS_VIOLET _UxGT("Violett") -#define MSG_SET_LEDS_WHITE _UxGT("Weiß") -#define MSG_SET_LEDS_DEFAULT _UxGT("Standard") -#define MSG_CUSTOM_LEDS _UxGT("Benutzerdefiniert") -#define MSG_INTENSITY_R _UxGT("Intensität Rot") -#define MSG_INTENSITY_G _UxGT("Intensität Grün") -#define MSG_INTENSITY_B _UxGT("Intensität Blau") -#define MSG_INTENSITY_W _UxGT("Intensität Weiß") -#define MSG_LED_BRIGHTNESS _UxGT("Helligkeit") + PROGMEM Language_Str MSG_YES = _UxGT("JA"); + PROGMEM Language_Str MSG_NO = _UxGT("NEIN"); + PROGMEM Language_Str MSG_BACK = _UxGT("Zurück"); + PROGMEM Language_Str MSG_MEDIA_ABORTING = _UxGT("Abbruch..."); + PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Medium erkannt"); + PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Medium entfernt"); + PROGMEM Language_Str MSG_MEDIA_RELEASED = _UxGT("Medium freigegeben"); + PROGMEM Language_Str MSG_MEDIA_WAITING = _UxGT("Warten auf Medium"); + PROGMEM Language_Str MSG_MEDIA_READ_ERROR = _UxGT("Medium Lesefehler"); + PROGMEM Language_Str MSG_MEDIA_USB_REMOVED = _UxGT("USB Gerät entfernt"); + PROGMEM Language_Str MSG_MEDIA_USB_FAILED = _UxGT("USB Start fehlge."); + PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Endstopp"); // Max length 8 characters + PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("Software-Endstopp"); + PROGMEM Language_Str MSG_MAIN = _UxGT("Hauptmenü"); + PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("Erw. Einstellungen"); + PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("Konfiguration"); + PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Autostart"); + 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...") -#define MSG_FREE_XY _UxGT("Abstand XY") -#define MSG_MOVE_X _UxGT("Bewege X") -#define MSG_MOVE_Y _UxGT("Bewege Y") -#define MSG_MOVE_Z _UxGT("Bewege Z") -#define MSG_MOVE_E _UxGT("Bewege Extruder") -#define MSG_HOTEND_TOO_COLD _UxGT("Hotend zu kalt") -#define MSG_MOVE_Z_DIST _UxGT(" %s mm") -#define MSG_MOVE_01MM _UxGT(" 0,1 mm") -#define MSG_MOVE_1MM _UxGT(" 1,0 mm") -#define MSG_MOVE_10MM _UxGT("10,0 mm") -#define MSG_SPEED _UxGT("Geschw.") -#define MSG_BED_Z _UxGT("Bett Z") -#define MSG_NOZZLE _UxGT("Düse") -#define MSG_BED _UxGT("Bett") -#define MSG_CHAMBER _UxGT("Gehäuse") -#define MSG_FAN_SPEED _UxGT("Lüfter") -#define MSG_EXTRA_FAN_SPEED _UxGT("Geschw. Extralüfter") -#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") + PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("Licht-Steuerung"); + PROGMEM Language_Str MSG_LEDS = _UxGT("Licht"); + PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("Licht-Einstellung"); + PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("Rot"); + PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("Orange"); + PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("Gelb"); + PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("Grün"); + PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("Blau"); + PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("Indigo"); + PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Violett"); + PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("Weiß"); + PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("Standard"); + PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("Benutzerdefiniert"); + PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Intensität Rot"); + PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Intensität Grün"); + PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("Intensität Blau"); + PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("Intensität Weiß"); + PROGMEM Language_Str MSG_LED_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 - #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 + PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Falscher Drucker"); -#define MSG_INFO_MIN_TEMP _UxGT("Min Temp") -#define MSG_INFO_MAX_TEMP _UxGT("Max Temp") -#define MSG_INFO_PSU _UxGT("Netzteil") -#define MSG_DRIVE_STRENGTH _UxGT("Motorleistung") -#define MSG_DAC_PERCENT _UxGT("Treiber %") -#define MSG_ERROR_TMC _UxGT("TMC Verbindungsfehler") -#define MSG_DAC_EEPROM_WRITE _UxGT("Werte speichern") -#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("DRUCK PAUSIERT") -#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("FILAMENT LADEN") -#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("FILAMENT ENTLADEN") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("FORTS. OPTIONEN:") -#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Mehr entladen") -#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Druck weiter") -#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") + #if LCD_WIDTH >= 20 + PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Gesamte Drucke"); + PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Komplette Drucke"); + PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Gesamte Druckzeit"); + PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Längste Druckzeit"); + PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Gesamt Extrudiert"); + #else + PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Drucke"); + PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Komplette"); + PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Gesamte"); + PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Längste"); + PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Extrud."); + #endif -#define MSG_MMU2_FILAMENT_CHANGE_HEADER _UxGT("FILAMENT WECHSEL") -#define MSG_MMU2_CHOOSE_FILAMENT_HEADER _UxGT("FILAMENT WÄHLEN") -#define MSG_MMU2_MENU _UxGT("MMU") -#define MSG_MMU2_WRONG_FIRMWARE _UxGT("Update MMU Firmware!") -#define MSG_MMU2_NOT_RESPONDING _UxGT("MMU handeln erfor.") -#define MSG_MMU2_RESUME _UxGT("Druck fortsetzen") -#define MSG_MMU2_RESUMING _UxGT("Fortfahren...") -#define MSG_MMU2_LOAD_FILAMENT MSG_FILAMENTLOAD -#define MSG_MMU2_LOAD_ALL _UxGT("Lade alle") -#define MSG_MMU2_LOAD_TO_NOZZLE _UxGT("Düse laden") -#define MSG_MMU2_EJECT_FILAMENT _UxGT("Filament auswerfen") -#define MSG_MMU2_EJECT_FILAMENT0 _UxGT("Filament 1 auswerfen") -#define MSG_MMU2_EJECT_FILAMENT1 _UxGT("Filament 2 auswerfen") -#define MSG_MMU2_EJECT_FILAMENT2 _UxGT("Filament 3 auswerfen") -#define MSG_MMU2_EJECT_FILAMENT3 _UxGT("Filament 4 auswerfen") -#define MSG_MMU2_EJECT_FILAMENT4 _UxGT("Filament 5 auswerfen") -#define MSG_MMU2_UNLOAD_FILAMENT MSG_FILAMENTUNLOAD -#define MSG_MMU2_LOADING_FILAMENT _UxGT("Lade Fila. %i...") -#define MSG_MMU2_EJECTING_FILAMENT _UxGT("Fila. auswerfen...") -#define MSG_MMU2_UNLOADING_FILAMENT _UxGT("Fila. entladen...") -#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") + 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("Netzteil"); + PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Motorleistung"); + PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Treiber %"); + PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("TMC Verbindungsfehler"); + PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Werte speichern"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER = _UxGT("FILAMENT WECHSEL"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("DRUCK PAUSIERT"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("FILAMENT LADEN"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("FILAMENT ENTLADEN"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("FORTS. OPTIONEN:"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("Mehr entladen"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Druck weiter"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Düse: "); + PROGMEM Language_Str MSG_RUNOUT_SENSOR = _UxGT("Runout-Sensor"); + PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("Runout-Weg mm"); + PROGMEM Language_Str MSG_LCD_HOMING_FAILED = _UxGT("Homing gescheitert"); + PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Probing gescheitert"); + PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: zu kalt"); -#define MSG_MIX _UxGT("Mix") -#define MSG_MIX_COMPONENT _UxGT("Komponente") -#define MSG_MIXER _UxGT("Mixer") -#define MSG_GRADIENT _UxGT("Gradient") // equal Farbverlauf -#define MSG_FULL_GRADIENT _UxGT("Volle Gradient") -#define MSG_TOGGLE_MIX _UxGT("Mix umschalten") -#define MSG_CYCLE_MIX _UxGT("Zyklus Mix") -#define MSG_GRADIENT_MIX _UxGT("Gradient Mix") -#define MSG_REVERSE_GRADIENT _UxGT("Umgekehrte Gradient") -#define MSG_ACTIVE_VTOOL _UxGT("Aktives V-Tool") -#define MSG_START_VTOOL _UxGT("V-Tool Start") -#define MSG_END_VTOOL _UxGT("V-Tool Ende") -#define MSG_GRADIENT_ALIAS _UxGT("V-Tool Alias") -#define MSG_RESET_VTOOLS _UxGT("V-Tools Reseten") -#define MSG_COMMIT_VTOOL _UxGT("V-Tool Mix sichern") -#define MSG_VTOOLS_RESET _UxGT("V-Tools ist resetet") -#define MSG_START_Z _UxGT("Z Start") -#define MSG_END_Z _UxGT("Z Ende") -#define MSG_GAMES _UxGT("Spiele") -#define MSG_BRICKOUT _UxGT("Brickout") -#define MSG_INVADERS _UxGT("Invaders") -#define MSG_SNAKE _UxGT("Sn4k3") -#define MSG_MAZE _UxGT("Maze") + PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("FILAMENT WÄHLEN"); + PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU"); + PROGMEM Language_Str MSG_MMU2_WRONG_FIRMWARE = _UxGT("Update MMU Firmware!"); + PROGMEM Language_Str MSG_MMU2_NOT_RESPONDING = _UxGT("MMU handeln erfor."); + PROGMEM Language_Str MSG_MMU2_RESUME = _UxGT("Druck fortsetzen"); + PROGMEM Language_Str MSG_MMU2_RESUMING = _UxGT("Fortfahren..."); + PROGMEM Language_Str MSG_MMU2_LOAD_FILAMENT = _UxGT("Filament laden"); + PROGMEM Language_Str MSG_MMU2_LOAD_ALL = _UxGT("Lade alle"); + PROGMEM Language_Str MSG_MMU2_LOAD_TO_NOZZLE = _UxGT("Düse laden"); + PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT = _UxGT("Filament auswerfen"); + PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT0 = _UxGT("Filament 1 auswerfen"); + PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT1 = _UxGT("Filament 2 auswerfen"); + PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT2 = _UxGT("Filament 3 auswerfen"); + PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT3 = _UxGT("Filament 4 auswerfen"); + PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT4 = _UxGT("Filament 5 auswerfen"); + PROGMEM Language_Str MSG_MMU2_UNLOAD_FILAMENT = _UxGT("Filament entladen "); + PROGMEM Language_Str MSG_MMU2_LOADING_FILAMENT = _UxGT("Lade Fila. %i..."); + PROGMEM Language_Str MSG_MMU2_EJECTING_FILAMENT = _UxGT("Fila. auswerfen..."); + PROGMEM Language_Str MSG_MMU2_UNLOADING_FILAMENT = _UxGT("Fila. entladen..."); + PROGMEM Language_Str MSG_MMU2_ALL = _UxGT("Alle"); + 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("setze MMU zurück"); + PROGMEM Language_Str MSG_MMU2_RESETTING = _UxGT("MMU zurücksetzen..."); + PROGMEM Language_Str MSG_MMU2_EJECT_RECOVER = _UxGT("Entfernen, klicken"); -// -// Die Filament-Change-Bildschirme können bis zu 3 Zeilen auf einem 4-Zeilen-Display anzeigen -// ...oder 2 Zeilen auf einem 3-Zeilen-Display. -#if LCD_HEIGHT >= 4 - #define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Knopf drücken um") - #define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("Druck fortzusetzen") - #define MSG_PAUSE_PRINT_INIT_1 _UxGT("Druck ist") - #define MSG_PAUSE_PRINT_INIT_2 _UxGT("pausiert...") - #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Warte auf den") - #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("Start des") - #define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("Filamentwechsels...") - #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Filament einlegen") - #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("und Knopf drücken") - #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("um fortzusetzen") - #define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Knopf drücken um") - #define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("Düse aufzuheizen") - #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Düse heizt auf") - #define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("bitte warten...") - #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Warte auf") - #define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("Herausnahme") - #define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("des Filaments...") - #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Warte auf") - #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("Laden des") - #define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("Filaments...") - #define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Warte auf") - #define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("Entladen des") - #define MSG_FILAMENT_CHANGE_PURGE_3 _UxGT("Filaments...") - #define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Klicke um") - #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 + PROGMEM Language_Str MSG_MIX = _UxGT("Mix"); + PROGMEM Language_Str MSG_MIX_COMPONENT_1 = _UxGT("Komponente 1"); + PROGMEM Language_Str MSG_MIX_COMPONENT_2 = _UxGT("Komponente 2"); + PROGMEM Language_Str MSG_MIX_COMPONENT_3 = _UxGT("Komponente 3"); + PROGMEM Language_Str MSG_MIX_COMPONENT_4 = _UxGT("Komponente 4"); + PROGMEM Language_Str MSG_MIX_COMPONENT_5 = _UxGT("Komponente 5"); + PROGMEM Language_Str MSG_MIX_COMPONENT_6 = _UxGT("Komponente 6"); + PROGMEM Language_Str MSG_MIXER = _UxGT("Mixer"); + PROGMEM Language_Str MSG_GRADIENT = _UxGT("Gradient"); // equal Farbverlauf + PROGMEM Language_Str MSG_FULL_GRADIENT = _UxGT("Volle Gradient"); + PROGMEM Language_Str MSG_TOGGLE_MIX = _UxGT("Mix umschalten"); + PROGMEM Language_Str MSG_CYCLE_MIX = _UxGT("Zyklus Mix"); + PROGMEM Language_Str MSG_GRADIENT_MIX = _UxGT("Gradient Mix"); + PROGMEM Language_Str MSG_REVERSE_GRADIENT = _UxGT("Umgekehrte Gradient"); + PROGMEM Language_Str MSG_ACTIVE_VTOOL = _UxGT("Aktives V-Tool"); + PROGMEM Language_Str MSG_START_VTOOL = _UxGT("V-Tool Start"); + PROGMEM Language_Str MSG_END_VTOOL = _UxGT("V-Tool Ende"); + PROGMEM Language_Str MSG_GRADIENT_ALIAS = _UxGT("V-Tool Alias"); + PROGMEM Language_Str MSG_RESET_VTOOLS = _UxGT("V-Tools Reseten"); + PROGMEM Language_Str MSG_COMMIT_VTOOL = _UxGT("V-Tool Mix sichern"); + PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("V-Tools ist resetet"); + PROGMEM Language_Str MSG_START_Z = _UxGT("Z Start:"); + PROGMEM Language_Str MSG_END_Z = _UxGT("Z Ende:"); + PROGMEM Language_Str MSG_GAMES = _UxGT("Spiele"); + PROGMEM Language_Str MSG_BRICKOUT = _UxGT("Brickout"); + PROGMEM Language_Str MSG_INVADERS = _UxGT("Invaders"); + PROGMEM Language_Str MSG_SNAKE = _UxGT("Sn4k3"); + PROGMEM Language_Str MSG_MAZE = _UxGT("Maze"); -#define MSG_TMC_DRIVERS _UxGT("TMC Treiber") // Max length 18 characters -#define MSG_TMC_CURRENT _UxGT("Treiber Strom") -#define MSG_TMC_HYBRID_THRS _UxGT("Hybrid threshold") -#define MSG_TMC_HOMING_THRS _UxGT("Sensorloses Homing") -#define MSG_TMC_STEPPING_MODE _UxGT("Schrittmodus") -#define MSG_TMC_STEALTH_ENABLED _UxGT("StealthChop einsch.") -#define MSG_SERVICE_RESET _UxGT("Reset") -#define MSG_SERVICE_IN _UxGT(" im:") -#define MSG_BACKLASH _UxGT("Spiel") -#define MSG_BACKLASH_CORRECTION _UxGT("Korrektur") -#define MSG_BACKLASH_SMOOTHING _UxGT("Glätten") + // + // Die Filament-Change-Bildschirme können bis zu 3 Zeilen auf einem 4-Zeilen-Display anzeigen + // ...oder 2 Zeilen auf einem 3-Zeilen-Display. + #if LCD_HEIGHT >= 4 + PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_2_LINE("Knopf drücken um", "Druck fortzusetzen")); + PROGMEM Language_Str MSG_PAUSE_PRINT_INIT = _UxGT(MSG_2_LINE("Druck ist", "pausiert...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Warte auf den", "Start des", "Filamentwechsels...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Filament einlegen", "und Knopf drücken", "um fortzusetzen")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Knopf drücken um", "Düse aufzuheizen")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("Düse heizt auf", "bitte warten...")); + 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"); +} diff --git a/Marlin/src/lcd/language/language_el.h b/Marlin/src/lcd/language/language_el.h index 75bdfa3ed5..a74c8da12f 100644 --- a/Marlin/src/lcd/language/language_el.h +++ b/Marlin/src/lcd/language/language_el.h @@ -30,162 +30,225 @@ */ #define DISPLAY_CHARSET_ISO10646_GREEK -#define CHARSIZE 2 -#define WELCOME_MSG MACHINE_NAME _UxGT(" έτοιμο.") -#define MSG_MEDIA_INSERTED _UxGT("Εισαγωγή κάρτας") -#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("Βαθμονόμηση κέντρου") +namespace Language_el { + using namespace Language_en; // Inherit undefined strings from English -#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("Εσφαλμένος εκτυπωτής"); +} diff --git a/Marlin/src/lcd/language/language_el_gr.h b/Marlin/src/lcd/language/language_el_gr.h index 83754591d0..e78a229008 100644 --- a/Marlin/src/lcd/language/language_el_gr.h +++ b/Marlin/src/lcd/language/language_el_gr.h @@ -30,161 +30,254 @@ */ #define DISPLAY_CHARSET_ISO10646_GREEK -#define CHARSIZE 2 -#define WELCOME_MSG MACHINE_NAME _UxGT(" έτοιμο.") -#define MSG_MEDIA_INSERTED _UxGT("Εισαγωγή κάρτας") -#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("Βαθμονόμηση κέντρου") +namespace Language_el_gr { + using namespace Language_en; // Inherit undefined strings from English -#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("Εσφαλμένος εκτυπωτής"); +} diff --git a/Marlin/src/lcd/language/language_en.h b/Marlin/src/lcd/language/language_en.h index 5bd20ec541..2b813cea2a 100644 --- a/Marlin/src/lcd/language/language_en.h +++ b/Marlin/src/lcd/language/language_en.h @@ -35,1554 +35,675 @@ #endif #undef en -#ifndef THIS_LANGUAGES_SPECIAL_SYMBOLS - #define THIS_LANGUAGES_SPECIAL_SYMBOLS _UxGT("³") -#endif +namespace Language_en { + constexpr uint8_t CHARSIZE = 2; + PROGMEM Language_Str LANGUAGE = _UxGT("English"); -#ifdef NOT_EXTENDED_ISO10646_1_5X7 - #define MSG_CUBED _UxGT("^3") -#else - #define MSG_CUBED _UxGT("³") -#endif + #ifdef NOT_EXTENDED_ISO10646_1_5X7 + PROGMEM Language_Str MSG_CUBED = _UxGT("^3"); + #else + PROGMEM Language_Str MSG_CUBED = _UxGT("³"); + #endif -#ifndef CHARSIZE - #define CHARSIZE 1 -#endif + PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" Ready."); + PROGMEM Language_Str MSG_YES = _UxGT("YES"); + 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 - #define WELCOME_MSG MACHINE_NAME _UxGT(" Ready.") -#endif -#ifndef MSG_YES - #define MSG_YES _UxGT("YES") -#endif -#ifndef MSG_NO - #define MSG_NO _UxGT("NO") -#endif -#ifndef MSG_BACK - #define MSG_BACK _UxGT("Back") -#endif -#ifndef MSG_MEDIA_ABORTING - #define MSG_MEDIA_ABORTING _UxGT("Aborting...") -#endif -#ifndef MSG_MEDIA_INSERTED - #define MSG_MEDIA_INSERTED _UxGT("Media Inserted") -#endif -#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 + PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("LED Control"); + PROGMEM Language_Str MSG_LEDS = _UxGT("Lights"); + PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("Light Presets"); + PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("Red"); + PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("Orange"); + PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("Yellow"); + PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("Green"); + PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("Blue"); + PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("Indigo"); + PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Violet"); + PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("White"); + PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("Default"); + PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("Custom Lights"); + PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Red Intensity"); + PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Green Intensity"); + PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("Blue Intensity"); + PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("White Intensity"); + PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("Brightness"); -#ifndef MSG_LED_CONTROL - #define MSG_LED_CONTROL _UxGT("LED Control") -#endif -#ifndef MSG_LEDS - #define MSG_LEDS _UxGT("Lights") -#endif -#ifndef MSG_LED_PRESETS - #define MSG_LED_PRESETS _UxGT("Light Presets") -#endif -#ifndef MSG_SET_LEDS_RED - #define MSG_SET_LEDS_RED _UxGT("Red") -#endif -#ifndef MSG_SET_LEDS_ORANGE - #define MSG_SET_LEDS_ORANGE _UxGT("Orange") -#endif -#ifndef MSG_SET_LEDS_YELLOW - #define MSG_SET_LEDS_YELLOW _UxGT("Yellow") -#endif -#ifndef MSG_SET_LEDS_GREEN - #define MSG_SET_LEDS_GREEN _UxGT("Green") -#endif -#ifndef MSG_SET_LEDS_BLUE - #define MSG_SET_LEDS_BLUE _UxGT("Blue") -#endif -#ifndef MSG_SET_LEDS_INDIGO - #define MSG_SET_LEDS_INDIGO _UxGT("Indigo") -#endif -#ifndef MSG_SET_LEDS_VIOLET - #define MSG_SET_LEDS_VIOLET _UxGT("Violet") -#endif -#ifndef MSG_SET_LEDS_WHITE - #define MSG_SET_LEDS_WHITE _UxGT("White") -#endif -#ifndef MSG_SET_LEDS_DEFAULT - #define MSG_SET_LEDS_DEFAULT _UxGT("Default") -#endif -#ifndef MSG_CUSTOM_LEDS - #define MSG_CUSTOM_LEDS _UxGT("Custom Lights") -#endif -#ifndef MSG_INTENSITY_R - #define MSG_INTENSITY_R _UxGT("Red Intensity") -#endif -#ifndef MSG_INTENSITY_G - #define MSG_INTENSITY_G _UxGT("Green Intensity") -#endif -#ifndef MSG_INTENSITY_B - #define MSG_INTENSITY_B _UxGT("Blue Intensity") -#endif -#ifndef MSG_INTENSITY_W - #define MSG_INTENSITY_W _UxGT("White Intensity") -#endif -#ifndef MSG_LED_BRIGHTNESS - #define MSG_LED_BRIGHTNESS _UxGT("Brightness") -#endif + PROGMEM Language_Str MSG_MOVING = _UxGT("Moving..."); + PROGMEM Language_Str MSG_FREE_XY = _UxGT("Free XY"); + PROGMEM Language_Str MSG_MOVE_X = _UxGT("Move X"); + PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Move Y"); + PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Move 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_HOTEND_TOO_COLD = _UxGT("Hotend too cold"); + PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Move %smm"); + PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Move 0.1mm"); + PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Move 1mm"); + PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Move 10mm"); + PROGMEM Language_Str MSG_SPEED = _UxGT("Speed"); + 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_CHAMBER = _UxGT("Enclosure"); + PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Fan Speed"); + PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Fan Speed 1"); + PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Fan Speed 2"); + PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Fan Speed 3"); + PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Extra Fan Speed"); + PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_1 = _UxGT("Extra Fan Speed 1"); + PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_2 = _UxGT("Extra Fan Speed 2"); + PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_3 = _UxGT("Extra Fan Speed 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("On"); + PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Off"); + PROGMEM Language_Str MSG_AUTOTUNE_PID = _UxGT("PID Autotune"); + PROGMEM Language_Str MSG_AUTOTUNE_PID_E0 = _UxGT("PID Autotune ") LCD_STR_E0; + PROGMEM Language_Str MSG_AUTOTUNE_PID_E1 = _UxGT("PID Autotune ") LCD_STR_E1; + 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 - #define MSG_MOVING _UxGT("Moving...") -#endif -#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 + PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Case Light"); + PROGMEM Language_Str MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Light Brightness"); + PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("INCORRECT PRINTER"); -#ifndef MSG_CASE_LIGHT - #define MSG_CASE_LIGHT _UxGT("Case Light") -#endif -#ifndef MSG_CASE_LIGHT_BRIGHTNESS - #define MSG_CASE_LIGHT_BRIGHTNESS _UxGT("Light Brightness") -#endif + #if LCD_WIDTH >= 20 + 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"); + #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 - #define MSG_EXPECTED_PRINTER _UxGT("INCORRECT PRINTER") -#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("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 - #ifndef MSG_INFO_PRINT_COUNT - #define MSG_INFO_PRINT_COUNT _UxGT("Print Count") - #endif - #ifndef MSG_INFO_COMPLETED_PRINTS - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Completed") - #endif - #ifndef MSG_INFO_PRINT_TIME - #define MSG_INFO_PRINT_TIME _UxGT("Total Print time") - #endif - #ifndef MSG_INFO_PRINT_LONGEST - #define MSG_INFO_PRINT_LONGEST _UxGT("Longest Job Time") - #endif - #ifndef MSG_INFO_PRINT_FILAMENT - #define MSG_INFO_PRINT_FILAMENT _UxGT("Extruded Total") - #endif -#else - #ifndef MSG_INFO_PRINT_COUNT - #define MSG_INFO_PRINT_COUNT _UxGT("Prints") - #endif - #ifndef MSG_INFO_COMPLETED_PRINTS - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Completed") - #endif - #ifndef MSG_INFO_PRINT_TIME - #define MSG_INFO_PRINT_TIME _UxGT("Total") - #endif - #ifndef MSG_INFO_PRINT_LONGEST - #define MSG_INFO_PRINT_LONGEST _UxGT("Longest") - #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 + PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("CHOOSE FILAMENT"); + PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU"); + PROGMEM Language_Str MSG_MMU2_WRONG_FIRMWARE = _UxGT("Update MMU Firmware!"); + PROGMEM Language_Str MSG_MMU2_NOT_RESPONDING = _UxGT("MMU Needs Attention."); + PROGMEM Language_Str MSG_MMU2_RESUME = _UxGT("Resume Print"); + PROGMEM Language_Str MSG_MMU2_RESUMING = _UxGT("Resuming..."); + PROGMEM Language_Str MSG_MMU2_LOAD_FILAMENT = _UxGT("Load Filament"); + PROGMEM Language_Str MSG_MMU2_LOAD_ALL = _UxGT("Load All"); + PROGMEM Language_Str MSG_MMU2_LOAD_TO_NOZZLE = _UxGT("Load to Nozzle"); + PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT = _UxGT("Eject Filament"); + PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT0 = _UxGT("Eject Filament 1"); + PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT1 = _UxGT("Eject Filament 2"); + PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT2 = _UxGT("Eject Filament 3"); + PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT3 = _UxGT("Eject Filament 4"); + PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT4 = _UxGT("Eject Filament 5"); + PROGMEM Language_Str MSG_MMU2_UNLOAD_FILAMENT = _UxGT("Unload Filament"); + PROGMEM Language_Str MSG_MMU2_LOADING_FILAMENT = _UxGT("Loading Fil. %i..."); + PROGMEM Language_Str MSG_MMU2_EJECTING_FILAMENT = _UxGT("Ejecting Fil. ..."); + PROGMEM Language_Str MSG_MMU2_UNLOADING_FILAMENT = _UxGT("Unloading Fil...."); + PROGMEM Language_Str MSG_MMU2_ALL = _UxGT("All"); + 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("Reset MMU"); + PROGMEM Language_Str MSG_MMU2_RESETTING = _UxGT("Resetting MMU..."); + PROGMEM Language_Str MSG_MMU2_EJECT_RECOVER = _UxGT("Remove, click"); -#ifndef MSG_MMU2_FILAMENT_CHANGE_HEADER - #define MSG_MMU2_FILAMENT_CHANGE_HEADER _UxGT("FILAMENT CHANGE") -#endif -#ifndef MSG_MMU2_CHOOSE_FILAMENT_HEADER - #define MSG_MMU2_CHOOSE_FILAMENT_HEADER _UxGT("CHOOSE FILAMENT") -#endif -#ifndef MSG_MMU2_MENU - #define MSG_MMU2_MENU _UxGT("MMU") -#endif -#ifndef MSG_MMU2_WRONG_FIRMWARE - #define MSG_MMU2_WRONG_FIRMWARE _UxGT("Update MMU Firmware!") -#endif -#ifndef MSG_MMU2_NOT_RESPONDING - #define MSG_MMU2_NOT_RESPONDING _UxGT("MMU Needs Attention.") -#endif -#ifndef MSG_MMU2_RESUME - #define MSG_MMU2_RESUME _UxGT("Resume Print") -#endif -#ifndef MSG_MMU2_RESUMING - #define MSG_MMU2_RESUMING _UxGT("Resuming...") -#endif -#ifndef MSG_MMU2_LOAD_FILAMENT - #define MSG_MMU2_LOAD_FILAMENT _UxGT("Load Filament") -#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 + PROGMEM Language_Str MSG_MIX = _UxGT("Mix"); + PROGMEM Language_Str MSG_MIX_COMPONENT_1 = _UxGT("Component 1"); + PROGMEM Language_Str MSG_MIX_COMPONENT_2 = _UxGT("Component 2"); + PROGMEM Language_Str MSG_MIX_COMPONENT_3 = _UxGT("Component 3"); + PROGMEM Language_Str MSG_MIX_COMPONENT_4 = _UxGT("Component 4"); + PROGMEM Language_Str MSG_MIX_COMPONENT_5 = _UxGT("Component 5"); + PROGMEM Language_Str MSG_MIX_COMPONENT_6 = _UxGT("Component 6"); + PROGMEM Language_Str MSG_MIXER = _UxGT("Mixer"); + PROGMEM Language_Str MSG_GRADIENT = _UxGT("Gradient"); + PROGMEM Language_Str MSG_FULL_GRADIENT = _UxGT("Full Gradient"); + 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("Gradient Mix"); + PROGMEM Language_Str MSG_REVERSE_GRADIENT = _UxGT("Reverse Gradient"); + PROGMEM Language_Str MSG_ACTIVE_VTOOL = _UxGT("Active V-tool"); + PROGMEM Language_Str MSG_START_VTOOL = _UxGT("Start V-tool"); + PROGMEM Language_Str MSG_END_VTOOL = _UxGT(" End V-tool"); + PROGMEM Language_Str MSG_GRADIENT_ALIAS = _UxGT("Alias V-tool"); + PROGMEM Language_Str MSG_RESET_VTOOLS = _UxGT("Reset V-tools"); + PROGMEM Language_Str MSG_COMMIT_VTOOL = _UxGT("Commit V-tool Mix"); + PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("V-tools Were Reset"); + PROGMEM Language_Str MSG_START_Z = _UxGT("Start Z:"); + PROGMEM Language_Str MSG_END_Z = _UxGT(" End Z:"); -#ifndef MSG_MIX - #define MSG_MIX _UxGT("Mix") -#endif -#ifndef MSG_MIX_COMPONENT - #define MSG_MIX_COMPONENT _UxGT("Component") -#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 + PROGMEM Language_Str MSG_GAMES = _UxGT("Games"); + PROGMEM Language_Str MSG_BRICKOUT = _UxGT("Brickout"); + PROGMEM Language_Str MSG_INVADERS = _UxGT("Invaders"); + PROGMEM Language_Str MSG_SNAKE = _UxGT("Sn4k3"); + PROGMEM Language_Str MSG_MAZE = _UxGT("Maze"); -#ifndef MSG_GAMES - #define MSG_GAMES _UxGT("Games") -#endif -#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 + #define MSG_1_LINE(A) A "\0" "\0" + #define MSG_2_LINE(A,B) A "\0" B "\0" + #define MSG_3_LINE(A,B,C) A "\0" B "\0" C -// -// 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 - #ifndef MSG_ADVANCED_PAUSE_WAITING_1 - #define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Press Button") - #define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("to resume print") + // + // 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_ADVANCED_PAUSE_WAITING = _UxGT(MSG_2_LINE("Press Button", "to resume print")); + PROGMEM Language_Str MSG_PAUSE_PRINT_INIT = _UxGT(MSG_1_LINE("Parking...")); + 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 - #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("Wait for") - #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("filament change") - #define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("to start") - #endif - #ifndef MSG_FILAMENT_CHANGE_INSERT_1 - #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") - #endif - #ifndef MSG_FILAMENT_CHANGE_HEAT_1 - #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 + PROGMEM Language_Str MSG_TMC_DRIVERS = _UxGT("TMC Drivers"); + PROGMEM Language_Str MSG_TMC_CURRENT = _UxGT("Driver Current"); + PROGMEM Language_Str MSG_TMC_HYBRID_THRS = _UxGT("Hybrid Threshold"); + PROGMEM Language_Str MSG_TMC_HOMING_THRS = _UxGT("Sensorless Homing"); + PROGMEM Language_Str MSG_TMC_STEPPING_MODE = _UxGT("Stepping Mode"); + PROGMEM Language_Str MSG_TMC_STEALTH_ENABLED = _UxGT("StealthChop Enabled"); + PROGMEM Language_Str MSG_SERVICE_RESET = _UxGT("Reset"); + PROGMEM Language_Str MSG_SERVICE_IN = _UxGT(" in:"); + PROGMEM Language_Str MSG_BACKLASH = _UxGT("Backlash"); + 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("Correction"); + PROGMEM Language_Str MSG_BACKLASH_SMOOTHING = _UxGT("Smoothing"); +} diff --git a/Marlin/src/lcd/language/language_es.h b/Marlin/src/lcd/language/language_es.h index eabf24857e..4d0d8c40d4 100644 --- a/Marlin/src/lcd/language/language_es.h +++ b/Marlin/src/lcd/language/language_es.h @@ -29,536 +29,606 @@ * */ -#define THIS_LANGUAGES_SPECIAL_SYMBOLS _UxGT ("¡¿ªáéíóúÁÉÍÓÚ") #define DISPLAY_CHARSET_ISO10646_1 -#define CHARSIZE 2 -#define WELCOME_MSG MACHINE_NAME _UxGT(" lista") -#define MSG_YES _UxGT("SI") -#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") +namespace Language_es { + using namespace Language_en; // Inherit undefined strings from English -#define MSG_LED_CONTROL _UxGT("Control LED") -#define MSG_LEDS _UxGT("Luzes") -#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") + constexpr uint8_t CHARSIZE = 2; + PROGMEM Language_Str LANGUAGE = _UxGT("Spanish"); -#define MSG_MOVING _UxGT("Moviendo...") -#define MSG_FREE_XY _UxGT("Libre XY") -#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_HOTEND_TOO_COLD _UxGT("Hotend muy frio") -#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("Velocidad") -#define MSG_BED_Z _UxGT("Cama Z") -#define MSG_NOZZLE _UxGT("Boquilla") -#define MSG_BED _UxGT("Cama") -#define MSG_CHAMBER _UxGT("Recinto") -#define MSG_FAN_SPEED _UxGT("Ventilador") -#define MSG_EXTRA_FAN_SPEED _UxGT("Vel. Ext. ventilador") -#define MSG_FLOW _UxGT("Flujo") -#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("Encender") -#define MSG_LCD_OFF _UxGT("Apagar") -#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("Seleccionar") -#define MSG_ACC _UxGT("Aceleración") -#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("Velocidad") -#define MSG_VMAX _UxGT("Vmax") -#define MSG_VMIN _UxGT("Vmin") -#define MSG_VTRAV_MIN _UxGT("Vel. viaje 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("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("Movimiento") -#define MSG_FILAMENT _UxGT("Filamento") -#define MSG_VOLUMETRIC_ENABLED _UxGT("E en mm") MSG_CUBED -#define MSG_FILAMENT_DIAM _UxGT("Fil. Dia.") -#define MSG_FILAMENT_UNLOAD _UxGT("Descarga mm") -#define MSG_FILAMENT_LOAD _UxGT("Carga mm") -#define MSG_ADVANCE_K _UxGT("Avance K") -#define MSG_CONTRAST _UxGT("Contraste LCD") -#define MSG_STORE_EEPROM _UxGT("Guardar EEPROM") -#define MSG_LOAD_EEPROM _UxGT("Cargar EEPROM") -#define MSG_RESTORE_FAILSAFE _UxGT("Rest. fábrica") -#define MSG_INIT_EEPROM _UxGT("Inicializar EEPROM") -#define MSG_MEDIA_UPDATE _UxGT("Actualizar SD/USB") -#define MSG_RESET_PRINTER _UxGT("Resetear Impresora") -#define MSG_REFRESH _UxGT("Recargar") -#define MSG_WATCH _UxGT("Pantalla de Inf.") -#define MSG_PREPARE _UxGT("Preparar") -#define MSG_TUNE _UxGT("Ajustar") -#define MSG_START_PRINT _UxGT("Iniciar impresión") -#define MSG_BUTTON_NEXT _UxGT("Siguinte") -#define MSG_BUTTON_INIT _UxGT("Iniciar") -#define MSG_BUTTON_STOP _UxGT("Parar") -#define MSG_BUTTON_PRINT _UxGT("Imprimir") -#define MSG_BUTTON_RESET _UxGT("Reiniciar") -#define MSG_BUTTON_CANCEL _UxGT("Cancelar") -#define MSG_BUTTON_DONE _UxGT("Listo") -#define MSG_PAUSE_PRINT _UxGT("Pausar impresión") -#define MSG_RESUME_PRINT _UxGT("Reanudar impresión") -#define MSG_STOP_PRINT _UxGT("Detener impresión") -#define MSG_OUTAGE_RECOVERY _UxGT("Recuper. por interr.") -#define MSG_MEDIA_MENU _UxGT("Imprim. desde SD/USB") -#define MSG_NO_MEDIA _UxGT("SD/USB no presente") -#define MSG_DWELL _UxGT("Reposo...") -#define MSG_USERWAIT _UxGT("Pulsar para Reanudar") -#define MSG_PRINT_PAUSED _UxGT("Impresión Pausada") -#define MSG_PRINTING _UxGT("Imprimiendo...") -#define MSG_PRINT_ABORTED _UxGT("Impresión cancelada") -#define MSG_NO_MOVE _UxGT("Sin movimiento") -#define MSG_KILLED _UxGT("MUERTA") -#define MSG_STOPPED _UxGT("DETENIDA") -#define MSG_CONTROL_RETRACT _UxGT("Retraer mm") -#define MSG_CONTROL_RETRACT_SWAP _UxGT("Interc. Retraer mm") -#define MSG_CONTROL_RETRACTF _UxGT("Retraer V") -#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Levantar mm") -#define MSG_CONTROL_RETRACT_RECOVER _UxGT("DesRet mm") -#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Interc. DesRet mm") -#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("DesRet V") -#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V") -#define MSG_AUTORETRACT _UxGT("Retracción Auto.") -#define MSG_FILAMENT_SWAP_LENGTH _UxGT("Inter. longitud") -#define MSG_FILAMENT_PURGE_LENGTH _UxGT("Purgar longitud") -#define MSG_TOOL_CHANGE _UxGT("Cambiar Herramienta") -#define MSG_TOOL_CHANGE_ZLIFT _UxGT("Aumentar Z") -#define MSG_SINGLENOZZLE_PRIME_SPD _UxGT("Prime Speed") -#define MSG_SINGLENOZZLE_RETRACT_SPD _UxGT("Vel. de retracción") -#define MSG_NOZZLE_STANDBY _UxGT("Colocar boquilla") -#define MSG_FILAMENTCHANGE _UxGT("Cambiar filamento") -#define MSG_FILAMENTLOAD _UxGT("Cargar filamento") -#define MSG_FILAMENTUNLOAD _UxGT("Descargar filamento") -#define MSG_FILAMENTUNLOAD_ALL _UxGT("Descargar todo") -#define MSG_INIT_MEDIA _UxGT("Iniciar SD/USB") -#define MSG_CHANGE_MEDIA _UxGT("Cambiar SD/USB") -#define MSG_RELEASE_MEDIA _UxGT("Lanzar SD/USB") -#define MSG_ZPROBE_OUT _UxGT("Sonda Z fuera cama") -#define MSG_SKEW_FACTOR _UxGT("Factor de desviación") -#define MSG_BLTOUCH _UxGT("BLTouch") -#define MSG_BLTOUCH_SELFTEST _UxGT("Cmd: Auto-Prueba") -#define MSG_BLTOUCH_RESET _UxGT("Cmd: Reiniciar") -#define MSG_BLTOUCH_STOW _UxGT("Cmd: Bajar pistón") -#define MSG_BLTOUCH_DEPLOY _UxGT("Cmd: Subir pistón") -#define MSG_BLTOUCH_SW_MODE _UxGT("Cmd: Modo Software") -#define MSG_BLTOUCH_5V_MODE _UxGT("Cmd: Modo 5V") -#define MSG_BLTOUCH_OD_MODE _UxGT("Cmd: Modo OD") -#define MSG_BLTOUCH_MODE_STORE _UxGT("Cmd: Modo almacenar") -#define MSG_BLTOUCH_MODE_STORE_5V _UxGT("Poner BLTouch a 5V") -#define MSG_BLTOUCH_MODE_STORE_OD _UxGT("Poner BLTouch a OD") -#define MSG_BLTOUCH_MODE_ECHO _UxGT("Informe de drenaje") -#define MSG_BLTOUCH_MODE_CHANGE _UxGT("PELIGRO: ¡Una mala configuración puede producir daños! ¿Proceder igualmente?") -#define MSG_TOUCHMI_PROBE _UxGT("TouchMI") -#define MSG_TOUCHMI_INIT _UxGT("Iniciar TouchMI") -#define MSG_TOUCHMI_ZTEST _UxGT("Test de desfase Z") -#define MSG_TOUCHMI_SAVE _UxGT("Guardar") -#define MSG_MANUAL_DEPLOY_TOUCHMI _UxGT("Subir TouchMI") -#define MSG_MANUAL_DEPLOY _UxGT("Subir Sonda Z") -#define MSG_MANUAL_STOW _UxGT("Bajar Sonda Z") -#define MSG_HOME_FIRST _UxGT("Origen %s%s%s Primero") -#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_BABYSTEP_TOTAL _UxGT("Total") -#define MSG_ENDSTOP_ABORT _UxGT("Cancelado - Endstop") -#define MSG_HEATING_FAILED_LCD _UxGT("Calent. fallido") -#define MSG_HEATING_FAILED_LCD_BED _UxGT("Calent. cama fallido") -#define MSG_HEATING_FAILED_LCD_CHAMBER _UxGT("Calent. Cám. fallido") -#define MSG_ERR_REDUNDANT_TEMP _UxGT("Err: TEMP. REDUN.") -#define MSG_THERMAL_RUNAWAY _UxGT("ESCAPE TERMICO") -#define MSG_THERMAL_RUNAWAY_BED _UxGT("ESC. TERMICO CAMA") -#define MSG_THERMAL_RUNAWAY_CHAMBER _UxGT("ESC. TERMICO CAMARA") -#define MSG_ERR_MAXTEMP _UxGT("Err:TEMP. MÁX") -#define MSG_ERR_MINTEMP _UxGT("Err:TEMP. MIN") -#define MSG_ERR_MAXTEMP_BED _UxGT("Err:TEMP. MÁX CAMA") -#define MSG_ERR_MINTEMP_BED _UxGT("Err:TEMP. MIN CAMA") -#define MSG_ERR_MAXTEMP_CHAMBER _UxGT("Err:TEMP. MÁX CÁMARA") -#define MSG_ERR_MINTEMP_CHAMBER _UxGT("Err:TEMP. MIN CÁMARA") -#define MSG_ERR_Z_HOMING _UxGT("Origen XY Primero") -#define MSG_HALTED _UxGT("IMPRESORA DETENIDA") -#define MSG_PLEASE_RESET _UxGT("Por favor, reinicie") -#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("Calentando...") -#define MSG_COOLING _UxGT("Enfriando...") -#define MSG_BED_HEATING _UxGT("Calentando 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") + PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" lista"); + PROGMEM Language_Str MSG_YES = _UxGT("SI"); + PROGMEM Language_Str MSG_NO = _UxGT("NO"); + PROGMEM Language_Str MSG_BACK = _UxGT("Atrás"); + PROGMEM Language_Str MSG_MEDIA_ABORTING = _UxGT("Cancelando..."); + PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("SD/USB insertado"); + PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("SD/USB retirado"); + PROGMEM Language_Str MSG_MEDIA_RELEASED = _UxGT("SD/USB lanzado"); + PROGMEM Language_Str MSG_MEDIA_WAITING = _UxGT("Esperando al SD/USB"); + PROGMEM Language_Str MSG_MEDIA_READ_ERROR = _UxGT("Error lectura SD/USB"); + PROGMEM Language_Str MSG_MEDIA_USB_REMOVED = _UxGT("Disp. USB retirado"); + PROGMEM Language_Str MSG_MEDIA_USB_FAILED = _UxGT("Inicio USB fallido"); + 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("Menú principal"); + PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("Ajustes avanzados"); + PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("Configuración"); + PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Inicio automático"); + PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Apagar motores"); + PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("Menú depuración"); + PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Prob. barra progreso"); + PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Llevar al origen"); + PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Origen X"); + PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Origen Y"); + PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Origen Z"); + PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("Auto alineado Z"); + PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Origen XYZ"); + PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Pulsar para comenzar"); + PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Siguiente punto"); + PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("¡Nivelación lista!"); + PROGMEM Language_Str MSG_Z_FADE_HEIGHT = _UxGT("Compensación Altura"); + PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Ajustar desfases"); + PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Desfase aplicada"); + PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Establecer origen"); + 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("Precalentar ") PREHEAT_1_LABEL _UxGT(" Fin"); + PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Fin ") LCD_STR_N0; + PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Fin ") LCD_STR_N1; + PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Fin ") LCD_STR_N2; + PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Fin ") LCD_STR_N3; + PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Fin ") LCD_STR_N4; + PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Fin ") LCD_STR_N5; + PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Todo"); + PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Cama"); + PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Ajuste"); + 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("Precalentar ") PREHEAT_2_LABEL " " LCD_STR_N5; + PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Fin"); + PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Fin ") LCD_STR_N0; + PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Fin ") LCD_STR_N1; + PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Fin ") LCD_STR_N2; + PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Fin ") LCD_STR_N3; + PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Fin ") LCD_STR_N4; + PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Fin ") LCD_STR_N5; + PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Todo"); + PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Cama"); + PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Precalentar ") PREHEAT_2_LABEL _UxGT(" Ajuste"); + PROGMEM Language_Str MSG_PREHEAT_CUSTOM = _UxGT("Precalen. Personali."); + PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Enfriar"); + PROGMEM Language_Str MSG_LASER_MENU = _UxGT("Control Láser"); + PROGMEM Language_Str MSG_LASER_OFF = _UxGT("Láser Apagado"); + PROGMEM Language_Str MSG_LASER_ON = _UxGT("Láser Encendido"); + PROGMEM Language_Str MSG_LASER_POWER = _UxGT("Potencia Láser"); + PROGMEM Language_Str MSG_SPINDLE_MENU = _UxGT("Control Mandrino"); + PROGMEM Language_Str MSG_SPINDLE_OFF = _UxGT("Mandrino Apagado"); + PROGMEM Language_Str MSG_SPINDLE_ON = _UxGT("Mandrino Encendido"); + PROGMEM Language_Str MSG_SPINDLE_POWER = _UxGT("Potencia Mandrino"); + PROGMEM Language_Str MSG_SPINDLE_REVERSE = _UxGT("Invertir giro"); + PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Encender Fuente"); + PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Apagar Fuente"); + PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Extruir"); + PROGMEM Language_Str MSG_RETRACT = _UxGT("Retraer"); + PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Mover ejes"); + PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Nivelando Cama"); + PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Nivelar Cama"); + PROGMEM Language_Str MSG_LEVEL_CORNERS = _UxGT("Nivelar Esquinas"); + PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("Siguente Esquina"); + PROGMEM Language_Str MSG_MESH_EDITOR = _UxGT("Editor Mallado"); + PROGMEM Language_Str MSG_EDIT_MESH = _UxGT("Editar Mallado"); + PROGMEM Language_Str MSG_EDITING_STOPPED = _UxGT("Ed. Mallado parada"); + PROGMEM Language_Str MSG_PROBING_MESH = _UxGT("Sondear Punto"); + 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("Comandos Personaliz."); + PROGMEM Language_Str MSG_M48_TEST = _UxGT("M48 Probar Sonda"); + PROGMEM Language_Str MSG_M48_POINT = _UxGT("M48 Punto"); + PROGMEM Language_Str MSG_M48_DEVIATION = _UxGT("Desviación"); + PROGMEM Language_Str MSG_IDEX_MENU = _UxGT("Modo IDEX"); + PROGMEM Language_Str MSG_OFFSETS_MENU = _UxGT("Desfase Boquillas"); + PROGMEM Language_Str MSG_IDEX_MODE_AUTOPARK = _UxGT("Auto-Aparcado"); + PROGMEM Language_Str MSG_IDEX_MODE_DUPLICATE = _UxGT("Duplicar"); + PROGMEM Language_Str MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Copia Reflejada"); + PROGMEM Language_Str MSG_IDEX_MODE_FULL_CTRL = _UxGT("Control Total"); + PROGMEM Language_Str MSG_X_OFFSET = _UxGT("2ª Boquilla X"); + PROGMEM Language_Str MSG_Y_OFFSET = _UxGT("2ª Boquilla Y"); + PROGMEM Language_Str MSG_Z_OFFSET = _UxGT("2ª Boquilla Z"); + PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("Hacer G29"); + PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("Herramientas UBL"); + PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("Nivel.Cama.Uni.(UBL)"); + PROGMEM Language_Str MSG_LCD_TILTING_MESH = _UxGT("Punto de inclinación"); + PROGMEM Language_Str MSG_UBL_MANUAL_MESH = _UxGT("Crear Mallado man."); + PROGMEM Language_Str MSG_UBL_BC_INSERT = _UxGT("Colocar cuña y Medir"); + PROGMEM Language_Str MSG_UBL_BC_INSERT2 = _UxGT("Medir"); + PROGMEM Language_Str MSG_UBL_BC_REMOVE = _UxGT("Retirar y Medir Cama"); + PROGMEM Language_Str MSG_UBL_MOVING_TO_NEXT = _UxGT("Mover al Siguente"); + PROGMEM Language_Str MSG_UBL_ACTIVATE_MESH = _UxGT("Activar UBL"); + PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("Desactivar UBL"); + PROGMEM Language_Str MSG_UBL_SET_TEMP_BED = _UxGT("Temp. Cama"); + 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("Editar Mallado"); + PROGMEM Language_Str MSG_UBL_EDIT_CUSTOM_MESH = _UxGT("Edit. Mallado perso."); + PROGMEM Language_Str MSG_UBL_FINE_TUNE_MESH = _UxGT("Ajuste fino Mallado"); + PROGMEM Language_Str MSG_UBL_DONE_EDITING_MESH = _UxGT("Term. edici. Mallado"); + PROGMEM Language_Str MSG_UBL_BUILD_CUSTOM_MESH = _UxGT("Crear Mallado Perso."); + PROGMEM Language_Str MSG_UBL_BUILD_MESH_MENU = _UxGT("Crear Mallado"); + PROGMEM Language_Str MSG_UBL_BUILD_MESH_M1 = _UxGT("Crear Mallado (") PREHEAT_1_LABEL _UxGT(")"); + PROGMEM Language_Str MSG_UBL_BUILD_MESH_M2 = _UxGT("Crear Mallado (") PREHEAT_2_LABEL _UxGT(")"); + PROGMEM Language_Str MSG_UBL_BUILD_COLD_MESH = _UxGT("Crear Mallado Frío"); + PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_ADJUST = _UxGT("Ajustar alt. Mallado"); + PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_AMOUNT = _UxGT("Cantidad de altura"); + PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_MENU = _UxGT("Validar Mallado"); + PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M1 = _UxGT("Validar Mallado (") PREHEAT_1_LABEL _UxGT(")"); + PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M2 = _UxGT("Validar Mallado (") PREHEAT_2_LABEL _UxGT(")"); + PROGMEM Language_Str MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("Vali. Mallado perso."); + PROGMEM Language_Str MSG_G26_HEATING_BED = _UxGT("G26 Calentando Cama"); + PROGMEM Language_Str MSG_G26_HEATING_NOZZLE = _UxGT("G26 Calent. Boquilla"); + PROGMEM Language_Str MSG_G26_MANUAL_PRIME = _UxGT("Imprimado manual..."); + PROGMEM Language_Str MSG_G26_FIXED_LENGTH = _UxGT("Impri. longit. fija"); + PROGMEM Language_Str MSG_G26_PRIME_DONE = _UxGT("Imprimación Lista"); + PROGMEM Language_Str MSG_G26_CANCELED = _UxGT("G26 Cancelado"); + PROGMEM Language_Str MSG_G26_LEAVING = _UxGT("Dejando G26"); + PROGMEM Language_Str MSG_UBL_CONTINUE_MESH = _UxGT("Contin. Mallado cama"); + PROGMEM Language_Str MSG_UBL_MESH_LEVELING = _UxGT("Nivelando Mallado"); + PROGMEM Language_Str MSG_UBL_3POINT_MESH_LEVELING = _UxGT("Nivelando 3Puntos"); + PROGMEM Language_Str MSG_UBL_GRID_MESH_LEVELING = _UxGT("Nivel. Mallado cuad."); + PROGMEM Language_Str MSG_UBL_MESH_LEVEL = _UxGT("Nivel de Mallado"); + PROGMEM Language_Str MSG_UBL_SIDE_POINTS = _UxGT("Puntos Laterales"); + PROGMEM Language_Str MSG_UBL_MAP_TYPE = _UxGT("Tipo de mapa "); + PROGMEM Language_Str MSG_UBL_OUTPUT_MAP = _UxGT("Salida Mapa mallado"); + PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_HOST = _UxGT("Salida para el host"); + PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_CSV = _UxGT("Salida para CSV"); + PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_BACKUP = _UxGT("Off Printer Backup"); + PROGMEM Language_Str MSG_UBL_INFO_UBL = _UxGT("Salida Info. UBL"); + PROGMEM Language_Str MSG_UBL_FILLIN_AMOUNT = _UxGT("Cantidad de relleno"); + PROGMEM Language_Str MSG_UBL_MANUAL_FILLIN = _UxGT("Relleno manual"); + PROGMEM Language_Str MSG_UBL_SMART_FILLIN = _UxGT("Relleno inteligente"); + PROGMEM Language_Str MSG_UBL_FILLIN_MESH = _UxGT("Mallado de relleno"); + PROGMEM Language_Str MSG_UBL_INVALIDATE_ALL = _UxGT("Invalidar todo"); + PROGMEM Language_Str MSG_UBL_INVALIDATE_CLOSEST = _UxGT("Invalidar proximos"); + PROGMEM Language_Str MSG_UBL_FINE_TUNE_ALL = _UxGT("Ajustar Fino Todo"); + PROGMEM Language_Str MSG_UBL_FINE_TUNE_CLOSEST = _UxGT("Ajustar Fino proxi."); + PROGMEM Language_Str MSG_UBL_STORAGE_MESH_MENU = _UxGT("Almacen de Mallado"); + PROGMEM Language_Str MSG_UBL_STORAGE_SLOT = _UxGT("Huecos de memoria"); + PROGMEM Language_Str MSG_UBL_LOAD_MESH = _UxGT("Cargar Mallado cama"); + PROGMEM Language_Str MSG_UBL_SAVE_MESH = _UxGT("Guardar Mallado cama"); + PROGMEM Language_Str MSG_MESH_LOADED = _UxGT("M117 Mallado %i Cargado"); + PROGMEM Language_Str MSG_MESH_SAVED = _UxGT("M117 Mallado %i Guardado"); + PROGMEM Language_Str MSG_UBL_NO_STORAGE = _UxGT("Sin guardar"); + PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("Error: Guardar UBL"); + PROGMEM Language_Str MSG_UBL_RESTORE_ERROR = _UxGT("Error: Restaurar UBL"); + PROGMEM Language_Str MSG_UBL_Z_OFFSET = _UxGT("Desfase de Z: "); + PROGMEM Language_Str MSG_UBL_Z_OFFSET_STOPPED = _UxGT("Desfase de Z Parado"); + PROGMEM Language_Str MSG_UBL_STEP_BY_STEP_MENU = _UxGT("UBL Paso a Paso"); + PROGMEM Language_Str MSG_UBL_1_BUILD_COLD_MESH = _UxGT("1.Crear Mallado Frío"); + PROGMEM Language_Str MSG_UBL_2_SMART_FILLIN = _UxGT("2.Relleno inteligente"); + PROGMEM Language_Str MSG_UBL_3_VALIDATE_MESH_MENU = _UxGT("3.Validar Mallado"); + PROGMEM Language_Str MSG_UBL_4_FINE_TUNE_ALL = _UxGT("4.Ajustar Fino Todo"); + PROGMEM Language_Str MSG_UBL_5_VALIDATE_MESH_MENU = _UxGT("5.Validar Mallado"); + PROGMEM Language_Str MSG_UBL_6_FINE_TUNE_ALL = _UxGT("6.Ajustar Fino Todo"); + PROGMEM Language_Str MSG_UBL_7_SAVE_MESH = _UxGT("7.Guardar Mallado cama"); -#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 - #define MSG_INFO_PRINT_COUNT _UxGT("Cont. de impresión") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Completadas") - #define MSG_INFO_PRINT_TIME _UxGT("Tiempo total de imp.") - #define MSG_INFO_PRINT_LONGEST _UxGT("Impresión más larga") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Total Extruido") -#else - #define MSG_INFO_PRINT_COUNT _UxGT("Impresiones") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Completadas") - #define MSG_INFO_PRINT_TIME _UxGT("Total") - #define MSG_INFO_PRINT_LONGEST _UxGT("Más larga") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Extruido") -#endif -#define MSG_INFO_MIN_TEMP _UxGT("Temp. Mínima") -#define MSG_INFO_MAX_TEMP _UxGT("Temp. Máxima") -#define MSG_INFO_PSU _UxGT("Fuente alimentación") -#define MSG_DRIVE_STRENGTH _UxGT("Fuerza de empuje") -#define MSG_DAC_PERCENT _UxGT("Driver %") -#define MSG_ERROR_TMC _UxGT("ERROR CONEX. TMC") -#define MSG_DAC_EEPROM_WRITE _UxGT("Escribe DAC EEPROM") -#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("IMPRESIÓN PAUSADA") -#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("CARGAR FILAMENTO") -#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("DESCARGAR FILAMENTO") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("OPC. REINICIO:") -#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Purgar más") -#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Continuar imp.") -#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Boquilla: ") -#define MSG_RUNOUT_SENSOR _UxGT("Sensor de sección") -#define MSG_RUNOUT_DISTANCE_MM _UxGT("Dist de secc. mm") -#define MSG_ERR_HOMING_FAILED _UxGT("Ir a origen Fallado") -#define MSG_ERR_PROBING_FAILED _UxGT("Sondeo Fallado") -#define MSG_M600_TOO_COLD _UxGT("M600: Muy Frio") + PROGMEM Language_Str MSG_MOVING = _UxGT("Moviendo..."); + PROGMEM Language_Str MSG_FREE_XY = _UxGT("Libre XY"); + 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_HOTEND_TOO_COLD = _UxGT("Hotend muy frio"); + 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("Velocidad"); + PROGMEM Language_Str MSG_BED_Z = _UxGT("Cama 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("Cama"); + PROGMEM Language_Str MSG_CHAMBER = _UxGT("Recinto"); + PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Ventilador"); + PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Ventilador 1"); + PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Ventilador 2"); + 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") -#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") + PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Impresora incorrecta"); -#define MSG_MIX _UxGT("Mezcla") -#define MSG_MIX_COMPONENT _UxGT("Componente") -#define MSG_MIXER _UxGT("Miezclador") -#define MSG_GRADIENT _UxGT("Degradado") -#define MSG_FULL_GRADIENT _UxGT("Degradado Total") -#define MSG_TOGGLE_MIX _UxGT("Mezcla Conmutada") -#define MSG_CYCLE_MIX _UxGT("Mezcla Cíclica") -#define MSG_GRADIENT_MIX _UxGT("Mezcla de Degradado") -#define MSG_REVERSE_GRADIENT _UxGT("Degradado inverso") -#define MSG_ACTIVE_VTOOL _UxGT("Activar Herr.V") -#define MSG_START_VTOOL _UxGT("Inicio Herr.V") -#define MSG_END_VTOOL _UxGT(" Fin Herr.V") -#define MSG_GRADIENT_ALIAS _UxGT("Alias Herr.V") -#define MSG_RESET_VTOOLS _UxGT("Reiniciar Herr.V") -#define MSG_COMMIT_VTOOL _UxGT("Cometer mezc. Herr.V") -#define MSG_VTOOLS_RESET _UxGT("Herr.V reiniciados") -#define MSG_START_Z _UxGT("Inicio Z") -#define MSG_END_Z _UxGT(" Fin Z") + #if LCD_WIDTH >= 20 + PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Cont. de impresión"); + PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Completadas"); + PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Tiempo total de imp."); + PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Impresión más larga"); + PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Total Extruido"); + #else + PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Impresiones"); + 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("Más larga"); + PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Extruido"); + #endif + PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Temp. Mínima"); + PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Temp. Máxima"); + PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Fuente alimentación"); + PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Fuerza de empuje"); + 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") -#define MSG_BRICKOUT _UxGT("Brickout") -#define MSG_INVADERS _UxGT("Invaders") -#define MSG_SNAKE _UxGT("Sn4k3") -#define MSG_MAZE _UxGT("Maze") + PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("ELIJE FILAMENTO"); + PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU"); + PROGMEM Language_Str MSG_MMU2_WRONG_FIRMWARE = _UxGT("¡Actu. MMU Firmware!"); + PROGMEM Language_Str MSG_MMU2_NOT_RESPONDING = _UxGT("MMU Necesita Cuidado"); + 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 - #define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Pulsar el botón para") - #define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("reanudar impresión") - #define MSG_PAUSE_PRINT_INIT_1 _UxGT("Aparcando...") - #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Esperando para") - #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("iniciar el cambio") - #define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("de filamento") - #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Inserte el filamento") - #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("y pulse el botón") - #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("para continuar...") - #define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Pulse el botón para") - #define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("calentar la boquilla") - #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Calentando boquilla") - #define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Espere por favor...") - #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Espere para") - #define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("liberar el filamento") - #define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Espere para") - #define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("purgar el filamento") - #define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Pulse para finalizar") - #define MSG_FILAMENT_CHANGE_CONT_PURGE_2 _UxGT("la purga de filamen.") - #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Esperando impresora") - #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("para reanudar...") -#else - #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 + PROGMEM Language_Str MSG_MIX = _UxGT("Mezcla"); + 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("Miezclador"); + PROGMEM Language_Str MSG_GRADIENT = _UxGT("Degradado"); + PROGMEM Language_Str MSG_FULL_GRADIENT = _UxGT("Degradado Total"); + PROGMEM Language_Str MSG_TOGGLE_MIX = _UxGT("Mezcla Conmutada"); + PROGMEM Language_Str MSG_CYCLE_MIX = _UxGT("Mezcla Cíclica"); + PROGMEM Language_Str MSG_GRADIENT_MIX = _UxGT("Mezcla de Degradado"); + PROGMEM Language_Str MSG_REVERSE_GRADIENT = _UxGT("Degradado inverso"); + PROGMEM Language_Str MSG_ACTIVE_VTOOL = _UxGT("Activar Herr.V"); + PROGMEM Language_Str MSG_START_VTOOL = _UxGT("Inicio Herr.V"); + PROGMEM Language_Str MSG_END_VTOOL = _UxGT(" Fin Herr.V"); + PROGMEM Language_Str MSG_GRADIENT_ALIAS = _UxGT("Alias Herr.V"); + PROGMEM Language_Str MSG_RESET_VTOOLS = _UxGT("Reiniciar Herr.V"); + PROGMEM Language_Str MSG_COMMIT_VTOOL = _UxGT("Cometer mezc. Herr.V"); + PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("Herr.V reiniciados"); + PROGMEM Language_Str MSG_START_Z = _UxGT("Inicio Z:"); + PROGMEM Language_Str MSG_END_Z = _UxGT(" Fin Z:"); -#define MSG_TMC_DRIVERS _UxGT("Controladores TMC") -#define MSG_TMC_CURRENT _UxGT("Amperaje Controlador") -#define MSG_TMC_HYBRID_THRS _UxGT("Límite Hibrido") -#define MSG_TMC_HOMING_THRS _UxGT("Origen sin sensores") -#define MSG_TMC_STEPPING_MODE _UxGT("Modo de pasos") -#define MSG_TMC_STEALTH_ENABLED _UxGT("StealthChop Habilit.") + PROGMEM Language_Str MSG_GAMES = _UxGT("Games"); + PROGMEM Language_Str MSG_BRICKOUT = _UxGT("Brickout"); + PROGMEM Language_Str MSG_INVADERS = _UxGT("Invaders"); + PROGMEM Language_Str MSG_SNAKE = _UxGT("Sn4k3"); + PROGMEM Language_Str MSG_MAZE = _UxGT("Maze"); -#define MSG_SERVICE_RESET _UxGT("Reiniciar") -#define MSG_SERVICE_IN _UxGT(" dentro:") + #if LCD_HEIGHT >= 4 + 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") -#define MSG_BACKLASH_CORRECTION _UxGT("Correction") -#define MSG_BACKLASH_SMOOTHING _UxGT("Suavizado") + PROGMEM Language_Str MSG_TMC_DRIVERS = _UxGT("Controladores TMC"); + PROGMEM Language_Str MSG_TMC_CURRENT = _UxGT("Amperaje Controlador"); + 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"); +} diff --git a/Marlin/src/lcd/language/language_eu.h b/Marlin/src/lcd/language/language_eu.h index 6ebddc124e..d9c8e2c220 100644 --- a/Marlin/src/lcd/language/language_eu.h +++ b/Marlin/src/lcd/language/language_eu.h @@ -32,358 +32,362 @@ #define DISPLAY_CHARSET_ISO10646_1 #define NOT_EXTENDED_ISO10646_1_5X7 -#define WELCOME_MSG MACHINE_NAME _UxGT(" prest.") -#define MSG_BACK _UxGT("Atzera") -#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") +namespace Language_eu { + using namespace Language_en; // Inherit undefined strings from English -#define MSG_UBL_DOING_G29 _UxGT("G29 exekutatzen") -#define MSG_UBL_TOOLS _UxGT("UBL Tresnak") -#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") + constexpr uint8_t CHARSIZE = 1; + PROGMEM Language_Str LANGUAGE = _UxGT("Basque-Euskera"); -#define MSG_MOVING _UxGT("Mugitzen...") -#define MSG_FREE_XY _UxGT("Askatu XY") -#define MSG_MOVE_X _UxGT("Mugitu X") -#define MSG_MOVE_Y _UxGT("Mugitu Y") -#define MSG_MOVE_Z _UxGT("Mugitu Z") -#define MSG_MOVE_E _UxGT("Estrusorea") -#define MSG_MOVE_Z_DIST _UxGT("Mugitu %smm") -#define MSG_MOVE_01MM _UxGT("Mugitu 0.1mm") -#define MSG_MOVE_1MM _UxGT("Mugitu 1mm") -#define MSG_MOVE_10MM _UxGT("Mugitu 10mm") -#define MSG_SPEED _UxGT("Abiadura") -#define MSG_BED_Z _UxGT("Z Ohea") -#define MSG_NOZZLE _UxGT("Pita") -#define MSG_BED _UxGT("Ohea") -#define MSG_FAN_SPEED _UxGT("Haizagailu abiadura") -#define MSG_EXTRA_FAN_SPEED _UxGT("Haiz.gehig. abiadura") -#define MSG_FLOW _UxGT("Fluxua") -#define MSG_CONTROL _UxGT("Kontrola") -#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 tenperatura") -#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("Aukeratu") -#define MSG_ACC _UxGT("Azelerazioa") -#define MSG_JERK _UxGT("Astindua") -#if IS_KINEMATIC - #define MSG_VA_JERK _UxGT("Va-astindua") - #define MSG_VB_JERK _UxGT("Vb-astindua") - #define MSG_VC_JERK _UxGT("Vc-astindua") -#else - #define MSG_VA_JERK _UxGT("Vx-astindua") - #define MSG_VB_JERK _UxGT("Vy-astindua") - #define MSG_VC_JERK _UxGT("Vz-astindua") -#endif -#define MSG_VE_JERK _UxGT("Ve-astindua") -//#define MSG_VELOCITY _UxGT("Velocity") -#define MSG_VMAX _UxGT("Vmax ") -#define MSG_VMIN _UxGT("Vmin") -#define MSG_VTRAV_MIN _UxGT("VBidaia min") -#define MSG_ACCELERATION MSG_ACC -#define MSG_AMAX _UxGT("Amax ") -#define MSG_A_RETRACT _UxGT("A-retrakt") -#define MSG_A_TRAVEL _UxGT("A-bidaia") -#define MSG_STEPS_PER_MM _UxGT("Pausoak/mm") -#if IS_KINEMATIC - #define MSG_ASTEPS _UxGT("A pausoak/mm") - #define MSG_BSTEPS _UxGT("B pausoak/mm") - #define MSG_CSTEPS _UxGT("C pausoak/mm") -#else - #define MSG_ASTEPS _UxGT("X pausoak/mm") - #define MSG_BSTEPS _UxGT("Y pausoak/mm") - #define MSG_CSTEPS _UxGT("Z pausoak/mm") -#endif -#define MSG_ESTEPS _UxGT("E pausoak/mm") -#define MSG_E0_STEPS _UxGT("E1 pausoak/mm") -#define MSG_E1_STEPS _UxGT("E2 pausoak/mm") -#define MSG_E2_STEPS _UxGT("E3 pausoak/mm") -#define MSG_E3_STEPS _UxGT("E4 pausoak/mm") -#define MSG_E4_STEPS _UxGT("E5 pausoak/mm") -#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") + PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" prest."); + PROGMEM Language_Str MSG_BACK = _UxGT("Atzera"); + PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Txartela sartuta"); + PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Txartela kenduta"); + PROGMEM Language_Str MSG_MAIN = _UxGT("Menu nagusia"); + PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Auto hasiera"); + PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Itzali motoreak"); + PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("Arazketa Menua"); + PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Prog. Barra Proba"); + PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Hasierara joan"); + PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("X jatorrira"); + PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Y jatorrira"); + PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Z jatorrira"); + PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("XYZ hasieraratzen"); + PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Klik egin hasteko"); + PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Hurrengo Puntua"); + PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Berdintzea eginda"); + PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Etxe. offset eza."); + PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Offsetak ezarrita"); + PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Hasiera ipini"); + PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Berotu ") PREHEAT_1_LABEL; + PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Berotu ") PREHEAT_1_LABEL " " LCD_STR_N0; + PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Berotu ") PREHEAT_1_LABEL " " LCD_STR_N1; + PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Berotu ") PREHEAT_1_LABEL " " LCD_STR_N2; + PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Berotu ") PREHEAT_1_LABEL " " LCD_STR_N3; + PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Berotu ") PREHEAT_1_LABEL " " LCD_STR_N4; + PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Berotu ") PREHEAT_1_LABEL " " LCD_STR_N5; + PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Berotu ") PREHEAT_1_LABEL _UxGT(" Amaia"); + PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Berotu ") PREHEAT_1_LABEL _UxGT(" Amaia ") LCD_STR_N0; + PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Berotu ") PREHEAT_1_LABEL _UxGT(" Amaia ") LCD_STR_N1; + PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Berotu ") PREHEAT_1_LABEL _UxGT(" Amaia ") LCD_STR_N2; + PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Berotu ") PREHEAT_1_LABEL _UxGT(" Amaia ") LCD_STR_N3; + PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Berotu ") PREHEAT_1_LABEL _UxGT(" Amaia ") LCD_STR_N4; + PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Berotu ") PREHEAT_1_LABEL _UxGT(" Amaia ") LCD_STR_N5; + PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Berotu ") PREHEAT_1_LABEL _UxGT(" Guztia"); + PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Berotu ") PREHEAT_1_LABEL _UxGT(" Ohea"); + PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Berotu ") PREHEAT_1_LABEL _UxGT(" Ezarp."); + PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Berotu ") PREHEAT_2_LABEL; + PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Berotu ") PREHEAT_2_LABEL " " LCD_STR_N0; + PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Berotu ") PREHEAT_2_LABEL " " LCD_STR_N1; + PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Berotu ") PREHEAT_2_LABEL " " LCD_STR_N2; + PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Berotu ") PREHEAT_2_LABEL " " LCD_STR_N3; + PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Berotu ") PREHEAT_2_LABEL " " LCD_STR_N4; + PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Berotu ") PREHEAT_2_LABEL " " LCD_STR_N5; + PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Berotu ") PREHEAT_2_LABEL _UxGT(" Amaia"); + PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Berotu ") PREHEAT_2_LABEL _UxGT(" Amaia ") LCD_STR_N0; + PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Berotu ") PREHEAT_2_LABEL _UxGT(" Amaia ") LCD_STR_N1; + PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Berotu ") PREHEAT_2_LABEL _UxGT(" Amaia ") LCD_STR_N2; + PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Berotu ") PREHEAT_2_LABEL _UxGT(" Amaia ") LCD_STR_N3; + PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Berotu ") PREHEAT_2_LABEL _UxGT(" Amaia ") LCD_STR_N4; + PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Berotu ") PREHEAT_2_LABEL _UxGT(" Amaia ") LCD_STR_N5; + PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Berotu ") PREHEAT_2_LABEL _UxGT(" Guztia"); + PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Berotu ") PREHEAT_2_LABEL _UxGT(" Ohea"); + PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Berotu ") PREHEAT_2_LABEL _UxGT(" Ezarp."); + PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Hoztu"); + PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Energia piztu"); + PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Energia itzali"); + PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Estruitu"); + PROGMEM Language_Str MSG_RETRACT = _UxGT("Atzera eragin"); + PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Ardatzak mugitu"); + PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Ohe berdinketa"); + PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Ohea berdindu"); + PROGMEM Language_Str MSG_LEVEL_CORNERS = _UxGT("Ertzak berdindu"); + PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("Hurrengo ertza"); + PROGMEM Language_Str MSG_EDIT_MESH = _UxGT("Sarea editatu"); -#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"); -// -// 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("Mesedez, itxaron...") - #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Deskargatzen...") - #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Sartu eta click egin") - #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Berotzen...") - #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Kargatzen...") - //#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Purging...") - //#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Resuming...") -#endif // LCD_HEIGHT < 4 + PROGMEM Language_Str MSG_MOVING = _UxGT("Mugitzen..."); + PROGMEM Language_Str MSG_FREE_XY = _UxGT("Askatu XY"); + PROGMEM Language_Str MSG_MOVE_X = _UxGT("Mugitu X"); + PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Mugitu Y"); + PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Mugitu Z"); + PROGMEM Language_Str MSG_MOVE_E = _UxGT("Estrusorea"); + PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Estrusorea ") LCD_STR_E0; + PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Estrusorea ") LCD_STR_E1; + PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Estrusorea ") LCD_STR_E2; + PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Estrusorea ") LCD_STR_E3; + PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Estrusorea ") LCD_STR_E4; + PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Estrusorea ") LCD_STR_E5; + PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Mugitu %smm"); + PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Mugitu 0.1mm"); + PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Mugitu 1mm"); + PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Mugitu 10mm"); + PROGMEM Language_Str MSG_SPEED = _UxGT("Abiadura"); + PROGMEM Language_Str MSG_BED_Z = _UxGT("Z Ohea"); + PROGMEM Language_Str MSG_NOZZLE = _UxGT("Pita"); + PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Pita ") LCD_STR_N0; + PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Pita ") LCD_STR_N1; + PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Pita ") LCD_STR_N2; + PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Pita ") LCD_STR_N3; + PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Pita ") LCD_STR_N4; + PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Pita ") LCD_STR_N5; + PROGMEM Language_Str MSG_BED = _UxGT("Ohea"); + PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Haizagailu abiadura"); + PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Haizagailu abiadura 1"); + PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Haizagailu abiadura 2"); + PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Haizagailu abiadura 3"); + PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Haiz.gehig. abiadura"); + 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...")); +} diff --git a/Marlin/src/lcd/language/language_fi.h b/Marlin/src/lcd/language/language_fi.h index 917496e200..0b6385c213 100644 --- a/Marlin/src/lcd/language/language_fi.h +++ b/Marlin/src/lcd/language/language_fi.h @@ -30,142 +30,136 @@ */ #define DISPLAY_CHARSET_ISO10646_1 -#define CHARSIZE 2 -#define WELCOME_MSG MACHINE_NAME _UxGT(" valmis.") -#define MSG_MEDIA_INSERTED _UxGT("Kortti asetettu") -#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") +namespace Language_fi { + using namespace Language_en; // Inherit undefined strings from English -#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"); +} diff --git a/Marlin/src/lcd/language/language_fr.h b/Marlin/src/lcd/language/language_fr.h index e23c55de94..a770fe46b8 100644 --- a/Marlin/src/lcd/language/language_fr.h +++ b/Marlin/src/lcd/language/language_fr.h @@ -30,533 +30,586 @@ */ #define DISPLAY_CHARSET_ISO10646_1 -#define CHARSIZE 2 -#define WELCOME_MSG MACHINE_NAME _UxGT(" prête.") -#define MSG_YES _UxGT("Oui") -#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") +namespace Language_fr { + using namespace Language_en; // Inherit undefined strings from English -#define MSG_LCD_TILTING_MESH _UxGT("Touche point") -#define MSG_M48_TEST _UxGT("Ecart sonde Z M48") -#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") + constexpr uint8_t CHARSIZE = 2; + PROGMEM Language_Str LANGUAGE = _UxGT("Français"); -#define MSG_LED_CONTROL _UxGT("Contrôle LED") -#define MSG_LEDS _UxGT("Lumière") -#define MSG_LED_PRESETS _UxGT("Préregl. LED") -#define MSG_SET_LEDS_RED _UxGT("Rouge") -#define MSG_SET_LEDS_ORANGE _UxGT("Orange") -#define MSG_SET_LEDS_YELLOW _UxGT("Jaune") -#define MSG_SET_LEDS_GREEN _UxGT("Vert") -#define MSG_SET_LEDS_BLUE _UxGT("Bleu") -#define MSG_SET_LEDS_INDIGO _UxGT("Indigo") -#define MSG_SET_LEDS_VIOLET _UxGT("Violet") -#define MSG_SET_LEDS_WHITE _UxGT("Blanc") -#define MSG_SET_LEDS_DEFAULT _UxGT("Defaut") -#define MSG_CUSTOM_LEDS _UxGT("LEDs perso.") -#define MSG_INTENSITY_R _UxGT("Intensité rouge") -#define MSG_INTENSITY_G _UxGT("Intensité vert") -#define MSG_INTENSITY_B _UxGT("Intensité bleu") -#define MSG_INTENSITY_W _UxGT("Intensité blanc") -#define MSG_LED_BRIGHTNESS _UxGT("Luminosité") + PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" prête."); + PROGMEM Language_Str MSG_YES = _UxGT("Oui"); + PROGMEM Language_Str MSG_NO = _UxGT("Non"); + PROGMEM Language_Str MSG_BACK = _UxGT("Retour"); + PROGMEM Language_Str MSG_MEDIA_ABORTING = _UxGT("Annulation..."); + PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Média inséré"); + PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Média retiré"); + PROGMEM Language_Str MSG_MEDIA_RELEASED = _UxGT("Média libéré"); + PROGMEM Language_Str MSG_MEDIA_WAITING = _UxGT("Attente média"); + PROGMEM Language_Str MSG_MEDIA_READ_ERROR = _UxGT("Err lecture média"); + PROGMEM Language_Str MSG_MEDIA_USB_REMOVED = _UxGT("USB débranché"); + PROGMEM Language_Str MSG_MEDIA_USB_FAILED = _UxGT("Erreur média USB"); + PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Butées"); + PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("Butées SW"); + PROGMEM Language_Str MSG_MAIN = _UxGT("Menu principal"); + PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("Config. avancée"); + PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("Configuration"); + 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...") -#define MSG_FREE_XY _UxGT("Débloquer XY") -#define MSG_MOVE_X _UxGT("Déplacer X") -#define MSG_MOVE_Y _UxGT("Déplacer Y") -#define MSG_MOVE_Z _UxGT("Déplacer Z") -#define MSG_MOVE_E _UxGT("Extrudeur") -#define MSG_HOTEND_TOO_COLD _UxGT("Buse trop froide") -#define MSG_MOVE_Z_DIST _UxGT("Déplacer %smm") -#define MSG_MOVE_01MM _UxGT("Déplacer 0.1mm") -#define MSG_MOVE_1MM _UxGT("Déplacer 1mm") -#define MSG_MOVE_10MM _UxGT("Déplacer 10mm") -#define MSG_SPEED _UxGT("Vitesse") -#define MSG_BED_Z _UxGT("Lit Z") -#define MSG_NOZZLE _UxGT("Buse") -#define MSG_BED _UxGT("Lit") -#define MSG_CHAMBER _UxGT("Caisson") -#define MSG_FAN_SPEED _UxGT("Vitesse ventil.") -#define MSG_EXTRA_FAN_SPEED _UxGT("Extra V ventil.") + PROGMEM Language_Str MSG_LCD_TILTING_MESH = _UxGT("Touche point"); + PROGMEM Language_Str MSG_M48_TEST = _UxGT("Ecart sonde Z M48"); + PROGMEM Language_Str MSG_M48_DEVIATION = _UxGT("Ecart"); + PROGMEM Language_Str MSG_M48_POINT = _UxGT("Point M48"); + PROGMEM Language_Str MSG_IDEX_MENU = _UxGT("Mode IDEX"); + 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("Copie miroir"); + PROGMEM Language_Str MSG_IDEX_MODE_FULL_CTRL = _UxGT("Contrôle complet"); + PROGMEM Language_Str MSG_OFFSETS_MENU = _UxGT("Offsets Outil"); + PROGMEM Language_Str MSG_X_OFFSET = _UxGT("Buse 2 X"); + PROGMEM Language_Str MSG_Y_OFFSET = _UxGT("Buse 2 Y"); + PROGMEM Language_Str MSG_Z_OFFSET = _UxGT("Buse 2 Z"); + PROGMEM Language_Str MSG_G26_HEATING_BED = _UxGT("G26 Chauffe lit"); + PROGMEM Language_Str MSG_G26_HEATING_NOZZLE = _UxGT("G26 Chauffe buse"); + PROGMEM Language_Str MSG_G26_MANUAL_PRIME = _UxGT("Amorce manuelle..."); + PROGMEM Language_Str MSG_G26_FIXED_LENGTH = _UxGT("Amorce longueur fixe"); + 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") -#define MSG_CONTROL _UxGT("Contrôler") -#define MSG_MIN LCD_STR_THERMOMETER _UxGT(" Min") -#define MSG_MAX LCD_STR_THERMOMETER _UxGT(" Max") -#define MSG_FACTOR LCD_STR_THERMOMETER _UxGT(" Facteur") -#define MSG_AUTOTEMP _UxGT("Temp. Auto.") -#define MSG_LCD_ON _UxGT("Marche") -#define MSG_LCD_OFF _UxGT("Arrêt") -#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("Sélectionner") -#define MSG_ACC _UxGT("Accélération") -#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_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") + PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("Contrôle LED"); + PROGMEM Language_Str MSG_LEDS = _UxGT("Lumière"); + PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("Préregl. LED"); + PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("Rouge"); + PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("Orange"); + PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("Jaune"); + PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("Vert"); + PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("Bleu"); + PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("Indigo"); + PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Violet"); + PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("Blanc"); + PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("Defaut"); + PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("LEDs perso."); + PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Intensité rouge"); + PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Intensité vert"); + PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("Intensité bleu"); + PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("Intensité blanc"); + PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("Luminosité"); -#define MSG_HALTED _UxGT("IMPR. STOPPÉE") -#define MSG_PLEASE_RESET _UxGT("Redémarrer SVP") -#define MSG_SHORT_DAY _UxGT("j") // One character only -#define MSG_SHORT_HOUR _UxGT("h") // One character only -#define MSG_SHORT_MINUTE _UxGT("m") // One character only + PROGMEM Language_Str MSG_MOVING = _UxGT("Déplacement..."); + PROGMEM Language_Str MSG_FREE_XY = _UxGT("Débloquer XY"); + PROGMEM Language_Str MSG_MOVE_X = _UxGT("Déplacer X"); + PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Déplacer Y"); + 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...") -#define MSG_COOLING _UxGT("Refroidissement") -#define MSG_BED_HEATING _UxGT("Lit en chauffe...") -#define MSG_BED_COOLING _UxGT("Refroid. du lit...") -#define MSG_CHAMBER_HEATING _UxGT("Chauffe caisson...") -#define MSG_CHAMBER_COOLING _UxGT("Refroid. caisson...") -#define MSG_DELTA_CALIBRATE _UxGT("Calibration Delta") -#define MSG_DELTA_CALIBRATE_X _UxGT("Calibrer X") -#define MSG_DELTA_CALIBRATE_Y _UxGT("Calibrer Y") -#define MSG_DELTA_CALIBRATE_Z _UxGT("Calibrer Z") -#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Calibrer centre") -#define MSG_DELTA_SETTINGS _UxGT("Réglages Delta") -#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Calibration Auto") -#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Hauteur Delta") -#define MSG_DELTA_Z_OFFSET_CALIBRATE _UxGT("Delta Z sonde") -#define MSG_DELTA_DIAG_ROD _UxGT("Diagonale") -#define MSG_DELTA_HEIGHT _UxGT("Hauteur") -#define MSG_DELTA_RADIUS _UxGT("Rayon") + PROGMEM Language_Str MSG_FLOW = _UxGT("Flux"); + PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Flux ") LCD_STR_N0; + PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Flux ") LCD_STR_N1; + PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Flux ") LCD_STR_N2; + PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Flux ") LCD_STR_N3; + PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Flux ") LCD_STR_N4; + PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Flux ") LCD_STR_N5; + PROGMEM Language_Str MSG_CONTROL = _UxGT("Contrôler"); + 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(" Facteur"); + PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Temp. Auto."); + PROGMEM Language_Str MSG_LCD_ON = _UxGT("Marche"); + PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Arrêt"); + PROGMEM Language_Str MSG_SELECT = _UxGT("Sélectionner"); + PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("Sélectionner ") LCD_STR_E0; + PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("Sélectionner ") LCD_STR_E1; + 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") -#define MSG_INFO_PRINTER_MENU _UxGT("Infos imprimante") -#define MSG_3POINT_LEVELING _UxGT("Niveau à 3 points") -#define MSG_LINEAR_LEVELING _UxGT("Niveau linéaire") -#define MSG_BILINEAR_LEVELING _UxGT("Niveau bilinéaire") -#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é") + PROGMEM Language_Str MSG_HALTED = _UxGT("IMPR. STOPPÉE"); + PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Redémarrer SVP"); + PROGMEM Language_Str MSG_SHORT_DAY = _UxGT("j"); // 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 -#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 - #define MSG_INFO_PRINT_COUNT _UxGT("Nbre impressions") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Terminées") - #define MSG_INFO_PRINT_TIME _UxGT("Tps impr. total") - #define MSG_INFO_PRINT_LONGEST _UxGT("Impr. la + longue") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Total filament") -#else - #define MSG_INFO_PRINT_COUNT _UxGT("Impressions") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Terminées") - #define MSG_INFO_PRINT_TIME _UxGT("Total") - #define MSG_INFO_PRINT_LONGEST _UxGT("+ long") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Filament") -#endif + PROGMEM Language_Str MSG_INFO_MENU = _UxGT("Infos imprimante"); + PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Infos imprimante"); + PROGMEM Language_Str MSG_3POINT_LEVELING = _UxGT("Niveau à 3 points"); + PROGMEM Language_Str MSG_LINEAR_LEVELING = _UxGT("Niveau linéaire"); + PROGMEM Language_Str MSG_BILINEAR_LEVELING = _UxGT("Niveau bilinéaire"); + PROGMEM Language_Str MSG_UBL_LEVELING = _UxGT("Niveau lit unifié"); + PROGMEM Language_Str MSG_MESH_LEVELING = _UxGT("Niveau maillage"); + PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Stats. imprimante"); + PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Infos carte"); + PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Thermistances"); + PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Extrudeurs"); + PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("Bauds"); + 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") -#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") + PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Imprimante incorrecte"); -#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("IMPR. PAUSE") -#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("CHARGER FIL") -#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("DECHARGER FIL") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("OPTIONS REPRISE:") -#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Purger encore") -#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Reprendre impr.") -#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Buse: ") -#define MSG_RUNOUT_SENSOR _UxGT("Capteur fil.") -#define MSG_ERR_HOMING_FAILED _UxGT("Echec origine") -#define MSG_ERR_PROBING_FAILED _UxGT("Echec sonde") -#define MSG_M600_TOO_COLD _UxGT("M600: Trop froid") -#define MSG_MMU2_FILAMENT_CHANGE_HEADER _UxGT("CHANGER FILAMENT") -#define MSG_MMU2_CHOOSE_FILAMENT_HEADER _UxGT("CHOISIR FILAMENT") -#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") + #if LCD_WIDTH >= 20 + PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Nbre impressions"); + PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Terminées"); + PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Tps impr. total"); + PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Impr. la + longue"); + PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Total filament"); + #else + PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Impressions"); + PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Terminées"); + PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Total"); + PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("+ long"); + PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Filament"); + #endif -#define MSG_MIX _UxGT("Mix") -#define MSG_MIX_COMPONENT _UxGT("Composante") -#define MSG_MIXER _UxGT("Mixeur") -#define MSG_GRADIENT _UxGT("Dégradé") -#define MSG_FULL_GRADIENT _UxGT("Dégradé complet") -#define MSG_TOGGLE_MIX _UxGT("Toggle mix") -#define MSG_CYCLE_MIX _UxGT("Cycle mix") -#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") + 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("Alimentation"); + PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Puiss. moteur "); + PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Driver %"); + PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC EEPROM sauv."); + PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("ERREUR CONNEXION TMC"); -#if LCD_HEIGHT >= 4 - // Up to 3 lines allowed - #define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Presser bouton") - #define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("pour reprendre") - #define MSG_PAUSE_PRINT_INIT_1 _UxGT("Parking...") - #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Attente filament") - #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("pour démarrer") - #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Insérer filament") - #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("et app. bouton") - #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("pour continuer...") - #define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Presser le bouton") - #define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("pour chauffer...") - #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 + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER = _UxGT("CHANGER FILAMENT"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("IMPR. PAUSE"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("CHARGER FIL"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("DECHARGER FIL"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("OPTIONS REPRISE:"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("Purger encore"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Reprendre impr."); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Buse: "); + PROGMEM Language_Str MSG_RUNOUT_SENSOR = _UxGT("Capteur fil."); + PROGMEM Language_Str MSG_LCD_HOMING_FAILED = _UxGT("Echec origine"); + PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Echec sonde"); + PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Trop froid"); -#define MSG_TMC_DRIVERS _UxGT("Drivers TMC") -#define MSG_TMC_CURRENT _UxGT("Courant driver") -#define MSG_TMC_HYBRID_THRS _UxGT("Seuil hybride") -#define MSG_TMC_HOMING_THRS _UxGT("Home sans capteur") -#define MSG_TMC_STEPPING_MODE _UxGT("Mode pas à pas") -#define MSG_TMC_STEALTH_ENABLED _UxGT("StealthChop activé") -#define MSG_SERVICE_RESET _UxGT("Réinit.") -#define MSG_SERVICE_IN _UxGT(" dans:") -#define MSG_BACKLASH _UxGT("Backlash") -#define MSG_BACKLASH_CORRECTION _UxGT("Correction") -#define MSG_BACKLASH_SMOOTHING _UxGT("Lissage") + PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("CHOISIR FILAMENT"); + PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU"); + PROGMEM Language_Str MSG_MMU2_NOT_RESPONDING = _UxGT("MMU ne répond plus"); + PROGMEM Language_Str MSG_MMU2_RESUME = _UxGT("Continuer impr."); + PROGMEM Language_Str MSG_MMU2_RESUMING = _UxGT("Reprise..."); + PROGMEM Language_Str MSG_MMU2_LOAD_FILAMENT = _UxGT("Charger filament"); + PROGMEM Language_Str MSG_MMU2_LOAD_ALL = _UxGT("Charger tous"); + PROGMEM Language_Str MSG_MMU2_LOAD_TO_NOZZLE = _UxGT("Charger dans buse"); + PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT = _UxGT("Ejecter filament"); + PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT0 = _UxGT("Ejecter fil. 1"); + 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"); +} diff --git a/Marlin/src/lcd/language/language_gl.h b/Marlin/src/lcd/language/language_gl.h index c1fcc9a12a..554230ca35 100644 --- a/Marlin/src/lcd/language/language_gl.h +++ b/Marlin/src/lcd/language/language_gl.h @@ -32,222 +32,241 @@ #define DISPLAY_CHARSET_ISO10646_1 #define NOT_EXTENDED_ISO10646_1_5X7 -#define WELCOME_MSG MACHINE_NAME _UxGT(" lista.") -#define MSG_MEDIA_INSERTED _UxGT("Tarxeta inserida") -#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") +namespace Language_gl { + using namespace Language_en; // Inherit undefined strings from English -#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 - // Up to 3 lines allowed - #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Agarde para") - #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("iniciar troco") - #define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("de filamento") - #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Agarde pola") - #define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("descarga do") - #define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("filamento") - #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Introduza o") - #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("filamento e") - #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("faga click") - #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Agarde pola") - #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("carga do") - #define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamento") - #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Agarde para") - #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("seguir co") - #define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("traballo") -#else // LCD_HEIGHT < 4 - // Up to 2 lines allowed - #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 + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Segue traballo"); + + PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Impresora incorrecta"); + + #if LCD_HEIGHT >= 4 + // Up to 3 lines allowed + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Agarde para", "iniciar troco", "de filamento")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_3_LINE("Agarde pola", "descarga do", "filamento")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Introduza o", "filamento e", "faga click")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_3_LINE("Agarde pola", "carga do", "filamento")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_3_LINE("Agarde para", "seguir co", "traballo")); + #else // LCD_HEIGHT < 4 + // Up to 2 lines allowed + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Agarde...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Descargando...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Introduza e click")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Cargando...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Seguindo...")); + #endif // LCD_HEIGHT < 4 +} diff --git a/Marlin/src/lcd/language/language_hr.h b/Marlin/src/lcd/language/language_hr.h index ef65e09fee..06822b3ccf 100644 --- a/Marlin/src/lcd/language/language_hr.h +++ b/Marlin/src/lcd/language/language_hr.h @@ -30,223 +30,181 @@ */ #define DISPLAY_CHARSET_ISO10646_1 // use the better font on full graphic displays. -#define CHARSIZE 2 -#define WELCOME_MSG MACHINE_NAME _UxGT(" spreman.") -#define MSG_MEDIA_INSERTED _UxGT("SD kartica umetnuta") -#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") +namespace Language_hr { + using namespace Language_en; // Inherit undefined strings from English -#define MSG_EXPECTED_PRINTER _UxGT("Neispravan pisač") + constexpr uint8_t CHARSIZE = 2; + PROGMEM Language_Str LANGUAGE = _UxGT("Croatian"); -#if LCD_WIDTH >= 20 - #define MSG_INFO_PRINT_COUNT _UxGT("Broj printova") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Završeni") - #define MSG_INFO_PRINT_TIME _UxGT("Ukupno printanja") - #define MSG_INFO_PRINT_LONGEST _UxGT("Najduži print") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Extrudirano ukupno") -#else - #define MSG_INFO_PRINT_COUNT _UxGT("Printovi") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Završeni") - #define MSG_INFO_PRINT_TIME _UxGT("Ukupno") - #define MSG_INFO_PRINT_LONGEST _UxGT("Najduži") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Extrudirano") -#endif + PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" spreman."); + PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("SD kartica umetnuta"); + PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("SD kartica uklonjena"); + 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("Auto pokretanje"); + PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Ugasi steppere"); + PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Automatski homing"); + PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Home-aj X"); + PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Home-aj Y"); + PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Home-aj Z"); + PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Home-aj XYZ"); + 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") -//#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") + PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Neispravan pisač"); -#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 - // Up to 3 lines allowed - #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Čekaj početak") - #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("filamenta") - #define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("promijeni") - #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Čekaj") - #define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("filament unload") - #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Umetni filament") - #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("i pritisni tipku") - #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("za nastavak...") - #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Pričekaj") - #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") -#else // LCD_HEIGHT < 4 - // Up to 2 lines allowed - #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Pričekaj...") - //#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 + PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Napajanje"); + + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Nastavi print"); + + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Čekaj", "filament unload")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Pričekaj", "filament load")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Nastavljam...")); + + #if LCD_HEIGHT >= 4 + // Up to 3 lines allowed + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Čekaj početak", "filamenta", "promijeni")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Umetni filament", "i pritisni tipku", "za nastavak...")); + #else + // Up to 2 lines allowed + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT("Pričekaj..."); + //PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_2_LINE("?", "?")); + #endif +} diff --git a/Marlin/src/lcd/language/language_it.h b/Marlin/src/lcd/language/language_it.h index 3a0654633c..51adadb7a4 100644 --- a/Marlin/src/lcd/language/language_it.h +++ b/Marlin/src/lcd/language/language_it.h @@ -31,544 +31,637 @@ #define DISPLAY_CHARSET_ISO10646_1 -#define WELCOME_MSG MACHINE_NAME _UxGT(" pronto.") -#define MSG_YES _UxGT("SI") -#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") +namespace Language_it { + using namespace Language_en; // Inherit undefined strings from English -#define MSG_LED_CONTROL _UxGT("Controllo LED") -#define MSG_LEDS _UxGT("Luci") -#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à") + constexpr uint8_t CHARSIZE = 1; + PROGMEM Language_Str LANGUAGE = _UxGT("Italian"); -#define MSG_MOVING _UxGT("In movimento...") -#define MSG_FREE_XY _UxGT("XY liberi") -#define MSG_MOVE_X _UxGT("Muovi X") -#define MSG_MOVE_Y _UxGT("Muovi Y") -#define MSG_MOVE_Z _UxGT("Muovi Z") -#define MSG_MOVE_E _UxGT("Estrusore") -#define MSG_HOTEND_TOO_COLD _UxGT("Ugello freddo") -#define MSG_MOVE_Z_DIST _UxGT("Muovi di %smm") -#define MSG_MOVE_01MM _UxGT("Muovi di 0.1mm") -#define MSG_MOVE_1MM _UxGT("Muovi di 1mm") -#define MSG_MOVE_10MM _UxGT("Muovi di 10mm") -#define MSG_SPEED _UxGT("Velocità") -#define MSG_BED_Z _UxGT("Piatto Z") -#define MSG_NOZZLE _UxGT("Ugello") -#define MSG_BED _UxGT("Piatto") -#define MSG_CHAMBER _UxGT("Camera") -#define MSG_FAN_SPEED _UxGT("Vel. ventola") // Max 15 caratteri -#define MSG_EXTRA_FAN_SPEED _UxGT("Extra vel.vent.") // Max 15 caratteri -#define MSG_FLOW _UxGT("Flusso") -#define MSG_CONTROL _UxGT("Controllo") -#define MSG_MIN LCD_STR_THERMOMETER _UxGT(" Min") -#define MSG_MAX LCD_STR_THERMOMETER _UxGT(" Max") -#define MSG_FACTOR 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("Seleziona") -#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("Deviaz. giunzioni") -#define MSG_VELOCITY _UxGT("Velocità") -#define MSG_VMAX _UxGT("Vmax ") -#define MSG_VMIN _UxGT("Vmin") -#define MSG_VTRAV_MIN _UxGT("VTrav min") -#define MSG_ACCELERATION _UxGT("Accelerazione") -#define MSG_AMAX _UxGT("Amax ") -#define MSG_A_RETRACT _UxGT("A-Ritrazione") -#define MSG_A_TRAVEL _UxGT("A-Spostamento") -#define MSG_STEPS_PER_MM _UxGT("Passi/mm") -#if IS_KINEMATIC - #define MSG_ASTEPS _UxGT("Apassi/mm") - #define MSG_BSTEPS _UxGT("Bpassi/mm") - #define MSG_CSTEPS _UxGT("Cpassi/mm") -#else - #define MSG_ASTEPS _UxGT("Xpassi/mm") - #define MSG_BSTEPS _UxGT("Ypassi/mm") - #define MSG_CSTEPS _UxGT("Zpassi/mm") -#endif -#define MSG_ESTEPS _UxGT("Epassi/mm") -#define MSG_E0_STEPS _UxGT("E1passi/mm") -#define MSG_E1_STEPS _UxGT("E2passi/mm") -#define MSG_E2_STEPS _UxGT("E3passi/mm") -#define MSG_E3_STEPS _UxGT("E4passi/mm") -#define MSG_E4_STEPS _UxGT("E5passi/mm") -#define MSG_E5_STEPS _UxGT("E6passi/mm") -#define MSG_TEMPERATURE _UxGT("Temperatura") -#define MSG_MOTION _UxGT("Movimento") -#define MSG_FILAMENT _UxGT("Filamento") -#define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm³") -#define MSG_FILAMENT_DIAM _UxGT("Diam. filo") -#define MSG_FILAMENT_UNLOAD _UxGT("Rimuovi mm") -#define MSG_FILAMENT_LOAD _UxGT("Carica mm") -#define MSG_ADVANCE_K _UxGT("K Avanzamento") -#define MSG_CONTRAST _UxGT("Contrasto LCD") -#define MSG_STORE_EEPROM _UxGT("Salva impostazioni") -#define MSG_LOAD_EEPROM _UxGT("Carica impostazioni") -#define MSG_RESTORE_FAILSAFE _UxGT("Ripristina imp.") -#define MSG_INIT_EEPROM _UxGT("Inizializza EEPROM") -#define MSG_MEDIA_UPDATE _UxGT("Aggiorna media") -#define MSG_RESET_PRINTER _UxGT("Resetta stampante") -#define MSG_REFRESH _UxGT("Aggiorna") -#define MSG_WATCH _UxGT("Schermata info") -#define MSG_PREPARE _UxGT("Prepara") -#define MSG_TUNE _UxGT("Regola") -#define MSG_START_PRINT _UxGT("Avvia stampa") -#define MSG_BUTTON_NEXT _UxGT("Prossimo") -#define MSG_BUTTON_INIT _UxGT("Inizializza") -#define MSG_BUTTON_STOP _UxGT("Stop") -#define MSG_BUTTON_PRINT _UxGT("Stampa") -#define MSG_BUTTON_RESET _UxGT("Resetta") -#define MSG_BUTTON_CANCEL _UxGT("Annulla") -#define MSG_BUTTON_DONE _UxGT("Fatto") -#define MSG_PAUSE_PRINT _UxGT("Pausa stampa") -#define MSG_RESUME_PRINT _UxGT("Riprendi stampa") -#define MSG_STOP_PRINT _UxGT("Arresta stampa") -#define MSG_OUTAGE_RECOVERY _UxGT("Ripresa da PowerLoss") -#define MSG_MEDIA_MENU _UxGT("Stampa da media") -#define MSG_NO_MEDIA _UxGT("Media non presente") -#define MSG_DWELL _UxGT("Sospensione...") -#define MSG_USERWAIT _UxGT("Premi tasto..") -#define MSG_PRINT_PAUSED _UxGT("Stampa sospesa") -#define MSG_PRINTING _UxGT("Stampa...") -#define MSG_PRINT_ABORTED _UxGT("Stampa annullata") -#define MSG_NO_MOVE _UxGT("Nessun Movimento") -#define MSG_KILLED _UxGT("UCCISO. ") -#define MSG_STOPPED _UxGT("ARRESTATO. ") -#define MSG_CONTROL_RETRACT _UxGT("Ritrai mm") -#define MSG_CONTROL_RETRACT_SWAP _UxGT("Scamb. Ritrai mm") -#define MSG_CONTROL_RETRACTF _UxGT("Ritrai V") -#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Salta mm") -#define MSG_CONTROL_RETRACT_RECOVER _UxGT("UnRet mm") -#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Scamb. UnRet mm") -#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("UnRet V") -#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V") -#define MSG_AUTORETRACT _UxGT("AutoRitrai") -#define MSG_FILAMENT_SWAP_LENGTH _UxGT("Dist. ritrazione") -#define MSG_FILAMENT_PURGE_LENGTH _UxGT("Lunghezza spurgo") -#define MSG_TOOL_CHANGE _UxGT("Cambio utensile") -#define MSG_TOOL_CHANGE_ZLIFT _UxGT("Risalita Z") -#define MSG_SINGLENOZZLE_PRIME_SPD _UxGT("Velocità innesco") -#define MSG_SINGLENOZZLE_RETRACT_SPD _UxGT("Velocità retrazione") -#define MSG_NOZZLE_STANDBY _UxGT("Standby ugello") -#define MSG_FILAMENTCHANGE _UxGT("Cambia filamento") -#define MSG_FILAMENTLOAD _UxGT("Carica filamento") -#define MSG_FILAMENTUNLOAD _UxGT("Rimuovi filamento") -#define MSG_FILAMENTUNLOAD_ALL _UxGT("Rimuovi tutto") -#define MSG_INIT_MEDIA _UxGT("Inizializ. media") -#define MSG_CHANGE_MEDIA _UxGT("Cambia media") -#define MSG_RELEASE_MEDIA _UxGT("Rilascia media") -#define MSG_ZPROBE_OUT _UxGT("Z probe fuori piatto") -#define MSG_SKEW_FACTOR _UxGT("Fattore distorsione") -#define MSG_BLTOUCH _UxGT("BLTouch") -#define MSG_BLTOUCH_SELFTEST _UxGT("Autotest BLTouch") -#define MSG_BLTOUCH_RESET _UxGT("Resetta BLTouch") -#define MSG_BLTOUCH_DEPLOY _UxGT("Estendi BLTouch") -#define MSG_BLTOUCH_SW_MODE _UxGT("BLTouch modo SW") -#define MSG_BLTOUCH_5V_MODE _UxGT("BLTouch modo 5V") -#define MSG_BLTOUCH_OD_MODE _UxGT("BLTouch modo OD") -#define MSG_BLTOUCH_MODE_STORE _UxGT("BLTouch modo mem.") -#define MSG_BLTOUCH_MODE_STORE_5V _UxGT("Metti BLTouch a 5V") -#define MSG_BLTOUCH_MODE_STORE_OD _UxGT("Metti BLTouch a OD") -#define MSG_BLTOUCH_MODE_ECHO _UxGT("Segnala modo") -#define MSG_BLTOUCH_MODE_CHANGE _UxGT("PERICOLO: Impostazioni errate possono cause danni! Procedo comunque?") -#define MSG_TOUCHMI_PROBE _UxGT("TouchMI") -#define MSG_TOUCHMI_INIT _UxGT("Inizializ.TouchMI") -#define MSG_TOUCHMI_ZTEST _UxGT("Test Z offset") -#define MSG_TOUCHMI_SAVE _UxGT("Memorizzare") -#define MSG_MANUAL_DEPLOY_TOUCHMI _UxGT("Estendi TouchMI") -#define MSG_MANUAL_DEPLOY _UxGT("Estendi Sonda-Z") -#define MSG_BLTOUCH_STOW _UxGT("Ritrai BLTouch") -#define MSG_MANUAL_STOW _UxGT("Ritrai Sonda-Z") -#define MSG_HOME_FIRST _UxGT("Home %s%s%s prima") -#define MSG_ZPROBE_ZOFFSET _UxGT("Offset sonda 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("Totali") -#define MSG_ENDSTOP_ABORT _UxGT("Finecorsa annullati") -#define MSG_HEATING_FAILED_LCD _UxGT("Riscald. Fallito") -#define MSG_HEATING_FAILED_LCD_BED _UxGT("Risc. piatto fallito") -#define MSG_HEATING_FAILED_LCD_CHAMBER _UxGT("Risc. camera fallito") -#define MSG_ERR_REDUNDANT_TEMP _UxGT("Err: TEMP RIDONDANTE") -#define MSG_THERMAL_RUNAWAY _UxGT("TEMP FUORI CONTROLLO") -#define MSG_THERMAL_RUNAWAY_BED _UxGT("TEMP PIAT.FUORI CTRL") -#define MSG_THERMAL_RUNAWAY_CHAMBER _UxGT("T.CAMERA FUORI CTRL") -#define MSG_ERR_MAXTEMP _UxGT("Err: TEMP MASSIMA") -#define MSG_ERR_MINTEMP _UxGT("Err: TEMP MINIMA") -#define MSG_ERR_MAXTEMP_BED _UxGT("Err: TEMP MAX PIATTO") -#define MSG_ERR_MINTEMP_BED _UxGT("Err: TEMP MIN PIATTO") -#define MSG_ERR_MAXTEMP_CHAMBER _UxGT("Err: TEMP MAX CAMERA") -#define MSG_ERR_MINTEMP_CHAMBER _UxGT("Err: TEMP MIN CAMERA") -#define MSG_ERR_Z_HOMING _UxGT("Home XY prima") -#define MSG_HALTED _UxGT("STAMPANTE FERMATA") -#define MSG_PLEASE_RESET _UxGT("Riavviare prego") -#define MSG_SHORT_DAY _UxGT("g") // Un solo carattere -#define MSG_SHORT_HOUR _UxGT("h") // Un solo carattere -#define MSG_SHORT_MINUTE _UxGT("m") // Un solo carattere -#define MSG_HEATING _UxGT("Riscaldamento...") -#define MSG_COOLING _UxGT("Raffreddamento..") -#define MSG_BED_HEATING _UxGT("Risc. 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") + PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" pronto."); + PROGMEM Language_Str MSG_YES = _UxGT("SI"); + PROGMEM Language_Str MSG_NO = _UxGT("NO"); + PROGMEM Language_Str MSG_BACK = _UxGT("Indietro"); + PROGMEM Language_Str MSG_MEDIA_ABORTING = _UxGT("Annullando..."); + PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Media inserito"); + PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Media rimosso"); + PROGMEM Language_Str MSG_MEDIA_RELEASED = _UxGT("Media rilasciato"); + PROGMEM Language_Str MSG_MEDIA_WAITING = _UxGT("Aspettando media"); + PROGMEM Language_Str MSG_MEDIA_READ_ERROR = _UxGT("Err.leggendo media"); + PROGMEM Language_Str MSG_MEDIA_USB_REMOVED = _UxGT("Dispos.USB rimosso"); + PROGMEM Language_Str MSG_MEDIA_USB_FAILED = _UxGT("Avvio USB fallito"); + PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Finecor."); // Max 8 characters + PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("Finecorsa Soft"); + PROGMEM Language_Str MSG_MAIN = _UxGT("Menu principale"); + PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("Impostaz. avanzate"); + PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("Configurazione"); + PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Autostart"); + PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Disabilita Motori"); + PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("Menu di debug"); + PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Test barra avanzam."); + PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Auto Home"); + PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("Home asse X"); + PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Home asse Y"); + PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Home asse Z"); + PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("Allineam.automat. Z"); + PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("Home assi XYZ"); + PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Premi per iniziare"); + PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Punto successivo"); + PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Livel. terminato!"); + PROGMEM Language_Str MSG_Z_FADE_HEIGHT = _UxGT("Fade Height"); + PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Imp. offset home"); + PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Offset applicato"); + PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Imposta Origine"); + PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Preriscalda ") PREHEAT_1_LABEL; + PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Preriscalda ") PREHEAT_1_LABEL " " LCD_STR_N0; + PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Preriscalda ") PREHEAT_1_LABEL " " LCD_STR_N1; + PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("Preriscalda ") PREHEAT_1_LABEL " " LCD_STR_N2; + PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("Preriscalda ") PREHEAT_1_LABEL " " LCD_STR_N3; + PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Preriscalda ") PREHEAT_1_LABEL " " LCD_STR_N4; + PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Preriscalda ") PREHEAT_1_LABEL " " LCD_STR_N5; + PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Preris.") PREHEAT_1_LABEL _UxGT(" Ugello"); + PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Preris.") PREHEAT_1_LABEL _UxGT(" Ugello ") LCD_STR_N0; + PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Preris.") PREHEAT_1_LABEL _UxGT(" Ugello ") LCD_STR_N1; + PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Preris.") PREHEAT_1_LABEL _UxGT(" Ugello ") LCD_STR_N2; + PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Preris.") PREHEAT_1_LABEL _UxGT(" Ugello ") LCD_STR_N3; + PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Preris.") PREHEAT_1_LABEL _UxGT(" Ugello ") LCD_STR_N4; + PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Preris.") PREHEAT_1_LABEL _UxGT(" Ugello ") LCD_STR_N5; + PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Preris.") PREHEAT_1_LABEL _UxGT(" Tutto"); + PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Preris.") PREHEAT_1_LABEL _UxGT(" Piatto"); + PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Preris.") PREHEAT_1_LABEL _UxGT(" conf"); + PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Preriscalda ") PREHEAT_2_LABEL; + PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Preriscalda ") PREHEAT_2_LABEL " " LCD_STR_N0; + PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Preriscalda ") PREHEAT_2_LABEL " " LCD_STR_N1; + PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Preriscalda ") PREHEAT_2_LABEL " " LCD_STR_N2; + PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Preriscalda ") PREHEAT_2_LABEL " " LCD_STR_N3; + PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Preriscalda ") PREHEAT_2_LABEL " " LCD_STR_N4; + PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Preriscalda ") PREHEAT_2_LABEL " " LCD_STR_N5; + PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Preris.") PREHEAT_2_LABEL _UxGT(" Ugello"); + PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Preris.") PREHEAT_2_LABEL _UxGT(" Ugello ") LCD_STR_N0; + PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Preris.") PREHEAT_2_LABEL _UxGT(" Ugello ") LCD_STR_N1; + PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Preris.") PREHEAT_2_LABEL _UxGT(" Ugello ") LCD_STR_N2; + PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Preris.") PREHEAT_2_LABEL _UxGT(" Ugello ") LCD_STR_N3; + PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Preris.") PREHEAT_2_LABEL _UxGT(" Ugello ") LCD_STR_N4; + PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Preris.") PREHEAT_2_LABEL _UxGT(" Ugello ") LCD_STR_N5; + PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Preris.") PREHEAT_2_LABEL _UxGT(" Tutto"); + PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Preris.") PREHEAT_2_LABEL _UxGT(" Piatto"); + PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Preris.") PREHEAT_2_LABEL _UxGT(" conf"); + PROGMEM Language_Str MSG_PREHEAT_CUSTOM = _UxGT("Prerisc.personal."); + PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Raffredda"); + PROGMEM Language_Str MSG_LASER_MENU = _UxGT("Controllo laser"); + 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("Potenza laser"); + PROGMEM Language_Str MSG_SPINDLE_MENU = _UxGT("Controllo mandrino"); + PROGMEM Language_Str MSG_SPINDLE_OFF = _UxGT("Mandrino Off"); + PROGMEM Language_Str MSG_SPINDLE_ON = _UxGT("Mandrino On"); + PROGMEM Language_Str MSG_SPINDLE_POWER = _UxGT("Potenza mandrino"); + PROGMEM Language_Str MSG_SPINDLE_REVERSE = _UxGT("Inverti mandrino"); + PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Accendi aliment."); + PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Spegni aliment."); + PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Estrudi"); + PROGMEM Language_Str MSG_RETRACT = _UxGT("Ritrai"); + PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Muovi Asse"); + PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Livella piano"); + PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Livella piano"); + PROGMEM Language_Str MSG_LEVEL_CORNERS = _UxGT("Livella spigoli"); + PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("Prossimo spigolo"); + PROGMEM Language_Str MSG_MESH_EDITOR = _UxGT("Editor Mesh"); + PROGMEM Language_Str MSG_EDIT_MESH = _UxGT("Modifica Mesh"); + PROGMEM Language_Str MSG_EDITING_STOPPED = _UxGT("Modif. Mesh Fermata"); + PROGMEM Language_Str MSG_PROBING_MESH = _UxGT("Punto sondato"); + PROGMEM Language_Str MSG_MESH_X = _UxGT("Indice X"); + PROGMEM Language_Str MSG_MESH_Y = _UxGT("Indice Y"); + PROGMEM Language_Str MSG_MESH_EDIT_Z = _UxGT("Valore di Z"); + PROGMEM Language_Str MSG_USER_MENU = _UxGT("Comandi personaliz."); + PROGMEM Language_Str MSG_LCD_TILTING_MESH = _UxGT("Punto inclinaz."); + PROGMEM Language_Str MSG_M48_TEST = _UxGT("Test sonda M48"); + PROGMEM Language_Str MSG_M48_POINT = _UxGT("Punto M48"); + PROGMEM Language_Str MSG_M48_DEVIATION = _UxGT("Deviazione"); + PROGMEM Language_Str MSG_IDEX_MENU = _UxGT("Modo IDEX"); + PROGMEM Language_Str MSG_OFFSETS_MENU = _UxGT("Strumenti Offsets"); + PROGMEM Language_Str MSG_IDEX_MODE_AUTOPARK = _UxGT("Auto-Park"); + PROGMEM Language_Str MSG_IDEX_MODE_DUPLICATE = _UxGT("Duplicazione"); + PROGMEM Language_Str MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Copia speculare"); + PROGMEM Language_Str MSG_IDEX_MODE_FULL_CTRL = _UxGT("Pieno controllo"); + PROGMEM Language_Str MSG_X_OFFSET = _UxGT("2° ugello X"); + PROGMEM Language_Str MSG_Y_OFFSET = _UxGT("2° ugello Y"); + PROGMEM Language_Str MSG_Z_OFFSET = _UxGT("2° ugello Z"); + PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("G29 in corso"); + PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("Strumenti UBL"); + PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("Unified Bed Leveling"); + PROGMEM Language_Str MSG_UBL_MANUAL_MESH = _UxGT("Mesh Manuale"); + PROGMEM Language_Str MSG_UBL_BC_INSERT = _UxGT("Metti spes. e misura"); + PROGMEM Language_Str MSG_UBL_BC_INSERT2 = _UxGT("Misura"); + PROGMEM Language_Str MSG_UBL_BC_REMOVE = _UxGT("Rimuovi e mis.piatto"); + PROGMEM Language_Str MSG_UBL_MOVING_TO_NEXT = _UxGT("Spostamento succes."); + PROGMEM Language_Str MSG_UBL_ACTIVATE_MESH = _UxGT("Attiva UBL"); + PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("Disattiva UBL"); + PROGMEM Language_Str MSG_UBL_SET_TEMP_BED = _UxGT("Temp. Piatto"); + PROGMEM Language_Str MSG_UBL_BED_TEMP_CUSTOM = _UxGT("Temp. Piatto"); + PROGMEM Language_Str MSG_UBL_SET_TEMP_HOTEND = _UxGT("Temp. Ugello"); + PROGMEM Language_Str MSG_UBL_HOTEND_TEMP_CUSTOM = _UxGT("Temp. Ugello"); + PROGMEM Language_Str MSG_UBL_MESH_EDIT = _UxGT("Modifica Mesh"); + PROGMEM Language_Str MSG_UBL_EDIT_CUSTOM_MESH = _UxGT("Modif.Mesh personal."); + PROGMEM Language_Str MSG_UBL_FINE_TUNE_MESH = _UxGT("Ritocca Mesh"); + PROGMEM Language_Str MSG_UBL_DONE_EDITING_MESH = _UxGT("Modif.Mesh fatta"); + PROGMEM Language_Str MSG_UBL_BUILD_CUSTOM_MESH = _UxGT("Crea Mesh personal."); + PROGMEM Language_Str MSG_UBL_BUILD_MESH_MENU = _UxGT("Crea Mesh"); + PROGMEM Language_Str MSG_UBL_BUILD_MESH_M1 = _UxGT("Crea Mesh ") PREHEAT_1_LABEL; + PROGMEM Language_Str MSG_UBL_BUILD_MESH_M2 = _UxGT("Crea Mesh ") PREHEAT_2_LABEL; + PROGMEM Language_Str MSG_UBL_BUILD_COLD_MESH = _UxGT("Crea Mesh a freddo"); + PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_ADJUST = _UxGT("Aggiusta Alt. Mesh"); + PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_AMOUNT = _UxGT("Altezza"); + PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_MENU = _UxGT("Valida Mesh"); + PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M1 = _UxGT("Valida Mesh ") PREHEAT_1_LABEL; + PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M2 = _UxGT("Valida Mesh ") PREHEAT_2_LABEL; + PROGMEM Language_Str MSG_G26_HEATING_BED = _UxGT("G26 riscald.letto"); + PROGMEM Language_Str MSG_G26_HEATING_NOZZLE = _UxGT("G26 riscald.ugello"); + PROGMEM Language_Str MSG_G26_MANUAL_PRIME = _UxGT("Priming manuale..."); + PROGMEM Language_Str MSG_G26_FIXED_LENGTH = _UxGT("Prime a lung.fissa"); + PROGMEM Language_Str MSG_G26_PRIME_DONE = _UxGT("Priming terminato"); + PROGMEM Language_Str MSG_G26_CANCELED = _UxGT("G26 Annullato"); + PROGMEM Language_Str MSG_G26_LEAVING = _UxGT("Uscita da G26"); + PROGMEM Language_Str MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("Valida Mesh pers."); + PROGMEM Language_Str MSG_UBL_CONTINUE_MESH = _UxGT("Continua Mesh"); + PROGMEM Language_Str MSG_UBL_MESH_LEVELING = _UxGT("Livell. Mesh"); + PROGMEM Language_Str MSG_UBL_3POINT_MESH_LEVELING = _UxGT("Livell. 3 Punti"); + PROGMEM Language_Str MSG_UBL_GRID_MESH_LEVELING = _UxGT("Livell. Griglia Mesh"); + PROGMEM Language_Str MSG_UBL_MESH_LEVEL = _UxGT("Livella Mesh"); + PROGMEM Language_Str MSG_UBL_SIDE_POINTS = _UxGT("Punti laterali"); + PROGMEM Language_Str MSG_UBL_MAP_TYPE = _UxGT("Tipo di Mappa"); + PROGMEM Language_Str MSG_UBL_OUTPUT_MAP = _UxGT("Esporta Mappa"); + PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_HOST = _UxGT("Esporta per Host"); + PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_CSV = _UxGT("Esporta in CSV"); + PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_BACKUP = _UxGT("Backup esterno"); + PROGMEM Language_Str MSG_UBL_INFO_UBL = _UxGT("Esporta Info UBL"); + PROGMEM Language_Str MSG_UBL_FILLIN_AMOUNT = _UxGT("Riempimento"); + PROGMEM Language_Str MSG_UBL_MANUAL_FILLIN = _UxGT("Riempimento Manuale"); + PROGMEM Language_Str MSG_UBL_SMART_FILLIN = _UxGT("Riempimento Smart"); + PROGMEM Language_Str MSG_UBL_FILLIN_MESH = _UxGT("Riempimento Mesh"); + PROGMEM Language_Str MSG_UBL_INVALIDATE_ALL = _UxGT("Invalida Tutto"); + PROGMEM Language_Str MSG_UBL_INVALIDATE_CLOSEST = _UxGT("Invalid.Punto Vicino"); + PROGMEM Language_Str MSG_UBL_FINE_TUNE_ALL = _UxGT("Ritocca All"); + PROGMEM Language_Str MSG_UBL_FINE_TUNE_CLOSEST = _UxGT("Ritocca Punto Vicino"); + PROGMEM Language_Str MSG_UBL_STORAGE_MESH_MENU = _UxGT("Mesh Salvate"); + PROGMEM Language_Str MSG_UBL_STORAGE_SLOT = _UxGT("Slot di memoria"); + PROGMEM Language_Str MSG_UBL_LOAD_MESH = _UxGT("Carica Mesh Piatto"); + PROGMEM Language_Str MSG_UBL_SAVE_MESH = _UxGT("Salva Mesh Piatto"); + PROGMEM Language_Str MSG_MESH_LOADED = _UxGT("M117 Mesh %i caricata"); + PROGMEM Language_Str MSG_MESH_SAVED = _UxGT("M117 Mesh %i salvata"); + PROGMEM Language_Str MSG_UBL_NO_STORAGE = _UxGT("Nessuna memoria"); + PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("Err: Salvataggio UBL"); + PROGMEM Language_Str MSG_UBL_RESTORE_ERROR = _UxGT("Err: Ripristino UBL"); + PROGMEM Language_Str MSG_UBL_Z_OFFSET = _UxGT("Z-Offset: "); + PROGMEM Language_Str MSG_UBL_Z_OFFSET_STOPPED = _UxGT("Z-Offset Fermato"); + PROGMEM Language_Str MSG_UBL_STEP_BY_STEP_MENU = _UxGT("UBL passo passo"); + PROGMEM Language_Str MSG_UBL_1_BUILD_COLD_MESH = _UxGT("1.Crea Mesh a freddo"); + PROGMEM Language_Str MSG_UBL_2_SMART_FILLIN = _UxGT("2.Riempimento Smart"); + PROGMEM Language_Str MSG_UBL_3_VALIDATE_MESH_MENU = _UxGT("3.Valida Mesh"); + PROGMEM Language_Str MSG_UBL_4_FINE_TUNE_ALL = _UxGT("4.Ritocca All"); + PROGMEM Language_Str MSG_UBL_5_VALIDATE_MESH_MENU = _UxGT("5.Valida Mesh"); + PROGMEM Language_Str MSG_UBL_6_FINE_TUNE_ALL = _UxGT("6.Ritocca All"); + PROGMEM Language_Str MSG_UBL_7_SAVE_MESH = _UxGT("7.Salva Mesh Piatto"); -#define MSG_MMU2_FILAMENT_CHANGE_HEADER _UxGT("CAMBIO FILAMENTO") -#define MSG_MMU2_CHOOSE_FILAMENT_HEADER _UxGT("SCELTA FILAMENTO") -#define MSG_MMU2_MENU _UxGT("MMU") -#define MSG_MMU2_WRONG_FIRMWARE _UxGT("Agg.firmware MMU!") -#define MSG_MMU2_NOT_RESPONDING _UxGT("MMU chiede attenz.") -#define MSG_MMU2_RESUME _UxGT("Riprendi stampa") -#define MSG_MMU2_RESUMING _UxGT("Ripresa...") -#define MSG_MMU2_LOAD_FILAMENT _UxGT("Carica filamento") -#define MSG_MMU2_LOAD_ALL _UxGT("Carica tutto") -#define MSG_MMU2_LOAD_TO_NOZZLE _UxGT("Carica fino ugello") -#define MSG_MMU2_EJECT_FILAMENT _UxGT("Espelli filamento") -#define MSG_MMU2_EJECT_FILAMENT0 _UxGT("Espelli filam.1") -#define MSG_MMU2_EJECT_FILAMENT1 _UxGT("Espelli filam.2") -#define MSG_MMU2_EJECT_FILAMENT2 _UxGT("Espelli filam.3") -#define MSG_MMU2_EJECT_FILAMENT3 _UxGT("Espelli filam.4") -#define MSG_MMU2_EJECT_FILAMENT4 _UxGT("Espelli filam.5") -#define MSG_MMU2_UNLOAD_FILAMENT _UxGT("Scarica filamento") -#define MSG_MMU2_LOADING_FILAMENT _UxGT("Caric.fil. %i...") -#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") + PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("Controllo LED"); + PROGMEM Language_Str MSG_LEDS = _UxGT("Luci"); + PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("Preset luce"); + PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("Rosso"); + PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("Arancione"); + PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("Giallo"); + PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("Verde"); + PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("Blu"); + PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("Indaco"); + PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Viola"); + PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("Bianco"); + PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("Predefinito"); + PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("Luci personalizzate"); + PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Intensità rosso"); + PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Intensità verde"); + PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("Intensità blu"); + PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("Intensità bianco"); + PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("Luminosità"); -#define MSG_MIX _UxGT("Miscela") -#define MSG_MIX_COMPONENT _UxGT("Componente") -#define MSG_MIXER _UxGT("Miscelatore") -#define MSG_GRADIENT _UxGT("Gradiente") -#define MSG_FULL_GRADIENT _UxGT("Gradiente pieno") -#define MSG_TOGGLE_MIX _UxGT("Alterna miscela") -#define MSG_CYCLE_MIX _UxGT("Ciclo miscela") -#define MSG_GRADIENT_MIX _UxGT("Miscela gradiente") -#define MSG_REVERSE_GRADIENT _UxGT("Inverti gradiente") -#define MSG_ACTIVE_VTOOL _UxGT("V-tool attivo") -#define MSG_START_VTOOL _UxGT("V-tool iniziale") -#define MSG_END_VTOOL _UxGT("V-tool finale") -#define MSG_GRADIENT_ALIAS _UxGT("V-tool alias") -#define MSG_RESET_VTOOLS _UxGT("Ripristina V-tools") -#define MSG_COMMIT_VTOOL _UxGT("Commit mix V-tool") -#define MSG_VTOOLS_RESET _UxGT("V-tools ripristin.") -#define MSG_START_Z _UxGT("Z inizio") -#define MSG_END_Z _UxGT("Z fine") + PROGMEM Language_Str MSG_MOVING = _UxGT("In movimento..."); + PROGMEM Language_Str MSG_FREE_XY = _UxGT("XY liberi"); + PROGMEM Language_Str MSG_MOVE_X = _UxGT("Muovi X"); + PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Muovi Y"); + PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Muovi Z"); + PROGMEM Language_Str MSG_MOVE_E = _UxGT("Estrusore"); + PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Estrusore ") LCD_STR_E0; + PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Estrusore ") LCD_STR_E1; + PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Estrusore ") LCD_STR_E2; + PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Estrusore ") LCD_STR_E3; + PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Estrusore ") LCD_STR_E4; + PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Estrusore ") LCD_STR_E5; + PROGMEM Language_Str MSG_HOTEND_TOO_COLD = _UxGT("Ugello freddo"); + PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Muovi di %smm"); + PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Muovi di 0.1mm"); + PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Muovi di 1mm"); + PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Muovi di 10mm"); + 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") -#define MSG_BRICKOUT _UxGT("Brickout") -#define MSG_INVADERS _UxGT("Invaders") -#define MSG_SNAKE _UxGT("Sn4k3") -#define MSG_MAZE _UxGT("Maze") + PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("SCELTA FILAMENTO"); + PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU"); + PROGMEM Language_Str MSG_MMU2_WRONG_FIRMWARE = _UxGT("Agg.firmware MMU!"); + PROGMEM Language_Str MSG_MMU2_NOT_RESPONDING = _UxGT("MMU chiede attenz."); + 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:"); -// -// 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 - #define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Premi per") - #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 + PROGMEM Language_Str MSG_GAMES = _UxGT("Giochi"); + PROGMEM Language_Str MSG_BRICKOUT = _UxGT("Brickout"); + PROGMEM Language_Str MSG_INVADERS = _UxGT("Invaders"); + PROGMEM Language_Str MSG_SNAKE = _UxGT("Sn4k3"); + PROGMEM Language_Str MSG_MAZE = _UxGT("Maze"); -#define MSG_TMC_DRIVERS _UxGT("Drivers TMC") -#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.") + PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Stampante errata"); -#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") -#define MSG_BACKLASH_CORRECTION _UxGT("Correzione") -#define MSG_BACKLASH_SMOOTHING _UxGT("Smoothing") + PROGMEM Language_Str MSG_TMC_DRIVERS = _UxGT("Drivers TMC"); + PROGMEM Language_Str MSG_TMC_CURRENT = _UxGT("Driver in uso"); + 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"); +} diff --git a/Marlin/src/lcd/language/language_jp_kana.h b/Marlin/src/lcd/language/language_jp_kana.h index 00403054db..d9538c5251 100644 --- a/Marlin/src/lcd/language/language_jp_kana.h +++ b/Marlin/src/lcd/language/language_jp_kana.h @@ -31,224 +31,284 @@ */ //#define DISPLAY_CHARSET_ISO10646_KANA -#define CHARSIZE 3 -// This just to show the potential benefit of unicode. -// This translation can be improved by using the full charset of unicode codeblock U+30A0 to U+30FF. +namespace Language_jp_kana { + using namespace Language_en; // Inherit undefined strings from English -// 片仮名表示定義 -#define WELCOME_MSG MACHINE_NAME _UxGT(" ジュンビカンリョウ") -#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" + constexpr uint8_t CHARSIZE = 3; + PROGMEM Language_Str LANGUAGE = _UxGT("Japanese"); -#define MSG_MOVING _UxGT("イドウチュウ") // "Moving..." -#define MSG_FREE_XY _UxGT("XYジク カイホウ") // "Free XY" -#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" + // This is just to show the potential benefit of Unicode. + // This translation can be improved by using the full charset of unicode codeblock U+30A0 to U+30FF. -#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("セッテイカンリ") -#define MSG_ADVANCED_SETTINGS _UxGT("ショウサイセッテイ") -#define MSG_OUTAGE_RECOVERY _UxGT("コショカイフク") -#define MSG_INIT_EEPROM _UxGT("EEPROMショキカ") + PROGMEM Language_Str MSG_MOVING = _UxGT("イドウチュウ"); // "Moving..." + PROGMEM Language_Str MSG_FREE_XY = _UxGT("XYジク カイホウ"); // "Free XY" + PROGMEM Language_Str MSG_MOVE_X = _UxGT("Xジク イドウ"); // "Move X" + 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("ツギヘ") -#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("カンリョウ") + PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("マチガッタプリンター"); // "Wrong printer" -#define MSG_YES _UxGT("ハイ") -#define MSG_NO _UxGT("イイエ") -#define MSG_BACK _UxGT("モドリ") -#define MSG_VELOCITY _UxGT("ソクド") -#define MSG_STEPS_PER_MM _UxGT("ステップ/mm") -#define MSG_USER_MENU _UxGT("ユーザーコマンド") -#define MSG_PRINT_PAUSED _UxGT("プリントガイチジテイシサレマシタ") -#define MSG_PRINTING _UxGT("プリントチュウ...") + PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("セッテイカンリ"); + PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("ショウサイセッテイ"); + PROGMEM Language_Str MSG_OUTAGE_RECOVERY = _UxGT("コショカイフク"); + PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("EEPROMショキカ"); + + 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_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("プリントチュウ..."); +} diff --git a/Marlin/src/lcd/language/language_ko_KR.h b/Marlin/src/lcd/language/language_ko_KR.h index 574490c7f5..15173a93d5 100644 --- a/Marlin/src/lcd/language/language_ko_KR.h +++ b/Marlin/src/lcd/language/language_ko_KR.h @@ -28,386 +28,106 @@ * 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(" 준비.") -#define MSG_BACK _UxGT("뒤로") -#define MSG_MEDIA_INSERTED _UxGT("카드 삽입됨") -#define MSG_MEDIA_REMOVED _UxGT("카드 제거됨") -#define MSG_LCD_ENDSTOPS _UxGT("엔드스탑") -#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("XYZ 홈으로") -#define MSG_LEVEL_BED_WAITING _UxGT("누르면 시작합니다") -#define MSG_LEVEL_BED_NEXT_POINT _UxGT("다음 Point") -#define MSG_LEVEL_BED_DONE _UxGT("레벨링 완료!") -//#define MSG_Z_FADE_HEIGHT _UxGT("Fade Height") -//#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) -#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(" conf") -#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(" conf") -#define MSG_PREHEAT_CUSTOM _UxGT("Custom 예열") -#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("Level bed") -//#define MSG_LEVEL_CORNERS _UxGT("Level corners") -//#define MSG_NEXT_CORNER _UxGT("Next corner") -//#define MSG_EDIT_MESH _UxGT("Edit Mesh") -//#define MSG_EDITING_STOPPED _UxGT("Mesh Editing Stopped") -//#define MSG_USER_MENU _UxGT("Custom User Commands") -//#define MSG_IDEX_MENU _UxGT("IDEX Mode") -//#define MSG_IDEX_MODE_AUTOPARK _UxGT("Auto-Park") -//#define MSG_IDEX_MODE_DUPLICATE _UxGT("Duplication") -#define MSG_IDEX_MODE_MIRRORED_COPY _UxGT("미러 사본") -//#define MSG_IDEX_MODE_FULL_CTRL _UxGT("Full control") -//#define MSG_X_OFFSET _UxGT("2nd nozzle X") -//#define MSG_Y_OFFSET _UxGT("2nd nozzle Y") -//#define MSG_Z_OFFSET _UxGT("2nd nozzle Z") -#define MSG_UBL_DOING_G29 _UxGT("오토레벨링 하기") -//#define MSG_UBL_TOOLS _UxGT("UBL Tools") -//#define MSG_UBL_LEVEL_BED _UxGT("Unified Bed Leveling") -//#define MSG_UBL_MANUAL_MESH _UxGT("Manually Build Mesh") -//#define MSG_UBL_BC_INSERT _UxGT("Place shim & measure") -//#define MSG_UBL_BC_INSERT2 _UxGT("Measure") -//#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("Activate UBL") -//#define MSG_UBL_DEACTIVATE_MESH _UxGT("Deactivate UBL") -//#define MSG_UBL_SET_TEMP_BED _UxGT("Bed Temp") -//#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("Mesh Edit") -//#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("Done Editing Mesh") -//#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Build Custom Mesh") -//#define MSG_UBL_BUILD_MESH_MENU _UxGT("Build Mesh") -//#define MSG_UBL_BUILD_MESH_M1 _UxGT("Build Mesh (" PREHEAT_1_LABEL ")") -//#define MSG_UBL_BUILD_MESH_M2 _UxGT("Build Mesh (" PREHEAT_2_LABEL ")") -//#define MSG_UBL_BUILD_COLD_MESH _UxGT("Build Cold Mesh") -//#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Adjust Mesh Height") -//#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Height Amount") -//#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("Validate Mesh") -//#define MSG_UBL_VALIDATE_MESH_M1 _UxGT("Validate " PREHEAT_1_LABEL " Mesh") -//#define MSG_UBL_VALIDATE_MESH_M2 _UxGT("Validate Mesh (" PREHEAT_2_LABEL ")") -//#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Validate Custom Mesh") -//#define MSG_UBL_CONTINUE_MESH _UxGT("Continue Bed Mesh") -//#define MSG_UBL_MESH_LEVELING _UxGT("Mesh Leveling") -//#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("3-Point Leveling") -//#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Grid Mesh Leveling") -//#define MSG_UBL_MESH_LEVEL _UxGT("Level Mesh") -//#define MSG_UBL_SIDE_POINTS _UxGT("Side Points") -//#define MSG_UBL_MAP_TYPE _UxGT("Map Type") -//#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 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 + PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _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_LCD_ENDSTOPS = _UxGT("엔드스탑"); + 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("XYZ 홈으로"); + PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("누르면 시작합니다"); + PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("다음 Point"); + PROGMEM Language_Str MSG_LEVEL_BED_DONE = _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_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_CUSTOM = _UxGT("Custom 예열"); + 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_IDEX_MODE_MIRRORED_COPY = _UxGT("미러 사본"); + PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("오토레벨링 하기"); + 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_TEMPERATURE = _UxGT("온도"); + PROGMEM Language_Str MSG_MOTION = _UxGT("동작"); + 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_REFRESH = LCD_STR_REFRESH _UxGT("새로고침"); + PROGMEM Language_Str MSG_WATCH = _UxGT("처음으로"); + PROGMEM Language_Str MSG_PREPARE = _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_PRINT_PAUSED = _UxGT("일시 정지됨"); + PROGMEM Language_Str MSG_PRINTING = _UxGT("출력중..."); + PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("취소됨"); + PROGMEM Language_Str MSG_KILLED = _UxGT("죽음. "); + PROGMEM Language_Str MSG_STOPPED = _UxGT("멈춤. "); + PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("잘못된 프린터"); +} diff --git a/Marlin/src/lcd/language/language_nl.h b/Marlin/src/lcd/language/language_nl.h index bcfbc73fe8..7555194eb8 100644 --- a/Marlin/src/lcd/language/language_nl.h +++ b/Marlin/src/lcd/language/language_nl.h @@ -32,252 +32,270 @@ #define DISPLAY_CHARSET_ISO10646_1 #define NOT_EXTENDED_ISO10646_1_5X7 -#define WELCOME_MSG MACHINE_NAME _UxGT(" gereed.") -#define MSG_BACK _UxGT("Terug") -#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") +namespace Language_nl { + using namespace Language_en; // Inherit undefined strings from English -#define MSG_MOVING _UxGT("Verplaatsen...") -#define MSG_FREE_XY _UxGT("Vrij XY") -#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") + constexpr uint8_t CHARSIZE = 1; + PROGMEM Language_Str LANGUAGE = _UxGT("Dutch"); -#define MSG_INFO_STATS_MENU _UxGT("Printer Stats") -#define MSG_INFO_BOARD_MENU _UxGT("Board Info") //accepted English term in Dutch -#define MSG_INFO_THERMISTOR_MENU _UxGT("Thermistors") -#define MSG_INFO_EXTRUDERS _UxGT("Extruders") -#define MSG_INFO_BAUDRATE _UxGT("Baud") -#define MSG_INFO_MENU _UxGT("Over Printer") -#define MSG_INFO_PRINTER_MENU _UxGT("Printer Info") -#define MSG_INFO_PROTOCOL _UxGT("Protocol") -#define MSG_CASE_LIGHT _UxGT("Case licht") + PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" gereed."); + PROGMEM Language_Str MSG_BACK = _UxGT("Terug"); + PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Kaart ingestoken"); + PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Kaart verwijderd"); + PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Endstops"); // Max length 8 characters + PROGMEM Language_Str MSG_MAIN = _UxGT("Hoofdmenu"); + PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Autostart"); + PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Motoren uit"); + 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 - #define MSG_INFO_PRINT_COUNT _UxGT("Printed Aantal") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Totaal Voltooid") - #define MSG_INFO_PRINT_TIME _UxGT("Totale Printtijd") - #define MSG_INFO_PRINT_LONGEST _UxGT("Langste Printtijd") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Totaal Extrudeert") -#else - #define MSG_INFO_PRINT_COUNT _UxGT("Aantal") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Voltooid") - #define MSG_INFO_PRINT_TIME _UxGT("Printtijd ") - #define MSG_INFO_PRINT_LONGEST _UxGT("Langste") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Extrud.") -#endif + PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Printer Stats"); + PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Board Info"); //accepted English term in Dutch + 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_MENU = _UxGT("Over Printer"); + PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Printer Info"); + PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Protocol"); + PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Case licht"); -#define MSG_INFO_MIN_TEMP _UxGT("Min Temp") -#define MSG_INFO_MAX_TEMP _UxGT("Max Temp") -#define MSG_INFO_PSU _UxGT("PSU") //accepted English term in Dutch + PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Onjuiste printer"); -#define MSG_DRIVE_STRENGTH _UxGT("Motorstroom") -#define MSG_DAC_PERCENT _UxGT("Driver %") //accepted English term in Dutch -#define MSG_DAC_EEPROM_WRITE _UxGT("DAC Opslaan") -#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Hervat print") -#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Nozzle: ") //accepeted English term -// -// 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 - // Up to 3 lines - #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Wacht voor start") - #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("filament te") - #define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("verwisselen") - #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Wacht voor") - #define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("filament uit") - #define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("te laden") - #define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Klik knop om...") - #define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("verw. nozzle.") //nozzle accepted English term - #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Nozzle verw.") - #define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Wacht a.u.b.") - #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Laad filament") - #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("en druk knop") - #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("om verder...") - #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Wacht voor") - #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("filament te") - #define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("laden") - #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wacht voor print") - #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("om verder") - #define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("te gaan") -#else // LCD_HEIGHT < 4 - // Up to 2 lines - #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Wacht voor") - #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("start...") - #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Wacht voor") - #define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("uitladen...") - #define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Klik knop om...") - #define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("verw. nozzle.") //nozzle accepted English term - #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Verwarmen...") - #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Laad filament") - #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("en druk knop") - #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Wacht voor") - #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("inladen...") - #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wacht voor") - #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("printing...") -#endif // LCD_HEIGHT < 4 + #if LCD_WIDTH >= 20 + PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Printed Aantal"); + PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Totaal Voltooid"); + PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Totale Printtijd"); + PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Langste Printtijd"); + PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Totaal Extrudeert"); + #else + PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Aantal"); + PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Voltooid"); + PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Printtijd "); + PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Langste"); + PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Extrud."); + #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("PSU"); //accepted English term in Dutch + + PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Motorstroom"); + PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Driver %"); //accepted English term in Dutch + PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC Opslaan"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Hervat print"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Nozzle: "); //accepeted English term + // + // 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 + // Up to 3 lines + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Wacht voor start", "filament te", "verwisselen")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_3_LINE("Wacht voor", "filament uit", "te laden")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Klik knop om...", "verw. nozzle.")); //nozzle accepted English term + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("Nozzle verw.", "Wacht a.u.b.")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Laad filament", "en druk knop", "om verder...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_3_LINE("Wacht voor", "filament te", "laden")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_3_LINE("Wacht voor print", "om verder", "te gaan")); + #else + // Up to 2 lines + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_2_LINE("Wacht voor", "start...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Wacht voor", "uitladen...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Klik knop om...", "verw. nozzle.")); //nozzle accepted English term + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("Verwarmen...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_2_LINE("Laad filament", "en druk knop")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Wacht voor", "inladen...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("Wacht voor", "printing...")); + #endif +} diff --git a/Marlin/src/lcd/language/language_pl.h b/Marlin/src/lcd/language/language_pl.h index 52bb419337..1acee61f24 100644 --- a/Marlin/src/lcd/language/language_pl.h +++ b/Marlin/src/lcd/language/language_pl.h @@ -27,228 +27,263 @@ #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.") -#define MSG_MEDIA_INSERTED _UxGT("Karta włożona") -#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") + constexpr uint8_t CHARSIZE = 2; + PROGMEM Language_Str LANGUAGE = _UxGT("Polish"); -#define MSG_INFO_MENU _UxGT("O drukarce") -#define MSG_INFO_PRINTER_MENU _UxGT("Info drukarki") -#define MSG_INFO_STATS_MENU _UxGT("Statystyki") -#define MSG_INFO_BOARD_MENU _UxGT("Board Info") -#define MSG_INFO_THERMISTOR_MENU _UxGT("Thermistory") -#define MSG_INFO_EXTRUDERS _UxGT("Ekstrudery") -#define MSG_INFO_BAUDRATE _UxGT("Predkość USB") -#define MSG_INFO_PROTOCOL _UxGT("Protokół") -#define MSG_CASE_LIGHT _UxGT("Oświetlenie") + PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" gotowy."); + PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Karta włożona"); + PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Karta usunięta"); + PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Kranców."); // Max length 8 characters + PROGMEM Language_Str MSG_MAIN = _UxGT("Menu główne"); + PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Autostart"); + PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Wyłącz silniki"); + PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Pozycja zerowa"); + 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 - #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 + PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Niepoprawna drukarka"); -#define MSG_INFO_MIN_TEMP _UxGT("Min Temp") -#define MSG_INFO_MAX_TEMP _UxGT("Max Temp") -#define MSG_INFO_PSU _UxGT("Zasilacz") + #if LCD_WIDTH >= 20 + 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("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") -#define MSG_DAC_PERCENT _UxGT("Siła %") -#define MSG_DAC_EEPROM_WRITE _UxGT("Zapisz DAC EEPROM") + 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("Zasilacz"); -#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("ZMIEŃ FILAMENT") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("ZMIEŃ OPCJE:") -#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Wznów drukowanie") + PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Siła silnika"); + PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Siła %"); + PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Zapisz DAC EEPROM"); -#if LCD_HEIGHT >= 4 - // Up to 3 lines allowed - #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Czekam na ") - #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("zmianę filamentu") - #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Czekam na") - #define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("wyjęcie filamentu") - #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Włóz filament") - #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("i naciśnij przycisk") - #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("aby kontynuować...") - #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Czekam na") - #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("włożenie filamentu") - #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Czekam na") - #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("wznowienie druku") -#else // LCD_HEIGHT < 4 - // Up to 2 lines allowed - #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Proszę czekać...") - #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Wysuwanie...") - #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Włóż i naciśnij prz.") - #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Ładowanie...") - #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wznowienie...") -#endif // LCD_HEIGHT < 4 + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("ZMIEŃ FILAMENT"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("ZMIEŃ OPCJE:"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Wznów drukowanie"); + + #if LCD_HEIGHT >= 4 + // Up to 3 lines allowed + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_2_LINE("Czekam na ", "zmianę filamentu")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Czekam na", "wyjęcie filamentu")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Włóz filament", "i naciśnij przycisk", "aby kontynuować...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Czekam na", "włożenie filamentu")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("Czekam na", "wznowienie druku")); + #else + // Up to 2 lines allowed + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Proszę czekać...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Wysuwanie...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Włóż i naciśnij prz.")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Ładowanie...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Wznowienie...")); + #endif +} diff --git a/Marlin/src/lcd/language/language_pt.h b/Marlin/src/lcd/language/language_pt.h index f90999a357..7f3288f155 100644 --- a/Marlin/src/lcd/language/language_pt.h +++ b/Marlin/src/lcd/language/language_pt.h @@ -30,159 +30,186 @@ * */ -#define DISPLAY_CHARSET_ISO10646_1 -#define CHARSIZE 2 + #define DISPLAY_CHARSET_ISO10646_1 -#define WELCOME_MSG MACHINE_NAME _UxGT(" pronta.") -#define MSG_MEDIA_INSERTED _UxGT("Cartão inserido") -#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") +namespace Language_pt { + using namespace Language_en; // Inherit undefined strings from English -#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"); +} diff --git a/Marlin/src/lcd/language/language_pt_br.h b/Marlin/src/lcd/language/language_pt_br.h index f6da0b700f..548ba4cd97 100644 --- a/Marlin/src/lcd/language/language_pt_br.h +++ b/Marlin/src/lcd/language/language_pt_br.h @@ -29,416 +29,464 @@ * 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 -//_UxGT("áãàçÉéêíóõ") + constexpr uint8_t CHARSIZE = 2; + 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") -#define MSG_MEDIA_INSERTED _UxGT("Cartão inserido") -#define MSG_MEDIA_REMOVED _UxGT("Cartão removido") -#define MSG_LCD_ENDSTOPS _UxGT("Fins de curso") -#define MSG_LCD_SOFT_ENDSTOPS _UxGT("Soft Fins curso") -#define MSG_MAIN _UxGT("Menu principal") -#define MSG_ADVANCED_SETTINGS _UxGT("Config. Avançada") -#define MSG_CONFIGURATION _UxGT("Configuração") -#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") + PROGMEM Language_Str MSG_IDEX_MENU = _UxGT("Modo IDEX"); + PROGMEM Language_Str MSG_IDEX_MODE_AUTOPARK = _UxGT("Auto-Estacionar"); + PROGMEM Language_Str MSG_IDEX_MODE_DUPLICATE = _UxGT("Duplicação"); + PROGMEM Language_Str MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Cópia espelhada"); + PROGMEM Language_Str MSG_IDEX_MODE_FULL_CTRL = _UxGT("Controle Total"); + PROGMEM Language_Str MSG_X_OFFSET = _UxGT("2o bico X"); + PROGMEM Language_Str MSG_Y_OFFSET = _UxGT("2o bico Y"); + PROGMEM Language_Str MSG_Z_OFFSET = _UxGT("2o bico Z"); -#define MSG_IDEX_MENU _UxGT("Modo IDEX") -#define MSG_IDEX_MODE_AUTOPARK _UxGT("Auto-Estacionar") -#define MSG_IDEX_MODE_DUPLICATE _UxGT("Duplicação") -#define MSG_IDEX_MODE_MIRRORED_COPY _UxGT("Cópia espelhada") -#define MSG_IDEX_MODE_FULL_CTRL _UxGT("Controle Total") -#define MSG_X_OFFSET _UxGT("2o bico X") -#define MSG_Y_OFFSET _UxGT("2o bico Y") -#define MSG_Z_OFFSET _UxGT("2o bico Z") + PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("Executando G29"); + PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("Ferramentas UBL"); + PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("Nivel. Mesa Unif."); + PROGMEM Language_Str MSG_UBL_MANUAL_MESH = _UxGT("Fazer malha manual"); + PROGMEM Language_Str MSG_UBL_BC_INSERT = _UxGT("Calçar e calibrar"); + PROGMEM Language_Str MSG_UBL_BC_INSERT2 = _UxGT("Medir"); + PROGMEM Language_Str MSG_UBL_BC_REMOVE = _UxGT("Remover e calibrar"); + 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") -#define MSG_UBL_TOOLS _UxGT("Ferramentas UBL") -#define MSG_UBL_LEVEL_BED _UxGT("Nivel. Mesa Unif.") -#define MSG_UBL_MANUAL_MESH _UxGT("Fazer malha manual") -#define MSG_UBL_BC_INSERT _UxGT("Calçar e calibrar") -#define MSG_UBL_BC_INSERT2 _UxGT("Medir") -#define MSG_UBL_BC_REMOVE _UxGT("Remover e calibrar") -#define MSG_UBL_MOVING_TO_NEXT _UxGT("Movendo para Próximo") -#define MSG_UBL_ACTIVATE_MESH _UxGT("Ativar UBL") -#define MSG_UBL_DEACTIVATE_MESH _UxGT("Desativar UBL") -#define MSG_UBL_SET_TEMP_BED _UxGT("Temp. Mesa") -#define MSG_UBL_BED_TEMP_CUSTOM MSG_UBL_SET_TEMP_BED -#define MSG_UBL_SET_TEMP_HOTEND _UxGT("Temp. Extrusora") -#define MSG_UBL_HOTEND_TEMP_CUSTOM MSG_UBL_SET_TEMP_HOTEND -#define MSG_UBL_MESH_EDIT _UxGT("Editar Malha") -#define MSG_UBL_EDIT_CUSTOM_MESH _UxGT("Editar Malha Custom") -#define MSG_UBL_FINE_TUNE_MESH _UxGT("Ajuste Fino da Malha") -#define MSG_UBL_DONE_EDITING_MESH _UxGT("Fim da Edição") -#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Montar Malha Custom") -#define MSG_UBL_BUILD_MESH_MENU _UxGT("Montar ") -#define MSG_UBL_BUILD_MESH_M1 _UxGT("Montar " PREHEAT_1_LABEL) -#define MSG_UBL_BUILD_MESH_M2 _UxGT("Montar " PREHEAT_2_LABEL) -#define MSG_UBL_BUILD_COLD_MESH _UxGT("Montar Malha fria") -#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Ajustar Altura") -#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Quant. de Altura") -#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("Validar Malha") -#define MSG_UBL_VALIDATE_MESH_M1 _UxGT("Checar " PREHEAT_1_LABEL) -#define MSG_UBL_VALIDATE_MESH_M2 _UxGT("Checar " PREHEAT_2_LABEL) -#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Validar Malha Custom") -#define MSG_UBL_CONTINUE_MESH _UxGT("Continuar Malha") -#define MSG_UBL_MESH_LEVELING _UxGT("Nivelação da Malha") -#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("Nivelação 3 pontos") -#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Nivelação Grid") -#define MSG_UBL_MESH_LEVEL _UxGT("Nivelar Malha") -#define MSG_UBL_SIDE_POINTS _UxGT("Cantos") -#define MSG_UBL_MAP_TYPE _UxGT("Tipo de Mapa") -#define MSG_UBL_OUTPUT_MAP _UxGT("Salvar Mapa da Malha") -#define MSG_UBL_OUTPUT_MAP_HOST _UxGT("Enviar Para Host") -#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Salvar Malha CSV") -#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Salvar Backup") -#define MSG_UBL_INFO_UBL _UxGT("Informação do UBL") -#define MSG_UBL_FILLIN_AMOUNT _UxGT("Qtd de Enchimento") -#define MSG_UBL_MANUAL_FILLIN _UxGT("Enchimento Manual") -#define MSG_UBL_SMART_FILLIN _UxGT("Enchimento Smart") -#define MSG_UBL_FILLIN_MESH _UxGT("Preencher malha") -#define MSG_UBL_INVALIDATE_ALL _UxGT("Invalidar tudo") -#define MSG_UBL_INVALIDATE_CLOSEST _UxGT("Invalidar próximo") -#define MSG_UBL_FINE_TUNE_ALL _UxGT("Ajuste Fino de Todos") -#define MSG_UBL_FINE_TUNE_CLOSEST _UxGT("Ajustar Mais Próximo") -#define MSG_UBL_STORAGE_MESH_MENU _UxGT("Armazenamento Malha") -#define MSG_UBL_STORAGE_SLOT _UxGT("Slot de Memória") -#define MSG_UBL_LOAD_MESH _UxGT("Ler Malha") -#define MSG_UBL_SAVE_MESH _UxGT("Salvar Malha") -#define MSG_MESH_LOADED _UxGT("Malha %i carregada") -#define MSG_MESH_SAVED _UxGT("Malha %i salva") -#define MSG_UBL_NO_STORAGE _UxGT("Sem armazenamento") -#define MSG_UBL_SAVE_ERROR _UxGT("Erro ao salvar UBL") -#define MSG_UBL_RESTORE_ERROR _UxGT("Erro no restauro UBL") -#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Compensação Z parou") -#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("UBL passo a passo") -#define MSG_LED_CONTROL _UxGT("Controle do LED") -#define MSG_LEDS _UxGT("Luz") -#define MSG_LED_PRESETS _UxGT("Configuração da Luz") -#define MSG_SET_LEDS_RED _UxGT("Luz Vermelha") -#define MSG_SET_LEDS_ORANGE _UxGT("Luz Laranja") -#define MSG_SET_LEDS_YELLOW _UxGT("Luz Amarela") -#define MSG_SET_LEDS_GREEN _UxGT("Luz Verde") -#define MSG_SET_LEDS_BLUE _UxGT("Luz Azul") -#define MSG_SET_LEDS_INDIGO _UxGT("Luz Indigo") -#define MSG_SET_LEDS_VIOLET _UxGT("Luz Violeta") -#define MSG_SET_LEDS_WHITE _UxGT("Luz Branca") -#define MSG_SET_LEDS_DEFAULT _UxGT("Luz Padrão") -#define MSG_CUSTOM_LEDS _UxGT("Luz Customizada") -#define MSG_INTENSITY_R _UxGT("Intensidade Vermelho") -#define MSG_INTENSITY_G _UxGT("Intensidade Verde") -#define MSG_INTENSITY_B _UxGT("Intensidade Azul") -#define MSG_INTENSITY_W _UxGT("Intensidade Branco") -#define MSG_LED_BRIGHTNESS _UxGT("Brilho") -#define MSG_MOVING _UxGT("Movendo...") -#define MSG_FREE_XY _UxGT("Liberar XY") -#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_HOTEND_TOO_COLD _UxGT("Extrus. mto fria") -#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("Bocal") -#define MSG_BED _UxGT("Mesa") -#define MSG_FAN_SPEED _UxGT("Vel. Ventoinha") -#define MSG_EXTRA_FAN_SPEED _UxGT("+Vel. Ventoinha") -#define MSG_FLOW _UxGT("Vazão") -#define MSG_CONTROL _UxGT("Controle") -#define MSG_MIN LCD_STR_THERMOMETER _UxGT(" Min") -#define MSG_MAX LCD_STR_THERMOMETER _UxGT(" Máx") -#define MSG_FACTOR LCD_STR_THERMOMETER _UxGT(" Fator") -#define MSG_AUTOTEMP _UxGT("Temp. Automática") -#define MSG_LCD_ON _UxGT("Ligado") -#define MSG_LCD_OFF _UxGT("Desligado") -#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("Selecionar") -#define MSG_ACC _UxGT("Acel.") -#define MSG_JERK _UxGT("Arrancada") -#if IS_KINEMATIC - #define MSG_VA_JERK _UxGT("arrancada VA") - #define MSG_VB_JERK _UxGT("arrancada VB") - #define MSG_VC_JERK _UxGT("arrancada VC") -#else - #define MSG_VA_JERK _UxGT("arrancada VX") - #define MSG_VB_JERK _UxGT("arrancada VY") - #define MSG_VC_JERK _UxGT("arrancada VZ") -#endif -#define MSG_VE_JERK _UxGT("arrancada VE") -#define MSG_JUNCTION_DEVIATION _UxGT("Desv. Junção") -#define MSG_VELOCITY _UxGT("Velocidade") -#define MSG_VMAX _UxGT("Vmax ") -#define MSG_VMIN _UxGT("Vmin") -#define MSG_VTRAV_MIN _UxGT("VDeslocamento min") -#define MSG_ACCELERATION _UxGT("Aceleração") -#define MSG_AMAX _UxGT("Amax ") -#define MSG_A_RETRACT _UxGT("Retrair A") -#define MSG_A_TRAVEL _UxGT("Movimento A") -#define MSG_STEPS_PER_MM _UxGT("Passo/mm") -#if IS_KINEMATIC - #define MSG_ASTEPS _UxGT("Passo A/mm") - #define MSG_BSTEPS _UxGT("Passo B/mm") - #define MSG_CSTEPS _UxGT("Passo C/mm") -#else - #define MSG_ASTEPS _UxGT("Passo X/mm") - #define MSG_BSTEPS _UxGT("Passo Y/mm") - #define MSG_CSTEPS _UxGT("Passo Z/mm") -#endif -#define MSG_ESTEPS _UxGT("E/mm") -#define MSG_E0_STEPS _UxGT("E1/mm") -#define MSG_E1_STEPS _UxGT("E2/mm") -#define MSG_E2_STEPS _UxGT("E3/mm") -#define MSG_E3_STEPS _UxGT("E4/mm") -#define MSG_E4_STEPS _UxGT("E5/mm") -#define MSG_E5_STEPS _UxGT("E6/mm") -#define MSG_TEMPERATURE _UxGT("Temperatura") -#define MSG_MOTION _UxGT("Movimento") -#define MSG_FILAMENT _UxGT("Filamento") -#define MSG_VOLUMETRIC_ENABLED _UxGT("Extrusão em mm3") -#define MSG_FILAMENT_DIAM _UxGT("Diâmetro Fil.") -#define MSG_FILAMENT_UNLOAD _UxGT("Descarr. mm") -#define MSG_FILAMENT_LOAD _UxGT("Carregar mm") -#define MSG_ADVANCE_K _UxGT("Avanço K") -#define MSG_CONTRAST _UxGT("Contraste") -#define MSG_STORE_EEPROM _UxGT("Salvar Configuração") -#define MSG_LOAD_EEPROM _UxGT("Ler Configuração") -#define MSG_RESTORE_FAILSAFE _UxGT("Restauro seguro") -#define MSG_INIT_EEPROM _UxGT("Iniciar EEPROM") -#define MSG_MEDIA_UPDATE _UxGT("Atualiz. SD") -#define MSG_RESET_PRINTER _UxGT("Resetar Impressora") -#define MSG_REFRESH _UxGT("Atualização") -#define MSG_WATCH _UxGT("Informações") -#define MSG_PREPARE _UxGT("Preparar") -#define MSG_TUNE _UxGT("Ajustar") -#define MSG_PAUSE_PRINT _UxGT("Pausar impressão") -#define MSG_RESUME_PRINT _UxGT("Resumir impressão") -#define MSG_STOP_PRINT _UxGT("Parar impressão") -#define MSG_OUTAGE_RECOVERY _UxGT("Recuperar Impressão") -#define MSG_MEDIA_MENU _UxGT("Imprimir do SD") -#define MSG_NO_MEDIA _UxGT("Sem cartão SD") -#define MSG_DWELL _UxGT("Dormindo...") -#define MSG_USERWAIT _UxGT("Clique para retomar") -#define MSG_PRINT_PAUSED _UxGT("Impressão Pausada") -#define MSG_PRINTING _UxGT("Imprimindo...") -#define MSG_PRINT_ABORTED _UxGT("Impressão Abortada") -#define MSG_NO_MOVE _UxGT("Sem movimento") -#define MSG_KILLED _UxGT("PARADA DE EMERGÊNCIA") -#define MSG_STOPPED _UxGT("PAROU. ") -#define MSG_CONTROL_RETRACT _UxGT("Retrair mm") -#define MSG_CONTROL_RETRACT_SWAP _UxGT("Retrair Troca mm") -#define MSG_CONTROL_RETRACTF _UxGT("Retrair V") -#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Saltar mm") -#define MSG_CONTROL_RETRACT_RECOVER _UxGT("Des-Retrair mm") -#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Des-RetTroca mm") -#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("Des-Retrair V") -#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("Des-RetTroca V") -#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") + PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("Controle do LED"); + PROGMEM Language_Str MSG_LEDS = _UxGT("Luz"); + PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("Configuração da Luz"); + PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("Luz Vermelha"); + PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("Luz Laranja"); + PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("Luz Amarela"); + PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("Luz Verde"); + PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("Luz Azul"); + PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("Luz Indigo"); + PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Luz Violeta"); + PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("Luz Branca"); + PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("Luz Padrão"); + PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("Luz Customizada"); + PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Intensidade Vermelho"); + PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Intensidade Verde"); + PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("Intensidade Azul"); + PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("Intensidade Branco"); + PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("Brilho"); + PROGMEM Language_Str MSG_MOVING = _UxGT("Movendo..."); + PROGMEM Language_Str MSG_FREE_XY = _UxGT("Liberar XY"); + 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_HOTEND_TOO_COLD = _UxGT("Extrus. mto fria"); + 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 = _UxGT("Bocal"); + PROGMEM Language_Str MSG_NOZZLE_0 = _UxGT("Bocal ") LCD_STR_N0; + PROGMEM Language_Str MSG_NOZZLE_1 = _UxGT("Bocal ") LCD_STR_N1; + PROGMEM Language_Str MSG_NOZZLE_2 = _UxGT("Bocal ") LCD_STR_N2; + PROGMEM Language_Str MSG_NOZZLE_3 = _UxGT("Bocal ") LCD_STR_N3; + PROGMEM Language_Str MSG_NOZZLE_4 = _UxGT("Bocal ") LCD_STR_N4; + PROGMEM Language_Str MSG_NOZZLE_5 = _UxGT("Bocal ") LCD_STR_N5; + PROGMEM Language_Str MSG_BED = _UxGT("Mesa"); + 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_EXTRA_FAN_SPEED = _UxGT("+Vel. Ventoinha"); + PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_1 = _UxGT("+Vel. Ventoinha 1"); + PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_2 = _UxGT("+Vel. Ventoinha 2"); + PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_3 = _UxGT("+Vel. Ventoinha 3"); + PROGMEM Language_Str MSG_FLOW = _UxGT("Vazão"); + PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Vazão ") LCD_STR_N0; + PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Vazão ") LCD_STR_N1; + PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Vazão ") LCD_STR_N2; + PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Vazão ") LCD_STR_N3; + PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Vazão ") LCD_STR_N4; + PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Vazão ") LCD_STR_N5; + PROGMEM Language_Str MSG_CONTROL = _UxGT("Controle"); + PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" Min"); + PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" Máx"); + PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" Fator"); + PROGMEM Language_Str MSG_AUTOTEMP = _UxGT("Temp. Automática"); + PROGMEM Language_Str MSG_LCD_ON = _UxGT("Ligado"); + PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Desligado"); + PROGMEM Language_Str MSG_SELECT = _UxGT("Selecionar"); + PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("Selecionar ") LCD_STR_E0; + PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("Selecionar ") LCD_STR_E1; + PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("Selecionar ") LCD_STR_E2; + PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("Selecionar ") LCD_STR_E3; + PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("Selecionar ") LCD_STR_E4; + PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("Selecionar ") LCD_STR_E5; + PROGMEM Language_Str MSG_ACC = _UxGT("Acel."); + PROGMEM Language_Str MSG_JERK = _UxGT("Arrancada"); + PROGMEM Language_Str MSG_VA_JERK = _UxGT("arrancada V") LCD_STR_A; + PROGMEM Language_Str MSG_VB_JERK = _UxGT("arrancada V") LCD_STR_B; + PROGMEM Language_Str MSG_VC_JERK = _UxGT("arrancada V") LCD_STR_C; + PROGMEM Language_Str MSG_VE_JERK = _UxGT("arrancada VE"); + PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Desv. Junção"); + PROGMEM Language_Str MSG_VELOCITY = _UxGT("Velocidade"); + PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("VDeslocamento min"); + PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Aceleração"); + PROGMEM Language_Str MSG_A_RETRACT = _UxGT("Retrair A"); + PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("Movimento A"); + PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Passo/mm"); + PROGMEM Language_Str MSG_A_STEPS = _UxGT("Passo ") LCD_STR_A _UxGT("/mm"); + PROGMEM Language_Str MSG_B_STEPS = _UxGT("Passo ") LCD_STR_B _UxGT("/mm"); + PROGMEM Language_Str MSG_C_STEPS = _UxGT("Passo ") LCD_STR_C _UxGT("/mm"); + PROGMEM Language_Str MSG_E_STEPS = _UxGT("E/mm"); + PROGMEM Language_Str MSG_E0_STEPS = LCD_STR_E0 _UxGT("/mm"); + PROGMEM Language_Str MSG_E1_STEPS = LCD_STR_E1 _UxGT("/mm"); + PROGMEM Language_Str MSG_E2_STEPS = LCD_STR_E2 _UxGT("/mm"); + PROGMEM Language_Str MSG_E3_STEPS = LCD_STR_E3 _UxGT("/mm"); + PROGMEM Language_Str MSG_E4_STEPS = LCD_STR_E4 _UxGT("/mm"); + PROGMEM Language_Str MSG_E5_STEPS = LCD_STR_E5 _UxGT("/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("Extrusão em mm3"); + PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Diâmetro Fil."); + PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Diâmetro Fil. ") LCD_STR_E0; + PROGMEM Language_Str MSG_FILAMENT_DIAM_E1 = _UxGT("Diâmetro Fil. ") LCD_STR_E1; + PROGMEM Language_Str MSG_FILAMENT_DIAM_E2 = _UxGT("Diâmetro Fil. ") LCD_STR_E2; + PROGMEM Language_Str MSG_FILAMENT_DIAM_E3 = _UxGT("Diâmetro Fil. ") LCD_STR_E3; + PROGMEM Language_Str MSG_FILAMENT_DIAM_E4 = _UxGT("Diâmetro Fil. ") LCD_STR_E4; + PROGMEM Language_Str MSG_FILAMENT_DIAM_E5 = _UxGT("Diâmetro Fil. ") LCD_STR_E5; + PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("Descarr. mm"); + PROGMEM Language_Str MSG_FILAMENT_LOAD = _UxGT("Carregar mm"); + PROGMEM Language_Str MSG_ADVANCE_K = _UxGT("Avanço K"); + PROGMEM Language_Str MSG_ADVANCE_K_E0 = _UxGT("Avanço K ") LCD_STR_E0; + PROGMEM Language_Str MSG_ADVANCE_K_E1 = _UxGT("Avanço K ") LCD_STR_E1; + PROGMEM Language_Str MSG_ADVANCE_K_E2 = _UxGT("Avanço K ") LCD_STR_E2; + PROGMEM Language_Str MSG_ADVANCE_K_E3 = _UxGT("Avanço K ") LCD_STR_E3; + PROGMEM Language_Str MSG_ADVANCE_K_E4 = _UxGT("Avanço K ") LCD_STR_E4; + PROGMEM Language_Str MSG_ADVANCE_K_E5 = _UxGT("Avanço K ") LCD_STR_E5; + PROGMEM Language_Str MSG_CONTRAST = _UxGT("Contraste"); + PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("Salvar Configuração"); + PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("Ler Configuração"); + PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("Restauro seguro"); + PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("Iniciar EEPROM"); + PROGMEM Language_Str MSG_MEDIA_UPDATE = _UxGT("Atualiz. SD"); + PROGMEM Language_Str MSG_RESET_PRINTER = _UxGT("Resetar Impressora"); + PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("Atualização"); + PROGMEM Language_Str MSG_WATCH = _UxGT("Informações"); + PROGMEM Language_Str MSG_PREPARE = _UxGT("Preparar"); + PROGMEM Language_Str MSG_TUNE = _UxGT("Ajustar"); + PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Pausar impressão"); + PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Resumir impressão"); + PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Parar impressão"); + PROGMEM Language_Str MSG_OUTAGE_RECOVERY = _UxGT("Recuperar 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("Dormindo..."); + PROGMEM Language_Str MSG_USERWAIT = _UxGT("Clique para retomar"); + PROGMEM Language_Str MSG_PRINT_PAUSED = _UxGT("Impressão Pausada"); + PROGMEM Language_Str MSG_PRINTING = _UxGT("Imprimindo..."); + PROGMEM Language_Str MSG_PRINT_ABORTED = _UxGT("Impressão Abortada"); + PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Sem movimento"); + PROGMEM Language_Str MSG_KILLED = _UxGT("PARADA DE EMERGÊNCIA"); + PROGMEM Language_Str MSG_STOPPED = _UxGT("PAROU. "); + PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Retrair mm"); + PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Retrair Troca mm"); + PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Retrair V"); + PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Saltar mm"); + PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("Des-Retrair mm"); + PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("Des-RetTroca mm"); + PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("Des-Retrair V"); + PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAPF = _UxGT("Des-RetTroca V"); + PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Retração Automática"); + PROGMEM Language_Str MSG_FILAMENT_SWAP_LENGTH = _UxGT("Distancia Retração"); + PROGMEM Language_Str MSG_TOOL_CHANGE = _UxGT("Mudar Ferramenta"); + PROGMEM Language_Str MSG_TOOL_CHANGE_ZLIFT = _UxGT("Levantar Z"); + PROGMEM Language_Str MSG_SINGLENOZZLE_PRIME_SPD = _UxGT("Preparar Veloc."); + PROGMEM Language_Str MSG_SINGLENOZZLE_RETRACT_SPD = _UxGT("Veloc. Retração"); + 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_FILAMENTLOAD_E0 = _UxGT("Carregar Filamento ") LCD_STR_E0; + PROGMEM Language_Str MSG_FILAMENTLOAD_E1 = _UxGT("Carregar Filamento ") LCD_STR_E1; + PROGMEM Language_Str MSG_FILAMENTLOAD_E2 = _UxGT("Carregar Filamento ") LCD_STR_E2; + PROGMEM Language_Str MSG_FILAMENTLOAD_E3 = _UxGT("Carregar Filamento ") LCD_STR_E3; + PROGMEM Language_Str MSG_FILAMENTLOAD_E4 = _UxGT("Carregar Filamento ") LCD_STR_E4; + PROGMEM Language_Str MSG_FILAMENTLOAD_E5 = _UxGT("Carregar Filamento ") LCD_STR_E5; + PROGMEM Language_Str MSG_FILAMENTUNLOAD_E0 = _UxGT("Descarreg. Filamento ") LCD_STR_E0; + PROGMEM Language_Str MSG_FILAMENTUNLOAD_E1 = _UxGT("Descarreg. Filamento ") LCD_STR_E1; + PROGMEM Language_Str MSG_FILAMENTUNLOAD_E2 = _UxGT("Descarreg. Filamento ") LCD_STR_E2; + PROGMEM Language_Str MSG_FILAMENTUNLOAD_E3 = _UxGT("Descarreg. Filamento ") LCD_STR_E3; + PROGMEM Language_Str MSG_FILAMENTUNLOAD_E4 = _UxGT("Descarreg. Filamento ") LCD_STR_E4; + PROGMEM Language_Str MSG_FILAMENTUNLOAD_E5 = _UxGT("Descarreg. Filamento ") LCD_STR_E5; + PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Descarregar Todos"); + PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Iniciar SD"); + PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Trocar SD"); + PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sonda fora da mesa"); + PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("Fator de Cisalho"); + PROGMEM Language_Str MSG_BLTOUCH = _UxGT("BLTouch"); + PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("Testar BLTouch"); + PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("Reiniciar BLTouch"); + PROGMEM Language_Str MSG_BLTOUCH_DEPLOY = _UxGT("Estender BLTouch"); + PROGMEM Language_Str MSG_BLTOUCH_STOW = _UxGT("Recolher BLTouch"); + PROGMEM Language_Str MSG_MANUAL_DEPLOY = _UxGT("Estender Sonda-Z"); + PROGMEM Language_Str MSG_MANUAL_STOW = _UxGT("Recolher Sonda-Z"); -#define MSG_HOME_FIRST _UxGT("Home %s%s%s Primeiro") -#define MSG_ZPROBE_ZOFFSET _UxGT("Compensar Sonda em Z") -#define MSG_BABYSTEP_X _UxGT("Passinho X") -#define MSG_BABYSTEP_Y _UxGT("Passinho Y") -#define MSG_BABYSTEP_Z _UxGT("Passinho Z") -#define MSG_ENDSTOP_ABORT _UxGT("Abortar Fim de Curso") -#define MSG_HEATING_FAILED_LCD _UxGT("Aquecimento falhou") -#define MSG_HEATING_FAILED_LCD_BED _UxGT("Aquecer mesa falhou") -#define MSG_ERR_REDUNDANT_TEMP _UxGT("Erro:Temp Redundante") -#define MSG_THERMAL_RUNAWAY _UxGT("ESCAPE TÉRMICO") -#define MSG_THERMAL_RUNAWAY_BED _UxGT("ESCAPE TÉRMICO MESA") -#define MSG_ERR_MAXTEMP _UxGT("Erro:Temp Máxima") -#define MSG_ERR_MINTEMP _UxGT("Erro:Temp Mínima") -#define MSG_ERR_MAXTEMP_BED _UxGT("Erro:Temp Mesa Máx") -#define MSG_ERR_MINTEMP_BED _UxGT("Erro:Temp Mesa Mín") -#define MSG_ERR_Z_HOMING _UxGT("Home XY Primeiro") -#define MSG_HALTED _UxGT("IMPRESSORA PAROU") -#define MSG_PLEASE_RESET _UxGT("Favor resetar") -#define MSG_SHORT_DAY _UxGT("d") -#define MSG_SHORT_HOUR _UxGT("h") -#define MSG_SHORT_MINUTE _UxGT("m") -#define MSG_HEATING _UxGT("Aquecendo...") -#define MSG_COOLING _UxGT("Resfriando...") -#define MSG_BED_HEATING _UxGT("Aquecendo mesa...") -#define MSG_BED_COOLING _UxGT("Esfriando mesa...") -#define MSG_DELTA_CALIBRATE _UxGT("Calibrar 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") + PROGMEM Language_Str MSG_HOME_FIRST = _UxGT("Home %s%s%s Primeiro"); + PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Compensar Sonda em Z"); + PROGMEM Language_Str MSG_BABYSTEP_X = _UxGT("Passinho X"); + PROGMEM Language_Str MSG_BABYSTEP_Y = _UxGT("Passinho Y"); + PROGMEM Language_Str MSG_BABYSTEP_Z = _UxGT("Passinho Z"); + PROGMEM Language_Str MSG_ENDSTOP_ABORT = _UxGT("Abortar Fim de Curso"); + PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Aquecimento falhou"); + PROGMEM Language_Str MSG_HEATING_FAILED_LCD_BED = _UxGT("Aquecer mesa falhou"); + PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("Erro:Temp Redundante"); + PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("ESCAPE TÉRMICO"); + PROGMEM Language_Str MSG_THERMAL_RUNAWAY_BED = _UxGT("ESCAPE TÉRMICO MESA"); + PROGMEM Language_Str MSG_ERR_MAXTEMP = _UxGT("Erro:Temp Máxima"); + PROGMEM Language_Str MSG_ERR_MINTEMP = _UxGT("Erro:Temp Mínima"); + PROGMEM Language_Str MSG_ERR_MAXTEMP_BED = _UxGT("Erro:Temp Mesa Máx"); + PROGMEM Language_Str MSG_ERR_MINTEMP_BED = _UxGT("Erro:Temp Mesa Mín"); + PROGMEM Language_Str MSG_ERR_Z_HOMING = _UxGT("Home XY Primeiro"); + PROGMEM Language_Str MSG_HALTED = _UxGT("IMPRESSORA PAROU"); + PROGMEM Language_Str MSG_PLEASE_RESET = _UxGT("Favor resetar"); + 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("Aquecendo..."); + PROGMEM Language_Str MSG_COOLING = _UxGT("Resfriando..."); + PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Aquecendo mesa..."); + PROGMEM Language_Str MSG_BED_COOLING = _UxGT("Esfriando mesa..."); + PROGMEM Language_Str MSG_DELTA_CALIBRATE = _UxGT("Calibrar 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_DELTA_SETTINGS _UxGT("Configuração Delta") -#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Auto-Calibração") -#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Calibrar Altura") -#define MSG_DELTA_Z_OFFSET_CALIBRATE _UxGT("Desloc. Sonda Z") -#define MSG_DELTA_DIAG_ROD _UxGT("Haste Diagonal") -#define MSG_DELTA_HEIGHT _UxGT("Altura") -#define MSG_DELTA_RADIUS _UxGT("Raio") -#define MSG_INFO_MENU _UxGT("Sobre") -#define MSG_INFO_PRINTER_MENU _UxGT("Impressora") -#define MSG_3POINT_LEVELING _UxGT("Nivelamento 3 pontos") -#define MSG_LINEAR_LEVELING _UxGT("Nivelamento Linear") -#define MSG_BILINEAR_LEVELING _UxGT("Nivelamento Bilinear") -#define MSG_UBL_LEVELING _UxGT("Nivelamento UBL") -#define MSG_MESH_LEVELING _UxGT("Nivelamento da Malha") -#define MSG_INFO_STATS_MENU _UxGT("Estatísticas") -#define MSG_INFO_BOARD_MENU _UxGT("Info. da Placa") -#define MSG_INFO_THERMISTOR_MENU _UxGT("Termistores") -#define MSG_INFO_EXTRUDERS _UxGT("Extrusoras") -#define MSG_INFO_BAUDRATE _UxGT("Taxa de Transmissão") -#define MSG_INFO_PROTOCOL _UxGT("Protocolo") -#define MSG_CASE_LIGHT _UxGT("Luz da Impressora") -#define MSG_CASE_LIGHT_BRIGHTNESS _UxGT("Intensidade Brilho") + PROGMEM Language_Str MSG_DELTA_SETTINGS = _UxGT("Configuração Delta"); + PROGMEM Language_Str MSG_DELTA_AUTO_CALIBRATE = _UxGT("Auto-Calibração"); + PROGMEM Language_Str MSG_DELTA_HEIGHT_CALIBRATE = _UxGT("Calibrar Altura"); + PROGMEM Language_Str MSG_DELTA_Z_OFFSET_CALIBRATE = _UxGT("Desloc. Sonda Z"); + PROGMEM Language_Str MSG_DELTA_DIAG_ROD = _UxGT("Haste Diagonal"); + PROGMEM Language_Str MSG_DELTA_HEIGHT = _UxGT("Altura"); + PROGMEM Language_Str MSG_DELTA_RADIUS = _UxGT("Raio"); + PROGMEM Language_Str MSG_INFO_MENU = _UxGT("Sobre"); + PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _UxGT("Impressora"); + PROGMEM Language_Str MSG_3POINT_LEVELING = _UxGT("Nivelamento 3 pontos"); + PROGMEM Language_Str MSG_LINEAR_LEVELING = _UxGT("Nivelamento Linear"); + PROGMEM Language_Str MSG_BILINEAR_LEVELING = _UxGT("Nivelamento Bilinear"); + PROGMEM Language_Str MSG_UBL_LEVELING = _UxGT("Nivelamento UBL"); + PROGMEM Language_Str MSG_MESH_LEVELING = _UxGT("Nivelamento da Malha"); + PROGMEM Language_Str MSG_INFO_STATS_MENU = _UxGT("Estatísticas"); + PROGMEM Language_Str MSG_INFO_BOARD_MENU = _UxGT("Info. da Placa"); + PROGMEM Language_Str MSG_INFO_THERMISTOR_MENU = _UxGT("Termistores"); + PROGMEM Language_Str MSG_INFO_EXTRUDERS = _UxGT("Extrusoras"); + PROGMEM Language_Str MSG_INFO_BAUDRATE = _UxGT("Taxa de Transmissão"); + PROGMEM Language_Str MSG_INFO_PROTOCOL = _UxGT("Protocolo"); + PROGMEM Language_Str MSG_CASE_LIGHT = _UxGT("Luz da Impressora"); + 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 - #define MSG_INFO_PRINT_COUNT _UxGT("Total de Impressões") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Realizadas") - #define MSG_INFO_PRINT_TIME _UxGT("Tempo de Impressão") - #define MSG_INFO_PRINT_LONGEST _UxGT("Trabalho Mais longo") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Total de Extrusão") -#else - #define MSG_INFO_PRINT_COUNT _UxGT("Qtd de Impressões") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Realizadas") - #define MSG_INFO_PRINT_TIME _UxGT("Tempo de Impressão") - #define MSG_INFO_PRINT_LONGEST _UxGT("Maior trabalho") - #define MSG_INFO_PRINT_FILAMENT _UxGT("T. Extrusão") -#endif + #if LCD_WIDTH >= 20 + PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Total de Impressões"); + PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Realizadas"); + PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Tempo de Impressão"); + PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Trabalho Mais longo"); + PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Total de Extrusão"); + #else + PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Qtd de Impressões"); + PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Realizadas"); + PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Tempo de Impressão"); + PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Maior trabalho"); + PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("T. Extrusão"); + #endif -#define MSG_INFO_MIN_TEMP _UxGT("Temp Mín") -#define MSG_INFO_MAX_TEMP _UxGT("Temp Máx") -#define MSG_INFO_PSU _UxGT("PSU") -#define MSG_DRIVE_STRENGTH _UxGT("Força do Motor") -#define MSG_DAC_PERCENT _UxGT("Driver %") -#define MSG_DAC_EEPROM_WRITE _UxGT("Escrever EEPROM DAC") + PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Temp Mín"); + PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Temp Máx"); + PROGMEM Language_Str MSG_INFO_PSU = _UxGT("PSU"); + PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Força do Motor"); + PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Escrever EEPROM DAC"); -#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("IMPRESSÃO PAUSADA") -#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("CARREGAR FILAMENTO") -#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("DESCARREG. FILAMENTO") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("Config. de Retomada") -#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Purgar mais") -#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Continuar Impressão") -#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Bocal: ") -#define MSG_RUNOUT_SENSOR _UxGT("Sensor filamento") -#define MSG_ERR_HOMING_FAILED _UxGT("Falha ao ir à origem") -#define MSG_ERR_PROBING_FAILED _UxGT("Falha ao sondar") -#define MSG_M600_TOO_COLD _UxGT("M600: Muito frio") + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("IMPRESSÃO PAUSADA"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("CARREGAR FILAMENTO"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("DESCARREG. FILAMENTO"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("Config. de Retomada"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("Purgar mais"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Continuar Impressão"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Bocal: "); + PROGMEM Language_Str MSG_RUNOUT_SENSOR = _UxGT("Sensor filamento"); + PROGMEM Language_Str MSG_LCD_HOMING_FAILED = _UxGT("Falha ao ir à origem"); + PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Falha ao sondar"); + PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Muito frio"); -#if LCD_HEIGHT >= 4 - #define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Aperte o botão para") - #define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("continuar impressão") - - #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Esperando o") - #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("inicio da") - #define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("troca de filamento") - - #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Coloque filamento") - #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("pressione o botão") - #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("para continuar...") - - #define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Pressione o botão") - #define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("p/ aquecer o bocal") - - #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Aquecendo o bocal") - #define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Aguarde...") - - #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Esperando") - #define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("remoção de filamento") - - #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Esperando") - #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 + #if LCD_HEIGHT >= 4 + PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_2_LINE("Aperte o botão para", "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...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Pressione o botão", "p/ aquecer o bocal")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("Aquecendo o bocal", "Aguarde...")); + 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")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_2_LINE("Espere pela", "purga de filamento")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_2_LINE("Clique para finaliz.", "purga de filamento")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("Esperando impressão", "continuar")); + #else // LCD_HEIGHT < 4 + PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_1_LINE("Clique p. continuar")); + 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")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("Aquecendo...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Ejetando...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Carregando...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_1_LINE("Purgando...")); + 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...")); + #endif +} diff --git a/Marlin/src/lcd/language/language_ru.h b/Marlin/src/lcd/language/language_ru.h index dc32b8d8e1..f19b33dd0c 100644 --- a/Marlin/src/lcd/language/language_ru.h +++ b/Marlin/src/lcd/language/language_ru.h @@ -28,434 +28,544 @@ * 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 MSG_BACK _UxGT("Назад") -#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("Свои команды") +namespace Language_ru { + using namespace Language_en; // Inherit undefined strings from English -#define MSG_M48_TEST _UxGT("Проверка датчика Z") -#define MSG_M48_DEVIATION _UxGT("Отклонение") -#define MSG_M48_POINT _UxGT("Измерение") + constexpr uint8_t CHARSIZE = 2; + PROGMEM Language_Str LANGUAGE = _UxGT("Russian"); -// TODO: IDEX Menu -#define MSG_OFFSETS_MENU _UxGT("Размещение сопел") + PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _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") -#define MSG_Y_OFFSET _UxGT("2-е сопло Y") -#define MSG_Z_OFFSET _UxGT("2-е сопло Z") + PROGMEM Language_Str MSG_M48_TEST = _UxGT("Проверка датчика Z"); + PROGMEM Language_Str MSG_M48_DEVIATION = _UxGT("Отклонение"); + PROGMEM Language_Str MSG_M48_POINT = _UxGT("Измерение"); -#define MSG_UBL_DOING_G29 _UxGT("Выполняем G29") -#define MSG_UBL_TOOLS _UxGT("Утилиты UBL") -#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") + // TODO: IDEX Menu + PROGMEM Language_Str MSG_OFFSETS_MENU = _UxGT("Размещение сопел"); -#define MSG_LED_CONTROL _UxGT("Настройки LED") -#define MSG_LEDS _UxGT("Подсветку") -#define MSG_LED_PRESETS _UxGT("Предустановки света") -#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("Яркость") + PROGMEM Language_Str MSG_X_OFFSET = _UxGT("2-е сопло X"); + PROGMEM Language_Str MSG_Y_OFFSET = _UxGT("2-е сопло Y"); + PROGMEM Language_Str MSG_Z_OFFSET = _UxGT("2-е сопло Z"); -#define MSG_MOVING _UxGT("Движемся...") -#define MSG_FREE_XY _UxGT("Освобождаем XY") -#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_EXTRA_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_VX_JERK _UxGT("Vx-рывок") - #define MSG_VY_JERK _UxGT("Vy-рывок") - #define MSG_VZ_JERK _UxGT("Vz-рывок") -#endif -#define MSG_VE_JERK _UxGT("Ve-рывок") -#define MSG_VELOCITY _UxGT("Быстрота") -#define MSG_VMAX _UxGT("Vмакс ") -#define MSG_VMIN _UxGT("Vмин") -#define MSG_VTRAV_MIN _UxGT("Vпутеш. мин") -#define MSG_ACCELERATION _UxGT("Ускорение") -#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_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("Авто Втягивание") + PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("Выполняем G29"); + PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("Утилиты UBL"); + PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("Калибровка UBL"); + PROGMEM Language_Str MSG_UBL_MANUAL_MESH = _UxGT("Постр. сетку от руки"); + PROGMEM Language_Str MSG_UBL_BC_INSERT = _UxGT("Пост. шимм и измер."); + PROGMEM Language_Str MSG_UBL_BC_INSERT2 = _UxGT("Измерение"); + PROGMEM Language_Str MSG_UBL_BC_REMOVE = _UxGT("Удал. и измер. стол"); + PROGMEM Language_Str MSG_UBL_MOVING_TO_NEXT = _UxGT("Двигаемся дальше"); + PROGMEM Language_Str MSG_UBL_ACTIVATE_MESH = _UxGT("Активировать UBL"); + PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("Деактивировать UBL"); + PROGMEM Language_Str MSG_UBL_SET_TEMP_BED = _UxGT("Температура стола"); + PROGMEM Language_Str MSG_UBL_BED_TEMP_CUSTOM = _UxGT("Bed Temp"); + PROGMEM Language_Str MSG_UBL_SET_TEMP_HOTEND = _UxGT("Температура сопла"); + PROGMEM Language_Str MSG_UBL_HOTEND_TEMP_CUSTOM = _UxGT("Hotend Temp"); + PROGMEM Language_Str MSG_UBL_MESH_EDIT = _UxGT("Редактор сеток"); + PROGMEM Language_Str MSG_UBL_EDIT_CUSTOM_MESH = _UxGT("Редакт. свою сетку"); + PROGMEM Language_Str MSG_UBL_FINE_TUNE_MESH = _UxGT("Точная настр. сетки"); + PROGMEM Language_Str MSG_UBL_DONE_EDITING_MESH = _UxGT("Ред. сетки завершено"); + PROGMEM Language_Str MSG_UBL_BUILD_CUSTOM_MESH = _UxGT("Построить свою сетку"); + PROGMEM Language_Str MSG_UBL_BUILD_MESH_MENU = _UxGT("Построить сетку"); + PROGMEM Language_Str MSG_UBL_BUILD_MESH_M1 = _UxGT("Построить сетку ") PREHEAT_1_LABEL; + PROGMEM Language_Str MSG_UBL_BUILD_MESH_M2 = _UxGT("Построить сетку ") PREHEAT_2_LABEL; + PROGMEM Language_Str MSG_UBL_BUILD_COLD_MESH = _UxGT("Построить хол. сетку"); + PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_ADJUST = _UxGT("Устан. высоту сетки"); + PROGMEM Language_Str MSG_UBL_MESH_HEIGHT_AMOUNT = _UxGT("Высота"); + PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_MENU = _UxGT("Проверить сетку"); + PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M1 = _UxGT("Проверить сетку ") PREHEAT_1_LABEL; + PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M2 = _UxGT("Проверить сетку ") PREHEAT_2_LABEL; + PROGMEM Language_Str MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("Проверить свою сетку"); + PROGMEM Language_Str MSG_UBL_CONTINUE_MESH = _UxGT("Продолжить сетку"); + PROGMEM Language_Str MSG_UBL_MESH_LEVELING = _UxGT("Калибровка сетки"); + PROGMEM Language_Str MSG_UBL_3POINT_MESH_LEVELING = _UxGT("Калибровка 3-х точек"); + PROGMEM Language_Str MSG_UBL_GRID_MESH_LEVELING = _UxGT("Калибровка растера"); + PROGMEM Language_Str MSG_UBL_MESH_LEVEL = _UxGT("Выровнить сетку"); + PROGMEM Language_Str MSG_UBL_SIDE_POINTS = _UxGT("Крайние точки"); + PROGMEM Language_Str MSG_UBL_MAP_TYPE = _UxGT("Тип карты"); + PROGMEM Language_Str MSG_UBL_OUTPUT_MAP = _UxGT("Вывести карту сетки"); + PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_HOST = _UxGT("Вывести на хост"); + PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_CSV = _UxGT("Вывести в CSV"); + PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_BACKUP = _UxGT("Забекапить сетку"); + PROGMEM Language_Str MSG_UBL_INFO_UBL = _UxGT("Вывод информации UBL"); + PROGMEM Language_Str MSG_UBL_FILLIN_AMOUNT = _UxGT("Кол-во заполнителя"); + PROGMEM Language_Str MSG_UBL_MANUAL_FILLIN = _UxGT("Ручное заполнение"); + PROGMEM Language_Str MSG_UBL_SMART_FILLIN = _UxGT("Умное заполнение"); + PROGMEM Language_Str MSG_UBL_FILLIN_MESH = _UxGT("Заполнить сетку"); + PROGMEM Language_Str MSG_UBL_INVALIDATE_ALL = _UxGT("Аннулировать всё"); + PROGMEM Language_Str MSG_UBL_INVALIDATE_CLOSEST = _UxGT("Аннулир. ближ. точку"); + PROGMEM Language_Str MSG_UBL_FINE_TUNE_ALL = _UxGT("Точная настр. всего"); + PROGMEM Language_Str MSG_UBL_FINE_TUNE_CLOSEST = _UxGT("Настр. ближ. точки"); + PROGMEM Language_Str MSG_UBL_STORAGE_MESH_MENU = _UxGT("Хранилище сетей"); + PROGMEM Language_Str MSG_UBL_STORAGE_SLOT = _UxGT("Слот памяти"); + PROGMEM Language_Str MSG_UBL_LOAD_MESH = _UxGT("Загрузить сетку стола"); + PROGMEM Language_Str MSG_UBL_SAVE_MESH = _UxGT("Сохранить сетку стола"); + PROGMEM Language_Str MSG_MESH_LOADED = _UxGT("M117 Сетка %i загружена"); + PROGMEM Language_Str MSG_MESH_SAVED = _UxGT("M117 Сетка %i сохранена"); + PROGMEM Language_Str MSG_UBL_NO_STORAGE = _UxGT("Нет хранилища"); + PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("Ошибка: Сохран. UBL"); + PROGMEM Language_Str MSG_UBL_RESTORE_ERROR = _UxGT("Ошибка: Восстан. UBL"); + PROGMEM Language_Str MSG_UBL_Z_OFFSET_STOPPED = _UxGT("Смещение Z останов."); + PROGMEM Language_Str MSG_UBL_STEP_BY_STEP_MENU = _UxGT("Пошаговое 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.Сохранить сетку стола"); -// 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("Смена сопел") -#define MSG_TOOL_CHANGE_ZLIFT _UxGT("Поднятие по Z") + PROGMEM Language_Str MSG_MOVING = _UxGT("Движемся..."); + 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("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("Ускорение"); + 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("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("Eшаг/мм"); + 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("Смена филамента") -#define MSG_FILAMENTLOAD _UxGT("Загрузка филамента") -#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") + PROGMEM Language_Str MSG_TOOL_CHANGE = _UxGT("Смена сопел"); + PROGMEM Language_Str MSG_TOOL_CHANGE_ZLIFT = _UxGT("Поднятие по Z"); -// TODO: TouchMI Probe, Manual deploy/stow + // TODO: Singlenozzle, nozzle standby -#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_HEATING_FAILED_LCD_BED _UxGT("Неудача нагрева стола") -#define MSG_ERR_REDUNDANT_TEMP _UxGT("Ошибка: Избыточная Т") -#define MSG_THERMAL_RUNAWAY _UxGT("УБЕГАНИЕ ТЕПЛА") -#define MSG_THERMAL_RUNAWAY_BED _UxGT("УБЕГАНИЕ ТЕПЛА СТОЛА") -// TODO: Heated chamber -#define MSG_ERR_MAXTEMP _UxGT("Ошибка: Т макс.") -#define MSG_ERR_MINTEMP _UxGT("Ошибка: Т мин.") -#define MSG_ERR_MAXTEMP_BED _UxGT("Ошибка: Т стола макс") -#define MSG_ERR_MINTEMP_BED _UxGT("Ошибка: Т стола мин.") -// TODO: Heated chamber -#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_COOLING _UxGT("Охлаждение...") -#define MSG_BED_HEATING _UxGT("Нагрев стола...") -#define MSG_BED_COOLING _UxGT("Охлаждение стола...") -// TODO: Heated chamber -#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_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("Яркость подсветки") + 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_FILAMENTLOAD = _UxGT("Загрузка филамента"); + 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; + 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("Выгрузить всё"); + PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Активировать SD"); + PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Сменить SD карту"); + PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("Деактивировать SD"); + PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z датчик вне стола"); + PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("Фактор наклона"); + PROGMEM Language_Str MSG_BLTOUCH = _UxGT("BLTouch"); + PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("Тестирование BLTouch"); + PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("Сброс BLTouch"); + PROGMEM Language_Str MSG_BLTOUCH_DEPLOY = _UxGT("Установка BLTouch"); + PROGMEM Language_Str MSG_BLTOUCH_STOW = _UxGT("Набивка BLTouch"); -#define MSG_EXPECTED_PRINTER _UxGT("Неверный принтер") + // TODO: TouchMI Probe, Manual deploy/stow -#if LCD_WIDTH >= 20 - #define MSG_INFO_PRINT_COUNT _UxGT("Счётчик печати") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Закончено") - #define MSG_INFO_PRINT_TIME _UxGT("Общее время печати") - #define MSG_INFO_PRINT_LONGEST _UxGT("Наидольшее задание") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Длина филамента") -#else - #define MSG_INFO_PRINT_COUNT _UxGT("Отпечатков") - #define MSG_INFO_COMPLETED_PRINTS _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("Мин. Т") -#define MSG_INFO_MAX_TEMP _UxGT("Макс. Т") -#define MSG_INFO_PSU _UxGT("БП") -#define MSG_DRIVE_STRENGTH _UxGT("Сила привода") -#define MSG_DAC_PERCENT _UxGT("Привод %") -#define MSG_DAC_EEPROM_WRITE _UxGT("Запись DAC EEPROM") -#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("ПЕЧАТЬ НА ПАУЗЕ") -#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("ЗАГРУЗКА ФИЛАМЕНТА") -#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("ВЫГРУЗКА ФИЛАМЕНТА") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("ОПЦИИ ВОЗОБНОВЛЕНИЯ:") -#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Выдавить ещё") -#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Возобновить печать") -#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Сопла: ") -#define MSG_ERR_HOMING_FAILED _UxGT("Возврат не удался") -#define MSG_ERR_PROBING_FAILED _UxGT("Не удалось прощупать") -#define MSG_M600_TOO_COLD _UxGT("M600: Низкая Т") + 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_HEATING_FAILED_LCD_BED = _UxGT("Неудача нагрева стола"); + PROGMEM Language_Str MSG_ERR_REDUNDANT_TEMP = _UxGT("Ошибка: Избыточная Т"); + PROGMEM Language_Str MSG_THERMAL_RUNAWAY = _UxGT("УБЕГАНИЕ ТЕПЛА"); + PROGMEM Language_Str MSG_THERMAL_RUNAWAY_BED = _UxGT("УБЕГАНИЕ ТЕПЛА СТОЛА"); + // TODO: Heated chamber + 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("Ошибка: Т стола мин."); + // TODO: Heated chamber + 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_COOLING = _UxGT("Охлаждение..."); + PROGMEM Language_Str MSG_BED_HEATING = _UxGT("Нагрев стола..."); + PROGMEM Language_Str MSG_BED_COOLING = _UxGT("Охлаждение стола..."); + // TODO: Heated chamber + 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("Игры") -#define MSG_BRICKOUT _UxGT("Кирпичи") -#define MSG_INVADERS _UxGT("Вторжение") -#define MSG_SNAKE _UxGT("Змейка") -#define MSG_MAZE _UxGT("Лабиринт") + // TODO: MMU2 -// -// 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 + // TODO: Mixing -#define MSG_TMC_DRIVERS _UxGT("Драйвера TMC") -#define MSG_TMC_CURRENT _UxGT("Текущие настройки") -#define MSG_TMC_HYBRID_THRS _UxGT("Гибридный режим") -#define MSG_TMC_HOMING_THRS _UxGT("Режим без эндстопов") -#define MSG_TMC_STEPPING_MODE _UxGT("Режим шага") -#define MSG_TMC_STEALTH_ENABLED _UxGT("Тихий режим вкл") + PROGMEM Language_Str MSG_GAMES = _UxGT("Игры"); + PROGMEM Language_Str MSG_BRICKOUT = _UxGT("Кирпичи"); + PROGMEM Language_Str MSG_INVADERS = _UxGT("Вторжение"); + PROGMEM Language_Str MSG_SNAKE = _UxGT("Змейка"); + PROGMEM Language_Str MSG_MAZE = _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 +} diff --git a/Marlin/src/lcd/language/language_sk.h b/Marlin/src/lcd/language/language_sk.h index 55d2b6e4bf..fa92d72c51 100644 --- a/Marlin/src/lcd/language/language_sk.h +++ b/Marlin/src/lcd/language/language_sk.h @@ -32,552 +32,612 @@ * http://www.facebook.com/farmamam * */ - #define DISPLAY_CHARSET_ISO10646_SK -#define CHARSIZE 2 -// Characters that can be displayed with M117 -#define THIS_LANGUAGES_SPECIAL_SYMBOLS _UxGT("äÄáÁčČďĎéÉíÍĺĹľĽňŇóÓôÔŕŔšŠťŤúÚýÝžŽ³") +namespace Language_sk { + using namespace Language_en; // Inherit undefined strings from English -#define WELCOME_MSG MACHINE_NAME _UxGT(" pripravená.") -#define MSG_YES _UxGT("ÁNO") -#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") + constexpr uint8_t CHARSIZE = 2; + PROGMEM Language_Str LANGUAGE = _UxGT("Slovak"); -#define MSG_LED_CONTROL _UxGT("Nastavenie LED") -#define MSG_LEDS _UxGT("Svetlo") -#define MSG_LED_PRESETS _UxGT("Prednastavené farby") -#define MSG_SET_LEDS_RED _UxGT("Červená") -#define MSG_SET_LEDS_ORANGE _UxGT("Oranžová") -#define MSG_SET_LEDS_YELLOW _UxGT("Žltá") -#define MSG_SET_LEDS_GREEN _UxGT("Zelená") -#define MSG_SET_LEDS_BLUE _UxGT("Modrá") -#define MSG_SET_LEDS_INDIGO _UxGT("Indigo") -#define MSG_SET_LEDS_VIOLET _UxGT("Fialová") -#define MSG_SET_LEDS_WHITE _UxGT("Biela") -#define MSG_SET_LEDS_DEFAULT _UxGT("Obnoviť nastavenie") -#define MSG_CUSTOM_LEDS _UxGT("Vlastná farba") -#define MSG_INTENSITY_R _UxGT("Inten. červenej") -#define MSG_INTENSITY_G _UxGT("Inten. zelenej") -#define MSG_INTENSITY_B _UxGT("Inten. modrej") -#define MSG_INTENSITY_W _UxGT("Inten. bielej") -#define MSG_LED_BRIGHTNESS _UxGT("Jas") + PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" pripravená."); + PROGMEM Language_Str MSG_YES = _UxGT("ÁNO"); + PROGMEM Language_Str MSG_NO = _UxGT("NIE"); + PROGMEM Language_Str MSG_BACK = _UxGT("Naspäť"); + PROGMEM Language_Str MSG_MEDIA_ABORTING = _UxGT("Ruším..."); + PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("Karta vložená"); + PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("Karta vybraná"); + PROGMEM Language_Str MSG_MEDIA_RELEASED = _UxGT("Karta odpojená"); + PROGMEM Language_Str MSG_MEDIA_WAITING = _UxGT("Čakám na kartu"); + PROGMEM Language_Str MSG_MEDIA_READ_ERROR = _UxGT("Chyba čítania karty"); + PROGMEM Language_Str MSG_MEDIA_USB_REMOVED = _UxGT("USB zaria. odstrán."); + PROGMEM Language_Str MSG_MEDIA_USB_FAILED = _UxGT("Chyba spúšťania USB"); + PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Endstopy") // max 8 znakov; + PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("Soft. endstopy"); + PROGMEM Language_Str MSG_MAIN = _UxGT("Hlavná ponuka"); + PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("Pokročilé nastav."); + PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("Konfigurácia"); + 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...") -#define MSG_FREE_XY _UxGT("Uvolniť XY") -#define MSG_MOVE_X _UxGT("Posunúť X") -#define MSG_MOVE_Y _UxGT("Posunúť Y") -#define MSG_MOVE_Z _UxGT("Posunúť Z") -#define MSG_MOVE_E _UxGT("Extrudér") -#define MSG_HOTEND_TOO_COLD _UxGT("Hotend je studený") -#define MSG_MOVE_Z_DIST _UxGT("Posunúť o %smm") -#define MSG_MOVE_01MM _UxGT("Posunúť o 0,1mm") -#define MSG_MOVE_1MM _UxGT("Posunúť o 1mm") -#define MSG_MOVE_10MM _UxGT("Posunúť o 10mm") -#define MSG_SPEED _UxGT("Rýchlosť") -#define MSG_BED_Z _UxGT("Výška podl.") -#define MSG_NOZZLE _UxGT("Tryska") -#define MSG_BED _UxGT("Podložka") -#define MSG_CHAMBER _UxGT("Komora") -#define MSG_FAN_SPEED _UxGT("Rýchlosť vent.") -#define MSG_EXTRA_FAN_SPEED _UxGT("Rýchlosť ex. vent.") -#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") + PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("Nastavenie LED"); + PROGMEM Language_Str MSG_LEDS = _UxGT("Svetlo"); + PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("Prednastavené farby"); + PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("Červená"); + PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("Oranžová"); + PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("Žltá"); + PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("Zelená"); + PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("Modrá"); + PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("Indigo"); + PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Fialová"); + PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("Biela"); + PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("Obnoviť nastavenie"); + PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("Vlastná farba"); + PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Inten. červenej"); + PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Inten. zelenej"); + PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("Inten. modrej"); + PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("Inten. bielej"); + PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("Jas"); -#define MSG_INIT_MEDIA _UxGT("Načítať SD kartu") -#define MSG_CHANGE_MEDIA _UxGT("Vymeniť SD kartu") -#define MSG_RELEASE_MEDIA _UxGT("Odpojiť SD kartu") -#define MSG_ZPROBE_OUT _UxGT("Sonda Z mimo podl.") -#define MSG_SKEW_FACTOR _UxGT("Faktor skosenia") -#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: Zasunúť") -#define MSG_BLTOUCH_DEPLOY _UxGT("Cmd: Vysunúť") -#define MSG_BLTOUCH_SW_MODE _UxGT("Cmd: Režim SW") -#define MSG_BLTOUCH_5V_MODE _UxGT("Cmd: Režim 5V") -#define MSG_BLTOUCH_OD_MODE _UxGT("Cmd: Režim OD") -#define MSG_BLTOUCH_MODE_STORE _UxGT("Cmd: Ulož. režim") -#define MSG_BLTOUCH_MODE_STORE_5V _UxGT("Prepnúť do 5V") -#define MSG_BLTOUCH_MODE_STORE_OD _UxGT("Prepnúť do OD") -#define MSG_BLTOUCH_MODE_ECHO _UxGT("Zobraziť režim") -#define MSG_BLTOUCH_MODE_CHANGE _UxGT("POZOR: Zlé nastav. môže spôsobiť poškoden. Pokračovať?") -#define MSG_TOUCHMI_PROBE _UxGT("TouchMI") -#define MSG_TOUCHMI_INIT _UxGT("Inicializ. TouchMI") -#define MSG_TOUCHMI_ZTEST _UxGT("Test ofsetu Z") -#define MSG_TOUCHMI_SAVE _UxGT("Uložiť") -#define MSG_MANUAL_DEPLOY_TOUCHMI _UxGT("Zasunúť TouchMI") -#define MSG_MANUAL_DEPLOY _UxGT("Zasunúť sondu Z") -#define MSG_MANUAL_STOW _UxGT("Vysunúť sondu Z") -#define MSG_HOME_FIRST _UxGT("Najskôr os %s%s%s domov") -#define MSG_ZPROBE_ZOFFSET _UxGT("Ofset sondy 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("Celkom") -#define MSG_ENDSTOP_ABORT _UxGT("Zastavenie Endstop") -#define MSG_HEATING_FAILED_LCD _UxGT("Chyba ohrevu") -#define MSG_HEATING_FAILED_LCD_BED _UxGT("Chyba ohrevu podl.") -#define MSG_HEATING_FAILED_LCD_CHAMBER _UxGT("Chyba ohrevu komory") -#define MSG_ERR_REDUNDANT_TEMP _UxGT("Chyba: REDUND. TEP.") -#define MSG_THERMAL_RUNAWAY _UxGT("TEPLOTNÝ SKOK") -#define MSG_THERMAL_RUNAWAY_BED _UxGT("TEPLOTNÝ SKOK PODL.") -#define MSG_THERMAL_RUNAWAY_CHAMBER _UxGT("TEPLOTNÝ SKOK KOMO.") -#define MSG_ERR_MAXTEMP _UxGT("Chyba: MAXTEMP") -#define MSG_ERR_MINTEMP _UxGT("Chyba: MINTEMP") -#define MSG_ERR_MAXTEMP_BED _UxGT("Chyba: MAXTEMP PODL.") -#define MSG_ERR_MINTEMP_BED _UxGT("Chyba: MINTEMP PODL.") -#define MSG_ERR_MAXTEMP_CHAMBER _UxGT("Chyba: MAXTEMP KOMO.") -#define MSG_ERR_MINTEMP_CHAMBER _UxGT("Chyba: MINTEMP KOMO.") -#define MSG_ERR_Z_HOMING _UxGT("Najskôr os XY domov") -#define MSG_HALTED _UxGT("TLAČIAREŇ ZASTAVENÁ") -#define MSG_PLEASE_RESET _UxGT("Reštartuje ju") -#define MSG_SHORT_DAY _UxGT("d") -#define MSG_SHORT_HOUR _UxGT("h") -#define MSG_SHORT_MINUTE _UxGT("m") -#define MSG_HEATING _UxGT("Ohrev...") -#define MSG_COOLING _UxGT("Ochladzovanie...") -#define MSG_BED_HEATING _UxGT("Ohrev podložky...") -#define MSG_BED_COOLING _UxGT("Ochladz. podložky...") -#define MSG_CHAMBER_HEATING _UxGT("Ohrev komory...") -#define MSG_CHAMBER_COOLING _UxGT("Ochladz. komory...") -#define MSG_DELTA_CALIBRATE _UxGT("Delta kalibrácia") -#define MSG_DELTA_CALIBRATE_X _UxGT("Kalibrovať X") -#define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibrovať Y") -#define MSG_DELTA_CALIBRATE_Z _UxGT("Kalibrovať Z") -#define MSG_DELTA_CALIBRATE_CENTER _UxGT("Kalibrovať stred") -#define MSG_DELTA_SETTINGS _UxGT("Delta nastavenia") -#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Auto-kalibrácia") -#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Nast. výšku delty") -#define MSG_DELTA_Z_OFFSET_CALIBRATE _UxGT("Ofset sondy Z") -#define MSG_DELTA_DIAG_ROD _UxGT("Diag. rameno") -#define MSG_DELTA_HEIGHT _UxGT("Výška") -#define MSG_DELTA_RADIUS _UxGT("Polomer") -#define MSG_INFO_MENU _UxGT("O tlačiarni") -#define MSG_INFO_PRINTER_MENU _UxGT("Info. o tlačiarni") -#define MSG_3POINT_LEVELING _UxGT("3-bodové rovnanie") -#define MSG_LINEAR_LEVELING _UxGT("Lineárne rovnanie") -#define MSG_BILINEAR_LEVELING _UxGT("Bilineárne rovnanie") -#define MSG_UBL_LEVELING _UxGT("UBL rovnanie") -#define MSG_MESH_LEVELING _UxGT("Mriežkové rovnanie") -#define MSG_INFO_STATS_MENU _UxGT("Štatistika") -#define MSG_INFO_BOARD_MENU _UxGT("Info. o doske") -#define MSG_INFO_THERMISTOR_MENU _UxGT("Termistory") -#define MSG_INFO_EXTRUDERS _UxGT("Extrudéry") -#define MSG_INFO_BAUDRATE _UxGT("Rýchlosť") -#define MSG_INFO_PROTOCOL _UxGT("Protokol") -#define MSG_INFO_RUNAWAY_OFF _UxGT("Tepl. ochrana: VYP") -#define MSG_INFO_RUNAWAY_ON _UxGT("Tepl. ochrana: ZAP") -#define MSG_CASE_LIGHT _UxGT("Osvetlenie") -#define MSG_CASE_LIGHT_BRIGHTNESS _UxGT("Jas svetla") + PROGMEM Language_Str MSG_MOVING = _UxGT("Posúvam..."); + PROGMEM Language_Str MSG_FREE_XY = _UxGT("Uvolniť XY"); + PROGMEM Language_Str MSG_MOVE_X = _UxGT("Posunúť X"); + PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Posunúť Y"); + PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Posunúť Z"); + PROGMEM Language_Str MSG_MOVE_E = _UxGT("Extrudér"); + PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Extrudér ") LCD_STR_E0; + PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Extrudér ") LCD_STR_E1; + PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Extrudér ") LCD_STR_E2; + PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Extrudér ") LCD_STR_E3; + PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Extrudér ") LCD_STR_E4; + PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Extrudér ") LCD_STR_E5; + PROGMEM Language_Str MSG_HOTEND_TOO_COLD = _UxGT("Hotend je studený"); + PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("Posunúť o %smm"); + PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Posunúť o 0,1mm"); + PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Posunúť o 1mm"); + PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Posunúť o 10mm"); + PROGMEM Language_Str MSG_SPEED = _UxGT("Rýchlosť"); + 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("Rýchlosť vent."); + PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("Rýchlosť vent. 1"); + PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("Rýchlosť vent. 2"); + PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("Rýchlosť vent. 3"); + PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Rýchlosť ex. vent."); + PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_1 = _UxGT("Rýchlosť ex. vent. 1"); + PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_2 = _UxGT("Rýchlosť ex. vent. 2"); + PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_3 = _UxGT("Rýchlosť ex. vent. 3"); + PROGMEM Language_Str MSG_FLOW = _UxGT("Prietok"); + PROGMEM Language_Str MSG_FLOW_0 = _UxGT("Prietok ") LCD_STR_N0; + PROGMEM Language_Str MSG_FLOW_1 = _UxGT("Prietok ") LCD_STR_N1; + PROGMEM Language_Str MSG_FLOW_2 = _UxGT("Prietok ") LCD_STR_N2; + PROGMEM Language_Str MSG_FLOW_3 = _UxGT("Prietok ") LCD_STR_N3; + PROGMEM Language_Str MSG_FLOW_4 = _UxGT("Prietok ") LCD_STR_N4; + PROGMEM Language_Str MSG_FLOW_5 = _UxGT("Prietok ") LCD_STR_N5; + PROGMEM Language_Str MSG_CONTROL = _UxGT("Ovládanie"); + 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-teplota"); + PROGMEM Language_Str MSG_LCD_ON = _UxGT("Zap"); + PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Vyp"); + PROGMEM Language_Str MSG_SELECT = _UxGT("Vybrať"); + PROGMEM Language_Str MSG_SELECT_E0 = _UxGT("Vybrať ") LCD_STR_E0; + PROGMEM Language_Str MSG_SELECT_E1 = _UxGT("Vybrať ") LCD_STR_E1; + PROGMEM Language_Str MSG_SELECT_E2 = _UxGT("Vybrať ") LCD_STR_E2; + PROGMEM Language_Str MSG_SELECT_E3 = _UxGT("Vybrať ") LCD_STR_E3; + PROGMEM Language_Str MSG_SELECT_E4 = _UxGT("Vybrať ") LCD_STR_E4; + PROGMEM Language_Str MSG_SELECT_E5 = _UxGT("Vybrať ") LCD_STR_E5; + PROGMEM Language_Str MSG_ACC = _UxGT("Zrýchlenie"); + PROGMEM Language_Str MSG_JERK = _UxGT("Skok"); + PROGMEM Language_Str MSG_VA_JERK = _UxGT("V") LCD_STR_A _UxGT("-skok"); + PROGMEM Language_Str MSG_VB_JERK = _UxGT("V") LCD_STR_B _UxGT("-skok"); + PROGMEM Language_Str MSG_VC_JERK = _UxGT("V") LCD_STR_C _UxGT("-skok"); + PROGMEM Language_Str MSG_VE_JERK = _UxGT("Ve-skok"); + PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Junction Dev"); + PROGMEM Language_Str MSG_VELOCITY = _UxGT("Rýchlosť"); + PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Akcelerácia"); + PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A-retrakt"); + PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A-prejazd"); + PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Kroky/mm"); + PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("krokov/mm"); + PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("krokov/mm"); + PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("krokov/mm"); + PROGMEM Language_Str MSG_E_STEPS = _UxGT("Ekrokov/mm"); + PROGMEM Language_Str MSG_E0_STEPS = LCD_STR_E0 _UxGT("krokov/mm"); + PROGMEM Language_Str MSG_E1_STEPS = LCD_STR_E1 _UxGT("krokov/mm"); + PROGMEM Language_Str MSG_E2_STEPS = LCD_STR_E2 _UxGT("krokov/mm"); + PROGMEM Language_Str MSG_E3_STEPS = LCD_STR_E3 _UxGT("krokov/mm"); + PROGMEM Language_Str MSG_E4_STEPS = LCD_STR_E4 _UxGT("krokov/mm"); + PROGMEM Language_Str MSG_E5_STEPS = LCD_STR_E5 _UxGT("krokov/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 mm³"); + PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Priem. fil."); + PROGMEM Language_Str MSG_FILAMENT_DIAM_E0 = _UxGT("Priem. fil. ") LCD_STR_E0; + 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 - #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 + PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Nesprávna tlačiareň"); -#define MSG_INFO_MIN_TEMP _UxGT("Teplota min") -#define MSG_INFO_MAX_TEMP _UxGT("Teplota max") -#define MSG_INFO_PSU _UxGT("Nap. zdroj") -#define MSG_DRIVE_STRENGTH _UxGT("Budenie motorov") -#define MSG_DAC_PERCENT _UxGT("Motor %") -#define MSG_ERROR_TMC _UxGT("CHYBA KOMUNIKÁ. TMC") -#define MSG_DAC_EEPROM_WRITE _UxGT("Uložiť do EEPROM") + #if LCD_WIDTH >= 20 + PROGMEM Language_Str MSG_INFO_PRINT_COUNT = _UxGT("Počet tlačí"); + PROGMEM Language_Str MSG_INFO_COMPLETED_PRINTS = _UxGT("Dokončené"); + PROGMEM Language_Str MSG_INFO_PRINT_TIME = _UxGT("Celkový čas"); + PROGMEM Language_Str MSG_INFO_PRINT_LONGEST = _UxGT("Najdlhšia tlač"); + PROGMEM Language_Str MSG_INFO_PRINT_FILAMENT = _UxGT("Celkom vytlačené"); + #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") -#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("PAUZA TLAČE") -#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("ZAVEDENIE FILAMENTU") -#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("VYSUNUTIE FILAMENTU") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("MOŽNOSTI POKRAČ.:") -#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Vytlačiť viacej") -#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Obnoviť tlač") -#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ý") + PROGMEM Language_Str MSG_INFO_MIN_TEMP = _UxGT("Teplota min"); + PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Teplota max"); + PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Nap. zdroj"); + PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Budenie motorov"); + PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Motor %"); + PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("CHYBA KOMUNIKÁ. TMC"); + PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Uložiť do EEPROM"); -#define MSG_MMU2_FILAMENT_CHANGE_HEADER _UxGT("VÝMENA FILAMENTU") -#define MSG_MMU2_CHOOSE_FILAMENT_HEADER _UxGT("VYBERTE FILAMENT") -#define MSG_MMU2_MENU _UxGT("MMU2") -#define MSG_MMU2_WRONG_FIRMWARE _UxGT("Aktualizujte FW MMU!") -#define MSG_MMU2_NOT_RESPONDING _UxGT("MMU potrebuje zásah.") -#define MSG_MMU2_RESUME _UxGT("Obnoviť tlač") -#define MSG_MMU2_RESUMING _UxGT("Obnovovanie...") -#define MSG_MMU2_LOAD_FILAMENT _UxGT("Zaviesť filament") -#define MSG_MMU2_LOAD_ALL _UxGT("Zaviesť všetky") -#define MSG_MMU2_LOAD_TO_NOZZLE _UxGT("Zaviesť po trysku") -#define MSG_MMU2_EJECT_FILAMENT _UxGT("Vysunúť filament") -#define MSG_MMU2_EJECT_FILAMENT0 _UxGT("Vysunúť filament 1") -#define MSG_MMU2_EJECT_FILAMENT1 _UxGT("Vysunúť filament 2") -#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") + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER = _UxGT("VÝMENA FILAMENTU"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("PAUZA TLAČE"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("ZAVEDENIE FILAMENTU"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("VYSUNUTIE FILAMENTU"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("MOŽNOSTI POKRAČ.:"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("Vytlačiť viacej"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Obnoviť tlač"); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Tryska: "); + PROGMEM Language_Str MSG_RUNOUT_SENSOR = _UxGT("Senzor filamentu"); + PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("Vzd. mm fil. senz."); + PROGMEM Language_Str MSG_LCD_HOMING_FAILED = _UxGT("Parkovanie zlyhalo"); + PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Kalibrácia zlyhala"); + PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Príliš studený"); -#define MSG_MIX _UxGT("Mix") -#define MSG_MIX_COMPONENT _UxGT("Zložka") -#define MSG_MIXER _UxGT("Mixér") -#define MSG_GRADIENT _UxGT("Gradient") -#define MSG_FULL_GRADIENT _UxGT("Plný gradient") -#define MSG_TOGGLE_MIX _UxGT("Prepnúť mix") -#define MSG_CYCLE_MIX _UxGT("Cyklický mix") -#define MSG_GRADIENT_MIX _UxGT("Gradientný mix") -#define MSG_REVERSE_GRADIENT _UxGT("Otočiť gradient") -#define MSG_ACTIVE_VTOOL _UxGT("Aktívny V-tool") -#define MSG_START_VTOOL _UxGT("Počiat. V-tool") -#define MSG_END_VTOOL _UxGT("Konečn. V-tool") -#define MSG_GRADIENT_ALIAS _UxGT("Alias V-tool") -#define MSG_RESET_VTOOLS _UxGT("Vynulovať V-tools") -#define MSG_COMMIT_VTOOL _UxGT("Uložiť V-tool Mix") -#define MSG_VTOOLS_RESET _UxGT("V-tools vynulované") -#define MSG_START_Z _UxGT("Počiat.Z") -#define MSG_END_Z _UxGT("Konečn.Z") -#define MSG_GAMES _UxGT("Hry") -#define MSG_BRICKOUT _UxGT("Brickout") -#define MSG_INVADERS _UxGT("Nájazdníci") -#define MSG_SNAKE _UxGT("Had") -#define MSG_MAZE _UxGT("Bludisko") + PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("VYBERTE FILAMENT"); + PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU2"); + PROGMEM Language_Str MSG_MMU2_WRONG_FIRMWARE = _UxGT("Aktualizujte FW MMU!"); + PROGMEM Language_Str MSG_MMU2_NOT_RESPONDING = _UxGT("MMU potrebuje zásah."); + PROGMEM Language_Str MSG_MMU2_RESUME = _UxGT("Obnoviť tlač"); + PROGMEM Language_Str MSG_MMU2_RESUMING = _UxGT("Obnovovanie..."); + PROGMEM Language_Str MSG_MMU2_LOAD_FILAMENT = _UxGT("Zaviesť filament"); + PROGMEM Language_Str MSG_MMU2_LOAD_ALL = _UxGT("Zaviesť všetky"); + PROGMEM Language_Str MSG_MMU2_LOAD_TO_NOZZLE = _UxGT("Zaviesť po trysku"); + PROGMEM Language_Str MSG_MMU2_EJECT_FILAMENT = _UxGT("Vysunúť 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("Vyňať filament"); + PROGMEM Language_Str MSG_MMU2_LOADING_FILAMENT = _UxGT("Zavádzanie fil. %i..."); + PROGMEM Language_Str MSG_MMU2_EJECTING_FILAMENT = _UxGT("Vysúvanie fil. ..."); + PROGMEM Language_Str MSG_MMU2_UNLOADING_FILAMENT = _UxGT("Vysúvanie fil. ..."); + PROGMEM Language_Str MSG_MMU2_ALL = _UxGT("Všetky"); + 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("Reštartovať MMU"); + PROGMEM Language_Str MSG_MMU2_RESETTING = _UxGT("Reštart MMU..."); + PROGMEM Language_Str MSG_MMU2_EJECT_RECOVER = _UxGT("Odstráňte, kliknite"); -// -// 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_ADVANCED_PAUSE_WAITING_1 _UxGT("Stlačte tlačidlo") - #define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("pre obnovu tlače") - #define MSG_PAUSE_PRINT_INIT_1 _UxGT("Parkovanie...") - #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Čakajte prosím") - #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("na spustenie") - #define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("výmeny filamentu") - #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vložte filament") - #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("a stlačte tlačidlo") - #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("pre pokračovanie") - #define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Stlačte tlačidlo") - #define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("pre ohrev trysky") - #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Ohrev trysky") - #define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Čakajte prosím...") - #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Čakajte prosím") - #define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("na vysunutie") - #define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("filamentu") - #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Čakajte prosím") - #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("na zavedenie") - #define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamentu") - #define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Čakajte prosím") - #define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("na vytlačenie") - #define MSG_FILAMENT_CHANGE_PURGE_3 _UxGT("filamentu") - #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ý") + PROGMEM Language_Str MSG_MIX = _UxGT("Mix"); + PROGMEM Language_Str MSG_MIX_COMPONENT_1 = _UxGT("Zložka 1"); + PROGMEM Language_Str MSG_MIX_COMPONENT_2 = _UxGT("Zložka 2"); + PROGMEM Language_Str MSG_MIX_COMPONENT_3 = _UxGT("Zložka 3"); + PROGMEM Language_Str MSG_MIX_COMPONENT_4 = _UxGT("Zložka 4"); + PROGMEM Language_Str MSG_MIX_COMPONENT_5 = _UxGT("Zložka 5"); + PROGMEM Language_Str MSG_MIX_COMPONENT_6 = _UxGT("Zložka 6"); + PROGMEM Language_Str MSG_MIXER = _UxGT("Mixér"); + PROGMEM Language_Str MSG_GRADIENT = _UxGT("Gradient"); + PROGMEM Language_Str MSG_FULL_GRADIENT = _UxGT("Plný gradient"); + PROGMEM Language_Str MSG_TOGGLE_MIX = _UxGT("Prepnúť mix"); + PROGMEM Language_Str MSG_CYCLE_MIX = _UxGT("Cyklický mix"); + PROGMEM Language_Str MSG_GRADIENT_MIX = _UxGT("Gradientný mix"); + PROGMEM Language_Str MSG_REVERSE_GRADIENT = _UxGT("Otočiť gradient"); + PROGMEM Language_Str MSG_ACTIVE_VTOOL = _UxGT("Aktívny V-tool"); + PROGMEM Language_Str MSG_START_VTOOL = _UxGT("Počiat. V-tool"); + PROGMEM Language_Str MSG_END_VTOOL = _UxGT("Konečn. V-tool"); + PROGMEM Language_Str MSG_GRADIENT_ALIAS = _UxGT("Alias V-tool"); + PROGMEM Language_Str MSG_RESET_VTOOLS = _UxGT("Vynulovať V-tools"); + PROGMEM Language_Str MSG_COMMIT_VTOOL = _UxGT("Uložiť V-tool Mix"); + PROGMEM Language_Str MSG_VTOOLS_RESET = _UxGT("V-tools vynulované"); + PROGMEM Language_Str MSG_START_Z = _UxGT("Počiat.Z:"); + PROGMEM Language_Str MSG_END_Z = _UxGT("Konečn.Z:"); + PROGMEM Language_Str MSG_GAMES = _UxGT("Hry"); + PROGMEM Language_Str MSG_INVADERS = _UxGT("Nájazdníci"); + PROGMEM Language_Str MSG_SNAKE = _UxGT("Had"); + PROGMEM Language_Str MSG_MAZE = _UxGT("Bludisko"); -#define MSG_SERVICE_RESET _UxGT("Vynulovať") -#define MSG_SERVICE_IN _UxGT(" za:") -#define MSG_BACKLASH _UxGT("Kompenz. vôle") -#define MSG_BACKLASH_CORRECTION _UxGT("Korekcia") -#define MSG_BACKLASH_SMOOTHING _UxGT("Vyhladzovanie") + // + // 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_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"); +} diff --git a/Marlin/src/lcd/language/language_test.h b/Marlin/src/lcd/language/language_test.h index b2be749a00..8098fdd872 100644 --- a/Marlin/src/lcd/language/language_test.h +++ b/Marlin/src/lcd/language/language_test.h @@ -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_f "\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377" -#if ENABLED(DISPLAYTEST) - #define WELCOME_MSG _UxGT("Language TEST") +namespace Language_test { + using namespace Language_en; // Inherit undefined strings from English - #define MSG_WATCH _UxGT("Display test") - #define MSG_PREPARE STRG_OKTAL_b - #define MSG_CONTROL STRG_OKTAL_c -#endif + constexpr uint8_t CHARSIZE = 1; -#if ENABLED(WEST) - #define WELCOME_MSG _UxGT("Language TEST") + #if ENABLED(DISPLAYTEST) + PROGMEM Language_Str WELCOME_MSG = _UxGT("Language TEST"); - #define MSG_WATCH _UxGT("\001\002\003\004\005\006\007\010\011") - #define MSG_PREPARE _UxGT("UTF8") - #define MSG_CONTROL _UxGT("ASCII") + PROGMEM Language_Str MSG_WATCH = _UxGT("Display test"); + PROGMEM Language_Str MSG_PREPARE = STRG_OKTAL_b; + PROGMEM Language_Str MSG_CONTROL = STRG_OKTAL_c; + #endif - //#define MSG_MAIN _UxGT("..") - #define MSG_DISABLE_STEPPERS STRG_C2_8 - #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 + #if ENABLED(WEST) + PROGMEM Language_Str WELCOME_MSG = _UxGT("Language TEST"); - #define MSG_MAIN STRG_OKTAL_2 - #define MSG_TEMPERATURE STRG_OKTAL_3 - #define MSG_MOTION STRG_OKTAL_4 - #define MSG_FILAMENT STRG_OKTAL_5 - #define MSG_CONTRAST STRG_OKTAL_6 - #define MSG_RESTORE_FAILSAFE STRG_OKTAL_7 + PROGMEM Language_Str MSG_WATCH = _UxGT("\001\002\003\004\005\006\007\010\011"); + PROGMEM Language_Str MSG_PREPARE = _UxGT("UTF8"); + PROGMEM Language_Str MSG_CONTROL = _UxGT("ASCII"); - #define MSG_NOZZLE STRG_OKTAL_8 - #define MSG_FAN_SPEED STRG_OKTAL_9 - #define MSG_AUTOTEMP STRG_OKTAL_a - #define MSG_MIN STRG_OKTAL_b - #define MSG_MAX STRG_OKTAL_c - #define MSG_FACTOR STRG_OKTAL_d - #define MSG_PID_P STRG_OKTAL_e - #define MSG_PID_I STRG_OKTAL_f + PROGMEM Language_Str MSG_MAIN = _UxGT(".."); + PROGMEM Language_Str MSG_DISABLE_STEPPERS = STRG_C2_8; + PROGMEM Language_Str MSG_AUTO_HOME = STRG_C2_9; + PROGMEM Language_Str MSG_SET_HOME_OFFSETS = STRG_C2_a; + PROGMEM Language_Str MSG_PREHEAT_1 = STRG_C2_b; + PROGMEM Language_Str MSG_PREHEAT_2 = STRG_C3_8; + PROGMEM Language_Str MSG_COOLDOWN = STRG_C3_9; + 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) - #define WELCOME_MSG _UxGT("Language TEST") + 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 = 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") - #define MSG_PREPARE _UxGT("UTF8") - #define MSG_CONTROL _UxGT("ASCII") + #endif - //#define MSG_MAIN _UxGT("..") - #define MSG_DISABLE_STEPPERS STRG_D0_8 - #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 + #if ENABLED(CYRIL) + PROGMEM Language_Str WELCOME_MSG = _UxGT("Language TEST"); - #define MSG_MAIN STRG_OKTAL_2 - #define MSG_TEMPERATURE STRG_OKTAL_3 - #define MSG_MOTION STRG_OKTAL_4 - #define MSG_FILAMENT STRG_OKTAL_5 - #define MSG_CONTRAST STRG_OKTAL_6 - #define MSG_RESTORE_FAILSAFE STRG_OKTAL_7 + PROGMEM Language_Str MSG_WATCH = _UxGT("\001\002\003\004\005\006\007\010\011"); + PROGMEM Language_Str MSG_PREPARE = _UxGT("UTF8"); + PROGMEM Language_Str MSG_CONTROL = _UxGT("ASCII"); - #define MSG_NOZZLE STRG_OKTAL_8 - #define MSG_FAN_SPEED STRG_OKTAL_9 - #define MSG_AUTOTEMP STRG_OKTAL_a - #define MSG_MIN STRG_OKTAL_b - #define MSG_MAX STRG_OKTAL_c - #define MSG_FACTOR STRG_OKTAL_d - #define MSG_PID_P STRG_OKTAL_e - #define MSG_PID_I STRG_OKTAL_f + PROGMEM Language_Str MSG_MAIN = _UxGT(".."); + PROGMEM Language_Str MSG_DISABLE_STEPPERS = STRG_D0_8; + PROGMEM Language_Str MSG_AUTO_HOME = STRG_D0_9; + PROGMEM Language_Str MSG_SET_HOME_OFFSETS = STRG_D0_a; + PROGMEM Language_Str MSG_PREHEAT_1 = STRG_D0_b; + PROGMEM Language_Str MSG_PREHEAT_2 = STRG_D1_8; + PROGMEM Language_Str MSG_COOLDOWN = STRG_D1_9; + 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) - #define WELCOME_MSG _UxGT("Language TEST") + 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; - #define MSG_WATCH _UxGT("\001\002\003\004\005\006\007\010\011") - #define MSG_PREPARE _UxGT("UTF8") - #define MSG_CONTROL _UxGT("ASCII") + #endif - //#define MSG_MAIN _UxGT("..") - #define MSG_DISABLE_STEPPERS STRG_E382_8 - #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 + #if ENABLED(KANA) + PROGMEM Language_Str WELCOME_MSG = _UxGT("Language TEST"); - #define MSG_MAIN STRG_OKTAL_2 - #define MSG_TEMPERATURE STRG_OKTAL_3 - #define MSG_MOTION STRG_OKTAL_4 - #define MSG_FILAMENT STRG_OKTAL_5 - #define MSG_CONTRAST STRG_OKTAL_6 - #define MSG_RESTORE_FAILSAFE STRG_OKTAL_7 + PROGMEM Language_Str MSG_WATCH = _UxGT("\001\002\003\004\005\006\007\010\011"); + PROGMEM Language_Str MSG_PREPARE = _UxGT("UTF8"); + PROGMEM Language_Str MSG_CONTROL = _UxGT("ASCII"); - #define MSG_NOZZLE STRG_OKTAL_8 - #define MSG_FAN_SPEED STRG_OKTAL_9 - #define MSG_AUTOTEMP STRG_OKTAL_a - #define MSG_MIN STRG_OKTAL_b - #define MSG_MAX STRG_OKTAL_c - #define MSG_FACTOR STRG_OKTAL_d - #define MSG_PID_P STRG_OKTAL_e - #define MSG_PID_I STRG_OKTAL_f -#endif + PROGMEM Language_Str MSG_MAIN = _UxGT(".."); + PROGMEM Language_Str MSG_DISABLE_STEPPERS = STRG_E382_8; + PROGMEM Language_Str MSG_AUTO_HOME = STRG_E382_9; + PROGMEM Language_Str MSG_SET_HOME_OFFSETS = STRG_E382_a; + PROGMEM Language_Str MSG_PREHEAT_1 = STRG_E382_b; + PROGMEM Language_Str MSG_PREHEAT_2 = STRG_E383_8; + PROGMEM Language_Str MSG_COOLDOWN = STRG_E383_9; + PROGMEM Language_Str MSG_SWITCH_PS_OFF = STRG_E383_a; + 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 +} diff --git a/Marlin/src/lcd/language/language_tr.h b/Marlin/src/lcd/language/language_tr.h index e45c4cd8b7..26ec1e35fe 100644 --- a/Marlin/src/lcd/language/language_tr.h +++ b/Marlin/src/lcd/language/language_tr.h @@ -34,402 +34,484 @@ */ #define DISPLAY_CHARSET_ISO10646_TR -#define CHARSIZE 2 -#define THIS_LANGUAGES_SPECIAL_SYMBOLS _UxGT("İÖÇğüşöç³") -#define WELCOME_MSG MACHINE_NAME _UxGT(" hazır.") -#define MSG_BACK _UxGT("Geri") -#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ğı") +namespace Language_tr { + using namespace Language_en; // Inherit undefined strings from English -#define MSG_EXPECTED_PRINTER _UxGT("Yanlış Yazıcı") + constexpr uint8_t CHARSIZE = 2; + PROGMEM Language_Str LANGUAGE = _UxGT("Turkish"); -#if LCD_WIDTH >= 20 - #define MSG_INFO_PRINT_COUNT _UxGT("Baskı Sayısı") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Tamamlanan") - #define MSG_INFO_PRINT_TIME _UxGT("Toplam Baskı Süresi") - #define MSG_INFO_PRINT_LONGEST _UxGT("En Uzun Baskı Süresi") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Toplam Filaman") -#else - #define MSG_INFO_PRINT_COUNT _UxGT("Baskı") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Tamamlanan") - #define MSG_INFO_PRINT_TIME _UxGT("Süre") - #define MSG_INFO_PRINT_LONGEST _UxGT("En Uzun") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Filaman") -#endif -#define MSG_INFO_MIN_TEMP _UxGT("Min Sıc.") -#define MSG_INFO_MAX_TEMP _UxGT("Max Sıc.") -#define MSG_INFO_PSU _UxGT("Güç Kaynağı") -#define MSG_DRIVE_STRENGTH _UxGT("Sürücü Gücü") -#define MSG_DAC_PERCENT _UxGT("Sürücü %") -#define MSG_DAC_EEPROM_WRITE _UxGT("DAC EEPROM Yaz") -#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("BASKI DURAKLATILDI") -#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("FILAMAN YüKLE") -#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("FILAMAN ÇIKART") -#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("Seçenekler:") -#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Daha Fazla Tasviye") -#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Baskıyı sürdür") -#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Nozul: ") -#define MSG_RUNOUT_SENSOR _UxGT("Runout Sensörü") -#define MSG_ERR_HOMING_FAILED _UxGT("Sıfırlama Başarısız") -#define MSG_ERR_PROBING_FAILED _UxGT("Probing Başarısız") -#define 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 - #define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Baskıya devam etmek") - #define MSG_ADVANCED_PAUSE_WAITING_2 _UxGT("için Butona bas") - #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Filaman değişimi") - #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("için başlama") - #define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("bekleniyor") - #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Filamanı yükle") - #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("ve devam için") - #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("tuşa bas...") - #define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Nozulü Isıtmak için") - #define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("Butona Bas.") - #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Nozul Isınıyor") - #define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Lütfen Bekleyin...") - #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Filamanın çıkması") - #define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("bekleniyor") - #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Filamanın yüklenmesi") - #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("bekleniyor..") - #define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Filaman Temizlemesi") - #define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("için bekle") - #define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Filaman Temizlemesi") - #define MSG_FILAMENT_CHANGE_CONT_PURGE_2 _UxGT("bitirmek için tıkla") - #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Baskının devam ") - #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("etmesi için bekle") -#else // LCD_HEIGHT < 4 - // Up to 2 lines allowed - #define MSG_ADVANCED_PAUSE_WAITING_1 _UxGT("Sürdürmek İçin Tıkla") - #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Lütfen bekleyiniz...") - #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Yükle ve bas") - #define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Isıtmak için Tıkla") - #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Isınıyor...") - #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Çıkartılıyor...") - #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Yüklüyor...") - #define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Temizleniyor...") - #define MSG_FILAMENT_CHANGE_CONT_PURGE_1 _UxGT("Bitirmek için Tıkla") - #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Sürdürülüyor...") -#endif // LCD_HEIGHT < 4 + PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" hazır."); + PROGMEM Language_Str MSG_BACK = _UxGT("Geri"); + PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("SD K. Yerleştirildi."); + PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("SD Kart Çıkarıldı."); + PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("Enstops"); // Max length 8 characters + PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("Yazılımsal Endstops"); + PROGMEM Language_Str MSG_MAIN = _UxGT("Ana"); + PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("Gelişmiş Ayarlar"); + PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("Yapılandırma"); + PROGMEM Language_Str MSG_AUTOSTART = _UxGT("Oto. Başlat"); + PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("Motorları Durdur"); + PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("Hata Ayıklama"); + PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("Durum Çubuğu Testi"); + PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("Eksenleri Sıfırla"); + PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("X Sıfırla"); + PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Y Sıfırla"); + PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Z Sıfırla"); + PROGMEM Language_Str MSG_AUTO_Z_ALIGN = _UxGT("Oto. Z-Hizalama"); + PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("XYZ Sıfırlanıyor"); + PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("Başlatmak için tıkla"); + PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("Sonraki Nokta"); + PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("Hizalama Tamam!"); + PROGMEM Language_Str MSG_Z_FADE_HEIGHT = _UxGT("Kaçınma Yüksekliği"); + PROGMEM Language_Str MSG_SET_HOME_OFFSETS = _UxGT("Offset Ayarla"); + PROGMEM Language_Str MSG_HOME_OFFSETS_APPLIED = _UxGT("Offset Tamam"); + PROGMEM Language_Str MSG_SET_ORIGIN = _UxGT("Sıfır Belirle"); + PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL; + PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL " " LCD_STR_N0; + PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL " " LCD_STR_N1; + 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; + PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL " " LCD_STR_N4; + PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL " " LCD_STR_N5; + PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("Ön Isınma ") PREHEAT_1_LABEL _UxGT(" Nozul"); + PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL _UxGT(" Nozul ") LCD_STR_N0; + PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL _UxGT(" Nozul ") LCD_STR_N1; + PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL _UxGT(" Nozul ") LCD_STR_N2; + PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL _UxGT(" Nozul ") LCD_STR_N3; + PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL _UxGT(" Nozul ") LCD_STR_N4; + PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("Ön Isınma ") PREHEAT_1_LABEL _UxGT(" Nozul ") LCD_STR_N5; + PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("Ön Isınma ") PREHEAT_1_LABEL _UxGT(" Tüm"); + PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("Ön Isınma ") PREHEAT_1_LABEL _UxGT(" Tabla"); + PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("Ön Isınma ") PREHEAT_1_LABEL _UxGT(" Ayarlar"); + PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL; + PROGMEM Language_Str MSG_PREHEAT_2_H0 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL " " LCD_STR_N0; + PROGMEM Language_Str MSG_PREHEAT_2_H1 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL " " LCD_STR_N1; + PROGMEM Language_Str MSG_PREHEAT_2_H2 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL " " LCD_STR_N2; + PROGMEM Language_Str MSG_PREHEAT_2_H3 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL " " LCD_STR_N3; + PROGMEM Language_Str MSG_PREHEAT_2_H4 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL " " LCD_STR_N4; + PROGMEM Language_Str MSG_PREHEAT_2_H5 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL " " LCD_STR_N5; + PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("Ön Isınma ") PREHEAT_2_LABEL _UxGT(" Nozul"); + PROGMEM Language_Str MSG_PREHEAT_2_END_E0 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL _UxGT(" Nozul ") LCD_STR_N0; + PROGMEM Language_Str MSG_PREHEAT_2_END_E1 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL _UxGT(" Nozul ") LCD_STR_N1; + PROGMEM Language_Str MSG_PREHEAT_2_END_E2 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL _UxGT(" Nozul ") LCD_STR_N2; + PROGMEM Language_Str MSG_PREHEAT_2_END_E3 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL _UxGT(" Nozul ") LCD_STR_N3; + PROGMEM Language_Str MSG_PREHEAT_2_END_E4 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL _UxGT(" Nozul ") LCD_STR_N4; + PROGMEM Language_Str MSG_PREHEAT_2_END_E5 = _UxGT("Ön Isınma ") PREHEAT_2_LABEL _UxGT(" Nozul ") LCD_STR_N5; + PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Ön Isınma ") PREHEAT_2_LABEL _UxGT(" Tüm"); + PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Ön Isınma ") PREHEAT_2_LABEL _UxGT(" Tabla"); + PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Ön Isınma ") PREHEAT_2_LABEL _UxGT(" Ayarlar"); + PROGMEM Language_Str MSG_PREHEAT_CUSTOM = _UxGT("Özel Ön Isınma"); + PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Soğut"); + PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Gücü Aç"); + PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Gücü Kapat"); + PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Ekstrüzyon"); + PROGMEM Language_Str MSG_RETRACT = _UxGT("Geri Çek"); + PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Eksen Hareketleri"); + PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Tabla Hizalama"); + PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Tabla Hizası"); + 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("Işıklar"); + PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("Işı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("Açı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ı Aç"); + 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 +} diff --git a/Marlin/src/lcd/language/language_uk.h b/Marlin/src/lcd/language/language_uk.h index 12fb53e672..769d1c97ef 100644 --- a/Marlin/src/lcd/language/language_uk.h +++ b/Marlin/src/lcd/language/language_uk.h @@ -30,213 +30,304 @@ */ #define DISPLAY_CHARSET_ISO10646_5 -#define CHARSIZE 2 -#define WELCOME_MSG MACHINE_NAME _UxGT(" готовий.") -#define MSG_MEDIA_INSERTED _UxGT("Картка вставлена") -#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("Калібр. Центру") +namespace Language_uk { + using namespace Language_en; // Inherit undefined strings from English -#define MSG_INFO_MENU _UxGT("Про принтер") -#define MSG_INFO_PRINTER_MENU _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("Підсвітка") + constexpr uint8_t CHARSIZE = 2; + PROGMEM Language_Str LANGUAGE = _UxGT("Ukranian"); -#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("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_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("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("Eкроків/мм"); + 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 - #define MSG_INFO_PRINT_COUNT _UxGT("К-сть друків") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Завершено") - #define MSG_INFO_PRINT_TIME _UxGT("Весь час друку") - #define MSG_INFO_PRINT_LONGEST _UxGT("Найдовший час") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Екструдовано") -#else - #define MSG_INFO_PRINT_COUNT _UxGT("Друків") - #define MSG_INFO_COMPLETED_PRINTS _UxGT("Завершено") - #define MSG_INFO_PRINT_TIME _UxGT("Загалом") - #define MSG_INFO_PRINT_LONGEST _UxGT("Найдовший") - #define MSG_INFO_PRINT_FILAMENT _UxGT("Ексдруд.") -#endif + PROGMEM Language_Str MSG_INFO_MENU = _UxGT("Про принтер"); + PROGMEM Language_Str MSG_INFO_PRINTER_MENU = _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("Підсвітка"); -#define MSG_INFO_MIN_TEMP _UxGT("Мін Темп.") -#define MSG_INFO_MAX_TEMP _UxGT("Макс Темп.") -#define MSG_INFO_PSU _UxGT("Джерело жив.") + PROGMEM Language_Str MSG_EXPECTED_PRINTER = _UxGT("Неправильний принтер"); -#define MSG_DRIVE_STRENGTH _UxGT("Сила мотору") -#define MSG_DAC_PERCENT _UxGT("% мотору") -#define MSG_DAC_EEPROM_WRITE _UxGT("Запис ЦАП на ПЗП") + #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 -#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 - // Up to 3 lines allowed - #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_INSERT_1 _UxGT("Вставте волокно") - #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("та натисніть для") - #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("продовження...") - #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Зачекайте на") - #define MSG_FILAMENT_CHANGE_LOAD_2 _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 - // Up to 2 lines allowed - #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_LOAD_1 _UxGT("Ввід...") - #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Відновлення...") -#endif // LCD_HEIGHT < 4 + PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Сила мотору"); + PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("% мотору"); + PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Запис ЦАП на ПЗП"); + + PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Відновити друк"); + + #if LCD_HEIGHT >= 4 + // Up to 3 lines allowed + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Зачекайте на", "початок заміни", "волокна")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Зачекайте на", "вивід волокна")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Вставте волокно", "та натисніть для", "продовження...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Зачекайте на", "ввід волокна")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_3_LINE("Зачекайте на", "відновлення", "друку")); + #else + // Up to 2 lines allowed + 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_LOAD = _UxGT(MSG_1_LINE("Ввід...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Відновлення...")); + #endif +} diff --git a/Marlin/src/lcd/language/language_vi.h b/Marlin/src/lcd/language/language_vi.h index b1520274fd..abb96a58a1 100644 --- a/Marlin/src/lcd/language/language_vi.h +++ b/Marlin/src/lcd/language/language_vi.h @@ -28,410 +28,518 @@ * 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 -#define MSG_BACK _UxGT("Trở lại") // Back -#define MSG_SD_INSERTED _UxGT("Thẻ được cắm vào") // Card inserted -#define MSG_SD_REMOVED _UxGT("Thẻ được rút ra") -#define MSG_LCD_ENDSTOPS _UxGT("Công tắc") // Endstops - công tắc hành trình -#define MSG_LCD_SOFT_ENDSTOPS _UxGT("Công tắc mềm") // soft Endstops -#define MSG_MAIN _UxGT("Chính") // Main -#define MSG_ADVANCED_SETTINGS _UxGT("Thiết lập cấp cao") // Advanced Settings -#define MSG_CONFIGURATION _UxGT("Cấu hình") // Configuration -#define MSG_AUTOSTART _UxGT("Khởi chạy tự động") // Autostart -#define MSG_DISABLE_STEPPERS _UxGT("Tắt động cơ bước") // Disable steppers -#define MSG_DEBUG_MENU _UxGT("Menu gỡ lỗi") // Debug Menu -#define MSG_PROGRESS_BAR_TEST _UxGT("Kiểm tra tiến độ") // Progress bar test -#define MSG_AUTO_HOME _UxGT("Về nhà tự động") // Auto home -#define MSG_AUTO_HOME_X _UxGT("Về nhà X") // home x -#define MSG_AUTO_HOME_Y _UxGT("Về nhà Y") // home y -#define MSG_AUTO_HOME_Z _UxGT("Về nhà Z") -#define MSG_AUTO_Z_ALIGN _UxGT("Chỉnh canh Z tự động") -#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 + PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("Điều khiển LED"); // LED Control + PROGMEM Language_Str MSG_LEDS = _UxGT("Đèn"); // Lights + PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("Đèn định sẵn"); // Light Presets + PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("Đỏ"); // Red + PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("Cam"); // Orange + PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("Vàng"); // Yellow + PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("Xanh Lá"); // Green + PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("Xanh"); // Blue + PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("Xanh Đậm"); // Indigo + PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("Tím"); // Violet + PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("Trắng"); // White + PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("Mặc định"); // Default + PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("Đèn Tự Chọn"); // Custom Lights + PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("Cường Độ Đỏ"); // Red Intensity + PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("Cường Độ Xanh Lá"); // Green Intensity + PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("Cường Độ Xanh"); // Blue Intensity + PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("Cường Độ Trắng"); // White Intensity + PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("độ sáng"); // Brightness -#define MSG_LED_CONTROL _UxGT("Điều khiển LED") // LED Control -#define MSG_LEDS _UxGT("Đèn") // Lights -#define MSG_LED_PRESETS _UxGT("Đèn định sẵn") // Light Presets -#define MSG_SET_LEDS_RED _UxGT("Đỏ") // Red -#define MSG_SET_LEDS_ORANGE _UxGT("Cam") // Orange -#define MSG_SET_LEDS_YELLOW _UxGT("Vàng") // Yellow -#define MSG_SET_LEDS_GREEN _UxGT("Xanh Lá") // Green -#define MSG_SET_LEDS_BLUE _UxGT("Xanh") // Blue -#define MSG_SET_LEDS_INDIGO _UxGT("Xanh Đậm") // Indigo -#define MSG_SET_LEDS_VIOLET _UxGT("Tím") // Violet -#define MSG_SET_LEDS_WHITE _UxGT("Trắng") // White -#define MSG_SET_LEDS_DEFAULT _UxGT("Mặc định") // Default -#define MSG_CUSTOM_LEDS _UxGT("Đèn Tự Chọn") // Custom Lights -#define MSG_INTENSITY_R _UxGT("Cường Độ Đỏ") // Red Intensity -#define MSG_INTENSITY_G _UxGT("Cường Độ Xanh Lá") // Green Intensity -#define MSG_INTENSITY_B _UxGT("Cường Độ Xanh") // Blue Intensity -#define MSG_INTENSITY_W _UxGT("Cường Độ Trắng") // White Intensity -#define MSG_LED_BRIGHTNESS _UxGT("độ sáng") // Brightness + PROGMEM Language_Str MSG_MOVING = _UxGT("Di chuyển..."); // Moving + PROGMEM Language_Str MSG_FREE_XY = _UxGT("Giải phóng XY"); // Free XY + PROGMEM Language_Str MSG_MOVE_X = _UxGT("Di chuyển X"); // Move X + PROGMEM Language_Str MSG_MOVE_Y = _UxGT("Di chuyển Y"); + PROGMEM Language_Str MSG_MOVE_Z = _UxGT("Di chuyển Z"); + PROGMEM Language_Str MSG_MOVE_E = _UxGT("Máy đùn"); // Extruder + PROGMEM Language_Str MSG_MOVE_E0 = _UxGT("Máy đùn ") LCD_STR_E0; // Extruder + PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("Máy đùn ") LCD_STR_E1; // Extruder + PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("Máy đùn ") LCD_STR_E2; // Extruder + PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("Máy đùn ") LCD_STR_E3; // Extruder + PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("Máy đùn ") LCD_STR_E4; // Extruder + PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("Máy đùn ") LCD_STR_E5; // Extruder + PROGMEM Language_Str MSG_HOTEND_TOO_COLD = _UxGT("Đầu nóng quá lạnh"); // Hotend too cold + PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("Di chuyển 0.1mm"); // Move 0.1mm + PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("Di chuyển 1mm"); // Move 1mm + PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("Di chuyển 10mm"); // Move 10mm + PROGMEM Language_Str MSG_SPEED = _UxGT("Tốc độ"); // Speed + 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 -#define MSG_MOVE_X _UxGT("Di chuyển X") // Move X -#define MSG_MOVE_Y _UxGT("Di chuyển Y") -#define MSG_MOVE_Z _UxGT("Di chuyển Z") -#define MSG_MOVE_E _UxGT("Máy đùn") // Extruder -#define MSG_HOTEND_TOO_COLD _UxGT("Đầu nóng quá lạnh") // Hotend too cold -#define MSG_MOVE_01MM _UxGT("Di chuyển 0.1mm") // Move 0.1mm -#define MSG_MOVE_1MM _UxGT("Di chuyển 1mm") // Move 1mm -#define MSG_MOVE_10MM _UxGT("Di chuyển 10mm") // Move 10mm -#define MSG_SPEED _UxGT("Tốc độ") // Speed -#define MSG_BED_Z _UxGT("Z Bàn") -#define MSG_NOZZLE _UxGT("Đầu phun") // Nozzle -#define MSG_BED _UxGT("Bàn") // bed -#define MSG_FAN_SPEED _UxGT("Tốc độ quạt") // fan speed -#define MSG_EXTRA_FAN_SPEED _UxGT("Tốc độ quạt phụ") // Extra fan speed -#define MSG_FLOW _UxGT("Lưu Lượng") -#define MSG_CONTROL _UxGT("Điều khiển") // Control -#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Đa") // min -#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Thiểu") -#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" Hệ Số") // factor -#define MSG_AUTOTEMP _UxGT("Nhiệt độ tự động") // Autotemp -#define MSG_LCD_ON _UxGT("Bật") // on -#define MSG_LCD_OFF _UxGT("Tắt") // 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("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") + // + // 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_ADVANCED_PAUSE_WAITING = _UxGT(MSG_2_LINE("Nhấn nút", "để tiếp tục in")); // Press button to resume print + 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 + 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 // + 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 + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("Đầu phun đang nóng lên", "Xin chờ...")); // Nozzle heating Please wait + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Chờ tro", "dây nhựa ra")); // Wait for filament unload + PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Chờ tro", "dây nhựa vào")); // Wait for filament load + PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_2_LINE("Chờ tro", "xả dây nhựa")); // wait for filament purge + 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 + PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("Chờ tro in", "tiếp tục...")); // Wait for print to resume + #else // LCD_HEIGHT < 4 + PROGMEM Language_Str MSG_ADVANCED_PAUSE_WAITING = _UxGT(MSG_1_LINE("Nhấn nút để tiếp tục")); // Click to continue + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Xin chờ...")); + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Chèn và nhấn")); // Insert and Click + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_1_LINE("Nhấn để sưởi")); // Click to heat + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("Đang sưởi nóng")); // Heating + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Đang dỡ ra...")); // Ejecting + PROGMEM Language_Str MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Đang nạp...")); // Loading + PROGMEM Language_Str MSG_FILAMENT_CHANGE_PURGE = _UxGT(MSG_1_LINE("Đang xả...")); // Purging + PROGMEM Language_Str MSG_FILAMENT_CHANGE_CONT_PURGE = _UxGT(MSG_1_LINE("Nhấn nút để kết thúc")); // Click to finish + PROGMEM Language_Str MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Đang tiếp tục...")); // Resuming + #endif // LCD_HEIGHT < 4 -// -// 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_ADVANCED_PAUSE_WAITING_1 _UxGT("Nhấn nút") // Press button - #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 + PROGMEM Language_Str MSG_TMC_DRIVERS = _UxGT("Trình điều khiển TMC"); // TMC drivers + PROGMEM Language_Str MSG_TMC_CURRENT = _UxGT("Dòng điện trình điều khiển"); // Driver current + 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 + PROGMEM Language_Str MSG_TMC_STEPPING_MODE = _UxGT("Chế độ từng bước"); // Stepping mode + PROGMEM Language_Str MSG_TMC_STEALTH_ENABLED = _UxGT("CắtTàngHình được kích hoạt"); // StealthChop enabled +} diff --git a/Marlin/src/lcd/language/language_zh_CN.h b/Marlin/src/lcd/language/language_zh_CN.h index ad0b1272df..a9286b0f48 100644 --- a/Marlin/src/lcd/language/language_zh_CN.h +++ b/Marlin/src/lcd/language/language_zh_CN.h @@ -28,357 +28,463 @@ * 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." -#define MSG_BACK _UxGT("返回") // ”Back“ -#define MSG_MEDIA_INSERTED _UxGT("存储卡已插入") //"Card inserted" -#define MSG_MEDIA_REMOVED _UxGT("存储卡被拔出") //"Card removed" -#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("平台调平XYZ归原位") //"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_Z_FADE_HEIGHT _UxGT("淡出高度") // "Fade Height" -#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_2_LABEL" -#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ") //MSG_PREHEAT_1 " " -#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" 全部") //MSG_PREHEAT_1 " All" -#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" 热床") //MSG_PREHEAT_1 " Bed" -#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" 设置") //MSG_PREHEAT_1 " conf" -#define MSG_PREHEAT_2 _UxGT("预热" PREHEAT_2_LABEL) //"Preheat PREHEAT_2_LABEL" -#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ") //MSG_PREHEAT_2 " " -#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" 全部") //MSG_PREHEAT_2 " All" -#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" 热床") //MSG_PREHEAT_2 " Bed" -#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" 设置") //MSG_PREHEAT_2 " 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_LEVEL_CORNERS _UxGT("调平边角") // "Level corners" + PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT("已就绪."); //" ready." + PROGMEM Language_Str MSG_BACK = _UxGT("返回"); // ”Back“ + PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("存储卡已插入"); //"Card inserted" + PROGMEM Language_Str MSG_MEDIA_REMOVED = _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("平台调平XYZ归原位"); //"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_1_LABEL; //"Preheat PREHEAT_2_LABEL" + PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("预热 ") PREHEAT_1_LABEL " " LCD_STR_N0; //"Preheat PREHEAT_2_LABEL" + PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("预热 ") PREHEAT_1_LABEL " " LCD_STR_N1; //"Preheat PREHEAT_2_LABEL" + PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("预热 ") PREHEAT_1_LABEL " " LCD_STR_N2; //"Preheat PREHEAT_2_LABEL" + PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("预热 ") PREHEAT_1_LABEL " " LCD_STR_N3; //"Preheat PREHEAT_2_LABEL" + PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("预热 ") PREHEAT_1_LABEL " " LCD_STR_N4; //"Preheat PREHEAT_2_LABEL" + PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("预热 ") PREHEAT_1_LABEL " " LCD_STR_N5; //"Preheat PREHEAT_2_LABEL" + PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 喷嘴"); //MSG_PREHEAT_1 " " + PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 喷嘴 ") LCD_STR_N0; //MSG_PREHEAT_1 " " + PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 喷嘴 ") LCD_STR_N1; //MSG_PREHEAT_1 " " + PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 喷嘴 ") LCD_STR_N2; //MSG_PREHEAT_1 " " + PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 喷嘴 ") LCD_STR_N3; //MSG_PREHEAT_1 " " + PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 喷嘴 ") LCD_STR_N4; //MSG_PREHEAT_1 " " + PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 喷嘴 ") LCD_STR_N5; //MSG_PREHEAT_1 " " + PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 全部"); //MSG_PREHEAT_1 " All" + PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 热床"); //MSG_PREHEAT_1 " Bed" + PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("预热 ") PREHEAT_1_LABEL _UxGT(" 设置"); //MSG_PREHEAT_1 " conf" + PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("预热 ") PREHEAT_2_LABEL; //"Preheat PREHEAT_2_LABEL" + 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" -#define MSG_EDIT_MESH _UxGT("编辑网格") // "Edit Mesh" -#define MSG_EDITING_STOPPED _UxGT("网格编辑已停止") // "Mesh Editing Stopped" -#define MSG_USER_MENU _UxGT("定制命令") // "Custom Commands" + PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("下个边角"); // "Next corner" + PROGMEM Language_Str MSG_EDIT_MESH = _UxGT("编辑网格"); // "Edit Mesh" + PROGMEM Language_Str MSG_EDITING_STOPPED = _UxGT("网格编辑已停止"); // "Mesh Editing Stopped" + PROGMEM Language_Str MSG_USER_MENU = _UxGT("定制命令"); // "Custom Commands" -#define MSG_UBL_DOING_G29 _UxGT("执行G29") // "Doing G29" -#define MSG_UBL_TOOLS _UxGT("UBL工具") // "UBL Tools" -#define MSG_UBL_LEVEL_BED _UxGT("统一热床调平(UBL)") // "Unified Bed Leveling" -#define MSG_UBL_MANUAL_MESH _UxGT("手工创设网格") // "Manually Build Mesh" -#define MSG_UBL_BC_INSERT _UxGT("放置垫片并测量") // "Place shim & measure" -#define MSG_UBL_BC_INSERT2 _UxGT("测量") // "Measure" -#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") // "Activate UBL" -#define MSG_UBL_DEACTIVATE_MESH _UxGT("关闭UBL") // "Deactivate UBL" -#define MSG_UBL_SET_TEMP_BED _UxGT("设置热床温度") // "Bed Temp" -#define MSG_UBL_SET_TEMP_HOTEND _UxGT("热端温度") // "Hotend Temp" -#define MSG_UBL_MESH_EDIT _UxGT("网格编辑") // "Mesh Edit" -#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("完成编辑网格") // "Done Editing Mesh" -#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("创设客户网格") // "Build Custom Mesh" -#define MSG_UBL_BUILD_MESH_MENU _UxGT("创设网格") // "Build Mesh" -#define MSG_UBL_BUILD_MESH_M1 _UxGT("创设" PREHEAT_1_LABEL "网格") // "Build PREHEAT_1_LABEL Mesh" -#define MSG_UBL_BUILD_MESH_M2 _UxGT("创设" PREHEAT_2_LABEL "网格") // "Build PREHEAT_2_LABEL Mesh" -#define MSG_UBL_BUILD_COLD_MESH _UxGT("创设冷网格") // "Build Cold Mesh" -#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("调整网格高度") // "Adjust Mesh Height" -#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("高度合计") // "Height Amount" -#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("批准网格") // "Validate Mesh" -#define MSG_UBL_VALIDATE_MESH_M1 _UxGT("批准" PREHEAT_1_LABEL "网格") // "Validate PREHEAT_1_LABEL Mesh" -#define MSG_UBL_VALIDATE_MESH_M2 _UxGT("批准" PREHEAT_2_LABEL "网格") // "Validate PREHEAT_2_LABEL Mesh" -#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("批准客户网格") // "Validate Custom Mesh" -#define MSG_UBL_CONTINUE_MESH _UxGT("继续热床网格") // "Continue Bed Mesh" -#define MSG_UBL_MESH_LEVELING _UxGT("网格调平") // "Mesh Leveling" -#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("三点调平") // "3-Point Leveling" -#define MSG_UBL_GRID_MESH_LEVELING _UxGT("格子网格调平") // "Grid Mesh Leveling" -#define MSG_UBL_MESH_LEVEL _UxGT("调平网格") // "Level Mesh" -#define MSG_UBL_SIDE_POINTS _UxGT("边点") // "Side Points" -#define MSG_UBL_MAP_TYPE _UxGT("图类型") // "Map Type" -#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("输出到CSV") // "Output for CSV" -#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("输出到备份") // "Off Printer Backup" -#define MSG_UBL_INFO_UBL _UxGT("输出UBL信息") // "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("网格 %i 已装载") // "Mesh %i loaded" -#define MSG_MESH_SAVED _UxGT("网格 %i 已保存") // "Mesh %i saved" -#define MSG_UBL_NO_STORAGE _UxGT("没有存储") // "No storage" -#define MSG_UBL_SAVE_ERROR _UxGT("错误: UBL保存") // "Err: UBL Save" -#define MSG_UBL_RESTORE_ERROR _UxGT("错误: UBL还原") // "Err: UBL Restore" -#define 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_DOING_G29 = _UxGT("执行G29"); // "Doing G29" + PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("UBL工具"); // "UBL Tools" + PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("统一热床调平(UBL)"); // "Unified Bed Leveling" + 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("激活UBL"); // "Activate UBL" + PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("关闭UBL"); // "Deactivate UBL" + PROGMEM Language_Str MSG_UBL_SET_TEMP_BED = _UxGT("设置热床温度"); // "Bed Temp" + PROGMEM Language_Str MSG_UBL_SET_TEMP_HOTEND = _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("创设 ") PREHEAT_1_LABEL _UxGT(" 网格"); // "Build PREHEAT_1_LABEL Mesh" + PROGMEM Language_Str MSG_UBL_BUILD_MESH_M2 = _UxGT("创设 ") PREHEAT_2_LABEL _UxGT(" 网格"); // "Build PREHEAT_2_LABEL Mesh" + 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("批准 ") PREHEAT_1_LABEL _UxGT(" 网格"); // "Validate PREHEAT_1_LABEL Mesh" + PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M2 = _UxGT("批准 ") PREHEAT_2_LABEL _UxGT(" 网格"); // "Validate PREHEAT_2_LABEL Mesh" + PROGMEM Language_Str MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("批准客户网格"); // "Validate Custom Mesh" + 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("输出到CSV"); // "Output for CSV" + PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_BACKUP = _UxGT("输出到备份"); // "Off Printer Backup" + PROGMEM Language_Str MSG_UBL_INFO_UBL = _UxGT("输出UBL信息"); // "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 网格 %i 已装载"); // "Mesh %i loaded" + PROGMEM Language_Str MSG_MESH_SAVED = _UxGT("M117 网格 %i 已保存"); // "Mesh %i saved" + PROGMEM Language_Str MSG_UBL_NO_STORAGE = _UxGT("没有存储"); // "No storage" + PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("错误: UBL保存"); // "Err: UBL Save" + PROGMEM Language_Str MSG_UBL_RESTORE_ERROR = _UxGT("错误: UBL还原"); // "Err: UBL Restore" + PROGMEM Language_Str MSG_UBL_Z_OFFSET_STOPPED = _UxGT("Z偏移已停止"); // "Z-Offset Stopped" + 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") -#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") + PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("灯管控制"); // "LED Control") + PROGMEM Language_Str MSG_LEDS = _UxGT("灯"); // "Lights") + PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("灯预置"); // "Light Presets") + PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("红"); // "Red") + PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("橙"); // "Orange") + PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("黄"); // "Yellow") + PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("绿"); // "Green") + PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("蓝"); // "Blue") + PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("青"); // "Indigo") + PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("紫"); // "Violet") + PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("白"); // "White") + PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("缺省"); // "Default") + PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("定制灯"); // "Custom Lights") + PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("红饱和度"); // "Red Intensity") + PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("绿饱和度"); // "Green Intensity") + PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("蓝饱和度"); // "Blue Intensity") + PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("白饱和度"); // "White Intensity") + PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("亮度"); // "Brightness") -#define MSG_MOVING _UxGT("移动 ...") // "Moving...") -#define MSG_FREE_XY _UxGT("释放 XY") // "Free XY") -#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("移动 %s mm") //"Move 0.025mm" -#define MSG_MOVE_01MM _UxGT("移动 0.1 mm") //"Move 0.1mm" -#define MSG_MOVE_1MM _UxGT("移动 1 mm") //"Move 1mm" -#define MSG_MOVE_10MM _UxGT("移动 10 mm") //"Move 10mm" -#define MSG_SPEED _UxGT("速率") //"Speed" -#define MSG_BED_Z _UxGT("热床Z") //"Bed Z" -#define MSG_NOZZLE _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 喷嘴") //"Nozzle" 噴嘴 -#define MSG_BED _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 热床") //"Bed" -#define MSG_FAN_SPEED _UxGT("风扇速率") //"Fan speed" -#define MSG_EXTRA_FAN_SPEED _UxGT("额外风扇速率") // "Extra fan speed" -#define MSG_FLOW _UxGT("挤出速率") //"Flow" -#define MSG_CONTROL _UxGT("控制") //"Control" -#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 最小") //" " LCD_STR_THERMOMETER " Min" -#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 最大") //" " LCD_STR_THERMOMETER " Max" -#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 因数") //" " LCD_STR_THERMOMETER " 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") //"PID-P" -#define MSG_PID_I _UxGT("PID-I") //"PID-I" -#define MSG_PID_D _UxGT("PID-D") //"PID-D" -#define MSG_PID_C _UxGT("PID-C") //"PID-C" -#define MSG_SELECT _UxGT("选择") //"Select" -#define MSG_ACC _UxGT("加速度") //"Accel" acceleration -#define MSG_JERK _UxGT("抖动速率") // "Jerk" -#if IS_KINEMATIC - #define MSG_VA_JERK _UxGT("A轴抖动速率") //"Va-jerk" - #define MSG_VB_JERK _UxGT("B轴抖动速率") //"Vb-jerk" - #define MSG_VC_JERK _UxGT("C轴抖动速率") //"Vc-jerk" -#else - #define MSG_VA_JERK _UxGT("X轴抖动速率") //"Vx-jerk" - #define MSG_VB_JERK _UxGT("Y轴抖动速率") //"Vy-jerk" - #define MSG_VC_JERK _UxGT("Z轴抖动速率") //"Vz-jerk" -#endif -#define MSG_VE_JERK _UxGT("挤出机抖动速率") //"Ve-jerk" -#define MSG_VELOCITY _UxGT("速度") // "Velocity" -#define MSG_VMAX _UxGT("最大进料速率") //"Vmax " max_feedrate_mm_s -#define MSG_VMIN _UxGT("最小进料速率") //"Vmin" min_feedrate_mm_s -#define MSG_VTRAV_MIN _UxGT("最小移动速率") //"VTrav min" min_travel_feedrate_mm_s, (target) speed of the move -#define MSG_ACCELERATION _UxGT("加速度") // "Acceleration" -#define MSG_AMAX _UxGT("最大打印加速度") //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves -#define MSG_A_RETRACT _UxGT("收进加速度") //"A-retract" retract_acceleration, E acceleration in mm/s^2 for retracts -#define MSG_A_TRAVEL _UxGT("非打印移动加速度") //"A-travel" travel_acceleration, X, Y, Z acceleration in mm/s^2 for travel (non printing) moves -#define MSG_STEPS_PER_MM _UxGT("轴步数/mm") //"Steps/mm" axis_steps_per_mm, axis steps-per-unit G92 -#if IS_KINEMATIC - #define MSG_ASTEPS _UxGT("A轴步数/mm") //"Asteps/mm" - #define MSG_BSTEPS _UxGT("B轴步数/mm") //"Bsteps/mm" - #define MSG_CSTEPS _UxGT("C轴步数/mm") //"Csteps/mm" -#else - #define MSG_ASTEPS _UxGT("X轴步数/mm") //"Xsteps/mm" - #define MSG_BSTEPS _UxGT("Y轴步数/mm") //"Ysteps/mm" - #define MSG_CSTEPS _UxGT("Z轴步数/mm") //"Zsteps/mm" -#endif -#define MSG_ESTEPS _UxGT("挤出机步数/mm") //"Esteps/mm" -#define MSG_E0_STEPS _UxGT("挤出机1步数/mm") //"E1steps/mm" -#define MSG_E1_STEPS _UxGT("挤出机2步数/mm") //"E2steps/mm" -#define MSG_E2_STEPS _UxGT("挤出机3步数/mm") //"E3steps/mm" -#define MSG_E3_STEPS _UxGT("挤出机4步数/mm") //"E4steps/mm" -#define MSG_E4_STEPS _UxGT("挤出机5步数/mm") //"E5steps/mm" -#define MSG_E5_STEPS _UxGT("挤出机6步数/mm") //"E6steps/mm" -#define MSG_TEMPERATURE _UxGT("温度") //"Temperature" -#define MSG_MOTION _UxGT("运动") //"Motion" -#define MSG_FILAMENT _UxGT("丝料测容") //"Filament" menu_advanced_filament -#define MSG_VOLUMETRIC_ENABLED _UxGT("测容积mm³") //"E in mm3" volumetric_enabled -#define MSG_FILAMENT_DIAM _UxGT("丝料直径") //"Fil. Dia." -#define MSG_FILAMENT_UNLOAD _UxGT("卸载 mm") // "Unload mm" -#define MSG_FILAMENT_LOAD _UxGT("装载 mm") // "Load mm" -#define MSG_ADVANCE_K _UxGT("Advance K") // "Advance K" -#define MSG_CONTRAST _UxGT("LCD对比度") //"LCD contrast" -#define MSG_STORE_EEPROM _UxGT("保存设置") //"Store memory" -#define MSG_LOAD_EEPROM _UxGT("装载设置") //"Load memory" -#define MSG_RESTORE_FAILSAFE _UxGT("恢复安全值") //"Restore failsafe" -#define MSG_INIT_EEPROM _UxGT("初始化设置") // "Initialize EEPROM" -#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("点击继续 ...") //"Click to resume..." -#define MSG_PRINT_PAUSED _UxGT("暫停打印") // "Print paused" -#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" retract_length, retract length (positive mm) -#define MSG_CONTROL_RETRACT_SWAP _UxGT("换手回抽长度mm") //"Swap Re.mm" swap_retract_length, swap retract length (positive mm), for extruder change -#define MSG_CONTROL_RETRACTF _UxGT("回抽速率mm/s") //"Retract V" retract_feedrate_mm_s, feedrate for retracting (mm/s) -#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Hop mm") //"Hop mm" retract_zraise, retract Z-lift -#define MSG_CONTROL_RETRACT_RECOVER _UxGT("回抽恢复长度mm") //"UnRet +mm" retract_recover_extra, additional recover length (mm, added to retract length when recovering) -#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) -#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("回抽恢复后进料速率mm/s") //"UnRet V" retract_recover_feedrate_mm_s, feedrate for recovering from retraction (mm/s) -#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V") // "S UnRet V" -#define MSG_AUTORETRACT _UxGT("自动抽回") //"AutoRetr." autoretract_enabled, -#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探针在热床之外") //"Z probe out. bed" Z probe is not within the physical limits -#define MSG_SKEW_FACTOR _UxGT("偏斜因数") // "Skew Factor" -#define MSG_BLTOUCH _UxGT("BLTouch") // "BLTouch" -#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch 自检") // "BLTouch Self-Test" -#define MSG_BLTOUCH_RESET _UxGT("重置BLTouch") // "Reset BLTouch" -#define MSG_BLTOUCH_DEPLOY _UxGT("部署BLTouch") // "Deploy BLTouch" -#define MSG_BLTOUCH_STOW _UxGT("装载BLTouch") // "Stow 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" lcd_babystep_x, Babystepping enables the user to control the axis in tiny amounts -#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("错误:REDUNDANT TEMP") //"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_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_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("统一热床调平(UBL)") // "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" + PROGMEM Language_Str MSG_MOVING = _UxGT("移动 ..."); // "Moving...") + PROGMEM Language_Str MSG_FREE_XY = _UxGT("释放 XY"); // "Free XY") + PROGMEM Language_Str MSG_MOVE_X = _UxGT("移动X"); //"Move X" + 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_E0 = _UxGT("挤出机 ") LCD_STR_E0; //"Extruder" + PROGMEM Language_Str MSG_MOVE_E1 = _UxGT("挤出机 ") LCD_STR_E1; //"Extruder" + PROGMEM Language_Str MSG_MOVE_E2 = _UxGT("挤出机 ") LCD_STR_E2; //"Extruder" + PROGMEM Language_Str MSG_MOVE_E3 = _UxGT("挤出机 ") LCD_STR_E3; //"Extruder" + PROGMEM Language_Str MSG_MOVE_E4 = _UxGT("挤出机 ") LCD_STR_E4; //"Extruder" + PROGMEM Language_Str MSG_MOVE_E5 = _UxGT("挤出机 ") LCD_STR_E5; //"Extruder" + PROGMEM Language_Str MSG_MOVE_Z_DIST = _UxGT("移动 %s mm"); //"Move 0.025mm" + PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("移动 0.1 mm"); //"Move 0.1mm" + PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("移动 1 mm"); //"Move 1mm" + PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("移动 10 mm"); //"Move 10mm" + PROGMEM Language_Str MSG_SPEED = _UxGT("速率"); //"Speed" + PROGMEM Language_Str MSG_BED_Z = _UxGT("热床Z"); //"Bed Z" + PROGMEM Language_Str MSG_NOZZLE = " " LCD_STR_THERMOMETER _UxGT(" 喷嘴"); //"Nozzle" 噴嘴 + PROGMEM Language_Str MSG_NOZZLE_0 = " " LCD_STR_THERMOMETER _UxGT(" 喷嘴 ") LCD_STR_N0; //"Nozzle" 噴嘴 + PROGMEM Language_Str MSG_NOZZLE_1 = " " LCD_STR_THERMOMETER _UxGT(" 喷嘴 ") LCD_STR_N1; //"Nozzle" 噴嘴 + PROGMEM Language_Str MSG_NOZZLE_2 = " " LCD_STR_THERMOMETER _UxGT(" 喷嘴 ") LCD_STR_N2; //"Nozzle" 噴嘴 + PROGMEM Language_Str MSG_NOZZLE_3 = " " LCD_STR_THERMOMETER _UxGT(" 喷嘴 ") LCD_STR_N3; //"Nozzle" 噴嘴 + PROGMEM Language_Str MSG_NOZZLE_4 = " " LCD_STR_THERMOMETER _UxGT(" 喷嘴 ") LCD_STR_N4; //"Nozzle" 噴嘴 + PROGMEM Language_Str MSG_NOZZLE_5 = " " LCD_STR_THERMOMETER _UxGT(" 喷嘴 ") LCD_STR_N5; //"Nozzle" 噴嘴 + PROGMEM Language_Str MSG_BED = " " LCD_STR_THERMOMETER _UxGT(" 热床"); //"Bed" + PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("风扇速率"); //"Fan speed" + PROGMEM Language_Str MSG_FAN_SPEED_1 = _UxGT("风扇速率 1"); //"Fan speed" + PROGMEM Language_Str MSG_FAN_SPEED_2 = _UxGT("风扇速率 2"); //"Fan speed" + PROGMEM Language_Str MSG_FAN_SPEED_3 = _UxGT("风扇速率 3"); //"Fan speed" + PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("额外风扇速率"); // "Extra fan speed" + PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_1 = _UxGT("额外风扇速率 1"); // "Extra fan speed" + PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_2 = _UxGT("额外风扇速率 2"); // "Extra fan speed" + PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_3 = _UxGT("额外风扇速率 3"); // "Extra fan speed" + PROGMEM Language_Str MSG_FLOW = _UxGT("挤出速率"); //"Flow" + PROGMEM Language_Str MSG_FLOW_0 = _UxGT("挤出速率 ") LCD_STR_N0; //"Flow" + PROGMEM Language_Str MSG_FLOW_1 = _UxGT("挤出速率 ") LCD_STR_N1; //"Flow" + PROGMEM Language_Str MSG_FLOW_2 = _UxGT("挤出速率 ") LCD_STR_N2; //"Flow" + PROGMEM Language_Str MSG_FLOW_3 = _UxGT("挤出速率 ") LCD_STR_N3; //"Flow" + PROGMEM Language_Str MSG_FLOW_4 = _UxGT("挤出速率 ") LCD_STR_N4; //"Flow" + PROGMEM Language_Str MSG_FLOW_5 = _UxGT("挤出速率 ") LCD_STR_N5; //"Flow" + PROGMEM Language_Str MSG_CONTROL = _UxGT("控制"); //"Control" + PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" 最小"); //" " LCD_STR_THERMOMETER " Min" + PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" 最大"); //" " LCD_STR_THERMOMETER " Max" + PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" 因数"); //" " LCD_STR_THERMOMETER " 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"); //"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"); //"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"); //"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"); //"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("加速度"); //"Accel" acceleration + PROGMEM Language_Str MSG_JERK = _UxGT("抖动速率"); // "Jerk" + PROGMEM Language_Str MSG_VA_JERK = _UxGT("轴抖动速率") LCD_STR_A; //"Va-jerk" + PROGMEM Language_Str MSG_VB_JERK = _UxGT("轴抖动速率") LCD_STR_B; //"Vb-jerk" + PROGMEM Language_Str MSG_VC_JERK = _UxGT("轴抖动速率") LCD_STR_C; //"Vc-jerk" + PROGMEM Language_Str MSG_VE_JERK = _UxGT("挤出机抖动速率"); //"Ve-jerk" + PROGMEM Language_Str MSG_VELOCITY = _UxGT("速度"); // "Velocity" + PROGMEM Language_Str MSG_VMAX_A = _UxGT("最大进料速率") LCD_STR_A; //"Vmax " max_feedrate_mm_s + PROGMEM Language_Str MSG_VMAX_B = _UxGT("最大进料速率") LCD_STR_B; //"Vmax " max_feedrate_mm_s + PROGMEM Language_Str MSG_VMAX_C = _UxGT("最大进料速率") LCD_STR_C; //"Vmax " max_feedrate_mm_s + PROGMEM Language_Str MSG_VMAX_E = _UxGT("最大进料速率") LCD_STR_E; //"Vmax " max_feedrate_mm_s + PROGMEM Language_Str MSG_VMAX_E0 = _UxGT("最大进料速率 ") LCD_STR_E0; //"Vmax " max_feedrate_mm_s + PROGMEM Language_Str MSG_VMAX_E1 = _UxGT("最大进料速率 ") LCD_STR_E1; //"Vmax " max_feedrate_mm_s + PROGMEM Language_Str MSG_VMAX_E2 = _UxGT("最大进料速率 ") LCD_STR_E2; //"Vmax " max_feedrate_mm_s + PROGMEM Language_Str MSG_VMAX_E3 = _UxGT("最大进料速率 ") LCD_STR_E3; //"Vmax " max_feedrate_mm_s + PROGMEM Language_Str MSG_VMAX_E4 = _UxGT("最大进料速率 ") LCD_STR_E4; //"Vmax " max_feedrate_mm_s + PROGMEM Language_Str MSG_VMAX_E5 = _UxGT("最大进料速率 ") LCD_STR_E5; //"Vmax " max_feedrate_mm_s + PROGMEM Language_Str MSG_VMIN = _UxGT("最小进料速率"); //"Vmin" min_feedrate_mm_s + PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("最小移动速率"); //"VTrav min" min_travel_feedrate_mm_s, (target) speed of the move + PROGMEM Language_Str MSG_ACCELERATION = _UxGT("加速度"); // "Acceleration" + PROGMEM Language_Str MSG_AMAX_A = _UxGT("最大打印加速度") LCD_STR_A; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves + PROGMEM Language_Str MSG_AMAX_B = _UxGT("最大打印加速度") LCD_STR_B; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves + PROGMEM Language_Str MSG_AMAX_C = _UxGT("最大打印加速度") LCD_STR_C; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves + PROGMEM Language_Str MSG_AMAX_E = _UxGT("最大打印加速度") LCD_STR_E; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves + PROGMEM Language_Str MSG_AMAX_E0 = _UxGT("最大打印加速度 ") LCD_STR_E0; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves + PROGMEM Language_Str MSG_AMAX_E1 = _UxGT("最大打印加速度 ") LCD_STR_E1; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves + PROGMEM Language_Str MSG_AMAX_E2 = _UxGT("最大打印加速度 ") LCD_STR_E2; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves + PROGMEM Language_Str MSG_AMAX_E3 = _UxGT("最大打印加速度 ") LCD_STR_E3; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves + PROGMEM Language_Str MSG_AMAX_E4 = _UxGT("最大打印加速度 ") LCD_STR_E4; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves + PROGMEM Language_Str MSG_AMAX_E5 = _UxGT("最大打印加速度 ") LCD_STR_E5; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves + PROGMEM Language_Str MSG_A_RETRACT = _UxGT("收进加速度"); //"A-retract" retract_acceleration, E acceleration in mm/s^2 for retracts + PROGMEM Language_Str 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_STEPS_PER_MM = _UxGT("轴步数/mm"); //"Steps/mm" axis_steps_per_mm, axis steps-per-unit G92 + PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("轴步数/mm"); //"Asteps/mm" + PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT("轴步数/mm"); //"Bsteps/mm" + PROGMEM Language_Str MSG_C_STEPS = LCD_STR_C _UxGT("轴步数/mm"); //"Csteps/mm" + PROGMEM Language_Str MSG_E_STEPS = _UxGT("挤出机步数/mm"); //"Esteps/mm" + PROGMEM Language_Str MSG_E0_STEPS = _UxGT("挤出机") LCD_STR_N0 _UxGT("步数/mm"); + PROGMEM Language_Str MSG_E1_STEPS = _UxGT("挤出机") LCD_STR_N1 _UxGT("步数/mm"); + PROGMEM Language_Str MSG_E2_STEPS = _UxGT("挤出机") LCD_STR_N2 _UxGT("步数/mm"); + PROGMEM Language_Str MSG_E3_STEPS = _UxGT("挤出机") LCD_STR_N3 _UxGT("步数/mm"); + PROGMEM Language_Str MSG_E4_STEPS = _UxGT("挤出机") LCD_STR_N4 _UxGT("步数/mm"); + PROGMEM Language_Str MSG_E5_STEPS = _UxGT("挤出机") LCD_STR_N5 _UxGT("步数/mm"); + PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("温度"); //"Temperature" + PROGMEM Language_Str MSG_MOTION = _UxGT("运动"); //"Motion" + PROGMEM Language_Str MSG_FILAMENT = _UxGT("丝料测容"); //"Filament" menu_advanced_filament + PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("测容积mm³"); //"E in mm3" volumetric_enabled + 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_FILAMENT_UNLOAD = _UxGT("卸载 mm"); // "Unload mm" + PROGMEM Language_Str MSG_FILAMENT_LOAD = _UxGT("装载 mm"); // "Load mm" + PROGMEM Language_Str MSG_CONTRAST = _UxGT("LCD对比度"); //"LCD contrast" + PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("保存设置"); //"Store memory" + PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("装载设置"); //"Load memory" + PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("恢复安全值"); //"Restore failsafe" + PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("初始化设置"); // "Initialize EEPROM" + 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("无存储卡"); //"No SD card" + 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_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" retract_length, retract length (positive mm) + PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("换手回抽长度mm"); //"Swap Re.mm" swap_retract_length, swap retract length (positive mm), for extruder change + PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("回抽速率mm/s"); //"Retract V" retract_feedrate_mm_s, feedrate for retracting (mm/s) + 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 - #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 + #if LCD_WIDTH >= 20 + 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" + #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 -#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("驱动 %") // "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("恢复打印") //"Resume print" -#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" 喷嘴: ") // " Nozzle: " -#define MSG_ERR_HOMING_FAILED _UxGT("归原位失败") // "Homing failed" -#define MSG_ERR_PROBING_FAILED _UxGT("探针探测失败") // "Probing failed" -#define MSG_M600_TOO_COLD _UxGT("M600: 太凉") // "M600: Too cold" + 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("驱动 %"); // "Driver %" + PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("保存驱动设置"); // "DAC EEPROM Write" + 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("恢复打印"); //"Resume print" + PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" 喷嘴: "); // " Nozzle: " + 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: 太凉"); // "M600: Too cold" -#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_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 + #if LCD_HEIGHT >= 4 + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("等待开始", "丝料", "变更")); // "Wait for start of the filament change" + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("等待", "卸下丝料")); // "Wait for filament unload" + 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("加热喷嘴", "请等待 ...")); // "Heating nozzle Please wait..." + 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_RESUME = _UxGT(MSG_2_LINE("等待打印", "恢复")); // "Wait for print to resume" + #else + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("请等待 ...")); //"Please wait..." + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("退出中 ...")); //"Ejecting..." + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("插入并单击")); //"Insert and Click" + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("加热中 ...")); // "Heating..." + 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_RESUME = _UxGT(MSG_1_LINE("恢复中 ...")); //"Resuming..." + #endif +} diff --git a/Marlin/src/lcd/language/language_zh_TW.h b/Marlin/src/lcd/language/language_zh_TW.h index 90b7b00758..051e71ccae 100644 --- a/Marlin/src/lcd/language/language_zh_TW.h +++ b/Marlin/src/lcd/language/language_zh_TW.h @@ -28,357 +28,464 @@ * 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." -#define MSG_BACK _UxGT("返回") // ”Back“ -#define MSG_MEDIA_INSERTED _UxGT("記憶卡已插入") //"Card inserted" -#define MSG_MEDIA_REMOVED _UxGT("記憶卡被拔出") //"Card removed" -#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("平台調平XYZ歸原點") //"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_Z_FADE_HEIGHT _UxGT("淡出高度") // "Fade Height" -#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(" ") //MSG_PREHEAT_1 " " -#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" 全部") //MSG_PREHEAT_1 " All" -#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" 熱床") //MSG_PREHEAT_1 " Bed" -#define MSG_PREHEAT_1_SETTINGS MSG_PREHEAT_1 _UxGT(" 設置") //MSG_PREHEAT_1 " conf" -#define MSG_PREHEAT_2 _UxGT("預熱" PREHEAT_2_LABEL) //"Preheat PREHEAT_2_LABEL" -#define MSG_PREHEAT_2_N MSG_PREHEAT_2 _UxGT(" ") //MSG_PREHEAT_2 " " -#define MSG_PREHEAT_2_ALL MSG_PREHEAT_2 _UxGT(" 全部") //MSG_PREHEAT_2 " All" -#define MSG_PREHEAT_2_BEDONLY MSG_PREHEAT_2 _UxGT(" 熱床") //MSG_PREHEAT_2 " Bed" -#define MSG_PREHEAT_2_SETTINGS MSG_PREHEAT_2 _UxGT(" 設置") //MSG_PREHEAT_2 " 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_LEVEL_CORNERS _UxGT("調平邊角") // "Level corners" + PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT("已就緒."); //" ready." + PROGMEM Language_Str MSG_BACK = _UxGT("返回"); // ”Back“ + PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("記憶卡已插入"); //"Card inserted" + PROGMEM Language_Str MSG_MEDIA_REMOVED = _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("平台調平XYZ歸原點"); //"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_1_LABEL; //"Preheat PREHEAT_1_LABEL" + PROGMEM Language_Str MSG_PREHEAT_1_H0 = _UxGT("預熱 ") PREHEAT_1_LABEL " " LCD_STR_N0; //"Preheat PREHEAT_1_LABEL" + PROGMEM Language_Str MSG_PREHEAT_1_H1 = _UxGT("預熱 ") PREHEAT_1_LABEL " " LCD_STR_N1; //"Preheat PREHEAT_1_LABEL" + PROGMEM Language_Str MSG_PREHEAT_1_H2 = _UxGT("預熱 ") PREHEAT_1_LABEL " " LCD_STR_N2; //"Preheat PREHEAT_1_LABEL" + PROGMEM Language_Str MSG_PREHEAT_1_H3 = _UxGT("預熱 ") PREHEAT_1_LABEL " " LCD_STR_N3; //"Preheat PREHEAT_1_LABEL" + PROGMEM Language_Str MSG_PREHEAT_1_H4 = _UxGT("預熱 ") PREHEAT_1_LABEL " " LCD_STR_N4; //"Preheat PREHEAT_1_LABEL" + PROGMEM Language_Str MSG_PREHEAT_1_H5 = _UxGT("預熱 ") PREHEAT_1_LABEL " " LCD_STR_N5; //"Preheat PREHEAT_1_LABEL" + PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 噴嘴"); //MSG_PREHEAT_1 " " + PROGMEM Language_Str MSG_PREHEAT_1_END_E0 = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 噴嘴 ") LCD_STR_N0; //MSG_PREHEAT_1 " " + PROGMEM Language_Str MSG_PREHEAT_1_END_E1 = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 噴嘴 ") LCD_STR_N1; //MSG_PREHEAT_1 " " + PROGMEM Language_Str MSG_PREHEAT_1_END_E2 = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 噴嘴 ") LCD_STR_N2; //MSG_PREHEAT_1 " " + PROGMEM Language_Str MSG_PREHEAT_1_END_E3 = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 噴嘴 ") LCD_STR_N3; //MSG_PREHEAT_1 " " + PROGMEM Language_Str MSG_PREHEAT_1_END_E4 = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 噴嘴 ") LCD_STR_N4; //MSG_PREHEAT_1 " " + PROGMEM Language_Str MSG_PREHEAT_1_END_E5 = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 噴嘴 ") LCD_STR_N5; //MSG_PREHEAT_1 " " + PROGMEM Language_Str MSG_PREHEAT_1_ALL = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 全部"); //MSG_PREHEAT_1 " All" + PROGMEM Language_Str MSG_PREHEAT_1_BEDONLY = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 熱床"); //MSG_PREHEAT_1 " Bed" + PROGMEM Language_Str MSG_PREHEAT_1_SETTINGS = _UxGT("預熱 ") PREHEAT_1_LABEL _UxGT(" 設置"); //MSG_PREHEAT_1 " conf" + PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("預熱 ") PREHEAT_2_LABEL; //"Preheat PREHEAT_2_LABEL" + 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" -#define MSG_EDIT_MESH _UxGT("編輯網格") // "Edit Mesh" -#define MSG_EDITING_STOPPED _UxGT("網格編輯已停止") // "Mesh Editing Stopped" -#define MSG_USER_MENU _UxGT("客制命令") // "Custom Commands" + PROGMEM Language_Str MSG_NEXT_CORNER = _UxGT("下個邊角"); // "Next corner" + PROGMEM Language_Str MSG_EDIT_MESH = _UxGT("編輯網格"); // "Edit Mesh" + PROGMEM Language_Str MSG_EDITING_STOPPED = _UxGT("網格編輯已停止"); // "Mesh Editing Stopped" + PROGMEM Language_Str MSG_USER_MENU = _UxGT("客制命令"); // "Custom Commands" -#define MSG_UBL_DOING_G29 _UxGT("执行G29") // "Doing G29" -#define MSG_UBL_TOOLS _UxGT("UBL工具") // "UBL Tools" -#define MSG_UBL_LEVEL_BED _UxGT("統一熱床調平(UBL)") // "Unified Bed Leveling" -#define MSG_UBL_MANUAL_MESH _UxGT("手工建网") // "Manually Build Mesh" -#define MSG_UBL_BC_INSERT _UxGT("放置墊片並測量") // "Place shim & measure" -#define MSG_UBL_BC_INSERT2 _UxGT("測量") // "Measure" -#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") // "Activate UBL" -#define MSG_UBL_DEACTIVATE_MESH _UxGT("關閉UBL") // "Deactivate UBL" -#define MSG_UBL_SET_TEMP_BED _UxGT("設置熱床溫度") // "Bed Temp" -#define MSG_UBL_SET_TEMP_HOTEND _UxGT("熱端溫度") // "Hotend Temp" -#define MSG_UBL_MESH_EDIT _UxGT("網格編輯") // "Mesh Edit" -#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("完成編輯網格") // "Done Editing Mesh" -#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("創設客戶網格") // "Build Custom Mesh" -#define MSG_UBL_BUILD_MESH_MENU _UxGT("創設網格") // "Build Mesh" -#define MSG_UBL_BUILD_MESH_M1 _UxGT("創設" PREHEAT_1_LABEL "網格") // "Build PREHEAT_1_LABEL Mesh" -#define MSG_UBL_BUILD_MESH_M2 _UxGT("創設" PREHEAT_2_LABEL "網格") // "Build PREHEAT_2_LABEL Mesh" -#define MSG_UBL_BUILD_COLD_MESH _UxGT("創設冷網格") // "Build Cold Mesh" -#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("調整網格高度") // "Adjust Mesh Height" -#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("高度合計") // "Height Amount" -#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("批准網格") // "Validate Mesh" -#define MSG_UBL_VALIDATE_MESH_M1 _UxGT("批准" PREHEAT_1_LABEL "網格") // "Validate PREHEAT_1_LABEL Mesh" -#define MSG_UBL_VALIDATE_MESH_M2 _UxGT("批准" PREHEAT_2_LABEL "網格") // "Validate PREHEAT_2_LABEL Mesh" -#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("批准客戶網格") // "Validate Custom Mesh" -#define MSG_UBL_CONTINUE_MESH _UxGT("繼續熱床網格") // "Continue Bed Mesh" -#define MSG_UBL_MESH_LEVELING _UxGT("網格調平") // "Mesh Leveling" -#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("三點調平") // "3-Point Leveling" -#define MSG_UBL_GRID_MESH_LEVELING _UxGT("格子網格調平") // "Grid Mesh Leveling" -#define MSG_UBL_MESH_LEVEL _UxGT("調平網格") // "Level Mesh" -#define MSG_UBL_SIDE_POINTS _UxGT("邊點") // "Side Points" -#define MSG_UBL_MAP_TYPE _UxGT("圖類型") // "Map Type" -#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("輸出到CSV") // "Output for CSV" -#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("輸出到備份") // "Off Printer Backup" -#define MSG_UBL_INFO_UBL _UxGT("輸出UBL信息") // "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("網格 %i 已裝載") // "Mesh %i loaded" -#define MSG_MESH_SAVED _UxGT("網格 %i 已保存") // "Mesh %i saved" -#define MSG_UBL_NO_STORAGE _UxGT("沒有存儲") // "No storage" -#define MSG_UBL_SAVE_ERROR _UxGT("錯誤: UBL保存") // "Err: UBL Save" -#define MSG_UBL_RESTORE_ERROR _UxGT("錯誤: UBL還原") // "Err: UBL Restore" -#define 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_DOING_G29 = _UxGT("執行G29"); // "Doing G29" + PROGMEM Language_Str MSG_UBL_TOOLS = _UxGT("UBL工具"); // "UBL Tools" + PROGMEM Language_Str MSG_UBL_LEVEL_BED = _UxGT("統一熱床調平(UBL)"); // "Unified Bed Leveling" + 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("啟動UBL"); // "Activate UBL" + PROGMEM Language_Str MSG_UBL_DEACTIVATE_MESH = _UxGT("關閉UBL"); // "Deactivate UBL" + PROGMEM Language_Str MSG_UBL_SET_TEMP_BED = _UxGT("設置熱床溫度"); // "Bed Temp" + PROGMEM Language_Str MSG_UBL_SET_TEMP_HOTEND = _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("創設 ") PREHEAT_1_LABEL _UxGT(" 網格"); // "Build PREHEAT_1_LABEL Mesh" + PROGMEM Language_Str MSG_UBL_BUILD_MESH_M2 = _UxGT("創設 ") PREHEAT_2_LABEL _UxGT(" 網格"); // "Build PREHEAT_2_LABEL Mesh" + 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("批准 ") PREHEAT_1_LABEL _UxGT(" 網格"); // "Validate PREHEAT_1_LABEL Mesh" + PROGMEM Language_Str MSG_UBL_VALIDATE_MESH_M2 = _UxGT("批准 ") PREHEAT_2_LABEL _UxGT(" 網格"); // "Validate PREHEAT_2_LABEL Mesh" + PROGMEM Language_Str MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("批准客戶網格"); // "Validate Custom Mesh" + 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("輸出到CSV"); // "Output for CSV" + PROGMEM Language_Str MSG_UBL_OUTPUT_MAP_BACKUP = _UxGT("輸出到備份"); // "Off Printer Backup" + PROGMEM Language_Str MSG_UBL_INFO_UBL = _UxGT("輸出UBL信息"); // "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 網格 %i 已裝載"); // "Mesh %i loaded" + PROGMEM Language_Str MSG_MESH_SAVED = _UxGT("M117 網格 %i 已保存"); // "Mesh %i saved" + PROGMEM Language_Str MSG_UBL_NO_STORAGE = _UxGT("沒有存儲"); // "No storage" + PROGMEM Language_Str MSG_UBL_SAVE_ERROR = _UxGT("錯誤: UBL保存"); // "Err: UBL Save" + PROGMEM Language_Str MSG_UBL_RESTORE_ERROR = _UxGT("錯誤: UBL還原"); // "Err: UBL Restore" + PROGMEM Language_Str MSG_UBL_Z_OFFSET_STOPPED = _UxGT("Z偏移已停止"); // "Z-Offset Stopped" + 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") -#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") + PROGMEM Language_Str MSG_LED_CONTROL = _UxGT("燈管控制"); // "LED Control") + PROGMEM Language_Str MSG_LEDS = _UxGT("燈"); // "Lights") + PROGMEM Language_Str MSG_LED_PRESETS = _UxGT("燈預置"); // "Light Presets") + PROGMEM Language_Str MSG_SET_LEDS_RED = _UxGT("红"); // "Red") + PROGMEM Language_Str MSG_SET_LEDS_ORANGE = _UxGT("橙"); // "Orange") + PROGMEM Language_Str MSG_SET_LEDS_YELLOW = _UxGT("黃"); // "Yellow") + PROGMEM Language_Str MSG_SET_LEDS_GREEN = _UxGT("綠"); // "Green") + PROGMEM Language_Str MSG_SET_LEDS_BLUE = _UxGT("藍"); // "Blue") + PROGMEM Language_Str MSG_SET_LEDS_INDIGO = _UxGT("青"); // "Indigo") + PROGMEM Language_Str MSG_SET_LEDS_VIOLET = _UxGT("紫"); // "Violet") + PROGMEM Language_Str MSG_SET_LEDS_WHITE = _UxGT("白"); // "White") + PROGMEM Language_Str MSG_SET_LEDS_DEFAULT = _UxGT("缺省"); // "Default") + PROGMEM Language_Str MSG_CUSTOM_LEDS = _UxGT("定制燈"); // "Custom Lights") + PROGMEM Language_Str MSG_INTENSITY_R = _UxGT("紅飽和度"); // "Red Intensity") + PROGMEM Language_Str MSG_INTENSITY_G = _UxGT("綠飽和度"); // "Green Intensity") + PROGMEM Language_Str MSG_INTENSITY_B = _UxGT("藍飽和度"); // "Blue Intensity") + PROGMEM Language_Str MSG_INTENSITY_W = _UxGT("白飽和度"); // "White Intensity") + PROGMEM Language_Str MSG_LED_BRIGHTNESS = _UxGT("亮度"); // "Brightness") -#define MSG_MOVING _UxGT("移动 ...") // "Moving...") -#define MSG_FREE_XY _UxGT("释放 XY") // "Free XY") -#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("移動 %s mm") //"Move 0.025mm" -#define MSG_MOVE_01MM _UxGT("移動 0.1 mm") //"Move 0.1mm" -#define MSG_MOVE_1MM _UxGT("移動 1 mm") //"Move 1mm" -#define MSG_MOVE_10MM _UxGT("移動 10 mm") //"Move 10mm" -#define MSG_SPEED _UxGT("速率") //"Speed" -#define MSG_BED_Z _UxGT("熱床Z") //"Bed Z" -#define MSG_NOZZLE _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 噴嘴") //"Nozzle" 噴嘴 -#define MSG_BED _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 熱床") //"Bed" -#define MSG_FAN_SPEED _UxGT("風扇速率") //"Fan speed" -#define MSG_EXTRA_FAN_SPEED _UxGT("額外風扇速率") // "Extra fan speed" -#define MSG_FLOW _UxGT("擠出速率") //"Flow" -#define MSG_CONTROL _UxGT("控制") //"Control" -#define MSG_MIN _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 最小") //" " LCD_STR_THERMOMETER " Min" -#define MSG_MAX _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 最大") //" " LCD_STR_THERMOMETER " Max" -#define MSG_FACTOR _UxGT(" ") LCD_STR_THERMOMETER _UxGT(" 系數") //" " LCD_STR_THERMOMETER " 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") //"PID-P" -#define MSG_PID_I _UxGT("PID-I") //"PID-I" -#define MSG_PID_D _UxGT("PID-D") //"PID-D" -#define MSG_PID_C _UxGT("PID-C") //"PID-C" -#define MSG_SELECT _UxGT("選擇") //"Select" -#define MSG_ACC _UxGT("加速度") //"Accel" acceleration -#define MSG_JERK _UxGT("抖動速率") //"Jerk" -#if IS_KINEMATIC - #define MSG_VA_JERK _UxGT("A軸抖動速率") //"Va-jerk" - #define MSG_VB_JERK _UxGT("B軸抖動速率") //"Vb-jerk" - #define MSG_VC_JERK _UxGT("C軸抖動速率") //"Vc-jerk" -#else - #define MSG_VA_JERK _UxGT("X軸抖動速率") //"Vx-jerk" - #define MSG_VB_JERK _UxGT("Y軸抖動速率") //"Vy-jerk" - #define MSG_VC_JERK _UxGT("Z軸抖動速率") //"Vz-jerk" -#endif -#define MSG_VE_JERK _UxGT("擠出機抖動速率") //"Ve-jerk" -#define MSG_VELOCITY _UxGT("速度") // "Velocity" -#define MSG_VMAX _UxGT("最大進料速率") //"Vmax " max_feedrate_mm_s -#define MSG_VMIN _UxGT("最小進料速率") //"Vmin" min_feedrate_mm_s -#define MSG_VTRAV_MIN _UxGT("最小移動速率") //"VTrav min" min_travel_feedrate_mm_s, (target) speed of the move -#define MSG_ACCELERATION _UxGT("加速度") // "Acceleration" -#define MSG_AMAX _UxGT("最大列印加速度") //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves -#define MSG_A_RETRACT _UxGT("回縮加速度") //"A-retract" retract_acceleration, E acceleration in mm/s^2 for retracts -#define MSG_A_TRAVEL _UxGT("非列印移動加速度") //"A-travel" travel_acceleration, X, Y, Z acceleration in mm/s^2 for travel (non printing) moves -#define MSG_STEPS_PER_MM _UxGT("軸步數/mm") //"Steps/mm" axis_steps_per_mm, axis steps-per-unit G92 -#if IS_KINEMATIC - #define MSG_ASTEPS _UxGT("A軸步數/mm") //"Asteps/mm" axis_steps_per_mm, axis steps-per-unit G92 - #define MSG_BSTEPS _UxGT("B軸步數/mm") //"Bsteps/mm" - #define MSG_CSTEPS _UxGT("C軸步數/mm") //"Csteps/mm" -#else - #define MSG_ASTEPS _UxGT("X軸步數/mm") //"Xsteps/mm" axis_steps_per_mm, axis steps-per-unit G92 - #define MSG_BSTEPS _UxGT("Y軸步數/mm") //"Ysteps/mm" - #define MSG_CSTEPS _UxGT("Z軸步數/mm") //"Zsteps/mm" -#endif -#define MSG_ESTEPS _UxGT("擠出機步數/mm") //"Esteps/mm" -#define MSG_E0_STEPS _UxGT("擠出機1步數/mm") //"E1steps/mm" -#define MSG_E1_STEPS _UxGT("擠出機2步數/mm") //"E2steps/mm" -#define MSG_E2_STEPS _UxGT("擠出機3步數/mm") //"E3steps/mm" -#define MSG_E3_STEPS _UxGT("擠出機4步數/mm") //"E4steps/mm" -#define MSG_E4_STEPS _UxGT("擠出機5步數/mm") //"E5steps/mm" -#define MSG_E5_STEPS _UxGT("擠出機6步數/mm") //"E6steps/mm" -#define MSG_TEMPERATURE _UxGT("溫度") //"Temperature" -#define MSG_MOTION _UxGT("運作") //"Motion" -#define MSG_FILAMENT _UxGT("絲料測容") //"Filament" menu_control_volumetric -#define MSG_VOLUMETRIC_ENABLED _UxGT("測容積mm³") //"E in mm3" volumetric_enabled -#define MSG_FILAMENT_DIAM _UxGT("絲料直徑") //"Fil. Dia." -#define MSG_FILAMENT_UNLOAD _UxGT("卸載 mm") // "Unload mm" -#define MSG_FILAMENT_LOAD _UxGT("装載 mm") // "Load mm" -#define MSG_ADVANCE_K _UxGT("Advance K") // "Advance K" -#define MSG_CONTRAST _UxGT("LCD對比度") //"LCD contrast" -#define MSG_STORE_EEPROM _UxGT("保存設置") //"Store memory" -#define MSG_LOAD_EEPROM _UxGT("載入設置") //"Load memory" -#define MSG_RESTORE_FAILSAFE _UxGT("恢復安全值") //"Restore failsafe" -#define MSG_INIT_EEPROM _UxGT("初始化設置") // "Initialize EEPROM" -#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("點擊繼續 ...") //"Click to resume..." -#define MSG_PRINT_PAUSED _UxGT("列印已暫停") // "Print paused" -#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" retract_length, retract length (positive mm) -#define MSG_CONTROL_RETRACT_SWAP _UxGT("換手回抽長度mm") //"Swap Re.mm" swap_retract_length, swap retract length (positive mm), for extruder change -#define MSG_CONTROL_RETRACTF _UxGT("回縮速率mm/s") //"Retract V" retract_feedrate_mm_s, feedrate for retracting (mm/s) -#define MSG_CONTROL_RETRACT_ZHOP _UxGT("Hop mm") //"Hop mm" retract_zraise, retract Z-lift -#define MSG_CONTROL_RETRACT_RECOVER _UxGT("回縮恢復長度mm") //"UnRet +mm" retract_recover_extra, additional recover length (mm, added to retract length when recovering) -#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) -#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("回縮恢復後進料速率mm/s") //"UnRet V" retract_recover_feedrate_mm_s, feedrate for recovering from retraction (mm/s) -#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V") // "S UnRet V" -#define MSG_AUTORETRACT _UxGT("自動回縮") //"AutoRetr." autoretract_enabled, -#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探針在熱床之外") //"Z probe out. bed" Z probe is not within the physical limits -#define MSG_SKEW_FACTOR _UxGT("偏斜因數") // "Skew Factor" -#define MSG_BLTOUCH _UxGT("BLTouch") // "BLTouch" -#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch 自檢") // "BLTouch Self-Test" -#define MSG_BLTOUCH_RESET _UxGT("重置BLTouch") // "Reset BLTouch" -#define MSG_BLTOUCH_DEPLOY _UxGT("部署BLTouch") // "Deploy BLTouch" -#define MSG_BLTOUCH_STOW _UxGT("裝載BLTouch") // "Stow 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" lcd_babystep_x, Babystepping enables the user to control the axis in tiny amounts -#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("錯誤:REDUNDANT TEMP") //"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_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_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("統一熱床調平(UBL)") // "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" + PROGMEM Language_Str MSG_MOVING = _UxGT("移動 ..."); // "Moving...") + PROGMEM Language_Str MSG_FREE_XY = _UxGT("釋放 XY"); // "Free XY") + PROGMEM Language_Str MSG_MOVE_X = _UxGT("移動X"); //"Move X" + 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_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 mm"); //"Move 0.025mm" + PROGMEM Language_Str MSG_MOVE_01MM = _UxGT("移動 0.1 mm"); //"Move 0.1mm" + PROGMEM Language_Str MSG_MOVE_1MM = _UxGT("移動 1 mm"); //"Move 1mm" + PROGMEM Language_Str MSG_MOVE_10MM = _UxGT("移動 10 mm"); //"Move 10mm" + PROGMEM Language_Str MSG_SPEED = _UxGT("速率"); //"Speed" + PROGMEM Language_Str MSG_BED_Z = _UxGT("熱床Z"); //"Bed Z" + PROGMEM Language_Str MSG_NOZZLE = " " LCD_STR_THERMOMETER _UxGT(" 噴嘴"); //"Nozzle" 噴嘴 + PROGMEM Language_Str MSG_NOZZLE_0 = " " LCD_STR_THERMOMETER _UxGT(" 噴嘴 ") LCD_STR_N0; + PROGMEM Language_Str MSG_NOZZLE_1 = " " LCD_STR_THERMOMETER _UxGT(" 噴嘴 ") LCD_STR_N1; + PROGMEM Language_Str MSG_NOZZLE_2 = " " LCD_STR_THERMOMETER _UxGT(" 噴嘴 ") LCD_STR_N2; + PROGMEM Language_Str MSG_NOZZLE_3 = " " LCD_STR_THERMOMETER _UxGT(" 噴嘴 ") LCD_STR_N3; + PROGMEM Language_Str MSG_NOZZLE_4 = " " LCD_STR_THERMOMETER _UxGT(" 噴嘴 ") LCD_STR_N4; + PROGMEM Language_Str MSG_NOZZLE_5 = " " LCD_STR_THERMOMETER _UxGT(" 噴嘴 ") LCD_STR_N5; + PROGMEM Language_Str MSG_BED = " " LCD_STR_THERMOMETER _UxGT(" 熱床"); //"Bed" + PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("風扇速率"); //"Fan speed" + 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("額外風扇速率"); // "Extra fan speed" + 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; //"Flow" + PROGMEM Language_Str MSG_FLOW_1 = _UxGT("擠出速率 ") LCD_STR_N1; //"Flow" + PROGMEM Language_Str MSG_FLOW_2 = _UxGT("擠出速率 ") LCD_STR_N2; //"Flow" + PROGMEM Language_Str MSG_FLOW_3 = _UxGT("擠出速率 ") LCD_STR_N3; //"Flow" + PROGMEM Language_Str MSG_FLOW_4 = _UxGT("擠出速率 ") LCD_STR_N4; //"Flow" + PROGMEM Language_Str MSG_FLOW_5 = _UxGT("擠出速率 ") LCD_STR_N5; //"Flow" + PROGMEM Language_Str MSG_CONTROL = _UxGT("控制"); //"Control" + PROGMEM Language_Str MSG_MIN = " " LCD_STR_THERMOMETER _UxGT(" 最小"); //" " LCD_STR_THERMOMETER " Min" + PROGMEM Language_Str MSG_MAX = " " LCD_STR_THERMOMETER _UxGT(" 最大"); //" " LCD_STR_THERMOMETER " Max" + PROGMEM Language_Str MSG_FACTOR = " " LCD_STR_THERMOMETER _UxGT(" 系數"); //" " LCD_STR_THERMOMETER " 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"); //"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"); //"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"); //"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"); //"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("加速度"); //"Accel" acceleration + PROGMEM Language_Str MSG_JERK = _UxGT("抖動速率"); //"Jerk" + PROGMEM Language_Str MSG_VA_JERK = _UxGT("軸抖動速率") LCD_STR_A; //"Va-jerk" + PROGMEM Language_Str MSG_VB_JERK = _UxGT("軸抖動速率") LCD_STR_B; //"Vb-jerk" + PROGMEM Language_Str MSG_VC_JERK = _UxGT("軸抖動速率") LCD_STR_C; //"Vc-jerk" + PROGMEM Language_Str MSG_VE_JERK = _UxGT("擠出機抖動速率"); //"Ve-jerk" + PROGMEM Language_Str MSG_VELOCITY = _UxGT("速度"); // "Velocity" + PROGMEM Language_Str MSG_VMAX_A = _UxGT("最大進料速率") LCD_STR_A; //"Vmax " max_feedrate_mm_s + 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; //"Vmax " max_feedrate_mm_s + 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("最小進料速率"); //"Vmin" min_feedrate_mm_s + PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("最小移動速率"); //"VTrav min" min_travel_feedrate_mm_s, (target) speed of the move + PROGMEM Language_Str MSG_ACCELERATION = _UxGT("加速度"); // "Acceleration" + PROGMEM Language_Str MSG_AMAX_A = _UxGT("最大列印加速度") LCD_STR_A; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves + 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; //"Amax " max_acceleration_mm_per_s2, acceleration in units/s^2 for print moves + 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-retract" retract_acceleration, E acceleration in mm/s^2 for retracts + PROGMEM Language_Str 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_STEPS_PER_MM = _UxGT("軸步數/mm"); //"Steps/mm" axis_steps_per_mm, axis steps-per-unit G92 + PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT("軸步數/mm"); //"Asteps/mm" axis_steps_per_mm, axis steps-per-unit G92 + 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_E_STEPS = _UxGT("擠出機步數/mm"); //"Esteps/mm" + PROGMEM Language_Str MSG_E0_STEPS = _UxGT("擠出機") LCD_STR_N0 _UxGT("步數/mm"); + PROGMEM Language_Str MSG_E1_STEPS = _UxGT("擠出機") LCD_STR_N1 _UxGT("步數/mm"); + PROGMEM Language_Str MSG_E2_STEPS = _UxGT("擠出機") LCD_STR_N2 _UxGT("步數/mm"); + PROGMEM Language_Str MSG_E3_STEPS = _UxGT("擠出機") LCD_STR_N3 _UxGT("步數/mm"); + PROGMEM Language_Str MSG_E4_STEPS = _UxGT("擠出機") LCD_STR_N4 _UxGT("步數/mm"); + PROGMEM Language_Str MSG_E5_STEPS = _UxGT("擠出機") LCD_STR_N5 _UxGT("步數/mm"); + PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("溫度"); //"Temperature" + PROGMEM Language_Str MSG_MOTION = _UxGT("運作"); //"Motion" + PROGMEM Language_Str MSG_FILAMENT = _UxGT("絲料測容"); //"Filament" menu_control_volumetric + PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("測容積mm³"); //"E in mm3" volumetric_enabled + 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_FILAMENT_UNLOAD = _UxGT("卸載 mm"); // "Unload mm" + PROGMEM Language_Str MSG_FILAMENT_LOAD = _UxGT("装載 mm"); // "Load mm" + PROGMEM Language_Str MSG_CONTRAST = _UxGT("LCD對比度"); //"LCD contrast" + PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("保存設置"); //"Store memory" + PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("載入設置"); //"Load memory" + PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("恢復安全值"); //"Restore failsafe" + PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("初始化設置"); // "Initialize EEPROM" + 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("無記憶卡"); //"No SD card" + 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_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" retract_length, retract length (positive mm) + PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("換手回抽長度mm"); //"Swap Re.mm" swap_retract_length, swap retract length (positive mm), for extruder change + PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("回縮速率mm/s"); //"Retract V" retract_feedrate_mm_s, feedrate for retracting (mm/s) + 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 - #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 + #if LCD_WIDTH >= 20 + 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" + #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 -#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("驅動 %") // "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("恢復列印") //"Resume print" -#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" 噴嘴: ") // " Nozzle: " -#define MSG_ERR_HOMING_FAILED _UxGT("歸原位失敗") // "Homing failed" -#define MSG_ERR_PROBING_FAILED _UxGT("探針探測失敗") // "Probing failed" -#define MSG_M600_TOO_COLD _UxGT("M600: 太涼") // "M600: Too cold" + 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("驅動 %"); // "Driver %" + PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("保存驅動設置"); // "DAC EEPROM Write" + 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("恢復列印"); //"Resume print" + PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" 噴嘴: "); // " Nozzle: " + 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: 太冷"); // "M600: Too cold" -#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_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 + #if LCD_HEIGHT >= 4 + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("等待開始", "絲料", "變更")); //"Wait for start of the filament change" + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("等待", "卸下絲料")); //"Wait for filament unload" + 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("加熱噴嘴", "請等待 ...")); // "Heating nozzle Please wait..." + 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_RESUME = _UxGT(MSG_2_LINE("等待列印", "恢復")); //"Wait for print to resume" + #else // LCD_HEIGHT < 4 + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("請等待 ...")); //"Please wait..." + PROGMEM Language_Str MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("退出中 ...")); //"Ejecting..." + PROGMEM Language_Str MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("插入並點擊")); //"Insert and Click" + PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("加熱中 ...")); // "Heating..." + 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_RESUME = _UxGT(MSG_1_LINE("恢復中 ...")); //"Resuming..." + #endif // LCD_HEIGHT < 4 +} diff --git a/Marlin/src/lcd/menu/menu.cpp b/Marlin/src/lcd/menu/menu.cpp index 1691e47995..a953318bfa 100644 --- a/Marlin/src/lcd/menu/menu.cpp +++ b/Marlin/src/lcd/menu/menu.cpp @@ -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) * * 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: * MenuItem_int3::action(plabel, &feedrate_percentage, 10, 999) @@ -324,8 +324,7 @@ void MarlinUI::_synchronize() { // Display the synchronize screen with a custom message // ** This blocks the command queue! ** void MarlinUI::synchronize(PGM_P const msg/*=nullptr*/) { - static const char moving[] PROGMEM = MSG_MOVING; - sync_message = msg ? msg : moving; + sync_message = msg ?: GET_TEXT(MSG_MOVING); _synchronize(); } @@ -419,10 +418,10 @@ void scroll_screen(const uint8_t limit, const bool is_menu) { if (ui.should_draw()) { #if ENABLED(BABYSTEP_HOTEND_Z_OFFSET) 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 #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 (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() { 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); } diff --git a/Marlin/src/lcd/menu/menu.h b/Marlin/src/lcd/menu/menu.h index 2376215776..d395057b76 100644 --- a/Marlin/src/lcd/menu/menu.h +++ b/Marlin/src/lcd/menu/menu.h @@ -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 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) { - 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_CENTER 0x01 -#define SS_INVERT 0x02 +#define SS_LEFT 0x00 +#define SS_CENTER 0x01 +#define SS_INVERT 0x02 +#define SS_DEFAULT SS_CENTER 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_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); 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); } @@ -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_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_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) class CardReader; @@ -321,17 +322,17 @@ class MenuItem_bool { * Examples: * BACK_ITEM(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() * * ACTION_ITEM(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) * * EDIT_ITEM(int3, MSG_SPEED, &feedrate_percentage, 10, 999) - * draw_menu_item_int3(sel, row, PSTR(MSG_SPEED), &feedrate_percentage, 10, 999) - * MenuItem_int3::action(PSTR(MSG_SPEED), &feedrate_percentage, 10, 999) + * draw_menu_item_int3(sel, row, GET_TEXT(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 { \ @@ -370,18 +371,28 @@ class MenuItem_bool { #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(TYPE, LABEL, V...) _MENU_ITEM_P(TYPE, false, PSTR(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 MENU_ITEM_P(TYPE, PLABEL, V...) _MENU_ITEM_P(TYPE, false, PLABEL, ##V) +#define MENU_ITEM(TYPE, LABEL, V...) MENU_ITEM_P(TYPE, GET_TEXT(LABEL), ##V) -#define SKIP_ITEM() (_thisItemNr++) -#define BACK_ITEM(LABEL) MENU_ITEM(back,LABEL) -#define SUBMENU(LABEL, DEST) MENU_ITEM(submenu, LABEL, DEST) -#define GCODES_ITEM(LABEL, GCODES) MENU_ITEM(gcode, LABEL, GCODES) -#define ACTION_ITEM(LABEL, ACTION) MENU_ITEM(function, LABEL, ACTION) +#define EDIT_ITEM_P(TYPE, PLABEL, V...) MENU_ITEM_P(TYPE, PLABEL, ##V) +#define EDIT_ITEM(TYPE, LABEL, V...) EDIT_ITEM_P(TYPE, GET_TEXT(LABEL), ##V) + +#define EDIT_ITEM_FAST_P(TYPE, PLABEL, V...) _MENU_ITEM_P(TYPE, true, PLABEL, ##V) +#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 /////////////// diff --git a/Marlin/src/lcd/menu/menu_advanced.cpp b/Marlin/src/lcd/menu/menu_advanced.cpp index c86ae2fec7..64c90923c9 100644 --- a/Marlin/src/lcd/menu/menu_advanced.cpp +++ b/Marlin/src/lcd/menu/menu_advanced.cpp @@ -78,7 +78,7 @@ void menu_backlash(); void menu_pwm() { START_MENU(); 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) EDIT_CURRENT_PWM(MSG_X MSG_Y, 0); #endif @@ -109,7 +109,7 @@ void menu_backlash(); #if EXTRUDERS == 1 EDIT_ITEM(float52, MSG_ADVANCE_K, &planner.extruder_advance_K[0], 0, 999); #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(1); #if EXTRUDERS > 2 @@ -134,7 +134,7 @@ void menu_backlash(); #if EXTRUDERS == 1 EDIT_ITEM_FAST(float43, MSG_FILAMENT_DIAM, &planner.filament_size[0], 1.5f, 3.25f, planner.calculate_volumetric_multipliers); #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_FIL_DIAM(0); EDIT_FIL_DIAM(1); @@ -166,7 +166,7 @@ void menu_backlash(); #if EXTRUDERS == 1 EDIT_ITEM_FAST(float3, MSG_FILAMENT_UNLOAD, &fc_settings[0].unload_length, 0, extrude_maxlength); #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_FIL_UNLOAD(0); EDIT_FIL_UNLOAD(1); @@ -187,7 +187,7 @@ void menu_backlash(); #if EXTRUDERS == 1 EDIT_ITEM_FAST(float3, MSG_FILAMENT_LOAD, &fc_settings[0].load_length, 0, extrude_maxlength); #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_FIL_LOAD(0); EDIT_FIL_LOAD(1); @@ -268,8 +268,43 @@ void menu_backlash(); 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 +#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)) // @@ -300,53 +335,57 @@ void menu_backlash(); // #if ENABLED(PID_EDIT_MENU) - #define _PID_BASE_MENU_ITEMS(ELABEL, eindex) \ - raw_Ki = unscalePID_i(PID_PARAM(Ki, eindex)); \ - raw_Kd = unscalePID_d(PID_PARAM(Kd, eindex)); \ - EDIT_ITEM(float52sign, MSG_PID_P ELABEL, &PID_PARAM(Kp, eindex), 1, 9990); \ - EDIT_ITEM(float52sign, MSG_PID_I ELABEL, &raw_Ki, 0.01f, 9990, [](){ copy_and_scalePID_i(eindex); }); \ - EDIT_ITEM(float52sign, MSG_PID_D ELABEL, &raw_Kd, 1, 9990, [](){ copy_and_scalePID_d(eindex); }) + #if HOTENDS > 1 && ENABLED(PID_PARAMS_PER_HOTEND) + #define PID_LABEL(MSG,N) MSG##_E##N + #else + #define PID_LABEL(MSG,N) MSG + #endif + + #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) - #define _PID_EDIT_MENU_ITEMS(ELABEL, eindex) \ - _PID_BASE_MENU_ITEMS(ELABEL, eindex); \ - EDIT_ITEM(float3, MSG_PID_C ELABEL, &PID_PARAM(Kc, eindex), 1, 9990) + #define _PID_EDIT_MENU_ITEMS(N) \ + _PID_BASE_MENU_ITEMS(N); \ + EDIT_ITEM(float3, PID_LABEL(MSG_PID_C,N), &PID_PARAM(Kc, N), 1, 9990) #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 #else - #define _PID_EDIT_MENU_ITEMS(ELABEL, eindex) NOOP + #define _PID_EDIT_MENU_ITEMS(N) NOOP #endif #if ENABLED(PID_AUTOTUNE_MENU) - #define PID_EDIT_MENU_ITEMS(ELABEL, eindex) \ - _PID_EDIT_MENU_ITEMS(ELABEL, eindex); \ - EDIT_ITEM_FAST(int3, MSG_PID_AUTOTUNE ELABEL, &autotune_temp[eindex], 150, heater_maxtemp[eindex] - 15, [](){ _lcd_autotune(eindex); }) + #define PID_EDIT_MENU_ITEMS(N) \ + _PID_EDIT_MENU_ITEMS(N); \ + EDIT_ITEM_FAST(int3, PID_LABEL(MSG_AUTOTUNE_PID,N), &autotune_temp[N], 150, heater_maxtemp[N] - 15, [](){ _lcd_autotune(N); }) #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 - #if ENABLED(PID_PARAMS_PER_HOTEND) && HOTENDS > 1 - PID_EDIT_MENU_ITEMS(" " LCD_STR_E0, 0); - PID_EDIT_MENU_ITEMS(" " LCD_STR_E1, 1); + PID_EDIT_MENU_ITEMS(0); + #if HOTENDS > 1 && ENABLED(PID_PARAMS_PER_HOTEND) + PID_EDIT_MENU_ITEMS(1); #if HOTENDS > 2 - PID_EDIT_MENU_ITEMS(" " LCD_STR_E2, 2); + PID_EDIT_MENU_ITEMS(2); #if HOTENDS > 3 - PID_EDIT_MENU_ITEMS(" " LCD_STR_E3, 3); + PID_EDIT_MENU_ITEMS(3); #if HOTENDS > 4 - PID_EDIT_MENU_ITEMS(" " LCD_STR_E4, 4); + PID_EDIT_MENU_ITEMS(4); #if HOTENDS > 5 - PID_EDIT_MENU_ITEMS(" " LCD_STR_E5, 5); + PID_EDIT_MENU_ITEMS(5); #endif // HOTENDS > 5 #endif // HOTENDS > 4 #endif // HOTENDS > 3 #endif // HOTENDS > 2 - #else // !PID_PARAMS_PER_HOTEND || HOTENDS == 1 - PID_EDIT_MENU_ITEMS("", 0); - #endif // !PID_PARAMS_PER_HOTEND || HOTENDS == 1 + #endif // HOTENDS > 1 && PID_PARAMS_PER_HOTEND END_MENU(); } @@ -385,14 +424,14 @@ void menu_backlash(); #else const xyze_feedrate_t &max_fr_edit_scaled = max_fr_edit; #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(B); EDIT_VMAX(C); #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) - 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); + #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_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(1); #if E_STEPPERS > 2 @@ -408,7 +447,7 @@ void menu_backlash(); #endif // E_STEPPERS > 3 #endif // E_STEPPERS > 2 #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 // M205 S Min Feedrate @@ -451,15 +490,15 @@ void menu_backlash(); const xyze_ulong_t &max_accel_edit_scaled = max_accel_edit; #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(B,100); EDIT_AMAX(C, 10); #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); }) - 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(); }); + #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_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(1); #if E_STEPPERS > 2 @@ -475,7 +514,7 @@ void menu_backlash(); #endif // E_STEPPERS > 3 #endif // E_STEPPERS > 2 #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 END_MENU(); @@ -524,14 +563,14 @@ void menu_backlash(); START_MENU(); 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(B); EDIT_QSTEPS(C); #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); }) - 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(1); #if E_STEPPERS > 2 @@ -547,7 +586,7 @@ void menu_backlash(); #endif // E_STEPPERS > 3 #endif // E_STEPPERS > 2 #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 END_MENU(); @@ -559,7 +598,7 @@ void menu_backlash(); static void lcd_init_eeprom_confirm() { 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(); #if HAS_BUZZER @@ -568,7 +607,7 @@ void menu_backlash(); UNUSED(inited); }, 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 EDIT_ITEM(float52, MSG_ADVANCE_K, &planner.extruder_advance_K[0], 0, 999); #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(1); #if EXTRUDERS > 2 diff --git a/Marlin/src/lcd/menu/menu_backlash.cpp b/Marlin/src/lcd/menu/menu_backlash.cpp index 30ef29a64e..cc0b3a2c99 100644 --- a/Marlin/src/lcd/menu/menu_backlash.cpp +++ b/Marlin/src/lcd/menu/menu_backlash.cpp @@ -38,7 +38,7 @@ void menu_backlash() { 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(B); EDIT_BACKLASH_DISTANCE(C); diff --git a/Marlin/src/lcd/menu/menu_bed_corners.cpp b/Marlin/src/lcd/menu/menu_bed_corners.cpp index 13441e6f3d..ac2a68fb36 100644 --- a/Marlin/src/lcd/menu/menu_bed_corners.cpp +++ b/Marlin/src/lcd/menu/menu_bed_corners.cpp @@ -86,7 +86,7 @@ static inline void _lcd_goto_next_corner() { static inline void menu_level_bed_corners() { 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, []{ #if HAS_LEVELING @@ -94,7 +94,7 @@ static inline void menu_level_bed_corners() { #endif ui.goto_previous_screen_no_defer(); }, - PSTR( + GET_TEXT( #if ENABLED(LEVEL_CENTER_TOO) MSG_LEVEL_BED_NEXT_POINT #else diff --git a/Marlin/src/lcd/menu/menu_bed_leveling.cpp b/Marlin/src/lcd/menu/menu_bed_leveling.cpp index ba03477735..1318e2307e 100644 --- a/Marlin/src/lcd/menu/menu_bed_leveling.cpp +++ b/Marlin/src/lcd/menu/menu_bed_leveling.cpp @@ -74,14 +74,14 @@ #if MANUAL_PROBE_HEIGHT > 0 && DISABLED(MESH_BED_LEVELING) // Display "Done" screen and wait for moves to complete line_to_z(MANUAL_PROBE_HEIGHT); - ui.synchronize(PSTR(MSG_LEVEL_BED_DONE)); + ui.synchronize(GET_TEXT(MSG_LEVEL_BED_DONE)); #endif ui.goto_previous_screen_no_defer(); #if HAS_BUZZER ui.completion_feedback(); #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); } @@ -132,7 +132,7 @@ // if (ui.should_draw()) { 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()) { char msg[10]; 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); if (!ui.wait_for_bl_move) ui.goto_screen(_lcd_level_bed_get_z); @@ -169,7 +169,7 @@ // Move to the first probe position // 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()) { manual_probe_index = 0; _lcd_level_goto_next_point(); diff --git a/Marlin/src/lcd/menu/menu_configuration.cpp b/Marlin/src/lcd/menu/menu_configuration.cpp index 3dd2d9c5b1..62f6f45ce5 100644 --- a/Marlin/src/lcd/menu/menu_configuration.cpp +++ b/Marlin/src/lcd/menu/menu_configuration.cpp @@ -68,7 +68,7 @@ void menu_advanced_settings(); bar_percent += (int8_t)ui.encoderPosition; LIMIT(bar_percent, 0, 100); 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_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); #if ENABLED(BLTOUCH_LCD_VOLTAGE_MENU) 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, []{ - 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); 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, []{ - 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); #endif diff --git a/Marlin/src/lcd/menu/menu_custom.cpp b/Marlin/src/lcd/menu/menu_custom.cpp index 24c213544c..81b324114a 100644 --- a/Marlin/src/lcd/menu/menu_custom.cpp +++ b/Marlin/src/lcd/menu/menu_custom.cpp @@ -51,19 +51,19 @@ void menu_user() { START_MENU(); BACK_ITEM(MSG_MAIN); #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 #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 #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 #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 #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 END_MENU(); } diff --git a/Marlin/src/lcd/menu/menu_delta_calibrate.cpp b/Marlin/src/lcd/menu/menu_delta_calibrate.cpp index ae827f2483..38e94c0908 100644 --- a/Marlin/src/lcd/menu/menu_delta_calibrate.cpp +++ b/Marlin/src/lcd/menu/menu_delta_calibrate.cpp @@ -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")); #endif #if ENABLED(EXTENSIBLE_UI) - ExtUI::onUserConfirmRequired(PSTR("Delta Calibration in progress")); + ExtUI::onUserConfirmRequired_P(PSTR("Delta Calibration in progress")); #endif while (wait_for_user) idle(); ui.goto_previous_screen_no_defer(); @@ -104,12 +104,12 @@ void lcd_delta_settings() { START_MENU(); BACK_ITEM(MSG_DELTA_CALIBRATE); 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("Ey",b); EDIT_ENDSTOP_ADJ("Ez",c); 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("Ty",b); EDIT_ANGLE_TRIM("Tz",c); diff --git a/Marlin/src/lcd/menu/menu_filament.cpp b/Marlin/src/lcd/menu/menu_filament.cpp index f3b202623f..e32e93d23c 100644 --- a/Marlin/src/lcd/menu/menu_filament.cpp +++ b/Marlin/src/lcd/menu/menu_filament.cpp @@ -52,7 +52,7 @@ inline PGM_P _change_filament_temp_command() { default: return PSTR("M600 B0 T%d"); } - return PSTR(MSG_FILAMENTCHANGE); + return GET_TEXT(MSG_FILAMENTCHANGE); } // 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) { switch (mode) { case PAUSE_MODE_LOAD_FILAMENT: - return PSTR(MSG_FILAMENTLOAD); + return GET_TEXT(MSG_FILAMENTLOAD); case PAUSE_MODE_UNLOAD_FILAMENT: - return PSTR(MSG_FILAMENTUNLOAD); + return GET_TEXT(MSG_FILAMENTUNLOAD); default: break; } - return PSTR(MSG_FILAMENTCHANGE); + return GET_TEXT(MSG_FILAMENTCHANGE); } 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 #if E_STEPPERS == 1 - PGM_P const msg0 = PSTR(MSG_FILAMENTCHANGE); + PGM_P const msg0 = GET_TEXT(MSG_FILAMENTCHANGE); if (thermalManager.targetTooColdToExtrude(active_extruder)) MENU_ITEM_P(submenu, msg0, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 0); }); else MENU_ITEM_P(gcode, msg0, PSTR("M600 B0")); #else - PGM_P const msg0 = PSTR(MSG_FILAMENTCHANGE " " LCD_STR_E0); - PGM_P const msg1 = PSTR(MSG_FILAMENTCHANGE " " LCD_STR_E1); + PGM_P const msg0 = GET_TEXT(MSG_FILAMENTCHANGE_E0); + PGM_P const msg1 = GET_TEXT(MSG_FILAMENTCHANGE_E1); if (thermalManager.targetTooColdToExtrude(0)) MENU_ITEM_P(submenu, msg0, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 0); }); else @@ -124,25 +124,25 @@ void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) { else MENU_ITEM_P(gcode, msg1, PSTR("M600 B0 T1")); #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)) MENU_ITEM_P(submenu, msg2, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 2); }); else MENU_ITEM_P(gcode, msg2, PSTR("M600 B0 T2")); #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)) MENU_ITEM_P(submenu, msg3, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 3); }); else MENU_ITEM_P(gcode, msg3, PSTR("M600 B0 T3")); #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)) MENU_ITEM_P(submenu, msg4, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 4); }); else MENU_ITEM_P(gcode, msg4, PSTR("M600 B0 T4")); #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)) MENU_ITEM_P(submenu, msg5, [](){ _menu_temp_filament_op(PauseMode(editable.int8), 5); }); else @@ -157,14 +157,14 @@ void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) { if (!printer_busy()) { // Load filament #if E_STEPPERS == 1 - PGM_P const msg0 = PSTR(MSG_FILAMENTLOAD); + PGM_P const msg0 = GET_TEXT(MSG_FILAMENTLOAD); if (thermalManager.targetTooColdToExtrude(active_extruder)) MENU_ITEM_P(submenu, msg0, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 0); }); else MENU_ITEM_P(gcode, msg0, PSTR("M701")); #else - PGM_P const msg0 = PSTR(MSG_FILAMENTLOAD " " LCD_STR_E0); - PGM_P const msg1 = PSTR(MSG_FILAMENTLOAD " " LCD_STR_E1); + PGM_P const msg0 = GET_TEXT(MSG_FILAMENTLOAD_E0); + PGM_P const msg1 = GET_TEXT(MSG_FILAMENTLOAD_E1); if (thermalManager.targetTooColdToExtrude(0)) MENU_ITEM_P(submenu, msg0, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 0); }); else @@ -174,25 +174,25 @@ void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) { else MENU_ITEM_P(gcode, msg1, PSTR("M701 T1")); #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)) MENU_ITEM_P(submenu, msg2, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 2); }); else MENU_ITEM_P(gcode, msg2, PSTR("M701 T2")); #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)) MENU_ITEM_P(submenu, msg3, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 3); }); else MENU_ITEM_P(gcode, msg3, PSTR("M701 T3")); #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)) MENU_ITEM_P(submenu, msg4, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 4); }); else MENU_ITEM_P(gcode, msg4, PSTR("M701 T4")); #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)) MENU_ITEM_P(submenu, msg5, [](){ _menu_temp_filament_op(PAUSE_MODE_LOAD_FILAMENT, 5); }); 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); }); #endif if (thermalManager.targetHotEnoughToExtrude(0)) - GCODES_ITEM(MSG_FILAMENTUNLOAD " " LCD_STR_E0, PSTR("M702 T0")); + GCODES_ITEM(MSG_FILAMENTUNLOAD_E0, PSTR("M702 T0")); 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)) - GCODES_ITEM(MSG_FILAMENTUNLOAD " " LCD_STR_E1, PSTR("M702 T1")); + GCODES_ITEM(MSG_FILAMENTUNLOAD_E1, PSTR("M702 T1")); 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 (thermalManager.targetHotEnoughToExtrude(2)) - GCODES_ITEM(MSG_FILAMENTUNLOAD " " LCD_STR_E2, PSTR("M702 T2")); + GCODES_ITEM(MSG_FILAMENTUNLOAD_E2, PSTR("M702 T2")); 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 (thermalManager.targetHotEnoughToExtrude(3)) - GCODES_ITEM(MSG_FILAMENTUNLOAD " " LCD_STR_E3, PSTR("M702 T3")); + GCODES_ITEM(MSG_FILAMENTUNLOAD_E3, PSTR("M702 T3")); 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 (thermalManager.targetHotEnoughToExtrude(4)) - GCODES_ITEM(MSG_FILAMENTUNLOAD " " LCD_STR_E4, PSTR("M702 T4")); + GCODES_ITEM(MSG_FILAMENTUNLOAD_E4, PSTR("M702 T4")); 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 (thermalManager.targetHotEnoughToExtrude(5)) - GCODES_ITEM(MSG_FILAMENTUNLOAD " " LCD_STR_E5, PSTR("M702 T5")); + GCODES_ITEM(MSG_FILAMENTUNLOAD_E5, PSTR("M702 T5")); 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 > 4 #endif // E_STEPPERS > 3 @@ -267,22 +267,21 @@ static uint8_t hotend_status_extruder = 0; static PGM_P pause_header() { switch (pause_mode) { case PAUSE_MODE_CHANGE_FILAMENT: - return PSTR(MSG_FILAMENT_CHANGE_HEADER); + return GET_TEXT(MSG_FILAMENT_CHANGE_HEADER); 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: - return PSTR(MSG_FILAMENT_CHANGE_HEADER_UNLOAD); - case PAUSE_MODE_PAUSE_PRINT: + return GET_TEXT(MSG_FILAMENT_CHANGE_HEADER_UNLOAD); default: break; } - return PSTR(MSG_FILAMENT_CHANGE_HEADER_PAUSE); + return GET_TEXT(MSG_FILAMENT_CHANGE_HEADER_PAUSE); } // Portions from STATIC_ITEM... #define HOTEND_STATUS_ITEM() do { \ if (_menuLineNr == _thisItemNr) { \ 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); \ } \ if (_skipStatic && encoderLine <= _thisItemNr) { \ @@ -312,137 +311,42 @@ void menu_pause_option() { // // 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(); - STATIC_ITEM_P(pause_header(), SS_CENTER|SS_INVERT); - STATIC_ITEM_P(msg1); - if (msg2) STATIC_ITEM_P(msg2); - if (msg3 && (LCD_HEIGHT) >= 5) STATIC_ITEM_P(msg3); - if ((!!msg2) + (!!msg3) + 2 < (LCD_HEIGHT) - 1) STATIC_ITEM(" "); - HOTEND_STATUS_ITEM(); + STATIC_ITEM_P(pause_header(), SS_CENTER|SS_INVERT); // 1: Header + if (skip1) SKIP_ITEM(); // Move a single-line message down + STATIC_ITEM_P(msg1); // 2: Message Line 1 + if (has2) STATIC_ITEM_P(msg2); // 3: Message Line 2 + if (has3 && (LCD_HEIGHT) >= 5) STATIC_ITEM_P(msg3); // 4: Message Line 3 (if LCD has 5 lines) + if (skip1 + 1 + has2 + has3 < (LCD_HEIGHT) - 2) SKIP_ITEM(); // Push Hotend Status down, if needed + HOTEND_STATUS_ITEM(); // 5: Hotend Status END_SCREEN(); } -void lcd_pause_pausing_message() { - _lcd_pause_message(PSTR(MSG_PAUSE_PRINT_INIT_1) - #ifdef MSG_PAUSE_PRINT_INIT_2 - , PSTR(MSG_PAUSE_PRINT_INIT_2) - #ifdef MSG_PAUSE_PRINT_INIT_3 - , PSTR(MSG_PAUSE_PRINT_INIT_3) - #endif - #endif - ); -} - -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_pausing_message() { _lcd_pause_message(GET_TEXT(MSG_PAUSE_PRINT_INIT)); } +void lcd_pause_changing_message() { _lcd_pause_message(GET_TEXT(MSG_FILAMENT_CHANGE_INIT)); } +void lcd_pause_unload_message() { _lcd_pause_message(GET_TEXT(MSG_FILAMENT_CHANGE_UNLOAD)); } +void lcd_pause_heating_message() { _lcd_pause_message(GET_TEXT(MSG_FILAMENT_CHANGE_HEATING)); } +void lcd_pause_heat_message() { _lcd_pause_message(GET_TEXT(MSG_FILAMENT_CHANGE_HEAT)); } +void lcd_pause_insert_message() { _lcd_pause_message(GET_TEXT(MSG_FILAMENT_CHANGE_INSERT)); } +void lcd_pause_load_message() { _lcd_pause_message(GET_TEXT(MSG_FILAMENT_CHANGE_LOAD)); } +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_purge_message() { - _lcd_pause_message( - #if ENABLED(ADVANCED_PAUSE_CONTINUOUS_PURGE) - PSTR(MSG_FILAMENT_CHANGE_CONT_PURGE_1) - #ifdef MSG_FILAMENT_CHANGE_CONT_PURGE_2 - , PSTR(MSG_FILAMENT_CHANGE_CONT_PURGE_2) - #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 - ); + #if ENABLED(ADVANCED_PAUSE_CONTINUOUS_PURGE) + _lcd_pause_message(GET_TEXT(MSG_FILAMENT_CHANGE_CONT_PURGE)); + #else + _lcd_pause_message(GET_TEXT(MSG_FILAMENT_CHANGE_PURGE)); + #endif } FORCE_INLINE screenFunc_t ap_message_screen(const PauseMessage message) { diff --git a/Marlin/src/lcd/menu/menu_info.cpp b/Marlin/src/lcd/menu/menu_info.cpp index 26d9441ff7..5ef6bbfc46 100644 --- a/Marlin/src/lcd/menu/menu_info.cpp +++ b/Marlin/src/lcd/menu/menu_info.cpp @@ -34,8 +34,8 @@ #include "game/game.h" #endif -#define STATIC_PAIR(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(MSG, VALUE, STYL) do{ strcpy_P(buffer, PSTR(": ")); strcpy(buffer + 2, VALUE); 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) @@ -51,37 +51,41 @@ #endif ); - char buffer[21]; // for STATIC_PAIR_P + char buffer[21]; // For macro usage printStatistics stats = print_job_timer.getStats(); START_SCREEN(); // 12345678901234567890 - STATIC_PAIR(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_PRINT_COUNT, i16tostr3left(stats.totalPrints), SS_LEFT); // Print Count: 999 + 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("> ", SS_LEFT, duration_t(stats.printTime).toString(buffer)); // > 99y 364d 23h 59m 59s + STATIC_ITEM(MSG_INFO_PRINT_TIME, SS_LEFT); // Total print Time: + 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("> ", SS_LEFT, duration_t(stats.longestPrint).toString(buffer)); // > 99y 364d 23h 59m 59s + STATIC_ITEM(MSG_INFO_PRINT_LONGEST, SS_LEFT); // Longest job time: + 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); - 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 - STATIC_ITEM(SERVICE_NAME_1 MSG_SERVICE_IN, SS_LEFT); // Service X in: - STATIC_ITEM("> ", SS_LEFT, duration_t(stats.nextService1).toString(buffer)); // > 7d 12h 11m 10s + STATIC_ITEM_P(PSTR(SERVICE_NAME_1 " "), SS_LEFT, buffer); // Service X in: + STATIC_ITEM_P(PSTR("> "), SS_LEFT, duration_t(stats.nextService1).toString(buffer)); // > 7d 12h 11m 10s #endif #if SERVICE_INTERVAL_2 > 0 - STATIC_ITEM(SERVICE_NAME_2 MSG_SERVICE_IN, SS_LEFT); - STATIC_ITEM("> ", SS_LEFT, duration_t(stats.nextService2).toString(buffer)); + STATIC_ITEM_P(PSTR(SERVICE_NAME_2 " "), SS_LEFT, buffer); + STATIC_ITEM_P(PSTR("> "), SS_LEFT, duration_t(stats.nextService2).toString(buffer)); #endif #if SERVICE_INTERVAL_3 > 0 - STATIC_ITEM(SERVICE_NAME_3 MSG_SERVICE_IN, SS_LEFT); - STATIC_ITEM("> ", SS_LEFT, duration_t(stats.nextService3).toString(buffer)); + STATIC_ITEM_P(PSTR(SERVICE_NAME_3 " "), SS_LEFT, buffer); + STATIC_ITEM_P(PSTR("> "), SS_LEFT, duration_t(stats.nextService3).toString(buffer)); #endif END_SCREEN(); @@ -99,61 +103,61 @@ void menu_info_thermistors() { #endif ); - char buffer[21]; // for STATIC_PAIR_P + char buffer[21]; // For macro usage START_SCREEN(); #if EXTRUDERS #define THERMISTOR_ID TEMP_SENSOR_0 #include "../thermistornames.h" - STATIC_ITEM("T0: " THERMISTOR_NAME, SS_INVERT); - STATIC_PAIR_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_0_MINTEMP), SS_LEFT); - STATIC_PAIR_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_0_MAXTEMP), SS_LEFT); + STATIC_ITEM_P(PSTR(LCD_STR_E0 ": " THERMISTOR_NAME), SS_INVERT); + VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_0_MINTEMP), SS_LEFT); + VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_0_MAXTEMP), SS_LEFT); #endif #if TEMP_SENSOR_1 != 0 #undef THERMISTOR_ID #define THERMISTOR_ID TEMP_SENSOR_1 #include "../thermistornames.h" - STATIC_ITEM("T1: " THERMISTOR_NAME, SS_INVERT); - STATIC_PAIR_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_1_MINTEMP), SS_LEFT); - STATIC_PAIR_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_1_MAXTEMP), SS_LEFT); + STATIC_ITEM_P(PSTR(LCD_STR_E1 ": " THERMISTOR_NAME), SS_INVERT); + VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_1_MINTEMP), SS_LEFT); + VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_1_MAXTEMP), SS_LEFT); #endif #if TEMP_SENSOR_2 != 0 #undef THERMISTOR_ID #define THERMISTOR_ID TEMP_SENSOR_2 #include "../thermistornames.h" - STATIC_ITEM("T2: " THERMISTOR_NAME, SS_INVERT); - STATIC_PAIR_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_2_MINTEMP), SS_LEFT); - STATIC_PAIR_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_2_MAXTEMP), SS_LEFT); + STATIC_ITEM_P(PSTR(LCD_STR_E2 ": " THERMISTOR_NAME), SS_INVERT); + VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_2_MINTEMP), SS_LEFT); + VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_2_MAXTEMP), SS_LEFT); #endif #if TEMP_SENSOR_3 != 0 #undef THERMISTOR_ID #define THERMISTOR_ID TEMP_SENSOR_3 #include "../thermistornames.h" - STATIC_ITEM("T3: " THERMISTOR_NAME, SS_INVERT); - STATIC_PAIR_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_3_MINTEMP), SS_LEFT); - STATIC_PAIR_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_3_MAXTEMP), SS_LEFT); + STATIC_ITEM_P(PSTR(LCD_STR_E3 ": " THERMISTOR_NAME), SS_INVERT); + VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_3_MINTEMP), SS_LEFT); + VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_3_MAXTEMP), SS_LEFT); #endif #if TEMP_SENSOR_4 != 0 #undef THERMISTOR_ID #define THERMISTOR_ID TEMP_SENSOR_4 #include "../thermistornames.h" - STATIC_ITEM("T4: " THERMISTOR_NAME, SS_INVERT); - STATIC_PAIR_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_4_MINTEMP), SS_LEFT); - STATIC_PAIR_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_4_MAXTEMP), SS_LEFT); + STATIC_ITEM_P(PSTR(LCD_STR_E4 ": " THERMISTOR_NAME), SS_INVERT); + VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_4_MINTEMP), SS_LEFT); + VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_4_MAXTEMP), SS_LEFT); #endif #if TEMP_SENSOR_5 != 0 #undef THERMISTOR_ID #define THERMISTOR_ID TEMP_SENSOR_5 #include "../thermistornames.h" - STATIC_ITEM("T5: " THERMISTOR_NAME, SS_INVERT); - STATIC_PAIR_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_5_MINTEMP), SS_LEFT); - STATIC_PAIR_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_5_MAXTEMP), SS_LEFT); + STATIC_ITEM_P(PSTR(LCD_STR_E5 ": " THERMISTOR_NAME), SS_INVERT); + VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_5_MINTEMP), SS_LEFT); + VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_5_MAXTEMP), SS_LEFT); #endif #if EXTRUDERS @@ -174,9 +178,9 @@ void menu_info_thermistors() { #undef THERMISTOR_ID #define THERMISTOR_ID TEMP_SENSOR_BED #include "../thermistornames.h" - STATIC_ITEM("TBed:" THERMISTOR_NAME, SS_INVERT); - STATIC_PAIR_P(MSG_INFO_MIN_TEMP, STRINGIFY(BED_MINTEMP), SS_LEFT); - STATIC_PAIR_P(MSG_INFO_MAX_TEMP, STRINGIFY(BED_MAXTEMP), SS_LEFT); + STATIC_ITEM_P(PSTR("BED:" THERMISTOR_NAME), SS_INVERT); + VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(BED_MINTEMP), SS_LEFT); + VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(BED_MAXTEMP), SS_LEFT); STATIC_ITEM( #if WATCH_BED MSG_INFO_RUNAWAY_ON @@ -193,9 +197,9 @@ void menu_info_thermistors() { #undef THERMISTOR_ID #define THERMISTOR_ID TEMP_SENSOR_CHAMBER #include "../thermistornames.h" - STATIC_ITEM("TCham:" THERMISTOR_NAME, SS_INVERT); - STATIC_PAIR_P(MSG_INFO_MIN_TEMP, STRINGIFY(CHAMBER_MINTEMP), SS_LEFT); - STATIC_PAIR_P(MSG_INFO_MAX_TEMP, STRINGIFY(CHAMBER_MAXTEMP), SS_LEFT); + STATIC_ITEM_P(PSTR("CHAM:" THERMISTOR_NAME), SS_INVERT); + VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(CHAMBER_MINTEMP), SS_LEFT); + VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(CHAMBER_MAXTEMP), SS_LEFT); STATIC_ITEM( #if WATCH_CHAMBER MSG_INFO_RUNAWAY_ON @@ -220,16 +224,16 @@ void menu_info_board() { #endif ); - char buffer[21]; // for STATIC_PAIR_P + char buffer[21]; // For macro usage 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 - STATIC_ITEM(BOARD_WEBSITE_URL, SS_LEFT); // www.my3dprinter.com + STATIC_ITEM_P(PSTR(BOARD_WEBSITE_URL), SS_LEFT); // www.my3dprinter.com #endif - STATIC_PAIR_P(MSG_INFO_BAUDRATE, STRINGIFY(BAUDRATE), SS_CENTER); // Baud: 250000 - STATIC_PAIR_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_BAUDRATE, STRINGIFY(BAUDRATE), SS_CENTER); // Baud: 250000 + VALUE_ITEM_P(MSG_INFO_PROTOCOL, PROTOCOL_VERSION, SS_CENTER); // Protocol: 1.0 + VALUE_ITEM_P(MSG_INFO_PSU, PSU_NAME, SS_CENTER); END_SCREEN(); } @@ -259,12 +263,13 @@ void menu_info_board() { #endif ); START_SCREEN(); - STATIC_ITEM(MSG_MARLIN, SS_CENTER|SS_INVERT); // Marlin - STATIC_ITEM(SHORT_BUILD_VERSION); // x.x.x-Branch - STATIC_ITEM(STRING_DISTRIBUTION_DATE); // YYYY-MM-DD HH:MM - STATIC_ITEM(MACHINE_NAME); // My3DPrinter - STATIC_ITEM(WEBSITE_URL); // www.my3dprinter.com - STATIC_ITEM(MSG_INFO_EXTRUDERS ": " STRINGIFY(EXTRUDERS)); // Extruders: 2 + STATIC_ITEM_P(PSTR(MSG_MARLIN), SS_CENTER|SS_INVERT); // Marlin + STATIC_ITEM_P(PSTR(SHORT_BUILD_VERSION)); // x.x.x-Branch + STATIC_ITEM_P(PSTR(STRING_DISTRIBUTION_DATE)); // YYYY-MM-DD HH:MM + STATIC_ITEM_P(PSTR(MACHINE_NAME)); // My3DPrinter + STATIC_ITEM_P(PSTR(WEBSITE_URL)); // www.my3dprinter.com + char buffer[21]; + VALUE_ITEM_P(MSG_INFO_EXTRUDERS, STRINGIFY(EXTRUDERS), SS_CENTER); // Extruders: 2 #if ENABLED(AUTO_BED_LEVELING_3POINT) STATIC_ITEM(MSG_3POINT_LEVELING); // 3-Point Leveling #elif ENABLED(AUTO_BED_LEVELING_LINEAR) diff --git a/Marlin/src/lcd/menu/menu_main.cpp b/Marlin/src/lcd/menu/menu_main.cpp index b1e9d3a504..6bba3873b3 100644 --- a/Marlin/src/lcd/menu/menu_main.cpp +++ b/Marlin/src/lcd/menu/menu_main.cpp @@ -44,7 +44,7 @@ #if MACHINE_CAN_STOP 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 @@ -238,13 +238,13 @@ void menu_main() { #if HAS_SERVICE_INTERVALS #if SERVICE_INTERVAL_1 > 0 - SUBMENU(SERVICE_NAME_1, menu_service1); + SUBMENU_P(PSTR(SERVICE_NAME_1), menu_service1); #endif #if SERVICE_INTERVAL_2 > 0 - SUBMENU(SERVICE_NAME_2, menu_service2); + SUBMENU_P(PSTR(SERVICE_NAME_2), menu_service2); #endif #if SERVICE_INTERVAL_3 > 0 - SUBMENU(SERVICE_NAME_3, menu_service3); + SUBMENU_P(PSTR(SERVICE_NAME_3), menu_service3); #endif #endif diff --git a/Marlin/src/lcd/menu/menu_media.cpp b/Marlin/src/lcd/menu/menu_media.cpp index d05ec01c82..11c57da605 100644 --- a/Marlin/src/lcd/menu/menu_media.cpp +++ b/Marlin/src/lcd/menu/menu_media.cpp @@ -80,9 +80,9 @@ inline void sdcard_start_selected_file() { buffer[0] = ' '; strcpy(buffer + 1, longest); 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, - PSTR(MSG_START_PRINT), buffer, PSTR("?") + GET_TEXT(MSG_START_PRINT), buffer, PSTR("?") ); } @@ -134,11 +134,11 @@ void menu_media() { BACK_ITEM(MSG_MAIN); if (card.flag.workDirIsRoot) { #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 } 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 (_menuLineNr == _thisItemNr) { diff --git a/Marlin/src/lcd/menu/menu_mixer.cpp b/Marlin/src/lcd/menu/menu_mixer.cpp index c89e67d368..bc3d2798f7 100644 --- a/Marlin/src/lcd/menu/menu_mixer.cpp +++ b/Marlin/src/lcd/menu/menu_mixer.cpp @@ -50,7 +50,8 @@ } if (ui.should_draw()) { 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); LCDPRINT(tmp); } @@ -75,7 +76,8 @@ if (ui.should_draw()) { 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); LCDPRINT(tmp); } @@ -101,13 +103,13 @@ 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); sprintf_P(tmp, PSTR("%4d.%d mm"), int(mixer.gradient.start_z), int(mixer.gradient.start_z * 10) % 10); LCDPRINT(tmp); 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); sprintf_P(tmp, PSTR("%4d.%d mm"), int(mixer.gradient.end_z), int(mixer.gradient.end_z * 10) % 10); LCDPRINT(tmp); @@ -122,9 +124,11 @@ static uint8_t v_index; #if DUAL_MIXING_EXTRUDER void _lcd_draw_mix(const uint8_t y) { - char tmp[21]; - sprintf_P(tmp, PSTR(MSG_MIX ": %3d%% %3d%%"), int(mixer.mix[0]), int(mixer.mix[1])); + char tmp[10]; // "100%_100%" 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); } #endif @@ -158,7 +162,7 @@ void lcd_mixer_mix_edit() { #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(); BACK_ITEM(MSG_MIXER); @@ -250,14 +254,14 @@ void lcd_mixer_mix_edit() { // void menu_mixer_vtools_reset_confirm() { do_select_screen( - PSTR(MSG_BUTTON_RESET), PSTR(MSG_BUTTON_CANCEL), + GET_TEXT(MSG_BUTTON_RESET), GET_TEXT(MSG_BUTTON_CANCEL), []{ mixer.reset_vtools(); LCD_MESSAGEPGM(MSG_VTOOLS_RESET); ui.return_to_status(); }, ui.goto_previous_screen, - PSTR(MSG_RESET_VTOOLS), nullptr, PSTR("?") + GET_TEXT(MSG_RESET_VTOOLS), nullptr, PSTR("?") ); } diff --git a/Marlin/src/lcd/menu/menu_mmu2.cpp b/Marlin/src/lcd/menu/menu_mmu2.cpp index 0412d86a6f..aa6eb27ea1 100644 --- a/Marlin/src/lcd/menu/menu_mmu2.cpp +++ b/Marlin/src/lcd/menu/menu_mmu2.cpp @@ -38,7 +38,7 @@ bool mmuMenuWait; void _mmu2_load_filamentToNozzle(uint8_t index) { ui.reset_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(); } @@ -49,7 +49,7 @@ inline void action_mmu2_load_filament_to_nozzle(const uint8_t tool) { void _mmu2_load_filament(uint8_t index) { 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); ui.reset_status(); } @@ -89,7 +89,7 @@ void menu_mmu2_load_to_nozzle() { void _mmu2_eject_filament(uint8_t index) { ui.reset_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(); } @@ -162,7 +162,7 @@ void menu_mmu2_pause() { currentTool = mmu2.get_current_tool(); START_MENU(); #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 ACTION_ITEM(MSG_MMU2_RESUME, [](){ mmuMenuWait = false; }); ACTION_ITEM(MSG_MMU2_UNLOAD_FILAMENT, [](){ mmu2.unload(); }); diff --git a/Marlin/src/lcd/menu/menu_motion.cpp b/Marlin/src/lcd/menu/menu_motion.cpp index 6a3f7cec43..7861dfb7ea 100644 --- a/Marlin/src/lcd/menu/menu_motion.cpp +++ b/Marlin/src/lcd/menu/menu_motion.cpp @@ -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)); } } -void lcd_move_x() { _lcd_move_xyz(PSTR(MSG_MOVE_X), X_AXIS); } -void lcd_move_y() { _lcd_move_xyz(PSTR(MSG_MOVE_Y), Y_AXIS); } -void lcd_move_z() { _lcd_move_xyz(PSTR(MSG_MOVE_Z), Z_AXIS); } +void lcd_move_x() { _lcd_move_xyz(GET_TEXT(MSG_MOVE_X), X_AXIS); } +void lcd_move_y() { _lcd_move_xyz(GET_TEXT(MSG_MOVE_Y), Y_AXIS); } +void lcd_move_z() { _lcd_move_xyz(GET_TEXT(MSG_MOVE_Z), Z_AXIS); } #if E_MANUAL @@ -185,21 +185,19 @@ void lcd_move_z() { _lcd_move_xyz(PSTR(MSG_MOVE_Z), Z_AXIS); } ui.encoderPosition = 0; } if (ui.should_draw()) { - PGM_P pos_label; - #if E_MANUAL == 1 - pos_label = PSTR(MSG_MOVE_E); - #else + PGM_P pos_label = GET_TEXT(MSG_MOVE_E); + #if E_MANUAL > 1 switch (eindex) { - default: pos_label = PSTR(MSG_MOVE_E LCD_STR_N0); break; - case 1: pos_label = PSTR(MSG_MOVE_E LCD_STR_N1); break; + default: pos_label = GET_TEXT(MSG_MOVE_E0); break; + case 1: pos_label = GET_TEXT(MSG_MOVE_E1); break; #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 - 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 - 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 - 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 > 4 #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_01MM, [](){ _goto_manual_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); char tmp[20], numstr[10]; // Determine digits needed right of decimal 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; - 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); MENU_ITEM_ADDON_END(); } @@ -316,35 +314,35 @@ void menu_move() { #if EXTRUDERS >= 4 switch (active_extruder) { - case 0: GCODES_ITEM(MSG_SELECT " " LCD_STR_E1, PSTR("T1")); break; - case 1: GCODES_ITEM(MSG_SELECT " " LCD_STR_E0, PSTR("T0")); break; - case 2: GCODES_ITEM(MSG_SELECT " " LCD_STR_E3, PSTR("T3")); break; - case 3: GCODES_ITEM(MSG_SELECT " " LCD_STR_E2, PSTR("T2")); break; + case 0: GCODES_ITEM(MSG_SELECT_E1, PSTR("T1")); break; + case 1: GCODES_ITEM(MSG_SELECT_E0, PSTR("T0")); break; + case 2: GCODES_ITEM(MSG_SELECT_E3, PSTR("T3")); break; + case 3: GCODES_ITEM(MSG_SELECT_E2, PSTR("T2")); break; #if EXTRUDERS == 6 - case 4: GCODES_ITEM(MSG_SELECT " " LCD_STR_E5, PSTR("T5")); break; - case 5: GCODES_ITEM(MSG_SELECT " " LCD_STR_E4, PSTR("T4")); break; + case 4: GCODES_ITEM(MSG_SELECT_E5, PSTR("T5")); break; + case 5: GCODES_ITEM(MSG_SELECT_E4, PSTR("T4")); break; #endif } #elif EXTRUDERS == 3 if (active_extruder < 2) { if (active_extruder) - GCODES_ITEM(MSG_SELECT " " LCD_STR_E0, PSTR("T0")); + GCODES_ITEM(MSG_SELECT_E0, PSTR("T0")); else - GCODES_ITEM(MSG_SELECT " " LCD_STR_E1, PSTR("T1")); + GCODES_ITEM(MSG_SELECT_E1, PSTR("T1")); } #else if (active_extruder) - GCODES_ITEM(MSG_SELECT " " LCD_STR_E0, PSTR("T0")); + GCODES_ITEM(MSG_SELECT_E0, PSTR("T0")); else - GCODES_ITEM(MSG_SELECT " " LCD_STR_E1, PSTR("T1")); + GCODES_ITEM(MSG_SELECT_E1, PSTR("T1")); #endif #elif ENABLED(DUAL_X_CARRIAGE) if (active_extruder) - GCODES_ITEM(MSG_SELECT " " LCD_STR_E0, PSTR("T0")); + GCODES_ITEM(MSG_SELECT_E0, PSTR("T0")); else - GCODES_ITEM(MSG_SELECT " " LCD_STR_E1, PSTR("T1")); + GCODES_ITEM(MSG_SELECT_E1, PSTR("T1")); #endif @@ -353,7 +351,7 @@ void menu_move() { // The current extruder 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) diff --git a/Marlin/src/lcd/menu/menu_service.cpp b/Marlin/src/lcd/menu/menu_service.cpp index fb7f05c905..0d305d0281 100644 --- a/Marlin/src/lcd/menu/menu_service.cpp +++ b/Marlin/src/lcd/menu/menu_service.cpp @@ -45,10 +45,10 @@ inline void _service_reset(const int index) { char sram[30]; strncpy_P(sram, PSTR(SERVICE_NAME_1), 29); do_select_screen( - PSTR(MSG_BUTTON_RESET), PSTR(MSG_BUTTON_CANCEL), + GET_TEXT(MSG_BUTTON_RESET), GET_TEXT(MSG_BUTTON_CANCEL), []{ _service_reset(1); }, ui.goto_previous_screen, - PSTR(MSG_SERVICE_RESET), sram, PSTR("?") + GET_TEXT(MSG_SERVICE_RESET), sram, PSTR("?") ); } #endif @@ -58,10 +58,10 @@ inline void _service_reset(const int index) { char sram[30]; strncpy_P(sram, PSTR(SERVICE_NAME_2), 29); do_select_screen( - PSTR(MSG_BUTTON_RESET), PSTR(MSG_BUTTON_CANCEL), + GET_TEXT(MSG_BUTTON_RESET), GET_TEXT(MSG_BUTTON_CANCEL), []{ _service_reset(2); }, ui.goto_previous_screen, - PSTR(MSG_SERVICE_RESET), sram, PSTR("?") + GET_TEXT(MSG_SERVICE_RESET), sram, PSTR("?") ); } #endif @@ -71,10 +71,10 @@ inline void _service_reset(const int index) { char sram[30]; strncpy_P(sram, PSTR(SERVICE_NAME_3), 29); do_select_screen( - PSTR(MSG_BUTTON_RESET), PSTR(MSG_BUTTON_CANCEL), + GET_TEXT(MSG_BUTTON_RESET), GET_TEXT(MSG_BUTTON_CANCEL), []{ _service_reset(3); }, ui.goto_previous_screen, - PSTR(MSG_SERVICE_RESET), sram, PSTR("?") + GET_TEXT(MSG_SERVICE_RESET), sram, PSTR("?") ); } #endif diff --git a/Marlin/src/lcd/menu/menu_temperature.cpp b/Marlin/src/lcd/menu/menu_temperature.cpp index 6d5f3933e3..0d9d16bffe 100644 --- a/Marlin/src/lcd/menu/menu_temperature.cpp +++ b/Marlin/src/lcd/menu/menu_temperature.cpp @@ -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 #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##_END " " LCD_STR_E##N, [](){ _preheat_end(M-1, N); }); \ + ACTION_ITEM(MSG_PREHEAT_##M##_H##N, [](){ _preheat_both(M-1, N); }); \ + ACTION_ITEM(MSG_PREHEAT_##M##_END_E##N, [](){ _preheat_end(M-1, N); }); \ }while(0) #if HAS_HEATED_BED #define PREHEAT_ITEMS(M,N) _PREHEAT_ITEMS(M,N) #else #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 void menu_preheat_m1() { @@ -196,7 +196,7 @@ void menu_temperature() { #if HOTENDS == 1 EDIT_ITEM_FAST(int3, MSG_NOZZLE, &thermalManager.temp_hotend[0].target, 0, HEATER_0_MAXTEMP - 15, [](){ thermalManager.start_watching_hotend(0); }); #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(1); #if HOTENDS > 2 @@ -237,23 +237,23 @@ void menu_temperature() { #if FAN_COUNT > 0 #if HAS_FAN0 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) - 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 #if HAS_FAN1 || (ENABLED(SINGLENOZZLE) && EXTRUDERS > 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) - 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 #if HAS_FAN2 || (ENABLED(SINGLENOZZLE) && EXTRUDERS > 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) - 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 // FAN_COUNT > 0 diff --git a/Marlin/src/lcd/menu/menu_tmc.cpp b/Marlin/src/lcd/menu/menu_tmc.cpp index 4d6f539e2d..ee74b95171 100644 --- a/Marlin/src/lcd/menu/menu_tmc.cpp +++ b/Marlin/src/lcd/menu/menu_tmc.cpp @@ -32,7 +32,7 @@ #include "../../module/stepper/indirection.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() { START_MENU(); @@ -81,7 +81,7 @@ void menu_tmc_current() { #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() { START_MENU(); @@ -132,7 +132,7 @@ void menu_tmc_current() { #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() { START_MENU(); @@ -156,7 +156,7 @@ void menu_tmc_current() { #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() { START_MENU(); diff --git a/Marlin/src/lcd/menu/menu_tune.cpp b/Marlin/src/lcd/menu/menu_tune.cpp index b096cd75bb..e89d18995c 100644 --- a/Marlin/src/lcd/menu/menu_tune.cpp +++ b/Marlin/src/lcd/menu/menu_tune.cpp @@ -74,7 +74,8 @@ #else lcd_moveto(0, LCD_HEIGHT - 1); #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)])); } #endif @@ -88,12 +89,12 @@ } #if ENABLED(BABYSTEP_XY) - void _lcd_babystep_x() { _lcd_babystep(X_AXIS, PSTR(MSG_BABYSTEP_X)); } - void _lcd_babystep_y() { _lcd_babystep(Y_AXIS, PSTR(MSG_BABYSTEP_Y)); } + void _lcd_babystep_x() { _lcd_babystep(X_AXIS, GET_TEXT(MSG_BABYSTEP_X)); } + void _lcd_babystep_y() { _lcd_babystep(Y_AXIS, GET_TEXT(MSG_BABYSTEP_Y)); } #endif #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); } #endif @@ -122,7 +123,7 @@ void menu_tune() { #if HOTENDS == 1 EDIT_ITEM_FAST(int3, MSG_NOZZLE, &thermalManager.temp_hotend[0].target, 0, HEATER_0_MAXTEMP - 15, [](){ thermalManager.start_watching_hotend(0); }); #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(1); #if HOTENDS > 2 @@ -155,24 +156,31 @@ void menu_tune() { // #if FAN_COUNT > 0 #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]; - 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) - 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 #if HAS_FAN1 || (ENABLED(SINGLENOZZLE) && EXTRUDERS > 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) - 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 #if HAS_FAN2 || (ENABLED(SINGLENOZZLE) && EXTRUDERS > 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) - 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 // 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); }); #elif EXTRUDERS 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(1); #if EXTRUDERS > 2 diff --git a/Marlin/src/lcd/menu/menu_ubl.cpp b/Marlin/src/lcd/menu/menu_ubl.cpp index 2962d65d06..74a51f0b7b 100644 --- a/Marlin/src/lcd/menu/menu_ubl.cpp +++ b/Marlin/src/lcd/menu/menu_ubl.cpp @@ -79,7 +79,7 @@ void _lcd_mesh_edit_NOP() { float lcd_mesh_edit() { ui.goto_screen(_lcd_mesh_edit_NOP); 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; } @@ -89,7 +89,7 @@ void lcd_mesh_edit_setup(const float &initial) { } 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() { @@ -358,7 +358,7 @@ void _lcd_ubl_load_mesh_cmd() { char ubl_lcd_gcode[25]; sprintf_P(ubl_lcd_gcode, PSTR("G29 L%i"), ubl_storage_slot); 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); } @@ -369,7 +369,7 @@ void _lcd_ubl_save_mesh_cmd() { char ubl_lcd_gcode[25]; sprintf_P(ubl_lcd_gcode, PSTR("G29 S%i"), ubl_storage_slot); 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); } @@ -578,13 +578,13 @@ void _menu_ubl_tools() { void _lcd_ubl_step_by_step() { START_MENU(); BACK_ITEM(MSG_UBL_LEVEL_BED); - GCODES_ITEM("1 " MSG_UBL_BUILD_COLD_MESH, PSTR("G28\nG29 P1")); - GCODES_ITEM("2 " MSG_UBL_SMART_FILLIN, PSTR("G29 P3 T0")); - SUBMENU("3 " MSG_UBL_VALIDATE_MESH_MENU, _lcd_ubl_validate_mesh); - GCODES_ITEM("4 " MSG_UBL_FINE_TUNE_ALL, PSTR("G29 P4 R999 T")); - SUBMENU("5 " MSG_UBL_VALIDATE_MESH_MENU, _lcd_ubl_validate_mesh); - GCODES_ITEM("6 " MSG_UBL_FINE_TUNE_ALL, PSTR("G29 P4 R999 T")); - ACTION_ITEM("7 " MSG_UBL_SAVE_MESH, _lcd_ubl_save_mesh_cmd); + GCODES_ITEM(MSG_UBL_1_BUILD_COLD_MESH, PSTR("G28\nG29 P1")); + GCODES_ITEM(MSG_UBL_2_SMART_FILLIN, PSTR("G29 P3 T0")); + SUBMENU(MSG_UBL_3_VALIDATE_MESH_MENU, _lcd_ubl_validate_mesh); + GCODES_ITEM(MSG_UBL_4_FINE_TUNE_ALL, PSTR("G29 P4 R999 T")); + SUBMENU(MSG_UBL_5_VALIDATE_MESH_MENU, _lcd_ubl_validate_mesh); + GCODES_ITEM(MSG_UBL_6_FINE_TUNE_ALL, PSTR("G29 P4 R999 T")); + ACTION_ITEM(MSG_UBL_7_SAVE_MESH, _lcd_ubl_save_mesh_cmd); END_MENU(); } diff --git a/Marlin/src/lcd/ultralcd.cpp b/Marlin/src/lcd/ultralcd.cpp index cb5d8ad8fd..fd762450b9 100644 --- a/Marlin/src/lcd/ultralcd.cpp +++ b/Marlin/src/lcd/ultralcd.cpp @@ -44,19 +44,15 @@ #if HAS_SPI_LCD #if ENABLED(STATUS_MESSAGE_SCROLLING) uint8_t MarlinUI::status_scroll_offset; // = 0 - #if LONG_FILENAME_LENGTH > CHARSIZE * 2 * (LCD_WIDTH) - #define MAX_MESSAGE_LENGTH LONG_FILENAME_LENGTH - #else - #define MAX_MESSAGE_LENGTH CHARSIZE * 2 * (LCD_WIDTH) - #endif + constexpr uint8_t MAX_MESSAGE_LENGTH = max(LONG_FILENAME_LENGTH, MAX_LANG_CHARSIZE * 2 * (LCD_WIDTH)); #else - #define MAX_MESSAGE_LENGTH CHARSIZE * (LCD_WIDTH) + constexpr uint8_t MAX_MESSAGE_LENGTH = MAX_LANG_CHARSIZE * (LCD_WIDTH); #endif #elif ENABLED(EXTENSIBLE_UI) - #define MAX_MESSAGE_LENGTH 63 + constexpr uint8_t MAX_MESSAGE_LENGTH = 63; #endif -#ifdef MAX_MESSAGE_LENGTH +#if HAS_SPI_LCD || ENABLED(EXTENSIBLE_UI) uint8_t MarlinUI::alert_level; // = 0 char MarlinUI::status_message[MAX_MESSAGE_LENGTH + 1]; #endif @@ -590,9 +586,12 @@ void MarlinUI::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(); - 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. #ifdef LED_BACKLIGHT_TIMEOUT @@ -843,13 +842,13 @@ void MarlinUI::update() { if (old_sd_status == 2) card.beginautostart(); // Initial boot else - set_status_P(PSTR(MSG_MEDIA_INSERTED)); + set_status_P(GET_TEXT(MSG_MEDIA_INSERTED)); } #if PIN_EXISTS(SD_DETECT) else { card.release(); if (old_sd_status != 2) { - set_status_P(PSTR(MSG_MEDIA_REMOVED)); + set_status_P(GET_TEXT(MSG_MEDIA_REMOVED)); #if HAS_LCD_MENU return_to_status(); #endif @@ -1428,14 +1427,14 @@ void MarlinUI::update() { #include "../Marlin.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 */ void MarlinUI::reset_status() { - static const char printing[] PROGMEM = MSG_PRINTING; - static const char welcome[] PROGMEM = WELCOME_MSG; + PGM_P printing = GET_TEXT(MSG_PRINTING); + PGM_P welcome = GET_TEXT(WELCOME_MSG); #if SERVICE_INTERVAL_1 > 0 static const char service1[] PROGMEM = { "> " SERVICE_NAME_1 "!" }; #endif @@ -1487,7 +1486,7 @@ void MarlinUI::update() { host_prompt_open(PROMPT_INFO, PSTR("UI Aborted"), PSTR("Dismiss")); #endif print_job_timer.stop(); - set_status_P(PSTR(MSG_PRINT_ABORTED)); + set_status_P(GET_TEXT(MSG_PRINT_ABORTED)); #if HAS_LCD_MENU return_to_status(); #endif @@ -1499,7 +1498,7 @@ void MarlinUI::update() { void MarlinUI::pause_print() { #if HAS_LCD_MENU - synchronize(PSTR(MSG_PAUSE_PRINT)); + synchronize(GET_TEXT(MSG_PAUSE_PRINT)); #endif #if ENABLED(POWER_LOSS_RECOVERY) @@ -1510,7 +1509,7 @@ void MarlinUI::update() { host_prompt_open(PROMPT_PAUSE_RESUME, PSTR("UI Pause"), PSTR("Resume")); #endif - set_status_P(print_paused); // MSG_PRINT_PAUSED + set_status_P(print_paused); #if ENABLED(PARK_HEAD_ON_PAUSE) #if HAS_SPI_LCD diff --git a/Marlin/src/lcd/ultralcd.h b/Marlin/src/lcd/ultralcd.h index 72f6ec2cb9..0e27e7eb19 100644 --- a/Marlin/src/lcd/ultralcd.h +++ b/Marlin/src/lcd/ultralcd.h @@ -380,7 +380,7 @@ public: #endif 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 set_status(const char* const message, const bool persist=false); static void set_status_P(PGM_P const message, const int8_t level=0); @@ -598,5 +598,8 @@ private: extern MarlinUI ui; -#define LCD_MESSAGEPGM(x) ui.set_status_P(PSTR(x)) -#define LCD_ALERTMESSAGEPGM(x) ui.set_alert_status_P(PSTR(x)) +#define LCD_MESSAGEPGM_P(x) ui.set_status_P(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)) diff --git a/Marlin/src/module/endstops.cpp b/Marlin/src/module/endstops.cpp index 6970a051b3..0cb7c603d4 100644 --- a/Marlin/src/module/endstops.cpp +++ b/Marlin/src/module/endstops.cpp @@ -302,7 +302,7 @@ void Endstops::not_homing() { // If the last move failed to trigger an endstop, call kill void Endstops::validate_homing_move() { if (trigger_state()) hit_on_purpose(); - else kill(PSTR(MSG_ERR_HOMING_FAILED)); + else kill(GET_TEXT(MSG_LCD_HOMING_FAILED)); } #endif @@ -373,7 +373,7 @@ void Endstops::event_handler() { SERIAL_EOL(); #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 #if BOTH(SD_ABORT_ON_ENDSTOP_HIT, SDSUPPORT) diff --git a/Marlin/src/module/motion.cpp b/Marlin/src/module/motion.cpp index fa80565eb4..8182f23ae0 100644 --- a/Marlin/src/module/motion.cpp +++ b/Marlin/src/module/motion.cpp @@ -1053,8 +1053,8 @@ uint8_t axes_need_homing(uint8_t axis_bits/*=0x07*/) { bool axis_unhomed_error(uint8_t axis_bits/*=0x07*/) { if ((axis_bits = axes_need_homing(axis_bits))) { - static const char home_first[] PROGMEM = MSG_HOME_FIRST; - char msg[sizeof(home_first)]; + PGM_P home_first = GET_TEXT(MSG_HOME_FIRST); + char msg[strlen_P(home_first)+1]; sprintf_P(msg, home_first, TEST(axis_bits, X_AXIS) ? "X" : "", TEST(axis_bits, Y_AXIS) ? "Y" : "", diff --git a/Marlin/src/module/probe.cpp b/Marlin/src/module/probe.cpp index 0217a2fd59..f183170a20 100644 --- a/Marlin/src/module/probe.cpp +++ b/Marlin/src/module/probe.cpp @@ -281,7 +281,7 @@ FORCE_INLINE void probe_specific_action(const bool deploy) { BUZZ(100, 659); 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.set_status_P(ds_str, 99); 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")); #endif #if ENABLED(EXTENSIBLE_UI) - ExtUI::onUserConfirmRequired(PSTR("Stow Probe")); + ExtUI::onUserConfirmRequired_P(PSTR("Stow Probe")); #endif while (wait_for_user) idle(); ui.reset_status(); @@ -406,7 +406,7 @@ bool set_probe_deployed(const bool deploy) { if (PROBE_STOWED() == deploy) { // Unchanged after deploy/stow action? if (IsRunning()) { SERIAL_ERROR_MSG("Z-Probe failed"); - LCD_ALERTMESSAGEPGM("Err: ZPROBE"); + LCD_ALERTMESSAGEPGM_P(PSTR("Err: ZPROBE")); } stop(); return true; @@ -736,7 +736,7 @@ float probe_at_point(const float &rx, const float &ry, const ProbePtRaise raise_ if (isnan(measured_z)) { STOW_PROBE(); - LCD_MESSAGEPGM(MSG_ERR_PROBING_FAILED); + LCD_MESSAGEPGM(MSG_LCD_PROBING_FAILED); SERIAL_ERROR_MSG(MSG_ERR_PROBING_FAILED); } diff --git a/Marlin/src/module/temperature.cpp b/Marlin/src/module/temperature.cpp index ba4aec0155..e1cd9c5619 100644 --- a/Marlin/src/module/temperature.cpp +++ b/Marlin/src/module/temperature.cpp @@ -94,17 +94,17 @@ Temperature thermalManager; */ #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 - #define _BED_PSTR(M,E) + #define _BED_PSTR(h) #endif #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 - #define _CHAMBER_PSTR(M,E) + #define _CHAMBER_PSTR(h) #endif -#define _E_PSTR(M,E,N) ((HOTENDS) > (N) && (E) == (N)) ? PSTR(LCD_STR_E##N " " M) : -#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 _E_PSTR(h,N) ((HOTENDS) > N && (h) == N) ? PSTR(LCD_STR_E##N) : +#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: @@ -518,10 +518,10 @@ volatile bool Temperature::temp_meas_ready = false; if (current_temp > watch_temp_target) heated = true; // - Flag if target temperature reached } 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? - _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 } // 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 - #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 void Temperature::checkExtruderAutoFans() { + #define _EFAN(A,B) _EFANOVERLAP(A,B) ? B : static const uint8_t fanBit[] PROGMEM = { 0 #if HOTENDS > 1 - , AUTO_1_IS_0 ? 0 : 1 + , _EFAN(1,0) 1 #endif #if HOTENDS > 2 - , AUTO_2_IS_0 ? 0 : AUTO_2_IS_1 ? 1 : 2 + , _EFAN(2,0) _EFAN(2,1) 2 #endif #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 #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 #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 #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 }; uint8_t fanState = 0; @@ -731,7 +720,7 @@ int16_t Temperature::getHeaterPower(const heater_ind_t heater_id) { // 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; #if USE_BEEPER for (uint8_t i = 20; i--;) { @@ -740,7 +729,7 @@ inline void loud_kill(PGM_P const lcd_msg) { } WRITE(BEEPER_PIN, HIGH); #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) { @@ -777,23 +766,23 @@ void Temperature::_temp_error(const heater_ind_t heater, PGM_P const serial_msg, if (ELAPSED(ms, expire_ms)) ++killed; break; case 2: - loud_kill(lcd_msg); + loud_kill(lcd_msg1, heater); ++killed; break; } #elif defined(BOGUS_TEMPERATURE_GRACE_PERIOD) UNUSED(killed); #else - if (!killed) { killed = 1; loud_kill(lcd_msg); } + if (!killed) { killed = 1; loud_kill(lcd_msg, heater); } #endif } 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) { - _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 @@ -1019,7 +1008,7 @@ void Temperature::manage_heater() { HOTEND_LOOP() { #if ENABLED(THERMAL_PROTECTION_HOTENDS) 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 #if HEATER_IDLE_HANDLER @@ -1037,7 +1026,7 @@ void Temperature::manage_heater() { // Make sure temperature is increasing 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? - _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 start_watching_hotend(e); } @@ -1046,7 +1035,7 @@ void Temperature::manage_heater() { #if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT) // Make sure measured temperatures are close together 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 } // HOTEND_LOOP @@ -1072,14 +1061,14 @@ void Temperature::manage_heater() { #if ENABLED(THERMAL_PROTECTION_BED) 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 #if WATCH_BED // Make sure temperature is increasing if (watch_bed.elapsed(ms)) { // Time to check the bed? 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 start_watching_bed(); } @@ -1150,14 +1139,14 @@ void Temperature::manage_heater() { #if ENABLED(THERMAL_PROTECTION_CHAMBER) 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 #if WATCH_CHAMBER // Make sure temperature is increasing if (watch_chamber.elapsed(ms)) { // Time to check the chamber? 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 start_watching_chamber(); // Start again if the target is still far off } @@ -1685,19 +1674,19 @@ void Temperature::init() { #if HAS_AUTO_FAN_0 INIT_E_AUTO_FAN_PIN(E0_AUTO_FAN_PIN); #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); #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); #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); #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); #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); #endif #if HAS_AUTO_CHAMBER_FAN && !AUTO_CHAMBER_IS_E @@ -1928,7 +1917,7 @@ void Temperature::init() { sm.state = 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 PSTR("E " S_FMT) #endif - , heating ? PSTR(MSG_HEATING) : PSTR(MSG_COOLING) + , heating ? GET_TEXT(MSG_HEATING) : GET_TEXT(MSG_COOLING) ); } #endif diff --git a/buildroot/share/tests/DUE-tests b/buildroot/share/tests/DUE-tests index 844c1054af..d68026f0f6 100755 --- a/buildroot/share/tests/DUE-tests +++ b/buildroot/share/tests/DUE-tests @@ -9,6 +9,7 @@ set -e backup_ramps # pins_set is used below... restore_configs +opt_set LCD_LANGUAGE bg opt_set MOTHERBOARD BOARD_RAMPS4DUE_EFB opt_set TEMP_SENSOR_0 -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 opt_set MOTHERBOARD BOARD_RADDS 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 opt_add Z2_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 # restore_configs +opt_set LCD_LANGUAGE fi opt_set MOTHERBOARD BOARD_RAMPS4DUE_EEF opt_set EXTRUDERS 2 opt_set NUM_SERVOS 1 diff --git a/buildroot/share/tests/megaatmega1280-tests b/buildroot/share/tests/megaatmega1280-tests index c4ab0f4a71..05e262f6e7 100644 --- a/buildroot/share/tests/megaatmega1280-tests +++ b/buildroot/share/tests/megaatmega1280-tests @@ -16,6 +16,7 @@ set -e # Test MESH_BED_LEVELING feature, with LCD # restore_configs +opt_set LCD_LANGUAGE an opt_enable SPINDLE_FEATURE ULTIMAKERCONTROLLER LCD_BED_LEVELING \ MESH_BED_LEVELING ENABLE_LEVELING_FADE_HEIGHT MESH_G28_REST_ORIGIN \ G26_MESH_VALIDATION MESH_EDIT_MENU diff --git a/buildroot/share/tests/megaatmega2560-tests b/buildroot/share/tests/megaatmega2560-tests index 80a00d79e3..33bc47ca3f 100755 --- a/buildroot/share/tests/megaatmega2560-tests +++ b/buildroot/share/tests/megaatmega2560-tests @@ -51,6 +51,7 @@ exec_test $1 $2 "RAMPS, 2 extruders, LCD/SD, Probe, ABL-Linear, PLR, LEDs, many use_example_configs AnimationExample opt_set SHOW_CUSTOM_BOOTSCREEN opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO +opt_set LCD_LANGUAGE fr opt_set EXTRUDERS 5 opt_set TEMP_SENSOR_1 1 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 # restore_configs -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 +opt_set LCD_LANGUAGE zh_CN 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" # @@ -90,6 +92,7 @@ exec_test $1 $2 "RAMPS with ZONESTAR_LCD, Servo Probe, 3-Point ABL, DEBUG_LEVELI # restore_configs opt_set MOTHERBOARD BOARD_MINIRAMBO +opt_set LCD_LANGUAGE de opt_enable EEPROM_SETTINGS EEPROM_CHITCHAT \ ULTIMAKERCONTROLLER SDSUPPORT PCA9632 LCD_INFO_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 opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO +opt_set LCD_LANGUAGE el_gr opt_enable MIXING_EXTRUDER GRADIENT_MIX GRADIENT_VTOOL CR10_STOCKDISPLAY opt_set MIXING_STEPPERS 5 opt_set LCD_LANGUAGE ru @@ -117,6 +121,7 @@ exec_test $1 $2 "Mixing Extruder with 5 steppers, Cyrillic" # restore_configs opt_set MOTHERBOARD BOARD_RUMBA +opt_set LCD_LANGUAGE pt opt_set EXTRUDERS 2 opt_set TEMP_SENSOR_1 1 opt_enable USE_XMAX_PLUG DUAL_X_CARRIAGE @@ -143,6 +148,7 @@ exec_test $1 $2 "DUAL_X_CARRIAGE" # restore_configs opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO +opt_set LCD_LANGUAGE it opt_set EXTRUDERS 2 opt_set TEMP_SENSOR_1 -4 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 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 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 # 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 \ OLED_PANEL_TINYBOY2 MESH_EDIT_GFX_OVERLAY 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 # 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 \ EEPROM_SETTINGS EEPROM_CHITCHAT ULTIMAKERCONTROLLER M114_DETAIL \ 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 # restore_configs +opt_set LCD_LANGUAGE vi opt_set X_DRIVER_TYPE TMC2160 opt_set Y_DRIVER_TYPE TMC5160 opt_set Z_DRIVER_TYPE TMC2208