🚸 DWIN Enhanced improve, fix, and extend (#23240)

- Offset icon change to show mesh leveling status
- Reset extruder position when enter to Move menu
- New live end-stop diagnostic page
- Editable firmware retracts settings for Tune and filament settings menu
- Print Statistics page accessible from the Advanced Settings menu
- Reset printer draws the boot image
- Adds individual axes homing menu
- Adds probe deploy/stow to Probe Settings menu
- Updates lock screen
- Rebuilds main buttons to support text caption in other languages
- Increases probe offset limits to 60 mm
- Fix M303 PID variable update
- Fix Resume/Pause button update
- Fix redraw of print done
- Fix very large file name bug
- Fix bug in bed manual leveling
x301
Miguel Risco-Castillo 3 years ago committed by Scott Lahteine
parent 430c5da54c
commit 06c2ed3c99

@ -36,6 +36,7 @@
#elif ENABLED(EXTENSIBLE_UI)
#include "../../lcd/extui/ui_api.h"
#elif ENABLED(DWIN_CREALITY_LCD_ENHANCED)
#include "../../lcd/e3v2/enhanced/dwin_popup.h"
#include "../../lcd/e3v2/enhanced/dwin.h"
#endif

@ -77,10 +77,17 @@ void GcodeSuite::M303() {
return;
}
const celsius_t temp = parser.celsiusval('S', default_temp);
const int c = parser.intval('C', 5);
const bool seenC = parser.seenval('C');
const int c = seenC ? parser.value_int() : 5;
const bool seenS = parser.seenval('S');
const celsius_t temp = seenS ? parser.value_celsius() : default_temp;
const bool u = parser.boolval('U');
#if ENABLED(DWIN_CREALITY_LCD_ENHANCED)
if (seenC) HMI_data.PidCycles = c;
if (seenS) { if (hid == H_BED) HMI_data.BedPidT = temp; else HMI_data.HotendPidT = temp; }
#endif
#if DISABLED(BUSY_WHILE_HEATING)
KEEPALIVE_STATE(NOT_BUSY);
#endif

File diff suppressed because it is too large Load Diff

@ -24,8 +24,8 @@
/**
* DWIN UI Enhanced implementation
* Author: Miguel A. Risco-Castillo
* Version: 3.7.1
* Date: 2021/11/09
* Version: 3.9.1
* Date: 2021/11/21
*/
#include "../../../inc/MarlinConfigPre.h"
@ -45,7 +45,7 @@
#define HAS_ZOFFSET_ITEM 1
#endif
static constexpr size_t eeprom_data_size = 64;
#include "dwin_defines.h"
enum processID : uint8_t {
// Process ID
@ -59,11 +59,16 @@ enum processID : uint8_t {
SelectFile,
PrintProcess,
PrintDone,
PwrlossRec,
Reboot,
Info,
// Popup Windows
Homing,
Leveling,
PidProcess,
ESDiagProcess,
PrintStatsProcess,
PauseOrStop,
FilamentPurge,
WaitResponse,
@ -97,39 +102,6 @@ typedef struct {
void (*LiveUpdate)() = nullptr; // Auxiliar live update function
} HMI_value_t;
typedef struct {
uint16_t Background_Color = Def_Background_Color;
uint16_t Cursor_color = Def_Cursor_color;
uint16_t TitleBg_color = Def_TitleBg_color;
uint16_t TitleTxt_color = Def_TitleTxt_color;
uint16_t Text_Color = Def_Text_Color;
uint16_t Selected_Color = Def_Selected_Color;
uint16_t SplitLine_Color = Def_SplitLine_Color;
uint16_t Highlight_Color = Def_Highlight_Color;
uint16_t StatusBg_Color = Def_StatusBg_Color;
uint16_t StatusTxt_Color = Def_StatusTxt_Color;
uint16_t PopupBg_color = Def_PopupBg_color;
uint16_t PopupTxt_Color = Def_PopupTxt_Color;
uint16_t AlertBg_Color = Def_AlertBg_Color;
uint16_t AlertTxt_Color = Def_AlertTxt_Color;
uint16_t PercentTxt_Color = Def_PercentTxt_Color;
uint16_t Barfill_Color = Def_Barfill_Color;
uint16_t Indicator_Color = Def_Indicator_Color;
uint16_t Coordinate_Color = Def_Coordinate_Color;
#if HAS_PREHEAT
#ifdef PREHEAT_1_TEMP_HOTEND
int16_t HotendPidT = PREHEAT_1_TEMP_HOTEND;
int16_t PidCycles = 10;
#endif
#ifdef PREHEAT_1_TEMP_BED
int16_t BedPidT = PREHEAT_1_TEMP_BED;
#endif
#endif
#if ENABLED(PREVENT_COLD_EXTRUSION)
int16_t ExtMinT = EXTRUDE_MINTEMP;
#endif
} HMI_data_t;
typedef struct {
uint8_t language;
bool pause_flag:1; // printing is paused
@ -138,15 +110,24 @@ typedef struct {
bool select_flag:1; // Popup button selected
bool home_flag:1; // homing in course
bool heat_flag:1; // 0: heating done 1: during heating
bool lock_flag:1; // 0: lock called from AdvSet 1: lock called from Tune
} HMI_flag_t;
extern HMI_value_t HMI_value;
extern HMI_flag_t HMI_flag;
extern HMI_data_t HMI_data;
extern uint8_t checkkey;
extern millis_t dwin_heat_time;
// Popups
#if HAS_HOTEND || HAS_HEATED_BED
void DWIN_Popup_Temperature(const bool toohigh);
#endif
#if HAS_HOTEND
void Popup_Window_ETempTooLow();
#endif
#if ENABLED(POWER_LOSS_RECOVERY)
void Popup_PowerLossRecovery();
#endif
// SD Card
void HMI_SDCardInit();
void HMI_SDCardUpdate();
@ -154,8 +135,8 @@ void HMI_SDCardUpdate();
// Other
void Goto_PrintProcess();
void Goto_Main_Menu();
void Goto_InfoMenu();
void Draw_Select_Highlight(const bool sel);
void Goto_Info_Menu();
void Goto_PowerLossRecovery();
void Draw_Status_Area(const bool with_update); // Status Area
void Draw_Main_Area(); // Redraw main area;
void DWIN_Redraw_screen(); // Redraw all screen elements
@ -204,11 +185,18 @@ void DWIN_RebootScreen();
#endif
// Utility and extensions
void DWIN_LockScreen();
void DWIN_UnLockScreen();
void HMI_LockScreen();
void DWIN_LockScreen(const bool flag = true);
#if HAS_MESH
void DWIN_MeshViewer();
#endif
#if HAS_ESDIAG
void Draw_EndStopDiag();
#endif
#if ENABLED(PRINTCOUNTER)
void Draw_PrintStats();
#endif
// HMI user control functions
void HMI_Menu();
@ -262,23 +250,6 @@ void Draw_Steps_Menu();
#if EITHER(HAS_BED_PROBE, BABYSTEPPING)
void Draw_ZOffsetWiz_Menu();
#endif
// Popup windows
void DWIN_Draw_Popup(const uint8_t icon, const char * const cmsg1, FSTR_P const fmsg2, uint8_t button=0);
void DWIN_Draw_Popup(const uint8_t icon, FSTR_P const fmsg1=nullptr, FSTR_P const fmsg2=nullptr, uint8_t button=0);
template<typename T, typename U>
void DWIN_Popup_Confirm(const uint8_t icon, T amsg1, U amsg2) {
HMI_SaveProcessID(WaitResponse);
DWIN_Draw_Popup(icon, amsg1, amsg2, ICON_Confirm_E); // Button Confirm
DWIN_UpdateLCD();
}
#if HAS_HOTEND || HAS_HEATED_BED
void DWIN_Popup_Temperature(const bool toohigh);
#if ENABLED(INDIVIDUAL_AXIS_HOMING_SUBMENU)
void Draw_Homing_Menu();
#endif
#if HAS_HOTEND
void Popup_Window_ETempTooLow();
#endif
void Popup_Window_Resume();

@ -0,0 +1,92 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
*
* 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.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
#pragma once
/**
* DWIN general defines and data structs
* Author: Miguel A. Risco-Castillo
* Version: 3.9.1
* Date: 2021/11/21
*/
#include "../../../core/types.h"
#include "../common/dwin_color.h"
#define Def_Background_Color RGB( 1, 12, 8)
#define Def_Cursor_color RGB(20, 49, 31)
#define Def_TitleBg_color RGB( 0, 23, 16)
#define Def_TitleTxt_color Color_White
#define Def_Text_Color Color_White
#define Def_Selected_Color Select_Color
#define Def_SplitLine_Color RGB( 0, 23, 16)
#define Def_Highlight_Color Color_White
#define Def_StatusBg_Color RGB( 0, 23, 16)
#define Def_StatusTxt_Color Color_Yellow
#define Def_PopupBg_color Color_Bg_Window
#define Def_PopupTxt_Color Popup_Text_Color
#define Def_AlertBg_Color Color_Bg_Red
#define Def_AlertTxt_Color Color_Yellow
#define Def_PercentTxt_Color Percent_Color
#define Def_Barfill_Color BarFill_Color
#define Def_Indicator_Color Color_White
#define Def_Coordinate_Color Color_White
#define HAS_ESDIAG 1
#define DEFAULT_LCD_BRIGHTNESS 127
typedef struct {
// Color settings
uint16_t Background_Color = Def_Background_Color;
uint16_t Cursor_color = Def_Cursor_color;
uint16_t TitleBg_color = Def_TitleBg_color;
uint16_t TitleTxt_color = Def_TitleTxt_color;
uint16_t Text_Color = Def_Text_Color;
uint16_t Selected_Color = Def_Selected_Color;
uint16_t SplitLine_Color = Def_SplitLine_Color;
uint16_t Highlight_Color = Def_Highlight_Color;
uint16_t StatusBg_Color = Def_StatusBg_Color;
uint16_t StatusTxt_Color = Def_StatusTxt_Color;
uint16_t PopupBg_color = Def_PopupBg_color;
uint16_t PopupTxt_Color = Def_PopupTxt_Color;
uint16_t AlertBg_Color = Def_AlertBg_Color;
uint16_t AlertTxt_Color = Def_AlertTxt_Color;
uint16_t PercentTxt_Color = Def_PercentTxt_Color;
uint16_t Barfill_Color = Def_Barfill_Color;
uint16_t Indicator_Color = Def_Indicator_Color;
uint16_t Coordinate_Color = Def_Coordinate_Color;
//
#if defined(PREHEAT_1_TEMP_HOTEND) && HAS_HOTEND
int16_t HotendPidT = PREHEAT_1_TEMP_HOTEND;
#endif
#if defined(PREHEAT_1_TEMP_BED) && HAS_HEATED_BED
int16_t BedPidT = PREHEAT_1_TEMP_BED;
#endif
#if ANY(HAS_HOTEND, HAS_HEATED_BED)
int16_t PidCycles = 10;
#endif
#if ENABLED(PREVENT_COLD_EXTRUSION)
int16_t ExtMinT = EXTRUDE_MINTEMP;
#endif
} HMI_data_t;
static constexpr size_t eeprom_data_size = 64;
extern HMI_data_t HMI_data;

@ -23,7 +23,7 @@
/**
* DWIN UI Enhanced implementation
* Author: Miguel A. Risco-Castillo
* Version: 3.7.1
* Version: 3.8.1
* Date: 2021/11/09
*/

@ -24,7 +24,7 @@
/**
* DWIN UI Enhanced implementation
* Author: Miguel A. Risco-Castillo
* Version: 3.7.1
* Version: 3.8.1
* Date: 2021/11/09
*/

@ -0,0 +1,55 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
*
* 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.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
/**
* DWIN UI Enhanced implementation
* Author: Miguel A. Risco-Castillo
* Version: 3.8.1
* Date: 2021/11/06
*/
#include "dwin.h"
#include "dwin_popup.h"
void Draw_Select_Highlight(const bool sel) {
HMI_flag.select_flag = sel;
const uint16_t c1 = sel ? HMI_data.Highlight_Color : HMI_data.PopupBg_color,
c2 = sel ? HMI_data.PopupBg_color : HMI_data.Highlight_Color;
DWIN_Draw_Rectangle(0, c1, 25, 279, 126, 318);
DWIN_Draw_Rectangle(0, c1, 24, 278, 127, 319);
DWIN_Draw_Rectangle(0, c2, 145, 279, 246, 318);
DWIN_Draw_Rectangle(0, c2, 144, 278, 247, 319);
}
void DWIN_Popup_Continue(const uint8_t icon, FSTR_P const fmsg1, FSTR_P const fmsg2) {
HMI_SaveProcessID(WaitResponse);
DWIN_Draw_Popup(icon, fmsg1, fmsg2, ICON_Continue_E); // Button Continue
DWIN_UpdateLCD();
}
void DWIN_Popup_ConfirmCancel(const uint8_t icon, FSTR_P const fmsg2) {
DWIN_Draw_Popup(ICON_BLTouch, F("Please confirm"), fmsg2);
DWINUI::Draw_Icon(ICON_Confirm_E, 26, 280);
DWINUI::Draw_Icon(ICON_Cancel_E, 146, 280);
Draw_Select_Highlight(true);
DWIN_UpdateLCD();
}

@ -0,0 +1,62 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
*
* 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.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
#pragma once
/**
* DWIN UI Enhanced implementation
* Author: Miguel A. Risco-Castillo
* Version: 3.8.1
* Date: 2021/11/06
*/
#include "dwinui.h"
#include "dwin.h"
// Popup windows
void Draw_Select_Highlight(const bool sel);
inline void Draw_Popup_Bkgd() {
DWIN_Draw_Rectangle(1, HMI_data.PopupBg_color, 14, 60, 258, 330);
DWIN_Draw_Rectangle(0, HMI_data.Highlight_Color, 14, 60, 258, 330);
}
template<typename T, typename U>
void DWIN_Draw_Popup(const uint8_t icon, T amsg1=nullptr, U amsg2=nullptr, uint8_t button=0) {
DWINUI::ClearMenuArea();
Draw_Popup_Bkgd();
if (icon) DWINUI::Draw_Icon(icon, 101, 105);
if (amsg1) DWINUI::Draw_CenteredString(HMI_data.PopupTxt_Color, 210, amsg1);
if (amsg2) DWINUI::Draw_CenteredString(HMI_data.PopupTxt_Color, 240, amsg2);
if (button) DWINUI::Draw_Icon(button, 86, 280);
}
template<typename T, typename U>
void DWIN_Popup_Confirm(const uint8_t icon, T amsg1, U amsg2) {
HMI_SaveProcessID(WaitResponse);
DWIN_Draw_Popup(icon, amsg1, amsg2, ICON_Confirm_E); // Button Confirm
DWIN_UpdateLCD();
}
void DWIN_Popup_Continue(const uint8_t icon, FSTR_P const fmsg1, FSTR_P const fmsg2);
void DWIN_Popup_ConfirmCancel(const uint8_t icon, FSTR_P const fmsg2);

@ -23,7 +23,7 @@
/**
* DWIN UI Enhanced implementation
* Author: Miguel A. Risco-Castillo
* Version: 3.7.1
* Version: 3.8.1
* Date: 2021/11/09
*/
@ -34,6 +34,7 @@
#include "../../../inc/MarlinConfig.h"
#include "dwin_lcd.h"
#include "dwinui.h"
#include "dwin_defines.h"
//#define DEBUG_OUT 1
#include "../../../core/debug_out.h"

@ -24,8 +24,8 @@
/**
* DWIN UI Enhanced implementation
* Author: Miguel A. Risco-Castillo
* Version: 3.7.1
* Date: 2021/11/09
* Version: 3.9.1
* Date: 2021/11/21
*/
#include "dwin_lcd.h"
@ -38,12 +38,20 @@
#define ICON_Cancel ICON_StockConfiguration
#define ICON_CustomPreheat ICON_SetEndTemp
#define ICON_Error ICON_TempTooHigh
#define ICON_ESDiag ICON_Info
#define ICON_ExtrudeMinT ICON_HotendTemp
#define ICON_FilLoad ICON_WriteEEPROM
#define ICON_FilMan ICON_ResumeEEPROM
#define ICON_FilSet ICON_ResumeEEPROM
#define ICON_FilUnload ICON_ReadEEPROM
#define ICON_Flow ICON_StepE
#define ICON_FWRetLength ICON_StepE
#define ICON_FWRetSpeed ICON_Setspeed
#define ICON_FWRetZRaise ICON_MoveZ
#define ICON_FWRecSpeed ICON_Setspeed
#define ICON_HomeX ICON_MoveX
#define ICON_HomeY ICON_MoveY
#define ICON_HomeZ ICON_MoveZ
#define ICON_LevBed ICON_SetEndTemp
#define ICON_Lock ICON_Cool
#define ICON_ManualMesh ICON_HotendTemp
@ -52,9 +60,14 @@
#define ICON_MeshViewer ICON_HotendTemp
#define ICON_MoveZ0 ICON_HotendTemp
#define ICON_Park ICON_Motion
#define ICON_PIDbed ICON_SetBedTemp
#define ICON_PIDcycles ICON_ResumeEEPROM
#define ICON_PIDValue ICON_Contact
#define ICON_PrintStats ICON_PrintTime
#define ICON_PrintStatsReset ICON_RemainTime
#define ICON_ProbeDeploy ICON_SetEndTemp
#define ICON_ProbeSet ICON_SetEndTemp
#define ICON_ProbeStow ICON_SetEndTemp
#define ICON_ProbeTest ICON_SetEndTemp
#define ICON_Pwrlossr ICON_Motion
#define ICON_Reboot ICON_ResumeEEPROM
@ -63,25 +76,11 @@
#define ICON_SetCustomPreheat ICON_SetEndTemp
#define ICON_Sound ICON_Cool
// Default UI Colors
#define Def_Background_Color Color_Bg_Black
#define Def_Cursor_color Rectangle_Color
#define Def_TitleBg_color Color_Bg_Blue
#define Def_TitleTxt_color Color_White
#define Def_Text_Color Color_White
#define Def_Selected_Color Select_Color
#define Def_SplitLine_Color Line_Color
#define Def_Highlight_Color Color_White
#define Def_StatusBg_Color RGB(0,20,20)
#define Def_StatusTxt_Color Color_Yellow
#define Def_PopupBg_color Color_Bg_Window
#define Def_PopupTxt_Color Popup_Text_Color
#define Def_AlertBg_Color Color_Bg_Red
#define Def_AlertTxt_Color Color_Yellow
#define Def_PercentTxt_Color Percent_Color
#define Def_Barfill_Color BarFill_Color
#define Def_Indicator_Color Color_White
#define Def_Coordinate_Color Color_White
// Extended and default UI Colors
#define Color_Black 0
#define Color_Green RGB(0,63,0)
#define Color_Aqua RGB(0,63,31)
#define Color_Blue RGB(0,0,31)
// UI element defines and constants
#define DWIN_FONT_MENU font8x16
@ -197,9 +196,11 @@ namespace DWINUI {
// Get font character width
uint8_t fontWidth(uint8_t cfont);
inline uint8_t fontWidth() { return fontWidth(font); };
// Get font character height
uint8_t fontHeight(uint8_t cfont);
inline uint8_t fontHeight() { return fontHeight(font); };
// Get screen x coordinates from text column
uint16_t ColToX(uint8_t col);
@ -412,6 +413,14 @@ namespace DWINUI {
Draw_CenteredString(false, font, textcolor, backcolor, y, title);
}
// Draw a box
// mode: 0=frame, 1=fill, 2=XOR fill
// color: Rectangle color
// frame: Box coordinates and size
inline void Draw_Box(uint8_t mode, uint16_t color, frame_rect_t frame) {
DWIN_Draw_Box(mode, color, frame.x, frame.y, frame.w, frame.h);
}
// Draw a circle
// Color: circle color
// x: abscissa of the center of the circle

@ -0,0 +1,109 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
*
* 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.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
/**
* DWIN End Stops diagnostic page
* Author: Miguel A. Risco-Castillo
* Version: 1.0
* Date: 2021/11/06
*/
#include "../../../inc/MarlinConfigPre.h"
#include "dwin_defines.h"
#if BOTH(DWIN_CREALITY_LCD_ENHANCED, HAS_ESDIAG)
#include "endstop_diag.h"
#include "../../../core/types.h"
#include "../../marlinui.h"
#include "dwin_lcd.h"
#include "dwinui.h"
#include "dwin_popup.h"
#include "dwin.h"
#if HAS_FILAMENT_SENSOR
#include "../../../feature/runout.h"
#endif
#if HAS_BED_PROBE
#include "../../../module/probe.h"
#endif
ESDiagClass ESDiag;
void draw_es_label(FSTR_P const flabel=nullptr) {
DWINUI::cursor.x = 40;
if (flabel) DWINUI::Draw_String(F(flabel));
DWINUI::Draw_String(F(": "));
DWINUI::MoveBy(0, 25);
}
void draw_es_state(const bool is_hit) {
const uint8_t LM = 130;
DWINUI::cursor.x = LM;
DWIN_Draw_Rectangle(1, HMI_data.PopupBg_color, LM, DWINUI::cursor.y, LM + 100, DWINUI::cursor.y + 20);
is_hit ? DWINUI::Draw_String(RGB(31,31,16), F(STR_ENDSTOP_HIT)) : DWINUI::Draw_String(RGB(16,63,16), F(STR_ENDSTOP_OPEN));
DWINUI::MoveBy(0, 25);
}
void ESDiagClass::Draw() {
Title.ShowCaption(F("End-stops Diagnostic"));
DWINUI::ClearMenuArea();
Draw_Popup_Bkgd();
DWINUI::Draw_Icon(ICON_Continue_E, 86, 250);
DWINUI::cursor.y = 80;
#define ES_LABEL(S) draw_es_label(F(STR_##S))
#if HAS_X_MIN
ES_LABEL(X_MIN);
#endif
#if HAS_Y_MIN
ES_LABEL(Y_MIN);
#endif
#if HAS_Z_MIN
ES_LABEL(Z_MIN);
#endif
#if HAS_FILAMENT_SENSOR
draw_es_label(F(STR_FILAMENT));
#endif
Update();
}
void ESDiagClass::Update() {
DWINUI::cursor.y = 80;
#define ES_REPORT(S) draw_es_state(READ(S##_PIN) != S##_ENDSTOP_INVERTING)
#if HAS_X_MIN
ES_REPORT(X_MIN);
#endif
#if HAS_Y_MIN
ES_REPORT(Y_MIN);
#endif
#if HAS_Z_MIN
ES_REPORT(Z_MIN);
#endif
#if HAS_FILAMENT_SENSOR
draw_es_state(READ(FIL_RUNOUT1_PIN) != FIL_RUNOUT1_STATE);
#endif
DWIN_UpdateLCD();
}
#endif // DWIN_CREALITY_LCD_ENHANCED && HAS_MESH

@ -0,0 +1,37 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
*
* 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.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
#pragma once
/**
* DWIN End Stops diagnostic page
* Author: Miguel A. Risco-Castillo
* Version: 1.0
* Date: 2021/11/06
*/
class ESDiagClass {
public:
void Draw();
void Update();
};
extern ESDiagClass ESDiag;

@ -21,10 +21,10 @@
*/
/**
* DWIN UI Enhanced implementation
* Lock screen implementation for DWIN UI Enhanced implementation
* Author: Miguel A. Risco-Castillo
* Version: 3.6.3
* Date: 2021/09/08
* Version: 2.1
* Date: 2021/11/09
*/
#include "../../../inc/MarlinConfigPre.h"
@ -41,6 +41,7 @@ LockScreenClass lockScreen;
uint8_t LockScreenClass::lock_pos = 0;
bool LockScreenClass::unlocked = false;
uint8_t LockScreenClass::rprocess = 0;
void LockScreenClass::init() {
lock_pos = 0;

@ -22,10 +22,10 @@
#pragma once
/**
* DWIN UI Enhanced implementation
* Lock screen implementation for DWIN UI Enhanced implementation
* Author: Miguel A. Risco-Castillo
* Version: 3.6.3
* Date: 2021/09/08
* Version: 2.1
* Date: 2021/11/09
*/
#include "../common/encoder.h"
@ -36,6 +36,7 @@ private:
static bool unlocked;
static uint8_t lock_pos;
public:
static uint8_t rprocess;
static void init();
static void onEncoder(EncoderState encoder_diffState);
static void draw();

@ -1,12 +1,13 @@
/**
* DWIN Mesh Viewer
* Author: Miguel A. Risco-Castillo
* version: 3.8.1
* Date: 2021/11/06
* Marlin 3D Printer Firmware
* Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of the License, or
* 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,
@ -14,11 +15,18 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
/**
* DWIN Mesh Viewer
* Author: Miguel A. Risco-Castillo
* Version: 3.8.1
* Date: 2021/11/06
*/
#include "../../../inc/MarlinConfigPre.h"
#if BOTH(DWIN_CREALITY_LCD_ENHANCED, HAS_MESH)

@ -1,12 +1,13 @@
/**
* DWIN Mesh Viewer
* Author: Miguel A. Risco-Castillo
* Version: 3.8.1
* Date: 2021/11/06
* Marlin 3D Printer Firmware
* Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of the License, or
* 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,
@ -14,12 +15,19 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
#pragma once
/**
* DWIN Mesh Viewer
* Author: Miguel A. Risco-Castillo
* Version: 3.8.1
* Date: 2021/11/06
*/
class MeshViewerClass {
public:
void Draw();

@ -0,0 +1,76 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
*
* 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.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
/**
* DWIN Print Stats page
* Author: Miguel A. Risco-Castillo
* Version: 1.0
* Date: 2021/11/21
*/
#include "../../../inc/MarlinConfigPre.h"
#if BOTH(DWIN_CREALITY_LCD_ENHANCED, PRINTCOUNTER)
#include "printstats.h"
#include "../../../core/types.h"
#include "../../marlinui.h"
#include "../../../module/printcounter.h"
#include "dwin_lcd.h"
#include "dwinui.h"
#include "dwin_popup.h"
#include "dwin.h"
PrintStatsClass PrintStats;
void PrintStatsClass::Draw() {
char buf[50] = "";
char str[30] = "";
constexpr int8_t MRG = 30;
Title.ShowCaption(GET_TEXT_F(MSG_INFO_STATS_MENU));
DWINUI::ClearMenuArea();
Draw_Popup_Bkgd();
DWINUI::Draw_Icon(ICON_Continue_E, 86, 250);
printStatistics ps = print_job_timer.getStats();
sprintf_P(buf, PSTR("%s: %i"), GET_TEXT(MSG_INFO_PRINT_COUNT), ps.totalPrints);
DWINUI::Draw_String(MRG, 80, buf);
sprintf_P(buf, PSTR("%s: %i"), GET_TEXT(MSG_INFO_COMPLETED_PRINTS), ps.finishedPrints);
DWINUI::Draw_String(MRG, 100, buf);
duration_t(print_job_timer.getStats().printTime).toDigital(str, true);
sprintf_P(buf, PSTR("%s: %s"), GET_TEXT(MSG_INFO_PRINT_TIME), str);
DWINUI::Draw_String(MRG, 120, buf);
duration_t(print_job_timer.getStats().longestPrint).toDigital(str, true);
sprintf_P(buf, PSTR("%s: %s"), GET_TEXT(MSG_INFO_PRINT_LONGEST), str);
DWINUI::Draw_String(MRG, 140, buf);
sprintf_P(buf, PSTR("%s: %s m"), GET_TEXT(MSG_INFO_PRINT_FILAMENT), dtostrf(ps.filamentUsed / 1000, 1, 2, str));
DWINUI::Draw_String(MRG, 160, buf);
}
void PrintStatsClass::Reset() {
print_job_timer.initStats();
HMI_AudioFeedback();
}
#endif // DWIN_CREALITY_LCD_ENHANCED && PRINTCOUNTER

@ -0,0 +1,37 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
*
* 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.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
#pragma once
/**
* DWIN Print Stats page
* Author: Miguel A. Risco-Castillo
* Version: 1.0
* Date: 2021/11/21
*/
class PrintStatsClass {
public:
void Draw();
static void Reset();
};
extern PrintStatsClass PrintStats;

@ -195,7 +195,7 @@ namespace Language_an {
LSTR MSG_INFO_PROTOCOL = _UxGT("Protocolo");
LSTR MSG_CASE_LIGHT = _UxGT("Luz");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Conteo de impresion");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Completadas");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Tiempo total d'imp.");

@ -183,7 +183,7 @@ namespace Language_ca {
LSTR MSG_INFO_PROTOCOL = _UxGT("Protocol");
LSTR MSG_CASE_LIGHT = _UxGT("Llum");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Total impressions");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Acabades");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Temps imprimint");

@ -60,7 +60,7 @@ namespace Language_cz {
LSTR MSG_RUN_AUTO_FILES = _UxGT("Autostart");
LSTR MSG_DISABLE_STEPPERS = _UxGT("Uvolnit motory");
LSTR MSG_DEBUG_MENU = _UxGT("Nabídka ladění");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_PROGRESS_BAR_TEST = _UxGT("Test ukaz. průběhu");
#else
LSTR MSG_PROGRESS_BAR_TEST = _UxGT("Test uk. průběhu");
@ -421,12 +421,12 @@ namespace Language_cz {
LSTR MSG_PLEASE_RESET = _UxGT("Proveďte reset");
LSTR MSG_HEATING = _UxGT("Zahřívání...");
LSTR MSG_COOLING = _UxGT("Chlazení...");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_BED_HEATING = _UxGT("Zahřívání podložky");
#else
LSTR MSG_BED_HEATING = _UxGT("Zahřívání podl.");
#endif
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_BED_COOLING = _UxGT("Chlazení podložky");
#else
LSTR MSG_BED_COOLING = _UxGT("Chlazení podl.");
@ -465,7 +465,7 @@ namespace Language_cz {
LSTR MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Jas světla");
LSTR MSG_KILL_EXPECTED_PRINTER = _UxGT("NESPRÁVNÁ TISKÁRNA");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Počet tisků");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Dokončeno");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Celkový čas");
@ -535,7 +535,7 @@ namespace Language_cz {
LSTR MSG_CYCLE_MIX = _UxGT("Střídat mix");
LSTR MSG_GRADIENT_MIX = _UxGT("Přechod mix");
LSTR MSG_REVERSE_GRADIENT = _UxGT("Opačný přechod");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_ACTIVE_VTOOL = _UxGT("Aktivní V-nástroj");
LSTR MSG_START_VTOOL = _UxGT("Spustit V-nástroj");
LSTR MSG_END_VTOOL = _UxGT("Ukončit V-nástroj");

@ -156,7 +156,7 @@ namespace Language_da {
LSTR MSG_INFO_BOARD_MENU = _UxGT("Kort Info");
LSTR MSG_INFO_THERMISTOR_MENU = _UxGT("Thermistors");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Ant. Prints");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Færdige");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Total print tid");

@ -491,7 +491,7 @@ namespace Language_de {
LSTR MSG_KILL_EXPECTED_PRINTER = _UxGT("Falscher Drucker");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Gesamte Drucke");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Komplette Drucke");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Gesamte Druckzeit");

@ -75,6 +75,9 @@ namespace Language_en {
LSTR MSG_HOMING = _UxGT("Homing");
LSTR MSG_AUTO_HOME = _UxGT("Auto Home");
LSTR MSG_AUTO_HOME_A = _UxGT("Home @");
LSTR MSG_AUTO_HOME_X = _UxGT("Home X");
LSTR MSG_AUTO_HOME_Y = _UxGT("Home Y");
LSTR MSG_AUTO_HOME_Z = _UxGT("Home Z");
LSTR MSG_FILAMENT_SET = _UxGT("Filament Settings");
LSTR MSG_FILAMENT_MAN = _UxGT("Filament Management");
LSTR MSG_LEVBED_FL = _UxGT("Front Left");
@ -83,6 +86,7 @@ namespace Language_en {
LSTR MSG_LEVBED_BL = _UxGT("Back Left");
LSTR MSG_LEVBED_BR = _UxGT("Back Right");
LSTR MSG_MANUAL_MESH = _UxGT("Manual Mesh");
LSTR MSG_AUTO_MESH = _UxGT("Auto Build Mesh");
LSTR MSG_AUTO_Z_ALIGN = _UxGT("Auto Z-Align");
LSTR MSG_ITERATION = _UxGT("G34 Iteration: %i");
LSTR MSG_DECREASING_ACCURACY = _UxGT("Accuracy Decreasing!");
@ -426,6 +430,11 @@ namespace Language_en {
LSTR MSG_BUTTON_BACK = _UxGT("Back");
LSTR MSG_BUTTON_PROCEED = _UxGT("Proceed");
LSTR MSG_BUTTON_SKIP = _UxGT("Skip");
LSTR MSG_BUTTON_INFO = _UxGT("Info");
LSTR MSG_BUTTON_LEVEL = _UxGT("Level");
LSTR MSG_BUTTON_PAUSE = _UxGT("Pause");
LSTR MSG_BUTTON_RESUME = _UxGT("Resume");
LSTR MSG_BUTTON_ADVANCED = _UxGT("Advanced");
LSTR MSG_PAUSING = _UxGT("Pausing...");
LSTR MSG_PAUSE_PRINT = _UxGT("Pause Print");
LSTR MSG_RESUME_PRINT = _UxGT("Resume Print");
@ -577,7 +586,8 @@ namespace Language_en {
LSTR MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Light Brightness");
LSTR MSG_KILL_EXPECTED_PRINTER = _UxGT("INCORRECT PRINTER");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT_RESET = _UxGT("Reset Print Count");
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Print Count");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Completed");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Total Print Time");

@ -463,7 +463,7 @@ namespace Language_es {
LSTR MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Brillo cabina");
LSTR MSG_KILL_EXPECTED_PRINTER = _UxGT("Impresora incorrecta");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Cont. de impresión");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Completadas");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Tiempo total de imp.");

@ -280,7 +280,7 @@ namespace Language_eu {
LSTR MSG_INFO_PROTOCOL = _UxGT("Protokoloa");
LSTR MSG_CASE_LIGHT = _UxGT("Kabina Argia");
LSTR MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Argiaren Distira");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Inprim. Zenbaketa");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Burututa");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Inprim. denbora");

@ -504,7 +504,7 @@ namespace Language_fr {
LSTR MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Luminosité");
LSTR MSG_KILL_EXPECTED_PRINTER = _UxGT("Imprimante incorrecte");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Nbre impressions");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Terminées");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Tps impr. total");

@ -479,7 +479,7 @@ namespace Language_gl {
LSTR MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Brillo Luces");
LSTR MSG_KILL_EXPECTED_PRINTER = _UxGT("IMPRESORA INCORRECTA");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Total Impresións");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Completadas");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Tempo Total Imp.");

@ -137,7 +137,7 @@ namespace Language_hr {
LSTR MSG_KILL_EXPECTED_PRINTER = _UxGT("Neispravan pisač");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Broj printova");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Završeni");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Ukupno printanja");

@ -553,7 +553,7 @@ namespace Language_hu {
LSTR MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Fényerösség");
LSTR MSG_KILL_EXPECTED_PRINTER = _UxGT("HELYTELEN NYOMTATÓ");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Nyomtatás számláló");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Befejezett");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Összes nyomtatási idö");

@ -562,7 +562,7 @@ namespace Language_it {
LSTR MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Luminosità Luci");
LSTR MSG_KILL_EXPECTED_PRINTER = _UxGT("STAMPANTE ERRATA");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Contat. stampa");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Completati");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Tempo totale");

@ -180,7 +180,7 @@ namespace Language_nl {
LSTR MSG_KILL_EXPECTED_PRINTER = _UxGT("Onjuiste printer");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Printed Aantal");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Totaal Voltooid");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Totale Printtijd");

@ -430,7 +430,7 @@ namespace Language_pl {
LSTR MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Jasność oświetlenia");
LSTR MSG_KILL_EXPECTED_PRINTER = _UxGT("Niepoprawna drukarka");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Wydrukowano");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Ukończono");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Czas druku");

@ -400,7 +400,7 @@ namespace Language_pt_br {
LSTR MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Intensidade Brilho");
LSTR MSG_KILL_EXPECTED_PRINTER = _UxGT("Impressora Incorreta");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Total de Impressões");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Realizadas");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Tempo de Impressão");

@ -486,7 +486,7 @@ namespace Language_ro {
LSTR MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Light Brightness");
LSTR MSG_KILL_EXPECTED_PRINTER = _UxGT("INCORRECT PRINTER");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Total Printuri");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Completat");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Timp Imprimare Total");

@ -43,7 +43,7 @@ namespace Language_ru {
LSTR MSG_MEDIA_INSERTED = _UxGT("SD карта вставлена");
LSTR MSG_MEDIA_REMOVED = _UxGT("SD карта извлечена");
LSTR MSG_MEDIA_WAITING = _UxGT("Вставьте SD карту");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_MEDIA_INIT_FAIL = _UxGT("Сбой инициализации SD");
#else
LSTR MSG_MEDIA_INIT_FAIL = _UxGT("Сбой инициализ. SD");
@ -51,7 +51,7 @@ namespace Language_ru {
LSTR MSG_MEDIA_READ_ERROR = _UxGT("Ошибка считывания");
LSTR MSG_MEDIA_USB_REMOVED = _UxGT("USB диск удалён");
LSTR MSG_MEDIA_USB_FAILED = _UxGT("Ошибка USB диска");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_KILL_SUBCALL_OVERFLOW = _UxGT("Переполнение вызова");
#else
LSTR MSG_KILL_SUBCALL_OVERFLOW = _UxGT("Переполн. вызова");
@ -81,7 +81,7 @@ namespace Language_ru {
LSTR MSG_LEVEL_BED_NEXT_POINT = _UxGT("Следующая точка");
LSTR MSG_LEVEL_BED_DONE = _UxGT("Выравнивание готово!");
LSTR MSG_Z_FADE_HEIGHT = _UxGT("Высота спада");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_SET_HOME_OFFSETS = _UxGT("Установ. смещения дома");
LSTR MSG_HOME_OFFSET_X = _UxGT("Смещение дома X");
LSTR MSG_HOME_OFFSET_Y = _UxGT("Смещение дома Y");
@ -101,7 +101,7 @@ namespace Language_ru {
LSTR MSG_HOME_OFFSETS_APPLIED = _UxGT("Смещения применены");
LSTR MSG_SET_ORIGIN = _UxGT("Установить ноль");
LSTR MSG_SELECT_ORIGIN = _UxGT("Выберите ноль");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_LAST_VALUE_SP = _UxGT("Последнее знач. ");
#else
LSTR MSG_LAST_VALUE_SP = _UxGT("Послед. знач. ");
@ -127,7 +127,7 @@ namespace Language_ru {
LSTR MSG_COOLDOWN = _UxGT("Охлаждение");
LSTR MSG_CUTTER_FREQUENCY = _UxGT("Частота");
LSTR MSG_LASER_MENU = _UxGT("Управление лазером");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_SPINDLE_MENU = _UxGT("Управление шпинделем");
LSTR MSG_LASER_TOGGLE = _UxGT("Переключить лазер");
LSTR MSG_SPINDLE_TOGGLE = _UxGT("Переключ.шпиндель");
@ -161,7 +161,7 @@ namespace Language_ru {
LSTR MSG_LEVEL_BED = _UxGT("Выровнять стол");
LSTR MSG_BED_TRAMMING = _UxGT("Выровнять углы");
LSTR MSG_NEXT_CORNER = _UxGT("Следующий угол");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_BED_TRAMMING_RAISE = _UxGT("Вверх до срабатыв. зонда");
LSTR MSG_BED_TRAMMING_IN_RANGE = _UxGT("Углы в норме. Вырав.стола");
#else
@ -170,7 +170,7 @@ namespace Language_ru {
#endif
LSTR MSG_BED_TRAMMING_GOOD_POINTS = _UxGT("Хорошие точки: ");
LSTR MSG_BED_TRAMMING_LAST_Z = _UxGT("Последняя Z: ");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_MESH_EDITOR = _UxGT("Смещение по Z");
LSTR MSG_EDITING_STOPPED = _UxGT("Правка сетки окончена");
#else
@ -205,7 +205,7 @@ namespace Language_ru {
LSTR MSG_UBL_LEVEL_BED = _UxGT("Настройка UBL");
LSTR MSG_LCD_TILTING_MESH = _UxGT("Точка разворота");
LSTR MSG_UBL_MANUAL_MESH = _UxGT("Ручной ввод сетки");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_UBL_BC_INSERT = _UxGT("Разместить шайбу,измерить");
LSTR MSG_UBL_BC_REMOVE = _UxGT("Убрать и замерить стол");
#else
@ -219,7 +219,7 @@ namespace Language_ru {
LSTR MSG_UBL_DEACTIVATE_MESH = _UxGT("Деактивировать UBL");
LSTR MSG_UBL_MESH_EDIT = _UxGT("Редактор сеток");
LSTR MSG_UBL_EDIT_CUSTOM_MESH = _UxGT("Править свою сетку");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_UBL_SET_TEMP_BED = _UxGT("Температура стола");
LSTR MSG_UBL_BED_TEMP_CUSTOM = _UxGT("Температура стола");
LSTR MSG_UBL_SET_TEMP_HOTEND = _UxGT("Температура сопла");
@ -237,7 +237,7 @@ namespace Language_ru {
LSTR MSG_UBL_FINE_TUNE_MESH = _UxGT("Точная правка сетки");
LSTR MSG_UBL_BUILD_MESH_MENU = _UxGT("Построить сетку");
LSTR MSG_UBL_BUILD_MESH_M = _UxGT("Построить сетку $");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_UBL_BUILD_COLD_MESH = _UxGT("Построить холодную сетку");
#else
LSTR MSG_UBL_BUILD_COLD_MESH = _UxGT("Строить холод.сетку");
@ -245,7 +245,7 @@ namespace Language_ru {
LSTR MSG_UBL_MESH_HEIGHT_ADJUST = _UxGT("Правка высоты сетки");
LSTR MSG_UBL_MESH_HEIGHT_AMOUNT = _UxGT("Высота");
LSTR MSG_UBL_VALIDATE_MESH_MENU = _UxGT("Проверить сетку");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_UBL_VALIDATE_MESH_M = _UxGT("Проверить сетку $");
LSTR MSG_UBL_VALIDATE_CUSTOM_MESH = _UxGT("Проверить свою сетку");
#else
@ -261,7 +261,7 @@ namespace Language_ru {
LSTR MSG_G26_LEAVING = _UxGT("Выйти из G26");
LSTR MSG_UBL_CONTINUE_MESH = _UxGT("Продолжить сетку");
LSTR MSG_UBL_MESH_LEVELING = _UxGT("Выравнивание сетки");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_UBL_3POINT_MESH_LEVELING = _UxGT("3-х точечное выравнивание");
#else
LSTR MSG_UBL_3POINT_MESH_LEVELING = _UxGT("3-точечное выравн.");
@ -273,7 +273,7 @@ namespace Language_ru {
LSTR MSG_UBL_OUTPUT_MAP = _UxGT("Вывести карту сетки");
LSTR MSG_UBL_OUTPUT_MAP_HOST = _UxGT("Вывести на хост");
LSTR MSG_UBL_OUTPUT_MAP_CSV = _UxGT("Вывести в CSV");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_UBL_OUTPUT_MAP_BACKUP = _UxGT("Сохранить сетку снаружи");
LSTR MSG_UBL_INFO_UBL = _UxGT("Вывод информации UBL");
LSTR MSG_UBL_FILLIN_AMOUNT = _UxGT("Кол-во заполнителя");
@ -323,7 +323,7 @@ namespace Language_ru {
LSTR MSG_SET_LEDS_DEFAULT = _UxGT("Свет по умолчанию");
LSTR MSG_LED_CHANNEL_N = _UxGT("Канал =");
LSTR MSG_LEDS2 = _UxGT("Свет #2");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_NEO2_PRESETS = _UxGT("Свет #2 предустановки");
#else
LSTR MSG_NEO2_PRESETS = _UxGT("Свет #2 предустан.");
@ -360,7 +360,7 @@ namespace Language_ru {
LSTR MSG_NOZZLE_STANDBY = _UxGT("Сопло ожидает");
LSTR MSG_BED = _UxGT("Стол, ") LCD_STR_DEGREE "C";
LSTR MSG_CHAMBER = _UxGT("Камера,") LCD_STR_DEGREE "C";
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_COOLER = _UxGT("Охлаждение лазера");
LSTR MSG_COOLER_TOGGLE = _UxGT("Переключ. охлажд.");
LSTR MSG_FLOWMETER_SAFETY = _UxGT("Безопасн. потока");
@ -408,7 +408,7 @@ namespace Language_ru {
LSTR MSG_VJ_JERK = _UxGT("V") LCD_STR_J _UxGT("-рывок");
LSTR MSG_VK_JERK = _UxGT("V") LCD_STR_K _UxGT("-рывок");
LSTR MSG_VE_JERK = _UxGT("Ve-рывок");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_JUNCTION_DEVIATION = _UxGT("Отклонение узла");
#else
LSTR MSG_JUNCTION_DEVIATION = _UxGT("Отклон. узла");
@ -452,7 +452,7 @@ namespace Language_ru {
LSTR MSG_VOLUMETRIC_ENABLED = _UxGT("E в мм") SUPERSCRIPT_THREE;
LSTR MSG_VOLUMETRIC_LIMIT = _UxGT("E огран.,мм") SUPERSCRIPT_THREE;
LSTR MSG_VOLUMETRIC_LIMIT_E = _UxGT("E огран. *");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_FILAMENT_DIAM = _UxGT("Диам. филамента");
LSTR MSG_FILAMENT_DIAM_E = _UxGT("Диам. филамента *");
#else
@ -466,7 +466,7 @@ namespace Language_ru {
LSTR MSG_CONTRAST = _UxGT("Контраст экрана");
LSTR MSG_STORE_EEPROM = _UxGT("Сохранить настройки");
LSTR MSG_LOAD_EEPROM = _UxGT("Загрузить настройки");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_RESTORE_DEFAULTS = _UxGT("На базовые параметры");
LSTR MSG_INIT_EEPROM = _UxGT("Инициализация EEPROM");
#else
@ -520,7 +520,7 @@ namespace Language_ru {
LSTR MSG_NO_MOVE = _UxGT("Нет движения.");
LSTR MSG_KILLED = _UxGT("УБИТО. ");
LSTR MSG_STOPPED = _UxGT("ОСТАНОВЛЕНО. ");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_CONTROL_RETRACT = _UxGT("Втягивание, мм");
LSTR MSG_CONTROL_RETRACT_SWAP = _UxGT("Смена втягив., мм");
LSTR MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("Возврат смены, мм");
@ -539,7 +539,7 @@ namespace Language_ru {
LSTR MSG_CONTROL_RETRACT_RECOVERF = _UxGT("Возврат V");
LSTR MSG_FILAMENT_SWAP_LENGTH = _UxGT("Поменять длины");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_FILAMENT_SWAP_EXTRA = _UxGT("Поменять дополнительно");
#else
LSTR MSG_FILAMENT_SWAP_EXTRA = _UxGT("Поменять дополнит.");
@ -548,7 +548,7 @@ namespace Language_ru {
LSTR MSG_TOOL_CHANGE = _UxGT("Смена сопел");
LSTR MSG_TOOL_CHANGE_ZLIFT = _UxGT("Поднятие по Z");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_SINGLENOZZLE_PRIME_SPEED = _UxGT("Начальная скор.");
LSTR MSG_SINGLENOZZLE_RETRACT_SPEED = _UxGT("Скорость втягив.");
#else
@ -568,7 +568,7 @@ namespace Language_ru {
LSTR MSG_FILAMENTCHANGE = _UxGT("Смена филамента");
LSTR MSG_FILAMENTCHANGE_E = _UxGT("Смена филамента *");
LSTR MSG_FILAMENTLOAD = _UxGT("Загрузить филамент");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_FILAMENTLOAD_E = _UxGT("Загрузить филамент *");
LSTR MSG_FILAMENTUNLOAD_E = _UxGT("Выгрузить филамент *");
#else
@ -606,7 +606,7 @@ namespace Language_ru {
LSTR MSG_ZPROBE_XOFFSET = _UxGT("Смещение X");
LSTR MSG_ZPROBE_YOFFSET = _UxGT("Смещение Y");
LSTR MSG_ZPROBE_ZOFFSET = _UxGT("Смещение Z");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_MOVE_NOZZLE_TO_BED = _UxGT("Двигать сопло к столу");
#else
LSTR MSG_MOVE_NOZZLE_TO_BED = _UxGT("Двиг. сопло к столу");
@ -650,7 +650,7 @@ namespace Language_ru {
LSTR MSG_DELTA_SETTINGS = _UxGT("Настройки Delta");
LSTR MSG_DELTA_AUTO_CALIBRATE = _UxGT("Авто калибровка");
LSTR MSG_DELTA_HEIGHT_CALIBRATE = _UxGT("Высота Delta");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_DELTA_Z_OFFSET_CALIBRATE = _UxGT("Зондировать Z-смещения");
#else
LSTR MSG_DELTA_Z_OFFSET_CALIBRATE = _UxGT("Зондир. Z-смещения");
@ -660,7 +660,7 @@ namespace Language_ru {
LSTR MSG_DELTA_RADIUS = _UxGT("Радиус");
LSTR MSG_INFO_MENU = _UxGT("О принтере");
LSTR MSG_INFO_PRINTER_MENU = _UxGT("Данные принтера");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_3POINT_LEVELING = _UxGT("3-точечное выравнивание");
LSTR MSG_LINEAR_LEVELING = _UxGT("Линейное выравнивание");
LSTR MSG_BILINEAR_LEVELING = _UxGT("Билинейное выравнивание");
@ -671,7 +671,7 @@ namespace Language_ru {
#endif
LSTR MSG_UBL_LEVELING = _UxGT("Управление UBL");
LSTR MSG_MESH_LEVELING = _UxGT("Выравнивание сетки");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_MESH_DONE = _UxGT("Зондирование выполнено");
#else
LSTR MSG_MESH_DONE = _UxGT("Зондиров. выполнено");
@ -683,7 +683,7 @@ namespace Language_ru {
LSTR MSG_INFO_EXTRUDERS = _UxGT("Экструдеры");
LSTR MSG_INFO_BAUDRATE = _UxGT("Скорость,БОД");
LSTR MSG_INFO_PROTOCOL = _UxGT("Протокол");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_INFO_RUNAWAY_OFF = _UxGT("Контроль утечки Т: Выкл");
LSTR MSG_INFO_RUNAWAY_ON = _UxGT("Контроль утечки Т: Вкл");
LSTR MSG_HOTEND_IDLE_TIMEOUT = _UxGT("Время простоя хотенда");
@ -696,7 +696,7 @@ namespace Language_ru {
LSTR MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Яркость подсветки");
LSTR MSG_KILL_EXPECTED_PRINTER = _UxGT("Неверный принтер");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Счётчик печати");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Общее время печати");
LSTR MSG_INFO_PRINT_LONGEST = _UxGT("Наидольшее задание");
@ -730,7 +730,7 @@ namespace Language_ru {
LSTR MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("Выдавить ещё");
LSTR MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Возобновить печать");
LSTR MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Сопла: ");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_RUNOUT_SENSOR = _UxGT("Датчик оконч. филамента");
#else
LSTR MSG_RUNOUT_SENSOR = _UxGT("Датчик оконч.филам.");
@ -741,7 +741,7 @@ namespace Language_ru {
LSTR MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("ВЫБИРЕТЕ ФИЛАМЕНТ");
LSTR MSG_MMU2_MENU = _UxGT("Настройки MMU");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_KILL_MMU2_FIRMWARE = _UxGT("Обновить прошивку MMU!");
#else
LSTR MSG_KILL_MMU2_FIRMWARE = _UxGT("Обнови прошивку MMU");
@ -756,7 +756,7 @@ namespace Language_ru {
LSTR MSG_MMU2_EJECT_FILAMENT_N = _UxGT("Извлечь филамент ~");
LSTR MSG_MMU2_UNLOAD_FILAMENT = _UxGT("Выгрузить филамент");
LSTR MSG_MMU2_LOADING_FILAMENT = _UxGT("Загрузка %i...");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_MMU2_EJECTING_FILAMENT = _UxGT("Извлечение филамента...");
#else
LSTR MSG_MMU2_EJECTING_FILAMENT = _UxGT("Извлеч.филамента...");
@ -768,7 +768,7 @@ namespace Language_ru {
LSTR MSG_MMU2_RESETTING = _UxGT("Перезапуск MMU...");
LSTR MSG_MMU2_EJECT_RECOVER = _UxGT("Удалите и нажмите");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_MIX = _UxGT("Смешивание");
#else
LSTR MSG_MIX = _UxGT("Смешив.");
@ -780,7 +780,7 @@ namespace Language_ru {
LSTR MSG_CYCLE_MIX = _UxGT("Цикличное смешивание");
LSTR MSG_GRADIENT_MIX = _UxGT("Градиент смешивания");
LSTR MSG_REVERSE_GRADIENT = _UxGT("Сменить градиент");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_TOGGLE_MIX = _UxGT("Переключить смешивание");
LSTR MSG_ACTIVE_VTOOL = _UxGT("Активация В-инструм.");
LSTR MSG_START_VTOOL = _UxGT("Начало В-инструмента");
@ -808,7 +808,7 @@ namespace Language_ru {
LSTR MSG_SNAKE = _UxGT("Змейка");
LSTR MSG_MAZE = _UxGT("Лабиринт");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_BAD_PAGE = _UxGT("Плохой индекс страницы");
LSTR MSG_BAD_PAGE_SPEED = _UxGT("Плохая скорость страницы");
#else
@ -824,7 +824,7 @@ namespace Language_ru {
LSTR MSG_REMOVE_PASSWORD = _UxGT("Удалить пароль");
LSTR MSG_PASSWORD_SET = _UxGT("Пароль это ");
LSTR MSG_START_OVER = _UxGT("Старт через");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_REMINDER_SAVE_SETTINGS = _UxGT("Запомни для сохранения!");
#else
LSTR MSG_REMINDER_SAVE_SETTINGS = _UxGT("Запомни, сохрани!");
@ -875,7 +875,7 @@ namespace Language_ru {
LSTR MSG_LEVEL_X_AXIS = _UxGT("Уровень оси X");
LSTR MSG_AUTO_CALIBRATE = _UxGT("Авто калибровка");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_HEATER_TIMEOUT = _UxGT("Время нагревателя вышло");
#else
LSTR MSG_HEATER_TIMEOUT = _UxGT("Время нагрев. вышло");
@ -884,7 +884,7 @@ namespace Language_ru {
LSTR MSG_REHEATING = _UxGT("Нагрев...");
LSTR MSG_PROBE_WIZARD = _UxGT("Мастер Z-зонда");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_PROBE_WIZARD_PROBING = _UxGT("Зондиров. контр. точки Z");
LSTR MSG_PROBE_WIZARD_MOVING = _UxGT("Движение к точке зондиров.");
#else

@ -575,7 +575,7 @@ namespace Language_sk {
LSTR MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Jas svetla");
LSTR MSG_KILL_EXPECTED_PRINTER = _UxGT("Nesprávna tlačiareň");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Počet tlačí");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Dokončené");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Celkový čas");

@ -523,7 +523,7 @@ namespace Language_sv {
LSTR MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Ljus ljusstyrka");
LSTR MSG_KILL_EXPECTED_PRINTER = _UxGT("INKORREKT SKRIVARE");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Utskriftsantal");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Färdiga");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Total Utskriftstid");

@ -456,7 +456,7 @@ namespace Language_tr {
LSTR MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Aydınlatma Parlaklğı");
LSTR MSG_KILL_EXPECTED_PRINTER = _UxGT("Yanlış Yazıcı");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Baskı Sayısı");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Tamamlanan");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Toplam Baskı Süresi");

@ -44,7 +44,7 @@ namespace Language_uk {
LSTR MSG_MEDIA_INSERTED = _UxGT("SD-картка вставлена");
LSTR MSG_MEDIA_REMOVED = _UxGT("SD-картка видалена");
LSTR MSG_MEDIA_WAITING = _UxGT("Вставте SD-картку");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_MEDIA_INIT_FAIL = _UxGT("Збій ініціалізації SD");
#else
LSTR MSG_MEDIA_INIT_FAIL = _UxGT("Збій ініціаліз. SD");
@ -52,7 +52,7 @@ namespace Language_uk {
LSTR MSG_MEDIA_READ_ERROR = _UxGT("Помилка зчитування");
LSTR MSG_MEDIA_USB_REMOVED = _UxGT("USB диск видалений");
LSTR MSG_MEDIA_USB_FAILED = _UxGT("Помилка USB диску");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_KILL_SUBCALL_OVERFLOW = _UxGT("Переповнення виклику");
LSTR MSG_LCD_SOFT_ENDSTOPS = _UxGT("Програмні кінцевики");
#else
@ -83,7 +83,7 @@ namespace Language_uk {
LSTR MSG_LEVEL_BED_NEXT_POINT = _UxGT("Наступна точка");
LSTR MSG_LEVEL_BED_DONE = _UxGT("Завершено!");
LSTR MSG_Z_FADE_HEIGHT = _UxGT("Висота спаду");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_SET_HOME_OFFSETS = _UxGT("Встанов. зміщення дому");
LSTR MSG_HOME_OFFSET_X = _UxGT("Зміщення дому X");
LSTR MSG_HOME_OFFSET_Y = _UxGT("Зміщення дому Y");
@ -103,7 +103,7 @@ namespace Language_uk {
LSTR MSG_HOME_OFFSETS_APPLIED = _UxGT("Зміщення прийняті");
LSTR MSG_SET_ORIGIN = _UxGT("Встановити нуль");
LSTR MSG_SELECT_ORIGIN = _UxGT("Оберіть нуль");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_LAST_VALUE_SP = _UxGT("Останнє значення ");
#else
LSTR MSG_LAST_VALUE_SP = _UxGT("Останнє знач. ");
@ -131,7 +131,7 @@ namespace Language_uk {
LSTR MSG_CUTTER_FREQUENCY = _UxGT("Частота");
LSTR MSG_LASER_MENU = _UxGT("Керування лазером");
LSTR MSG_SPINDLE_MENU = _UxGT("Керування шпінделем");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_LASER_POWER = _UxGT("Потужність лазера");
LSTR MSG_SPINDLE_TOGGLE = _UxGT("Перемкн. шпіндель");
LSTR MSG_SPINDLE_EVAC_TOGGLE = _UxGT("Перемкнути вакуум");
@ -162,7 +162,7 @@ namespace Language_uk {
LSTR MSG_BED_LEVELING = _UxGT("Вирівнювання столу");
LSTR MSG_LEVEL_BED = _UxGT("Вирівняти стіл");
LSTR MSG_BED_TRAMMING = _UxGT("Вирівняти кути");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_BED_TRAMMING_RAISE = _UxGT("Вгору до спрацюв. зонду");
LSTR MSG_BED_TRAMMING_IN_RANGE = _UxGT("Кути в межах. Вирів.столу");
#else
@ -172,7 +172,7 @@ namespace Language_uk {
LSTR MSG_BED_TRAMMING_GOOD_POINTS = _UxGT("Хороші точки: ");
LSTR MSG_BED_TRAMMING_LAST_Z = _UxGT("Остання Z: ");
LSTR MSG_NEXT_CORNER = _UxGT("Наступний кут");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_MESH_EDITOR = _UxGT("Зміщення по Z");
#else
LSTR MSG_MESH_EDITOR = _UxGT("Зміщення Z");
@ -205,7 +205,7 @@ namespace Language_uk {
LSTR MSG_UBL_TOOLS = _UxGT("Інструменти UBL");
LSTR MSG_UBL_LEVEL_BED = _UxGT("Налаштування UBL");
LSTR MSG_LCD_TILTING_MESH = _UxGT("Точка нахилу");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_UBL_MANUAL_MESH = _UxGT("Ручне введення сітки");
LSTR MSG_UBL_BC_INSERT = _UxGT("Розмістити шайбу і вимір.");
#else
@ -214,7 +214,7 @@ namespace Language_uk {
#endif
LSTR MSG_UBL_MESH_WIZARD = _UxGT("Майстер сіток UBL");
LSTR MSG_UBL_BC_INSERT2 = _UxGT("Вимірювання");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_UBL_BC_REMOVE = _UxGT("Видалити і виміряти стіл");
#else
LSTR MSG_UBL_BC_REMOVE = _UxGT("Видали і вимір. стіл");
@ -226,7 +226,7 @@ namespace Language_uk {
LSTR MSG_UBL_BED_TEMP_CUSTOM = _UxGT("Своя ") LCD_STR_THERMOMETER _UxGT(" столу,") LCD_STR_DEGREE "C";
LSTR MSG_UBL_SET_TEMP_HOTEND = LCD_STR_THERMOMETER _UxGT(" сопла, ") LCD_STR_DEGREE "C";
LSTR MSG_UBL_HOTEND_TEMP_CUSTOM = _UxGT("Своя ") LCD_STR_THERMOMETER _UxGT(" сопла,") LCD_STR_DEGREE "C";
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_UBL_EDIT_CUSTOM_MESH = _UxGT("Редагувати свою сітку");
LSTR MSG_UBL_FINE_TUNE_MESH = _UxGT("Точне редагування сітки");
LSTR MSG_UBL_BUILD_CUSTOM_MESH = _UxGT("Будувати свою сітку");
@ -256,7 +256,7 @@ namespace Language_uk {
LSTR MSG_UBL_CONTINUE_MESH = _UxGT("Продовжити сітку");
LSTR MSG_UBL_MESH_LEVELING = _UxGT("Вирівнювання сітки");
LSTR MSG_UBL_3POINT_MESH_LEVELING = _UxGT("3-точкове вирівн.");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_UBL_GRID_MESH_LEVELING = _UxGT("Вирівнювання растру");
#else
LSTR MSG_UBL_GRID_MESH_LEVELING = _UxGT("Вирівнюв. растру");
@ -269,7 +269,7 @@ namespace Language_uk {
LSTR MSG_UBL_OUTPUT_MAP_CSV = _UxGT("Вивести в CSV");
LSTR MSG_UBL_OUTPUT_MAP_BACKUP = _UxGT("Зберегти зовні");
LSTR MSG_UBL_INFO_UBL = _UxGT("Інформація по UBL");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_UBL_FILLIN_AMOUNT = _UxGT("Обсяг заповнюв.");
#else
LSTR MSG_UBL_FILLIN_AMOUNT = _UxGT("Обсяг заповн.");
@ -279,7 +279,7 @@ namespace Language_uk {
LSTR MSG_UBL_FILLIN_MESH = _UxGT("Заповнити сітку");
LSTR MSG_UBL_INVALIDATE_ALL = _UxGT("Анулювати все");
LSTR MSG_UBL_INVALIDATE_CLOSEST = _UxGT("Анулювати найближчу");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_UBL_FINE_TUNE_ALL = _UxGT("Точно налаштувати все");
LSTR MSG_UBL_FINE_TUNE_CLOSEST = _UxGT("Точно налашт.найближчу");
#else
@ -308,7 +308,7 @@ namespace Language_uk {
LSTR MSG_LED_CONTROL = _UxGT("Керування світлом");
LSTR MSG_LEDS = _UxGT("Підсвітка");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_LED_PRESETS = _UxGT("Передустановки світла");
#else
LSTR MSG_LED_PRESETS = _UxGT("Передустан. світла");
@ -324,7 +324,7 @@ namespace Language_uk {
LSTR MSG_SET_LEDS_DEFAULT = _UxGT("За умовчанням");
LSTR MSG_LED_CHANNEL_N = _UxGT("Канал =");
LSTR MSG_LEDS2 = _UxGT("Світло #2");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_NEO2_PRESETS = _UxGT("Передустановка світла #2");
#else
LSTR MSG_NEO2_PRESETS = _UxGT("Передуст. світла #2");
@ -361,7 +361,7 @@ namespace Language_uk {
LSTR MSG_NOZZLE_STANDBY = _UxGT("Сопло очікує");
LSTR MSG_BED = _UxGT("Стіл, ") LCD_STR_DEGREE "C";
LSTR MSG_CHAMBER = _UxGT("Камера,") LCD_STR_DEGREE "C";
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_COOLER = _UxGT("Охолодження лазеру");
LSTR MSG_COOLER_TOGGLE = _UxGT("Перемк. охолодж.");
#else
@ -372,7 +372,7 @@ namespace Language_uk {
LSTR MSG_LASER = _UxGT("Лазер");
LSTR MSG_FAN_SPEED = _UxGT("Швидк. вент.");
LSTR MSG_FAN_SPEED_N = _UxGT("Швидк. вент. ~");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_STORED_FAN_N = _UxGT("Збереж.швидк.вент. ~");
LSTR MSG_EXTRA_FAN_SPEED_N = _UxGT("Дод. швидк. вент. ~");
#else
@ -413,7 +413,7 @@ namespace Language_uk {
LSTR MSG_VJ_JERK = _UxGT("V") LCD_STR_J _UxGT("-ривок");
LSTR MSG_VK_JERK = _UxGT("V") LCD_STR_K _UxGT("-ривок");
LSTR MSG_VE_JERK = _UxGT("Ve-ривок");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_JUNCTION_DEVIATION = _UxGT("Відхилення вузла");
#else
LSTR MSG_JUNCTION_DEVIATION = _UxGT("Відхил.вузла");
@ -428,7 +428,7 @@ namespace Language_uk {
LSTR MSG_VMAX_E = _UxGT("Швидк.макс ") LCD_STR_E;
LSTR MSG_VMAX_EN = _UxGT("Швидк.макс *");
LSTR MSG_VMIN = _UxGT("Швидк. мін");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_VTRAV_MIN = _UxGT("Переміщення мін");
#else
LSTR MSG_VTRAV_MIN = _UxGT("Переміщ. мін");
@ -471,7 +471,7 @@ namespace Language_uk {
LSTR MSG_STORE_EEPROM = _UxGT("Зберегти в EEPROM");
LSTR MSG_LOAD_EEPROM = _UxGT("Зчитати з EEPROM");
LSTR MSG_RESTORE_DEFAULTS = _UxGT("На базові параметри");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_INIT_EEPROM = _UxGT("Ініціалізація EEPROM");
#else
LSTR MSG_INIT_EEPROM = _UxGT("Ініціаліз. EEPROM");
@ -525,7 +525,7 @@ namespace Language_uk {
LSTR MSG_NO_MOVE = _UxGT("Немає руху.");
LSTR MSG_KILLED = _UxGT("ПЕРЕРВАНО. ");
LSTR MSG_STOPPED = _UxGT("ЗУПИНЕНО. ");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_CONTROL_RETRACT = _UxGT("Втягування, мм");
LSTR MSG_CONTROL_RETRACT_SWAP = _UxGT("Зміна втягув.,мм");
LSTR MSG_CONTROL_RETRACT_RECOVER = _UxGT("Повернення, мм");
@ -547,7 +547,7 @@ namespace Language_uk {
LSTR MSG_FILAMENT_PURGE_LENGTH = _UxGT("Очистити довжину");
LSTR MSG_TOOL_CHANGE = _UxGT("Зміна сопла");
LSTR MSG_TOOL_CHANGE_ZLIFT = _UxGT("Підняти по Z");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_SINGLENOZZLE_PRIME_SPEED = _UxGT("Початк.швидкість");
LSTR MSG_SINGLENOZZLE_RETRACT_SPEED = _UxGT("Швидкість втягув.");
#else
@ -556,7 +556,7 @@ namespace Language_uk {
#endif
LSTR MSG_FILAMENT_PARK_ENABLED = _UxGT("Паркувати голову");
LSTR MSG_SINGLENOZZLE_UNRETRACT_SPEED = _UxGT("Відновити швидкість");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_SINGLENOZZLE_FAN_SPEED = _UxGT("Оберти вентилятора");
LSTR MSG_SINGLENOZZLE_FAN_TIME = _UxGT("Час вентилятора");
#else
@ -621,7 +621,7 @@ namespace Language_uk {
LSTR MSG_THERMAL_RUNAWAY_BED = _UxGT("ВИТІК ТЕПЛА СТОЛУ");
LSTR MSG_THERMAL_RUNAWAY_CHAMBER = _UxGT("ВИТІК ТЕПЛА КАМЕРИ");
LSTR MSG_THERMAL_RUNAWAY_COOLER = _UxGT("ВИТІК ОХОЛОДЖЕННЯ");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_COOLING_FAILED = _UxGT("ОХОЛОДЖЕННЯ НЕ ВДАЛОСЬ");
#else
LSTR MSG_COOLING_FAILED = _UxGT("ОХОЛОДЖ. НЕ ВДАЛОСЬ");
@ -638,7 +638,7 @@ namespace Language_uk {
LSTR MSG_BED_HEATING = _UxGT("Нагрів столу...");
LSTR MSG_PROBE_HEATING = _UxGT("Нагрів зонду...");
LSTR MSG_CHAMBER_HEATING = _UxGT("Нагрів камери...");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_BED_COOLING = _UxGT("Охолодження столу...");
LSTR MSG_PROBE_COOLING = _UxGT("Охолодження зонду...");
LSTR MSG_CHAMBER_COOLING = _UxGT("Охолодження камери...");
@ -665,7 +665,7 @@ namespace Language_uk {
LSTR MSG_INFO_MENU = _UxGT("Про принтер");
LSTR MSG_INFO_PRINTER_MENU = _UxGT("Дані принтера");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_3POINT_LEVELING = _UxGT("3-точкове вирівнювання");
LSTR MSG_LINEAR_LEVELING = _UxGT("Лінійне вирівнювання");
LSTR MSG_BILINEAR_LEVELING = _UxGT("Білінійне вирівнювання");
@ -676,7 +676,7 @@ namespace Language_uk {
#endif
LSTR MSG_UBL_LEVELING = _UxGT("UBL");
LSTR MSG_MESH_LEVELING = _UxGT("Вирівнювання сітки");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_MESH_DONE = _UxGT("Зондування сітки виконано");
#else
LSTR MSG_MESH_DONE = _UxGT("Зондування виконано");
@ -688,7 +688,7 @@ namespace Language_uk {
LSTR MSG_INFO_EXTRUDERS = _UxGT("Екструдери");
LSTR MSG_INFO_BAUDRATE = _UxGT("Бод");
LSTR MSG_INFO_PROTOCOL = _UxGT("Протокол");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_INFO_RUNAWAY_OFF = _UxGT("Контроль витіку ") LCD_STR_THERMOMETER _UxGT(" Вимк");
LSTR MSG_INFO_RUNAWAY_ON = _UxGT("Контроль витіку ") LCD_STR_THERMOMETER _UxGT(" Увімк");
LSTR MSG_HOTEND_IDLE_TIMEOUT = _UxGT("Час простою хотенду");
@ -704,7 +704,7 @@ namespace Language_uk {
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Завершено");
LSTR MSG_INFO_PRINT_FILAMENT = _UxGT("Екструдовано");
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Кількість друків");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Весь час друку");
LSTR MSG_INFO_PRINT_LONGEST = _UxGT("Найдовший час");
@ -731,7 +731,7 @@ namespace Language_uk {
LSTR MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("ЗУПИНКА ДРУКУ");
LSTR MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("ЗАВАНТАЖИТИ ПРУТОК");
LSTR MSG_FILAMENT_CHANGE_HEADER_UNLOAD = _UxGT("ВИВАНТАЖИТИ ПРУТОК");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("ПАРАМЕТРИ ПРОДОВЖЕННЯ:");
#else
LSTR MSG_FILAMENT_CHANGE_OPTION_HEADER = _UxGT("ПАРАМ.ПРОДОВЖЕННЯ:");
@ -739,7 +739,7 @@ namespace Language_uk {
LSTR MSG_FILAMENT_CHANGE_OPTION_PURGE = _UxGT("Видавити ще");
LSTR MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Відновити друк");
LSTR MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Сопло: ");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_RUNOUT_SENSOR = _UxGT("Датчик закінчення прутка");
LSTR MSG_RUNOUT_DISTANCE_MM = _UxGT("Відстань закінч.,мм");
#else
@ -757,7 +757,7 @@ namespace Language_uk {
LSTR MSG_MMU2_RESUMING = _UxGT("MMU Продовження...");
LSTR MSG_MMU2_LOAD_FILAMENT = _UxGT("MMU Завантажити");
LSTR MSG_MMU2_LOAD_ALL = _UxGT("MMU Завантажити все");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_MMU2_LOAD_TO_NOZZLE = _UxGT("MMU Завантажити в сопло");
#else
LSTR MSG_MMU2_LOAD_TO_NOZZLE = _UxGT("MMU Завант. в сопло");
@ -774,7 +774,7 @@ namespace Language_uk {
LSTR MSG_MMU2_RESETTING = _UxGT("MMU Перезапуск...");
LSTR MSG_MMU2_EJECT_RECOVER = _UxGT("Видаліть, натисніть");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_MIX = _UxGT("Змішування");
#else
LSTR MSG_MIX = _UxGT("Змішув.");
@ -783,7 +783,7 @@ namespace Language_uk {
LSTR MSG_MIXER = _UxGT("Змішувач");
LSTR MSG_GRADIENT = _UxGT("Градієнт");
LSTR MSG_FULL_GRADIENT = _UxGT("Повний градієнт");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_TOGGLE_MIX = _UxGT("Переключити змішування");
#else
LSTR MSG_TOGGLE_MIX = _UxGT("Переключ.змішування");
@ -792,7 +792,7 @@ namespace Language_uk {
LSTR MSG_GRADIENT_MIX = _UxGT("Градієнт змішування");
LSTR MSG_REVERSE_GRADIENT = _UxGT("Змінити градієнт");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_ACTIVE_VTOOL = _UxGT("Активація В-інструменту");
LSTR MSG_GRADIENT_ALIAS = _UxGT("Псевдонім В-інструменту");
LSTR MSG_RESET_VTOOLS = _UxGT("Зкидання В-інструментів");
@ -815,7 +815,7 @@ namespace Language_uk {
LSTR MSG_MAZE = _UxGT("Лабіринт");
LSTR MSG_BAD_PAGE = _UxGT("Погана сторінка");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_BAD_PAGE_SPEED = _UxGT("Погана швидкість стор.");
#else
LSTR MSG_BAD_PAGE_SPEED = _UxGT("Погана швидк. стор.");
@ -888,7 +888,7 @@ namespace Language_uk {
LSTR MSG_REHEATING = _UxGT("Нагрівання...");
LSTR MSG_PROBE_WIZARD = _UxGT("Майстер Z-зонда");
#if LCD_WIDTH > 21
#if LCD_WIDTH > 21 || HAS_DWIN_E3V2
LSTR MSG_PROBE_WIZARD_PROBING = _UxGT("Зондув. контрольної точки Z");
LSTR MSG_PROBE_WIZARD_MOVING = _UxGT("Рух до точки зондування");
#else

@ -383,7 +383,7 @@ namespace Language_vi {
LSTR MSG_INFO_PROTOCOL = _UxGT("Giao Thức"); // Protocol
LSTR MSG_CASE_LIGHT = _UxGT("Đèn Khuông"); // Case light
LSTR MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("Độ Sáng"); // Light Brightness
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Số In"); // Print Count
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Đã hoàn thành");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Tổng số thời gian in"); // Total print time

@ -489,7 +489,7 @@ namespace Language_zh_CN {
LSTR MSG_KILL_EXPECTED_PRINTER = _UxGT("打印机不正确"); // "The printer is incorrect"
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("打印计数"); // "Print Count"
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("完成了"); // "Completed"
LSTR MSG_INFO_PRINT_TIME = _UxGT("总打印时间"); // "Total print time"

@ -437,7 +437,7 @@ namespace Language_zh_TW {
LSTR MSG_CASE_LIGHT_BRIGHTNESS = _UxGT("燈亮度"); // "Light BRIGHTNESS"
LSTR MSG_KILL_EXPECTED_PRINTER = _UxGT("打印機不正確"); // "The printer is incorrect"
#if LCD_WIDTH >= 20
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
LSTR MSG_INFO_PRINT_COUNT = _UxGT("列印計數"); // "Print Count"
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("已完成"); // "Completed"
LSTR MSG_INFO_PRINT_TIME = _UxGT("總列印時間"); // "Total print time"

Loading…
Cancel
Save