Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🌐 Language CSV Import/Export #25889

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ genpages.exe
marlin_config.json
mczip.h
language*.csv
csv-out/
out-csv/
out-language/
*.gen
*.sublime-workspace

Expand Down
6 changes: 5 additions & 1 deletion Marlin/src/feature/pause.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -546,7 +546,11 @@ void wait_for_confirmation(const bool is_reload/*=false*/, const int8_t max_beep

TERN_(HOST_PROMPT_SUPPORT, hostui.prompt_do(PROMPT_USER_CONTINUE, GET_TEXT_F(MSG_HEATER_TIMEOUT), GET_TEXT_F(MSG_REHEAT)));

TERN_(EXTENSIBLE_UI, ExtUI::onUserConfirmRequired(GET_TEXT_F(MSG_HEATER_TIMEOUT)));
#if ENABLED(TOUCH_UI_FTDI_EVE)
ExtUI::onUserConfirmRequired(GET_TEXT_F(MSG_FTDI_HEATER_TIMEOUT));
#elif ENABLED(EXTENSIBLE_UI)
ExtUI::onUserConfirmRequired(GET_TEXT_F(MSG_HEATER_TIMEOUT));
#endif

TERN_(HAS_RESUME_CONTINUE, wait_for_user_response(0, true)); // Wait for LCD click or M108

Expand Down
4 changes: 2 additions & 2 deletions Marlin/src/lcd/e3v2/proui/dwin.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ namespace GET_LANG(LCD_LANGUAGE) {
#define _MSG_PREHEAT(N) \
LSTR MSG_PREHEAT_##N = _UxGT("Preheat ") PREHEAT_## N ##_LABEL; \
LSTR MSG_PREHEAT_## N ##_SETTINGS = _UxGT("Preheat ") PREHEAT_## N ##_LABEL _UxGT(" Conf");
#if PREHEAT_COUNT > 3
REPEAT_S(4, PREHEAT_COUNT, _MSG_PREHEAT)
#if PREHEAT_COUNT > 1
REPEAT_S(2, INCREMENT(PREHEAT_COUNT), _MSG_PREHEAT)
#endif
}

Expand Down
2 changes: 2 additions & 0 deletions Marlin/src/lcd/extui/ftdi_eve_touch_ui/language/language_en.h
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,8 @@ namespace Language_en {
LSTR MSG_MOVE_Z_TO_TOP = u8"Raise Z to Top";
LSTR MSG_MAX_SPEED_NO_UNITS = u8"Max Speed";

//LSTR MSG_FTDI_HEATER_TIMEOUT = u8"Idle timeout, temperature decreased. Press Okay to reheat and again to resume.";

#if ENABLED(TOUCH_UI_LULZBOT_BIO)
LSTR MSG_MOVE_TO_HOME = u8"Move to Home";
LSTR MSG_RAISE_PLUNGER = u8"Raise Plunger";
Expand Down
93 changes: 49 additions & 44 deletions Marlin/src/lcd/language/language_an.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
#define DISPLAY_CHARSET_ISO10646_1
#define NOT_EXTENDED_ISO10646_1_5X7

namespace Language_an {
namespace LanguageNarrow_an {
using namespace Language_en; // Inherit undefined strings from English

constexpr uint8_t CHARSIZE = 1;
Expand All @@ -55,23 +55,23 @@ namespace Language_an {
LSTR MSG_LEVEL_BED_DONE = _UxGT("Nivelacion feita!");
LSTR MSG_SET_HOME_OFFSETS = _UxGT("Achustar desfases");
LSTR MSG_HOME_OFFSETS_APPLIED = _UxGT("Desfase aplicau");
#if HAS_PREHEAT
LSTR MSG_PREHEAT_1 = _UxGT("Precalentar ") PREHEAT_1_LABEL;
LSTR MSG_PREHEAT_1_H = _UxGT("Precalentar ") PREHEAT_1_LABEL " ~";
LSTR MSG_PREHEAT_1_END = _UxGT("Precal. ") PREHEAT_1_LABEL _UxGT(" Boquilla");
LSTR MSG_PREHEAT_1_END_E = _UxGT("Precal. ") PREHEAT_1_LABEL _UxGT(" Boquilla ~");
LSTR MSG_PREHEAT_1_ALL = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Tot");
LSTR MSG_PREHEAT_1_BEDONLY = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Base");
LSTR MSG_PREHEAT_1_SETTINGS = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Conf");

LSTR MSG_PREHEAT_M = _UxGT("Precalentar $");
LSTR MSG_PREHEAT_M_H = _UxGT("Precalentar $ ~");
LSTR MSG_PREHEAT_M_END = _UxGT("Precal. $ Boquilla");
LSTR MSG_PREHEAT_M_END_E = _UxGT("Precal. $ Boquilla ~");
LSTR MSG_PREHEAT_M_ALL = _UxGT("Precalentar $ Tot");
LSTR MSG_PREHEAT_M_BEDONLY = _UxGT("Precalentar $ Base");
LSTR MSG_PREHEAT_M_SETTINGS = _UxGT("Precalentar $ Conf");
#endif

LSTR MSG_PREHEAT_1 = _UxGT("Precalentar ") PREHEAT_1_LABEL;
LSTR MSG_PREHEAT_1_H = _UxGT("Precalentar ") PREHEAT_1_LABEL " ~";
LSTR MSG_PREHEAT_1_END = _UxGT("Precal. ") PREHEAT_1_LABEL _UxGT(" Boquilla");
LSTR MSG_PREHEAT_1_END_E = _UxGT("Precal. ") PREHEAT_1_LABEL _UxGT(" Boquilla ~");
LSTR MSG_PREHEAT_1_ALL = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Tot");
LSTR MSG_PREHEAT_1_BEDONLY = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Base");
LSTR MSG_PREHEAT_1_SETTINGS = _UxGT("Precalentar ") PREHEAT_1_LABEL _UxGT(" Conf");

LSTR MSG_PREHEAT_M = _UxGT("Precalentar $");
LSTR MSG_PREHEAT_M_H = _UxGT("Precalentar $ ~");
LSTR MSG_PREHEAT_M_END = _UxGT("Precal. $ Boquilla");
LSTR MSG_PREHEAT_M_END_E = _UxGT("Precal. $ Boquilla ~");
LSTR MSG_PREHEAT_M_ALL = _UxGT("Precalentar $ Tot");
LSTR MSG_PREHEAT_M_BEDONLY = _UxGT("Precalentar $ Base");
LSTR MSG_PREHEAT_M_SETTINGS = _UxGT("Precalentar $ Conf");

LSTR MSG_COOLDOWN = _UxGT("Enfriar");
LSTR MSG_SWITCH_PS_ON = _UxGT("Enchegar Fuent");
LSTR MSG_SWITCH_PS_OFF = _UxGT("Amortar Fuent");
Expand Down Expand Up @@ -192,19 +192,11 @@ namespace Language_an {
LSTR MSG_INFO_PROTOCOL = _UxGT("Protocolo");
LSTR MSG_CASE_LIGHT = _UxGT("Luz");

#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.");
LSTR MSG_INFO_PRINT_LONGEST = _UxGT("Impresion mas larga");
LSTR MSG_INFO_PRINT_FILAMENT = _UxGT("Total d'extrusion");
#else
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Impresions");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Completadas");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Total");
LSTR MSG_INFO_PRINT_LONGEST = _UxGT("Mas larga");
LSTR MSG_INFO_PRINT_FILAMENT = _UxGT("Extrusion");
#endif
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Impresions");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Completadas");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Total");
LSTR MSG_INFO_PRINT_LONGEST = _UxGT("Mas larga");
LSTR MSG_INFO_PRINT_FILAMENT = _UxGT("Extrusion");

LSTR MSG_INFO_MIN_TEMP = _UxGT("Temperatura menima");
LSTR MSG_INFO_MAX_TEMP = _UxGT("Temperatura maxima");
Expand All @@ -214,22 +206,35 @@ namespace Language_an {
LSTR MSG_DAC_EEPROM_WRITE = _UxGT("Escri. DAC EEPROM");
LSTR MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Resumir imp.");

//
// Filament Change screens show up to 3 lines on a 4-line display
// ...or up to 2 lines on a 3-line display
//
// Up to 2 lines allowed
LSTR MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_2_LINE("Aguardand iniciar", "d'o fil. cambear"));
LSTR MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_2_LINE("Meta o filamento", "y prete lo boton"));

LSTR MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Aguardando a", "expulsar filament"));
LSTR MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Aguardando a", "cargar filamento"));
LSTR MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("Aguardando impre.", "pa continar"));
}

namespace LanguageWide_an {
using namespace LanguageNarrow_an;
#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.");
LSTR MSG_INFO_PRINT_LONGEST = _UxGT("Impresion mas larga");
LSTR MSG_INFO_PRINT_FILAMENT = _UxGT("Total d'extrusion");
#endif
}

namespace LanguageTall_an {
using namespace LanguageWide_an;
#if LCD_HEIGHT >= 4
// Up to 3 lines allowed
// Filament Change screens show up to 3 lines on a 4-line display
LSTR MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Aguardand iniciar", "d'o filamento", "cambear"));
LSTR 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
LSTR MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_2_LINE("Aguardand iniciar", "d'o fil. cambear"));
LSTR MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_2_LINE("Meta o filamento", "y prete lo boton"));
#endif // LCD_HEIGHT < 4
#endif
}

