Multi-language support (#15453)

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

View File

@@ -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
}