LSTR MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Aguardando a", "expulsar filament"));
LSTR MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Aguardando a", "cargar filamento"));
LSTR MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("Aguardando impre.", "pa continar"));
namespace Language_an {
using namespace LanguageTall_an;
}
51 changes: 34 additions & 17 deletions Marlin/src/lcd/language/language_bg.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@

#define DISPLAY_CHARSET_ISO10646_5

namespace Language_bg {
namespace LanguageNarrow_bg {
using namespace Language_en; // Inherit undefined strings from English

constexpr uint8_t CHARSIZE = 2;
Expand All @@ -44,23 +44,23 @@ namespace Language_bg {
LSTR MSG_DISABLE_STEPPERS = _UxGT("Изкл. двигатели");
LSTR MSG_AUTO_HOME = _UxGT("Паркиране");
LSTR MSG_SET_HOME_OFFSETS = _UxGT("Задай Начало");
#if HAS_PREHEAT
LSTR MSG_PREHEAT_1 = _UxGT("Подгряване ") PREHEAT_1_LABEL;
LSTR MSG_PREHEAT_1_H = _UxGT("Подгряване ") PREHEAT_1_LABEL " ~";
LSTR MSG_PREHEAT_1_END = _UxGT("Подгряване ") PREHEAT_1_LABEL _UxGT(" Дюза");
LSTR MSG_PREHEAT_1_END_E = _UxGT("Подгряване ") PREHEAT_1_LABEL _UxGT(" Дюза ~");
LSTR MSG_PREHEAT_1_ALL = _UxGT("Подгр. ") PREHEAT_1_LABEL _UxGT(" Всички");
LSTR MSG_PREHEAT_1_BEDONLY = _UxGT("Подгр. ") PREHEAT_1_LABEL _UxGT(" Легло");
LSTR MSG_PREHEAT_1_SETTINGS = _UxGT("Настройки ") PREHEAT_1_LABEL;

LSTR MSG_PREHEAT_M = _UxGT("Подгряване $");
LSTR MSG_PREHEAT_M_H = _UxGT("Подгряване $ ~");
LSTR MSG_PREHEAT_M_END = _UxGT("Подгряване $ Дюза");
LSTR MSG_PREHEAT_M_END_E = _UxGT("Подгряване $ Дюза ~");
LSTR MSG_PREHEAT_M_ALL = _UxGT("Подгр. $ Всички");
LSTR MSG_PREHEAT_M_BEDONLY = _UxGT("Подгр. $ Легло");
LSTR MSG_PREHEAT_M_SETTINGS = _UxGT("Настройки $");
#endif
LSTR MSG_PREHEAT_1 = _UxGT("Подгряване ") PREHEAT_1_LABEL;
LSTR MSG_PREHEAT_1_H = _UxGT("Подгряване ") PREHEAT_1_LABEL " ~";
LSTR MSG_PREHEAT_1_END = _UxGT("Подгряване ") PREHEAT_1_LABEL _UxGT(" Дюза");
LSTR MSG_PREHEAT_1_END_E = _UxGT("Подгряване ") PREHEAT_1_LABEL _UxGT(" Дюза ~");
LSTR MSG_PREHEAT_1_ALL = _UxGT("Подгр. ") PREHEAT_1_LABEL _UxGT(" Всички");
LSTR MSG_PREHEAT_1_BEDONLY = _UxGT("Подгр. ") PREHEAT_1_LABEL _UxGT(" Легло");
LSTR MSG_PREHEAT_1_SETTINGS = _UxGT("Настройки ") PREHEAT_1_LABEL;

LSTR MSG_PREHEAT_M = _UxGT("Подгряване $");
LSTR MSG_PREHEAT_M_H = _UxGT("Подгряване $ ~");
LSTR MSG_PREHEAT_M_END = _UxGT("Подгряване $ Дюза");
LSTR MSG_PREHEAT_M_END_E = _UxGT("Подгряване $ Дюза ~");
LSTR MSG_PREHEAT_M_ALL = _UxGT("Подгр. $ Всички");
LSTR MSG_PREHEAT_M_BEDONLY = _UxGT("Подгр. $ Легло");
LSTR MSG_PREHEAT_M_SETTINGS = _UxGT("Настройки $");

LSTR MSG_COOLDOWN = _UxGT("Охлаждане");
LSTR MSG_SWITCH_PS_ON = _UxGT("Вкл. захранване");
LSTR MSG_SWITCH_PS_OFF = _UxGT("Изкл. захранване");
Expand Down Expand Up @@ -157,3 +157,20 @@ namespace Language_bg {
LSTR MSG_DELTA_CALIBRATE_CENTER = _UxGT("Калибровка Център");
LSTR MSG_KILL_EXPECTED_PRINTER = _UxGT("Неправилен принтер");
}

namespace LanguageWide_bg {
using namespace LanguageNarrow_bg;
#if LCD_WIDTH >= 20 || HAS_DWIN_E3V2
#endif
}

namespace LanguageTall_bg {
using namespace LanguageWide_bg;
#if LCD_HEIGHT >= 4
// Filament Change screens show up to 3 lines on a 4-line display
#endif
}

namespace Language_bg {
using namespace LanguageTall_bg;
}
92 changes: 51 additions & 41 deletions Marlin/src/lcd/language/language_ca.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
* LCD Menu Messages
* See also https://marlinfw.org/docs/development/lcd_language.html
*/
namespace Language_ca {
namespace LanguageNarrow_ca {
using namespace Language_en; // Inherit undefined strings from English

constexpr uint8_t CHARSIZE = 2;
Expand All @@ -53,23 +53,23 @@ namespace Language_ca {
LSTR MSG_LEVEL_BED_DONE = _UxGT("Anivellament fet!");
LSTR MSG_SET_HOME_OFFSETS = _UxGT("Ajusta decalatge");
LSTR MSG_HOME_OFFSETS_APPLIED = _UxGT("Decalatge aplicat");
#if HAS_PREHEAT
LSTR MSG_PREHEAT_1 = _UxGT("Preescalfa ") PREHEAT_1_LABEL;
LSTR MSG_PREHEAT_1_H = _UxGT("Preescalfa ") PREHEAT_1_LABEL " ~";
LSTR MSG_PREHEAT_1_END = _UxGT("Preescalfa ") PREHEAT_1_LABEL _UxGT(" End");
LSTR MSG_PREHEAT_1_END_E = _UxGT("Preescalfa ") PREHEAT_1_LABEL _UxGT(" End ~");
LSTR MSG_PREHEAT_1_ALL = _UxGT("Preescalfa ") PREHEAT_1_LABEL _UxGT(" Tot");
LSTR MSG_PREHEAT_1_BEDONLY = _UxGT("Preescalfa ") PREHEAT_1_LABEL _UxGT(" Llit");
LSTR MSG_PREHEAT_1_SETTINGS = _UxGT("Preescalfa ") PREHEAT_1_LABEL _UxGT(" Conf.");

LSTR MSG_PREHEAT_M = _UxGT("Preescalfa $");
LSTR MSG_PREHEAT_M_H = _UxGT("Preescalfa $ ~");
LSTR MSG_PREHEAT_M_END = _UxGT("Preescalfa $ End");
LSTR MSG_PREHEAT_M_END_E = _UxGT("Preescalfa $ End ~");
LSTR MSG_PREHEAT_M_ALL = _UxGT("Preescalfa $ Tot");
LSTR MSG_PREHEAT_M_BEDONLY = _UxGT("Preescalfa $ Llit");
LSTR MSG_PREHEAT_M_SETTINGS = _UxGT("Preescalfa $ Conf.");
#endif

LSTR MSG_PREHEAT_1 = _UxGT("Preescalfa ") PREHEAT_1_LABEL;
LSTR MSG_PREHEAT_1_H = _UxGT("Preescalfa ") PREHEAT_1_LABEL " ~";
LSTR MSG_PREHEAT_1_END = _UxGT("Preescalfa ") PREHEAT_1_LABEL _UxGT(" End");
LSTR MSG_PREHEAT_1_END_E = _UxGT("Preescalfa ") PREHEAT_1_LABEL _UxGT(" End ~");
LSTR MSG_PREHEAT_1_ALL = _UxGT("Preescalfa ") PREHEAT_1_LABEL _UxGT(" Tot");
LSTR MSG_PREHEAT_1_BEDONLY = _UxGT("Preescalfa ") PREHEAT_1_LABEL _UxGT(" Llit");
LSTR MSG_PREHEAT_1_SETTINGS = _UxGT("Preescalfa ") PREHEAT_1_LABEL _UxGT(" Conf.");

LSTR MSG_PREHEAT_M = _UxGT("Preescalfa $");
LSTR MSG_PREHEAT_M_H = _UxGT("Preescalfa $ ~");
LSTR MSG_PREHEAT_M_END = _UxGT("Preescalfa $ End");
LSTR MSG_PREHEAT_M_END_E = _UxGT("Preescalfa $ End ~");
LSTR MSG_PREHEAT_M_ALL = _UxGT("Preescalfa $ Tot");
LSTR MSG_PREHEAT_M_BEDONLY = _UxGT("Preescalfa $ Llit");
LSTR MSG_PREHEAT_M_SETTINGS = _UxGT("Preescalfa $ Conf.");

LSTR MSG_COOLDOWN = _UxGT("Refreda");

LSTR MSG_EXTRUDE = _UxGT("Extrudeix");
Expand Down Expand Up @@ -183,19 +183,11 @@ namespace Language_ca {
LSTR MSG_INFO_PROTOCOL = _UxGT("Protocol");
LSTR MSG_CASE_LIGHT = _UxGT("Llum");

#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");
LSTR MSG_INFO_PRINT_LONGEST = _UxGT("Treball mes llarg");
LSTR MSG_INFO_PRINT_FILAMENT = _UxGT("Total extrudit");
#else
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Impressions");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Acabades");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Total");
LSTR MSG_INFO_PRINT_LONGEST = _UxGT("Mes llarg");
LSTR MSG_INFO_PRINT_FILAMENT = _UxGT("Extrudit");
#endif
LSTR MSG_INFO_PRINT_COUNT = _UxGT("Impressions");
LSTR MSG_INFO_COMPLETED_PRINTS = _UxGT("Acabades");
LSTR MSG_INFO_PRINT_TIME = _UxGT("Total");
LSTR MSG_INFO_PRINT_LONGEST = _UxGT("Mes llarg");
LSTR MSG_INFO_PRINT_FILAMENT = _UxGT("Extrudit");

LSTR MSG_INFO_MIN_TEMP = _UxGT("Temp. mínima");
LSTR MSG_INFO_MAX_TEMP = _UxGT("Temp. màxima");
Expand All @@ -208,23 +200,41 @@ namespace Language_ca {
LSTR MSG_KILL_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
// Filament Change screens show up to 2 lines on a 3-line display
//
LSTR MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Espereu..."));
LSTR MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Expulsant..."));
LSTR MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Insereix i prem"));
LSTR MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("Escalfant..."));
LSTR MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Carregant..."));
LSTR MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Reprenent..."));
}

namespace LanguageWide_ca {
using namespace LanguageNarrow_ca;
#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");
LSTR MSG_INFO_PRINT_LONGEST = _UxGT("Treball mes llarg");
LSTR MSG_INFO_PRINT_FILAMENT = _UxGT("Total extrudit");
#endif
}

namespace LanguageTall_ca {
using namespace LanguageWide_ca;
#if LCD_HEIGHT >= 4
// Filament Change screens show up to 3 lines on a 4-line display
LSTR MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_3_LINE("Esperant per", "iniciar el canvi", "de filament"));
LSTR MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_2_LINE("Esperant per", "treure filament"));
LSTR MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_3_LINE("Poseu filament", "i premeu el boto", "per continuar..."));
LSTR MSG_FILAMENT_CHANGE_HEAT = _UxGT(MSG_2_LINE("Premeu boto per", "escalfar nozzle."));
LSTR MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_2_LINE("Escalfant nozzle", "Espereu..."));
LSTR MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_2_LINE("Esperant carrega", "de filament"));
LSTR MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_2_LINE("Esperant per", "reprendre"));
#else // LCD_HEIGHT < 4
LSTR MSG_FILAMENT_CHANGE_INIT = _UxGT(MSG_1_LINE("Espereu..."));
LSTR MSG_FILAMENT_CHANGE_UNLOAD = _UxGT(MSG_1_LINE("Expulsant..."));
LSTR MSG_FILAMENT_CHANGE_INSERT = _UxGT(MSG_1_LINE("Insereix i prem"));
LSTR MSG_FILAMENT_CHANGE_HEATING = _UxGT(MSG_1_LINE("Escalfant..."));
LSTR MSG_FILAMENT_CHANGE_LOAD = _UxGT(MSG_1_LINE("Carregant..."));
LSTR MSG_FILAMENT_CHANGE_RESUME = _UxGT(MSG_1_LINE("Reprenent..."));
#endif // LCD_HEIGHT < 4
#endif
}

namespace Language_ca {
using namespace LanguageTall_ca;
}
Loading